{"report_id":"f34be596-ef2e-4dae-b74b-6ae525316732","version":0,"status":"done","tags":[],"date":"2026-07-27T12:05:44Z","url":{"schema":"https","addr":"onchainopt.com/","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":0,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"final":{"url":{"schema":"https","addr":"onchainopt.com/","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"title":"Onchain Option - Home","dom":{"size":98518,"mime_type":"text/html; charset=utf-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (10387)","md5":"c2cbc5bb31d54a4c24f0f7d3d16f595f","sha1":"643ea4626858504ebb9c15c42b1d439fda0569d5","sha256":"647fb53cd1a282a6c608ba15d1bd78798805153fe1c4904ea63175ff165425cb","sha512":"a6ee69654cab2774c7288e2097371dd2d2590ae832ecd2529bd01c32d62e18476448449c4d8966c0cfdd72ad8898a55d74b96df116852cdb0153cc14ac5c3c84","ssdeep":"3072:yhpjtDbdrjtDbdyjtDbdNjtDbd/jtDbdAjtDbdIjtDbdzjtDbdDjtDbdljtDbdng:yhCO4sMZz7dW","tlshash":"18a3c75265b2843a64dfa4d55b723f2a24b5f307c146cae8be9c43a04f8fe59cc73648","dom_hash":"domhash00d62394a7b7997171f9b04e370f90e7","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"onchainopt.com/","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":0,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T12:05:44Z","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":"onchainopt.com","ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"domain_registered":"2025-12-17","domain_rank":0,"first_seen":"2026-07-27T07:44:22.571183Z","last_seen":"2026-07-27T07:44:22.571183Z","alert_count":0,"request_count":35,"received_data":2158404,"sent_data":42777,"comment":"","tags":null,"fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"Tailwind CSS","description":"Tailwind is a utility-first CSS framework.","website":"https://tailwindcss.com/","common_platform_enumeration":"","icon":"tailwindcss.svg","categories":["UI frameworks"]},{"name":"PHP:8.2.32","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]},{"name":"Vue.js","description":"Vue.js is an open-source model–view–viewmodel JavaScript framework for building user interfaces and single-page applications.","website":"https://vuejs.org","common_platform_enumeration":"","icon":"vue.svg","categories":["JavaScript frameworks"]},{"name":"jQuery:3.6.0","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]}]},{"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":7063,"sent_data":569,"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":5,"received_data":48622,"sent_data":3073,"comment":"","tags":null,"fingerprints":null},{"fqdn":"translate.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":6317,"first_seen":"2012-05-31T07:21:21Z","last_seen":"2026-07-20T14:48:05.930258Z","alert_count":0,"request_count":3,"received_data":197087,"sent_data":1792,"comment":"","tags":null,"fingerprints":null},{"fqdn":"api.coingecko.com","ip":{"addr":"104.20.41.132","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2014-03-26","domain_rank":442226,"first_seen":"2018-05-18T12:16:11Z","last_seen":"2026-07-21T20:24:11.162909Z","alert_count":0,"request_count":1,"received_data":1834,"sent_data":614,"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":"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":"translate.google.com","ip":{"addr":"142.250.178.110","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"1997-09-15","domain_rank":609,"first_seen":"2012-05-30T01:30:32Z","last_seen":"2026-07-20T21:58:05.03314Z","alert_count":0,"request_count":2,"received_data":77721,"sent_data":1086,"comment":"","tags":null,"fingerprints":null},{"fqdn":"cdn.tailwindcss.com","ip":{"addr":"104.26.2.143","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2017-07-20","domain_rank":117330,"first_seen":"2018-07-09T05:46:13Z","last_seen":"2026-07-27T08:40:23.885085Z","alert_count":0,"request_count":2,"received_data":408707,"sent_data":934,"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":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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.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":1,"received_data":717,"sent_data":546,"comment":"","tags":null,"fingerprints":null},{"fqdn":"translate-pa.googleapis.com","ip":{"addr":"172.217.112.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":8472,"first_seen":"2021-11-04T06:37:42Z","last_seen":"2026-07-21T21:38:43.172366Z","alert_count":0,"request_count":1,"received_data":32351,"sent_data":570,"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":"translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/exm=el_conf/ed=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_main","fqdn":"translate.googleapis.com","domain":"translate.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"cdf9309b56a4ff330627409baead2538","sha1":"e98eac16441e99c9512052eb0087f535b9a609b9","sha256":"310629c4e47d7960e5a89cbd6a9c1d24a4e4d7c5e18346a69a67d92355cf2cd4","sha512":"cafd13a201e26b9f94f9a636ca1f7c191ec3a9fc3f297d35ee51b1304962383e7147509932a759bd903e27e53fb251600ad6942739e472161f5a09367c3776c1","ssdeep":"3072:kjsNxt45eITHt28KRu9gKavNuBDHK0QppB0/I:osb0muBzg","tlshash":"dd14e8d9b26270679263f4a5403f004eb53b68a5f9484dacb28de8e26df4d19017bf7c","size":194344,"data":"","first_seen":"2026-07-22T18:30:16.180779Z","last_seen":"2026-07-27T19:37:31.609707Z","times_seen":2601,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/js/firebase/firebase-8.3.2.js","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"3aeb031c1d596281cfb0bc798ad68c35","sha1":"f3cbd0c473069e581705448366b33fcf71e0fdb9","sha256":"c6129ac86f15d92723bbb81e97f5ab4bcfd97f0744ea5898d2402087520c532b","sha512":"5fcc9700c5c7842dcd0f7c18a1028d6a6bc00536d03ced45d83c4ad7ed7b8530ddde45ec402f4fcb79c8ca87c4541af9786fed00817fb5437e08a4c75e9817ce","ssdeep":"6144:K8YqbosMLHtk4OLs/8wWaoFwApF+GzJXZaGQqdxQUdcujbva18nsLDMX4teWXs4v:nYqbrKOQ/YRQp18nl4sSG+z","tlshash":"5305b5ccb692b062439360b5507f410bf33b685da40e40acf669e9d67cb954e923bf78","size":859901,"data":"","first_seen":"2023-07-24T14:01:25Z","last_seen":"2026-07-30T06:02:32.545529Z","times_seen":171,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_conf","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"2fc67798de4c87e1253acea26b5ad2e9","sha1":"eb5c974ed70955e1bf183c1b0767a9aa6ff24924","sha256":"294ece50287362a6e681056db67d8c154b84a59678c737a636f5ce6877dee26f","sha512":"cc74a664bf9cd79ececc5ad699aa8e556af95469c4ef172511527182387ed95b5c21bfc367993c9679f7508c81812fd92df96464de92401d316ea97f86137469","ssdeep":"1536:XWjLpxIZnZzYOwRUSfl26KKZkXtmqR6Y06ECiVwNWF0:XDD4U6KKZgtBgtCi70","tlshash":"fa73b88cb6a5b4658363f4b5412f000eb23b58adf8484cadb288d8e1adf5949453bf7d","size":75426,"data":"","first_seen":"2026-07-27T12:02:34.990769Z","last_seen":"2026-07-27T13:00:41.444148Z","times_seen":115,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/js/iziToast.min.js","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"a05a127c793145cec6b721f14fced3e5","sha1":"5d753b1c803de12f4d2217ab0d143d4dcf047010","sha256":"ac860be79a4cfe434ea68f002638f79371d9a85a3b045a1aaf10dc98df551497","sha512":"ee5a4c561a267f7a96635cb529a5e670aebe766289fe358e6b394585db4b76d5df215cad4b358a07425deaada36d4f4e42c06c2c44d9c192f03ac1afeb9bdc64","ssdeep":"384:ShKmhCPzlc5gVCPBpcG/0CEvXArKKpQi8VREgO3MrnHzxJBkHI4505P:+K5PzlcN8DXArhpQzRHO3M7TxfGIYUP","tlshash":"6a82c894722032374aa329a960ff534a3772156ca9c641a4243fcdad5b34f8939f77f8","size":18481,"data":"","first_seen":"2023-03-07T01:10:25Z","last_seen":"2026-07-30T04:47:09.860347Z","times_seen":3346,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/js/jquery-3.6.0.min.js","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"7c14a783dfeb3d238ccd3edd840d82ee","sha1":"ad886e472b3557f3dc7dfa2bc43468ab8d1cef5b","sha256":"80f04717f32ea0320c5e8618fbacedd1fee3a8775ad8292140a6113551d4b5b0","sha512":"fa3e021ca60a9adbe570c6565c7370727904c4396c23a4c519daf258d05fae3e17bfb7607a0ab6dfe2b7150a4ec1b6a95e6d49675291be5f6a4e5679ad78d858","ssdeep":"1536:DjExXUqJnxDjoXEZxkMV4QYSt0zvDL6gP3h8cApwEIOzVTB/UjPazMdLiX4mQ1vN:DIh8GgP3hujzwbhd3XvSiDQ47GK/","tlshash":"6f9309ddb2c6702257a720ba007f510bf236199d6c4d8450f169d8eabc78a4e827bf7d","size":89500,"data":"","first_seen":"2023-03-07T01:06:20Z","last_seen":"2026-07-30T07:31:26.033685Z","times_seen":21364,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.tailwindcss.com/","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"104.26.2.143","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"7a614b9a197e532c00d09a23b0996b5f","sha1":"1ff1738a40f3716e30e9031b181b0955ae578955","sha256":"176e894661aa9cdc9a5cba6c720044cbbf7b8bd80d1c9a142a7c24b1b6c50d15","sha512":"a67bc26f52d938358471be5671ff4b79e11af4e68b486aaf73a35a4c9bf3777aab51101af81563b4e5b7ba4b04dd8971fcfa9ee2c41fb10a0c1ee5604a99abd6","ssdeep":"12288:fpgrZxSAoNbJb0Wie75aUXGuyQZhK4O0s:RCVoNB0Wie75aUWmnO0s","tlshash":"e8844aa57396702647eb51e850ea1042f2beaa38840c44bcf7edd4da39e5e4440fbf79","size":407279,"data":"","first_seen":"2025-07-28T16:58:08.903462Z","last_seen":"2026-07-30T07:31:04.937679Z","times_seen":47207,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/js/bootstrap.bundle.min.js","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"dfd824922bdcd8afddd7a123029bba09","sha1":"093df67442d6d55091d9278701071d241a3d02ad","sha256":"286fc75be1e7b08b6e8f8c70b4b6f69bf77fcd9bec929694d122b44ecbb4858d","sha512":"71ed1ae8aa3845ee9467b730d2affdd05f33e929e210d1f13c13bde9dced6beea3e7dc232cb21efaa50f7be917b7f1e328c78ce06208de5dce0a3308012965ad","ssdeep":"1536:pppbTNR2t4NEdiK5J2w8gGzjJVPOW7tI+r9ixR2nwZ7:T36WJr9ixF","tlshash":"5e73c5493254b8730ade45a68037470bf3265994b14b802cb5bcadde2a3dd8672b7f7c","size":78080,"data":"","first_seen":"2023-03-07T12:08:04Z","last_seen":"2026-07-29T06:17:04.839294Z","times_seen":2662,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"warn","text":"cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation","filename":"https://cdn.tailwindcss.com/","line_number":64,"column_number":1711},{"level":"warn","text":"\nIt looks like you're using the development build of the Firebase JS SDK.\nWhen deploying Firebase apps to production, it is advisable to only import\nthe individual SDK components you intend to use.\n\nFor the CDN builds, these are available in the following manner\n(replace \u003cPACKAGE\u003e with the name of a component - i.e. auth, database, etc):\n\nhttps://www.gstatic.com/firebasejs/5.0.0/firebase-\u003cPACKAGE\u003e.js\n","filename":"https://onchainopt.com/assets/global/js/firebase/firebase-8.3.2.js","line_number":1,"column_number":859387}]},"http":[{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1722995322_1000056972png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.597Z","timestamp":1785153914597,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1722995322_1000056972png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 5989\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":5989,"size_decoded":6150,"mime_type":"image/png","magic":"PNG image data, 300 x 300, 8-bit colormap, non-interlaced","md5":"61e20ad43bafe0ca2b7ada87f1792a4c","sha1":"6a92887e90fc042ee2e4d0fb3854692beeaaf19a","sha256":"32076120b7bde0202fda306280a9df7917a5ab1a396d4a87db012930f8bbb7b3","sha512":"abeffc786faf67c9a0dc178b0ffb8aae7fbac541765952a55129645914ee52f51ce0e09a753442baa6b984560aa51933a5d24179f1befe1ccf521ea4d5763f2a","ssdeep":"96:4MEbD/XFc+Xcwyn/s11yjmNrD9zNoqtl9QNpvRq3TS+0wv2yb7f+5djnLprn:4rfepwy21yjY39Jzt7QNpvYOe+yb7fe3","tlshash":"a1c19dc0d974348607ab31e946f645e4b26a5f2059329bdf95bf32b1c633336d742103","first_seen":"2024-01-07T14:24:30Z","last_seen":"2026-07-27T12:06:15.847352Z","times_seen":44,"resource_available":false,"data":"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"}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":30,"receive":76,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/logoIcon/logo.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.221Z","timestamp":1785153915221,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/logoIcon/logo.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:15 GMT\r\ncontent-type: image/png\r\nlast-modified: Sun, 26 Jul 2026 18:57:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 29851\r\ndate: Mon, 27 Jul 2026 12:05:15 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":29851,"size_decoded":30117,"mime_type":"image/png","magic":"PNG image data, 447 x 447, 8-bit/color RGBA, non-interlaced","md5":"cfe9837e274f962b2c16729e5d509c19","sha1":"085f48721242d074cc60f001cbed166d8ede341c","sha256":"37402e1d45cc28f0fc3915bac7e6bf77dd6a66764ba29cbec84b84ee11c8d4bb","sha512":"09170b6cc5d33e8a1516f2001b64f5e8b4ba6d3706d3141241aa2c5d66f43f1bbd282b761b5dcf3309f4c083c760aec1f025d56c635e94deb978524490a63bdc","ssdeep":"768:vleOpYyzF4exVcoe4WNFyOQvARbCktai3x6z7NH:vXpDSoVcoVQFyOQibV6zx","tlshash":"6ad2dfc4909bc64de6d0c4af8617fa0e96433a5d172330755561ce90abbb709e64c3f7","first_seen":"2026-07-27T07:44:27.060059Z","last_seen":"2026-07-27T12:06:15.852856Z","times_seen":3,"resource_available":false,"data":"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COW59O0UUhVDDoONxWLw+XzuKQ/nwLV/1tdvgadtZmpw9IblXBk5L1ZyzVeP9iS5qHZt2+Ye+c02ApZ/V++zrf68marezPR3L+LIj4iIPMe7q51ERORZDH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5DH5EROQ5/x/vuWnnLa1d0AAAAABJRU5ErkJggg=="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/i/productlogos/translate/v14/24px.svg","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":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.367Z","timestamp":1785153915367,"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/i/productlogos/translate/v14/24px.svg 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: 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://onchainopt.com/\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/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/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\ncontent-length: 3340\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Thu, 23 Jul 2026 10:10:10 GMT\r\nexpires: Fri, 23 Jul 2027 10:10:10 GMT\r\ncache-control: public, max-age=31536000\r\nage: 352505\r\nlast-modified: Wed, 20 Apr 2022 14:24:23 GMT\r\ncontent-type: image/svg+xml\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":6225,"size_decoded":4178,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"2bd5c073a88b83ed74db88282a56ddfb","sha1":"d0ebfc376f8c6a44a8d4cd216817dcd7d0c33650","sha256":"ab5c23a05e39deed14d9d8262b0dce9f024f86105a27196cad37d14a3f516e09","sha512":"5c6c4a92e93fc0f6a675658cc84f6187fdebd3eee94efd07e24658736cba598f3bc7156b19834b13fb44c1d43fcb7df9fcca7f0a453037e30da76ba8f4b23b89","ssdeep":"96:+R2K3Z4n7tyVwip82hezk6227gLFoXhu1XuE20ot+pVY3YptWDzOzgXK3Zx:ql3KnxyGGMzb7noR20NTww33","tlshash":"c1d1e6f19309d815cd6a83d8cd9b8002aa1f25ddd50ac6cc7639fb3bd1a50eb1d2d7a4","first_seen":"2023-04-06T21:34:37Z","last_seen":"2026-07-30T06:08:30.861502Z","times_seen":77970,"resource_available":false,"data":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxkZWZzPjxwYXRoIGQ9Ik0yMS41IDVoLTkuMTdMMTEgMUgyLjVDMS42OCAxIDEgMS42OCAxIDIuNXYxNWMwIC44My42OCAxLjUgMS41IDEuNWg5LjE3TDEzIDIzaDguNWMuODIgMCAxLjUtLjY4IDEuNS0xLjV2LTE1YzAtLjgzLS42OC0xLjUtMS41LTEuNXoiIGlkPSJhIi8+PC9kZWZzPjxjbGlwUGF0aCBpZD0iYiI+PHVzZSBvdmVyZmxvdz0idmlzaWJsZSIgeGxpbms6aHJlZj0iI2EiLz48L2NsaXBQYXRoPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iMzEiIG9wYWNpdHk9Ii4yIiBvdmVyZmxvdz0idmlzaWJsZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMyAxKSIgd2lkdGg9IjI5IiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUIwQUFBQWZDQVlBQUFBYlc4WUVBQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQSBHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFCUUJKUkVGVWVOcThWOHR1MjBZVXZYZG0rTENrIFJLaU13STFURkVYaFZaSmQxZ1c2Nnhla3Y5RFBxUHN2WGRVL1VhRHJvSnNrS3krQ0luQ2NHcEt0RnkyU00vZjJERVhaaWEwb2R0S1cgQWtGSjh6aHp6bjNTMFljdnBzKzc5RU1EYmozWWZndjRFTStYVE4vZkVPYjNaZzNBWG1xN2o2NEQ1L2UveC9FZnpaTW5YNWp4K0xGWiBMTHlwNnlORE96c2tZYjZSdWJGZHBiZHZLVWwySmMrZDlQdlA1ZG16VXlINlRWb1lYUU9xK0g1Zzl2YitjT05zTzltYUxwSXl5WlBVIGtaTkFwcG1oOVZwZzVrU1h3Q1NWSjUvVmkvcjhUbDczeTJGOWVQaWRKM29hZ2ErQjR2a1VnRis2RVcxbmR6MTFndk5kRGRMMWJETnIgeUtrQ1dPMTZ0aHlVR1dJSWVhZTJaR3ZuMW9mNXhGRXhvR0Y1ZUhnTTRBTlpzVzAzMlRmMDVNamVXK3htTktlZWRlV0FnOXRteXdQTSA2ckdZek9BUEJTZlE1U3MwTmY0cEFtUnJTbUJQMWVoSXhRNkRweEYxYVhhU0g1WDBiRGNBUjFhT3hMUlB0UGRyWnJ3bmQ1NVN4M2d6IElNTzcyT3dCcTlrbW94MFJTa0hIUk54clJKV0ZEYlFYS3BSMXhONGVPZngwTnFuTWRGSHVsWS9ydy8xUkFFNWNyRXZ2ZmZHQ3ZYL0UgVlVvT0MzTW0yNGVhTzZUeU5aamVCNUUrc0RMTXQydENxWkVXOGxjZ1BTVTJ4MEloS2xBWW9UUDR4VVR1ZVVNdkh2Skszb3VROGZmSCBIUDYySnBHZWcvVlNZY2lxTkFEYkhReHZZNWV0ZHI2NXloTlhsRzJCNXhqemdXZkhKb1NlWjVPbGJ1YXErY3pReVlTdnhhbDcwMWRKIFNXb2lnUk5xWEl0ak9SaHNDK3g3NE5mRHRQUTZhR1BrZ0FVbEdST3BUS0JRUjRnYkIxeDZmanozL0RLOEdzb0hqL1NWRzZwSkFDaSsgTmhRZEFwc1FKRlBDZWxpWUtJbWdlRUpteWxjM1h6dzV5cDl4bklNWU1rWnQ5SGpWaEsvR2VIdHFaSTUrS1VWSlh0U1ZRY3djWURQbyBGSTkzamhXK0RXU2p6WnJHdHMwTlFTd09aVEZvTWFNQmFseTZDVEZaRzJLWFV0M1oxYVF6QzM2cktyRkowY2dVYjZhWlJudVJ3anRJIGxvN0VxM0NMV1N5YTRlSjdhK1ROMmV1ZHZDbGJrMTdJdEZlcG9RTHJweVF5eGtaVGpCWUlpd3FuWHdGLzFtWGVyUWl2dHUrSG9ocDcgdGY3Y1dKbkNUZ0JsZUNRM2JCRWFQaWFDVFJYa05xQkx1OTU1bzJrditOeklJb2dEa0dsQUVmdXdMNTFEWWg5ejNzZEsxeTFBTHlYMiBGeEpMSzNGajMzOU5Zbk8xNlA0ZkVsOEo5SFVTYXl0eFRIRlJZcXJobko2MEFaVTJsTnBETk9VTGFaSDFGcUJYSlM0TGhOOEVDZW9zIE1nYkxXVXgzQUsreHY0K1pLTjZBQ3h4bFp3MHhEemRaS2o3WjZFMUFMeVErOTFXTmNsd2dJVTZ3d1JsaTd4VGt6akE4QlFDU0J4ZkwgK01VaGxuR01ETVlsZnNQdVdzZFNGNEdaYTIyNmlvMU1XNG56UHZrUWJXZ0RuSWxHWUhTQ1RVK1FiT0k5Qk50VFRCN2h4bUVJaCtGVCBLREpHWm9pVnBrQTZLbU5SajkwRTBkdVBObWFOeEoyOVFWaDBSeFdzT01OUmgwSnlESWs3TEJLMWl3NjJCVjFjTEthWHBZMm4rSFdzIEdrWmlkT1pFeXNwM2ZESzRLM1R2SzkwRWlzR2Y2YkQvazZDVHFEcEJadDZFb1RXY1NYUVU1bWhYMUZ2Tm0vWFJpeVFpYXcwWEttRGkgRVhMOWtkVjZGTU11OWt2cHlVRG9CM1NJQjV1WXhwMitmU3I5UDdOYTdJT2lwc1VweFo1QnFJU05UdzFyRnk2YkdyS29JakFiUzl1dSBFS29UMk5vd3FpV0o3Y3FNMEtEOWxUOFgydCtsS3ozUzJsNFovZTR2OXB0WHpjRnluOVpkOG5sSEhjalhhTlpzYUN2S3FsVzZkV1AyIElicjdzZEUyZTY4SDlzeStUdk41SjZud3lkTFV2dHVXZm1vTHVnSDRaZzM0SnpiYkh3Ty93YXZHKzY4VmRKUFhpaHVDL3pjdlVKKzAgMFcydWZ3UVlBR0hLSzJDRk1JcnpBQUFBQUVsRlRrU3VRbUNDIi8+PHJhZGlhbEdyYWRpZW50IGN4PSI3LjM5NCIgY3k9IjUuNDM3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImMiIHI9IjIzLjQxNiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjRUVFIi8+PHN0b3Agb2Zmc2V0PSIuNDMyIiBzdG9wLWNvbG9yPSIjRTZFNkU2Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRTFFMUUxIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBkPSJNMTMgMjNoOC41Yy44MiAwIDEuNS0uNjggMS41LTEuNXYtMTVjMC0uODMtLjY4LTEuNS0xLjUtMS41SDdsNiAxOHoiIGZpbGw9InVybCgjYykiLz48L2c+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTggMTF2LTFoLTF2MWgtMy43NXYxaDUuMzJjLS4yLjQ5LS42IDEuMy0xLjMyIDIuMTQtLjUxLS42LS44Ni0xLjE4LTEuMS0xLjY0aC0xLjExYy4zNi44NC45IDEuNjYgMS41MiAyLjM4bC0yLjYgMi41OC43MS43MSAyLjU4LTIuNTggMi41OCAyLjU4LjcxLS43MS0yLjYtMi41OGMuNzQtLjg2IDEuMzMtMS44NSAxLjY4LTIuODhIMjF2LTFoLTN6IiBmaWxsPSIjNjA3RDhCIi8+PGxpbmVhckdyYWRpZW50IGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBpZD0iZCIgeDE9IjEyLjMzMyIgeDI9IjIzIiB5MT0iMTQiIHkyPSIxNCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMjEyMTIxIiBzdG9wLW9wYWNpdHk9Ii4xIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMjEyMTIxIiBzdG9wLW9wYWNpdHk9Ii4wMiIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTIuMzMgNUwyMyAxNS42N1YyM0gxMyIgZmlsbD0idXJsKCNkKSIvPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iOCIgb3BhY2l0eT0iLjEiIG92ZXJmbG93PSJ2aXNpYmxlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC41IDE3LjUpIiB3aWR0aD0iOSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBb0FBQUFKQ0FZQUFBQUxwcjBUQUFBQUNYQklXWE1BQUFzU0FBQUxFZ0hTM1g3OEFBQUEgR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU9GSlJFRlVlTnAwVUQxTEEwRVVuTGU3SnNKaCBDaUZwTFZOWWFTMzQxMUw3Wi9JblVwZ21xUklSTEd4RU9FVlFzb1JjYm5lY3U2QUdUQjRNNzJ2ZXZqZHIrRFBEZitOdnMzODU4cTdhIEZwNG9ET1pCSjVkSk1DVkR6SjJUK0xZWXBlQXlUajM5VU1OWGhBMDBIQUJYS3k4OWJZNlVscXJGb01IbTVRSzBhL21iWFl4U3l5Wm0gZUNCVGU1S3I2OCtOR3ErS3Y0UXpvU004cTNaUDhpbWpYamRFdi82WXNuZCtxNmE3VU40WEZzS1lsaWZiVUpYdmozZnR5dEFxTTF2SiB6NlVnR3ZnaUliTjkwZzhSVmRkRktaL3B6cVgrWTVORHRkb25IVEk3MXZnV1lBRHpXbWR4LzRmcG1RQUFBQUJKUlU1RXJrSmdnZz09Ii8+PHBhdGggZD0iTTE3IDE5bC00IDQtMS4zMy00IiBmaWxsPSIjM0Y1MUI1Ii8+PC9nPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIxLjUgNUg3bC4wNC4xMkgyMS41Yy44MiAwIDEuNS42NyAxLjUgMS41VjYuNWMwLS44My0uNjgtMS41LTEuNS0xLjV6IiBmaWxsPSIjMjEyMTIxIiBmaWxsLW9wYWNpdHk9Ii4wMiIvPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIxLjUgMjIuODhIMTNMMTEuNzEgMTloLS4wNEwxMyAyM2g4LjVjLjgyIDAgMS41LS42OCAxLjUtMS41di0uMTJjMCAuODItLjY4IDEuNS0xLjUgMS41eiIgZmlsbD0iIzIxMjEyMSIgZmlsbC1vcGFjaXR5PSIuMSIvPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTEyLjk3IDIyLjkxTDEzIDIzbDQtNGgtLjEyIiBmaWxsPSIjMUEyMzdFIiBmaWxsLW9wYWNpdHk9Ii4yIi8+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBkPSJNMTEuNjcgMTkuMTJoNS4yMUwxNyAxOWgtNS4zMyIgZmlsbD0iIzFBMjM3RSIgZmlsbC1vcGFjaXR5PSIuMSIvPjxnIGNsaXAtcGF0aD0idXJsKCNiKSI+PGltYWdlIGhlaWdodD0iMjIiIG9wYWNpdHk9Ii4yIiBvdmVyZmxvdz0idmlzaWJsZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLS41IC0uNSkiIHdpZHRoPSIyMCIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCVUFBQUFYQ0FZQUFBRGszd1NkQUFBQUNYQklXWE1BQUFzU0FBQUxFZ0hTM1g3OEFBQUEgR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQVVwSlJFRlVlTnFzbGJGT3d6QVFRTy9zUUNSYyBzcUFPbFJnck1qQ1ZyK0VyK0laK0F4L1dUQ3dWZXlWUWw5SU9RWTJQYzJxaE5Gd2NHc2RTckhOc1A1MmZwVFBDZVVQNFg2UFFaQTJaIFBpNDFscVhScENZS3RBNXRzRkJWRmRvOXBlbmg4MjFaU1dzUzExMlgxaEJkUFhHNDRCU3lRTWFFb0hjSjZRSkx1K0x4cmd1S1FEUUIgVUF1T24zbmZMQVRscWMwcHNtdnV2eVFWaWJmQVJ5YVhvUVBlaDZIazlNdzR1TDJidjN4czMxK1A3VVdxNVJkN0xzdk44YWtnNXpCUCBLVFBTSWdXWE4zT0NRbzZBUmtwaUNOUWQzNm1hZWdWNkRHZ2pXMWxCSkZSV01CUWFWREFVR2xRd0F2U3ZnaGhvcDRJWWFLZUNrYURuIENtS2hvb0pZcUtoQXRhbzU5VlYxb2Qzdzk5QlU0RXNmY1FWWHJ1QnVQQk12Z0pJdjFzZG1QU1ZBM0hPaEx2eS9iQ0MwcURrOHJqUDkgVHRXQjM2Z1Z2MUhydmplcTc5MlNqb2tSRi9aN0Z6OENEQUM4RW1XREtWR0RMZ0FBQUFCSlJVNUVya0pnZ2c9PSIvPjxwYXRoIGQ9Ik0xMSAxSDIuNUMxLjY4IDEgMSAxLjY4IDEgMi41djE1YzAgLjgzLjY4IDEuNSAxLjUgMS41SDE3TDExIDF6IiBmaWxsPSIjNDI4NUY0Ii8+PC9nPjxwYXRoIGNsaXAtcGF0aD0idXJsKCNiKSIgZD0iTTIuNSAxQzEuNjggMSAxIDEuNjggMSAyLjV2LjEyYzAtLjgyLjY4LTEuNSAxLjUtMS41SDExVjFIMi41eiIgZmlsbD0iI0ZGRiIgZmlsbC1vcGFjaXR5PSIuMDIiLz48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGQ9Ik0xMSAxdi4xMmw1LjkyIDE3Ljc1SDIuNWMtLjgyIDAtMS41LS42Ny0xLjUtMS41di4xMmMwIC44NC42OCAxLjUxIDEuNSAxLjUxSDE3TDExIDF6IiBmaWxsPSIjMjEyMTIxIiBmaWxsLW9wYWNpdHk9Ii4xIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2IpIj48cGF0aCBkPSJNNy41IDEwdjEuMmgxLjk4Yy0uMDguNTItLjYgMS41MS0xLjk4IDEuNTEtMS4yIDAtMi4xNy0uOTktMi4xNy0yLjIxUzYuMyA4LjI5IDcuNSA4LjI5Yy42OCAwIDEuMTMuMjkgMS4zOS41NGwuOTUtLjkyQzkuMjQgNy4zNSA4LjQ0IDcgNy41IDcgNS41NyA3IDQgOC41NyA0IDEwLjVTNS41NyAxNCA3LjUgMTRjMi4wMiAwIDMuMzYtMS40MiAzLjM2LTMuNDIgMC0uMjMtLjAyLS40MS0uMDYtLjU4SDcuNXoiIGZpbGw9IiNFRUUiLz48cGF0aCBkPSJNNCA3aDd2N0g0eiIgZmlsbD0ibm9uZSIvPjwvZz48cmFkaWFsR3JhZGllbnQgY3g9IjEuNDU3IiBjeT0iMS40MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJlIiByPSIyOS43OTIiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI0ZGRiIgc3RvcC1vcGFjaXR5PSIuMSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0ZGRiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9yYWRpYWxHcmFkaWVudD48cGF0aCBkPSJNMjEuNSA1aC05LjE3TDExIDFIMi41QzEuNjggMSAxIDEuNjggMSAyLjV2MTVjMCAuODMuNjggMS41IDEuNSAxLjVoOS4xN0wxMyAyM2g4LjVjLjgyIDAgMS41LS42OCAxLjUtMS41di0xNWMwLS44My0uNjgtMS41LTEuNS0xLjV6IiBmaWxsPSJ1cmwoI2UpIi8+PC9zdmc+"}},"time_used":49,"timings":{"blocked":0,"dns":3,"connect":30,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_42x16dp.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://onchainopt.com/","date":"2026-07-27T12:05:15.368Z","timestamp":1785153915368,"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 /images/branding/googlelogo/1x/googlelogo_color_42x16dp.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://onchainopt.com/\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/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 910\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:14 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:14 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 02 Nov 2023 22:48:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 428101\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":910,"size_decoded":1583,"mime_type":"image/png","magic":"PNG image data, 42 x 16, 8-bit/color RGBA, non-interlaced","md5":"efa6bb2bfe459bc6f4bdafa3db0383f6","sha1":"52d15ce52fe50643e542c17812de43f4ed1b6ee0","sha256":"6318394f737c66f0e2ccfcd88e3935c6667633a1b95fa29fba2b75431d55eef2","sha512":"e23c04d8997f5c2f92070e09261b7ee50d9df8753f45cf66f604f0874ffa8d99e947c97c528ec02a2c3fbe8e43d840b343a7d0225532980d5da95031216415b7","ssdeep":"","tlshash":"491184a73cd1dc6854a47a87aa91b864ec250f1b91a220981237b42277313444fdc8f7","first_seen":"2023-04-05T07:39:29Z","last_seen":"2026-07-30T06:08:30.8939Z","times_seen":55641,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAACoAAAAQCAYAAABgIu2QAAADVUlEQVR4AcxUA9AdPRRNbdu2+7K//+4mW9vWqNbYU2z21bZt27Zt+6nK5lUftrkPO7V1Zu7iZnJycoUc2HYC4hZVKROjqCnmEdMaoDJRHv1g4HmNKuCFjVX0OajeO5CWML5eCrSlnaGMr5VCr4X+mdXrhwpd0GgKXtDgAPoUIJIgTDPFE42JalF37952QspE+6rG0zy/hVDdsDSInHy3Qp8Jr6pk99A/s7333ttRdrD3ramDRHbd/STTp4QG6F+5fNUq5kCvg5qWmxr8qWuincTxsWAu1bRKR42avCT4H1TFeXxU2ePTFRvMo7t2AmlI4ObkeWM2J9kTsyWJDSa/d8ZvSRFaU3vzzJohNkFA5Fnx8sz9mmGJt4XeVV2ZvTreFuWXZy29rqrJEYAwMUYKuYccgM+aAKRR0wweayOUwEdc++Tm034dK/e1in96CT7nocoO20YJpLh9MVsSnX65ObHyclviP+X3ORAbvri1kjJ+mxi8EmWiIjHFKeB9W6hXV+Z7iXITuMF8RBHyPDeKkHSDTeqAYO7XU6SavDgYYWKEjEYgoP6RG27pp7iOUwI6bgQ+MShn+XAkkzprMZuTNgLfxlmNC0AUNca7OIEwecP3CZXCglLsCMk7xEtcDyAwcAYC/GfyLHKTRQ2xEBoIvYbave2U0n8exhWkPZKS2o7Qyrgh+F70z1khnO5EzlrMpqQNwbdhVuvC4cwEO0bXNBas9yGhYF6qTPRWUd4ZjRDVJprJ42TktgEJzE/ZXM3k/0kp9CExHheC1Huo67CPuo7fr4JLy2YqC2Ughe6NpP6wTPfxFxuTlH6xJUlZKAOoWeCH0QfjTmVBHM4SP/Zeoboy20OUu16C//GSioW8FM/1UNwavQ4pVKUmP/x6bRJTbAdiFAFslkTHosXuJcqhe6RCPlh7tjlZwZhNiY46zbQpycH4rcnzRUuJGmKPw834ifcJffzffxl8FG8A7ohd9tGKFdEHR0g/q4wzRt5CKLI6LggG36+vQWRB8LONyQrAt8PZ25ta7/+sIBhMFBnd7pAp9AFAP/gJLmb3RgnRz4QUNhm6HsqKuIN1iclvUWZNQ78b/hnoT0MMMVsz+Qtq8JfQuGrvR+nR74omi+xEYOjVBgEYBQDoQD6ep9ySZwAAAABJRU5ErkJggg=="}},"time_used":17,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/element/log?format=json\u0026hasfast=true\u0026authuser=0","fqdn":"translate.googleapis.com","domain":"translate.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":"fetch","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:25.370Z","timestamp":1785153925370,"http_version":"HTTP/3","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":"OPTIONS /element/log?format=json\u0026hasfast=true\u0026authuser=0 HTTP/1.1\r\nHost: translate.googleapis.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\nAccess-Control-Request-Method: POST\r\nAccess-Control-Request-Headers: content-encoding,content-type,x-goog-authuser\r\nReferer: https://onchainopt.com/\r\nOrigin: https://onchainopt.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"OPTIONS"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: https://onchainopt.com\r\naccess-control-allow-methods: GET, POST, OPTIONS\r\naccess-control-max-age: 86400\r\naccess-control-allow-credentials: true\r\naccess-control-allow-headers: X-Playlog-Web,authorization,content-encoding,content-type,x-goog-authuser,origin\r\ncontent-type: text/plain; charset=UTF-8\r\ndate: Mon, 27 Jul 2026 12:05:25 GMT\r\nserver: Playlog\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\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":0,"size_decoded":522,"mime_type":"text/plain; charset=UTF-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-30T08:24:56.947858Z","times_seen":17613206,"resource_available":true,"data":""}},"time_used":31,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":31,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/js/firebase/firebase-8.3.2.js","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.566Z","timestamp":1785153914566,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/global/js/firebase/firebase-8.3.2.js HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 238467\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":859901,"size_decoded":238706,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65535), with no line terminators","md5":"3aeb031c1d596281cfb0bc798ad68c35","sha1":"f3cbd0c473069e581705448366b33fcf71e0fdb9","sha256":"c6129ac86f15d92723bbb81e97f5ab4bcfd97f0744ea5898d2402087520c532b","sha512":"5fcc9700c5c7842dcd0f7c18a1028d6a6bc00536d03ced45d83c4ad7ed7b8530ddde45ec402f4fcb79c8ca87c4541af9786fed00817fb5437e08a4c75e9817ce","ssdeep":"6144:K8YqbosMLHtk4OLs/8wWaoFwApF+GzJXZaGQqdxQUdcujbva18nsLDMX4teWXs4v:nYqbrKOQ/YRQp18nl4sSG+z","tlshash":"5305b5ccb692b062439360b5507f410bf33b685da40e40acf669e9d67cb954e923bf78","first_seen":"2023-07-24T14:01:25Z","last_seen":"2026-07-30T06:02:32.545529Z","times_seen":171,"resource_available":true,"data":"IWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuZmlyZWJhc2U9ZSgpfSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbih0KXt2YXIgZSxuLHMscixpLG8sYSx1LGMsaDtmdW5jdGlvbiBsKHQpe2lmKCJzdHJpbmciIT10eXBlb2YgdCYmKHQ9U3RyaW5nKHQpKSwvW15hLXowLTlcLSMkJSYnKisuXF5fYHx+XS9pLnRlc3QodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjaGFyYWN0ZXIgaW4gaGVhZGVyIGZpZWxkIG5hbWUiKTtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIHQ9InN0cmluZyIhPXR5cGVvZiB0P1N0cmluZyh0KTp0fWZ1bmN0aW9uIHAoZSl7dmFyIHQ9e25leHQ6ZnVuY3Rpb24oKXt2YXIgdD1lLnNoaWZ0KCk7cmV0dXJue2RvbmU6dm9pZCAwPT09dCx2YWx1ZTp0fX19O3JldHVybiBuJiYodFtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHR9KSx0fWZ1bmN0aW9uIGQoZSl7dGhpcy5tYXA9e30sZSBpbnN0YW5jZW9mIGQ/ZS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dGhpcy5hcHBlbmQoZSx0KX0sdGhpcyk6QXJyYXkuaXNBcnJheShlKT9lLmZvckVhY2goZnVuY3Rpb24odCl7dGhpcy5hcHBlbmQodFswXSx0WzFdKX0sdGhpcyk6ZSYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkuZm9yRWFjaChmdW5jdGlvbih0KXt0aGlzLmFwcGVuZCh0LGVbdF0pfSx0aGlzKX1mdW5jdGlvbiB2KHQpe2lmKHQuYm9keVVzZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoIkFscmVhZHkgcmVhZCIpKTt0LmJvZHlVc2VkPSEwfWZ1bmN0aW9uIGcobil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7bi5vbmxvYWQ9ZnVuY3Rpb24oKXt0KG4ucmVzdWx0KX0sbi5vbmVycm9yPWZ1bmN0aW9uKCl7ZShuLmVycm9yKX19KX1mdW5jdGlvbiB5KHQpe3ZhciBlPW5ldyBGaWxlUmVhZGVyLG49ZyhlKTtyZXR1cm4gZS5yZWFkQXNBcnJheUJ1ZmZlcih0KSxufWZ1bmN0aW9uIG0odCl7aWYodC5zbGljZSlyZXR1cm4gdC5zbGljZSgwKTt2YXIgZT1uZXcgVWludDhBcnJheSh0LmJ5dGVMZW5ndGgpO3JldHVybiBlLnNldChuZXcgVWludDhBcnJheSh0KSksZS5idWZmZXJ9ZnVuY3Rpb24gYigpe3JldHVybiB0aGlzLmJvZHlVc2VkPSExLHRoaXMuX2luaXRCb2R5PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2JvZHlJbml0PXQpaWYoInN0cmluZyI9PXR5cGVvZiB0KXRoaXMuX2JvZHlUZXh0PXQ7ZWxzZSBpZihzJiZCbG9iLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpKXRoaXMuX2JvZHlCbG9iPXQ7ZWxzZSBpZihyJiZGb3JtRGF0YS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KSl0aGlzLl9ib2R5Rm9ybURhdGE9dDtlbHNlIGlmKGUmJlVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KSl0aGlzLl9ib2R5VGV4dD10LnRvU3RyaW5nKCk7ZWxzZSBpZihpJiZzJiZhKHQpKXRoaXMuX2JvZHlBcnJheUJ1ZmZlcj1tKHQuYnVmZmVyKSx0aGlzLl9ib2R5SW5pdD1uZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSk7ZWxzZXtpZighaXx8IUFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpJiYhdSh0KSl0aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIEJvZHlJbml0IHR5cGUiKTt0aGlzLl9ib2R5QXJyYXlCdWZmZXI9bSh0KX1lbHNlIHRoaXMuX2JvZHlUZXh0PSIiO3RoaXMuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpfHwoInN0cmluZyI9PXR5cGVvZiB0P3RoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpOnRoaXMuX2JvZHlCbG9iJiZ0aGlzLl9ib2R5QmxvYi50eXBlP3RoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsdGhpcy5fYm9keUJsb2IudHlwZSk6ZSYmVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpJiZ0aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIpKX0scyYmKHRoaXMuYmxvYj1mdW5jdGlvbigpe3ZhciB0PXYodGhpcyk7aWYodClyZXR1cm4gdDtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlCbG9iKTtpZih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSkpO2lmKHRoaXMuX2JvZHlGb3JtRGF0YSl0aHJvdyBuZXcgRXJyb3IoImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgYmxvYiIpO3JldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpfSx0aGlzLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JvZHlBcnJheUJ1ZmZlcj92KHRoaXMpfHxQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUFycmF5QnVmZmVyKTp0aGlzLmJsb2IoKS50aGVuKHkpfSksdGhpcy50ZXh0PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPXYodGhpcyk7aWYobilyZXR1cm4gbjtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gdD10aGlzLl9ib2R5QmxvYixlPW5ldyBGaWxlUmVhZGVyLG49ZyhlKSxlLnJlYWRBc1RleHQodCksbjtpZih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShmdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IFVpbnQ4QXJyYXkodCksbj1uZXcgQXJyYXkoZS5sZW5ndGgpLHI9MDtyPGUubGVuZ3RoO3IrKyluW3JdPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtyXSk7cmV0dXJuIG4uam9pbigiIil9KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpO2lmKHRoaXMuX2JvZHlGb3JtRGF0YSl0aHJvdyBuZXcgRXJyb3IoImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgdGV4dCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keVRleHQpfSxyJiYodGhpcy5mb3JtRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKF8pfSksdGhpcy5qc29uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oSlNPTi5wYXJzZSl9LHRoaXN9ZnVuY3Rpb24gdyh0LGUpe3ZhciBuLHI9KGU9ZXx8e30pLmJvZHk7aWYodCBpbnN0YW5jZW9mIHcpe2lmKHQuYm9keVVzZWQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQWxyZWFkeSByZWFkIik7dGhpcy51cmw9dC51cmwsdGhpcy5jcmVkZW50aWFscz10LmNyZWRlbnRpYWxzLGUuaGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgZCh0LmhlYWRlcnMpKSx0aGlzLm1ldGhvZD10Lm1ldGhvZCx0aGlzLm1vZGU9dC5tb2RlLHJ8fG51bGw9PXQuX2JvZHlJbml0fHwocj10Ll9ib2R5SW5pdCx0LmJvZHlVc2VkPSEwKX1lbHNlIHRoaXMudXJsPVN0cmluZyh0KTtpZih0aGlzLmNyZWRlbnRpYWxzPWUuY3JlZGVudGlhbHN8fHRoaXMuY3JlZGVudGlhbHN8fCJvbWl0IiwhZS5oZWFkZXJzJiZ0aGlzLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IGQoZS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9KG49ZS5tZXRob2R8fHRoaXMubWV0aG9kfHwiR0VUIix0PW4udG9VcHBlckNhc2UoKSwtMTxjLmluZGV4T2YodCk/dDpuKSx0aGlzLm1vZGU9ZS5tb2RlfHx0aGlzLm1vZGV8fG51bGwsdGhpcy5yZWZlcnJlcj1udWxsLCgiR0VUIj09PXRoaXMubWV0aG9kfHwiSEVBRCI9PT10aGlzLm1ldGhvZCkmJnIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMiKTt0aGlzLl9pbml0Qm9keShyKX1mdW5jdGlvbiBfKHQpe3ZhciBuPW5ldyBGb3JtRGF0YTtyZXR1cm4gdC50cmltKCkuc3BsaXQoIiYiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlO3QmJih0PShlPXQuc3BsaXQoIj0iKSkuc2hpZnQoKS5yZXBsYWNlKC9cKy9nLCIgIiksZT1lLmpvaW4oIj0iKS5yZXBsYWNlKC9cKy9nLCIgIiksbi5hcHBlbmQoZGVjb2RlVVJJQ29tcG9uZW50KHQpLGRlY29kZVVSSUNvbXBvbmVudChlKSkpfSksbn1mdW5jdGlvbiBJKHQsZSl7ZT1lfHx7fSx0aGlzLnR5cGU9ImRlZmF1bHQiLHRoaXMuc3RhdHVzPXZvaWQgMD09PWUuc3RhdHVzPzIwMDplLnN0YXR1cyx0aGlzLm9rPTIwMDw9dGhpcy5zdGF0dXMmJnRoaXMuc3RhdHVzPDMwMCx0aGlzLnN0YXR1c1RleHQ9InN0YXR1c1RleHQiaW4gZT9lLnN0YXR1c1RleHQ6Ik9LIix0aGlzLmhlYWRlcnM9bmV3IGQoZS5oZWFkZXJzKSx0aGlzLnVybD1lLnVybHx8IiIsdGhpcy5faW5pdEJvZHkodCl9dC5mZXRjaHx8KGU9IlVSTFNlYXJjaFBhcmFtcyJpbiB0LG49IlN5bWJvbCJpbiB0JiYiaXRlcmF0b3IiaW4gU3ltYm9sLHM9IkZpbGVSZWFkZXIiaW4gdCYmIkJsb2IiaW4gdCYmZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBCbG9iLCEwfWNhdGNoKHQpe3JldHVybiExfX0oKSxyPSJGb3JtRGF0YSJpbiB0LChpPSJBcnJheUJ1ZmZlciJpbiB0KSYmKG89WyJbb2JqZWN0IEludDhBcnJheV0iLCJbb2JqZWN0IFVpbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLCJbb2JqZWN0IEludDE2QXJyYXldIiwiW29iamVjdCBVaW50MTZBcnJheV0iLCJbb2JqZWN0IEludDMyQXJyYXldIiwiW29iamVjdCBVaW50MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXSxhPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZEYXRhVmlldy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KX0sdT1BcnJheUJ1ZmZlci5pc1ZpZXd8fGZ1bmN0aW9uKHQpe3JldHVybiB0JiYtMTxvLmluZGV4T2YoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKX0pLGQucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbih0LGUpe3Q9bCh0KSxlPWYoZSk7dmFyIG49dGhpcy5tYXBbdF07dGhpcy5tYXBbdF09bj9uKyIsIitlOmV9LGQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtkZWxldGUgdGhpcy5tYXBbbCh0KV19LGQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdD1sKHQpLHRoaXMuaGFzKHQpP3RoaXMubWFwW3RdOm51bGx9LGQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkobCh0KSl9LGQucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3RoaXMubWFwW2wodCldPWYoZSl9LGQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gdGhpcy5tYXApdGhpcy5tYXAuaGFzT3duUHJvcGVydHkobikmJnQuY2FsbChlLHRoaXMubWFwW25dLG4sdGhpcyl9LGQucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bi5wdXNoKGUpfSkscChuKX0sZC5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbih0KXtlLnB1c2godCl9KSxwKGUpfSxkLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe24ucHVzaChbZSx0XSl9KSxwKG4pfSxuJiYoZC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1kLnByb3RvdHlwZS5lbnRyaWVzKSxjPVsiREVMRVRFIiwiR0VUIiwiSEVBRCIsIk9QVElPTlMiLCJQT1NUIiwiUFVUIl0sdy5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHcodGhpcyx7Ym9keTp0aGlzLl9ib2R5SW5pdH0pfSxiLmNhbGwody5wcm90b3R5cGUpLGIuY2FsbChJLnByb3RvdHlwZSksSS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcy5fYm9keUluaXQse3N0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnRoaXMuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBkKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LEkuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgSShudWxsLHtzdGF0dXM6MCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIHQudHlwZT0iZXJyb3IiLHR9LGg9WzMwMSwzMDIsMzAzLDMwNywzMDhdLEkucmVkaXJlY3Q9ZnVuY3Rpb24odCxlKXtpZigtMT09PWguaW5kZXhPZihlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBzdGF0dXMgY29kZSIpO3JldHVybiBuZXcgSShudWxsLHtzdGF0dXM6ZSxoZWFkZXJzOntsb2NhdGlvbjp0fX0pfSx0LkhlYWRlcnM9ZCx0LlJlcXVlc3Q9dyx0LlJlc3BvbnNlPUksdC5mZXRjaD1mdW5jdGlvbihuLG8pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyLHQpe3ZhciBlPW5ldyB3KG4sbyksaT1uZXcgWE1MSHR0cFJlcXVlc3Q7aS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgbix0PXtzdGF0dXM6aS5zdGF0dXMsc3RhdHVzVGV4dDppLnN0YXR1c1RleHQsaGVhZGVyczooZT1pLmdldEFsbFJlc3BvbnNlSGVhZGVycygpfHwiIixuPW5ldyBkLGUucmVwbGFjZSgvXHI/XG5bXHQgXSsvZywiICIpLnNwbGl0KC9ccj9cbi8pLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiOiIpLHQ9ZS5zaGlmdCgpLnRyaW0oKTt0JiYoZT1lLmpvaW4oIjoiKS50cmltKCksbi5hcHBlbmQodCxlKSl9KSxuKX07dC51cmw9InJlc3BvbnNlVVJMImluIGk/aS5yZXNwb25zZVVSTDp0LmhlYWRlcnMuZ2V0KCJYLVJlcXVlc3QtVVJMIik7dmFyIGU9InJlc3BvbnNlImluIGk/aS5yZXNwb25zZTppLnJlc3BvbnNlVGV4dDtyKG5ldyBJKGUsdCkpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXt0KG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9LGkub250aW1lb3V0PWZ1bmN0aW9uKCl7dChuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSxpLm9wZW4oZS5tZXRob2QsZS51cmwsITApLCJpbmNsdWRlIj09PWUuY3JlZGVudGlhbHM/aS53aXRoQ3JlZGVudGlhbHM9ITA6Im9taXQiPT09ZS5jcmVkZW50aWFscyYmKGkud2l0aENyZWRlbnRpYWxzPSExKSwicmVzcG9uc2VUeXBlImluIGkmJnMmJihpLnJlc3BvbnNlVHlwZT0iYmxvYiIpLGUuaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aS5zZXRSZXF1ZXN0SGVhZGVyKGUsdCl9KSxpLnNlbmQodm9pZCAwPT09ZS5fYm9keUluaXQ/bnVsbDplLl9ib2R5SW5pdCl9KX0sdC5mZXRjaC5wb2x5ZmlsbD0hMCl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnZvaWQgMCk7dmFyIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp7fTtmdW5jdGlvbiBlKHQpe3ZhciBlPXtleHBvcnRzOnt9fTtyZXR1cm4gdChlLGUuZXhwb3J0cyksZS5leHBvcnRzfWZ1bmN0aW9uIGcodCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fWZ1bmN0aW9uIHIodCl7cmV0dXJuIGQuY2FsbCh0KS5zbGljZSg4LC0xKX1mdW5jdGlvbiBzKHQpe2lmKG51bGw9PXQpdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3QpO3JldHVybiB0fWZ1bmN0aW9uIHUodCl7cmV0dXJuIF8ocyh0KSl9ZnVuY3Rpb24geSh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/bnVsbCE9PXQ6ImZ1bmN0aW9uIj09dHlwZW9mIHR9ZnVuY3Rpb24gaSh0LGUpe2lmKCF5KHQpKXJldHVybiB0O3ZhciBuLHI7aWYoZSYmImZ1bmN0aW9uIj09dHlwZW9mKG49dC50b1N0cmluZykmJiF5KHI9bi5jYWxsKHQpKSlyZXR1cm4gcjtpZigiZnVuY3Rpb24iPT10eXBlb2Yobj10LnZhbHVlT2YpJiYheShyPW4uY2FsbCh0KSkpcmV0dXJuIHI7aWYoIWUmJiJmdW5jdGlvbiI9PXR5cGVvZihuPXQudG9TdHJpbmcpJiYheShyPW4uY2FsbCh0KSkpcmV0dXJuIHI7dGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIEkuY2FsbCh0LGUpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIEU/VC5jcmVhdGVFbGVtZW50KHQpOnt9fWZ1bmN0aW9uIG0odCl7aWYoIXkodCkpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKTtyZXR1cm4gdH1mdW5jdGlvbiBoKGUsbil7dHJ5e1IoYixlLG4pfWNhdGNoKHQpe2JbZV09bn1yZXR1cm4gbn12YXIgbz1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT1NYXRoJiZ0fSxiPW8oIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8bygib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8bygib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxvKCJvYmplY3QiPT10eXBlb2YgdCYmdCl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksZj0hZyhmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSxhPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixwPXtmOmwmJiFhLmNhbGwoezE6Mn0sMSk/ZnVuY3Rpb24odCl7dD1sKHRoaXMsdCk7cmV0dXJuISF0JiZ0LmVudW1lcmFibGV9OmF9LGQ9e30udG9TdHJpbmcsdz0iIi5zcGxpdCxfPWcoZnVuY3Rpb24oKXtyZXR1cm4hT2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09cih0KT93LmNhbGwodCwiIik6T2JqZWN0KHQpfTpPYmplY3QsST17fS5oYXNPd25Qcm9wZXJ0eSxUPWIuZG9jdW1lbnQsRT15KFQpJiZ5KFQuY3JlYXRlRWxlbWVudCksUz0hZiYmIWcoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KG4oImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pLEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixOPXtmOmY/QzpmdW5jdGlvbih0LGUpe2lmKHQ9dSh0KSxlPWkoZSwhMCksUyl0cnl7cmV0dXJuIEModCxlKX1jYXRjaCh0KXt9aWYoYyh0LGUpKXJldHVybiB2KCFwLmYuY2FsbCh0LGUpLHRbZV0pfX0sQT1PYmplY3QuZGVmaW5lUHJvcGVydHksaz17ZjpmP0E6ZnVuY3Rpb24odCxlLG4pe2lmKG0odCksZT1pKGUsITApLG0obiksUyl0cnl7cmV0dXJuIEEodCxlLG4pfWNhdGNoKHQpe31pZigiZ2V0ImluIG58fCJzZXQiaW4gbil0aHJvdyBUeXBlRXJyb3IoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIG4mJih0W2VdPW4udmFsdWUpLHR9fSxSPWY/ZnVuY3Rpb24odCxlLG4pe3JldHVybiBrLmYodCxlLHYoMSxuKSl9OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1uLHR9LFA9Il9fY29yZS1qc19zaGFyZWRfXyIsTz1iW1BdfHxoKFAse30pLEQ9RnVuY3Rpb24udG9TdHJpbmc7ImZ1bmN0aW9uIiE9dHlwZW9mIE8uaW5zcGVjdFNvdXJjZSYmKE8uaW5zcGVjdFNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gRC5jYWxsKHQpfSk7ZnVuY3Rpb24geCh0KXtyZXR1cm4iU3ltYm9sKCIrU3RyaW5nKHZvaWQgMD09PXQ/IiI6dCkrIilfIisoKytRK1kpLnRvU3RyaW5nKDM2KX12YXIgTCxNLEYsVSxqLHEsVixCLEs9Ty5pbnNwZWN0U291cmNlLFc9Yi5XZWFrTWFwLEg9ImZ1bmN0aW9uIj09dHlwZW9mIFcmJi9uYXRpdmUgY29kZS8udGVzdChLKFcpKSxHPSExLHo9ZShmdW5jdGlvbih0KXsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9bdF18fChPW3RdPXZvaWQgMCE9PWU/ZTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjguMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjAgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9KSxRPTAsWT1NYXRoLnJhbmRvbSgpLFg9eigia2V5cyIpLEo9ZnVuY3Rpb24odCl7cmV0dXJuIFhbdF18fChYW3RdPXgodCkpfSwkPXt9LFo9Yi5XZWFrTWFwO1Y9SD8oTD1PLnN0YXRlfHwoTy5zdGF0ZT1uZXcgWiksTT1MLmdldCxGPUwuaGFzLFU9TC5zZXQsaj1mdW5jdGlvbih0LGUpe3JldHVybiBlLmZhY2FkZT10LFUuY2FsbChMLHQsZSksZX0scT1mdW5jdGlvbih0KXtyZXR1cm4gTS5jYWxsKEwsdCl8fHt9fSxmdW5jdGlvbih0KXtyZXR1cm4gRi5jYWxsKEwsdCl9KTooQj1KKCJzdGF0ZSIpLCRbQl09ITAsaj1mdW5jdGlvbih0LGUpe3JldHVybiBlLmZhY2FkZT10LFIodCxCLGUpLGV9LHE9ZnVuY3Rpb24odCl7cmV0dXJuIGModCxCKT90W0JdOnt9fSxmdW5jdGlvbih0KXtyZXR1cm4gYyh0LEIpfSk7ZnVuY3Rpb24gdHQodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDp2b2lkIDB9ZnVuY3Rpb24gZXQodCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3R0KHB0W3RdKXx8dHQoYlt0XSk6cHRbdF0mJnB0W3RdW2VdfHxiW3RdJiZiW3RdW2VdfWZ1bmN0aW9uIG50KHQpe3JldHVybiBpc05hTih0PSt0KT8wOigwPHQ/dnQ6ZHQpKHQpfWZ1bmN0aW9uIHJ0KHQpe3JldHVybiAwPHQ/Z3QobnQodCksOTAwNzE5OTI1NDc0MDk5MSk6MH1mdW5jdGlvbiBpdCh0LGUpe3ZhciBuLHI9dSh0KSxpPTAsbz1bXTtmb3IobiBpbiByKSFjKCQsbikmJmMocixuKSYmby5wdXNoKG4pO2Zvcig7ZS5sZW5ndGg+aTspYyhyLG49ZVtpKytdKSYmKH53dChvLG4pfHxvLnB1c2gobikpO3JldHVybiBvfWZ1bmN0aW9uIG90KHQsZSl7Zm9yKHZhciBuPVN0KGUpLHI9ay5mLGk9Ti5mLG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIHM9bltvXTtjKHQscyl8fHIodCxzLGkoZSxzKSl9fWZ1bmN0aW9uIHN0KHQsZSl7dmFyIG4scixpLG89dC50YXJnZXQscz10Lmdsb2JhbCxhPXQuc3RhdCx1PXM/YjphP2Jbb118fGgobyx7fSk6KGJbb118fHt9KS5wcm90b3R5cGU7aWYodSlmb3IobiBpbiBlKXtpZihyPWVbbl0saT10Lm5vVGFyZ2V0R2V0PyhpPU90KHUsbikpJiZpLnZhbHVlOnVbbl0sIVB0KHM/bjpvKyhhPyIuIjoiIyIpK24sdC5mb3JjZWQpJiZ2b2lkIDAhPT1pKXtpZih0eXBlb2Ygcj09dHlwZW9mIGkpY29udGludWU7b3QocixpKX0odC5zaGFtfHxpJiZpLnNoYW0pJiZSKHIsInNoYW0iLCEwKSxmdCh1LG4scix0KX19ZnVuY3Rpb24gYXQodCl7cmV0dXJuIE9iamVjdChzKHQpKX1mdW5jdGlvbiB1dCgpe31mdW5jdGlvbiBjdCh0KXtyZXR1cm4iPHNjcmlwdD4iK3QrIjwvIitWdCsiPiJ9dmFyIGh0LGx0PXtzZXQ6aixnZXQ6cSxoYXM6VixlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBWKHQpP3EodCk6aih0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZTtpZigheSh0KXx8KGU9cSh0KSkudHlwZSE9PW4pdGhyb3cgVHlwZUVycm9yKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrbisiIHJlcXVpcmVkIik7cmV0dXJuIGV9fX0sZnQ9ZShmdW5jdGlvbih0KXt2YXIgZT1sdC5nZXQsYT1sdC5lbmZvcmNlLHU9U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpOyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9ISFyJiYhIXIudW5zYWZlLG89ISFyJiYhIXIuZW51bWVyYWJsZSxzPSEhciYmISFyLm5vVGFyZ2V0R2V0OyJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoInN0cmluZyIhPXR5cGVvZiBlfHxjKG4sIm5hbWUiKXx8UihuLCJuYW1lIixlKSwocj1hKG4pKS5zb3VyY2V8fChyLnNvdXJjZT11LmpvaW4oInN0cmluZyI9PXR5cGVvZiBlP2U6IiIpKSksdCE9PWI/KGk/IXMmJnRbZV0mJihvPSEwKTpkZWxldGUgdFtlXSxvP3RbZV09bjpSKHQsZSxuKSk6bz90W2VdPW46aChlLG4pfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcyYmZSh0aGlzKS5zb3VyY2V8fEsodGhpcyl9KX0pLHB0PWIsZHQ9TWF0aC5jZWlsLHZ0PU1hdGguZmxvb3IsZ3Q9TWF0aC5taW4seXQ9TWF0aC5tYXgsbXQ9TWF0aC5taW4sYnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpPXUodCksbz1ydChpLmxlbmd0aCkscz1mdW5jdGlvbih0LGUpe3Q9bnQodCk7cmV0dXJuIHQ8MD95dCh0K2UsMCk6bXQodCxlKX0obixvKTtpZihhJiZlIT1lKXtmb3IoO3M8bzspaWYoKHI9aVtzKytdKSE9cilyZXR1cm4hMH1lbHNlIGZvcig7czxvO3MrKylpZigoYXx8cyBpbiBpKSYmaVtzXT09PWUpcmV0dXJuIGF8fHN8fDA7cmV0dXJuIWEmJi0xfX0sd3Q9e2luY2x1ZGVzOmJ0KCEwKSxpbmRleE9mOmJ0KCExKX0uaW5kZXhPZixfdD1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLEl0PV90LmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIiksVHQ9e2Y6T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBpdCh0LEl0KX19LEV0PXtmOk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LFN0PWV0KCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbih0KXt2YXIgZT1UdC5mKG0odCkpLG49RXQuZjtyZXR1cm4gbj9lLmNvbmNhdChuKHQpKTplfSxDdD0vI3xcLnByb3RvdHlwZVwuLyxvPWZ1bmN0aW9uKHQsZSl7dD1BdFtOdCh0KV07cmV0dXJuIHQ9PVJ0fHx0IT1rdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBlP2coZSk6ISFlKX0sTnQ9by5ub3JtYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKEN0LCIuIikudG9Mb3dlckNhc2UoKX0sQXQ9by5kYXRhPXt9LGt0PW8uTkFUSVZFPSJOIixSdD1vLlBPTFlGSUxMPSJQIixQdD1vLE90PU4uZix0PSFnKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IHQpIT09dC5wcm90b3R5cGV9KSxEdD1KKCJJRV9QUk9UTyIpLHh0PU9iamVjdC5wcm90b3R5cGUsTHQ9dD9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9YXQodCksYyh0LER0KT90W0R0XToiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25zdHJ1Y3RvciYmdCBpbnN0YW5jZW9mIHQuY29uc3RydWN0b3I/dC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6dCBpbnN0YW5jZW9mIE9iamVjdD94dDpudWxsfSxNdD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgbixyPSExLHQ9e307dHJ5eyhuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIikuc2V0KS5jYWxsKHQsW10pLHI9dCBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKHQpe31yZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gbSh0KSxmdW5jdGlvbih0KXtpZigheSh0KSYmbnVsbCE9PXQpdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBzZXQgIitTdHJpbmcodCkrIiBhcyBhIHByb3RvdHlwZSIpfShlKSxyP24uY2FsbCh0LGUpOnQuX19wcm90b19fPWUsdH19KCk6dm9pZCAwKSxGdD1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7cmV0dXJuIGl0KHQsX3QpfSxVdD1mP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKHQsZSl7bSh0KTtmb3IodmFyIG4scj1GdChlKSxpPXIubGVuZ3RoLG89MDtvPGk7KWsuZih0LG49cltvKytdLGVbbl0pO3JldHVybiB0fSxqdD1ldCgiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiKSxxdD0icHJvdG90eXBlIixWdD0ic2NyaXB0IixCdD1KKCJJRV9QUk9UTyIpLEt0PWZ1bmN0aW9uKCl7dHJ5e2h0PWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2godCl7fXZhciB0O0t0PWh0P2Z1bmN0aW9uKHQpe3Qud3JpdGUoY3QoIiIpKSx0LmNsb3NlKCk7dmFyIGU9dC5wYXJlbnRXaW5kb3cuT2JqZWN0O3JldHVybiB0PW51bGwsZX0oaHQpOigodD1uKCJpZnJhbWUiKSkuc3R5bGUuZGlzcGxheT0ibm9uZSIsanQuYXBwZW5kQ2hpbGQodCksdC5zcmM9U3RyaW5nKCJqYXZhc2NyaXB0OiIpLCh0PXQuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLHQud3JpdGUoY3QoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkYpO2Zvcih2YXIgZT1fdC5sZW5ndGg7ZS0tOylkZWxldGUgS3RbcXRdW190W2VdXTtyZXR1cm4gS3QoKX07JFtCdF09ITA7ZnVuY3Rpb24gV3QodCl7cmV0dXJuIGMoWHQsdCl8fChZdCYmYyhKdCx0KT9YdFt0XT1KdFt0XTpYdFt0XT0kdCgiU3ltYm9sLiIrdCkpLFh0W3RdfWZ1bmN0aW9uIEh0KHQpe3JldHVybiB2b2lkIDAhPT10JiYoWnQuQXJyYXk9PT10fHxlZVt0ZV09PT10KX1mdW5jdGlvbiBHdCh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKHQpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gdH1mdW5jdGlvbiB6dChyLGksdCl7aWYoR3Qociksdm9pZCAwPT09aSlyZXR1cm4gcjtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiByLmNhbGwoaSl9O2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIuY2FsbChpLHQpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIuY2FsbChpLHQsZSl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3JldHVybiByLmNhbGwoaSx0LGUsbil9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiByLmFwcGx5KGksYXJndW1lbnRzKX19dmFyIFF0PU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHQsZSl7dmFyIG47cmV0dXJuIG51bGwhPT10Pyh1dFtxdF09bSh0KSxuPW5ldyB1dCx1dFtxdF09bnVsbCxuW0J0XT10KTpuPUt0KCksdm9pZCAwPT09ZT9uOlV0KG4sZSl9LFl0PSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIWcoZnVuY3Rpb24oKXtyZXR1cm4hU3RyaW5nKFN5bWJvbCgpKX0pLGE9WXQmJiFTeW1ib2wuc2hhbSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IsWHQ9eigid2tzIiksSnQ9Yi5TeW1ib2wsJHQ9YT9KdDpKdCYmSnQud2l0aG91dFNldHRlcnx8eCxadD17fSx0ZT1XdCgiaXRlcmF0b3IiKSxlZT1BcnJheS5wcm90b3R5cGUsUD17fTtQW1d0KCJ0b1N0cmluZ1RhZyIpXT0ieiI7ZnVuY3Rpb24gbmUodCl7aWYobnVsbCE9dClyZXR1cm4gdFtjZV18fHRbIkBAaXRlcmF0b3IiXXx8WnRbdWUodCldfWZ1bmN0aW9uIHJlKHQpe3ZhciBlPXQucmV0dXJuO3JldHVybiB2b2lkIDAhPT1lJiZtKGUuY2FsbCh0KSkudmFsdWV9ZnVuY3Rpb24gaWUodCxlKXt0aGlzLnN0b3BwZWQ9dCx0aGlzLnJlc3VsdD1lfWZ1bmN0aW9uIG9lKHQsZSxuKXtmdW5jdGlvbiByKHQpe3JldHVybiBvJiZyZShvKSxuZXcgaWUoITAsdCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZj8obSh0KSxkP3YodFswXSx0WzFdLHIpOnYodFswXSx0WzFdKSk6ZD92KHQscik6dih0KX12YXIgbyxzLGEsdSxjLGgsbD1uJiZuLnRoYXQsZj0hKCFufHwhbi5BU19FTlRSSUVTKSxwPSEoIW58fCFuLklTX0lURVJBVE9SKSxkPSEoIW58fCFuLklOVEVSUlVQVEVEKSx2PXp0KGUsbCwxK2YrZCk7aWYocClvPXQ7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YocD1uZSh0KSkpdGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGl0ZXJhYmxlIik7aWYoSHQocCkpe2ZvcihzPTAsYT1ydCh0Lmxlbmd0aCk7czxhO3MrKylpZigodT1pKHRbc10pKSYmdSBpbnN0YW5jZW9mIGllKXJldHVybiB1O3JldHVybiBuZXcgaWUoITEpfW89cC5jYWxsKHQpfWZvcihjPW8ubmV4dDshKGg9Yy5jYWxsKG8pKS5kb25lOyl7dHJ5e3U9aShoLnZhbHVlKX1jYXRjaCh0KXt0aHJvdyByZShvKSx0fWlmKCJvYmplY3QiPT10eXBlb2YgdSYmdSYmdSBpbnN0YW5jZW9mIGllKXJldHVybiB1fXJldHVybiBuZXcgaWUoITEpfXZhciBXPSJbb2JqZWN0IHpdIj09PVN0cmluZyhQKSxzZT1XdCgidG9TdHJpbmdUYWciKSxhZT0iQXJndW1lbnRzIj09cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLHVlPVc/cjpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdm9pZCAwPT09dD8iVW5kZWZpbmVkIjpudWxsPT09dD8iTnVsbCI6InN0cmluZyI9PXR5cGVvZih0PWZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiB0W2VdfWNhdGNoKHQpe319KGU9T2JqZWN0KHQpLHNlKSk/dDphZT9yKGUpOiJPYmplY3QiPT0odD1yKGUpKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY2FsbGVlPyJBcmd1bWVudHMiOnR9LGNlPVd0KCJpdGVyYXRvciIpLGhlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZighKG4gaW5zdGFuY2VvZiBoZSkpcmV0dXJuIG5ldyBoZSh0LGUpO010JiYobj1NdChuZXcgRXJyb3Iodm9pZCAwKSxMdChuKSkpLHZvaWQgMCE9PWUmJlIobiwibWVzc2FnZSIsU3RyaW5nKGUpKTtlPVtdO3JldHVybiBvZSh0LGUucHVzaCx7dGhhdDplfSksUihuLCJlcnJvcnMiLGUpLG59O2hlLnByb3RvdHlwZT1RdChFcnJvci5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnYoNSxoZSksbWVzc2FnZTp2KDUsIiIpLG5hbWU6dig1LCJBZ2dyZWdhdGVFcnJvciIpfSksc3Qoe2dsb2JhbDohMH0se0FnZ3JlZ2F0ZUVycm9yOmhlfSk7SD1XP3t9LnRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIit1ZSh0aGlzKSsiXSJ9O1d8fGZ0KE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIixILHt1bnNhZmU6ITB9KTtmdW5jdGlvbiBsZSh0LGUsbil7Zm9yKHZhciByIGluIGUpZnQodCxyLGVbcl0sbik7cmV0dXJuIHR9ZnVuY3Rpb24gZmUodCxlLG4pe3QmJiFjKHQ9bj90OnQucHJvdG90eXBlLHllKSYmZ2UodCx5ZSx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmV9KX1mdW5jdGlvbiBwZSh0KXt2YXIgZT1ldCh0KSx0PWsuZjtmJiZlJiYhZVttZV0mJnQoZSxtZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfWZ1bmN0aW9uIGRlKHQsZSxuKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhuP24rIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiB0fXZhciB2ZT1iLlByb21pc2UsZ2U9ay5mLHllPVd0KCJ0b1N0cmluZ1RhZyIpLG1lPVd0KCJzcGVjaWVzIiksYmU9V3QoIml0ZXJhdG9yIiksd2U9ITE7dHJ5e3ZhciBfZT0wLEllPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFfZSsrfX0scmV0dXJuOmZ1bmN0aW9uKCl7d2U9ITB9fTtJZVtiZV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShJZSxmdW5jdGlvbigpe3Rocm93IDJ9KX1jYXRjaChGcyl7fWZ1bmN0aW9uIFRlKHQsZSl7aWYoIWUmJiF3ZSlyZXR1cm4hMTt2YXIgbj0hMTt0cnl7dmFyIHI9e307cltiZV09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOm49ITB9fX19LHQocil9Y2F0Y2godCl7fXJldHVybiBufWZ1bmN0aW9uIEVlKHQsZSl7dmFyIG47cmV0dXJuIHZvaWQgMD09PSh0PW0odCkuY29uc3RydWN0b3IpfHxudWxsPT0obj1tKHQpW0FlXSk/ZTpHdChuKX1mdW5jdGlvbiBTZSh0KXt2YXIgZTt4ZS5oYXNPd25Qcm9wZXJ0eSh0KSYmKGU9eGVbdF0sZGVsZXRlIHhlW3RdLGUoKSl9ZnVuY3Rpb24gQ2UodCl7cmV0dXJuIGZ1bmN0aW9uKCl7U2UodCl9fXZhciBOZSxBZT1XdCgic3BlY2llcyIpLFo9ZXQoIm5hdmlnYXRvciIsInVzZXJBZ2VudCIpfHwiIixidD0vKGlwaG9uZXxpcG9kfGlwYWQpLiphcHBsZXdlYmtpdC9pLnRlc3QoWiksa2U9InByb2Nlc3MiPT1yKGIucHJvY2VzcyksUmU9Yi5sb2NhdGlvbixvPWIuc2V0SW1tZWRpYXRlLHQ9Yi5jbGVhckltbWVkaWF0ZSxQZT1iLnByb2Nlc3MsUD1iLk1lc3NhZ2VDaGFubmVsLE9lPWIuRGlzcGF0Y2gsRGU9MCx4ZT17fSxMZT0ib25yZWFkeXN0YXRlY2hhbmdlIixXPWZ1bmN0aW9uKHQpe1NlKHQuZGF0YSl9LEg9ZnVuY3Rpb24odCl7Yi5wb3N0TWVzc2FnZSh0KyIiLFJlLnByb3RvY29sKyIvLyIrUmUuaG9zdCl9O28mJnR8fChvPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoOyllLnB1c2goYXJndW1lbnRzW24rK10pO3JldHVybiB4ZVsrK0RlXT1mdW5jdGlvbigpeygiZnVuY3Rpb24iPT10eXBlb2YgdD90OkZ1bmN0aW9uKHQpKS5hcHBseSh2b2lkIDAsZSl9LE5lKERlKSxEZX0sdD1mdW5jdGlvbih0KXtkZWxldGUgeGVbdF19LGtlP05lPWZ1bmN0aW9uKHQpe1BlLm5leHRUaWNrKENlKHQpKX06T2UmJk9lLm5vdz9OZT1mdW5jdGlvbih0KXtPZS5ub3coQ2UodCkpfTpQJiYhYnQ/KFdlPShQPW5ldyBQKS5wb3J0MixQLnBvcnQxLm9ubWVzc2FnZT1XLE5lPXp0KFdlLnBvc3RNZXNzYWdlLFdlLDEpKTpiLmFkZEV2ZW50TGlzdGVuZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBwb3N0TWVzc2FnZSYmIWIuaW1wb3J0U2NyaXB0cyYmUmUmJiJmaWxlOiIhPT1SZS5wcm90b2NvbCYmIWcoSCk/KE5lPUgsYi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixXLCExKSk6TmU9TGUgaW4gbigic2NyaXB0Iik/ZnVuY3Rpb24odCl7anQuYXBwZW5kQ2hpbGQobigic2NyaXB0IikpW0xlXT1mdW5jdGlvbigpe2p0LnJlbW92ZUNoaWxkKHRoaXMpLFNlKHQpfX06ZnVuY3Rpb24odCl7c2V0VGltZW91dChDZSh0KSwwKX0pO3ZhciBNZSxGZSxVZSxqZSxxZSxWZSxCZSxLZSxXZT17c2V0Om8sY2xlYXI6dH0sSD1OLmYsSGU9V2Uuc2V0LFc9Yi5NdXRhdGlvbk9ic2VydmVyfHxiLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsbz1iLmRvY3VtZW50LEdlPWIucHJvY2Vzcyx0PWIuUHJvbWlzZSxIPUgoYiwicXVldWVNaWNyb3Rhc2siKSxIPUgmJkgudmFsdWU7SHx8KE1lPWZ1bmN0aW9uKCl7dmFyIHQsZTtmb3Ioa2UmJih0PUdlLmRvbWFpbikmJnQuZXhpdCgpO0ZlOyl7ZT1GZS5mbixGZT1GZS5uZXh0O3RyeXtlKCl9Y2F0Y2godCl7dGhyb3cgRmU/amUoKTpVZT12b2lkIDAsdH19VWU9dm9pZCAwLHQmJnQuZW50ZXIoKX0samU9IWJ0JiYha2UmJlcmJm8/KHFlPSEwLFZlPW8uY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBXKE1lKS5vYnNlcnZlKFZlLHtjaGFyYWN0ZXJEYXRhOiEwfSksZnVuY3Rpb24oKXtWZS5kYXRhPXFlPSFxZX0pOnQmJnQucmVzb2x2ZT8oQmU9dC5yZXNvbHZlKHZvaWQgMCksS2U9QmUudGhlbixmdW5jdGlvbigpe0tlLmNhbGwoQmUsTWUpfSk6a2U/ZnVuY3Rpb24oKXtHZS5uZXh0VGljayhNZSl9OmZ1bmN0aW9uKCl7SGUuY2FsbChiLE1lKX0pO2Z1bmN0aW9uIHplKHQpe3ZhciBuLHI7dGhpcy5wcm9taXNlPW5ldyB0KGZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwIT09bnx8dm9pZCAwIT09cil0aHJvdyBUeXBlRXJyb3IoIkJhZCBQcm9taXNlIGNvbnN0cnVjdG9yIik7bj10LHI9ZX0pLHRoaXMucmVzb2x2ZT1HdChuKSx0aGlzLnJlamVjdD1HdChyKX1mdW5jdGlvbiBRZSh0LGUpe3JldHVybiBtKHQpLHkoZSkmJmUuY29uc3RydWN0b3I9PT10P2U6KCgwLCh0PUplLmYodCkpLnJlc29sdmUpKGUpLHQucHJvbWlzZSl9ZnVuY3Rpb24gWWUodCl7dHJ5e3JldHVybntlcnJvcjohMSx2YWx1ZTp0KCl9fWNhdGNoKHQpe3JldHVybntlcnJvcjohMCx2YWx1ZTp0fX19dmFyIFhlPUh8fGZ1bmN0aW9uKHQpe3Q9e2ZuOnQsbmV4dDp2b2lkIDB9O1VlJiYoVWUubmV4dD10KSxGZXx8KEZlPXQsamUoKSksVWU9dH0sSmU9e2Y6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB6ZSh0KX19LEg9Yi5wcm9jZXNzLEg9SCYmSC52ZXJzaW9ucyxIPUgmJkgudjg7SD9Qbj0oU249SC5zcGxpdCgiLiIpKVswXStTblsxXTpaJiYoIShTbj1aLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8NzQ8PVNuWzFdKSYmKFNuPVoubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihQbj1TblsxXSk7ZnVuY3Rpb24gJGUodCl7dmFyIGU7cmV0dXJuISgheSh0KXx8ImZ1bmN0aW9uIiE9dHlwZW9mKGU9dC50aGVuKSkmJmV9ZnVuY3Rpb24gWmUobCxmKXt2YXIgcDtsLm5vdGlmaWVkfHwobC5ub3RpZmllZD0hMCxwPWwucmVhY3Rpb25zLFhlKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWwudmFsdWUsZT0xPT1sLnN0YXRlLG49MDtwLmxlbmd0aD5uOyl7dmFyIHIsaSxvLHM9cFtuKytdLGE9ZT9zLm9rOnMuZmFpbCx1PXMucmVzb2x2ZSxjPXMucmVqZWN0LGg9cy5kb21haW47dHJ5e2E/KGV8fCgyPT09bC5yZWplY3Rpb24mJkFuKGwpLGwucmVqZWN0aW9uPTEpLCEwPT09YT9yPXQ6KGgmJmguZW50ZXIoKSxyPWEodCksaCYmKGguZXhpdCgpLG89ITApKSxyPT09cy5wcm9taXNlP2MoZ24oIlByb21pc2UtY2hhaW4gY3ljbGUiKSk6KGk9JGUocikpP2kuY2FsbChyLHUsYyk6dShyKSk6Yyh0KX1jYXRjaCh0KXtoJiYhbyYmaC5leGl0KCksYyh0KX19bC5yZWFjdGlvbnM9W10sbC5ub3RpZmllZD0hMSxmJiYhbC5yZWplY3Rpb24mJkNuKGwpfSkpfWZ1bmN0aW9uIHRuKHQsZSxuKXt2YXIgcixpO0luPygocj15bi5jcmVhdGVFdmVudCgiRXZlbnQiKSkucHJvbWlzZT1lLHIucmVhc29uPW4sci5pbml0RXZlbnQodCwhMSwhMCksYi5kaXNwYXRjaEV2ZW50KHIpKTpyPXtwcm9taXNlOmUscmVhc29uOm59LCFUbiYmKGk9Ylsib24iK3RdKT9pKHIpOnQ9PT1FbiYmZnVuY3Rpb24odCxlKXt2YXIgbj1iLmNvbnNvbGU7biYmbi5lcnJvciYmKDE9PT1hcmd1bWVudHMubGVuZ3RoP24uZXJyb3IodCk6bi5lcnJvcih0LGUpKX0oIlVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbiIsbil9ZnVuY3Rpb24gZW4oZSxuLHIpe3JldHVybiBmdW5jdGlvbih0KXtlKG4sdCxyKX19ZnVuY3Rpb24gbm4odCxlLG4pe3QuZG9uZXx8KHQuZG9uZT0hMCwodD1uP246dCkudmFsdWU9ZSx0LnN0YXRlPTIsWmUodCwhMCkpfXZhciBybixvbixzbixhbix1bj1QbiYmK1BuLGNuPVdlLnNldCxobj1XdCgic3BlY2llcyIpLGxuPSJQcm9taXNlIixmbj1sdC5nZXQscG49bHQuc2V0LGRuPWx0LmdldHRlckZvcihsbiksdm49dmUsZ249Yi5UeXBlRXJyb3IseW49Yi5kb2N1bWVudCxtbj1iLnByb2Nlc3MsYm49ZXQoImZldGNoIiksd249SmUuZixfbj13bixJbj0hISh5biYmeW4uY3JlYXRlRXZlbnQmJmIuZGlzcGF0Y2hFdmVudCksVG49ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxFbj0idW5oYW5kbGVkcmVqZWN0aW9uIixaPVB0KGxuLGZ1bmN0aW9uKCl7aWYoIShLKHZuKSE9PVN0cmluZyh2bikpKXtpZig2Nj09PXVuKXJldHVybiEwO2lmKCFrZSYmIVRuKXJldHVybiEwfWlmKDUxPD11biYmL25hdGl2ZSBjb2RlLy50ZXN0KHZuKSlyZXR1cm4hMTtmdW5jdGlvbiB0KHQpe3QoZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7fSl9dmFyIGU9dm4ucmVzb2x2ZSgxKTtyZXR1cm4oZS5jb25zdHJ1Y3Rvcj17fSlbaG5dPXQsIShlLnRoZW4oZnVuY3Rpb24oKXt9KWluc3RhbmNlb2YgdCl9KSxTbj1afHwhVGUoZnVuY3Rpb24odCl7dm4uYWxsKHQpLmNhdGNoKGZ1bmN0aW9uKCl7fSl9KSxDbj1mdW5jdGlvbihpKXtjbi5jYWxsKGIsZnVuY3Rpb24oKXt2YXIgdCxlPWkuZmFjYWRlLG49aS52YWx1ZSxyPU5uKGkpO2lmKHImJih0PVllKGZ1bmN0aW9uKCl7a2U/bW4uZW1pdCgidW5oYW5kbGVkUmVqZWN0aW9uIixuLGUpOnRuKEVuLGUsbil9KSxpLnJlamVjdGlvbj1rZXx8Tm4oaSk/MjoxLHQuZXJyb3IpKXRocm93IHQudmFsdWV9KX0sTm49ZnVuY3Rpb24odCl7cmV0dXJuIDEhPT10LnJlamVjdGlvbiYmIXQucGFyZW50fSxBbj1mdW5jdGlvbihlKXtjbi5jYWxsKGIsZnVuY3Rpb24oKXt2YXIgdD1lLmZhY2FkZTtrZT9tbi5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIix0KTp0bigicmVqZWN0aW9uaGFuZGxlZCIsdCxlLnZhbHVlKX0pfSxrbj1mdW5jdGlvbihuLHQsZSl7aWYoIW4uZG9uZSl7bi5kb25lPSEwLGUmJihuPWUpO3RyeXtpZihuLmZhY2FkZT09PXQpdGhyb3cgZ24oIlByb21pc2UgY2FuJ3QgYmUgcmVzb2x2ZWQgaXRzZWxmIik7dmFyIHI9JGUodCk7cj9YZShmdW5jdGlvbigpe3ZhciBlPXtkb25lOiExfTt0cnl7ci5jYWxsKHQsZW4oa24sZSxuKSxlbihubixlLG4pKX1jYXRjaCh0KXtubihlLHQsbil9fSk6KG4udmFsdWU9dCxuLnN0YXRlPTEsWmUobiwhMSkpfWNhdGNoKHQpe25uKHtkb25lOiExfSx0LG4pfX19O1omJih2bj1mdW5jdGlvbih0KXtkZSh0aGlzLHZuLGxuKSxHdCh0KSxybi5jYWxsKHRoaXMpO3ZhciBlPWZuKHRoaXMpO3RyeXt0KGVuKGtuLGUpLGVuKG5uLGUpKX1jYXRjaCh0KXtubihlLHQpfX0sKHJuPWZ1bmN0aW9uKHQpe3BuKHRoaXMse3R5cGU6bG4sZG9uZTohMSxub3RpZmllZDohMSxwYXJlbnQ6ITEscmVhY3Rpb25zOltdLHJlamVjdGlvbjohMSxzdGF0ZTowLHZhbHVlOnZvaWQgMH0pfSkucHJvdG90eXBlPWxlKHZuLnByb3RvdHlwZSx7dGhlbjpmdW5jdGlvbih0LGUpe3ZhciBuPWRuKHRoaXMpLHI9d24oRWUodGhpcyx2bikpO3JldHVybiByLm9rPSJmdW5jdGlvbiIhPXR5cGVvZiB0fHx0LHIuZmFpbD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSxyLmRvbWFpbj1rZT9tbi5kb21haW46dm9pZCAwLG4ucGFyZW50PSEwLG4ucmVhY3Rpb25zLnB1c2gociksMCE9bi5zdGF0ZSYmWmUobiwhMSksci5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX19KSxvbj1mdW5jdGlvbigpe3ZhciB0PW5ldyBybixlPWZuKHQpO3RoaXMucHJvbWlzZT10LHRoaXMucmVzb2x2ZT1lbihrbixlKSx0aGlzLnJlamVjdD1lbihubixlKX0sSmUuZj13bj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PXZufHx0PT09c24/bmV3IG9uOl9uKHQpfSwiZnVuY3Rpb24iPT10eXBlb2YgdmUmJihhbj12ZS5wcm90b3R5cGUudGhlbixmdCh2ZS5wcm90b3R5cGUsInRoZW4iLGZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gbmV3IHZuKGZ1bmN0aW9uKHQsZSl7YW4uY2FsbChuLHQsZSl9KS50aGVuKHQsZSl9LHt1bnNhZmU6ITB9KSwiZnVuY3Rpb24iPT10eXBlb2YgYm4mJnN0KHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gUWUodm4sYm4uYXBwbHkoYixhcmd1bWVudHMpKX19KSkpLHN0KHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6Wn0se1Byb21pc2U6dm59KSxmZSh2bixsbiwhMSkscGUobG4pLHNuPWV0KGxuKSxzdCh7dGFyZ2V0OmxuLHN0YXQ6ITAsZm9yY2VkOlp9LHtyZWplY3Q6ZnVuY3Rpb24odCl7dmFyIGU9d24odGhpcyk7cmV0dXJuIGUucmVqZWN0LmNhbGwodm9pZCAwLHQpLGUucHJvbWlzZX19KSxzdCh7dGFyZ2V0OmxuLHN0YXQ6ITAsZm9yY2VkOlp9LHtyZXNvbHZlOmZ1bmN0aW9uKHQpe3JldHVybiBRZSh0aGlzLHQpfX0pLHN0KHt0YXJnZXQ6bG4sc3RhdDohMCxmb3JjZWQ6U259LHthbGw6ZnVuY3Rpb24odCl7dmFyIGE9dGhpcyxlPXduKGEpLHU9ZS5yZXNvbHZlLGM9ZS5yZWplY3Qsbj1ZZShmdW5jdGlvbigpe3ZhciByPUd0KGEucmVzb2x2ZSksaT1bXSxvPTAscz0xO29lKHQsZnVuY3Rpb24odCl7dmFyIGU9bysrLG49ITE7aS5wdXNoKHZvaWQgMCkscysrLHIuY2FsbChhLHQpLnRoZW4oZnVuY3Rpb24odCl7bnx8KG49ITAsaVtlXT10LC0tc3x8dShpKSl9LGMpfSksLS1zfHx1KGkpfSk7cmV0dXJuIG4uZXJyb3ImJmMobi52YWx1ZSksZS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMscj13bihuKSxpPXIucmVqZWN0LGU9WWUoZnVuY3Rpb24oKXt2YXIgZT1HdChuLnJlc29sdmUpO29lKHQsZnVuY3Rpb24odCl7ZS5jYWxsKG4sdCkudGhlbihyLnJlc29sdmUsaSl9KX0pO3JldHVybiBlLmVycm9yJiZpKGUudmFsdWUpLHIucHJvbWlzZX19KSxzdCh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwfSx7YWxsU2V0dGxlZDpmdW5jdGlvbih0KXt2YXIgYT10aGlzLGU9SmUuZihhKSx1PWUucmVzb2x2ZSxuPWUucmVqZWN0LHI9WWUoZnVuY3Rpb24oKXt2YXIgcj1HdChhLnJlc29sdmUpLGk9W10sbz0wLHM9MTtvZSh0LGZ1bmN0aW9uKHQpe3ZhciBlPW8rKyxuPSExO2kucHVzaCh2b2lkIDApLHMrKyxyLmNhbGwoYSx0KS50aGVuKGZ1bmN0aW9uKHQpe258fChuPSEwLGlbZV09e3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTp0fSwtLXN8fHUoaSkpfSxmdW5jdGlvbih0KXtufHwobj0hMCxpW2VdPXtzdGF0dXM6InJlamVjdGVkIixyZWFzb246dH0sLS1zfHx1KGkpKX0pfSksLS1zfHx1KGkpfSk7cmV0dXJuIHIuZXJyb3ImJm4oci52YWx1ZSksZS5wcm9taXNlfX0pO3ZhciBSbj0iTm8gb25lIHByb21pc2UgcmVzb2x2ZWQiO3N0KHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITB9LHthbnk6ZnVuY3Rpb24odCl7dmFyIHU9dGhpcyxlPUplLmYodSksYz1lLnJlc29sdmUsaD1lLnJlamVjdCxuPVllKGZ1bmN0aW9uKCl7dmFyIHI9R3QodS5yZXNvbHZlKSxpPVtdLG89MCxzPTEsYT0hMTtvZSh0LGZ1bmN0aW9uKHQpe3ZhciBlPW8rKyxuPSExO2kucHVzaCh2b2lkIDApLHMrKyxyLmNhbGwodSx0KS50aGVuKGZ1bmN0aW9uKHQpe258fGF8fChhPSEwLGModCkpfSxmdW5jdGlvbih0KXtufHxhfHwobj0hMCxpW2VdPXQsLS1zfHxoKG5ldyhldCgiQWdncmVnYXRlRXJyb3IiKSkoaSxSbikpKX0pfSksLS1zfHxoKG5ldyhldCgiQWdncmVnYXRlRXJyb3IiKSkoaSxSbikpfSk7cmV0dXJuIG4uZXJyb3ImJmgobi52YWx1ZSksZS5wcm9taXNlfX0pO3ZhciBQbj0hIXZlJiZnKGZ1bmN0aW9uKCl7dmUucHJvdG90eXBlLmZpbmFsbHkuY2FsbCh7dGhlbjpmdW5jdGlvbigpe319LGZ1bmN0aW9uKCl7fSl9KTtzdCh7dGFyZ2V0OiJQcm9taXNlIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpQbn0se2ZpbmFsbHk6ZnVuY3Rpb24oZSl7dmFyIG49RWUodGhpcyxldCgiUHJvbWlzZSIpKSx0PSJmdW5jdGlvbiI9PXR5cGVvZiBlO3JldHVybiB0aGlzLnRoZW4odD9mdW5jdGlvbih0KXtyZXR1cm4gUWUobixlKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdH0pfTplLHQ/ZnVuY3Rpb24odCl7cmV0dXJuIFFlKG4sZSgpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgdH0pfTplKX19KSwiZnVuY3Rpb24iIT10eXBlb2YgdmV8fHZlLnByb3RvdHlwZS5maW5hbGx5fHxmdCh2ZS5wcm90b3R5cGUsImZpbmFsbHkiLGV0KCJQcm9taXNlIikucHJvdG90eXBlLmZpbmFsbHkpO1dlPWZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuLHI9U3RyaW5nKHModCkpLGk9bnQoZSksdD1yLmxlbmd0aDtyZXR1cm4gaTwwfHx0PD1pP28/IiI6dm9pZCAwOihlPXIuY2hhckNvZGVBdChpKSk8NTUyOTZ8fDU2MzE5PGV8fGkrMT09PXR8fChuPXIuY2hhckNvZGVBdChpKzEpKTw1NjMyMHx8NTczNDM8bj9vP3IuY2hhckF0KGkpOmU6bz9yLnNsaWNlKGksaSsyKTpuLTU2MzIwKyhlLTU1Mjk2PDwxMCkrNjU1MzZ9fSxaPXtjb2RlQXQ6V2UoITEpLGNoYXJBdDpXZSghMCl9LFNuPVd0KCJpdGVyYXRvciIpLFBuPSExO1tdLmtleXMmJigibmV4dCJpbihRbj1bXS5rZXlzKCkpPyhscj1MdChMdChRbikpKSE9PU9iamVjdC5wcm90b3R5cGUmJihkcj1scik6UG49ITApLGMoZHI9bnVsbD09ZHI/e306ZHIsU24pfHxSKGRyLFNuLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTtmdW5jdGlvbiBPbigpe3JldHVybiB0aGlzfWZ1bmN0aW9uIERuKCl7cmV0dXJuIHRoaXN9ZnVuY3Rpb24geG4odCxlLG4scixpLG8scyl7ZnVuY3Rpb24gYSh0KXtpZih0PT09aSYmZClyZXR1cm4gZDtpZighRm4mJnQgaW4gZilyZXR1cm4gZlt0XTtzd2l0Y2godCl7Y2FzZSJrZXlzIjpjYXNlIGpuOmNhc2UgcW46cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzKX19IWZ1bmN0aW9uKHQsZSxuKXtlKz0iIEl0ZXJhdG9yIjt0LnByb3RvdHlwZT1RdChMbix7bmV4dDp2KDEsbil9KSxmZSh0LGUsITEpLFp0W2VdPU9ufShuLGUscik7dmFyIHUsYyxoPWUrIiBJdGVyYXRvciIsbD0hMSxmPXQucHJvdG90eXBlLHA9ZltVbl18fGZbIkBAaXRlcmF0b3IiXXx8aSYmZltpXSxkPSFGbiYmcHx8YShpKTtpZigocj0iQXJyYXkiPT1lJiZmLmVudHJpZXN8fHApJiYodD1MdChyLmNhbGwobmV3IHQpKSxNbiE9PU9iamVjdC5wcm90b3R5cGUmJnQubmV4dCYmKEx0KHQpIT09TW4mJihNdD9NdCh0LE1uKToiZnVuY3Rpb24iIT10eXBlb2YgdFtVbl0mJlIodCxVbixEbikpLGZlKHQsaCwhMCkpKSxpPT1qbiYmcCYmcC5uYW1lIT09am4mJihsPSEwLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gcC5jYWxsKHRoaXMpfSksZltVbl0hPT1kJiZSKGYsVW4sZCksWnRbZV09ZCxpKWlmKHU9e3ZhbHVlczphKGpuKSxrZXlzOm8/ZDphKCJrZXlzIiksZW50cmllczphKHFuKX0scylmb3IoYyBpbiB1KSFGbiYmIWwmJmMgaW4gZnx8ZnQoZixjLHVbY10pO2Vsc2Ugc3Qoe3RhcmdldDplLHByb3RvOiEwLGZvcmNlZDpGbnx8bH0sdSk7cmV0dXJuIHV9dmFyIFdlPXtJdGVyYXRvclByb3RvdHlwZTpkcixCVUdHWV9TQUZBUklfSVRFUkFUT1JTOlBufSxMbj1XZS5JdGVyYXRvclByb3RvdHlwZSxNbj1XZS5JdGVyYXRvclByb3RvdHlwZSxGbj1XZS5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFVuPVd0KCJpdGVyYXRvciIpLGpuPSJ2YWx1ZXMiLHFuPSJlbnRyaWVzIixWbj1aLmNoYXJBdCxCbj0iU3RyaW5nIEl0ZXJhdG9yIixLbj1sdC5zZXQsV249bHQuZ2V0dGVyRm9yKEJuKTt4bihTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24odCl7S24odGhpcyx7dHlwZTpCbixzdHJpbmc6U3RyaW5nKHQpLGluZGV4OjB9KX0sZnVuY3Rpb24oKXt2YXIgdD1Xbih0aGlzKSxlPXQuc3RyaW5nLG49dC5pbmRleDtyZXR1cm4gbj49ZS5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfToobj1WbihlLG4pLHQuaW5kZXgrPW4ubGVuZ3RoLHt2YWx1ZTpuLGRvbmU6ITF9KX0pO3ZhciBIbj17Q1NTUnVsZUxpc3Q6MCxDU1NTdHlsZURlY2xhcmF0aW9uOjAsQ1NTVmFsdWVMaXN0OjAsQ2xpZW50UmVjdExpc3Q6MCxET01SZWN0TGlzdDowLERPTVN0cmluZ0xpc3Q6MCxET01Ub2tlbkxpc3Q6MSxEYXRhVHJhbnNmZXJJdGVtTGlzdDowLEZpbGVMaXN0OjAsSFRNTEFsbENvbGxlY3Rpb246MCxIVE1MQ29sbGVjdGlvbjowLEhUTUxGb3JtRWxlbWVudDowLEhUTUxTZWxlY3RFbGVtZW50OjAsTWVkaWFMaXN0OjAsTWltZVR5cGVBcnJheTowLE5hbWVkTm9kZU1hcDowLE5vZGVMaXN0OjEsUGFpbnRSZXF1ZXN0TGlzdDowLFBsdWdpbjowLFBsdWdpbkFycmF5OjAsU1ZHTGVuZ3RoTGlzdDowLFNWR051bWJlckxpc3Q6MCxTVkdQYXRoU2VnTGlzdDowLFNWR1BvaW50TGlzdDowLFNWR1N0cmluZ0xpc3Q6MCxTVkdUcmFuc2Zvcm1MaXN0OjAsU291cmNlQnVmZmVyTGlzdDowLFN0eWxlU2hlZXRMaXN0OjAsVGV4dFRyYWNrQ3VlTGlzdDowLFRleHRUcmFja0xpc3Q6MCxUb3VjaExpc3Q6MH0sR249V3QoInVuc2NvcGFibGVzIiksem49QXJyYXkucHJvdG90eXBlO251bGw9PXpuW0duXSYmay5mKHpuLEduLHtjb25maWd1cmFibGU6ITAsdmFsdWU6UXQobnVsbCl9KTt2YXIgUW49ZnVuY3Rpb24odCl7em5bR25dW3RdPSEwfSxZbj0iQXJyYXkgSXRlcmF0b3IiLFhuPWx0LnNldCxKbj1sdC5nZXR0ZXJGb3IoWW4pLCRuPXhuKEFycmF5LCJBcnJheSIsZnVuY3Rpb24odCxlKXtYbih0aGlzLHt0eXBlOlluLHRhcmdldDp1KHQpLGluZGV4OjAsa2luZDplfSl9LGZ1bmN0aW9uKCl7dmFyIHQ9Sm4odGhpcyksZT10LnRhcmdldCxuPXQua2luZCxyPXQuaW5kZXgrKztyZXR1cm4hZXx8cj49ZS5sZW5ndGg/e3ZhbHVlOnQudGFyZ2V0PXZvaWQgMCxkb25lOiEwfToia2V5cyI9PW4/e3ZhbHVlOnIsZG9uZTohMX06InZhbHVlcyI9PW4/e3ZhbHVlOmVbcl0sZG9uZTohMX06e3ZhbHVlOltyLGVbcl1dLGRvbmU6ITF9fSwidmFsdWVzIik7WnQuQXJndW1lbnRzPVp0LkFycmF5LFFuKCJrZXlzIiksUW4oInZhbHVlcyIpLFFuKCJlbnRyaWVzIik7dmFyIFpuLHRyPVd0KCJpdGVyYXRvciIpLGVyPVd0KCJ0b1N0cmluZ1RhZyIpLG5yPSRuLnZhbHVlcztmb3IoWm4gaW4gSG4pe3ZhciBycj1iW1puXSxpcj1yciYmcnIucHJvdG90eXBlO2lmKGlyKXtpZihpclt0cl0hPT1ucil0cnl7Uihpcix0cixucil9Y2F0Y2goRnMpe2lyW3RyXT1ucn1pZihpcltlcl18fFIoaXIsZXIsWm4pLEhuW1puXSlmb3IodmFyIG9yIGluICRuKWlmKGlyW29yXSE9PSRuW29yXSl0cnl7Uihpcixvciwkbltvcl0pfWNhdGNoKEZzKXtpcltvcl09JG5bb3JdfX19cHQuUHJvbWlzZTtzdCh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwfSx7dHJ5OmZ1bmN0aW9uKHQpe3ZhciBlPUplLmYodGhpcyksdD1ZZSh0KTtyZXR1cm4odC5lcnJvcj9lLnJlamVjdDplLnJlc29sdmUpKHQudmFsdWUpLGUucHJvbWlzZX19KTtmdW5jdGlvbiBzcih0LGUpe3ZhciBuO3JldHVybiBuZXcodm9pZCAwPT09KG49dXIodCkmJigiZnVuY3Rpb24iPT10eXBlb2Yobj10LmNvbnN0cnVjdG9yKSYmKG49PT1BcnJheXx8dXIobi5wcm90b3R5cGUpKXx8eShuKSYmbnVsbD09PShuPW5bY3JdKSk/dm9pZCAwOm4pP0FycmF5Om4pKDA9PT1lPzA6ZSl9ZnVuY3Rpb24gYXIodCl7dGhyb3cgdH12YXIgdXI9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuIkFycmF5Ij09cih0KX0sY3I9V3QoInNwZWNpZXMiKSxocj1bXS5wdXNoLGxyPWZ1bmN0aW9uKGYpe3ZhciBwPTE9PWYsZD0yPT1mLHY9Mz09ZixnPTQ9PWYseT02PT1mLG09Nz09ZixiPTU9PWZ8fHk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuLHIpe2Zvcih2YXIgaSxvLHM9YXQodCksYT1fKHMpLHU9enQoZSxuLDMpLGM9cnQoYS5sZW5ndGgpLGg9MCxyPXJ8fHNyLGw9cD9yKHQsYyk6ZHx8bT9yKHQsMCk6dm9pZCAwO2g8YztoKyspaWYoKGJ8fGggaW4gYSkmJihvPXUoaT1hW2hdLGgscyksZikpaWYocClsW2hdPW87ZWxzZSBpZihvKXN3aXRjaChmKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiBpO2Nhc2UgNjpyZXR1cm4gaDtjYXNlIDI6aHIuY2FsbChsLGkpfWVsc2Ugc3dpdGNoKGYpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6aHIuY2FsbChsLGkpfXJldHVybiB5Py0xOnZ8fGc/ZzpsfX0sU249e2ZvckVhY2g6bHIoMCksbWFwOmxyKDEpLGZpbHRlcjpscigyKSxzb21lOmxyKDMpLGV2ZXJ5OmxyKDQpLGZpbmQ6bHIoNSksZmluZEluZGV4OmxyKDYpLGZpbHRlck91dDpscig3KX0sZnI9T2JqZWN0LmRlZmluZVByb3BlcnR5LHByPXt9LGRyPWZ1bmN0aW9uKHQsZSl7aWYoYyhwcix0KSlyZXR1cm4gcHJbdF07dmFyIG49W11bdF0scj0hIWMoZT1lfHx7fSwiQUNDRVNTT1JTIikmJmUuQUNDRVNTT1JTLGk9YyhlLDApP2VbMF06YXIsbz1jKGUsMSk/ZVsxXTp2b2lkIDA7cmV0dXJuIHByW3RdPSEhbiYmIWcoZnVuY3Rpb24oKXtpZihyJiYhZilyZXR1cm4gMTt2YXIgdD17bGVuZ3RoOi0xfTtyP2ZyKHQsMSx7ZW51bWVyYWJsZTohMCxnZXQ6YXJ9KTp0WzFdPTEsbi5jYWxsKHQsaSxvKX0pfSx2cj1Tbi5maW5kLFBuPSJmaW5kIixncj0hMCxXZT1kcihQbik7UG4gaW5bXSYmQXJyYXkoMSlbUG5dKGZ1bmN0aW9uKCl7Z3I9ITF9KSxzdCh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOmdyfHwhV2V9LHtmaW5kOmZ1bmN0aW9uKHQpe3JldHVybiB2cih0aGlzLHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLFFuKFBuKTt2YXIgeXI9RnVuY3Rpb24uY2FsbCxaPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4genQoeXIsYlt0XS5wcm90b3R5cGVbZV0sbil9LG1yPShaKCJBcnJheSIsImZpbmQiKSxTbi5maW5kSW5kZXgpLGxyPSJmaW5kSW5kZXgiLGJyPSEwLFdlPWRyKGxyKTtsciBpbltdJiZBcnJheSgxKVtscl0oZnVuY3Rpb24oKXticj0hMX0pLHN0KHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6YnJ8fCFXZX0se2ZpbmRJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gbXIodGhpcyx0LDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxRbihscik7ZnVuY3Rpb24gd3IodCxlLG4peyhlPWkoZSkpaW4gdD9rLmYodCxlLHYoMCxuKSk6dFtlXT1ufVooIkFycmF5IiwiZmluZEluZGV4Iik7UG49IVRlKGZ1bmN0aW9uKHQpe0FycmF5LmZyb20odCl9KTtzdCh7dGFyZ2V0OiJBcnJheSIsc3RhdDohMCxmb3JjZWQ6UG59LHtmcm9tOmZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLG8scyxhPWF0KHQpLHU9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxjPWFyZ3VtZW50cy5sZW5ndGgsaD0xPGM/YXJndW1lbnRzWzFdOnZvaWQgMCxsPXZvaWQgMCE9PWgsdD1uZShhKSxmPTA7aWYobCYmKGg9enQoaCwyPGM/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09dHx8dT09QXJyYXkmJkh0KHQpKWZvcihuPW5ldyB1KGU9cnQoYS5sZW5ndGgpKTtmPGU7ZisrKXM9bD9oKGFbZl0sZik6YVtmXSx3cihuLGYscyk7ZWxzZSBmb3Iobz0oaT10LmNhbGwoYSkpLm5leHQsbj1uZXcgdTshKHI9by5jYWxsKGkpKS5kb25lO2YrKylzPWw/ZnVuY3Rpb24oZSx0LG4scil7dHJ5e3JldHVybiByP3QobShuKVswXSxuWzFdKTp0KG4pfWNhdGNoKHQpe3Rocm93IHJlKGUpLHR9fShpLGgsW3IudmFsdWUsZl0sITApOnIudmFsdWUsd3IobixmLHMpO3JldHVybiBuLmxlbmd0aD1mLG59fSk7cHQuQXJyYXkuZnJvbTt2YXIgX3IsSXIsVHI9U24uc29tZSxXZT0hIShJcj1bXVsic29tZSJdKSYmZyhmdW5jdGlvbigpe0lyLmNhbGwobnVsbCxfcnx8ZnVuY3Rpb24oKXt0aHJvdyAxfSwxKX0pLFFuPWRyKCJzb21lIik7c3Qoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohV2V8fCFRbn0se3NvbWU6ZnVuY3Rpb24odCl7cmV0dXJuIFRyKHRoaXMsdCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7WigiQXJyYXkiLCJzb21lIik7ZnVuY3Rpb24gRXIodCl7cmV0dXJuISF5KHQpJiYodD11ZSh0KSxjKE9yLHQpfHxjKERyLHQpKX12YXIgU3IsbHI9InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBEYXRhVmlldyxQbj1rLmYsQ3I9Yi5JbnQ4QXJyYXksTnI9Q3ImJkNyLnByb3RvdHlwZSxkcj1iLlVpbnQ4Q2xhbXBlZEFycmF5LFdlPWRyJiZkci5wcm90b3R5cGUsQXI9Q3ImJkx0KENyKSxrcj1OciYmTHQoTnIpLFFuPU9iamVjdC5wcm90b3R5cGUsZHI9KFFuLmlzUHJvdG90eXBlT2YsV3QoInRvU3RyaW5nVGFnIikpLFJyPXgoIlRZUEVEX0FSUkFZX1RBRyIpLFByPWxyJiYhIU10JiYiT3BlcmEiIT09dWUoYi5vcGVyYSksbHI9ITEsT3I9e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxEcj17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9O2ZvcihTciBpbiBPciliW1NyXXx8KFByPSExKTtpZigoIVByfHwiZnVuY3Rpb24iIT10eXBlb2YgQXJ8fEFyPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEFyPWZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxQcikpZm9yKFNyIGluIE9yKWJbU3JdJiZNdChiW1NyXSxBcik7aWYoKCFQcnx8IWtyfHxrcj09PVFuKSYmKGtyPUFyLnByb3RvdHlwZSxQcikpZm9yKFNyIGluIE9yKWJbU3JdJiZNdChiW1NyXS5wcm90b3R5cGUsa3IpO2lmKFByJiZMdChXZSkhPT1rciYmTXQoV2Usa3IpLGYmJiFjKGtyLGRyKSlmb3IoU3IgaW4gbHI9ITAsUG4oa3IsZHIse2dldDpmdW5jdGlvbigpe3JldHVybiB5KHRoaXMpP3RoaXNbUnJdOnZvaWQgMH19KSxPciliW1NyXSYmUihiW1NyXSxScixTcik7dmFyIFdlPWZ1bmN0aW9uKHQpe2lmKEVyKHQpKXJldHVybiB0O3Rocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LFBuPWZ1bmN0aW9uKHQsZSxuKXtpZihmKXtpZihuKWZvcih2YXIgciBpbiBPcil7cj1iW3JdO3ImJmMoci5wcm90b3R5cGUsdCkmJmRlbGV0ZSByLnByb3RvdHlwZVt0XX1rclt0XSYmIW58fGZ0KGtyLHQsIW4mJlByJiZOclt0XXx8ZSl9fSxkcj1XdCgiaXRlcmF0b3IiKSxscj1iLlVpbnQ4QXJyYXkseHI9JG4udmFsdWVzLExyPSRuLmtleXMsTXI9JG4uZW50cmllcyxGcj1XZSxXZT1QbixQbj1sciYmbHIucHJvdG90eXBlW2RyXSxscj0hIVBuJiYoInZhbHVlcyI9PVBuLm5hbWV8fG51bGw9PVBuLm5hbWUpLFBuPWZ1bmN0aW9uKCl7cmV0dXJuIHhyLmNhbGwoRnIodGhpcykpfTtXZSgiZW50cmllcyIsZnVuY3Rpb24oKXtyZXR1cm4gTXIuY2FsbChGcih0aGlzKSl9KSxXZSgia2V5cyIsZnVuY3Rpb24oKXtyZXR1cm4gTHIuY2FsbChGcih0aGlzKSl9KSxXZSgidmFsdWVzIixQbiwhbHIpLFdlKGRyLFBuLCFscik7dmFyIFVyPU9iamVjdC5hc3NpZ24sanI9T2JqZWN0LmRlZmluZVByb3BlcnR5LFBuPSFVcnx8ZyhmdW5jdGlvbigpe2lmKGYmJjEhPT1Vcih7YjoxfSxVcihqcih7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7anIodGhpcywiYiIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4gMTt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCkscj0iYWJjZGVmZ2hpamtsbW5vcHFyc3QiO3JldHVybiB0W25dPTcsci5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPXR9KSw3IT1Vcih7fSx0KVtuXXx8RnQoVXIoe30sZSkpLmpvaW4oIiIpIT1yfSk/ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49YXQodCkscj1hcmd1bWVudHMubGVuZ3RoLGk9MSxvPUV0LmYscz1wLmY7aTxyOylmb3IodmFyIGEsdT1fKGFyZ3VtZW50c1tpKytdKSxjPW8/RnQodSkuY29uY2F0KG8odSkpOkZ0KHUpLGg9Yy5sZW5ndGgsbD0wO2w8aDspYT1jW2wrK10sZiYmIXMuY2FsbCh1LGEpfHwoblthXT11W2FdKTtyZXR1cm4gbn06VXI7c3Qoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpPYmplY3QuYXNzaWduIT09UG59LHthc3NpZ246UG59KTtwdC5PYmplY3QuYXNzaWduO3ZhciBxcj1wLmYsbHI9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPXUodCkscj1GdChuKSxpPXIubGVuZ3RoLG89MCxzPVtdO288aTspZT1yW28rK10sZiYmIXFyLmNhbGwobixlKXx8cy5wdXNoKGE/W2UsbltlXV06bltlXSk7cmV0dXJuIHN9fSxQbj17ZW50cmllczpscighMCksdmFsdWVzOmxyKCExKX0sVnI9UG4uZW50cmllcztzdCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBWcih0KX19KTtwdC5PYmplY3QuZW50cmllczt2YXIgQnI9UG4udmFsdWVzO3N0KHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3ZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gQnIodCl9fSk7cHQuT2JqZWN0LnZhbHVlcztmdW5jdGlvbiBLcih0KXtpZih5KGU9dCkmJih2b2lkIDAhPT0obj1lW1dyXSk/ISFuOiJSZWdFeHAiPT1yKGUpKSl0aHJvdyBUeXBlRXJyb3IoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3ZhciBlLG47cmV0dXJuIHR9dmFyIFdyPVd0KCJtYXRjaCIpLEhyPVd0KCJtYXRjaCIpLGxyPWZ1bmN0aW9uKGUpe3ZhciBuPS8uLzt0cnl7Ii8uLyJbZV0obil9Y2F0Y2godCl7dHJ5e3JldHVybiBuW0hyXT0hMSwiLy4vIltlXShuKX1jYXRjaCh0KXt9fXJldHVybiExfTtzdCh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohbHIoImluY2x1ZGVzIil9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4hIX5TdHJpbmcocyh0aGlzKSkuaW5kZXhPZihLcih0KSwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7WigiU3RyaW5nIiwiaW5jbHVkZXMiKTt2YXIgR3IsUG49Ti5mLHpyPSIiLnN0YXJ0c1dpdGgsUXI9TWF0aC5taW4sbHI9bHIoInN0YXJ0c1dpdGgiKSxHcj0hKGxyfHwoIShHcj1QbihTdHJpbmcucHJvdG90eXBlLCJzdGFydHNXaXRoIikpfHxHci53cml0YWJsZSkpO3N0KHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFHciYmIWxyfSx7c3RhcnRzV2l0aDpmdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcocyh0aGlzKSk7S3IodCk7dmFyIG49cnQoUXIoMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsZS5sZW5ndGgpKSx0PVN0cmluZyh0KTtyZXR1cm4genI/enIuY2FsbChlLHQsbik6ZS5zbGljZShuLG4rdC5sZW5ndGgpPT09dH19KTtaKCJTdHJpbmciLCJzdGFydHNXaXRoIik7c3Qoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGVhdDoiIi5yZXBlYXR8fGZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhzKHRoaXMpKSxuPSIiLHI9bnQodCk7aWYocjwwfHxyPT0xLzApdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbnVtYmVyIG9mIHJlcGV0aXRpb25zIik7Zm9yKDswPHI7KHI+Pj49MSkmJihlKz1lKSkxJnImJihuKz1lKTtyZXR1cm4gbn19KTtaKCJTdHJpbmciLCJyZXBlYXQiKTt2YXIgWXIsWHI9V3QoInNwZWNpZXMiKSxKcj1XdCgiaXNDb25jYXRTcHJlYWRhYmxlIiksJHI9OTAwNzE5OTI1NDc0MDk5MSxacj0iTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIixscj01MTw9dW58fCFnKGZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRbSnJdPSExLHQuY29uY2F0KClbMF0hPT10fSksWj0oWXI9ImNvbmNhdCIsNTE8PXVufHwhZyhmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybih0LmNvbnN0cnVjdG9yPXt9KVtYcl09ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09dFtZcl0oQm9vbGVhbikuZm9vfSkpO3N0KHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IWxyfHwhWn0se2NvbmNhdDpmdW5jdGlvbih0KXtmb3IodmFyIGUsbixyLGk9YXQodGhpcyksbz1zcihpLDApLHM9MCxhPS0xLHU9YXJndW1lbnRzLmxlbmd0aDthPHU7YSsrKWlmKGZ1bmN0aW9uKHQpe2lmKCF5KHQpKXJldHVybiExO3ZhciBlPXRbSnJdO3JldHVybiB2b2lkIDAhPT1lPyEhZTp1cih0KX0ocj0tMT09PWE/aTphcmd1bWVudHNbYV0pKXtpZihuPXJ0KHIubGVuZ3RoKSwkcjxzK24pdGhyb3cgVHlwZUVycm9yKFpyKTtmb3IoZT0wO2U8bjtlKysscysrKWUgaW4gciYmd3IobyxzLHJbZV0pfWVsc2V7aWYoJHI8PXMpdGhyb3cgVHlwZUVycm9yKFpyKTt3cihvLHMrKyxyKX1yZXR1cm4gby5sZW5ndGg9cyxvfX0pO2Z1bmN0aW9uIHRpKHQpe3ZhciBlPXB0LlN5bWJvbHx8KHB0LlN5bWJvbD17fSk7YyhlLHQpfHxhaShlLHQse3ZhbHVlOnNpLmYodCl9KX1mdW5jdGlvbiBlaSh0LGUpe3ZhciBuPV9pW3RdPVF0KHZpW2xpXSk7cmV0dXJuIGZpKG4se3R5cGU6aGksdGFnOnQsZGVzY3JpcHRpb246ZX0pLGZ8fChuLmRlc2NyaXB0aW9uPWUpLG59ZnVuY3Rpb24gbmkoZSx0KXttKGUpO3ZhciBuPXUodCksdD1GdChuKS5jb25jYXQoUmkobikpO3JldHVybiB1aSh0LGZ1bmN0aW9uKHQpe2YmJiFraS5jYWxsKG4sdCl8fEFpKGUsdCxuW3RdKX0pLGV9dmFyIHJpPVR0LmYsaWk9e30udG9TdHJpbmcsb2k9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXSxaPXtmOmZ1bmN0aW9uKHQpe3JldHVybiBvaSYmIltvYmplY3QgV2luZG93XSI9PWlpLmNhbGwodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiByaSh0KX1jYXRjaCh0KXtyZXR1cm4gb2kuc2xpY2UoKX19KHQpOnJpKHUodCkpfX0sc2k9e2Y6V3R9LGFpPWsuZix1aT1Tbi5mb3JFYWNoLGNpPUooImhpZGRlbiIpLGhpPSJTeW1ib2wiLGxpPSJwcm90b3R5cGUiLFNuPVd0KCJ0b1ByaW1pdGl2ZSIpLGZpPWx0LnNldCxwaT1sdC5nZXR0ZXJGb3IoaGkpLGRpPU9iamVjdFtsaV0sdmk9Yi5TeW1ib2wsZ2k9ZXQoIkpTT04iLCJzdHJpbmdpZnkiKSx5aT1OLmYsbWk9ay5mLGJpPVouZix3aT1wLmYsX2k9eigic3ltYm9scyIpLElpPXooIm9wLXN5bWJvbHMiKSxUaT16KCJzdHJpbmctdG8tc3ltYm9sLXJlZ2lzdHJ5IiksRWk9eigic3ltYm9sLXRvLXN0cmluZy1yZWdpc3RyeSIpLEo9eigid2tzIiksej1iLlFPYmplY3QsU2k9IXp8fCF6W2xpXXx8IXpbbGldLmZpbmRDaGlsZCxDaT1mJiZnKGZ1bmN0aW9uKCl7cmV0dXJuIDchPVF0KG1pKHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG1pKHRoaXMsImEiLHt2YWx1ZTo3fSkuYX19KSkuYX0pP2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj15aShkaSxlKTtyJiZkZWxldGUgZGlbZV0sbWkodCxlLG4pLHImJnQhPT1kaSYmbWkoZGksZSxyKX06bWksTmk9YT9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QodClpbnN0YW5jZW9mIHZpfSxBaT1mdW5jdGlvbih0LGUsbil7dD09PWRpJiZBaShJaSxlLG4pLG0odCk7ZT1pKGUsITApO3JldHVybiBtKG4pLGMoX2ksZSk/KG4uZW51bWVyYWJsZT8oYyh0LGNpKSYmdFtjaV1bZV0mJih0W2NpXVtlXT0hMSksbj1RdChuLHtlbnVtZXJhYmxlOnYoMCwhMSl9KSk6KGModCxjaSl8fG1pKHQsY2ksdigxLHt9KSksdFtjaV1bZV09ITApLENpKHQsZSxuKSk6bWkodCxlLG4pfSxraT1mdW5jdGlvbih0KXt2YXIgZT1pKHQsITApLHQ9d2kuY2FsbCh0aGlzLGUpO3JldHVybiEodGhpcz09PWRpJiZjKF9pLGUpJiYhYyhJaSxlKSkmJighKHR8fCFjKHRoaXMsZSl8fCFjKF9pLGUpfHxjKHRoaXMsY2kpJiZ0aGlzW2NpXVtlXSl8fHQpfSx6PWZ1bmN0aW9uKHQsZSl7dmFyIG49dSh0KSx0PWkoZSwhMCk7aWYobiE9PWRpfHwhYyhfaSx0KXx8YyhJaSx0KSl7ZT15aShuLHQpO3JldHVybiFlfHwhYyhfaSx0KXx8YyhuLGNpKSYmbltjaV1bdF18fChlLmVudW1lcmFibGU9ITApLGV9fSxhPWZ1bmN0aW9uKHQpe3ZhciB0PWJpKHUodCkpLGU9W107cmV0dXJuIHVpKHQsZnVuY3Rpb24odCl7YyhfaSx0KXx8YygkLHQpfHxlLnB1c2godCl9KSxlfSxSaT1mdW5jdGlvbih0KXt2YXIgZT10PT09ZGksdD1iaShlP0lpOnUodCkpLG49W107cmV0dXJuIHVpKHQsZnVuY3Rpb24odCl7IWMoX2ksdCl8fGUmJiFjKGRpLHQpfHxuLnB1c2goX2lbdF0pfSksbn07WXR8fChmdCgodmk9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgdmkpdGhyb3cgVHlwZUVycm9yKCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IiKTt2YXIgdD1hcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/U3RyaW5nKGFyZ3VtZW50c1swXSk6dm9pZCAwLGU9eCh0KSxuPWZ1bmN0aW9uKHQpe3RoaXM9PT1kaSYmbi5jYWxsKElpLHQpLGModGhpcyxjaSkmJmModGhpc1tjaV0sZSkmJih0aGlzW2NpXVtlXT0hMSksQ2kodGhpcyxlLHYoMSx0KSl9O3JldHVybiBmJiZTaSYmQ2koZGksZSx7Y29uZmlndXJhYmxlOiEwLHNldDpufSksZWkoZSx0KX0pW2xpXSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIHBpKHRoaXMpLnRhZ30pLGZ0KHZpLCJ3aXRob3V0U2V0dGVyIixmdW5jdGlvbih0KXtyZXR1cm4gZWkoeCh0KSx0KX0pLHAuZj1raSxrLmY9QWksTi5mPXosVHQuZj1aLmY9YSxFdC5mPVJpLHNpLmY9ZnVuY3Rpb24odCl7cmV0dXJuIGVpKFd0KHQpLHQpfSxmJiYobWkodmlbbGldLCJkZXNjcmlwdGlvbiIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcGkodGhpcykuZGVzY3JpcHRpb259fSksZnQoZGksInByb3BlcnR5SXNFbnVtZXJhYmxlIixraSx7dW5zYWZlOiEwfSkpKSxzdCh7Z2xvYmFsOiEwLHdyYXA6ITAsZm9yY2VkOiFZdCxzaGFtOiFZdH0se1N5bWJvbDp2aX0pLHVpKEZ0KEopLGZ1bmN0aW9uKHQpe3RpKHQpfSksc3Qoe3RhcmdldDpoaSxzdGF0OiEwLGZvcmNlZDohWXR9LHtmb3I6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKHQpO2lmKGMoVGksZSkpcmV0dXJuIFRpW2VdO3Q9dmkoZSk7cmV0dXJuIFRpW2VdPXQsRWlbdF09ZSx0fSxrZXlGb3I6ZnVuY3Rpb24odCl7aWYoIU5pKHQpKXRocm93IFR5cGVFcnJvcih0KyIgaXMgbm90IGEgc3ltYm9sIik7aWYoYyhFaSx0KSlyZXR1cm4gRWlbdF19LHVzZVNldHRlcjpmdW5jdGlvbigpe1NpPSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXtTaT0hMX19KSxzdCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFZdCxzaGFtOiFmfSx7Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/UXQodCk6bmkoUXQodCksZSl9LGRlZmluZVByb3BlcnR5OkFpLGRlZmluZVByb3BlcnRpZXM6bmksZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnp9KSxzdCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFZdH0se2dldE93blByb3BlcnR5TmFtZXM6YSxnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6Uml9KSxzdCh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOmcoZnVuY3Rpb24oKXtFdC5mKDEpfSl9LHtnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZnVuY3Rpb24odCl7cmV0dXJuIEV0LmYoYXQodCkpfX0pLGdpJiYoS2k9IVl0fHxnKGZ1bmN0aW9uKCl7dmFyIHQ9dmkoKTtyZXR1cm4iW251bGxdIiE9Z2koW3RdKXx8Int9IiE9Z2koe2E6dH0pfHwie30iIT1naShPYmplY3QodCkpfSksc3Qoe3RhcmdldDoiSlNPTiIsc3RhdDohMCxmb3JjZWQ6S2l9LHtzdHJpbmdpZnk6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcixpPVt0XSxvPTE7bzxhcmd1bWVudHMubGVuZ3RoOylpLnB1c2goYXJndW1lbnRzW28rK10pO2lmKCh5KHI9ZSl8fHZvaWQgMCE9PXQpJiYhTmkodCkpcmV0dXJuIHVyKGUpfHwoZT1mdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiByJiYoZT1yLmNhbGwodGhpcyx0LGUpKSwhTmkoZSkpcmV0dXJuIGV9KSxpWzFdPWUsZ2kuYXBwbHkobnVsbCxpKX19KSksdmlbbGldW1NuXXx8Uih2aVtsaV0sU24sdmlbbGldLnZhbHVlT2YpLGZlKHZpLGhpKSwkW2NpXT0hMCx0aSgiYXN5bmNJdGVyYXRvciIpO3ZhciBQaSxPaSxEaSx4aSxMaSx6PWsuZixNaT1iLlN5bWJvbDshZnx8ImZ1bmN0aW9uIiE9dHlwZW9mIE1pfHwiZGVzY3JpcHRpb24iaW4gTWkucHJvdG90eXBlJiZ2b2lkIDA9PT1NaSgpLmRlc2NyaXB0aW9ufHwoUGk9e30sb3QoT2k9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPDF8fHZvaWQgMD09PWFyZ3VtZW50c1swXT92b2lkIDA6U3RyaW5nKGFyZ3VtZW50c1swXSksZT10aGlzIGluc3RhbmNlb2YgT2k/bmV3IE1pKHQpOnZvaWQgMD09PXQ/TWkoKTpNaSh0KTtyZXR1cm4iIj09PXQmJihQaVtlXT0hMCksZX0sTWkpLChHaT1PaS5wcm90b3R5cGU9TWkucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcj1PaSxEaT1HaS50b1N0cmluZyx4aT0iU3ltYm9sKHRlc3QpIj09U3RyaW5nKE1pKCJ0ZXN0IikpLExpPS9eU3ltYm9sXCgoLiopXClbXildKyQvLHooR2ksImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PXkodGhpcyk/dGhpcy52YWx1ZU9mKCk6dGhpcyxlPURpLmNhbGwodCk7aWYoYyhQaSx0KSlyZXR1cm4iIjtlPXhpP2Uuc2xpY2UoNywtMSk6ZS5yZXBsYWNlKExpLCIkMSIpO3JldHVybiIiPT09ZT92b2lkIDA6ZX19KSxzdCh7Z2xvYmFsOiEwLGZvcmNlZDohMH0se1N5bWJvbDpPaX0pKSx0aSgiaGFzSW5zdGFuY2UiKSx0aSgiaXNDb25jYXRTcHJlYWRhYmxlIiksdGkoIml0ZXJhdG9yIiksdGkoIm1hdGNoIiksdGkoIm1hdGNoQWxsIiksdGkoInJlcGxhY2UiKSx0aSgic2VhcmNoIiksdGkoInNwZWNpZXMiKSx0aSgic3BsaXQiKSx0aSgidG9QcmltaXRpdmUiKSx0aSgidG9TdHJpbmdUYWciKSx0aSgidW5zY29wYWJsZXMiKSxmZShiLkpTT04sIkpTT04iLCEwKSxmZShNYXRoLCJNYXRoIiwhMCksc3Qoe2dsb2JhbDohMH0se1JlZmxlY3Q6e319KSxmZShiLlJlZmxlY3QsIlJlZmxlY3QiLCEwKTtwdC5TeW1ib2w7dGkoImFzeW5jRGlzcG9zZSIpLHRpKCJkaXNwb3NlIiksdGkoIm9ic2VydmFibGUiKSx0aSgicGF0dGVybk1hdGNoIiksdGkoInJlcGxhY2VBbGwiKTtzaS5mKCJpdGVyYXRvciIpO3ZhciBGaT0hZyhmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSksVWk9ZShmdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2UodCxyLHt2YWx1ZTp7b2JqZWN0SUQ6Ik8iKyArK2ksd2Vha0RhdGE6e319fSl9dmFyIGU9ay5mLHI9eCgibWV0YSIpLGk9MCxvPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHM9dC5leHBvcnRzPXtSRVFVSVJFRDohMSxmYXN0S2V5OmZ1bmN0aW9uKHQsZSl7aWYoIXkodCkpcmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6KCJzdHJpbmciPT10eXBlb2YgdD8iUyI6IlAiKSt0O2lmKCFjKHQscikpe2lmKCFvKHQpKXJldHVybiJGIjtpZighZSlyZXR1cm4iRSI7bih0KX1yZXR1cm4gdFtyXS5vYmplY3RJRH0sZ2V0V2Vha0RhdGE6ZnVuY3Rpb24odCxlKXtpZighYyh0LHIpKXtpZighbyh0KSlyZXR1cm4hMDtpZighZSlyZXR1cm4hMTtuKHQpfXJldHVybiB0W3JdLndlYWtEYXRhfSxvbkZyZWV6ZTpmdW5jdGlvbih0KXtyZXR1cm4gRmkmJnMuUkVRVUlSRUQmJm8odCkmJiFjKHQscikmJm4odCksdH19OyRbcl09ITB9KSxhPWZ1bmN0aW9uKHMsdCxlKXtmdW5jdGlvbiBuKHQpe3ZhciBuPXBbdF07ZnQocCx0LCJhZGQiPT10P2Z1bmN0aW9uKHQpe3JldHVybiBuLmNhbGwodGhpcywwPT09dD8wOnQpLHRoaXN9OiJkZWxldGUiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoaCYmIXkodCkpJiZuLmNhbGwodGhpcywwPT09dD8wOnQpfToiZ2V0Ij09dD9mdW5jdGlvbih0KXtyZXR1cm4gaCYmIXkodCk/dm9pZCAwOm4uY2FsbCh0aGlzLDA9PT10PzA6dCl9OiJoYXMiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoaCYmIXkodCkpJiZuLmNhbGwodGhpcywwPT09dD8wOnQpfTpmdW5jdGlvbih0LGUpe3JldHVybiBuLmNhbGwodGhpcywwPT09dD8wOnQsZSksdGhpc30pfXZhciByLGksbyxhLHUsYz0tMSE9PXMuaW5kZXhPZigiTWFwIiksaD0tMSE9PXMuaW5kZXhPZigiV2VhayIpLGw9Yz8ic2V0IjoiYWRkIixmPWJbc10scD1mJiZmLnByb3RvdHlwZSxkPWYsdj17fTtyZXR1cm4gUHQocywiZnVuY3Rpb24iIT10eXBlb2YgZnx8IShofHxwLmZvckVhY2gmJiFnKGZ1bmN0aW9uKCl7KG5ldyBmKS5lbnRyaWVzKCkubmV4dCgpfSkpKT8oZD1lLmdldENvbnN0cnVjdG9yKHQscyxjLGwpLFVpLlJFUVVJUkVEPSEwKTpQdChzLCEwKSYmKGk9KHI9bmV3IGQpW2xdKGg/e306LTAsMSkhPXIsbz1nKGZ1bmN0aW9uKCl7ci5oYXMoMSl9KSxhPVRlKGZ1bmN0aW9uKHQpe25ldyBmKHQpfSksdT0haCYmZyhmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgZixlPTU7ZS0tOyl0W2xdKGUsZSk7cmV0dXJuIXQuaGFzKC0wKX0pLGF8fCgoKGQ9dChmdW5jdGlvbih0LGUpe2RlKHQsZCxzKTt2YXIgbixyLGksbyxuPShuPW5ldyBmLHI9dCx0PWQsTXQmJiJmdW5jdGlvbiI9PXR5cGVvZihpPXIuY29uc3RydWN0b3IpJiZpIT09dCYmeShvPWkucHJvdG90eXBlKSYmbyE9PXQucHJvdG90eXBlJiZNdChuLG8pLG4pO3JldHVybiBudWxsIT1lJiZvZShlLG5bbF0se3RoYXQ6bixBU19FTlRSSUVTOmN9KSxufSkpLnByb3RvdHlwZT1wKS5jb25zdHJ1Y3Rvcj1kKSwob3x8dSkmJihuKCJkZWxldGUiKSxuKCJoYXMiKSxjJiZuKCJnZXQiKSksKHV8fGkpJiZuKGwpLGgmJnAuY2xlYXImJmRlbGV0ZSBwLmNsZWFyKSx2W3NdPWQsc3Qoe2dsb2JhbDohMCxmb3JjZWQ6ZCE9Zn0sdiksZmUoZCxzKSxofHxlLnNldFN0cm9uZyhkLHMsYyksZH0samk9ay5mLHFpPVVpLmZhc3RLZXksVmk9bHQuc2V0LEJpPWx0LmdldHRlckZvcixLaT17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24odCxuLHIsaSl7ZnVuY3Rpb24gbyh0LGUsbil7dmFyIHIsaT1hKHQpLG89dSh0LGUpO3JldHVybiBvP28udmFsdWU9bjooaS5sYXN0PW89e2luZGV4OnI9cWkoZSwhMCksa2V5OmUsdmFsdWU6bixwcmV2aW91czpuPWkubGFzdCxuZXh0OnZvaWQgMCxyZW1vdmVkOiExfSxpLmZpcnN0fHwoaS5maXJzdD1vKSxuJiYobi5uZXh0PW8pLGY/aS5zaXplKys6dC5zaXplKyssIkYiIT09ciYmKGkuaW5kZXhbcl09bykpLHR9dmFyIHM9dChmdW5jdGlvbih0LGUpe2RlKHQscyxuKSxWaSh0LHt0eXBlOm4saW5kZXg6UXQobnVsbCksZmlyc3Q6dm9pZCAwLGxhc3Q6dm9pZCAwLHNpemU6MH0pLGZ8fCh0LnNpemU9MCksbnVsbCE9ZSYmb2UoZSx0W2ldLHt0aGF0OnQsQVNfRU5UUklFUzpyfSl9KSxhPUJpKG4pLHU9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWEodCksdD1xaShlKTtpZigiRiIhPT10KXJldHVybiByLmluZGV4W3RdO2ZvcihuPXIuZmlyc3Q7bjtuPW4ubmV4dClpZihuLmtleT09ZSlyZXR1cm4gbn07cmV0dXJuIGxlKHMucHJvdG90eXBlLHtjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdD1hKHRoaXMpLGU9dC5pbmRleCxuPXQuZmlyc3Q7bjspbi5yZW1vdmVkPSEwLG4ucHJldmlvdXMmJihuLnByZXZpb3VzPW4ucHJldmlvdXMubmV4dD12b2lkIDApLGRlbGV0ZSBlW24uaW5kZXhdLG49bi5uZXh0O3QuZmlyc3Q9dC5sYXN0PXZvaWQgMCxmP3Quc2l6ZT0wOnRoaXMuc2l6ZT0wfSxkZWxldGU6ZnVuY3Rpb24odCl7dmFyIGUsbj1hKHRoaXMpLHI9dSh0aGlzLHQpO3JldHVybiByJiYoZT1yLm5leHQsdD1yLnByZXZpb3VzLGRlbGV0ZSBuLmluZGV4W3IuaW5kZXhdLHIucmVtb3ZlZD0hMCx0JiYodC5uZXh0PWUpLGUmJihlLnByZXZpb3VzPXQpLG4uZmlyc3Q9PXImJihuLmZpcnN0PWUpLG4ubGFzdD09ciYmKG4ubGFzdD10KSxmP24uc2l6ZS0tOnRoaXMuc2l6ZS0tKSwhIXJ9LGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49YSh0aGlzKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7ZT1lP2UubmV4dDpuLmZpcnN0Oylmb3IocihlLnZhbHVlLGUua2V5LHRoaXMpO2UmJmUucmVtb3ZlZDspZT1lLnByZXZpb3VzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISF1KHRoaXMsdCl9fSksbGUocy5wcm90b3R5cGUscj97Z2V0OmZ1bmN0aW9uKHQpe3Q9dSh0aGlzLHQpO3JldHVybiB0JiZ0LnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbyh0aGlzLDA9PT10PzA6dCxlKX19OnthZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0PTA9PT10PzA6dCx0KX19KSxmJiZqaShzLnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiBhKHRoaXMpLnNpemV9fSksc30sc2V0U3Ryb25nOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1lKyIgSXRlcmF0b3IiLGk9QmkoZSksbz1CaShyKTt4bih0LGUsZnVuY3Rpb24odCxlKXtWaSh0aGlzLHt0eXBlOnIsdGFyZ2V0OnQsc3RhdGU6aSh0KSxraW5kOmUsbGFzdDp2b2lkIDB9KX0sZnVuY3Rpb24oKXtmb3IodmFyIHQ9byh0aGlzKSxlPXQua2luZCxuPXQubGFzdDtuJiZuLnJlbW92ZWQ7KW49bi5wcmV2aW91cztyZXR1cm4gdC50YXJnZXQmJih0Lmxhc3Q9bj1uP24ubmV4dDp0LnN0YXRlLmZpcnN0KT8ia2V5cyI9PWU/e3ZhbHVlOm4ua2V5LGRvbmU6ITF9OiJ2YWx1ZXMiPT1lP3t2YWx1ZTpuLnZhbHVlLGRvbmU6ITF9Ont2YWx1ZTpbbi5rZXksbi52YWx1ZV0sZG9uZTohMX06e3ZhbHVlOnQudGFyZ2V0PXZvaWQgMCxkb25lOiEwfX0sbj8iZW50cmllcyI6InZhbHVlcyIsIW4sITApLHBlKGUpfX0sU249KGEoIk1hcCIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sS2kpLHB0Lk1hcCxmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvPWFyZ3VtZW50cy5sZW5ndGgscz0xPG8/YXJndW1lbnRzWzFdOnZvaWQgMDtyZXR1cm4gR3QodGhpcyksKGU9dm9pZCAwIT09cykmJkd0KHMpLG51bGw9PXQ/bmV3IHRoaXM6KG49W10sZT8ocj0wLGk9enQocywyPG8/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSxvZSh0LGZ1bmN0aW9uKHQpe24ucHVzaChpKHQscisrKSl9KSk6b2UodCxuLnB1c2gse3RoYXQ6bn0pLG5ldyB0aGlzKG4pKX0pO3N0KHt0YXJnZXQ6Ik1hcCIsc3RhdDohMH0se2Zyb206U259KTt6PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCk7dC0tOyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gbmV3IHRoaXMoZSl9O3N0KHt0YXJnZXQ6Ik1hcCIsc3RhdDohMH0se29mOnp9KTtmdW5jdGlvbiBXaSgpe2Zvcih2YXIgdCxlPW0odGhpcyksbj1HdChlLmRlbGV0ZSkscj0hMCxpPTAsbz1hcmd1bWVudHMubGVuZ3RoO2k8bztpKyspdD1uLmNhbGwoZSxhcmd1bWVudHNbaV0pLHI9ciYmdDtyZXR1cm4hIXJ9c3Qoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIFdpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTtzdCh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtlbXBsYWNlOmZ1bmN0aW9uKHQsZSl7dmFyIG49bSh0aGlzKSxlPW4uaGFzKHQpJiYidXBkYXRlImluIGU/ZS51cGRhdGUobi5nZXQodCksdCxuKTplLmluc2VydCh0LG4pO3JldHVybiBuLnNldCh0LGUpLGV9fSk7ZnVuY3Rpb24gSGkodCl7cmV0dXJuIE1hcC5wcm90b3R5cGUuZW50cmllcy5jYWxsKHQpfXN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2V2ZXJ5OmZ1bmN0aW9uKHQpe3ZhciByPW0odGhpcyksZT1IaShyKSxpPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIW9lKGUsZnVuY3Rpb24odCxlLG4pe2lmKCFpKGUsdCxyKSlyZXR1cm4gbigpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMCxJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSksc3Qoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBuPW0odGhpcyksZT1IaShuKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksaT1uZXcoRWUobixldCgiTWFwIikpKSxvPUd0KGkuc2V0KTtyZXR1cm4gb2UoZSxmdW5jdGlvbih0LGUpe3IoZSx0LG4pJiZvLmNhbGwoaSx0LGUpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMH0pLGl9fSksc3Qoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmluZDpmdW5jdGlvbih0KXt2YXIgcj1tKHRoaXMpLGU9SGkociksaT16dCh0LDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSxuKXtpZihpKGUsdCxyKSlyZXR1cm4gbihlKX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSksc3Qoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmluZEtleTpmdW5jdGlvbih0KXt2YXIgcj1tKHRoaXMpLGU9SGkociksaT16dCh0LDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSxuKXtpZihpKGUsdCxyKSlyZXR1cm4gbih0KX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSksc3Qoe3RhcmdldDoiTWFwIixzdGF0OiEwfSx7Z3JvdXBCeTpmdW5jdGlvbih0LG4pe3ZhciByPW5ldyB0aGlzO0d0KG4pO3ZhciBpPUd0KHIuaGFzKSxvPUd0KHIuZ2V0KSxzPUd0KHIuc2V0KTtyZXR1cm4gb2UodCxmdW5jdGlvbih0KXt2YXIgZT1uKHQpO2kuY2FsbChyLGUpP28uY2FsbChyLGUpLnB1c2godCk6cy5jYWxsKHIsZSxbdF0pfSkscn19KTtzdCh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtpbmNsdWRlczpmdW5jdGlvbihpKXtyZXR1cm4gb2UoSGkobSh0aGlzKSksZnVuY3Rpb24odCxlLG4pe2lmKChyPWUpPT09KGU9aSl8fHIhPXImJmUhPWUpcmV0dXJuIG4oKTt2YXIgcn0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6Ik1hcCIsc3RhdDohMH0se2tleUJ5OmZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IHRoaXM7R3QoZSk7dmFyIHI9R3Qobi5zZXQpO3JldHVybiBvZSh0LGZ1bmN0aW9uKHQpe3IuY2FsbChuLGUodCksdCl9KSxufX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2tleU9mOmZ1bmN0aW9uKHIpe3JldHVybiBvZShIaShtKHRoaXMpKSxmdW5jdGlvbih0LGUsbil7aWYoZT09PXIpcmV0dXJuIG4odCl9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwLElOVEVSUlVQVEVEOiEwfSkucmVzdWx0fX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se21hcEtleXM6ZnVuY3Rpb24odCl7dmFyIG49bSh0aGlzKSxlPUhpKG4pLHI9enQodCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxpPW5ldyhFZShuLGV0KCJNYXAiKSkpLG89R3QoaS5zZXQpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSl7by5jYWxsKGkscihlLHQsbiksZSl9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwfSksaX19KSxzdCh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHttYXBWYWx1ZXM6ZnVuY3Rpb24odCl7dmFyIG49bSh0aGlzKSxlPUhpKG4pLHI9enQodCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxpPW5ldyhFZShuLGV0KCJNYXAiKSkpLG89R3QoaS5zZXQpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSl7by5jYWxsKGksdCxyKGUsdCxuKSl9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwfSksaX19KSxzdCh7dGFyZ2V0OiJNYXAiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHttZXJnZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9bSh0aGlzKSxuPUd0KGUuc2V0KSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoOylvZShhcmd1bWVudHNbcisrXSxuLHt0aGF0OmUsQVNfRU5UUklFUzohMH0pO3JldHVybiBlfX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3JlZHVjZTpmdW5jdGlvbihuKXt2YXIgcj1tKHRoaXMpLHQ9SGkociksaT1hcmd1bWVudHMubGVuZ3RoPDIsbz1pP3ZvaWQgMDphcmd1bWVudHNbMV07aWYoR3Qobiksb2UodCxmdW5jdGlvbih0LGUpe289aT8oaT0hMSxlKTpuKG8sZSx0LHIpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMH0pLGkpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgbWFwIHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO3JldHVybiBvfX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3NvbWU6ZnVuY3Rpb24odCl7dmFyIHI9bSh0aGlzKSxlPUhpKHIpLGk9enQodCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4gb2UoZSxmdW5jdGlvbih0LGUsbil7aWYoaShlLHQscikpcmV0dXJuIG4oKX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3VwZGF0ZTpmdW5jdGlvbih0LGUpe3ZhciBuPW0odGhpcykscj1hcmd1bWVudHMubGVuZ3RoO0d0KGUpO3ZhciBpPW4uaGFzKHQpO2lmKCFpJiZyPDMpdGhyb3cgVHlwZUVycm9yKCJVcGRhdGluZyBhYnNlbnQgdmFsdWUiKTtyPWk/bi5nZXQodCk6R3QoMjxyP2FyZ3VtZW50c1syXTp2b2lkIDApKHQsbik7cmV0dXJuIG4uc2V0KHQsZShyLHQsbikpLG59fSk7dmFyIEdpPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1tKHRoaXMpLGk9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTp2b2lkIDA7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBpKXRocm93IFR5cGVFcnJvcigiQXQgbGVhc3Qgb25lIGNhbGxiYWNrIHJlcXVpcmVkIik7cmV0dXJuIHIuaGFzKHQpPyhuPXIuZ2V0KHQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lKG4pLHIuc2V0KHQsbikpKToiZnVuY3Rpb24iPT10eXBlb2YgaSYmKG49aSgpLHIuc2V0KHQsbikpLG59O3N0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3Vwc2VydDpHaX0pLHN0KHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3VwZGF0ZU9ySW5zZXJ0OkdpfSk7YSgiU2V0IixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxLaSkscHQuU2V0O3N0KHt0YXJnZXQ6IlNldCIsc3RhdDohMH0se2Zyb206U259KSxzdCh7dGFyZ2V0OiJTZXQiLHN0YXQ6ITB9LHtvZjp6fSk7c3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7YWRkQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PW0odGhpcyksZT1HdCh0LmFkZCksbj0wLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKWUuY2FsbCh0LGFyZ3VtZW50c1tuXSk7cmV0dXJuIHR9LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gV2kuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pO2Z1bmN0aW9uIHppKHQpe3JldHVybiBTZXQucHJvdG90eXBlLnZhbHVlcy5jYWxsKHQpfXN0KHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2V2ZXJ5OmZ1bmN0aW9uKHQpe3ZhciBuPW0odGhpcyksZT16aShuKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIW9lKGUsZnVuY3Rpb24odCxlKXtpZighcih0LHQsbikpcmV0dXJuIGUoKX0se0lTX0lURVJBVE9SOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtkaWZmZXJlbmNlOmZ1bmN0aW9uKHQpe3ZhciBlPW0odGhpcyksbj1uZXcoRWUoZSxldCgiU2V0IikpKShlKSxyPUd0KG4uZGVsZXRlKTtyZXR1cm4gb2UodCxmdW5jdGlvbih0KXtyLmNhbGwobix0KX0pLG59fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBlPW0odGhpcyksbj16aShlKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksaT1uZXcoRWUoZSxldCgiU2V0IikpKSxvPUd0KGkuYWRkKTtyZXR1cm4gb2UobixmdW5jdGlvbih0KXtyKHQsdCxlKSYmby5jYWxsKGksdCl9LHtJU19JVEVSQVRPUjohMH0pLGl9fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7ZmluZDpmdW5jdGlvbih0KXt2YXIgbj1tKHRoaXMpLGU9emkobikscj16dCh0LDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBvZShlLGZ1bmN0aW9uKHQsZSl7aWYocih0LHQsbikpcmV0dXJuIGUodCl9LHtJU19JVEVSQVRPUjohMCxJTlRFUlJVUFRFRDohMH0pLnJlc3VsdH19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtpbnRlcnNlY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9bSh0aGlzKSxuPW5ldyhFZShlLGV0KCJTZXQiKSkpLHI9R3QoZS5oYXMpLGk9R3Qobi5hZGQpO3JldHVybiBvZSh0LGZ1bmN0aW9uKHQpe3IuY2FsbChlLHQpJiZpLmNhbGwobix0KX0pLG59fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7aXNEaXNqb2ludEZyb206ZnVuY3Rpb24odCl7dmFyIG49bSh0aGlzKSxyPUd0KG4uaGFzKTtyZXR1cm4hb2UodCxmdW5jdGlvbih0LGUpe2lmKCEwPT09ci5jYWxsKG4sdCkpcmV0dXJuIGUoKX0se0lOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtpc1N1YnNldE9mOmZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBlPW5lKHQpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcihTdHJpbmcodCkrIiBpcyBub3QgaXRlcmFibGUiKTtyZXR1cm4gbShlLmNhbGwodCkpfSh0aGlzKSxuPW0odCkscj1uLmhhcztyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgciYmKG49bmV3KGV0KCJTZXQiKSkodCkscj1HdChuLmhhcykpLCFvZShlLGZ1bmN0aW9uKHQsZSl7aWYoITE9PT1yLmNhbGwobix0KSlyZXR1cm4gZSgpfSx7SVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2lzU3VwZXJzZXRPZjpmdW5jdGlvbih0KXt2YXIgbj1tKHRoaXMpLHI9R3Qobi5oYXMpO3JldHVybiFvZSh0LGZ1bmN0aW9uKHQsZSl7aWYoITE9PT1yLmNhbGwobix0KSlyZXR1cm4gZSgpfSx7SU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se2pvaW46ZnVuY3Rpb24odCl7dmFyIGU9bSh0aGlzKSxuPXppKGUpLGU9dm9pZCAwPT09dD8iLCI6U3RyaW5nKHQpLHQ9W107cmV0dXJuIG9lKG4sdC5wdXNoLHt0aGF0OnQsSVNfSVRFUkFUT1I6ITB9KSx0LmpvaW4oZSl9fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7bWFwOmZ1bmN0aW9uKHQpe3ZhciBlPW0odGhpcyksbj16aShlKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksaT1uZXcoRWUoZSxldCgiU2V0IikpKSxvPUd0KGkuYWRkKTtyZXR1cm4gb2UobixmdW5jdGlvbih0KXtvLmNhbGwoaSxyKHQsdCxlKSl9LHtJU19JVEVSQVRPUjohMH0pLGl9fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7cmVkdWNlOmZ1bmN0aW9uKGUpe3ZhciBuPW0odGhpcyksdD16aShuKSxyPWFyZ3VtZW50cy5sZW5ndGg8MixpPXI/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihHdChlKSxvZSh0LGZ1bmN0aW9uKHQpe2k9cj8ocj0hMSx0KTplKGksdCx0LG4pfSx7SVNfSVRFUkFUT1I6ITB9KSxyKXRocm93IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IHNldCB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTtyZXR1cm4gaX19KSxzdCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkd9LHtzb21lOmZ1bmN0aW9uKHQpe3ZhciBuPW0odGhpcyksZT16aShuKSxyPXp0KHQsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIG9lKGUsZnVuY3Rpb24odCxlKXtpZihyKHQsdCxuKSlyZXR1cm4gZSgpfSx7SVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLHN0KHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6R30se3N5bW1ldHJpY0RpZmZlcmVuY2U6ZnVuY3Rpb24odCl7dmFyIGU9bSh0aGlzKSxuPW5ldyhFZShlLGV0KCJTZXQiKSkpKGUpLHI9R3Qobi5kZWxldGUpLGk9R3Qobi5hZGQpO3JldHVybiBvZSh0LGZ1bmN0aW9uKHQpe3IuY2FsbChuLHQpfHxpLmNhbGwobix0KX0pLG59fSksc3Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpHfSx7dW5pb246ZnVuY3Rpb24odCl7dmFyIGU9bSh0aGlzKSxlPW5ldyhFZShlLGV0KCJTZXQiKSkpKGUpO3JldHVybiBvZSh0LEd0KGUuYWRkKSx7dGhhdDplfSksZX19KTt2YXIgUWk9TWF0aC5mbG9vcjtzdCh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc0ludGVnZXI6ZnVuY3Rpb24odCl7cmV0dXJuIXkodCkmJmlzRmluaXRlKHQpJiZRaSh0KT09PXR9fSk7cHQuTnVtYmVyLmlzSW50ZWdlcjtzdCh7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc05hTjpmdW5jdGlvbih0KXtyZXR1cm4gdCE9dH19KTtwdC5OdW1iZXIuaXNOYU47dmFyIFlpPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKFlpPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9fHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1lW25dKX0pKHQsZSl9O2Z1bmN0aW9uIFhpKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1ZaSh0LGUpLHQucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KG4ucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyBuKX12YXIgSmk9ZnVuY3Rpb24oKXtyZXR1cm4oSmk9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiAkaSh0LHMsYSx1KXtyZXR1cm4gbmV3KGE9YXx8UHJvbWlzZSkoZnVuY3Rpb24obixlKXtmdW5jdGlvbiByKHQpe3RyeXtvKHUubmV4dCh0KSl9Y2F0Y2godCl7ZSh0KX19ZnVuY3Rpb24gaSh0KXt0cnl7byh1LnRocm93KHQpKX1jYXRjaCh0KXtlKHQpfX1mdW5jdGlvbiBvKHQpe3ZhciBlO3QuZG9uZT9uKHQudmFsdWUpOigoZT10LnZhbHVlKWluc3RhbmNlb2YgYT9lOm5ldyBhKGZ1bmN0aW9uKHQpe3QoZSl9KSkudGhlbihyLGkpfW8oKHU9dS5hcHBseSh0LHN8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIFppKG4scil7dmFyIGksbyxzLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmc1swXSl0aHJvdyBzWzFdO3JldHVybiBzWzFdfSx0cnlzOltdLG9wczpbXX0sdD17bmV4dDplKDApLHRocm93OmUoMSkscmV0dXJuOmUoMil9O3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJih0W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHQ7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YTspdHJ5e2lmKGk9MSxvJiYocz0yJmVbMF0/by5yZXR1cm46ZVswXT9vLnRocm93fHwoKHM9by5yZXR1cm4pJiZzLmNhbGwobyksMCk6by5uZXh0KSYmIShzPXMuY2FsbChvLGVbMV0pKS5kb25lKXJldHVybiBzO3N3aXRjaChvPTAsKGU9cz9bMiZlWzBdLHMudmFsdWVdOmUpWzBdKXtjYXNlIDA6Y2FzZSAxOnM9ZTticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6ZVsxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLG89ZVsxXSxlPVswXTtjb250aW51ZTtjYXNlIDc6ZT1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKHM9MDwocz1hLnRyeXMpLmxlbmd0aCYmc1tzLmxlbmd0aC0xXSkmJig2PT09ZVswXXx8Mj09PWVbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWVbMF0mJighc3x8ZVsxXT5zWzBdJiZlWzFdPHNbM10pKXthLmxhYmVsPWVbMV07YnJlYWt9aWYoNj09PWVbMF0mJmEubGFiZWw8c1sxXSl7YS5sYWJlbD1zWzFdLHM9ZTticmVha31pZihzJiZhLmxhYmVsPHNbMl0pe2EubGFiZWw9c1syXSxhLm9wcy5wdXNoKGUpO2JyZWFrfXNbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1lPXIuY2FsbChuLGEpfWNhdGNoKHQpe2U9WzYsdF0sbz0wfWZpbmFsbHl7aT1zPTB9aWYoNSZlWzBdKXRocm93IGVbMV07cmV0dXJue3ZhbHVlOmVbMF0/ZVsxXTp2b2lkIDAsZG9uZTohMH19KFtlLHRdKX19fWZ1bmN0aW9uIHRvKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcixuPWUmJnRbZV0scj0wO2lmKG4pcmV0dXJuIG4uY2FsbCh0KTtpZih0JiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue3ZhbHVlOih0PXQmJnI+PXQubGVuZ3RoP3ZvaWQgMDp0KSYmdFtyKytdLGRvbmU6IXR9fX07dGhyb3cgbmV3IFR5cGVFcnJvcihlPyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX1mdW5jdGlvbiBlbyh0LGUpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gdDt2YXIgcixpLG89bi5jYWxsKHQpLHM9W107dHJ5e2Zvcig7KHZvaWQgMD09PWV8fDA8ZS0tKSYmIShyPW8ubmV4dCgpKS5kb25lOylzLnB1c2goci52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiBzfWZ1bmN0aW9uIG5vKHQsZSl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aCxpPXQubGVuZ3RoO248cjtuKyssaSsrKXRbaV09ZVtuXTtyZXR1cm4gdH1mdW5jdGlvbiBybyh0KXtmb3IodmFyIGU9W10sbj0wLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dC5jaGFyQ29kZUF0KHIpO2k8MTI4P2VbbisrXT1pOihpPDIwNDg/ZVtuKytdPWk+PjZ8MTkyOig1NTI5Nj09KDY0NTEyJmkpJiZyKzE8dC5sZW5ndGgmJjU2MzIwPT0oNjQ1MTImdC5jaGFyQ29kZUF0KHIrMSkpPyhpPTY1NTM2KygoMTAyMyZpKTw8MTApKygxMDIzJnQuY2hhckNvZGVBdCgrK3IpKSxlW24rK109aT4+MTh8MjQwLGVbbisrXT1pPj4xMiY2M3wxMjgpOmVbbisrXT1pPj4xMnwyMjQsZVtuKytdPWk+PjYmNjN8MTI4KSxlW24rK109NjMmaXwxMjgpfXJldHVybiBlfWZ1bmN0aW9uIGlvKHQpe3RyeXtyZXR1cm4gdW8uZGVjb2RlU3RyaW5nKHQsITApfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IoImJhc2U2NERlY29kZSBmYWlsZWQ6ICIsdCl9cmV0dXJuIG51bGx9dmFyIG9vPXtOT0RFX0NMSUVOVDohMSxOT0RFX0FETUlOOiExLFNES19WRVJTSU9OOiIke0pTQ09SRV9WRVJTSU9OfSJ9LHNvPWZ1bmN0aW9uKHQsZSl7aWYoIXQpdGhyb3cgYW8oZSl9LGFvPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRXJyb3IoIkZpcmViYXNlIERhdGFiYXNlICgiK29vLlNES19WRVJTSU9OKyIpIElOVEVSTkFMIEFTU0VSVCBGQUlMRUQ6ICIrdCl9LHVvPXtieXRlVG9DaGFyTWFwXzpudWxsLGNoYXJUb0J5dGVNYXBfOm51bGwsYnl0ZVRvQ2hhck1hcFdlYlNhZmVfOm51bGwsY2hhclRvQnl0ZU1hcFdlYlNhZmVfOm51bGwsRU5DT0RFRF9WQUxTX0JBU0U6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IixnZXQgRU5DT0RFRF9WQUxTKCl7cmV0dXJuIHRoaXMuRU5DT0RFRF9WQUxTX0JBU0UrIisvPSJ9LGdldCBFTkNPREVEX1ZBTFNfV0VCU0FGRSgpe3JldHVybiB0aGlzLkVOQ09ERURfVkFMU19CQVNFKyItXy4ifSxIQVNfTkFUSVZFX1NVUFBPUlQ6ImZ1bmN0aW9uIj09dHlwZW9mIGF0b2IsZW5jb2RlQnl0ZUFycmF5OmZ1bmN0aW9uKHQsZSl7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgRXJyb3IoImVuY29kZUJ5dGVBcnJheSB0YWtlcyBhbiBhcnJheSBhcyBhIHBhcmFtZXRlciIpO3RoaXMuaW5pdF8oKTtmb3IodmFyIG49ZT90aGlzLmJ5dGVUb0NoYXJNYXBXZWJTYWZlXzp0aGlzLmJ5dGVUb0NoYXJNYXBfLHI9W10saT0wO2k8dC5sZW5ndGg7aSs9Myl7dmFyIG89dFtpXSxzPWkrMTx0Lmxlbmd0aCxhPXM/dFtpKzFdOjAsdT1pKzI8dC5sZW5ndGgsYz11P3RbaSsyXTowLGg9bz4+MixvPSgzJm8pPDw0fGE+PjQsYT0oMTUmYSk8PDJ8Yz4+NixjPTYzJmM7dXx8KGM9NjQsc3x8KGE9NjQpKSxyLnB1c2gobltoXSxuW29dLG5bYV0sbltjXSl9cmV0dXJuIHIuam9pbigiIil9LGVuY29kZVN0cmluZzpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLkhBU19OQVRJVkVfU1VQUE9SVCYmIWU/YnRvYSh0KTp0aGlzLmVuY29kZUJ5dGVBcnJheShybyh0KSxlKX0sZGVjb2RlU3RyaW5nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuSEFTX05BVElWRV9TVVBQT1JUJiYhZT9hdG9iKHQpOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTAscj0wO248dC5sZW5ndGg7KXt2YXIgaSxvLHMsYT10W24rK107YTwxMjg/ZVtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoYSk6MTkxPGEmJmE8MjI0PyhvPXRbbisrXSxlW3IrK109U3RyaW5nLmZyb21DaGFyQ29kZSgoMzEmYSk8PDZ8NjMmbykpOjIzOTxhJiZhPDM2NT8oaT0oKDcmYSk8PDE4fCg2MyYobz10W24rK10pKTw8MTJ8KDYzJihzPXRbbisrXSkpPDw2fDYzJnRbbisrXSktNjU1MzYsZVtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGk+PjEwKSksZVtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTYzMjArKDEwMjMmaSkpKToobz10W24rK10scz10W24rK10sZVtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1JmEpPDwxMnwoNjMmbyk8PDZ8NjMmcykpfXJldHVybiBlLmpvaW4oIiIpfSh0aGlzLmRlY29kZVN0cmluZ1RvQnl0ZUFycmF5KHQsZSkpfSxkZWNvZGVTdHJpbmdUb0J5dGVBcnJheTpmdW5jdGlvbih0LGUpe3RoaXMuaW5pdF8oKTtmb3IodmFyIG49ZT90aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlXzp0aGlzLmNoYXJUb0J5dGVNYXBfLHI9W10saT0wO2k8dC5sZW5ndGg7KXt2YXIgbz1uW3QuY2hhckF0KGkrKyldLHM9aTx0Lmxlbmd0aD9uW3QuY2hhckF0KGkpXTowLGE9KytpPHQubGVuZ3RoP25bdC5jaGFyQXQoaSldOjY0LHU9KytpPHQubGVuZ3RoP25bdC5jaGFyQXQoaSldOjY0O2lmKCsraSxudWxsPT1vfHxudWxsPT1zfHxudWxsPT1hfHxudWxsPT11KXRocm93IEVycm9yKCk7bz1vPDwyfHM+PjQ7ci5wdXNoKG8pLDY0IT09YSYmKHM9czw8NCYyNDB8YT4+MixyLnB1c2gocyksNjQhPT11JiYodT1hPDw2JjE5Mnx1LHIucHVzaCh1KSkpfXJldHVybiByfSxpbml0XzpmdW5jdGlvbigpe2lmKCF0aGlzLmJ5dGVUb0NoYXJNYXBfKXt0aGlzLmJ5dGVUb0NoYXJNYXBfPXt9LHRoaXMuY2hhclRvQnl0ZU1hcF89e30sdGhpcy5ieXRlVG9DaGFyTWFwV2ViU2FmZV89e30sdGhpcy5jaGFyVG9CeXRlTWFwV2ViU2FmZV89e307Zm9yKHZhciB0PTA7dDx0aGlzLkVOQ09ERURfVkFMUy5sZW5ndGg7dCsrKXRoaXMuYnl0ZVRvQ2hhck1hcF9bdF09dGhpcy5FTkNPREVEX1ZBTFMuY2hhckF0KHQpLHRoaXMuY2hhclRvQnl0ZU1hcF9bdGhpcy5ieXRlVG9DaGFyTWFwX1t0XV09dCx0aGlzLmJ5dGVUb0NoYXJNYXBXZWJTYWZlX1t0XT10aGlzLkVOQ09ERURfVkFMU19XRUJTQUZFLmNoYXJBdCh0KSwodGhpcy5jaGFyVG9CeXRlTWFwV2ViU2FmZV9bdGhpcy5ieXRlVG9DaGFyTWFwV2ViU2FmZV9bdF1dPXQpPj10aGlzLkVOQ09ERURfVkFMU19CQVNFLmxlbmd0aCYmKHRoaXMuY2hhclRvQnl0ZU1hcF9bdGhpcy5FTkNPREVEX1ZBTFNfV0VCU0FGRS5jaGFyQXQodCldPXQsdGhpcy5jaGFyVG9CeXRlTWFwV2ViU2FmZV9bdGhpcy5FTkNPREVEX1ZBTFMuY2hhckF0KHQpXT10KX19fTtmdW5jdGlvbiBjbyh0KXtyZXR1cm4gaG8odm9pZCAwLHQpfWZ1bmN0aW9uIGhvKHQsZSl7aWYoIShlIGluc3RhbmNlb2YgT2JqZWN0KSlyZXR1cm4gZTtzd2l0Y2goZS5jb25zdHJ1Y3Rvcil7Y2FzZSBEYXRlOnJldHVybiBuZXcgRGF0ZShlLmdldFRpbWUoKSk7Y2FzZSBPYmplY3Q6dm9pZCAwPT09dCYmKHQ9e30pO2JyZWFrO2Nhc2UgQXJyYXk6dD1bXTticmVhaztkZWZhdWx0OnJldHVybiBlfWZvcih2YXIgbiBpbiBlKWUuaGFzT3duUHJvcGVydHkobikmJiJfX3Byb3RvX18iIT09biYmKHRbbl09aG8odFtuXSxlW25dKSk7cmV0dXJuIHR9dmFyIGxvPShmby5wcm90b3R5cGUud3JhcENhbGxiYWNrPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dD9yLnJlamVjdCh0KTpyLnJlc29sdmUoZSksImZ1bmN0aW9uIj09dHlwZW9mIG4mJihyLnByb21pc2UuY2F0Y2goZnVuY3Rpb24oKXt9KSwxPT09bi5sZW5ndGg/bih0KTpuKHQsZSkpfX0sZm8pO2Z1bmN0aW9uIGZvKCl7dmFyIG49dGhpczt0aGlzLnJlamVjdD1mdW5jdGlvbigpe30sdGhpcy5yZXNvbHZlPWZ1bmN0aW9uKCl7fSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLnJlc29sdmU9dCxuLnJlamVjdD1lfSl9ZnVuY3Rpb24gcG8oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmInN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3IudXNlckFnZW50P25hdmlnYXRvci51c2VyQWdlbnQ6IiJ9ZnVuY3Rpb24gdm8oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5jb3Jkb3ZhfHx3aW5kb3cucGhvbmVnYXB8fHdpbmRvdy5QaG9uZUdhcCkmJi9pb3N8aXBob25lfGlwb2R8aXBhZHxhbmRyb2lkfGJsYWNrYmVycnl8aWVtb2JpbGUvaS50ZXN0KHBvKCkpfWZ1bmN0aW9uIGdvKCl7dmFyIHQ9Im9iamVjdCI9PXR5cGVvZiBjaHJvbWU/Y2hyb21lLnJ1bnRpbWU6Im9iamVjdCI9PXR5cGVvZiBicm93c2VyP2Jyb3dzZXIucnVudGltZTp2b2lkIDA7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZ2b2lkIDAhPT10LmlkfWZ1bmN0aW9uIHlvKCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3ImJiJSZWFjdE5hdGl2ZSI9PT1uYXZpZ2F0b3IucHJvZHVjdH1mdW5jdGlvbiBtbygpe3JldHVybiEwPT09b28uTk9ERV9BRE1JTn1mdW5jdGlvbiBibygpe3JldHVybiJpbmRleGVkREIiaW4gc2VsZiYmbnVsbCE9aW5kZXhlZERCfWZ1bmN0aW9uIHdvKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dHJ5e3ZhciBuPSEwLHI9InZhbGlkYXRlLWJyb3dzZXItY29udGV4dC1mb3ItaW5kZXhlZGRiLWFuYWx5dGljcy1tb2R1bGUiLGk9d2luZG93LmluZGV4ZWREQi5vcGVuKHIpO2kub25zdWNjZXNzPWZ1bmN0aW9uKCl7aS5yZXN1bHQuY2xvc2UoKSxufHx3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKHIpLHQoITApfSxpLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbigpe249ITF9LGkub25lcnJvcj1mdW5jdGlvbigpe3ZhciB0O2UoKG51bGw9PT0odD1pLmVycm9yKXx8dm9pZCAwPT09dD92b2lkIDA6dC5tZXNzYWdlKXx8IiIpfX1jYXRjaCh0KXtlKHQpfX0pfWZ1bmN0aW9uIF9vKCl7cmV0dXJuISghbmF2aWdhdG9yfHwhbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQpfXZhciBJbyxUbz0iRmlyZWJhc2VFcnJvciIsRW89KFhpKFNvLElvPUVycm9yKSxTbyk7ZnVuY3Rpb24gU28odCxlLG4pe2U9SW8uY2FsbCh0aGlzLGUpfHx0aGlzO3JldHVybiBlLmNvZGU9dCxlLmN1c3RvbURhdGE9bixlLm5hbWU9VG8sT2JqZWN0LnNldFByb3RvdHlwZU9mKGUsU28ucHJvdG90eXBlKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZSxDby5wcm90b3R5cGUuY3JlYXRlKSxlfXZhciBDbz0oTm8ucHJvdG90eXBlLmNyZWF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTt2YXIgcixpPWVbMF18fHt9LG89dGhpcy5zZXJ2aWNlKyIvIit0LHQ9dGhpcy5lcnJvcnNbdF0sdD10PyhyPWksdC5yZXBsYWNlKEFvLGZ1bmN0aW9uKHQsZSl7dmFyIG49cltlXTtyZXR1cm4gbnVsbCE9bj9TdHJpbmcobik6IjwiK2UrIj8+In0pKToiRXJyb3IiLHQ9dGhpcy5zZXJ2aWNlTmFtZSsiOiAiK3QrIiAoIitvKyIpLiI7cmV0dXJuIG5ldyBFbyhvLHQsaSl9LE5vKTtmdW5jdGlvbiBObyh0LGUsbil7dGhpcy5zZXJ2aWNlPXQsdGhpcy5zZXJ2aWNlTmFtZT1lLHRoaXMuZXJyb3JzPW59dmFyIEFvPS9ce1wkKFtefV0rKX0vZztmdW5jdGlvbiBrbyh0KXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1mdW5jdGlvbiBSbyh0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9ZnVuY3Rpb24gUG8odCl7dmFyIGU9e30sbj17fSxyPXt9LGk9IiI7dHJ5e3ZhciBvPXQuc3BsaXQoIi4iKSxlPWtvKGlvKG9bMF0pfHwiIiksbj1rbyhpbyhvWzFdKXx8IiIpLGk9b1syXSxyPW4uZHx8e307ZGVsZXRlIG4uZH1jYXRjaCh0KXt9cmV0dXJue2hlYWRlcjplLGNsYWltczpuLGRhdGE6cixzaWduYXR1cmU6aX19ZnVuY3Rpb24gT28odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9ZnVuY3Rpb24gRG8odCxlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSlyZXR1cm4gdFtlXX1mdW5jdGlvbiB4byh0KXtmb3IodmFyIGUgaW4gdClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBMbyh0LGUsbil7dmFyIHIsaT17fTtmb3IociBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiYoaVtyXT1lLmNhbGwobix0W3JdLHIsdCkpO3JldHVybiBpfWZ1bmN0aW9uIE1vKHQpe2Zvcih2YXIgbj1bXSxlPTAscj1PYmplY3QuZW50cmllcyh0KTtlPHIubGVuZ3RoO2UrKyl7dmFyIGk9cltlXTshZnVuY3Rpb24oZSx0KXtBcnJheS5pc0FycmF5KHQpP3QuZm9yRWFjaChmdW5jdGlvbih0KXtuLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGUpKyI9IitlbmNvZGVVUklDb21wb25lbnQodCkpfSk6bi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChlKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKX0oaVswXSxpWzFdKX1yZXR1cm4gbi5sZW5ndGg/IiYiK24uam9pbigiJiIpOiIifXZhciBGbz0oVW8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jaGFpbl9bMF09MTczMjU4NDE5Myx0aGlzLmNoYWluX1sxXT00MDIzMjMzNDE3LHRoaXMuY2hhaW5fWzJdPTI1NjIzODMxMDIsdGhpcy5jaGFpbl9bM109MjcxNzMzODc4LHRoaXMuY2hhaW5fWzRdPTMyODUzNzc1MjAsdGhpcy5pbmJ1Zl89MCx0aGlzLnRvdGFsXz0wfSxVby5wcm90b3R5cGUuY29tcHJlc3NfPWZ1bmN0aW9uKHQsZSl7ZT1lfHwwO3ZhciBuPXRoaXMuV187aWYoInN0cmluZyI9PXR5cGVvZiB0KWZvcih2YXIgcj0wO3I8MTY7cisrKW5bcl09dC5jaGFyQ29kZUF0KGUpPDwyNHx0LmNoYXJDb2RlQXQoZSsxKTw8MTZ8dC5jaGFyQ29kZUF0KGUrMik8PDh8dC5jaGFyQ29kZUF0KGUrMyksZSs9NDtlbHNlIGZvcihyPTA7cjwxNjtyKyspbltyXT10W2VdPDwyNHx0W2UrMV08PDE2fHRbZSsyXTw8OHx0W2UrM10sZSs9NDtmb3Iocj0xNjtyPDgwO3IrKyl7dmFyIGk9bltyLTNdXm5bci04XV5uW3ItMTRdXm5bci0xNl07bltyXT00Mjk0OTY3Mjk1JihpPDwxfGk+Pj4zMSl9Zm9yKHZhciBvLHM9dGhpcy5jaGFpbl9bMF0sYT10aGlzLmNoYWluX1sxXSx1PXRoaXMuY2hhaW5fWzJdLGM9dGhpcy5jaGFpbl9bM10saD10aGlzLmNoYWluX1s0XSxyPTA7cjw4MDtyKyspdmFyIGw9cjw0MD9yPDIwPyhvPWNeYSYodV5jKSwxNTE4NTAwMjQ5KToobz1hXnVeYywxODU5Nzc1MzkzKTpyPDYwPyhvPWEmdXxjJihhfHUpLDI0MDA5NTk3MDgpOihvPWFedV5jLDMzOTU0Njk3ODIpLGk9KHM8PDV8cz4+PjI3KStvK2grbCtuW3JdJjQyOTQ5NjcyOTUsaD1jLGM9dSx1PTQyOTQ5NjcyOTUmKGE8PDMwfGE+Pj4yKSxhPXMscz1pO3RoaXMuY2hhaW5fWzBdPXRoaXMuY2hhaW5fWzBdK3MmNDI5NDk2NzI5NSx0aGlzLmNoYWluX1sxXT10aGlzLmNoYWluX1sxXSthJjQyOTQ5NjcyOTUsdGhpcy5jaGFpbl9bMl09dGhpcy5jaGFpbl9bMl0rdSY0Mjk0OTY3Mjk1LHRoaXMuY2hhaW5fWzNdPXRoaXMuY2hhaW5fWzNdK2MmNDI5NDk2NzI5NSx0aGlzLmNoYWluX1s0XT10aGlzLmNoYWluX1s0XStoJjQyOTQ5NjcyOTV9LFVvLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXtpZihudWxsIT10KXtmb3IodmFyIG49KGU9dm9pZCAwPT09ZT90Lmxlbmd0aDplKS10aGlzLmJsb2NrU2l6ZSxyPTAsaT10aGlzLmJ1Zl8sbz10aGlzLmluYnVmXztyPGU7KXtpZigwPT09bylmb3IoO3I8PW47KXRoaXMuY29tcHJlc3NfKHQscikscis9dGhpcy5ibG9ja1NpemU7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtmb3IoO3I8ZTspaWYoaVtvXT10LmNoYXJDb2RlQXQociksKytyLCsrbz09PXRoaXMuYmxvY2tTaXplKXt0aGlzLmNvbXByZXNzXyhpKSxvPTA7YnJlYWt9fWVsc2UgZm9yKDtyPGU7KWlmKGlbb109dFtyXSwrK3IsKytvPT09dGhpcy5ibG9ja1NpemUpe3RoaXMuY29tcHJlc3NfKGkpLG89MDticmVha319dGhpcy5pbmJ1Zl89byx0aGlzLnRvdGFsXys9ZX19LFVvLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPTgqdGhpcy50b3RhbF87dGhpcy5pbmJ1Zl88NTY/dGhpcy51cGRhdGUodGhpcy5wYWRfLDU2LXRoaXMuaW5idWZfKTp0aGlzLnVwZGF0ZSh0aGlzLnBhZF8sdGhpcy5ibG9ja1NpemUtKHRoaXMuaW5idWZfLTU2KSk7Zm9yKHZhciBuPXRoaXMuYmxvY2tTaXplLTE7NTY8PW47bi0tKXRoaXMuYnVmX1tuXT0yNTUmZSxlLz0yNTY7dGhpcy5jb21wcmVzc18odGhpcy5idWZfKTtmb3IodmFyIHI9MCxuPTA7bjw1O24rKylmb3IodmFyIGk9MjQ7MDw9aTtpLT04KXRbcl09dGhpcy5jaGFpbl9bbl0+PmkmMjU1LCsrcjtyZXR1cm4gdH0sVW8pO2Z1bmN0aW9uIFVvKCl7dGhpcy5jaGFpbl89W10sdGhpcy5idWZfPVtdLHRoaXMuV189W10sdGhpcy5wYWRfPVtdLHRoaXMuaW5idWZfPTAsdGhpcy50b3RhbF89MCx0aGlzLmJsb2NrU2l6ZT02NCx0aGlzLnBhZF9bMF09MTI4O2Zvcih2YXIgdD0xO3Q8dGhpcy5ibG9ja1NpemU7Kyt0KXRoaXMucGFkX1t0XT0wO3RoaXMucmVzZXQoKX1mdW5jdGlvbiBqbyh0LGUpe2U9bmV3IHFvKHQsZSk7cmV0dXJuIGUuc3Vic2NyaWJlLmJpbmQoZSl9dmFyIHFvPShWby5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt0aGlzLmZvckVhY2hPYnNlcnZlcihmdW5jdGlvbih0KXt0Lm5leHQoZSl9KX0sVm8ucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3RoaXMuZm9yRWFjaE9ic2VydmVyKGZ1bmN0aW9uKHQpe3QuZXJyb3IoZSl9KSx0aGlzLmNsb3NlKGUpfSxWby5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt0aGlzLmZvckVhY2hPYnNlcnZlcihmdW5jdGlvbih0KXt0LmNvbXBsZXRlKCl9KSx0aGlzLmNsb3NlKCl9LFZvLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24odCxlLG4pe3ZhciByLGk9dGhpcztpZih2b2lkIDA9PT10JiZ2b2lkIDA9PT1lJiZ2b2lkIDA9PT1uKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBPYnNlcnZlci4iKTt2b2lkIDA9PT0ocj1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiIT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7Zm9yKHZhciBuPTAscj1lO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO2lmKGkgaW4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIHRbaV0pcmV0dXJuITB9cmV0dXJuITF9KHQsWyJuZXh0IiwiZXJyb3IiLCJjb21wbGV0ZSJdKT90OntuZXh0OnQsZXJyb3I6ZSxjb21wbGV0ZTpufSkubmV4dCYmKHIubmV4dD1Cbyksdm9pZCAwPT09ci5lcnJvciYmKHIuZXJyb3I9Qm8pLHZvaWQgMD09PXIuY29tcGxldGUmJihyLmNvbXBsZXRlPUJvKTtuPXRoaXMudW5zdWJzY3JpYmVPbmUuYmluZCh0aGlzLHRoaXMub2JzZXJ2ZXJzLmxlbmd0aCk7cmV0dXJuIHRoaXMuZmluYWxpemVkJiZ0aGlzLnRhc2sudGhlbihmdW5jdGlvbigpe3RyeXtpLmZpbmFsRXJyb3I/ci5lcnJvcihpLmZpbmFsRXJyb3IpOnIuY29tcGxldGUoKX1jYXRjaCh0KXt9fSksdGhpcy5vYnNlcnZlcnMucHVzaChyKSxufSxWby5wcm90b3R5cGUudW5zdWJzY3JpYmVPbmU9ZnVuY3Rpb24odCl7dm9pZCAwIT09dGhpcy5vYnNlcnZlcnMmJnZvaWQgMCE9PXRoaXMub2JzZXJ2ZXJzW3RdJiYoZGVsZXRlIHRoaXMub2JzZXJ2ZXJzW3RdLC0tdGhpcy5vYnNlcnZlckNvdW50LDA9PT10aGlzLm9ic2VydmVyQ291bnQmJnZvaWQgMCE9PXRoaXMub25Ob09ic2VydmVycyYmdGhpcy5vbk5vT2JzZXJ2ZXJzKHRoaXMpKX0sVm8ucHJvdG90eXBlLmZvckVhY2hPYnNlcnZlcj1mdW5jdGlvbih0KXtpZighdGhpcy5maW5hbGl6ZWQpZm9yKHZhciBlPTA7ZTx0aGlzLm9ic2VydmVycy5sZW5ndGg7ZSsrKXRoaXMuc2VuZE9uZShlLHQpfSxWby5wcm90b3R5cGUuc2VuZE9uZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy50YXNrLnRoZW4oZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1uLm9ic2VydmVycyYmdm9pZCAwIT09bi5vYnNlcnZlcnNbdF0pdHJ5e2Uobi5vYnNlcnZlcnNbdF0pfWNhdGNoKHQpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcih0KX19KX0sVm8ucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5maW5hbGl6ZWR8fCh0aGlzLmZpbmFsaXplZD0hMCx2b2lkIDAhPT10JiYodGhpcy5maW5hbEVycm9yPXQpLHRoaXMudGFzay50aGVuKGZ1bmN0aW9uKCl7ZS5vYnNlcnZlcnM9dm9pZCAwLGUub25Ob09ic2VydmVycz12b2lkIDB9KSl9LFZvKTtmdW5jdGlvbiBWbyh0LGUpe3ZhciBuPXRoaXM7dGhpcy5vYnNlcnZlcnM9W10sdGhpcy51bnN1YnNjcmliZXM9W10sdGhpcy5vYnNlcnZlckNvdW50PTAsdGhpcy50YXNrPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuZmluYWxpemVkPSExLHRoaXMub25Ob09ic2VydmVycz1lLHRoaXMudGFzay50aGVuKGZ1bmN0aW9uKCl7dChuKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe24uZXJyb3IodCl9KX1mdW5jdGlvbiBCbygpe31mdW5jdGlvbiBLbyh0LGUsbixyKXt2YXIgaTtpZihyPGU/aT0iYXQgbGVhc3QgIitlOm48ciYmKGk9MD09PW4/Im5vbmUiOiJubyBtb3JlIHRoYW4gIituKSxpKXRocm93IG5ldyBFcnJvcih0KyIgZmFpbGVkOiBXYXMgY2FsbGVkIHdpdGggIityKygxPT09cj8iIGFyZ3VtZW50LiI6IiBhcmd1bWVudHMuIikrIiBFeHBlY3RzICIraSsiLiIpfWZ1bmN0aW9uIFdvKHQsZSxuKXt2YXIgcj0iIjtzd2l0Y2goZSl7Y2FzZSAxOnI9bj8iZmlyc3QiOiJGaXJzdCI7YnJlYWs7Y2FzZSAyOnI9bj8ic2Vjb25kIjoiU2Vjb25kIjticmVhaztjYXNlIDM6cj1uPyJ0aGlyZCI6IlRoaXJkIjticmVhaztjYXNlIDQ6cj1uPyJmb3VydGgiOiJGb3VydGgiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJlcnJvclByZWZpeCBjYWxsZWQgd2l0aCBhcmd1bWVudE51bWJlciA+IDQuICBOZWVkIHRvIHVwZGF0ZSBpdD8iKX10Kz0iIGZhaWxlZDogIjtyZXR1cm4gdCs9cisiIGFyZ3VtZW50ICJ9ZnVuY3Rpb24gSG8odCxlLG4scil7aWYoKCFyfHxuKSYmImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKFdvKHQsZSxyKSsibXVzdCBiZSBhIHZhbGlkIGZ1bmN0aW9uLiIpfWZ1bmN0aW9uIEdvKHQsZSxuLHIpe2lmKCghcnx8bikmJigib2JqZWN0IiE9dHlwZW9mIG58fG51bGw9PT1uKSl0aHJvdyBuZXcgRXJyb3IoV28odCxlLHIpKyJtdXN0IGJlIGEgdmFsaWQgY29udGV4dCBvYmplY3QuIil9ZnVuY3Rpb24gem8odCl7Zm9yKHZhciBlPTAsbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10LmNoYXJDb2RlQXQobik7cjwxMjg/ZSsrOnI8MjA0OD9lKz0yOjU1Mjk2PD1yJiZyPD01NjMxOT8oZSs9NCxuKyspOmUrPTN9cmV0dXJuIGV9dmFyIFFvPTFlMyxZbz0yLFhvPTE0NGU1LEpvPS41O2Z1bmN0aW9uICRvKHQsZSxuKXt2b2lkIDA9PT1uJiYobj1Zbyk7bj0oZT12b2lkIDA9PT1lP1FvOmUpKk1hdGgucG93KG4sdCksdD1NYXRoLnJvdW5kKEpvKm4qKE1hdGgucmFuZG9tKCktLjUpKjIpO3JldHVybiBNYXRoLm1pbihYbyxuK3QpfWZ1bmN0aW9uIFpvKHQpe3JldHVybiB0JiZ0Ll9kZWxlZ2F0ZT90Ll9kZWxlZ2F0ZTp0fXZhciB0cz0oZXMucHJvdG90eXBlLnNldEluc3RhbnRpYXRpb25Nb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmluc3RhbnRpYXRpb25Nb2RlPXQsdGhpc30sZXMucHJvdG90eXBlLnNldE11bHRpcGxlSW5zdGFuY2VzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm11bHRpcGxlSW5zdGFuY2VzPXQsdGhpc30sZXMucHJvdG90eXBlLnNldFNlcnZpY2VQcm9wcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZXJ2aWNlUHJvcHM9dCx0aGlzfSxlcyk7ZnVuY3Rpb24gZXModCxlLG4pe3RoaXMubmFtZT10LHRoaXMuaW5zdGFuY2VGYWN0b3J5PWUsdGhpcy50eXBlPW4sdGhpcy5tdWx0aXBsZUluc3RhbmNlcz0hMSx0aGlzLnNlcnZpY2VQcm9wcz17fSx0aGlzLmluc3RhbnRpYXRpb25Nb2RlPSJMQVpZIn12YXIgbnM9IltERUZBVUxUXSIscnM9KGlzLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9bnMpO3ZhciBlPXRoaXMubm9ybWFsaXplSW5zdGFuY2VJZGVudGlmaWVyKHQpO2lmKCF0aGlzLmluc3RhbmNlc0RlZmVycmVkLmhhcyhlKSl7dmFyIG49bmV3IGxvO3RoaXMuaW5zdGFuY2VzRGVmZXJyZWQuc2V0KGUsbik7dHJ5e3ZhciByPXRoaXMuZ2V0T3JJbml0aWFsaXplU2VydmljZSh7aW5zdGFuY2VJZGVudGlmaWVyOmV9KTtyJiZuLnJlc29sdmUocil9Y2F0Y2godCl7fX1yZXR1cm4gdGhpcy5pbnN0YW5jZXNEZWZlcnJlZC5nZXQoZSkucHJvbWlzZX0saXMucHJvdG90eXBlLmdldEltbWVkaWF0ZT1mdW5jdGlvbih0KXt2YXIgZT1KaSh7aWRlbnRpZmllcjpucyxvcHRpb25hbDohMX0sdCksdD1lLmlkZW50aWZpZXIsbj1lLm9wdGlvbmFsLHI9dGhpcy5ub3JtYWxpemVJbnN0YW5jZUlkZW50aWZpZXIodCk7dHJ5e3ZhciBpPXRoaXMuZ2V0T3JJbml0aWFsaXplU2VydmljZSh7aW5zdGFuY2VJZGVudGlmaWVyOnJ9KTtpZihpKXJldHVybiBpO2lmKG4pcmV0dXJuIG51bGw7dGhyb3cgRXJyb3IoIlNlcnZpY2UgIit0aGlzLm5hbWUrIiBpcyBub3QgYXZhaWxhYmxlIil9Y2F0Y2godCl7aWYobilyZXR1cm4gbnVsbDt0aHJvdyB0fX0saXMucHJvdG90eXBlLmdldENvbXBvbmVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXBvbmVudH0saXMucHJvdG90eXBlLnNldENvbXBvbmVudD1mdW5jdGlvbih0KXt2YXIgZSxuO2lmKHQubmFtZSE9PXRoaXMubmFtZSl0aHJvdyBFcnJvcigiTWlzbWF0Y2hpbmcgQ29tcG9uZW50ICIrdC5uYW1lKyIgZm9yIFByb3ZpZGVyICIrdGhpcy5uYW1lKyIuIik7aWYodGhpcy5jb21wb25lbnQpdGhyb3cgRXJyb3IoIkNvbXBvbmVudCBmb3IgIit0aGlzLm5hbWUrIiBoYXMgYWxyZWFkeSBiZWVuIHByb3ZpZGVkIik7aWYoIkVBR0VSIj09PSh0aGlzLmNvbXBvbmVudD10KS5pbnN0YW50aWF0aW9uTW9kZSl0cnl7dGhpcy5nZXRPckluaXRpYWxpemVTZXJ2aWNlKHtpbnN0YW5jZUlkZW50aWZpZXI6bnN9KX1jYXRjaCh0KXt9dHJ5e2Zvcih2YXIgcj10byh0aGlzLmluc3RhbmNlc0RlZmVycmVkLmVudHJpZXMoKSksaT1yLm5leHQoKTshaS5kb25lO2k9ci5uZXh0KCkpe3ZhciBvPWVvKGkudmFsdWUsMikscz1vWzBdLGE9b1sxXSx1PXRoaXMubm9ybWFsaXplSW5zdGFuY2VJZGVudGlmaWVyKHMpO3RyeXt2YXIgYz10aGlzLmdldE9ySW5pdGlhbGl6ZVNlcnZpY2Uoe2luc3RhbmNlSWRlbnRpZmllcjp1fSk7YS5yZXNvbHZlKGMpfWNhdGNoKHQpe319fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2kmJiFpLmRvbmUmJihuPXIucmV0dXJuKSYmbi5jYWxsKHIpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX19LGlzLnByb3RvdHlwZS5jbGVhckluc3RhbmNlPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PW5zKSx0aGlzLmluc3RhbmNlc0RlZmVycmVkLmRlbGV0ZSh0KSx0aGlzLmluc3RhbmNlcy5kZWxldGUodCl9LGlzLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1BcnJheS5mcm9tKHRoaXMuaW5zdGFuY2VzLnZhbHVlcygpKSxbNCxQcm9taXNlLmFsbChubyhubyhbXSxlbyhlLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4iSU5URVJOQUwiaW4gdH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5JTlRFUk5BTC5kZWxldGUoKX0pKSksZW8oZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIl9kZWxldGUiaW4gdH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5fZGVsZXRlKCl9KSkpKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbMl19fSl9KX0saXMucHJvdG90eXBlLmlzQ29tcG9uZW50U2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuY29tcG9uZW50fSxpcy5wcm90b3R5cGUuaXNJbml0aWFsaXplZD1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9bnMpLHRoaXMuaW5zdGFuY2VzLmhhcyh0KX0saXMucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9dm9pZCAwPT09dD97fTp0KS5pbnN0YW5jZUlkZW50aWZpZXIsZT12b2lkIDA9PT1lP25zOmUsdD10Lm9wdGlvbnMsdD12b2lkIDA9PT10P3t9OnQsZT10aGlzLm5vcm1hbGl6ZUluc3RhbmNlSWRlbnRpZmllcihlKTtpZih0aGlzLmlzSW5pdGlhbGl6ZWQoZSkpdGhyb3cgRXJyb3IodGhpcy5uYW1lKyIoIitlKyIpIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQiKTtpZighdGhpcy5pc0NvbXBvbmVudFNldCgpKXRocm93IEVycm9yKCJDb21wb25lbnQgIit0aGlzLm5hbWUrIiBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCB5ZXQiKTtyZXR1cm4gdGhpcy5nZXRPckluaXRpYWxpemVTZXJ2aWNlKHtpbnN0YW5jZUlkZW50aWZpZXI6ZSxvcHRpb25zOnR9KX0saXMucHJvdG90eXBlLmdldE9ySW5pdGlhbGl6ZVNlcnZpY2U9ZnVuY3Rpb24odCl7dmFyIGU9dC5pbnN0YW5jZUlkZW50aWZpZXIsbj10Lm9wdGlvbnMscj12b2lkIDA9PT1uP3t9Om4sdD10aGlzLmluc3RhbmNlcy5nZXQoZSk7cmV0dXJuIXQmJnRoaXMuY29tcG9uZW50JiYodD10aGlzLmNvbXBvbmVudC5pbnN0YW5jZUZhY3RvcnkodGhpcy5jb250YWluZXIse2luc3RhbmNlSWRlbnRpZmllcjoobj1lKT09PW5zP3ZvaWQgMDpuLG9wdGlvbnM6cn0pLHRoaXMuaW5zdGFuY2VzLnNldChlLHQpKSx0fHxudWxsfSxpcy5wcm90b3R5cGUubm9ybWFsaXplSW5zdGFuY2VJZGVudGlmaWVyPWZ1bmN0aW9uKHQpe3JldHVybiF0aGlzLmNvbXBvbmVudHx8dGhpcy5jb21wb25lbnQubXVsdGlwbGVJbnN0YW5jZXM/dDpuc30saXMpO2Z1bmN0aW9uIGlzKHQsZSl7dGhpcy5uYW1lPXQsdGhpcy5jb250YWluZXI9ZSx0aGlzLmNvbXBvbmVudD1udWxsLHRoaXMuaW5zdGFuY2VzPW5ldyBNYXAsdGhpcy5pbnN0YW5jZXNEZWZlcnJlZD1uZXcgTWFwfXZhciBvcz0oc3MucHJvdG90eXBlLmFkZENvbXBvbmVudD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldFByb3ZpZGVyKHQubmFtZSk7aWYoZS5pc0NvbXBvbmVudFNldCgpKXRocm93IG5ldyBFcnJvcigiQ29tcG9uZW50ICIrdC5uYW1lKyIgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIHdpdGggIit0aGlzLm5hbWUpO2Uuc2V0Q29tcG9uZW50KHQpfSxzcy5wcm90b3R5cGUuYWRkT3JPdmVyd3JpdGVDb21wb25lbnQ9ZnVuY3Rpb24odCl7dGhpcy5nZXRQcm92aWRlcih0Lm5hbWUpLmlzQ29tcG9uZW50U2V0KCkmJnRoaXMucHJvdmlkZXJzLmRlbGV0ZSh0Lm5hbWUpLHRoaXMuYWRkQ29tcG9uZW50KHQpfSxzcy5wcm90b3R5cGUuZ2V0UHJvdmlkZXI9ZnVuY3Rpb24odCl7aWYodGhpcy5wcm92aWRlcnMuaGFzKHQpKXJldHVybiB0aGlzLnByb3ZpZGVycy5nZXQodCk7dmFyIGU9bmV3IHJzKHQsdGhpcyk7cmV0dXJuIHRoaXMucHJvdmlkZXJzLnNldCh0LGUpLGV9LHNzLnByb3RvdHlwZS5nZXRQcm92aWRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnByb3ZpZGVycy52YWx1ZXMoKSl9LHNzKTtmdW5jdGlvbiBzcyh0KXt0aGlzLm5hbWU9dCx0aGlzLnByb3ZpZGVycz1uZXcgTWFwfXZhciBhcyx1cz1bXTsoU249YXM9YXN8fHt9KVtTbi5ERUJVRz0wXT0iREVCVUciLFNuW1NuLlZFUkJPU0U9MV09IlZFUkJPU0UiLFNuW1NuLklORk89Ml09IklORk8iLFNuW1NuLldBUk49M109IldBUk4iLFNuW1NuLkVSUk9SPTRdPSJFUlJPUiIsU25bU24uU0lMRU5UPTVdPSJTSUxFTlQiO2Z1bmN0aW9uIGNzKHQsZSl7Zm9yKHZhciBuPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bci0yXT1hcmd1bWVudHNbcl07aWYoIShlPHQubG9nTGV2ZWwpKXt2YXIgaT0obmV3IERhdGUpLnRvSVNPU3RyaW5nKCksbz1mc1tlXTtpZighbyl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBsb2cgYSBtZXNzYWdlIHdpdGggYW4gaW52YWxpZCBsb2dUeXBlICh2YWx1ZTogIitlKyIpIik7Y29uc29sZVtvXS5hcHBseShjb25zb2xlLG5vKFsiWyIraSsiXSAgIit0Lm5hbWUrIjoiXSxuKSl9fXZhciBocz17ZGVidWc6YXMuREVCVUcsdmVyYm9zZTphcy5WRVJCT1NFLGluZm86YXMuSU5GTyx3YXJuOmFzLldBUk4sZXJyb3I6YXMuRVJST1Isc2lsZW50OmFzLlNJTEVOVH0sbHM9YXMuSU5GTyxmcz0oKHo9e30pW2FzLkRFQlVHXT0ibG9nIix6W2FzLlZFUkJPU0VdPSJsb2ciLHpbYXMuSU5GT109ImluZm8iLHpbYXMuV0FSTl09Indhcm4iLHpbYXMuRVJST1JdPSJlcnJvciIseikscHM9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkcy5wcm90b3R5cGUsImxvZ0xldmVsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvZ0xldmVsfSxzZXQ6ZnVuY3Rpb24odCl7aWYoISh0IGluIGFzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHZhbHVlICInK3QrJyIgYXNzaWduZWQgdG8gYGxvZ0xldmVsYCcpO3RoaXMuX2xvZ0xldmVsPXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZHMucHJvdG90eXBlLnNldExvZ0xldmVsPWZ1bmN0aW9uKHQpe3RoaXMuX2xvZ0xldmVsPSJzdHJpbmciPT10eXBlb2YgdD9oc1t0XTp0fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZHMucHJvdG90eXBlLCJsb2dIYW5kbGVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvZ0hhbmRsZXJ9LHNldDpmdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJWYWx1ZSBhc3NpZ25lZCB0byBgbG9nSGFuZGxlcmAgbXVzdCBiZSBhIGZ1bmN0aW9uIik7dGhpcy5fbG9nSGFuZGxlcj10fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkcy5wcm90b3R5cGUsInVzZXJMb2dIYW5kbGVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VzZXJMb2dIYW5kbGVyfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fdXNlckxvZ0hhbmRsZXI9dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxkcy5wcm90b3R5cGUuZGVidWc9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fdXNlckxvZ0hhbmRsZXImJnRoaXMuX3VzZXJMb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuREVCVUddLHQpKSx0aGlzLl9sb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuREVCVUddLHQpKX0sZHMucHJvdG90eXBlLmxvZz1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt0aGlzLl91c2VyTG9nSGFuZGxlciYmdGhpcy5fdXNlckxvZ0hhbmRsZXIuYXBwbHkodGhpcyxubyhbdGhpcyxhcy5WRVJCT1NFXSx0KSksdGhpcy5fbG9nSGFuZGxlci5hcHBseSh0aGlzLG5vKFt0aGlzLGFzLlZFUkJPU0VdLHQpKX0sZHMucHJvdG90eXBlLmluZm89ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fdXNlckxvZ0hhbmRsZXImJnRoaXMuX3VzZXJMb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuSU5GT10sdCkpLHRoaXMuX2xvZ0hhbmRsZXIuYXBwbHkodGhpcyxubyhbdGhpcyxhcy5JTkZPXSx0KSl9LGRzLnByb3RvdHlwZS53YXJuPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3RoaXMuX3VzZXJMb2dIYW5kbGVyJiZ0aGlzLl91c2VyTG9nSGFuZGxlci5hcHBseSh0aGlzLG5vKFt0aGlzLGFzLldBUk5dLHQpKSx0aGlzLl9sb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuV0FSTl0sdCkpfSxkcy5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fdXNlckxvZ0hhbmRsZXImJnRoaXMuX3VzZXJMb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuRVJST1JdLHQpKSx0aGlzLl9sb2dIYW5kbGVyLmFwcGx5KHRoaXMsbm8oW3RoaXMsYXMuRVJST1JdLHQpKX0sZHMpO2Z1bmN0aW9uIGRzKHQpe3RoaXMubmFtZT10LHRoaXMuX2xvZ0xldmVsPWxzLHRoaXMuX2xvZ0hhbmRsZXI9Y3MsdGhpcy5fdXNlckxvZ0hhbmRsZXI9bnVsbCx1cy5wdXNoKHRoaXMpfWZ1bmN0aW9uIHZzKGUpe3VzLmZvckVhY2goZnVuY3Rpb24odCl7dC5zZXRMb2dMZXZlbChlKX0pfWZ1bmN0aW9uIGdzKHMsZSl7Zm9yKHZhciB0PTAsbj11czt0PG4ubGVuZ3RoO3QrKykhZnVuY3Rpb24odCl7dmFyIG89bnVsbDtlJiZlLmxldmVsJiYobz1oc1tlLmxldmVsXSksdC51c2VyTG9nSGFuZGxlcj1udWxsPT09cz9udWxsOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bci0yXT1hcmd1bWVudHNbcl07dmFyIGk9bi5tYXAoZnVuY3Rpb24odCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoIm51bWJlciI9PXR5cGVvZiB0fHwiYm9vbGVhbiI9PXR5cGVvZiB0KXJldHVybiB0LnRvU3RyaW5nKCk7aWYodCBpbnN0YW5jZW9mIEVycm9yKXJldHVybiB0Lm1lc3NhZ2U7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19KS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHR9KS5qb2luKCIgIik7ZT49KG51bGwhPW8/bzp0LmxvZ0xldmVsKSYmcyh7bGV2ZWw6YXNbZV0udG9Mb3dlckNhc2UoKSxtZXNzYWdlOmksYXJnczpuLHR5cGU6dC5uYW1lfSl9fShuW3RdKX12YXIgU249KChHPXt9KVsibm8tYXBwIl09Ik5vIEZpcmViYXNlIEFwcCAneyRhcHBOYW1lfScgaGFzIGJlZW4gY3JlYXRlZCAtIGNhbGwgRmlyZWJhc2UgQXBwLmluaXRpYWxpemVBcHAoKSIsR1siYmFkLWFwcC1uYW1lIl09IklsbGVnYWwgQXBwIG5hbWU6ICd7JGFwcE5hbWV9IixHWyJkdXBsaWNhdGUtYXBwIl09IkZpcmViYXNlIEFwcCBuYW1lZCAneyRhcHBOYW1lfScgYWxyZWFkeSBleGlzdHMiLEdbImFwcC1kZWxldGVkIl09IkZpcmViYXNlIEFwcCBuYW1lZCAneyRhcHBOYW1lfScgYWxyZWFkeSBkZWxldGVkIixHWyJpbnZhbGlkLWFwcC1hcmd1bWVudCJdPSJmaXJlYmFzZS57JGFwcE5hbWV9KCkgdGFrZXMgZWl0aGVyIG5vIGFyZ3VtZW50IG9yIGEgRmlyZWJhc2UgQXBwIGluc3RhbmNlLiIsR1siaW52YWxpZC1sb2ctYXJndW1lbnQiXT0iRmlyc3QgYXJndW1lbnQgdG8gYG9uTG9nYCBtdXN0IGJlIG51bGwgb3IgYSBmdW5jdGlvbi4iLEcpLHlzPW5ldyBDbygiYXBwIiwiRmlyZWJhc2UiLFNuKSxtcz0iQGZpcmViYXNlL2FwcCIsYnM9IltERUZBVUxUXSIsd3M9KCh6PXt9KVttc109ImZpcmUtY29yZSIselsiQGZpcmViYXNlL2FuYWx5dGljcyJdPSJmaXJlLWFuYWx5dGljcyIselsiQGZpcmViYXNlL2F1dGgiXT0iZmlyZS1hdXRoIix6WyJAZmlyZWJhc2UvZGF0YWJhc2UiXT0iZmlyZS1ydGRiIix6WyJAZmlyZWJhc2UvZnVuY3Rpb25zIl09ImZpcmUtZm4iLHpbIkBmaXJlYmFzZS9pbnN0YWxsYXRpb25zIl09ImZpcmUtaWlkIix6WyJAZmlyZWJhc2UvbWVzc2FnaW5nIl09ImZpcmUtZmNtIix6WyJAZmlyZWJhc2UvcGVyZm9ybWFuY2UiXT0iZmlyZS1wZXJmIix6WyJAZmlyZWJhc2UvcmVtb3RlLWNvbmZpZyJdPSJmaXJlLXJjIix6WyJAZmlyZWJhc2Uvc3RvcmFnZSJdPSJmaXJlLWdjcyIselsiQGZpcmViYXNlL2ZpcmVzdG9yZSJdPSJmaXJlLWZzdCIselsiZmlyZS1qcyJdPSJmaXJlLWpzIix6WyJmaXJlYmFzZS13cmFwcGVyIl09ImZpcmUtanMtYWxsIix6KSxfcz1uZXcgcHMoIkBmaXJlYmFzZS9hcHAiKSxJcz0oT2JqZWN0LmRlZmluZVByb3BlcnR5KFRzLnByb3RvdHlwZSwiYXV0b21hdGljRGF0YUNvbGxlY3Rpb25FbmFibGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hlY2tEZXN0cm95ZWRfKCksdGhpcy5hdXRvbWF0aWNEYXRhQ29sbGVjdGlvbkVuYWJsZWRffSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jaGVja0Rlc3Ryb3llZF8oKSx0aGlzLmF1dG9tYXRpY0RhdGFDb2xsZWN0aW9uRW5hYmxlZF89dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVHMucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hlY2tEZXN0cm95ZWRfKCksdGhpcy5uYW1lX30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVHMucHJvdG90eXBlLCJvcHRpb25zIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hlY2tEZXN0cm95ZWRfKCksdGhpcy5vcHRpb25zX30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxUcy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCl7ZS5jaGVja0Rlc3Ryb3llZF8oKSx0KCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZmlyZWJhc2VfLklOVEVSTkFMLnJlbW92ZUFwcChlLm5hbWVfKSxQcm9taXNlLmFsbChlLmNvbnRhaW5lci5nZXRQcm92aWRlcnMoKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVsZXRlKCl9KSl9KS50aGVuKGZ1bmN0aW9uKCl7ZS5pc0RlbGV0ZWRfPSEwfSl9LFRzLnByb3RvdHlwZS5fZ2V0U2VydmljZT1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1icyksdGhpcy5jaGVja0Rlc3Ryb3llZF8oKSx0aGlzLmNvbnRhaW5lci5nZXRQcm92aWRlcih0KS5nZXRJbW1lZGlhdGUoe2lkZW50aWZpZXI6ZX0pfSxUcy5wcm90b3R5cGUuX3JlbW92ZVNlcnZpY2VJbnN0YW5jZT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPWJzKSx0aGlzLmNvbnRhaW5lci5nZXRQcm92aWRlcih0KS5jbGVhckluc3RhbmNlKGUpfSxUcy5wcm90b3R5cGUuX2FkZENvbXBvbmVudD1mdW5jdGlvbihlKXt0cnl7dGhpcy5jb250YWluZXIuYWRkQ29tcG9uZW50KGUpfWNhdGNoKHQpe19zLmRlYnVnKCJDb21wb25lbnQgIitlLm5hbWUrIiBmYWlsZWQgdG8gcmVnaXN0ZXIgd2l0aCBGaXJlYmFzZUFwcCAiK3RoaXMubmFtZSx0KX19LFRzLnByb3RvdHlwZS5fYWRkT3JPdmVyd3JpdGVDb21wb25lbnQ9ZnVuY3Rpb24odCl7dGhpcy5jb250YWluZXIuYWRkT3JPdmVyd3JpdGVDb21wb25lbnQodCl9LFRzLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bmFtZTp0aGlzLm5hbWUsYXV0b21hdGljRGF0YUNvbGxlY3Rpb25FbmFibGVkOnRoaXMuYXV0b21hdGljRGF0YUNvbGxlY3Rpb25FbmFibGVkLG9wdGlvbnM6dGhpcy5vcHRpb25zfX0sVHMucHJvdG90eXBlLmNoZWNrRGVzdHJveWVkXz1mdW5jdGlvbigpe2lmKHRoaXMuaXNEZWxldGVkXyl0aHJvdyB5cy5jcmVhdGUoImFwcC1kZWxldGVkIix7YXBwTmFtZTp0aGlzLm5hbWVffSl9LFRzKTtmdW5jdGlvbiBUcyh0LGUsbil7dmFyIHI9dGhpczt0aGlzLmZpcmViYXNlXz1uLHRoaXMuaXNEZWxldGVkXz0hMSx0aGlzLm5hbWVfPWUubmFtZSx0aGlzLmF1dG9tYXRpY0RhdGFDb2xsZWN0aW9uRW5hYmxlZF89ZS5hdXRvbWF0aWNEYXRhQ29sbGVjdGlvbkVuYWJsZWR8fCExLHRoaXMub3B0aW9uc189Y28odCksdGhpcy5jb250YWluZXI9bmV3IG9zKGUubmFtZSksdGhpcy5fYWRkQ29tcG9uZW50KG5ldyB0cygiYXBwIixmdW5jdGlvbigpe3JldHVybiByfSwiUFVCTElDIikpLHRoaXMuZmlyZWJhc2VfLklOVEVSTkFMLmNvbXBvbmVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gci5fYWRkQ29tcG9uZW50KHQpfSl9SXMucHJvdG90eXBlLm5hbWUmJklzLnByb3RvdHlwZS5vcHRpb25zfHxJcy5wcm90b3R5cGUuZGVsZXRlfHxjb25zb2xlLmxvZygiZGMiKTt2YXIgRXM9IjguMy4yIjtmdW5jdGlvbiBTcyhzKXt2YXIgYT17fSx1PW5ldyBNYXAsYz17X19lc01vZHVsZTohMCxpbml0aWFsaXplQXBwOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pOyJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWV8fChlPXtuYW1lOmV9KTt2YXIgbj1lO3ZvaWQgMD09PW4ubmFtZSYmKG4ubmFtZT1icyk7ZT1uLm5hbWU7aWYoInN0cmluZyIhPXR5cGVvZiBlfHwhZSl0aHJvdyB5cy5jcmVhdGUoImJhZC1hcHAtbmFtZSIse2FwcE5hbWU6U3RyaW5nKGUpfSk7aWYoT28oYSxlKSl0aHJvdyB5cy5jcmVhdGUoImR1cGxpY2F0ZS1hcHAiLHthcHBOYW1lOmV9KTtuPW5ldyBzKHQsbixjKTtyZXR1cm4gYVtlXT1ufSxhcHA6aCxyZWdpc3RlclZlcnNpb246ZnVuY3Rpb24odCxlLG4pe3ZhciByPW51bGwhPT0oaT13c1t0XSkmJnZvaWQgMCE9PWk/aTp0O24mJihyKz0iLSIrbik7dmFyIGk9ci5tYXRjaCgvXHN8XC8vKSx0PWUubWF0Y2goL1xzfFwvLyk7aWYoaXx8dCl7bj1bJ1VuYWJsZSB0byByZWdpc3RlciBsaWJyYXJ5ICInK3IrJyIgd2l0aCB2ZXJzaW9uICInK2UrJyI6J107cmV0dXJuIGkmJm4ucHVzaCgnbGlicmFyeSBuYW1lICInK3IrJyIgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzICh3aGl0ZXNwYWNlIG9yICIvIiknKSxpJiZ0JiZuLnB1c2goImFuZCIpLHQmJm4ucHVzaCgndmVyc2lvbiBuYW1lICInK2UrJyIgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzICh3aGl0ZXNwYWNlIG9yICIvIiknKSx2b2lkIF9zLndhcm4obi5qb2luKCIgIikpfW8obmV3IHRzKHIrIi12ZXJzaW9uIixmdW5jdGlvbigpe3JldHVybntsaWJyYXJ5OnIsdmVyc2lvbjplfX0sIlZFUlNJT04iKSl9LHNldExvZ0xldmVsOnZzLG9uTG9nOmZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9PXQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IHlzLmNyZWF0ZSgiaW52YWxpZC1sb2ctYXJndW1lbnQiKTtncyh0LGUpfSxhcHBzOm51bGwsU0RLX1ZFUlNJT046RXMsSU5URVJOQUw6e3JlZ2lzdGVyQ29tcG9uZW50Om8scmVtb3ZlQXBwOmZ1bmN0aW9uKHQpe2RlbGV0ZSBhW3RdfSxjb21wb25lbnRzOnUsdXNlQXNTZXJ2aWNlOmZ1bmN0aW9uKHQsZSl7aWYoInNlcnZlckF1dGgiPT09ZSlyZXR1cm4gbnVsbDtyZXR1cm4gZX19fTtmdW5jdGlvbiBoKHQpe2lmKCFPbyhhLHQ9dHx8YnMpKXRocm93IHlzLmNyZWF0ZSgibm8tYXBwIix7YXBwTmFtZTp0fSk7cmV0dXJuIGFbdF19ZnVuY3Rpb24gbyhuKXt2YXIgdCxyPW4ubmFtZTtpZih1LmhhcyhyKSlyZXR1cm4gX3MuZGVidWcoIlRoZXJlIHdlcmUgbXVsdGlwbGUgYXR0ZW1wdHMgdG8gcmVnaXN0ZXIgY29tcG9uZW50ICIrcisiLiIpLCJQVUJMSUMiPT09bi50eXBlP2Nbcl06bnVsbDt1LnNldChyLG4pLCJQVUJMSUMiPT09bi50eXBlJiYodD1mdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YodD12b2lkIDA9PT10P2goKTp0KVtyXSl0aHJvdyB5cy5jcmVhdGUoImludmFsaWQtYXBwLWFyZ3VtZW50Iix7YXBwTmFtZTpyfSk7cmV0dXJuIHRbcl0oKX0sdm9pZCAwIT09bi5zZXJ2aWNlUHJvcHMmJmhvKHQsbi5zZXJ2aWNlUHJvcHMpLGNbcl09dCxzLnByb3RvdHlwZVtyXT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gdGhpcy5fZ2V0U2VydmljZS5iaW5kKHRoaXMscikuYXBwbHkodGhpcyxuLm11bHRpcGxlSW5zdGFuY2VzP3Q6W10pfSk7Zm9yKHZhciBlPTAsaT1PYmplY3Qua2V5cyhhKTtlPGkubGVuZ3RoO2UrKyl7dmFyIG89aVtlXTthW29dLl9hZGRDb21wb25lbnQobil9cmV0dXJuIlBVQkxJQyI9PT1uLnR5cGU/Y1tyXTpudWxsfXJldHVybiBjLmRlZmF1bHQ9YyxPYmplY3QuZGVmaW5lUHJvcGVydHkoYywiYXBwcyIse2dldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGFbdF19KX19KSxoLkFwcD1zLGN9dmFyIEc9ZnVuY3Rpb24gdCgpe3ZhciBlPVNzKElzKTtyZXR1cm4gZS5JTlRFUk5BTD1KaShKaSh7fSxlLklOVEVSTkFMKSx7Y3JlYXRlRmlyZWJhc2VOYW1lc3BhY2U6dCxleHRlbmROYW1lc3BhY2U6ZnVuY3Rpb24odCl7aG8oZSx0KX0sY3JlYXRlU3Vic2NyaWJlOmpvLEVycm9yRmFjdG9yeTpDbyxkZWVwRXh0ZW5kOmhvfSksZX0oKSxDcz0oTnMucHJvdG90eXBlLmdldFBsYXRmb3JtSW5mb1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRhaW5lci5nZXRQcm92aWRlcnMoKS5tYXAoZnVuY3Rpb24odCl7aWYoZnVuY3Rpb24odCl7dD10LmdldENvbXBvbmVudCgpO3JldHVybiJWRVJTSU9OIj09PShudWxsPT10P3ZvaWQgMDp0LnR5cGUpfSh0KSl7dD10LmdldEltbWVkaWF0ZSgpO3JldHVybiB0LmxpYnJhcnkrIi8iK3QudmVyc2lvbn1yZXR1cm4gbnVsbH0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLmpvaW4oIiAiKX0sTnMpO2Z1bmN0aW9uIE5zKHQpe3RoaXMuY29udGFpbmVyPXR9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLnNlbGY9PT1zZWxmJiZ2b2lkIDAhPT1zZWxmLmZpcmViYXNlJiYoX3Mud2FybigiXG4gICAgV2FybmluZzogRmlyZWJhc2UgaXMgYWxyZWFkeSBkZWZpbmVkIGluIHRoZSBnbG9iYWwgc2NvcGUuIFBsZWFzZSBtYWtlIHN1cmVcbiAgICBGaXJlYmFzZSBsaWJyYXJ5IGlzIG9ubHkgbG9hZGVkIG9uY2UuXG4gICIpLChHYT1zZWxmLmZpcmViYXNlLlNES19WRVJTSU9OKSYmMDw9R2EuaW5kZXhPZigiTElURSIpJiZfcy53YXJuKCJcbiAgICBXYXJuaW5nOiBZb3UgYXJlIHRyeWluZyB0byBsb2FkIEZpcmViYXNlIHdoaWxlIHVzaW5nIEZpcmViYXNlIFBlcmZvcm1hbmNlIHN0YW5kYWxvbmUgc2NyaXB0LlxuICAgIFlvdSBzaG91bGQgbG9hZCBGaXJlYmFzZSBQZXJmb3JtYW5jZSB3aXRoIHRoaXMgaW5zdGFuY2Ugb2YgRmlyZWJhc2UgdG8gYXZvaWQgbG9hZGluZyBkdXBsaWNhdGUgY29kZS5cbiAgICAiKSk7dmFyIEFzPUcuaW5pdGlhbGl6ZUFwcDtHLmluaXRpYWxpemVBcHA9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIGZ1bmN0aW9uKCl7dHJ5e3JldHVybiJbb2JqZWN0IHByb2Nlc3NdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChnbG9iYWwucHJvY2Vzcyl9Y2F0Y2godCl7cmV0dXJufX0oKSYmX3Mud2FybignXG4gICAgICBXYXJuaW5nOiBUaGlzIGlzIGEgYnJvd3Nlci10YXJnZXRlZCBGaXJlYmFzZSBidW5kbGUgYnV0IGl0IGFwcGVhcnMgaXQgaXMgYmVpbmdcbiAgICAgIHJ1biBpbiBhIE5vZGUgZW52aXJvbm1lbnQuICBJZiBydW5uaW5nIGluIGEgTm9kZSBlbnZpcm9ubWVudCwgbWFrZSBzdXJlIHlvdVxuICAgICAgYXJlIHVzaW5nIHRoZSBidW5kbGUgc3BlY2lmaWVkIGJ5IHRoZSAibWFpbiIgZmllbGQgaW4gcGFja2FnZS5qc29uLlxuICAgICAgXG4gICAgICBJZiB5b3UgYXJlIHVzaW5nIFdlYnBhY2ssIHlvdSBjYW4gc3BlY2lmeSAibWFpbiIgYXMgdGhlIGZpcnN0IGl0ZW0gaW5cbiAgICAgICJyZXNvbHZlLm1haW5GaWVsZHMiOlxuICAgICAgaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9jb25maWd1cmF0aW9uL3Jlc29sdmUvI3Jlc29sdmVtYWluZmllbGRzXG4gICAgICBcbiAgICAgIElmIHVzaW5nIFJvbGx1cCwgdXNlIHRoZSBAcm9sbHVwL3BsdWdpbi1ub2RlLXJlc29sdmUgcGx1Z2luIGFuZCBzcGVjaWZ5ICJtYWluIlxuICAgICAgYXMgdGhlIGZpcnN0IGl0ZW0gaW4gIm1haW5GaWVsZHMiLCBlLmcuIFtcJ21haW5cJywgXCdtb2R1bGVcJ10uXG4gICAgICBodHRwczovL2dpdGh1Yi5jb20vcm9sbHVwL0Byb2xsdXAvcGx1Z2luLW5vZGUtcmVzb2x2ZVxuICAgICAgJyksQXMuYXBwbHkodm9pZCAwLHQpfTt2YXIga3MsUnMsWGw9Rzsoa3M9WGwpLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygicGxhdGZvcm0tbG9nZ2VyIixmdW5jdGlvbih0KXtyZXR1cm4gbmV3IENzKHQpfSwiUFJJVkFURSIpKSxrcy5yZWdpc3RlclZlcnNpb24obXMsIjAuNi4xOCIsUnMpLGtzLnJlZ2lzdGVyVmVyc2lvbigiZmlyZS1qcyIsIiIpO1hsLnJlZ2lzdGVyVmVyc2lvbigiZmlyZWJhc2UiLCI4LjMuMiIsImFwcCIpOyFmdW5jdGlvbigpe3ZhciB0LG89ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbih0LGUsbil7dCE9QXJyYXkucHJvdG90eXBlJiZ0IT1PYmplY3QucHJvdG90eXBlJiYodFtlXT1uLnZhbHVlKX07dmFyIHU9ZnVuY3Rpb24odCl7dD1bIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCx0XTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoOysrZSl7dmFyIG49dFtlXTtpZihuJiZuLk1hdGg9PU1hdGgpcmV0dXJuIG59cmV0dXJuIGdsb2JhbFRoaXN9KHRoaXMpO2Z1bmN0aW9uIGModCl7dmFyIGUsbixyPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJnRbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gcj9yLmNhbGwodCk6e25leHQ6KGU9dCxuPTAsZnVuY3Rpb24oKXtyZXR1cm4gbjxlLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTplW24rK119Ontkb25lOiEwfX0pfX0hZnVuY3Rpb24odCxlKXtpZihlKXt2YXIgbj11O3Q9dC5zcGxpdCgiLiIpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGgtMTtyKyspe3ZhciBpPXRbcl07aSBpbiBufHwobltpXT17fSksbj1uW2ldfShlPWUocj1uW3Q9dFt0Lmxlbmd0aC0xXV0pKSE9ciYmbnVsbCE9ZSYmbyhuLHQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplfSl9fSgiUHJvbWlzZSIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gcyh0KXt0aGlzLmI9MCx0aGlzLmM9dm9pZCAwLHRoaXMuYT1bXTt2YXIgZT10aGlzLmYoKTt0cnl7dChlLnJlc29sdmUsZS5yZWplY3QpfWNhdGNoKHQpe2UucmVqZWN0KHQpfX1mdW5jdGlvbiBlKCl7dGhpcy5hPW51bGx9ZnVuY3Rpb24gYShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHM/ZTpuZXcgcyhmdW5jdGlvbih0KXt0KGUpfSl9aWYodClyZXR1cm4gdDtlLnByb3RvdHlwZS5iPWZ1bmN0aW9uKHQpe3ZhciBlO251bGw9PXRoaXMuYSYmKHRoaXMuYT1bXSwoZT10aGlzKS5jKGZ1bmN0aW9uKCl7ZS5nKCl9KSksdGhpcy5hLnB1c2godCl9O3ZhciBuPXUuc2V0VGltZW91dDtlLnByb3RvdHlwZS5jPWZ1bmN0aW9uKHQpe24odCwwKX0sZS5wcm90b3R5cGUuZz1mdW5jdGlvbigpe2Zvcig7dGhpcy5hJiZ0aGlzLmEubGVuZ3RoOyl7dmFyIHQ9dGhpcy5hO3RoaXMuYT1bXTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoOysrZSl7dmFyIG49dFtlXTt0W2VdPW51bGw7dHJ5e24oKX1jYXRjaCh0KXt0aGlzLmYodCl9fX10aGlzLmE9bnVsbH0sZS5wcm90b3R5cGUuZj1mdW5jdGlvbih0KXt0aGlzLmMoZnVuY3Rpb24oKXt0aHJvdyB0fSl9LHMucHJvdG90eXBlLmY9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3JldHVybiBmdW5jdGlvbih0KXtyfHwocj0hMCxlLmNhbGwobix0KSl9fXZhciBuPXRoaXMscj0hMTtyZXR1cm57cmVzb2x2ZTp0KHRoaXMubSkscmVqZWN0OnQodGhpcy5nKX19LHMucHJvdG90eXBlLm09ZnVuY3Rpb24odCl7aWYodD09PXRoaXMpdGhpcy5nKG5ldyBUeXBlRXJyb3IoIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7ZWxzZSBpZih0IGluc3RhbmNlb2Ygcyl0aGlzLnModCk7ZWxzZXt0OnN3aXRjaCh0eXBlb2YgdCl7Y2FzZSJvYmplY3QiOnZhciBlPW51bGwhPXQ7YnJlYWsgdDtjYXNlImZ1bmN0aW9uIjplPSEwO2JyZWFrIHQ7ZGVmYXVsdDplPSExfWU/dGhpcy52KHQpOnRoaXMuaCh0KX19LHMucHJvdG90eXBlLnY9ZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwO3RyeXtlPXQudGhlbn1jYXRjaCh0KXtyZXR1cm4gdm9pZCB0aGlzLmcodCl9ImZ1bmN0aW9uIj09dHlwZW9mIGU/dGhpcy51KGUsdCk6dGhpcy5oKHQpfSxzLnByb3RvdHlwZS5nPWZ1bmN0aW9uKHQpe3RoaXMuaSgyLHQpfSxzLnByb3RvdHlwZS5oPWZ1bmN0aW9uKHQpe3RoaXMuaSgxLHQpfSxzLnByb3RvdHlwZS5pPWZ1bmN0aW9uKHQsZSl7aWYoMCE9dGhpcy5iKXRocm93IEVycm9yKCJDYW5ub3Qgc2V0dGxlKCIrdCsiLCAiK2UrIik6IFByb21pc2UgYWxyZWFkeSBzZXR0bGVkIGluIHN0YXRlIit0aGlzLmIpO3RoaXMuYj10LHRoaXMuYz1lLHRoaXMubCgpfSxzLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy5hKXtmb3IodmFyIHQ9MDt0PHRoaXMuYS5sZW5ndGg7Kyt0KWkuYih0aGlzLmFbdF0pO3RoaXMuYT1udWxsfX07dmFyIGk9bmV3IGU7cmV0dXJuIHMucHJvdG90eXBlLnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mKCk7dC5RYShlLnJlc29sdmUsZS5yZWplY3QpfSxzLnByb3RvdHlwZS51PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5mKCk7dHJ5e3QuY2FsbChlLG4ucmVzb2x2ZSxuLnJlamVjdCl9Y2F0Y2godCl7bi5yZWplY3QodCl9fSxzLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbihlLHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKHQpe3RyeXtyKGUodCkpfWNhdGNoKHQpe2kodCl9fTp0fXZhciByLGksbz1uZXcgcyhmdW5jdGlvbih0LGUpe3I9dCxpPWV9KTtyZXR1cm4gdGhpcy5RYShuKHQsciksbihlLGkpKSxvfSxzLnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX0scy5wcm90b3R5cGUuUWE9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7c3dpdGNoKHIuYil7Y2FzZSAxOnQoci5jKTticmVhaztjYXNlIDI6ZShyLmMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuZXhwZWN0ZWQgc3RhdGU6ICIrci5iKX19dmFyIHI9dGhpcztudWxsPT10aGlzLmE/aS5iKG4pOnRoaXMuYS5wdXNoKG4pfSxzLnJlc29sdmU9YSxzLnJlamVjdD1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHMoZnVuY3Rpb24odCxlKXtlKG4pfSl9LHMucmFjZT1mdW5jdGlvbihpKXtyZXR1cm4gbmV3IHMoZnVuY3Rpb24odCxlKXtmb3IodmFyIG49YyhpKSxyPW4ubmV4dCgpOyFyLmRvbmU7cj1uLm5leHQoKSlhKHIudmFsdWUpLlFhKHQsZSl9KX0scy5hbGw9ZnVuY3Rpb24odCl7dmFyIGU9Yyh0KSxvPWUubmV4dCgpO3JldHVybiBvLmRvbmU/YShbXSk6bmV3IHMoZnVuY3Rpb24obix0KXtmb3IodmFyIHI9W10saT0wO3IucHVzaCh2b2lkIDApLGkrKyxhKG8udmFsdWUpLlFhKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyW2VdPXQsMD09LS1pJiZuKHIpfX0oci5sZW5ndGgtMSksdCksbz1lLm5leHQoKSwhby5kb25lOyk7fSl9LHN9KTt2YXIgaD1ofHx7fSxsPXRoaXN8fHNlbGYsZT0vXltcdysvXy1dK1s9XXswLDJ9JC8sYT1udWxsO2Z1bmN0aW9uIGYodCl7cmV0dXJuKHQ9dC5xdWVyeVNlbGVjdG9yJiZ0LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtub25jZV0iKSkmJih0PXQubm9uY2V8fHQuZ2V0QXR0cmlidXRlKCJub25jZSIpKSYmZS50ZXN0KHQpP3Q6IiJ9ZnVuY3Rpb24gcygpe31mdW5jdGlvbiBwKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiJvYmplY3QiIT1lP2U6dD9BcnJheS5pc0FycmF5KHQpPyJhcnJheSI6ZToibnVsbCJ9ZnVuY3Rpb24gZCh0KXt2YXIgZT1wKHQpO3JldHVybiJhcnJheSI9PWV8fCJvYmplY3QiPT1lJiYibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RofWZ1bmN0aW9uIHYodCl7cmV0dXJuImZ1bmN0aW9uIj09cCh0KX1mdW5jdGlvbiBnKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiJvYmplY3QiPT1lJiZudWxsIT10fHwiZnVuY3Rpb24iPT1lfXZhciBuPSJjbG9zdXJlX3VpZF8iKygxZTkqTWF0aC5yYW5kb20oKT4+PjApLHI9MDtmdW5jdGlvbiBpKHQsZSxuKXtyZXR1cm4gdC5jYWxsLmFwcGx5KHQuYmluZCxhcmd1bWVudHMpfWZ1bmN0aW9uIHkoZSxuLHQpe2lmKCFlKXRocm93IEVycm9yKCk7aWYoMjxhcmd1bWVudHMubGVuZ3RoKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkodCxyKSxlLmFwcGx5KG4sdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KG4sYXJndW1lbnRzKX19ZnVuY3Rpb24gbSh0LGUsbil7cmV0dXJuKG09RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQmJi0xIT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoIm5hdGl2ZSBjb2RlIik/aTp5KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYihlKXt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bi5zbGljZSgpO3JldHVybiB0LnB1c2guYXBwbHkodCxhcmd1bWVudHMpLGUuYXBwbHkodGhpcyx0KX19ZnVuY3Rpb24gdyh0LGUpe2Z1bmN0aW9uIG4oKXt9bi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5hYj1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIF8odCl7cmV0dXJuIHR9ZnVuY3Rpb24gSSh0LGUsbil7dGhpcy5jb2RlPVMrdCx0aGlzLm1lc3NhZ2U9ZXx8Q1t0XXx8IiIsdGhpcy5hPW58fG51bGx9ZnVuY3Rpb24gVCh0KXt2YXIgZT10JiZ0LmNvZGU7cmV0dXJuIGU/bmV3IEkoZS5zdWJzdHJpbmcoUy5sZW5ndGgpLHQubWVzc2FnZSx0LnNlcnZlclJlc3BvbnNlKTpudWxsfXcoSSxFcnJvciksSS5wcm90b3R5cGUudz1mdW5jdGlvbigpe3ZhciB0PXtjb2RlOnRoaXMuY29kZSxtZXNzYWdlOnRoaXMubWVzc2FnZX07cmV0dXJuIHRoaXMuYSYmKHQuc2VydmVyUmVzcG9uc2U9dGhpcy5hKSx0fSxJLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53KCl9O3ZhciBFLFM9ImF1dGgvIixDPXsiYWRtaW4tcmVzdHJpY3RlZC1vcGVyYXRpb24iOiJUaGlzIG9wZXJhdGlvbiBpcyByZXN0cmljdGVkIHRvIGFkbWluaXN0cmF0b3JzIG9ubHkuIiwiYXJndW1lbnQtZXJyb3IiOiIiLCJhcHAtbm90LWF1dGhvcml6ZWQiOiJUaGlzIGFwcCwgaWRlbnRpZmllZCBieSB0aGUgZG9tYWluIHdoZXJlIGl0J3MgaG9zdGVkLCBpcyBub3QgYXV0aG9yaXplZCB0byB1c2UgRmlyZWJhc2UgQXV0aGVudGljYXRpb24gd2l0aCB0aGUgcHJvdmlkZWQgQVBJIGtleS4gUmV2aWV3IHlvdXIga2V5IGNvbmZpZ3VyYXRpb24gaW4gdGhlIEdvb2dsZSBBUEkgY29uc29sZS4iLCJhcHAtbm90LWluc3RhbGxlZCI6IlRoZSByZXF1ZXN0ZWQgbW9iaWxlIGFwcGxpY2F0aW9uIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkZW50aWZpZXIgKEFuZHJvaWQgcGFja2FnZSBuYW1lIG9yIGlPUyBidW5kbGUgSUQpIHByb3ZpZGVkIGlzIG5vdCBpbnN0YWxsZWQgb24gdGhpcyBkZXZpY2UuIiwiY2FwdGNoYS1jaGVjay1mYWlsZWQiOiJUaGUgcmVDQVBUQ0hBIHJlc3BvbnNlIHRva2VuIHByb3ZpZGVkIGlzIGVpdGhlciBpbnZhbGlkLCBleHBpcmVkLCBhbHJlYWR5IHVzZWQgb3IgdGhlIGRvbWFpbiBhc3NvY2lhdGVkIHdpdGggaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGxpc3Qgb2Ygd2hpdGVsaXN0ZWQgZG9tYWlucy4iLCJjb2RlLWV4cGlyZWQiOiJUaGUgU01TIGNvZGUgaGFzIGV4cGlyZWQuIFBsZWFzZSByZS1zZW5kIHRoZSB2ZXJpZmljYXRpb24gY29kZSB0byB0cnkgYWdhaW4uIiwiY29yZG92YS1ub3QtcmVhZHkiOiJDb3Jkb3ZhIGZyYW1ld29yayBpcyBub3QgcmVhZHkuIiwiY29ycy11bnN1cHBvcnRlZCI6IlRoaXMgYnJvd3NlciBpcyBub3Qgc3VwcG9ydGVkLiIsImNyZWRlbnRpYWwtYWxyZWFkeS1pbi11c2UiOiJUaGlzIGNyZWRlbnRpYWwgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggYSBkaWZmZXJlbnQgdXNlciBhY2NvdW50LiIsImN1c3RvbS10b2tlbi1taXNtYXRjaCI6IlRoZSBjdXN0b20gdG9rZW4gY29ycmVzcG9uZHMgdG8gYSBkaWZmZXJlbnQgYXVkaWVuY2UuIiwicmVxdWlyZXMtcmVjZW50LWxvZ2luIjoiVGhpcyBvcGVyYXRpb24gaXMgc2Vuc2l0aXZlIGFuZCByZXF1aXJlcyByZWNlbnQgYXV0aGVudGljYXRpb24uIExvZyBpbiBhZ2FpbiBiZWZvcmUgcmV0cnlpbmcgdGhpcyByZXF1ZXN0LiIsImR5bmFtaWMtbGluay1ub3QtYWN0aXZhdGVkIjoiUGxlYXNlIGFjdGl2YXRlIER5bmFtaWMgTGlua3MgaW4gdGhlIEZpcmViYXNlIENvbnNvbGUgYW5kIGFncmVlIHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4iLCJlbWFpbC1jaGFuZ2UtbmVlZHMtdmVyaWZpY2F0aW9uIjoiTXVsdGktZmFjdG9yIHVzZXJzIG11c3QgYWx3YXlzIGhhdmUgYSB2ZXJpZmllZCBlbWFpbC4iLCJlbWFpbC1hbHJlYWR5LWluLXVzZSI6IlRoZSBlbWFpbCBhZGRyZXNzIGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgYWNjb3VudC4iLCJleHBpcmVkLWFjdGlvbi1jb2RlIjoiVGhlIGFjdGlvbiBjb2RlIGhhcyBleHBpcmVkLiAiLCJjYW5jZWxsZWQtcG9wdXAtcmVxdWVzdCI6IlRoaXMgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZCBkdWUgdG8gYW5vdGhlciBjb25mbGljdGluZyBwb3B1cCBiZWluZyBvcGVuZWQuIiwiaW50ZXJuYWwtZXJyb3IiOiJBbiBpbnRlcm5hbCBlcnJvciBoYXMgb2NjdXJyZWQuIiwiaW52YWxpZC1hcHAtY3JlZGVudGlhbCI6IlRoZSBwaG9uZSB2ZXJpZmljYXRpb24gcmVxdWVzdCBjb250YWlucyBhbiBpbnZhbGlkIGFwcGxpY2F0aW9uIHZlcmlmaWVyLiBUaGUgcmVDQVBUQ0hBIHRva2VuIHJlc3BvbnNlIGlzIGVpdGhlciBpbnZhbGlkIG9yIGV4cGlyZWQuIiwiaW52YWxpZC1hcHAtaWQiOiJUaGUgbW9iaWxlIGFwcCBpZGVudGlmaWVyIGlzIG5vdCByZWdpc3RlZCBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdC4iLCJpbnZhbGlkLXVzZXItdG9rZW4iOiJUaGlzIHVzZXIncyBjcmVkZW50aWFsIGlzbid0IHZhbGlkIGZvciB0aGlzIHByb2plY3QuIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgdXNlcidzIHRva2VuIGhhcyBiZWVuIHRhbXBlcmVkIHdpdGgsIG9yIGlmIHRoZSB1c2VyIGlzbid0IGZvciB0aGUgcHJvamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBBUEkga2V5LiIsImludmFsaWQtYXV0aC1ldmVudCI6IkFuIGludGVybmFsIGVycm9yIGhhcyBvY2N1cnJlZC4iLCJpbnZhbGlkLXZlcmlmaWNhdGlvbi1jb2RlIjoiVGhlIFNNUyB2ZXJpZmljYXRpb24gY29kZSB1c2VkIHRvIGNyZWF0ZSB0aGUgcGhvbmUgYXV0aCBjcmVkZW50aWFsIGlzIGludmFsaWQuIFBsZWFzZSByZXNlbmQgdGhlIHZlcmlmaWNhdGlvbiBjb2RlIHNtcyBhbmQgYmUgc3VyZSB1c2UgdGhlIHZlcmlmaWNhdGlvbiBjb2RlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiIsImludmFsaWQtY29udGludWUtdXJpIjoiVGhlIGNvbnRpbnVlIFVSTCBwcm92aWRlZCBpbiB0aGUgcmVxdWVzdCBpcyBpbnZhbGlkLiIsImludmFsaWQtY29yZG92YS1jb25maWd1cmF0aW9uIjoiVGhlIGZvbGxvd2luZyBDb3Jkb3ZhIHBsdWdpbnMgbXVzdCBiZSBpbnN0YWxsZWQgdG8gZW5hYmxlIE9BdXRoIHNpZ24taW46IGNvcmRvdmEtcGx1Z2luLWJ1aWxkaW5mbywgY29yZG92YS11bml2ZXJzYWwtbGlua3MtcGx1Z2luLCBjb3Jkb3ZhLXBsdWdpbi1icm93c2VydGFiLCBjb3Jkb3ZhLXBsdWdpbi1pbmFwcGJyb3dzZXIgYW5kIGNvcmRvdmEtcGx1Z2luLWN1c3RvbXVybHNjaGVtZS4iLCJpbnZhbGlkLWN1c3RvbS10b2tlbiI6IlRoZSBjdXN0b20gdG9rZW4gZm9ybWF0IGlzIGluY29ycmVjdC4gUGxlYXNlIGNoZWNrIHRoZSBkb2N1bWVudGF0aW9uLiIsImludmFsaWQtZHluYW1pYy1saW5rLWRvbWFpbiI6IlRoZSBwcm92aWRlZCBkeW5hbWljIGxpbmsgZG9tYWluIGlzIG5vdCBjb25maWd1cmVkIG9yIGF1dGhvcml6ZWQgZm9yIHRoZSBjdXJyZW50IHByb2plY3QuIiwiaW52YWxpZC1lbWFpbCI6IlRoZSBlbWFpbCBhZGRyZXNzIGlzIGJhZGx5IGZvcm1hdHRlZC4iLCJpbnZhbGlkLWFwaS1rZXkiOiJZb3VyIEFQSSBrZXkgaXMgaW52YWxpZCwgcGxlYXNlIGNoZWNrIHlvdSBoYXZlIGNvcGllZCBpdCBjb3JyZWN0bHkuIiwiaW52YWxpZC1jZXJ0LWhhc2giOiJUaGUgU0hBLTEgY2VydGlmaWNhdGUgaGFzaCBwcm92aWRlZCBpcyBpbnZhbGlkLiIsImludmFsaWQtY3JlZGVudGlhbCI6IlRoZSBzdXBwbGllZCBhdXRoIGNyZWRlbnRpYWwgaXMgbWFsZm9ybWVkIG9yIGhhcyBleHBpcmVkLiIsImludmFsaWQtbWVzc2FnZS1wYXlsb2FkIjoiVGhlIGVtYWlsIHRlbXBsYXRlIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBhY3Rpb24gY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIGluIGl0cyBtZXNzYWdlLiBQbGVhc2UgZml4IGJ5IGdvaW5nIHRvIHRoZSBBdXRoIGVtYWlsIHRlbXBsYXRlcyBzZWN0aW9uIGluIHRoZSBGaXJlYmFzZSBDb25zb2xlLiIsImludmFsaWQtbXVsdGktZmFjdG9yLXNlc3Npb24iOiJUaGUgcmVxdWVzdCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgcHJvb2Ygb2YgZmlyc3QgZmFjdG9yIHN1Y2Nlc3NmdWwgc2lnbi1pbi4iLCJpbnZhbGlkLW9hdXRoLXByb3ZpZGVyIjoiRW1haWxBdXRoUHJvdmlkZXIgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBvcGVyYXRpb24uIFRoaXMgb3BlcmF0aW9uIG9ubHkgc3VwcG9ydHMgT0F1dGggcHJvdmlkZXJzLiIsImludmFsaWQtb2F1dGgtY2xpZW50LWlkIjoiVGhlIE9BdXRoIGNsaWVudCBJRCBwcm92aWRlZCBpcyBlaXRoZXIgaW52YWxpZCBvciBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVkIEFQSSBrZXkuIiwidW5hdXRob3JpemVkLWRvbWFpbiI6IlRoaXMgZG9tYWluIGlzIG5vdCBhdXRob3JpemVkIGZvciBPQXV0aCBvcGVyYXRpb25zIGZvciB5b3VyIEZpcmViYXNlIHByb2plY3QuIEVkaXQgdGhlIGxpc3Qgb2YgYXV0aG9yaXplZCBkb21haW5zIGZyb20gdGhlIEZpcmViYXNlIGNvbnNvbGUuIiwiaW52YWxpZC1hY3Rpb24tY29kZSI6IlRoZSBhY3Rpb24gY29kZSBpcyBpbnZhbGlkLiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIGNvZGUgaXMgbWFsZm9ybWVkLCBleHBpcmVkLCBvciBoYXMgYWxyZWFkeSBiZWVuIHVzZWQuIiwid3JvbmctcGFzc3dvcmQiOiJUaGUgcGFzc3dvcmQgaXMgaW52YWxpZCBvciB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIGEgcGFzc3dvcmQuIiwiaW52YWxpZC1wZXJzaXN0ZW5jZS10eXBlIjoiVGhlIHNwZWNpZmllZCBwZXJzaXN0ZW5jZSB0eXBlIGlzIGludmFsaWQuIEl0IGNhbiBvbmx5IGJlIGxvY2FsLCBzZXNzaW9uIG9yIG5vbmUuIiwiaW52YWxpZC1waG9uZS1udW1iZXIiOiJUaGUgZm9ybWF0IG9mIHRoZSBwaG9uZSBudW1iZXIgcHJvdmlkZWQgaXMgaW5jb3JyZWN0LiBQbGVhc2UgZW50ZXIgdGhlIHBob25lIG51bWJlciBpbiBhIGZvcm1hdCB0aGF0IGNhbiBiZSBwYXJzZWQgaW50byBFLjE2NCBmb3JtYXQuIEUuMTY0IHBob25lIG51bWJlcnMgYXJlIHdyaXR0ZW4gaW4gdGhlIGZvcm1hdCBbK11bY291bnRyeSBjb2RlXVtzdWJzY3JpYmVyIG51bWJlciBpbmNsdWRpbmcgYXJlYSBjb2RlXS4iLCJpbnZhbGlkLXByb3ZpZGVyLWlkIjoiVGhlIHNwZWNpZmllZCBwcm92aWRlciBJRCBpcyBpbnZhbGlkLiIsImludmFsaWQtcmVjaXBpZW50LWVtYWlsIjoiVGhlIGVtYWlsIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBhY3Rpb24gZmFpbGVkIHRvIHNlbmQgYXMgdGhlIHByb3ZpZGVkIHJlY2lwaWVudCBlbWFpbCBhZGRyZXNzIGlzIGludmFsaWQuIiwiaW52YWxpZC1zZW5kZXIiOiJUaGUgZW1haWwgdGVtcGxhdGUgY29ycmVzcG9uZGluZyB0byB0aGlzIGFjdGlvbiBjb250YWlucyBhbiBpbnZhbGlkIHNlbmRlciBlbWFpbCBvciBuYW1lLiBQbGVhc2UgZml4IGJ5IGdvaW5nIHRvIHRoZSBBdXRoIGVtYWlsIHRlbXBsYXRlcyBzZWN0aW9uIGluIHRoZSBGaXJlYmFzZSBDb25zb2xlLiIsImludmFsaWQtdmVyaWZpY2F0aW9uLWlkIjoiVGhlIHZlcmlmaWNhdGlvbiBJRCB1c2VkIHRvIGNyZWF0ZSB0aGUgcGhvbmUgYXV0aCBjcmVkZW50aWFsIGlzIGludmFsaWQuIiwiaW52YWxpZC10ZW5hbnQtaWQiOiJUaGUgQXV0aCBpbnN0YW5jZSdzIHRlbmFudCBJRCBpcyBpbnZhbGlkLiIsIm11bHRpLWZhY3Rvci1pbmZvLW5vdC1mb3VuZCI6IlRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYSBzZWNvbmQgZmFjdG9yIG1hdGNoaW5nIHRoZSBpZGVudGlmaWVyIHByb3ZpZGVkLiIsIm11bHRpLWZhY3Rvci1hdXRoLXJlcXVpcmVkIjoiUHJvb2Ygb2Ygb3duZXJzaGlwIG9mIGEgc2Vjb25kIGZhY3RvciBpcyByZXF1aXJlZCB0byBjb21wbGV0ZSBzaWduLWluLiIsIm1pc3NpbmctYW5kcm9pZC1wa2ctbmFtZSI6IkFuIEFuZHJvaWQgUGFja2FnZSBOYW1lIG11c3QgYmUgcHJvdmlkZWQgaWYgdGhlIEFuZHJvaWQgQXBwIGlzIHJlcXVpcmVkIHRvIGJlIGluc3RhbGxlZC4iLCJhdXRoLWRvbWFpbi1jb25maWctcmVxdWlyZWQiOiJCZSBzdXJlIHRvIGluY2x1ZGUgYXV0aERvbWFpbiB3aGVuIGNhbGxpbmcgZmlyZWJhc2UuaW5pdGlhbGl6ZUFwcCgpLCBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBpbiB0aGUgRmlyZWJhc2UgY29uc29sZS4iLCJtaXNzaW5nLWFwcC1jcmVkZW50aWFsIjoiVGhlIHBob25lIHZlcmlmaWNhdGlvbiByZXF1ZXN0IGlzIG1pc3NpbmcgYW4gYXBwbGljYXRpb24gdmVyaWZpZXIgYXNzZXJ0aW9uLiBBIHJlQ0FQVENIQSByZXNwb25zZSB0b2tlbiBuZWVkcyB0byBiZSBwcm92aWRlZC4iLCJtaXNzaW5nLXZlcmlmaWNhdGlvbi1jb2RlIjoiVGhlIHBob25lIGF1dGggY3JlZGVudGlhbCB3YXMgY3JlYXRlZCB3aXRoIGFuIGVtcHR5IFNNUyB2ZXJpZmljYXRpb24gY29kZS4iLCJtaXNzaW5nLWNvbnRpbnVlLXVyaSI6IkEgY29udGludWUgVVJMIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIHJlcXVlc3QuIiwibWlzc2luZy1pZnJhbWUtc3RhcnQiOiJBbiBpbnRlcm5hbCBlcnJvciBoYXMgb2NjdXJyZWQuIiwibWlzc2luZy1pb3MtYnVuZGxlLWlkIjoiQW4gaU9TIEJ1bmRsZSBJRCBtdXN0IGJlIHByb3ZpZGVkIGlmIGFuIEFwcCBTdG9yZSBJRCBpcyBwcm92aWRlZC4iLCJtaXNzaW5nLW11bHRpLWZhY3Rvci1pbmZvIjoiTm8gc2Vjb25kIGZhY3RvciBpZGVudGlmaWVyIGlzIHByb3ZpZGVkLiIsIm1pc3NpbmctbXVsdGktZmFjdG9yLXNlc3Npb24iOiJUaGUgcmVxdWVzdCBpcyBtaXNzaW5nIHByb29mIG9mIGZpcnN0IGZhY3RvciBzdWNjZXNzZnVsIHNpZ24taW4uIiwibWlzc2luZy1vci1pbnZhbGlkLW5vbmNlIjoiVGhlIHJlcXVlc3QgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIG5vbmNlLiBUaGlzIGNhbiBvY2N1ciBpZiB0aGUgU0hBLTI1NiBoYXNoIG9mIHRoZSBwcm92aWRlZCByYXcgbm9uY2UgZG9lcyBub3QgbWF0Y2ggdGhlIGhhc2hlZCBub25jZSBpbiB0aGUgSUQgdG9rZW4gcGF5bG9hZC4iLCJtaXNzaW5nLXBob25lLW51bWJlciI6IlRvIHNlbmQgdmVyaWZpY2F0aW9uIGNvZGVzLCBwcm92aWRlIGEgcGhvbmUgbnVtYmVyIGZvciB0aGUgcmVjaXBpZW50LiIsIm1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIjoiVGhlIHBob25lIGF1dGggY3JlZGVudGlhbCB3YXMgY3JlYXRlZCB3aXRoIGFuIGVtcHR5IHZlcmlmaWNhdGlvbiBJRC4iLCJhcHAtZGVsZXRlZCI6IlRoaXMgaW5zdGFuY2Ugb2YgRmlyZWJhc2VBcHAgaGFzIGJlZW4gZGVsZXRlZC4iLCJhY2NvdW50LWV4aXN0cy13aXRoLWRpZmZlcmVudC1jcmVkZW50aWFsIjoiQW4gYWNjb3VudCBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoZSBzYW1lIGVtYWlsIGFkZHJlc3MgYnV0IGRpZmZlcmVudCBzaWduLWluIGNyZWRlbnRpYWxzLiBTaWduIGluIHVzaW5nIGEgcHJvdmlkZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZW1haWwgYWRkcmVzcy4iLCJuZXR3b3JrLXJlcXVlc3QtZmFpbGVkIjoiQSBuZXR3b3JrIGVycm9yIChzdWNoIGFzIHRpbWVvdXQsIGludGVycnVwdGVkIGNvbm5lY3Rpb24gb3IgdW5yZWFjaGFibGUgaG9zdCkgaGFzIG9jY3VycmVkLiIsIm5vLWF1dGgtZXZlbnQiOiJBbiBpbnRlcm5hbCBlcnJvciBoYXMgb2NjdXJyZWQuIiwibm8tc3VjaC1wcm92aWRlciI6IlVzZXIgd2FzIG5vdCBsaW5rZWQgdG8gYW4gYWNjb3VudCB3aXRoIHRoZSBnaXZlbiBwcm92aWRlci4iLCJudWxsLXVzZXIiOiJBIG51bGwgdXNlciBvYmplY3Qgd2FzIHByb3ZpZGVkIGFzIHRoZSBhcmd1bWVudCBmb3IgYW4gb3BlcmF0aW9uIHdoaWNoIHJlcXVpcmVzIGEgbm9uLW51bGwgdXNlciBvYmplY3QuIiwib3BlcmF0aW9uLW5vdC1hbGxvd2VkIjoiVGhlIGdpdmVuIHNpZ24taW4gcHJvdmlkZXIgaXMgZGlzYWJsZWQgZm9yIHRoaXMgRmlyZWJhc2UgcHJvamVjdC4gRW5hYmxlIGl0IGluIHRoZSBGaXJlYmFzZSBjb25zb2xlLCB1bmRlciB0aGUgc2lnbi1pbiBtZXRob2QgdGFiIG9mIHRoZSBBdXRoIHNlY3Rpb24uIiwib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCI6J1RoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGVudmlyb25tZW50IHRoaXMgYXBwbGljYXRpb24gaXMgcnVubmluZyBvbi4gImxvY2F0aW9uLnByb3RvY29sIiBtdXN0IGJlIGh0dHAsIGh0dHBzIG9yIGNocm9tZS1leHRlbnNpb24gYW5kIHdlYiBzdG9yYWdlIG11c3QgYmUgZW5hYmxlZC4nLCJwb3B1cC1ibG9ja2VkIjoiVW5hYmxlIHRvIGVzdGFibGlzaCBhIGNvbm5lY3Rpb24gd2l0aCB0aGUgcG9wdXAuIEl0IG1heSBoYXZlIGJlZW4gYmxvY2tlZCBieSB0aGUgYnJvd3Nlci4iLCJwb3B1cC1jbG9zZWQtYnktdXNlciI6IlRoZSBwb3B1cCBoYXMgYmVlbiBjbG9zZWQgYnkgdGhlIHVzZXIgYmVmb3JlIGZpbmFsaXppbmcgdGhlIG9wZXJhdGlvbi4iLCJwcm92aWRlci1hbHJlYWR5LWxpbmtlZCI6IlVzZXIgY2FuIG9ubHkgYmUgbGlua2VkIHRvIG9uZSBpZGVudGl0eSBmb3IgdGhlIGdpdmVuIHByb3ZpZGVyLiIsInF1b3RhLWV4Y2VlZGVkIjoiVGhlIHByb2plY3QncyBxdW90YSBmb3IgdGhpcyBvcGVyYXRpb24gaGFzIGJlZW4gZXhjZWVkZWQuIiwicmVkaXJlY3QtY2FuY2VsbGVkLWJ5LXVzZXIiOiJUaGUgcmVkaXJlY3Qgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZCBieSB0aGUgdXNlciBiZWZvcmUgZmluYWxpemluZy4iLCJyZWRpcmVjdC1vcGVyYXRpb24tcGVuZGluZyI6IkEgcmVkaXJlY3Qgc2lnbi1pbiBvcGVyYXRpb24gaXMgYWxyZWFkeSBwZW5kaW5nLiIsInJlamVjdGVkLWNyZWRlbnRpYWwiOiJUaGUgcmVxdWVzdCBjb250YWlucyBtYWxmb3JtZWQgb3IgbWlzbWF0Y2hpbmcgY3JlZGVudGlhbHMuIiwic2Vjb25kLWZhY3Rvci1hbHJlYWR5LWluLXVzZSI6IlRoZSBzZWNvbmQgZmFjdG9yIGlzIGFscmVhZHkgZW5yb2xsZWQgb24gdGhpcyBhY2NvdW50LiIsIm1heGltdW0tc2Vjb25kLWZhY3Rvci1jb3VudC1leGNlZWRlZCI6IlRoZSBtYXhpbXVtIGFsbG93ZWQgbnVtYmVyIG9mIHNlY29uZCBmYWN0b3JzIG9uIGEgdXNlciBoYXMgYmVlbiBleGNlZWRlZC4iLCJ0ZW5hbnQtaWQtbWlzbWF0Y2giOiJUaGUgcHJvdmlkZWQgdGVuYW50IElEIGRvZXMgbm90IG1hdGNoIHRoZSBBdXRoIGluc3RhbmNlJ3MgdGVuYW50IElEIix0aW1lb3V0OiJUaGUgb3BlcmF0aW9uIGhhcyB0aW1lZCBvdXQuIiwidXNlci10b2tlbi1leHBpcmVkIjoiVGhlIHVzZXIncyBjcmVkZW50aWFsIGlzIG5vIGxvbmdlciB2YWxpZC4gVGhlIHVzZXIgbXVzdCBzaWduIGluIGFnYWluLiIsInRvby1tYW55LXJlcXVlc3RzIjoiV2UgaGF2ZSBibG9ja2VkIGFsbCByZXF1ZXN0cyBmcm9tIHRoaXMgZGV2aWNlIGR1ZSB0byB1bnVzdWFsIGFjdGl2aXR5LiBUcnkgYWdhaW4gbGF0ZXIuIiwidW5hdXRob3JpemVkLWNvbnRpbnVlLXVyaSI6IlRoZSBkb21haW4gb2YgdGhlIGNvbnRpbnVlIFVSTCBpcyBub3Qgd2hpdGVsaXN0ZWQuICBQbGVhc2Ugd2hpdGVsaXN0IHRoZSBkb21haW4gaW4gdGhlIEZpcmViYXNlIGNvbnNvbGUuIiwidW5zdXBwb3J0ZWQtZmlyc3QtZmFjdG9yIjoiRW5yb2xsaW5nIGEgc2Vjb25kIGZhY3RvciBvciBzaWduaW5nIGluIHdpdGggYSBtdWx0aS1mYWN0b3IgYWNjb3VudCByZXF1aXJlcyBzaWduLWluIHdpdGggYSBzdXBwb3J0ZWQgZmlyc3QgZmFjdG9yLiIsInVuc3VwcG9ydGVkLXBlcnNpc3RlbmNlLXR5cGUiOiJUaGUgY3VycmVudCBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgcGVyc2lzdGVuY2UgdHlwZS4iLCJ1bnN1cHBvcnRlZC10ZW5hbnQtb3BlcmF0aW9uIjoiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBhIG11bHRpLXRlbmFudCBjb250ZXh0LiIsInVudmVyaWZpZWQtZW1haWwiOiJUaGUgb3BlcmF0aW9uIHJlcXVpcmVzIGEgdmVyaWZpZWQgZW1haWwuIiwidXNlci1jYW5jZWxsZWQiOiJUaGUgdXNlciBkaWQgbm90IGdyYW50IHlvdXIgYXBwbGljYXRpb24gdGhlIHBlcm1pc3Npb25zIGl0IHJlcXVlc3RlZC4iLCJ1c2VyLW5vdC1mb3VuZCI6IlRoZXJlIGlzIG5vIHVzZXIgcmVjb3JkIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBpZGVudGlmaWVyLiBUaGUgdXNlciBtYXkgaGF2ZSBiZWVuIGRlbGV0ZWQuIiwidXNlci1kaXNhYmxlZCI6IlRoZSB1c2VyIGFjY291bnQgaGFzIGJlZW4gZGlzYWJsZWQgYnkgYW4gYWRtaW5pc3RyYXRvci4iLCJ1c2VyLW1pc21hdGNoIjoiVGhlIHN1cHBsaWVkIGNyZWRlbnRpYWxzIGRvIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBwcmV2aW91c2x5IHNpZ25lZCBpbiB1c2VyLiIsInVzZXItc2lnbmVkLW91dCI6IiIsIndlYWstcGFzc3dvcmQiOiJUaGUgcGFzc3dvcmQgbXVzdCBiZSA2IGNoYXJhY3RlcnMgbG9uZyBvciBtb3JlLiIsIndlYi1zdG9yYWdlLXVuc3VwcG9ydGVkIjoiVGhpcyBicm93c2VyIGlzIG5vdCBzdXBwb3J0ZWQgb3IgM3JkIHBhcnR5IGNvb2tpZXMgYW5kIGRhdGEgbWF5IGJlIGRpc2FibGVkLiJ9LE49e2xkOntUYToiaHR0cHM6Ly9zdGFnaW5nLWlkZW50aXR5dG9vbGtpdC5zYW5kYm94Lmdvb2dsZWFwaXMuY29tL2lkZW50aXR5dG9vbGtpdC92My9yZWx5aW5ncGFydHkvIixaYToiaHR0cHM6Ly9zdGFnaW5nLXNlY3VyZXRva2VuLnNhbmRib3guZ29vZ2xlYXBpcy5jb20vdjEvdG9rZW4iLFdhOiJodHRwczovL3N0YWdpbmctaWRlbnRpdHl0b29sa2l0LnNhbmRib3guZ29vZ2xlYXBpcy5jb20vdjIvIixpZDoiYiJ9LHNkOntUYToiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vaWRlbnRpdHl0b29sa2l0L3YzL3JlbHlpbmdwYXJ0eS8iLFphOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZWFwaXMuY29tL3YxL3Rva2VuIixXYToiaHR0cHM6Ly9pZGVudGl0eXRvb2xraXQuZ29vZ2xlYXBpcy5jb20vdjIvIixpZDoicCJ9LHVkOntUYToiaHR0cHM6Ly9zdGFnaW5nLXd3dy5zYW5kYm94Lmdvb2dsZWFwaXMuY29tL2lkZW50aXR5dG9vbGtpdC92My9yZWx5aW5ncGFydHkvIixaYToiaHR0cHM6Ly9zdGFnaW5nLXNlY3VyZXRva2VuLnNhbmRib3guZ29vZ2xlYXBpcy5jb20vdjEvdG9rZW4iLFdhOiJodHRwczovL3N0YWdpbmctaWRlbnRpdHl0b29sa2l0LnNhbmRib3guZ29vZ2xlYXBpcy5jb20vdjIvIixpZDoicyJ9LHZkOntUYToiaHR0cHM6Ly93d3ctZ29vZ2xlYXBpcy10ZXN0LnNhbmRib3guZ29vZ2xlLmNvbS9pZGVudGl0eXRvb2xraXQvdjMvcmVseWluZ3BhcnR5LyIsWmE6Imh0dHBzOi8vdGVzdC1zZWN1cmV0b2tlbi5zYW5kYm94Lmdvb2dsZWFwaXMuY29tL3YxL3Rva2VuIixXYToiaHR0cHM6Ly90ZXN0LWlkZW50aXR5dG9vbGtpdC5zYW5kYm94Lmdvb2dsZWFwaXMuY29tL3YyLyIsaWQ6InQifX07ZnVuY3Rpb24gQSh0KXtmb3IodmFyIGUgaW4gTilpZihOW2VdLmlkPT09dClyZXR1cm4gdD1OW2VdLHtmaXJlYmFzZUVuZHBvaW50OnQuVGEsc2VjdXJlVG9rZW5FbmRwb2ludDp0LlphLGlkZW50aXR5UGxhdGZvcm1FbmRwb2ludDp0LldhfTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBrKHQpe2lmKHQpdHJ5e3JldHVybiB0LiRnb29nX1RoZW5hYmxlfWNhdGNoKHQpe3JldHVybn19ZnVuY3Rpb24gUih0KXt2YXIgZTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLFIpOihlPUVycm9yKCkuc3RhY2spJiYodGhpcy5zdGFjaz1lKSx0JiYodGhpcy5tZXNzYWdlPVN0cmluZyh0KSl9ZnVuY3Rpb24gUCh0LGUpe2Zvcih2YXIgbj0iIixyPSh0PXQuc3BsaXQoIiVzIikpLmxlbmd0aC0xLGk9MDtpPHI7aSsrKW4rPXRbaV0rKGk8ZS5sZW5ndGg/ZVtpXToiJXMiKTtSLmNhbGwodGhpcyxuK3Rbcl0pfWZ1bmN0aW9uIE8odCl7dGhyb3cgbmV3IFAoIkZhaWx1cmUiKyh0PyI6ICIrdDoiIiksQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX1mdW5jdGlvbiBEKHQsZSl7dGhpcy5jPXQsdGhpcy5mPWUsdGhpcy5iPTAsdGhpcy5hPW51bGx9ZnVuY3Rpb24geCh0LGUpe3QuZihlKSx0LmI8MTAwJiYodC5iKyssZS5uZXh0PXQuYSx0LmE9ZSl9ZnVuY3Rpb24gTCgpe3RoaXMuYj10aGlzLmE9bnVsbH1FPUEoIl9fRUlEX18iKT8iX19FSURfXyI6dm9pZCAwLHcoUixFcnJvciksUi5wcm90b3R5cGUubmFtZT0iQ3VzdG9tRXJyb3IiLHcoUCxSKSxQLnByb3RvdHlwZS5uYW1lPSJBc3NlcnRpb25FcnJvciIsRC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIDA8dGhpcy5iPyh0aGlzLmItLSx0PXRoaXMuYSx0aGlzLmE9dC5uZXh0LHQubmV4dD1udWxsKTp0PXRoaXMuYygpLHR9O3ZhciBNPW5ldyBEKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBGfSxmdW5jdGlvbih0KXt0LnJlc2V0KCl9KTtmdW5jdGlvbiBGKCl7dGhpcy5uZXh0PXRoaXMuYj10aGlzLmE9bnVsbH1MLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1NLmdldCgpO24uc2V0KHQsZSksdGhpcy5iP3RoaXMuYi5uZXh0PW46dGhpcy5hPW4sdGhpcy5iPW59LEYucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3RoaXMuYT10LHRoaXMuYj1lLHRoaXMubmV4dD1udWxsfSxGLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLmI9dGhpcy5hPW51bGx9O3ZhciBVPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLHZvaWQgMCl9OmZ1bmN0aW9uKHQsZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiJzdHJpbmciIT10eXBlb2YgZXx8MSE9ZS5sZW5ndGg/LTE6dC5pbmRleE9mKGUsMCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYobiBpbiB0JiZ0W25dPT09ZSlyZXR1cm4gbjtyZXR1cm4tMX0saj1BcnJheS5wcm90b3R5cGUuZm9yRWFjaD9mdW5jdGlvbih0LGUsbil7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0LGUsbil9OmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9dC5sZW5ndGgsaT0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgiIik6dCxvPTA7bzxyO28rKylvIGluIGkmJmUuY2FsbChuLGlbb10sbyx0KX07dmFyIHE9QXJyYXkucHJvdG90eXBlLmZpbHRlcj9mdW5jdGlvbih0LGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxlLHZvaWQgMCl9OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuLHI9dC5sZW5ndGgsaT1bXSxvPTAscz0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgiIik6dCxhPTA7YTxyO2ErKylhIGluIHMmJihuPXNbYV0sZS5jYWxsKHZvaWQgMCxuLGEsdCkmJihpW28rK109bikpO3JldHVybiBpfSxWPUFycmF5LnByb3RvdHlwZS5tYXA/ZnVuY3Rpb24odCxlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKHQsZSx2b2lkIDApfTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aCxyPUFycmF5KG4pLGk9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoIiIpOnQsbz0wO288bjtvKyspbyBpbiBpJiYocltvXT1lLmNhbGwodm9pZCAwLGlbb10sbyx0KSk7cmV0dXJuIHJ9LEI9QXJyYXkucHJvdG90eXBlLnNvbWU/ZnVuY3Rpb24odCxlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbCh0LGUsdm9pZCAwKX06ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5sZW5ndGgscj0ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgiIik6dCxpPTA7aTxuO2krKylpZihpIGluIHImJmUuY2FsbCh2b2lkIDAscltpXSxpLHQpKXJldHVybiEwO3JldHVybiExfTtmdW5jdGlvbiBLKHQsZSl7cmV0dXJuIDA8PVUodCxlKX1mdW5jdGlvbiBXKHQsZSl7dmFyIG47cmV0dXJuKG49MDw9KGU9VSh0LGUpKSkmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbCh0LGUsMSksbn1mdW5jdGlvbiBIKG4scil7IWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPSJzdHJpbmciPT10eXBlb2YgdD90LnNwbGl0KCIiKTp0LHI9dC5sZW5ndGgtMTswPD1yOy0tcilyIGluIG4mJmUuY2FsbCh2b2lkIDAsbltyXSxyLHQpfShuLGZ1bmN0aW9uKHQsZSl7ci5jYWxsKHZvaWQgMCx0LGUsbikmJjE9PUFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChuLGUsMSkubGVuZ3RoJiYwfSl9ZnVuY3Rpb24gRygpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGFyZ3VtZW50cyl9ZnVuY3Rpb24geih0KXt2YXIgZT10Lmxlbmd0aDtpZigwPGUpe2Zvcih2YXIgbj1BcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPXRbcl07cmV0dXJuIG59cmV0dXJuW119dmFyIFEsWT1TdHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbSgpfTpmdW5jdGlvbih0KXtyZXR1cm4vXltcc1x4YTBdKihbXHNcU10qPylbXHNceGEwXSokLy5leGVjKHQpWzFdfSxYPS8mL2csSj0vPC9nLCQ9Lz4vZyxaPS8iL2csdHQ9LycvZyxldD0vXHgwMC9nLG50PS9bXHgwMCY8PiInXS87ZnVuY3Rpb24gcnQodCxlKXtyZXR1cm4tMSE9dC5pbmRleE9mKGUpfWZ1bmN0aW9uIGl0KHQsZSl7cmV0dXJuIHQ8ZT8tMTplPHQ/MTowfXQ6e3ZhciBvdD1sLm5hdmlnYXRvcjtpZihvdCl7b3Q9b3QudXNlckFnZW50O2lmKG90KXtRPW90O2JyZWFrIHR9fVE9IiJ9ZnVuY3Rpb24gc3QodCl7cmV0dXJuIHJ0KFEsdCl9ZnVuY3Rpb24gYXQodCxlKXtmb3IodmFyIG4gaW4gdCllLmNhbGwodm9pZCAwLHRbbl0sbix0KX1mdW5jdGlvbiB1dCh0KXtmb3IodmFyIGUgaW4gdClyZXR1cm47cmV0dXJuIDF9ZnVuY3Rpb24gY3QodCl7dmFyIGUsbj17fTtmb3IoZSBpbiB0KW5bZV09dFtlXTtyZXR1cm4gbn12YXIgaHQ9ImNvbnN0cnVjdG9yIGhhc093blByb3BlcnR5IGlzUHJvdG90eXBlT2YgcHJvcGVydHlJc0VudW1lcmFibGUgdG9Mb2NhbGVTdHJpbmcgdG9TdHJpbmcgdmFsdWVPZiIuc3BsaXQoIiAiKTtmdW5jdGlvbiBsdCh0KXtmb3IodmFyIGUsbixyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7Zm9yKGUgaW4gbj1hcmd1bWVudHNbcl0pdFtlXT1uW2VdO2Zvcih2YXIgaT0wO2k8aHQubGVuZ3RoO2krKyllPWh0W2ldLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGUpJiYodFtlXT1uW2VdKX19ZnVuY3Rpb24gZnQodCxlKXt0Ont0cnl7dmFyIG49dCYmdC5vd25lckRvY3VtZW50LG49biYmKG4uZGVmYXVsdFZpZXd8fG4ucGFyZW50V2luZG93KTtpZigobj1ufHxsKS5FbGVtZW50JiZuLkxvY2F0aW9uKXt2YXIgcj1uO2JyZWFrIHR9fWNhdGNoKHQpe31yPW51bGx9aWYociYmdm9pZCAwIT09cltlXSYmKCF0fHwhKHQgaW5zdGFuY2VvZiByW2VdKSYmKHQgaW5zdGFuY2VvZiByLkxvY2F0aW9ufHx0IGluc3RhbmNlb2Ygci5FbGVtZW50KSkpe2lmKGcodCkpdHJ5e3ZhciBpPXQuY29uc3RydWN0b3IuZGlzcGxheU5hbWV8fHQuY29uc3RydWN0b3IubmFtZXx8T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWNhdGNoKHQpe2k9IjxvYmplY3QgY291bGQgbm90IGJlIHN0cmluZ2lmaWVkPiJ9ZWxzZSBpPXZvaWQgMD09PXQ/InVuZGVmaW5lZCI6bnVsbD09PXQ/Im51bGwiOnR5cGVvZiB0O08oIkFyZ3VtZW50IGlzIG5vdCBhICVzIChvciBhIG5vbi1FbGVtZW50LCBub24tTG9jYXRpb24gbW9jayk7IGdvdDogJXMiLGUsaSl9fWZ1bmN0aW9uIHB0KHQsZSl7dGhpcy5hPXQ9PT15dCYmZXx8IiIsdGhpcy5iPWd0fWZ1bmN0aW9uIGR0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgcHQmJnQuY29uc3RydWN0b3I9PT1wdCYmdC5iPT09Z3Q/dC5hOihPKCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBDb25zdCwgZ290ICciK3QrIiciKSwidHlwZV9lcnJvcjpDb25zdCIpfXB0LnByb3RvdHlwZS5zYT0hMCxwdC5wcm90b3R5cGUucmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfSxwdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQ29uc3R7Iit0aGlzLmErIn0ifTt2YXIgdnQsZ3Q9e30seXQ9e307ZnVuY3Rpb24gbXQoKXtpZih2b2lkIDA9PT12dCl7dmFyIHQ9bnVsbCxlPWwudHJ1c3RlZFR5cGVzO2lmKGUmJmUuY3JlYXRlUG9saWN5KXt0cnl7dD1lLmNyZWF0ZVBvbGljeSgiZ29vZyNodG1sIix7Y3JlYXRlSFRNTDpfLGNyZWF0ZVNjcmlwdDpfLGNyZWF0ZVNjcmlwdFVSTDpffSl9Y2F0Y2godCl7bC5jb25zb2xlJiZsLmNvbnNvbGUuZXJyb3IodC5tZXNzYWdlKX12dD10fWVsc2UgdnQ9dH1yZXR1cm4gdnR9ZnVuY3Rpb24gYnQodCxlKXt0aGlzLmE9ZT09PUV0P3Q6IiJ9ZnVuY3Rpb24gd3QodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBidCYmdC5jb25zdHJ1Y3Rvcj09PWJ0P3QuYTooTygiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgVHJ1c3RlZFJlc291cmNlVXJsLCBnb3QgJyIrdCsiJyBvZiB0eXBlICIrcCh0KSksInR5cGVfZXJyb3I6VHJ1c3RlZFJlc291cmNlVXJsIil9ZnVuY3Rpb24gX3QodCxuKXt2YXIgZSxyPWR0KHQpO2lmKCFUdC50ZXN0KHIpKXRocm93IEVycm9yKCJJbnZhbGlkIFRydXN0ZWRSZXNvdXJjZVVybCBmb3JtYXQ6ICIrcik7cmV0dXJuIHQ9ci5yZXBsYWNlKEl0LGZ1bmN0aW9uKHQsZSl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGUpKXRocm93IEVycm9yKCdGb3VuZCBtYXJrZXIsICInK2UrJyIsIGluIGZvcm1hdCBzdHJpbmcsICInK3IrJyIsIGJ1dCBubyB2YWxpZCBsYWJlbCBtYXBwaW5nIGZvdW5kIGluIGFyZ3M6ICcrSlNPTi5zdHJpbmdpZnkobikpO3JldHVybih0PW5bZV0paW5zdGFuY2VvZiBwdD9kdCh0KTplbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHQpKX0pLGU9dCx0PW10KCksbmV3IGJ0KGU9dD90LmNyZWF0ZVNjcmlwdFVSTChlKTplLEV0KX1idC5wcm90b3R5cGUuc2E9ITAsYnQucHJvdG90eXBlLnJhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYS50b1N0cmluZygpfSxidC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iVHJ1c3RlZFJlc291cmNlVXJseyIrdGhpcy5hKyJ9In07dmFyIEl0PS8leyhcdyspfS9nLFR0PS9eKChodHRwczopP1wvXC9bMC05YS16LjpbXF0tXStcL3xcL1teL1xcXXxbXjovXFwlXStcL3xbXjovXFwlXSpbPyNdfGFib3V0OmJsYW5rIykvaSxFdD17fTtmdW5jdGlvbiBTdCh0LGUpe3RoaXMuYT1lPT09T3Q/dDoiIn1mdW5jdGlvbiBDdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFN0JiZ0LmNvbnN0cnVjdG9yPT09U3Q/dC5hOihPKCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBTYWZlVXJsLCBnb3QgJyIrdCsiJyBvZiB0eXBlICIrcCh0KSksInR5cGVfZXJyb3I6U2FmZVVybCIpfVN0LnByb3RvdHlwZS5zYT0hMCxTdC5wcm90b3R5cGUucmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hLnRvU3RyaW5nKCl9LFN0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJTYWZlVXJseyIrdGhpcy5hKyJ9In07dmFyIE50PS9eKD86YXVkaW9cLyg/OjNncHAyfDNncHB8YWFjfEwxNnxtaWRpfG1wM3xtcDR8bXBlZ3xvZ2F8b2dnfG9wdXN8eC1tNGF8eC1tYXRyb3NrYXx4LXdhdnx3YXZ8d2VibSl8Zm9udFwvXHcrfGltYWdlXC8oPzpibXB8Z2lmfGpwZWd8anBnfHBuZ3x0aWZmfHdlYnB8eC1pY29uKXx0ZXh0XC9jc3Z8dmlkZW9cLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtfHF1aWNrdGltZXx4LW1hdHJvc2thKSkoPzo7XHcrPSg/Olx3K3wiW1x3Oyw9IF0rIikpKiQvaSxBdD0vXmRhdGE6KC4qKTtiYXNlNjQsW2EtejAtOStcL10rPSokL2ksa3Q9L14oPzooPzpodHRwcz98bWFpbHRvfGZ0cCk6fFteOi8/I10qKD86Wy8/I118JCkpL2k7ZnVuY3Rpb24gUnQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBTdD90Oih0PSJvYmplY3QiPT10eXBlb2YgdCYmdC5zYT90LnJhKCk6U3RyaW5nKHQpLHQ9a3QudGVzdCh0KXx8KGU9KHQ9KHQ9U3RyaW5nKHQpKS5yZXBsYWNlKC8oJTBBfCUwRCkvZywiIikpLm1hdGNoKEF0KSkmJk50LnRlc3QoZVsxXSk/bmV3IFN0KHQsT3QpOm51bGwpO3ZhciBlfWZ1bmN0aW9uIFB0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgU3Q/dDoodD0ib2JqZWN0Ij09dHlwZW9mIHQmJnQuc2E/dC5yYSgpOlN0cmluZyh0KSxuZXcgU3QodD0ha3QudGVzdCh0KT8iYWJvdXQ6aW52YWxpZCN6Q2xvc3VyZXoiOnQsT3QpKX12YXIgT3Q9e30sRHQ9bmV3IFN0KCJhYm91dDppbnZhbGlkI3pDbG9zdXJleiIsT3QpO2Z1bmN0aW9uIHh0KHQsZSxuKXt0aGlzLmE9bj09PUx0P3Q6IiJ9eHQucHJvdG90eXBlLnNhPSEwLHh0LnByb3RvdHlwZS5yYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmEudG9TdHJpbmcoKX0seHQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIlNhZmVIdG1seyIrdGhpcy5hKyJ9In07dmFyIEx0PXt9O2Z1bmN0aW9uIE10KHQsZSxuLHIpe3JldHVybiB0PXQgaW5zdGFuY2VvZiBTdD90OlB0KHQpLGU9ZXx8bCxuPW4gaW5zdGFuY2VvZiBwdD9kdChuKTpufHwiIixlLm9wZW4oQ3QodCksbixyLHZvaWQgMCl9ZnVuY3Rpb24gRnQodCl7Zm9yKHZhciBlPXQuc3BsaXQoIiVzIiksbj0iIixyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyLmxlbmd0aCYmMTxlLmxlbmd0aDspbis9ZS5zaGlmdCgpK3Iuc2hpZnQoKTtyZXR1cm4gbitlLmpvaW4oIiVzIil9ZnVuY3Rpb24gVXQodCl7cmV0dXJuIG50LnRlc3QodCkmJigtMSE9KHQ9LTEhPSh0PS0xIT0odD0tMSE9KHQ9LTEhPSh0PS0xIT10LmluZGV4T2YoIiYiKT90LnJlcGxhY2UoWCwiJmFtcDsiKTp0KS5pbmRleE9mKCI8Iik/dC5yZXBsYWNlKEosIiZsdDsiKTp0KS5pbmRleE9mKCI+Iik/dC5yZXBsYWNlKCQsIiZndDsiKTp0KS5pbmRleE9mKCciJyk/dC5yZXBsYWNlKFosIiZxdW90OyIpOnQpLmluZGV4T2YoIiciKT90LnJlcGxhY2UodHQsIiYjMzk7Iik6dCkuaW5kZXhPZigiXDAiKSYmKHQ9dC5yZXBsYWNlKGV0LCImIzA7IikpKSx0fWZ1bmN0aW9uIGp0KHQpe3JldHVybiBqdFsiICJdKHQpLHR9anRbIiAiXT1zO3ZhciBxdCxWdD1zdCgiT3BlcmEiKSxCdD1zdCgiVHJpZGVudCIpfHxzdCgiTVNJRSIpLEt0PXN0KCJFZGdlIiksV3Q9S3R8fEJ0LEh0PXN0KCJHZWNrbyIpJiYhKHJ0KFEudG9Mb3dlckNhc2UoKSwid2Via2l0IikmJiFzdCgiRWRnZSIpKSYmIShzdCgiVHJpZGVudCIpfHxzdCgiTVNJRSIpKSYmIXN0KCJFZGdlIiksR3Q9cnQoUS50b0xvd2VyQ2FzZSgpLCJ3ZWJraXQiKSYmIXN0KCJFZGdlIik7ZnVuY3Rpb24genQoKXt2YXIgdD1sLmRvY3VtZW50O3JldHVybiB0P3QuZG9jdW1lbnRNb2RlOnZvaWQgMH10Ont2YXIgUXQ9IiIsWXQ9KFl0PVEsSHQ/L3J2OihbXlwpO10rKShcKXw7KS8uZXhlYyhZdCk6S3Q/L0VkZ2VcLyhbXGRcLl0rKS8uZXhlYyhZdCk6QnQ/L1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKFl0KTpHdD8vV2ViS2l0XC8oXFMrKS8uZXhlYyhZdCk6VnQ/Lyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoWXQpOnZvaWQgMCk7aWYoWXQmJihRdD1ZdD9ZdFsxXToiIiksQnQpe1l0PXp0KCk7aWYobnVsbCE9WXQmJll0PnBhcnNlRmxvYXQoUXQpKXtxdD1TdHJpbmcoWXQpO2JyZWFrIHR9fXF0PVF0fXZhciBYdD17fTtmdW5jdGlvbiBKdChhKXtyZXR1cm4gdD1hLGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPVkoU3RyaW5nKHF0KSkuc3BsaXQoIi4iKSxuPVkoU3RyaW5nKGEpKS5zcGxpdCgiLiIpLHI9TWF0aC5tYXgoZS5sZW5ndGgsbi5sZW5ndGgpLGk9MDswPT10JiZpPHI7aSsrKWZvcih2YXIgbz1lW2ldfHwiIixzPW5baV18fCIiO289LyhcZCopKFxEKikoLiopLy5leGVjKG8pfHxbIiIsIiIsIiIsIiJdLHM9LyhcZCopKFxEKikoLiopLy5leGVjKHMpfHxbIiIsIiIsIiIsIiJdLCgwIT1vWzBdLmxlbmd0aHx8MCE9c1swXS5sZW5ndGgpJiYodD1pdCgwPT1vWzFdLmxlbmd0aD8wOnBhcnNlSW50KG9bMV0sMTApLDA9PXNbMV0ubGVuZ3RoPzA6cGFyc2VJbnQoc1sxXSwxMCkpfHxpdCgwPT1vWzJdLmxlbmd0aCwwPT1zWzJdLmxlbmd0aCl8fGl0KG9bMl0sc1syXSksbz1vWzNdLHM9c1szXSwwPT10KTspO3JldHVybiAwPD10fSxuPVh0LE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHQpP25bdF06blt0XT1lKHQpO3ZhciB0LGUsbn12YXIgJHQ9bC5kb2N1bWVudCYmQnQmJih6dCgpfHxwYXJzZUludChxdCwxMCkpfHx2b2lkIDA7dHJ5e25ldyBzZWxmLk9mZnNjcmVlbkNhbnZhcygwLDApLmdldENvbnRleHQoIjJkIil9Y2F0Y2godCl7fXZhciBadD0hQnR8fDk8PU51bWJlcigkdCk7ZnVuY3Rpb24gdGUodCl7dmFyIGU9ZG9jdW1lbnQ7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2UuZ2V0RWxlbWVudEJ5SWQodCk6dH1mdW5jdGlvbiBlZShuLHQpe2F0KHQsZnVuY3Rpb24odCxlKXt0JiYib2JqZWN0Ij09dHlwZW9mIHQmJnQuc2EmJih0PXQucmEoKSksInN0eWxlIj09ZT9uLnN0eWxlLmNzc1RleHQ9dDoiY2xhc3MiPT1lP24uY2xhc3NOYW1lPXQ6ImZvciI9PWU/bi5odG1sRm9yPXQ6aWUuaGFzT3duUHJvcGVydHkoZSk/bi5zZXRBdHRyaWJ1dGUoaWVbZV0sdCk6MD09ZS5sYXN0SW5kZXhPZigiYXJpYS0iLDApfHwwPT1lLmxhc3RJbmRleE9mKCJkYXRhLSIsMCk/bi5zZXRBdHRyaWJ1dGUoZSx0KTpuW2VdPXR9KX12YXIgbmUscmUsaWU9e2NlbGxwYWRkaW5nOiJjZWxsUGFkZGluZyIsY2VsbHNwYWNpbmc6ImNlbGxTcGFjaW5nIixjb2xzcGFuOiJjb2xTcGFuIixmcmFtZWJvcmRlcjoiZnJhbWVCb3JkZXIiLGhlaWdodDoiaGVpZ2h0IixtYXhsZW5ndGg6Im1heExlbmd0aCIsbm9uY2U6Im5vbmNlIixyb2xlOiJyb2xlIixyb3dzcGFuOiJyb3dTcGFuIix0eXBlOiJ0eXBlIix1c2VtYXA6InVzZU1hcCIsdmFsaWduOiJ2QWxpZ24iLHdpZHRoOiJ3aWR0aCJ9O2Z1bmN0aW9uIG9lKCl7dmFyIHQsZT1hcmd1bWVudHMsbj1kb2N1bWVudCxyPVN0cmluZyhlWzBdKSxpPWVbMV07cmV0dXJuIVp0JiZpJiYoaS5uYW1lfHxpLnR5cGUpJiYocj1bIjwiLHJdLGkubmFtZSYmci5wdXNoKCcgbmFtZT0iJyxVdChpLm5hbWUpLCciJyksaS50eXBlJiYoci5wdXNoKCcgdHlwZT0iJyxVdChpLnR5cGUpLCciJyksbHQodD17fSxpKSxkZWxldGUgdC50eXBlLGk9dCksci5wdXNoKCI+Iikscj1yLmpvaW4oIiIpKSxyPXNlKG4sciksaSYmKCJzdHJpbmciPT10eXBlb2YgaT9yLmNsYXNzTmFtZT1pOkFycmF5LmlzQXJyYXkoaSk/ci5jbGFzc05hbWU9aS5qb2luKCIgIik6ZWUocixpKSksMjxlLmxlbmd0aCYmZnVuY3Rpb24oZSxuLHQpe2Z1bmN0aW9uIHIodCl7dCYmbi5hcHBlbmRDaGlsZCgic3RyaW5nIj09dHlwZW9mIHQ/ZS5jcmVhdGVUZXh0Tm9kZSh0KTp0KX1mb3IodmFyIGk9MjtpPHQubGVuZ3RoO2krKyl7dmFyIG89dFtpXTtpZighZChvKXx8ZyhvKSYmMDxvLm5vZGVUeXBlKXIobyk7ZWxzZXt0OntpZihvJiYibnVtYmVyIj09dHlwZW9mIG8ubGVuZ3RoKXtpZihnKG8pKXt2YXIgcz0iZnVuY3Rpb24iPT10eXBlb2Ygby5pdGVtfHwic3RyaW5nIj09dHlwZW9mIG8uaXRlbTticmVhayB0fWlmKHYobykpe3M9ImZ1bmN0aW9uIj09dHlwZW9mIG8uaXRlbTticmVhayB0fX1zPSExfWoocz96KG8pOm8scil9fX0obixyLGUpLHJ9ZnVuY3Rpb24gc2UodCxlKXtyZXR1cm4gZT1TdHJpbmcoZSksImFwcGxpY2F0aW9uL3hodG1sK3htbCI9PT10LmNvbnRlbnRUeXBlJiYoZT1lLnRvTG93ZXJDYXNlKCkpLHQuY3JlYXRlRWxlbWVudChlKX1mdW5jdGlvbiBhZSh0KXtsLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB0fSwwKX1mdW5jdGlvbiB1ZSh0LGUpe3JlfHxmdW5jdGlvbigpe3t2YXIgdDtyZT1sLlByb21pc2UmJmwuUHJvbWlzZS5yZXNvbHZlPyh0PWwuUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCksZnVuY3Rpb24oKXt0LnRoZW4obGUpfSk6ZnVuY3Rpb24oKXt2YXIgdD1sZTshdihsLnNldEltbWVkaWF0ZSl8fGwuV2luZG93JiZsLldpbmRvdy5wcm90b3R5cGUmJiFzdCgiRWRnZSIpJiZsLldpbmRvdy5wcm90b3R5cGUuc2V0SW1tZWRpYXRlPT1sLnNldEltbWVkaWF0ZT8obmU9bmV8fGZ1bmN0aW9uKCl7dmFyIHQ9bC5NZXNzYWdlQ2hhbm5lbDtpZih2b2lkIDA9PT0odD12b2lkIDA9PT10JiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LnBvc3RNZXNzYWdlJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciYmIXN0KCJQcmVzdG8iKT9mdW5jdGlvbigpe3ZhciB0PXNlKGRvY3VtZW50LCJJRlJBTUUiKTt0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0KTt2YXIgZT10LmNvbnRlbnRXaW5kb3c7KHQ9ZS5kb2N1bWVudCkub3BlbigpLHQuY2xvc2UoKTt2YXIgbj0iY2FsbEltbWVkaWF0ZSIrTWF0aC5yYW5kb20oKSxyPSJmaWxlOiI9PWUubG9jYXRpb24ucHJvdG9jb2w/IioiOmUubG9jYXRpb24ucHJvdG9jb2wrIi8vIitlLmxvY2F0aW9uLmhvc3Q7dD1tKGZ1bmN0aW9uKHQpeyIqIiE9ciYmdC5vcmlnaW4hPXJ8fHQuZGF0YSE9bnx8dGhpcy5wb3J0MS5vbm1lc3NhZ2UoKX0sdGhpcyksZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0LCExKSx0aGlzLnBvcnQxPXt9LHRoaXMucG9ydDI9e3Bvc3RNZXNzYWdlOmZ1bmN0aW9uKCl7ZS5wb3N0TWVzc2FnZShuLHIpfX19OnQpfHxzdCgiVHJpZGVudCIpfHxzdCgiTVNJRSIpKXJldHVybiBmdW5jdGlvbih0KXtsLnNldFRpbWVvdXQodCwwKX07dmFyIGU9bmV3IHQsbj17fSxyPW47cmV0dXJuIGUucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKCl7dmFyIHQ7dm9pZCAwIT09bi5uZXh0JiYodD0obj1uLm5leHQpLkdiLG4uR2I9bnVsbCx0KCkpfSxmdW5jdGlvbih0KXtyLm5leHQ9e0diOnR9LHI9ci5uZXh0LGUucG9ydDIucG9zdE1lc3NhZ2UoMCl9fSgpKSh0KTpsLnNldEltbWVkaWF0ZSh0KX19fSgpLGNlfHwocmUoKSxjZT0hMCksaGUuYWRkKHQsZSl9dmFyIGNlPSExLGhlPW5ldyBMO2Z1bmN0aW9uIGxlKCl7Zm9yKHZhciB0LGUsbjtuPWU9dm9pZCAwLG49bnVsbCwoZT1oZSkuYSYmKG49ZS5hLGUuYT1lLmEubmV4dCxlLmF8fChlLmI9bnVsbCksbi5uZXh0PW51bGwpLHQ9bjspe3RyeXt0LmEuY2FsbCh0LmIpfWNhdGNoKHQpe2FlKHQpfXgoTSx0KX1jZT0hMX1mdW5jdGlvbiBmZSh0LGUpe2lmKHRoaXMuYT1wZSx0aGlzLmk9dm9pZCAwLHRoaXMuZj10aGlzLmI9dGhpcy5jPW51bGwsdGhpcy5nPXRoaXMuaD0hMSx0IT1zKXRyeXt2YXIgbj10aGlzO3QuY2FsbChlLGZ1bmN0aW9uKHQpe1NlKG4sZGUsdCl9LGZ1bmN0aW9uKHQpe2lmKCEodCBpbnN0YW5jZW9mIE9lKSl0cnl7aWYodCBpbnN0YW5jZW9mIEVycm9yKXRocm93IHQ7dGhyb3cgRXJyb3IoIlByb21pc2UgcmVqZWN0ZWQuIil9Y2F0Y2godCl7fVNlKG4sdmUsdCl9KX1jYXRjaCh0KXtTZSh0aGlzLHZlLHQpfX12YXIgcGU9MCxkZT0yLHZlPTM7ZnVuY3Rpb24gZ2UoKXt0aGlzLm5leHQ9dGhpcy5mPXRoaXMuYj10aGlzLmc9dGhpcy5hPW51bGwsdGhpcy5jPSExfWdlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZj10aGlzLmI9dGhpcy5nPXRoaXMuYT1udWxsLHRoaXMuYz0hMX07dmFyIHllPW5ldyBEKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBnZX0sZnVuY3Rpb24odCl7dC5yZXNldCgpfSk7ZnVuY3Rpb24gbWUodCxlLG4pe3ZhciByPXllLmdldCgpO3JldHVybiByLmc9dCxyLmI9ZSxyLmY9bixyfWZ1bmN0aW9uIGJlKHQpe2lmKHQgaW5zdGFuY2VvZiBmZSlyZXR1cm4gdDt2YXIgZT1uZXcgZmUocyk7cmV0dXJuIFNlKGUsZGUsdCksZX1mdW5jdGlvbiB3ZShuKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHQsZSl7ZShuKX0pfWZ1bmN0aW9uIF9lKHQsZSxuKXtDZSh0LGUsbixudWxsKXx8dWUoYihlLHQpKX1mdW5jdGlvbiBJZShuKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHIpe3ZhciBpPW4ubGVuZ3RoLG89W107aWYoaSlmb3IodmFyIHQ9ZnVuY3Rpb24odCxlLG4pe2ktLSxvW3RdPWU/e1BiOiEwLHZhbHVlOm59OntQYjohMSxyZWFzb246bn0sMD09aSYmcihvKX0sZT0wO2U8bi5sZW5ndGg7ZSsrKV9lKG5bZV0sYih0LGUsITApLGIodCxlLCExKSk7ZWxzZSByKG8pfSl9ZnVuY3Rpb24gVGUodCxlKXt0LmJ8fHQuYSE9ZGUmJnQuYSE9dmV8fE5lKHQpLHQuZj90LmYubmV4dD1lOnQuYj1lLHQuZj1lfWZ1bmN0aW9uIEVlKHQsaSxvLHMpe3ZhciBlPW1lKG51bGwsbnVsbCxudWxsKTtyZXR1cm4gZS5hPW5ldyBmZShmdW5jdGlvbihuLHIpe2UuZz1pP2Z1bmN0aW9uKHQpe3RyeXt2YXIgZT1pLmNhbGwocyx0KTtuKGUpfWNhdGNoKHQpe3IodCl9fTpuLGUuYj1vP2Z1bmN0aW9uKHQpe3RyeXt2YXIgZT1vLmNhbGwocyx0KTt2b2lkIDA9PT1lJiZ0IGluc3RhbmNlb2YgT2U/cih0KTpuKGUpfWNhdGNoKHQpe3IodCl9fTpyfSksVGUoZS5hLmM9dCxlKSxlLmF9ZnVuY3Rpb24gU2UodCxlLG4pe3ZhciByLGk7dC5hPT1wZSYmKHQ9PT1uJiYoZT12ZSxuPW5ldyBUeXBlRXJyb3IoIlByb21pc2UgY2Fubm90IHJlc29sdmUgdG8gaXRzZWxmIikpLHQuYT0xLENlKG4sdC4kYyx0LmFkLHQpfHwodC5pPW4sdC5hPWUsdC5jPW51bGwsTmUodCksZSE9dmV8fG4gaW5zdGFuY2VvZiBPZXx8KGk9biwocj10KS5nPSEwLHVlKGZ1bmN0aW9uKCl7ci5nJiZQZS5jYWxsKG51bGwsaSl9KSkpKX1mdW5jdGlvbiBDZSh0LGUsbixyKXtpZih0IGluc3RhbmNlb2YgZmUpcmV0dXJuIFRlKHQsbWUoZXx8cyxufHxudWxsLHIpKSwxO2lmKGsodCkpcmV0dXJuIHQudGhlbihlLG4sciksMTtpZihnKHQpKXRyeXt2YXIgaT10LnRoZW47aWYodihpKSlyZXR1cm4gZnVuY3Rpb24odCxlLG4scixpKXtmdW5jdGlvbiBvKHQpe3N8fChzPSEwLHIuY2FsbChpLHQpKX12YXIgcz0hMTt0cnl7ZS5jYWxsKHQsZnVuY3Rpb24odCl7c3x8KHM9ITAsbi5jYWxsKGksdCkpfSxvKX1jYXRjaCh0KXtvKHQpfX0odCxpLGUsbixyKSwxfWNhdGNoKHQpe3JldHVybiBuLmNhbGwocix0KSwxfX1mdW5jdGlvbiBOZSh0KXt0Lmh8fCh0Lmg9ITAsdWUodC5nYyx0KSl9ZnVuY3Rpb24gQWUodCl7dmFyIGU9bnVsbDtyZXR1cm4gdC5iJiYoZT10LmIsdC5iPWUubmV4dCxlLm5leHQ9bnVsbCksdC5ifHwodC5mPW51bGwpLGV9ZnVuY3Rpb24ga2UodCxlLG4scil7aWYobj09dmUmJmUuYiYmIWUuYylmb3IoO3QmJnQuZzt0PXQuYyl0Lmc9ITE7aWYoZS5hKWUuYS5jPW51bGwsUmUoZSxuLHIpO2Vsc2UgdHJ5e2UuYz9lLmcuY2FsbChlLmYpOlJlKGUsbixyKX1jYXRjaCh0KXtQZS5jYWxsKG51bGwsdCl9eCh5ZSxlKX1mdW5jdGlvbiBSZSh0LGUsbil7ZT09ZGU/dC5nLmNhbGwodC5mLG4pOnQuYiYmdC5iLmNhbGwodC5mLG4pfWZlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gRWUodGhpcyx2KHQpP3Q6bnVsbCx2KGUpP2U6bnVsbCxuKX0sZmUucHJvdG90eXBlLiRnb29nX1RoZW5hYmxlPSEwLCh0PWZlLnByb3RvdHlwZSkub2E9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD1tZSh0LHQsZSkpLmM9ITAsVGUodGhpcyx0KSx0aGlzfSx0Lm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gRWUodGhpcyxudWxsLHQsZSl9LHQuY2FuY2VsPWZ1bmN0aW9uKHQpe3ZhciBlO3RoaXMuYT09cGUmJihlPW5ldyBPZSh0KSx1ZShmdW5jdGlvbigpeyFmdW5jdGlvbiB0KGUsbil7aWYoZS5hPT1wZSlpZihlLmMpe3ZhciByPWUuYztpZihyLmIpe2Zvcih2YXIgaT0wLG89bnVsbCxzPW51bGwsYT1yLmI7YSYmKGEuY3x8KGkrKywhKChvPWEuYT09ZT9hOm8pJiYxPGkpKSk7YT1hLm5leHQpb3x8KHM9YSk7byYmKHIuYT09cGUmJjE9PWk/dChyLG4pOihzPygoaT1zKS5uZXh0PT1yLmYmJihyLmY9aSksaS5uZXh0PWkubmV4dC5uZXh0KTpBZShyKSxrZShyLG8sdmUsbikpKX1lLmM9bnVsbH1lbHNlIFNlKGUsdmUsbil9KHRoaXMsZSl9LHRoaXMpKX0sdC4kYz1mdW5jdGlvbih0KXt0aGlzLmE9cGUsU2UodGhpcyxkZSx0KX0sdC5hZD1mdW5jdGlvbih0KXt0aGlzLmE9cGUsU2UodGhpcyx2ZSx0KX0sdC5nYz1mdW5jdGlvbigpe2Zvcih2YXIgdDt0PUFlKHRoaXMpOylrZSh0aGlzLHQsdGhpcy5hLHRoaXMuaSk7dGhpcy5oPSExfTt2YXIgUGU9YWU7ZnVuY3Rpb24gT2UodCl7Ui5jYWxsKHRoaXMsdCl9ZnVuY3Rpb24gRGUoKXt0aGlzLnhhPXRoaXMueGEsdGhpcy5wYT10aGlzLnBhfXcoT2UsUik7dmFyIHhlPTA7ZnVuY3Rpb24gTGUodCl7dC54YXx8KHQueGE9ITAsdC5EYSgpLDA9PXhlKXx8KHQ9dCxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmdFtuXXx8KHRbbl09KytyKSl9RGUucHJvdG90eXBlLnhhPSEoT2UucHJvdG90eXBlLm5hbWU9ImNhbmNlbCIpLERlLnByb3RvdHlwZS5EYT1mdW5jdGlvbigpe2lmKHRoaXMucGEpZm9yKDt0aGlzLnBhLmxlbmd0aDspdGhpcy5wYS5zaGlmdCgpKCl9O3ZhciBNZT1PYmplY3QuZnJlZXplfHxmdW5jdGlvbih0KXtyZXR1cm4gdH0sRmU9IUJ0fHw5PD1OdW1iZXIoJHQpLFVlPUJ0JiYhSnQoIjkiKSxqZT1mdW5jdGlvbigpe2lmKCFsLmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIHQ9ITEsZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt0PSEwfX0pO3RyeXtsLmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLHMsZSksbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixzLGUpfWNhdGNoKHQpe31yZXR1cm4gdH0oKTtmdW5jdGlvbiBxZSh0LGUpe3RoaXMudHlwZT10LHRoaXMuYj10aGlzLnRhcmdldD1lLHRoaXMuZGVmYXVsdFByZXZlbnRlZD0hMX1mdW5jdGlvbiBWZSh0LGUpe2lmKHFlLmNhbGwodGhpcyx0P3QudHlwZToiIiksdGhpcy5yZWxhdGVkVGFyZ2V0PXRoaXMuYj10aGlzLnRhcmdldD1udWxsLHRoaXMuYnV0dG9uPXRoaXMuc2NyZWVuWT10aGlzLnNjcmVlblg9dGhpcy5jbGllbnRZPXRoaXMuY2xpZW50WD0wLHRoaXMua2V5PSIiLHRoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT0hMSx0aGlzLnBvaW50ZXJJZD0wLHRoaXMucG9pbnRlclR5cGU9IiIsdGhpcy5hPW51bGwsdCl7dmFyIG49dGhpcy50eXBlPXQudHlwZSxyPXQuY2hhbmdlZFRvdWNoZXMmJnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoP3QuY2hhbmdlZFRvdWNoZXNbMF06bnVsbDtpZih0aGlzLnRhcmdldD10LnRhcmdldHx8dC5zcmNFbGVtZW50LHRoaXMuYj1lLGU9dC5yZWxhdGVkVGFyZ2V0KXtpZihIdCl7dDp7dHJ5e2p0KGUubm9kZU5hbWUpO3ZhciBpPSEwO2JyZWFrIHR9Y2F0Y2godCl7fWk9ITF9aXx8KGU9bnVsbCl9fWVsc2UibW91c2VvdmVyIj09bj9lPXQuZnJvbUVsZW1lbnQ6Im1vdXNlb3V0Ij09biYmKGU9dC50b0VsZW1lbnQpO3RoaXMucmVsYXRlZFRhcmdldD1lLHI/KHRoaXMuY2xpZW50WD12b2lkIDAhPT1yLmNsaWVudFg/ci5jbGllbnRYOnIucGFnZVgsdGhpcy5jbGllbnRZPXZvaWQgMCE9PXIuY2xpZW50WT9yLmNsaWVudFk6ci5wYWdlWSx0aGlzLnNjcmVlblg9ci5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1yLnNjcmVlbll8fDApOih0aGlzLmNsaWVudFg9dm9pZCAwIT09dC5jbGllbnRYP3QuY2xpZW50WDp0LnBhZ2VYLHRoaXMuY2xpZW50WT12b2lkIDAhPT10LmNsaWVudFk/dC5jbGllbnRZOnQucGFnZVksdGhpcy5zY3JlZW5YPXQuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9dC5zY3JlZW5ZfHwwKSx0aGlzLmJ1dHRvbj10LmJ1dHRvbix0aGlzLmtleT10LmtleXx8IiIsdGhpcy5jdHJsS2V5PXQuY3RybEtleSx0aGlzLmFsdEtleT10LmFsdEtleSx0aGlzLnNoaWZ0S2V5PXQuc2hpZnRLZXksdGhpcy5tZXRhS2V5PXQubWV0YUtleSx0aGlzLnBvaW50ZXJJZD10LnBvaW50ZXJJZHx8MCx0aGlzLnBvaW50ZXJUeXBlPSJzdHJpbmciPT10eXBlb2YgdC5wb2ludGVyVHlwZT90LnBvaW50ZXJUeXBlOkJlW3QucG9pbnRlclR5cGVdfHwiIiwodGhpcy5hPXQpLmRlZmF1bHRQcmV2ZW50ZWQmJnRoaXMucHJldmVudERlZmF1bHQoKX19cWUucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwfSx3KFZlLHFlKTt2YXIgQmU9TWUoezI6InRvdWNoIiwzOiJwZW4iLDQ6Im1vdXNlIn0pO1ZlLnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe1ZlLmFiLnByZXZlbnREZWZhdWx0LmNhbGwodGhpcyk7dmFyIHQ9dGhpcy5hO2lmKHQucHJldmVudERlZmF1bHQpdC5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgaWYodC5yZXR1cm5WYWx1ZT0hMSxVZSl0cnl7KHQuY3RybEtleXx8MTEyPD10LmtleUNvZGUmJnQua2V5Q29kZTw9MTIzKSYmKHQua2V5Q29kZT0tMSl9Y2F0Y2godCl7fX0sVmUucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfTt2YXIgS2U9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKygxZTYqTWF0aC5yYW5kb20oKXwwKSxXZT0wO2Z1bmN0aW9uIEhlKHQsZSxuLHIsaSl7dGhpcy5saXN0ZW5lcj10LHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz1lLHRoaXMudHlwZT1uLHRoaXMuY2FwdHVyZT0hIXIsdGhpcy5WYT1pLHRoaXMua2V5PSsrV2UsdGhpcy52YT10aGlzLlBhPSExfWZ1bmN0aW9uIEdlKHQpe3QudmE9ITAsdC5saXN0ZW5lcj1udWxsLHQucHJveHk9bnVsbCx0LnNyYz1udWxsLHQuVmE9bnVsbH1mdW5jdGlvbiB6ZSh0KXt0aGlzLnNyYz10LHRoaXMuYT17fSx0aGlzLmI9MH1mdW5jdGlvbiBRZSh0LGUpe3ZhciBuPWUudHlwZTtuIGluIHQuYSYmVyh0LmFbbl0sZSkmJihHZShlKSwwPT10LmFbbl0ubGVuZ3RoJiYoZGVsZXRlIHQuYVtuXSx0LmItLSkpfWZ1bmN0aW9uIFllKHQsZSxuLHIpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgbz10W2ldO2lmKCFvLnZhJiZvLmxpc3RlbmVyPT1lJiZvLmNhcHR1cmU9PSEhbiYmby5WYT09cilyZXR1cm4gaX1yZXR1cm4tMX16ZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG89dC50b1N0cmluZygpOyh0PXRoaXMuYVtvXSl8fCh0PXRoaXMuYVtvXT1bXSx0aGlzLmIrKyk7dmFyIHM9WWUodCxlLHIsaSk7cmV0dXJuLTE8cz8oZT10W3NdLG58fChlLlBhPSExKSk6KChlPW5ldyBIZShlLHRoaXMuc3JjLG8sISFyLGkpKS5QYT1uLHQucHVzaChlKSksZX07dmFyIFhlPSJjbG9zdXJlX2xtXyIrKDFlNipNYXRoLnJhbmRvbSgpfDApLEplPXt9O2Z1bmN0aW9uICRlKHQsZSxuLHIsaSl7aWYociYmci5vbmNlKXRuKHQsZSxuLHIsaSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgbz0wO288ZS5sZW5ndGg7bysrKSRlKHQsZVtvXSxuLHIsaSk7ZWxzZSBuPWhuKG4pLHQmJnRbS2VdP2ZuKHQsZSxuLGcocik/ISFyLmNhcHR1cmU6ISFyLGkpOlplKHQsZSxuLCExLHIsaSl9ZnVuY3Rpb24gWmUodCxlLG4scixpLG8pe2lmKCFlKXRocm93IEVycm9yKCJJbnZhbGlkIGV2ZW50IHR5cGUiKTt2YXIgcyxhLHU9ZyhpKT8hIWkuY2FwdHVyZTohIWksYz11bih0KTtpZihjfHwodFtYZV09Yz1uZXcgemUodCkpLCEobj1jLmFkZChlLG4scix1LG8pKS5wcm94eSlpZihzPWFuLHI9YT1GZT9mdW5jdGlvbih0KXtyZXR1cm4gcy5jYWxsKGEuc3JjLGEubGlzdGVuZXIsdCl9OmZ1bmN0aW9uKHQpe2lmKCEodD1zLmNhbGwoYS5zcmMsYS5saXN0ZW5lcix0KSkpcmV0dXJuIHR9LChuLnByb3h5PXIpLnNyYz10LHIubGlzdGVuZXI9bix0LmFkZEV2ZW50TGlzdGVuZXIpdm9pZCAwPT09KGk9IWplP3U6aSkmJihpPSExKSx0LmFkZEV2ZW50TGlzdGVuZXIoZS50b1N0cmluZygpLHIsaSk7ZWxzZSBpZih0LmF0dGFjaEV2ZW50KXQuYXR0YWNoRXZlbnQocm4oZS50b1N0cmluZygpKSxyKTtlbHNle2lmKCF0LmFkZExpc3RlbmVyfHwhdC5yZW1vdmVMaXN0ZW5lcil0aHJvdyBFcnJvcigiYWRkRXZlbnRMaXN0ZW5lciBhbmQgYXR0YWNoRXZlbnQgYXJlIHVuYXZhaWxhYmxlLiIpO3QuYWRkTGlzdGVuZXIocil9fWZ1bmN0aW9uIHRuKHQsZSxuLHIsaSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKyl0bih0LGVbb10sbixyLGkpO2Vsc2Ugbj1obihuKSx0JiZ0W0tlXT9wbih0LGUsbixnKHIpPyEhci5jYXB0dXJlOiEhcixpKTpaZSh0LGUsbiwhMCxyLGkpfWZ1bmN0aW9uIGVuKHQsZSxuLHIsaSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKyllbih0LGVbb10sbixyLGkpO2Vsc2Ugcj1nKHIpPyEhci5jYXB0dXJlOiEhcixuPWhuKG4pLHQmJnRbS2VdPyh0PXQudiwoZT1TdHJpbmcoZSkudG9TdHJpbmcoKSlpbiB0LmEmJigtMTwobj1ZZShvPXQuYVtlXSxuLHIsaSkpJiYoR2Uob1tuXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKG8sbiwxKSwwPT1vLmxlbmd0aCYmKGRlbGV0ZSB0LmFbZV0sdC5iLS0pKSkpOih0PXQmJnVuKHQpKSYmKGU9dC5hW2UudG9TdHJpbmcoKV0sKG49KHQ9LTEpPCh0PWU/WWUoZSxuLHIsaSk6dCk/ZVt0XTpudWxsKSYmbm4obikpfWZ1bmN0aW9uIG5uKHQpe3ZhciBlLG4scjsibnVtYmVyIiE9dHlwZW9mIHQmJnQmJiF0LnZhJiYoKGU9dC5zcmMpJiZlW0tlXT9RZShlLnYsdCk6KG49dC50eXBlLHI9dC5wcm94eSxlLnJlbW92ZUV2ZW50TGlzdGVuZXI/ZS5yZW1vdmVFdmVudExpc3RlbmVyKG4scix0LmNhcHR1cmUpOmUuZGV0YWNoRXZlbnQ/ZS5kZXRhY2hFdmVudChybihuKSxyKTplLmFkZExpc3RlbmVyJiZlLnJlbW92ZUxpc3RlbmVyJiZlLnJlbW92ZUxpc3RlbmVyKHIpLChuPXVuKGUpKT8oUWUobix0KSwwPT1uLmImJihuLnNyYz1udWxsLGVbWGVdPW51bGwpKTpHZSh0KSkpfWZ1bmN0aW9uIHJuKHQpe3JldHVybiB0IGluIEplP0plW3RdOkplW3RdPSJvbiIrdH1mdW5jdGlvbiBvbih0LGUsbixyKXt2YXIgaT0hMDtpZigodD11bih0KSkmJihlPXQuYVtlLnRvU3RyaW5nKCldKSlmb3IoZT1lLmNvbmNhdCgpLHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG89ZVt0XTtvJiZvLmNhcHR1cmU9PW4mJiFvLnZhJiYobz1zbihvLHIpLGk9aSYmITEhPT1vKX1yZXR1cm4gaX1mdW5jdGlvbiBzbih0LGUpe3ZhciBuPXQubGlzdGVuZXIscj10LlZhfHx0LnNyYztyZXR1cm4gdC5QYSYmbm4odCksbi5jYWxsKHIsZSl9ZnVuY3Rpb24gYW4odCxlKXtpZih0LnZhKXJldHVybiEwO2lmKEZlKXJldHVybiBzbih0LG5ldyBWZShlLHRoaXMpKTtpZighZSl0OntlPVsid2luZG93IiwiZXZlbnQiXTtmb3IodmFyIG49bCxyPTA7cjxlLmxlbmd0aDtyKyspaWYobnVsbD09KG49bltlW3JdXSkpe2U9bnVsbDticmVhayB0fWU9bn1pZihlPW5ldyBWZShyPWUsdGhpcyksbj0hMCwhKHIua2V5Q29kZTwwfHxudWxsIT1yLnJldHVyblZhbHVlKSl7dDp7dmFyIGk9ITE7aWYoMD09ci5rZXlDb2RlKXRyeXtyLmtleUNvZGU9LTE7YnJlYWsgdH1jYXRjaCh0KXtpPSEwfSFpJiZudWxsIT1yLnJldHVyblZhbHVlfHwoci5yZXR1cm5WYWx1ZT0hMCl9Zm9yKHI9W10saT1lLmI7aTtpPWkucGFyZW50Tm9kZSlyLnB1c2goaSk7Zm9yKHQ9dC50eXBlLGk9ci5sZW5ndGgtMTswPD1pO2ktLSl7ZS5iPXJbaV07dmFyIG89b24ocltpXSx0LCEwLGUpLG49biYmb31mb3IoaT0wO2k8ci5sZW5ndGg7aSsrKWUuYj1yW2ldLG89b24ocltpXSx0LCExLGUpLG49biYmb31yZXR1cm4gbn1mdW5jdGlvbiB1bih0KXtyZXR1cm4odD10W1hlXSlpbnN0YW5jZW9mIHplP3Q6bnVsbH12YXIgY249Il9fY2xvc3VyZV9ldmVudHNfZm5fIisoMWU5Kk1hdGgucmFuZG9tKCk+Pj4wKTtmdW5jdGlvbiBobihlKXtyZXR1cm4gdihlKT9lOihlW2NuXXx8KGVbY25dPWZ1bmN0aW9uKHQpe3JldHVybiBlLmhhbmRsZUV2ZW50KHQpfSksZVtjbl0pfWZ1bmN0aW9uIGxuKCl7RGUuY2FsbCh0aGlzKSx0aGlzLnY9bmV3IHplKHRoaXMpLCh0aGlzLmFjPXRoaXMpLmdiPW51bGx9ZnVuY3Rpb24gZm4odCxlLG4scixpKXt0LnYuYWRkKFN0cmluZyhlKSxuLCExLHIsaSl9ZnVuY3Rpb24gcG4odCxlLG4scixpKXt0LnYuYWRkKFN0cmluZyhlKSxuLCEwLHIsaSl9ZnVuY3Rpb24gZG4odCxlLG4scil7aWYoIShlPXQudi5hW1N0cmluZyhlKV0pKXJldHVybiEwO2U9ZS5jb25jYXQoKTtmb3IodmFyIGk9ITAsbz0wO288ZS5sZW5ndGg7KytvKXt2YXIgcyxhLHU9ZVtvXTt1JiYhdS52YSYmdS5jYXB0dXJlPT1uJiYocz11Lmxpc3RlbmVyLGE9dS5WYXx8dS5zcmMsdS5QYSYmUWUodC52LHUpLGk9ITEhPT1zLmNhbGwoYSxyKSYmaSl9cmV0dXJuIGkmJiFyLmRlZmF1bHRQcmV2ZW50ZWR9ZnVuY3Rpb24gdm4odCxlLG4pe2lmKHYodCkpbiYmKHQ9bSh0LG4pKTtlbHNle2lmKCF0fHwiZnVuY3Rpb24iIT10eXBlb2YgdC5oYW5kbGVFdmVudCl0aHJvdyBFcnJvcigiSW52YWxpZCBsaXN0ZW5lciBhcmd1bWVudCIpO3Q9bSh0LmhhbmRsZUV2ZW50LHQpfXJldHVybiAyMTQ3NDgzNjQ3PE51bWJlcihlKT8tMTpsLnNldFRpbWVvdXQodCxlfHwwKX1mdW5jdGlvbiBnbihuKXt2YXIgcj1udWxsO3JldHVybiBuZXcgZmUoZnVuY3Rpb24odCxlKXstMT09KHI9dm4oZnVuY3Rpb24oKXt0KHZvaWQgMCl9LG4pKSYmZShFcnJvcigiRmFpbGVkIHRvIHNjaGVkdWxlIHRpbWVyLiIpKX0pLm8oZnVuY3Rpb24odCl7dGhyb3cgbC5jbGVhclRpbWVvdXQociksdH0pfWZ1bmN0aW9uIHluKHQpe2lmKHQuVyYmImZ1bmN0aW9uIj09dHlwZW9mIHQuVylyZXR1cm4gdC5XKCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0LnNwbGl0KCIiKTtpZihkKHQpKXtmb3IodmFyIGU9W10sbj10Lmxlbmd0aCxyPTA7cjxuO3IrKyllLnB1c2godFtyXSk7cmV0dXJuIGV9Zm9yKHIgaW4gZT1bXSxuPTAsdCllW24rK109dFtyXTtyZXR1cm4gZX1mdW5jdGlvbiBtbih0KXtpZih0LlkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LlkpcmV0dXJuIHQuWSgpO2lmKCF0Lld8fCJmdW5jdGlvbiIhPXR5cGVvZiB0Llcpe2lmKGQodCl8fCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9W107dD10Lmxlbmd0aDtmb3IodmFyIG49MDtuPHQ7bisrKWUucHVzaChuKTtyZXR1cm4gZX1mb3IodmFyIHIgaW4gZT1bXSxuPTAsdCllW24rK109cjtyZXR1cm4gZX19ZnVuY3Rpb24gYm4odCxlKXt0aGlzLmI9e30sdGhpcy5hPVtdLHRoaXMuYz0wO3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg7aWYoMTxuKXtpZihuJTIpdGhyb3cgRXJyb3IoIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIik7Zm9yKHZhciByPTA7cjxuO3IrPTIpdGhpcy5zZXQoYXJndW1lbnRzW3JdLGFyZ3VtZW50c1tyKzFdKX1lbHNlIGlmKHQpaWYodCBpbnN0YW5jZW9mIGJuKWZvcihuPXQuWSgpLHI9MDtyPG4ubGVuZ3RoO3IrKyl0aGlzLnNldChuW3JdLHQuZ2V0KG5bcl0pKTtlbHNlIGZvcihyIGluIHQpdGhpcy5zZXQocix0W3JdKX1mdW5jdGlvbiB3bih0KXtpZih0LmMhPXQuYS5sZW5ndGgpe2Zvcih2YXIgZT0wLG49MDtlPHQuYS5sZW5ndGg7KXt2YXIgcj10LmFbZV07X24odC5iLHIpJiYodC5hW24rK109ciksZSsrfXQuYS5sZW5ndGg9bn1pZih0LmMhPXQuYS5sZW5ndGgpe2Zvcih2YXIgaT17fSxuPWU9MDtlPHQuYS5sZW5ndGg7KV9uKGkscj10LmFbZV0pfHwoaVt0LmFbbisrXT1yXT0xKSxlKys7dC5hLmxlbmd0aD1ufX1mdW5jdGlvbiBfbih0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX13KGxuLERlKSxsbi5wcm90b3R5cGVbS2VdPSEwLGxuLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuLHIpeyRlKHRoaXMsdCxlLG4scil9LGxuLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuLHIpe2VuKHRoaXMsdCxlLG4scil9LGxuLnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKHQpe3ZhciBlO2lmKG49dGhpcy5nYilmb3IoZT1bXTtuO249bi5nYillLnB1c2gobik7dmFyIG49dGhpcy5hYyxyPXQudHlwZXx8dDtpZigic3RyaW5nIj09dHlwZW9mIHQ/dD1uZXcgcWUodCxuKTp0IGluc3RhbmNlb2YgcWU/dC50YXJnZXQ9dC50YXJnZXR8fG46KHM9dCxsdCh0PW5ldyBxZShyLG4pLHMpKSxzPSEwLGUpZm9yKHZhciBpPWUubGVuZ3RoLTE7MDw9aTtpLS0pdmFyIG89dC5iPWVbaV0scz1kbihvLHIsITAsdCkmJnM7aWYocz1kbihvPXQuYj1uLHIsITAsdCkmJnMscz1kbihvLHIsITEsdCkmJnMsZSlmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKXM9ZG4obz10LmI9ZVtpXSxyLCExLHQpJiZzO3JldHVybiBzfSxsbi5wcm90b3R5cGUuRGE9ZnVuY3Rpb24oKXtpZihsbi5hYi5EYS5jYWxsKHRoaXMpLHRoaXMudil7dmFyIHQsZT10aGlzLnY7Zm9yKHQgaW4gZS5hKXtmb3IodmFyIG49ZS5hW3RdLHI9MDtyPG4ubGVuZ3RoO3IrKylHZShuW3JdKTtkZWxldGUgZS5hW3RdLGUuYi0tfX10aGlzLmdiPW51bGx9LCh0PWJuLnByb3RvdHlwZSkuVz1mdW5jdGlvbigpe3duKHRoaXMpO2Zvcih2YXIgdD1bXSxlPTA7ZTx0aGlzLmEubGVuZ3RoO2UrKyl0LnB1c2godGhpcy5iW3RoaXMuYVtlXV0pO3JldHVybiB0fSx0Llk9ZnVuY3Rpb24oKXtyZXR1cm4gd24odGhpcyksdGhpcy5hLmNvbmNhdCgpfSx0LmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5iPXt9LHRoaXMuYz10aGlzLmEubGVuZ3RoPTB9LHQuZ2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9uKHRoaXMuYix0KT90aGlzLmJbdF06ZX0sdC5zZXQ9ZnVuY3Rpb24odCxlKXtfbih0aGlzLmIsdCl8fCh0aGlzLmMrKyx0aGlzLmEucHVzaCh0KSksdGhpcy5iW3RdPWV9LHQuZm9yRWFjaD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLlkoKSxyPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBpPW5bcl0sbz10aGlzLmdldChpKTt0LmNhbGwoZSxvLGksdGhpcyl9fTt2YXIgSW49L14oPzooW146Lz8jLl0rKTopPyg/OlwvXC8oPzooW15cXC8/I10qKUApPyhbXlxcLz8jXSo/KSg/OjooWzAtOV0rKSk/KD89W1xcLz8jXXwkKSk/KFtePyNdKyk/KD86XD8oW14jXSopKT8oPzojKFtcc1xTXSopKT8kLztmdW5jdGlvbiBUbih0LGUpe3ZhciBuO3RoaXMuYT10aGlzLmw9dGhpcy5jPSIiLHRoaXMuZz1udWxsLHRoaXMuaD10aGlzLmY9IiIsdGhpcy5pPSExLHQgaW5zdGFuY2VvZiBUbj8odGhpcy5pPXZvaWQgMCE9PWU/ZTp0LmksRW4odGhpcyx0LmMpLHRoaXMubD10LmwsdGhpcy5hPXQuYSxTbih0aGlzLHQuZyksdGhpcy5mPXQuZixDbih0aGlzLEhuKHQuYikpLHRoaXMuaD10LmgpOnQmJihuPVN0cmluZyh0KS5tYXRjaChJbikpPyh0aGlzLmk9ISFlLEVuKHRoaXMsblsxXXx8IiIsITApLHRoaXMubD1QbihuWzJdfHwiIiksdGhpcy5hPVBuKG5bM118fCIiLCEwKSxTbih0aGlzLG5bNF0pLHRoaXMuZj1QbihuWzVdfHwiIiwhMCksQ24odGhpcyxuWzZdfHwiIiwhMCksdGhpcy5oPVBuKG5bN118fCIiKSk6KHRoaXMuaT0hIWUsdGhpcy5iPW5ldyBqbihudWxsLHRoaXMuaSkpfWZ1bmN0aW9uIEVuKHQsZSxuKXt0LmM9bj9QbihlLCEwKTplLHQuYyYmKHQuYz10LmMucmVwbGFjZSgvOiQvLCIiKSl9ZnVuY3Rpb24gU24odCxlKXtpZihlKXtpZihlPU51bWJlcihlKSxpc05hTihlKXx8ZTwwKXRocm93IEVycm9yKCJCYWQgcG9ydCBudW1iZXIgIitlKTt0Lmc9ZX1lbHNlIHQuZz1udWxsfWZ1bmN0aW9uIENuKHQsZSxuKXt2YXIgcixpO2UgaW5zdGFuY2VvZiBqbj8odC5iPWUscj10LmIsKGk9dC5pKSYmIXIuZiYmKHFuKHIpLHIuYz1udWxsLHIuYS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS50b0xvd2VyQ2FzZSgpO2UhPW4mJihCbih0aGlzLGUpLFduKHRoaXMsbix0KSl9LHIpKSxyLmY9aSk6KG58fChlPU9uKGUsRm4pKSx0LmI9bmV3IGpuKGUsdC5pKSl9ZnVuY3Rpb24gTm4odCxlLG4pe3QuYi5zZXQoZSxuKX1mdW5jdGlvbiBBbih0LGUpe3JldHVybiB0LmIuZ2V0KGUpfWZ1bmN0aW9uIGtuKHQpe3JldHVybiB0IGluc3RhbmNlb2YgVG4/bmV3IFRuKHQpOm5ldyBUbih0LHZvaWQgMCl9ZnVuY3Rpb24gUm4odCxlLG4scil7dmFyIGk9bmV3IFRuKG51bGwsdm9pZCAwKTtyZXR1cm4gdCYmRW4oaSx0KSxlJiYoaS5hPWUpLG4mJlNuKGksbiksciYmKGkuZj1yKSxpfWZ1bmN0aW9uIFBuKHQsZSl7cmV0dXJuIHQ/ZT9kZWNvZGVVUkkodC5yZXBsYWNlKC8lMjUvZywiJTI1MjUiKSk6ZGVjb2RlVVJJQ29tcG9uZW50KHQpOiIifWZ1bmN0aW9uIE9uKHQsZSxuKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/KHQ9ZW5jb2RlVVJJKHQpLnJlcGxhY2UoZSxEbiksdD1uP3QucmVwbGFjZSgvJTI1KFswLTlhLWZBLUZdezJ9KS9nLCIlJDEiKTp0KTpudWxsfWZ1bmN0aW9uIERuKHQpe3JldHVybiIlIisoKHQ9dC5jaGFyQ29kZUF0KDApKT4+NCYxNSkudG9TdHJpbmcoMTYpKygxNSZ0KS50b1N0cmluZygxNil9VG4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9W10sZT10aGlzLmM7ZSYmdC5wdXNoKE9uKGUseG4sITApLCI6Iik7dmFyIG49dGhpcy5hO3JldHVybiFuJiYiZmlsZSIhPWV8fCh0LnB1c2goIi8vIiksKGU9dGhpcy5sKSYmdC5wdXNoKE9uKGUseG4sITApLCJAIiksdC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcobikpLnJlcGxhY2UoLyUyNShbMC05YS1mQS1GXXsyfSkvZywiJSQxIikpLG51bGwhPShuPXRoaXMuZykmJnQucHVzaCgiOiIsU3RyaW5nKG4pKSksKG49dGhpcy5mKSYmKHRoaXMuYSYmIi8iIT1uLmNoYXJBdCgwKSYmdC5wdXNoKCIvIiksdC5wdXNoKE9uKG4sIi8iPT1uLmNoYXJBdCgwKT9NbjpMbiwhMCkpKSwobj10aGlzLmIudG9TdHJpbmcoKSkmJnQucHVzaCgiPyIsbiksKG49dGhpcy5oKSYmdC5wdXNoKCIjIixPbihuLFVuKSksdC5qb2luKCIiKX0sVG4ucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFRuKHRoaXMpLG49ISF0LmM7bj9FbihlLHQuYyk6bj0hIXQubCxuP2UubD10Lmw6bj0hIXQuYSxuP2UuYT10LmE6bj1udWxsIT10Lmc7dmFyIHI9dC5mO2lmKG4pU24oZSx0LmcpO2Vsc2UgaWYobj0hIXQuZilpZigiLyIhPXIuY2hhckF0KDApJiYodGhpcy5hJiYhdGhpcy5mP3I9Ii8iK3I6LTEhPShpPWUuZi5sYXN0SW5kZXhPZigiLyIpKSYmKHI9ZS5mLnN1YnN0cigwLGkrMSkrcikpLCIuLiI9PShpPXIpfHwiLiI9PWkpcj0iIjtlbHNlIGlmKHJ0KGksIi4vIil8fHJ0KGksIi8uIikpe2Zvcih2YXIgcj0wPT1pLmxhc3RJbmRleE9mKCIvIiwwKSxpPWkuc3BsaXQoIi8iKSxvPVtdLHM9MDtzPGkubGVuZ3RoOyl7dmFyIGE9aVtzKytdOyIuIj09YT9yJiZzPT1pLmxlbmd0aCYmby5wdXNoKCIiKToiLi4iPT1hPygoMTxvLmxlbmd0aHx8MT09by5sZW5ndGgmJiIiIT1vWzBdKSYmby5wb3AoKSxyJiZzPT1pLmxlbmd0aCYmby5wdXNoKCIiKSk6KG8ucHVzaChhKSxyPSEwKX1yPW8uam9pbigiLyIpfWVsc2Ugcj1pO3JldHVybiBuP2UuZj1yOm49IiIhPT10LmIudG9TdHJpbmcoKSxuP0NuKGUsSG4odC5iKSk6bj0hIXQuaCxuJiYoZS5oPXQuaCksZX07dmFyIHhuPS9bI1wvXD9AXS9nLExuPS9bI1w/Ol0vZyxNbj0vWyNcP10vZyxGbj0vWyNcP0BdL2csVW49LyMvZztmdW5jdGlvbiBqbih0LGUpe3RoaXMuYj10aGlzLmE9bnVsbCx0aGlzLmM9dHx8bnVsbCx0aGlzLmY9ISFlfWZ1bmN0aW9uIHFuKG4pe24uYXx8KG4uYT1uZXcgYm4sbi5iPTAsbi5jJiZmdW5jdGlvbih0LGUpe2lmKHQpe3Q9dC5zcGxpdCgiJiIpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcixpPXRbbl0uaW5kZXhPZigiPSIpLG89bnVsbDswPD1pPyhyPXRbbl0uc3Vic3RyaW5nKDAsaSksbz10W25dLnN1YnN0cmluZyhpKzEpKTpyPXRbbl0sZShyLG8/ZGVjb2RlVVJJQ29tcG9uZW50KG8ucmVwbGFjZSgvXCsvZywiICIpKToiIil9fX0obi5jLGZ1bmN0aW9uKHQsZSl7bi5hZGQoZGVjb2RlVVJJQ29tcG9uZW50KHQucmVwbGFjZSgvXCsvZywiICIpKSxlKX0pKX1mdW5jdGlvbiBWbih0KXt2YXIgZT1tbih0KTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKCJLZXlzIGFyZSB1bmRlZmluZWQiKTt2YXIgbj1uZXcgam4obnVsbCx2b2lkIDApO3Q9eW4odCk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWVbcl0sbz10W3JdO0FycmF5LmlzQXJyYXkobyk/V24obixpLG8pOm4uYWRkKGksbyl9cmV0dXJuIG59ZnVuY3Rpb24gQm4odCxlKXtxbih0KSxlPUduKHQsZSksX24odC5hLmIsZSkmJih0LmM9bnVsbCx0LmItPXQuYS5nZXQoZSkubGVuZ3RoLF9uKCh0PXQuYSkuYixlKSYmKGRlbGV0ZSB0LmJbZV0sdC5jLS0sdC5hLmxlbmd0aD4yKnQuYyYmd24odCkpKX1mdW5jdGlvbiBLbih0LGUpe3JldHVybiBxbih0KSxlPUduKHQsZSksX24odC5hLmIsZSl9ZnVuY3Rpb24gV24odCxlLG4pe0JuKHQsZSksMDxuLmxlbmd0aCYmKHQuYz1udWxsLHQuYS5zZXQoR24odCxlKSx6KG4pKSx0LmIrPW4ubGVuZ3RoKX1mdW5jdGlvbiBIbih0KXt2YXIgZT1uZXcgam47cmV0dXJuIGUuYz10LmMsdC5hJiYoZS5hPW5ldyBibih0LmEpLGUuYj10LmIpLGV9ZnVuY3Rpb24gR24odCxlKXtyZXR1cm4gZT1TdHJpbmcoZSksZT10LmY/ZS50b0xvd2VyQ2FzZSgpOmV9ZnVuY3Rpb24gem4odCl7dmFyIGU9W107cmV0dXJuIGZ1bmN0aW9uIHQoZSxuLHIpe2lmKG51bGw9PW4pci5wdXNoKCJudWxsIik7ZWxzZXtpZigib2JqZWN0Ij09dHlwZW9mIG4pe2lmKEFycmF5LmlzQXJyYXkobikpe3ZhciBpPW47bj1pLmxlbmd0aCxyLnB1c2goIlsiKTtmb3IodmFyIG89IiIscz0wO3M8bjtzKyspci5wdXNoKG8pLHQoZSxpW3NdLHIpLG89IiwiO3JldHVybiB2b2lkIHIucHVzaCgiXSIpfWlmKCEobiBpbnN0YW5jZW9mIFN0cmluZ3x8biBpbnN0YW5jZW9mIE51bWJlcnx8biBpbnN0YW5jZW9mIEJvb2xlYW4pKXtmb3IoaSBpbiByLnB1c2goInsiKSxvPSIiLG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4saSkmJihzPW5baV0sImZ1bmN0aW9uIiE9dHlwZW9mIHMmJihyLnB1c2gobyksSm4oaSxyKSxyLnB1c2goIjoiKSx0KGUscyxyKSxvPSIsIikpO3JldHVybiB2b2lkIHIucHVzaCgifSIpfW49bi52YWx1ZU9mKCl9c3dpdGNoKHR5cGVvZiBuKXtjYXNlInN0cmluZyI6Sm4obixyKTticmVhaztjYXNlIm51bWJlciI6ci5wdXNoKGlzRmluaXRlKG4pJiYhaXNOYU4obik/U3RyaW5nKG4pOiJudWxsIik7YnJlYWs7Y2FzZSJib29sZWFuIjpyLnB1c2goU3RyaW5nKG4pKTticmVhaztjYXNlImZ1bmN0aW9uIjpyLnB1c2goIm51bGwiKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJVbmtub3duIHR5cGU6ICIrdHlwZW9mIG4pfX19KG5ldyBRbix0LGUpLGUuam9pbigiIil9ZnVuY3Rpb24gUW4oKXt9KHQ9am4ucHJvdG90eXBlKS5hZGQ9ZnVuY3Rpb24odCxlKXtxbih0aGlzKSx0aGlzLmM9bnVsbCx0PUduKHRoaXMsdCk7dmFyIG49dGhpcy5hLmdldCh0KTtyZXR1cm4gbnx8dGhpcy5hLnNldCh0LG49W10pLG4ucHVzaChlKSx0aGlzLmIrPTEsdGhpc30sdC5jbGVhcj1mdW5jdGlvbigpe3RoaXMuYT10aGlzLmM9bnVsbCx0aGlzLmI9MH0sdC5mb3JFYWNoPWZ1bmN0aW9uKG4scil7cW4odGhpcyksdGhpcy5hLmZvckVhY2goZnVuY3Rpb24odCxlKXtqKHQsZnVuY3Rpb24odCl7bi5jYWxsKHIsdCxlLHRoaXMpfSx0aGlzKX0sdGhpcyl9LHQuWT1mdW5jdGlvbigpe3FuKHRoaXMpO2Zvcih2YXIgdD10aGlzLmEuVygpLGU9dGhpcy5hLlkoKSxuPVtdLHI9MDtyPGUubGVuZ3RoO3IrKylmb3IodmFyIGk9dFtyXSxvPTA7bzxpLmxlbmd0aDtvKyspbi5wdXNoKGVbcl0pO3JldHVybiBufSx0Llc9ZnVuY3Rpb24odCl7cW4odGhpcyk7dmFyIGU9W107aWYoInN0cmluZyI9PXR5cGVvZiB0KUtuKHRoaXMsdCkmJihlPUcoZSx0aGlzLmEuZ2V0KEduKHRoaXMsdCkpKSk7ZWxzZXt0PXRoaXMuYS5XKCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspZT1HKGUsdFtuXSl9cmV0dXJuIGV9LHQuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHFuKHRoaXMpLHRoaXMuYz1udWxsLEtuKHRoaXMsdD1Hbih0aGlzLHQpKSYmKHRoaXMuYi09dGhpcy5hLmdldCh0KS5sZW5ndGgpLHRoaXMuYS5zZXQodCxbZV0pLHRoaXMuYis9MSx0aGlzfSx0LmdldD1mdW5jdGlvbih0LGUpe3JldHVybiB0JiYwPCh0PXRoaXMuVyh0KSkubGVuZ3RoP1N0cmluZyh0WzBdKTplfSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5jKXJldHVybiB0aGlzLmM7aWYoIXRoaXMuYSlyZXR1cm4iIjtmb3IodmFyIHQ9W10sZT10aGlzLmEuWSgpLG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIHI9ZVtuXSxpPWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcocikpLHI9dGhpcy5XKHIpLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIHM9aTsiIiE9PXJbb10mJihzKz0iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhyW29dKSkpLHQucHVzaChzKX1yZXR1cm4gdGhpcy5jPXQuam9pbigiJiIpfTt2YXIgWW49eyciJzonXFwiJywiXFwiOiJcXFxcIiwiLyI6IlxcLyIsIlxiIjoiXFxiIiwiXGYiOiJcXGYiLCJcbiI6IlxcbiIsIlxyIjoiXFxyIiwiXHQiOiJcXHQiLCJcdiI6IlxcdTAwMGIifSxYbj0vXHVmZmZmLy50ZXN0KCLvv78iKT8vW1xcIlx4MDAtXHgxZlx4N2YtXHVmZmZmXS9nOi9bXFwiXHgwMC1ceDFmXHg3Zi1ceGZmXS9nO2Z1bmN0aW9uIEpuKHQsZSl7ZS5wdXNoKCciJyx0LnJlcGxhY2UoWG4sZnVuY3Rpb24odCl7dmFyIGU9WW5bdF07cmV0dXJuIGV8fChlPSJcXHUiKyg2NTUzNnx0LmNoYXJDb2RlQXQoMCkpLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSksWW5bdF09ZSksZX0pLCciJyl9ZnVuY3Rpb24gJG4oKXt2YXIgdD15cigpO3JldHVybiBCdCYmJHQmJjExPT0kdHx8L0VkZ2VcL1xkKy8udGVzdCh0KX1mdW5jdGlvbiBabigpe3JldHVybiBsLndpbmRvdyYmbC53aW5kb3cubG9jYXRpb24uaHJlZnx8c2VsZiYmc2VsZi5sb2NhdGlvbiYmc2VsZi5sb2NhdGlvbi5ocmVmfHwiIn1mdW5jdGlvbiB0cih0LGUpe2U9ZXx8bC53aW5kb3c7dmFyIG49ImFib3V0OmJsYW5rIjt0JiYobj1DdChSdCh0KXx8RHQpKSxlLmxvY2F0aW9uLmhyZWY9bn1mdW5jdGlvbiBlcih0KXtyZXR1cm4hISgodD0odHx8eXIoKSkudG9Mb3dlckNhc2UoKSkubWF0Y2goL2FuZHJvaWQvKXx8dC5tYXRjaCgvd2Vib3MvKXx8dC5tYXRjaCgvaXBob25lfGlwYWR8aXBvZC8pfHx0Lm1hdGNoKC9ibGFja2JlcnJ5Lyl8fHQubWF0Y2goL3dpbmRvd3MgcGhvbmUvKXx8dC5tYXRjaCgvaWVtb2JpbGUvKSl9ZnVuY3Rpb24gbnIodCl7dD10fHxsLndpbmRvdzt0cnl7dC5jbG9zZSgpfWNhdGNoKHQpe319ZnVuY3Rpb24gcnIodCxlLG4pe3ZhciByPU1hdGguZmxvb3IoMWU5Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKCk7ZT1lfHw1MDAsbj1ufHw2MDA7dmFyIGk9KHdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHQtbikvMixvPSh3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGgtZSkvMjtmb3IocyBpbiBlPXt3aWR0aDplLGhlaWdodDpuLHRvcDowPGk/aTowLGxlZnQ6MDxvP286MCxsb2NhdGlvbjohMCxyZXNpemFibGU6ITAsc3RhdHVzYmFyOiEwLHRvb2xiYXI6ITF9LG49eXIoKS50b0xvd2VyQ2FzZSgpLHImJihlLnRhcmdldD1yLHJ0KG4sImNyaW9zLyIpJiYoZS50YXJnZXQ9Il9ibGFuayIpKSxkcih5cigpKT09ZnImJih0PXR8fCJodHRwOi8vbG9jYWxob3N0IixlLnNjcm9sbGJhcnM9ITApLG49dHx8IiIsKHQ9ZSl8fCh0PXt9KSxyPXdpbmRvdyxlPW4gaW5zdGFuY2VvZiBTdD9uOlJ0KHZvaWQgMCE9PW4uaHJlZj9uLmhyZWY6U3RyaW5nKG4pKXx8RHQsbj10LnRhcmdldHx8bi50YXJnZXQsaT1bXSx0KXN3aXRjaChzKXtjYXNlIndpZHRoIjpjYXNlImhlaWdodCI6Y2FzZSJ0b3AiOmNhc2UibGVmdCI6aS5wdXNoKHMrIj0iK3Rbc10pO2JyZWFrO2Nhc2UidGFyZ2V0IjpjYXNlIm5vb3BlbmVyIjpjYXNlIm5vcmVmZXJyZXIiOmJyZWFrO2RlZmF1bHQ6aS5wdXNoKHMrIj0iKyh0W3NdPzE6MCkpfXZhciBzPWkuam9pbigiLCIpO2lmKChzdCgiaVBob25lIikmJiFzdCgiaVBvZCIpJiYhc3QoImlQYWQiKXx8c3QoImlQYWQiKXx8c3QoImlQb2QiKSkmJnIubmF2aWdhdG9yJiZyLm5hdmlnYXRvci5zdGFuZGFsb25lJiZuJiYiX3NlbGYiIT1uPyhmdChzPXNlKGRvY3VtZW50LCJBIiksIkhUTUxBbmNob3JFbGVtZW50IiksZT1lIGluc3RhbmNlb2YgU3Q/ZTpQdChlKSxzLmhyZWY9Q3QoZSkscy5zZXRBdHRyaWJ1dGUoInRhcmdldCIsbiksdC5ub3JlZmVycmVyJiZzLnNldEF0dHJpYnV0ZSgicmVsIiwibm9yZWZlcnJlciIpLCh0PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50IikpLmluaXRNb3VzZUV2ZW50KCJjbGljayIsITAsITAsciwxKSxzLmRpc3BhdGNoRXZlbnQodCkscz17fSk6dC5ub3JlZmVycmVyPyhzPU10KCIiLHIsbixzKSx0PUN0KGUpLHMmJihXdCYmcnQodCwiOyIpJiYodD0iJyIrdC5yZXBsYWNlKC8nL2csIiUyNyIpKyInIikscy5vcGVuZXI9bnVsbCx0PSc8bWV0YSBuYW1lPSJyZWZlcnJlciIgY29udGVudD0ibm8tcmVmZXJyZXIiPjxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjA7IHVybD0nK1V0KHQpKyciPicsdD1uZXcgeHQodD0ocj1tdCgpKT9yLmNyZWF0ZUhUTUwodCk6dCwwLEx0KSxyPXMuZG9jdW1lbnQpJiYoci53cml0ZSgobz10KWluc3RhbmNlb2YgeHQmJm8uY29uc3RydWN0b3I9PT14dD9vLmE6KE8oImV4cGVjdGVkIG9iamVjdCBvZiB0eXBlIFNhZmVIdG1sLCBnb3QgJyIrbysiJyBvZiB0eXBlICIrcChvKSksInR5cGVfZXJyb3I6U2FmZUh0bWwiKSksci5jbG9zZSgpKSk6KHM9TXQoZSxyLG4scykpJiZ0Lm5vb3BlbmVyJiYocy5vcGVuZXI9bnVsbCkscyl0cnl7cy5mb2N1cygpfWNhdGNoKHQpe31yZXR1cm4gc312YXIgaXI9L15cZHsxLDN9XC5cZHsxLDN9XC5cZHsxLDN9XC5cZHsxLDN9JC8sb3I9L15bXkBdK0BbXkBdKyQvO2Z1bmN0aW9uIHNyKCl7dmFyIGU9bnVsbDtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHQpeyJjb21wbGV0ZSI9PWwuZG9jdW1lbnQucmVhZHlTdGF0ZT90KCk6KGU9ZnVuY3Rpb24oKXt0KCl9LHRuKHdpbmRvdywibG9hZCIsZSkpfSkubyhmdW5jdGlvbih0KXt0aHJvdyBlbih3aW5kb3csImxvYWQiLGUpLHR9KX1mdW5jdGlvbiBhcih0KXtyZXR1cm4gdD10fHx5cigpLCEoImZpbGU6IiE9PUlyKCkmJiJpb25pYzoiIT09SXIoKXx8IXQudG9Mb3dlckNhc2UoKS5tYXRjaCgvaXBob25lfGlwYWR8aXBvZHxhbmRyb2lkLykpfWZ1bmN0aW9uIHVyKCl7dmFyIHQ9bC53aW5kb3c7dHJ5e3JldHVybiB0JiZ0IT10LnRvcH1jYXRjaCh0KXtyZXR1cm59fWZ1bmN0aW9uIGNyKCl7cmV0dXJuIHZvaWQgMCE9PWwuV29ya2VyR2xvYmFsU2NvcGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLmltcG9ydFNjcmlwdHN9ZnVuY3Rpb24gaHIoKXtyZXR1cm4gWGwuSU5URVJOQUwuaGFzT3duUHJvcGVydHkoInJlYWN0TmF0aXZlIik/IlJlYWN0TmF0aXZlIjpYbC5JTlRFUk5BTC5oYXNPd25Qcm9wZXJ0eSgibm9kZSIpPyJOb2RlIjpjcigpPyJXb3JrZXIiOiJCcm93c2VyIn1mdW5jdGlvbiBscigpe3ZhciB0PWhyKCk7cmV0dXJuIlJlYWN0TmF0aXZlIj09PXR8fCJOb2RlIj09PXR9dmFyIGZyPSJGaXJlZm94Iixwcj0iQ2hyb21lIjtmdW5jdGlvbiBkcih0KXt2YXIgZT10LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHJ0KGUsIm9wZXJhLyIpfHxydChlLCJvcHIvIil8fHJ0KGUsIm9waW9zLyIpPyJPcGVyYSI6cnQoZSwiaWVtb2JpbGUiKT8iSUVNb2JpbGUiOnJ0KGUsIm1zaWUiKXx8cnQoZSwidHJpZGVudC8iKT8iSUUiOnJ0KGUsImVkZ2UvIik/IkVkZ2UiOnJ0KGUsImZpcmVmb3gvIik/ZnI6cnQoZSwic2lsay8iKT8iU2lsayI6cnQoZSwiYmxhY2tiZXJyeSIpPyJCbGFja2JlcnJ5IjpydChlLCJ3ZWJvcyIpPyJXZWJvcyI6IXJ0KGUsInNhZmFyaS8iKXx8cnQoZSwiY2hyb21lLyIpfHxydChlLCJjcmlvcy8iKXx8cnQoZSwiYW5kcm9pZCIpPyFydChlLCJjaHJvbWUvIikmJiFydChlLCJjcmlvcy8iKXx8cnQoZSwiZWRnZS8iKT9ydChlLCJhbmRyb2lkIik/IkFuZHJvaWQiOih0PXQubWF0Y2goLyhbYS16QS1aXGRcLl0rKVwvW2EtekEtWlxkXC5dKiQvKSkmJjI9PXQubGVuZ3RoP3RbMV06Ik90aGVyIjpwcjoiU2FmYXJpIn12YXIgdnI9e21kOiJGaXJlYmFzZUNvcmUtd2ViIixvZDoiRmlyZWJhc2VVSS13ZWIifTtmdW5jdGlvbiBncih0LGUpe2U9ZXx8W107dmFyIG4scj1bXSxpPXt9O2ZvcihuIGluIHZyKWlbdnJbbl1dPSEwO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspdm9pZCAwIT09aVtlW25dXSYmKGRlbGV0ZSBpW2Vbbl1dLHIucHVzaChlW25dKSk7cmV0dXJuIHIuc29ydCgpLChlPXIpLmxlbmd0aHx8KGU9WyJGaXJlYmFzZUNvcmUtd2ViIl0pLCJCcm93c2VyIj09PShyPWhyKCkpP3I9ZHIoaT15cigpKToiV29ya2VyIj09PXImJihyPWRyKGk9eXIoKSkrIi0iK3IpLHIrIi9Kc0NvcmUvIit0KyIvIitlLmpvaW4oIiwiKX1mdW5jdGlvbiB5cigpe3JldHVybiBsLm5hdmlnYXRvciYmbC5uYXZpZ2F0b3IudXNlckFnZW50fHwiIn1mdW5jdGlvbiBtcih0LGUpe3Q9dC5zcGxpdCgiLiIpLGU9ZXx8bDtmb3IodmFyIG49MDtuPHQubGVuZ3RoJiYib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPWU7bisrKWU9ZVt0W25dXTtyZXR1cm4gZT1uIT10Lmxlbmd0aD92b2lkIDA6ZX1mdW5jdGlvbiBicigpe3RyeXt2YXIgdD1sLmxvY2FsU3RvcmFnZSxlPU5yKCk7aWYodClyZXR1cm4gdC5zZXRJdGVtKGUsIjEiKSx0LnJlbW92ZUl0ZW0oZSksISRuKCl8fCEhbC5pbmRleGVkREJ9Y2F0Y2godCl7cmV0dXJuIGNyKCkmJiEhbC5pbmRleGVkREJ9cmV0dXJuITF9ZnVuY3Rpb24gd3IoKXtyZXR1cm4oX3IoKXx8ImNocm9tZS1leHRlbnNpb246Ij09PUlyKCl8fGFyKCkpJiYhbHIoKSYmYnIoKSYmIWNyKCl9ZnVuY3Rpb24gX3IoKXtyZXR1cm4iaHR0cDoiPT09SXIoKXx8Imh0dHBzOiI9PT1JcigpfWZ1bmN0aW9uIElyKCl7cmV0dXJuIGwubG9jYXRpb24mJmwubG9jYXRpb24ucHJvdG9jb2x8fG51bGx9ZnVuY3Rpb24gVHIodCl7cmV0dXJuIWVyKHQ9dHx8eXIoKSkmJmRyKHQpIT1mcn1mdW5jdGlvbiBFcih0KXtyZXR1cm4gdm9pZCAwPT09dD9udWxsOnpuKHQpfWZ1bmN0aW9uIFNyKHQpe3ZhciBlLG49e307Zm9yKGUgaW4gdCl0Lmhhc093blByb3BlcnR5KGUpJiZudWxsIT09dFtlXSYmdm9pZCAwIT09dFtlXSYmKG5bZV09dFtlXSk7cmV0dXJuIG59ZnVuY3Rpb24gQ3IodCl7aWYobnVsbCE9PXQpcmV0dXJuIEpTT04ucGFyc2UodCl9ZnVuY3Rpb24gTnIodCl7cmV0dXJuIHR8fE1hdGguZmxvb3IoMWU5Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKCl9ZnVuY3Rpb24gQXIodCl7cmV0dXJuIlNhZmFyaSIhPWRyKHQ9dHx8eXIoKSkmJiF0LnRvTG93ZXJDYXNlKCkubWF0Y2goL2lwaG9uZXxpcGFkfGlwb2QvKX1mdW5jdGlvbiBrcigpe3ZhciB0PWwuX19fanNsO2lmKHQmJnQuSClmb3IodmFyIGUgaW4gdC5IKWlmKHQuSFtlXS5yPXQuSFtlXS5yfHxbXSx0LkhbZV0uTD10LkhbZV0uTHx8W10sdC5IW2VdLnI9dC5IW2VdLkwuY29uY2F0KCksdC5DUClmb3IodmFyIG49MDtuPHQuQ1AubGVuZ3RoO24rKyl0LkNQW25dPW51bGx9ZnVuY3Rpb24gUnIodCxlKXtpZihlPHQpdGhyb3cgRXJyb3IoIlNob3J0IGRlbGF5IHNob3VsZCBiZSBsZXNzIHRoYW4gbG9uZyBkZWxheSEiKTt0aGlzLmE9dCx0aGlzLmM9ZSx0PXlyKCksZT1ocigpLHRoaXMuYj1lcih0KXx8IlJlYWN0TmF0aXZlIj09PWV9ZnVuY3Rpb24gUHIoKXt2YXIgdD1sLmRvY3VtZW50O3JldHVybiF0fHx2b2lkIDA9PT10LnZpc2liaWxpdHlTdGF0ZXx8InZpc2libGUiPT10LnZpc2liaWxpdHlTdGF0ZX1mdW5jdGlvbiBPcigpe3ZhciBlPWwuZG9jdW1lbnQsbj1udWxsO3JldHVybiBQcigpfHwhZT9iZSgpOm5ldyBmZShmdW5jdGlvbih0KXtuPWZ1bmN0aW9uKCl7UHIoKSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsbiwhMSksdCgpKX0sZS5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixuLCExKX0pLm8oZnVuY3Rpb24odCl7dGhyb3cgZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixuLCExKSx0fSl9ZnVuY3Rpb24gRHIodCl7dHJ5e3ZhciBlPW5ldyBEYXRlKHBhcnNlSW50KHQsMTApKTtpZighaXNOYU4oZS5nZXRUaW1lKCkpJiYhL1teMC05XS8udGVzdCh0KSlyZXR1cm4gZS50b1VUQ1N0cmluZygpfWNhdGNoKHQpe31yZXR1cm4gbnVsbH1mdW5jdGlvbiB4cigpe3JldHVybiBtcigiZmlyZWF1dGgub2F1dGhoZWxwZXIiLGwpfHxtcigiZmlyZWF1dGguaWZyYW1lIixsKX1Sci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9bC5uYXZpZ2F0b3I7cmV0dXJuIXR8fCJib29sZWFuIiE9dHlwZW9mIHQub25MaW5lfHwhX3IoKSYmImNocm9tZS1leHRlbnNpb246IiE9PUlyKCkmJnZvaWQgMD09PXQuY29ubmVjdGlvbnx8dC5vbkxpbmU/dGhpcy5iP3RoaXMuYzp0aGlzLmE6TWF0aC5taW4oNWUzLHRoaXMuYSl9O3ZhciBMcixNcj17fTtmdW5jdGlvbiBGcih0KXtNclt0XXx8KE1yW3RdPSEwLCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKHQpKX10cnl7dmFyIFVyPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShVciwiYWJjZCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOjF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVXIsImFiY2QiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZToyfSksTHI9Mj09VXIuYWJjZH1jYXRjaCh0KXtMcj0hMX1mdW5jdGlvbiBqcih0LGUsbil7THI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6bn0pOnRbZV09bn1mdW5jdGlvbiBxcih0LGUpe2lmKGUpZm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmanIodCxuLGVbbl0pfWZ1bmN0aW9uIFZyKHQpe3ZhciBlPXt9O3JldHVybiBxcihlLHQpLGV9ZnVuY3Rpb24gQnIodCl7dmFyIGU9dDtpZigib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPXQpZm9yKHZhciBuIGluIGU9Imxlbmd0aCJpbiB0P1tdOnt9LHQpanIoZSxuLEJyKHRbbl0pKTtyZXR1cm4gZX1mdW5jdGlvbiBLcih0KXt2YXIgZT10JiYodFtRcl0/InBob25lIjpudWxsKTtpZighKGUmJnQmJnRbenJdKSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiLCJJbnRlcm5hbCBhc3NlcnQ6IGludmFsaWQgTXVsdGlGYWN0b3JJbmZvIG9iamVjdCIpO2pyKHRoaXMsInVpZCIsdFt6cl0pLGpyKHRoaXMsImRpc3BsYXlOYW1lIix0W0hyXXx8bnVsbCk7dmFyIG49bnVsbDtqcih0aGlzLCJlbnJvbGxtZW50VGltZSIsbj10W0dyXT9uZXcgRGF0ZSh0W0dyXSkudG9VVENTdHJpbmcoKTpuKSxqcih0aGlzLCJmYWN0b3JJZCIsZSl9ZnVuY3Rpb24gV3IodCl7dHJ5e3ZhciBlPW5ldyBZcih0KX1jYXRjaCh0KXtlPW51bGx9cmV0dXJuIGV9S3IucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXtyZXR1cm57dWlkOnRoaXMudWlkLGRpc3BsYXlOYW1lOnRoaXMuZGlzcGxheU5hbWUsZmFjdG9ySWQ6dGhpcy5mYWN0b3JJZCxlbnJvbGxtZW50VGltZTp0aGlzLmVucm9sbG1lbnRUaW1lfX07dmFyIEhyPSJkaXNwbGF5TmFtZSIsR3I9ImVucm9sbGVkQXQiLHpyPSJtZmFFbnJvbGxtZW50SWQiLFFyPSJwaG9uZUluZm8iO2Z1bmN0aW9uIFlyKHQpe0tyLmNhbGwodGhpcyx0KSxqcih0aGlzLCJwaG9uZU51bWJlciIsdFtRcl0pfWZ1bmN0aW9uIFhyKHQpe3ZhciBlPXt9LG49dFt0aV0scj10W25pXSxpPXRbcmldO2lmKHQ9V3IodFtlaV0pLCFpfHxpIT0kciYmaSE9WnImJiFufHxpPT1aciYmIXJ8fGk9PUpyJiYhdCl0aHJvdyBFcnJvcigiSW52YWxpZCBjaGVja0FjdGlvbkNvZGUgcmVzcG9uc2UhIik7aT09WnI/KGVbb2ldPW58fG51bGwsZVthaV09bnx8bnVsbCxlW2lpXT1yKTooZVtvaV09cnx8bnVsbCxlW2FpXT1yfHxudWxsLGVbaWldPW58fG51bGwpLGVbc2ldPXR8fG51bGwsanIodGhpcyxjaSxpKSxqcih0aGlzLHVpLEJyKGUpKX13KFlyLEtyKSxZci5wcm90b3R5cGUudz1mdW5jdGlvbigpe3ZhciB0PVlyLmFiLncuY2FsbCh0aGlzKTtyZXR1cm4gdC5waG9uZU51bWJlcj10aGlzLnBob25lTnVtYmVyLHR9O3ZhciBKcj0iUkVWRVJUX1NFQ09ORF9GQUNUT1JfQURESVRJT04iLCRyPSJFTUFJTF9TSUdOSU4iLFpyPSJWRVJJRllfQU5EX0NIQU5HRV9FTUFJTCIsdGk9ImVtYWlsIixlaT0ibWZhSW5mbyIsbmk9Im5ld0VtYWlsIixyaT0icmVxdWVzdFR5cGUiLGlpPSJlbWFpbCIsb2k9ImZyb21FbWFpbCIsc2k9Im11bHRpRmFjdG9ySW5mbyIsYWk9InByZXZpb3VzRW1haWwiLHVpPSJkYXRhIixjaT0ib3BlcmF0aW9uIjtmdW5jdGlvbiBoaSh0KXt2YXIgZT1Bbih0PWtuKHQpLGxpKXx8bnVsbCxuPUFuKHQsZmkpfHxudWxsLHI9KHI9QW4odCx2aSl8fG51bGwpJiZ5aVtyXXx8bnVsbDtpZighZXx8IW58fCFyKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsbGkrIiwgIitmaSsiYW5kICIrdmkrIiBhcmUgcmVxdWlyZWQgaW4gYSB2YWxpZCBhY3Rpb24gY29kZSBVUkwuIik7cXIodGhpcyx7YXBpS2V5OmUsb3BlcmF0aW9uOnIsY29kZTpuLGNvbnRpbnVlVXJsOkFuKHQscGkpfHxudWxsLGxhbmd1YWdlQ29kZTpBbih0LGRpKXx8bnVsbCx0ZW5hbnRJZDpBbih0LGdpKXx8bnVsbH0pfXZhciBsaT0iYXBpS2V5IixmaT0ib29iQ29kZSIscGk9ImNvbnRpbnVlVXJsIixkaT0ibGFuZ3VhZ2VDb2RlIix2aT0ibW9kZSIsZ2k9InRlbmFudElkIix5aT17cmVjb3ZlckVtYWlsOiJSRUNPVkVSX0VNQUlMIixyZXNldFBhc3N3b3JkOiJQQVNTV09SRF9SRVNFVCIscmV2ZXJ0U2Vjb25kRmFjdG9yQWRkaXRpb246SnIsc2lnbkluOiRyLHZlcmlmeUFuZENoYW5nZUVtYWlsOlpyLHZlcmlmeUVtYWlsOiJWRVJJRllfRU1BSUwifTtmdW5jdGlvbiBtaSh0KXt0cnl7cmV0dXJuIG5ldyBoaSh0KX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gYmkodCl7aWYodm9pZCAwPT09KGU9dFtFaV0pKXRocm93IG5ldyBJKCJtaXNzaW5nLWNvbnRpbnVlLXVyaSIpO2lmKCJzdHJpbmciIT10eXBlb2YgZXx8InN0cmluZyI9PXR5cGVvZiBlJiYhZS5sZW5ndGgpdGhyb3cgbmV3IEkoImludmFsaWQtY29udGludWUtdXJpIik7aWYodGhpcy5oPWUsdGhpcy5iPXRoaXMuYT1udWxsLHRoaXMuZz0hMSwocj10W3dpXSkmJiJvYmplY3QiPT10eXBlb2Ygcil7dmFyIGU9cltOaV0sbj1yW1NpXSxyPXJbQ2ldO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmZS5sZW5ndGgpe2lmKHRoaXMuYT1lLHZvaWQgMCE9PW4mJiJib29sZWFuIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIixTaSsiIHByb3BlcnR5IG11c3QgYmUgYSBib29sZWFuIHdoZW4gc3BlY2lmaWVkLiIpO2lmKHRoaXMuZz0hIW4sdm9pZCAwIT09ciYmKCJzdHJpbmciIT10eXBlb2Ygcnx8InN0cmluZyI9PXR5cGVvZiByJiYhci5sZW5ndGgpKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsQ2krIiBwcm9wZXJ0eSBtdXN0IGJlIGEgbm9uIGVtcHR5IHN0cmluZyB3aGVuIHNwZWNpZmllZC4iKTt0aGlzLmI9cnx8bnVsbH1lbHNle2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIixOaSsiIHByb3BlcnR5IG11c3QgYmUgYSBub24gZW1wdHkgc3RyaW5nIHdoZW4gc3BlY2lmaWVkLiIpO2lmKHZvaWQgMCE9PW58fHZvaWQgMCE9PXIpdGhyb3cgbmV3IEkoIm1pc3NpbmctYW5kcm9pZC1wa2ctbmFtZSIpfX1lbHNlIGlmKHZvaWQgMCE9PXIpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIix3aSsiIHByb3BlcnR5IG11c3QgYmUgYSBub24gbnVsbCBvYmplY3Qgd2hlbiBzcGVjaWZpZWQuIik7aWYodGhpcy5mPW51bGwsKGU9dFtUaV0pJiYib2JqZWN0Ij09dHlwZW9mIGUpe2lmKCJzdHJpbmciPT10eXBlb2YoZT1lW0FpXSkmJmUubGVuZ3RoKXRoaXMuZj1lO2Vsc2UgaWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLEFpKyIgcHJvcGVydHkgbXVzdCBiZSBhIG5vbiBlbXB0eSBzdHJpbmcgd2hlbiBzcGVjaWZpZWQuIil9ZWxzZSBpZih2b2lkIDAhPT1lKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsVGkrIiBwcm9wZXJ0eSBtdXN0IGJlIGEgbm9uIG51bGwgb2JqZWN0IHdoZW4gc3BlY2lmaWVkLiIpO2lmKHZvaWQgMCE9PShlPXRbSWldKSYmImJvb2xlYW4iIT10eXBlb2YgZSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLElpKyIgcHJvcGVydHkgbXVzdCBiZSBhIGJvb2xlYW4gd2hlbiBzcGVjaWZpZWQuIik7aWYodGhpcy5jPSEhZSx2b2lkIDAhPT0odD10W19pXSkmJigic3RyaW5nIiE9dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdCYmIXQubGVuZ3RoKSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLF9pKyIgcHJvcGVydHkgbXVzdCBiZSBhIG5vbiBlbXB0eSBzdHJpbmcgd2hlbiBzcGVjaWZpZWQuIik7dGhpcy5pPXR8fG51bGx9dmFyIHdpPSJhbmRyb2lkIixfaT0iZHluYW1pY0xpbmtEb21haW4iLElpPSJoYW5kbGVDb2RlSW5BcHAiLFRpPSJpT1MiLEVpPSJ1cmwiLFNpPSJpbnN0YWxsQXBwIixDaT0ibWluaW11bVZlcnNpb24iLE5pPSJwYWNrYWdlTmFtZSIsQWk9ImJ1bmRsZUlkIjtmdW5jdGlvbiBraSh0KXt2YXIgZSxuPXt9O2ZvcihlIGluIG4uY29udGludWVVcmw9dC5oLG4uY2FuSGFuZGxlQ29kZUluQXBwPXQuYywobi5hbmRyb2lkUGFja2FnZU5hbWU9dC5hKSYmKG4uYW5kcm9pZE1pbmltdW1WZXJzaW9uPXQuYixuLmFuZHJvaWRJbnN0YWxsQXBwPXQuZyksbi5pT1NCdW5kbGVJZD10LmYsbi5keW5hbWljTGlua0RvbWFpbj10LmksbiludWxsPT09bltlXSYmZGVsZXRlIG5bZV07cmV0dXJuIG59dmFyIFJpPW51bGw7ZnVuY3Rpb24gUGkodCl7dmFyIGU9W107cmV0dXJuIGZ1bmN0aW9uKHIsdCl7ZnVuY3Rpb24gZSh0KXtmb3IoO2k8ci5sZW5ndGg7KXt2YXIgZT1yLmNoYXJBdChpKyspLG49UmlbZV07aWYobnVsbCE9bilyZXR1cm4gbjtpZighL15bXHNceGEwXSokLy50ZXN0KGUpKXRocm93IEVycm9yKCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiAiK2UpfXJldHVybiB0fSFmdW5jdGlvbigpe2lmKCFSaSl7Umk9e307Zm9yKHZhciB0PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGU9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sbj0wO248NTtuKyspZm9yKHZhciByPXQuY29uY2F0KGVbbl0uc3BsaXQoIiIpKSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07dm9pZCAwPT09Umlbb10mJihSaVtvXT1pKX19fSgpO2Zvcih2YXIgaT0wOzspe3ZhciBuPWUoLTEpLG89ZSgwKSxzPWUoNjQpLGE9ZSg2NCk7aWYoNjQ9PT1hJiYtMT09PW4pYnJlYWs7dChuPDwyfG8+PjQpLDY0IT1zJiYodChvPDw0JjI0MHxzPj4yKSw2NCE9YSYmdChzPDw2JjE5MnxhKSl9fSh0LGZ1bmN0aW9uKHQpe2UucHVzaCh0KX0pLGV9ZnVuY3Rpb24gT2kodCl7dmFyIGU9eGkodCk7aWYoIShlJiZlLnN1YiYmZS5pc3MmJmUuYXVkJiZlLmV4cCkpdGhyb3cgRXJyb3IoIkludmFsaWQgSldUIik7dGhpcy5oPXQsdGhpcy5hPWUuZXhwLHRoaXMuaT1lLnN1Yix0PURhdGUubm93KCkvMWUzLHRoaXMuZz1lLmlhdHx8KHQ+dGhpcy5hP3RoaXMuYTp0KSx0aGlzLmI9ZS5wcm92aWRlcl9pZHx8ZS5maXJlYmFzZSYmZS5maXJlYmFzZS5zaWduX2luX3Byb3ZpZGVyfHxudWxsLHRoaXMuZj1lLmZpcmViYXNlJiZlLmZpcmViYXNlLnRlbmFudHx8bnVsbCx0aGlzLmM9ISFlLmlzX2Fub255bW91c3x8ImFub255bW91cyI9PXRoaXMuYn1mdW5jdGlvbiBEaSh0KXt0cnl7cmV0dXJuIG5ldyBPaSh0KX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24geGkodCl7aWYoIXQpcmV0dXJuIG51bGw7aWYoMyE9KHQ9dC5zcGxpdCgiLiIpKS5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBlPSg0LSh0PXRbMV0pLmxlbmd0aCU0KSU0LG49MDtuPGU7bisrKXQrPSIuIjt0cnl7dmFyIHI9UGkodCk7Zm9yKHQ9W10sbj1lPTA7ZTxyLmxlbmd0aDspe3ZhciBpLG8scyxhPXJbZSsrXTthPDEyOD90W24rK109U3RyaW5nLmZyb21DaGFyQ29kZShhKToxOTE8YSYmYTwyMjQ/KGk9cltlKytdLHRbbisrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZhKTw8Nnw2MyZpKSk6MjM5PGEmJmE8MzY1PyhzPSgoNyZhKTw8MTh8KDYzJihpPXJbZSsrXSkpPDwxMnwoNjMmKG89cltlKytdKSk8PDZ8NjMmcltlKytdKS02NTUzNix0W24rK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5Nisocz4+MTApKSx0W24rK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoMTAyMyZzKSkpOihpPXJbZSsrXSxvPXJbZSsrXSx0W24rK109U3RyaW5nLmZyb21DaGFyQ29kZSgoMTUmYSk8PDEyfCg2MyZpKTw8Nnw2MyZvKSl9cmV0dXJuIEpTT04ucGFyc2UodC5qb2luKCIiKSl9Y2F0Y2godCl7fXJldHVybiBudWxsfU9pLnByb3RvdHlwZS5UPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZn0sT2kucHJvdG90eXBlLmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jfSxPaS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ofTt2YXIgTGk9Im9hdXRoX2NvbnN1bWVyX2tleSBvYXV0aF9ub25jZSBvYXV0aF9zaWduYXR1cmUgb2F1dGhfc2lnbmF0dXJlX21ldGhvZCBvYXV0aF90aW1lc3RhbXAgb2F1dGhfdG9rZW4gb2F1dGhfdmVyc2lvbiIuc3BsaXQoIiAiKSxNaT1bImNsaWVudF9pZCIsInJlc3BvbnNlX3R5cGUiLCJzY29wZSIsInJlZGlyZWN0X3VyaSIsInN0YXRlIl0sRmk9e25kOntKYToibG9jYWxlIix1YTo3MDAsdGE6NjAwLGZhOiJmYWNlYm9vay5jb20iLFhhOk1pfSxwZDp7SmE6bnVsbCx1YTo1MDAsdGE6NzUwLGZhOiJnaXRodWIuY29tIixYYTpNaX0scWQ6e0phOiJobCIsdWE6NTE1LHRhOjY4MCxmYToiZ29vZ2xlLmNvbSIsWGE6TWl9LHdkOntKYToibGFuZyIsdWE6NDg1LHRhOjcwNSxmYToidHdpdHRlci5jb20iLFhhOkxpfSxrZDp7SmE6ImxvY2FsZSIsdWE6NjQwLHRhOjYwMCxmYToiYXBwbGUuY29tIixYYTpbXX19O2Z1bmN0aW9uIFVpKHQpe2Zvcih2YXIgZSBpbiBGaSlpZihGaVtlXS5mYT09dClyZXR1cm4gRmlbZV07cmV0dXJuIG51bGx9ZnVuY3Rpb24gamkodCl7dmFyIGU9e307ZVsiZmFjZWJvb2suY29tIl09V2ksZVsiZ29vZ2xlLmNvbSJdPUdpLGVbImdpdGh1Yi5jb20iXT1IaSxlWyJ0d2l0dGVyLmNvbSJdPXppO3ZhciBuPXQmJnRbVmldO3RyeXtpZihuKXJldHVybiBuZXcoZVtuXXx8S2kpKHQpO2lmKHZvaWQgMCE9PXRbcWldKXJldHVybiBuZXcgQmkodCl9Y2F0Y2godCl7fXJldHVybiBudWxsfXZhciBxaT0iaWRUb2tlbiIsVmk9InByb3ZpZGVySWQiO2Z1bmN0aW9uIEJpKHQpe3ZhciBlLG49dFtWaV07aWYobnx8IXRbcWldfHwoZT1EaSh0W3FpXSkpJiZlLmImJihuPWUuYiksIW4pdGhyb3cgRXJyb3IoIkludmFsaWQgYWRkaXRpb25hbCB1c2VyIGluZm8hIik7ImFub255bW91cyIhPW4mJiJjdXN0b20iIT1ufHwobj1udWxsKSxlPSExLHZvaWQgMCE9PXQuaXNOZXdVc2VyP2U9ISF0LmlzTmV3VXNlcjoiaWRlbnRpdHl0b29sa2l0I1NpZ251cE5ld1VzZXJSZXNwb25zZSI9PT10LmtpbmQmJihlPSEwKSxqcih0aGlzLCJwcm92aWRlcklkIixuKSxqcih0aGlzLCJpc05ld1VzZXIiLGUpfWZ1bmN0aW9uIEtpKHQpe0JpLmNhbGwodGhpcyx0KSxqcih0aGlzLCJwcm9maWxlIixCcigodD1Dcih0LnJhd1VzZXJJbmZvfHwie30iKSl8fHt9KSl9ZnVuY3Rpb24gV2kodCl7aWYoS2kuY2FsbCh0aGlzLHQpLCJmYWNlYm9vay5jb20iIT10aGlzLnByb3ZpZGVySWQpdGhyb3cgRXJyb3IoIkludmFsaWQgcHJvdmlkZXIgSUQhIil9ZnVuY3Rpb24gSGkodCl7aWYoS2kuY2FsbCh0aGlzLHQpLCJnaXRodWIuY29tIiE9dGhpcy5wcm92aWRlcklkKXRocm93IEVycm9yKCJJbnZhbGlkIHByb3ZpZGVyIElEISIpO2pyKHRoaXMsInVzZXJuYW1lIix0aGlzLnByb2ZpbGUmJnRoaXMucHJvZmlsZS5sb2dpbnx8bnVsbCl9ZnVuY3Rpb24gR2kodCl7aWYoS2kuY2FsbCh0aGlzLHQpLCJnb29nbGUuY29tIiE9dGhpcy5wcm92aWRlcklkKXRocm93IEVycm9yKCJJbnZhbGlkIHByb3ZpZGVyIElEISIpfWZ1bmN0aW9uIHppKHQpe2lmKEtpLmNhbGwodGhpcyx0KSwidHdpdHRlci5jb20iIT10aGlzLnByb3ZpZGVySWQpdGhyb3cgRXJyb3IoIkludmFsaWQgcHJvdmlkZXIgSUQhIik7anIodGhpcywidXNlcm5hbWUiLHQuc2NyZWVuTmFtZXx8bnVsbCl9ZnVuY3Rpb24gUWkodCl7dmFyIGU9QW4ocj1rbih0KSwibGluayIpLG49QW4oa24oZSksImxpbmsiKSxyPUFuKHIsImRlZXBfbGlua19pZCIpO3JldHVybiBBbihrbihyKSwibGluayIpfHxyfHxufHxlfHx0fWZ1bmN0aW9uIFlpKHQsZSl7aWYoIXQmJiFlKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsIkludGVybmFsIGFzc2VydDogbm8gcmF3IHNlc3Npb24gc3RyaW5nIGF2YWlsYWJsZSIpO2lmKHQmJmUpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIiwiSW50ZXJuYWwgYXNzZXJ0OiB1bmFibGUgdG8gZGV0ZXJtaW5lIHRoZSBzZXNzaW9uIHR5cGUiKTt0aGlzLmE9dHx8bnVsbCx0aGlzLmI9ZXx8bnVsbCx0aGlzLnR5cGU9dGhpcy5hP1hpOkppfXcoS2ksQmkpLHcoV2ksS2kpLHcoSGksS2kpLHcoR2ksS2kpLHcoemksS2kpO3ZhciBYaT0iZW5yb2xsIixKaT0ic2lnbmluIjtmdW5jdGlvbiAkaSgpe31mdW5jdGlvbiBaaSh0LG4pe3JldHVybiB0LnRoZW4oZnVuY3Rpb24odCl7aWYodFtCc10pe3ZhciBlPURpKHRbQnNdKTtpZighZXx8biE9ZS5pKXRocm93IG5ldyBJKCJ1c2VyLW1pc21hdGNoIik7cmV0dXJuIHR9dGhyb3cgbmV3IEkoInVzZXItbWlzbWF0Y2giKX0pLm8oZnVuY3Rpb24odCl7dGhyb3cgdCYmdC5jb2RlJiZ0LmNvZGU9PVMrInVzZXItbm90LWZvdW5kIj9uZXcgSSgidXNlci1taXNtYXRjaCIpOnR9KX1mdW5jdGlvbiB0byh0LGUpe2lmKCFlKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsImZhaWxlZCB0byBjb25zdHJ1Y3QgYSBjcmVkZW50aWFsIik7dGhpcy5hPWUsanIodGhpcywicHJvdmlkZXJJZCIsdCksanIodGhpcywic2lnbkluTWV0aG9kIix0KX1mdW5jdGlvbiBlbyh0KXtyZXR1cm57cGVuZGluZ1Rva2VuOnQuYSxyZXF1ZXN0VXJpOiJodHRwOi8vbG9jYWxob3N0In19ZnVuY3Rpb24gbm8odCl7aWYodCYmdC5wcm92aWRlcklkJiZ0LnNpZ25Jbk1ldGhvZCYmMD09dC5wcm92aWRlcklkLmluZGV4T2YoInNhbWwuIikmJnQucGVuZGluZ1Rva2VuKXRyeXtyZXR1cm4gbmV3IHRvKHQucHJvdmlkZXJJZCx0LnBlbmRpbmdUb2tlbil9Y2F0Y2godCl7fXJldHVybiBudWxsfWZ1bmN0aW9uIHJvKHQsZSxuKXtpZih0aGlzLmE9bnVsbCxlLmlkVG9rZW58fGUuYWNjZXNzVG9rZW4pZS5pZFRva2VuJiZqcih0aGlzLCJpZFRva2VuIixlLmlkVG9rZW4pLGUuYWNjZXNzVG9rZW4mJmpyKHRoaXMsImFjY2Vzc1Rva2VuIixlLmFjY2Vzc1Rva2VuKSxlLm5vbmNlJiYhZS5wZW5kaW5nVG9rZW4mJmpyKHRoaXMsIm5vbmNlIixlLm5vbmNlKSxlLnBlbmRpbmdUb2tlbiYmKHRoaXMuYT1lLnBlbmRpbmdUb2tlbik7ZWxzZXtpZighZS5vYXV0aFRva2VufHwhZS5vYXV0aFRva2VuU2VjcmV0KXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsImZhaWxlZCB0byBjb25zdHJ1Y3QgYSBjcmVkZW50aWFsIik7anIodGhpcywiYWNjZXNzVG9rZW4iLGUub2F1dGhUb2tlbiksanIodGhpcywic2VjcmV0IixlLm9hdXRoVG9rZW5TZWNyZXQpfWpyKHRoaXMsInByb3ZpZGVySWQiLHQpLGpyKHRoaXMsInNpZ25Jbk1ldGhvZCIsbil9ZnVuY3Rpb24gaW8odCl7dmFyIGU9e307cmV0dXJuIHQuaWRUb2tlbiYmKGUuaWRfdG9rZW49dC5pZFRva2VuKSx0LmFjY2Vzc1Rva2VuJiYoZS5hY2Nlc3NfdG9rZW49dC5hY2Nlc3NUb2tlbiksdC5zZWNyZXQmJihlLm9hdXRoX3Rva2VuX3NlY3JldD10LnNlY3JldCksZS5wcm92aWRlcklkPXQucHJvdmlkZXJJZCx0Lm5vbmNlJiYhdC5hJiYoZS5ub25jZT10Lm5vbmNlKSxlPXtwb3N0Qm9keTpWbihlKS50b1N0cmluZygpLHJlcXVlc3RVcmk6Imh0dHA6Ly9sb2NhbGhvc3QifSx0LmEmJihkZWxldGUgZS5wb3N0Qm9keSxlLnBlbmRpbmdUb2tlbj10LmEpLGV9ZnVuY3Rpb24gb28odCl7aWYodCYmdC5wcm92aWRlcklkJiZ0LnNpZ25Jbk1ldGhvZCl7dmFyIGU9e2lkVG9rZW46dC5vYXV0aElkVG9rZW4sYWNjZXNzVG9rZW46dC5vYXV0aFRva2VuU2VjcmV0P251bGw6dC5vYXV0aEFjY2Vzc1Rva2VuLG9hdXRoVG9rZW5TZWNyZXQ6dC5vYXV0aFRva2VuU2VjcmV0LG9hdXRoVG9rZW46dC5vYXV0aFRva2VuU2VjcmV0JiZ0Lm9hdXRoQWNjZXNzVG9rZW4sbm9uY2U6dC5ub25jZSxwZW5kaW5nVG9rZW46dC5wZW5kaW5nVG9rZW59O3RyeXtyZXR1cm4gbmV3IHJvKHQucHJvdmlkZXJJZCxlLHQuc2lnbkluTWV0aG9kKX1jYXRjaCh0KXt9fXJldHVybiBudWxsfWZ1bmN0aW9uIHNvKHQsZSl7dGhpcy5RYz1lfHxbXSxxcih0aGlzLHtwcm92aWRlcklkOnQsaXNPQXV0aFByb3ZpZGVyOiEwfSksdGhpcy5JYj17fSx0aGlzLnBiPShVaSh0KXx8e30pLkphfHxudWxsLHRoaXMub2I9bnVsbH1mdW5jdGlvbiBhbyh0KXtpZigic3RyaW5nIiE9dHlwZW9mIHR8fDAhPXQuaW5kZXhPZigic2FtbC4iKSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCdTQU1MIHByb3ZpZGVyIElEcyBtdXN0IGJlIHByZWZpeGVkIHdpdGggInNhbWwuIicpO3NvLmNhbGwodGhpcyx0LFtdKX1mdW5jdGlvbiB1byh0KXtzby5jYWxsKHRoaXMsdCxNaSksdGhpcy5hPVtdfWZ1bmN0aW9uIGNvKCl7dW8uY2FsbCh0aGlzLCJmYWNlYm9vay5jb20iKX1mdW5jdGlvbiBobyh0KXtpZighdCl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCJjcmVkZW50aWFsIGZhaWxlZDogZXhwZWN0ZWQgMSBhcmd1bWVudCAodGhlIE9BdXRoIGFjY2VzcyB0b2tlbikuIik7dmFyIGU9dDtyZXR1cm4gZyh0KSYmKGU9dC5hY2Nlc3NUb2tlbiksKG5ldyBjbykuY3JlZGVudGlhbCh7YWNjZXNzVG9rZW46ZX0pfWZ1bmN0aW9uIGxvKCl7dW8uY2FsbCh0aGlzLCJnaXRodWIuY29tIil9ZnVuY3Rpb24gZm8odCl7aWYoIXQpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwiY3JlZGVudGlhbCBmYWlsZWQ6IGV4cGVjdGVkIDEgYXJndW1lbnQgKHRoZSBPQXV0aCBhY2Nlc3MgdG9rZW4pLiIpO3ZhciBlPXQ7cmV0dXJuIGcodCkmJihlPXQuYWNjZXNzVG9rZW4pLChuZXcgbG8pLmNyZWRlbnRpYWwoe2FjY2Vzc1Rva2VuOmV9KX1mdW5jdGlvbiBwbygpe3VvLmNhbGwodGhpcywiZ29vZ2xlLmNvbSIpLHRoaXMuQ2EoInByb2ZpbGUiKX1mdW5jdGlvbiB2byh0LGUpe3ZhciBuPXQ7cmV0dXJuIGcodCkmJihuPXQuaWRUb2tlbixlPXQuYWNjZXNzVG9rZW4pLChuZXcgcG8pLmNyZWRlbnRpYWwoe2lkVG9rZW46bixhY2Nlc3NUb2tlbjplfSl9ZnVuY3Rpb24gZ28oKXtzby5jYWxsKHRoaXMsInR3aXR0ZXIuY29tIixMaSl9ZnVuY3Rpb24geW8odCxlKXt2YXIgbj10O2lmKCEobj0hZyhuKT97b2F1dGhUb2tlbjp0LG9hdXRoVG9rZW5TZWNyZXQ6ZX06bikub2F1dGhUb2tlbnx8IW4ub2F1dGhUb2tlblNlY3JldCl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCJjcmVkZW50aWFsIGZhaWxlZDogZXhwZWN0ZWQgMiBhcmd1bWVudHMgKHRoZSBPQXV0aCBhY2Nlc3MgdG9rZW4gYW5kIHNlY3JldCkuIik7cmV0dXJuIG5ldyBybygidHdpdHRlci5jb20iLG4sInR3aXR0ZXIuY29tIil9ZnVuY3Rpb24gbW8odCxlLG4pe3RoaXMuYT10LHRoaXMuZj1lLGpyKHRoaXMsInByb3ZpZGVySWQiLCJwYXNzd29yZCIpLGpyKHRoaXMsInNpZ25Jbk1ldGhvZCIsbj09PXdvLkVNQUlMX0xJTktfU0lHTl9JTl9NRVRIT0Q/d28uRU1BSUxfTElOS19TSUdOX0lOX01FVEhPRDp3by5FTUFJTF9QQVNTV09SRF9TSUdOX0lOX01FVEhPRCl9ZnVuY3Rpb24gYm8odCl7cmV0dXJuIHQmJnQuZW1haWwmJnQucGFzc3dvcmQ/bmV3IG1vKHQuZW1haWwsdC5wYXNzd29yZCx0LnNpZ25Jbk1ldGhvZCk6bnVsbH1mdW5jdGlvbiB3bygpe3FyKHRoaXMse3Byb3ZpZGVySWQ6InBhc3N3b3JkIixpc09BdXRoUHJvdmlkZXI6ITF9KX1mdW5jdGlvbiBfbyh0LGUpe2lmKCEoZT1JbyhlKSkpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwiSW52YWxpZCBlbWFpbCBsaW5rISIpO3JldHVybiBuZXcgbW8odCxlLmNvZGUsd28uRU1BSUxfTElOS19TSUdOX0lOX01FVEhPRCl9ZnVuY3Rpb24gSW8odCl7cmV0dXJuKHQ9bWkodD1RaSh0KSkpJiZ0Lm9wZXJhdGlvbj09PSRyP3Q6bnVsbH1mdW5jdGlvbiBUbyh0KXtpZighKHQuZWImJnQuY2J8fHQuTGEmJnQuZWEpKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpO3RoaXMuYT10LGpyKHRoaXMsInByb3ZpZGVySWQiLCJwaG9uZSIpLHRoaXMuZmE9InBob25lIixqcih0aGlzLCJzaWduSW5NZXRob2QiLCJwaG9uZSIpfWZ1bmN0aW9uIEVvKGUpe2lmKGUmJiJwaG9uZSI9PT1lLnByb3ZpZGVySWQmJihlLnZlcmlmaWNhdGlvbklkJiZlLnZlcmlmaWNhdGlvbkNvZGV8fGUudGVtcG9yYXJ5UHJvb2YmJmUucGhvbmVOdW1iZXIpKXt2YXIgbj17fTtyZXR1cm4gaihbInZlcmlmaWNhdGlvbklkIiwidmVyaWZpY2F0aW9uQ29kZSIsInRlbXBvcmFyeVByb29mIiwicGhvbmVOdW1iZXIiXSxmdW5jdGlvbih0KXtlW3RdJiYoblt0XT1lW3RdKX0pLG5ldyBUbyhuKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTbyh0KXtyZXR1cm4gdC5hLkxhJiZ0LmEuZWE/e3RlbXBvcmFyeVByb29mOnQuYS5MYSxwaG9uZU51bWJlcjp0LmEuZWF9OntzZXNzaW9uSW5mbzp0LmEuZWIsY29kZTp0LmEuY2J9fWZ1bmN0aW9uIENvKHQpe3RyeXt0aGlzLmE9dHx8WGwuYXV0aCgpfWNhdGNoKHQpe3Rocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkVpdGhlciBhbiBpbnN0YW5jZSBvZiBmaXJlYmFzZS5hdXRoLkF1dGggbXVzdCBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gdGhlIGZpcmViYXNlLmF1dGguUGhvbmVBdXRoUHJvdmlkZXIgY29uc3RydWN0b3IsIG9yIHRoZSBkZWZhdWx0IGZpcmViYXNlIEFwcCBpbnN0YW5jZSBtdXN0IGJlIGluaXRpYWxpemVkIHZpYSBmaXJlYmFzZS5pbml0aWFsaXplQXBwKCkuIil9cXIodGhpcyx7cHJvdmlkZXJJZDoicGhvbmUiLGlzT0F1dGhQcm92aWRlcjohMX0pfWZ1bmN0aW9uIE5vKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIik7aWYoIWUpdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWNvZGUiKTtyZXR1cm4gbmV3IFRvKHtlYjp0LGNiOmV9KX1mdW5jdGlvbiBBbyh0KXtpZih0LnRlbXBvcmFyeVByb29mJiZ0LnBob25lTnVtYmVyKXJldHVybiBuZXcgVG8oe0xhOnQudGVtcG9yYXJ5UHJvb2YsZWE6dC5waG9uZU51bWJlcn0pO3ZhciBlPXQmJnQucHJvdmlkZXJJZDtpZighZXx8InBhc3N3b3JkIj09PWUpcmV0dXJuIG51bGw7dmFyIG49dCYmdC5vYXV0aEFjY2Vzc1Rva2VuLHI9dCYmdC5vYXV0aFRva2VuU2VjcmV0LGk9dCYmdC5ub25jZSxvPXQmJnQub2F1dGhJZFRva2VuLHM9dCYmdC5wZW5kaW5nVG9rZW47dHJ5e3N3aXRjaChlKXtjYXNlImdvb2dsZS5jb20iOnJldHVybiB2byhvLG4pO2Nhc2UiZmFjZWJvb2suY29tIjpyZXR1cm4gaG8obik7Y2FzZSJnaXRodWIuY29tIjpyZXR1cm4gZm8obik7Y2FzZSJ0d2l0dGVyLmNvbSI6cmV0dXJuIHlvKG4scik7ZGVmYXVsdDpyZXR1cm4gbnx8cnx8b3x8cz9zPzA9PWUuaW5kZXhPZigic2FtbC4iKT9uZXcgdG8oZSxzKTpuZXcgcm8oZSx7cGVuZGluZ1Rva2VuOnMsaWRUb2tlbjp0Lm9hdXRoSWRUb2tlbixhY2Nlc3NUb2tlbjp0Lm9hdXRoQWNjZXNzVG9rZW59LGUpOm5ldyB1byhlKS5jcmVkZW50aWFsKHtpZFRva2VuOm8sYWNjZXNzVG9rZW46bixyYXdOb25jZTppfSk6bnVsbH19Y2F0Y2godCl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGtvKHQpe2lmKCF0LmlzT0F1dGhQcm92aWRlcil0aHJvdyBuZXcgSSgiaW52YWxpZC1vYXV0aC1wcm92aWRlciIpfWZ1bmN0aW9uIFJvKHQsZSxuLHIsaSxvLHMpe2lmKHRoaXMuYz10LHRoaXMuYj1lfHxudWxsLHRoaXMuZz1ufHxudWxsLHRoaXMuZj1yfHxudWxsLHRoaXMuaT1vfHxudWxsLHRoaXMuaD1zfHxudWxsLHRoaXMuYT1pfHxudWxsLCF0aGlzLmcmJiF0aGlzLmEpdGhyb3cgbmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpO2lmKHRoaXMuZyYmdGhpcy5hKXRocm93IG5ldyBJKCJpbnZhbGlkLWF1dGgtZXZlbnQiKTtpZih0aGlzLmcmJiF0aGlzLmYpdGhyb3cgbmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpfWZ1bmN0aW9uIFBvKHQpe3JldHVybih0PXR8fHt9KS50eXBlP25ldyBSbyh0LnR5cGUsdC5ldmVudElkLHQudXJsUmVzcG9uc2UsdC5zZXNzaW9uSWQsdC5lcnJvciYmVCh0LmVycm9yKSx0LnBvc3RCb2R5LHQudGVuYW50SWQpOm51bGx9ZnVuY3Rpb24gT28oKXt0aGlzLmI9bnVsbCx0aGlzLmE9W119WWkucHJvdG90eXBlLkhhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYT9iZSh0aGlzLmEpOmJlKHRoaXMuYil9LFlpLnByb3RvdHlwZS53PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHlwZT09WGk/e211bHRpRmFjdG9yU2Vzc2lvbjp7aWRUb2tlbjp0aGlzLmF9fTp7bXVsdGlGYWN0b3JTZXNzaW9uOntwZW5kaW5nQ3JlZGVudGlhbDp0aGlzLmJ9fX0sJGkucHJvdG90eXBlLmthPWZ1bmN0aW9uKCl7fSwkaS5wcm90b3R5cGUuYj1mdW5jdGlvbigpe30sJGkucHJvdG90eXBlLmM9ZnVuY3Rpb24oKXt9LCRpLnByb3RvdHlwZS53PWZ1bmN0aW9uKCl7fSx0by5wcm90b3R5cGUua2E9ZnVuY3Rpb24odCl7cmV0dXJuIGhhKHQsZW8odGhpcykpfSx0by5wcm90b3R5cGUuYj1mdW5jdGlvbih0LGUpe3ZhciBuPWVvKHRoaXMpO3JldHVybiBuLmlkVG9rZW49ZSxsYSh0LG4pfSx0by5wcm90b3R5cGUuYz1mdW5jdGlvbih0LGUpe3JldHVybiBaaShmYSh0LGVvKHRoaXMpKSxlKX0sdG8ucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXtyZXR1cm57cHJvdmlkZXJJZDp0aGlzLnByb3ZpZGVySWQsc2lnbkluTWV0aG9kOnRoaXMuc2lnbkluTWV0aG9kLHBlbmRpbmdUb2tlbjp0aGlzLmF9fSxyby5wcm90b3R5cGUua2E9ZnVuY3Rpb24odCl7cmV0dXJuIGhhKHQsaW8odGhpcykpfSxyby5wcm90b3R5cGUuYj1mdW5jdGlvbih0LGUpe3ZhciBuPWlvKHRoaXMpO3JldHVybiBuLmlkVG9rZW49ZSxsYSh0LG4pfSxyby5wcm90b3R5cGUuYz1mdW5jdGlvbih0LGUpe3JldHVybiBaaShmYSh0LGlvKHRoaXMpKSxlKX0scm8ucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXt2YXIgdD17cHJvdmlkZXJJZDp0aGlzLnByb3ZpZGVySWQsc2lnbkluTWV0aG9kOnRoaXMuc2lnbkluTWV0aG9kfTtyZXR1cm4gdGhpcy5pZFRva2VuJiYodC5vYXV0aElkVG9rZW49dGhpcy5pZFRva2VuKSx0aGlzLmFjY2Vzc1Rva2VuJiYodC5vYXV0aEFjY2Vzc1Rva2VuPXRoaXMuYWNjZXNzVG9rZW4pLHRoaXMuc2VjcmV0JiYodC5vYXV0aFRva2VuU2VjcmV0PXRoaXMuc2VjcmV0KSx0aGlzLm5vbmNlJiYodC5ub25jZT10aGlzLm5vbmNlKSx0aGlzLmEmJih0LnBlbmRpbmdUb2tlbj10aGlzLmEpLHR9LHNvLnByb3RvdHlwZS5LYT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5JYj1jdCh0KSx0aGlzfSx3KGFvLHNvKSx3KHVvLHNvKSx1by5wcm90b3R5cGUuQ2E9ZnVuY3Rpb24odCl7cmV0dXJuIEsodGhpcy5hLHQpfHx0aGlzLmEucHVzaCh0KSx0aGlzfSx1by5wcm90b3R5cGUuUWI9ZnVuY3Rpb24oKXtyZXR1cm4geih0aGlzLmEpfSx1by5wcm90b3R5cGUuY3JlZGVudGlhbD1mdW5jdGlvbih0LGUpe2U9Zyh0KT97aWRUb2tlbjp0LmlkVG9rZW58fG51bGwsYWNjZXNzVG9rZW46dC5hY2Nlc3NUb2tlbnx8bnVsbCxub25jZTp0LnJhd05vbmNlfHxudWxsfTp7aWRUb2tlbjp0fHxudWxsLGFjY2Vzc1Rva2VuOmV8fG51bGx9O2lmKCFlLmlkVG9rZW4mJiFlLmFjY2Vzc1Rva2VuKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsImNyZWRlbnRpYWwgZmFpbGVkOiBtdXN0IHByb3ZpZGUgdGhlIElEIHRva2VuIGFuZC9vciB0aGUgYWNjZXNzIHRva2VuLiIpO3JldHVybiBuZXcgcm8odGhpcy5wcm92aWRlcklkLGUsdGhpcy5wcm92aWRlcklkKX0sdyhjbyx1byksanIoY28sIlBST1ZJREVSX0lEIiwiZmFjZWJvb2suY29tIiksanIoY28sIkZBQ0VCT09LX1NJR05fSU5fTUVUSE9EIiwiZmFjZWJvb2suY29tIiksdyhsbyx1byksanIobG8sIlBST1ZJREVSX0lEIiwiZ2l0aHViLmNvbSIpLGpyKGxvLCJHSVRIVUJfU0lHTl9JTl9NRVRIT0QiLCJnaXRodWIuY29tIiksdyhwbyx1byksanIocG8sIlBST1ZJREVSX0lEIiwiZ29vZ2xlLmNvbSIpLGpyKHBvLCJHT09HTEVfU0lHTl9JTl9NRVRIT0QiLCJnb29nbGUuY29tIiksdyhnbyxzbyksanIoZ28sIlBST1ZJREVSX0lEIiwidHdpdHRlci5jb20iKSxqcihnbywiVFdJVFRFUl9TSUdOX0lOX01FVEhPRCIsInR3aXR0ZXIuY29tIiksbW8ucHJvdG90eXBlLmthPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNpZ25Jbk1ldGhvZD09d28uRU1BSUxfTElOS19TSUdOX0lOX01FVEhPRD96YSh0LHdhLHtlbWFpbDp0aGlzLmEsb29iQ29kZTp0aGlzLmZ9KTp6YSh0LEJhLHtlbWFpbDp0aGlzLmEscGFzc3dvcmQ6dGhpcy5mfSl9LG1vLnByb3RvdHlwZS5iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2lnbkluTWV0aG9kPT13by5FTUFJTF9MSU5LX1NJR05fSU5fTUVUSE9EP3phKHQsX2Ese2lkVG9rZW46ZSxlbWFpbDp0aGlzLmEsb29iQ29kZTp0aGlzLmZ9KTp6YSh0LHhhLHtpZFRva2VuOmUsZW1haWw6dGhpcy5hLHBhc3N3b3JkOnRoaXMuZn0pfSxtby5wcm90b3R5cGUuYz1mdW5jdGlvbih0LGUpe3JldHVybiBaaSh0aGlzLmthKHQpLGUpfSxtby5wcm90b3R5cGUudz1mdW5jdGlvbigpe3JldHVybntlbWFpbDp0aGlzLmEscGFzc3dvcmQ6dGhpcy5mLHNpZ25Jbk1ldGhvZDp0aGlzLnNpZ25Jbk1ldGhvZH19LHFyKHdvLHtQUk9WSURFUl9JRDoicGFzc3dvcmQifSkscXIod28se0VNQUlMX0xJTktfU0lHTl9JTl9NRVRIT0Q6ImVtYWlsTGluayJ9KSxxcih3byx7RU1BSUxfUEFTU1dPUkRfU0lHTl9JTl9NRVRIT0Q6InBhc3N3b3JkIn0pLFRvLnByb3RvdHlwZS5rYT1mdW5jdGlvbih0KXtyZXR1cm4gdC5mYihTbyh0aGlzKSl9LFRvLnByb3RvdHlwZS5iPWZ1bmN0aW9uKHQsZSl7dmFyIG49U28odGhpcyk7cmV0dXJuIG4uaWRUb2tlbj1lLHphKHQsV2Esbil9LFRvLnByb3RvdHlwZS5jPWZ1bmN0aW9uKHQsZSl7dmFyIG49U28odGhpcyk7cmV0dXJuIG4ub3BlcmF0aW9uPSJSRUFVVEgiLFppKHQ9emEodCxIYSxuKSxlKX0sVG8ucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXt2YXIgdD17cHJvdmlkZXJJZDoicGhvbmUifTtyZXR1cm4gdGhpcy5hLmViJiYodC52ZXJpZmljYXRpb25JZD10aGlzLmEuZWIpLHRoaXMuYS5jYiYmKHQudmVyaWZpY2F0aW9uQ29kZT10aGlzLmEuY2IpLHRoaXMuYS5MYSYmKHQudGVtcG9yYXJ5UHJvb2Y9dGhpcy5hLkxhKSx0aGlzLmEuZWEmJih0LnBob25lTnVtYmVyPXRoaXMuYS5lYSksdH0sQ28ucHJvdG90eXBlLmZiPWZ1bmN0aW9uKHIsaSl7dmFyIG89dGhpcy5hLmE7cmV0dXJuIGJlKGkudmVyaWZ5KCkpLnRoZW4oZnVuY3Rpb24obil7aWYoInN0cmluZyIhPXR5cGVvZiBuKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkFuIGltcGxlbWVudGF0aW9uIG9mIGZpcmViYXNlLmF1dGguQXBwbGljYXRpb25WZXJpZmllci5wcm90b3R5cGUudmVyaWZ5KCkgbXVzdCByZXR1cm4gYSBmaXJlYmFzZS5Qcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhIHN0cmluZy4iKTtpZigicmVjYXB0Y2hhIiE9PWkudHlwZSl0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCdPbmx5IGZpcmViYXNlLmF1dGguQXBwbGljYXRpb25WZXJpZmllcnMgd2l0aCB0eXBlPSJyZWNhcHRjaGEiIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkLicpO3ZhciB0PWcocik/ci5zZXNzaW9uOm51bGwsZT1nKHIpP3IucGhvbmVOdW1iZXI6cix0PXQmJnQudHlwZT09WGk/dC5IYSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHphKG8sTWEse2lkVG9rZW46dCxwaG9uZUVucm9sbG1lbnRJbmZvOntwaG9uZU51bWJlcjplLHJlY2FwdGNoYVRva2VuOm59fSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5waG9uZVNlc3Npb25JbmZvLnNlc3Npb25JbmZvfSl9KTp0JiZ0LnR5cGU9PUppP3QuSGEoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlPW8sdD17bWZhUGVuZGluZ0NyZWRlbnRpYWw6dCxtZmFFbnJvbGxtZW50SWQ6ci5tdWx0aUZhY3RvckhpbnQmJnIubXVsdGlGYWN0b3JIaW50LnVpZHx8ci5tdWx0aUZhY3RvclVpZCxwaG9uZVNpZ25JbkluZm86e3JlY2FwdGNoYVRva2VuOm59fSx6YShlLEZhLHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQucGhvbmVSZXNwb25zZUluZm8uc2Vzc2lvbkluZm99KTt2YXIgZX0pOnphKG8sT2Ese3Bob25lTnVtYmVyOmUscmVjYXB0Y2hhVG9rZW46bn0pO3JldHVybiB0LnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGkucmVzZXQmJmkucmVzZXQoKSx0fSxmdW5jdGlvbih0KXt0aHJvdyJmdW5jdGlvbiI9PXR5cGVvZiBpLnJlc2V0JiZpLnJlc2V0KCksdH0pfSl9LHFyKENvLHtQUk9WSURFUl9JRDoicGhvbmUifSkscXIoQ28se1BIT05FX1NJR05fSU5fTUVUSE9EOiJwaG9uZSJ9KSxSby5wcm90b3R5cGUuZ2V0VWlkPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQucHVzaCh0aGlzLmMpLHRoaXMuYiYmdC5wdXNoKHRoaXMuYiksdGhpcy5mJiZ0LnB1c2godGhpcy5mKSx0aGlzLmgmJnQucHVzaCh0aGlzLmgpLHQuam9pbigiLSIpfSxSby5wcm90b3R5cGUuVD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9LFJvLnByb3RvdHlwZS53PWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6dGhpcy5jLGV2ZW50SWQ6dGhpcy5iLHVybFJlc3BvbnNlOnRoaXMuZyxzZXNzaW9uSWQ6dGhpcy5mLHBvc3RCb2R5OnRoaXMuaSx0ZW5hbnRJZDp0aGlzLmgsZXJyb3I6dGhpcy5hJiZ0aGlzLmEudygpfX07dmFyIERvLHhvPW51bGw7ZnVuY3Rpb24gTG8odCl7dmFyIGU9InVuYXV0aG9yaXplZC1kb21haW4iLG49dm9pZCAwLHI9a24odCk7dD1yLmEsImNocm9tZS1leHRlbnNpb24iPT0ocj1yLmMpP249RnQoIlRoaXMgY2hyb21lIGV4dGVuc2lvbiBJRCAoY2hyb21lLWV4dGVuc2lvbjovLyVzKSBpcyBub3QgYXV0aG9yaXplZCB0byBydW4gdGhpcyBvcGVyYXRpb24uIEFkZCBpdCB0byB0aGUgT0F1dGggcmVkaXJlY3QgZG9tYWlucyBsaXN0IGluIHRoZSBGaXJlYmFzZSBjb25zb2xlIC0+IEF1dGggc2VjdGlvbiAtPiBTaWduIGluIG1ldGhvZCB0YWIuIix0KToiaHR0cCI9PXJ8fCJodHRwcyI9PXI/bj1GdCgiVGhpcyBkb21haW4gKCVzKSBpcyBub3QgYXV0aG9yaXplZCB0byBydW4gdGhpcyBvcGVyYXRpb24uIEFkZCBpdCB0byB0aGUgT0F1dGggcmVkaXJlY3QgZG9tYWlucyBsaXN0IGluIHRoZSBGaXJlYmFzZSBjb25zb2xlIC0+IEF1dGggc2VjdGlvbiAtPiBTaWduIGluIG1ldGhvZCB0YWIuIix0KTplPSJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IixJLmNhbGwodGhpcyxlLG4pfWZ1bmN0aW9uIE1vKHQsZSxuKXtJLmNhbGwodGhpcyx0LG4pLCh0PWV8fHt9KS5KYiYmanIodGhpcywiZW1haWwiLHQuSmIpLHQuZWEmJmpyKHRoaXMsInBob25lTnVtYmVyIix0LmVhKSx0LmNyZWRlbnRpYWwmJmpyKHRoaXMsImNyZWRlbnRpYWwiLHQuY3JlZGVudGlhbCksdC5aYiYmanIodGhpcywidGVuYW50SWQiLHQuWmIpfWZ1bmN0aW9uIEZvKHQpe2lmKHQuY29kZSl7dmFyIGU9dC5jb2RlfHwiIjswPT1lLmluZGV4T2YoUykmJihlPWUuc3Vic3RyaW5nKFMubGVuZ3RoKSk7dmFyIG49e2NyZWRlbnRpYWw6QW8odCksWmI6dC50ZW5hbnRJZH07aWYodC5lbWFpbCluLkpiPXQuZW1haWw7ZWxzZSBpZih0LnBob25lTnVtYmVyKW4uZWE9dC5waG9uZU51bWJlcjtlbHNlIGlmKCFuLmNyZWRlbnRpYWwpcmV0dXJuIG5ldyBJKGUsdC5tZXNzYWdlfHx2b2lkIDApO3JldHVybiBuZXcgTW8oZSxuLHQubWVzc2FnZSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gVW8oKXt9ZnVuY3Rpb24gam8odCl7cmV0dXJuIHQuY3x8KHQuYz10LmIoKSl9ZnVuY3Rpb24gcW8oKXt9ZnVuY3Rpb24gVm8odCl7aWYodC5mfHwidW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0fHwidW5kZWZpbmVkIj09dHlwZW9mIEFjdGl2ZVhPYmplY3QpcmV0dXJuIHQuZjtmb3IodmFyIGU9WyJNU1hNTDIuWE1MSFRUUC42LjAiLCJNU1hNTDIuWE1MSFRUUC4zLjAiLCJNU1hNTDIuWE1MSFRUUCIsIk1pY3Jvc29mdC5YTUxIVFRQIl0sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3RyeXtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QociksdC5mPXJ9Y2F0Y2godCl7fX10aHJvdyBFcnJvcigiQ291bGQgbm90IGNyZWF0ZSBBY3RpdmVYT2JqZWN0LiBBY3RpdmVYIG1pZ2h0IGJlIGRpc2FibGVkLCBvciBNU1hNTCBtaWdodCBub3QgYmUgaW5zdGFsbGVkIil9ZnVuY3Rpb24gQm8oKXt9ZnVuY3Rpb24gS28oKXt0aGlzLmE9bmV3IFhEb21haW5SZXF1ZXN0LHRoaXMucmVhZHlTdGF0ZT0wLHRoaXMub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsdGhpcy5yZXNwb25zZVR5cGU9dGhpcy5yZXNwb25zZVRleHQ9dGhpcy5yZXNwb25zZT0iIix0aGlzLnN0YXR1cz0tMSx0aGlzLnN0YXR1c1RleHQ9IiIsdGhpcy5hLm9ubG9hZD1tKHRoaXMucWMsdGhpcyksdGhpcy5hLm9uZXJyb3I9bSh0aGlzLlNiLHRoaXMpLHRoaXMuYS5vbnByb2dyZXNzPW0odGhpcy5yYyx0aGlzKSx0aGlzLmEub250aW1lb3V0PW0odGhpcy52Yyx0aGlzKX1mdW5jdGlvbiBXbyh0LGUpe3QucmVhZHlTdGF0ZT1lLHQub25yZWFkeXN0YXRlY2hhbmdlJiZ0Lm9ucmVhZHlzdGF0ZWNoYW5nZSgpfWZ1bmN0aW9uIEhvKHQsZSxuKXt0aGlzLnJlc2V0KHQsZSxuLHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIEdvKHQpe3RoaXMuZj10LHRoaXMuYj10aGlzLmM9dGhpcy5hPW51bGx9ZnVuY3Rpb24gem8odCxlKXt0aGlzLm5hbWU9dCx0aGlzLnZhbHVlPWV9dyhMbyxJKSx3KE1vLEkpLE1vLnByb3RvdHlwZS53PWZ1bmN0aW9uKCl7dmFyIHQ9e2NvZGU6dGhpcy5jb2RlLG1lc3NhZ2U6dGhpcy5tZXNzYWdlfTt0aGlzLmVtYWlsJiYodC5lbWFpbD10aGlzLmVtYWlsKSx0aGlzLnBob25lTnVtYmVyJiYodC5waG9uZU51bWJlcj10aGlzLnBob25lTnVtYmVyKSx0aGlzLnRlbmFudElkJiYodC50ZW5hbnRJZD10aGlzLnRlbmFudElkKTt2YXIgZT10aGlzLmNyZWRlbnRpYWwmJnRoaXMuY3JlZGVudGlhbC53KCk7cmV0dXJuIGUmJmx0KHQsZSksdH0sTW8ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLncoKX0sVW8ucHJvdG90eXBlLmM9bnVsbCx3KHFvLFVvKSxxby5wcm90b3R5cGUuYT1mdW5jdGlvbigpe3ZhciB0PVZvKHRoaXMpO3JldHVybiB0P25ldyBBY3RpdmVYT2JqZWN0KHQpOm5ldyBYTUxIdHRwUmVxdWVzdH0scW8ucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gVm8odGhpcykmJih0WzBdPSEwLHRbMV09ITApLHR9LERvPW5ldyBxbyx3KEJvLFVvKSxCby5wcm90b3R5cGUuYT1mdW5jdGlvbigpe3ZhciB0PW5ldyBYTUxIdHRwUmVxdWVzdDtpZigid2l0aENyZWRlbnRpYWxzImluIHQpcmV0dXJuIHQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBYRG9tYWluUmVxdWVzdClyZXR1cm4gbmV3IEtvO3Rocm93IEVycm9yKCJVbnN1cHBvcnRlZCBicm93c2VyIil9LEJvLnByb3RvdHlwZS5iPWZ1bmN0aW9uKCl7cmV0dXJue319LCh0PUtvLnByb3RvdHlwZSkub3Blbj1mdW5jdGlvbih0LGUsbil7aWYobnVsbCE9biYmIW4pdGhyb3cgRXJyb3IoIk9ubHkgYXN5bmMgcmVxdWVzdHMgYXJlIHN1cHBvcnRlZC4iKTt0aGlzLmEub3Blbih0LGUpfSx0LnNlbmQ9ZnVuY3Rpb24odCl7aWYodCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IEVycm9yKCJPbmx5IHN0cmluZyBkYXRhIGlzIHN1cHBvcnRlZCIpO3RoaXMuYS5zZW5kKHQpfWVsc2UgdGhpcy5hLnNlbmQoKX0sdC5hYm9ydD1mdW5jdGlvbigpe3RoaXMuYS5hYm9ydCgpfSx0LnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24oKXt9LHQuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuImNvbnRlbnQtdHlwZSI9PXQudG9Mb3dlckNhc2UoKT90aGlzLmEuY29udGVudFR5cGU6IiJ9LHQucWM9ZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz0yMDAsdGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD10aGlzLmEucmVzcG9uc2VUZXh0LFdvKHRoaXMsNCl9LHQuU2I9ZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz01MDAsdGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD0iIixXbyh0aGlzLDQpfSx0LnZjPWZ1bmN0aW9uKCl7dGhpcy5TYigpfSx0LnJjPWZ1bmN0aW9uKCl7dGhpcy5zdGF0dXM9MjAwLFdvKHRoaXMsMSl9LHQuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzPWZ1bmN0aW9uKCl7cmV0dXJuImNvbnRlbnQtdHlwZTogIit0aGlzLmEuY29udGVudFR5cGV9LEhvLnByb3RvdHlwZS5hPW51bGwsSG8ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKHQsZSxuLHIsaSl7ZGVsZXRlIHRoaXMuYX0sem8ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZX07dmFyIFFvPW5ldyB6bygiU0VWRVJFIiwxZTMpLFlvPW5ldyB6bygiV0FSTklORyIsOTAwKSxYbz1uZXcgem8oIkNPTkZJRyIsNzAwKSxKbz1uZXcgem8oIkZJTkUiLDUwMCk7R28ucHJvdG90eXBlLmxvZz1mdW5jdGlvbih0LGUsbil7aWYodC52YWx1ZT49ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5jfHwoZS5hP3QoZS5hKTooTygiUm9vdCBsb2dnZXIgaGFzIG5vIGxldmVsIHNldC4iKSxudWxsKSl9KHRoaXMpLnZhbHVlKWZvcih2KGUpJiYoZT1lKCkpLHQ9bmV3IEhvKHQsU3RyaW5nKGUpLHRoaXMuZiksbiYmKHQuYT1uKSxuPXRoaXM7bjspbj1uLmF9O3ZhciAkbyxabz17fSx0cz1udWxsO2Z1bmN0aW9uIGVzKHQpe3ZhciBlLG4scjtyZXR1cm4gdHN8fCh0cz1uZXcgR28oIiIpLChab1siIl09dHMpLmM9WG8pLChlPVpvW3RdKXx8KGU9bmV3IEdvKHQpLHI9dC5sYXN0SW5kZXhPZigiLiIpLG49dC5zdWJzdHIocisxKSwocj1lcyh0LnN1YnN0cigwLHIpKSkuYnx8KHIuYj17fSksKHIuYltuXT1lKS5hPXIsWm9bdF09ZSksZX1mdW5jdGlvbiBucyh0LGUpe3QmJnQubG9nKEpvLGUsdm9pZCAwKX1mdW5jdGlvbiBycyh0KXt0aGlzLmY9dH1mdW5jdGlvbiBpcyh0KXtsbi5jYWxsKHRoaXMpLHRoaXMudT10LHRoaXMuaD12b2lkIDAsdGhpcy5yZWFkeVN0YXRlPW9zLHRoaXMuc3RhdHVzPTAsdGhpcy5yZXNwb25zZVR5cGU9dGhpcy5yZXNwb25zZVRleHQ9dGhpcy5yZXNwb25zZT10aGlzLnN0YXR1c1RleHQ9IiIsdGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCx0aGlzLmw9bmV3IEhlYWRlcnMsdGhpcy5iPW51bGwsdGhpcy5zPSJHRVQiLHRoaXMuZj0iIix0aGlzLmE9ITEsdGhpcy5pPWVzKCJnb29nLm5ldC5GZXRjaFhtbEh0dHAiKSx0aGlzLm09dGhpcy5jPXRoaXMuZz1udWxsfXcocnMsVW8pLHJzLnByb3RvdHlwZS5hPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpcyh0aGlzLmYpfSxycy5wcm90b3R5cGUuYj0oJG89e30sZnVuY3Rpb24oKXtyZXR1cm4gJG99KSx3KGlzLGxuKTt2YXIgb3M9MDtmdW5jdGlvbiBzcyh0KXt0LmMucmVhZCgpLnRoZW4odC5wYy5iaW5kKHQpKS5jYXRjaCh0LlVhLmJpbmQodCkpfWZ1bmN0aW9uIGFzKHQpe3QucmVhZHlTdGF0ZT00LHQuZz1udWxsLHQuYz1udWxsLHQubT1udWxsLHVzKHQpfWZ1bmN0aW9uIHVzKHQpe3Qub25yZWFkeXN0YXRlY2hhbmdlJiZ0Lm9ucmVhZHlzdGF0ZWNoYW5nZS5jYWxsKHQpfWZ1bmN0aW9uIGNzKHQpe2xuLmNhbGwodGhpcyksdGhpcy5oZWFkZXJzPW5ldyBibix0aGlzLkQ9dHx8bnVsbCx0aGlzLmM9ITEsdGhpcy5DPXRoaXMuYT1udWxsLHRoaXMuaD10aGlzLlI9dGhpcy5sPSIiLHRoaXMuZj10aGlzLk89dGhpcy5pPXRoaXMuSj0hMSx0aGlzLmc9MCx0aGlzLnM9bnVsbCx0aGlzLm09aHMsdGhpcy51PXRoaXMuUz0hMX0odD1pcy5wcm90b3R5cGUpLm9wZW49ZnVuY3Rpb24odCxlKXtpZih0aGlzLnJlYWR5U3RhdGUhPW9zKXRocm93IHRoaXMuYWJvcnQoKSxFcnJvcigiRXJyb3IgcmVvcGVuaW5nIGEgY29ubmVjdGlvbiIpO3RoaXMucz10LHRoaXMuZj1lLHRoaXMucmVhZHlTdGF0ZT0xLHVzKHRoaXMpfSx0LnNlbmQ9ZnVuY3Rpb24odCl7aWYoMSE9dGhpcy5yZWFkeVN0YXRlKXRocm93IHRoaXMuYWJvcnQoKSxFcnJvcigibmVlZCB0byBjYWxsIG9wZW4oKSBmaXJzdC4gIik7dGhpcy5hPSEwO3ZhciBlPXtoZWFkZXJzOnRoaXMubCxtZXRob2Q6dGhpcy5zLGNyZWRlbnRpYWxzOnRoaXMuaCxjYWNoZTp2b2lkIDB9O3QmJihlLmJvZHk9dCksdGhpcy51LmZldGNoKG5ldyBSZXF1ZXN0KHRoaXMuZixlKSkudGhlbih0aGlzLnVjLmJpbmQodGhpcyksdGhpcy5VYS5iaW5kKHRoaXMpKX0sdC5hYm9ydD1mdW5jdGlvbigpe3RoaXMucmVzcG9uc2U9dGhpcy5yZXNwb25zZVRleHQ9IiIsdGhpcy5sPW5ldyBIZWFkZXJzLHRoaXMuc3RhdHVzPTAsdGhpcy5jJiZ0aGlzLmMuY2FuY2VsKCJSZXF1ZXN0IHdhcyBhYm9ydGVkLiIpLDE8PXRoaXMucmVhZHlTdGF0ZSYmdGhpcy5hJiY0IT10aGlzLnJlYWR5U3RhdGUmJih0aGlzLmE9ITEsYXModGhpcykpLHRoaXMucmVhZHlTdGF0ZT1vc30sdC51Yz1mdW5jdGlvbih0KXt0aGlzLmEmJih0aGlzLmc9dCx0aGlzLmJ8fCh0aGlzLnN0YXR1cz10aGlzLmcuc3RhdHVzLHRoaXMuc3RhdHVzVGV4dD10aGlzLmcuc3RhdHVzVGV4dCx0aGlzLmI9dC5oZWFkZXJzLHRoaXMucmVhZHlTdGF0ZT0yLHVzKHRoaXMpKSx0aGlzLmEmJih0aGlzLnJlYWR5U3RhdGU9Myx1cyh0aGlzKSx0aGlzLmEmJigiYXJyYXlidWZmZXIiPT09dGhpcy5yZXNwb25zZVR5cGU/dC5hcnJheUJ1ZmZlcigpLnRoZW4odGhpcy5zYy5iaW5kKHRoaXMpLHRoaXMuVWEuYmluZCh0aGlzKSk6dm9pZCAwIT09bC5SZWFkYWJsZVN0cmVhbSYmImJvZHkiaW4gdD8odGhpcy5yZXNwb25zZT10aGlzLnJlc3BvbnNlVGV4dD0iIix0aGlzLmM9dC5ib2R5LmdldFJlYWRlcigpLHRoaXMubT1uZXcgVGV4dERlY29kZXIsc3ModGhpcykpOnQudGV4dCgpLnRoZW4odGhpcy50Yy5iaW5kKHRoaXMpLHRoaXMuVWEuYmluZCh0aGlzKSkpKSl9LHQucGM9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5hJiYoKGU9dGhpcy5tLmRlY29kZSh0LnZhbHVlfHxuZXcgVWludDhBcnJheSgwKSx7c3RyZWFtOiF0LmRvbmV9KSkmJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0Kz1lKSwodC5kb25lP2FzOnVzKSh0aGlzKSwzPT10aGlzLnJlYWR5U3RhdGUmJnNzKHRoaXMpKX0sdC50Yz1mdW5jdGlvbih0KXt0aGlzLmEmJih0aGlzLnJlc3BvbnNlPXRoaXMucmVzcG9uc2VUZXh0PXQsYXModGhpcykpfSx0LnNjPWZ1bmN0aW9uKHQpe3RoaXMuYSYmKHRoaXMucmVzcG9uc2U9dCxhcyh0aGlzKSl9LHQuVWE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pO2UmJmUubG9nKFlvLCJGYWlsZWQgdG8gZmV0Y2ggdXJsICIrdGhpcy5mLHQgaW5zdGFuY2VvZiBFcnJvcj90OkVycm9yKHQpKSx0aGlzLmEmJmFzKHRoaXMpfSx0LnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24odCxlKXt0aGlzLmwuYXBwZW5kKHQsZSl9LHQuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYj90aGlzLmIuZ2V0KHQudG9Mb3dlckNhc2UoKSl8fCIiOigodD10aGlzLmkpJiZ0LmxvZyhZbywiQXR0ZW1wdGluZyB0byBnZXQgcmVzcG9uc2UgaGVhZGVyIGJ1dCBubyBoZWFkZXJzIGhhdmUgYmVlbiByZWNlaXZlZCBmb3IgdXJsOiAiK3RoaXMuZix2b2lkIDApLCIiKX0sdC5nZXRBbGxSZXNwb25zZUhlYWRlcnM9ZnVuY3Rpb24oKXtpZighdGhpcy5iKXt2YXIgdD10aGlzLmk7cmV0dXJuIHQmJnQubG9nKFlvLCJBdHRlbXB0aW5nIHRvIGdldCBhbGwgcmVzcG9uc2UgaGVhZGVycyBidXQgbm8gaGVhZGVycyBoYXZlIGJlZW4gcmVjZWl2ZWQgZm9yIHVybDogIit0aGlzLmYsdm9pZCAwKSwiIn1mb3IodmFyIHQ9W10sZT10aGlzLmIuZW50cmllcygpLG49ZS5uZXh0KCk7IW4uZG9uZTspbj1uLnZhbHVlLHQucHVzaChuWzBdKyI6ICIrblsxXSksbj1lLm5leHQoKTtyZXR1cm4gdC5qb2luKCJcclxuIil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpcy5wcm90b3R5cGUsIndpdGhDcmVkZW50aWFscyIse2dldDpmdW5jdGlvbigpe3JldHVybiJpbmNsdWRlIj09PXRoaXMuaH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaD10PyJpbmNsdWRlIjoic2FtZS1vcmlnaW4ifX0pLHcoY3MsbG4pO3ZhciBocz0iIjtjcy5wcm90b3R5cGUuYj1lcygiZ29vZy5uZXQuWGhySW8iKTt2YXIgbHM9L15odHRwcz8kL2ksZnM9WyJQT1NUIiwiUFVUIl07ZnVuY3Rpb24gcHMoZSx0LG4scixpKXtpZihlLmEpdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK2UubCsiOyBuZXdVcmk9Iit0KTtuPW4/bi50b1VwcGVyQ2FzZSgpOiJHRVQiLGUubD10LGUuaD0iIixlLlI9bixlLko9ITEsZS5jPSEwLGUuYT0oZS5EfHxEbykuYSgpLGUuQz1lLkQ/am8oZS5EKTpqbyhEbyksZS5hLm9ucmVhZHlzdGF0ZWNoYW5nZT1tKGUuVmIsZSk7dHJ5e25zKGUuYixJcyhlLCJPcGVuaW5nIFhociIpKSxlLk89ITAsZS5hLm9wZW4obixTdHJpbmcodCksITApLGUuTz0hMX1jYXRjaCh0KXtyZXR1cm4gbnMoZS5iLElzKGUsIkVycm9yIG9wZW5pbmcgWGhyOiAiK3QubWVzc2FnZSkpLHZvaWQgdnMoZSx0KX10PXJ8fCIiO3ZhciBvLHM9bmV3IGJuKGUuaGVhZGVycyk7aSYmZnVuY3Rpb24odCxlKXtpZih0LmZvckVhY2gmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvckVhY2gpdC5mb3JFYWNoKGUsdm9pZCAwKTtlbHNlIGlmKGQodCl8fCJzdHJpbmciPT10eXBlb2YgdClqKHQsZSx2b2lkIDApO2Vsc2UgZm9yKHZhciBuPW1uKHQpLHI9eW4odCksaT1yLmxlbmd0aCxvPTA7bzxpO28rKyllLmNhbGwodm9pZCAwLHJbb10sbiYmbltvXSx0KX0oaSxmdW5jdGlvbih0LGUpe3Muc2V0KGUsdCl9KSxpPWZ1bmN0aW9uKHQpe3Q6e2Zvcih2YXIgZT1kcyxuPXQubGVuZ3RoLHI9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoIiIpOnQsaT0wO2k8bjtpKyspaWYoaSBpbiByJiZlLmNhbGwodm9pZCAwLHJbaV0saSx0KSl7ZT1pO2JyZWFrIHR9ZT0tMX1yZXR1cm4gZTwwP251bGw6InN0cmluZyI9PXR5cGVvZiB0P3QuY2hhckF0KGUpOnRbZV19KHMuWSgpKSxyPWwuRm9ybURhdGEmJnQgaW5zdGFuY2VvZiBsLkZvcm1EYXRhLCFLKGZzLG4pfHxpfHxyfHxzLnNldCgiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKSxzLmZvckVhY2goZnVuY3Rpb24odCxlKXt0aGlzLmEuc2V0UmVxdWVzdEhlYWRlcihlLHQpfSxlKSxlLm0mJihlLmEucmVzcG9uc2VUeXBlPWUubSksIndpdGhDcmVkZW50aWFscyJpbiBlLmEmJmUuYS53aXRoQ3JlZGVudGlhbHMhPT1lLlMmJihlLmEud2l0aENyZWRlbnRpYWxzPWUuUyk7dHJ5e2JzKGUpLDA8ZS5nJiYoZS51PShvPWUuYSxCdCYmSnQoOSkmJiJudW1iZXIiPT10eXBlb2Ygby50aW1lb3V0JiZ2b2lkIDAhPT1vLm9udGltZW91dCksbnMoZS5iLElzKGUsIldpbGwgYWJvcnQgYWZ0ZXIgIitlLmcrIm1zIGlmIGluY29tcGxldGUsIHhocjIgIitlLnUpKSxlLnU/KGUuYS50aW1lb3V0PWUuZyxlLmEub250aW1lb3V0PW0oZS5NYSxlKSk6ZS5zPXZuKGUuTWEsZS5nLGUpKSxucyhlLmIsSXMoZSwiU2VuZGluZyByZXF1ZXN0IikpLGUuaT0hMCxlLmEuc2VuZCh0KSxlLmk9ITF9Y2F0Y2godCl7bnMoZS5iLElzKGUsIlNlbmQgZXJyb3I6ICIrdC5tZXNzYWdlKSksdnMoZSx0KX19ZnVuY3Rpb24gZHModCl7cmV0dXJuImNvbnRlbnQtdHlwZSI9PXQudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB2cyh0LGUpe3QuYz0hMSx0LmEmJih0LmY9ITAsdC5hLmFib3J0KCksdC5mPSExKSx0Lmg9ZSxncyh0KSxtcyh0KX1mdW5jdGlvbiBncyh0KXt0Lkp8fCh0Lko9ITAsdC5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLHQuZGlzcGF0Y2hFdmVudCgiZXJyb3IiKSl9ZnVuY3Rpb24geXMoZSl7aWYoZS5jJiZ2b2lkIDAhPT1oKWlmKGUuQ1sxXSYmND09d3MoZSkmJjI9PV9zKGUpKW5zKGUuYixJcyhlLCJMb2NhbCByZXF1ZXN0IGVycm9yIGRldGVjdGVkIGFuZCBpZ25vcmVkIikpO2Vsc2UgaWYoZS5pJiY0PT13cyhlKSl2bihlLlZiLDAsZSk7ZWxzZSBpZihlLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSw0PT13cyhlKSl7bnMoZS5iLElzKGUsIlJlcXVlc3QgY29tcGxldGUiKSksZS5jPSExO3RyeXt2YXIgdCxuLHIsaSxvPV9zKGUpO3Q6c3dpdGNoKG8pe2Nhc2UgMjAwOmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjA0OmNhc2UgMjA2OmNhc2UgMzA0OmNhc2UgMTIyMzp2YXIgcz0hMDticmVhayB0O2RlZmF1bHQ6cz0hMX1pZigodD1zKXx8KChuPTA9PT1vKSYmKCEoaT1TdHJpbmcoZS5sKS5tYXRjaChJbilbMV18fG51bGwpJiZsLnNlbGYmJmwuc2VsZi5sb2NhdGlvbiYmKGk9KHI9bC5zZWxmLmxvY2F0aW9uLnByb3RvY29sKS5zdWJzdHIoMCxyLmxlbmd0aC0xKSksbj0hbHMudGVzdChpP2kudG9Mb3dlckNhc2UoKToiIikpLHQ9biksdCllLmRpc3BhdGNoRXZlbnQoImNvbXBsZXRlIiksZS5kaXNwYXRjaEV2ZW50KCJzdWNjZXNzIik7ZWxzZXt0cnl7dmFyIGE9Mjx3cyhlKT9lLmEuc3RhdHVzVGV4dDoiIn1jYXRjaCh0KXtucyhlLmIsIkNhbiBub3QgZ2V0IHN0YXR1czogIit0Lm1lc3NhZ2UpLGE9IiJ9ZS5oPWErIiBbIitfcyhlKSsiXSIsZ3MoZSl9fWZpbmFsbHl7bXMoZSl9fX1mdW5jdGlvbiBtcyhlLHQpe2lmKGUuYSl7YnMoZSk7dmFyIG49ZS5hLHI9ZS5DWzBdP3M6bnVsbDtlLmE9bnVsbCxlLkM9bnVsbCx0fHxlLmRpc3BhdGNoRXZlbnQoInJlYWR5Iik7dHJ5e24ub25yZWFkeXN0YXRlY2hhbmdlPXJ9Y2F0Y2godCl7KGU9ZS5iKSYmZS5sb2coUW8sIlByb2JsZW0gZW5jb3VudGVyZWQgcmVzZXR0aW5nIG9ucmVhZHlzdGF0ZWNoYW5nZTogIit0Lm1lc3NhZ2Usdm9pZCAwKX19fWZ1bmN0aW9uIGJzKHQpe3QuYSYmdC51JiYodC5hLm9udGltZW91dD1udWxsKSx0LnMmJihsLmNsZWFyVGltZW91dCh0LnMpLHQucz1udWxsKX1mdW5jdGlvbiB3cyh0KXtyZXR1cm4gdC5hP3QuYS5yZWFkeVN0YXRlOjB9ZnVuY3Rpb24gX3ModCl7dHJ5e3JldHVybiAyPHdzKHQpP3QuYS5zdGF0dXM6LTF9Y2F0Y2godCl7cmV0dXJuLTF9fWZ1bmN0aW9uIElzKHQsZSl7cmV0dXJuIGUrIiBbIit0LlIrIiAiK3QubCsiICIrX3ModCkrIl0ifWZ1bmN0aW9uIFRzKHQpe3ZhciBlPXhzO3RoaXMuZz1bXSx0aGlzLnU9ZSx0aGlzLnM9dHx8bnVsbCx0aGlzLmY9dGhpcy5hPSExLHRoaXMuYz12b2lkIDAsdGhpcy52PXRoaXMuQz10aGlzLmk9ITEsdGhpcy5oPTAsdGhpcy5iPW51bGwsdGhpcy5sPTB9ZnVuY3Rpb24gRXModCxlLG4pe3QuYT0hMCx0LmM9bix0LmY9IWUsQXModCl9ZnVuY3Rpb24gU3ModCl7aWYodC5hKXtpZighdC52KXRocm93IG5ldyBrczt0LnY9ITF9fWZ1bmN0aW9uIENzKHQsZSxuLHIpe3QuZy5wdXNoKFtlLG4scl0pLHQuYSYmQXModCl9ZnVuY3Rpb24gTnModCl7cmV0dXJuIEIodC5nLGZ1bmN0aW9uKHQpe3JldHVybiB2KHRbMV0pfSl9ZnVuY3Rpb24gQXMoZSl7dmFyIG47ZS5oJiZlLmEmJk5zKGUpJiYocj1lLmgsKG49T3Nbcl0pJiYobC5jbGVhclRpbWVvdXQobi5hKSxkZWxldGUgT3Nbcl0pLGUuaD0wKSxlLmImJihlLmIubC0tLGRlbGV0ZSBlLmIpO2Zvcih2YXIgcj1lLmMsdD1uPSExO2UuZy5sZW5ndGgmJiFlLmk7KXt2YXIgaT0ocz1lLmcuc2hpZnQoKSlbMF0sbz1zWzFdLHM9c1syXTtpZihpPWUuZj9vOmkpdHJ5e3ZhciBhPWkuY2FsbChzfHxlLnMscik7dm9pZCAwIT09YSYmKGUuZj1lLmYmJihhPT1yfHxhIGluc3RhbmNlb2YgRXJyb3IpLGUuYz1yPWEpLChrKHIpfHwiZnVuY3Rpb24iPT10eXBlb2YgbC5Qcm9taXNlJiZyIGluc3RhbmNlb2YgbC5Qcm9taXNlKSYmKHQ9ITAsZS5pPSEwKX1jYXRjaCh0KXtyPXQsZS5mPSEwLE5zKGUpfHwobj0hMCl9fWUuYz1yLHQmJihhPW0oZS5tLGUsITApLHQ9bShlLm0sZSwhMSksciBpbnN0YW5jZW9mIFRzPyhDcyhyLGEsdCksci5DPSEwKTpyLnRoZW4oYSx0KSksbiYmKHI9bmV3IFBzKHIpLE9zW3IuYV09cixlLmg9ci5hKX1mdW5jdGlvbiBrcygpe1IuY2FsbCh0aGlzKX1mdW5jdGlvbiBScygpe1IuY2FsbCh0aGlzKX1mdW5jdGlvbiBQcyh0KXt0aGlzLmE9bC5zZXRUaW1lb3V0KG0odGhpcy5jLHRoaXMpLDApLHRoaXMuYj10fSh0PWNzLnByb3RvdHlwZSkuTWE9ZnVuY3Rpb24oKXt2b2lkIDAhPT1oJiZ0aGlzLmEmJih0aGlzLmg9IlRpbWVkIG91dCBhZnRlciAiK3RoaXMuZysibXMsIGFib3J0aW5nIixucyh0aGlzLmIsSXModGhpcyx0aGlzLmgpKSx0aGlzLmRpc3BhdGNoRXZlbnQoInRpbWVvdXQiKSx0aGlzLmFib3J0KDgpKX0sdC5hYm9ydD1mdW5jdGlvbigpe3RoaXMuYSYmdGhpcy5jJiYobnModGhpcy5iLElzKHRoaXMsIkFib3J0aW5nIikpLHRoaXMuYz0hMSx0aGlzLmY9ITAsdGhpcy5hLmFib3J0KCksdGhpcy5mPSExLHRoaXMuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSx0aGlzLmRpc3BhdGNoRXZlbnQoImFib3J0IiksbXModGhpcykpfSx0LkRhPWZ1bmN0aW9uKCl7dGhpcy5hJiYodGhpcy5jJiYodGhpcy5jPSExLHRoaXMuZj0hMCx0aGlzLmEuYWJvcnQoKSx0aGlzLmY9ITEpLG1zKHRoaXMsITApKSxjcy5hYi5EYS5jYWxsKHRoaXMpfSx0LlZiPWZ1bmN0aW9uKCl7dGhpcy54YXx8KHRoaXMuT3x8dGhpcy5pfHx0aGlzLmY/eXModGhpcyk6dGhpcy5KYygpKX0sdC5KYz1mdW5jdGlvbigpe3lzKHRoaXMpfSx0LmdldFJlc3BvbnNlPWZ1bmN0aW9uKCl7dHJ5e2lmKCF0aGlzLmEpcmV0dXJuIG51bGw7aWYoInJlc3BvbnNlImluIHRoaXMuYSlyZXR1cm4gdGhpcy5hLnJlc3BvbnNlO3N3aXRjaCh0aGlzLm0pe2Nhc2UgaHM6Y2FzZSJ0ZXh0IjpyZXR1cm4gdGhpcy5hLnJlc3BvbnNlVGV4dDtjYXNlImFycmF5YnVmZmVyIjppZigibW96UmVzcG9uc2VBcnJheUJ1ZmZlciJpbiB0aGlzLmEpcmV0dXJuIHRoaXMuYS5tb3pSZXNwb25zZUFycmF5QnVmZmVyfXZhciB0PXRoaXMuYjtyZXR1cm4gdCYmdC5sb2coUW8sIlJlc3BvbnNlIHR5cGUgIit0aGlzLm0rIiBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgYnJvd3NlciIsdm9pZCAwKSxudWxsfWNhdGNoKHQpe3JldHVybiBucyh0aGlzLmIsIkNhbiBub3QgZ2V0IHJlc3BvbnNlOiAiK3QubWVzc2FnZSksbnVsbH19LFRzLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5hP3RoaXMuYyBpbnN0YW5jZW9mIFRzJiZ0aGlzLmMuY2FuY2VsKCk6KHRoaXMuYiYmKGU9dGhpcy5iLGRlbGV0ZSB0aGlzLmIsdD9lLmNhbmNlbCh0KTooZS5sLS0sZS5sPD0wJiZlLmNhbmNlbCgpKSksdGhpcy51P3RoaXMudS5jYWxsKHRoaXMucyx0aGlzKTp0aGlzLnY9ITAsdGhpcy5hfHwodD1uZXcgUnMsU3ModGhpcyksRXModGhpcywhMSx0KSkpfSxUcy5wcm90b3R5cGUubT1mdW5jdGlvbih0LGUpe3RoaXMuaT0hMSxFcyh0aGlzLHQsZSl9LFRzLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLG89bmV3IGZlKGZ1bmN0aW9uKHQsZSl7cj10LGk9ZX0pO3JldHVybiBDcyh0aGlzLHIsZnVuY3Rpb24odCl7dCBpbnN0YW5jZW9mIFJzP28uY2FuY2VsKCk6aSh0KX0pLG8udGhlbih0LGUsbil9LFRzLnByb3RvdHlwZS4kZ29vZ19UaGVuYWJsZT0hMCx3KGtzLFIpLGtzLnByb3RvdHlwZS5tZXNzYWdlPSJEZWZlcnJlZCBoYXMgYWxyZWFkeSBmaXJlZCIsa3MucHJvdG90eXBlLm5hbWU9IkFscmVhZHlDYWxsZWRFcnJvciIsdyhScyxSKSxScy5wcm90b3R5cGUubWVzc2FnZT0iRGVmZXJyZWQgd2FzIGNhbmNlbGVkIixScy5wcm90b3R5cGUubmFtZT0iQ2FuY2VsZWRFcnJvciIsUHMucHJvdG90eXBlLmM9ZnVuY3Rpb24oKXt0aHJvdyBkZWxldGUgT3NbdGhpcy5hXSx0aGlzLmJ9O3ZhciBPcz17fTtmdW5jdGlvbiBEcyh0KXt2YXIgZT1kb2N1bWVudCxuPXd0KHQpLnRvU3RyaW5nKCkscj1zZShkb2N1bWVudCwiU0NSSVBUIiksaT17V2I6cixNYTp2b2lkIDB9LG89bmV3IFRzKGkpLHM9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtMcyhyLCEwKTt2YXIgdD1uZXcgVXMoRnMsIlRpbWVvdXQgcmVhY2hlZCBmb3IgbG9hZGluZyBzY3JpcHQgIituKTtTcyhvKSxFcyhvLCExLHQpfSw1ZTMpO3JldHVybiBpLk1hPXMsci5vbmxvYWQ9ci5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtyLnJlYWR5U3RhdGUmJiJsb2FkZWQiIT1yLnJlYWR5U3RhdGUmJiJjb21wbGV0ZSIhPXIucmVhZHlTdGF0ZXx8KExzKHIsITEscyksU3MobyksRXMobywhMCxudWxsKSl9LHIub25lcnJvcj1mdW5jdGlvbigpe0xzKHIsITAscyk7dmFyIHQ9bmV3IFVzKE1zLCJFcnJvciB3aGlsZSBsb2FkaW5nIHNjcmlwdCAiK24pO1NzKG8pLEVzKG8sITEsdCl9LGx0KGk9e30se3R5cGU6InRleHQvamF2YXNjcmlwdCIsY2hhcnNldDoiVVRGLTgifSksZWUocixpKSxpPXQsZnQodD1yLCJIVE1MU2NyaXB0RWxlbWVudCIpLHQuc3JjPXd0KGkpLChpPShpPXQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSYmaSE9bD9mKGkuZG9jdW1lbnQpOmE9bnVsbD09PWE/ZihsLmRvY3VtZW50KTphKSYmdC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixpKSwoKGU9KChpPWUpfHxkb2N1bWVudCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkhFQUQiKSkmJjAhPWUubGVuZ3RoP2VbMF06aS5kb2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKHIpLG99ZnVuY3Rpb24geHMoKXt2YXIgdDt0aGlzJiZ0aGlzLldiJiYoKHQ9dGhpcy5XYikmJiJTQ1JJUFQiPT10LnRhZ05hbWUmJkxzKHQsITAsdGhpcy5NYSkpfWZ1bmN0aW9uIExzKHQsZSxuKXtudWxsIT1uJiZsLmNsZWFyVGltZW91dChuKSx0Lm9ubG9hZD1zLHQub25lcnJvcj1zLHQub25yZWFkeXN0YXRlY2hhbmdlPXMsZSYmd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX0sMCl9dmFyIE1zPTAsRnM9MTtmdW5jdGlvbiBVcyh0LGUpe3ZhciBuPSJKc2xvYWRlciBlcnJvciAoY29kZSAjIit0KyIpIjtlJiYobis9IjogIitlKSxSLmNhbGwodGhpcyxuKSx0aGlzLmNvZGU9dH1mdW5jdGlvbiBqcyh0KXt0aGlzLmY9dH1mdW5jdGlvbiBxcyh0LGUsbil7aWYodGhpcy5jPXQsdD1lfHx7fSx0aGlzLmw9dC5zZWN1cmVUb2tlbkVuZHBvaW50fHwiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGVhcGlzLmNvbS92MS90b2tlbiIsdGhpcy5tPXQuc2VjdXJlVG9rZW5UaW1lb3V0fHxLcyx0aGlzLmc9Y3QodC5zZWN1cmVUb2tlbkhlYWRlcnN8fFdzKSx0aGlzLmg9dC5maXJlYmFzZUVuZHBvaW50fHwiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vaWRlbnRpdHl0b29sa2l0L3YzL3JlbHlpbmdwYXJ0eS8iLHRoaXMuaT10LmlkZW50aXR5UGxhdGZvcm1FbmRwb2ludHx8Imh0dHBzOi8vaWRlbnRpdHl0b29sa2l0Lmdvb2dsZWFwaXMuY29tL3YyLyIsdGhpcy52PXQuZmlyZWJhc2VUaW1lb3V0fHxIcyx0aGlzLmE9Y3QodC5maXJlYmFzZUhlYWRlcnN8fEdzKSxuJiYodGhpcy5hWyJYLUNsaWVudC1WZXJzaW9uIl09bix0aGlzLmdbIlgtQ2xpZW50LVZlcnNpb24iXT1uKSxuPSJOb2RlIj09aHIoKSwhKG49bC5YTUxIdHRwUmVxdWVzdHx8biYmWGwuSU5URVJOQUwubm9kZSYmWGwuSU5URVJOQUwubm9kZS5YTUxIdHRwUmVxdWVzdCkmJiFjcigpKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsIlRoZSBYTUxIdHRwUmVxdWVzdCBjb21wYXRpYmlsaXR5IGxpYnJhcnkgd2FzIG5vdCBmb3VuZC4iKTt0aGlzLmY9dm9pZCAwLGNyKCk/dGhpcy5mPW5ldyBycyhzZWxmKTpscigpP3RoaXMuZj1uZXcganMobik6dGhpcy5mPW5ldyBCbyx0aGlzLmI9bnVsbH13KFVzLFIpLHcoanMsVW8pLGpzLnByb3RvdHlwZS5hPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0aGlzLmZ9LGpzLnByb3RvdHlwZS5iPWZ1bmN0aW9uKCl7cmV0dXJue319O3ZhciBWcyxCcz0iaWRUb2tlbiIsS3M9bmV3IFJyKDNlNCw2ZTQpLFdzPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sSHM9bmV3IFJyKDNlNCw2ZTQpLEdzPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9O2Z1bmN0aW9uIHpzKHQsZSl7ZT90LmFbIlgtRmlyZWJhc2UtTG9jYWxlIl09ZTpkZWxldGUgdC5hWyJYLUZpcmViYXNlLUxvY2FsZSJdfWZ1bmN0aW9uIFFzKHQsZSl7ZSYmKHQubD1ZcygiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGVhcGlzLmNvbS92MS90b2tlbiIsZSksdC5oPVlzKCJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9pZGVudGl0eXRvb2xraXQvdjMvcmVseWluZ3BhcnR5LyIsZSksdC5pPVlzKCJodHRwczovL2lkZW50aXR5dG9vbGtpdC5nb29nbGVhcGlzLmNvbS92Mi8iLGUpKX1mdW5jdGlvbiBZcyh0LGUpe3JldHVybiB0PWtuKHQpLGU9a24oZS51cmwpLHQuZj10LmErdC5mLEVuKHQsZS5jKSx0LmE9ZS5hLFNuKHQsZS5nKSx0LnRvU3RyaW5nKCl9ZnVuY3Rpb24gWHModCxlKXtlPyh0LmFbIlgtQ2xpZW50LVZlcnNpb24iXT1lLHQuZ1siWC1DbGllbnQtVmVyc2lvbiJdPWUpOihkZWxldGUgdC5hWyJYLUNsaWVudC1WZXJzaW9uIl0sZGVsZXRlIHQuZ1siWC1DbGllbnQtVmVyc2lvbiJdKX1mdW5jdGlvbiBKcyh0LGUsbixyLGksbyxzKXt2YXIgYTsodD0oKGE9ZHIoYT15cigpKT09cHImJihhPWEubWF0Y2goL1xzQ2hyb21lXC8oXGQrKS9pKSkmJjI9PWEubGVuZ3RoP3BhcnNlSW50KGFbMV0sMTApOm51bGwpJiZhPDMwfHxCdCYmJHQmJiEoOTwkdCkpJiYhY3IoKT8oVnM9VnN8fG5ldyBmZShmdW5jdGlvbih0LGUpe3ZhciBuLHI7bj10LHI9ZSwoKHdpbmRvdy5nYXBpfHx7fSkuY2xpZW50fHx7fSkucmVxdWVzdD9uKCk6KGxbWnNdPWZ1bmN0aW9uKCl7KCh3aW5kb3cuZ2FwaXx8e30pLmNsaWVudHx8e30pLnJlcXVlc3Q/bigpOnIoRXJyb3IoIkNPUlNfVU5TVVBQT1JURUQiKSl9LGZ1bmN0aW9uKHQsZSl7Q3ModCxudWxsLGUsdm9pZCAwKX0oRHMoX3QoJHMse29ubG9hZDpac30pKSxmdW5jdGlvbigpe3IoRXJyb3IoIkNPUlNfVU5TVVBQT1JURUQiKSl9KSl9KSxtKHQucyx0KSk6bSh0LnUsdCkpKGUsbixyLGksbyxzKX1xcy5wcm90b3R5cGUuVD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJ9LHFzLnByb3RvdHlwZS51PWZ1bmN0aW9uKHQsbixlLHIsaSxvKXtpZihjcigpJiYodm9pZCAwPT09bC5mZXRjaHx8dm9pZCAwPT09bC5IZWFkZXJzfHx2b2lkIDA9PT1sLlJlcXVlc3QpKXRocm93IG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IiwiZmV0Y2gsIEhlYWRlcnMgYW5kIFJlcXVlc3QgbmF0aXZlIEFQSXMgb3IgZXF1aXZhbGVudCBQb2x5ZmlsbHMgbXVzdCBiZSBhdmFpbGFibGUgdG8gc3VwcG9ydCBIVFRQIHJlcXVlc3RzIGZyb20gYSBXb3JrZXIgZW52aXJvbm1lbnQuIik7dmFyIHMsYT1uZXcgY3ModGhpcy5mKTtvJiYoYS5nPU1hdGgubWF4KDAsbykscz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5kaXNwYXRjaEV2ZW50KCJ0aW1lb3V0Iil9LG8pKSxmbihhLCJjb21wbGV0ZSIsZnVuY3Rpb24oKXtzJiZjbGVhclRpbWVvdXQocyk7dmFyIGU9bnVsbDt0cnl7ZT1KU09OLnBhcnNlKGZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gZS5hP2UuYS5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2godCl7cmV0dXJuIG5zKGUuYiwiQ2FuIG5vdCBnZXQgcmVzcG9uc2VUZXh0OiAiK3QubWVzc2FnZSksIiJ9fSh0aGlzKSl8fG51bGx9Y2F0Y2godCl7ZT1udWxsfW4mJm4oZSl9KSxwbihhLCJyZWFkeSIsZnVuY3Rpb24oKXtzJiZjbGVhclRpbWVvdXQocyksTGUodGhpcyl9KSxwbihhLCJ0aW1lb3V0IixmdW5jdGlvbigpe3MmJmNsZWFyVGltZW91dChzKSxMZSh0aGlzKSxuJiZuKG51bGwpfSkscHMoYSx0LGUscixpKX07dmFyICRzPW5ldyBwdCh5dCwiaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvY2xpZW50LmpzP29ubG9hZD0le29ubG9hZH0iKSxacz0iX19mY2IiK01hdGguZmxvb3IoMWU2Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKCk7ZnVuY3Rpb24gdGEodCxlLG4scixpLG8scyl7dmFyIGE9a24oZStuKTtObihhLCJrZXkiLHQuYykscyYmTm4oYSwiY2IiLERhdGUubm93KCkudG9TdHJpbmcoKSk7dmFyIHU9IkdFVCI9PXI7aWYodSlmb3IodmFyIGMgaW4gaSlpLmhhc093blByb3BlcnR5KGMpJiZObihhLGMsaVtjXSk7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihlLG4pe0pzKHQsYS50b1N0cmluZygpLGZ1bmN0aW9uKHQpe3Q/dC5lcnJvcj9uKFlhKHQsb3x8e30pKTplKHQpOm4obmV3IEkoIm5ldHdvcmstcmVxdWVzdC1mYWlsZWQiKSl9LHIsdT92b2lkIDA6em4oU3IoaSkpLHQuYSx0LnYuZ2V0KCkpfSl9ZnVuY3Rpb24gZWEodCl7aWYoInN0cmluZyIhPXR5cGVvZih0PXQuZW1haWwpfHwhb3IudGVzdCh0KSl0aHJvdyBuZXcgSSgiaW52YWxpZC1lbWFpbCIpfWZ1bmN0aW9uIG5hKHQpeyJlbWFpbCJpbiB0JiZlYSh0KX1mdW5jdGlvbiByYSh0KXtpZighdFtCc10pe2lmKHQubWZhUGVuZGluZ0NyZWRlbnRpYWwpdGhyb3cgbmV3IEkoIm11bHRpLWZhY3Rvci1hdXRoLXJlcXVpcmVkIixudWxsLGN0KHQpKTt0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX19ZnVuY3Rpb24gaWEodCl7aWYodC5waG9uZU51bWJlcnx8dC50ZW1wb3JhcnlQcm9vZil7aWYoIXQucGhvbmVOdW1iZXJ8fCF0LnRlbXBvcmFyeVByb29mKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpfWVsc2V7aWYoIXQuc2Vzc2lvbkluZm8pdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIik7aWYoIXQuY29kZSl0aHJvdyBuZXcgSSgibWlzc2luZy12ZXJpZmljYXRpb24tY29kZSIpfX1xcy5wcm90b3R5cGUucz1mdW5jdGlvbih0LG4scixpLG8pe3ZhciBzPXRoaXM7VnMudGhlbihmdW5jdGlvbigpe3dpbmRvdy5nYXBpLmNsaWVudC5zZXRBcGlLZXkocy5jKTt2YXIgZT13aW5kb3cuZ2FwaS5hdXRoLmdldFRva2VuKCk7d2luZG93LmdhcGkuYXV0aC5zZXRUb2tlbihudWxsKSx3aW5kb3cuZ2FwaS5jbGllbnQucmVxdWVzdCh7cGF0aDp0LG1ldGhvZDpyLGJvZHk6aSxoZWFkZXJzOm8sYXV0aFR5cGU6Im5vbmUiLGNhbGxiYWNrOmZ1bmN0aW9uKHQpe3dpbmRvdy5nYXBpLmF1dGguc2V0VG9rZW4oZSksbiYmbih0KX19KX0pLm8oZnVuY3Rpb24odCl7biYmbih7ZXJyb3I6e21lc3NhZ2U6dCYmdC5tZXNzYWdlfHwiQ09SU19VTlNVUFBPUlRFRCJ9fSl9KX0scXMucHJvdG90eXBlLnpiPWZ1bmN0aW9uKCl7cmV0dXJuIHphKHRoaXMsTGEse30pfSxxcy5wcm90b3R5cGUuQmI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gemEodGhpcyxEYSx7aWRUb2tlbjp0LGVtYWlsOmV9KX0scXMucHJvdG90eXBlLkNiPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHphKHRoaXMseGEse2lkVG9rZW46dCxwYXNzd29yZDplfSl9O3ZhciBvYT17ZGlzcGxheU5hbWU6IkRJU1BMQVlfTkFNRSIscGhvdG9Vcmw6IlBIT1RPX1VSTCJ9O2Z1bmN0aW9uIHNhKHQpe2lmKCF0LnBob25lVmVyaWZpY2F0aW9uSW5mbyl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKTtpZighdC5waG9uZVZlcmlmaWNhdGlvbkluZm8uc2Vzc2lvbkluZm8pdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIik7aWYoIXQucGhvbmVWZXJpZmljYXRpb25JbmZvLmNvZGUpdGhyb3cgbmV3IEkoIm1pc3NpbmctdmVyaWZpY2F0aW9uLWNvZGUiKX1mdW5jdGlvbiBhYSh0KXtpZighdC5yZXF1ZXN0VXJpfHwhdC5zZXNzaW9uSWQmJiF0LnBvc3RCb2R5JiYhdC5wZW5kaW5nVG9rZW4pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9ZnVuY3Rpb24gdWEodCxlKXtyZXR1cm4gZS5vYXV0aElkVG9rZW4mJmUucHJvdmlkZXJJZCYmMD09ZS5wcm92aWRlcklkLmluZGV4T2YoIm9pZGMuIikmJiFlLnBlbmRpbmdUb2tlbiYmKHQuc2Vzc2lvbklkP2Uubm9uY2U9dC5zZXNzaW9uSWQ6dC5wb3N0Qm9keSYmKEtuKHQ9bmV3IGpuKHQucG9zdEJvZHkpLCJub25jZSIpJiYoZS5ub25jZT10LmdldCgibm9uY2UiKSkpKSxlfWZ1bmN0aW9uIGNhKHQpe3ZhciBlPW51bGw7aWYodC5uZWVkQ29uZmlybWF0aW9uPyh0LmNvZGU9ImFjY291bnQtZXhpc3RzLXdpdGgtZGlmZmVyZW50LWNyZWRlbnRpYWwiLGU9Rm8odCkpOiJGRURFUkFURURfVVNFUl9JRF9BTFJFQURZX0xJTktFRCI9PXQuZXJyb3JNZXNzYWdlPyh0LmNvZGU9ImNyZWRlbnRpYWwtYWxyZWFkeS1pbi11c2UiLGU9Rm8odCkpOiJFTUFJTF9FWElTVFMiPT10LmVycm9yTWVzc2FnZT8odC5jb2RlPSJlbWFpbC1hbHJlYWR5LWluLXVzZSIsZT1Gbyh0KSk6dC5lcnJvck1lc3NhZ2UmJihlPVFhKHQuZXJyb3JNZXNzYWdlKSksZSl0aHJvdyBlO3JhKHQpfWZ1bmN0aW9uIGhhKHQsZSl7cmV0dXJuIGUucmV0dXJuSWRwQ3JlZGVudGlhbD0hMCx6YSh0LFVhLGUpfWZ1bmN0aW9uIGxhKHQsZSl7cmV0dXJuIGUucmV0dXJuSWRwQ3JlZGVudGlhbD0hMCx6YSh0LHFhLGUpfWZ1bmN0aW9uIGZhKHQsZSl7cmV0dXJuIGUucmV0dXJuSWRwQ3JlZGVudGlhbD0hMCxlLmF1dG9DcmVhdGU9ITEsemEodCxqYSxlKX1mdW5jdGlvbiBwYSh0KXtpZighdC5vb2JDb2RlKXRocm93IG5ldyBJKCJpbnZhbGlkLWFjdGlvbi1jb2RlIil9KHQ9cXMucHJvdG90eXBlKS5EYj1mdW5jdGlvbih0LHIpe3ZhciBpPXtpZFRva2VuOnR9LG89W107cmV0dXJuIGF0KG9hLGZ1bmN0aW9uKHQsZSl7dmFyIG49cltlXTtudWxsPT09bj9vLnB1c2godCk6ZSBpbiByJiYoaVtlXT1uKX0pLG8ubGVuZ3RoJiYoaS5kZWxldGVBdHRyaWJ1dGU9byksemEodGhpcyxEYSxpKX0sdC52Yj1mdW5jdGlvbih0LGUpe3JldHVybiBsdCh0PXtyZXF1ZXN0VHlwZToiUEFTU1dPUkRfUkVTRVQiLGVtYWlsOnR9LGUpLHphKHRoaXMsQWEsdCl9LHQud2I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbHQodD17cmVxdWVzdFR5cGU6IkVNQUlMX1NJR05JTiIsZW1haWw6dH0sZSksemEodGhpcyxTYSx0KX0sdC51Yj1mdW5jdGlvbih0LGUpe3JldHVybiBsdCh0PXtyZXF1ZXN0VHlwZToiVkVSSUZZX0VNQUlMIixpZFRva2VuOnR9LGUpLHphKHRoaXMsQ2EsdCl9LHQuRWI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBsdCh0PXtyZXF1ZXN0VHlwZToiVkVSSUZZX0FORF9DSEFOR0VfRU1BSUwiLGlkVG9rZW46dCxuZXdFbWFpbDplfSxuKSx6YSh0aGlzLE5hLHQpfSx0LmZiPWZ1bmN0aW9uKHQpe3JldHVybiB6YSh0aGlzLEthLHQpfSx0Lm5iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHphKHRoaXMsUGEse29vYkNvZGU6dCxuZXdQYXNzd29yZDplfSl9LHQuUmE9ZnVuY3Rpb24odCl7cmV0dXJuIHphKHRoaXMsdmEse29vYkNvZGU6dH0pfSx0LmpiPWZ1bmN0aW9uKHQpe3JldHVybiB6YSh0aGlzLGRhLHtvb2JDb2RlOnR9KX07dmFyIGRhPXtlbmRwb2ludDoic2V0QWNjb3VudEluZm8iLEE6cGEsWjoiZW1haWwiLEI6ITB9LHZhPXtlbmRwb2ludDoicmVzZXRQYXNzd29yZCIsQTpwYSxHOmZ1bmN0aW9uKHQpe3ZhciBlPXQucmVxdWVzdFR5cGU7aWYoIWV8fCF0LmVtYWlsJiYiRU1BSUxfU0lHTklOIiE9ZSYmIlZFUklGWV9BTkRfQ0hBTkdFX0VNQUlMIiE9ZSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX0sQjohMH0sZ2E9e2VuZHBvaW50OiJzaWdudXBOZXdVc2VyIixBOmZ1bmN0aW9uKHQpe2lmKGVhKHQpLCF0LnBhc3N3b3JkKXRocm93IG5ldyBJKCJ3ZWFrLXBhc3N3b3JkIil9LEc6cmEsVjohMCxCOiEwfSx5YT17ZW5kcG9pbnQ6ImNyZWF0ZUF1dGhVcmkiLEI6ITB9LG1hPXtlbmRwb2ludDoiZGVsZXRlQWNjb3VudCIsTjpbImlkVG9rZW4iXX0sYmE9e2VuZHBvaW50OiJzZXRBY2NvdW50SW5mbyIsTjpbImlkVG9rZW4iLCJkZWxldGVQcm92aWRlciJdLEE6ZnVuY3Rpb24odCl7aWYoIUFycmF5LmlzQXJyYXkodC5kZWxldGVQcm92aWRlcikpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9fSx3YT17ZW5kcG9pbnQ6ImVtYWlsTGlua1NpZ25pbiIsTjpbImVtYWlsIiwib29iQ29kZSJdLEE6ZWEsRzpyYSxWOiEwLEI6ITB9LF9hPXtlbmRwb2ludDoiZW1haWxMaW5rU2lnbmluIixOOlsiaWRUb2tlbiIsImVtYWlsIiwib29iQ29kZSJdLEE6ZWEsRzpyYSxWOiEwfSxJYT17ZW5kcG9pbnQ6ImFjY291bnRzL21mYUVucm9sbG1lbnQ6ZmluYWxpemUiLE46WyJpZFRva2VuIiwicGhvbmVWZXJpZmljYXRpb25JbmZvIl0sQTpzYSxHOnJhLEI6ITAsTmE6ITB9LFRhPXtlbmRwb2ludDoiYWNjb3VudHMvbWZhU2lnbkluOmZpbmFsaXplIixOOlsibWZhUGVuZGluZ0NyZWRlbnRpYWwiLCJwaG9uZVZlcmlmaWNhdGlvbkluZm8iXSxBOnNhLEc6cmEsQjohMCxOYTohMH0sRWE9e2VuZHBvaW50OiJnZXRBY2NvdW50SW5mbyJ9LFNhPXtlbmRwb2ludDoiZ2V0T29iQ29uZmlybWF0aW9uQ29kZSIsTjpbInJlcXVlc3RUeXBlIl0sQTpmdW5jdGlvbih0KXtpZigiRU1BSUxfU0lHTklOIiE9dC5yZXF1ZXN0VHlwZSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKTtlYSh0KX0sWjoiZW1haWwiLEI6ITB9LENhPXtlbmRwb2ludDoiZ2V0T29iQ29uZmlybWF0aW9uQ29kZSIsTjpbImlkVG9rZW4iLCJyZXF1ZXN0VHlwZSJdLEE6ZnVuY3Rpb24odCl7aWYoIlZFUklGWV9FTUFJTCIhPXQucmVxdWVzdFR5cGUpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9LFo6ImVtYWlsIixCOiEwfSxOYT17ZW5kcG9pbnQ6ImdldE9vYkNvbmZpcm1hdGlvbkNvZGUiLE46WyJpZFRva2VuIiwibmV3RW1haWwiLCJyZXF1ZXN0VHlwZSJdLEE6ZnVuY3Rpb24odCl7aWYoIlZFUklGWV9BTkRfQ0hBTkdFX0VNQUlMIiE9dC5yZXF1ZXN0VHlwZSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX0sWjoiZW1haWwiLEI6ITB9LEFhPXtlbmRwb2ludDoiZ2V0T29iQ29uZmlybWF0aW9uQ29kZSIsTjpbInJlcXVlc3RUeXBlIl0sQTpmdW5jdGlvbih0KXtpZigiUEFTU1dPUkRfUkVTRVQiIT10LnJlcXVlc3RUeXBlKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpO2VhKHQpfSxaOiJlbWFpbCIsQjohMH0sa2E9e2xiOiEwLGVuZHBvaW50OiJnZXRQcm9qZWN0Q29uZmlnIixVYjoiR0VUIn0sUmE9e2xiOiEwLGVuZHBvaW50OiJnZXRSZWNhcHRjaGFQYXJhbSIsVWI6IkdFVCIsRzpmdW5jdGlvbih0KXtpZighdC5yZWNhcHRjaGFTaXRlS2V5KXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpfX0sUGE9e2VuZHBvaW50OiJyZXNldFBhc3N3b3JkIixBOnBhLFo6ImVtYWlsIixCOiEwfSxPYT17ZW5kcG9pbnQ6InNlbmRWZXJpZmljYXRpb25Db2RlIixOOlsicGhvbmVOdW1iZXIiLCJyZWNhcHRjaGFUb2tlbiJdLFo6InNlc3Npb25JbmZvIixCOiEwfSxEYT17ZW5kcG9pbnQ6InNldEFjY291bnRJbmZvIixOOlsiaWRUb2tlbiJdLEE6bmEsVjohMH0seGE9e2VuZHBvaW50OiJzZXRBY2NvdW50SW5mbyIsTjpbImlkVG9rZW4iXSxBOmZ1bmN0aW9uKHQpe2lmKG5hKHQpLCF0LnBhc3N3b3JkKXRocm93IG5ldyBJKCJ3ZWFrLXBhc3N3b3JkIil9LEc6cmEsVjohMH0sTGE9e2VuZHBvaW50OiJzaWdudXBOZXdVc2VyIixHOnJhLFY6ITAsQjohMH0sTWE9e2VuZHBvaW50OiJhY2NvdW50cy9tZmFFbnJvbGxtZW50OnN0YXJ0IixOOlsiaWRUb2tlbiIsInBob25lRW5yb2xsbWVudEluZm8iXSxBOmZ1bmN0aW9uKHQpe2lmKCF0LnBob25lRW5yb2xsbWVudEluZm8pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIik7aWYoIXQucGhvbmVFbnJvbGxtZW50SW5mby5waG9uZU51bWJlcil0aHJvdyBuZXcgSSgibWlzc2luZy1waG9uZS1udW1iZXIiKTtpZighdC5waG9uZUVucm9sbG1lbnRJbmZvLnJlY2FwdGNoYVRva2VuKXRocm93IG5ldyBJKCJtaXNzaW5nLWFwcC1jcmVkZW50aWFsIil9LEc6ZnVuY3Rpb24odCl7aWYoIXQucGhvbmVTZXNzaW9uSW5mb3x8IXQucGhvbmVTZXNzaW9uSW5mby5zZXNzaW9uSW5mbyl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX0sQjohMCxOYTohMH0sRmE9e2VuZHBvaW50OiJhY2NvdW50cy9tZmFTaWduSW46c3RhcnQiLE46WyJtZmFQZW5kaW5nQ3JlZGVudGlhbCIsIm1mYUVucm9sbG1lbnRJZCIsInBob25lU2lnbkluSW5mbyJdLEE6ZnVuY3Rpb24odCl7aWYoIXQucGhvbmVTaWduSW5JbmZvfHwhdC5waG9uZVNpZ25JbkluZm8ucmVjYXB0Y2hhVG9rZW4pdGhyb3cgbmV3IEkoIm1pc3NpbmctYXBwLWNyZWRlbnRpYWwiKX0sRzpmdW5jdGlvbih0KXtpZighdC5waG9uZVJlc3BvbnNlSW5mb3x8IXQucGhvbmVSZXNwb25zZUluZm8uc2Vzc2lvbkluZm8pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9LEI6ITAsTmE6ITB9LFVhPXtlbmRwb2ludDoidmVyaWZ5QXNzZXJ0aW9uIixBOmFhLFlhOnVhLEc6Y2EsVjohMCxCOiEwfSxqYT17ZW5kcG9pbnQ6InZlcmlmeUFzc2VydGlvbiIsQTphYSxZYTp1YSxHOmZ1bmN0aW9uKHQpe2lmKHQuZXJyb3JNZXNzYWdlJiYiVVNFUl9OT1RfRk9VTkQiPT10LmVycm9yTWVzc2FnZSl0aHJvdyBuZXcgSSgidXNlci1ub3QtZm91bmQiKTtpZih0LmVycm9yTWVzc2FnZSl0aHJvdyBRYSh0LmVycm9yTWVzc2FnZSk7cmEodCl9LFY6ITAsQjohMH0scWE9e2VuZHBvaW50OiJ2ZXJpZnlBc3NlcnRpb24iLEE6ZnVuY3Rpb24odCl7aWYoYWEodCksIXQuaWRUb2tlbil0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKX0sWWE6dWEsRzpjYSxWOiEwfSxWYT17ZW5kcG9pbnQ6InZlcmlmeUN1c3RvbVRva2VuIixBOmZ1bmN0aW9uKHQpe2lmKCF0LnRva2VuKXRocm93IG5ldyBJKCJpbnZhbGlkLWN1c3RvbS10b2tlbiIpfSxHOnJhLFY6ITAsQjohMH0sQmE9e2VuZHBvaW50OiJ2ZXJpZnlQYXNzd29yZCIsQTpmdW5jdGlvbih0KXtpZihlYSh0KSwhdC5wYXNzd29yZCl0aHJvdyBuZXcgSSgid3JvbmctcGFzc3dvcmQiKX0sRzpyYSxWOiEwLEI6ITB9LEthPXtlbmRwb2ludDoidmVyaWZ5UGhvbmVOdW1iZXIiLEE6aWEsRzpyYSxCOiEwfSxXYT17ZW5kcG9pbnQ6InZlcmlmeVBob25lTnVtYmVyIixBOmZ1bmN0aW9uKHQpe2lmKCF0LmlkVG9rZW4pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIik7aWEodCl9LEc6ZnVuY3Rpb24odCl7aWYodC50ZW1wb3JhcnlQcm9vZil0aHJvdyB0LmNvZGU9ImNyZWRlbnRpYWwtYWxyZWFkeS1pbi11c2UiLEZvKHQpO3JhKHQpfX0sSGE9e0hiOntVU0VSX05PVF9GT1VORDoidXNlci1ub3QtZm91bmQifSxlbmRwb2ludDoidmVyaWZ5UGhvbmVOdW1iZXIiLEE6aWEsRzpyYSxCOiEwfSxHYT17ZW5kcG9pbnQ6ImFjY291bnRzL21mYUVucm9sbG1lbnQ6d2l0aGRyYXciLE46WyJpZFRva2VuIiwibWZhRW5yb2xsbWVudElkIl0sRzpmdW5jdGlvbih0KXtpZighIXRbQnNdXiEhdC5yZWZyZXNoVG9rZW4pdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIil9LEI6ITAsTmE6ITB9O2Z1bmN0aW9uIHphKHQsZSxuKXtpZighZnVuY3Rpb24odCxlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiAxO2lmKHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj10W2Vbbl1dO2lmKG51bGw9PXJ8fCIiPT09cilyZXR1cm59cmV0dXJuIDF9fShuLGUuTikpcmV0dXJuIHdlKG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpKTt2YXIgcixpPSEhZS5OYSxvPWUuVWJ8fCJQT1NUIjtyZXR1cm4gYmUobikudGhlbihlLkEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5WJiYobi5yZXR1cm5TZWN1cmVUb2tlbj0hMCksZS5CJiZ0LmImJnZvaWQgMD09PW4udGVuYW50SWQmJihuLnRlbmFudElkPXQuYiksdGEodCxpP3QuaTp0LmgsZS5lbmRwb2ludCxvLG4sZS5IYixlLmxifHwhMSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiByPXQsZS5ZYT9lLllhKG4scik6cn0pLnRoZW4oZS5HKS50aGVuKGZ1bmN0aW9uKCl7aWYoIWUuWilyZXR1cm4gcjtpZighKGUuWiBpbiByKSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKTtyZXR1cm4gcltlLlpdfSl9ZnVuY3Rpb24gUWEodCl7cmV0dXJuIFlhKHtlcnJvcjp7ZXJyb3JzOlt7bWVzc2FnZTp0fV0sY29kZTo0MDAsbWVzc2FnZTp0fX0pfWZ1bmN0aW9uIFlhKHQsZSl7dmFyIG4scj0odC5lcnJvciYmdC5lcnJvci5lcnJvcnMmJnQuZXJyb3IuZXJyb3JzWzBdfHx7fSkucmVhc29ufHwiIixpPXtrZXlJbnZhbGlkOiJpbnZhbGlkLWFwaS1rZXkiLGlwUmVmZXJlckJsb2NrZWQ6ImFwcC1ub3QtYXV0aG9yaXplZCJ9O2lmKHI9aVtyXT9uZXcgSShpW3JdKTpudWxsKXJldHVybiByO2ZvcihuIGluIHI9dC5lcnJvciYmdC5lcnJvci5tZXNzYWdlfHwiIixsdChpPXtJTlZBTElEX0NVU1RPTV9UT0tFTjoiaW52YWxpZC1jdXN0b20tdG9rZW4iLENSRURFTlRJQUxfTUlTTUFUQ0g6ImN1c3RvbS10b2tlbi1taXNtYXRjaCIsTUlTU0lOR19DVVNUT01fVE9LRU46ImludGVybmFsLWVycm9yIixJTlZBTElEX0lERU5USUZJRVI6ImludmFsaWQtZW1haWwiLE1JU1NJTkdfQ09OVElOVUVfVVJJOiJpbnRlcm5hbC1lcnJvciIsSU5WQUxJRF9FTUFJTDoiaW52YWxpZC1lbWFpbCIsSU5WQUxJRF9QQVNTV09SRDoid3JvbmctcGFzc3dvcmQiLFVTRVJfRElTQUJMRUQ6InVzZXItZGlzYWJsZWQiLE1JU1NJTkdfUEFTU1dPUkQ6ImludGVybmFsLWVycm9yIixFTUFJTF9FWElTVFM6ImVtYWlsLWFscmVhZHktaW4tdXNlIixQQVNTV09SRF9MT0dJTl9ESVNBQkxFRDoib3BlcmF0aW9uLW5vdC1hbGxvd2VkIixJTlZBTElEX0lEUF9SRVNQT05TRToiaW52YWxpZC1jcmVkZW50aWFsIixJTlZBTElEX1BFTkRJTkdfVE9LRU46ImludmFsaWQtY3JlZGVudGlhbCIsRkVERVJBVEVEX1VTRVJfSURfQUxSRUFEWV9MSU5LRUQ6ImNyZWRlbnRpYWwtYWxyZWFkeS1pbi11c2UiLE1JU1NJTkdfT1JfSU5WQUxJRF9OT05DRToibWlzc2luZy1vci1pbnZhbGlkLW5vbmNlIixJTlZBTElEX01FU1NBR0VfUEFZTE9BRDoiaW52YWxpZC1tZXNzYWdlLXBheWxvYWQiLElOVkFMSURfUkVDSVBJRU5UX0VNQUlMOiJpbnZhbGlkLXJlY2lwaWVudC1lbWFpbCIsSU5WQUxJRF9TRU5ERVI6ImludmFsaWQtc2VuZGVyIixFTUFJTF9OT1RfRk9VTkQ6InVzZXItbm90LWZvdW5kIixSRVNFVF9QQVNTV09SRF9FWENFRURfTElNSVQ6InRvby1tYW55LXJlcXVlc3RzIixFWFBJUkVEX09PQl9DT0RFOiJleHBpcmVkLWFjdGlvbi1jb2RlIixJTlZBTElEX09PQl9DT0RFOiJpbnZhbGlkLWFjdGlvbi1jb2RlIixNSVNTSU5HX09PQl9DT0RFOiJpbnRlcm5hbC1lcnJvciIsSU5WQUxJRF9QUk9WSURFUl9JRDoiaW52YWxpZC1wcm92aWRlci1pZCIsQ1JFREVOVElBTF9UT09fT0xEX0xPR0lOX0FHQUlOOiJyZXF1aXJlcy1yZWNlbnQtbG9naW4iLElOVkFMSURfSURfVE9LRU46ImludmFsaWQtdXNlci10b2tlbiIsVE9LRU5fRVhQSVJFRDoidXNlci10b2tlbi1leHBpcmVkIixVU0VSX05PVF9GT1VORDoidXNlci10b2tlbi1leHBpcmVkIixDT1JTX1VOU1VQUE9SVEVEOiJjb3JzLXVuc3VwcG9ydGVkIixEWU5BTUlDX0xJTktfTk9UX0FDVElWQVRFRDoiZHluYW1pYy1saW5rLW5vdC1hY3RpdmF0ZWQiLElOVkFMSURfQVBQX0lEOiJpbnZhbGlkLWFwcC1pZCIsVE9PX01BTllfQVRURU1QVFNfVFJZX0xBVEVSOiJ0b28tbWFueS1yZXF1ZXN0cyIsV0VBS19QQVNTV09SRDoid2Vhay1wYXNzd29yZCIsT1BFUkFUSU9OX05PVF9BTExPV0VEOiJvcGVyYXRpb24tbm90LWFsbG93ZWQiLFVTRVJfQ0FOQ0VMTEVEOiJ1c2VyLWNhbmNlbGxlZCIsQ0FQVENIQV9DSEVDS19GQUlMRUQ6ImNhcHRjaGEtY2hlY2stZmFpbGVkIixJTlZBTElEX0FQUF9DUkVERU5USUFMOiJpbnZhbGlkLWFwcC1jcmVkZW50aWFsIixJTlZBTElEX0NPREU6ImludmFsaWQtdmVyaWZpY2F0aW9uLWNvZGUiLElOVkFMSURfUEhPTkVfTlVNQkVSOiJpbnZhbGlkLXBob25lLW51bWJlciIsSU5WQUxJRF9TRVNTSU9OX0lORk86ImludmFsaWQtdmVyaWZpY2F0aW9uLWlkIixJTlZBTElEX1RFTVBPUkFSWV9QUk9PRjoiaW52YWxpZC1jcmVkZW50aWFsIixNSVNTSU5HX0FQUF9DUkVERU5USUFMOiJtaXNzaW5nLWFwcC1jcmVkZW50aWFsIixNSVNTSU5HX0NPREU6Im1pc3NpbmctdmVyaWZpY2F0aW9uLWNvZGUiLE1JU1NJTkdfUEhPTkVfTlVNQkVSOiJtaXNzaW5nLXBob25lLW51bWJlciIsTUlTU0lOR19TRVNTSU9OX0lORk86Im1pc3NpbmctdmVyaWZpY2F0aW9uLWlkIixRVU9UQV9FWENFRURFRDoicXVvdGEtZXhjZWVkZWQiLFNFU1NJT05fRVhQSVJFRDoiY29kZS1leHBpcmVkIixSRUpFQ1RFRF9DUkVERU5USUFMOiJyZWplY3RlZC1jcmVkZW50aWFsIixJTlZBTElEX0NPTlRJTlVFX1VSSToiaW52YWxpZC1jb250aW51ZS11cmkiLE1JU1NJTkdfQU5EUk9JRF9QQUNLQUdFX05BTUU6Im1pc3NpbmctYW5kcm9pZC1wa2ctbmFtZSIsTUlTU0lOR19JT1NfQlVORExFX0lEOiJtaXNzaW5nLWlvcy1idW5kbGUtaWQiLFVOQVVUSE9SSVpFRF9ET01BSU46InVuYXV0aG9yaXplZC1jb250aW51ZS11cmkiLElOVkFMSURfRFlOQU1JQ19MSU5LX0RPTUFJTjoiaW52YWxpZC1keW5hbWljLWxpbmstZG9tYWluIixJTlZBTElEX09BVVRIX0NMSUVOVF9JRDoiaW52YWxpZC1vYXV0aC1jbGllbnQtaWQiLElOVkFMSURfQ0VSVF9IQVNIOiJpbnZhbGlkLWNlcnQtaGFzaCIsVU5TVVBQT1JURURfVEVOQU5UX09QRVJBVElPTjoidW5zdXBwb3J0ZWQtdGVuYW50LW9wZXJhdGlvbiIsSU5WQUxJRF9URU5BTlRfSUQ6ImludmFsaWQtdGVuYW50LWlkIixURU5BTlRfSURfTUlTTUFUQ0g6InRlbmFudC1pZC1taXNtYXRjaCIsQURNSU5fT05MWV9PUEVSQVRJT046ImFkbWluLXJlc3RyaWN0ZWQtb3BlcmF0aW9uIixJTlZBTElEX01GQV9QRU5ESU5HX0NSRURFTlRJQUw6ImludmFsaWQtbXVsdGktZmFjdG9yLXNlc3Npb24iLE1GQV9FTlJPTExNRU5UX05PVF9GT1VORDoibXVsdGktZmFjdG9yLWluZm8tbm90LWZvdW5kIixNSVNTSU5HX01GQV9QRU5ESU5HX0NSRURFTlRJQUw6Im1pc3NpbmctbXVsdGktZmFjdG9yLXNlc3Npb24iLE1JU1NJTkdfTUZBX0VOUk9MTE1FTlRfSUQ6Im1pc3NpbmctbXVsdGktZmFjdG9yLWluZm8iLEVNQUlMX0NIQU5HRV9ORUVEU19WRVJJRklDQVRJT046ImVtYWlsLWNoYW5nZS1uZWVkcy12ZXJpZmljYXRpb24iLFNFQ09ORF9GQUNUT1JfRVhJU1RTOiJzZWNvbmQtZmFjdG9yLWFscmVhZHktaW4tdXNlIixTRUNPTkRfRkFDVE9SX0xJTUlUX0VYQ0VFREVEOiJtYXhpbXVtLXNlY29uZC1mYWN0b3ItY291bnQtZXhjZWVkZWQiLFVOU1VQUE9SVEVEX0ZJUlNUX0ZBQ1RPUjoidW5zdXBwb3J0ZWQtZmlyc3QtZmFjdG9yIixVTlZFUklGSUVEX0VNQUlMOiJ1bnZlcmlmaWVkLWVtYWlsIn0sZXx8e30pLGU9KGU9ci5tYXRjaCgvXlteXHNdK1xzKjpccyooW1xzXFNdKikkLykpJiYxPGUubGVuZ3RoP2VbMV06dm9pZCAwLGkpaWYoMD09PXIuaW5kZXhPZihuKSlyZXR1cm4gbmV3IEkoaVtuXSxlKTtyZXR1cm4gbmV3IEkoImludGVybmFsLWVycm9yIixlPSFlJiZ0P0VyKHQpOmUpfWZ1bmN0aW9uIFhhKHQpe3ZhciBvO3RoaXMuYj10LHRoaXMuYT1udWxsLHRoaXMucmI9KG89dGhpcywodHU9dHV8fG5ldyBmZShmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXtrcigpLG1yKCJnYXBpLmxvYWQiKSgiZ2FwaS5pZnJhbWVzIix7Y2FsbGJhY2s6dCxvbnRpbWVvdXQ6ZnVuY3Rpb24oKXtrcigpLGUoRXJyb3IoIk5ldHdvcmsgRXJyb3IiKSl9LHRpbWVvdXQ6JGEuZ2V0KCl9KX12YXIgcjttcigiZ2FwaS5pZnJhbWVzLklmcmFtZSIpP3QoKTptcigiZ2FwaS5sb2FkIik/bigpOihyPSJfX2lmcmFtZWZjYiIrTWF0aC5mbG9vcigxZTYqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoKSxsW3JdPWZ1bmN0aW9uKCl7bXIoImdhcGkubG9hZCIpP24oKTplKEVycm9yKCJOZXR3b3JrIEVycm9yIikpfSxiZShEcyhyPV90KEphLHtvbmxvYWQ6cn0pKSkubyhmdW5jdGlvbigpe2UoRXJyb3IoIk5ldHdvcmsgRXJyb3IiKSl9KSl9KS5vKGZ1bmN0aW9uKHQpe3Rocm93IHR1PW51bGwsdH0pKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihyLGkpe21yKCJnYXBpLmlmcmFtZXMuZ2V0Q29udGV4dCIpKCkub3Blbih7d2hlcmU6ZG9jdW1lbnQuYm9keSx1cmw6by5iLG1lc3NhZ2VIYW5kbGVyc0ZpbHRlcjptcigiZ2FwaS5pZnJhbWVzLkNST1NTX09SSUdJTl9JRlJBTUVTX0ZJTFRFUiIpLGF0dHJpYnV0ZXM6e3N0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiLTEwMHB4Iix3aWR0aDoiMXB4IixoZWlnaHQ6IjFweCJ9fSxkb250Y2xlYXI6ITB9LGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtjbGVhclRpbWVvdXQobikscigpfW8uYT10LG8uYS5yZXN0eWxlKHtzZXRIaWRlT25MZWF2ZTohMX0pO3ZhciBuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpKEVycm9yKCJOZXR3b3JrIEVycm9yIikpfSxaYS5nZXQoKSk7dC5waW5nKGUpLnRoZW4oZSxmdW5jdGlvbigpe2koRXJyb3IoIk5ldHdvcmsgRXJyb3IiKSl9KX0pfSl9KSl9dmFyIEphPW5ldyBwdCh5dCwiaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvYXBpLmpzP29ubG9hZD0le29ubG9hZH0iKSwkYT1uZXcgUnIoM2U0LDZlNCksWmE9bmV3IFJyKDVlMywxNWUzKSx0dT1udWxsO2Z1bmN0aW9uIGV1KHQsZSxuLHIpe3RoaXMubD10LHRoaXMuaD1lLHRoaXMuaT1uLHRoaXMuZz1yLHRoaXMuZj1udWxsLHQ9dGhpcy5nP1JuKCh0PWtuKHRoaXMuZy51cmwpKS5jLHQuYSx0LmcsIi9lbXVsYXRvci9hdXRoL2lmcmFtZSIpOlJuKCJodHRwcyIsdGhpcy5sLG51bGwsIi9fXy9hdXRoL2lmcmFtZSIpLHRoaXMuYT10LE5uKHRoaXMuYSwiYXBpS2V5Iix0aGlzLmgpLE5uKHRoaXMuYSwiYXBwTmFtZSIsdGhpcy5pKSx0aGlzLmI9bnVsbCx0aGlzLmM9W119ZnVuY3Rpb24gbnUodCxlLG4scixpLG8pe3RoaXMudT10LHRoaXMucz1lLHRoaXMuYz1uLHRoaXMubT1yLHRoaXMudj1vLHRoaXMuaT10aGlzLmc9dGhpcy5sPW51bGwsdGhpcy5hPWksdGhpcy5oPXRoaXMuZj1udWxsfWZ1bmN0aW9uIHJ1KHQpe3RyeXtyZXR1cm4gWGwuYXBwKHQpLmF1dGgoKS5HYSgpfWNhdGNoKHQpe3JldHVybltdfX1mdW5jdGlvbiBpdSh0LGUsbixyLGksbyl7dGhpcy5zPXQsdGhpcy5nPWUsdGhpcy5iPW4sdGhpcy5mPW8sdGhpcy5jPXJ8fG51bGwsdGhpcy5pPWl8fG51bGwsdGhpcy5sPXRoaXMudT10aGlzLkM9bnVsbCx0aGlzLmg9W10sdGhpcy5tPXRoaXMuYT1udWxsfWZ1bmN0aW9uIG91KHQpe3ZhciBhPVpuKCk7cmV0dXJuIHphKHQsa2Ese30pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuYXV0aG9yaXplZERvbWFpbnN8fFtdfSkudGhlbihmdW5jdGlvbih0KXt0Ontmb3IodmFyIGU9KG49a24oYSkpLmMsbj1uLmEscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaT10W3JdLG89bixzPWU7aWYobz0wPT1pLmluZGV4T2YoImNocm9tZS1leHRlbnNpb246Ly8iKT9rbihpKS5hPT1vJiYiY2hyb21lLWV4dGVuc2lvbiI9PXM6KCJodHRwIj09c3x8Imh0dHBzIj09cykmJihpci50ZXN0KGkpP289PWk6KGk9aS5zcGxpdCgiLiIpLmpvaW4oIlxcLiIpLG5ldyBSZWdFeHAoIl4oLitcXC4iK2krInwiK2krIikkIiwiaSIpLnRlc3QobykpKSl7dD0hMDticmVhayB0fX10PSExfWlmKCF0KXRocm93IG5ldyBMbyhabigpKX0pfWZ1bmN0aW9uIHN1KGkpe3JldHVybiBpLm18fChpLm09c3IoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQsZSxuLHI7aS51fHwodD1pLmMsZT1pLmksbj1ydShpLmIpLChyPW5ldyBldShpLnMsaS5nLGkuYixpLmYpKS5mPXQsci5iPWUsci5jPXoobnx8W10pLGkudT1yLnRvU3RyaW5nKCkpLGkudj1uZXcgWGEoaS51KSxmdW5jdGlvbihyKXtpZighci52KXRocm93IEVycm9yKCJJZmNIYW5kbGVyIG11c3QgYmUgaW5pdGlhbGl6ZWQhIik7IWZ1bmN0aW9uKHQsZSl7dC5yYi50aGVuKGZ1bmN0aW9uKCl7dC5hLnJlZ2lzdGVyKCJhdXRoRXZlbnQiLGUsbXIoImdhcGkuaWZyYW1lcy5DUk9TU19PUklHSU5fSUZSQU1FU19GSUxURVIiKSl9KX0oci52LGZ1bmN0aW9uKHQpe3ZhciBlPXt9O2lmKHQmJnQuYXV0aEV2ZW50KXt2YXIgbj0hMTtmb3IodD1Qbyh0LmF1dGhFdmVudCksZT0wO2U8ci5oLmxlbmd0aDtlKyspbj1yLmhbZV0odCl8fG47cmV0dXJuKGU9e30pLnN0YXR1cz1uPyJBQ0siOiJFUlJPUiIsYmUoZSl9cmV0dXJuIGUuc3RhdHVzPSJFUlJPUiIsYmUoZSl9KX0oaSl9KSxpLm0pfWZ1bmN0aW9uIGF1KHQpe3JldHVybiB0Lmx8fCh0LkM9dC5jP2dyKHQuYyxydSh0LmIpKTpudWxsLHQubD1uZXcgcXModC5nLEEodC5pKSx0LkMpLHQuZiYmUXModC5sLHQuZikpLHQubH1mdW5jdGlvbiB1dSh0LGUsbixyLGksbyxzLGEsdSxjLGgsbCl7cmV0dXJuKHQ9bmV3IG51KHQsZSxuLHIsaSxsKSkubD1vLHQuZz1zLHQuaT1hLHQuYj1jdCh1fHxudWxsKSx0LmY9Yyx0LnliKGgpLnRvU3RyaW5nKCl9ZnVuY3Rpb24gY3UodCl7aWYodGhpcy5hPXR8fFhsLklOVEVSTkFMLnJlYWN0TmF0aXZlJiZYbC5JTlRFUk5BTC5yZWFjdE5hdGl2ZS5Bc3luY1N0b3JhZ2UsIXRoaXMuYSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiLCJUaGUgUmVhY3QgTmF0aXZlIGNvbXBhdGliaWxpdHkgbGlicmFyeSB3YXMgbm90IGZvdW5kLiIpO3RoaXMudHlwZT0iYXN5bmNTdG9yYWdlIn1mdW5jdGlvbiBodSh0KXt0aGlzLmI9dCx0aGlzLmE9e30sdGhpcy5mPW0odGhpcy5jLHRoaXMpfWV1LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmY/Tm4odGhpcy5hLCJ2Iix0aGlzLmYpOkJuKHRoaXMuYS5iLCJ2IiksdGhpcy5iP05uKHRoaXMuYSwiZWlkIix0aGlzLmIpOkJuKHRoaXMuYS5iLCJlaWQiKSx0aGlzLmMubGVuZ3RoP05uKHRoaXMuYSwiZnciLHRoaXMuYy5qb2luKCIsIikpOkJuKHRoaXMuYS5iLCJmdyIpLHRoaXMuYS50b1N0cmluZygpfSxudS5wcm90b3R5cGUueWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaD10LHRoaXN9LG51LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciB0O2lmKE5uKHQ9dGhpcy52P1JuKCh0PWtuKHRoaXMudi51cmwpKS5jLHQuYSx0LmcsIi9lbXVsYXRvci9hdXRoL2hhbmRsZXIiKTpSbigiaHR0cHMiLHRoaXMudSxudWxsLCIvX18vYXV0aC9oYW5kbGVyIiksImFwaUtleSIsdGhpcy5zKSxObih0LCJhcHBOYW1lIix0aGlzLmMpLE5uKHQsImF1dGhUeXBlIix0aGlzLm0pLHRoaXMuYS5pc09BdXRoUHJvdmlkZXIpe3ZhciBlPXRoaXMuYTt0cnl7dmFyIG49WGwuYXBwKHRoaXMuYykuYXV0aCgpLmxhKCl9Y2F0Y2godCl7bj1udWxsfWZvcihyIGluIGUub2I9bixObih0LCJwcm92aWRlcklkIix0aGlzLmEucHJvdmlkZXJJZCksZT1Tcigobj10aGlzLmEpLkliKSllW3JdPWVbcl0udG9TdHJpbmcoKTtmb3IodmFyIHI9bi5RYyxlPWN0KGUpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXTtvIGluIGUmJmRlbGV0ZSBlW29dfW4ucGImJm4ub2ImJiFlW24ucGJdJiYoZVtuLnBiXT1uLm9iKSx1dChlKXx8Tm4odCwiY3VzdG9tUGFyYW1ldGVycyIsRXIoZSkpfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmEuUWImJigobj10aGlzLmEuUWIoKSkubGVuZ3RoJiZObih0LCJzY29wZXMiLG4uam9pbigiLCIpKSksdGhpcy5sP05uKHQsInJlZGlyZWN0VXJsIix0aGlzLmwpOkJuKHQuYiwicmVkaXJlY3RVcmwiKSx0aGlzLmc/Tm4odCwiZXZlbnRJZCIsdGhpcy5nKTpCbih0LmIsImV2ZW50SWQiKSx0aGlzLmk/Tm4odCwidiIsdGhpcy5pKTpCbih0LmIsInYiKSx0aGlzLmIpZm9yKHZhciBzIGluIHRoaXMuYil0aGlzLmIuaGFzT3duUHJvcGVydHkocykmJiFBbih0LHMpJiZObih0LHMsdGhpcy5iW3NdKTtyZXR1cm4gdGhpcy5oP05uKHQsInRpZCIsdGhpcy5oKTpCbih0LmIsInRpZCIpLHRoaXMuZj9Obih0LCJlaWQiLHRoaXMuZik6Qm4odC5iLCJlaWQiKSwocz1ydSh0aGlzLmMpKS5sZW5ndGgmJk5uKHQsImZ3IixzLmpvaW4oIiwiKSksdC50b1N0cmluZygpfSwodD1pdS5wcm90b3R5cGUpLk9iPWZ1bmN0aW9uKGUsbix0KXt2YXIgcj1uZXcgSSgicG9wdXAtY2xvc2VkLWJ5LXVzZXIiKSxpPW5ldyBJKCJ3ZWItc3RvcmFnZS11bnN1cHBvcnRlZCIpLG89dGhpcyxzPSExO3JldHVybiB0aGlzLm1hKCkudGhlbihmdW5jdGlvbigpe3ZhciB0LHI7cj17dHlwZToid2ViU3RvcmFnZVN1cHBvcnQifSxzdSh0PW8pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZT10LnYsbj1yLGUucmIudGhlbihmdW5jdGlvbigpe3JldHVybiBuZXcgZmUoZnVuY3Rpb24odCl7ZS5hLnNlbmQobi50eXBlLG4sdCxtcigiZ2FwaS5pZnJhbWVzLkNST1NTX09SSUdJTl9JRlJBTUVTX0ZJTFRFUiIpKX0pfSk7dmFyIGUsbn0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCYmdC5sZW5ndGgmJnZvaWQgMCE9PXRbMF0ud2ViU3RvcmFnZVN1cHBvcnQpcmV0dXJuIHRbMF0ud2ViU3RvcmFnZVN1cHBvcnQ7dGhyb3cgRXJyb3IoKX0pLnRoZW4oZnVuY3Rpb24odCl7dHx8KGUmJm5yKGUpLG4oaSkscz0hMCl9KX0pLm8oZnVuY3Rpb24oKXt9KS50aGVuKGZ1bmN0aW9uKCl7aWYoIXMpcmV0dXJuIG49ZSxuZXcgZmUoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uIHQoKXtnbigyZTMpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbiYmIW4uY2xvc2VkP3QoKTp2b2lkIGUoKX0pfSgpfSk7dmFyIG59KS50aGVuKGZ1bmN0aW9uKCl7aWYoIXMpcmV0dXJuIGduKHQpLnRoZW4oZnVuY3Rpb24oKXtuKHIpfSl9KX0sdC5YYj1mdW5jdGlvbigpe3ZhciB0PXlyKCk7cmV0dXJuIVRyKHQpJiYhQXIodCl9LHQuVGI9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sdC5NYj1mdW5jdGlvbihlLHQsbixyLGksbyxzLGEpe2lmKCFlKXJldHVybiB3ZShuZXcgSSgicG9wdXAtYmxvY2tlZCIpKTtpZihzJiYhVHIoKSlyZXR1cm4gdGhpcy5tYSgpLm8oZnVuY3Rpb24odCl7bnIoZSksaSh0KX0pLHIoKSxiZSgpO3RoaXMuYXx8KHRoaXMuYT1vdShhdSh0aGlzKSkpO3ZhciB1PXRoaXM7cmV0dXJuIHRoaXMuYS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9dS5tYSgpLm8oZnVuY3Rpb24odCl7dGhyb3cgbnIoZSksaSh0KSx0fSk7cmV0dXJuIHIoKSx0fSkudGhlbihmdW5jdGlvbigpe2tvKG4pLHN8fHRyKHV1KHUucyx1LmcsdS5iLHQsbixudWxsLG8sdS5jLHZvaWQgMCx1LmksYSx1LmYpLGUpfSkubyhmdW5jdGlvbih0KXt0aHJvdyJhdXRoL25ldHdvcmstcmVxdWVzdC1mYWlsZWQiPT10LmNvZGUmJih1LmE9bnVsbCksdH0pfSx0Lk5iPWZ1bmN0aW9uKHQsZSxuLHIpe3RoaXMuYXx8KHRoaXMuYT1vdShhdSh0aGlzKSkpO3ZhciBpPXRoaXM7cmV0dXJuIHRoaXMuYS50aGVuKGZ1bmN0aW9uKCl7a28oZSksdHIodXUoaS5zLGkuZyxpLmIsdCxlLFpuKCksbixpLmMsdm9pZCAwLGkuaSxyLGkuZikpfSkubyhmdW5jdGlvbih0KXt0aHJvdyJhdXRoL25ldHdvcmstcmVxdWVzdC1mYWlsZWQiPT10LmNvZGUmJihpLmE9bnVsbCksdH0pfSx0Lm1hPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gc3UodGhpcykudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnYucmJ9KS5vKGZ1bmN0aW9uKCl7dGhyb3cgdC5hPW51bGwsbmV3IEkoIm5ldHdvcmstcmVxdWVzdC1mYWlsZWQiKX0pfSx0LiRiPWZ1bmN0aW9uKCl7cmV0dXJuITB9LHQuRWE9ZnVuY3Rpb24odCl7dGhpcy5oLnB1c2godCl9LHQuU2E9ZnVuY3Rpb24oZSl7SCh0aGlzLmgsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PWV9KX0sKHQ9Y3UucHJvdG90eXBlKS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGJlKHRoaXMuYS5nZXRJdGVtKHQpKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZDcih0KX0pfSx0LnNldD1mdW5jdGlvbih0LGUpe3JldHVybiBiZSh0aGlzLmEuc2V0SXRlbSh0LEVyKGUpKSl9LHQuVT1mdW5jdGlvbih0KXtyZXR1cm4gYmUodGhpcy5hLnJlbW92ZUl0ZW0odCkpfSx0LmNhPWZ1bmN0aW9uKCl7fSx0LmlhPWZ1bmN0aW9uKCl7fTt2YXIgbHUsZnU9W107ZnVuY3Rpb24gcHUodCxlLG4pe3V0KHQuYSkmJnQuYi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0LmYpLHZvaWQgMD09PXQuYVtlXSYmKHQuYVtlXT1bXSksdC5hW2VdLnB1c2gobil9ZnVuY3Rpb24gZHUodCl7dGhpcy5hPXR9ZnVuY3Rpb24gdnUodCl7dGhpcy5jPXQsdGhpcy5iPSExLHRoaXMuYT1bXX1mdW5jdGlvbiBndShyLHQsZSxuKXt2YXIgaSxvLHMsYSx1PWV8fHt9LGM9bnVsbDtpZihyLmIpcmV0dXJuIHdlKEVycm9yKCJjb25uZWN0aW9uX3VuYXZhaWxhYmxlIikpO3ZhciBoPW4/ODAwOjUwLGw9InVuZGVmaW5lZCIhPXR5cGVvZiBNZXNzYWdlQ2hhbm5lbD9uZXcgTWVzc2FnZUNoYW5uZWw6bnVsbDtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKGUsbil7bD8oaT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTWF0aC5wb3coMTAsMjApKS50b1N0cmluZygpLGwucG9ydDEuc3RhcnQoKSxzPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKEVycm9yKCJ1bnN1cHBvcnRlZF9ldmVudCIpKX0saCksYz17bWVzc2FnZUNoYW5uZWw6bCxvbk1lc3NhZ2U6bz1mdW5jdGlvbih0KXt0LmRhdGEuZXZlbnRJZD09PWkmJigiYWNrIj09PXQuZGF0YS5zdGF0dXM/KGNsZWFyVGltZW91dChzKSxhPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKEVycm9yKCJ0aW1lb3V0IikpfSwzZTMpKToiZG9uZSI9PT10LmRhdGEuc3RhdHVzPyhjbGVhclRpbWVvdXQoYSksdm9pZCAwIT09dC5kYXRhLnJlc3BvbnNlP2UodC5kYXRhLnJlc3BvbnNlKTpuKEVycm9yKCJ1bmtub3duX2Vycm9yIikpKTooY2xlYXJUaW1lb3V0KHMpLGNsZWFyVGltZW91dChhKSxuKEVycm9yKCJpbnZhbGlkX3Jlc3BvbnNlIikpKSl9fSxyLmEucHVzaChjKSxsLnBvcnQxLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLHIuYy5wb3N0TWVzc2FnZSh7ZXZlbnRUeXBlOnQsZXZlbnRJZDppLGRhdGE6dX0sW2wucG9ydDJdKSk6bihFcnJvcigiY29ubmVjdGlvbl91bmF2YWlsYWJsZSIpKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHl1KHIsYyksdH0pLm8oZnVuY3Rpb24odCl7dGhyb3cgeXUocixjKSx0fSl9ZnVuY3Rpb24geXUodCxlKXt2YXIgbixyO2UmJihuPWUubWVzc2FnZUNoYW5uZWwscj1lLm9uTWVzc2FnZSxuJiYobi5wb3J0MS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxuLnBvcnQxLmNsb3NlKCkpLEgodC5hLGZ1bmN0aW9uKHQpe3JldHVybiB0PT1lfSkpfWZ1bmN0aW9uIG11KCl7aWYoIUl1KCkpdGhyb3cgbmV3IEkoIndlYi1zdG9yYWdlLXVuc3VwcG9ydGVkIik7dGhpcy5jPXt9LHRoaXMuYT1bXSx0aGlzLmI9MCx0aGlzLm09bC5pbmRleGVkREIsdGhpcy50eXBlPSJpbmRleGVkREIiLHRoaXMuZz10aGlzLnY9dGhpcy5mPXRoaXMubD1udWxsLHRoaXMucz0hMSx0aGlzLmg9bnVsbDt2YXIgdCxlLG4scj10aGlzO2NyKCkmJnNlbGY/KHRoaXMudj0obj1jcigpP3NlbGY6bnVsbCxqKGZ1LGZ1bmN0aW9uKHQpe3QuYj09biYmKGU9dCl9KSxlfHwoZT1uZXcgaHUobiksZnUucHVzaChlKSksZSkscHUodGhpcy52LCJrZXlDaGFuZ2VkIixmdW5jdGlvbih0LG4pe3JldHVybiBOdShyKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiAwPGUubGVuZ3RoJiZqKHIuYSxmdW5jdGlvbih0KXt0KGUpfSkse2tleVByb2Nlc3NlZDpLKGUsbi5rZXkpfX0pfSkscHUodGhpcy52LCJwaW5nIixmdW5jdGlvbigpe3JldHVybiBiZShbImtleUNoYW5nZWQiXSl9KSk6KCh0PWwubmF2aWdhdG9yKSYmdC5zZXJ2aWNlV29ya2VyP2JlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0LnNlcnZpY2VXb3JrZXIucmVhZHl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFjdGl2ZXx8bnVsbH0pLm8oZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pOmJlKG51bGwpKS50aGVuKGZ1bmN0aW9uKHQpeyhyLmg9dCkmJihyLmc9bmV3IHZ1KG5ldyBkdSh0KSksZ3Uoci5nLCJwaW5nIixudWxsLCEwKS50aGVuKGZ1bmN0aW9uKHQpe3RbMF0uZnVsZmlsbGVkJiZLKHRbMF0udmFsdWUsImtleUNoYW5nZWQiKSYmKHIucz0hMCl9KS5vKGZ1bmN0aW9uKCl7fSkpfSl9ZnVuY3Rpb24gYnUoaSl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihlLG4pe3ZhciB0PWkubS5vcGVuKCJmaXJlYmFzZUxvY2FsU3RvcmFnZURiIiwxKTt0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7dHJ5e3QucHJldmVudERlZmF1bHQoKX1jYXRjaCh0KXt9bihFcnJvcih0LnRhcmdldC5lcnJvcikpfSx0Lm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbih0KXt0PXQudGFyZ2V0LnJlc3VsdDt0cnl7dC5jcmVhdGVPYmplY3RTdG9yZSgiZmlyZWJhc2VMb2NhbFN0b3JhZ2UiLHtrZXlQYXRoOiJmYmFzZV9rZXkifSl9Y2F0Y2godCl7bih0KX19LHQub25zdWNjZXNzPWZ1bmN0aW9uKHQpe3ZhciByOyh0PXQudGFyZ2V0LnJlc3VsdCkub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygiZmlyZWJhc2VMb2NhbFN0b3JhZ2UiKT9lKHQpOihyPWksbmV3IGZlKGZ1bmN0aW9uKHQsZSl7dmFyIG49ci5tLmRlbGV0ZURhdGFiYXNlKCJmaXJlYmFzZUxvY2FsU3RvcmFnZURiIik7bi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt0KCl9LG4ub25lcnJvcj1mdW5jdGlvbih0KXtlKEVycm9yKHQudGFyZ2V0LmVycm9yKSl9fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBidShpKX0pLnRoZW4oZnVuY3Rpb24odCl7ZSh0KX0pLm8oZnVuY3Rpb24odCl7bih0KX0pKX19KX1mdW5jdGlvbiB3dSh0KXtyZXR1cm4gdC5pfHwodC5pPWJ1KHQpKSx0Lml9ZnVuY3Rpb24gX3UoaSx0KXt2YXIgbz0wO3JldHVybiBuZXcgZmUoZnVuY3Rpb24gZShuLHIpe3d1KGkpLnRoZW4odCkudGhlbihuKS5vKGZ1bmN0aW9uKHQpe3JldHVybiAzPCsrbz92b2lkIHIodCk6d3UoaSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5jbG9zZSgpLGkuaT12b2lkIDAsZShuLHIpfSkubyhmdW5jdGlvbih0KXtyKHQpfSl9KX0pfWZ1bmN0aW9uIEl1KCl7dHJ5e3JldHVybiBsLmluZGV4ZWREQn1jYXRjaCh0KXtyZXR1cm59fWZ1bmN0aW9uIFR1KHQpe3JldHVybiB0Lm9iamVjdFN0b3JlKCJmaXJlYmFzZUxvY2FsU3RvcmFnZSIpfWZ1bmN0aW9uIEV1KHQsZSl7cmV0dXJuIHQudHJhbnNhY3Rpb24oWyJmaXJlYmFzZUxvY2FsU3RvcmFnZSJdLGU/InJlYWR3cml0ZSI6InJlYWRvbmx5Iil9ZnVuY3Rpb24gU3UodCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihlLG4pe3Qub25zdWNjZXNzPWZ1bmN0aW9uKHQpe3QmJnQudGFyZ2V0P2UodC50YXJnZXQucmVzdWx0KTplKCl9LHQub25lcnJvcj1mdW5jdGlvbih0KXtuKHQudGFyZ2V0LmVycm9yKX19KX1mdW5jdGlvbiBDdSh0LGUpe3JldHVybiB0LmcmJnQuaCYmKChuPWwubmF2aWdhdG9yKSYmbi5zZXJ2aWNlV29ya2VyJiZuLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcnx8bnVsbCk9PT10Lmg/Z3UodC5nLCJrZXlDaGFuZ2VkIix7a2V5OmV9LHQucykudGhlbihmdW5jdGlvbigpe30pLm8oZnVuY3Rpb24oKXt9KTpiZSgpO3ZhciBufWZ1bmN0aW9uIE51KHIpe3JldHVybiB3dShyKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBpPVR1KEV1KHQsITEpKTtyZXR1cm4gaS5nZXRBbGw/U3UoaS5nZXRBbGwoKSk6bmV3IGZlKGZ1bmN0aW9uKGUsbil7dmFyIHI9W10sdD1pLm9wZW5DdXJzb3IoKTt0Lm9uc3VjY2Vzcz1mdW5jdGlvbih0KXsodD10LnRhcmdldC5yZXN1bHQpPyhyLnB1c2godC52YWx1ZSksdC5jb250aW51ZSgpKTplKHIpfSx0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7bih0LnRhcmdldC5lcnJvcil9fSl9KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPXt9LG49W107aWYoMD09ci5iKXtmb3Iobj0wO248dC5sZW5ndGg7bisrKWVbdFtuXS5mYmFzZV9rZXldPXRbbl0udmFsdWU7bj1mdW5jdGlvbiB0KGUsbil7dmFyIHIsaT1bXTtmb3IociBpbiBlKXIgaW4gbiYmdHlwZW9mIGVbcl09PXR5cGVvZiBuW3JdPyJvYmplY3QiPT10eXBlb2YgZVtyXSYmbnVsbCE9ZVtyXSYmbnVsbCE9bltyXT8wPHQoZVtyXSxuW3JdKS5sZW5ndGgmJmkucHVzaChyKTplW3JdIT09bltyXSYmaS5wdXNoKHIpOmkucHVzaChyKTtmb3IociBpbiBuKXIgaW4gZXx8aS5wdXNoKHIpO3JldHVybiBpfShyLmMsZSksci5jPWV9cmV0dXJuIG59KX1mdW5jdGlvbiBBdSh0KXt0LmwmJnQubC5jYW5jZWwoIlNUT1BfRVZFTlQiKSx0LmYmJihjbGVhclRpbWVvdXQodC5mKSx0LmY9bnVsbCl9ZnVuY3Rpb24ga3UodCl7dmFyIHI9dGhpcyxpPW51bGw7dGhpcy5hPVtdLHRoaXMudHlwZT0iaW5kZXhlZERCIix0aGlzLmM9dCx0aGlzLmI9YmUoKS50aGVuKGZ1bmN0aW9uKCl7aWYoSXUoKSl7dmFyIGU9TnIoKSxuPSJfX3NhayIrZTtyZXR1cm4gbHU9bHV8fG5ldyBtdSwoaT1sdSkuc2V0KG4sZSkudGhlbihmdW5jdGlvbigpe3JldHVybiBpLmdldChuKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCE9PWUpdGhyb3cgRXJyb3IoImluZGV4ZWREQiBub3Qgc3VwcG9ydGVkISIpO3JldHVybiBpLlUobil9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KS5vKGZ1bmN0aW9uKCl7cmV0dXJuIHIuY30pfXJldHVybiByLmN9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiByLnR5cGU9dC50eXBlLHQuY2EoZnVuY3Rpb24oZSl7aihyLmEsZnVuY3Rpb24odCl7dChlKX0pfSksdH0pfWZ1bmN0aW9uIFJ1KCl7dGhpcy5hPXt9LHRoaXMudHlwZT0iaW5NZW1vcnkifWZ1bmN0aW9uIFB1KCl7aWYoIWZ1bmN0aW9uKCl7dmFyIHQ9Ik5vZGUiPT1ocigpO2lmKCEodD1PdSgpfHx0JiZYbC5JTlRFUk5BTC5ub2RlJiZYbC5JTlRFUk5BTC5ub2RlLmxvY2FsU3RvcmFnZSkpcmV0dXJuITE7dHJ5e3JldHVybiB0LnNldEl0ZW0oIl9fc2FrIiwiMSIpLHQucmVtb3ZlSXRlbSgiX19zYWsiKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KCkpe2lmKCJOb2RlIj09aHIoKSl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiLCJUaGUgTG9jYWxTdG9yYWdlIGNvbXBhdGliaWxpdHkgbGlicmFyeSB3YXMgbm90IGZvdW5kLiIpO3Rocm93IG5ldyBJKCJ3ZWItc3RvcmFnZS11bnN1cHBvcnRlZCIpfXRoaXMuYT1PdSgpfHxYbC5JTlRFUk5BTC5ub2RlLmxvY2FsU3RvcmFnZSx0aGlzLnR5cGU9ImxvY2FsU3RvcmFnZSJ9ZnVuY3Rpb24gT3UoKXt0cnl7dmFyIHQ9bC5sb2NhbFN0b3JhZ2UsZT1OcigpO3JldHVybiB0JiYodC5zZXRJdGVtKGUsIjEiKSx0LnJlbW92ZUl0ZW0oZSkpLHR9Y2F0Y2godCl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIER1KCl7dGhpcy50eXBlPSJudWxsU3RvcmFnZSJ9ZnVuY3Rpb24geHUoKXtpZighZnVuY3Rpb24oKXt2YXIgdD0iTm9kZSI9PWhyKCk7aWYoISh0PUx1KCl8fHQmJlhsLklOVEVSTkFMLm5vZGUmJlhsLklOVEVSTkFMLm5vZGUuc2Vzc2lvblN0b3JhZ2UpKXJldHVybiExO3RyeXtyZXR1cm4gdC5zZXRJdGVtKCJfX3NhayIsIjEiKSx0LnJlbW92ZUl0ZW0oIl9fc2FrIiksITB9Y2F0Y2godCl7cmV0dXJuITF9fSgpKXtpZigiTm9kZSI9PWhyKCkpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIiwiVGhlIFNlc3Npb25TdG9yYWdlIGNvbXBhdGliaWxpdHkgbGlicmFyeSB3YXMgbm90IGZvdW5kLiIpO3Rocm93IG5ldyBJKCJ3ZWItc3RvcmFnZS11bnN1cHBvcnRlZCIpfXRoaXMuYT1MdSgpfHxYbC5JTlRFUk5BTC5ub2RlLnNlc3Npb25TdG9yYWdlLHRoaXMudHlwZT0ic2Vzc2lvblN0b3JhZ2UifWZ1bmN0aW9uIEx1KCl7dHJ5e3ZhciB0PWwuc2Vzc2lvblN0b3JhZ2UsZT1OcigpO3JldHVybiB0JiYodC5zZXRJdGVtKGUsIjEiKSx0LnJlbW92ZUl0ZW0oZSkpLHR9Y2F0Y2godCl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIE11KCl7dmFyIHQ9e307dC5Ccm93c2VyPWp1LHQuTm9kZT1xdSx0LlJlYWN0TmF0aXZlPVZ1LHQuV29ya2VyPUJ1LHRoaXMuYT10W2hyKCldfWh1LnByb3RvdHlwZS5jPWZ1bmN0aW9uKG4pe3ZhciBlLHI9bi5kYXRhLmV2ZW50VHlwZSxpPW4uZGF0YS5ldmVudElkLHQ9dGhpcy5hW3JdO3QmJjA8dC5sZW5ndGgmJihuLnBvcnRzWzBdLnBvc3RNZXNzYWdlKHtzdGF0dXM6ImFjayIsZXZlbnRJZDppLGV2ZW50VHlwZTpyLHJlc3BvbnNlOm51bGx9KSxlPVtdLGoodCxmdW5jdGlvbih0KXtlLnB1c2goYmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQobi5vcmlnaW4sbi5kYXRhLmRhdGEpfSkpfSksSWUoZSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT1bXTtqKHQsZnVuY3Rpb24odCl7ZS5wdXNoKHtmdWxmaWxsZWQ6dC5QYix2YWx1ZTp0LnZhbHVlLHJlYXNvbjp0LnJlYXNvbj90LnJlYXNvbi5tZXNzYWdlOnZvaWQgMH0pfSksaihlLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KXZvaWQgMD09PXRbZV0mJmRlbGV0ZSB0W2VdfSksbi5wb3J0c1swXS5wb3N0TWVzc2FnZSh7c3RhdHVzOiJkb25lIixldmVudElkOmksZXZlbnRUeXBlOnIscmVzcG9uc2U6ZX0pfSkpfSxkdS5wcm90b3R5cGUucG9zdE1lc3NhZ2U9ZnVuY3Rpb24odCxlKXt0aGlzLmEucG9zdE1lc3NhZ2UodCxlKX0sdnUucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMuYS5sZW5ndGg7KXl1KHRoaXMsdGhpcy5hWzBdKTt0aGlzLmI9ITB9LCh0PW11LnByb3RvdHlwZSkuc2V0PWZ1bmN0aW9uKHIsaSl7dmFyIG89dGhpcyxzPSExO3JldHVybiBfdSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiBTdSgodD1UdShFdSh0LCEwKSkpLmdldChyKSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBfdShvLGZ1bmN0aW9uKHQpe2lmKHQ9VHUoRXUodCwhMCkpLG4pcmV0dXJuIG4udmFsdWU9aSxTdSh0LnB1dChuKSk7by5iKysscz0hMDt2YXIgZT17fTtyZXR1cm4gZS5mYmFzZV9rZXk9cixlLnZhbHVlPWksU3UodC5hZGQoZSkpfSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG8uY1tyXT1pLEN1KG8scil9KS5vYShmdW5jdGlvbigpe3MmJm8uYi0tfSl9LHQuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBfdSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiBTdShUdShFdSh0LCExKSkuZ2V0KGUpKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQudmFsdWV9KX0sdC5VPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj0hMTtyZXR1cm4gX3UodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gcj0hMCxuLmIrKyxTdShUdShFdSh0LCEwKSkuZGVsZXRlKGUpKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZGVsZXRlIG4uY1tlXSxDdShuLGUpfSkub2EoZnVuY3Rpb24oKXtyJiZuLmItLX0pfSx0LmNhPWZ1bmN0aW9uKHQpe3ZhciBuOzA9PXRoaXMuYS5sZW5ndGgmJihBdShuPXRoaXMpLGZ1bmN0aW9uIGUoKXtuLmY9c2V0VGltZW91dChmdW5jdGlvbigpe24ubD1OdShuKS50aGVuKGZ1bmN0aW9uKGUpezA8ZS5sZW5ndGgmJmoobi5hLGZ1bmN0aW9uKHQpe3QoZSl9KX0pLnRoZW4oZnVuY3Rpb24oKXtlKCl9KS5vKGZ1bmN0aW9uKHQpeyJTVE9QX0VWRU5UIiE9dC5tZXNzYWdlJiZlKCl9KX0sODAwKX0oKSksdGhpcy5hLnB1c2godCl9LHQuaWE9ZnVuY3Rpb24oZSl7SCh0aGlzLmEsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PWV9KSwwPT10aGlzLmEubGVuZ3RoJiZBdSh0aGlzKX0sKHQ9a3UucHJvdG90eXBlKS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYi50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldChlKX0pfSx0LnNldD1mdW5jdGlvbihlLG4pe3JldHVybiB0aGlzLmIudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXQoZSxuKX0pfSx0LlU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYi50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LlUoZSl9KX0sdC5jYT1mdW5jdGlvbih0KXt0aGlzLmEucHVzaCh0KX0sdC5pYT1mdW5jdGlvbihlKXtIKHRoaXMuYSxmdW5jdGlvbih0KXtyZXR1cm4gdD09ZX0pfSwodD1SdS5wcm90b3R5cGUpLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYmUodGhpcy5hW3RdKX0sdC5zZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hW3RdPWUsYmUoKX0sdC5VPWZ1bmN0aW9uKHQpe3JldHVybiBkZWxldGUgdGhpcy5hW3RdLGJlKCl9LHQuY2E9ZnVuY3Rpb24oKXt9LHQuaWE9ZnVuY3Rpb24oKXt9LCh0PVB1LnByb3RvdHlwZSkuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIGJlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBDcihlLmEuZ2V0SXRlbSh0KSl9KX0sdC5zZXQ9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3JldHVybiBiZSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgdD1FcihuKTtudWxsPT09dD9yLlUoZSk6ci5hLnNldEl0ZW0oZSx0KX0pfSx0LlU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gYmUoKS50aGVuKGZ1bmN0aW9uKCl7ZS5hLnJlbW92ZUl0ZW0odCl9KX0sdC5jYT1mdW5jdGlvbih0KXtsLndpbmRvdyYmJGUobC53aW5kb3csInN0b3JhZ2UiLHQpfSx0LmlhPWZ1bmN0aW9uKHQpe2wud2luZG93JiZlbihsLndpbmRvdywic3RvcmFnZSIsdCl9LCh0PUR1LnByb3RvdHlwZSkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIGJlKG51bGwpfSx0LnNldD1mdW5jdGlvbigpe3JldHVybiBiZSgpfSx0LlU9ZnVuY3Rpb24oKXtyZXR1cm4gYmUoKX0sdC5jYT1mdW5jdGlvbigpe30sdC5pYT1mdW5jdGlvbigpe30sKHQ9eHUucHJvdG90eXBlKS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gYmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIENyKGUuYS5nZXRJdGVtKHQpKX0pfSx0LnNldD1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7cmV0dXJuIGJlKCkudGhlbihmdW5jdGlvbigpe3ZhciB0PUVyKG4pO251bGw9PT10P3IuVShlKTpyLmEuc2V0SXRlbShlLHQpfSl9LHQuVT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBiZSgpLnRoZW4oZnVuY3Rpb24oKXtlLmEucmVtb3ZlSXRlbSh0KX0pfSx0LmNhPWZ1bmN0aW9uKCl7fSx0LmlhPWZ1bmN0aW9uKCl7fTt2YXIgRnUsVXUsanU9e0Y6UHUsYmI6eHV9LHF1PXtGOlB1LGJiOnh1fSxWdT17RjpjdSxiYjpEdX0sQnU9e0Y6UHUsYmI6RHV9LEt1PXtyZDoibG9jYWwiLE5PTkU6Im5vbmUiLHRkOiJzZXNzaW9uIn07ZnVuY3Rpb24gV3UoKXt2YXIgdD0hKEFyKHlyKCkpfHwhdXIoKSksZT1UcigpLG49YnIoKTt0aGlzLm09dCx0aGlzLmg9ZSx0aGlzLmw9bix0aGlzLmE9e30sdD1GdT1GdXx8bmV3IE11O3RyeXt0aGlzLmc9ISRuKCkmJnhyKCl8fCFsLmluZGV4ZWREQj9uZXcgdC5hLkY6bmV3IGt1KG5ldyhjcigpP1J1OnQuYS5GKSl9Y2F0Y2godCl7dGhpcy5nPW5ldyBSdSx0aGlzLmg9ITB9dHJ5e3RoaXMuaT1uZXcgdC5hLmJifWNhdGNoKHQpe3RoaXMuaT1uZXcgUnV9dGhpcy52PW5ldyBSdSx0aGlzLmY9bSh0aGlzLlliLHRoaXMpLHRoaXMuYj17fX1mdW5jdGlvbiBIdSgpe3JldHVybiBVdT1VdXx8bmV3IFd1fWZ1bmN0aW9uIEd1KHQsZSl7c3dpdGNoKGUpe2Nhc2Uic2Vzc2lvbiI6cmV0dXJuIHQuaTtjYXNlIm5vbmUiOnJldHVybiB0LnY7ZGVmYXVsdDpyZXR1cm4gdC5nfX1mdW5jdGlvbiB6dSh0LGUpe3JldHVybiJmaXJlYmFzZToiK3QubmFtZSsoZT8iOiIrZToiIil9ZnVuY3Rpb24gUXUodCxlLG4pe3JldHVybiBuPXp1KGUsbiksImxvY2FsIj09ZS5GJiYodC5iW25dPW51bGwpLEd1KHQsZS5GKS5VKG4pfWZ1bmN0aW9uIFl1KHQpe3QuYyYmKGNsZWFySW50ZXJ2YWwodC5jKSx0LmM9bnVsbCl9ZnVuY3Rpb24gWHUodCl7dGhpcy5hPXQsdGhpcy5iPUh1KCl9KHQ9V3UucHJvdG90eXBlKS5nZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3UodGhpcyx0LkYpLmdldCh6dSh0LGUpKX0sdC5zZXQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXp1KGUsbiksaT10aGlzLG89R3UodGhpcyxlLkYpO3JldHVybiBvLnNldChyLHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gby5nZXQocil9KS50aGVuKGZ1bmN0aW9uKHQpeyJsb2NhbCI9PWUuRiYmKGkuYltyXT10KX0pfSx0LmFkZExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjt0PXp1KHQsZSksdGhpcy5sJiYodGhpcy5iW3RdPWwubG9jYWxTdG9yYWdlLmdldEl0ZW0odCkpLHV0KHRoaXMuYSkmJihHdSh0aGlzLCJsb2NhbCIpLmNhKHRoaXMuZiksdGhpcy5ofHwoJG4oKXx8IXhyKCkpJiZsLmluZGV4ZWREQnx8IXRoaXMubHx8KFl1KHI9dGhpcyksci5jPXNldEludGVydmFsKGZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHIuYSl7dmFyIGU9bC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0KSxuPXIuYlt0XTtlIT1uJiYoci5iW3RdPWUsZT1uZXcgVmUoe3R5cGU6InN0b3JhZ2UiLGtleTp0LHRhcmdldDp3aW5kb3csb2xkVmFsdWU6bixuZXdWYWx1ZTplLGE6ITB9KSxyLlliKGUpKX19LDFlMykpKSx0aGlzLmFbdF18fCh0aGlzLmFbdF09W10pLHRoaXMuYVt0XS5wdXNoKG4pfSx0LnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuKXt0PXp1KHQsZSksdGhpcy5hW3RdJiYoSCh0aGlzLmFbdF0sZnVuY3Rpb24odCl7cmV0dXJuIHQ9PW59KSwwPT10aGlzLmFbdF0ubGVuZ3RoJiZkZWxldGUgdGhpcy5hW3RdKSx1dCh0aGlzLmEpJiYoR3UodGhpcywibG9jYWwiKS5pYSh0aGlzLmYpLFl1KHRoaXMpKX0sdC5ZYj1mdW5jdGlvbih0KXtpZih0JiZ0Lmcpe3ZhciBlPXQuYS5rZXk7aWYobnVsbD09ZSlmb3IodmFyIG4gaW4gdGhpcy5hKXt2YXIgcj10aGlzLmJbbl07dm9pZCAwPT09ciYmKHI9bnVsbCk7dmFyIGk9bC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShuKTtpIT09ciYmKHRoaXMuYltuXT1pLHRoaXMubWIobikpfWVsc2UgaWYoMD09ZS5pbmRleE9mKCJmaXJlYmFzZToiKSYmdGhpcy5hW2VdKXtpZih2b2lkIDAhPT10LmEuYT9HdSh0aGlzLCJsb2NhbCIpLmlhKHRoaXMuZik6WXUodGhpcyksdGhpcy5tKWlmKG49bC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKSwocj10LmEubmV3VmFsdWUpIT09biludWxsIT09cj9sLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGUscik6bC5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShlKTtlbHNlIGlmKHRoaXMuYltlXT09PXImJnZvaWQgMD09PXQuYS5hKXJldHVybjt2YXIgbz10aGlzLG49ZnVuY3Rpb24oKXt2b2lkIDA9PT10LmEuYSYmby5iW2VdPT09bC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKXx8KG8uYltlXT1sLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGUpLG8ubWIoZSkpfTtCdCYmJHQmJjEwPT0kdCYmbC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKSE9PXQuYS5uZXdWYWx1ZSYmdC5hLm5ld1ZhbHVlIT09dC5hLm9sZFZhbHVlP3NldFRpbWVvdXQobiwxMCk6bigpfX1lbHNlIGoodCxtKHRoaXMubWIsdGhpcykpfSx0Lm1iPWZ1bmN0aW9uKHQpe3RoaXMuYVt0XSYmaih0aGlzLmFbdF0sZnVuY3Rpb24odCl7dCgpfSl9O3ZhciBKdSwkdT17bmFtZToiYXV0aEV2ZW50IixGOiJsb2NhbCJ9O2Z1bmN0aW9uIFp1KCl7dGhpcy5hPUh1KCl9ZnVuY3Rpb24gdGModCxlKXt0aGlzLmI9ZWMsdGhpcy5mPWwuVWludDhBcnJheT9uZXcgVWludDhBcnJheSh0aGlzLmIpOkFycmF5KHRoaXMuYiksdGhpcy5nPXRoaXMuYz0wLHRoaXMuYT1bXSx0aGlzLmk9dCx0aGlzLmg9ZSx0aGlzLmw9bC5JbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KDY0KTpBcnJheSg2NCksdm9pZCAwPT09SnUmJihKdT1sLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkodWMpOnVjKSx0aGlzLnJlc2V0KCl9dyh0YyxmdW5jdGlvbigpe3RoaXMuYj0tMX0pO2Zvcih2YXIgZWM9NjQsbmM9ZWMtMSxyYz1bXSxpYz0wO2ljPG5jO2ljKyspcmNbaWNdPTA7dmFyIG9jPUcoMTI4LHJjKTtmdW5jdGlvbiBzYyh0KXtmb3IodmFyIGU9dC5mLG49dC5sLHI9MCxpPTA7aTxlLmxlbmd0aDspbltyKytdPWVbaV08PDI0fGVbaSsxXTw8MTZ8ZVtpKzJdPDw4fGVbaSszXSxpPTQqcjtmb3IoZT0xNjtlPDY0O2UrKyl7dmFyIGk9MHxuW2UtMTVdLHI9MHxuW2UtMl0sbz0oMHxuW2UtMTZdKSsoKGk+Pj43fGk8PDI1KV4oaT4+PjE4fGk8PDE0KV5pPj4+Myl8MCxzPSgwfG5bZS03XSkrKChyPj4+MTd8cjw8MTUpXihyPj4+MTl8cjw8MTMpXnI+Pj4xMCl8MDtuW2VdPW8rc3wwfXI9MHx0LmFbMF0saT0wfHQuYVsxXTt2YXIgYT0wfHQuYVsyXSx1PTB8dC5hWzNdLGM9MHx0LmFbNF0saD0wfHQuYVs1XSxsPTB8dC5hWzZdO2ZvcihvPTB8dC5hWzddLGU9MDtlPDY0O2UrKyl7dmFyIGY9KChyPj4+MnxyPDwzMCleKHI+Pj4xM3xyPDwxOSleKHI+Pj4yMnxyPDwxMCkpKyhyJmleciZhXmkmYSl8MDtzPShvPW8rKChjPj4+NnxjPDwyNileKGM+Pj4xMXxjPDwyMSleKGM+Pj4yNXxjPDw3KSl8MCkrKChzPShzPWMmaF5+YyZsKSsoMHxKdVtlXSl8MCkrKDB8bltlXSl8MCl8MCxvPWwsbD1oLGg9YyxjPXUrc3wwLHU9YSxhPWksaT1yLHI9cytmfDB9dC5hWzBdPXQuYVswXStyfDAsdC5hWzFdPXQuYVsxXStpfDAsdC5hWzJdPXQuYVsyXSthfDAsdC5hWzNdPXQuYVszXSt1fDAsdC5hWzRdPXQuYVs0XStjfDAsdC5hWzVdPXQuYVs1XStofDAsdC5hWzZdPXQuYVs2XStsfDAsdC5hWzddPXQuYVs3XStvfDB9ZnVuY3Rpb24gYWModCxlLG4pe3ZvaWQgMD09PW4mJihuPWUubGVuZ3RoKTt2YXIgcj0wLGk9dC5jO2lmKCJzdHJpbmciPT10eXBlb2YgZSlmb3IoO3I8bjspdC5mW2krK109ZS5jaGFyQ29kZUF0KHIrKyksaT09dC5iJiYoc2ModCksaT0wKTtlbHNle2lmKCFkKGUpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgc3RyaW5nIG9yIGFycmF5Iik7Zm9yKDtyPG47KXt2YXIgbz1lW3IrK107aWYoISgibnVtYmVyIj09dHlwZW9mIG8mJjA8PW8mJm88PTI1NSYmbz09KDB8bykpKXRocm93IEVycm9yKCJtZXNzYWdlIG11c3QgYmUgYSBieXRlIGFycmF5Iik7dC5mW2krK109byxpPT10LmImJihzYyh0KSxpPTApfX10LmM9aSx0LmcrPW59dGMucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5nPXRoaXMuYz0wLHRoaXMuYT1sLkludDMyQXJyYXk/bmV3IEludDMyQXJyYXkodGhpcy5oKTp6KHRoaXMuaCl9O3ZhciB1Yz1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTtmdW5jdGlvbiBjYygpe3RjLmNhbGwodGhpcyw4LGhjKX13KGNjLHRjKTt2YXIgaGM9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XTtmdW5jdGlvbiBsYyh0LGUsbixyLGksbyl7dGhpcy52PXQsdGhpcy5pPWUsdGhpcy5sPW4sdGhpcy5tPXJ8fG51bGwsdGhpcy51PWl8fG51bGwsdGhpcy5zPW8sdGhpcy5oPWUrIjoiK24sdGhpcy5DPW5ldyBadSx0aGlzLmc9bmV3IFh1KHRoaXMuaCksdGhpcy5mPW51bGwsdGhpcy5iPVtdLHRoaXMuYT10aGlzLmM9bnVsbH1mdW5jdGlvbiBmYyh0KXtyZXR1cm4gbmV3IEkoImludmFsaWQtY29yZG92YS1jb25maWd1cmF0aW9uIix0KX1mdW5jdGlvbiBwYyh0KXt2YXIgZT1uZXcgY2M7YWMoZSx0KSx0PVtdO3ZhciBuPTgqZS5nO2UuYzw1Nj9hYyhlLG9jLDU2LWUuYyk6YWMoZSxvYyxlLmItKGUuYy01NikpO2Zvcih2YXIgcj02Mzs1Njw9cjtyLS0pZS5mW3JdPTI1NSZuLG4vPTI1Njtmb3Ioc2MoZSkscj1uPTA7cjxlLmk7cisrKWZvcih2YXIgaT0yNDswPD1pO2ktPTgpdFtuKytdPWUuYVtyXT4+aSYyNTU7cmV0dXJuIFYodCxmdW5jdGlvbih0KXtyZXR1cm4gMTwodD10LnRvU3RyaW5nKDE2KSkubGVuZ3RoP3Q6IjAiK3R9KS5qb2luKCIiKX1mdW5jdGlvbiBkYyh0LGUpe2Zvcih2YXIgbj0wO248dC5iLmxlbmd0aDtuKyspdHJ5e3QuYltuXShlKX1jYXRjaCh0KXt9fWZ1bmN0aW9uIHZjKGEpe3JldHVybiBhLmZ8fChhLmY9YS5tYSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIGUocil7dD0hMCxzJiZzLmNhbmNlbCgpLGdjKGkpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGUsbj1vO3QmJnImJnIudXJsJiYoZT1udWxsLG49KGU9LTEhPShuPVFpKHIudXJsKSkuaW5kZXhPZigiL19fL2F1dGgvY2FsbGJhY2siKT8oZT0ib2JqZWN0Ij09dHlwZW9mKGU9Q3IoQW4oZT1rbihuKSwiZmlyZWJhc2VFcnJvciIpfHxudWxsKSk/VChlKTpudWxsKT9uZXcgUm8odC5jLHQuYixudWxsLG51bGwsZSxudWxsLHQuVCgpKTpuZXcgUm8odC5jLHQuYixuLHQuZixudWxsLG51bGwsdC5UKCkpOmUpfHxvKSxkYyhpLG4pfSl9dmFyIGksbyx0LHMscjthLkVhKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIG4oZSksYS5TYSh0KSwhMX0pLGk9YSxvPW5ldyBSbygidW5rbm93biIsbnVsbCxudWxsLG51bGwsbmV3IEkoIm5vLWF1dGgtZXZlbnQiKSksdD0hMSxzPWduKDUwMCkudGhlbihmdW5jdGlvbigpe3JldHVybiBnYyhpKS50aGVuKGZ1bmN0aW9uKCl7dHx8ZGMoaSxvKX0pfSkscj1sLmhhbmRsZU9wZW5VUkwsbC5oYW5kbGVPcGVuVVJMPWZ1bmN0aW9uKHQpe2lmKDA9PXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKG1yKCJCdWlsZEluZm8ucGFja2FnZU5hbWUiLGwpLnRvTG93ZXJDYXNlKCkrIjovLyIpJiZlKHt1cmw6dH0pLCJmdW5jdGlvbiI9PXR5cGVvZiByKXRyeXtyKHQpfWNhdGNoKHQpe2NvbnNvbGUuZXJyb3IodCl9fSx4bz14b3x8bmV3IE9vLGZ1bmN0aW9uKHQpe3ZhciBuPXhvO24uYS5wdXNoKHQpLG4uYnx8KG4uYj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPG4uYS5sZW5ndGg7ZSsrKW4uYVtlXSh0KX0sImZ1bmN0aW9uIj09dHlwZW9mKHQ9bXIoInVuaXZlcnNhbExpbmtzLnN1YnNjcmliZSIsbCkpJiZ0KG51bGwsbi5iKSl9KGUpfSl9KSksYS5mfWZ1bmN0aW9uIGdjKGUpe3ZhciB0LG49bnVsbDtyZXR1cm4odD1lLmcpLmIuZ2V0KCR1LHQuYSkudGhlbihQbykudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbj10LFF1KCh0PWUuZykuYiwkdSx0LmEpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9ZnVuY3Rpb24geWModCl7dGhpcy5hPXQsdGhpcy5iPUh1KCl9KHQ9bGMucHJvdG90eXBlKS5tYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLklhfHwodGhpcy5JYT0oYXIodm9pZCAwKT9zcigpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHQsZSl7dmFyIG49bC5kb2N1bWVudCxyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKEVycm9yKCJDb3Jkb3ZhIGZyYW1ld29yayBpcyBub3QgcmVhZHkuIikpfSwxZTMpO24uYWRkRXZlbnRMaXN0ZW5lcigiZGV2aWNlcmVhZHkiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpLHQoKX0sITEpfSl9KTp3ZShFcnJvcigiQ29yZG92YSBtdXN0IHJ1biBpbiBhbiBBbmRyb2lkIG9yIGlPUyBmaWxlIHNjaGVtZS4iKSkpLnRoZW4oZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbXIoInVuaXZlcnNhbExpbmtzLnN1YnNjcmliZSIsbCkpdGhyb3cgZmMoImNvcmRvdmEtdW5pdmVyc2FsLWxpbmtzLXBsdWdpbi1maXggaXMgbm90IGluc3RhbGxlZCIpO2lmKHZvaWQgMD09PW1yKCJCdWlsZEluZm8ucGFja2FnZU5hbWUiLGwpKXRocm93IGZjKCJjb3Jkb3ZhLXBsdWdpbi1idWlsZGluZm8gaXMgbm90IGluc3RhbGxlZCIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBtcigiY29yZG92YS5wbHVnaW5zLmJyb3dzZXJ0YWIub3BlblVybCIsbCkpdGhyb3cgZmMoImNvcmRvdmEtcGx1Z2luLWJyb3dzZXJ0YWIgaXMgbm90IGluc3RhbGxlZCIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBtcigiY29yZG92YS5JbkFwcEJyb3dzZXIub3BlbiIsbCkpdGhyb3cgZmMoImNvcmRvdmEtcGx1Z2luLWluYXBwYnJvd3NlciBpcyBub3QgaW5zdGFsbGVkIil9LGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEkoImNvcmRvdmEtbm90LXJlYWR5Iil9KSl9LHQuT2I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZShuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKSxiZSgpfSx0Lk1iPWZ1bmN0aW9uKCl7cmV0dXJuIHdlKG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IikpfSx0LiRiPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHQuWGI9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdC5UYj1mdW5jdGlvbigpe3JldHVybiEwfSx0Lk5iPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKHRoaXMuYylyZXR1cm4gd2UobmV3IEkoInJlZGlyZWN0LW9wZXJhdGlvbi1wZW5kaW5nIikpO3ZhciBpPXRoaXMsbz1sLmRvY3VtZW50LHM9bnVsbCxhPW51bGwsdT1udWxsLGM9bnVsbDtyZXR1cm4gdGhpcy5jPWJlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBrbyhlKSx2YyhpKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obix0LGUscixpKXt2YXIgbz1mdW5jdGlvbigpe2Zvcih2YXIgdD0yMCxlPVtdOzA8dDspZS5wdXNoKCIxMjM0NTY3ODkwYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIuY2hhckF0KE1hdGguZmxvb3IoNjIqTWF0aC5yYW5kb20oKSkpKSx0LS07cmV0dXJuIGUuam9pbigiIil9KCkscz1uZXcgUm8odCxyLG51bGwsbyxuZXcgSSgibm8tYXV0aC1ldmVudCIpLG51bGwsaSksYT1tcigiQnVpbGRJbmZvLnBhY2thZ2VOYW1lIixsKTtpZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IEkoImludmFsaWQtY29yZG92YS1jb25maWd1cmF0aW9uIik7dmFyIHU9bXIoIkJ1aWxkSW5mby5kaXNwbGF5TmFtZSIsbCksYz17fTtpZih5cigpLnRvTG93ZXJDYXNlKCkubWF0Y2goL2lwaG9uZXxpcGFkfGlwb2QvKSljLmliaT1hO2Vsc2V7aWYoIXlyKCkudG9Mb3dlckNhc2UoKS5tYXRjaCgvYW5kcm9pZC8pKXJldHVybiB3ZShuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKTtjLmFwbj1hfXUmJihjLmFwcERpc3BsYXlOYW1lPXUpLG89cGMobyksYy5zZXNzaW9uSWQ9bzt2YXIgaD11dShuLnYsbi5pLG4ubCx0LGUsbnVsbCxyLG4ubSxjLG4udSxpLG4ucyk7cmV0dXJuIG4ubWEoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9bi5oO3JldHVybiBuLkMuYS5zZXQoJHUscy53KCksdCl9KS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9bXIoImNvcmRvdmEucGx1Z2lucy5icm93c2VydGFiLmlzQXZhaWxhYmxlIixsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgSSgiaW52YWxpZC1jb3Jkb3ZhLWNvbmZpZ3VyYXRpb24iKTt2YXIgZT1udWxsO3QoZnVuY3Rpb24odCl7aWYodCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mKGU9bXIoImNvcmRvdmEucGx1Z2lucy5icm93c2VydGFiLm9wZW5VcmwiLGwpKSl0aHJvdyBuZXcgSSgiaW52YWxpZC1jb3Jkb3ZhLWNvbmZpZ3VyYXRpb24iKTtlKGgpfWVsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mKGU9bXIoImNvcmRvdmEuSW5BcHBCcm93c2VyLm9wZW4iLGwpKSl0aHJvdyBuZXcgSSgiaW52YWxpZC1jb3Jkb3ZhLWNvbmZpZ3VyYXRpb24iKTt0PXlyKCksbi5hPWUoaCx0Lm1hdGNoKC8oaVBhZHxpUGhvbmV8aVBvZCkuKk9TIDdfXGQvaSl8fHQubWF0Y2goLyhpUGFkfGlQaG9uZXxpUG9kKS4qT1MgOF9cZC9pKT8iX2JsYW5rIjoiX3N5c3RlbSIsImxvY2F0aW9uPXllcyIpfX0pfSl9KGksdCxlLG4scil9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbihlLHQpe2E9ZnVuY3Rpb24oKXt2YXIgdD1tcigiY29yZG92YS5wbHVnaW5zLmJyb3dzZXJ0YWIuY2xvc2UiLGwpO3JldHVybiBlKCksImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQoKSxpLmEmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmEuY2xvc2UmJihpLmEuY2xvc2UoKSxpLmE9bnVsbCksITF9LGkuRWEoYSksdT1mdW5jdGlvbigpe3M9c3x8Z24oMmUzKS50aGVuKGZ1bmN0aW9uKCl7dChuZXcgSSgicmVkaXJlY3QtY2FuY2VsbGVkLWJ5LXVzZXIiKSl9KX0sYz1mdW5jdGlvbigpe1ByKCkmJnUoKX0sby5hZGRFdmVudExpc3RlbmVyKCJyZXN1bWUiLHUsITEpLHlyKCkudG9Mb3dlckNhc2UoKS5tYXRjaCgvYW5kcm9pZC8pfHxvLmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGMsITEpfSkubyhmdW5jdGlvbih0KXtyZXR1cm4gZ2MoaSkudGhlbihmdW5jdGlvbigpe3Rocm93IHR9KX0pfSkub2EoZnVuY3Rpb24oKXt1JiZvLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc3VtZSIsdSwhMSksYyYmby5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixjLCExKSxzJiZzLmNhbmNlbCgpLGEmJmkuU2EoYSksaS5jPW51bGx9KX0sdC5FYT1mdW5jdGlvbihlKXt0aGlzLmIucHVzaChlKSx2Yyh0aGlzKS5vKGZ1bmN0aW9uKHQpeyJhdXRoL2ludmFsaWQtY29yZG92YS1jb25maWd1cmF0aW9uIj09PXQuY29kZSYmKHQ9bmV3IFJvKCJ1bmtub3duIixudWxsLG51bGwsbnVsbCxuZXcgSSgibm8tYXV0aC1ldmVudCIpKSxlKHQpKX0pfSx0LlNhPWZ1bmN0aW9uKGUpe0godGhpcy5iLGZ1bmN0aW9uKHQpe3JldHVybiB0PT1lfSl9O3ZhciBtYz17bmFtZToicGVuZGluZ1JlZGlyZWN0IixGOiJzZXNzaW9uIn07ZnVuY3Rpb24gYmModCl7cmV0dXJuIFF1KHQuYixtYyx0LmEpfWZ1bmN0aW9uIHdjKHQsZSxuLHIpe3RoaXMuaT17fSx0aGlzLnU9MCx0aGlzLkQ9dCx0aGlzLnY9ZSx0aGlzLm09bix0aGlzLko9cix0aGlzLmg9W10sdGhpcy5mPSExLHRoaXMubD1tKHRoaXMucyx0aGlzKSx0aGlzLmI9bmV3IExjLHRoaXMuQz1uZXcgcWMsdGhpcy5nPW5ldyB5YyhEYyh0aGlzLnYsdGhpcy5tKSksdGhpcy5jPXt9LHRoaXMuYy51bmtub3duPXRoaXMuYix0aGlzLmMuc2lnbkluVmlhUmVkaXJlY3Q9dGhpcy5iLHRoaXMuYy5saW5rVmlhUmVkaXJlY3Q9dGhpcy5iLHRoaXMuYy5yZWF1dGhWaWFSZWRpcmVjdD10aGlzLmIsdGhpcy5jLnNpZ25JblZpYVBvcHVwPXRoaXMuQyx0aGlzLmMubGlua1ZpYVBvcHVwPXRoaXMuQyx0aGlzLmMucmVhdXRoVmlhUG9wdXA9dGhpcy5DLHRoaXMuYT1fYyh0aGlzLkQsdGhpcy52LHRoaXMubSxFLHRoaXMuSil9ZnVuY3Rpb24gX2ModCxlLG4scixpKXt2YXIgbz1YbC5TREtfVkVSU0lPTnx8bnVsbDtyZXR1cm4gbmV3KGFyKCk/bGM6aXUpKHQsZSxuLG8scixpKX1mdW5jdGlvbiBJYyhlKXtlLmZ8fChlLmY9ITAsZS5hLkVhKGUubCkpO3ZhciBuPWUuYTtyZXR1cm4gZS5hLm1hKCkubyhmdW5jdGlvbih0KXt0aHJvdyBlLmE9PW4mJmUucmVzZXQoKSx0fSl9ZnVuY3Rpb24gVGMobil7bi5hLlhiKCkmJkljKG4pLm8oZnVuY3Rpb24odCl7dmFyIGU9bmV3IFJvKCJ1bmtub3duIixudWxsLG51bGwsbnVsbCxuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKTtrYyh0KSYmbi5zKGUpfSksbi5hLlRiKCl8fE1jKG4uYil9ZnVuY3Rpb24gRWMobix0KXtLKG4uaCx0KXx8bi5oLnB1c2godCksbi5mfHwodD1uLmcpLmIuZ2V0KG1jLHQuYSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4icGVuZGluZyI9PXR9KS50aGVuKGZ1bmN0aW9uKHQpe3Q/YmMobi5nKS50aGVuKGZ1bmN0aW9uKCl7SWMobikubyhmdW5jdGlvbih0KXt2YXIgZT1uZXcgUm8oInVua25vd24iLG51bGwsbnVsbCxudWxsLG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IikpO2tjKHQpJiZuLnMoZSl9KX0pOlRjKG4pfSkubyhmdW5jdGlvbigpe1RjKG4pfSl9ZnVuY3Rpb24gU2ModCxlKXtIKHQuaCxmdW5jdGlvbih0KXtyZXR1cm4gdD09ZX0pfXdjLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZj0hMSx0aGlzLmEuU2EodGhpcy5sKSx0aGlzLmE9X2ModGhpcy5ELHRoaXMudix0aGlzLm0sbnVsbCx0aGlzLkopLHRoaXMuaT17fX0sd2MucHJvdG90eXBlLnM9ZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgbmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpO2lmKDZlNTw9RGF0ZS5ub3coKS10aGlzLnUmJih0aGlzLmk9e30sdGhpcy51PTApLHQmJnQuZ2V0VWlkKCkmJnRoaXMuaS5oYXNPd25Qcm9wZXJ0eSh0LmdldFVpZCgpKSlyZXR1cm4hMTtmb3IodmFyIGU9ITEsbj0wO248dGhpcy5oLmxlbmd0aDtuKyspe3ZhciByPXRoaXMuaFtuXTtpZihyLkZiKHQuYyx0LmIpKXsoZT10aGlzLmNbdC5jXSkmJihlLmgodCxyKSx0JiYodC5mfHx0LmIpJiYodGhpcy5pW3QuZ2V0VWlkKCldPSEwLHRoaXMudT1EYXRlLm5vdygpKSksZT0hMDticmVha319cmV0dXJuIE1jKHRoaXMuYiksZX07dmFyIENjPW5ldyBScigyZTMsMWU0KSxOYz1uZXcgUnIoM2U0LDZlNCk7ZnVuY3Rpb24gQWModCxlLG4scixpLG8scyl7cmV0dXJuIHQuYS5NYihlLG4scixmdW5jdGlvbigpe3QuZnx8KHQuZj0hMCx0LmEuRWEodC5sKSl9LGZ1bmN0aW9uKCl7dC5yZXNldCgpfSxpLG8scyl9ZnVuY3Rpb24ga2ModCl7cmV0dXJuISghdHx8ImF1dGgvY29yZG92YS1ub3QtcmVhZHkiIT10LmNvZGUpfWZ1bmN0aW9uIFJjKGUsdCxuLHIsaSl7dmFyIG8scztyZXR1cm4ocz1lLmcpLmIuc2V0KG1jLCJwZW5kaW5nIixzLmEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5hLk5iKHQsbixyLGkpLm8oZnVuY3Rpb24odCl7aWYoa2ModCkpdGhyb3cgbmV3IEkoIm9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkLWluLXRoaXMtZW52aXJvbm1lbnQiKTtyZXR1cm4gbz10LGJjKGUuZykudGhlbihmdW5jdGlvbigpe3Rocm93IG99KX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5hLiRiKCk/bmV3IGZlKGZ1bmN0aW9uKCl7fSk6YmMoZS5nKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUucWEoKX0pLnRoZW4oZnVuY3Rpb24oKXt9KS5vKGZ1bmN0aW9uKCl7fSl9KX0pfWZ1bmN0aW9uIFBjKHQsZSxuLHIsaSl7cmV0dXJuIHQuYS5PYihyLGZ1bmN0aW9uKHQpe2UubmEobixudWxsLHQsaSl9LENjLmdldCgpKX13Yy5wcm90b3R5cGUucWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iLnFhKCl9O3ZhciBPYz17fTtmdW5jdGlvbiBEYyh0LGUsbil7cmV0dXJuIHQ9dCsiOiIrZSx0PW4/dCsiOiIrbi51cmw6dH1mdW5jdGlvbiB4Yyh0LGUsbixyKXt2YXIgaT1EYyhlLG4scik7cmV0dXJuIE9jW2ldfHwoT2NbaV09bmV3IHdjKHQsZSxuLHIpKSxPY1tpXX1mdW5jdGlvbiBMYygpe3RoaXMuYj1udWxsLHRoaXMuZj1bXSx0aGlzLmM9W10sdGhpcy5hPW51bGwsdGhpcy5pPXRoaXMuZz0hMX1mdW5jdGlvbiBNYyh0KXt0Lmd8fCh0Lmc9ITAsamModCwhMSxudWxsLG51bGwpKX1mdW5jdGlvbiBGYyh0KXt0LmcmJiF0LmkmJmpjKHQsITEsbnVsbCxudWxsKX1mdW5jdGlvbiBVYyh0LGUpe2lmKHQuYj1mdW5jdGlvbigpe3JldHVybiBiZShlKX0sdC5mLmxlbmd0aClmb3IodmFyIG49MDtuPHQuZi5sZW5ndGg7bisrKXQuZltuXShlKX1mdW5jdGlvbiBqYyh0LGUsbixyKXtlP3I/ZnVuY3Rpb24odCxlKXtpZih0LmI9ZnVuY3Rpb24oKXtyZXR1cm4gd2UoZSl9LHQuYy5sZW5ndGgpZm9yKHZhciBuPTA7bjx0LmMubGVuZ3RoO24rKyl0LmNbbl0oZSl9KHQscik6VWModCxuKTpVYyh0LHt1c2VyOm51bGx9KSx0LmY9W10sdC5jPVtdfWZ1bmN0aW9uIHFjKCl7fWZ1bmN0aW9uIFZjKCl7dGhpcy5pYj0hMSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYXBwVmVyaWZpY2F0aW9uRGlzYWJsZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pYn0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaWI9dH0sZW51bWVyYWJsZTohMX0pfWZ1bmN0aW9uIEJjKHQsZSl7dGhpcy5hPWUsanIodGhpcywidmVyaWZpY2F0aW9uSWQiLHQpfWZ1bmN0aW9uIEtjKHQsZSxuLHIpe3JldHVybiBuZXcgQ28odCkuZmIoZSxuKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgQmModCxyKX0pfWZ1bmN0aW9uIFdjKHQpe3ZhciBlPXhpKHQpO2lmKCEoZSYmZS5leHAmJmUuYXV0aF90aW1lJiZlLmlhdCkpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIiwiQW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQuIFRoZSB0b2tlbiBvYnRhaW5lZCBieSBGaXJlYmFzZSBhcHBlYXJzIHRvIGJlIG1hbGZvcm1lZC4gUGxlYXNlIHJldHJ5IHRoZSBvcGVyYXRpb24uIik7cXIodGhpcyx7dG9rZW46dCxleHBpcmF0aW9uVGltZTpEcigxZTMqZS5leHApLGF1dGhUaW1lOkRyKDFlMyplLmF1dGhfdGltZSksaXNzdWVkQXRUaW1lOkRyKDFlMyplLmlhdCksc2lnbkluUHJvdmlkZXI6ZS5maXJlYmFzZSYmZS5maXJlYmFzZS5zaWduX2luX3Byb3ZpZGVyP2UuZmlyZWJhc2Uuc2lnbl9pbl9wcm92aWRlcjpudWxsLHNpZ25JblNlY29uZEZhY3RvcjplLmZpcmViYXNlJiZlLmZpcmViYXNlLnNpZ25faW5fc2Vjb25kX2ZhY3Rvcj9lLmZpcmViYXNlLnNpZ25faW5fc2Vjb25kX2ZhY3RvcjpudWxsLGNsYWltczplfSl9ZnVuY3Rpb24gSGModCxlLG4pe3ZhciByPWUmJmVbemNdO2lmKCFyKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkludGVybmFsIGFzc2VydDogSW52YWxpZCBNdWx0aUZhY3RvclJlc29sdmVyIik7dGhpcy5hPXQsdGhpcy5mPWN0KGUpLHRoaXMuZz1uLHRoaXMuYz1uZXcgWWkobnVsbCxyKSx0aGlzLmI9W107dmFyIGk9dGhpcztqKGVbR2NdfHxbXSxmdW5jdGlvbih0KXsodD1Xcih0KSkmJmkuYi5wdXNoKHQpfSksanIodGhpcywiYXV0aCIsdGhpcy5hKSxqcih0aGlzLCJzZXNzaW9uIix0aGlzLmMpLGpyKHRoaXMsImhpbnRzIix0aGlzLmIpfUxjLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuYj1udWxsLHRoaXMuYSYmKHRoaXMuYS5jYW5jZWwoKSx0aGlzLmE9bnVsbCl9LExjLnByb3RvdHlwZS5oPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLG87dD8odGhpcy5yZXNldCgpLHRoaXMuZz0hMCxuPXQuYyxyPXQuYixpPXQuYSYmImF1dGgvd2ViLXN0b3JhZ2UtdW5zdXBwb3J0ZWQiPT10LmEuY29kZSxvPXQuYSYmImF1dGgvb3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCI9PXQuYS5jb2RlLHRoaXMuaT0hKCFpJiYhbyksInVua25vd24iIT1ufHxpfHxvP3QuYT8oamModGhpcywhMCxudWxsLHQuYSksYmUoKSk6ZS5GYShuLHIpP2Z1bmN0aW9uKGUsdCxuKXtuPW4uRmEodC5jLHQuYik7dmFyIHI9dC5nLGk9dC5mLG89dC5pLHM9dC5UKCksYT0hIXQuYy5tYXRjaCgvUmVkaXJlY3QkLyk7bihyLGkscyxvKS50aGVuKGZ1bmN0aW9uKHQpe2pjKGUsYSx0LG51bGwpfSkubyhmdW5jdGlvbih0KXtqYyhlLGEsbnVsbCx0KX0pfSh0aGlzLHQsZSk6d2UobmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpKTooamModGhpcywhMSxudWxsLG51bGwpLGJlKCkpKTp3ZShuZXcgSSgiaW52YWxpZC1hdXRoLWV2ZW50IikpfSxMYy5wcm90b3R5cGUucWE9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO3JldHVybiBuZXcgZmUoZnVuY3Rpb24odCxlKXt2YXIgbixyO2kuYj9pLmIoKS50aGVuKHQsZSk6KGkuZi5wdXNoKHQpLGkuYy5wdXNoKGUpLG49aSxyPW5ldyBJKCJ0aW1lb3V0Iiksbi5hJiZuLmEuY2FuY2VsKCksbi5hPWduKE5jLmdldCgpKS50aGVuKGZ1bmN0aW9uKCl7bi5ifHwobi5nPSEwLGpjKG4sITAsbnVsbCxyKSl9KSl9KX0scWMucHJvdG90eXBlLmg9ZnVuY3Rpb24odCxlKXt2YXIgbixyLGksbyxzO3Q/KG49dC5jLHI9dC5iLHQuYT8oZS5uYSh0LmMsbnVsbCx0LmEsdC5iKSxiZSgpKTplLkZhKG4scik/KGk9ZSxvPSh0PXQpLmIscz10LmMsaS5GYShzLG8pKHQuZyx0LmYsdC5UKCksdC5pKS50aGVuKGZ1bmN0aW9uKHQpe2kubmEocyx0LG51bGwsbyl9KS5vKGZ1bmN0aW9uKHQpe2kubmEocyxudWxsLHQsbyl9KSk6d2UobmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpKSk6d2UobmV3IEkoImludmFsaWQtYXV0aC1ldmVudCIpKX0sQmMucHJvdG90eXBlLmNvbmZpcm09ZnVuY3Rpb24odCl7cmV0dXJuIHQ9Tm8odGhpcy52ZXJpZmljYXRpb25JZCx0KSx0aGlzLmEodCl9O3ZhciBHYz0ibWZhSW5mbyIsemM9Im1mYVBlbmRpbmdDcmVkZW50aWFsIjtmdW5jdGlvbiBRYyh0LGUsbixyKXtJLmNhbGwodGhpcywibXVsdGktZmFjdG9yLWF1dGgtcmVxdWlyZWQiLHIsZSksdGhpcy5iPW5ldyBIYyh0LGUsbiksanIodGhpcywicmVzb2x2ZXIiLHRoaXMuYil9ZnVuY3Rpb24gWWModCxlLG4pe2lmKHQmJmcodC5zZXJ2ZXJSZXNwb25zZSkmJiJhdXRoL211bHRpLWZhY3Rvci1hdXRoLXJlcXVpcmVkIj09PXQuY29kZSl0cnl7cmV0dXJuIG5ldyBRYyhlLHQuc2VydmVyUmVzcG9uc2Usbix0Lm1lc3NhZ2UpfWNhdGNoKHQpe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBYYygpe31mdW5jdGlvbiBKYyh0KXtqcih0aGlzLCJmYWN0b3JJZCIsdC5mYSksdGhpcy5hPXR9ZnVuY3Rpb24gJGModCl7aWYoSmMuY2FsbCh0aGlzLHQpLHRoaXMuYS5mYSE9Q28uUFJPVklERVJfSUQpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwiZmlyZWJhc2UuYXV0aC5QaG9uZU11bHRpRmFjdG9yQXNzZXJ0aW9uIHJlcXVpcmVzIGEgdmFsaWQgZmlyZWJhc2UuYXV0aC5QaG9uZUF1dGhDcmVkZW50aWFsIil9ZnVuY3Rpb24gWmModCxlKXtmb3IodmFyIG4gaW4gcWUuY2FsbCh0aGlzLHQpLGUpdGhpc1tuXT1lW25dfWZ1bmN0aW9uIHRoKHQsZSl7dGhpcy5hPXQsdGhpcy5iPVtdLHRoaXMuYz1tKHRoaXMueWMsdGhpcyksJGUodGhpcy5hLCJ1c2VyUmVsb2FkZWQiLHRoaXMuYyk7dmFyIHI9W107ZSYmZS5tdWx0aUZhY3RvciYmZS5tdWx0aUZhY3Rvci5lbnJvbGxlZEZhY3RvcnMmJmooZS5tdWx0aUZhY3Rvci5lbnJvbGxlZEZhY3RvcnMsZnVuY3Rpb24odCl7dmFyIGU9bnVsbCxuPXt9O2lmKHQpe3QudWlkJiYoblt6cl09dC51aWQpLHQuZGlzcGxheU5hbWUmJihuW0hyXT10LmRpc3BsYXlOYW1lKSx0LmVucm9sbG1lbnRUaW1lJiYobltHcl09bmV3IERhdGUodC5lbnJvbGxtZW50VGltZSkudG9JU09TdHJpbmcoKSksdC5waG9uZU51bWJlciYmKG5bUXJdPXQucGhvbmVOdW1iZXIpO3RyeXtlPW5ldyBZcihuKX1jYXRjaCh0KXt9dD1lfWVsc2UgdD1udWxsO3QmJnIucHVzaCh0KX0pLGVoKHRoaXMscil9ZnVuY3Rpb24gZWgodCxlKXt0LmI9ZSxqcih0LCJlbnJvbGxlZEZhY3RvcnMiLGUpfWZ1bmN0aW9uIG5oKHQsZSxuKXtpZih0aGlzLmg9dCx0aGlzLmk9ZSx0aGlzLmc9bix0aGlzLmM9M2U0LHRoaXMuZj05NmU0LHRoaXMuYj1udWxsLHRoaXMuYT10aGlzLmMsdGhpcy5mPHRoaXMuYyl0aHJvdyBFcnJvcigiUHJvYWN0aXZlIHJlZnJlc2ggbG93ZXIgYm91bmQgZ3JlYXRlciB0aGFuIHVwcGVyIGJvdW5kISIpfWZ1bmN0aW9uIHJoKHQsZSl7cmV0dXJuIGU/KHQuYT10LmMsdC5nKCkpOihlPXQuYSx0LmEqPTIsdC5hPnQuZiYmKHQuYT10LmYpLGUpfWZ1bmN0aW9uIGloKHQpe3RoaXMuZj10LHRoaXMuYj10aGlzLmE9bnVsbCx0aGlzLmM9RGF0ZS5ub3coKX1mdW5jdGlvbiBvaCh0LGUpe3ZvaWQgMD09PWUmJihlPXQuYj8oZT10LmIpLmEtZS5nOjApLHQuYz1EYXRlLm5vdygpKzFlMyplfWZ1bmN0aW9uIHNoKHQsZSl7dC5iPURpKGVbQnNdfHwiIiksdC5hPWUucmVmcmVzaFRva2VuLG9oKHQsdm9pZCAwIT09KGU9ZS5leHBpcmVzSW4pP051bWJlcihlKTp2b2lkIDApfWZ1bmN0aW9uIGFoKGUsdCl7cmV0dXJuIHI9ZS5mLGk9dCxuZXcgZmUoZnVuY3Rpb24oZSxuKXsicmVmcmVzaF90b2tlbiI9PWkuZ3JhbnRfdHlwZSYmaS5yZWZyZXNoX3Rva2VufHwiYXV0aG9yaXphdGlvbl9jb2RlIj09aS5ncmFudF90eXBlJiZpLmNvZGU/SnMocixyLmwrIj9rZXk9IitlbmNvZGVVUklDb21wb25lbnQoci5jKSxmdW5jdGlvbih0KXt0P3QuZXJyb3I/bihZYSh0KSk6dC5hY2Nlc3NfdG9rZW4mJnQucmVmcmVzaF90b2tlbj9lKHQpOm4obmV3IEkoImludGVybmFsLWVycm9yIikpOm4obmV3IEkoIm5ldHdvcmstcmVxdWVzdC1mYWlsZWQiKSl9LCJQT1NUIixWbihpKS50b1N0cmluZygpLHIuZyxyLm0uZ2V0KCkpOm4obmV3IEkoImludGVybmFsLWVycm9yIikpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5iPURpKHQuYWNjZXNzX3Rva2VuKSxlLmE9dC5yZWZyZXNoX3Rva2VuLG9oKGUsdC5leHBpcmVzX2luKSx7YWNjZXNzVG9rZW46ZS5iLnRvU3RyaW5nKCkscmVmcmVzaFRva2VuOmUuYX19KS5vKGZ1bmN0aW9uKHQpe3Rocm93ImF1dGgvdXNlci10b2tlbi1leHBpcmVkIj09dC5jb2RlJiYoZS5hPW51bGwpLHR9KTt2YXIgcixpfWZ1bmN0aW9uIHVoKHQsZSl7dGhpcy5hPXR8fG51bGwsdGhpcy5iPWV8fG51bGwscXIodGhpcyx7bGFzdFNpZ25JblRpbWU6RHIoZXx8bnVsbCksY3JlYXRpb25UaW1lOkRyKHR8fG51bGwpfSl9ZnVuY3Rpb24gY2godCxlLG4scixpLG8pe3FyKHRoaXMse3VpZDp0LGRpc3BsYXlOYW1lOnJ8fG51bGwscGhvdG9VUkw6aXx8bnVsbCxlbWFpbDpufHxudWxsLHBob25lTnVtYmVyOm98fG51bGwscHJvdmlkZXJJZDplfSl9ZnVuY3Rpb24gaGgodCxlLG4pe3RoaXMuSj1bXSx0aGlzLmw9dC5hcGlLZXksdGhpcy5tPXQuYXBwTmFtZSx0aGlzLnM9dC5hdXRoRG9tYWlufHxudWxsO3ZhciByLGk9WGwuU0RLX1ZFUlNJT04/Z3IoWGwuU0RLX1ZFUlNJT04pOm51bGw7dGhpcy5hPW5ldyBxcyh0aGlzLmwsQShFKSxpKSx0LmVtdWxhdG9yQ29uZmlnJiZRcyh0aGlzLmEsdC5lbXVsYXRvckNvbmZpZyksdGhpcy5iPW5ldyBpaCh0aGlzLmEpLG1oKHRoaXMsZVtCc10pLHNoKHRoaXMuYixlKSxqcih0aGlzLCJyZWZyZXNoVG9rZW4iLHRoaXMuYi5hKSxfaCh0aGlzLG58fHt9KSxsbi5jYWxsKHRoaXMpLHRoaXMuUj0hMSx0aGlzLnMmJndyKCkmJih0aGlzLmk9eGModGhpcy5zLHRoaXMubCx0aGlzLm0pKSx0aGlzLlM9W10sdGhpcy5oPW51bGwsdGhpcy51PShyPXRoaXMsbmV3IG5oKGZ1bmN0aW9uKCl7cmV0dXJuIHIuSSghMCl9LGZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCJhdXRoL25ldHdvcmstcmVxdWVzdC1mYWlsZWQiIT10LmNvZGUpfSxmdW5jdGlvbigpe3ZhciB0PXIuYi5jLURhdGUubm93KCktM2U1O3JldHVybiAwPHQ/dDowfSkpLHRoaXMuYWE9bSh0aGlzLmhiLHRoaXMpO3ZhciBvPXRoaXM7dGhpcy55YT1udWxsLHRoaXMuT2E9ZnVuY3Rpb24odCl7by53YSh0LmgpfSx0aGlzLmphPW51bGwsdGhpcy5BYT1mdW5jdGlvbih0KXtRcyhvLmEsdC5jKX0sdGhpcy5YPW51bGwsdGhpcy4kPVtdLHRoaXMuQmE9ZnVuY3Rpb24odCl7cGgobyx0LmYpfSx0aGlzLmJhPW51bGwsdGhpcy5PPW5ldyB0aCh0aGlzLG4pLGpyKHRoaXMsIm11bHRpRmFjdG9yIix0aGlzLk8pfWZ1bmN0aW9uIGxoKHQsZSl7dC5qYSYmZW4odC5qYSwibGFuZ3VhZ2VDb2RlQ2hhbmdlZCIsdC5PYSksKHQuamE9ZSkmJiRlKGUsImxhbmd1YWdlQ29kZUNoYW5nZWQiLHQuT2EpfWZ1bmN0aW9uIGZoKHQsZSl7dC5YJiZlbih0LlgsImVtdWxhdG9yQ29uZmlnQ2hhbmdlZCIsdC5BYSksKHQuWD1lKSYmJGUoZSwiZW11bGF0b3JDb25maWdDaGFuZ2VkIix0LkFhKX1mdW5jdGlvbiBwaCh0LGUpe3QuJD1lLFhzKHQuYSxYbC5TREtfVkVSU0lPTj9ncihYbC5TREtfVkVSU0lPTix0LiQpOm51bGwpfWZ1bmN0aW9uIGRoKHQsZSl7dC5iYSYmZW4odC5iYSwiZnJhbWV3b3JrQ2hhbmdlZCIsdC5CYSksKHQuYmE9ZSkmJiRlKGUsImZyYW1ld29ya0NoYW5nZWQiLHQuQmEpfWZ1bmN0aW9uIHZoKGUpe3RyeXtyZXR1cm4gWGwuYXBwKGUubSkuYXV0aCgpfWNhdGNoKHQpe3Rocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsIk5vIGZpcmViYXNlLmF1dGguQXV0aCBpbnN0YW5jZSBpcyBhdmFpbGFibGUgZm9yIHRoZSBGaXJlYmFzZSBBcHAgJyIrZS5tKyInISIpfX1mdW5jdGlvbiBnaCh0KXt0LkR8fHQudS5ifHwodC51LnN0YXJ0KCksZW4odCwidG9rZW5DaGFuZ2VkIix0LmFhKSwkZSh0LCJ0b2tlbkNoYW5nZWQiLHQuYWEpKX1mdW5jdGlvbiB5aCh0KXtlbih0LCJ0b2tlbkNoYW5nZWQiLHQuYWEpLHQudS5zdG9wKCl9ZnVuY3Rpb24gbWgodCxlKXt0LnphPWUsanIodCwiX2xhdCIsZSl9ZnVuY3Rpb24gYmgodCl7Zm9yKHZhciBlPVtdLG49MDtuPHQuUy5sZW5ndGg7bisrKWUucHVzaCh0LlNbbl0odCkpO3JldHVybiBJZShlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KX1mdW5jdGlvbiB3aCh0KXt0LmkmJiF0LlImJih0LlI9ITAsRWModC5pLHQpKX1mdW5jdGlvbiBfaCh0LGUpe3FyKHQse3VpZDplLnVpZCxkaXNwbGF5TmFtZTplLmRpc3BsYXlOYW1lfHxudWxsLHBob3RvVVJMOmUucGhvdG9VUkx8fG51bGwsZW1haWw6ZS5lbWFpbHx8bnVsbCxlbWFpbFZlcmlmaWVkOmUuZW1haWxWZXJpZmllZHx8ITEscGhvbmVOdW1iZXI6ZS5waG9uZU51bWJlcnx8bnVsbCxpc0Fub255bW91czplLmlzQW5vbnltb3VzfHwhMSx0ZW5hbnRJZDplLnRlbmFudElkfHxudWxsLG1ldGFkYXRhOm5ldyB1aChlLmNyZWF0ZWRBdCxlLmxhc3RMb2dpbkF0KSxwcm92aWRlckRhdGE6W119KSx0LmEuYj10LnRlbmFudElkfWZ1bmN0aW9uIEloKCl7fWZ1bmN0aW9uIFRoKHQpe3JldHVybiBiZSgpLnRoZW4oZnVuY3Rpb24oKXtpZih0LkQpdGhyb3cgbmV3IEkoImFwcC1kZWxldGVkIil9KX1mdW5jdGlvbiBFaCh0KXtyZXR1cm4gVih0LnByb3ZpZGVyRGF0YSxmdW5jdGlvbih0KXtyZXR1cm4gdC5wcm92aWRlcklkfSl9ZnVuY3Rpb24gU2godCxlKXtlJiYoQ2godCxlLnByb3ZpZGVySWQpLHQucHJvdmlkZXJEYXRhLnB1c2goZSkpfWZ1bmN0aW9uIENoKHQsZSl7SCh0LnByb3ZpZGVyRGF0YSxmdW5jdGlvbih0KXtyZXR1cm4gdC5wcm92aWRlcklkPT1lfSl9ZnVuY3Rpb24gTmgodCxlLG4peygidWlkIiE9ZXx8bikmJnQuaGFzT3duUHJvcGVydHkoZSkmJmpyKHQsZSxuKX1mdW5jdGlvbiBBaChlLHQpe3ZhciBuLHI7ZSE9dCYmKHFyKGUse3VpZDp0LnVpZCxkaXNwbGF5TmFtZTp0LmRpc3BsYXlOYW1lLHBob3RvVVJMOnQucGhvdG9VUkwsZW1haWw6dC5lbWFpbCxlbWFpbFZlcmlmaWVkOnQuZW1haWxWZXJpZmllZCxwaG9uZU51bWJlcjp0LnBob25lTnVtYmVyLGlzQW5vbnltb3VzOnQuaXNBbm9ueW1vdXMsdGVuYW50SWQ6dC50ZW5hbnRJZCxwcm92aWRlckRhdGE6W119KSx0Lm1ldGFkYXRhP2pyKGUsIm1ldGFkYXRhIixuZXcgdWgoKHI9dC5tZXRhZGF0YSkuYSxyLmIpKTpqcihlLCJtZXRhZGF0YSIsbmV3IHVoKSxqKHQucHJvdmlkZXJEYXRhLGZ1bmN0aW9uKHQpe1NoKGUsdCl9KSxuPWUuYixyPXQuYixuLmI9ci5iLG4uYT1yLmEsbi5jPXIuYyxqcihlLCJyZWZyZXNoVG9rZW4iLGUuYi5hKSxlaChlLk8sdC5PLmIpKX1mdW5jdGlvbiBraChpKXtyZXR1cm4gaS5JKCkudGhlbihmdW5jdGlvbih0KXt2YXIgZSxuLHI9aS5pc0Fub255bW91cztyZXR1cm4gbj10LHphKChlPWkpLmEsRWEse2lkVG9rZW46bn0pLnRoZW4obShlLktjLGUpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHJ8fE5oKGksImlzQW5vbnltb3VzIiwhMSksdH0pfSl9ZnVuY3Rpb24gUmgodCxlKXtlW0JzXSYmdC56YSE9ZVtCc10mJihzaCh0LmIsZSksdC5kaXNwYXRjaEV2ZW50KG5ldyBaYygidG9rZW5DaGFuZ2VkIikpLG1oKHQsZVtCc10pLE5oKHQsInJlZnJlc2hUb2tlbiIsdC5iLmEpKX1mdW5jdGlvbiBQaCh0LGUpe3JldHVybiBraCh0KS50aGVuKGZ1bmN0aW9uKCl7aWYoSyhFaCh0KSxlKSlyZXR1cm4gYmgodCkudGhlbihmdW5jdGlvbigpe3Rocm93IG5ldyBJKCJwcm92aWRlci1hbHJlYWR5LWxpbmtlZCIpfSl9KX1mdW5jdGlvbiBPaCh0LGUsbil7cmV0dXJuIFZyKHt1c2VyOnQsY3JlZGVudGlhbDpBbyhlKSxhZGRpdGlvbmFsVXNlckluZm86ZT1qaShlKSxvcGVyYXRpb25UeXBlOm59KX1mdW5jdGlvbiBEaCh0LGUpe3JldHVybiBSaCh0LGUpLHQucmVsb2FkKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0fSl9ZnVuY3Rpb24geGgobixyLHQsZSxpKXtpZighd3IoKSlyZXR1cm4gd2UobmV3IEkoIm9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkLWluLXRoaXMtZW52aXJvbm1lbnQiKSk7aWYobi5oJiYhaSlyZXR1cm4gd2Uobi5oKTt2YXIgbz1VaSh0LnByb3ZpZGVySWQpLHM9TnIobi51aWQrIjo6OiIpLGE9bnVsbCx1PXJyKGE9KCFUcigpfHx1cigpKSYmbi5zJiZ0LmlzT0F1dGhQcm92aWRlcj91dShuLnMsbi5sLG4ubSxyLHQsbnVsbCxzLFhsLlNES19WRVJTSU9OfHxudWxsLG51bGwsbnVsbCxuLnRlbmFudElkKTphLG8mJm8udWEsbyYmby50YSk7cmV0dXJuIGU9ZSgpLnRoZW4oZnVuY3Rpb24oKXtpZihNaChuKSwhaSlyZXR1cm4gbi5JKCkudGhlbihmdW5jdGlvbigpe30pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBBYyhuLmksdSxyLHQscywhIWEsbi50ZW5hbnRJZCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbih0LGUpe24ubmEocixudWxsLG5ldyBJKCJjYW5jZWxsZWQtcG9wdXAtcmVxdWVzdCIpLG4uZ3x8bnVsbCksbi5mPXQsbi5DPWUsbi5nPXMsbi5jPVBjKG4uaSxuLHIsdSxzKX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdSYmbnIodSksdD9Wcih0KTpudWxsfSkubyhmdW5jdGlvbih0KXt0aHJvdyB1JiZucih1KSx0fSksRmgobixlLGkpfWZ1bmN0aW9uIExoKGUsdCxuLHIsaSl7aWYoIXdyKCkpcmV0dXJuIHdlKG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IikpO2lmKGUuaCYmIWkpcmV0dXJuIHdlKGUuaCk7dmFyIG89bnVsbCxzPU5yKGUudWlkKyI6OjoiKTtyZXR1cm4gcj1yKCkudGhlbihmdW5jdGlvbigpe2lmKE1oKGUpLCFpKXJldHVybiBlLkkoKS50aGVuKGZ1bmN0aW9uKCl7fSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2E9cyxiaChlKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ9ZS5oYT8odD1lLmhhKS5iLnNldChxaCxlLncoKSx0LmEpOnR9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFJjKGUuaSx0LG4scyxlLnRlbmFudElkKX0pLm8oZnVuY3Rpb24odCl7aWYobz10LGUuaGEpcmV0dXJuIFZoKGUuaGEpO3Rocm93IG99KS50aGVuKGZ1bmN0aW9uKCl7aWYobyl0aHJvdyBvfSksRmgoZSxyLGkpfWZ1bmN0aW9uIE1oKHQpe2lmKCF0Lml8fCF0LlIpe2lmKHQuaSYmIXQuUil0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKTt0aHJvdyBuZXcgSSgiYXV0aC1kb21haW4tY29uZmlnLXJlcXVpcmVkIil9fWZ1bmN0aW9uIEZoKG4sdCxlKXt2YXIgcixpPSh0PXQsZT1lLChyPW4pLmgmJiFlPyh0LmNhbmNlbCgpLHdlKHIuaCkpOnQubyhmdW5jdGlvbih0KXt0aHJvdyF0fHwiYXV0aC91c2VyLWRpc2FibGVkIiE9dC5jb2RlJiYiYXV0aC91c2VyLXRva2VuLWV4cGlyZWQiIT10LmNvZGV8fChyLmh8fHIuZGlzcGF0Y2hFdmVudChuZXcgWmMoInVzZXJJbnZhbGlkYXRlZCIpKSxyLmg9dCksdH0pKTtyZXR1cm4gbi5KLnB1c2goaSksaS5vYShmdW5jdGlvbigpe1cobi5KLGkpfSksaS5vKGZ1bmN0aW9uKHQpe3ZhciBlPW51bGw7dGhyb3coZT10JiYiYXV0aC9tdWx0aS1mYWN0b3ItYXV0aC1yZXF1aXJlZCI9PT10LmNvZGU/WWModC53KCksdmgobiksbShuLmpjLG4pKTplKXx8dH0pfWZ1bmN0aW9uIFVoKHQpe2lmKCF0LmFwaUtleSlyZXR1cm4gbnVsbDt2YXIgZT17YXBpS2V5OnQuYXBpS2V5LGF1dGhEb21haW46dC5hdXRoRG9tYWluLGFwcE5hbWU6dC5hcHBOYW1lLGVtdWxhdG9yQ29uZmlnOnQuZW11bGF0b3JDb25maWd9LG49e307aWYoIXQuc3RzVG9rZW5NYW5hZ2VyfHwhdC5zdHNUb2tlbk1hbmFnZXIuYWNjZXNzVG9rZW4pcmV0dXJuIG51bGw7bltCc109dC5zdHNUb2tlbk1hbmFnZXIuYWNjZXNzVG9rZW4sbi5yZWZyZXNoVG9rZW49dC5zdHNUb2tlbk1hbmFnZXIucmVmcmVzaFRva2VufHxudWxsO3ZhciByPXQuc3RzVG9rZW5NYW5hZ2VyLmV4cGlyYXRpb25UaW1lO3ImJihuLmV4cGlyZXNJbj0oci1EYXRlLm5vdygpKS8xZTMpO3ZhciBpPW5ldyBoaChlLG4sdCk7cmV0dXJuIHQucHJvdmlkZXJEYXRhJiZqKHQucHJvdmlkZXJEYXRhLGZ1bmN0aW9uKHQpe3QmJlNoKGksVnIodCkpfSksdC5yZWRpcmVjdEV2ZW50SWQmJihpLmdhPXQucmVkaXJlY3RFdmVudElkKSxpfWZ1bmN0aW9uIGpoKHQpe3RoaXMuYT10LHRoaXMuYj1IdSgpfUhjLnByb3RvdHlwZS5SYz1mdW5jdGlvbih0KXt2YXIgbj10aGlzO3JldHVybiB0LnNiKHRoaXMuYS5hLHRoaXMuYykudGhlbihmdW5jdGlvbih0KXt2YXIgZT1jdChuLmYpO3JldHVybiBkZWxldGUgZVtHY10sZGVsZXRlIGVbemNdLGx0KGUsdCksbi5nKGUpfSl9LHcoUWMsSSksWGMucHJvdG90eXBlLnNiPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZS50eXBlPT1YaT8obz10aGlzLHM9dCxhPW4sZS5IYSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ9e2lkVG9rZW46dH0sdm9pZCAwIT09YSYmKHQuZGlzcGxheU5hbWU9YSksbHQodCx7cGhvbmVWZXJpZmljYXRpb25JbmZvOlNvKG8uYSl9KSx6YShzLElhLHQpfSkpOihyPXRoaXMsaT10LGUuSGEoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBsdCh0PXttZmFQZW5kaW5nQ3JlZGVudGlhbDp0fSx7cGhvbmVWZXJpZmljYXRpb25JbmZvOlNvKHIuYSl9KSx6YShpLFRhLHQpfSkpO3ZhciByLGksbyxzLGF9LHcoSmMsWGMpLHcoJGMsSmMpLHcoWmMscWUpLCh0PXRoLnByb3RvdHlwZSkueWM9ZnVuY3Rpb24odCl7dmFyIGU7ZWgodGhpcywodD10LmhkLGU9W10saih0Lm1mYUluZm98fFtdLGZ1bmN0aW9uKHQpeyh0PVdyKHQpKSYmZS5wdXNoKHQpfSksZSkpfSx0LlJiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYS5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFlpKHQsbnVsbCl9KX0sdC5mYz1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXMsaT10aGlzLmEuYTtyZXR1cm4gdGhpcy5SYigpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGUuc2IoaSx0LG4pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gUmgoci5hLHQpLHIuYS5yZWxvYWQoKX0pfSx0LmJkPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMscj0ic3RyaW5nIj09dHlwZW9mIHQ/dDp0LnVpZCxlPXRoaXMuYS5hO3JldHVybiB0aGlzLmEuSSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHphKGUsR2Ese2lkVG9rZW46dCxtZmFFbnJvbGxtZW50SWQ6cn0pfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT1xKG4uYixmdW5jdGlvbih0KXtyZXR1cm4gdC51aWQhPXJ9KTtyZXR1cm4gZWgobixlKSxSaChuLmEsdCksbi5hLnJlbG9hZCgpLm8oZnVuY3Rpb24odCl7aWYoImF1dGgvdXNlci10b2tlbi1leHBpcmVkIiE9dC5jb2RlKXRocm93IHR9KX0pfSx0Lnc9ZnVuY3Rpb24oKXtyZXR1cm57bXVsdGlGYWN0b3I6e2Vucm9sbGVkRmFjdG9yczpWKHRoaXMuYixmdW5jdGlvbih0KXtyZXR1cm4gdC53KCl9KX19fSxuaC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLmE9dGhpcy5jLGZ1bmN0aW9uIGUobix0KXtuLnN0b3AoKTtuLmI9Z24ocmgobix0KSkudGhlbihPcikudGhlbihmdW5jdGlvbigpe3JldHVybiBuLmgoKX0pLnRoZW4oZnVuY3Rpb24oKXtlKG4sITApfSkubyhmdW5jdGlvbih0KXtuLmkodCkmJmUobiwhMSl9KX0odGhpcywhMCl9LG5oLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5iJiYodGhpcy5iLmNhbmNlbCgpLHRoaXMuYj1udWxsKX0saWgucHJvdG90eXBlLnc9ZnVuY3Rpb24oKXtyZXR1cm57YXBpS2V5OnRoaXMuZi5jLHJlZnJlc2hUb2tlbjp0aGlzLmEsYWNjZXNzVG9rZW46dGhpcy5iJiZ0aGlzLmIudG9TdHJpbmcoKSxleHBpcmF0aW9uVGltZTp0aGlzLmN9fSxpaC5wcm90b3R5cGUuZ2V0VG9rZW49ZnVuY3Rpb24odCl7cmV0dXJuIHQ9ISF0LHRoaXMuYiYmIXRoaXMuYT93ZShuZXcgSSgidXNlci10b2tlbi1leHBpcmVkIikpOnR8fCF0aGlzLmJ8fERhdGUubm93KCk+dGhpcy5jLTNlND90aGlzLmE/YWgodGhpcyx7Z3JhbnRfdHlwZToicmVmcmVzaF90b2tlbiIscmVmcmVzaF90b2tlbjp0aGlzLmF9KTpiZShudWxsKTpiZSh7YWNjZXNzVG9rZW46dGhpcy5iLnRvU3RyaW5nKCkscmVmcmVzaFRva2VuOnRoaXMuYX0pfSx1aC5wcm90b3R5cGUudz1mdW5jdGlvbigpe3JldHVybntsYXN0TG9naW5BdDp0aGlzLmIsY3JlYXRlZEF0OnRoaXMuYX19LHcoaGgsbG4pLGhoLnByb3RvdHlwZS53YT1mdW5jdGlvbih0KXt0aGlzLnlhPXQsenModGhpcy5hLHQpfSxoaC5wcm90b3R5cGUubGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55YX0saGgucHJvdG90eXBlLkdhPWZ1bmN0aW9uKCl7cmV0dXJuIHoodGhpcy4kKX0saGgucHJvdG90eXBlLmhiPWZ1bmN0aW9uKCl7dGhpcy51LmImJih0aGlzLnUuc3RvcCgpLHRoaXMudS5zdGFydCgpKX0sanIoaGgucHJvdG90eXBlLCJwcm92aWRlcklkIiwiZmlyZWJhc2UiKSwodD1oaC5wcm90b3R5cGUpLnJlbG9hZD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIEZoKHRoaXMsVGgodGhpcykudGhlbihmdW5jdGlvbigpe3JldHVybiBraCh0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGJoKHQpfSkudGhlbihJaCl9KSl9LHQub2M9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSSh0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV2ModCl9KX0sdC5JPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIEZoKHRoaXMsVGgodGhpcykudGhlbihmdW5jdGlvbigpe3JldHVybiBlLmIuZ2V0VG9rZW4odCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKCF0KXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIpO3JldHVybiB0LmFjY2Vzc1Rva2VuIT1lLnphJiYobWgoZSx0LmFjY2Vzc1Rva2VuKSxlLmRpc3BhdGNoRXZlbnQobmV3IFpjKCJ0b2tlbkNoYW5nZWQiKSkpLE5oKGUsInJlZnJlc2hUb2tlbiIsdC5yZWZyZXNoVG9rZW4pLHQuYWNjZXNzVG9rZW59KSl9LHQuS2M9ZnVuY3Rpb24odCl7aWYoISh0PXQudXNlcnMpfHwhdC5sZW5ndGgpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIik7X2godGhpcyx7dWlkOih0PXRbMF0pLmxvY2FsSWQsZGlzcGxheU5hbWU6dC5kaXNwbGF5TmFtZSxwaG90b1VSTDp0LnBob3RvVXJsLGVtYWlsOnQuZW1haWwsZW1haWxWZXJpZmllZDohIXQuZW1haWxWZXJpZmllZCxwaG9uZU51bWJlcjp0LnBob25lTnVtYmVyLGxhc3RMb2dpbkF0OnQubGFzdExvZ2luQXQsY3JlYXRlZEF0OnQuY3JlYXRlZEF0LHRlbmFudElkOnQudGVuYW50SWR9KTtmb3IodmFyIGUsbj0oZT0oZT10KS5wcm92aWRlclVzZXJJbmZvKSYmZS5sZW5ndGg/VihlLGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2godC5yYXdJZCx0LnByb3ZpZGVySWQsdC5lbWFpbCx0LmRpc3BsYXlOYW1lLHQucGhvdG9VcmwsdC5waG9uZU51bWJlcil9KTpbXSxyPTA7cjxuLmxlbmd0aDtyKyspU2godGhpcyxuW3JdKTtOaCh0aGlzLCJpc0Fub255bW91cyIsISh0aGlzLmVtYWlsJiZ0LnBhc3N3b3JkSGFzaHx8dGhpcy5wcm92aWRlckRhdGEmJnRoaXMucHJvdmlkZXJEYXRhLmxlbmd0aCkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgWmMoInVzZXJSZWxvYWRlZCIse2hkOnR9KSl9LHQuTGM9ZnVuY3Rpb24odCl7cmV0dXJuIEZyKCJmaXJlYmFzZS5Vc2VyLnByb3RvdHlwZS5yZWF1dGhlbnRpY2F0ZUFuZFJldHJpZXZlRGF0YVdpdGhDcmVkZW50aWFsIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmlyZWJhc2UuVXNlci5wcm90b3R5cGUucmVhdXRoZW50aWNhdGVXaXRoQ3JlZGVudGlhbCBpbnN0ZWFkLiIpLHRoaXMudGIodCl9LHQudGI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPW51bGw7cmV0dXJuIEZoKHRoaXMsdC5jKHRoaXMuYSx0aGlzLnVpZCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gUmgoZSx0KSxuPU9oKGUsdCwicmVhdXRoZW50aWNhdGUiKSxlLmg9bnVsbCxlLnJlbG9hZCgpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBufSksITApfSx0LkNjPWZ1bmN0aW9uKHQpe3JldHVybiBGcigiZmlyZWJhc2UuVXNlci5wcm90b3R5cGUubGlua0FuZFJldHJpZXZlRGF0YVdpdGhDcmVkZW50aWFsIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmlyZWJhc2UuVXNlci5wcm90b3R5cGUubGlua1dpdGhDcmVkZW50aWFsIGluc3RlYWQuIiksdGhpcy5xYih0KX0sdC5xYj1mdW5jdGlvbihlKXt2YXIgbj10aGlzLHI9bnVsbDtyZXR1cm4gRmgodGhpcyxQaCh0aGlzLGUucHJvdmlkZXJJZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBuLkkoKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGUuYihuLmEsdCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiByPU9oKG4sdCwibGluayIpLERoKG4sdCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSl9LHQuRGM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiBGaCh0aGlzLFBoKHRoaXMsInBob25lIikudGhlbihmdW5jdGlvbigpe3JldHVybiBLYyh2aChuKSx0LGUsbShuLnFiLG4pKX0pKX0sdC5NYz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIEZoKHRoaXMsYmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIEtjKHZoKG4pLHQsZSxtKG4udGIsbikpfSksITApfSx0LkJiPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIEZoKHRoaXMsdGhpcy5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5hLkJiKHQsZSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBSaChuLHQpLG4ucmVsb2FkKCl9KSl9LHQuZWQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gRmgodGhpcyx0aGlzLkkoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLmIobi5hLHQpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gUmgobix0KSxuLnJlbG9hZCgpfSkpfSx0LkNiPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIEZoKHRoaXMsdGhpcy5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5hLkNiKHQsZSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBSaChuLHQpLG4ucmVsb2FkKCl9KSl9LHQuRGI9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZS5kaXNwbGF5TmFtZSYmdm9pZCAwPT09ZS5waG90b1VSTClyZXR1cm4gVGgodGhpcyk7dmFyIG49dGhpcztyZXR1cm4gRmgodGhpcyx0aGlzLkkoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuLmEuRGIodCx7ZGlzcGxheU5hbWU6ZS5kaXNwbGF5TmFtZSxwaG90b1VybDplLnBob3RvVVJMfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBSaChuLHQpLE5oKG4sImRpc3BsYXlOYW1lIix0LmRpc3BsYXlOYW1lfHxudWxsKSxOaChuLCJwaG90b1VSTCIsdC5waG90b1VybHx8bnVsbCksaihuLnByb3ZpZGVyRGF0YSxmdW5jdGlvbih0KXsicGFzc3dvcmQiPT09dC5wcm92aWRlcklkJiYoanIodCwiZGlzcGxheU5hbWUiLG4uZGlzcGxheU5hbWUpLGpyKHQsInBob3RvVVJMIixuLnBob3RvVVJMKSl9KSxiaChuKX0pLnRoZW4oSWgpKX0sdC5jZD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiBGaCh0aGlzLGtoKHRoaXMpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIEsoRWgobiksZSk/emEobi5hLGJhLHtpZFRva2VuOnQsZGVsZXRlUHJvdmlkZXI6W2VdfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gaih0LnByb3ZpZGVyVXNlckluZm98fFtdLGZ1bmN0aW9uKHQpe2VbdC5wcm92aWRlcklkXT0hMH0pLGooRWgobiksZnVuY3Rpb24odCl7ZVt0XXx8Q2gobix0KX0pLGVbQ28uUFJPVklERVJfSURdfHxqcihuLCJwaG9uZU51bWJlciIsbnVsbCksYmgobil9KTpiaChuKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEkoIm5vLXN1Y2gtcHJvdmlkZXIiKX0pfSkpfSx0LmRlbGV0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIEZoKHRoaXMsdGhpcy5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gemEoZS5hLG1hLHtpZFRva2VuOnR9KX0pLnRoZW4oZnVuY3Rpb24oKXtlLmRpc3BhdGNoRXZlbnQobmV3IFpjKCJ1c2VyRGVsZXRlZCIpKX0pKS50aGVuKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxlLkoubGVuZ3RoO3QrKyllLkpbdF0uY2FuY2VsKCJhcHAtZGVsZXRlZCIpO2xoKGUsbnVsbCksZmgoZSxudWxsKSxkaChlLG51bGwpLGUuSj1bXSxlLkQ9ITAseWgoZSksanIoZSwicmVmcmVzaFRva2VuIixudWxsKSxlLmkmJlNjKGUuaSxlKX0pfSx0LkZiPWZ1bmN0aW9uKHQsZSl7cmV0dXJuISEoImxpbmtWaWFQb3B1cCI9PXQmJih0aGlzLmd8fG51bGwpPT1lJiZ0aGlzLmZ8fCJyZWF1dGhWaWFQb3B1cCI9PXQmJih0aGlzLmd8fG51bGwpPT1lJiZ0aGlzLmZ8fCJsaW5rVmlhUmVkaXJlY3QiPT10JiYodGhpcy5nYXx8bnVsbCk9PWV8fCJyZWF1dGhWaWFSZWRpcmVjdCI9PXQmJih0aGlzLmdhfHxudWxsKT09ZSl9LHQubmE9ZnVuY3Rpb24odCxlLG4scil7ImxpbmtWaWFQb3B1cCIhPXQmJiJyZWF1dGhWaWFQb3B1cCIhPXR8fHIhPSh0aGlzLmd8fG51bGwpfHwobiYmdGhpcy5DP3RoaXMuQyhuKTplJiYhbiYmdGhpcy5mJiZ0aGlzLmYoZSksdGhpcy5jJiYodGhpcy5jLmNhbmNlbCgpLHRoaXMuYz1udWxsKSxkZWxldGUgdGhpcy5mLGRlbGV0ZSB0aGlzLkMpfSx0LkZhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuImxpbmtWaWFQb3B1cCI9PXQmJmU9PSh0aGlzLmd8fG51bGwpP20odGhpcy5LYix0aGlzKToicmVhdXRoVmlhUG9wdXAiPT10JiZlPT0odGhpcy5nfHxudWxsKT9tKHRoaXMuTGIsdGhpcyk6ImxpbmtWaWFSZWRpcmVjdCI9PXQmJih0aGlzLmdhfHxudWxsKT09ZT9tKHRoaXMuS2IsdGhpcyk6InJlYXV0aFZpYVJlZGlyZWN0Ij09dCYmKHRoaXMuZ2F8fG51bGwpPT1lP20odGhpcy5MYix0aGlzKTpudWxsfSx0LkVjPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHhoKHRoaXMsImxpbmtWaWFQb3B1cCIsdCxmdW5jdGlvbigpe3JldHVybiBQaChlLHQucHJvdmlkZXJJZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBiaChlKX0pfSwhMSl9LHQuTmM9ZnVuY3Rpb24odCl7cmV0dXJuIHhoKHRoaXMsInJlYXV0aFZpYVBvcHVwIix0LGZ1bmN0aW9uKCl7cmV0dXJuIGJlKCl9LCEwKX0sdC5GYz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBMaCh0aGlzLCJsaW5rVmlhUmVkaXJlY3QiLHQsZnVuY3Rpb24oKXtyZXR1cm4gUGgoZSx0LnByb3ZpZGVySWQpfSwhMSl9LHQuT2M9ZnVuY3Rpb24odCl7cmV0dXJuIExoKHRoaXMsInJlYXV0aFZpYVJlZGlyZWN0Iix0LGZ1bmN0aW9uKCl7cmV0dXJuIGJlKCl9LCEwKX0sdC5LYj1mdW5jdGlvbihlLG4sdCxyKXt2YXIgaT10aGlzO3RoaXMuYyYmKHRoaXMuYy5jYW5jZWwoKSx0aGlzLmM9bnVsbCk7dmFyIG89bnVsbDtyZXR1cm4gdD10aGlzLkkoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBsYShpLmEse3JlcXVlc3RVcmk6ZSxwb3N0Qm9keTpyLHNlc3Npb25JZDpuLGlkVG9rZW46dH0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbz1PaChpLHQsImxpbmsiKSxEaChpLHQpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBvfSksRmgodGhpcyx0KX0sdC5MYj1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzO3RoaXMuYyYmKHRoaXMuYy5jYW5jZWwoKSx0aGlzLmM9bnVsbCk7dmFyIG89bnVsbDtyZXR1cm4gRmgodGhpcyxiZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gWmkoZmEoaS5hLHtyZXF1ZXN0VXJpOnQsc2Vzc2lvbklkOmUscG9zdEJvZHk6cix0ZW5hbnRJZDpufSksaS51aWQpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbz1PaChpLHQsInJlYXV0aGVudGljYXRlIiksUmgoaSx0KSxpLmg9bnVsbCxpLnJlbG9hZCgpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBvfSksITApfSx0LnViPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1udWxsO3JldHVybiBGaCh0aGlzLHRoaXMuSSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHI9dCx2b2lkIDA9PT1lfHx1dChlKT97fTpraShuZXcgYmkoZSkpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5hLnViKHIsdCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKG4uZW1haWwhPXQpcmV0dXJuIG4ucmVsb2FkKCl9KS50aGVuKGZ1bmN0aW9uKCl7fSkpfSx0LkViPWZ1bmN0aW9uKGUsbil7dmFyIHI9dGhpcyxpPW51bGw7cmV0dXJuIEZoKHRoaXMsdGhpcy5JKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaT10LHZvaWQgMD09PW58fHV0KG4pP3t9OmtpKG5ldyBiaShuKSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiByLmEuRWIoaSxlLHQpfSkudGhlbihmdW5jdGlvbih0KXtpZihyLmVtYWlsIT10KXJldHVybiByLnJlbG9hZCgpfSkudGhlbihmdW5jdGlvbigpe30pKX0sdC5qYz1mdW5jdGlvbih0KXt2YXIgZT1udWxsLG49dGhpcztyZXR1cm4gRmgodGhpcyx0PVppKGJlKHQpLG4udWlkKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlPU9oKG4sdCwicmVhdXRoZW50aWNhdGUiKSxSaChuLHQpLG4uaD1udWxsLG4ucmVsb2FkKCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KSwhMCl9LHQudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudygpfSx0Lnc9ZnVuY3Rpb24oKXt2YXIgZT17dWlkOnRoaXMudWlkLGRpc3BsYXlOYW1lOnRoaXMuZGlzcGxheU5hbWUscGhvdG9VUkw6dGhpcy5waG90b1VSTCxlbWFpbDp0aGlzLmVtYWlsLGVtYWlsVmVyaWZpZWQ6dGhpcy5lbWFpbFZlcmlmaWVkLHBob25lTnVtYmVyOnRoaXMucGhvbmVOdW1iZXIsaXNBbm9ueW1vdXM6dGhpcy5pc0Fub255bW91cyx0ZW5hbnRJZDp0aGlzLnRlbmFudElkLHByb3ZpZGVyRGF0YTpbXSxhcGlLZXk6dGhpcy5sLGFwcE5hbWU6dGhpcy5tLGF1dGhEb21haW46dGhpcy5zLHN0c1Rva2VuTWFuYWdlcjp0aGlzLmIudygpLHJlZGlyZWN0RXZlbnRJZDp0aGlzLmdhfHxudWxsfTtyZXR1cm4gdGhpcy5tZXRhZGF0YSYmbHQoZSx0aGlzLm1ldGFkYXRhLncoKSksaih0aGlzLnByb3ZpZGVyRGF0YSxmdW5jdGlvbih0KXtlLnByb3ZpZGVyRGF0YS5wdXNoKGZ1bmN0aW9uKHQpe3ZhciBlLG49e307Zm9yKGUgaW4gdCl0Lmhhc093blByb3BlcnR5KGUpJiYobltlXT10W2VdKTtyZXR1cm4gbn0odCkpfSksbHQoZSx0aGlzLk8udygpKSxlfTt2YXIgcWg9e25hbWU6InJlZGlyZWN0VXNlciIsRjoic2Vzc2lvbiJ9O2Z1bmN0aW9uIFZoKHQpe3JldHVybiBRdSh0LmIscWgsdC5hKX1mdW5jdGlvbiBCaCh0KXt2YXIgZSxuLHIsaTt0aGlzLmE9dCx0aGlzLmI9SHUoKSx0aGlzLmM9bnVsbCx0aGlzLmY9KG49SGgoImxvY2FsIikscj1IaCgic2Vzc2lvbiIpLGk9SGgoIm5vbmUiKSxmdW5jdGlvbihuLHIsaSl7dmFyIG89enUocixpKSxzPUd1KG4sci5GKTtyZXR1cm4gbi5nZXQocixpKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPW51bGw7dHJ5e2U9Q3IobC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShvKSl9Y2F0Y2godCl7fWlmKGUmJiF0KXJldHVybiBsLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG8pLG4uc2V0KHIsZSxpKTtlJiZ0JiYibG9jYWxTdG9yYWdlIiE9cy50eXBlJiZsLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG8pfSl9KChlPXRoaXMpLmIsbixlLmEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5iLmdldChyLGUuYSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0P3I6ZS5iLmdldChpLGUuYSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdD9pOmUuYi5nZXQobixlLmEpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ/bjplLmIuZ2V0KFdoLGUuYSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdD9IaCh0KTpufSl9KX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5jPXQsS2goZSx0LkYpfSkubyhmdW5jdGlvbigpe2UuY3x8KGUuYz1uKX0pKSx0aGlzLmIuYWRkTGlzdGVuZXIoSGgoImxvY2FsIiksdGhpcy5hLG0odGhpcy5nLHRoaXMpKX1mdW5jdGlvbiBLaCh0LGUpe3ZhciBuLGEscj1bXTtmb3IobiBpbiBLdSlLdVtuXSE9PWUmJnIucHVzaChRdSh0LmIsSGgoS3Vbbl0pLHQuYSkpO3JldHVybiByLnB1c2goUXUodC5iLFdoLHQuYSkpLGE9cixuZXcgZmUoZnVuY3Rpb24obixlKXt2YXIgcj1hLmxlbmd0aCxpPVtdO2lmKHIpZm9yKHZhciB0PWZ1bmN0aW9uKHQsZSl7ci0tLGlbdF09ZSwwPT1yJiZuKGkpfSxvPWZ1bmN0aW9uKHQpe2UodCl9LHM9MDtzPGEubGVuZ3RoO3MrKylfZShhW3NdLGIodCxzKSxvKTtlbHNlIG4oaSl9KX1CaC5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1IaCgibG9jYWwiKTtZaCh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGJlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLmMmJiJsb2NhbCIhPWUuYy5GP2UuYi5nZXQobixlLmEpOm51bGx9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKHQpcmV0dXJuIEtoKGUsImxvY2FsIikudGhlbihmdW5jdGlvbigpe2UuYz1ufSl9KX0pfTt2YXIgV2g9e25hbWU6InBlcnNpc3RlbmNlIixGOiJzZXNzaW9uIn07ZnVuY3Rpb24gSGgodCl7cmV0dXJue25hbWU6ImF1dGhVc2VyIixGOnR9fWZ1bmN0aW9uIEdoKHQsZSl7cmV0dXJuIFloKHQsZnVuY3Rpb24oKXtyZXR1cm4gdC5iLnNldCh0LmMsZS53KCksdC5hKX0pfWZ1bmN0aW9uIHpoKHQpe3JldHVybiBZaCh0LGZ1bmN0aW9uKCl7cmV0dXJuIFF1KHQuYix0LmMsdC5hKX0pfWZ1bmN0aW9uIFFoKHQsZSxuKXtyZXR1cm4gWWgodCxmdW5jdGlvbigpe3JldHVybiB0LmIuZ2V0KHQuYyx0LmEpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQmJmUmJih0LmF1dGhEb21haW49ZSksdCYmbiYmKHQuZW11bGF0b3JDb25maWc9biksVWgodHx8e30pfSl9KX1mdW5jdGlvbiBZaCh0LGUpe3JldHVybiB0LmY9dC5mLnRoZW4oZSxlKSx0LmZ9ZnVuY3Rpb24gWGgodCl7aWYodGhpcy5sPSExLGpyKHRoaXMsInNldHRpbmdzIixuZXcgVmMpLGpyKHRoaXMsImFwcCIsdCksIXRoaXMuYXBwLm9wdGlvbnN8fCF0aGlzLmFwcC5vcHRpb25zLmFwaUtleSl0aHJvdyBuZXcgSSgiaW52YWxpZC1hcGkta2V5Iik7dmFyIG4sZSxyLGksbyxzO3Q9WGwuU0RLX1ZFUlNJT04/Z3IoWGwuU0RLX1ZFUlNJT04pOm51bGwsdGhpcy5hPW5ldyBxcyh0aGlzLmFwcC5vcHRpb25zJiZ0aGlzLmFwcC5vcHRpb25zLmFwaUtleSxBKEUpLHQpLHRoaXMuUj1bXSx0aGlzLnM9W10sdGhpcy5PPVtdLHRoaXMuaGI9WGwuSU5URVJOQUwuY3JlYXRlU3Vic2NyaWJlKG0odGhpcy56Yyx0aGlzKSksdGhpcy5YPXZvaWQgMCx0aGlzLmJjPVhsLklOVEVSTkFMLmNyZWF0ZVN1YnNjcmliZShtKHRoaXMuQWMsdGhpcykpLHJsKHRoaXMsbnVsbCksdGhpcy5pPW5ldyBCaCh0aGlzLmFwcC5vcHRpb25zLmFwaUtleSsiOiIrdGhpcy5hcHAubmFtZSksdGhpcy5EPW5ldyBqaCh0aGlzLmFwcC5vcHRpb25zLmFwaUtleSsiOiIrdGhpcy5hcHAubmFtZSksdGhpcy4kPXVsKHRoaXMsKGU9KG49dGhpcykuYXBwLm9wdGlvbnMuYXV0aERvbWFpbix0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYi5nZXQocWgsdC5hKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZlJiYodC5hdXRoRG9tYWluPWUpLFVoKHR8fHt9KX0pfShlLkQsZS5hcHAub3B0aW9ucy5hdXRoRG9tYWluKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybihlLm09dCkmJih0LmhhPWUuRCksVmgoZS5EKX0pO3JldHVybiB1bChlLHQpfShuKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFFoKG4uaSxlLG4uUCl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlPyhlLmhhPW4uRCxuLm0mJihuLm0uZ2F8fG51bGwpPT0oZS5nYXx8bnVsbCk/ZTplLnJlbG9hZCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gR2gobi5pLGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZX0pfSkubyhmdW5jdGlvbih0KXtyZXR1cm4iYXV0aC9uZXR3b3JrLXJlcXVlc3QtZmFpbGVkIj09dC5jb2RlP2U6emgobi5pKX0pKTpudWxsfSkudGhlbihmdW5jdGlvbih0KXtybChuLHR8fG51bGwpfSksdWwobix0KSkpLHRoaXMuaD11bCh0aGlzLChyPXRoaXMpLiQudGhlbihmdW5jdGlvbigpe3JldHVybiBlbChyKX0pLm8oZnVuY3Rpb24oKXt9KS50aGVuKGZ1bmN0aW9uKCl7aWYoIXIubClyZXR1cm4gci5qYSgpfSkubyhmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oKXt2YXIgdDtyLmx8fChyLmJhPSEwLCh0PXIuaSkuYi5hZGRMaXN0ZW5lcihIaCgibG9jYWwiKSx0LmEsci5qYSkpfSkpLHRoaXMuYmE9ITEsdGhpcy5qYT1tKHRoaXMuWmMsdGhpcyksdGhpcy5CYT1tKHRoaXMuZGEsdGhpcyksdGhpcy55YT1tKHRoaXMubWMsdGhpcyksdGhpcy56YT1tKHRoaXMud2MsdGhpcyksdGhpcy5BYT1tKHRoaXMueGMsdGhpcyksdGhpcy5iPW51bGwsbz0oaT10aGlzKS5hcHAub3B0aW9ucy5hdXRoRG9tYWluLHM9aS5hcHAub3B0aW9ucy5hcGlLZXksbyYmd3IoKSYmKGkuT2E9aS4kLnRoZW4oZnVuY3Rpb24oKXt2YXIgdDtpZighaS5sKXJldHVybiBpLmI9eGMobyxzLGkuYXBwLm5hbWUsaS5QKSxFYyhpLmIsaSksb2woaSkmJndoKG9sKGkpKSxpLm0mJih3aChpLm0pLCh0PWkubSkud2EoaS5sYSgpKSxsaCh0LGkpLHBoKHQ9aS5tLGkuSiksZGgodCxpKSxRcygodD1pLm0pLmEsaS5QKSxmaCh0LGkpLGkubT1udWxsKSxpLmJ9KSksdGhpcy5JTlRFUk5BTD17fSx0aGlzLklOVEVSTkFMLmRlbGV0ZT1tKHRoaXMuZGVsZXRlLHRoaXMpLHRoaXMuSU5URVJOQUwubG9nRnJhbWV3b3JrPW0odGhpcy5HYyx0aGlzKSx0aGlzLnU9MCxsbi5jYWxsKHRoaXMpLHQ9dGhpcyxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibGMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYSgpfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy53YSh0KX0sZW51bWVyYWJsZTohMX0pLHQuYWE9bnVsbCxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwidGkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UKCl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnliKHQpfSxlbnVtZXJhYmxlOiExfSksdC5TPW51bGwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImVtdWxhdG9yQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHQ9dGhpcy5QP1ZyKHtwcm90b2NvbDoodD1rbih0aGlzLlAudXJsKSkuYyxob3N0OnQuYSxwb3J0OnQuZyxvcHRpb25zOlZyKHtkaXNhYmxlV2FybmluZ3M6dGhpcy5QLmVjfSl9KTpudWxsfSxlbnVtZXJhYmxlOiExfSksdGhpcy5KPVtdLHRoaXMuUD1udWxsfWZ1bmN0aW9uIEpoKHQpe3FlLmNhbGwodGhpcywibGFuZ3VhZ2VDb2RlQ2hhbmdlZCIpLHRoaXMuaD10fWZ1bmN0aW9uICRoKHQpe3FlLmNhbGwodGhpcywiZW11bGF0b3JDb25maWdDaGFuZ2VkIiksdGhpcy5jPXR9ZnVuY3Rpb24gWmgodCl7cWUuY2FsbCh0aGlzLCJmcmFtZXdvcmtDaGFuZ2VkIiksdGhpcy5mPXR9ZnVuY3Rpb24gdGwodCl7cmV0dXJuIHQuT2F8fHdlKG5ldyBJKCJhdXRoLWRvbWFpbi1jb25maWctcmVxdWlyZWQiKSl9ZnVuY3Rpb24gZWwodCl7aWYoIXdyKCkpcmV0dXJuIHdlKG5ldyBJKCJvcGVyYXRpb24tbm90LXN1cHBvcnRlZC1pbi10aGlzLWVudmlyb25tZW50IikpO3ZhciBlPXRsKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5iLnFhKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0P1ZyKHQpOm51bGx9KTtyZXR1cm4gdWwodCxlKX1mdW5jdGlvbiBubChvLHMpe3ZhciBhPXt9O3JldHVybiBhLmFwaUtleT1vLmFwcC5vcHRpb25zLmFwaUtleSxhLmF1dGhEb21haW49by5hcHAub3B0aW9ucy5hdXRoRG9tYWluLGEuYXBwTmFtZT1vLmFwcC5uYW1lLG8uUCYmKGEuZW11bGF0b3JDb25maWc9by5QKSxvLiQudGhlbihmdW5jdGlvbigpe3JldHVybiB0PWEsZT1zLG49by5ELHI9by5HYSgpLGk9bmV3IGhoKHQsZSksbiYmKGkuaGE9biksciYmcGgoaSxyKSxpLnJlbG9hZCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaX0pO3ZhciB0LGUsbixyLGl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBvbChvKSYmdC51aWQ9PW9sKG8pLnVpZD9BaChvbChvKSx0KToocmwobyx0KSx3aCh0KSksby5kYSh0KX0pLnRoZW4oZnVuY3Rpb24oKXthbChvKX0pfWZ1bmN0aW9uIHJsKHQsZSl7dmFyIG4scjtvbCh0KSYmKG49b2wodCkscj10LkJhLEgobi5TLGZ1bmN0aW9uKHQpe3JldHVybiB0PT1yfSksZW4ob2wodCksInRva2VuQ2hhbmdlZCIsdC55YSksZW4ob2wodCksInVzZXJEZWxldGVkIix0LnphKSxlbihvbCh0KSwidXNlckludmFsaWRhdGVkIix0LkFhKSx5aChvbCh0KSkpLGUmJihlLlMucHVzaCh0LkJhKSwkZShlLCJ0b2tlbkNoYW5nZWQiLHQueWEpLCRlKGUsInVzZXJEZWxldGVkIix0LnphKSwkZShlLCJ1c2VySW52YWxpZGF0ZWQiLHQuQWEpLDA8dC51JiZnaChlKSksanIodCwiY3VycmVudFVzZXIiLGUpLGUmJihlLndhKHQubGEoKSksbGgoZSx0KSxwaChlLHQuSiksZGgoZSx0KSxRcyhlLmEsdC5QKSxmaChlLHQpKX1mdW5jdGlvbiBpbChuLHQpe3ZhciBlPW51bGwscj1udWxsO3JldHVybiB1bChuLHQudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZT1Bbyh0KSxyPWppKHQpLG5sKG4sdCl9LGZ1bmN0aW9uKHQpe3ZhciBlPW51bGw7dGhyb3coZT10JiYiYXV0aC9tdWx0aS1mYWN0b3ItYXV0aC1yZXF1aXJlZCI9PT10LmNvZGU/WWModC53KCksbixtKG4ua2MsbikpOmUpfHx0fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBWcih7dXNlcjpvbChuKSxjcmVkZW50aWFsOmUsYWRkaXRpb25hbFVzZXJJbmZvOnIsb3BlcmF0aW9uVHlwZToic2lnbkluIn0pfSkpfWZ1bmN0aW9uIG9sKHQpe3JldHVybiB0LmN1cnJlbnRVc2VyfWZ1bmN0aW9uIHNsKHQpe3JldHVybiBvbCh0KSYmb2wodCkuX2xhdHx8bnVsbH1mdW5jdGlvbiBhbCh0KXtpZih0LmJhKXtmb3IodmFyIGU9MDtlPHQucy5sZW5ndGg7ZSsrKXQuc1tlXSYmdC5zW2VdKHNsKHQpKTtpZih0LlghPT10LmdldFVpZCgpJiZ0Lk8ubGVuZ3RoKWZvcih0Llg9dC5nZXRVaWQoKSxlPTA7ZTx0Lk8ubGVuZ3RoO2UrKyl0Lk9bZV0mJnQuT1tlXShzbCh0KSl9fWZ1bmN0aW9uIHVsKHQsZSl7cmV0dXJuIHQuUi5wdXNoKGUpLGUub2EoZnVuY3Rpb24oKXtXKHQuUixlKX0pLGV9ZnVuY3Rpb24gY2woKXt9ZnVuY3Rpb24gaGwoKXt0aGlzLmE9e30sdGhpcy5iPTFlMTJ9QmgucHJvdG90eXBlLnhiPWZ1bmN0aW9uKGUpe3ZhciBuPW51bGwscj10aGlzO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1uZXcgSSgiaW52YWxpZC1wZXJzaXN0ZW5jZS10eXBlIiksbj1uZXcgSSgidW5zdXBwb3J0ZWQtcGVyc2lzdGVuY2UtdHlwZSIpO3Q6e2ZvcihyIGluIEt1KWlmKEt1W3JdPT10KXt2YXIgcj0hMDticmVhayB0fXI9ITF9aWYoIXJ8fCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBlO3N3aXRjaChocigpKXtjYXNlIlJlYWN0TmF0aXZlIjppZigic2Vzc2lvbiI9PT10KXRocm93IG47YnJlYWs7Y2FzZSJOb2RlIjppZigibm9uZSIhPT10KXRocm93IG47YnJlYWs7Y2FzZSJXb3JrZXIiOmlmKCJzZXNzaW9uIj09PXR8fCFJdSgpJiYibm9uZSIhPT10KXRocm93IG47YnJlYWs7ZGVmYXVsdDppZighYnIoKSYmIm5vbmUiIT09dCl0aHJvdyBufX0oZSksWWgodGhpcyxmdW5jdGlvbigpe3JldHVybiBlIT1yLmMuRj9yLmIuZ2V0KHIuYyxyLmEpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG49dCxLaChyLGUpfSkudGhlbihmdW5jdGlvbigpe2lmKHIuYz1IaChlKSxuKXJldHVybiByLmIuc2V0KHIuYyxuLHIuYSl9KTpiZSgpfSl9LHcoWGgsbG4pLHcoSmgscWUpLHcoJGgscWUpLHcoWmgscWUpLCh0PVhoLnByb3RvdHlwZSkueGI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dGhpcy5pLnhiKHQpLHVsKHRoaXMsdCl9LHQud2E9ZnVuY3Rpb24odCl7dGhpcy5hYT09PXR8fHRoaXMubHx8KHRoaXMuYWE9dCx6cyh0aGlzLmEsdGhpcy5hYSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBKaCh0aGlzLmxhKCkpKSl9LHQubGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hYX0sdC5mZD1mdW5jdGlvbigpe3ZhciB0PWwubmF2aWdhdG9yO3RoaXMud2EodCYmKHQubGFuZ3VhZ2VzJiZ0Lmxhbmd1YWdlc1swXXx8dC5sYW5ndWFnZXx8dC51c2VyTGFuZ3VhZ2UpfHxudWxsKX0sdC5nZD1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLlApe2lmKCEvXmh0dHBzPzpcL1wvLy50ZXN0KHQpKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkVtdWxhdG9yIFVSTCBtdXN0IHN0YXJ0IHdpdGggYSB2YWxpZCBzY2hlbWUgKGh0dHA6Ly8gb3IgaHR0cHM6Ly8pLiIpO2U9ISFlJiYhIWUuZGlzYWJsZVdhcm5pbmdzLG49ZSwidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLmluZm8mJmNvbnNvbGUuaW5mbygiV0FSTklORzogWW91IGFyZSB1c2luZyB0aGUgQXV0aCBFbXVsYXRvciwgd2hpY2ggaXMgaW50ZW5kZWQgZm9yIGxvY2FsIHRlc3Rpbmcgb25seS4gIERvIG5vdCB1c2Ugd2l0aCBwcm9kdWN0aW9uIGNyZWRlbnRpYWxzLiIpLGwuZG9jdW1lbnQmJiFuJiZzcigpLnRoZW4oZnVuY3Rpb24oKXt2YXIgdD1sLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaW5uZXJUZXh0PSJSdW5uaW5nIGluIGVtdWxhdG9yIG1vZGUuIERvIG5vdCB1c2Ugd2l0aCBwcm9kdWN0aW9uIGNyZWRlbnRpYWxzLiIsdC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHQuc3R5bGUud2lkdGg9IjEwMCUiLHQuc3R5bGUuYmFja2dyb3VuZENvbG9yPSIjZmZmZmZmIix0LnN0eWxlLmJvcmRlcj0iLjFlbSBzb2xpZCAjMDAwMDAwIix0LnN0eWxlLmNvbG9yPSIjZmYwMDAwIix0LnN0eWxlLmJvdHRvbT0iMHB4Iix0LnN0eWxlLmxlZnQ9IjBweCIsdC5zdHlsZS5tYXJnaW49IjBweCIsdC5zdHlsZS56SW5kZXg9MWU0LHQuc3R5bGUudGV4dEFsaWduPSJjZW50ZXIiLHQuY2xhc3NMaXN0LmFkZCgiZmlyZWJhc2UtZW11bGF0b3Itd2FybmluZyIpLGwuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KX0pLHRoaXMuUD17dXJsOnQsZWM6ZX0sdGhpcy5zZXR0aW5ncy5pYj0hMCxRcyh0aGlzLmEsdGhpcy5QKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3ICRoKHRoaXMuUCkpfXZhciBufSx0LkdjPWZ1bmN0aW9uKHQpe3RoaXMuSi5wdXNoKHQpLFhzKHRoaXMuYSxYbC5TREtfVkVSU0lPTj9ncihYbC5TREtfVkVSU0lPTix0aGlzLkopOm51bGwpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgWmgodGhpcy5KKSl9LHQuR2E9ZnVuY3Rpb24oKXtyZXR1cm4geih0aGlzLkopfSx0LnliPWZ1bmN0aW9uKHQpe3RoaXMuUz09PXR8fHRoaXMubHx8KHRoaXMuUz10LHRoaXMuYS5iPXRoaXMuUyl9LHQuVD1mdW5jdGlvbigpe3JldHVybiB0aGlzLlN9LHQudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue2FwaUtleTp0aGlzLmFwcC5vcHRpb25zLmFwaUtleSxhdXRoRG9tYWluOnRoaXMuYXBwLm9wdGlvbnMuYXV0aERvbWFpbixhcHBOYW1lOnRoaXMuYXBwLm5hbWUsY3VycmVudFVzZXI6b2wodGhpcykmJm9sKHRoaXMpLncoKX19LHQuRmI9ZnVuY3Rpb24odCxlKXtzd2l0Y2godCl7Y2FzZSJ1bmtub3duIjpjYXNlInNpZ25JblZpYVJlZGlyZWN0IjpyZXR1cm4hMDtjYXNlInNpZ25JblZpYVBvcHVwIjpyZXR1cm4gdGhpcy5nPT1lJiYhIXRoaXMuZjtkZWZhdWx0OnJldHVybiExfX0sdC5uYT1mdW5jdGlvbih0LGUsbixyKXsic2lnbkluVmlhUG9wdXAiPT10JiZ0aGlzLmc9PXImJihuJiZ0aGlzLkM/dGhpcy5DKG4pOmUmJiFuJiZ0aGlzLmYmJnRoaXMuZihlKSx0aGlzLmMmJih0aGlzLmMuY2FuY2VsKCksdGhpcy5jPW51bGwpLGRlbGV0ZSB0aGlzLmYsZGVsZXRlIHRoaXMuQyl9LHQuRmE9ZnVuY3Rpb24odCxlKXtyZXR1cm4ic2lnbkluVmlhUmVkaXJlY3QiPT10fHwic2lnbkluVmlhUG9wdXAiPT10JiZ0aGlzLmc9PWUmJnRoaXMuZj9tKHRoaXMuaWMsdGhpcyk6bnVsbH0sdC5pYz1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLG89e3JlcXVlc3RVcmk6dCxwb3N0Qm9keTpyLHNlc3Npb25JZDplLHRlbmFudElkOm59O3JldHVybiB0aGlzLmMmJih0aGlzLmMuY2FuY2VsKCksdGhpcy5jPW51bGwpLGkuJC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGlsKGksaGEoaS5hLG8pKX0pfSx0LlhjPWZ1bmN0aW9uKGUpe2lmKCF3cigpKXJldHVybiB3ZShuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKTt2YXIgbj10aGlzLHQ9VWkoZS5wcm92aWRlcklkKSxyPU5yKCksaT1udWxsLG89cnIoaT0oIVRyKCl8fHVyKCkpJiZ0aGlzLmFwcC5vcHRpb25zLmF1dGhEb21haW4mJmUuaXNPQXV0aFByb3ZpZGVyP3V1KHRoaXMuYXBwLm9wdGlvbnMuYXV0aERvbWFpbix0aGlzLmFwcC5vcHRpb25zLmFwaUtleSx0aGlzLmFwcC5uYW1lLCJzaWduSW5WaWFQb3B1cCIsZSxudWxsLHIsWGwuU0RLX1ZFUlNJT058fG51bGwsbnVsbCxudWxsLHRoaXMuVCgpLHRoaXMuUCk6aSx0JiZ0LnVhLHQmJnQudGEpO3JldHVybiB1bCh0aGlzLHQ9dGwodGhpcykudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gQWModCxvLCJzaWduSW5WaWFQb3B1cCIsZSxyLCEhaSxuLlQoKSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBmZShmdW5jdGlvbih0LGUpe24ubmEoInNpZ25JblZpYVBvcHVwIixudWxsLG5ldyBJKCJjYW5jZWxsZWQtcG9wdXAtcmVxdWVzdCIpLG4uZyksbi5mPXQsbi5DPWUsbi5nPXIsbi5jPVBjKG4uYixuLCJzaWduSW5WaWFQb3B1cCIsbyxyKX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbyYmbnIobyksdD9Wcih0KTpudWxsfSkubyhmdW5jdGlvbih0KXt0aHJvdyBvJiZucihvKSx0fSkpfSx0LlljPWZ1bmN0aW9uKHQpe2lmKCF3cigpKXJldHVybiB3ZShuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIpKTt2YXIgZT10aGlzO3JldHVybiB1bCh0aGlzLHRsKHRoaXMpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gWWgodD1lLmksZnVuY3Rpb24oKXtyZXR1cm4gdC5iLnNldChXaCx0LmMuRix0LmEpfSk7dmFyIHR9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFJjKGUuYiwic2lnbkluVmlhUmVkaXJlY3QiLHQsdm9pZCAwLGUuVCgpKX0pKX0sdC5xYT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGVsKHRoaXMpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGUuYiYmRmMoZS5iLmIpLHR9KS5vKGZ1bmN0aW9uKHQpe3Rocm93IGUuYiYmRmMoZS5iLmIpLHR9KX0sdC5kZD1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gd2UobmV3IEkoIm51bGwtdXNlciIpKTtpZih0aGlzLlMhPXQudGVuYW50SWQpcmV0dXJuIHdlKG5ldyBJKCJ0ZW5hbnQtaWQtbWlzbWF0Y2giKSk7dmFyIGU9dGhpcyxuPXt9O24uYXBpS2V5PXRoaXMuYXBwLm9wdGlvbnMuYXBpS2V5LG4uYXV0aERvbWFpbj10aGlzLmFwcC5vcHRpb25zLmF1dGhEb21haW4sbi5hcHBOYW1lPXRoaXMuYXBwLm5hbWU7dmFyIHIsaSxvLHMsYSx1PShyPXQsaT1uLG89ZS5ELHM9ZS5HYSgpLGE9ci5iLChuPXt9KVtCc109YS5iJiZhLmIudG9TdHJpbmcoKSxuLnJlZnJlc2hUb2tlbj1hLmEsaT1uZXcgaGgoaXx8e2FwaUtleTpyLmwsYXV0aERvbWFpbjpyLnMsYXBwTmFtZTpyLm19LG4pLG8mJihpLmhhPW8pLHMmJnBoKGkscyksQWgoaSxyKSxpKTtyZXR1cm4gdWwodGhpcyx0aGlzLmgudGhlbihmdW5jdGlvbigpe2lmKGUuYXBwLm9wdGlvbnMuYXBpS2V5IT10LmwpcmV0dXJuIHUucmVsb2FkKCl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG9sKGUpJiZ0LnVpZD09b2woZSkudWlkPyhBaChvbChlKSx0KSxlLmRhKHQpKToocmwoZSx1KSx3aCh1KSxlLmRhKHUpKX0pLnRoZW4oZnVuY3Rpb24oKXthbChlKX0pKX0sdC5BYj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmgudGhlbihmdW5jdGlvbigpe3JldHVybiB0LmImJkZjKHQuYi5iKSxvbCh0KT8ocmwodCxudWxsKSx6aCh0LmkpLnRoZW4oZnVuY3Rpb24oKXthbCh0KX0pKTpiZSgpfSk7cmV0dXJuIHVsKHRoaXMsZSl9LHQuWmM9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO3JldHVybiBRaCh0aGlzLmksdGhpcy5hcHAub3B0aW9ucy5hdXRoRG9tYWluKS50aGVuKGZ1bmN0aW9uKHQpe2lmKCFyLmwpe3ZhciBlLG47aWYoKGU9b2wocikmJnQpJiYoZT1vbChyKS51aWQsbj10LnVpZCxlPW51bGwhPWUmJiIiIT09ZSYmbnVsbCE9biYmIiIhPT1uJiZlPT1uKSxlKXJldHVybiBBaChvbChyKSx0KSxvbChyKS5JKCk7KG9sKHIpfHx0KSYmKHJsKHIsdCksdCYmKHdoKHQpLHQuaGE9ci5EKSxyLmImJkVjKHIuYixyKSxhbChyKSl9fSl9LHQuZGE9ZnVuY3Rpb24odCl7cmV0dXJuIEdoKHRoaXMuaSx0KX0sdC5tYz1mdW5jdGlvbigpe2FsKHRoaXMpLHRoaXMuZGEob2wodGhpcykpfSx0LndjPWZ1bmN0aW9uKCl7dGhpcy5BYigpfSx0LnhjPWZ1bmN0aW9uKCl7dGhpcy5BYigpfSx0LmtjPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuaC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGlsKGUsYmUodCkpfSl9LHQuemM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmFkZEF1dGhUb2tlbkxpc3RlbmVyKGZ1bmN0aW9uKCl7dC5uZXh0KG9sKGUpKX0pfSx0LkFjPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj10aGlzO249ZnVuY3Rpb24oKXt0Lm5leHQob2wocikpfSwoZT10aGlzKS5PLnB1c2gobiksdWwoZSxlLmgudGhlbihmdW5jdGlvbigpeyFlLmwmJksoZS5PLG4pJiZlLlghPT1lLmdldFVpZCgpJiYoZS5YPWUuZ2V0VWlkKCksbihzbChlKSkpfSkpfSx0LkljPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLmJhJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChvbChyKSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQubmV4dCYmdC5uZXh0KG9sKHIpKX0pLHRoaXMuaGIodCxlLG4pfSx0LkhjPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLmJhJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7ci5YPXIuZ2V0VWlkKCksImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChvbChyKSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQubmV4dCYmdC5uZXh0KG9sKHIpKX0pLHRoaXMuYmModCxlLG4pfSx0Lm5jPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmgudGhlbihmdW5jdGlvbigpe3JldHVybiBvbChlKT9vbChlKS5JKHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJue2FjY2Vzc1Rva2VuOnR9fSk6bnVsbH0pO3JldHVybiB1bCh0aGlzLG4pfSx0LlRjPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMuaC50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGlsKG4semEobi5hLFZhLHt0b2tlbjp0fSkpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT10LnVzZXI7cmV0dXJuIE5oKGUsImlzQW5vbnltb3VzIiwhMSksbi5kYShlKSx0fSl9LHQuVWM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLmgudGhlbihmdW5jdGlvbigpe3JldHVybiBpbChuLHphKG4uYSxCYSx7ZW1haWw6dCxwYXNzd29yZDplfSkpfSl9LHQuZGM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLmgudGhlbihmdW5jdGlvbigpe3JldHVybiBpbChuLHphKG4uYSxnYSx7ZW1haWw6dCxwYXNzd29yZDplfSkpfSl9LHQuJGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5oLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaWwoZSx0LmthKGUuYSkpfSl9LHQuU2M9ZnVuY3Rpb24odCl7cmV0dXJuIEZyKCJmaXJlYmFzZS5hdXRoLkF1dGgucHJvdG90eXBlLnNpZ25JbkFuZFJldHJpZXZlRGF0YVdpdGhDcmVkZW50aWFsIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmlyZWJhc2UuYXV0aC5BdXRoLnByb3RvdHlwZS5zaWduSW5XaXRoQ3JlZGVudGlhbCBpbnN0ZWFkLiIpLHRoaXMuJGEodCl9LHQuemI9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLmgudGhlbihmdW5jdGlvbigpe3ZhciB0PW9sKG4pO2lmKHQmJnQuaXNBbm9ueW1vdXMpe3ZhciBlPVZyKHtwcm92aWRlcklkOm51bGwsaXNOZXdVc2VyOiExfSk7cmV0dXJuIFZyKHt1c2VyOnQsY3JlZGVudGlhbDpudWxsLGFkZGl0aW9uYWxVc2VySW5mbzplLG9wZXJhdGlvblR5cGU6InNpZ25JbiJ9KX1yZXR1cm4gaWwobixuLmEuemIoKSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT10LnVzZXI7cmV0dXJuIE5oKGUsImlzQW5vbnltb3VzIiwhMCksbi5kYShlKSx0fSl9KX0sdC5nZXRVaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gb2wodGhpcykmJm9sKHRoaXMpLnVpZHx8bnVsbH0sdC5jYz1mdW5jdGlvbih0KXt0aGlzLmFkZEF1dGhUb2tlbkxpc3RlbmVyKHQpLHRoaXMudSsrLDA8dGhpcy51JiZvbCh0aGlzKSYmZ2gob2wodGhpcykpfSx0LlBjPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7aih0aGlzLnMsZnVuY3Rpb24odCl7dD09ZSYmbi51LS19KSx0aGlzLnU8MCYmKHRoaXMudT0wKSwwPT10aGlzLnUmJm9sKHRoaXMpJiZ5aChvbCh0aGlzKSksdGhpcy5yZW1vdmVBdXRoVG9rZW5MaXN0ZW5lcihlKX0sdC5hZGRBdXRoVG9rZW5MaXN0ZW5lcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMucy5wdXNoKHQpLHVsKHRoaXMsdGhpcy5oLnRoZW4oZnVuY3Rpb24oKXtlLmx8fEsoZS5zLHQpJiZ0KHNsKGUpKX0pKX0sdC5yZW1vdmVBdXRoVG9rZW5MaXN0ZW5lcj1mdW5jdGlvbihlKXtIKHRoaXMucyxmdW5jdGlvbih0KXtyZXR1cm4gdD09ZX0pfSx0LmRlbGV0ZT1mdW5jdGlvbigpe3RoaXMubD0hMDtmb3IodmFyIHQ9MDt0PHRoaXMuUi5sZW5ndGg7dCsrKXRoaXMuUlt0XS5jYW5jZWwoImFwcC1kZWxldGVkIik7cmV0dXJuIHRoaXMuUj1bXSx0aGlzLmkmJih0PXRoaXMuaSkuYi5yZW1vdmVMaXN0ZW5lcihIaCgibG9jYWwiKSx0LmEsdGhpcy5qYSksdGhpcy5iJiYoU2ModGhpcy5iLHRoaXMpLEZjKHRoaXMuYi5iKSksUHJvbWlzZS5yZXNvbHZlKCl9LHQuaGM9ZnVuY3Rpb24odCl7cmV0dXJuIHVsKHRoaXMsemEodGhpcy5hLHlhLHtpZGVudGlmaWVyOnQsY29udGludWVVcmk6X3IoKT9abigpOiJodHRwOi8vbG9jYWxob3N0In0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuc2lnbmluTWV0aG9kc3x8W119KSl9LHQuQmM9ZnVuY3Rpb24odCl7cmV0dXJuISFJbyh0KX0sdC53Yj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7cmV0dXJuIHVsKHRoaXMsYmUoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGJpKG4pO2lmKCF0LmMpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIixJaSsiIG11c3QgYmUgdHJ1ZSB3aGVuIHNlbmRpbmcgc2lnbiBpbiBsaW5rIHRvIGVtYWlsIik7cmV0dXJuIGtpKHQpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gci5hLndiKGUsdCl9KS50aGVuKGZ1bmN0aW9uKCl7fSkpfSx0LmpkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLlJhKHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YS5lbWFpbH0pfSx0Lm5iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHVsKHRoaXMsdGhpcy5hLm5iKHQsZSkudGhlbihmdW5jdGlvbigpe30pKX0sdC5SYT1mdW5jdGlvbih0KXtyZXR1cm4gdWwodGhpcyx0aGlzLmEuUmEodCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFhyKHQpfSkpfSx0LmpiPWZ1bmN0aW9uKHQpe3JldHVybiB1bCh0aGlzLHRoaXMuYS5qYih0KS50aGVuKGZ1bmN0aW9uKCl7fSkpfSx0LnZiPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdWwodGhpcyxiZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dHx8dXQodCk/e306a2kobmV3IGJpKHQpKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG4uYS52YihlLHQpfSkudGhlbihmdW5jdGlvbigpe30pKX0sdC5XYz1mdW5jdGlvbih0LGUpe3JldHVybiB1bCh0aGlzLEtjKHRoaXMsdCxlLG0odGhpcy4kYSx0aGlzKSkpfSx0LlZjPWZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcztyZXR1cm4gdWwodGhpcyxiZSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgdD1yfHxabigpLGU9X28obix0KTtpZighKHQ9SW8odCkpKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsIkludmFsaWQgZW1haWwgbGluayEiKTtpZih0LnRlbmFudElkIT09aS5UKCkpdGhyb3cgbmV3IEkoInRlbmFudC1pZC1taXNtYXRjaCIpO3JldHVybiBpLiRhKGUpfSkpfSxjbC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7fSxjbC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt9LGNsLnByb3RvdHlwZS5nZXRSZXNwb25zZT1mdW5jdGlvbigpe30sY2wucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oKXt9O3ZhciBsbD1udWxsO2Z1bmN0aW9uIGZsKHQsZSl7cmV0dXJuKGU9cGwoZSkpJiZ0LmFbZV18fG51bGx9ZnVuY3Rpb24gcGwodCl7cmV0dXJuKHQ9dm9pZCAwPT09dD8xZTEyOnQpP3QudG9TdHJpbmcoKTpudWxsfWZ1bmN0aW9uIGRsKHQsZSl7dGhpcy5nPSExLHRoaXMuYz1lLHRoaXMuYT10aGlzLmI9bnVsbCx0aGlzLmg9ImludmlzaWJsZSIhPT10aGlzLmMuc2l6ZSx0aGlzLmY9dGUodCk7dmFyIG49dGhpczt0aGlzLmk9ZnVuY3Rpb24oKXtuLmV4ZWN1dGUoKX0sdGhpcy5oP3RoaXMuZXhlY3V0ZSgpOiRlKHRoaXMuZiwiY2xpY2siLHRoaXMuaSl9ZnVuY3Rpb24gdmwodCl7aWYodC5nKXRocm93IEVycm9yKCJyZUNBUFRDSEEgbW9jayB3YXMgYWxyZWFkeSBkZWxldGVkISIpfWZ1bmN0aW9uIGdsKCl7fWZ1bmN0aW9uIHlsKCl7fWhsLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hW3RoaXMuYi50b1N0cmluZygpXT1uZXcgZGwodCxlKSx0aGlzLmIrK30saGwucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPWZsKHRoaXMsdCk7dD1wbCh0KSxlJiZ0JiYoZS5kZWxldGUoKSxkZWxldGUgdGhpcy5hW3RdKX0saGwucHJvdG90eXBlLmdldFJlc3BvbnNlPWZ1bmN0aW9uKHQpe3JldHVybih0PWZsKHRoaXMsdCkpP3QuZ2V0UmVzcG9uc2UoKTpudWxsfSxobC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbih0KXsodD1mbCh0aGlzLHQpKSYmdC5leGVjdXRlKCl9LGRsLnByb3RvdHlwZS5nZXRSZXNwb25zZT1mdW5jdGlvbigpe3JldHVybiB2bCh0aGlzKSx0aGlzLmJ9LGRsLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKCl7dmwodGhpcyk7dmFyIG49dGhpczt0aGlzLmF8fCh0aGlzLmE9c2V0VGltZW91dChmdW5jdGlvbigpe24uYj1mdW5jdGlvbigpe2Zvcih2YXIgdD01MCxlPVtdOzA8dDspZS5wdXNoKCIxMjM0NTY3ODkwYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIuY2hhckF0KE1hdGguZmxvb3IoNjIqTWF0aC5yYW5kb20oKSkpKSx0LS07cmV0dXJuIGUuam9pbigiIil9KCk7dmFyIHQ9bi5jLmNhbGxiYWNrLGU9bi5jWyJleHBpcmVkLWNhbGxiYWNrIl07aWYodCl0cnl7dChuLmIpfWNhdGNoKHQpe31uLmE9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKG4uYT1udWxsLG4uYj1udWxsLGUpdHJ5e2UoKX1jYXRjaCh0KXt9bi5oJiZuLmV4ZWN1dGUoKX0sNmU0KX0sNTAwKSl9LGRsLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oKXt2bCh0aGlzKSx0aGlzLmc9ITAsY2xlYXJUaW1lb3V0KHRoaXMuYSksdGhpcy5hPW51bGwsZW4odGhpcy5mLCJjbGljayIsdGhpcy5pKX0sanIoZ2wsIkZBQ1RPUl9JRCIsInBob25lIikseWwucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXtyZXR1cm4gYmUobGw9bGx8fG5ldyBobCl9LHlsLnByb3RvdHlwZS5jPWZ1bmN0aW9uKCl7fTt2YXIgbWw9bnVsbDtmdW5jdGlvbiBibCgpe3RoaXMuYj1sLmdyZWNhcHRjaGE/MS8wOjAsdGhpcy5mPW51bGwsdGhpcy5hPSJfX3JjYiIrTWF0aC5mbG9vcigxZTYqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoKX12YXIgd2w9bmV3IHB0KHl0LCJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanM/b25sb2FkPSV7b25sb2FkfSZyZW5kZXI9ZXhwbGljaXQmaGw9JXtobH0iKSxfbD1uZXcgUnIoM2U0LDZlNCk7YmwucHJvdG90eXBlLmc9ZnVuY3Rpb24oaSl7dmFyIG89dGhpcztyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKHQsZSl7dmFyIHI9c2V0VGltZW91dChmdW5jdGlvbigpe2UobmV3IEkoIm5ldHdvcmstcmVxdWVzdC1mYWlsZWQiKSl9LF9sLmdldCgpKTshbC5ncmVjYXB0Y2hhfHxpIT09by5mJiYhby5iPyhsW28uYV09ZnVuY3Rpb24oKXt2YXIgbjtsLmdyZWNhcHRjaGE/KG8uZj1pLG49bC5ncmVjYXB0Y2hhLnJlbmRlcixsLmdyZWNhcHRjaGEucmVuZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9bih0LGUpLG8uYisrLHR9LGNsZWFyVGltZW91dChyKSx0KGwuZ3JlY2FwdGNoYSkpOihjbGVhclRpbWVvdXQociksZShuZXcgSSgiaW50ZXJuYWwtZXJyb3IiKSkpLGRlbGV0ZSBsW28uYV19LGJlKERzKF90KHdsLHtvbmxvYWQ6by5hLGhsOml8fCIifSkpKS5vKGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHIpLGUobmV3IEkoImludGVybmFsLWVycm9yIiwiVW5hYmxlIHRvIGxvYWQgZXh0ZXJuYWwgcmVDQVBUQ0hBIGRlcGVuZGVuY2llcyEiKSl9KSk6KGNsZWFyVGltZW91dChyKSx0KGwuZ3JlY2FwdGNoYSkpfSl9LGJsLnByb3RvdHlwZS5jPWZ1bmN0aW9uKCl7dGhpcy5iLS19O3ZhciBJbD1udWxsO2Z1bmN0aW9uIFRsKHQsZSxuLHIsaSxvLHMpe2lmKGpyKHRoaXMsInR5cGUiLCJyZWNhcHRjaGEiKSx0aGlzLmM9dGhpcy5mPW51bGwsdGhpcy5EPSExLHRoaXMudj1lLHRoaXMuZz1udWxsLHM9cz9tbD1tbHx8bmV3IHlsOklsPUlsfHxuZXcgYmwsdGhpcy5tPXMsdGhpcy5hPW58fHt0aGVtZToibGlnaHQiLHR5cGU6ImltYWdlIn0sdGhpcy5oPVtdLHRoaXMuYVtDbF0pdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwic2l0ZWtleSBzaG91bGQgbm90IGJlIHByb3ZpZGVkIGZvciByZUNBUFRDSEEgYXMgb25lIGlzIGF1dG9tYXRpY2FsbHkgcHJvdmlzaW9uZWQgZm9yIHRoZSBjdXJyZW50IHByb2plY3QuIik7aWYodGhpcy5pPSJpbnZpc2libGUiPT09dGhpcy5hW05sXSwhbC5kb2N1bWVudCl0aHJvdyBuZXcgSSgib3BlcmF0aW9uLW5vdC1zdXBwb3J0ZWQtaW4tdGhpcy1lbnZpcm9ubWVudCIsIlJlY2FwdGNoYVZlcmlmaWVyIGlzIG9ubHkgc3VwcG9ydGVkIGluIGEgYnJvd3NlciBIVFRQL0hUVFBTIGVudmlyb25tZW50IHdpdGggRE9NIHN1cHBvcnQuIik7aWYoIXRlKGUpfHwhdGhpcy5pJiZ0ZShlKS5oYXNDaGlsZE5vZGVzKCkpdGhyb3cgbmV3IEkoImFyZ3VtZW50LWVycm9yIiwicmVDQVBUQ0hBIGNvbnRhaW5lciBpcyBlaXRoZXIgbm90IGZvdW5kIG9yIGFscmVhZHkgY29udGFpbnMgaW5uZXIgZWxlbWVudHMhIik7dGhpcy5zPW5ldyBxcyh0LG98fG51bGwsaXx8bnVsbCksdGhpcy51PXJ8fGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O3ZhciBhPXRoaXM7dGhpcy5sPVtdO3ZhciB1PXRoaXMuYVtFbF07dGhpcy5hW0VsXT1mdW5jdGlvbih0KXt2YXIgZTtBbChhLHQpLCJmdW5jdGlvbiI9PXR5cGVvZiB1P3UodCk6InN0cmluZyIhPXR5cGVvZiB1fHwiZnVuY3Rpb24iPT10eXBlb2YoZT1tcih1LGwpKSYmZSh0KX07dmFyIGM9dGhpcy5hW1NsXTt0aGlzLmFbU2xdPWZ1bmN0aW9uKCl7dmFyIHQ7QWwoYSxudWxsKSwiZnVuY3Rpb24iPT10eXBlb2YgYz9jKCk6InN0cmluZyIhPXR5cGVvZiBjfHwiZnVuY3Rpb24iPT10eXBlb2YodD1tcihjLGwpKSYmdCgpfX12YXIgRWw9ImNhbGxiYWNrIixTbD0iZXhwaXJlZC1jYWxsYmFjayIsQ2w9InNpdGVrZXkiLE5sPSJzaXplIjtmdW5jdGlvbiBBbCh0LGUpe2Zvcih2YXIgbj0wO248dC5sLmxlbmd0aDtuKyspdHJ5e3QubFtuXShlKX1jYXRjaCh0KXt9fWZ1bmN0aW9uIGtsKHQsZSl7cmV0dXJuIHQuaC5wdXNoKGUpLGUub2EoZnVuY3Rpb24oKXtXKHQuaCxlKX0pLGV9ZnVuY3Rpb24gUmwodCl7aWYodC5EKXRocm93IG5ldyBJKCJpbnRlcm5hbC1lcnJvciIsIlJlY2FwdGNoYVZlcmlmaWVyIGluc3RhbmNlIGhhcyBiZWVuIGRlc3Ryb3llZC4iKX1mdW5jdGlvbiBQbCh0LGUsbil7dmFyIHI9ITE7dHJ5e3RoaXMuYj1ufHxYbC5hcHAoKX1jYXRjaCh0KXt0aHJvdyBuZXcgSSgiYXJndW1lbnQtZXJyb3IiLCJObyBmaXJlYmFzZS5hcHAuQXBwIGluc3RhbmNlIGlzIGN1cnJlbnRseSBpbml0aWFsaXplZC4iKX1pZighdGhpcy5iLm9wdGlvbnN8fCF0aGlzLmIub3B0aW9ucy5hcGlLZXkpdGhyb3cgbmV3IEkoImludmFsaWQtYXBpLWtleSIpO249dGhpcy5iLm9wdGlvbnMuYXBpS2V5O3ZhciBpPXRoaXMsbz1udWxsO3RyeXtvPXRoaXMuYi5hdXRoKCkuR2EoKX1jYXRjaCh0KXt9dHJ5e3I9dGhpcy5iLmF1dGgoKS5zZXR0aW5ncy5hcHBWZXJpZmljYXRpb25EaXNhYmxlZEZvclRlc3Rpbmd9Y2F0Y2godCl7fW89WGwuU0RLX1ZFUlNJT04/Z3IoWGwuU0RLX1ZFUlNJT04sbyk6bnVsbCxUbC5jYWxsKHRoaXMsbix0LGUsZnVuY3Rpb24oKXt0cnl7dmFyIGU9aS5iLmF1dGgoKS5sYSgpfWNhdGNoKHQpe2U9bnVsbH1yZXR1cm4gZX0sbyxBKEUpLHIpfWZ1bmN0aW9uIE9sKHQsZSxuLHIpe3Q6e249QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobik7Zm9yKHZhciBpPTAsbz0hMSxzPTA7czxlLmxlbmd0aDtzKyspaWYoZVtzXS5vcHRpb25hbClvPSEwO2Vsc2V7aWYobyl0aHJvdyBuZXcgSSgiaW50ZXJuYWwtZXJyb3IiLCJBcmd1bWVudCB2YWxpZGF0b3IgZW5jb3VudGVyZWQgYSByZXF1aXJlZCBhcmd1bWVudCBhZnRlciBhbiBvcHRpb25hbCBhcmd1bWVudC4iKTtpKyt9aWYobz1lLmxlbmd0aCxuLmxlbmd0aDxpfHxvPG4ubGVuZ3RoKXI9IkV4cGVjdGVkICIrKGk9PW8/MT09aT8iMSBhcmd1bWVudCI6aSsiIGFyZ3VtZW50cyI6aSsiLSIrbysiIGFyZ3VtZW50cyIpKyIgYnV0IGdvdCAiK24ubGVuZ3RoKyIuIjtlbHNle2ZvcihpPTA7aTxuLmxlbmd0aDtpKyspaWYobz1lW2ldLm9wdGlvbmFsJiZ2b2lkIDA9PT1uW2ldLCFlW2ldLk0obltpXSkmJiFvKXtpZihlPWVbaV0saTwwfHxpPj1EbC5sZW5ndGgpdGhyb3cgbmV3IEkoImludGVybmFsLWVycm9yIiwiQXJndW1lbnQgdmFsaWRhdG9yIHJlY2VpdmVkIGFuIHVuc3VwcG9ydGVkIG51bWJlciBvZiBhcmd1bWVudHMuIik7bj1EbFtpXSxyPShyPyIiOm4rIiBhcmd1bWVudCAiKSsoZS5uYW1lPyciJytlLm5hbWUrJyIgJzoiIikrIm11c3QgYmUgIitlLksrIi4iO2JyZWFrIHR9cj1udWxsfX1pZihyKXRocm93IG5ldyBJKCJhcmd1bWVudC1lcnJvciIsdCsiIGZhaWxlZDogIityKX0odD1UbC5wcm90b3R5cGUpLklhPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5mfHwodGhpcy5mPWtsKHRoaXMsYmUoKS50aGVuKGZ1bmN0aW9uKCl7aWYoX3IoKSYmIWNyKCkpcmV0dXJuIHNyKCk7dGhyb3cgbmV3IEkoIm9wZXJhdGlvbi1ub3Qtc3VwcG9ydGVkLWluLXRoaXMtZW52aXJvbm1lbnQiLCJSZWNhcHRjaGFWZXJpZmllciBpcyBvbmx5IHN1cHBvcnRlZCBpbiBhIGJyb3dzZXIgSFRUUC9IVFRQUyBlbnZpcm9ubWVudC4iKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tLmcoZS51KCkpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZS5nPXQsemEoZS5zLFJhLHt9KX0pLnRoZW4oZnVuY3Rpb24odCl7ZS5hW0NsXT10LnJlY2FwdGNoYVNpdGVLZXl9KS5vKGZ1bmN0aW9uKHQpe3Rocm93IGUuZj1udWxsLHR9KSkpfSx0LnJlbmRlcj1mdW5jdGlvbigpe1JsKHRoaXMpO3ZhciBuPXRoaXM7cmV0dXJuIGtsKHRoaXMsdGhpcy5JYSgpLnRoZW4oZnVuY3Rpb24oKXt2YXIgdCxlO3JldHVybiBudWxsPT09bi5jJiYoZT1uLnYsbi5pfHwodD10ZShlKSxlPW9lKCJESVYiKSx0LmFwcGVuZENoaWxkKGUpKSxuLmM9bi5nLnJlbmRlcihlLG4uYSkpLG4uY30pKX0sdC52ZXJpZnk9ZnVuY3Rpb24oKXtSbCh0aGlzKTt2YXIgaT10aGlzO3JldHVybiBrbCh0aGlzLHRoaXMucmVuZGVyKCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGZlKGZ1bmN0aW9uKG4pe3ZhciByLHQ9aS5nLmdldFJlc3BvbnNlKGUpO3Q/bih0KToocj1mdW5jdGlvbih0KXt2YXIgZTt0JiYoZT1yLEgoaS5sLGZ1bmN0aW9uKHQpe3JldHVybiB0PT1lfSksbih0KSl9LGkubC5wdXNoKHIpLGkuaSYmaS5nLmV4ZWN1dGUoaS5jKSl9KX0pKX0sdC5yZXNldD1mdW5jdGlvbigpe1JsKHRoaXMpLG51bGwhPT10aGlzLmMmJnRoaXMuZy5yZXNldCh0aGlzLmMpfSx0LmNsZWFyPWZ1bmN0aW9uKCl7UmwodGhpcyksdGhpcy5EPSEwLHRoaXMubS5jKCk7Zm9yKHZhciB0LGU9MDtlPHRoaXMuaC5sZW5ndGg7ZSsrKXRoaXMuaFtlXS5jYW5jZWwoIlJlY2FwdGNoYVZlcmlmaWVyIGluc3RhbmNlIGhhcyBiZWVuIGRlc3Ryb3llZC4iKTtpZighdGhpcy5pKXtlPXRlKHRoaXMudik7Zm9yKDt0PWUuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZCh0KX19LHcoUGwsVGwpO3ZhciBEbD0iRmlyc3QgU2Vjb25kIFRoaXJkIEZvdXJ0aCBGaWZ0aCBTaXh0aCBTZXZlbnRoIEVpZ2h0aCBOaW50aCIuc3BsaXQoIiAiKTtmdW5jdGlvbiB4bCh0LGUpe3JldHVybntuYW1lOnR8fCIiLEs6ImEgdmFsaWQgc3RyaW5nIixvcHRpb25hbDohIWUsTTpmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9fX1mdW5jdGlvbiBMbCh0LGUpe3JldHVybntuYW1lOnR8fCIiLEs6ImEgYm9vbGVhbiIsb3B0aW9uYWw6ISFlLE06ZnVuY3Rpb24odCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdH19fWZ1bmN0aW9uIE1sKHQsZSl7cmV0dXJue25hbWU6dHx8IiIsSzoiYSB2YWxpZCBvYmplY3QiLG9wdGlvbmFsOiEhZSxNOmd9fWZ1bmN0aW9uIEZsKHQsZSl7cmV0dXJue25hbWU6dHx8IiIsSzoiYSBmdW5jdGlvbiIsb3B0aW9uYWw6ISFlLE06ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9fX1mdW5jdGlvbiBVbCh0LGUpe3JldHVybntuYW1lOnR8fCIiLEs6Im51bGwiLG9wdGlvbmFsOiEhZSxNOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dH19fWZ1bmN0aW9uIGpsKG4pe3JldHVybntuYW1lOm4/bisiQ3JlZGVudGlhbCI6ImNyZWRlbnRpYWwiLEs6bj8iYSB2YWxpZCAiK24rIiBjcmVkZW50aWFsIjoiYSB2YWxpZCBjcmVkZW50aWFsIixvcHRpb25hbDohMSxNOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3ZhciBlPSFufHx0LnByb3ZpZGVySWQ9PT1uO3JldHVybiEoIXQua2F8fCFlKX19fWZ1bmN0aW9uIHFsKCl7cmV0dXJue25hbWU6Im11bHRpRmFjdG9yQXNzZXJ0aW9uIixLOiJhIHZhbGlkIG11bHRpRmFjdG9yQXNzZXJ0aW9uIixvcHRpb25hbDohMSxNOmZ1bmN0aW9uKHQpe3JldHVybiEhdCYmISF0LnNifX19ZnVuY3Rpb24gVmwoKXtyZXR1cm57bmFtZToiYXV0aFByb3ZpZGVyIixLOiJhIHZhbGlkIEF1dGggcHJvdmlkZXIiLG9wdGlvbmFsOiExLE06ZnVuY3Rpb24odCl7cmV0dXJuISEodCYmdC5wcm92aWRlcklkJiZ0Lmhhc093blByb3BlcnR5JiZ0Lmhhc093blByb3BlcnR5KCJpc09BdXRoUHJvdmlkZXIiKSl9fX1mdW5jdGlvbiBCbCh0LGUpe3JldHVybiBnKHQpJiYic3RyaW5nIj09dHlwZW9mIHQudHlwZSYmdC50eXBlPT09ZSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuSGF9ZnVuY3Rpb24gS2wodCl7cmV0dXJuIGcodCkmJiJzdHJpbmciPT10eXBlb2YgdC51aWR9ZnVuY3Rpb24gV2woKXtyZXR1cm57bmFtZToiYXBwbGljYXRpb25WZXJpZmllciIsSzoiYW4gaW1wbGVtZW50YXRpb24gb2YgZmlyZWJhc2UuYXV0aC5BcHBsaWNhdGlvblZlcmlmaWVyIixvcHRpb25hbDohMSxNOmZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCJzdHJpbmciIT10eXBlb2YgdC50eXBlfHwiZnVuY3Rpb24iIT10eXBlb2YgdC52ZXJpZnkpfX19ZnVuY3Rpb24gSGwoZSxuLHQscil7cmV0dXJue25hbWU6dHx8IiIsSzplLksrIiBvciAiK24uSyxvcHRpb25hbDohIXIsTTpmdW5jdGlvbih0KXtyZXR1cm4gZS5NKHQpfHxuLk0odCl9fX1mdW5jdGlvbiBHbCh0LGUpe2Zvcih2YXIgbiBpbiBlKXt2YXIgcj1lW25dLm5hbWU7dFtyXT1ZbChyLHRbbl0sZVtuXS5qKX19ZnVuY3Rpb24gemwodCxlKXtmb3IodmFyIG4gaW4gZSl7dmFyIHI9ZVtuXS5uYW1lO3IhPT1uJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLHtnZXQ6YihmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1t0XX0sbiksc2V0OmIoZnVuY3Rpb24odCxlLG4scil7T2wodCxbbl0sW3JdLCEwKSx0aGlzW2VdPXJ9LHIsbixlW25dLmtiKSxlbnVtZXJhYmxlOiEwfSl9fWZ1bmN0aW9uIFFsKHQsZSxuLHIpe3RbZV09WWwoZSxuLHIpfWZ1bmN0aW9uIFlsKHQsZSxuKXtmdW5jdGlvbiByKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gT2wobyxuLHQpLGUuYXBwbHkodGhpcyx0KX1pZighbilyZXR1cm4gZTt2YXIgaSxvPSh0PSh0PXQpLnNwbGl0KCIuIikpW3QubGVuZ3RoLTFdO2ZvcihpIGluIGUpcltpXT1lW2ldO2ZvcihpIGluIGUucHJvdG90eXBlKXIucHJvdG90eXBlW2ldPWUucHJvdG90eXBlW2ldO3JldHVybiByfUdsKFhoLnByb3RvdHlwZSx7amI6e25hbWU6ImFwcGx5QWN0aW9uQ29kZSIsajpbeGwoImNvZGUiKV19LFJhOntuYW1lOiJjaGVja0FjdGlvbkNvZGUiLGo6W3hsKCJjb2RlIildfSxuYjp7bmFtZToiY29uZmlybVBhc3N3b3JkUmVzZXQiLGo6W3hsKCJjb2RlIikseGwoIm5ld1Bhc3N3b3JkIildfSxkYzp7bmFtZToiY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkIixqOlt4bCgiZW1haWwiKSx4bCgicGFzc3dvcmQiKV19LGhjOntuYW1lOiJmZXRjaFNpZ25Jbk1ldGhvZHNGb3JFbWFpbCIsajpbeGwoImVtYWlsIildfSxxYTp7bmFtZToiZ2V0UmVkaXJlY3RSZXN1bHQiLGo6W119LEJjOntuYW1lOiJpc1NpZ25JbldpdGhFbWFpbExpbmsiLGo6W3hsKCJlbWFpbExpbmsiKV19LEhjOntuYW1lOiJvbkF1dGhTdGF0ZUNoYW5nZWQiLGo6W0hsKE1sKCksRmwoKSwibmV4dE9yT2JzZXJ2ZXIiKSxGbCgib3B0X2Vycm9yIiwhMCksRmwoIm9wdF9jb21wbGV0ZWQiLCEwKV19LEljOntuYW1lOiJvbklkVG9rZW5DaGFuZ2VkIixqOltIbChNbCgpLEZsKCksIm5leHRPck9ic2VydmVyIiksRmwoIm9wdF9lcnJvciIsITApLEZsKCJvcHRfY29tcGxldGVkIiwhMCldfSx2Yjp7bmFtZToic2VuZFBhc3N3b3JkUmVzZXRFbWFpbCIsajpbeGwoImVtYWlsIiksSGwoTWwoIm9wdF9hY3Rpb25Db2RlU2V0dGluZ3MiLCEwKSxVbChudWxsLCEwKSwib3B0X2FjdGlvbkNvZGVTZXR0aW5ncyIsITApXX0sd2I6e25hbWU6InNlbmRTaWduSW5MaW5rVG9FbWFpbCIsajpbeGwoImVtYWlsIiksTWwoImFjdGlvbkNvZGVTZXR0aW5ncyIpXX0seGI6e25hbWU6InNldFBlcnNpc3RlbmNlIixqOlt4bCgicGVyc2lzdGVuY2UiKV19LFNjOntuYW1lOiJzaWduSW5BbmRSZXRyaWV2ZURhdGFXaXRoQ3JlZGVudGlhbCIsajpbamwoKV19LHpiOntuYW1lOiJzaWduSW5Bbm9ueW1vdXNseSIsajpbXX0sJGE6e25hbWU6InNpZ25JbldpdGhDcmVkZW50aWFsIixqOltqbCgpXX0sVGM6e25hbWU6InNpZ25JbldpdGhDdXN0b21Ub2tlbiIsajpbeGwoInRva2VuIildfSxVYzp7bmFtZToic2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQiLGo6W3hsKCJlbWFpbCIpLHhsKCJwYXNzd29yZCIpXX0sVmM6e25hbWU6InNpZ25JbldpdGhFbWFpbExpbmsiLGo6W3hsKCJlbWFpbCIpLHhsKCJlbWFpbExpbmsiLCEwKV19LFdjOntuYW1lOiJzaWduSW5XaXRoUGhvbmVOdW1iZXIiLGo6W3hsKCJwaG9uZU51bWJlciIpLFdsKCldfSxYYzp7bmFtZToic2lnbkluV2l0aFBvcHVwIixqOltWbCgpXX0sWWM6e25hbWU6InNpZ25JbldpdGhSZWRpcmVjdCIsajpbVmwoKV19LGRkOntuYW1lOiJ1cGRhdGVDdXJyZW50VXNlciIsajpbSGwoe25hbWU6InVzZXIiLEs6ImFuIGluc3RhbmNlIG9mIEZpcmViYXNlIFVzZXIiLG9wdGlvbmFsOiExLE06ZnVuY3Rpb24odCl7cmV0dXJuISEodCYmdCBpbnN0YW5jZW9mIGhoKX19LFVsKCksInVzZXIiKV19LEFiOntuYW1lOiJzaWduT3V0IixqOltdfSx0b0pTT046e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfSxmZDp7bmFtZToidXNlRGV2aWNlTGFuZ3VhZ2UiLGo6W119LGdkOntuYW1lOiJ1c2VFbXVsYXRvciIsajpbeGwoInVybCIpLE1sKCJvcHRpb25zIiwhMCldfSxqZDp7bmFtZToidmVyaWZ5UGFzc3dvcmRSZXNldENvZGUiLGo6W3hsKCJjb2RlIildfX0pLHpsKFhoLnByb3RvdHlwZSx7bGM6e25hbWU6Imxhbmd1YWdlQ29kZSIsa2I6SGwoeGwoKSxVbCgpLCJsYW5ndWFnZUNvZGUiKX0sdGk6e25hbWU6InRlbmFudElkIixrYjpIbCh4bCgpLFVsKCksInRlbmFudElkIil9fSksKFhoLlBlcnNpc3RlbmNlPUt1KS5MT0NBTD0ibG9jYWwiLFhoLlBlcnNpc3RlbmNlLlNFU1NJT049InNlc3Npb24iLFhoLlBlcnNpc3RlbmNlLk5PTkU9Im5vbmUiLEdsKGhoLnByb3RvdHlwZSx7ZGVsZXRlOntuYW1lOiJkZWxldGUiLGo6W119LG9jOntuYW1lOiJnZXRJZFRva2VuUmVzdWx0IixqOltMbCgib3B0X2ZvcmNlUmVmcmVzaCIsITApXX0sSTp7bmFtZToiZ2V0SWRUb2tlbiIsajpbTGwoIm9wdF9mb3JjZVJlZnJlc2giLCEwKV19LENjOntuYW1lOiJsaW5rQW5kUmV0cmlldmVEYXRhV2l0aENyZWRlbnRpYWwiLGo6W2psKCldfSxxYjp7bmFtZToibGlua1dpdGhDcmVkZW50aWFsIixqOltqbCgpXX0sRGM6e25hbWU6ImxpbmtXaXRoUGhvbmVOdW1iZXIiLGo6W3hsKCJwaG9uZU51bWJlciIpLFdsKCldfSxFYzp7bmFtZToibGlua1dpdGhQb3B1cCIsajpbVmwoKV19LEZjOntuYW1lOiJsaW5rV2l0aFJlZGlyZWN0IixqOltWbCgpXX0sTGM6e25hbWU6InJlYXV0aGVudGljYXRlQW5kUmV0cmlldmVEYXRhV2l0aENyZWRlbnRpYWwiLGo6W2psKCldfSx0Yjp7bmFtZToicmVhdXRoZW50aWNhdGVXaXRoQ3JlZGVudGlhbCIsajpbamwoKV19LE1jOntuYW1lOiJyZWF1dGhlbnRpY2F0ZVdpdGhQaG9uZU51bWJlciIsajpbeGwoInBob25lTnVtYmVyIiksV2woKV19LE5jOntuYW1lOiJyZWF1dGhlbnRpY2F0ZVdpdGhQb3B1cCIsajpbVmwoKV19LE9jOntuYW1lOiJyZWF1dGhlbnRpY2F0ZVdpdGhSZWRpcmVjdCIsajpbVmwoKV19LHJlbG9hZDp7bmFtZToicmVsb2FkIixqOltdfSx1Yjp7bmFtZToic2VuZEVtYWlsVmVyaWZpY2F0aW9uIixqOltIbChNbCgib3B0X2FjdGlvbkNvZGVTZXR0aW5ncyIsITApLFVsKG51bGwsITApLCJvcHRfYWN0aW9uQ29kZVNldHRpbmdzIiwhMCldfSx0b0pTT046e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfSxjZDp7bmFtZToidW5saW5rIixqOlt4bCgicHJvdmlkZXIiKV19LEJiOntuYW1lOiJ1cGRhdGVFbWFpbCIsajpbeGwoImVtYWlsIildfSxDYjp7bmFtZToidXBkYXRlUGFzc3dvcmQiLGo6W3hsKCJwYXNzd29yZCIpXX0sZWQ6e25hbWU6InVwZGF0ZVBob25lTnVtYmVyIixqOltqbCgicGhvbmUiKV19LERiOntuYW1lOiJ1cGRhdGVQcm9maWxlIixqOltNbCgicHJvZmlsZSIpXX0sRWI6e25hbWU6InZlcmlmeUJlZm9yZVVwZGF0ZUVtYWlsIixqOlt4bCgiZW1haWwiKSxIbChNbCgib3B0X2FjdGlvbkNvZGVTZXR0aW5ncyIsITApLFVsKG51bGwsITApLCJvcHRfYWN0aW9uQ29kZVNldHRpbmdzIiwhMCldfX0pLEdsKGhsLnByb3RvdHlwZSx7ZXhlY3V0ZTp7bmFtZToiZXhlY3V0ZSJ9LHJlbmRlcjp7bmFtZToicmVuZGVyIn0scmVzZXQ6e25hbWU6InJlc2V0In0sZ2V0UmVzcG9uc2U6e25hbWU6ImdldFJlc3BvbnNlIn19KSxHbChjbC5wcm90b3R5cGUse2V4ZWN1dGU6e25hbWU6ImV4ZWN1dGUifSxyZW5kZXI6e25hbWU6InJlbmRlciJ9LHJlc2V0OntuYW1lOiJyZXNldCJ9LGdldFJlc3BvbnNlOntuYW1lOiJnZXRSZXNwb25zZSJ9fSksR2woZmUucHJvdG90eXBlLHtvYTp7bmFtZToiZmluYWxseSJ9LG86e25hbWU6ImNhdGNoIn0sdGhlbjp7bmFtZToidGhlbiJ9fSksemwoVmMucHJvdG90eXBlLHthcHBWZXJpZmljYXRpb25EaXNhYmxlZDp7bmFtZToiYXBwVmVyaWZpY2F0aW9uRGlzYWJsZWRGb3JUZXN0aW5nIixrYjpMbCgiYXBwVmVyaWZpY2F0aW9uRGlzYWJsZWRGb3JUZXN0aW5nIil9fSksR2woQmMucHJvdG90eXBlLHtjb25maXJtOntuYW1lOiJjb25maXJtIixqOlt4bCgidmVyaWZpY2F0aW9uQ29kZSIpXX19KSxRbCgkaSwiZnJvbUpTT04iLGZ1bmN0aW9uKHQpe3Q9InN0cmluZyI9PXR5cGVvZiB0P0pTT04ucGFyc2UodCk6dDtmb3IodmFyIGUsbj1bb28sYm8sRW8sbm9dLHI9MDtyPG4ubGVuZ3RoO3IrKylpZihlPW5bcl0odCkpcmV0dXJuIGU7cmV0dXJuIG51bGx9LFtIbCh4bCgpLE1sKCksImpzb24iKV0pLFFsKHdvLCJjcmVkZW50aWFsIixmdW5jdGlvbih0LGUpe3JldHVybiBuZXcgbW8odCxlKX0sW3hsKCJlbWFpbCIpLHhsKCJwYXNzd29yZCIpXSksR2wobW8ucHJvdG90eXBlLHt3OntuYW1lOiJ0b0pTT04iLGo6W3hsKG51bGwsITApXX19KSxHbChjby5wcm90b3R5cGUse0NhOntuYW1lOiJhZGRTY29wZSIsajpbeGwoInNjb3BlIildfSxLYTp7bmFtZToic2V0Q3VzdG9tUGFyYW1ldGVycyIsajpbTWwoImN1c3RvbU9BdXRoUGFyYW1ldGVycyIpXX19KSxRbChjbywiY3JlZGVudGlhbCIsaG8sW0hsKHhsKCksTWwoKSwidG9rZW4iKV0pLFFsKHdvLCJjcmVkZW50aWFsV2l0aExpbmsiLF9vLFt4bCgiZW1haWwiKSx4bCgiZW1haWxMaW5rIildKSxHbChsby5wcm90b3R5cGUse0NhOntuYW1lOiJhZGRTY29wZSIsajpbeGwoInNjb3BlIildfSxLYTp7bmFtZToic2V0Q3VzdG9tUGFyYW1ldGVycyIsajpbTWwoImN1c3RvbU9BdXRoUGFyYW1ldGVycyIpXX19KSxRbChsbywiY3JlZGVudGlhbCIsZm8sW0hsKHhsKCksTWwoKSwidG9rZW4iKV0pLEdsKHBvLnByb3RvdHlwZSx7Q2E6e25hbWU6ImFkZFNjb3BlIixqOlt4bCgic2NvcGUiKV19LEthOntuYW1lOiJzZXRDdXN0b21QYXJhbWV0ZXJzIixqOltNbCgiY3VzdG9tT0F1dGhQYXJhbWV0ZXJzIildfX0pLFFsKHBvLCJjcmVkZW50aWFsIix2byxbSGwoeGwoKSxIbChNbCgpLFVsKCkpLCJpZFRva2VuIiksSGwoeGwoKSxVbCgpLCJhY2Nlc3NUb2tlbiIsITApXSksR2woZ28ucHJvdG90eXBlLHtLYTp7bmFtZToic2V0Q3VzdG9tUGFyYW1ldGVycyIsajpbTWwoImN1c3RvbU9BdXRoUGFyYW1ldGVycyIpXX19KSxRbChnbywiY3JlZGVudGlhbCIseW8sW0hsKHhsKCksTWwoKSwidG9rZW4iKSx4bCgic2VjcmV0IiwhMCldKSxHbCh1by5wcm90b3R5cGUse0NhOntuYW1lOiJhZGRTY29wZSIsajpbeGwoInNjb3BlIildfSxjcmVkZW50aWFsOntuYW1lOiJjcmVkZW50aWFsIixqOltIbCh4bCgpLEhsKE1sKCksVWwoKSksIm9wdGlvbnNPcklkVG9rZW4iKSxIbCh4bCgpLFVsKCksImFjY2Vzc1Rva2VuIiwhMCldfSxLYTp7bmFtZToic2V0Q3VzdG9tUGFyYW1ldGVycyIsajpbTWwoImN1c3RvbU9BdXRoUGFyYW1ldGVycyIpXX19KSxHbChyby5wcm90b3R5cGUse3c6e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfX0pLEdsKHRvLnByb3RvdHlwZSx7dzp7bmFtZToidG9KU09OIixqOlt4bChudWxsLCEwKV19fSksUWwoQ28sImNyZWRlbnRpYWwiLE5vLFt4bCgidmVyaWZpY2F0aW9uSWQiKSx4bCgidmVyaWZpY2F0aW9uQ29kZSIpXSksR2woQ28ucHJvdG90eXBlLHtmYjp7bmFtZToidmVyaWZ5UGhvbmVOdW1iZXIiLGo6W0hsKHhsKCkse25hbWU6InBob25lSW5mb09wdGlvbnMiLEs6InZhbGlkIHBob25lIGluZm8gb3B0aW9ucyIsb3B0aW9uYWw6ITEsTTpmdW5jdGlvbih0KXtyZXR1cm4hIXQmJih0LnNlc3Npb24mJnQucGhvbmVOdW1iZXI/QmwodC5zZXNzaW9uLFhpKSYmInN0cmluZyI9PXR5cGVvZiB0LnBob25lTnVtYmVyOnQuc2Vzc2lvbiYmdC5tdWx0aUZhY3RvckhpbnQ/QmwodC5zZXNzaW9uLEppKSYmS2wodC5tdWx0aUZhY3RvckhpbnQpOnQuc2Vzc2lvbiYmdC5tdWx0aUZhY3RvclVpZD9CbCh0LnNlc3Npb24sSmkpJiYic3RyaW5nIj09dHlwZW9mIHQubXVsdGlGYWN0b3JVaWQ6ISF0LnBob25lTnVtYmVyJiYic3RyaW5nIj09dHlwZW9mIHQucGhvbmVOdW1iZXIpfX0sInBob25lSW5mb09wdGlvbnMiKSxXbCgpXX19KSxHbChUby5wcm90b3R5cGUse3c6e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfX0pLEdsKEkucHJvdG90eXBlLHt0b0pTT046e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfX0pLEdsKE1vLnByb3RvdHlwZSx7dG9KU09OOntuYW1lOiJ0b0pTT04iLGo6W3hsKG51bGwsITApXX19KSxHbChMby5wcm90b3R5cGUse3RvSlNPTjp7bmFtZToidG9KU09OIixqOlt4bChudWxsLCEwKV19fSksR2woUWMucHJvdG90eXBlLHt0b0pTT046e25hbWU6InRvSlNPTiIsajpbeGwobnVsbCwhMCldfX0pLEdsKEhjLnByb3RvdHlwZSx7UmM6e25hbWU6InJlc29sdmVTaWduSW4iLGo6W3FsKCldfX0pLEdsKHRoLnByb3RvdHlwZSx7UmI6e25hbWU6ImdldFNlc3Npb24iLGo6W119LGZjOntuYW1lOiJlbnJvbGwiLGo6W3FsKCkseGwoImRpc3BsYXlOYW1lIiwhMCldfSxiZDp7bmFtZToidW5lbnJvbGwiLGo6W0hsKHtuYW1lOiJtdWx0aUZhY3RvckluZm8iLEs6ImEgdmFsaWQgbXVsdGlGYWN0b3JJbmZvIixvcHRpb25hbDohMSxNOktsfSx4bCgpLCJtdWx0aUZhY3RvckluZm9JZGVudGlmaWVyIildfX0pLEdsKFBsLnByb3RvdHlwZSx7Y2xlYXI6e25hbWU6ImNsZWFyIixqOltdfSxyZW5kZXI6e25hbWU6InJlbmRlciIsajpbXX0sdmVyaWZ5OntuYW1lOiJ2ZXJpZnkiLGo6W119fSksUWwoaGksInBhcnNlTGluayIsbWksW3hsKCJsaW5rIildKSxRbChnbCwiYXNzZXJ0aW9uIixmdW5jdGlvbih0KXtyZXR1cm4gbmV3ICRjKHQpfSxbamwoInBob25lIildKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PVhsfHwhWGwuSU5URVJOQUx8fCFYbC5JTlRFUk5BTC5yZWdpc3RlckNvbXBvbmVudCl0aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgdGhlIGZpcmViYXNlIG5hbWVzcGFjZTsgYmUgc3VyZSB0byBpbmNsdWRlIGZpcmViYXNlLWFwcC5qcyBiZWZvcmUgdGhpcyBsaWJyYXJ5LiIpO3ZhciB0PXtBY3Rpb25Db2RlSW5mbzp7T3BlcmF0aW9uOntFTUFJTF9TSUdOSU46JHIsUEFTU1dPUkRfUkVTRVQ6IlBBU1NXT1JEX1JFU0VUIixSRUNPVkVSX0VNQUlMOiJSRUNPVkVSX0VNQUlMIixSRVZFUlRfU0VDT05EX0ZBQ1RPUl9BRERJVElPTjpKcixWRVJJRllfQU5EX0NIQU5HRV9FTUFJTDpacixWRVJJRllfRU1BSUw6IlZFUklGWV9FTUFJTCJ9fSxBdXRoOlhoLEF1dGhDcmVkZW50aWFsOiRpLEVycm9yOkl9O1FsKHQsIkVtYWlsQXV0aFByb3ZpZGVyIix3byxbXSksUWwodCwiRmFjZWJvb2tBdXRoUHJvdmlkZXIiLGNvLFtdKSxRbCh0LCJHaXRodWJBdXRoUHJvdmlkZXIiLGxvLFtdKSxRbCh0LCJHb29nbGVBdXRoUHJvdmlkZXIiLHBvLFtdKSxRbCh0LCJUd2l0dGVyQXV0aFByb3ZpZGVyIixnbyxbXSksUWwodCwiT0F1dGhQcm92aWRlciIsdW8sW3hsKCJwcm92aWRlcklkIildKSxRbCh0LCJTQU1MQXV0aFByb3ZpZGVyIixhbyxbeGwoInByb3ZpZGVySWQiKV0pLFFsKHQsIlBob25lQXV0aFByb3ZpZGVyIixDbyxbe25hbWU6ImF1dGgiLEs6ImFuIGluc3RhbmNlIG9mIEZpcmViYXNlIEF1dGgiLG9wdGlvbmFsOiEwLE06ZnVuY3Rpb24odCl7cmV0dXJuISEodCYmdCBpbnN0YW5jZW9mIFhoKX19XSksUWwodCwiUmVjYXB0Y2hhVmVyaWZpZXIiLFBsLFtIbCh4bCgpLHtuYW1lOiIiLEs6ImFuIEhUTUwgZWxlbWVudCIsb3B0aW9uYWw6ITEsTTpmdW5jdGlvbih0KXtyZXR1cm4hISh0JiZ0IGluc3RhbmNlb2YgRWxlbWVudCl9fSwicmVjYXB0Y2hhQ29udGFpbmVyIiksTWwoInJlY2FwdGNoYVBhcmFtZXRlcnMiLCEwKSx7bmFtZToiYXBwIixLOiJhbiBpbnN0YW5jZSBvZiBGaXJlYmFzZSBBcHAiLG9wdGlvbmFsOiEwLE06ZnVuY3Rpb24odCl7cmV0dXJuISEodCYmdCBpbnN0YW5jZW9mIFhsLmFwcC5BcHApfX1dKSxRbCh0LCJBY3Rpb25Db2RlVVJMIixoaSxbXSksUWwodCwiUGhvbmVNdWx0aUZhY3RvckdlbmVyYXRvciIsZ2wsW10pLFhsLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KHtuYW1lOiJhdXRoIixpbnN0YW5jZUZhY3Rvcnk6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBYaCh0PXQuZ2V0UHJvdmlkZXIoImFwcCIpLmdldEltbWVkaWF0ZSgpKX0sbXVsdGlwbGVJbnN0YW5jZXM6ITEsc2VydmljZVByb3BzOnQsaW5zdGFudGlhdGlvbk1vZGU6IkxBWlkiLHR5cGU6IlBVQkxJQyJ9KSxYbC5JTlRFUk5BTC5yZWdpc3RlckNvbXBvbmVudCh7bmFtZToiYXV0aC1pbnRlcm5hbCIsaW5zdGFuY2VGYWN0b3J5OmZ1bmN0aW9uKHQpe3JldHVybntnZXRVaWQ6bSgodD10LmdldFByb3ZpZGVyKCJhdXRoIikuZ2V0SW1tZWRpYXRlKCkpLmdldFVpZCx0KSxnZXRUb2tlbjptKHQubmMsdCksYWRkQXV0aFRva2VuTGlzdGVuZXI6bSh0LmNjLHQpLHJlbW92ZUF1dGhUb2tlbkxpc3RlbmVyOm0odC5QYyx0KX19LG11bHRpcGxlSW5zdGFuY2VzOiExLGluc3RhbnRpYXRpb25Nb2RlOiJMQVpZIix0eXBlOiJQUklWQVRFIn0pLFhsLnJlZ2lzdGVyVmVyc2lvbigiQGZpcmViYXNlL2F1dGgiLCIwLjE2LjQiKSxYbC5JTlRFUk5BTC5leHRlbmROYW1lc3BhY2Uoe1VzZXI6aGh9KX0oKX0uYXBwbHkoInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSk7dmFyIFBzPShPcy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7bnVsbD09ZT90aGlzLmRvbVN0b3JhZ2VfLnJlbW92ZUl0ZW0odGhpcy5wcmVmaXhlZE5hbWVfKHQpKTp0aGlzLmRvbVN0b3JhZ2VfLnNldEl0ZW0odGhpcy5wcmVmaXhlZE5hbWVfKHQpLFJvKGUpKX0sT3MucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt0PXRoaXMuZG9tU3RvcmFnZV8uZ2V0SXRlbSh0aGlzLnByZWZpeGVkTmFtZV8odCkpO3JldHVybiBudWxsPT10P251bGw6a28odCl9LE9zLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5kb21TdG9yYWdlXy5yZW1vdmVJdGVtKHRoaXMucHJlZml4ZWROYW1lXyh0KSl9LE9zLnByb3RvdHlwZS5wcmVmaXhlZE5hbWVfPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnByZWZpeF8rdH0sT3MucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tU3RvcmFnZV8udG9TdHJpbmcoKX0sT3MpO2Z1bmN0aW9uIE9zKHQpe3RoaXMuZG9tU3RvcmFnZV89dCx0aGlzLnByZWZpeF89ImZpcmViYXNlOiJ9dmFyIERzPSh4cy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7bnVsbD09ZT9kZWxldGUgdGhpcy5jYWNoZV9bdF06dGhpcy5jYWNoZV9bdF09ZX0seHMucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gT28odGhpcy5jYWNoZV8sdCk/dGhpcy5jYWNoZV9bdF06bnVsbH0seHMucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtkZWxldGUgdGhpcy5jYWNoZV9bdF19LHhzKTtmdW5jdGlvbiB4cygpe3RoaXMuY2FjaGVfPXt9LHRoaXMuaXNJbk1lbW9yeVN0b3JhZ2U9ITB9ZnVuY3Rpb24gTHModCl7dmFyIGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpLG89dC5jaGFyQ29kZUF0KHIpOzU1Mjk2PD1vJiZvPD01NjMxOSYmKGk9by01NTI5NixzbygrK3I8dC5sZW5ndGgsIlN1cnJvZ2F0ZSBwYWlyIG1pc3NpbmcgdHJhaWwgc3Vycm9nYXRlLiIpLG89NjU1MzYrKGk8PDEwKSsodC5jaGFyQ29kZUF0KHIpLTU2MzIwKSksbzwxMjg/ZVtuKytdPW86KG88MjA0OD9lW24rK109bz4+NnwxOTI6KG88NjU1MzY/ZVtuKytdPW8+PjEyfDIyNDooZVtuKytdPW8+PjE4fDI0MCxlW24rK109bz4+MTImNjN8MTI4KSxlW24rK109bz4+NiY2M3wxMjgpLGVbbisrXT02MyZvfDEyOCl9cmV0dXJuIGV9KHQpO3JldHVybih0PW5ldyBGbykudXBkYXRlKGUpLHQ9dC5kaWdlc3QoKSx1by5lbmNvZGVCeXRlQXJyYXkodCl9ZnVuY3Rpb24gTXModCxlKXtzbyghZXx8ITA9PT10fHwhMT09PXQsIkNhbid0IHR1cm4gb24gY3VzdG9tIGxvZ2dlcnMgcGVyc2lzdGVudGx5LiIpLCEwPT09dD8oSHMubG9nTGV2ZWw9YXMuVkVSQk9TRSxRcz1Icy5sb2cuYmluZChIcyksZSYmV3Muc2V0KCJsb2dnaW5nX2VuYWJsZWQiLCEwKSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/UXM9dDooUXM9bnVsbCxXcy5yZW1vdmUoImxvZ2dpbmdfZW5hYmxlZCIpKX1mdW5jdGlvbiBGcygpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj0iRklSRUJBU0UgSU5URVJOQUwgRVJST1I6ICIrenMuYXBwbHkodm9pZCAwLG5vKFtdLGVvKHQpKSk7SHMuZXJyb3Iobil9ZnVuY3Rpb24gVXModCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiYodCE9dHx8dD09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWXx8dD09PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSl9ZnVuY3Rpb24ganModCxlKXtyZXR1cm4gdD09PWU/MDp0PGU/LTE6MX1mdW5jdGlvbiBxcyh0LGUpe2lmKGUmJnQgaW4gZSlyZXR1cm4gZVt0XTt0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgcmVxdWlyZWQga2V5ICgiK3QrIikgaW4gb2JqZWN0OiAiK1JvKGUpKX1mdW5jdGlvbiBWcyh0LGUpe3ZhciBuPXQubGVuZ3RoO2lmKG48PWUpcmV0dXJuW3RdO2Zvcih2YXIgcj1bXSxpPTA7aTxuO2krPWUpbjxpK2U/ci5wdXNoKHQuc3Vic3RyaW5nKGksbikpOnIucHVzaCh0LnN1YnN0cmluZyhpLGkrZSkpO3JldHVybiByfXZhciBCcyxTbj1mdW5jdGlvbih0KXt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvd1t0XSl7dmFyIGU9d2luZG93W3RdO3JldHVybiBlLnNldEl0ZW0oImZpcmViYXNlOnNlbnRpbmVsIiwiY2FjaGUiKSxlLnJlbW92ZUl0ZW0oImZpcmViYXNlOnNlbnRpbmVsIiksbmV3IFBzKGUpfX1jYXRjaCh0KXt9cmV0dXJuIG5ldyBEc30sS3M9U24oImxvY2FsU3RvcmFnZSIpLFdzPVNuKCJzZXNzaW9uU3RvcmFnZSIpLEhzPW5ldyBwcygiQGZpcmViYXNlL2RhdGFiYXNlIiksR3M9KEJzPTEsZnVuY3Rpb24oKXtyZXR1cm4gQnMrK30pLHpzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj0iIixyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl07QXJyYXkuaXNBcnJheShpKXx8aSYmIm9iamVjdCI9PXR5cGVvZiBpJiYibnVtYmVyIj09dHlwZW9mIGkubGVuZ3RoP24rPXpzLmFwcGx5KG51bGwsaSk6bis9Im9iamVjdCI9PXR5cGVvZiBpP1JvKGkpOmksbis9IiAifXJldHVybiBufSxRcz1udWxsLFlzPSEwLFhzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07ITA9PT1ZcyYmKFlzPSExLG51bGw9PT1RcyYmITA9PT1Xcy5nZXQoImxvZ2dpbmdfZW5hYmxlZCIpJiZNcyghMCkpLFFzJiYodD16cy5hcHBseShudWxsLGUpLFFzKHQpKX0sSnM9ZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO1hzLmFwcGx5KHZvaWQgMCxubyhbbl0sZW8odCkpKX19LCRzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPSJGSVJFQkFTRSBGQVRBTCBFUlJPUjogIit6cy5hcHBseSh2b2lkIDAsbm8oW10sZW8odCkpKTt0aHJvdyBIcy5lcnJvcihuKSxuZXcgRXJyb3Iobil9LFpzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBuPSJGSVJFQkFTRSBXQVJOSU5HOiAiK3pzLmFwcGx5KHZvaWQgMCxubyhbXSxlbyh0KSkpO0hzLndhcm4obil9LHRhPSJbTUlOX05BTUVdIixlYT0iW01BWF9OQU1FXSIsbmE9ZnVuY3Rpb24odCxlKXtpZih0PT09ZSlyZXR1cm4gMDtpZih0PT09dGF8fGU9PT1lYSlyZXR1cm4tMTtpZihlPT09dGF8fHQ9PT1lYSlyZXR1cm4gMTt2YXIgbj1sYSh0KSxyPWxhKGUpO3JldHVybiBudWxsIT09bj9udWxsIT09cj9uLXI9PTA/dC5sZW5ndGgtZS5sZW5ndGg6bi1yOi0xOm51bGw9PT1yJiZ0PGU/LTE6MX0scmE9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4gUm8odCk7dmFyIGUsbj1bXTtmb3IoZSBpbiB0KW4ucHVzaChlKTtuLnNvcnQoKTtmb3IodmFyIHI9InsiLGk9MDtpPG4ubGVuZ3RoO2krKykwIT09aSYmKHIrPSIsIikscis9Um8obltpXSkscis9IjoiLHIrPXJhKHRbbltpXV0pO3JldHVybiByKz0ifSJ9O2Z1bmN0aW9uIGlhKHQsZSl7Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmZShuLHRbbl0pfWZ1bmN0aW9uIG9hKHQpe3ZhciBlLG4scixpO3NvKCFVcyh0KSwiSW52YWxpZCBKU09OIG51bWJlciIpLDA9PT10P2U9MS90PT0tMS8ocj1uPTApPzE6MDooZT10PDAscj0odD1NYXRoLmFicyh0KSk+PU1hdGgucG93KDIsLTEwMjIpPyhuPShpPU1hdGgubWluKE1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjIpLDEwMjMpKSsxMDIzLE1hdGgucm91bmQodCpNYXRoLnBvdygyLDUyLWkpLU1hdGgucG93KDIsNTIpKSk6KG49MCxNYXRoLnJvdW5kKHQvTWF0aC5wb3coMiwtMTA3NCkpKSk7Zm9yKHZhciBvPVtdLHM9NTI7czstLXMpby5wdXNoKHIlMj8xOjApLHI9TWF0aC5mbG9vcihyLzIpO2ZvcihzPTExO3M7LS1zKW8ucHVzaChuJTI/MTowKSxuPU1hdGguZmxvb3Iobi8yKTtvLnB1c2goZT8xOjApLG8ucmV2ZXJzZSgpO3ZhciBhPW8uam9pbigiIiksdT0iIjtmb3Iocz0wO3M8NjQ7cys9OCl7dmFyIGM9cGFyc2VJbnQoYS5zdWJzdHIocyw4KSwyKS50b1N0cmluZygxNik7dSs9Yz0xPT09Yy5sZW5ndGg/IjAiK2M6Y31yZXR1cm4gdS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHNhKHQsZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZihlPXNldFRpbWVvdXQodCxlKSkmJmUudW5yZWYmJmUudW5yZWYoKSxlfXZhciBhYT1mdW5jdGlvbih0LGUpe3ZhciBuPSJVbmtub3duIEVycm9yIjsidG9vX2JpZyI9PT10P249IlRoZSBkYXRhIHJlcXVlc3RlZCBleGNlZWRzIHRoZSBtYXhpbXVtIHNpemUgdGhhdCBjYW4gYmUgYWNjZXNzZWQgd2l0aCBhIHNpbmdsZSByZXF1ZXN0LiI6InBlcm1pc3Npb25fZGVuaWVkIj09PXQ/bj0iQ2xpZW50IGRvZXNuJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGUgZGVzaXJlZCBkYXRhLiI6InVuYXZhaWxhYmxlIj09PXQmJihuPSJUaGUgc2VydmljZSBpcyB1bmF2YWlsYWJsZSIpO249bmV3IEVycm9yKHQrIiBhdCAiK2UucGF0aC50b1N0cmluZygpKyI6ICIrbik7cmV0dXJuIG4uY29kZT10LnRvVXBwZXJDYXNlKCksbn0sdWE9bmV3IFJlZ0V4cCgiXi0/KDAqKVxcZHsxLDEwfSQiKSxjYT0tMjE0NzQ4MzY0OCxoYT0yMTQ3NDgzNjQ3LGxhPWZ1bmN0aW9uKHQpe2lmKHVhLnRlc3QodCkpe3Q9TnVtYmVyKHQpO2lmKGNhPD10JiZ0PD1oYSlyZXR1cm4gdH1yZXR1cm4gbnVsbH0sZmE9ZnVuY3Rpb24odCl7dHJ5e3QoKX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZS5zdGFja3x8IiI7dGhyb3cgWnMoIkV4Y2VwdGlvbiB3YXMgdGhyb3duIGJ5IHVzZXIgY2FsbGJhY2suIix0KSxlfSxNYXRoLmZsb29yKDApKX19LHBhPShkYS5wcm90b3R5cGUuZ2V0VG9rZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYXV0aF8/dGhpcy5hdXRoXy5nZXRUb2tlbih0KS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gdCYmImF1dGgvdG9rZW4tbm90LWluaXRpYWxpemVkIj09PXQuY29kZT8oWHMoIkdvdCBhdXRoL3Rva2VuLW5vdC1pbml0aWFsaXplZCBlcnJvci4gIFRyZWF0aW5nIGFzIG51bGwgdG9rZW4uIiksbnVsbCk6UHJvbWlzZS5yZWplY3QodCl9KTpQcm9taXNlLnJlc29sdmUobnVsbCl9LGRhLnByb3RvdHlwZS5hZGRUb2tlbkNoYW5nZUxpc3RlbmVyPWZ1bmN0aW9uKGUpe3RoaXMuYXV0aF8/dGhpcy5hdXRoXy5hZGRBdXRoVG9rZW5MaXN0ZW5lcihlKTooc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBlKG51bGwpfSwwKSx0aGlzLmF1dGhQcm92aWRlcl8uZ2V0KCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5hZGRBdXRoVG9rZW5MaXN0ZW5lcihlKX0pKX0sZGEucHJvdG90eXBlLnJlbW92ZVRva2VuQ2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24oZSl7dGhpcy5hdXRoUHJvdmlkZXJfLmdldCgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQucmVtb3ZlQXV0aFRva2VuTGlzdGVuZXIoZSl9KX0sZGEucHJvdG90eXBlLm5vdGlmeUZvckludmFsaWRUb2tlbj1mdW5jdGlvbigpe3ZhciB0PSdQcm92aWRlZCBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscyBmb3IgdGhlIGFwcCBuYW1lZCAiJyt0aGlzLmFwcF8ubmFtZSsnIiBhcmUgaW52YWxpZC4gVGhpcyB1c3VhbGx5IGluZGljYXRlcyB5b3VyIGFwcCB3YXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseS4gJzsiY3JlZGVudGlhbCJpbiB0aGlzLmFwcF8ub3B0aW9ucz90Kz0nTWFrZSBzdXJlIHRoZSAiY3JlZGVudGlhbCIgcHJvcGVydHkgcHJvdmlkZWQgdG8gaW5pdGlhbGl6ZUFwcCgpIGlzIGF1dGhvcml6ZWQgdG8gYWNjZXNzIHRoZSBzcGVjaWZpZWQgImRhdGFiYXNlVVJMIiBhbmQgaXMgZnJvbSB0aGUgY29ycmVjdCBwcm9qZWN0Lic6InNlcnZpY2VBY2NvdW50ImluIHRoaXMuYXBwXy5vcHRpb25zP3QrPSdNYWtlIHN1cmUgdGhlICJzZXJ2aWNlQWNjb3VudCIgcHJvcGVydHkgcHJvdmlkZWQgdG8gaW5pdGlhbGl6ZUFwcCgpIGlzIGF1dGhvcml6ZWQgdG8gYWNjZXNzIHRoZSBzcGVjaWZpZWQgImRhdGFiYXNlVVJMIiBhbmQgaXMgZnJvbSB0aGUgY29ycmVjdCBwcm9qZWN0Lic6dCs9J01ha2Ugc3VyZSB0aGUgImFwaUtleSIgYW5kICJkYXRhYmFzZVVSTCIgcHJvcGVydGllcyBwcm92aWRlZCB0byBpbml0aWFsaXplQXBwKCkgbWF0Y2ggdGhlIHZhbHVlcyBwcm92aWRlZCBmb3IgeW91ciBhcHAgYXQgaHR0cHM6Ly9jb25zb2xlLmZpcmViYXNlLmdvb2dsZS5jb20vLicsWnModCl9LGRhKTtmdW5jdGlvbiBkYSh0LGUpe3ZhciBuPXRoaXM7dGhpcy5hcHBfPXQsdGhpcy5hdXRoUHJvdmlkZXJfPWUsdGhpcy5hdXRoXz1udWxsLHRoaXMuYXV0aF89ZS5nZXRJbW1lZGlhdGUoe29wdGlvbmFsOiEwfSksdGhpcy5hdXRoX3x8ZS5nZXQoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuLmF1dGhfPXR9KX12YXIgdmE9KGdhLnByb3RvdHlwZS5nZXRUb2tlbj1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHthY2Nlc3NUb2tlbjpnYS5FTVVMQVRPUl9BVVRIX1RPS0VOfSl9LGdhLnByb3RvdHlwZS5hZGRUb2tlbkNoYW5nZUxpc3RlbmVyPWZ1bmN0aW9uKHQpe3QoZ2EuRU1VTEFUT1JfQVVUSF9UT0tFTil9LGdhLnByb3RvdHlwZS5yZW1vdmVUb2tlbkNoYW5nZUxpc3RlbmVyPWZ1bmN0aW9uKHQpe30sZ2EucHJvdG90eXBlLm5vdGlmeUZvckludmFsaWRUb2tlbj1mdW5jdGlvbigpe30sZ2EuRU1VTEFUT1JfQVVUSF9UT0tFTj0ib3duZXIiLGdhKTtmdW5jdGlvbiBnYSgpe312YXIgeWE9Lyhjb25zb2xlXC5maXJlYmFzZXxmaXJlYmFzZS1jb25zb2xlLVx3K1wuY29ycHxmaXJlYmFzZVwuY29ycClcLmdvb2dsZVwuY29tLyxtYT0id2Vic29ja2V0IixiYT0ibG9uZ19wb2xsaW5nIix3YT0oX2EucHJvdG90eXBlLmlzQ2FjaGVhYmxlSG9zdD1mdW5jdGlvbigpe3JldHVybiJzLSI9PT10aGlzLmludGVybmFsSG9zdC5zdWJzdHIoMCwyKX0sX2EucHJvdG90eXBlLmlzQ3VzdG9tSG9zdD1mdW5jdGlvbigpe3JldHVybiJmaXJlYmFzZWlvLmNvbSIhPT10aGlzLl9kb21haW4mJiJmaXJlYmFzZWlvLWRlbW8uY29tIiE9PXRoaXMuX2RvbWFpbn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KF9hLnByb3RvdHlwZSwiaG9zdCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ob3N0fSxzZXQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuaW50ZXJuYWxIb3N0JiYodGhpcy5pbnRlcm5hbEhvc3Q9dCx0aGlzLmlzQ2FjaGVhYmxlSG9zdCgpJiZLcy5zZXQoImhvc3Q6Iit0aGlzLl9ob3N0LHRoaXMuaW50ZXJuYWxIb3N0KSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksX2EucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b1VSTFN0cmluZygpO3JldHVybiB0aGlzLnBlcnNpc3RlbmNlS2V5JiYodCs9IjwiK3RoaXMucGVyc2lzdGVuY2VLZXkrIj4iKSx0fSxfYS5wcm90b3R5cGUudG9VUkxTdHJpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNlY3VyZT8iaHR0cHM6Ly8iOiJodHRwOi8vIixlPXRoaXMuaW5jbHVkZU5hbWVzcGFjZUluUXVlcnlQYXJhbXM/Ij9ucz0iK3RoaXMubmFtZXNwYWNlOiIiO3JldHVybiB0K3RoaXMuaG9zdCsiLyIrZX0sX2EpO2Z1bmN0aW9uIF9hKHQsZSxuLHIsaSxvLHMpe3ZvaWQgMD09PWkmJihpPSExKSx2b2lkIDA9PT1vJiYobz0iIiksdm9pZCAwPT09cyYmKHM9ITEpLHRoaXMuc2VjdXJlPWUsdGhpcy5uYW1lc3BhY2U9bix0aGlzLndlYlNvY2tldE9ubHk9cix0aGlzLm5vZGVBZG1pbj1pLHRoaXMucGVyc2lzdGVuY2VLZXk9byx0aGlzLmluY2x1ZGVOYW1lc3BhY2VJblF1ZXJ5UGFyYW1zPXMsdGhpcy5faG9zdD10LnRvTG93ZXJDYXNlKCksdGhpcy5fZG9tYWluPXRoaXMuX2hvc3Quc3Vic3RyKHRoaXMuX2hvc3QuaW5kZXhPZigiLiIpKzEpLHRoaXMuaW50ZXJuYWxIb3N0PUtzLmdldCgiaG9zdDoiK3QpfHx0aGlzLl9ob3N0fWZ1bmN0aW9uIElhKHQsZSxuKXt2YXIgcjtpZihzbygic3RyaW5nIj09dHlwZW9mIGUsInR5cGVvZiB0eXBlIG11c3QgPT0gc3RyaW5nIiksc28oIm9iamVjdCI9PXR5cGVvZiBuLCJ0eXBlb2YgcGFyYW1zIG11c3QgPT0gb2JqZWN0IiksZT09PW1hKXI9KHQuc2VjdXJlPyJ3c3M6Ly8iOiJ3czovLyIpK3QuaW50ZXJuYWxIb3N0KyIvLndzPyI7ZWxzZXtpZihlIT09YmEpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGNvbm5lY3Rpb24gdHlwZTogIitlKTtyPSh0LnNlY3VyZT8iaHR0cHM6Ly8iOiJodHRwOi8vIikrdC5pbnRlcm5hbEhvc3QrIi8ubHA/In0oKGU9dCkuaG9zdCE9PWUuaW50ZXJuYWxIb3N0fHxlLmlzQ3VzdG9tSG9zdCgpfHxlLmluY2x1ZGVOYW1lc3BhY2VJblF1ZXJ5UGFyYW1zKSYmKG4ubnM9dC5uYW1lc3BhY2UpO3ZhciBpPVtdO3JldHVybiBpYShuLGZ1bmN0aW9uKHQsZSl7aS5wdXNoKHQrIj0iK2UpfSkscitpLmpvaW4oIiYiKX12YXIgVGE9KEVhLnByb3RvdHlwZS5pbmNyZW1lbnRDb3VudGVyPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9MSksT28odGhpcy5jb3VudGVyc18sdCl8fCh0aGlzLmNvdW50ZXJzX1t0XT0wKSx0aGlzLmNvdW50ZXJzX1t0XSs9ZX0sRWEucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiBjbyh0aGlzLmNvdW50ZXJzXyl9LEVhKTtmdW5jdGlvbiBFYSgpe3RoaXMuY291bnRlcnNfPXt9fXZhciBTYT17fSxDYT17fTtmdW5jdGlvbiBOYSh0KXt0PXQudG9TdHJpbmcoKTtyZXR1cm4gU2FbdF18fChTYVt0XT1uZXcgVGEpLFNhW3RdfXZhciBBYT0oa2EucHJvdG90eXBlLmNsb3NlQWZ0ZXI9ZnVuY3Rpb24odCxlKXt0aGlzLmNsb3NlQWZ0ZXJSZXNwb25zZT10LHRoaXMub25DbG9zZT1lLHRoaXMuY2xvc2VBZnRlclJlc3BvbnNlPHRoaXMuY3VycmVudFJlc3BvbnNlTnVtJiYodGhpcy5vbkNsb3NlKCksdGhpcy5vbkNsb3NlPW51bGwpfSxrYS5wcm90b3R5cGUuaGFuZGxlUmVzcG9uc2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMucGVuZGluZ1Jlc3BvbnNlc1t0XT1lO2Zvcih2YXIgcj10aGlzO3RoaXMucGVuZGluZ1Jlc3BvbnNlc1t0aGlzLmN1cnJlbnRSZXNwb25zZU51bV07KWlmKCJicmVhayI9PT1mdW5jdGlvbigpe3ZhciBlPXIucGVuZGluZ1Jlc3BvbnNlc1tyLmN1cnJlbnRSZXNwb25zZU51bV07ZGVsZXRlIHIucGVuZGluZ1Jlc3BvbnNlc1tyLmN1cnJlbnRSZXNwb25zZU51bV07Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDsrK3QpIWZ1bmN0aW9uKHQpe2VbdF0mJmZhKGZ1bmN0aW9uKCl7bi5vbk1lc3NhZ2VfKGVbdF0pfSl9KHQpO2lmKHIuY3VycmVudFJlc3BvbnNlTnVtPT09ci5jbG9zZUFmdGVyUmVzcG9uc2UpcmV0dXJuIHIub25DbG9zZSYmKHIub25DbG9zZSgpLHIub25DbG9zZT1udWxsKSwiYnJlYWsiO3IuY3VycmVudFJlc3BvbnNlTnVtKyt9KCkpYnJlYWt9LGthKTtmdW5jdGlvbiBrYSh0KXt0aGlzLm9uTWVzc2FnZV89dCx0aGlzLnBlbmRpbmdSZXNwb25zZXM9W10sdGhpcy5jdXJyZW50UmVzcG9uc2VOdW09MCx0aGlzLmNsb3NlQWZ0ZXJSZXNwb25zZT0tMSx0aGlzLm9uQ2xvc2U9bnVsbH12YXIgUmE9InBMUENvbW1hbmQiLFBhPSJwUlRMUENCIixPYT0oRGEucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCxlKXt2YXIgbixyLGkscz10aGlzO3RoaXMuY3VyU2VnbWVudE51bT0wLHRoaXMub25EaXNjb25uZWN0Xz1lLHRoaXMubXlQYWNrZXRPcmRlcmVyPW5ldyBBYSh0KSx0aGlzLmlzQ2xvc2VkXz0hMSx0aGlzLmNvbm5lY3RUaW1lb3V0VGltZXJfPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtzLmxvZ18oIlRpbWVkIG91dCB0cnlpbmcgdG8gY29ubmVjdC4iKSxzLm9uQ2xvc2VkXygpLHMuY29ubmVjdFRpbWVvdXRUaW1lcl89bnVsbH0sTWF0aC5mbG9vcigzZTQpKSxuPWZ1bmN0aW9uKCl7dmFyIHQ7cy5pc0Nsb3NlZF98fChzLnNjcmlwdFRhZ0hvbGRlcj1uZXcgeGEoZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49ZW8odCw1KSxyPW5bMF0saT1uWzFdLG89blsyXTtuWzNdLG5bNF07aWYocy5pbmNyZW1lbnRJbmNvbWluZ0J5dGVzXyh0KSxzLnNjcmlwdFRhZ0hvbGRlcilpZihzLmNvbm5lY3RUaW1lb3V0VGltZXJfJiYoY2xlYXJUaW1lb3V0KHMuY29ubmVjdFRpbWVvdXRUaW1lcl8pLHMuY29ubmVjdFRpbWVvdXRUaW1lcl89bnVsbCkscy5ldmVyQ29ubmVjdGVkXz0hMCwic3RhcnQiPT09cilzLmlkPWkscy5wYXNzd29yZD1vO2Vsc2V7aWYoImNsb3NlIiE9PXIpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgY29tbWFuZCByZWNlaXZlZDogIityKTtpPyhzLnNjcmlwdFRhZ0hvbGRlci5zZW5kTmV3UG9sbHM9ITEscy5teVBhY2tldE9yZGVyZXIuY2xvc2VBZnRlcihpLGZ1bmN0aW9uKCl7cy5vbkNsb3NlZF8oKX0pKTpzLm9uQ2xvc2VkXygpfX0sZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49ZW8odCwyKSxyPW5bMF0sbj1uWzFdO3MuaW5jcmVtZW50SW5jb21pbmdCeXRlc18odCkscy5teVBhY2tldE9yZGVyZXIuaGFuZGxlUmVzcG9uc2UocixuKX0sZnVuY3Rpb24oKXtzLm9uQ2xvc2VkXygpfSxzLnVybEZuKSwodD17c3RhcnQ6InQifSkuc2VyPU1hdGguZmxvb3IoMWU4Kk1hdGgucmFuZG9tKCkpLHMuc2NyaXB0VGFnSG9sZGVyLnVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllciYmKHQuY2I9cy5zY3JpcHRUYWdIb2xkZXIudW5pcXVlQ2FsbGJhY2tJZGVudGlmaWVyKSx0LnY9IjUiLHMudHJhbnNwb3J0U2Vzc2lvbklkJiYodC5zPXMudHJhbnNwb3J0U2Vzc2lvbklkKSxzLmxhc3RTZXNzaW9uSWQmJih0LmxzPXMubGFzdFNlc3Npb25JZCkscy5hcHBsaWNhdGlvbklkJiYodC5wPXMuYXBwbGljYXRpb25JZCksInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbiYmbG9jYXRpb24uaG9zdG5hbWUmJnlhLnRlc3QobG9jYXRpb24uaG9zdG5hbWUpJiYodC5yPSJmIiksdD1zLnVybEZuKHQpLHMubG9nXygiQ29ubmVjdGluZyB2aWEgbG9uZy1wb2xsIHRvICIrdCkscy5zY3JpcHRUYWdIb2xkZXIuYWRkVGFnKHQsZnVuY3Rpb24oKXt9KSl9LCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP24oKToocj0hMSxpPWZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keT9yfHwocj0hMCxuKCkpOnNldFRpbWVvdXQoaSxNYXRoLmZsb29yKDEwKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXI/KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGksITEpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixpLCExKSk6ZG9jdW1lbnQuYXR0YWNoRXZlbnQmJihkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpeyJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlJiZpKCl9KSx3aW5kb3cuYXR0YWNoRXZlbnQoIm9ubG9hZCIsaSkpKX0sRGEucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7dGhpcy5zY3JpcHRUYWdIb2xkZXIuc3RhcnRMb25nUG9sbCh0aGlzLmlkLHRoaXMucGFzc3dvcmQpLHRoaXMuYWRkRGlzY29ubmVjdFBpbmdGcmFtZSh0aGlzLmlkLHRoaXMucGFzc3dvcmQpfSxEYS5mb3JjZUFsbG93PWZ1bmN0aW9uKCl7RGEuZm9yY2VBbGxvd189ITB9LERhLmZvcmNlRGlzYWxsb3c9ZnVuY3Rpb24oKXtEYS5mb3JjZURpc2FsbG93Xz0hMH0sRGEuaXNBdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4hIURhLmZvcmNlQWxsb3dffHwhKERhLmZvcmNlRGlzYWxsb3dffHwidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50fHxudWxsPT1kb2N1bWVudC5jcmVhdGVFbGVtZW50fHwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LmNocm9tZSYmd2luZG93LmNocm9tZS5leHRlbnNpb24mJiEvXmNocm9tZS8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZil8fCJvYmplY3QiPT10eXBlb2YgV2luZG93cyYmIm9iamVjdCI9PXR5cGVvZiBXaW5kb3dzLlVJKX0sRGEucHJvdG90eXBlLm1hcmtDb25uZWN0aW9uSGVhbHRoeT1mdW5jdGlvbigpe30sRGEucHJvdG90eXBlLnNodXRkb3duXz1mdW5jdGlvbigpe3RoaXMuaXNDbG9zZWRfPSEwLHRoaXMuc2NyaXB0VGFnSG9sZGVyJiYodGhpcy5zY3JpcHRUYWdIb2xkZXIuY2xvc2UoKSx0aGlzLnNjcmlwdFRhZ0hvbGRlcj1udWxsKSx0aGlzLm15RGlzY29ubkZyYW1lJiYoZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLm15RGlzY29ubkZyYW1lKSx0aGlzLm15RGlzY29ubkZyYW1lPW51bGwpLHRoaXMuY29ubmVjdFRpbWVvdXRUaW1lcl8mJihjbGVhclRpbWVvdXQodGhpcy5jb25uZWN0VGltZW91dFRpbWVyXyksdGhpcy5jb25uZWN0VGltZW91dFRpbWVyXz1udWxsKX0sRGEucHJvdG90eXBlLm9uQ2xvc2VkXz1mdW5jdGlvbigpe3RoaXMuaXNDbG9zZWRffHwodGhpcy5sb2dfKCJMb25ncG9sbCBpcyBjbG9zaW5nIGl0c2VsZiIpLHRoaXMuc2h1dGRvd25fKCksdGhpcy5vbkRpc2Nvbm5lY3RfJiYodGhpcy5vbkRpc2Nvbm5lY3RfKHRoaXMuZXZlckNvbm5lY3RlZF8pLHRoaXMub25EaXNjb25uZWN0Xz1udWxsKSl9LERhLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3RoaXMuaXNDbG9zZWRffHwodGhpcy5sb2dfKCJMb25ncG9sbCBpcyBiZWluZyBjbG9zZWQuIiksdGhpcy5zaHV0ZG93bl8oKSl9LERhLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQpe3Q9Um8odCk7dGhpcy5ieXRlc1NlbnQrPXQubGVuZ3RoLHRoaXMuc3RhdHNfLmluY3JlbWVudENvdW50ZXIoImJ5dGVzX3NlbnQiLHQubGVuZ3RoKTtmb3IodmFyIHQ9ZnVuY3Rpb24odCl7dD1ybyh0KTtyZXR1cm4gdW8uZW5jb2RlQnl0ZUFycmF5KHQsITApfSh0KSxlPVZzKHQsMTg0MCksbj0wO248ZS5sZW5ndGg7bisrKXRoaXMuc2NyaXB0VGFnSG9sZGVyLmVucXVldWVTZWdtZW50KHRoaXMuY3VyU2VnbWVudE51bSxlLmxlbmd0aCxlW25dKSx0aGlzLmN1clNlZ21lbnROdW0rK30sRGEucHJvdG90eXBlLmFkZERpc2Nvbm5lY3RQaW5nRnJhbWU9ZnVuY3Rpb24odCxlKXt0aGlzLm15RGlzY29ubkZyYW1lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO3ZhciBuPXtkZnJhbWU6InQifTtuLmlkPXQsbi5wdz1lLHRoaXMubXlEaXNjb25uRnJhbWUuc3JjPXRoaXMudXJsRm4obiksdGhpcy5teURpc2Nvbm5GcmFtZS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubXlEaXNjb25uRnJhbWUpfSxEYS5wcm90b3R5cGUuaW5jcmVtZW50SW5jb21pbmdCeXRlc189ZnVuY3Rpb24odCl7dD1Sbyh0KS5sZW5ndGg7dGhpcy5ieXRlc1JlY2VpdmVkKz10LHRoaXMuc3RhdHNfLmluY3JlbWVudENvdW50ZXIoImJ5dGVzX3JlY2VpdmVkIix0KX0sRGEpO2Z1bmN0aW9uIERhKHQsZSxuLHIsaSl7dGhpcy5jb25uSWQ9dCx0aGlzLnJlcG9JbmZvPWUsdGhpcy5hcHBsaWNhdGlvbklkPW4sdGhpcy50cmFuc3BvcnRTZXNzaW9uSWQ9cix0aGlzLmxhc3RTZXNzaW9uSWQ9aSx0aGlzLmJ5dGVzU2VudD0wLHRoaXMuYnl0ZXNSZWNlaXZlZD0wLHRoaXMuZXZlckNvbm5lY3RlZF89ITEsdGhpcy5sb2dfPUpzKHQpLHRoaXMuc3RhdHNfPU5hKGUpLHRoaXMudXJsRm49ZnVuY3Rpb24odCl7cmV0dXJuIElhKGUsYmEsdCl9fXZhciB4YT0oTGEuY3JlYXRlSUZyYW1lXz1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2lmKGUuc3R5bGUuZGlzcGxheT0ibm9uZSIsIWRvY3VtZW50LmJvZHkpdGhyb3ciRG9jdW1lbnQgYm9keSBoYXMgbm90IGluaXRpYWxpemVkLiBXYWl0IHRvIGluaXRpYWxpemUgRmlyZWJhc2UgdW50aWwgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIHJlYWR5LiI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTt0cnl7ZS5jb250ZW50V2luZG93LmRvY3VtZW50fHxYcygiTm8gSUUgZG9tYWluIHNldHRpbmcgcmVxdWlyZWQiKX1jYXRjaCh0KXt2YXIgbj1kb2N1bWVudC5kb21haW47ZS5zcmM9ImphdmFzY3JpcHQ6dm9pZCgoZnVuY3Rpb24oKXtkb2N1bWVudC5vcGVuKCk7ZG9jdW1lbnQuZG9tYWluPSciK24rIic7ZG9jdW1lbnQuY2xvc2UoKTt9KSgpKSJ9cmV0dXJuIGUuY29udGVudERvY3VtZW50P2UuZG9jPWUuY29udGVudERvY3VtZW50OmUuY29udGVudFdpbmRvdz9lLmRvYz1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ6ZS5kb2N1bWVudCYmKGUuZG9jPWUuZG9jdW1lbnQpLGV9LExhLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5hbGl2ZT0hMSx0aGlzLm15SUZyYW1lJiYodGhpcy5teUlGcmFtZS5kb2MuYm9keS5pbm5lckhUTUw9IiIsc2V0VGltZW91dChmdW5jdGlvbigpe251bGwhPT10Lm15SUZyYW1lJiYoZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0Lm15SUZyYW1lKSx0Lm15SUZyYW1lPW51bGwpfSxNYXRoLmZsb29yKDApKSk7dmFyIGU9dGhpcy5vbkRpc2Nvbm5lY3Q7ZSYmKHRoaXMub25EaXNjb25uZWN0PW51bGwsZSgpKX0sTGEucHJvdG90eXBlLnN0YXJ0TG9uZ1BvbGw9ZnVuY3Rpb24odCxlKXtmb3IodGhpcy5teUlEPXQsdGhpcy5teVBXPWUsdGhpcy5hbGl2ZT0hMDt0aGlzLm5ld1JlcXVlc3RfKCk7KTt9LExhLnByb3RvdHlwZS5uZXdSZXF1ZXN0Xz1mdW5jdGlvbigpe2lmKHRoaXMuYWxpdmUmJnRoaXMuc2VuZE5ld1BvbGxzJiZ0aGlzLm91dHN0YW5kaW5nUmVxdWVzdHMuc2l6ZTwoMDx0aGlzLnBlbmRpbmdTZWdzLmxlbmd0aD8yOjEpKXt0aGlzLmN1cnJlbnRTZXJpYWwrKzt2YXIgdD17fTt0LmlkPXRoaXMubXlJRCx0LnB3PXRoaXMubXlQVyx0LnNlcj10aGlzLmN1cnJlbnRTZXJpYWw7Zm9yKHZhciB0PXRoaXMudXJsRm4odCksZT0iIixuPTA7MDx0aGlzLnBlbmRpbmdTZWdzLmxlbmd0aDspe2lmKCEodGhpcy5wZW5kaW5nU2Vnc1swXS5kLmxlbmd0aCszMCtlLmxlbmd0aDw9MTg3MCkpYnJlYWs7dmFyIHI9dGhpcy5wZW5kaW5nU2Vncy5zaGlmdCgpLGU9ZSsiJnNlZyIrbisiPSIrci5zZWcrIiZ0cyIrbisiPSIrci50cysiJmQiK24rIj0iK3IuZDtuKyt9cmV0dXJuIHQrPWUsdGhpcy5hZGRMb25nUG9sbFRhZ18odCx0aGlzLmN1cnJlbnRTZXJpYWwpLCEwfXJldHVybiExfSxMYS5wcm90b3R5cGUuZW5xdWV1ZVNlZ21lbnQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMucGVuZGluZ1NlZ3MucHVzaCh7c2VnOnQsdHM6ZSxkOm59KSx0aGlzLmFsaXZlJiZ0aGlzLm5ld1JlcXVlc3RfKCl9LExhLnByb3RvdHlwZS5hZGRMb25nUG9sbFRhZ189ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMub3V0c3RhbmRpbmdSZXF1ZXN0cy5hZGQoZSk7ZnVuY3Rpb24gcigpe24ub3V0c3RhbmRpbmdSZXF1ZXN0cy5kZWxldGUoZSksbi5uZXdSZXF1ZXN0XygpfXZhciBpPXNldFRpbWVvdXQocixNYXRoLmZsb29yKDI1ZTMpKTt0aGlzLmFkZFRhZyh0LGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGkpLHIoKX0pfSxMYS5wcm90b3R5cGUuYWRkVGFnPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHJ5e2lmKCFyLnNlbmROZXdQb2xscylyZXR1cm47dmFyIGU9ci5teUlGcmFtZS5kb2MuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGUuYXN5bmM9ITAsZS5zcmM9dCxlLm9ubG9hZD1lLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe3ZhciB0PWUucmVhZHlTdGF0ZTt0JiYibG9hZGVkIiE9PXQmJiJjb21wbGV0ZSIhPT10fHwoZS5vbmxvYWQ9ZS5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSxuKCkpfSxlLm9uZXJyb3I9ZnVuY3Rpb24oKXtYcygiTG9uZy1wb2xsIHNjcmlwdCBmYWlsZWQgdG8gbG9hZDogIit0KSxyLnNlbmROZXdQb2xscz0hMSxyLmNsb3NlKCl9LHIubXlJRnJhbWUuZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZSl9Y2F0Y2godCl7fX0sTWF0aC5mbG9vcigxKSl9LExhKTtmdW5jdGlvbiBMYSh0LGUsbixyKXt0aGlzLm9uRGlzY29ubmVjdD1uLHRoaXMudXJsRm49cix0aGlzLm91dHN0YW5kaW5nUmVxdWVzdHM9bmV3IFNldCx0aGlzLnBlbmRpbmdTZWdzPVtdLHRoaXMuY3VycmVudFNlcmlhbD1NYXRoLmZsb29yKDFlOCpNYXRoLnJhbmRvbSgpKSx0aGlzLnNlbmROZXdQb2xscz0hMCx0aGlzLnVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcj1HcygpLHdpbmRvd1tSYSt0aGlzLnVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcl09dCx3aW5kb3dbUGErdGhpcy51bmlxdWVDYWxsYmFja0lkZW50aWZpZXJdPWUsdGhpcy5teUlGcmFtZT1MYS5jcmVhdGVJRnJhbWVfKCk7dmFyIGU9IiIsaT0iPGh0bWw+PGJvZHk+IisoZT10aGlzLm15SUZyYW1lLnNyYyYmImphdmFzY3JpcHQ6Ij09PXRoaXMubXlJRnJhbWUuc3JjLnN1YnN0cigwLCJqYXZhc2NyaXB0OiIubGVuZ3RoKT8nPHNjcmlwdD5kb2N1bWVudC5kb21haW49IicrZG9jdW1lbnQuZG9tYWluKyciOzxcL3NjcmlwdD4nOmUpKyI8L2JvZHk+PC9odG1sPiI7dHJ5e3RoaXMubXlJRnJhbWUuZG9jLm9wZW4oKSx0aGlzLm15SUZyYW1lLmRvYy53cml0ZShpKSx0aGlzLm15SUZyYW1lLmRvYy5jbG9zZSgpfWNhdGNoKHQpe1hzKCJmcmFtZSB3cml0aW5nIGV4Y2VwdGlvbiIpLHQuc3RhY2smJlhzKHQuc3RhY2spLFhzKHQpfX12YXIgTWE9IiI7ZnVuY3Rpb24gRmEodCl7TWE9dH12YXIgVWE9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIE1veldlYlNvY2tldD9VYT1Nb3pXZWJTb2NrZXQ6InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQmJihVYT1XZWJTb2NrZXQpO3ZhciBqYT0ocWEuY29ubmVjdGlvblVSTF89ZnVuY3Rpb24odCxlLG4pe3ZhciByPXt2OiI1In07cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBsb2NhdGlvbiYmbG9jYXRpb24uaG9zdG5hbWUmJnlhLnRlc3QobG9jYXRpb24uaG9zdG5hbWUpJiYoci5yPSJmIiksZSYmKHIucz1lKSxuJiYoci5scz1uKSxJYSh0LG1hLHIpfSxxYS5wcm90b3R5cGUub3Blbj1mdW5jdGlvbihlLHQpe3ZhciBuLHI9dGhpczt0aGlzLm9uRGlzY29ubmVjdD10LHRoaXMub25NZXNzYWdlPWUsdGhpcy5sb2dfKCJXZWJzb2NrZXQgY29ubmVjdGluZyB0byAiK3RoaXMuY29ublVSTCksdGhpcy5ldmVyQ29ubmVjdGVkXz0hMSxLcy5zZXQoInByZXZpb3VzX3dlYnNvY2tldF9mYWlsdXJlIiwhMCk7dHJ5e21vKCl8fChuPXtoZWFkZXJzOnsiWC1GaXJlYmFzZS1HTVBJRCI6dGhpcy5hcHBsaWNhdGlvbklkfHwiIn19LHRoaXMubXlTb2NrPW5ldyBVYSh0aGlzLmNvbm5VUkwsW10sbikpfWNhdGNoKHQpe3RoaXMubG9nXygiRXJyb3IgaW5zdGFudGlhdGluZyBXZWJTb2NrZXQuIik7ZT10Lm1lc3NhZ2V8fHQuZGF0YTtyZXR1cm4gZSYmdGhpcy5sb2dfKGUpLHZvaWQgdGhpcy5vbkNsb3NlZF8oKX10aGlzLm15U29jay5vbm9wZW49ZnVuY3Rpb24oKXtyLmxvZ18oIldlYnNvY2tldCBjb25uZWN0ZWQuIiksci5ldmVyQ29ubmVjdGVkXz0hMH0sdGhpcy5teVNvY2sub25jbG9zZT1mdW5jdGlvbigpe3IubG9nXygiV2Vic29ja2V0IGNvbm5lY3Rpb24gd2FzIGRpc2Nvbm5lY3RlZC4iKSxyLm15U29jaz1udWxsLHIub25DbG9zZWRfKCl9LHRoaXMubXlTb2NrLm9ubWVzc2FnZT1mdW5jdGlvbih0KXtyLmhhbmRsZUluY29taW5nRnJhbWUodCl9LHRoaXMubXlTb2NrLm9uZXJyb3I9ZnVuY3Rpb24odCl7ci5sb2dfKCJXZWJTb2NrZXQgZXJyb3IuICBDbG9zaW5nIGNvbm5lY3Rpb24uIik7dD10Lm1lc3NhZ2V8fHQuZGF0YTt0JiZyLmxvZ18odCksci5vbkNsb3NlZF8oKX19LHFhLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe30scWEuZm9yY2VEaXNhbGxvdz1mdW5jdGlvbigpe3FhLmZvcmNlRGlzYWxsb3dfPSEwfSxxYS5pc0F2YWlsYWJsZT1mdW5jdGlvbigpe3ZhciB0LGU9ITE7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJigodD1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BbmRyb2lkIChbMC05XXswLH1cLlswLTldezAsfSkvKSkmJjE8dC5sZW5ndGgmJnBhcnNlRmxvYXQodFsxXSk8NC40JiYoZT0hMCkpLCFlJiZudWxsIT09VWEmJiFxYS5mb3JjZURpc2FsbG93X30scWEucHJldmlvdXNseUZhaWxlZD1mdW5jdGlvbigpe3JldHVybiBLcy5pc0luTWVtb3J5U3RvcmFnZXx8ITA9PT1Lcy5nZXQoInByZXZpb3VzX3dlYnNvY2tldF9mYWlsdXJlIil9LHFhLnByb3RvdHlwZS5tYXJrQ29ubmVjdGlvbkhlYWx0aHk9ZnVuY3Rpb24oKXtLcy5yZW1vdmUoInByZXZpb3VzX3dlYnNvY2tldF9mYWlsdXJlIil9LHFhLnByb3RvdHlwZS5hcHBlbmRGcmFtZV89ZnVuY3Rpb24odCl7dGhpcy5mcmFtZXMucHVzaCh0KSx0aGlzLmZyYW1lcy5sZW5ndGg9PT10aGlzLnRvdGFsRnJhbWVzJiYodD10aGlzLmZyYW1lcy5qb2luKCIiKSx0aGlzLmZyYW1lcz1udWxsLHQ9a28odCksdGhpcy5vbk1lc3NhZ2UodCkpfSxxYS5wcm90b3R5cGUuaGFuZGxlTmV3RnJhbWVDb3VudF89ZnVuY3Rpb24odCl7dGhpcy50b3RhbEZyYW1lcz10LHRoaXMuZnJhbWVzPVtdfSxxYS5wcm90b3R5cGUuZXh0cmFjdEZyYW1lQ291bnRfPWZ1bmN0aW9uKHQpe2lmKHNvKG51bGw9PT10aGlzLmZyYW1lcywiV2UgYWxyZWFkeSBoYXZlIGEgZnJhbWUgYnVmZmVyIiksdC5sZW5ndGg8PTYpe3ZhciBlPU51bWJlcih0KTtpZighaXNOYU4oZSkpcmV0dXJuIHRoaXMuaGFuZGxlTmV3RnJhbWVDb3VudF8oZSksbnVsbH1yZXR1cm4gdGhpcy5oYW5kbGVOZXdGcmFtZUNvdW50XygxKSx0fSxxYS5wcm90b3R5cGUuaGFuZGxlSW5jb21pbmdGcmFtZT1mdW5jdGlvbih0KXtudWxsIT09dGhpcy5teVNvY2smJih0PXQuZGF0YSx0aGlzLmJ5dGVzUmVjZWl2ZWQrPXQubGVuZ3RoLHRoaXMuc3RhdHNfLmluY3JlbWVudENvdW50ZXIoImJ5dGVzX3JlY2VpdmVkIix0Lmxlbmd0aCksdGhpcy5yZXNldEtlZXBBbGl2ZSgpLG51bGwhPT10aGlzLmZyYW1lcz90aGlzLmFwcGVuZEZyYW1lXyh0KTpudWxsIT09KHQ9dGhpcy5leHRyYWN0RnJhbWVDb3VudF8odCkpJiZ0aGlzLmFwcGVuZEZyYW1lXyh0KSl9LHFhLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQpe3RoaXMucmVzZXRLZWVwQWxpdmUoKTt0PVJvKHQpO3RoaXMuYnl0ZXNTZW50Kz10Lmxlbmd0aCx0aGlzLnN0YXRzXy5pbmNyZW1lbnRDb3VudGVyKCJieXRlc19zZW50Iix0Lmxlbmd0aCk7dmFyIGU9VnModCwxNjM4NCk7MTxlLmxlbmd0aCYmdGhpcy5zZW5kU3RyaW5nXyhTdHJpbmcoZS5sZW5ndGgpKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLnNlbmRTdHJpbmdfKGVbbl0pfSxxYS5wcm90b3R5cGUuc2h1dGRvd25fPWZ1bmN0aW9uKCl7dGhpcy5pc0Nsb3NlZF89ITAsdGhpcy5rZWVwYWxpdmVUaW1lciYmKGNsZWFySW50ZXJ2YWwodGhpcy5rZWVwYWxpdmVUaW1lciksdGhpcy5rZWVwYWxpdmVUaW1lcj1udWxsKSx0aGlzLm15U29jayYmKHRoaXMubXlTb2NrLmNsb3NlKCksdGhpcy5teVNvY2s9bnVsbCl9LHFhLnByb3RvdHlwZS5vbkNsb3NlZF89ZnVuY3Rpb24oKXt0aGlzLmlzQ2xvc2VkX3x8KHRoaXMubG9nXygiV2ViU29ja2V0IGlzIGNsb3NpbmcgaXRzZWxmIiksdGhpcy5zaHV0ZG93bl8oKSx0aGlzLm9uRGlzY29ubmVjdCYmKHRoaXMub25EaXNjb25uZWN0KHRoaXMuZXZlckNvbm5lY3RlZF8pLHRoaXMub25EaXNjb25uZWN0PW51bGwpKX0scWEucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dGhpcy5pc0Nsb3NlZF98fCh0aGlzLmxvZ18oIldlYlNvY2tldCBpcyBiZWluZyBjbG9zZWQiKSx0aGlzLnNodXRkb3duXygpKX0scWEucHJvdG90eXBlLnJlc2V0S2VlcEFsaXZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztjbGVhckludGVydmFsKHRoaXMua2VlcGFsaXZlVGltZXIpLHRoaXMua2VlcGFsaXZlVGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt0Lm15U29jayYmdC5zZW5kU3RyaW5nXygiMCIpLHQucmVzZXRLZWVwQWxpdmUoKX0sTWF0aC5mbG9vcig0NWUzKSl9LHFhLnByb3RvdHlwZS5zZW5kU3RyaW5nXz1mdW5jdGlvbih0KXt0cnl7dGhpcy5teVNvY2suc2VuZCh0KX1jYXRjaCh0KXt0aGlzLmxvZ18oIkV4Y2VwdGlvbiB0aHJvd24gZnJvbSBXZWJTb2NrZXQuc2VuZCgpOiIsdC5tZXNzYWdlfHx0LmRhdGEsIkNsb3NpbmcgY29ubmVjdGlvbi4iKSxzZXRUaW1lb3V0KHRoaXMub25DbG9zZWRfLmJpbmQodGhpcyksMCl9fSxxYS5yZXNwb25zZXNSZXF1aXJlZFRvQmVIZWFsdGh5PTIscWEuaGVhbHRoeVRpbWVvdXQ9M2U0LHFhKTtmdW5jdGlvbiBxYSh0LGUsbixyLGkpe3RoaXMuY29ubklkPXQsdGhpcy5hcHBsaWNhdGlvbklkPW4sdGhpcy5rZWVwYWxpdmVUaW1lcj1udWxsLHRoaXMuZnJhbWVzPW51bGwsdGhpcy50b3RhbEZyYW1lcz0wLHRoaXMuYnl0ZXNTZW50PTAsdGhpcy5ieXRlc1JlY2VpdmVkPTAsdGhpcy5sb2dfPUpzKHRoaXMuY29ubklkKSx0aGlzLnN0YXRzXz1OYShlKSx0aGlzLmNvbm5VUkw9cWEuY29ubmVjdGlvblVSTF8oZSxyLGkpLHRoaXMubm9kZUFkbWluPWUubm9kZUFkbWlufXZhciBWYT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KEJhLCJBTExfVFJBTlNQT1JUUyIse2dldDpmdW5jdGlvbigpe3JldHVybltPYSxqYV19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksQmEucHJvdG90eXBlLmluaXRUcmFuc3BvcnRzXz1mdW5jdGlvbih0KXt2YXIgZSxuLHI9amEmJmphLmlzQXZhaWxhYmxlKCksaT1yJiYhamEucHJldmlvdXNseUZhaWxlZCgpO2lmKHQud2ViU29ja2V0T25seSYmKHJ8fFpzKCJ3c3M6Ly8gVVJMIHVzZWQsIGJ1dCBicm93c2VyIGlzbid0IGtub3duIHRvIHN1cHBvcnQgd2Vic29ja2V0cy4gIFRyeWluZyBhbnl3YXkuIiksaT0hMCksaSl0aGlzLnRyYW5zcG9ydHNfPVtqYV07ZWxzZXt2YXIgbz10aGlzLnRyYW5zcG9ydHNfPVtdO3RyeXtmb3IodmFyIHM9dG8oQmEuQUxMX1RSQU5TUE9SVFMpLGE9cy5uZXh0KCk7IWEuZG9uZTthPXMubmV4dCgpKXt2YXIgdT1hLnZhbHVlO3UmJnUuaXNBdmFpbGFibGUoKSYmby5wdXNoKHUpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYobj1zLnJldHVybikmJm4uY2FsbChzKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19fX0sQmEucHJvdG90eXBlLmluaXRpYWxUcmFuc3BvcnQ9ZnVuY3Rpb24oKXtpZigwPHRoaXMudHJhbnNwb3J0c18ubGVuZ3RoKXJldHVybiB0aGlzLnRyYW5zcG9ydHNfWzBdO3Rocm93IG5ldyBFcnJvcigiTm8gdHJhbnNwb3J0cyBhdmFpbGFibGUiKX0sQmEucHJvdG90eXBlLnVwZ3JhZGVUcmFuc3BvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTx0aGlzLnRyYW5zcG9ydHNfLmxlbmd0aD90aGlzLnRyYW5zcG9ydHNfWzFdOm51bGx9LEJhKTtmdW5jdGlvbiBCYSh0KXt0aGlzLmluaXRUcmFuc3BvcnRzXyh0KX12YXIgS2E9KFdhLnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy50cmFuc3BvcnRNYW5hZ2VyXy5pbml0aWFsVHJhbnNwb3J0KCk7dGhpcy5jb25uXz1uZXcgZSh0aGlzLm5leHRUcmFuc3BvcnRJZF8oKSx0aGlzLnJlcG9JbmZvXyx0aGlzLmFwcGxpY2F0aW9uSWRfLHZvaWQgMCx0aGlzLmxhc3RTZXNzaW9uSWQpLHRoaXMucHJpbWFyeVJlc3BvbnNlc1JlcXVpcmVkXz1lLnJlc3BvbnNlc1JlcXVpcmVkVG9CZUhlYWx0aHl8fDA7dmFyIG49dGhpcy5jb25uUmVjZWl2ZXJfKHRoaXMuY29ubl8pLHI9dGhpcy5kaXNjb25uUmVjZWl2ZXJfKHRoaXMuY29ubl8pO3RoaXMudHhfPXRoaXMuY29ubl8sdGhpcy5yeF89dGhpcy5jb25uXyx0aGlzLnNlY29uZGFyeUNvbm5fPW51bGwsdGhpcy5pc0hlYWx0aHlfPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNvbm5fJiZ0LmNvbm5fLm9wZW4obixyKX0sTWF0aC5mbG9vcigwKSk7ZT1lLmhlYWx0aHlUaW1lb3V0fHwwOzA8ZSYmKHRoaXMuaGVhbHRoeVRpbWVvdXRfPXNhKGZ1bmN0aW9uKCl7dC5oZWFsdGh5VGltZW91dF89bnVsbCx0LmlzSGVhbHRoeV98fCh0LmNvbm5fJiYxMDI0MDA8dC5jb25uXy5ieXRlc1JlY2VpdmVkPyh0LmxvZ18oIkNvbm5lY3Rpb24gZXhjZWVkZWQgaGVhbHRoeSB0aW1lb3V0IGJ1dCBoYXMgcmVjZWl2ZWQgIit0LmNvbm5fLmJ5dGVzUmVjZWl2ZWQrIiBieXRlcy4gIE1hcmtpbmcgY29ubmVjdGlvbiBoZWFsdGh5LiIpLHQuaXNIZWFsdGh5Xz0hMCx0LmNvbm5fLm1hcmtDb25uZWN0aW9uSGVhbHRoeSgpKTp0LmNvbm5fJiYxMDI0MDx0LmNvbm5fLmJ5dGVzU2VudD90LmxvZ18oIkNvbm5lY3Rpb24gZXhjZWVkZWQgaGVhbHRoeSB0aW1lb3V0IGJ1dCBoYXMgc2VudCAiK3QuY29ubl8uYnl0ZXNTZW50KyIgYnl0ZXMuICBMZWF2aW5nIGNvbm5lY3Rpb24gYWxpdmUuIik6KHQubG9nXygiQ2xvc2luZyB1bmhlYWx0aHkgY29ubmVjdGlvbiBhZnRlciB0aW1lb3V0LiIpLHQuY2xvc2UoKSkpfSxNYXRoLmZsb29yKGUpKSl9LFdhLnByb3RvdHlwZS5uZXh0VHJhbnNwb3J0SWRfPWZ1bmN0aW9uKCl7cmV0dXJuImM6Iit0aGlzLmlkKyI6Iit0aGlzLmNvbm5lY3Rpb25Db3VudCsrfSxXYS5wcm90b3R5cGUuZGlzY29ublJlY2VpdmVyXz1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiBmdW5jdGlvbih0KXtlPT09bi5jb25uXz9uLm9uQ29ubmVjdGlvbkxvc3RfKHQpOmU9PT1uLnNlY29uZGFyeUNvbm5fPyhuLmxvZ18oIlNlY29uZGFyeSBjb25uZWN0aW9uIGxvc3QuIiksbi5vblNlY29uZGFyeUNvbm5lY3Rpb25Mb3N0XygpKTpuLmxvZ18oImNsb3NpbmcgYW4gb2xkIGNvbm5lY3Rpb24iKX19LFdhLnByb3RvdHlwZS5jb25uUmVjZWl2ZXJfPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpezIhPT1uLnN0YXRlXyYmKGU9PT1uLnJ4Xz9uLm9uUHJpbWFyeU1lc3NhZ2VSZWNlaXZlZF8odCk6ZT09PW4uc2Vjb25kYXJ5Q29ubl8/bi5vblNlY29uZGFyeU1lc3NhZ2VSZWNlaXZlZF8odCk6bi5sb2dfKCJtZXNzYWdlIG9uIG9sZCBjb25uZWN0aW9uIikpfX0sV2EucHJvdG90eXBlLnNlbmRSZXF1ZXN0PWZ1bmN0aW9uKHQpe3Q9e3Q6ImQiLGQ6dH07dGhpcy5zZW5kRGF0YV8odCl9LFdhLnByb3RvdHlwZS50cnlDbGVhbnVwQ29ubmVjdGlvbj1mdW5jdGlvbigpe3RoaXMudHhfPT09dGhpcy5zZWNvbmRhcnlDb25uXyYmdGhpcy5yeF89PT10aGlzLnNlY29uZGFyeUNvbm5fJiYodGhpcy5sb2dfKCJjbGVhbmluZyB1cCBhbmQgcHJvbW90aW5nIGEgY29ubmVjdGlvbjogIit0aGlzLnNlY29uZGFyeUNvbm5fLmNvbm5JZCksdGhpcy5jb25uXz10aGlzLnNlY29uZGFyeUNvbm5fLHRoaXMuc2Vjb25kYXJ5Q29ubl89bnVsbCl9LFdhLnByb3RvdHlwZS5vblNlY29uZGFyeUNvbnRyb2xfPWZ1bmN0aW9uKHQpeyJ0ImluIHQmJigiYSI9PT0odD10LnQpP3RoaXMudXBncmFkZUlmU2Vjb25kYXJ5SGVhbHRoeV8oKToiciI9PT10Pyh0aGlzLmxvZ18oIkdvdCBhIHJlc2V0IG9uIHNlY29uZGFyeSwgY2xvc2luZyBpdCIpLHRoaXMuc2Vjb25kYXJ5Q29ubl8uY2xvc2UoKSx0aGlzLnR4XyE9PXRoaXMuc2Vjb25kYXJ5Q29ubl8mJnRoaXMucnhfIT09dGhpcy5zZWNvbmRhcnlDb25uX3x8dGhpcy5jbG9zZSgpKToibyI9PT10JiYodGhpcy5sb2dfKCJnb3QgcG9uZyBvbiBzZWNvbmRhcnkuIiksdGhpcy5zZWNvbmRhcnlSZXNwb25zZXNSZXF1aXJlZF8tLSx0aGlzLnVwZ3JhZGVJZlNlY29uZGFyeUhlYWx0aHlfKCkpKX0sV2EucHJvdG90eXBlLm9uU2Vjb25kYXJ5TWVzc2FnZVJlY2VpdmVkXz1mdW5jdGlvbih0KXt2YXIgZT1xcygidCIsdCksdD1xcygiZCIsdCk7aWYoImMiPT09ZSl0aGlzLm9uU2Vjb25kYXJ5Q29udHJvbF8odCk7ZWxzZXtpZigiZCIhPT1lKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcm90b2NvbCBsYXllcjogIitlKTt0aGlzLnBlbmRpbmdEYXRhTWVzc2FnZXMucHVzaCh0KX19LFdhLnByb3RvdHlwZS51cGdyYWRlSWZTZWNvbmRhcnlIZWFsdGh5Xz1mdW5jdGlvbigpe3RoaXMuc2Vjb25kYXJ5UmVzcG9uc2VzUmVxdWlyZWRfPD0wPyh0aGlzLmxvZ18oIlNlY29uZGFyeSBjb25uZWN0aW9uIGlzIGhlYWx0aHkuIiksdGhpcy5pc0hlYWx0aHlfPSEwLHRoaXMuc2Vjb25kYXJ5Q29ubl8ubWFya0Nvbm5lY3Rpb25IZWFsdGh5KCksdGhpcy5wcm9jZWVkV2l0aFVwZ3JhZGVfKCkpOih0aGlzLmxvZ18oInNlbmRpbmcgcGluZyBvbiBzZWNvbmRhcnkuIiksdGhpcy5zZWNvbmRhcnlDb25uXy5zZW5kKHt0OiJjIixkOnt0OiJwIixkOnt9fX0pKX0sV2EucHJvdG90eXBlLnByb2NlZWRXaXRoVXBncmFkZV89ZnVuY3Rpb24oKXt0aGlzLnNlY29uZGFyeUNvbm5fLnN0YXJ0KCksdGhpcy5sb2dfKCJzZW5kaW5nIGNsaWVudCBhY2sgb24gc2Vjb25kYXJ5IiksdGhpcy5zZWNvbmRhcnlDb25uXy5zZW5kKHt0OiJjIixkOnt0OiJhIixkOnt9fX0pLHRoaXMubG9nXygiRW5kaW5nIHRyYW5zbWlzc2lvbiBvbiBwcmltYXJ5IiksdGhpcy5jb25uXy5zZW5kKHt0OiJjIixkOnt0OiJuIixkOnt9fX0pLHRoaXMudHhfPXRoaXMuc2Vjb25kYXJ5Q29ubl8sdGhpcy50cnlDbGVhbnVwQ29ubmVjdGlvbigpfSxXYS5wcm90b3R5cGUub25QcmltYXJ5TWVzc2FnZVJlY2VpdmVkXz1mdW5jdGlvbih0KXt2YXIgZT1xcygidCIsdCksdD1xcygiZCIsdCk7ImMiPT09ZT90aGlzLm9uQ29udHJvbF8odCk6ImQiPT09ZSYmdGhpcy5vbkRhdGFNZXNzYWdlXyh0KX0sV2EucHJvdG90eXBlLm9uRGF0YU1lc3NhZ2VfPWZ1bmN0aW9uKHQpe3RoaXMub25QcmltYXJ5UmVzcG9uc2VfKCksdGhpcy5vbk1lc3NhZ2VfKHQpfSxXYS5wcm90b3R5cGUub25QcmltYXJ5UmVzcG9uc2VfPWZ1bmN0aW9uKCl7dGhpcy5pc0hlYWx0aHlffHwodGhpcy5wcmltYXJ5UmVzcG9uc2VzUmVxdWlyZWRfLS0sdGhpcy5wcmltYXJ5UmVzcG9uc2VzUmVxdWlyZWRfPD0wJiYodGhpcy5sb2dfKCJQcmltYXJ5IGNvbm5lY3Rpb24gaXMgaGVhbHRoeS4iKSx0aGlzLmlzSGVhbHRoeV89ITAsdGhpcy5jb25uXy5tYXJrQ29ubmVjdGlvbkhlYWx0aHkoKSkpfSxXYS5wcm90b3R5cGUub25Db250cm9sXz1mdW5jdGlvbih0KXt2YXIgZT1xcygidCIsdCk7aWYoImQiaW4gdCl7dD10LmQ7aWYoImgiPT09ZSl0aGlzLm9uSGFuZHNoYWtlXyh0KTtlbHNlIGlmKCJuIj09PWUpe3RoaXMubG9nXygicmVjdmQgZW5kIHRyYW5zbWlzc2lvbiBvbiBwcmltYXJ5IiksdGhpcy5yeF89dGhpcy5zZWNvbmRhcnlDb25uXztmb3IodmFyIG49MDtuPHRoaXMucGVuZGluZ0RhdGFNZXNzYWdlcy5sZW5ndGg7KytuKXRoaXMub25EYXRhTWVzc2FnZV8odGhpcy5wZW5kaW5nRGF0YU1lc3NhZ2VzW25dKTt0aGlzLnBlbmRpbmdEYXRhTWVzc2FnZXM9W10sdGhpcy50cnlDbGVhbnVwQ29ubmVjdGlvbigpfWVsc2UicyI9PT1lP3RoaXMub25Db25uZWN0aW9uU2h1dGRvd25fKHQpOiJyIj09PWU/dGhpcy5vblJlc2V0Xyh0KToiZSI9PT1lP0ZzKCJTZXJ2ZXIgRXJyb3I6ICIrdCk6Im8iPT09ZT8odGhpcy5sb2dfKCJnb3QgcG9uZyBvbiBwcmltYXJ5LiIpLHRoaXMub25QcmltYXJ5UmVzcG9uc2VfKCksdGhpcy5zZW5kUGluZ09uUHJpbWFyeUlmTmVjZXNzYXJ5XygpKTpGcygiVW5rbm93biBjb250cm9sIHBhY2tldCBjb21tYW5kOiAiK2UpfX0sV2EucHJvdG90eXBlLm9uSGFuZHNoYWtlXz1mdW5jdGlvbih0KXt2YXIgZT10LnRzLG49dC52LHI9dC5oO3RoaXMuc2Vzc2lvbklkPXQucyx0aGlzLnJlcG9JbmZvXy5ob3N0PXIsMD09PXRoaXMuc3RhdGVfJiYodGhpcy5jb25uXy5zdGFydCgpLHRoaXMub25Db25uZWN0aW9uRXN0YWJsaXNoZWRfKHRoaXMuY29ubl8sZSksIjUiIT09biYmWnMoIlByb3RvY29sIHZlcnNpb24gbWlzbWF0Y2ggZGV0ZWN0ZWQiKSx0aGlzLnRyeVN0YXJ0VXBncmFkZV8oKSl9LFdhLnByb3RvdHlwZS50cnlTdGFydFVwZ3JhZGVfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50cmFuc3BvcnRNYW5hZ2VyXy51cGdyYWRlVHJhbnNwb3J0KCk7dCYmdGhpcy5zdGFydFVwZ3JhZGVfKHQpfSxXYS5wcm90b3R5cGUuc3RhcnRVcGdyYWRlXz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuc2Vjb25kYXJ5Q29ubl89bmV3IHQodGhpcy5uZXh0VHJhbnNwb3J0SWRfKCksdGhpcy5yZXBvSW5mb18sdGhpcy5hcHBsaWNhdGlvbklkXyx0aGlzLnNlc3Npb25JZCksdGhpcy5zZWNvbmRhcnlSZXNwb25zZXNSZXF1aXJlZF89dC5yZXNwb25zZXNSZXF1aXJlZFRvQmVIZWFsdGh5fHwwO3ZhciBuPXRoaXMuY29ublJlY2VpdmVyXyh0aGlzLnNlY29uZGFyeUNvbm5fKSx0PXRoaXMuZGlzY29ublJlY2VpdmVyXyh0aGlzLnNlY29uZGFyeUNvbm5fKTt0aGlzLnNlY29uZGFyeUNvbm5fLm9wZW4obix0KSxzYShmdW5jdGlvbigpe2Uuc2Vjb25kYXJ5Q29ubl8mJihlLmxvZ18oIlRpbWVkIG91dCB0cnlpbmcgdG8gdXBncmFkZS4iKSxlLnNlY29uZGFyeUNvbm5fLmNsb3NlKCkpfSxNYXRoLmZsb29yKDZlNCkpfSxXYS5wcm90b3R5cGUub25SZXNldF89ZnVuY3Rpb24odCl7dGhpcy5sb2dfKCJSZXNldCBwYWNrZXQgcmVjZWl2ZWQuICBOZXcgaG9zdDogIit0KSx0aGlzLnJlcG9JbmZvXy5ob3N0PXQsMT09PXRoaXMuc3RhdGVfP3RoaXMuY2xvc2UoKToodGhpcy5jbG9zZUNvbm5lY3Rpb25zXygpLHRoaXMuc3RhcnRfKCkpfSxXYS5wcm90b3R5cGUub25Db25uZWN0aW9uRXN0YWJsaXNoZWRfPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0aGlzLmxvZ18oIlJlYWx0aW1lIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQuIiksdGhpcy5jb25uXz10LHRoaXMuc3RhdGVfPTEsdGhpcy5vblJlYWR5XyYmKHRoaXMub25SZWFkeV8oZSx0aGlzLnNlc3Npb25JZCksdGhpcy5vblJlYWR5Xz1udWxsKSwwPT09dGhpcy5wcmltYXJ5UmVzcG9uc2VzUmVxdWlyZWRfPyh0aGlzLmxvZ18oIlByaW1hcnkgY29ubmVjdGlvbiBpcyBoZWFsdGh5LiIpLHRoaXMuaXNIZWFsdGh5Xz0hMCk6c2EoZnVuY3Rpb24oKXtuLnNlbmRQaW5nT25QcmltYXJ5SWZOZWNlc3NhcnlfKCl9LE1hdGguZmxvb3IoNWUzKSl9LFdhLnByb3RvdHlwZS5zZW5kUGluZ09uUHJpbWFyeUlmTmVjZXNzYXJ5Xz1mdW5jdGlvbigpe3RoaXMuaXNIZWFsdGh5X3x8MSE9PXRoaXMuc3RhdGVffHwodGhpcy5sb2dfKCJzZW5kaW5nIHBpbmcgb24gcHJpbWFyeS4iKSx0aGlzLnNlbmREYXRhXyh7dDoiYyIsZDp7dDoicCIsZDp7fX19KSl9LFdhLnByb3RvdHlwZS5vblNlY29uZGFyeUNvbm5lY3Rpb25Mb3N0Xz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2Vjb25kYXJ5Q29ubl87dGhpcy5zZWNvbmRhcnlDb25uXz1udWxsLHRoaXMudHhfIT09dCYmdGhpcy5yeF8hPT10fHx0aGlzLmNsb3NlKCl9LFdhLnByb3RvdHlwZS5vbkNvbm5lY3Rpb25Mb3N0Xz1mdW5jdGlvbih0KXt0aGlzLmNvbm5fPW51bGwsdHx8MCE9PXRoaXMuc3RhdGVfPzE9PT10aGlzLnN0YXRlXyYmdGhpcy5sb2dfKCJSZWFsdGltZSBjb25uZWN0aW9uIGxvc3QuIik6KHRoaXMubG9nXygiUmVhbHRpbWUgY29ubmVjdGlvbiBmYWlsZWQuIiksdGhpcy5yZXBvSW5mb18uaXNDYWNoZWFibGVIb3N0KCkmJihLcy5yZW1vdmUoImhvc3Q6Iit0aGlzLnJlcG9JbmZvXy5ob3N0KSx0aGlzLnJlcG9JbmZvXy5pbnRlcm5hbEhvc3Q9dGhpcy5yZXBvSW5mb18uaG9zdCkpLHRoaXMuY2xvc2UoKX0sV2EucHJvdG90eXBlLm9uQ29ubmVjdGlvblNodXRkb3duXz1mdW5jdGlvbih0KXt0aGlzLmxvZ18oIkNvbm5lY3Rpb24gc2h1dGRvd24gY29tbWFuZCByZWNlaXZlZC4gU2h1dHRpbmcgZG93bi4uLiIpLHRoaXMub25LaWxsXyYmKHRoaXMub25LaWxsXyh0KSx0aGlzLm9uS2lsbF89bnVsbCksdGhpcy5vbkRpc2Nvbm5lY3RfPW51bGwsdGhpcy5jbG9zZSgpfSxXYS5wcm90b3R5cGUuc2VuZERhdGFfPWZ1bmN0aW9uKHQpe2lmKDEhPT10aGlzLnN0YXRlXyl0aHJvdyJDb25uZWN0aW9uIGlzIG5vdCBjb25uZWN0ZWQiO3RoaXMudHhfLnNlbmQodCl9LFdhLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpezIhPT10aGlzLnN0YXRlXyYmKHRoaXMubG9nXygiQ2xvc2luZyByZWFsdGltZSBjb25uZWN0aW9uLiIpLHRoaXMuc3RhdGVfPTIsdGhpcy5jbG9zZUNvbm5lY3Rpb25zXygpLHRoaXMub25EaXNjb25uZWN0XyYmKHRoaXMub25EaXNjb25uZWN0XygpLHRoaXMub25EaXNjb25uZWN0Xz1udWxsKSl9LFdhLnByb3RvdHlwZS5jbG9zZUNvbm5lY3Rpb25zXz1mdW5jdGlvbigpe3RoaXMubG9nXygiU2h1dHRpbmcgZG93biBhbGwgY29ubmVjdGlvbnMiKSx0aGlzLmNvbm5fJiYodGhpcy5jb25uXy5jbG9zZSgpLHRoaXMuY29ubl89bnVsbCksdGhpcy5zZWNvbmRhcnlDb25uXyYmKHRoaXMuc2Vjb25kYXJ5Q29ubl8uY2xvc2UoKSx0aGlzLnNlY29uZGFyeUNvbm5fPW51bGwpLHRoaXMuaGVhbHRoeVRpbWVvdXRfJiYoY2xlYXJUaW1lb3V0KHRoaXMuaGVhbHRoeVRpbWVvdXRfKSx0aGlzLmhlYWx0aHlUaW1lb3V0Xz1udWxsKX0sV2EpO2Z1bmN0aW9uIFdhKHQsZSxuLHIsaSxvLHMsYSl7dGhpcy5pZD10LHRoaXMucmVwb0luZm9fPWUsdGhpcy5hcHBsaWNhdGlvbklkXz1uLHRoaXMub25NZXNzYWdlXz1yLHRoaXMub25SZWFkeV89aSx0aGlzLm9uRGlzY29ubmVjdF89byx0aGlzLm9uS2lsbF89cyx0aGlzLmxhc3RTZXNzaW9uSWQ9YSx0aGlzLmNvbm5lY3Rpb25Db3VudD0wLHRoaXMucGVuZGluZ0RhdGFNZXNzYWdlcz1bXSx0aGlzLnN0YXRlXz0wLHRoaXMubG9nXz1KcygiYzoiK3RoaXMuaWQrIjoiKSx0aGlzLnRyYW5zcG9ydE1hbmFnZXJfPW5ldyBWYShlKSx0aGlzLmxvZ18oIkNvbm5lY3Rpb24gY3JlYXRlZCIpLHRoaXMuc3RhcnRfKCl9SGEucHJvdG90eXBlLnB1dD1mdW5jdGlvbih0LGUsbixyKXt9LEhhLnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbih0LGUsbixyKXt9LEhhLnByb3RvdHlwZS5yZWZyZXNoQXV0aFRva2VuPWZ1bmN0aW9uKHQpe30sSGEucHJvdG90eXBlLm9uRGlzY29ubmVjdFB1dD1mdW5jdGlvbih0LGUsbil7fSxIYS5wcm90b3R5cGUub25EaXNjb25uZWN0TWVyZ2U9ZnVuY3Rpb24odCxlLG4pe30sSGEucHJvdG90eXBlLm9uRGlzY29ubmVjdENhbmNlbD1mdW5jdGlvbih0LGUpe30sSGEucHJvdG90eXBlLnJlcG9ydFN0YXRzPWZ1bmN0aW9uKHQpe30sej1IYTtmdW5jdGlvbiBIYSgpe312YXIgR2E9KHphLnByb3RvdHlwZS50cmlnZ2VyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO2lmKEFycmF5LmlzQXJyYXkodGhpcy5saXN0ZW5lcnNfW3RdKSlmb3IodmFyIHI9bm8oW10sZW8odGhpcy5saXN0ZW5lcnNfW3RdKSksaT0wO2k8ci5sZW5ndGg7aSsrKXJbaV0uY2FsbGJhY2suYXBwbHkocltpXS5jb250ZXh0LGUpfSx6YS5wcm90b3R5cGUub249ZnVuY3Rpb24odCxlLG4pe3RoaXMudmFsaWRhdGVFdmVudFR5cGVfKHQpLHRoaXMubGlzdGVuZXJzX1t0XT10aGlzLmxpc3RlbmVyc19bdF18fFtdLHRoaXMubGlzdGVuZXJzX1t0XS5wdXNoKHtjYWxsYmFjazplLGNvbnRleHQ6bn0pO3Q9dGhpcy5nZXRJbml0aWFsRXZlbnQodCk7dCYmZS5hcHBseShuLHQpfSx6YS5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLnZhbGlkYXRlRXZlbnRUeXBlXyh0KTtmb3IodmFyIHI9dGhpcy5saXN0ZW5lcnNfW3RdfHxbXSxpPTA7aTxyLmxlbmd0aDtpKyspaWYocltpXS5jYWxsYmFjaz09PWUmJighbnx8bj09PXJbaV0uY29udGV4dCkpcmV0dXJuIHZvaWQgci5zcGxpY2UoaSwxKX0semEucHJvdG90eXBlLnZhbGlkYXRlRXZlbnRUeXBlXz1mdW5jdGlvbihlKXtzbyh0aGlzLmFsbG93ZWRFdmVudHNfLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lfSksIlVua25vd24gZXZlbnQ6ICIrZSl9LHphKTtmdW5jdGlvbiB6YSh0KXt0aGlzLmFsbG93ZWRFdmVudHNfPXQsdGhpcy5saXN0ZW5lcnNfPXt9LHNvKEFycmF5LmlzQXJyYXkodCkmJjA8dC5sZW5ndGgsIlJlcXVpcmVzIGEgbm9uLWVtcHR5IGFycmF5Iil9dmFyIFFhLFlhPShYaShYYSxRYT1HYSksWGEuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFhhfSxYYS5wcm90b3R5cGUuZ2V0SW5pdGlhbEV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBzbygib25saW5lIj09PXQsIlVua25vd24gZXZlbnQgdHlwZTogIit0KSxbdGhpcy5vbmxpbmVfXX0sWGEucHJvdG90eXBlLmN1cnJlbnRseU9ubGluZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9ubGluZV99LFhhKTtmdW5jdGlvbiBYYSgpe3ZhciB0PVFhLmNhbGwodGhpcyxbIm9ubGluZSJdKXx8dGhpcztyZXR1cm4gdC5vbmxpbmVfPSEwLCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHx2b2lkIDA9PT13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcnx8dm8oKXx8KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLGZ1bmN0aW9uKCl7dC5vbmxpbmVffHwodC5vbmxpbmVfPSEwLHQudHJpZ2dlcigib25saW5lIiwhMCkpfSwhMSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLGZ1bmN0aW9uKCl7dC5vbmxpbmVfJiYodC5vbmxpbmVfPSExLHQudHJpZ2dlcigib25saW5lIiwhMSkpfSwhMSkpLHR9dmFyIEphPTMyLCRhPTc2OCxaYT0odHUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PSIiLGU9dGhpcy5waWVjZU51bV87ZTx0aGlzLnBpZWNlc18ubGVuZ3RoO2UrKykiIiE9PXRoaXMucGllY2VzX1tlXSYmKHQrPSIvIit0aGlzLnBpZWNlc19bZV0pO3JldHVybiB0fHwiLyJ9LHR1KTtmdW5jdGlvbiB0dSh0LGUpe2lmKHZvaWQgMD09PWUpe3RoaXMucGllY2VzXz10LnNwbGl0KCIvIik7Zm9yKHZhciBuPTAscj0wO3I8dGhpcy5waWVjZXNfLmxlbmd0aDtyKyspMDx0aGlzLnBpZWNlc19bcl0ubGVuZ3RoJiYodGhpcy5waWVjZXNfW25dPXRoaXMucGllY2VzX1tyXSxuKyspO3RoaXMucGllY2VzXy5sZW5ndGg9bix0aGlzLnBpZWNlTnVtXz0wfWVsc2UgdGhpcy5waWVjZXNfPXQsdGhpcy5waWVjZU51bV89ZX1mdW5jdGlvbiBldSgpe3JldHVybiBuZXcgWmEoIiIpfWZ1bmN0aW9uIG51KHQpe3JldHVybiB0LnBpZWNlTnVtXz49dC5waWVjZXNfLmxlbmd0aD9udWxsOnQucGllY2VzX1t0LnBpZWNlTnVtX119ZnVuY3Rpb24gcnUodCl7cmV0dXJuIHQucGllY2VzXy5sZW5ndGgtdC5waWVjZU51bV99ZnVuY3Rpb24gaXUodCl7dmFyIGU9dC5waWVjZU51bV87cmV0dXJuIGU8dC5waWVjZXNfLmxlbmd0aCYmZSsrLG5ldyBaYSh0LnBpZWNlc18sZSl9ZnVuY3Rpb24gb3UodCl7cmV0dXJuIHQucGllY2VOdW1fPHQucGllY2VzXy5sZW5ndGg/dC5waWVjZXNfW3QucGllY2VzXy5sZW5ndGgtMV06bnVsbH1mdW5jdGlvbiBzdSh0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0wKSx0LnBpZWNlc18uc2xpY2UodC5waWVjZU51bV8rZSl9ZnVuY3Rpb24gYXUodCl7aWYodC5waWVjZU51bV8+PXQucGllY2VzXy5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBlPVtdLG49dC5waWVjZU51bV87bjx0LnBpZWNlc18ubGVuZ3RoLTE7bisrKWUucHVzaCh0LnBpZWNlc19bbl0pO3JldHVybiBuZXcgWmEoZSwwKX1mdW5jdGlvbiB1dSh0LGUpe2Zvcih2YXIgbj1bXSxyPXQucGllY2VOdW1fO3I8dC5waWVjZXNfLmxlbmd0aDtyKyspbi5wdXNoKHQucGllY2VzX1tyXSk7aWYoZSBpbnN0YW5jZW9mIFphKWZvcihyPWUucGllY2VOdW1fO3I8ZS5waWVjZXNfLmxlbmd0aDtyKyspbi5wdXNoKGUucGllY2VzX1tyXSk7ZWxzZSBmb3IodmFyIGk9ZS5zcGxpdCgiLyIpLHI9MDtyPGkubGVuZ3RoO3IrKykwPGlbcl0ubGVuZ3RoJiZuLnB1c2goaVtyXSk7cmV0dXJuIG5ldyBaYShuLDApfWZ1bmN0aW9uIGN1KHQpe3JldHVybiB0LnBpZWNlTnVtXz49dC5waWVjZXNfLmxlbmd0aH1mdW5jdGlvbiBodSh0LGUpe3ZhciBuPW51KHQpLHI9bnUoZSk7aWYobnVsbD09PW4pcmV0dXJuIGU7aWYobj09PXIpcmV0dXJuIGh1KGl1KHQpLGl1KGUpKTt0aHJvdyBuZXcgRXJyb3IoIklOVEVSTkFMIEVSUk9SOiBpbm5lclBhdGggKCIrZSsiKSBpcyBub3Qgd2l0aGluIG91dGVyUGF0aCAoIit0KyIpIil9ZnVuY3Rpb24gbHUodCxlKXtmb3IodmFyIG49c3UodCwwKSxyPXN1KGUsMCksaT0wO2k8bi5sZW5ndGgmJmk8ci5sZW5ndGg7aSsrKXt2YXIgbz1uYShuW2ldLHJbaV0pO2lmKDAhPT1vKXJldHVybiBvfXJldHVybiBuLmxlbmd0aD09PXIubGVuZ3RoPzA6bi5sZW5ndGg8ci5sZW5ndGg/LTE6MX1mdW5jdGlvbiBmdSh0LGUpe2lmKHJ1KHQpIT09cnUoZSkpcmV0dXJuITE7Zm9yKHZhciBuPXQucGllY2VOdW1fLHI9ZS5waWVjZU51bV87bjw9dC5waWVjZXNfLmxlbmd0aDtuKysscisrKWlmKHQucGllY2VzX1tuXSE9PWUucGllY2VzX1tyXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBwdSh0LGUpe3ZhciBuPXQucGllY2VOdW1fLHI9ZS5waWVjZU51bV87aWYocnUodCk+cnUoZSkpcmV0dXJuITE7Zm9yKDtuPHQucGllY2VzXy5sZW5ndGg7KXtpZih0LnBpZWNlc19bbl0hPT1lLnBpZWNlc19bcl0pcmV0dXJuITE7KytuLCsrcn1yZXR1cm4hMH12YXIgZHU9ZnVuY3Rpb24odCxlKXt0aGlzLmVycm9yUHJlZml4Xz1lLHRoaXMucGFydHNfPXN1KHQsMCksdGhpcy5ieXRlTGVuZ3RoXz1NYXRoLm1heCgxLHRoaXMucGFydHNfLmxlbmd0aCk7Zm9yKHZhciBuPTA7bjx0aGlzLnBhcnRzXy5sZW5ndGg7bisrKXRoaXMuYnl0ZUxlbmd0aF8rPXpvKHRoaXMucGFydHNfW25dKTt2dSh0aGlzKX07ZnVuY3Rpb24gdnUodCl7aWYodC5ieXRlTGVuZ3RoXz4kYSl0aHJvdyBuZXcgRXJyb3IodC5lcnJvclByZWZpeF8rImhhcyBhIGtleSBwYXRoIGxvbmdlciB0aGFuICIrJGErIiBieXRlcyAoIit0LmJ5dGVMZW5ndGhfKyIpLiIpO2lmKHQucGFydHNfLmxlbmd0aD5KYSl0aHJvdyBuZXcgRXJyb3IodC5lcnJvclByZWZpeF8rInBhdGggc3BlY2lmaWVkIGV4Y2VlZHMgdGhlIG1heGltdW0gZGVwdGggdGhhdCBjYW4gYmUgd3JpdHRlbiAoIitKYSsiKSBvciBvYmplY3QgY29udGFpbnMgYSBjeWNsZSAiK2d1KHQpKX1mdW5jdGlvbiBndSh0KXtyZXR1cm4gMD09PXQucGFydHNfLmxlbmd0aD8iIjoiaW4gcHJvcGVydHkgJyIrdC5wYXJ0c18uam9pbigiLiIpKyInIn12YXIgeXUsbXU9KFhpKGJ1LHl1PUdhKSxidS5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBuZXcgYnV9LGJ1LnByb3RvdHlwZS5nZXRJbml0aWFsRXZlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHNvKCJ2aXNpYmxlIj09PXQsIlVua25vd24gZXZlbnQgdHlwZTogIit0KSxbdGhpcy52aXNpYmxlX119LGJ1KTtmdW5jdGlvbiBidSgpe3ZhciBlLHQsbj15dS5jYWxsKHRoaXMsWyJ2aXNpYmxlIl0pfHx0aGlzO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJnZvaWQgMCE9PWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXImJih2b2lkIDAhPT1kb2N1bWVudC5oaWRkZW4/KHQ9InZpc2liaWxpdHljaGFuZ2UiLGU9ImhpZGRlbiIpOnZvaWQgMCE9PWRvY3VtZW50Lm1vekhpZGRlbj8odD0ibW96dmlzaWJpbGl0eWNoYW5nZSIsZT0ibW96SGlkZGVuIik6dm9pZCAwIT09ZG9jdW1lbnQubXNIaWRkZW4/KHQ9Im1zdmlzaWJpbGl0eWNoYW5nZSIsZT0ibXNIaWRkZW4iKTp2b2lkIDAhPT1kb2N1bWVudC53ZWJraXRIaWRkZW4mJih0PSJ3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlIixlPSJ3ZWJraXRIaWRkZW4iKSksbi52aXNpYmxlXz0hMCx0JiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHQsZnVuY3Rpb24oKXt2YXIgdD0hZG9jdW1lbnRbZV07dCE9PW4udmlzaWJsZV8mJihuLnZpc2libGVfPXQsbi50cmlnZ2VyKCJ2aXNpYmxlIix0KSl9LCExKSxufXZhciB3dSxfdT0xZTMsSXU9M2U1LFR1PShYaShFdSx3dT16KSxFdS5wcm90b3R5cGUuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24odCxlLG4pe3ZhciByPSsrdGhpcy5yZXF1ZXN0TnVtYmVyXyxlPXtyOnIsYTp0LGI6ZX07dGhpcy5sb2dfKFJvKGUpKSxzbyh0aGlzLmNvbm5lY3RlZF8sInNlbmRSZXF1ZXN0IGNhbGwgd2hlbiB3ZSdyZSBub3QgY29ubmVjdGVkIG5vdCBhbGxvd2VkLiIpLHRoaXMucmVhbHRpbWVfLnNlbmRSZXF1ZXN0KGUpLG4mJih0aGlzLnJlcXVlc3RDQkhhc2hfW3JdPW4pfSxFdS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMscj1uZXcgbG8saT17cDp0LnBhdGgudG9TdHJpbmcoKSxxOnQucXVlcnlPYmplY3QoKX0sZT17YWN0aW9uOiJnIixyZXF1ZXN0Omksb25Db21wbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT10LmQ7Im9rIj09PXQucz8obi5vbkRhdGFVcGRhdGVfKGkucCxlLCExLG51bGwpLHIucmVzb2x2ZShlKSk6ci5yZWplY3QoZSl9fTt0aGlzLm91dHN0YW5kaW5nR2V0c18ucHVzaChlKSx0aGlzLm91dHN0YW5kaW5nR2V0Q291bnRfKys7dmFyIG89dGhpcy5vdXRzdGFuZGluZ0dldHNfLmxlbmd0aC0xO3JldHVybiB0aGlzLmNvbm5lY3RlZF98fHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1uLm91dHN0YW5kaW5nR2V0c19bb107dm9pZCAwIT09dCYmZT09PXQmJihkZWxldGUgbi5vdXRzdGFuZGluZ0dldHNfW29dLG4ub3V0c3RhbmRpbmdHZXRDb3VudF8tLSwwPT09bi5vdXRzdGFuZGluZ0dldENvdW50XyYmKG4ub3V0c3RhbmRpbmdHZXRzXz1bXSksbi5sb2dfKCJnZXQgIitvKyIgdGltZWQgb3V0IG9uIGNvbm5lY3Rpb24iKSxyLnJlamVjdChuZXcgRXJyb3IoIkNsaWVudCBpcyBvZmZsaW5lLiIpKSl9LDNlMyksdGhpcy5jb25uZWN0ZWRfJiZ0aGlzLnNlbmRHZXRfKG8pLHIucHJvbWlzZX0sRXUucHJvdG90eXBlLmxpc3Rlbj1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10LnF1ZXJ5SWRlbnRpZmllcigpLG89dC5wYXRoLnRvU3RyaW5nKCk7dGhpcy5sb2dfKCJMaXN0ZW4gY2FsbGVkIGZvciAiK28rIiAiK2kpLHRoaXMubGlzdGVucy5oYXMobyl8fHRoaXMubGlzdGVucy5zZXQobyxuZXcgTWFwKSxzbyh0LmdldFF1ZXJ5UGFyYW1zKCkuaXNEZWZhdWx0KCl8fCF0LmdldFF1ZXJ5UGFyYW1zKCkubG9hZHNBbGxEYXRhKCksImxpc3RlbigpIGNhbGxlZCBmb3Igbm9uLWRlZmF1bHQgYnV0IGNvbXBsZXRlIHF1ZXJ5Iiksc28oIXRoaXMubGlzdGVucy5nZXQobykuaGFzKGkpLCJsaXN0ZW4oKSBjYWxsZWQgdHdpY2UgZm9yIHNhbWUgcGF0aC9xdWVyeUlkLiIpO249e29uQ29tcGxldGU6cixoYXNoRm46ZSxxdWVyeTp0LHRhZzpufTt0aGlzLmxpc3RlbnMuZ2V0KG8pLnNldChpLG4pLHRoaXMuY29ubmVjdGVkXyYmdGhpcy5zZW5kTGlzdGVuXyhuKX0sRXUucHJvdG90eXBlLnNlbmRHZXRfPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj10aGlzLm91dHN0YW5kaW5nR2V0c19bZV07dGhpcy5zZW5kUmVxdWVzdCgiZyIsci5yZXF1ZXN0LGZ1bmN0aW9uKHQpe2RlbGV0ZSBuLm91dHN0YW5kaW5nR2V0c19bZV0sbi5vdXRzdGFuZGluZ0dldENvdW50Xy0tLDA9PT1uLm91dHN0YW5kaW5nR2V0Q291bnRfJiYobi5vdXRzdGFuZGluZ0dldHNfPVtdKSxyLm9uQ29tcGxldGUmJnIub25Db21wbGV0ZSh0KX0pfSxFdS5wcm90b3R5cGUuc2VuZExpc3Rlbl89ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxvPXIucXVlcnkscz1vLnBhdGgudG9TdHJpbmcoKSxhPW8ucXVlcnlJZGVudGlmaWVyKCk7dGhpcy5sb2dfKCJMaXN0ZW4gb24gIitzKyIgZm9yICIrYSk7dmFyIHQ9e3A6c307ci50YWcmJih0LnE9by5xdWVyeU9iamVjdCgpLHQudD1yLnRhZyksdC5oPXIuaGFzaEZuKCksdGhpcy5zZW5kUmVxdWVzdCgicSIsdCxmdW5jdGlvbih0KXt2YXIgZT10LmQsbj10LnM7RXUud2Fybk9uTGlzdGVuV2FybmluZ3NfKGUsbyksKGkubGlzdGVucy5nZXQocykmJmkubGlzdGVucy5nZXQocykuZ2V0KGEpKT09PXImJihpLmxvZ18oImxpc3RlbiByZXNwb25zZSIsdCksIm9rIiE9PW4mJmkucmVtb3ZlTGlzdGVuXyhzLGEpLHIub25Db21wbGV0ZSYmci5vbkNvbXBsZXRlKG4sZSkpfSl9LEV1Lndhcm5Pbkxpc3Rlbldhcm5pbmdzXz1mdW5jdGlvbih0LGUpe3QmJiJvYmplY3QiPT10eXBlb2YgdCYmT28odCwidyIpJiYodD1Ebyh0LCJ3IiksQXJyYXkuaXNBcnJheSh0KSYmfnQuaW5kZXhPZigibm9faW5kZXgiKSYmKHQ9JyIuaW5kZXhPbiI6ICInK2UuZ2V0UXVlcnlQYXJhbXMoKS5nZXRJbmRleCgpLnRvU3RyaW5nKCkrJyInLGU9ZS5wYXRoLnRvU3RyaW5nKCksWnMoIlVzaW5nIGFuIHVuc3BlY2lmaWVkIGluZGV4LiBZb3VyIGRhdGEgd2lsbCBiZSBkb3dubG9hZGVkIGFuZCBmaWx0ZXJlZCBvbiB0aGUgY2xpZW50LiBDb25zaWRlciBhZGRpbmcgIit0KyIgYXQgIitlKyIgdG8geW91ciBzZWN1cml0eSBydWxlcyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLiIpKSl9LEV1LnByb3RvdHlwZS5yZWZyZXNoQXV0aFRva2VuPWZ1bmN0aW9uKHQpe3RoaXMuYXV0aFRva2VuXz10LHRoaXMubG9nXygiQXV0aCB0b2tlbiByZWZyZXNoZWQiKSx0aGlzLmF1dGhUb2tlbl8/dGhpcy50cnlBdXRoKCk6dGhpcy5jb25uZWN0ZWRfJiZ0aGlzLnNlbmRSZXF1ZXN0KCJ1bmF1dGgiLHt9LGZ1bmN0aW9uKCl7fSksdGhpcy5yZWR1Y2VSZWNvbm5lY3REZWxheUlmQWRtaW5DcmVkZW50aWFsXyh0KX0sRXUucHJvdG90eXBlLnJlZHVjZVJlY29ubmVjdERlbGF5SWZBZG1pbkNyZWRlbnRpYWxfPWZ1bmN0aW9uKHQpeyh0JiY0MD09PXQubGVuZ3RofHxmdW5jdGlvbih0KXt0PVBvKHQpLmNsYWltcztyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJiEwPT09dC5hZG1pbn0odCkpJiYodGhpcy5sb2dfKCJBZG1pbiBhdXRoIGNyZWRlbnRpYWwgZGV0ZWN0ZWQuICBSZWR1Y2luZyBtYXggcmVjb25uZWN0IHRpbWUuIiksdGhpcy5tYXhSZWNvbm5lY3REZWxheV89M2U0KX0sRXUucHJvdG90eXBlLnRyeUF1dGg9ZnVuY3Rpb24oKXt2YXIgbix0LGUscj10aGlzO3RoaXMuY29ubmVjdGVkXyYmdGhpcy5hdXRoVG9rZW5fJiYodD1mdW5jdGlvbih0KXt0PVBvKHQpLmNsYWltcztyZXR1cm4hIXQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5oYXNPd25Qcm9wZXJ0eSgiaWF0Iil9KG49dGhpcy5hdXRoVG9rZW5fKT8iYXV0aCI6ImdhdXRoIixlPXtjcmVkOm59LG51bGw9PT10aGlzLmF1dGhPdmVycmlkZV8/ZS5ub2F1dGg9ITA6Im9iamVjdCI9PXR5cGVvZiB0aGlzLmF1dGhPdmVycmlkZV8mJihlLmF1dGh2YXI9dGhpcy5hdXRoT3ZlcnJpZGVfKSx0aGlzLnNlbmRSZXF1ZXN0KHQsZSxmdW5jdGlvbih0KXt2YXIgZT10LnMsdD10LmR8fCJlcnJvciI7ci5hdXRoVG9rZW5fPT09biYmKCJvayI9PT1lP3IuaW52YWxpZEF1dGhUb2tlbkNvdW50Xz0wOnIub25BdXRoUmV2b2tlZF8oZSx0KSl9KSl9LEV1LnByb3RvdHlwZS51bmxpc3Rlbj1mdW5jdGlvbih0LGUpe3ZhciBuPXQucGF0aC50b1N0cmluZygpLHI9dC5xdWVyeUlkZW50aWZpZXIoKTt0aGlzLmxvZ18oIlVubGlzdGVuIGNhbGxlZCBmb3IgIituKyIgIityKSxzbyh0LmdldFF1ZXJ5UGFyYW1zKCkuaXNEZWZhdWx0KCl8fCF0LmdldFF1ZXJ5UGFyYW1zKCkubG9hZHNBbGxEYXRhKCksInVubGlzdGVuKCkgY2FsbGVkIGZvciBub24tZGVmYXVsdCBidXQgY29tcGxldGUgcXVlcnkiKSx0aGlzLnJlbW92ZUxpc3Rlbl8obixyKSYmdGhpcy5jb25uZWN0ZWRfJiZ0aGlzLnNlbmRVbmxpc3Rlbl8obixyLHQucXVlcnlPYmplY3QoKSxlKX0sRXUucHJvdG90eXBlLnNlbmRVbmxpc3Rlbl89ZnVuY3Rpb24odCxlLG4scil7dGhpcy5sb2dfKCJVbmxpc3RlbiBvbiAiK3QrIiBmb3IgIitlKTt0PXtwOnR9O3ImJih0LnE9bix0LnQ9ciksdGhpcy5zZW5kUmVxdWVzdCgibiIsdCl9LEV1LnByb3RvdHlwZS5vbkRpc2Nvbm5lY3RQdXQ9ZnVuY3Rpb24odCxlLG4pe3RoaXMuY29ubmVjdGVkXz90aGlzLnNlbmRPbkRpc2Nvbm5lY3RfKCJvIix0LGUsbik6dGhpcy5vbkRpc2Nvbm5lY3RSZXF1ZXN0UXVldWVfLnB1c2goe3BhdGhTdHJpbmc6dCxhY3Rpb246Im8iLGRhdGE6ZSxvbkNvbXBsZXRlOm59KX0sRXUucHJvdG90eXBlLm9uRGlzY29ubmVjdE1lcmdlPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLmNvbm5lY3RlZF8/dGhpcy5zZW5kT25EaXNjb25uZWN0Xygib20iLHQsZSxuKTp0aGlzLm9uRGlzY29ubmVjdFJlcXVlc3RRdWV1ZV8ucHVzaCh7cGF0aFN0cmluZzp0LGFjdGlvbjoib20iLGRhdGE6ZSxvbkNvbXBsZXRlOm59KX0sRXUucHJvdG90eXBlLm9uRGlzY29ubmVjdENhbmNlbD1mdW5jdGlvbih0LGUpe3RoaXMuY29ubmVjdGVkXz90aGlzLnNlbmRPbkRpc2Nvbm5lY3RfKCJvYyIsdCxudWxsLGUpOnRoaXMub25EaXNjb25uZWN0UmVxdWVzdFF1ZXVlXy5wdXNoKHtwYXRoU3RyaW5nOnQsYWN0aW9uOiJvYyIsZGF0YTpudWxsLG9uQ29tcGxldGU6ZX0pfSxFdS5wcm90b3R5cGUuc2VuZE9uRGlzY29ubmVjdF89ZnVuY3Rpb24odCxlLG4scil7bj17cDplLGQ6bn07dGhpcy5sb2dfKCJvbkRpc2Nvbm5lY3QgIit0LG4pLHRoaXMuc2VuZFJlcXVlc3QodCxuLGZ1bmN0aW9uKHQpe3ImJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyKHQucyx0LmQpfSxNYXRoLmZsb29yKDApKX0pfSxFdS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKHQsZSxuLHIpe3RoaXMucHV0SW50ZXJuYWwoInAiLHQsZSxuLHIpfSxFdS5wcm90b3R5cGUubWVyZ2U9ZnVuY3Rpb24odCxlLG4scil7dGhpcy5wdXRJbnRlcm5hbCgibSIsdCxlLG4scil9LEV1LnByb3RvdHlwZS5wdXRJbnRlcm5hbD1mdW5jdGlvbih0LGUsbixyLGkpe249e3A6ZSxkOm59O3ZvaWQgMCE9PWkmJihuLmg9aSksdGhpcy5vdXRzdGFuZGluZ1B1dHNfLnB1c2goe2FjdGlvbjp0LHJlcXVlc3Q6bixvbkNvbXBsZXRlOnJ9KSx0aGlzLm91dHN0YW5kaW5nUHV0Q291bnRfKys7cj10aGlzLm91dHN0YW5kaW5nUHV0c18ubGVuZ3RoLTE7dGhpcy5jb25uZWN0ZWRfP3RoaXMuc2VuZFB1dF8ocik6dGhpcy5sb2dfKCJCdWZmZXJpbmcgcHV0OiAiK2UpfSxFdS5wcm90b3R5cGUuc2VuZFB1dF89ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxyPXRoaXMub3V0c3RhbmRpbmdQdXRzX1tlXS5hY3Rpb24sdD10aGlzLm91dHN0YW5kaW5nUHV0c19bZV0ucmVxdWVzdCxpPXRoaXMub3V0c3RhbmRpbmdQdXRzX1tlXS5vbkNvbXBsZXRlO3RoaXMub3V0c3RhbmRpbmdQdXRzX1tlXS5xdWV1ZWQ9dGhpcy5jb25uZWN0ZWRfLHRoaXMuc2VuZFJlcXVlc3Qocix0LGZ1bmN0aW9uKHQpe24ubG9nXyhyKyIgcmVzcG9uc2UiLHQpLGRlbGV0ZSBuLm91dHN0YW5kaW5nUHV0c19bZV0sbi5vdXRzdGFuZGluZ1B1dENvdW50Xy0tLDA9PT1uLm91dHN0YW5kaW5nUHV0Q291bnRfJiYobi5vdXRzdGFuZGluZ1B1dHNfPVtdKSxpJiZpKHQucyx0LmQpfSl9LEV1LnByb3RvdHlwZS5yZXBvcnRTdGF0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuY29ubmVjdGVkXyYmKHQ9e2M6dH0sdGhpcy5sb2dfKCJyZXBvcnRTdGF0cyIsdCksdGhpcy5zZW5kUmVxdWVzdCgicyIsdCxmdW5jdGlvbih0KXsib2siIT09dC5zJiYodD10LmQsZS5sb2dfKCJyZXBvcnRTdGF0cyIsIkVycm9yIHNlbmRpbmcgc3RhdHM6ICIrdCkpfSkpfSxFdS5wcm90b3R5cGUub25EYXRhTWVzc2FnZV89ZnVuY3Rpb24odCl7aWYoInIiaW4gdCl7dGhpcy5sb2dfKCJmcm9tIHNlcnZlcjogIitSbyh0KSk7dmFyIGU9dC5yLG49dGhpcy5yZXF1ZXN0Q0JIYXNoX1tlXTtuJiYoZGVsZXRlIHRoaXMucmVxdWVzdENCSGFzaF9bZV0sbih0LmIpKX1lbHNle2lmKCJlcnJvciJpbiB0KXRocm93IkEgc2VydmVyLXNpZGUgZXJyb3IgaGFzIG9jY3VycmVkOiAiK3QuZXJyb3I7ImEiaW4gdCYmdGhpcy5vbkRhdGFQdXNoXyh0LmEsdC5iKX19LEV1LnByb3RvdHlwZS5vbkRhdGFQdXNoXz1mdW5jdGlvbih0LGUpe3RoaXMubG9nXygiaGFuZGxlU2VydmVyTWVzc2FnZSIsdCxlKSwiZCI9PT10P3RoaXMub25EYXRhVXBkYXRlXyhlLnAsZS5kLCExLGUudCk6Im0iPT09dD90aGlzLm9uRGF0YVVwZGF0ZV8oZS5wLGUuZCwhMCxlLnQpOiJjIj09PXQ/dGhpcy5vbkxpc3RlblJldm9rZWRfKGUucCxlLnEpOiJhYyI9PT10P3RoaXMub25BdXRoUmV2b2tlZF8oZS5zLGUuZCk6InNkIj09PXQ/dGhpcy5vblNlY3VyaXR5RGVidWdQYWNrZXRfKGUpOkZzKCJVbnJlY29nbml6ZWQgYWN0aW9uIHJlY2VpdmVkIGZyb20gc2VydmVyOiAiK1JvKHQpKyJcbkFyZSB5b3UgdXNpbmcgdGhlIGxhdGVzdCBjbGllbnQ/Iil9LEV1LnByb3RvdHlwZS5vblJlYWR5Xz1mdW5jdGlvbih0LGUpe3RoaXMubG9nXygiY29ubmVjdGlvbiByZWFkeSIpLHRoaXMuY29ubmVjdGVkXz0hMCx0aGlzLmxhc3RDb25uZWN0aW9uRXN0YWJsaXNoZWRUaW1lXz0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmhhbmRsZVRpbWVzdGFtcF8odCksdGhpcy5sYXN0U2Vzc2lvbklkPWUsdGhpcy5maXJzdENvbm5lY3Rpb25fJiZ0aGlzLnNlbmRDb25uZWN0U3RhdHNfKCksdGhpcy5yZXN0b3JlU3RhdGVfKCksdGhpcy5maXJzdENvbm5lY3Rpb25fPSExLHRoaXMub25Db25uZWN0U3RhdHVzXyghMCl9LEV1LnByb3RvdHlwZS5zY2hlZHVsZUNvbm5lY3RfPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7c28oIXRoaXMucmVhbHRpbWVfLCJTY2hlZHVsaW5nIGEgY29ubmVjdCB3aGVuIHdlJ3JlIGFscmVhZHkgY29ubmVjdGVkL2luZz8iKSx0aGlzLmVzdGFibGlzaENvbm5lY3Rpb25UaW1lcl8mJmNsZWFyVGltZW91dCh0aGlzLmVzdGFibGlzaENvbm5lY3Rpb25UaW1lcl8pLHRoaXMuZXN0YWJsaXNoQ29ubmVjdGlvblRpbWVyXz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5lc3RhYmxpc2hDb25uZWN0aW9uVGltZXJfPW51bGwsZS5lc3RhYmxpc2hDb25uZWN0aW9uXygpfSxNYXRoLmZsb29yKHQpKX0sRXUucHJvdG90eXBlLm9uVmlzaWJsZV89ZnVuY3Rpb24odCl7dCYmIXRoaXMudmlzaWJsZV8mJnRoaXMucmVjb25uZWN0RGVsYXlfPT09dGhpcy5tYXhSZWNvbm5lY3REZWxheV8mJih0aGlzLmxvZ18oIldpbmRvdyBiZWNhbWUgdmlzaWJsZS4gIFJlZHVjaW5nIGRlbGF5LiIpLHRoaXMucmVjb25uZWN0RGVsYXlfPV91LHRoaXMucmVhbHRpbWVffHx0aGlzLnNjaGVkdWxlQ29ubmVjdF8oMCkpLHRoaXMudmlzaWJsZV89dH0sRXUucHJvdG90eXBlLm9uT25saW5lXz1mdW5jdGlvbih0KXt0Pyh0aGlzLmxvZ18oIkJyb3dzZXIgd2VudCBvbmxpbmUuIiksdGhpcy5yZWNvbm5lY3REZWxheV89X3UsdGhpcy5yZWFsdGltZV98fHRoaXMuc2NoZWR1bGVDb25uZWN0XygwKSk6KHRoaXMubG9nXygiQnJvd3NlciB3ZW50IG9mZmxpbmUuICBLaWxsaW5nIGNvbm5lY3Rpb24uIiksdGhpcy5yZWFsdGltZV8mJnRoaXMucmVhbHRpbWVfLmNsb3NlKCkpfSxFdS5wcm90b3R5cGUub25SZWFsdGltZURpc2Nvbm5lY3RfPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5sb2dfKCJkYXRhIGNsaWVudCBkaXNjb25uZWN0ZWQiKSx0aGlzLmNvbm5lY3RlZF89ITEsdGhpcy5yZWFsdGltZV89bnVsbCx0aGlzLmNhbmNlbFNlbnRUcmFuc2FjdGlvbnNfKCksdGhpcy5yZXF1ZXN0Q0JIYXNoXz17fSx0aGlzLnNob3VsZFJlY29ubmVjdF8oKSYmKHRoaXMudmlzaWJsZV8/dGhpcy5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV8mJigzZTQ8KG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV8mJih0aGlzLnJlY29ubmVjdERlbGF5Xz1fdSksdGhpcy5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV89bnVsbCk6KHRoaXMubG9nXygiV2luZG93IGlzbid0IHZpc2libGUuICBEZWxheWluZyByZWNvbm5lY3QuIiksdGhpcy5yZWNvbm5lY3REZWxheV89dGhpcy5tYXhSZWNvbm5lY3REZWxheV8sdGhpcy5sYXN0Q29ubmVjdGlvbkF0dGVtcHRUaW1lXz0obmV3IERhdGUpLmdldFRpbWUoKSksdD0obmV3IERhdGUpLmdldFRpbWUoKS10aGlzLmxhc3RDb25uZWN0aW9uQXR0ZW1wdFRpbWVfLHQ9TWF0aC5tYXgoMCx0aGlzLnJlY29ubmVjdERlbGF5Xy10KSx0PU1hdGgucmFuZG9tKCkqdCx0aGlzLmxvZ18oIlRyeWluZyB0byByZWNvbm5lY3QgaW4gIit0KyJtcyIpLHRoaXMuc2NoZWR1bGVDb25uZWN0Xyh0KSx0aGlzLnJlY29ubmVjdERlbGF5Xz1NYXRoLm1pbih0aGlzLm1heFJlY29ubmVjdERlbGF5XywxLjMqdGhpcy5yZWNvbm5lY3REZWxheV8pKSx0aGlzLm9uQ29ubmVjdFN0YXR1c18oITEpfSxFdS5wcm90b3R5cGUuZXN0YWJsaXNoQ29ubmVjdGlvbl89ZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvLHMsYSx1LGMsdCxoPXRoaXM7dGhpcy5zaG91bGRSZWNvbm5lY3RfKCkmJih0aGlzLmxvZ18oIk1ha2luZyBhIGNvbm5lY3Rpb24gYXR0ZW1wdCIpLHRoaXMubGFzdENvbm5lY3Rpb25BdHRlbXB0VGltZV89KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV89bnVsbCxlPXRoaXMub25EYXRhTWVzc2FnZV8uYmluZCh0aGlzKSxuPXRoaXMub25SZWFkeV8uYmluZCh0aGlzKSxyPXRoaXMub25SZWFsdGltZURpc2Nvbm5lY3RfLmJpbmQodGhpcyksaT10aGlzLmlkKyI6IitFdS5uZXh0Q29ubmVjdGlvbklkXysrLHM9KG89dGhpcykubGFzdFNlc3Npb25JZCxhPSExLHU9bnVsbCxjPWZ1bmN0aW9uKCl7dT91LmNsb3NlKCk6KGE9ITAscigpKX0sdGhpcy5yZWFsdGltZV89e2Nsb3NlOmMsc2VuZFJlcXVlc3Q6ZnVuY3Rpb24odCl7c28odSwic2VuZFJlcXVlc3QgY2FsbCB3aGVuIHdlJ3JlIG5vdCBjb25uZWN0ZWQgbm90IGFsbG93ZWQuIiksdS5zZW5kUmVxdWVzdCh0KX19LHQ9dGhpcy5mb3JjZVRva2VuUmVmcmVzaF8sdGhpcy5mb3JjZVRva2VuUmVmcmVzaF89ITEsdGhpcy5hdXRoVG9rZW5Qcm92aWRlcl8uZ2V0VG9rZW4odCkudGhlbihmdW5jdGlvbih0KXthP1hzKCJnZXRUb2tlbigpIGNvbXBsZXRlZCBidXQgd2FzIGNhbmNlbGVkIik6KFhzKCJnZXRUb2tlbigpIGNvbXBsZXRlZC4gQ3JlYXRpbmcgY29ubmVjdGlvbi4iKSxvLmF1dGhUb2tlbl89dCYmdC5hY2Nlc3NUb2tlbix1PW5ldyBLYShpLG8ucmVwb0luZm9fLG8uYXBwbGljYXRpb25JZF8sZSxuLHIsZnVuY3Rpb24odCl7WnModCsiICgiK28ucmVwb0luZm9fLnRvU3RyaW5nKCkrIikiKSxvLmludGVycnVwdCgic2VydmVyX2tpbGwiKX0scykpfSkudGhlbihudWxsLGZ1bmN0aW9uKHQpe28ubG9nXygiRmFpbGVkIHRvIGdldCB0b2tlbjogIit0KSxhfHwoaC5yZXBvSW5mb18ubm9kZUFkbWluJiZacyh0KSxjKCkpfSkpfSxFdS5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uKHQpe1hzKCJJbnRlcnJ1cHRpbmcgY29ubmVjdGlvbiBmb3IgcmVhc29uOiAiK3QpLHRoaXMuaW50ZXJydXB0UmVhc29uc19bdF09ITAsdGhpcy5yZWFsdGltZV8/dGhpcy5yZWFsdGltZV8uY2xvc2UoKToodGhpcy5lc3RhYmxpc2hDb25uZWN0aW9uVGltZXJfJiYoY2xlYXJUaW1lb3V0KHRoaXMuZXN0YWJsaXNoQ29ubmVjdGlvblRpbWVyXyksdGhpcy5lc3RhYmxpc2hDb25uZWN0aW9uVGltZXJfPW51bGwpLHRoaXMuY29ubmVjdGVkXyYmdGhpcy5vblJlYWx0aW1lRGlzY29ubmVjdF8oKSl9LEV1LnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24odCl7WHMoIlJlc3VtaW5nIGNvbm5lY3Rpb24gZm9yIHJlYXNvbjogIit0KSxkZWxldGUgdGhpcy5pbnRlcnJ1cHRSZWFzb25zX1t0XSx4byh0aGlzLmludGVycnVwdFJlYXNvbnNfKSYmKHRoaXMucmVjb25uZWN0RGVsYXlfPV91LHRoaXMucmVhbHRpbWVffHx0aGlzLnNjaGVkdWxlQ29ubmVjdF8oMCkpfSxFdS5wcm90b3R5cGUuaGFuZGxlVGltZXN0YW1wXz1mdW5jdGlvbih0KXt0LT0obmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLm9uU2VydmVySW5mb1VwZGF0ZV8oe3NlcnZlclRpbWVPZmZzZXQ6dH0pfSxFdS5wcm90b3R5cGUuY2FuY2VsU2VudFRyYW5zYWN0aW9uc189ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMub3V0c3RhbmRpbmdQdXRzXy5sZW5ndGg7dCsrKXt2YXIgZT10aGlzLm91dHN0YW5kaW5nUHV0c19bdF07ZSYmImgiaW4gZS5yZXF1ZXN0JiZlLnF1ZXVlZCYmKGUub25Db21wbGV0ZSYmZS5vbkNvbXBsZXRlKCJkaXNjb25uZWN0IiksZGVsZXRlIHRoaXMub3V0c3RhbmRpbmdQdXRzX1t0XSx0aGlzLm91dHN0YW5kaW5nUHV0Q291bnRfLS0pfTA9PT10aGlzLm91dHN0YW5kaW5nUHV0Q291bnRfJiYodGhpcy5vdXRzdGFuZGluZ1B1dHNfPVtdKX0sRXUucHJvdG90eXBlLm9uTGlzdGVuUmV2b2tlZF89ZnVuY3Rpb24odCxlKXtlPWU/ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHJhKHQpfSkuam9pbigiJCIpOiJkZWZhdWx0IixlPXRoaXMucmVtb3ZlTGlzdGVuXyh0LGUpO2UmJmUub25Db21wbGV0ZSYmZS5vbkNvbXBsZXRlKCJwZXJtaXNzaW9uX2RlbmllZCIpfSxFdS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuXz1mdW5jdGlvbih0LGUpe3ZhciBuLHI9bmV3IFphKHQpLnRvU3RyaW5nKCk7cmV0dXJuIHRoaXMubGlzdGVucy5oYXMocik/KG49KHQ9dGhpcy5saXN0ZW5zLmdldChyKSkuZ2V0KGUpLHQuZGVsZXRlKGUpLDA9PT10LnNpemUmJnRoaXMubGlzdGVucy5kZWxldGUocikpOm49dm9pZCAwLG59LEV1LnByb3RvdHlwZS5vbkF1dGhSZXZva2VkXz1mdW5jdGlvbih0LGUpe1hzKCJBdXRoIHRva2VuIHJldm9rZWQ6ICIrdCsiLyIrZSksdGhpcy5hdXRoVG9rZW5fPW51bGwsdGhpcy5mb3JjZVRva2VuUmVmcmVzaF89ITAsdGhpcy5yZWFsdGltZV8uY2xvc2UoKSwiaW52YWxpZF90b2tlbiIhPT10JiYicGVybWlzc2lvbl9kZW5pZWQiIT09dHx8KHRoaXMuaW52YWxpZEF1dGhUb2tlbkNvdW50XysrLDM8PXRoaXMuaW52YWxpZEF1dGhUb2tlbkNvdW50XyYmKHRoaXMucmVjb25uZWN0RGVsYXlfPTNlNCx0aGlzLmF1dGhUb2tlblByb3ZpZGVyXy5ub3RpZnlGb3JJbnZhbGlkVG9rZW4oKSkpfSxFdS5wcm90b3R5cGUub25TZWN1cml0eURlYnVnUGFja2V0Xz1mdW5jdGlvbih0KXt0aGlzLnNlY3VyaXR5RGVidWdDYWxsYmFja18/dGhpcy5zZWN1cml0eURlYnVnQ2FsbGJhY2tfKHQpOiJtc2ciaW4gdCYmY29uc29sZS5sb2coIkZJUkVCQVNFOiAiK3QubXNnLnJlcGxhY2UoIlxuIiwiXG5GSVJFQkFTRTogIikpfSxFdS5wcm90b3R5cGUucmVzdG9yZVN0YXRlXz1mdW5jdGlvbigpe3ZhciBlLHQsbixyO3RoaXMudHJ5QXV0aCgpO3RyeXtmb3IodmFyIGk9dG8odGhpcy5saXN0ZW5zLnZhbHVlcygpKSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSl7dmFyIHM9by52YWx1ZTt0cnl7Zm9yKHZhciBhPShuPXZvaWQgMCx0byhzLnZhbHVlcygpKSksdT1hLm5leHQoKTshdS5kb25lO3U9YS5uZXh0KCkpe3ZhciBjPXUudmFsdWU7dGhpcy5zZW5kTGlzdGVuXyhjKX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKHI9YS5yZXR1cm4pJiZyLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKHQ9aS5yZXR1cm4pJiZ0LmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fWZvcih2YXIgaD0wO2g8dGhpcy5vdXRzdGFuZGluZ1B1dHNfLmxlbmd0aDtoKyspdGhpcy5vdXRzdGFuZGluZ1B1dHNfW2hdJiZ0aGlzLnNlbmRQdXRfKGgpO2Zvcig7dGhpcy5vbkRpc2Nvbm5lY3RSZXF1ZXN0UXVldWVfLmxlbmd0aDspe3ZhciBsPXRoaXMub25EaXNjb25uZWN0UmVxdWVzdFF1ZXVlXy5zaGlmdCgpO3RoaXMuc2VuZE9uRGlzY29ubmVjdF8obC5hY3Rpb24sbC5wYXRoU3RyaW5nLGwuZGF0YSxsLm9uQ29tcGxldGUpfWZvcihoPTA7aDx0aGlzLm91dHN0YW5kaW5nR2V0c18ubGVuZ3RoO2grKyl0aGlzLm91dHN0YW5kaW5nR2V0c19baF0mJnRoaXMuc2VuZEdldF8oaCl9LEV1LnByb3RvdHlwZS5zZW5kQ29ubmVjdFN0YXRzXz1mdW5jdGlvbigpe3ZhciB0PXt9O3RbInNkay5qcy4iK01hLnJlcGxhY2UoL1wuL2csIi0iKV09MSx2bygpP3RbImZyYW1ld29yay5jb3Jkb3ZhIl09MTp5bygpJiYodFsiZnJhbWV3b3JrLnJlYWN0bmF0aXZlIl09MSksdGhpcy5yZXBvcnRTdGF0cyh0KX0sRXUucHJvdG90eXBlLnNob3VsZFJlY29ubmVjdF89ZnVuY3Rpb24oKXt2YXIgdD1ZYS5nZXRJbnN0YW5jZSgpLmN1cnJlbnRseU9ubGluZSgpO3JldHVybiB4byh0aGlzLmludGVycnVwdFJlYXNvbnNfKSYmdH0sRXUubmV4dFBlcnNpc3RlbnRDb25uZWN0aW9uSWRfPTAsRXUubmV4dENvbm5lY3Rpb25JZF89MCxFdSk7ZnVuY3Rpb24gRXUodCxlLG4scixpLG8scyl7dmFyIGE9d3UuY2FsbCh0aGlzKXx8dGhpcztpZihhLnJlcG9JbmZvXz10LGEuYXBwbGljYXRpb25JZF89ZSxhLm9uRGF0YVVwZGF0ZV89bixhLm9uQ29ubmVjdFN0YXR1c189cixhLm9uU2VydmVySW5mb1VwZGF0ZV89aSxhLmF1dGhUb2tlblByb3ZpZGVyXz1vLGEuYXV0aE92ZXJyaWRlXz1zLGEuaWQ9RXUubmV4dFBlcnNpc3RlbnRDb25uZWN0aW9uSWRfKyssYS5sb2dfPUpzKCJwOiIrYS5pZCsiOiIpLGEuaW50ZXJydXB0UmVhc29uc189e30sYS5saXN0ZW5zPW5ldyBNYXAsYS5vdXRzdGFuZGluZ1B1dHNfPVtdLGEub3V0c3RhbmRpbmdHZXRzXz1bXSxhLm91dHN0YW5kaW5nUHV0Q291bnRfPTAsYS5vdXRzdGFuZGluZ0dldENvdW50Xz0wLGEub25EaXNjb25uZWN0UmVxdWVzdFF1ZXVlXz1bXSxhLmNvbm5lY3RlZF89ITEsYS5yZWNvbm5lY3REZWxheV89X3UsYS5tYXhSZWNvbm5lY3REZWxheV89SXUsYS5zZWN1cml0eURlYnVnQ2FsbGJhY2tfPW51bGwsYS5sYXN0U2Vzc2lvbklkPW51bGwsYS5lc3RhYmxpc2hDb25uZWN0aW9uVGltZXJfPW51bGwsYS52aXNpYmxlXz0hMSxhLnJlcXVlc3RDQkhhc2hfPXt9LGEucmVxdWVzdE51bWJlcl89MCxhLnJlYWx0aW1lXz1udWxsLGEuYXV0aFRva2VuXz1udWxsLGEuZm9yY2VUb2tlblJlZnJlc2hfPSExLGEuaW52YWxpZEF1dGhUb2tlbkNvdW50Xz0wLGEuZmlyc3RDb25uZWN0aW9uXz0hMCxhLmxhc3RDb25uZWN0aW9uQXR0ZW1wdFRpbWVfPW51bGwsYS5sYXN0Q29ubmVjdGlvbkVzdGFibGlzaGVkVGltZV89bnVsbCxzJiYhbW8oKSl0aHJvdyBuZXcgRXJyb3IoIkF1dGggb3ZlcnJpZGUgc3BlY2lmaWVkIGluIG9wdGlvbnMsIGJ1dCBub3Qgc3VwcG9ydGVkIG9uIG5vbiBOb2RlLmpzIHBsYXRmb3JtcyIpO3JldHVybiBhLnNjaGVkdWxlQ29ubmVjdF8oMCksbXUuZ2V0SW5zdGFuY2UoKS5vbigidmlzaWJsZSIsYS5vblZpc2libGVfLGEpLC0xPT09dC5ob3N0LmluZGV4T2YoImZibG9jYWwiKSYmWWEuZ2V0SW5zdGFuY2UoKS5vbigib25saW5lIixhLm9uT25saW5lXyxhKSxhfXZhciBTdT0oQ3UuV3JhcD1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgQ3UodCxlKX0sQ3UpO2Z1bmN0aW9uIEN1KHQsZSl7dGhpcy5uYW1lPXQsdGhpcy5ub2RlPWV9dmFyIE51LEc9KEF1LnByb3RvdHlwZS5nZXRDb21wYXJlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29tcGFyZS5iaW5kKHRoaXMpfSxBdS5wcm90b3R5cGUuaW5kZXhlZFZhbHVlQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3Q9bmV3IFN1KHRhLHQpLGU9bmV3IFN1KHRhLGUpO3JldHVybiAwIT09dGhpcy5jb21wYXJlKHQsZSl9LEF1LnByb3RvdHlwZS5taW5Qb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIFN1Lk1JTn0sQXUpO2Z1bmN0aW9uIEF1KCl7fXZhciBrdSxTbj0oWGkoUnUsa3U9RyksT2JqZWN0LmRlZmluZVByb3BlcnR5KFJ1LCJfX0VNUFRZX05PREUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTnV9LHNldDpmdW5jdGlvbih0KXtOdT10fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLFJ1LnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5hKHQubmFtZSxlLm5hbWUpfSxSdS5wcm90b3R5cGUuaXNEZWZpbmVkT249ZnVuY3Rpb24odCl7dGhyb3cgYW8oIktleUluZGV4LmlzRGVmaW5lZE9uIG5vdCBleHBlY3RlZCB0byBiZSBjYWxsZWQuIil9LFJ1LnByb3RvdHlwZS5pbmRleGVkVmFsdWVDaGFuZ2VkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuITF9LFJ1LnByb3RvdHlwZS5taW5Qb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIFN1Lk1JTn0sUnUucHJvdG90eXBlLm1heFBvc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFN1KGVhLE51KX0sUnUucHJvdG90eXBlLm1ha2VQb3N0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHNvKCJzdHJpbmciPT10eXBlb2YgdCwiS2V5SW5kZXggaW5kZXhWYWx1ZSBtdXN0IGFsd2F5cyBiZSBhIHN0cmluZy4iKSxuZXcgU3UodCxOdSl9LFJ1LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIua2V5In0sUnUpO2Z1bmN0aW9uIFJ1KCl7cmV0dXJuIG51bGwhPT1rdSYma3UuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXZhciBQdT1uZXcgU24sT3U9KER1LnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7aWYoMD09PXRoaXMubm9kZVN0YWNrXy5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHQ9dGhpcy5ub2RlU3RhY2tfLnBvcCgpLGU9dGhpcy5yZXN1bHRHZW5lcmF0b3JfP3RoaXMucmVzdWx0R2VuZXJhdG9yXyh0LmtleSx0LnZhbHVlKTp7a2V5OnQua2V5LHZhbHVlOnQudmFsdWV9O2lmKHRoaXMuaXNSZXZlcnNlXylmb3IodD10LmxlZnQ7IXQuaXNFbXB0eSgpOyl0aGlzLm5vZGVTdGFja18ucHVzaCh0KSx0PXQucmlnaHQ7ZWxzZSBmb3IodD10LnJpZ2h0OyF0LmlzRW1wdHkoKTspdGhpcy5ub2RlU3RhY2tfLnB1c2godCksdD10LmxlZnQ7cmV0dXJuIGV9LER1LnByb3RvdHlwZS5oYXNOZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIDA8dGhpcy5ub2RlU3RhY2tfLmxlbmd0aH0sRHUucHJvdG90eXBlLnBlZWs9ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5ub2RlU3RhY2tfLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgdD10aGlzLm5vZGVTdGFja19bdGhpcy5ub2RlU3RhY2tfLmxlbmd0aC0xXTtyZXR1cm4gdGhpcy5yZXN1bHRHZW5lcmF0b3JfP3RoaXMucmVzdWx0R2VuZXJhdG9yXyh0LmtleSx0LnZhbHVlKTp7a2V5OnQua2V5LHZhbHVlOnQudmFsdWV9fSxEdSk7ZnVuY3Rpb24gRHUodCxlLG4scixpKXt2b2lkIDA9PT1pJiYoaT1udWxsKSx0aGlzLmlzUmV2ZXJzZV89cix0aGlzLnJlc3VsdEdlbmVyYXRvcl89aSx0aGlzLm5vZGVTdGFja189W107Zm9yKHZhciBvPTE7IXQuaXNFbXB0eSgpOylpZihvPWU/bih0LmtleSxlKToxLHImJihvKj0tMSksbzwwKXQ9dGhpcy5pc1JldmVyc2VfP3QubGVmdDp0LnJpZ2h0O2Vsc2V7aWYoMD09PW8pe3RoaXMubm9kZVN0YWNrXy5wdXNoKHQpO2JyZWFrfXRoaXMubm9kZVN0YWNrXy5wdXNoKHQpLHQ9dGhpcy5pc1JldmVyc2VfP3QucmlnaHQ6dC5sZWZ0fX12YXIgeHU9KEx1LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIG5ldyBMdShudWxsIT10P3Q6dGhpcy5rZXksbnVsbCE9ZT9lOnRoaXMudmFsdWUsbnVsbCE9bj9uOnRoaXMuY29sb3IsbnVsbCE9cj9yOnRoaXMubGVmdCxudWxsIT1pP2k6dGhpcy5yaWdodCl9LEx1LnByb3RvdHlwZS5jb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlZnQuY291bnQoKSsxK3RoaXMucmlnaHQuY291bnQoKX0sTHUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sTHUucHJvdG90eXBlLmlub3JkZXJUcmF2ZXJzYWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVmdC5pbm9yZGVyVHJhdmVyc2FsKHQpfHwhIXQodGhpcy5rZXksdGhpcy52YWx1ZSl8fHRoaXMucmlnaHQuaW5vcmRlclRyYXZlcnNhbCh0KX0sTHUucHJvdG90eXBlLnJldmVyc2VUcmF2ZXJzYWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmlnaHQucmV2ZXJzZVRyYXZlcnNhbCh0KXx8dCh0aGlzLmtleSx0aGlzLnZhbHVlKXx8dGhpcy5sZWZ0LnJldmVyc2VUcmF2ZXJzYWwodCl9LEx1LnByb3RvdHlwZS5taW5fPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVmdC5pc0VtcHR5KCk/dGhpczp0aGlzLmxlZnQubWluXygpfSxMdS5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWluXygpLmtleX0sTHUucHJvdG90eXBlLm1heEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJpZ2h0LmlzRW1wdHkoKT90aGlzLmtleTp0aGlzLnJpZ2h0Lm1heEtleSgpfSxMdS5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLGk9bih0LHIua2V5KTtyZXR1cm4ocj1pPDA/ci5jb3B5KG51bGwsbnVsbCxudWxsLHIubGVmdC5pbnNlcnQodCxlLG4pLG51bGwpOjA9PT1pP3IuY29weShudWxsLGUsbnVsbCxudWxsLG51bGwpOnIuY29weShudWxsLG51bGwsbnVsbCxudWxsLHIucmlnaHQuaW5zZXJ0KHQsZSxuKSkpLmZpeFVwXygpfSxMdS5wcm90b3R5cGUucmVtb3ZlTWluXz1mdW5jdGlvbigpe2lmKHRoaXMubGVmdC5pc0VtcHR5KCkpcmV0dXJuIFV1LkVNUFRZX05PREU7dmFyIHQ9dGhpcztyZXR1cm4odD0odD0hdC5sZWZ0LmlzUmVkXygpJiYhdC5sZWZ0LmxlZnQuaXNSZWRfKCk/dC5tb3ZlUmVkTGVmdF8oKTp0KS5jb3B5KG51bGwsbnVsbCxudWxsLHQubGVmdC5yZW1vdmVNaW5fKCksbnVsbCkpLmZpeFVwXygpfSxMdS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj10aGlzO2lmKGUodCxyLmtleSk8MClyPShyPSEoci5sZWZ0LmlzRW1wdHkoKXx8ci5sZWZ0LmlzUmVkXygpfHxyLmxlZnQubGVmdC5pc1JlZF8oKSk/ci5tb3ZlUmVkTGVmdF8oKTpyKS5jb3B5KG51bGwsbnVsbCxudWxsLHIubGVmdC5yZW1vdmUodCxlKSxudWxsKTtlbHNle2lmKDA9PT1lKHQsKHI9ISgocj1yLmxlZnQuaXNSZWRfKCk/ci5yb3RhdGVSaWdodF8oKTpyKS5yaWdodC5pc0VtcHR5KCl8fHIucmlnaHQuaXNSZWRfKCl8fHIucmlnaHQubGVmdC5pc1JlZF8oKSk/ci5tb3ZlUmVkUmlnaHRfKCk6cikua2V5KSl7aWYoci5yaWdodC5pc0VtcHR5KCkpcmV0dXJuIFV1LkVNUFRZX05PREU7bj1yLnJpZ2h0Lm1pbl8oKSxyPXIuY29weShuLmtleSxuLnZhbHVlLG51bGwsbnVsbCxyLnJpZ2h0LnJlbW92ZU1pbl8oKSl9cj1yLmNvcHkobnVsbCxudWxsLG51bGwsbnVsbCxyLnJpZ2h0LnJlbW92ZSh0LGUpKX1yZXR1cm4gci5maXhVcF8oKX0sTHUucHJvdG90eXBlLmlzUmVkXz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yfSxMdS5wcm90b3R5cGUuZml4VXBfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdD0odD0odD10LnJpZ2h0LmlzUmVkXygpJiYhdC5sZWZ0LmlzUmVkXygpP3Qucm90YXRlTGVmdF8oKTp0KS5sZWZ0LmlzUmVkXygpJiZ0LmxlZnQubGVmdC5pc1JlZF8oKT90LnJvdGF0ZVJpZ2h0XygpOnQpLmxlZnQuaXNSZWRfKCkmJnQucmlnaHQuaXNSZWRfKCk/dC5jb2xvckZsaXBfKCk6dH0sTHUucHJvdG90eXBlLm1vdmVSZWRMZWZ0Xz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29sb3JGbGlwXygpO3JldHVybiB0PXQucmlnaHQubGVmdC5pc1JlZF8oKT8odD0odD10LmNvcHkobnVsbCxudWxsLG51bGwsbnVsbCx0LnJpZ2h0LnJvdGF0ZVJpZ2h0XygpKSkucm90YXRlTGVmdF8oKSkuY29sb3JGbGlwXygpOnR9LEx1LnByb3RvdHlwZS5tb3ZlUmVkUmlnaHRfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb2xvckZsaXBfKCk7cmV0dXJuIHQ9dC5sZWZ0LmxlZnQuaXNSZWRfKCk/KHQ9dC5yb3RhdGVSaWdodF8oKSkuY29sb3JGbGlwXygpOnR9LEx1LnByb3RvdHlwZS5yb3RhdGVMZWZ0Xz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29weShudWxsLG51bGwsTHUuUkVELG51bGwsdGhpcy5yaWdodC5sZWZ0KTtyZXR1cm4gdGhpcy5yaWdodC5jb3B5KG51bGwsbnVsbCx0aGlzLmNvbG9yLHQsbnVsbCl9LEx1LnByb3RvdHlwZS5yb3RhdGVSaWdodF89ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvcHkobnVsbCxudWxsLEx1LlJFRCx0aGlzLmxlZnQucmlnaHQsbnVsbCk7cmV0dXJuIHRoaXMubGVmdC5jb3B5KG51bGwsbnVsbCx0aGlzLmNvbG9yLG51bGwsdCl9LEx1LnByb3RvdHlwZS5jb2xvckZsaXBfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZWZ0LmNvcHkobnVsbCxudWxsLCF0aGlzLmxlZnQuY29sb3IsbnVsbCxudWxsKSxlPXRoaXMucmlnaHQuY29weShudWxsLG51bGwsIXRoaXMucmlnaHQuY29sb3IsbnVsbCxudWxsKTtyZXR1cm4gdGhpcy5jb3B5KG51bGwsbnVsbCwhdGhpcy5jb2xvcix0LGUpfSxMdS5wcm90b3R5cGUuY2hlY2tNYXhEZXB0aF89ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNoZWNrXygpO3JldHVybiBNYXRoLnBvdygyLHQpPD10aGlzLmNvdW50KCkrMX0sTHUucHJvdG90eXBlLmNoZWNrXz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSZWRfKCkmJnRoaXMubGVmdC5pc1JlZF8oKSl0aHJvdyBuZXcgRXJyb3IoIlJlZCBub2RlIGhhcyByZWQgY2hpbGQoIit0aGlzLmtleSsiLCIrdGhpcy52YWx1ZSsiKSIpO2lmKHRoaXMucmlnaHQuaXNSZWRfKCkpdGhyb3cgbmV3IEVycm9yKCJSaWdodCBjaGlsZCBvZiAoIit0aGlzLmtleSsiLCIrdGhpcy52YWx1ZSsiKSBpcyByZWQiKTt2YXIgdD10aGlzLmxlZnQuY2hlY2tfKCk7aWYodCE9PXRoaXMucmlnaHQuY2hlY2tfKCkpdGhyb3cgbmV3IEVycm9yKCJCbGFjayBkZXB0aHMgZGlmZmVyIik7cmV0dXJuIHQrKHRoaXMuaXNSZWRfKCk/MDoxKX0sTHUuUkVEPSEwLEx1LkJMQUNLPSExLEx1KTtmdW5jdGlvbiBMdSh0LGUsbixyLGkpe3RoaXMua2V5PXQsdGhpcy52YWx1ZT1lLHRoaXMuY29sb3I9bnVsbCE9bj9uOkx1LlJFRCx0aGlzLmxlZnQ9bnVsbCE9cj9yOlV1LkVNUFRZX05PREUsdGhpcy5yaWdodD1udWxsIT1pP2k6VXUuRU1QVFlfTk9ERX1NdS5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiB0aGlzfSxNdS5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IHh1KHQsZSxudWxsKX0sTXUucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzfSxNdS5wcm90b3R5cGUuY291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sTXUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sTXUucHJvdG90eXBlLmlub3JkZXJUcmF2ZXJzYWw9ZnVuY3Rpb24odCl7cmV0dXJuITF9LE11LnByb3RvdHlwZS5yZXZlcnNlVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiExfSxNdS5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LE11LnByb3RvdHlwZS5tYXhLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sTXUucHJvdG90eXBlLmNoZWNrXz1mdW5jdGlvbigpe3JldHVybiAwfSxNdS5wcm90b3R5cGUuaXNSZWRfPWZ1bmN0aW9uKCl7cmV0dXJuITF9LEdhPU11O2Z1bmN0aW9uIE11KCl7fXZhciBGdSxVdT0oanUucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcganUodGhpcy5jb21wYXJhdG9yXyx0aGlzLnJvb3RfLmluc2VydCh0LGUsdGhpcy5jb21wYXJhdG9yXykuY29weShudWxsLG51bGwseHUuQkxBQ0ssbnVsbCxudWxsKSl9LGp1LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBqdSh0aGlzLmNvbXBhcmF0b3JfLHRoaXMucm9vdF8ucmVtb3ZlKHQsdGhpcy5jb21wYXJhdG9yXykuY29weShudWxsLG51bGwseHUuQkxBQ0ssbnVsbCxudWxsKSl9LGp1LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49dGhpcy5yb290Xzshbi5pc0VtcHR5KCk7KXtpZigwPT09KGU9dGhpcy5jb21wYXJhdG9yXyh0LG4ua2V5KSkpcmV0dXJuIG4udmFsdWU7ZTwwP249bi5sZWZ0OjA8ZSYmKG49bi5yaWdodCl9cmV0dXJuIG51bGx9LGp1LnByb3RvdHlwZS5nZXRQcmVkZWNlc3NvcktleT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10aGlzLnJvb3RfLHI9bnVsbDshbi5pc0VtcHR5KCk7KXtpZigwPT09KGU9dGhpcy5jb21wYXJhdG9yXyh0LG4ua2V5KSkpe2lmKG4ubGVmdC5pc0VtcHR5KCkpcmV0dXJuIHI/ci5rZXk6bnVsbDtmb3Iobj1uLmxlZnQ7IW4ucmlnaHQuaXNFbXB0eSgpOyluPW4ucmlnaHQ7cmV0dXJuIG4ua2V5fWU8MD9uPW4ubGVmdDowPGUmJihuPShyPW4pLnJpZ2h0KX10aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBmaW5kIHByZWRlY2Vzc29yIGtleSBmb3IgYSBub25leGlzdGVudCBrZXkuICBXaGF0IGdpdmVzPyIpfSxqdS5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3RfLmlzRW1wdHkoKX0sanUucHJvdG90eXBlLmNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdF8uY291bnQoKX0sanUucHJvdG90eXBlLm1pbktleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3RfLm1pbktleSgpfSxqdS5wcm90b3R5cGUubWF4S2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdF8ubWF4S2V5KCl9LGp1LnByb3RvdHlwZS5pbm9yZGVyVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJvb3RfLmlub3JkZXJUcmF2ZXJzYWwodCl9LGp1LnByb3RvdHlwZS5yZXZlcnNlVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJvb3RfLnJldmVyc2VUcmF2ZXJzYWwodCl9LGp1LnByb3RvdHlwZS5nZXRJdGVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IE91KHRoaXMucm9vdF8sbnVsbCx0aGlzLmNvbXBhcmF0b3JfLCExLHQpfSxqdS5wcm90b3R5cGUuZ2V0SXRlcmF0b3JGcm9tPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBPdSh0aGlzLnJvb3RfLHQsdGhpcy5jb21wYXJhdG9yXywhMSxlKX0sanUucHJvdG90eXBlLmdldFJldmVyc2VJdGVyYXRvckZyb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IE91KHRoaXMucm9vdF8sdCx0aGlzLmNvbXBhcmF0b3JfLCEwLGUpfSxqdS5wcm90b3R5cGUuZ2V0UmV2ZXJzZUl0ZXJhdG9yPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgT3UodGhpcy5yb290XyxudWxsLHRoaXMuY29tcGFyYXRvcl8sITAsdCl9LGp1LkVNUFRZX05PREU9bmV3IEdhLGp1KTtmdW5jdGlvbiBqdSh0LGUpe3ZvaWQgMD09PWUmJihlPWp1LkVNUFRZX05PREUpLHRoaXMuY29tcGFyYXRvcl89dCx0aGlzLnJvb3RfPWV9ZnVuY3Rpb24gcXUodCxlKXtyZXR1cm4gbmEodC5uYW1lLGUubmFtZSl9ZnVuY3Rpb24gVnUodCxlKXtyZXR1cm4gbmEodCxlKX1mdW5jdGlvbiBCdSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/Im51bWJlcjoiK29hKHQpOiJzdHJpbmc6Iit0fXZhciBLdSxXdSxIdSxHdSx6dT1mdW5jdGlvbih0KXt2YXIgZTt0LmlzTGVhZk5vZGUoKT8oZT10LnZhbCgpLHNvKCJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlfHwib2JqZWN0Ij09dHlwZW9mIGUmJk9vKGUsIi5zdiIpLCJQcmlvcml0eSBtdXN0IGJlIGEgc3RyaW5nIG9yIG51bWJlci4iKSk6c28odD09PUZ1fHx0LmlzRW1wdHkoKSwicHJpb3JpdHkgb2YgdW5leHBlY3RlZCB0eXBlLiIpLHNvKHQ9PT1GdXx8dC5nZXRQcmlvcml0eSgpLmlzRW1wdHkoKSwiUHJpb3JpdHkgbm9kZXMgY2FuJ3QgaGF2ZSBhIHByaW9yaXR5IG9mIHRoZWlyIG93bi4iKX0sUXU9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZdSwiX19jaGlsZHJlbk5vZGVDb25zdHJ1Y3RvciIse2dldDpmdW5jdGlvbigpe3JldHVybiBLdX0sc2V0OmZ1bmN0aW9uKHQpe0t1PXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksWXUucHJvdG90eXBlLmlzTGVhZk5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sWXUucHJvdG90eXBlLmdldFByaW9yaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpb3JpdHlOb2RlX30sWXUucHJvdG90eXBlLnVwZGF0ZVByaW9yaXR5PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgWXUodGhpcy52YWx1ZV8sdCl9LFl1LnByb3RvdHlwZS5nZXRJbW1lZGlhdGVDaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4iLnByaW9yaXR5Ij09PXQ/dGhpcy5wcmlvcml0eU5vZGVfOll1Ll9fY2hpbGRyZW5Ob2RlQ29uc3RydWN0b3IuRU1QVFlfTk9ERX0sWXUucHJvdG90eXBlLmdldENoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBjdSh0KT90aGlzOiIucHJpb3JpdHkiPT09bnUodCk/dGhpcy5wcmlvcml0eU5vZGVfOll1Ll9fY2hpbGRyZW5Ob2RlQ29uc3RydWN0b3IuRU1QVFlfTk9ERX0sWXUucHJvdG90eXBlLmhhc0NoaWxkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LFl1LnByb3RvdHlwZS5nZXRQcmVkZWNlc3NvckNoaWxkTmFtZT1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsfSxZdS5wcm90b3R5cGUudXBkYXRlSW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4iLnByaW9yaXR5Ij09PXQ/dGhpcy51cGRhdGVQcmlvcml0eShlKTplLmlzRW1wdHkoKSYmIi5wcmlvcml0eSIhPT10P3RoaXM6WXUuX19jaGlsZHJlbk5vZGVDb25zdHJ1Y3Rvci5FTVBUWV9OT0RFLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHQsZSkudXBkYXRlUHJpb3JpdHkodGhpcy5wcmlvcml0eU5vZGVfKX0sWXUucHJvdG90eXBlLnVwZGF0ZUNoaWxkPWZ1bmN0aW9uKHQsZSl7dmFyIG49bnUodCk7cmV0dXJuIG51bGw9PT1uP2U6ZS5pc0VtcHR5KCkmJiIucHJpb3JpdHkiIT09bj90aGlzOihzbygiLnByaW9yaXR5IiE9PW58fDE9PT1ydSh0KSwiLnByaW9yaXR5IG11c3QgYmUgdGhlIGxhc3QgdG9rZW4gaW4gYSBwYXRoIiksdGhpcy51cGRhdGVJbW1lZGlhdGVDaGlsZChuLFl1Ll9fY2hpbGRyZW5Ob2RlQ29uc3RydWN0b3IuRU1QVFlfTk9ERS51cGRhdGVDaGlsZChpdSh0KSxlKSkpfSxZdS5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiExfSxZdS5wcm90b3R5cGUubnVtQ2hpbGRyZW49ZnVuY3Rpb24oKXtyZXR1cm4gMH0sWXUucHJvdG90eXBlLmZvckVhY2hDaGlsZD1mdW5jdGlvbih0LGUpe3JldHVybiExfSxZdS5wcm90b3R5cGUudmFsPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYhdGhpcy5nZXRQcmlvcml0eSgpLmlzRW1wdHkoKT97Ii52YWx1ZSI6dGhpcy5nZXRWYWx1ZSgpLCIucHJpb3JpdHkiOnRoaXMuZ2V0UHJpb3JpdHkoKS52YWwoKX06dGhpcy5nZXRWYWx1ZSgpfSxZdS5wcm90b3R5cGUuaGFzaD1mdW5jdGlvbigpe3ZhciB0LGU7cmV0dXJuIG51bGw9PT10aGlzLmxhenlIYXNoXyYmKHQ9IiIsdGhpcy5wcmlvcml0eU5vZGVfLmlzRW1wdHkoKXx8KHQrPSJwcmlvcml0eToiK0J1KHRoaXMucHJpb3JpdHlOb2RlXy52YWwoKSkrIjoiKSx0Kz0oZT10eXBlb2YgdGhpcy52YWx1ZV8pKyI6Iix0Kz0ibnVtYmVyIj09ZT9vYSh0aGlzLnZhbHVlXyk6dGhpcy52YWx1ZV8sdGhpcy5sYXp5SGFzaF89THModCkpLHRoaXMubGF6eUhhc2hffSxZdS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZV99LFl1LnByb3RvdHlwZS5jb21wYXJlVG89ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1ZdS5fX2NoaWxkcmVuTm9kZUNvbnN0cnVjdG9yLkVNUFRZX05PREU/MTp0IGluc3RhbmNlb2YgWXUuX19jaGlsZHJlbk5vZGVDb25zdHJ1Y3Rvcj8tMTooc28odC5pc0xlYWZOb2RlKCksIlVua25vd24gbm9kZSB0eXBlIiksdGhpcy5jb21wYXJlVG9MZWFmTm9kZV8odCkpfSxZdS5wcm90b3R5cGUuY29tcGFyZVRvTGVhZk5vZGVfPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0LnZhbHVlXyxuPXR5cGVvZiB0aGlzLnZhbHVlXyxyPVl1LlZBTFVFX1RZUEVfT1JERVIuaW5kZXhPZihlKSxpPVl1LlZBTFVFX1RZUEVfT1JERVIuaW5kZXhPZihuKTtyZXR1cm4gc28oMDw9ciwiVW5rbm93biBsZWFmIHR5cGU6ICIrZSksc28oMDw9aSwiVW5rbm93biBsZWFmIHR5cGU6ICIrbikscj09PWk/Im9iamVjdCI9PW4/MDp0aGlzLnZhbHVlXzx0LnZhbHVlXz8tMTp0aGlzLnZhbHVlXz09PXQudmFsdWVfPzA6MTppLXJ9LFl1LnByb3RvdHlwZS53aXRoSW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sWXUucHJvdG90eXBlLmlzSW5kZXhlZD1mdW5jdGlvbigpe3JldHVybiEwfSxZdS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09dGhpc3x8ISF0LmlzTGVhZk5vZGUoKSYmKHRoaXMudmFsdWVfPT09dC52YWx1ZV8mJnRoaXMucHJpb3JpdHlOb2RlXy5lcXVhbHModC5wcmlvcml0eU5vZGVfKSl9LFl1LlZBTFVFX1RZUEVfT1JERVI9WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwic3RyaW5nIl0sWXUpO2Z1bmN0aW9uIFl1KHQsZSl7dm9pZCAwPT09ZSYmKGU9WXUuX19jaGlsZHJlbk5vZGVDb25zdHJ1Y3Rvci5FTVBUWV9OT0RFKSx0aGlzLnZhbHVlXz10LHRoaXMucHJpb3JpdHlOb2RlXz1lLHRoaXMubGF6eUhhc2hfPW51bGwsc28odm9pZCAwIT09dGhpcy52YWx1ZV8mJm51bGwhPT10aGlzLnZhbHVlXywiTGVhZk5vZGUgc2hvdWxkbid0IGJlIGNyZWF0ZWQgd2l0aCBudWxsL3VuZGVmaW5lZCB2YWx1ZS4iKSx6dSh0aGlzLnByaW9yaXR5Tm9kZV8pfWZ1bmN0aW9uIFh1KCl7cmV0dXJuIG51bGwhPT1HdSYmR3UuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXZhciBKdT1uZXcoWGkoWHUsR3U9RyksWHUucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24odCxlKXt2YXIgbj10Lm5vZGUuZ2V0UHJpb3JpdHkoKSxyPWUubm9kZS5nZXRQcmlvcml0eSgpLHI9bi5jb21wYXJlVG8ocik7cmV0dXJuIDA9PT1yP25hKHQubmFtZSxlLm5hbWUpOnJ9LFh1LnByb3RvdHlwZS5pc0RlZmluZWRPbj1mdW5jdGlvbih0KXtyZXR1cm4hdC5nZXRQcmlvcml0eSgpLmlzRW1wdHkoKX0sWHUucHJvdG90eXBlLmluZGV4ZWRWYWx1ZUNoYW5nZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4hdC5nZXRQcmlvcml0eSgpLmVxdWFscyhlLmdldFByaW9yaXR5KCkpfSxYdS5wcm90b3R5cGUubWluUG9zdD1mdW5jdGlvbigpe3JldHVybiBTdS5NSU59LFh1LnByb3RvdHlwZS5tYXhQb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBTdShlYSxuZXcgUXUoIltQUklPUklUWS1QT1NUXSIsSHUpKX0sWHUucHJvdG90eXBlLm1ha2VQb3N0PWZ1bmN0aW9uKHQsZSl7dD1XdSh0KTtyZXR1cm4gbmV3IFN1KGUsbmV3IFF1KCJbUFJJT1JJVFktUE9TVF0iLHQpKX0sWHUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIi5wcmlvcml0eSJ9LFh1KSwkdT1NYXRoLmxvZygyKSxadT0odGMucHJvdG90eXBlLm5leHRCaXRJc09uZT1mdW5jdGlvbigpe3ZhciB0PSEodGhpcy5iaXRzXyYxPDx0aGlzLmN1cnJlbnRfKTtyZXR1cm4gdGhpcy5jdXJyZW50Xy0tLHR9LHRjKTtmdW5jdGlvbiB0Yyh0KXt2YXIgZTt0aGlzLmNvdW50PShlPXQrMSxwYXJzZUludChNYXRoLmxvZyhlKS8kdSwxMCkpLHRoaXMuY3VycmVudF89dGhpcy5jb3VudC0xO3ZhciBuLHI9KG49dGhpcy5jb3VudCxwYXJzZUludChBcnJheShuKzEpLmpvaW4oIjEiKSwyKSk7dGhpcy5iaXRzXz10KzEmcn12YXIgZWMsbmMscmM9ZnVuY3Rpb24oYyx0LGgsZSl7Yy5zb3J0KHQpO3ZhciBsPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS10O2lmKDA9PW4pcmV0dXJuIG51bGw7aWYoMT09bilyZXR1cm4gcj1jW3RdLGk9aD9oKHIpOnIsbmV3IHh1KGksci5ub2RlLHh1LkJMQUNLLG51bGwsbnVsbCk7dmFyIG49cGFyc2VJbnQobi8yLDEwKSt0LHQ9bCh0LG4pLGU9bChuKzEsZSkscj1jW25dLGk9aD9oKHIpOnI7cmV0dXJuIG5ldyB4dShpLHIubm9kZSx4dS5CTEFDSyx0LGUpfSxuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1udWxsLG49bnVsbCxpPWMubGVuZ3RoLHI9ZnVuY3Rpb24odCxlKXt2YXIgbj1pLXQscj1pO2ktPXQ7dD1sKDErbixyKSxyPWNbbl0sbj1oP2gocik6cjtvKG5ldyB4dShuLHIubm9kZSxlLG51bGwsdCkpfSxvPWZ1bmN0aW9uKHQpe2U9ZT9lLmxlZnQ9dDpuPXR9LHM9MDtzPHQuY291bnQ7KytzKXt2YXIgYT10Lm5leHRCaXRJc09uZSgpLHU9TWF0aC5wb3coMix0LmNvdW50LShzKzEpKTthP3IodSx4dS5CTEFDSyk6KHIodSx4dS5CTEFDSykscih1LHh1LlJFRCkpfXJldHVybiBufShuZXcgWnUoYy5sZW5ndGgpKTtyZXR1cm4gbmV3IFV1KGV8fHQsbil9LGljPXt9LG9jPShPYmplY3QuZGVmaW5lUHJvcGVydHkoc2MsIkRlZmF1bHQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc28oSnUsIkNoaWxkcmVuTm9kZS50cyBoYXMgbm90IGJlZW4gbG9hZGVkIiksZWM9ZWN8fG5ldyBzYyh7Ii5wcmlvcml0eSI6aWN9LHsiLnByaW9yaXR5IjpKdX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHNjLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9RG8odGhpcy5pbmRleGVzXyx0KTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIk5vIGluZGV4IGRlZmluZWQgZm9yICIrdCk7cmV0dXJuIGUgaW5zdGFuY2VvZiBVdT9lOm51bGx9LHNjLnByb3RvdHlwZS5oYXNJbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gT28odGhpcy5pbmRleFNldF8sdC50b1N0cmluZygpKX0sc2MucHJvdG90eXBlLmFkZEluZGV4PWZ1bmN0aW9uKHQsZSl7c28odCE9PVB1LCJLZXlJbmRleCBhbHdheXMgZXhpc3RzIGFuZCBpc24ndCBtZWFudCB0byBiZSBhZGRlZCB0byB0aGUgSW5kZXhNYXAuIik7Zm9yKHZhciBuPVtdLHI9ITEsaT1lLmdldEl0ZXJhdG9yKFN1LldyYXApLG89aS5nZXROZXh0KCk7bzspcj1yfHx0LmlzRGVmaW5lZE9uKG8ubm9kZSksbi5wdXNoKG8pLG89aS5nZXROZXh0KCk7dmFyIHM9cj9yYyhuLHQuZ2V0Q29tcGFyZSgpKTppYyxhPXQudG9TdHJpbmcoKSx1PUppKHt9LHRoaXMuaW5kZXhTZXRfKTt1W2FdPXQ7ZT1KaSh7fSx0aGlzLmluZGV4ZXNfKTtyZXR1cm4gZVthXT1zLG5ldyBzYyhlLHUpfSxzYy5wcm90b3R5cGUuYWRkVG9JbmRleGVzPWZ1bmN0aW9uKHMsYSl7dmFyIHU9dGhpcztyZXR1cm4gbmV3IHNjKExvKHRoaXMuaW5kZXhlc18sZnVuY3Rpb24odCxlKXt2YXIgbj1Ebyh1LmluZGV4U2V0XyxlKTtpZihzbyhuLCJNaXNzaW5nIGluZGV4IGltcGxlbWVudGF0aW9uIGZvciAiK2UpLHQ9PT1pYyl7aWYobi5pc0RlZmluZWRPbihzLm5vZGUpKXtmb3IodmFyIHI9W10saT1hLmdldEl0ZXJhdG9yKFN1LldyYXApLG89aS5nZXROZXh0KCk7bzspby5uYW1lIT09cy5uYW1lJiZyLnB1c2gobyksbz1pLmdldE5leHQoKTtyZXR1cm4gci5wdXNoKHMpLHJjKHIsbi5nZXRDb21wYXJlKCkpfXJldHVybiBpY31uPWEuZ2V0KHMubmFtZSk7cmV0dXJuKHQ9bj90LnJlbW92ZShuZXcgU3Uocy5uYW1lLG4pKTp0KS5pbnNlcnQocyxzLm5vZGUpfSksdGhpcy5pbmRleFNldF8pfSxzYy5wcm90b3R5cGUucmVtb3ZlRnJvbUluZGV4ZXM9ZnVuY3Rpb24obixyKXtyZXR1cm4gbmV3IHNjKExvKHRoaXMuaW5kZXhlc18sZnVuY3Rpb24odCl7aWYodD09PWljKXJldHVybiB0O3ZhciBlPXIuZ2V0KG4ubmFtZSk7cmV0dXJuIGU/dC5yZW1vdmUobmV3IFN1KG4ubmFtZSxlKSk6dH0pLHRoaXMuaW5kZXhTZXRfKX0sc2MpO2Z1bmN0aW9uIHNjKHQsZSl7dGhpcy5pbmRleGVzXz10LHRoaXMuaW5kZXhTZXRfPWV9dmFyIGFjLHVjPShPYmplY3QuZGVmaW5lUHJvcGVydHkoY2MsIkVNUFRZX05PREUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmM9bmN8fG5ldyBjYyhuZXcgVXUoVnUpLG51bGwsb2MuRGVmYXVsdCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksY2MucHJvdG90eXBlLmlzTGVhZk5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sY2MucHJvdG90eXBlLmdldFByaW9yaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpb3JpdHlOb2RlX3x8bmN9LGNjLnByb3RvdHlwZS51cGRhdGVQcmlvcml0eT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jaGlsZHJlbl8uaXNFbXB0eSgpP3RoaXM6bmV3IGNjKHRoaXMuY2hpbGRyZW5fLHQsdGhpcy5pbmRleE1hcF8pfSxjYy5wcm90b3R5cGUuZ2V0SW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCl7aWYoIi5wcmlvcml0eSI9PT10KXJldHVybiB0aGlzLmdldFByaW9yaXR5KCk7dD10aGlzLmNoaWxkcmVuXy5nZXQodCk7cmV0dXJuIG51bGw9PT10P25jOnR9LGNjLnByb3RvdHlwZS5nZXRDaGlsZD1mdW5jdGlvbih0KXt2YXIgZT1udSh0KTtyZXR1cm4gbnVsbD09PWU/dGhpczp0aGlzLmdldEltbWVkaWF0ZUNoaWxkKGUpLmdldENoaWxkKGl1KHQpKX0sY2MucHJvdG90eXBlLmhhc0NoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dGhpcy5jaGlsZHJlbl8uZ2V0KHQpfSxjYy5wcm90b3R5cGUudXBkYXRlSW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCxlKXtpZihzbyhlLCJXZSBzaG91bGQgYWx3YXlzIGJlIHBhc3Npbmcgc25hcHNob3Qgbm9kZXMiKSwiLnByaW9yaXR5Ij09PXQpcmV0dXJuIHRoaXMudXBkYXRlUHJpb3JpdHkoZSk7dmFyIG49bmV3IFN1KHQsZSkscj12b2lkIDAsaT12b2lkIDAsaT1lLmlzRW1wdHkoKT8ocj10aGlzLmNoaWxkcmVuXy5yZW1vdmUodCksdGhpcy5pbmRleE1hcF8ucmVtb3ZlRnJvbUluZGV4ZXMobix0aGlzLmNoaWxkcmVuXykpOihyPXRoaXMuY2hpbGRyZW5fLmluc2VydCh0LGUpLHRoaXMuaW5kZXhNYXBfLmFkZFRvSW5kZXhlcyhuLHRoaXMuY2hpbGRyZW5fKSksbj1yLmlzRW1wdHkoKT9uYzp0aGlzLnByaW9yaXR5Tm9kZV87cmV0dXJuIG5ldyBjYyhyLG4saSl9LGNjLnByb3RvdHlwZS51cGRhdGVDaGlsZD1mdW5jdGlvbih0LGUpe3ZhciBuPW51KHQpO2lmKG51bGw9PT1uKXJldHVybiBlO3NvKCIucHJpb3JpdHkiIT09bnUodCl8fDE9PT1ydSh0KSwiLnByaW9yaXR5IG11c3QgYmUgdGhlIGxhc3QgdG9rZW4gaW4gYSBwYXRoIik7ZT10aGlzLmdldEltbWVkaWF0ZUNoaWxkKG4pLnVwZGF0ZUNoaWxkKGl1KHQpLGUpO3JldHVybiB0aGlzLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKG4sZSl9LGNjLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW5fLmlzRW1wdHkoKX0sY2MucHJvdG90eXBlLm51bUNoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW5fLmNvdW50KCl9LGNjLnByb3RvdHlwZS52YWw9ZnVuY3Rpb24obil7aWYodGhpcy5pc0VtcHR5KCkpcmV0dXJuIG51bGw7dmFyIHI9e30saT0wLG89MCxzPSEwO2lmKHRoaXMuZm9yRWFjaENoaWxkKEp1LGZ1bmN0aW9uKHQsZSl7clt0XT1lLnZhbChuKSxpKysscyYmY2MuSU5URUdFUl9SRUdFWFBfLnRlc3QodCk/bz1NYXRoLm1heChvLE51bWJlcih0KSk6cz0hMX0pLCFuJiZzJiZvPDIqaSl7dmFyIHQsZT1bXTtmb3IodCBpbiByKWVbdF09clt0XTtyZXR1cm4gZX1yZXR1cm4gbiYmIXRoaXMuZ2V0UHJpb3JpdHkoKS5pc0VtcHR5KCkmJihyWyIucHJpb3JpdHkiXT10aGlzLmdldFByaW9yaXR5KCkudmFsKCkpLHJ9LGNjLnByb3RvdHlwZS5oYXNoPWZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIG51bGw9PT10aGlzLmxhenlIYXNoXyYmKG49IiIsdGhpcy5nZXRQcmlvcml0eSgpLmlzRW1wdHkoKXx8KG4rPSJwcmlvcml0eToiK0J1KHRoaXMuZ2V0UHJpb3JpdHkoKS52YWwoKSkrIjoiKSx0aGlzLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe2U9ZS5oYXNoKCk7IiIhPT1lJiYobis9IjoiK3QrIjoiK2UpfSksdGhpcy5sYXp5SGFzaF89IiI9PT1uPyIiOkxzKG4pKSx0aGlzLmxhenlIYXNoX30sY2MucHJvdG90eXBlLmdldFByZWRlY2Vzc29yQ2hpbGROYW1lPWZ1bmN0aW9uKHQsZSxuKXtuPXRoaXMucmVzb2x2ZUluZGV4XyhuKTtpZihuKXtlPW4uZ2V0UHJlZGVjZXNzb3JLZXkobmV3IFN1KHQsZSkpO3JldHVybiBlP2UubmFtZTpudWxsfXJldHVybiB0aGlzLmNoaWxkcmVuXy5nZXRQcmVkZWNlc3NvcktleSh0KX0sY2MucHJvdG90eXBlLmdldEZpcnN0Q2hpbGROYW1lPWZ1bmN0aW9uKHQpe3Q9dGhpcy5yZXNvbHZlSW5kZXhfKHQpO2lmKHQpe3Q9dC5taW5LZXkoKTtyZXR1cm4gdCYmdC5uYW1lfXJldHVybiB0aGlzLmNoaWxkcmVuXy5taW5LZXkoKX0sY2MucHJvdG90eXBlLmdldEZpcnN0Q2hpbGQ9ZnVuY3Rpb24odCl7dD10aGlzLmdldEZpcnN0Q2hpbGROYW1lKHQpO3JldHVybiB0P25ldyBTdSh0LHRoaXMuY2hpbGRyZW5fLmdldCh0KSk6bnVsbH0sY2MucHJvdG90eXBlLmdldExhc3RDaGlsZE5hbWU9ZnVuY3Rpb24odCl7dD10aGlzLnJlc29sdmVJbmRleF8odCk7aWYodCl7dD10Lm1heEtleSgpO3JldHVybiB0JiZ0Lm5hbWV9cmV0dXJuIHRoaXMuY2hpbGRyZW5fLm1heEtleSgpfSxjYy5wcm90b3R5cGUuZ2V0TGFzdENoaWxkPWZ1bmN0aW9uKHQpe3Q9dGhpcy5nZXRMYXN0Q2hpbGROYW1lKHQpO3JldHVybiB0P25ldyBTdSh0LHRoaXMuY2hpbGRyZW5fLmdldCh0KSk6bnVsbH0sY2MucHJvdG90eXBlLmZvckVhY2hDaGlsZD1mdW5jdGlvbih0LGUpe3Q9dGhpcy5yZXNvbHZlSW5kZXhfKHQpO3JldHVybiB0P3QuaW5vcmRlclRyYXZlcnNhbChmdW5jdGlvbih0KXtyZXR1cm4gZSh0Lm5hbWUsdC5ub2RlKX0pOnRoaXMuY2hpbGRyZW5fLmlub3JkZXJUcmF2ZXJzYWwoZSl9LGNjLnByb3RvdHlwZS5nZXRJdGVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRJdGVyYXRvckZyb20odC5taW5Qb3N0KCksdCl9LGNjLnByb3RvdHlwZS5nZXRJdGVyYXRvckZyb209ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLnJlc29sdmVJbmRleF8oZSk7aWYobilyZXR1cm4gbi5nZXRJdGVyYXRvckZyb20odCxmdW5jdGlvbih0KXtyZXR1cm4gdH0pO2Zvcih2YXIgcj10aGlzLmNoaWxkcmVuXy5nZXRJdGVyYXRvckZyb20odC5uYW1lLFN1LldyYXApLGk9ci5wZWVrKCk7bnVsbCE9aSYmZS5jb21wYXJlKGksdCk8MDspci5nZXROZXh0KCksaT1yLnBlZWsoKTtyZXR1cm4gcn0sY2MucHJvdG90eXBlLmdldFJldmVyc2VJdGVyYXRvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRSZXZlcnNlSXRlcmF0b3JGcm9tKHQubWF4UG9zdCgpLHQpfSxjYy5wcm90b3R5cGUuZ2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMucmVzb2x2ZUluZGV4XyhlKTtpZihuKXJldHVybiBuLmdldFJldmVyc2VJdGVyYXRvckZyb20odCxmdW5jdGlvbih0KXtyZXR1cm4gdH0pO2Zvcih2YXIgcj10aGlzLmNoaWxkcmVuXy5nZXRSZXZlcnNlSXRlcmF0b3JGcm9tKHQubmFtZSxTdS5XcmFwKSxpPXIucGVlaygpO251bGwhPWkmJjA8ZS5jb21wYXJlKGksdCk7KXIuZ2V0TmV4dCgpLGk9ci5wZWVrKCk7cmV0dXJuIHJ9LGNjLnByb3RvdHlwZS5jb21wYXJlVG89ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXNFbXB0eSgpP3QuaXNFbXB0eSgpPzA6LTE6dC5pc0xlYWZOb2RlKCl8fHQuaXNFbXB0eSgpPzE6dD09PWxjPy0xOjB9LGNjLnByb3RvdHlwZS53aXRoSW5kZXg9ZnVuY3Rpb24odCl7aWYodD09PVB1fHx0aGlzLmluZGV4TWFwXy5oYXNJbmRleCh0KSlyZXR1cm4gdGhpczt0PXRoaXMuaW5kZXhNYXBfLmFkZEluZGV4KHQsdGhpcy5jaGlsZHJlbl8pO3JldHVybiBuZXcgY2ModGhpcy5jaGlsZHJlbl8sdGhpcy5wcmlvcml0eU5vZGVfLHQpfSxjYy5wcm90b3R5cGUuaXNJbmRleGVkPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09UHV8fHRoaXMuaW5kZXhNYXBfLmhhc0luZGV4KHQpfSxjYy5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe2lmKHQ9PT10aGlzKXJldHVybiEwO2lmKHQuaXNMZWFmTm9kZSgpKXJldHVybiExO2lmKHRoaXMuZ2V0UHJpb3JpdHkoKS5lcXVhbHModC5nZXRQcmlvcml0eSgpKSl7aWYodGhpcy5jaGlsZHJlbl8uY291bnQoKSE9PXQuY2hpbGRyZW5fLmNvdW50KCkpcmV0dXJuITE7Zm9yKHZhciBlPXRoaXMuZ2V0SXRlcmF0b3IoSnUpLG49dC5nZXRJdGVyYXRvcihKdSkscj1lLmdldE5leHQoKSxpPW4uZ2V0TmV4dCgpO3ImJmk7KXtpZihyLm5hbWUhPT1pLm5hbWV8fCFyLm5vZGUuZXF1YWxzKGkubm9kZSkpcmV0dXJuITE7cj1lLmdldE5leHQoKSxpPW4uZ2V0TmV4dCgpfXJldHVybiBudWxsPT09ciYmbnVsbD09PWl9cmV0dXJuITF9LGNjLnByb3RvdHlwZS5yZXNvbHZlSW5kZXhfPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09UHU/bnVsbDp0aGlzLmluZGV4TWFwXy5nZXQodC50b1N0cmluZygpKX0sY2MuSU5URUdFUl9SRUdFWFBfPS9eKDB8WzEtOV1cZCopJC8sY2MpO2Z1bmN0aW9uIGNjKHQsZSxuKXt0aGlzLmNoaWxkcmVuXz10LHRoaXMucHJpb3JpdHlOb2RlXz1lLHRoaXMuaW5kZXhNYXBfPW4sdGhpcy5sYXp5SGFzaF89bnVsbCx0aGlzLnByaW9yaXR5Tm9kZV8mJnp1KHRoaXMucHJpb3JpdHlOb2RlXyksdGhpcy5jaGlsZHJlbl8uaXNFbXB0eSgpJiZzbyghdGhpcy5wcmlvcml0eU5vZGVffHx0aGlzLnByaW9yaXR5Tm9kZV8uaXNFbXB0eSgpLCJBbiBlbXB0eSBub2RlIGNhbm5vdCBoYXZlIGEgcHJpb3JpdHkiKX1mdW5jdGlvbiBoYygpe3JldHVybiBhYy5jYWxsKHRoaXMsbmV3IFV1KFZ1KSx1Yy5FTVBUWV9OT0RFLG9jLkRlZmF1bHQpfHx0aGlzfXZhciBsYz1uZXcoWGkoaGMsYWM9dWMpLGhjLnByb3RvdHlwZS5jb21wYXJlVG89ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT10aGlzPzA6MX0saGMucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdD09PXRoaXN9LGhjLnByb3RvdHlwZS5nZXRQcmlvcml0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxoYy5wcm90b3R5cGUuZ2V0SW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHVjLkVNUFRZX05PREV9LGhjLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGhjKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhTdSx7TUlOOnt2YWx1ZTpuZXcgU3UodGEsdWMuRU1QVFlfTk9ERSl9LE1BWDp7dmFsdWU6bmV3IFN1KGVhLGxjKX19KSxTbi5fX0VNUFRZX05PREU9dWMuRU1QVFlfTk9ERSxRdS5fX2NoaWxkcmVuTm9kZUNvbnN0cnVjdG9yPXVjLEZ1PWxjLEh1PWxjO3ZhciBmYz0hMDtmdW5jdGlvbiBwYyhuLHQpe2lmKHZvaWQgMD09PXQmJih0PW51bGwpLG51bGw9PT1uKXJldHVybiB1Yy5FTVBUWV9OT0RFO2lmKCJvYmplY3QiPT10eXBlb2YgbiYmIi5wcmlvcml0eSJpbiBuJiYodD1uWyIucHJpb3JpdHkiXSksc28obnVsbD09PXR8fCJzdHJpbmciPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0fHwib2JqZWN0Ij09dHlwZW9mIHQmJiIuc3YiaW4gdCwiSW52YWxpZCBwcmlvcml0eSB0eXBlIGZvdW5kOiAiK3R5cGVvZiB0KSwib2JqZWN0Ij09dHlwZW9mIG4mJiIudmFsdWUiaW4gbiYmbnVsbCE9PW5bIi52YWx1ZSJdJiYobj1uWyIudmFsdWUiXSksIm9iamVjdCIhPXR5cGVvZiBufHwiLnN2ImluIG4pcmV0dXJuIG5ldyBRdShuLHBjKHQpKTtpZihuIGluc3RhbmNlb2YgQXJyYXl8fCFmYyl7dmFyIHI9dWMuRU1QVFlfTk9ERTtyZXR1cm4gaWEobixmdW5jdGlvbih0LGUpe09vKG4sdCkmJiIuIiE9PXQuc3Vic3RyaW5nKDAsMSkmJighKGU9cGMoZSkpLmlzTGVhZk5vZGUoKSYmZS5pc0VtcHR5KCl8fChyPXIudXBkYXRlSW1tZWRpYXRlQ2hpbGQodCxlKSkpfSksci51cGRhdGVQcmlvcml0eShwYyh0KSl9dmFyIGk9W10sbz0hMTtpZihpYShuLGZ1bmN0aW9uKHQsZSl7Ii4iIT09dC5zdWJzdHJpbmcoMCwxKSYmKChlPXBjKGUpKS5pc0VtcHR5KCl8fChvPW98fCFlLmdldFByaW9yaXR5KCkuaXNFbXB0eSgpLGkucHVzaChuZXcgU3UodCxlKSkpKX0pLDA9PT1pLmxlbmd0aClyZXR1cm4gdWMuRU1QVFlfTk9ERTt2YXIgZT1yYyhpLHF1LGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWV9LFZ1KTtpZihvKXt2YXIgcz1yYyhpLEp1LmdldENvbXBhcmUoKSk7cmV0dXJuIG5ldyB1YyhlLHBjKHQpLG5ldyBvYyh7Ii5wcmlvcml0eSI6c30seyIucHJpb3JpdHkiOkp1fSkpfXJldHVybiBuZXcgdWMoZSxwYyh0KSxvYy5EZWZhdWx0KX1XdT1wYzt2YXIgZGMsdmMsZ2M9KFhpKHljLGRjPUcpLHljLnByb3RvdHlwZS5leHRyYWN0Q2hpbGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0Q2hpbGQodGhpcy5pbmRleFBhdGhfKX0seWMucHJvdG90eXBlLmlzRGVmaW5lZE9uPWZ1bmN0aW9uKHQpe3JldHVybiF0LmdldENoaWxkKHRoaXMuaW5kZXhQYXRoXykuaXNFbXB0eSgpfSx5Yy5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZXh0cmFjdENoaWxkKHQubm9kZSkscj10aGlzLmV4dHJhY3RDaGlsZChlLm5vZGUpLHI9bi5jb21wYXJlVG8ocik7cmV0dXJuIDA9PT1yP25hKHQubmFtZSxlLm5hbWUpOnJ9LHljLnByb3RvdHlwZS5tYWtlUG9zdD1mdW5jdGlvbih0LGUpe3Q9cGModCksdD11Yy5FTVBUWV9OT0RFLnVwZGF0ZUNoaWxkKHRoaXMuaW5kZXhQYXRoXyx0KTtyZXR1cm4gbmV3IFN1KGUsdCl9LHljLnByb3RvdHlwZS5tYXhQb3N0PWZ1bmN0aW9uKCl7dmFyIHQ9dWMuRU1QVFlfTk9ERS51cGRhdGVDaGlsZCh0aGlzLmluZGV4UGF0aF8sbGMpO3JldHVybiBuZXcgU3UoZWEsdCl9LHljLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBzdSh0aGlzLmluZGV4UGF0aF8sMCkuam9pbigiLyIpfSx5Yyk7ZnVuY3Rpb24geWModCl7dmFyIGU9ZGMuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gZS5pbmRleFBhdGhfPXQsc28oIWN1KHQpJiYiLnByaW9yaXR5IiE9PW51KHQpLCJDYW4ndCBjcmVhdGUgUGF0aEluZGV4IHdpdGggZW1wdHkgcGF0aCBvciAucHJpb3JpdHkga2V5IiksZX1mdW5jdGlvbiBtYygpe3JldHVybiBudWxsIT09dmMmJnZjLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31mdW5jdGlvbiBiYyh0KXtpZih0PT09IiIraGEpcmV0dXJuIi0iO3ZhciBlPWxhKHQpO2lmKG51bGwhPWUpcmV0dXJuIiIrKGUrMSk7Zm9yKHZhciBuPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0wO3I8bi5sZW5ndGg7cisrKW5bcl09dC5jaGFyQXQocik7aWYobi5sZW5ndGg8Nzg2KXJldHVybiBuLnB1c2goIi0iKSxuLmpvaW4oIiIpO2Zvcih2YXIgaT1uLmxlbmd0aC0xOzA8PWkmJiJ6Ij09PW5baV07KWktLTtyZXR1cm4tMT09PWk/ZWE6KGU9bltpXSxlPUVjLmNoYXJBdChFYy5pbmRleE9mKGUpKzEpLG5baV09ZSxuLnNsaWNlKDAsaSsxKS5qb2luKCIiKSl9ZnVuY3Rpb24gd2ModCl7aWYodD09PSIiK2NhKXJldHVybiB0YTt2YXIgZT1sYSh0KTtpZihudWxsIT1lKXJldHVybiIiKyhlLTEpO2Zvcih2YXIgbj1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdPXQuY2hhckF0KHIpO3JldHVybiItIj09PW5bbi5sZW5ndGgtMV0/MT09PW4ubGVuZ3RoPyIiK2hhOihkZWxldGUgbltuLmxlbmd0aC0xXSxuLmpvaW4oIiIpKToobltuLmxlbmd0aC0xXT1FYy5jaGFyQXQoRWMuaW5kZXhPZihuW24ubGVuZ3RoLTFdKS0xKSxuLmpvaW4oIiIpKyJ6Ii5yZXBlYXQoNzg2LW4ubGVuZ3RoKSl9dmFyIF9jLEljLFRjPW5ldyhYaShtYyx2Yz1HKSxtYy5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUpe3ZhciBuPXQubm9kZS5jb21wYXJlVG8oZS5ub2RlKTtyZXR1cm4gMD09PW4/bmEodC5uYW1lLGUubmFtZSk6bn0sbWMucHJvdG90eXBlLmlzRGVmaW5lZE9uPWZ1bmN0aW9uKHQpe3JldHVybiEwfSxtYy5wcm90b3R5cGUuaW5kZXhlZFZhbHVlQ2hhbmdlZD1mdW5jdGlvbih0LGUpe3JldHVybiF0LmVxdWFscyhlKX0sbWMucHJvdG90eXBlLm1pblBvc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gU3UuTUlOfSxtYy5wcm90b3R5cGUubWF4UG9zdD1mdW5jdGlvbigpe3JldHVybiBTdS5NQVh9LG1jLnByb3RvdHlwZS5tYWtlUG9zdD1mdW5jdGlvbih0LGUpe3Q9cGModCk7cmV0dXJuIG5ldyBTdShlLHQpfSxtYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iLnZhbHVlIn0sbWMpLEVjPSItMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaX2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IixTYz0oX2M9MCxJYz1bXSxmdW5jdGlvbih0KXt2YXIgZT10PT09X2M7X2M9dDtmb3IodmFyIG49bmV3IEFycmF5KDgpLHI9NzswPD1yO3ItLSluW3JdPUVjLmNoYXJBdCh0JTY0KSx0PU1hdGguZmxvb3IodC82NCk7c28oMD09PXQsIkNhbm5vdCBwdXNoIGF0IHRpbWUgPT0gMCIpO3ZhciBpPW4uam9pbigiIik7aWYoZSl7Zm9yKHI9MTE7MDw9ciYmNjM9PT1JY1tyXTtyLS0pSWNbcl09MDtJY1tyXSsrfWVsc2UgZm9yKHI9MDtyPDEyO3IrKylJY1tyXT1NYXRoLmZsb29yKDY0Kk1hdGgucmFuZG9tKCkpO2ZvcihyPTA7cjwxMjtyKyspaSs9RWMuY2hhckF0KEljW3JdKTtyZXR1cm4gc28oMjA9PT1pLmxlbmd0aCwibmV4dFB1c2hJZDogTGVuZ3RoIHNob3VsZCBiZSAyMC4iKSxpfSk7ZnVuY3Rpb24gQ2ModCl7cmV0dXJue3R5cGU6InZhbHVlIixzbmFwc2hvdE5vZGU6dH19ZnVuY3Rpb24gTmModCxlKXtyZXR1cm57dHlwZToiY2hpbGRfYWRkZWQiLHNuYXBzaG90Tm9kZTplLGNoaWxkTmFtZTp0fX1mdW5jdGlvbiBBYyh0LGUpe3JldHVybnt0eXBlOiJjaGlsZF9yZW1vdmVkIixzbmFwc2hvdE5vZGU6ZSxjaGlsZE5hbWU6dH19ZnVuY3Rpb24ga2ModCxlLG4pe3JldHVybnt0eXBlOiJjaGlsZF9jaGFuZ2VkIixzbmFwc2hvdE5vZGU6ZSxjaGlsZE5hbWU6dCxvbGRTbmFwOm59fXZhciBSYz0oUGMucHJvdG90eXBlLnVwZGF0ZUNoaWxkPWZ1bmN0aW9uKHQsZSxuLHIsaSxvKXtzbyh0LmlzSW5kZXhlZCh0aGlzLmluZGV4XyksIkEgbm9kZSBtdXN0IGJlIGluZGV4ZWQgaWYgb25seSBhIGNoaWxkIGlzIHVwZGF0ZWQiKTt2YXIgcz10LmdldEltbWVkaWF0ZUNoaWxkKGUpO3JldHVybiBzLmdldENoaWxkKHIpLmVxdWFscyhuLmdldENoaWxkKHIpKSYmcy5pc0VtcHR5KCk9PT1uLmlzRW1wdHkoKT90OihudWxsIT1vJiYobi5pc0VtcHR5KCk/dC5oYXNDaGlsZChlKT9vLnRyYWNrQ2hpbGRDaGFuZ2UoQWMoZSxzKSk6c28odC5pc0xlYWZOb2RlKCksIkEgY2hpbGQgcmVtb3ZlIHdpdGhvdXQgYW4gb2xkIGNoaWxkIG9ubHkgbWFrZXMgc2Vuc2Ugb24gYSBsZWFmIG5vZGUiKTpzLmlzRW1wdHkoKT9vLnRyYWNrQ2hpbGRDaGFuZ2UoTmMoZSxuKSk6by50cmFja0NoaWxkQ2hhbmdlKGtjKGUsbixzKSkpLHQuaXNMZWFmTm9kZSgpJiZuLmlzRW1wdHkoKT90OnQudXBkYXRlSW1tZWRpYXRlQ2hpbGQoZSxuKS53aXRoSW5kZXgodGhpcy5pbmRleF8pKX0sUGMucHJvdG90eXBlLnVwZGF0ZUZ1bGxOb2RlPWZ1bmN0aW9uKHIsbixpKXtyZXR1cm4gbnVsbCE9aSYmKHIuaXNMZWFmTm9kZSgpfHxyLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe24uaGFzQ2hpbGQodCl8fGkudHJhY2tDaGlsZENoYW5nZShBYyh0LGUpKX0pLG4uaXNMZWFmTm9kZSgpfHxuLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe3ZhciBuO3IuaGFzQ2hpbGQodCk/KG49ci5nZXRJbW1lZGlhdGVDaGlsZCh0KSkuZXF1YWxzKGUpfHxpLnRyYWNrQ2hpbGRDaGFuZ2Uoa2ModCxlLG4pKTppLnRyYWNrQ2hpbGRDaGFuZ2UoTmModCxlKSl9KSksbi53aXRoSW5kZXgodGhpcy5pbmRleF8pfSxQYy5wcm90b3R5cGUudXBkYXRlUHJpb3JpdHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5pc0VtcHR5KCk/dWMuRU1QVFlfTk9ERTp0LnVwZGF0ZVByaW9yaXR5KGUpfSxQYy5wcm90b3R5cGUuZmlsdGVyc05vZGVzPWZ1bmN0aW9uKCl7cmV0dXJuITF9LFBjLnByb3RvdHlwZS5nZXRJbmRleGVkRmlsdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LFBjLnByb3RvdHlwZS5nZXRJbmRleD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4X30sUGMpO2Z1bmN0aW9uIFBjKHQpe3RoaXMuaW5kZXhfPXR9dmFyIE9jPShEYy5wcm90b3R5cGUuZ2V0U3RhcnRQb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRQb3N0X30sRGMucHJvdG90eXBlLmdldEVuZFBvc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRQb3N0X30sRGMucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW5kZXhfLmNvbXBhcmUodGhpcy5nZXRTdGFydFBvc3QoKSx0KTw9MCYmdGhpcy5pbmRleF8uY29tcGFyZSh0LHRoaXMuZ2V0RW5kUG9zdCgpKTw9MH0sRGMucHJvdG90eXBlLnVwZGF0ZUNoaWxkPWZ1bmN0aW9uKHQsZSxuLHIsaSxvKXtyZXR1cm4gdGhpcy5tYXRjaGVzKG5ldyBTdShlLG4pKXx8KG49dWMuRU1QVFlfTk9ERSksdGhpcy5pbmRleGVkRmlsdGVyXy51cGRhdGVDaGlsZCh0LGUsbixyLGksbyl9LERjLnByb3RvdHlwZS51cGRhdGVGdWxsTm9kZT1mdW5jdGlvbih0LGUsbil7ZS5pc0xlYWZOb2RlKCkmJihlPXVjLkVNUFRZX05PREUpO3ZhciByPShyPWUud2l0aEluZGV4KHRoaXMuaW5kZXhfKSkudXBkYXRlUHJpb3JpdHkodWMuRU1QVFlfTk9ERSksaT10aGlzO3JldHVybiBlLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe2kubWF0Y2hlcyhuZXcgU3UodCxlKSl8fChyPXIudXBkYXRlSW1tZWRpYXRlQ2hpbGQodCx1Yy5FTVBUWV9OT0RFKSl9KSx0aGlzLmluZGV4ZWRGaWx0ZXJfLnVwZGF0ZUZ1bGxOb2RlKHQscixuKX0sRGMucHJvdG90eXBlLnVwZGF0ZVByaW9yaXR5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9LERjLnByb3RvdHlwZS5maWx0ZXJzTm9kZXM9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sRGMucHJvdG90eXBlLmdldEluZGV4ZWRGaWx0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmRleGVkRmlsdGVyX30sRGMucHJvdG90eXBlLmdldEluZGV4PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5kZXhffSxEYy5nZXRTdGFydFBvc3RfPWZ1bmN0aW9uKHQpe2lmKHQuaGFzU3RhcnQoKSl7dmFyIGU9dC5nZXRJbmRleFN0YXJ0TmFtZSgpO3JldHVybiB0LmdldEluZGV4KCkubWFrZVBvc3QodC5nZXRJbmRleFN0YXJ0VmFsdWUoKSxlKX1yZXR1cm4gdC5nZXRJbmRleCgpLm1pblBvc3QoKX0sRGMuZ2V0RW5kUG9zdF89ZnVuY3Rpb24odCl7aWYodC5oYXNFbmQoKSl7dmFyIGU9dC5nZXRJbmRleEVuZE5hbWUoKTtyZXR1cm4gdC5nZXRJbmRleCgpLm1ha2VQb3N0KHQuZ2V0SW5kZXhFbmRWYWx1ZSgpLGUpfXJldHVybiB0LmdldEluZGV4KCkubWF4UG9zdCgpfSxEYyk7ZnVuY3Rpb24gRGModCl7dGhpcy5pbmRleGVkRmlsdGVyXz1uZXcgUmModC5nZXRJbmRleCgpKSx0aGlzLmluZGV4Xz10LmdldEluZGV4KCksdGhpcy5zdGFydFBvc3RfPURjLmdldFN0YXJ0UG9zdF8odCksdGhpcy5lbmRQb3N0Xz1EYy5nZXRFbmRQb3N0Xyh0KX12YXIgeGM9KExjLnByb3RvdHlwZS51cGRhdGVDaGlsZD1mdW5jdGlvbih0LGUsbixyLGksbyl7cmV0dXJuIHRoaXMucmFuZ2VkRmlsdGVyXy5tYXRjaGVzKG5ldyBTdShlLG4pKXx8KG49dWMuRU1QVFlfTk9ERSksdC5nZXRJbW1lZGlhdGVDaGlsZChlKS5lcXVhbHMobik/dDp0Lm51bUNoaWxkcmVuKCk8dGhpcy5saW1pdF8/dGhpcy5yYW5nZWRGaWx0ZXJfLmdldEluZGV4ZWRGaWx0ZXIoKS51cGRhdGVDaGlsZCh0LGUsbixyLGksbyk6dGhpcy5mdWxsTGltaXRVcGRhdGVDaGlsZF8odCxlLG4saSxvKX0sTGMucHJvdG90eXBlLnVwZGF0ZUZ1bGxOb2RlPWZ1bmN0aW9uKHQsZSxuKXtpZihlLmlzTGVhZk5vZGUoKXx8ZS5pc0VtcHR5KCkpcj11Yy5FTVBUWV9OT0RFLndpdGhJbmRleCh0aGlzLmluZGV4Xyk7ZWxzZSBpZigyKnRoaXMubGltaXRfPGUubnVtQ2hpbGRyZW4oKSYmZS5pc0luZGV4ZWQodGhpcy5pbmRleF8pKXt2YXIgcj11Yy5FTVBUWV9OT0RFLndpdGhJbmRleCh0aGlzLmluZGV4XyksaT12b2lkIDA7aT10aGlzLnJldmVyc2VfP2UuZ2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbSh0aGlzLnJhbmdlZEZpbHRlcl8uZ2V0RW5kUG9zdCgpLHRoaXMuaW5kZXhfKTplLmdldEl0ZXJhdG9yRnJvbSh0aGlzLnJhbmdlZEZpbHRlcl8uZ2V0U3RhcnRQb3N0KCksdGhpcy5pbmRleF8pO2Zvcih2YXIgbz0wO2kuaGFzTmV4dCgpJiZvPHRoaXMubGltaXRfOyl7dmFyIHM9aS5nZXROZXh0KCk7aWYoISh0aGlzLnJldmVyc2VfP3RoaXMuaW5kZXhfLmNvbXBhcmUodGhpcy5yYW5nZWRGaWx0ZXJfLmdldFN0YXJ0UG9zdCgpLHMpPD0wOnRoaXMuaW5kZXhfLmNvbXBhcmUocyx0aGlzLnJhbmdlZEZpbHRlcl8uZ2V0RW5kUG9zdCgpKTw9MCkpYnJlYWs7cj1yLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHMubmFtZSxzLm5vZGUpLG8rK319ZWxzZXtyPShyPWUud2l0aEluZGV4KHRoaXMuaW5kZXhfKSkudXBkYXRlUHJpb3JpdHkodWMuRU1QVFlfTk9ERSk7dmFyIGEsdT12b2lkIDAsYz12b2lkIDAsaD12b2lkIDAsaT12b2lkIDA7aD10aGlzLnJldmVyc2VfPyhpPXIuZ2V0UmV2ZXJzZUl0ZXJhdG9yKHRoaXMuaW5kZXhfKSx1PXRoaXMucmFuZ2VkRmlsdGVyXy5nZXRFbmRQb3N0KCksYz10aGlzLnJhbmdlZEZpbHRlcl8uZ2V0U3RhcnRQb3N0KCksYT10aGlzLmluZGV4Xy5nZXRDb21wYXJlKCksZnVuY3Rpb24odCxlKXtyZXR1cm4gYShlLHQpfSk6KGk9ci5nZXRJdGVyYXRvcih0aGlzLmluZGV4XyksdT10aGlzLnJhbmdlZEZpbHRlcl8uZ2V0U3RhcnRQb3N0KCksYz10aGlzLnJhbmdlZEZpbHRlcl8uZ2V0RW5kUG9zdCgpLHRoaXMuaW5kZXhfLmdldENvbXBhcmUoKSk7Zm9yKHZhciBvPTAsbD0hMTtpLmhhc05leHQoKTspe3M9aS5nZXROZXh0KCk7KGw9IWwmJmgodSxzKTw9MD8hMDpsKSYmbzx0aGlzLmxpbWl0XyYmaChzLGMpPD0wP28rKzpyPXIudXBkYXRlSW1tZWRpYXRlQ2hpbGQocy5uYW1lLHVjLkVNUFRZX05PREUpfX1yZXR1cm4gdGhpcy5yYW5nZWRGaWx0ZXJfLmdldEluZGV4ZWRGaWx0ZXIoKS51cGRhdGVGdWxsTm9kZSh0LHIsbil9LExjLnByb3RvdHlwZS51cGRhdGVQcmlvcml0eT1mdW5jdGlvbih0LGUpe3JldHVybiB0fSxMYy5wcm90b3R5cGUuZmlsdGVyc05vZGVzPWZ1bmN0aW9uKCl7cmV0dXJuITB9LExjLnByb3RvdHlwZS5nZXRJbmRleGVkRmlsdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmFuZ2VkRmlsdGVyXy5nZXRJbmRleGVkRmlsdGVyKCl9LExjLnByb3RvdHlwZS5nZXRJbmRleD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4X30sTGMucHJvdG90eXBlLmZ1bGxMaW1pdFVwZGF0ZUNoaWxkXz1mdW5jdGlvbih0LGUsbixyLGkpe3ZhciBvLHM7cz10aGlzLnJldmVyc2VfPyhvPXRoaXMuaW5kZXhfLmdldENvbXBhcmUoKSxmdW5jdGlvbih0LGUpe3JldHVybiBvKGUsdCl9KTp0aGlzLmluZGV4Xy5nZXRDb21wYXJlKCk7dmFyIGE9dDtzbyhhLm51bUNoaWxkcmVuKCk9PT10aGlzLmxpbWl0XywiIik7dmFyIHU9bmV3IFN1KGUsbiksYz10aGlzLnJldmVyc2VfP2EuZ2V0Rmlyc3RDaGlsZCh0aGlzLmluZGV4Xyk6YS5nZXRMYXN0Q2hpbGQodGhpcy5pbmRleF8pLGg9dGhpcy5yYW5nZWRGaWx0ZXJfLm1hdGNoZXModSk7aWYoYS5oYXNDaGlsZChlKSl7Zm9yKHZhciBsPWEuZ2V0SW1tZWRpYXRlQ2hpbGQoZSksZj1yLmdldENoaWxkQWZ0ZXJDaGlsZCh0aGlzLmluZGV4XyxjLHRoaXMucmV2ZXJzZV8pO251bGwhPWYmJihmLm5hbWU9PT1lfHxhLmhhc0NoaWxkKGYubmFtZSkpOylmPXIuZ2V0Q2hpbGRBZnRlckNoaWxkKHRoaXMuaW5kZXhfLGYsdGhpcy5yZXZlcnNlXyk7dmFyIHA9bnVsbD09Zj8xOnMoZix1KTtpZihoJiYhbi5pc0VtcHR5KCkmJjA8PXApcmV0dXJuIG51bGwhPWkmJmkudHJhY2tDaGlsZENoYW5nZShrYyhlLG4sbCkpLGEudXBkYXRlSW1tZWRpYXRlQ2hpbGQoZSxuKTtudWxsIT1pJiZpLnRyYWNrQ2hpbGRDaGFuZ2UoQWMoZSxsKSk7bD1hLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKGUsdWMuRU1QVFlfTk9ERSk7cmV0dXJuIG51bGwhPWYmJnRoaXMucmFuZ2VkRmlsdGVyXy5tYXRjaGVzKGYpPyhudWxsIT1pJiZpLnRyYWNrQ2hpbGRDaGFuZ2UoTmMoZi5uYW1lLGYubm9kZSkpLGwudXBkYXRlSW1tZWRpYXRlQ2hpbGQoZi5uYW1lLGYubm9kZSkpOmx9cmV0dXJuIW4uaXNFbXB0eSgpJiZoJiYwPD1zKGMsdSk/KG51bGwhPWkmJihpLnRyYWNrQ2hpbGRDaGFuZ2UoQWMoYy5uYW1lLGMubm9kZSkpLGkudHJhY2tDaGlsZENoYW5nZShOYyhlLG4pKSksYS51cGRhdGVJbW1lZGlhdGVDaGlsZChlLG4pLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKGMubmFtZSx1Yy5FTVBUWV9OT0RFKSk6dH0sTGMpO2Z1bmN0aW9uIExjKHQpe3RoaXMucmFuZ2VkRmlsdGVyXz1uZXcgT2ModCksdGhpcy5pbmRleF89dC5nZXRJbmRleCgpLHRoaXMubGltaXRfPXQuZ2V0TGltaXQoKSx0aGlzLnJldmVyc2VfPSF0LmlzVmlld0Zyb21MZWZ0KCl9dmFyIE1jPShGYy5wcm90b3R5cGUuaGFzU3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFydFNldF99LEZjLnByb3RvdHlwZS5oYXNTdGFydEFmdGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRBZnRlclNldF99LEZjLnByb3RvdHlwZS5oYXNFbmRCZWZvcmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRCZWZvcmVTZXRffSxGYy5wcm90b3R5cGUuaXNWaWV3RnJvbUxlZnQ9ZnVuY3Rpb24oKXtyZXR1cm4iIj09PXRoaXMudmlld0Zyb21fP3RoaXMuc3RhcnRTZXRfOiJsIj09PXRoaXMudmlld0Zyb21ffSxGYy5wcm90b3R5cGUuZ2V0SW5kZXhTdGFydFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHNvKHRoaXMuc3RhcnRTZXRfLCJPbmx5IHZhbGlkIGlmIHN0YXJ0IGhhcyBiZWVuIHNldCIpLHRoaXMuaW5kZXhTdGFydFZhbHVlX30sRmMucHJvdG90eXBlLmdldEluZGV4U3RhcnROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHNvKHRoaXMuc3RhcnRTZXRfLCJPbmx5IHZhbGlkIGlmIHN0YXJ0IGhhcyBiZWVuIHNldCIpLHRoaXMuc3RhcnROYW1lU2V0Xz90aGlzLmluZGV4U3RhcnROYW1lXzp0YX0sRmMucHJvdG90eXBlLmhhc0VuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuZFNldF99LEZjLnByb3RvdHlwZS5nZXRJbmRleEVuZFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHNvKHRoaXMuZW5kU2V0XywiT25seSB2YWxpZCBpZiBlbmQgaGFzIGJlZW4gc2V0IiksdGhpcy5pbmRleEVuZFZhbHVlX30sRmMucHJvdG90eXBlLmdldEluZGV4RW5kTmFtZT1mdW5jdGlvbigpe3JldHVybiBzbyh0aGlzLmVuZFNldF8sIk9ubHkgdmFsaWQgaWYgZW5kIGhhcyBiZWVuIHNldCIpLHRoaXMuZW5kTmFtZVNldF8/dGhpcy5pbmRleEVuZE5hbWVfOmVhfSxGYy5wcm90b3R5cGUuaGFzTGltaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saW1pdFNldF99LEZjLnByb3RvdHlwZS5oYXNBbmNob3JlZExpbWl0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGltaXRTZXRfJiYiIiE9PXRoaXMudmlld0Zyb21ffSxGYy5wcm90b3R5cGUuZ2V0TGltaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gc28odGhpcy5saW1pdFNldF8sIk9ubHkgdmFsaWQgaWYgbGltaXQgaGFzIGJlZW4gc2V0IiksdGhpcy5saW1pdF99LEZjLnByb3RvdHlwZS5nZXRJbmRleD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4X30sRmMucHJvdG90eXBlLmxvYWRzQWxsRGF0YT1mdW5jdGlvbigpe3JldHVybiEodGhpcy5zdGFydFNldF98fHRoaXMuZW5kU2V0X3x8dGhpcy5saW1pdFNldF8pfSxGYy5wcm90b3R5cGUuaXNEZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9hZHNBbGxEYXRhKCkmJnRoaXMuaW5kZXhfPT09SnV9LEZjLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEZjO3JldHVybiB0LmxpbWl0U2V0Xz10aGlzLmxpbWl0U2V0Xyx0LmxpbWl0Xz10aGlzLmxpbWl0Xyx0LnN0YXJ0U2V0Xz10aGlzLnN0YXJ0U2V0Xyx0LmluZGV4U3RhcnRWYWx1ZV89dGhpcy5pbmRleFN0YXJ0VmFsdWVfLHQuc3RhcnROYW1lU2V0Xz10aGlzLnN0YXJ0TmFtZVNldF8sdC5pbmRleFN0YXJ0TmFtZV89dGhpcy5pbmRleFN0YXJ0TmFtZV8sdC5lbmRTZXRfPXRoaXMuZW5kU2V0Xyx0LmluZGV4RW5kVmFsdWVfPXRoaXMuaW5kZXhFbmRWYWx1ZV8sdC5lbmROYW1lU2V0Xz10aGlzLmVuZE5hbWVTZXRfLHQuaW5kZXhFbmROYW1lXz10aGlzLmluZGV4RW5kTmFtZV8sdC5pbmRleF89dGhpcy5pbmRleF8sdC52aWV3RnJvbV89dGhpcy52aWV3RnJvbV8sdH0sRmMpO2Z1bmN0aW9uIEZjKCl7dGhpcy5saW1pdFNldF89ITEsdGhpcy5zdGFydFNldF89ITEsdGhpcy5zdGFydE5hbWVTZXRfPSExLHRoaXMuc3RhcnRBZnRlclNldF89ITEsdGhpcy5lbmRTZXRfPSExLHRoaXMuZW5kTmFtZVNldF89ITEsdGhpcy5lbmRCZWZvcmVTZXRfPSExLHRoaXMubGltaXRfPTAsdGhpcy52aWV3RnJvbV89IiIsdGhpcy5pbmRleFN0YXJ0VmFsdWVfPW51bGwsdGhpcy5pbmRleFN0YXJ0TmFtZV89IiIsdGhpcy5pbmRleEVuZFZhbHVlXz1udWxsLHRoaXMuaW5kZXhFbmROYW1lXz0iIix0aGlzLmluZGV4Xz1KdX1mdW5jdGlvbiBVYyh0LGUsbil7dD10LmNvcHkoKTtyZXR1cm4gdC5zdGFydFNldF89ITAsdm9pZCAwPT09ZSYmKGU9bnVsbCksdC5pbmRleFN0YXJ0VmFsdWVfPWUsbnVsbCE9bj8odC5zdGFydE5hbWVTZXRfPSEwLHQuaW5kZXhTdGFydE5hbWVfPW4pOih0LnN0YXJ0TmFtZVNldF89ITEsdC5pbmRleFN0YXJ0TmFtZV89IiIpLHR9ZnVuY3Rpb24gamModCxlLG4pe3Q9dC5jb3B5KCk7cmV0dXJuIHQuZW5kU2V0Xz0hMCx2b2lkIDA9PT1lJiYoZT1udWxsKSx0LmluZGV4RW5kVmFsdWVfPWUsdm9pZCAwIT09bj8odC5lbmROYW1lU2V0Xz0hMCx0LmluZGV4RW5kTmFtZV89bik6KHQuZW5kTmFtZVNldF89ITEsdC5pbmRleEVuZE5hbWVfPSIiKSx0fWZ1bmN0aW9uIHFjKHQsZSl7dD10LmNvcHkoKTtyZXR1cm4gdC5pbmRleF89ZSx0fWZ1bmN0aW9uIFZjKHQpe3ZhciBlLG49e307cmV0dXJuIHQuaXNEZWZhdWx0KCl8fChlPXQuaW5kZXhfPT09SnU/IiRwcmlvcml0eSI6dC5pbmRleF89PT1UYz8iJHZhbHVlIjp0LmluZGV4Xz09PVB1PyIka2V5Ijooc28odC5pbmRleF8gaW5zdGFuY2VvZiBnYywiVW5yZWNvZ25pemVkIGluZGV4IHR5cGUhIiksdC5pbmRleF8udG9TdHJpbmcoKSksbi5vcmRlckJ5PVJvKGUpLHQuc3RhcnRTZXRfJiYobi5zdGFydEF0PVJvKHQuaW5kZXhTdGFydFZhbHVlXyksdC5zdGFydE5hbWVTZXRfJiYobi5zdGFydEF0Kz0iLCIrUm8odC5pbmRleFN0YXJ0TmFtZV8pKSksdC5lbmRTZXRfJiYobi5lbmRBdD1Sbyh0LmluZGV4RW5kVmFsdWVfKSx0LmVuZE5hbWVTZXRfJiYobi5lbmRBdCs9IiwiK1JvKHQuaW5kZXhFbmROYW1lXykpKSx0LmxpbWl0U2V0XyYmKHQuaXNWaWV3RnJvbUxlZnQoKT9uLmxpbWl0VG9GaXJzdD10LmxpbWl0XzpuLmxpbWl0VG9MYXN0PXQubGltaXRfKSksbn12YXIgQmMsS2M9KFhpKFdjLEJjPXopLFdjLnByb3RvdHlwZS5yZXBvcnRTdGF0cz1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuIil9LFdjLmdldExpc3RlbklkXz1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lPyJ0YWckIitlOihzbyh0LmdldFF1ZXJ5UGFyYW1zKCkuaXNEZWZhdWx0KCksInNob3VsZCBoYXZlIGEgdGFnIGlmIGl0J3Mgbm90IGEgZGVmYXVsdCBxdWVyeS4iKSx0LnBhdGgudG9TdHJpbmcoKSl9LFdjLnByb3RvdHlwZS5saXN0ZW49ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9dGhpcyxvPXQucGF0aC50b1N0cmluZygpO3RoaXMubG9nXygiTGlzdGVuIGNhbGxlZCBmb3IgIitvKyIgIit0LnF1ZXJ5SWRlbnRpZmllcigpKTt2YXIgcz1XYy5nZXRMaXN0ZW5JZF8odCxuKSxhPXt9O3RoaXMubGlzdGVuc19bc109YTt0PVZjKHQuZ2V0UXVlcnlQYXJhbXMoKSk7dGhpcy5yZXN0UmVxdWVzdF8obysiLmpzb24iLHQsZnVuY3Rpb24odCxlKXtudWxsPT09KHQ9NDA0PT09dD9lPW51bGw6dCkmJmkub25EYXRhVXBkYXRlXyhvLGUsITEsbiksRG8oaS5saXN0ZW5zXyxzKT09PWEmJnIodD80MDE9PT10PyJwZXJtaXNzaW9uX2RlbmllZCI6InJlc3RfZXJyb3I6Iit0OiJvayIsbnVsbCl9KX0sV2MucHJvdG90eXBlLnVubGlzdGVuPWZ1bmN0aW9uKHQsZSl7ZT1XYy5nZXRMaXN0ZW5JZF8odCxlKTtkZWxldGUgdGhpcy5saXN0ZW5zX1tlXX0sV2MucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgbj10aGlzLGU9VmModC5nZXRRdWVyeVBhcmFtcygpKSxyPXQucGF0aC50b1N0cmluZygpLGk9bmV3IGxvO3JldHVybiB0aGlzLnJlc3RSZXF1ZXN0XyhyKyIuanNvbiIsZSxmdW5jdGlvbih0LGUpe251bGw9PT0odD00MDQ9PT10P2U9bnVsbDp0KT8obi5vbkRhdGFVcGRhdGVfKHIsZSwhMSxudWxsKSxpLnJlc29sdmUoZSkpOmkucmVqZWN0KG5ldyBFcnJvcihlKSl9KSxpLnByb21pc2V9LFdjLnByb3RvdHlwZS5yZWZyZXNoQXV0aFRva2VuPWZ1bmN0aW9uKHQpe30sV2MucHJvdG90eXBlLnJlc3RSZXF1ZXN0Xz1mdW5jdGlvbihyLGksbyl7dmFyIHM9dGhpczsoaT12b2lkIDA9PT1pP3t9OmkpLmZvcm1hdD0iZXhwb3J0Iix0aGlzLmF1dGhUb2tlblByb3ZpZGVyXy5nZXRUb2tlbighMSkudGhlbihmdW5jdGlvbih0KXt0PXQmJnQuYWNjZXNzVG9rZW47dCYmKGkuYXV0aD10KTt2YXIgZT0ocy5yZXBvSW5mb18uc2VjdXJlPyJodHRwczovLyI6Imh0dHA6Ly8iKStzLnJlcG9JbmZvXy5ob3N0K3IrIj9ucz0iK3MucmVwb0luZm9fLm5hbWVzcGFjZStNbyhpKTtzLmxvZ18oIlNlbmRpbmcgUkVTVCByZXF1ZXN0IGZvciAiK2UpO3ZhciBuPW5ldyBYTUxIdHRwUmVxdWVzdDtuLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKG8mJjQ9PT1uLnJlYWR5U3RhdGUpe3MubG9nXygiUkVTVCBSZXNwb25zZSBmb3IgIitlKyIgcmVjZWl2ZWQuIHN0YXR1czoiLG4uc3RhdHVzLCJyZXNwb25zZToiLG4ucmVzcG9uc2VUZXh0KTt2YXIgdD1udWxsO2lmKDIwMDw9bi5zdGF0dXMmJm4uc3RhdHVzPDMwMCl7dHJ5e3Q9a28obi5yZXNwb25zZVRleHQpfWNhdGNoKHQpe1pzKCJGYWlsZWQgdG8gcGFyc2UgSlNPTiByZXNwb25zZSBmb3IgIitlKyI6ICIrbi5yZXNwb25zZVRleHQpfW8obnVsbCx0KX1lbHNlIDQwMSE9PW4uc3RhdHVzJiY0MDQhPT1uLnN0YXR1cyYmWnMoIkdvdCB1bnN1Y2Nlc3NmdWwgUkVTVCByZXNwb25zZSBmb3IgIitlKyIgU3RhdHVzOiAiK24uc3RhdHVzKSxvKG4uc3RhdHVzKTtvPW51bGx9fSxuLm9wZW4oIkdFVCIsZSwhMCksbi5zZW5kKCl9KX0sV2MpO2Z1bmN0aW9uIFdjKHQsZSxuKXt2YXIgcj1CYy5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLnJlcG9JbmZvXz10LHIub25EYXRhVXBkYXRlXz1lLHIuYXV0aFRva2VuUHJvdmlkZXJfPW4sci5sb2dfPUpzKCJwOnJlc3Q6Iiksci5saXN0ZW5zXz17fSxyfXZhciBIYz0oR2MucHJvdG90eXBlLmdldE5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucm9vdE5vZGVfLmdldENoaWxkKHQpfSxHYy5wcm90b3R5cGUudXBkYXRlU25hcHNob3Q9ZnVuY3Rpb24odCxlKXt0aGlzLnJvb3ROb2RlXz10aGlzLnJvb3ROb2RlXy51cGRhdGVDaGlsZCh0LGUpfSxHYyk7ZnVuY3Rpb24gR2MoKXt0aGlzLnJvb3ROb2RlXz11Yy5FTVBUWV9OT0RFfWZ1bmN0aW9uIHpjKCl7cmV0dXJue3ZhbHVlOm51bGwsY2hpbGRyZW46bmV3IE1hcH19ZnVuY3Rpb24gUWModCxlLG4pe3ZhciByO2N1KGUpPyh0LnZhbHVlPW4sdC5jaGlsZHJlbi5jbGVhcigpKTpudWxsIT09dC52YWx1ZT90LnZhbHVlPXQudmFsdWUudXBkYXRlQ2hpbGQoZSxuKToocj1udShlKSx0LmNoaWxkcmVuLmhhcyhyKXx8dC5jaGlsZHJlbi5zZXQocix6YygpKSxRYyh0LmNoaWxkcmVuLmdldChyKSxlPWl1KGUpLG4pKX1mdW5jdGlvbiBZYyh0LG4scil7dmFyIGk7bnVsbCE9PXQudmFsdWU/cihuLHQudmFsdWUpOihpPWZ1bmN0aW9uKHQsZSl7WWMoZSxuZXcgWmEobi50b1N0cmluZygpKyIvIit0KSxyKX0sdC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aShlLHQpfSkpfXZhciBYYz0oSmMucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29sbGVjdGlvbl8uZ2V0KCksbj1KaSh7fSx0KTtyZXR1cm4gdGhpcy5sYXN0XyYmaWEodGhpcy5sYXN0XyxmdW5jdGlvbih0LGUpe25bdF09blt0XS1lfSksdGhpcy5sYXN0Xz10LG59LEpjKTtmdW5jdGlvbiBKYyh0KXt0aGlzLmNvbGxlY3Rpb25fPXQsdGhpcy5sYXN0Xz1udWxsfXZhciAkYyxaYz0odGgucHJvdG90eXBlLnJlcG9ydFN0YXRzXz1mdW5jdGlvbigpe3ZhciBuPXRoaXMsdD10aGlzLnN0YXRzTGlzdGVuZXJfLmdldCgpLHI9e30saT0hMTtpYSh0LGZ1bmN0aW9uKHQsZSl7MDxlJiZPbyhuLnN0YXRzVG9SZXBvcnRfLHQpJiYoclt0XT1lLGk9ITApfSksaSYmdGhpcy5zZXJ2ZXJfLnJlcG9ydFN0YXRzKHIpLHNhKHRoaXMucmVwb3J0U3RhdHNfLmJpbmQodGhpcyksTWF0aC5mbG9vcigyKk1hdGgucmFuZG9tKCkqM2U1KSl9LHRoKTtmdW5jdGlvbiB0aCh0LGUpe3RoaXMuc2VydmVyXz1lLHRoaXMuc3RhdHNUb1JlcG9ydF89e30sdGhpcy5zdGF0c0xpc3RlbmVyXz1uZXcgWGModCk7dD0xZTQrMmU0Kk1hdGgucmFuZG9tKCk7c2EodGhpcy5yZXBvcnRTdGF0c18uYmluZCh0aGlzKSxNYXRoLmZsb29yKHQpKX1mdW5jdGlvbiBlaCgpe3JldHVybntmcm9tVXNlcjohMCxmcm9tU2VydmVyOiExLHF1ZXJ5SWQ6bnVsbCx0YWdnZWQ6ITF9fWZ1bmN0aW9uIG5oKCl7cmV0dXJue2Zyb21Vc2VyOiExLGZyb21TZXJ2ZXI6ITAscXVlcnlJZDpudWxsLHRhZ2dlZDohMX19ZnVuY3Rpb24gcmgodCl7cmV0dXJue2Zyb21Vc2VyOiExLGZyb21TZXJ2ZXI6ITAscXVlcnlJZDp0LHRhZ2dlZDohMH19KEdhPSRjPSRjfHx7fSlbR2EuT1ZFUldSSVRFPTBdPSJPVkVSV1JJVEUiLEdhW0dhLk1FUkdFPTFdPSJNRVJHRSIsR2FbR2EuQUNLX1VTRVJfV1JJVEU9Ml09IkFDS19VU0VSX1dSSVRFIixHYVtHYS5MSVNURU5fQ09NUExFVEU9M109IkxJU1RFTl9DT01QTEVURSI7dmFyIGloPShvaC5wcm90b3R5cGUub3BlcmF0aW9uRm9yQ2hpbGQ9ZnVuY3Rpb24odCl7aWYoY3UodGhpcy5wYXRoKSl7aWYobnVsbCE9dGhpcy5hZmZlY3RlZFRyZWUudmFsdWUpcmV0dXJuIHNvKHRoaXMuYWZmZWN0ZWRUcmVlLmNoaWxkcmVuLmlzRW1wdHkoKSwiYWZmZWN0ZWRUcmVlIHNob3VsZCBub3QgaGF2ZSBvdmVybGFwcGluZyBhZmZlY3RlZCBwYXRocy4iKSx0aGlzO3ZhciBlPXRoaXMuYWZmZWN0ZWRUcmVlLnN1YnRyZWUobmV3IFphKHQpKTtyZXR1cm4gbmV3IG9oKGV1KCksZSx0aGlzLnJldmVydCl9cmV0dXJuIHNvKG51KHRoaXMucGF0aCk9PT10LCJvcGVyYXRpb25Gb3JDaGlsZCBjYWxsZWQgZm9yIHVucmVsYXRlZCBjaGlsZC4iKSxuZXcgb2goaXUodGhpcy5wYXRoKSx0aGlzLmFmZmVjdGVkVHJlZSx0aGlzLnJldmVydCl9LG9oKTtmdW5jdGlvbiBvaCh0LGUsbil7dGhpcy5wYXRoPXQsdGhpcy5hZmZlY3RlZFRyZWU9ZSx0aGlzLnJldmVydD1uLHRoaXMudHlwZT0kYy5BQ0tfVVNFUl9XUklURSx0aGlzLnNvdXJjZT1laCgpfXZhciBzaD0oYWgucHJvdG90eXBlLm9wZXJhdGlvbkZvckNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBjdSh0aGlzLnBhdGgpP25ldyBhaCh0aGlzLnNvdXJjZSxldSgpKTpuZXcgYWgodGhpcy5zb3VyY2UsaXUodGhpcy5wYXRoKSl9LGFoKTtmdW5jdGlvbiBhaCh0LGUpe3RoaXMuc291cmNlPXQsdGhpcy5wYXRoPWUsdGhpcy50eXBlPSRjLkxJU1RFTl9DT01QTEVURX12YXIgdWg9KGNoLnByb3RvdHlwZS5vcGVyYXRpb25Gb3JDaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4gY3UodGhpcy5wYXRoKT9uZXcgY2godGhpcy5zb3VyY2UsZXUoKSx0aGlzLnNuYXAuZ2V0SW1tZWRpYXRlQ2hpbGQodCkpOm5ldyBjaCh0aGlzLnNvdXJjZSxpdSh0aGlzLnBhdGgpLHRoaXMuc25hcCl9LGNoKTtmdW5jdGlvbiBjaCh0LGUsbil7dGhpcy5zb3VyY2U9dCx0aGlzLnBhdGg9ZSx0aGlzLnNuYXA9bix0aGlzLnR5cGU9JGMuT1ZFUldSSVRFfXZhciBoaD0obGgucHJvdG90eXBlLm9wZXJhdGlvbkZvckNoaWxkPWZ1bmN0aW9uKHQpe2lmKGN1KHRoaXMucGF0aCkpe3ZhciBlPXRoaXMuY2hpbGRyZW4uc3VidHJlZShuZXcgWmEodCkpO3JldHVybiBlLmlzRW1wdHkoKT9udWxsOmUudmFsdWU/bmV3IHVoKHRoaXMuc291cmNlLGV1KCksZS52YWx1ZSk6bmV3IGxoKHRoaXMuc291cmNlLGV1KCksZSl9cmV0dXJuIHNvKG51KHRoaXMucGF0aCk9PT10LCJDYW4ndCBnZXQgYSBtZXJnZSBmb3IgYSBjaGlsZCBub3Qgb24gdGhlIHBhdGggb2YgdGhlIG9wZXJhdGlvbiIpLG5ldyBsaCh0aGlzLnNvdXJjZSxpdSh0aGlzLnBhdGgpLHRoaXMuY2hpbGRyZW4pfSxsaC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iT3BlcmF0aW9uKCIrdGhpcy5wYXRoKyI6ICIrdGhpcy5zb3VyY2UudG9TdHJpbmcoKSsiIG1lcmdlOiAiK3RoaXMuY2hpbGRyZW4udG9TdHJpbmcoKSsiKSJ9LGxoKTtmdW5jdGlvbiBsaCh0LGUsbil7dGhpcy5zb3VyY2U9dCx0aGlzLnBhdGg9ZSx0aGlzLmNoaWxkcmVuPW4sdGhpcy50eXBlPSRjLk1FUkdFfXZhciBmaD0ocGgucHJvdG90eXBlLmlzRnVsbHlJbml0aWFsaXplZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZ1bGx5SW5pdGlhbGl6ZWRffSxwaC5wcm90b3R5cGUuaXNGaWx0ZXJlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcmVkX30scGgucHJvdG90eXBlLmlzQ29tcGxldGVGb3JQYXRoPWZ1bmN0aW9uKHQpe2lmKGN1KHQpKXJldHVybiB0aGlzLmlzRnVsbHlJbml0aWFsaXplZCgpJiYhdGhpcy5maWx0ZXJlZF87dD1udSh0KTtyZXR1cm4gdGhpcy5pc0NvbXBsZXRlRm9yQ2hpbGQodCl9LHBoLnByb3RvdHlwZS5pc0NvbXBsZXRlRm9yQ2hpbGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXNGdWxseUluaXRpYWxpemVkKCkmJiF0aGlzLmZpbHRlcmVkX3x8dGhpcy5ub2RlXy5oYXNDaGlsZCh0KX0scGgucHJvdG90eXBlLmdldE5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlX30scGgpO2Z1bmN0aW9uIHBoKHQsZSxuKXt0aGlzLm5vZGVfPXQsdGhpcy5mdWxseUluaXRpYWxpemVkXz1lLHRoaXMuZmlsdGVyZWRfPW59dmFyIGRoLHZoPWZ1bmN0aW9uKHQpe3RoaXMucXVlcnlfPXQsdGhpcy5pbmRleF89dGhpcy5xdWVyeV8uZ2V0UXVlcnlQYXJhbXMoKS5nZXRJbmRleCgpfTtmdW5jdGlvbiBnaChuLHQsZSxyKXt2YXIgaT1bXSxvPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU7ImNoaWxkX2NoYW5nZWQiPT09dC50eXBlJiZuLmluZGV4Xy5pbmRleGVkVmFsdWVDaGFuZ2VkKHQub2xkU25hcCx0LnNuYXBzaG90Tm9kZSkmJm8ucHVzaCgoZT10LmNoaWxkTmFtZSx7dHlwZToiY2hpbGRfbW92ZWQiLHNuYXBzaG90Tm9kZTp0LnNuYXBzaG90Tm9kZSxjaGlsZE5hbWU6ZX0pKX0pLHloKG4saSwiY2hpbGRfcmVtb3ZlZCIsdCxyLGUpLHloKG4saSwiY2hpbGRfYWRkZWQiLHQscixlKSx5aChuLGksImNoaWxkX21vdmVkIixvLHIsZSkseWgobixpLCJjaGlsZF9jaGFuZ2VkIix0LHIsZSkseWgobixpLCJ2YWx1ZSIsdCxyLGUpLGl9ZnVuY3Rpb24geWgobyxzLGUsdCxhLHUpe3Q9dC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PWV9KTt0LnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe2lmKG51bGw9PWUuY2hpbGROYW1lfHxudWxsPT1uLmNoaWxkTmFtZSl0aHJvdyBhbygiU2hvdWxkIG9ubHkgY29tcGFyZSBjaGlsZF8gZXZlbnRzLiIpO2U9bmV3IFN1KGUuY2hpbGROYW1lLGUuc25hcHNob3ROb2RlKSxuPW5ldyBTdShuLmNoaWxkTmFtZSxuLnNuYXBzaG90Tm9kZSk7cmV0dXJuIHQuaW5kZXhfLmNvbXBhcmUoZSxuKX0obyx0LGUpfSksdC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0LG4scixpPSh0PW8scj11LCJ2YWx1ZSI9PT0obj1lKS50eXBlfHwiY2hpbGRfcmVtb3ZlZCI9PT1uLnR5cGV8fChuLnByZXZOYW1lPXIuZ2V0UHJlZGVjZXNzb3JDaGlsZE5hbWUobi5jaGlsZE5hbWUsbi5zbmFwc2hvdE5vZGUsdC5pbmRleF8pKSxuKTthLmZvckVhY2goZnVuY3Rpb24odCl7dC5yZXNwb25kc1RvKGUudHlwZSkmJnMucHVzaCh0LmNyZWF0ZUV2ZW50KGksby5xdWVyeV8pKX0pfSl9ZnVuY3Rpb24gbWgodCxlKXtyZXR1cm57ZXZlbnRDYWNoZTp0LHNlcnZlckNhY2hlOmV9fWZ1bmN0aW9uIGJoKHQsZSxuLHIpe3JldHVybiBtaChuZXcgZmgoZSxuLHIpLHQuc2VydmVyQ2FjaGUpfWZ1bmN0aW9uIHdoKHQsZSxuLHIpe3JldHVybiBtaCh0LmV2ZW50Q2FjaGUsbmV3IGZoKGUsbixyKSl9ZnVuY3Rpb24gX2godCl7cmV0dXJuIHQuZXZlbnRDYWNoZS5pc0Z1bGx5SW5pdGlhbGl6ZWQoKT90LmV2ZW50Q2FjaGUuZ2V0Tm9kZSgpOm51bGx9ZnVuY3Rpb24gSWgodCl7cmV0dXJuIHQuc2VydmVyQ2FjaGUuaXNGdWxseUluaXRpYWxpemVkKCk/dC5zZXJ2ZXJDYWNoZS5nZXROb2RlKCk6bnVsbH12YXIgVGg9KEVoLmZyb21PYmplY3Q9ZnVuY3Rpb24odCl7dmFyIG49bmV3IEVoKG51bGwpO3JldHVybiBpYSh0LGZ1bmN0aW9uKHQsZSl7bj1uLnNldChuZXcgWmEodCksZSl9KSxufSxFaC5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiBudWxsPT09dGhpcy52YWx1ZSYmdGhpcy5jaGlsZHJlbi5pc0VtcHR5KCl9LEVoLnByb3RvdHlwZS5maW5kUm9vdE1vc3RNYXRjaGluZ1BhdGhBbmRWYWx1ZT1mdW5jdGlvbih0LGUpe2lmKG51bGwhPXRoaXMudmFsdWUmJmUodGhpcy52YWx1ZSkpcmV0dXJue3BhdGg6ZXUoKSx2YWx1ZTp0aGlzLnZhbHVlfTtpZihjdSh0KSlyZXR1cm4gbnVsbDt2YXIgbj1udSh0KSxyPXRoaXMuY2hpbGRyZW4uZ2V0KG4pO2lmKG51bGw9PT1yKXJldHVybiBudWxsO2U9ci5maW5kUm9vdE1vc3RNYXRjaGluZ1BhdGhBbmRWYWx1ZShpdSh0KSxlKTtyZXR1cm4gbnVsbD09ZT9udWxsOntwYXRoOnV1KG5ldyBaYShuKSxlLnBhdGgpLHZhbHVlOmUudmFsdWV9fSxFaC5wcm90b3R5cGUuZmluZFJvb3RNb3N0VmFsdWVBbmRQYXRoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZpbmRSb290TW9zdE1hdGNoaW5nUGF0aEFuZFZhbHVlKHQsZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSxFaC5wcm90b3R5cGUuc3VidHJlZT1mdW5jdGlvbih0KXtpZihjdSh0KSlyZXR1cm4gdGhpczt2YXIgZT1udSh0KSxlPXRoaXMuY2hpbGRyZW4uZ2V0KGUpO3JldHVybiBudWxsIT09ZT9lLnN1YnRyZWUoaXUodCkpOm5ldyBFaChudWxsKX0sRWgucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe2lmKGN1KHQpKXJldHVybiBuZXcgRWgoZSx0aGlzLmNoaWxkcmVuKTt2YXIgbj1udSh0KSxlPSh0aGlzLmNoaWxkcmVuLmdldChuKXx8bmV3IEVoKG51bGwpKS5zZXQoaXUodCksZSksZT10aGlzLmNoaWxkcmVuLmluc2VydChuLGUpO3JldHVybiBuZXcgRWgodGhpcy52YWx1ZSxlKX0sRWgucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtpZihjdSh0KSlyZXR1cm4gdGhpcy5jaGlsZHJlbi5pc0VtcHR5KCk/bmV3IEVoKG51bGwpOm5ldyBFaChudWxsLHRoaXMuY2hpbGRyZW4pO3ZhciBlPW51KHQpLG49dGhpcy5jaGlsZHJlbi5nZXQoZSk7aWYobil7bj1uLnJlbW92ZShpdSh0KSksdD12b2lkIDAsdD1uLmlzRW1wdHkoKT90aGlzLmNoaWxkcmVuLnJlbW92ZShlKTp0aGlzLmNoaWxkcmVuLmluc2VydChlLG4pO3JldHVybiBudWxsPT09dGhpcy52YWx1ZSYmdC5pc0VtcHR5KCk/bmV3IEVoKG51bGwpOm5ldyBFaCh0aGlzLnZhbHVlLHQpfXJldHVybiB0aGlzfSxFaC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe2lmKGN1KHQpKXJldHVybiB0aGlzLnZhbHVlO3ZhciBlPW51KHQpLGU9dGhpcy5jaGlsZHJlbi5nZXQoZSk7cmV0dXJuIGU/ZS5nZXQoaXUodCkpOm51bGx9LEVoLnByb3RvdHlwZS5zZXRUcmVlPWZ1bmN0aW9uKHQsZSl7aWYoY3UodCkpcmV0dXJuIGU7dmFyIG49bnUodCksdD0odGhpcy5jaGlsZHJlbi5nZXQobil8fG5ldyBFaChudWxsKSkuc2V0VHJlZShpdSh0KSxlKSxlPXZvaWQgMCxlPXQuaXNFbXB0eSgpP3RoaXMuY2hpbGRyZW4ucmVtb3ZlKG4pOnRoaXMuY2hpbGRyZW4uaW5zZXJ0KG4sdCk7cmV0dXJuIG5ldyBFaCh0aGlzLnZhbHVlLGUpfSxFaC5wcm90b3R5cGUuZm9sZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mb2xkXyhldSgpLHQpfSxFaC5wcm90b3R5cGUuZm9sZF89ZnVuY3Rpb24obixyKXt2YXIgaT17fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7aVt0XT1lLmZvbGRfKHV1KG4sdCkscil9KSxyKG4sdGhpcy52YWx1ZSxpKX0sRWgucHJvdG90eXBlLmZpbmRPblBhdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5maW5kT25QYXRoXyh0LGV1KCksZSl9LEVoLnByb3RvdHlwZS5maW5kT25QYXRoXz1mdW5jdGlvbih0LGUsbil7dmFyIHI9ISF0aGlzLnZhbHVlJiZuKGUsdGhpcy52YWx1ZSk7aWYocilyZXR1cm4gcjtpZihjdSh0KSlyZXR1cm4gbnVsbDt2YXIgaT1udSh0KSxyPXRoaXMuY2hpbGRyZW4uZ2V0KGkpO3JldHVybiByP3IuZmluZE9uUGF0aF8oaXUodCksdXUoZSxpKSxuKTpudWxsfSxFaC5wcm90b3R5cGUuZm9yZWFjaE9uUGF0aD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmZvcmVhY2hPblBhdGhfKHQsZXUoKSxlKX0sRWgucHJvdG90eXBlLmZvcmVhY2hPblBhdGhfPWZ1bmN0aW9uKHQsZSxuKXtpZihjdSh0KSlyZXR1cm4gdGhpczt0aGlzLnZhbHVlJiZuKGUsdGhpcy52YWx1ZSk7dmFyIHI9bnUodCksaT10aGlzLmNoaWxkcmVuLmdldChyKTtyZXR1cm4gaT9pLmZvcmVhY2hPblBhdGhfKGl1KHQpLHV1KGUsciksbik6bmV3IEVoKG51bGwpfSxFaC5wcm90b3R5cGUuZm9yZWFjaD1mdW5jdGlvbih0KXt0aGlzLmZvcmVhY2hfKGV1KCksdCl9LEVoLnByb3RvdHlwZS5mb3JlYWNoXz1mdW5jdGlvbihuLHIpe3RoaXMuY2hpbGRyZW4uaW5vcmRlclRyYXZlcnNhbChmdW5jdGlvbih0LGUpe2UuZm9yZWFjaF8odXUobix0KSxyKX0pLHRoaXMudmFsdWUmJnIobix0aGlzLnZhbHVlKX0sRWgucHJvdG90eXBlLmZvcmVhY2hDaGlsZD1mdW5jdGlvbihuKXt0aGlzLmNoaWxkcmVuLmlub3JkZXJUcmF2ZXJzYWwoZnVuY3Rpb24odCxlKXtlLnZhbHVlJiZuKHQsZS52YWx1ZSl9KX0sRWgpO2Z1bmN0aW9uIEVoKHQsZSl7dm9pZCAwPT09ZSYmKGU9ZGg9ZGh8fG5ldyBVdShqcykpLHRoaXMudmFsdWU9dCx0aGlzLmNoaWxkcmVuPWV9dmFyIFNoPShDaC5lbXB0eT1mdW5jdGlvbigpe3JldHVybiBuZXcgQ2gobmV3IFRoKG51bGwpKX0sQ2gpO2Z1bmN0aW9uIENoKHQpe3RoaXMud3JpdGVUcmVlXz10fWZ1bmN0aW9uIE5oKHQsZSxuKXtpZihjdShlKSlyZXR1cm4gbmV3IFNoKG5ldyBUaChuKSk7dmFyIHI9dC53cml0ZVRyZWVfLmZpbmRSb290TW9zdFZhbHVlQW5kUGF0aChlKTtpZihudWxsIT1yKXt2YXIgaT1yLnBhdGgsbz1yLnZhbHVlLHI9aHUoaSxlKSxvPW8udXBkYXRlQ2hpbGQocixuKTtyZXR1cm4gbmV3IFNoKHQud3JpdGVUcmVlXy5zZXQoaSxvKSl9bj1uZXcgVGgobiksbj10LndyaXRlVHJlZV8uc2V0VHJlZShlLG4pO3JldHVybiBuZXcgU2gobil9ZnVuY3Rpb24gQWgodCxuLGUpe3ZhciByPXQ7cmV0dXJuIGlhKGUsZnVuY3Rpb24odCxlKXtyPU5oKHIsdXUobix0KSxlKX0pLHJ9ZnVuY3Rpb24ga2godCxlKXtpZihjdShlKSlyZXR1cm4gU2guZW1wdHkoKTtlPXQud3JpdGVUcmVlXy5zZXRUcmVlKGUsbmV3IFRoKG51bGwpKTtyZXR1cm4gbmV3IFNoKGUpfWZ1bmN0aW9uIFJoKHQsZSl7cmV0dXJuIG51bGwhPVBoKHQsZSl9ZnVuY3Rpb24gUGgodCxlKXt2YXIgbj10LndyaXRlVHJlZV8uZmluZFJvb3RNb3N0VmFsdWVBbmRQYXRoKGUpO3JldHVybiBudWxsIT1uP3Qud3JpdGVUcmVlXy5nZXQobi5wYXRoKS5nZXRDaGlsZChodShuLnBhdGgsZSkpOm51bGx9ZnVuY3Rpb24gT2godCl7dmFyIG49W10sZT10LndyaXRlVHJlZV8udmFsdWU7cmV0dXJuIG51bGwhPWU/ZS5pc0xlYWZOb2RlKCl8fGUuZm9yRWFjaENoaWxkKEp1LGZ1bmN0aW9uKHQsZSl7bi5wdXNoKG5ldyBTdSh0LGUpKX0pOnQud3JpdGVUcmVlXy5jaGlsZHJlbi5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7bnVsbCE9ZS52YWx1ZSYmbi5wdXNoKG5ldyBTdSh0LGUudmFsdWUpKX0pLG59ZnVuY3Rpb24gRGgodCxlKXtpZihjdShlKSlyZXR1cm4gdDt2YXIgbj1QaCh0LGUpO3JldHVybiBuZXcgU2gobnVsbCE9bj9uZXcgVGgobik6dC53cml0ZVRyZWVfLnN1YnRyZWUoZSkpfWZ1bmN0aW9uIHhoKHQpe3JldHVybiB0LndyaXRlVHJlZV8uaXNFbXB0eSgpfWZ1bmN0aW9uIExoKHQsZSl7cmV0dXJuIGZ1bmN0aW9uIG4ocix0LGkpe3tpZihudWxsIT10LnZhbHVlKXJldHVybiBpLnVwZGF0ZUNoaWxkKHIsdC52YWx1ZSk7dmFyIG89bnVsbDtyZXR1cm4gdC5jaGlsZHJlbi5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7Ii5wcmlvcml0eSI9PT10PyhzbyhudWxsIT09ZS52YWx1ZSwiUHJpb3JpdHkgd3JpdGVzIG11c3QgYWx3YXlzIGJlIGxlYWYgbm9kZXMiKSxvPWUudmFsdWUpOmk9bih1dShyLHQpLGUsaSl9KSxpPSFpLmdldENoaWxkKHIpLmlzRW1wdHkoKSYmbnVsbCE9PW8/aS51cGRhdGVDaGlsZCh1dShyLCIucHJpb3JpdHkiKSxvKTppfX0oZXUoKSx0LndyaXRlVHJlZV8sZSl9ZnVuY3Rpb24gTWgodCxlKXtyZXR1cm4gUWgoZSx0KX1mdW5jdGlvbiBGaChlLG4pe3ZhciB0PWUuYWxsV3JpdGVzLmZpbmRJbmRleChmdW5jdGlvbih0KXtyZXR1cm4gdC53cml0ZUlkPT09bn0pO3NvKDA8PXQsInJlbW92ZVdyaXRlIGNhbGxlZCB3aXRoIG5vbmV4aXN0ZW50IHdyaXRlSWQuIik7dmFyIHI9ZS5hbGxXcml0ZXNbdF07ZS5hbGxXcml0ZXMuc3BsaWNlKHQsMSk7Zm9yKHZhciBpLG89ci52aXNpYmxlLHM9ITEsYT1lLmFsbFdyaXRlcy5sZW5ndGgtMTtvJiYwPD1hOyl7dmFyIHU9ZS5hbGxXcml0ZXNbYV07dS52aXNpYmxlJiYodDw9YSYmZnVuY3Rpb24odCxlKXt7aWYodC5zbmFwKXJldHVybiBwdSh0LnBhdGgsZSk7Zm9yKHZhciBuIGluIHQuY2hpbGRyZW4paWYodC5jaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuKSYmcHUodXUodC5wYXRoLG4pLGUpKXJldHVybiEwO3JldHVybiExfX0odSxyLnBhdGgpP289ITE6cHUoci5wYXRoLHUucGF0aCkmJihzPSEwKSksYS0tfXJldHVybiEhbyYmKHM/KChpPWUpLnZpc2libGVXcml0ZXM9amgoaS5hbGxXcml0ZXMsVWgsZXUoKSksMDxpLmFsbFdyaXRlcy5sZW5ndGg/aS5sYXN0V3JpdGVJZD1pLmFsbFdyaXRlc1tpLmFsbFdyaXRlcy5sZW5ndGgtMV0ud3JpdGVJZDppLmxhc3RXcml0ZUlkPS0xKTpyLnNuYXA/ZS52aXNpYmxlV3JpdGVzPWtoKGUudmlzaWJsZVdyaXRlcyxyLnBhdGgpOmlhKHIuY2hpbGRyZW4sZnVuY3Rpb24odCl7ZS52aXNpYmxlV3JpdGVzPWtoKGUudmlzaWJsZVdyaXRlcyx1dShyLnBhdGgsdCkpfSksITApfWZ1bmN0aW9uIFVoKHQpe3JldHVybiB0LnZpc2libGV9ZnVuY3Rpb24gamgodCxlLG4pe2Zvcih2YXIgcj1TaC5lbXB0eSgpLGk9MDtpPHQubGVuZ3RoOysraSl7dmFyIG89dFtpXTtpZihlKG8pKXt2YXIgcz1vLnBhdGgsYT12b2lkIDA7aWYoby5zbmFwKXB1KG4scyk/cj1OaChyLGE9aHUobixzKSxvLnNuYXApOnB1KHMsbikmJihhPWh1KHMsbikscj1OaChyLGV1KCksby5zbmFwLmdldENoaWxkKGEpKSk7ZWxzZXtpZighby5jaGlsZHJlbil0aHJvdyBhbygiV3JpdGVSZWNvcmQgc2hvdWxkIGhhdmUgLnNuYXAgb3IgLmNoaWxkcmVuIik7cHUobixzKT9yPUFoKHIsYT1odShuLHMpLG8uY2hpbGRyZW4pOnB1KHMsbikmJihjdShhPWh1KHMsbikpP3I9QWgocixldSgpLG8uY2hpbGRyZW4pOihvPURvKG8uY2hpbGRyZW4sbnUoYSkpKSYmKGE9by5nZXRDaGlsZChpdShhKSkscj1OaChyLGV1KCksYSkpKX19fXJldHVybiByfWZ1bmN0aW9uIHFoKHQsZSxuLHIsaSl7aWYocnx8aSl7dmFyIG89RGgodC52aXNpYmxlV3JpdGVzLGUpO2lmKCFpJiZ4aChvKSlyZXR1cm4gbjtpZihpfHxudWxsIT1ufHxSaChvLGV1KCkpKXJldHVybiBMaChqaCh0LmFsbFdyaXRlcyxmdW5jdGlvbih0KXtyZXR1cm4odC52aXNpYmxlfHxpKSYmKCFyfHwhfnIuaW5kZXhPZih0LndyaXRlSWQpKSYmKHB1KHQucGF0aCxlKXx8cHUoZSx0LnBhdGgpKX0sZSksbnx8dWMuRU1QVFlfTk9ERSk7cmV0dXJuIG51bGx9bz1QaCh0LnZpc2libGVXcml0ZXMsZSk7aWYobnVsbCE9bylyZXR1cm4gbzt0PURoKHQudmlzaWJsZVdyaXRlcyxlKTtyZXR1cm4geGgodCk/bjpudWxsIT1ufHxSaCh0LGV1KCkpP0xoKHQsbnx8dWMuRU1QVFlfTk9ERSk6bnVsbH1mdW5jdGlvbiBWaCh0LGUsbixyKXtyZXR1cm4gcWgodC53cml0ZVRyZWUsdC50cmVlUGF0aCxlLG4scil9ZnVuY3Rpb24gQmgodCxlKXtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3ZhciByPXVjLkVNUFRZX05PREUsaT1QaCh0LnZpc2libGVXcml0ZXMsZSk7aWYoaSlyZXR1cm4gaS5pc0xlYWZOb2RlKCl8fGkuZm9yRWFjaENoaWxkKEp1LGZ1bmN0aW9uKHQsZSl7cj1yLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHQsZSl9KSxyO2lmKG4pe3ZhciBvPURoKHQudmlzaWJsZVdyaXRlcyxlKTtyZXR1cm4gbi5mb3JFYWNoQ2hpbGQoSnUsZnVuY3Rpb24odCxlKXtlPUxoKERoKG8sbmV3IFphKHQpKSxlKTtyPXIudXBkYXRlSW1tZWRpYXRlQ2hpbGQodCxlKX0pLE9oKG8pLmZvckVhY2goZnVuY3Rpb24odCl7cj1yLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHQubmFtZSx0Lm5vZGUpfSkscn1yZXR1cm4gT2goRGgodC52aXNpYmxlV3JpdGVzLGUpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3I9ci51cGRhdGVJbW1lZGlhdGVDaGlsZCh0Lm5hbWUsdC5ub2RlKX0pLHJ9KHQud3JpdGVUcmVlLHQudHJlZVBhdGgsZSl9ZnVuY3Rpb24gS2godCxlLG4scil7cmV0dXJuIGk9dC53cml0ZVRyZWUsdD10LnRyZWVQYXRoLGU9ZSxyPXIsc28obnx8ciwiRWl0aGVyIGV4aXN0aW5nRXZlbnRTbmFwIG9yIGV4aXN0aW5nU2VydmVyU25hcCBtdXN0IGV4aXN0IiksdD11dSh0LGUpLFJoKGkudmlzaWJsZVdyaXRlcyx0KT9udWxsOnhoKHQ9RGgoaS52aXNpYmxlV3JpdGVzLHQpKT9yLmdldENoaWxkKGUpOkxoKHQsci5nZXRDaGlsZChlKSk7dmFyIGl9ZnVuY3Rpb24gV2godCxlKXtyZXR1cm4gbj10LndyaXRlVHJlZSxlPXV1KHQudHJlZVBhdGgsZSksUGgobi52aXNpYmxlV3JpdGVzLGUpO3ZhciBufWZ1bmN0aW9uIEhoKHQsZSxuLHIsaSxvKXtyZXR1cm4gZnVuY3Rpb24odCxlLG4scixpLG8scyl7dmFyIGEsdD1EaCh0LnZpc2libGVXcml0ZXMsZSk7aWYobnVsbCE9KGU9UGgodCxldSgpKSkpYT1lO2Vsc2V7aWYobnVsbD09bilyZXR1cm5bXTthPUxoKHQsbil9aWYoKGE9YS53aXRoSW5kZXgocykpLmlzRW1wdHkoKXx8YS5pc0xlYWZOb2RlKCkpcmV0dXJuW107Zm9yKHZhciB1PVtdLGM9cy5nZXRDb21wYXJlKCksaD1vP2EuZ2V0UmV2ZXJzZUl0ZXJhdG9yRnJvbShyLHMpOmEuZ2V0SXRlcmF0b3JGcm9tKHIscyksbD1oLmdldE5leHQoKTtsJiZ1Lmxlbmd0aDxpOykwIT09YyhsLHIpJiZ1LnB1c2gobCksbD1oLmdldE5leHQoKTtyZXR1cm4gdX0odC53cml0ZVRyZWUsdC50cmVlUGF0aCxlLG4scixpLG8pfWZ1bmN0aW9uIEdoKHQsZSxuKXtyZXR1cm4gcj10LndyaXRlVHJlZSxpPXQudHJlZVBhdGgsdD1uLGU9dXUoaSxuPWUpLG51bGwhPShpPVBoKHIudmlzaWJsZVdyaXRlcyxlKSk/aTp0LmlzQ29tcGxldGVGb3JDaGlsZChuKT9MaChEaChyLnZpc2libGVXcml0ZXMsZSksdC5nZXROb2RlKCkuZ2V0SW1tZWRpYXRlQ2hpbGQobikpOm51bGw7dmFyIHIsaX1mdW5jdGlvbiB6aCh0LGUpe3JldHVybiBRaCh1dSh0LnRyZWVQYXRoLGUpLHQud3JpdGVUcmVlKX1mdW5jdGlvbiBRaCh0LGUpe3JldHVybnt0cmVlUGF0aDp0LHdyaXRlVHJlZTplfX12YXIgWWg9KFhoLnByb3RvdHlwZS50cmFja0NoaWxkQ2hhbmdlPWZ1bmN0aW9uKHQpe3ZhciBlPXQudHlwZSxuPXQuY2hpbGROYW1lO3NvKCJjaGlsZF9hZGRlZCI9PT1lfHwiY2hpbGRfY2hhbmdlZCI9PT1lfHwiY2hpbGRfcmVtb3ZlZCI9PT1lLCJPbmx5IGNoaWxkIGNoYW5nZXMgc3VwcG9ydGVkIGZvciB0cmFja2luZyIpLHNvKCIucHJpb3JpdHkiIT09biwiT25seSBub24tcHJpb3JpdHkgY2hpbGQgY2hhbmdlcyBjYW4gYmUgdHJhY2tlZC4iKTt2YXIgcj10aGlzLmNoYW5nZU1hcC5nZXQobik7aWYocil7dmFyIGk9ci50eXBlO2lmKCJjaGlsZF9hZGRlZCI9PT1lJiYiY2hpbGRfcmVtb3ZlZCI9PT1pKXRoaXMuY2hhbmdlTWFwLnNldChuLGtjKG4sdC5zbmFwc2hvdE5vZGUsci5zbmFwc2hvdE5vZGUpKTtlbHNlIGlmKCJjaGlsZF9yZW1vdmVkIj09PWUmJiJjaGlsZF9hZGRlZCI9PT1pKXRoaXMuY2hhbmdlTWFwLmRlbGV0ZShuKTtlbHNlIGlmKCJjaGlsZF9yZW1vdmVkIj09PWUmJiJjaGlsZF9jaGFuZ2VkIj09PWkpdGhpcy5jaGFuZ2VNYXAuc2V0KG4sQWMobixyLm9sZFNuYXApKTtlbHNlIGlmKCJjaGlsZF9jaGFuZ2VkIj09PWUmJiJjaGlsZF9hZGRlZCI9PT1pKXRoaXMuY2hhbmdlTWFwLnNldChuLE5jKG4sdC5zbmFwc2hvdE5vZGUpKTtlbHNle2lmKCJjaGlsZF9jaGFuZ2VkIiE9PWV8fCJjaGlsZF9jaGFuZ2VkIiE9PWkpdGhyb3cgYW8oIklsbGVnYWwgY29tYmluYXRpb24gb2YgY2hhbmdlczogIit0KyIgb2NjdXJyZWQgYWZ0ZXIgIityKTt0aGlzLmNoYW5nZU1hcC5zZXQobixrYyhuLHQuc25hcHNob3ROb2RlLHIub2xkU25hcCkpfX1lbHNlIHRoaXMuY2hhbmdlTWFwLnNldChuLHQpfSxYaC5wcm90b3R5cGUuZ2V0Q2hhbmdlcz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hhbmdlTWFwLnZhbHVlcygpKX0sWGgpO2Z1bmN0aW9uIFhoKCl7dGhpcy5jaGFuZ2VNYXA9bmV3IE1hcH1mdW5jdGlvbiBKaCgpe312YXIgJGg9bmV3KEpoLnByb3RvdHlwZS5nZXRDb21wbGV0ZUNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsfSxKaC5wcm90b3R5cGUuZ2V0Q2hpbGRBZnRlckNoaWxkPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbH0sSmgpLFpoPSh0bC5wcm90b3R5cGUuZ2V0Q29tcGxldGVDaGlsZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnZpZXdDYWNoZV8uZXZlbnRDYWNoZTtpZihlLmlzQ29tcGxldGVGb3JDaGlsZCh0KSlyZXR1cm4gZS5nZXROb2RlKCkuZ2V0SW1tZWRpYXRlQ2hpbGQodCk7ZT1udWxsIT10aGlzLm9wdENvbXBsZXRlU2VydmVyQ2FjaGVfP25ldyBmaCh0aGlzLm9wdENvbXBsZXRlU2VydmVyQ2FjaGVfLCEwLCExKTp0aGlzLnZpZXdDYWNoZV8uc2VydmVyQ2FjaGU7cmV0dXJuIEdoKHRoaXMud3JpdGVzXyx0LGUpfSx0bC5wcm90b3R5cGUuZ2V0Q2hpbGRBZnRlckNoaWxkPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1udWxsIT10aGlzLm9wdENvbXBsZXRlU2VydmVyQ2FjaGVfP3RoaXMub3B0Q29tcGxldGVTZXJ2ZXJDYWNoZV86SWgodGhpcy52aWV3Q2FjaGVfKSx0PUhoKHRoaXMud3JpdGVzXyxyLGUsMSxuLHQpO3JldHVybiAwPT09dC5sZW5ndGg/bnVsbDp0WzBdfSx0bCk7ZnVuY3Rpb24gdGwodCxlLG4pe3ZvaWQgMD09PW4mJihuPW51bGwpLHRoaXMud3JpdGVzXz10LHRoaXMudmlld0NhY2hlXz1lLHRoaXMub3B0Q29tcGxldGVTZXJ2ZXJDYWNoZV89bn1mdW5jdGlvbiBlbCh0LGUsbixyLGkpe3ZhciBvLHMsYSx1LGMsaCxsLGYscD1uZXcgWWg7aWYobi50eXBlPT09JGMuT1ZFUldSSVRFKXZhciBkPW4sdj1kLnNvdXJjZS5mcm9tVXNlcj9pbCh0LGUsZC5wYXRoLGQuc25hcCxyLGkscCk6KHNvKGQuc291cmNlLmZyb21TZXJ2ZXIsIlVua25vd24gc291cmNlLiIpLG89ZC5zb3VyY2UudGFnZ2VkfHxlLnNlcnZlckNhY2hlLmlzRmlsdGVyZWQoKSYmIWN1KGQucGF0aCkscmwodCxlLGQucGF0aCxkLnNuYXAscixpLG8scCkpO2Vsc2UgaWYobi50eXBlPT09JGMuTUVSR0Upe3ZhciBnPW47dj1nLnNvdXJjZS5mcm9tVXNlcj8ocz10LGE9ZSx1PWcucGF0aCxkPWcuY2hpbGRyZW4sYz1yLGg9aSxsPXAsZj1hLGQuZm9yZWFjaChmdW5jdGlvbih0LGUpe3Q9dXUodSx0KTtvbChhLG51KHQpKSYmKGY9aWwocyxmLHQsZSxjLGgsbCkpfSksZC5mb3JlYWNoKGZ1bmN0aW9uKHQsZSl7dD11dSh1LHQpO29sKGEsbnUodCkpfHwoZj1pbChzLGYsdCxlLGMsaCxsKSl9KSxmKTooc28oZy5zb3VyY2UuZnJvbVNlcnZlciwiVW5rbm93biBzb3VyY2UuIiksbz1nLnNvdXJjZS50YWdnZWR8fGUuc2VydmVyQ2FjaGUuaXNGaWx0ZXJlZCgpLGFsKHQsZSxnLnBhdGgsZy5jaGlsZHJlbixyLGksbyxwKSl9ZWxzZSBpZihuLnR5cGU9PT0kYy5BQ0tfVVNFUl9XUklURSl7dmFyIHk9bjt2PXkucmV2ZXJ0P2Z1bmN0aW9uKHQsZSxuLHIsaSxvKXt2YXIgczt7aWYobnVsbCE9V2gocixuKSlyZXR1cm4gZTt2YXIgYSx1LGM9bmV3IFpoKHIsZSxpKSxoPWUuZXZlbnRDYWNoZS5nZXROb2RlKCksaT12b2lkIDA7cmV0dXJuIGN1KG4pfHwiLnByaW9yaXR5Ij09PW51KG4pPyh1PXZvaWQgMCx1PWUuc2VydmVyQ2FjaGUuaXNGdWxseUluaXRpYWxpemVkKCk/VmgocixJaChlKSk6KGE9ZS5zZXJ2ZXJDYWNoZS5nZXROb2RlKCksc28oYSBpbnN0YW5jZW9mIHVjLCJzZXJ2ZXJDaGlsZHJlbiB3b3VsZCBiZSBjb21wbGV0ZSBpZiBsZWFmIG5vZGUiKSxCaChyLGEpKSxpPXQuZmlsdGVyLnVwZGF0ZUZ1bGxOb2RlKGgsdSxvKSk6KGE9bnUobiksbnVsbD09KHU9R2gocixhLGUuc2VydmVyQ2FjaGUpKSYmZS5zZXJ2ZXJDYWNoZS5pc0NvbXBsZXRlRm9yQ2hpbGQoYSkmJih1PWguZ2V0SW1tZWRpYXRlQ2hpbGQoYSkpLChpPW51bGwhPXU/dC5maWx0ZXIudXBkYXRlQ2hpbGQoaCxhLHUsaXUobiksYyxvKTplLmV2ZW50Q2FjaGUuZ2V0Tm9kZSgpLmhhc0NoaWxkKGEpP3QuZmlsdGVyLnVwZGF0ZUNoaWxkKGgsYSx1Yy5FTVBUWV9OT0RFLGl1KG4pLGMsbyk6aCkuaXNFbXB0eSgpJiZlLnNlcnZlckNhY2hlLmlzRnVsbHlJbml0aWFsaXplZCgpJiYocz1WaChyLEloKGUpKSkuaXNMZWFmTm9kZSgpJiYoaT10LmZpbHRlci51cGRhdGVGdWxsTm9kZShpLHMsbykpKSxzPWUuc2VydmVyQ2FjaGUuaXNGdWxseUluaXRpYWxpemVkKCl8fG51bGwhPVdoKHIsZXUoKSksYmgoZSxpLHMsdC5maWx0ZXIuZmlsdGVyc05vZGVzKCkpfX0odCxlLHkucGF0aCxyLGkscCk6ZnVuY3Rpb24odCxlLHIsbixpLG8scyl7aWYobnVsbCE9V2goaSxyKSlyZXR1cm4gZTt2YXIgYT1lLnNlcnZlckNhY2hlLmlzRmlsdGVyZWQoKSx1PWUuc2VydmVyQ2FjaGU7e2lmKG51bGwhPW4udmFsdWUpe2lmKGN1KHIpJiZ1LmlzRnVsbHlJbml0aWFsaXplZCgpfHx1LmlzQ29tcGxldGVGb3JQYXRoKHIpKXJldHVybiBybCh0LGUscix1LmdldE5vZGUoKS5nZXRDaGlsZChyKSxpLG8sYSxzKTtpZihjdShyKSl7dmFyIGM9bmV3IFRoKG51bGwpO3JldHVybiB1LmdldE5vZGUoKS5mb3JFYWNoQ2hpbGQoUHUsZnVuY3Rpb24odCxlKXtjPWMuc2V0KG5ldyBaYSh0KSxlKX0pLGFsKHQsZSxyLGMsaSxvLGEscyl9cmV0dXJuIGV9dmFyIGg9bmV3IFRoKG51bGwpO3JldHVybiBuLmZvcmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj11dShyLHQpO3UuaXNDb21wbGV0ZUZvclBhdGgobikmJihoPWguc2V0KHQsdS5nZXROb2RlKCkuZ2V0Q2hpbGQobikpKX0pLGFsKHQsZSxyLGgsaSxvLGEscyl9fSh0LGUseS5wYXRoLHkuYWZmZWN0ZWRUcmVlLHIsaSxwKX1lbHNle2lmKG4udHlwZSE9PSRjLkxJU1RFTl9DT01QTEVURSl0aHJvdyBhbygiVW5rbm93biBvcGVyYXRpb24gdHlwZTogIituLnR5cGUpO289dCx5PWUsaT1uLnBhdGgsdD1yLG49cCxyPXkuc2VydmVyQ2FjaGUscj13aCh5LHIuZ2V0Tm9kZSgpLHIuaXNGdWxseUluaXRpYWxpemVkKCl8fGN1KGkpLHIuaXNGaWx0ZXJlZCgpKSx2PW5sKG8scixpLHQsJGgsbil9cD1wLmdldENoYW5nZXMoKTtyZXR1cm4gZnVuY3Rpb24odCxlLG4pe3ZhciByPWUuZXZlbnRDYWNoZTt7dmFyIGksbztyLmlzRnVsbHlJbml0aWFsaXplZCgpJiYoaT1yLmdldE5vZGUoKS5pc0xlYWZOb2RlKCl8fHIuZ2V0Tm9kZSgpLmlzRW1wdHkoKSxvPV9oKHQpLCgwPG4ubGVuZ3RofHwhdC5ldmVudENhY2hlLmlzRnVsbHlJbml0aWFsaXplZCgpfHxpJiYhci5nZXROb2RlKCkuZXF1YWxzKG8pfHwhci5nZXROb2RlKCkuZ2V0UHJpb3JpdHkoKS5lcXVhbHMoby5nZXRQcmlvcml0eSgpKSkmJm4ucHVzaChDYyhfaChlKSkpKX19KGUsdixwKSx7dmlld0NhY2hlOnYsY2hhbmdlczpwfX1mdW5jdGlvbiBubCh0LGUsbixyLGksbyl7dmFyIHM9ZS5ldmVudENhY2hlO2lmKG51bGwhPVdoKHIsbikpcmV0dXJuIGU7dmFyIGEsdSxjLGgsbD12b2lkIDAsZj12b2lkIDA7cmV0dXJuIGw9Y3Uobik/KHNvKGUuc2VydmVyQ2FjaGUuaXNGdWxseUluaXRpYWxpemVkKCksIklmIGNoYW5nZSBwYXRoIGlzIGVtcHR5LCB3ZSBtdXN0IGhhdmUgY29tcGxldGUgc2VydmVyIGRhdGEiKSxlLnNlcnZlckNhY2hlLmlzRmlsdGVyZWQoKT8oYT1CaChyLChhPUloKGUpKWluc3RhbmNlb2YgdWM/YTp1Yy5FTVBUWV9OT0RFKSx0LmZpbHRlci51cGRhdGVGdWxsTm9kZShlLmV2ZW50Q2FjaGUuZ2V0Tm9kZSgpLGEsbykpOih1PVZoKHIsSWgoZSkpLHQuZmlsdGVyLnVwZGF0ZUZ1bGxOb2RlKGUuZXZlbnRDYWNoZS5nZXROb2RlKCksdSxvKSkpOiIucHJpb3JpdHkiPT09KHU9bnUobikpPyhzbygxPT09cnUobiksIkNhbid0IGhhdmUgYSBwcmlvcml0eSB3aXRoIGFkZGl0aW9uYWwgcGF0aCBjb21wb25lbnRzIiksbnVsbCE9KGg9S2gocixuLGM9cy5nZXROb2RlKCksZj1lLnNlcnZlckNhY2hlLmdldE5vZGUoKSkpP3QuZmlsdGVyLnVwZGF0ZVByaW9yaXR5KGMsaCk6cy5nZXROb2RlKCkpOihjPWl1KG4pLGg9dm9pZCAwLG51bGwhPShoPXMuaXNDb21wbGV0ZUZvckNoaWxkKHUpPyhmPWUuc2VydmVyQ2FjaGUuZ2V0Tm9kZSgpLG51bGwhPShmPUtoKHIsbixzLmdldE5vZGUoKSxmKSk/cy5nZXROb2RlKCkuZ2V0SW1tZWRpYXRlQ2hpbGQodSkudXBkYXRlQ2hpbGQoYyxmKTpzLmdldE5vZGUoKS5nZXRJbW1lZGlhdGVDaGlsZCh1KSk6R2gocix1LGUuc2VydmVyQ2FjaGUpKT90LmZpbHRlci51cGRhdGVDaGlsZChzLmdldE5vZGUoKSx1LGgsYyxpLG8pOnMuZ2V0Tm9kZSgpKSxiaChlLGwscy5pc0Z1bGx5SW5pdGlhbGl6ZWQoKXx8Y3UobiksdC5maWx0ZXIuZmlsdGVyc05vZGVzKCkpfWZ1bmN0aW9uIHJsKHQsZSxuLHIsaSxvLHMsYSl7dmFyIHU9ZS5zZXJ2ZXJDYWNoZSxjPXM/dC5maWx0ZXI6dC5maWx0ZXIuZ2V0SW5kZXhlZEZpbHRlcigpO2lmKGN1KG4pKWw9Yy51cGRhdGVGdWxsTm9kZSh1LmdldE5vZGUoKSxyLG51bGwpO2Vsc2UgaWYoYy5maWx0ZXJzTm9kZXMoKSYmIXUuaXNGaWx0ZXJlZCgpKXZhciBoPXUuZ2V0Tm9kZSgpLnVwZGF0ZUNoaWxkKG4sciksbD1jLnVwZGF0ZUZ1bGxOb2RlKHUuZ2V0Tm9kZSgpLGgsbnVsbCk7ZWxzZXtzPW51KG4pO2lmKCF1LmlzQ29tcGxldGVGb3JQYXRoKG4pJiYxPHJ1KG4pKXJldHVybiBlO2g9aXUobikscj11LmdldE5vZGUoKS5nZXRJbW1lZGlhdGVDaGlsZChzKS51cGRhdGVDaGlsZChoLHIpO2w9Ii5wcmlvcml0eSI9PT1zP2MudXBkYXRlUHJpb3JpdHkodS5nZXROb2RlKCkscik6Yy51cGRhdGVDaGlsZCh1LmdldE5vZGUoKSxzLHIsaCwkaCxudWxsKX1jPXdoKGUsbCx1LmlzRnVsbHlJbml0aWFsaXplZCgpfHxjdShuKSxjLmZpbHRlcnNOb2RlcygpKTtyZXR1cm4gbmwodCxjLG4saSxuZXcgWmgoaSxjLG8pLGEpfWZ1bmN0aW9uIGlsKHQsZSxuLHIsaSxvLHMpe3ZhciBhLHUsYz1lLmV2ZW50Q2FjaGUsaD1uZXcgWmgoaSxlLG8pO3JldHVybiBjdShuKT8odT10LmZpbHRlci51cGRhdGVGdWxsTm9kZShlLmV2ZW50Q2FjaGUuZ2V0Tm9kZSgpLHIscyksYmgoZSx1LCEwLHQuZmlsdGVyLmZpbHRlcnNOb2RlcygpKSk6Ii5wcmlvcml0eSI9PT0oYT1udShuKSk/KHU9dC5maWx0ZXIudXBkYXRlUHJpb3JpdHkoZS5ldmVudENhY2hlLmdldE5vZGUoKSxyKSxiaChlLHUsYy5pc0Z1bGx5SW5pdGlhbGl6ZWQoKSxjLmlzRmlsdGVyZWQoKSkpOihpPWl1KG4pLG89Yy5nZXROb2RlKCkuZ2V0SW1tZWRpYXRlQ2hpbGQoYSksdT12b2lkIDAsdT1jdShpKT9yOm51bGwhPShuPWguZ2V0Q29tcGxldGVDaGlsZChhKSk/Ii5wcmlvcml0eSI9PT1vdShpKSYmbi5nZXRDaGlsZChhdShpKSkuaXNFbXB0eSgpP246bi51cGRhdGVDaGlsZChpLHIpOnVjLkVNUFRZX05PREUsby5lcXVhbHModSk/ZTpiaChlLHQuZmlsdGVyLnVwZGF0ZUNoaWxkKGMuZ2V0Tm9kZSgpLGEsdSxpLGgscyksYy5pc0Z1bGx5SW5pdGlhbGl6ZWQoKSx0LmZpbHRlci5maWx0ZXJzTm9kZXMoKSkpfWZ1bmN0aW9uIG9sKHQsZSl7cmV0dXJuIHQuZXZlbnRDYWNoZS5pc0NvbXBsZXRlRm9yQ2hpbGQoZSl9ZnVuY3Rpb24gc2wodCxuLGUpe3JldHVybiBlLmZvcmVhY2goZnVuY3Rpb24odCxlKXtuPW4udXBkYXRlQ2hpbGQodCxlKX0pLG59ZnVuY3Rpb24gYWwocixpLHQsZSxvLHMsYSx1KXtpZihpLnNlcnZlckNhY2hlLmdldE5vZGUoKS5pc0VtcHR5KCkmJiFpLnNlcnZlckNhY2hlLmlzRnVsbHlJbml0aWFsaXplZCgpKXJldHVybiBpO3ZhciBjPWksZT1jdSh0KT9lOm5ldyBUaChudWxsKS5zZXRUcmVlKHQsZSksaD1pLnNlcnZlckNhY2hlLmdldE5vZGUoKTtyZXR1cm4gZS5jaGlsZHJlbi5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7aC5oYXNDaGlsZCh0KSYmKGU9c2woMCxpLnNlcnZlckNhY2hlLmdldE5vZGUoKS5nZXRJbW1lZGlhdGVDaGlsZCh0KSxlKSxjPXJsKHIsYyxuZXcgWmEodCksZSxvLHMsYSx1KSl9KSxlLmNoaWxkcmVuLmlub3JkZXJUcmF2ZXJzYWwoZnVuY3Rpb24odCxlKXt2YXIgbj0haS5zZXJ2ZXJDYWNoZS5pc0NvbXBsZXRlRm9yQ2hpbGQodCkmJnZvaWQgMD09PWUudmFsdWU7aC5oYXNDaGlsZCh0KXx8bnx8KGU9c2woMCxpLnNlcnZlckNhY2hlLmdldE5vZGUoKS5nZXRJbW1lZGlhdGVDaGlsZCh0KSxlKSxjPXJsKHIsYyxuZXcgWmEodCksZSxvLHMsYSx1KSl9KSxjfXZhciB1bCxjbD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGhsLnByb3RvdHlwZSwicXVlcnkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeV99LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksaGwpO2Z1bmN0aW9uIGhsKHQsZSl7dGhpcy5xdWVyeV89dCx0aGlzLmV2ZW50UmVnaXN0cmF0aW9uc189W107dmFyIG49dGhpcy5xdWVyeV8uZ2V0UXVlcnlQYXJhbXMoKSxyPW5ldyBSYyhuLmdldEluZGV4KCkpLGk9KG89bikubG9hZHNBbGxEYXRhKCk/bmV3IFJjKG8uZ2V0SW5kZXgoKSk6bmV3KG8uaGFzTGltaXQoKT94YzpPYykobyk7dGhpcy5wcm9jZXNzb3JfPXtmaWx0ZXI6aX07dmFyIHQ9ZS5zZXJ2ZXJDYWNoZSxuPWUuZXZlbnRDYWNoZSxvPXIudXBkYXRlRnVsbE5vZGUodWMuRU1QVFlfTk9ERSx0LmdldE5vZGUoKSxudWxsKSxlPWkudXBkYXRlRnVsbE5vZGUodWMuRU1QVFlfTk9ERSxuLmdldE5vZGUoKSxudWxsKSxyPW5ldyBmaChvLHQuaXNGdWxseUluaXRpYWxpemVkKCksci5maWx0ZXJzTm9kZXMoKSksaT1uZXcgZmgoZSxuLmlzRnVsbHlJbml0aWFsaXplZCgpLGkuZmlsdGVyc05vZGVzKCkpO3RoaXMudmlld0NhY2hlXz1taChpLHIpLHRoaXMuZXZlbnRHZW5lcmF0b3JfPW5ldyB2aCh0aGlzLnF1ZXJ5Xyl9ZnVuY3Rpb24gbGwodCl7cmV0dXJuIDA9PT10LmV2ZW50UmVnaXN0cmF0aW9uc18ubGVuZ3RofWZ1bmN0aW9uIGZsKHQsZSxuKXt2YXIgcixpPVtdO2lmKG4mJihzbyhudWxsPT1lLCJBIGNhbmNlbCBzaG91bGQgY2FuY2VsIGFsbCBldmVudCByZWdpc3RyYXRpb25zLiIpLHI9dC5xdWVyeS5wYXRoLHQuZXZlbnRSZWdpc3RyYXRpb25zXy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Q9dC5jcmVhdGVDYW5jZWxFdmVudChuLHIpO3QmJmkucHVzaCh0KX0pKSxlKXtmb3IodmFyIG89W10scz0wO3M8dC5ldmVudFJlZ2lzdHJhdGlvbnNfLmxlbmd0aDsrK3Mpe3ZhciBhPXQuZXZlbnRSZWdpc3RyYXRpb25zX1tzXTtpZihhLm1hdGNoZXMoZSkpe2lmKGUuaGFzQW55Q2FsbGJhY2soKSl7bz1vLmNvbmNhdCh0LmV2ZW50UmVnaXN0cmF0aW9uc18uc2xpY2UocysxKSk7YnJlYWt9fWVsc2Ugby5wdXNoKGEpfXQuZXZlbnRSZWdpc3RyYXRpb25zXz1vfWVsc2UgdC5ldmVudFJlZ2lzdHJhdGlvbnNfPVtdO3JldHVybiBpfWZ1bmN0aW9uIHBsKHQsZSxuLHIpe2UudHlwZT09PSRjLk1FUkdFJiZudWxsIT09ZS5zb3VyY2UucXVlcnlJZCYmKHNvKEloKHQudmlld0NhY2hlXyksIldlIHNob3VsZCBhbHdheXMgaGF2ZSBhIGZ1bGwgY2FjaGUgYmVmb3JlIGhhbmRsaW5nIG1lcmdlcyIpLHNvKF9oKHQudmlld0NhY2hlXyksIk1pc3NpbmcgZXZlbnQgY2FjaGUsIGV2ZW4gdGhvdWdoIHdlIGhhdmUgYSBzZXJ2ZXIgY2FjaGUiKSk7dmFyIGk9dC52aWV3Q2FjaGVfLGU9ZWwodC5wcm9jZXNzb3JfLGksZSxuLHIpO3JldHVybiBuPXQucHJvY2Vzc29yXyxyPWUudmlld0NhY2hlLHNvKHIuZXZlbnRDYWNoZS5nZXROb2RlKCkuaXNJbmRleGVkKG4uZmlsdGVyLmdldEluZGV4KCkpLCJFdmVudCBzbmFwIG5vdCBpbmRleGVkIiksc28oci5zZXJ2ZXJDYWNoZS5nZXROb2RlKCkuaXNJbmRleGVkKG4uZmlsdGVyLmdldEluZGV4KCkpLCJTZXJ2ZXIgc25hcCBub3QgaW5kZXhlZCIpLHNvKGUudmlld0NhY2hlLnNlcnZlckNhY2hlLmlzRnVsbHlJbml0aWFsaXplZCgpfHwhaS5zZXJ2ZXJDYWNoZS5pc0Z1bGx5SW5pdGlhbGl6ZWQoKSwiT25jZSBhIHNlcnZlciBzbmFwIGlzIGNvbXBsZXRlLCBpdCBzaG91bGQgbmV2ZXIgZ28gYmFjayIpLHQudmlld0NhY2hlXz1lLnZpZXdDYWNoZSxkbCh0LGUuY2hhbmdlcyxlLnZpZXdDYWNoZS5ldmVudENhY2hlLmdldE5vZGUoKSxudWxsKX1mdW5jdGlvbiBkbCh0LGUsbixyKXtyPXI/W3JdOnQuZXZlbnRSZWdpc3RyYXRpb25zXztyZXR1cm4gZ2godC5ldmVudEdlbmVyYXRvcl8sZSxuLHIpfXZhciB2bD1mdW5jdGlvbigpe3RoaXMudmlld3M9bmV3IE1hcH07ZnVuY3Rpb24gZ2wodCxlLG4scil7dmFyIGksbyxzPWUuc291cmNlLnF1ZXJ5SWQ7aWYobnVsbCE9PXMpe3ZhciBhPXQudmlld3MuZ2V0KHMpO3JldHVybiBzbyhudWxsIT1hLCJTeW5jVHJlZSBnYXZlIHVzIGFuIG9wIGZvciBhbiBpbnZhbGlkIHF1ZXJ5LiIpLHBsKGEsZSxuLHIpfXZhciB1PVtdO3RyeXtmb3IodmFyIGM9dG8odC52aWV3cy52YWx1ZXMoKSksaD1jLm5leHQoKTshaC5kb25lO2g9Yy5uZXh0KCkpYT1oLnZhbHVlLHU9dS5jb25jYXQocGwoYSxlLG4scikpfWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2gmJiFoLmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gdX1mdW5jdGlvbiB5bCh0LGUsbixyLGkpe3ZhciBvPWUucXVlcnlJZGVudGlmaWVyKCksdD10LnZpZXdzLmdldChvKTtpZih0KXJldHVybiB0O289VmgobixpP3I6bnVsbCksdD0hMSx0PSEhb3x8KG89ciBpbnN0YW5jZW9mIHVjP0JoKG4scik6dWMuRU1QVFlfTk9ERSwhMSksaT1taChuZXcgZmgobyx0LCExKSxuZXcgZmgocixpLCExKSk7cmV0dXJuIG5ldyBjbChlLGkpfWZ1bmN0aW9uIG1sKHQsZSxuLHIsaSxvKXt2YXIgcyxvPXlsKHQsZSxyLGksbyk7cmV0dXJuIHQudmlld3MuaGFzKGUucXVlcnlJZGVudGlmaWVyKCkpfHx0LnZpZXdzLnNldChlLnF1ZXJ5SWRlbnRpZmllcigpLG8pLGU9bixvLmV2ZW50UmVnaXN0cmF0aW9uc18ucHVzaChlKSxlPW4sbz0obj1vKS52aWV3Q2FjaGVfLmV2ZW50Q2FjaGUscz1bXSxvLmdldE5vZGUoKS5pc0xlYWZOb2RlKCl8fG8uZ2V0Tm9kZSgpLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe3MucHVzaChOYyh0LGUpKX0pLG8uaXNGdWxseUluaXRpYWxpemVkKCkmJnMucHVzaChDYyhvLmdldE5vZGUoKSkpLGRsKG4scyxvLmdldE5vZGUoKSxlKX1mdW5jdGlvbiBibCh0LGUsbixyKXt2YXIgaSxvLHM9ZS5xdWVyeUlkZW50aWZpZXIoKSxhPVtdLHU9W10sYz1FbCh0KTtpZigiZGVmYXVsdCI9PT1zKXRyeXtmb3IodmFyIGg9dG8odC52aWV3cy5lbnRyaWVzKCkpLGw9aC5uZXh0KCk7IWwuZG9uZTtsPWgubmV4dCgpKXt2YXIgZj1lbyhsLnZhbHVlLDIpLHA9ZlswXSxkPWZbMV0sdT11LmNvbmNhdChmbChkLG4scikpO2xsKGQpJiYodC52aWV3cy5kZWxldGUocCksZC5xdWVyeS5nZXRRdWVyeVBhcmFtcygpLmxvYWRzQWxsRGF0YSgpfHxhLnB1c2goZC5xdWVyeSkpfX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobz1oLnJldHVybikmJm8uY2FsbChoKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19ZWxzZShkPXQudmlld3MuZ2V0KHMpKSYmKHU9dS5jb25jYXQoZmwoZCxuLHIpKSxsbChkKSYmKHQudmlld3MuZGVsZXRlKHMpLGQucXVlcnkuZ2V0UXVlcnlQYXJhbXMoKS5sb2Fkc0FsbERhdGEoKXx8YS5wdXNoKGQucXVlcnkpKSk7cmV0dXJuIGMmJiFFbCh0KSYmYS5wdXNoKChzbyh1bCwiUmVmZXJlbmNlLnRzIGhhcyBub3QgYmVlbiBsb2FkZWQiKSxuZXcgdWwoZS5kYXRhYmFzZSxlLnBhdGgpKSkse3JlbW92ZWQ6YSxldmVudHM6dX19ZnVuY3Rpb24gd2wodCl7dmFyIGUsbixyPVtdO3RyeXtmb3IodmFyIGk9dG8odC52aWV3cy52YWx1ZXMoKSksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBzPW8udmFsdWU7cy5xdWVyeS5nZXRRdWVyeVBhcmFtcygpLmxvYWRzQWxsRGF0YSgpfHxyLnB1c2gocyl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm4gcn1mdW5jdGlvbiBfbCh0LGUpe3ZhciBuLHIsaSxvLHM9bnVsbDt0cnl7Zm9yKHZhciBhPXRvKHQudmlld3MudmFsdWVzKCkpLHU9YS5uZXh0KCk7IXUuZG9uZTt1PWEubmV4dCgpKXZhciBjPXUudmFsdWUscz1zfHwoaT1lLG89dm9pZCAwLChvPUloKChjPWMpLnZpZXdDYWNoZV8pKSYmKGMucXVlcnkuZ2V0UXVlcnlQYXJhbXMoKS5sb2Fkc0FsbERhdGEoKXx8IWN1KGkpJiYhby5nZXRJbW1lZGlhdGVDaGlsZChudShpKSkuaXNFbXB0eSgpKT9vLmdldENoaWxkKGkpOm51bGwpfWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihyPWEucmV0dXJuKSYmci5jYWxsKGEpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gc31mdW5jdGlvbiBJbCh0LGUpe2lmKGUuZ2V0UXVlcnlQYXJhbXMoKS5sb2Fkc0FsbERhdGEoKSlyZXR1cm4gU2wodCk7ZT1lLnF1ZXJ5SWRlbnRpZmllcigpO3JldHVybiB0LnZpZXdzLmdldChlKX1mdW5jdGlvbiBUbCh0LGUpe3JldHVybiBudWxsIT1JbCh0LGUpfWZ1bmN0aW9uIEVsKHQpe3JldHVybiBudWxsIT1TbCh0KX1mdW5jdGlvbiBTbCh0KXt2YXIgZSxuO3RyeXtmb3IodmFyIHI9dG8odC52aWV3cy52YWx1ZXMoKSksaT1yLm5leHQoKTshaS5kb25lO2k9ci5uZXh0KCkpe3ZhciBvPWkudmFsdWU7aWYoby5xdWVyeS5nZXRRdWVyeVBhcmFtcygpLmxvYWRzQWxsRGF0YSgpKXJldHVybiBvfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobj1yLnJldHVybikmJm4uY2FsbChyKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIG51bGx9dmFyIENsPTEsTmw9ZnVuY3Rpb24odCl7dGhpcy5saXN0ZW5Qcm92aWRlcl89dCx0aGlzLnN5bmNQb2ludFRyZWVfPW5ldyBUaChudWxsKSx0aGlzLnBlbmRpbmdXcml0ZVRyZWVfPXt2aXNpYmxlV3JpdGVzOlNoLmVtcHR5KCksYWxsV3JpdGVzOltdLGxhc3RXcml0ZUlkOi0xfSx0aGlzLnRhZ1RvUXVlcnlNYXA9bmV3IE1hcCx0aGlzLnF1ZXJ5VG9UYWdNYXA9bmV3IE1hcH07ZnVuY3Rpb24gQWwodCxlLG4scixpKXt2YXIgbyxzLGEsdTtyZXR1cm4gbz10LnBlbmRpbmdXcml0ZVRyZWVfLHM9ZSxhPW4sdT1pLHNvKChyPXIpPm8ubGFzdFdyaXRlSWQsIlN0YWNraW5nIGFuIG9sZGVyIHdyaXRlIG9uIHRvcCBvZiBuZXdlciBvbmVzIiksdm9pZCAwPT09dSYmKHU9ITApLG8uYWxsV3JpdGVzLnB1c2goe3BhdGg6cyxzbmFwOmEsd3JpdGVJZDpyLHZpc2libGU6dX0pLHUmJihvLnZpc2libGVXcml0ZXM9Tmgoby52aXNpYmxlV3JpdGVzLHMsYSkpLG8ubGFzdFdyaXRlSWQ9cixpP01sKHQsbmV3IHVoKGVoKCksZSxuKSk6W119ZnVuY3Rpb24ga2wodCxlLG4scil7dmFyIGksbyxzO2k9dC5wZW5kaW5nV3JpdGVUcmVlXyxvPWUscz1uLHNvKChyPXIpPmkubGFzdFdyaXRlSWQsIlN0YWNraW5nIGFuIG9sZGVyIG1lcmdlIG9uIHRvcCBvZiBuZXdlciBvbmVzIiksaS5hbGxXcml0ZXMucHVzaCh7cGF0aDpvLGNoaWxkcmVuOnMsd3JpdGVJZDpyLHZpc2libGU6ITB9KSxpLnZpc2libGVXcml0ZXM9QWgoaS52aXNpYmxlV3JpdGVzLG8scyksaS5sYXN0V3JpdGVJZD1yO249VGguZnJvbU9iamVjdChuKTtyZXR1cm4gTWwodCxuZXcgaGgoZWgoKSxlLG4pKX1mdW5jdGlvbiBSbCh0LGUsbil7dm9pZCAwPT09biYmKG49ITEpO3ZhciByPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTA7bjx0LmFsbFdyaXRlcy5sZW5ndGg7bisrKXt2YXIgcj10LmFsbFdyaXRlc1tuXTtpZihyLndyaXRlSWQ9PT1lKXJldHVybiByfXJldHVybiBudWxsfSh0LnBlbmRpbmdXcml0ZVRyZWVfLGUpO2lmKEZoKHQucGVuZGluZ1dyaXRlVHJlZV8sZSkpe3ZhciBpPW5ldyBUaChudWxsKTtyZXR1cm4gbnVsbCE9ci5zbmFwP2k9aS5zZXQoZXUoKSwhMCk6aWEoci5jaGlsZHJlbixmdW5jdGlvbih0KXtpPWkuc2V0KG5ldyBaYSh0KSwhMCl9KSxNbCh0LG5ldyBpaChyLnBhdGgsaSxuKSl9cmV0dXJuW119ZnVuY3Rpb24gUGwodCxlLG4pe3JldHVybiBNbCh0LG5ldyB1aChuaCgpLGUsbikpfWZ1bmN0aW9uIE9sKG4sdCxlLHIpe3ZhciBpPXQucGF0aCxvPW4uc3luY1BvaW50VHJlZV8uZ2V0KGkpLHM9W107aWYobyYmKCJkZWZhdWx0Ij09PXQucXVlcnlJZGVudGlmaWVyKCl8fFRsKG8sdCkpKXt2YXIgYT1ibChvLHQsZSxyKTswPT09by52aWV3cy5zaXplJiYobi5zeW5jUG9pbnRUcmVlXz1uLnN5bmNQb2ludFRyZWVfLnJlbW92ZShpKSk7ZT1hLnJlbW92ZWQscz1hLmV2ZW50cyxvPS0xIT09ZS5maW5kSW5kZXgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0UXVlcnlQYXJhbXMoKS5sb2Fkc0FsbERhdGEoKX0pLGE9bi5zeW5jUG9pbnRUcmVlXy5maW5kT25QYXRoKGksZnVuY3Rpb24odCxlKXtyZXR1cm4gRWwoZSl9KTtpZihvJiYhYSl7aT1uLnN5bmNQb2ludFRyZWVfLnN1YnRyZWUoaSk7aWYoIWkuaXNFbXB0eSgpKWZvcih2YXIgdT1pLmZvbGQoZnVuY3Rpb24odCxlLG4pe2lmKGUmJkVsKGUpKXJldHVybltTbChlKV07dmFyIHI9W107cmV0dXJuIGUmJihyPXdsKGUpKSxpYShuLGZ1bmN0aW9uKHQsZSl7cj1yLmNvbmNhdChlKX0pLHJ9KSxjPTA7Yzx1Lmxlbmd0aDsrK2Mpe3ZhciBoPXVbY10sbD1oLnF1ZXJ5LGg9VWwobixoKTtuLmxpc3RlblByb3ZpZGVyXy5zdGFydExpc3RlbmluZyhXbChsKSxqbChuLGwpLGguaGFzaEZuLGgub25Db21wbGV0ZSl9fSFhJiYwPGUubGVuZ3RoJiYhciYmKG8/bi5saXN0ZW5Qcm92aWRlcl8uc3RvcExpc3RlbmluZyhXbCh0KSxudWxsKTplLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5xdWVyeVRvVGFnTWFwLmdldChxbCh0KSk7bi5saXN0ZW5Qcm92aWRlcl8uc3RvcExpc3RlbmluZyhXbCh0KSxlKX0pKSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7KytuKXt2YXIgcixpPWVbbl07aS5nZXRRdWVyeVBhcmFtcygpLmxvYWRzQWxsRGF0YSgpfHwocj1xbChpKSxpPXQucXVlcnlUb1RhZ01hcC5nZXQociksdC5xdWVyeVRvVGFnTWFwLmRlbGV0ZShyKSx0LnRhZ1RvUXVlcnlNYXAuZGVsZXRlKGkpKX19KG4sZSl9cmV0dXJuIHN9ZnVuY3Rpb24gRGwodCxlLG4pe3ZhciByPWUucGF0aCxpPW51bGwsbz0hMTt0LnN5bmNQb2ludFRyZWVfLmZvcmVhY2hPblBhdGgocixmdW5jdGlvbih0LGUpe3Q9aHUodCxyKTtpPWl8fF9sKGUsdCksbz1vfHxFbChlKX0pO3ZhciBzPXQuc3luY1BvaW50VHJlZV8uZ2V0KHIpO3M/KG89b3x8RWwocyksaT1pfHxfbChzLGV1KCkpKToocz1uZXcgdmwsdC5zeW5jUG9pbnRUcmVlXz10LnN5bmNQb2ludFRyZWVfLnNldChyLHMpKSxudWxsIT1pP2g9ITA6KGg9ITEsaT11Yy5FTVBUWV9OT0RFLHQuc3luY1BvaW50VHJlZV8uc3VidHJlZShyKS5mb3JlYWNoQ2hpbGQoZnVuY3Rpb24odCxlKXtlPV9sKGUsZXUoKSk7ZSYmKGk9aS51cGRhdGVJbW1lZGlhdGVDaGlsZCh0LGUpKX0pKTt2YXIgYSx1LGM9VGwocyxlKTtjfHxlLmdldFF1ZXJ5UGFyYW1zKCkubG9hZHNBbGxEYXRhKCl8fChhPXFsKGUpLHNvKCF0LnF1ZXJ5VG9UYWdNYXAuaGFzKGEpLCJWaWV3IGRvZXMgbm90IGV4aXN0LCBidXQgd2UgaGF2ZSBhIHRhZyIpLHU9Q2wrKyx0LnF1ZXJ5VG9UYWdNYXAuc2V0KGEsdSksdC50YWdUb1F1ZXJ5TWFwLnNldCh1LGEpKTt2YXIgaD1tbChzLGUsbixNaCh0LnBlbmRpbmdXcml0ZVRyZWVfLHIpLGksaCk7cmV0dXJuIGN8fG98fChzPUlsKHMsZSksaD1oLmNvbmNhdChmdW5jdGlvbih0LGUsbil7dmFyIHI9ZS5wYXRoLGk9amwodCxlKSxuPVVsKHQsbiksbj10Lmxpc3RlblByb3ZpZGVyXy5zdGFydExpc3RlbmluZyhXbChlKSxpLG4uaGFzaEZuLG4ub25Db21wbGV0ZSkscj10LnN5bmNQb2ludFRyZWVfLnN1YnRyZWUocik7aWYoaSlzbyghRWwoci52YWx1ZSksIklmIHdlJ3JlIGFkZGluZyBhIHF1ZXJ5LCBpdCBzaG91bGRuJ3QgYmUgc2hhZG93ZWQiKTtlbHNlIGZvcih2YXIgbz1yLmZvbGQoZnVuY3Rpb24odCxlLG4pe2lmKCFjdSh0KSYmZSYmRWwoZSkpcmV0dXJuW1NsKGUpLnF1ZXJ5XTt2YXIgcj1bXTtyZXR1cm4gZSYmKHI9ci5jb25jYXQod2woZSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnF1ZXJ5fSkpKSxpYShuLGZ1bmN0aW9uKHQsZSl7cj1yLmNvbmNhdChlKX0pLHJ9KSxzPTA7czxvLmxlbmd0aDsrK3Mpe3ZhciBhPW9bc107dC5saXN0ZW5Qcm92aWRlcl8uc3RvcExpc3RlbmluZyhXbChhKSxqbCh0LGEpKX1yZXR1cm4gbn0odCxlLHMpKSksaH1mdW5jdGlvbiB4bCh0LG4sZSl7dmFyIHI9dC5wZW5kaW5nV3JpdGVUcmVlXyx0PXQuc3luY1BvaW50VHJlZV8uZmluZE9uUGF0aChuLGZ1bmN0aW9uKHQsZSl7dD1fbChlLGh1KHQsbikpO2lmKHQpcmV0dXJuIHR9KTtyZXR1cm4gcWgocixuLHQsZSwhMCl9ZnVuY3Rpb24gTGwodCxlKXt2YXIgbj1lLnBhdGgscj1udWxsO3Quc3luY1BvaW50VHJlZV8uZm9yZWFjaE9uUGF0aChuLGZ1bmN0aW9uKHQsZSl7dD1odSh0LG4pO3I9cnx8X2woZSx0KX0pO3ZhciBpPXQuc3luY1BvaW50VHJlZV8uZ2V0KG4pO2k/cj1yfHxfbChpLGV1KCkpOihpPW5ldyB2bCx0LnN5bmNQb2ludFRyZWVfPXQuc3luY1BvaW50VHJlZV8uc2V0KG4saSkpO3ZhciBvPW51bGwhPXIscz1vP25ldyBmaChyLCEwLCExKTpudWxsLG89eWwoaSxlLE1oKHQucGVuZGluZ1dyaXRlVHJlZV8sZS5wYXRoKSxvP3MuZ2V0Tm9kZSgpOnVjLkVNUFRZX05PREUsbyk7cmV0dXJuIF9oKG8udmlld0NhY2hlXyl9ZnVuY3Rpb24gTWwodCxlKXtyZXR1cm4gZnVuY3Rpb24gdChlLG4scixpKXt7aWYoY3UoZS5wYXRoKSlyZXR1cm4gRmwoZSxuLHIsaSk7dmFyIG89bi5nZXQoZXUoKSk7bnVsbD09ciYmbnVsbCE9byYmKHI9X2wobyxldSgpKSk7dmFyIHM9W10sYT1udShlLnBhdGgpLHU9ZS5vcGVyYXRpb25Gb3JDaGlsZChhKSxjPW4uY2hpbGRyZW4uZ2V0KGEpO3JldHVybiBjJiZ1JiYobj1yP3IuZ2V0SW1tZWRpYXRlQ2hpbGQoYSk6bnVsbCxhPXpoKGksYSkscz1zLmNvbmNhdCh0KHUsYyxuLGEpKSkscz1vP3MuY29uY2F0KGdsKG8sZSxpLHIpKTpzfX0oZSx0LnN5bmNQb2ludFRyZWVfLG51bGwsTWgodC5wZW5kaW5nV3JpdGVUcmVlXyxldSgpKSl9ZnVuY3Rpb24gRmwoaSx0LG8scyl7dmFyIGU9dC5nZXQoZXUoKSk7bnVsbD09byYmbnVsbCE9ZSYmKG89X2woZSxldSgpKSk7dmFyIGE9W107cmV0dXJuIHQuY2hpbGRyZW4uaW5vcmRlclRyYXZlcnNhbChmdW5jdGlvbih0LGUpe3ZhciBuPW8/by5nZXRJbW1lZGlhdGVDaGlsZCh0KTpudWxsLHI9emgocyx0KSx0PWkub3BlcmF0aW9uRm9yQ2hpbGQodCk7dCYmKGE9YS5jb25jYXQoRmwodCxlLG4scikpKX0pLGE9ZT9hLmNvbmNhdChnbChlLGkscyxvKSk6YX1mdW5jdGlvbiBVbChyLHQpe3ZhciBpPXQucXVlcnksbz1qbChyLGkpO3JldHVybntoYXNoRm46ZnVuY3Rpb24oKXtyZXR1cm4odC52aWV3Q2FjaGVfLnNlcnZlckNhY2hlLmdldE5vZGUoKXx8dWMuRU1QVFlfTk9ERSkuaGFzaCgpfSxvbkNvbXBsZXRlOmZ1bmN0aW9uKHQpe2lmKCJvayI9PT10KXJldHVybiBvP2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj1WbCh0LG4pO2lmKHIpe249Qmwocikscj1uLnBhdGgsbj1uLnF1ZXJ5SWQsZT1odShyLGUpO3JldHVybiBLbCh0LHIsbmV3IHNoKHJoKG4pLGUpKX1yZXR1cm5bXX0ocixpLnBhdGgsbyk6KGU9cixuPWkucGF0aCxNbChlLG5ldyBzaChuaCgpLG4pKSk7dmFyIGUsbix0PWFhKHQsaSk7cmV0dXJuIE9sKHIsaSxudWxsLHQpfX19ZnVuY3Rpb24gamwodCxlKXtlPXFsKGUpO3JldHVybiB0LnF1ZXJ5VG9UYWdNYXAuZ2V0KGUpfWZ1bmN0aW9uIHFsKHQpe3JldHVybiB0LnBhdGgudG9TdHJpbmcoKSsiJCIrdC5xdWVyeUlkZW50aWZpZXIoKX1mdW5jdGlvbiBWbCh0LGUpe3JldHVybiB0LnRhZ1RvUXVlcnlNYXAuZ2V0KGUpfWZ1bmN0aW9uIEJsKHQpe3ZhciBlPXQuaW5kZXhPZigiJCIpO3JldHVybiBzbygtMSE9PWUmJmU8dC5sZW5ndGgtMSwiQmFkIHF1ZXJ5S2V5LiIpLHtxdWVyeUlkOnQuc3Vic3RyKGUrMSkscGF0aDpuZXcgWmEodC5zdWJzdHIoMCxlKSl9fWZ1bmN0aW9uIEtsKHQsZSxuKXt2YXIgcj10LnN5bmNQb2ludFRyZWVfLmdldChlKTtyZXR1cm4gc28ociwiTWlzc2luZyBzeW5jIHBvaW50IGZvciBxdWVyeSB0YWcgdGhhdCB3ZSdyZSB0cmFja2luZyIpLGdsKHIsbixNaCh0LnBlbmRpbmdXcml0ZVRyZWVfLGUpLG51bGwpfWZ1bmN0aW9uIFdsKHQpe3JldHVybiB0LmdldFF1ZXJ5UGFyYW1zKCkubG9hZHNBbGxEYXRhKCkmJiF0LmdldFF1ZXJ5UGFyYW1zKCkuaXNEZWZhdWx0KCk/dC5nZXRSZWYoKTp0fXZhciBIbD0oR2wucHJvdG90eXBlLmdldEltbWVkaWF0ZUNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgR2wodGhpcy5ub2RlXy5nZXRJbW1lZGlhdGVDaGlsZCh0KSl9LEdsLnByb3RvdHlwZS5ub2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZV99LEdsKTtmdW5jdGlvbiBHbCh0KXt0aGlzLm5vZGVfPXR9dmFyIHpsPShRbC5wcm90b3R5cGUuZ2V0SW1tZWRpYXRlQ2hpbGQ9ZnVuY3Rpb24odCl7dD11dSh0aGlzLnBhdGhfLHQpO3JldHVybiBuZXcgUWwodGhpcy5zeW5jVHJlZV8sdCl9LFFsLnByb3RvdHlwZS5ub2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHhsKHRoaXMuc3luY1RyZWVfLHRoaXMucGF0aF8pfSxRbCk7ZnVuY3Rpb24gUWwodCxlKXt0aGlzLnN5bmNUcmVlXz10LHRoaXMucGF0aF89ZX12YXIgWWw9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9dHx8e30pLnRpbWVzdGFtcD10LnRpbWVzdGFtcHx8KG5ldyBEYXRlKS5nZXRUaW1lKCksdH0sSmw9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0JiYib2JqZWN0Ij09dHlwZW9mIHQ/KHNvKCIuc3YiaW4gdCwiVW5leHBlY3RlZCBsZWFmIG5vZGUgb3IgcHJpb3JpdHkgY29udGVudHMiKSwic3RyaW5nIj09dHlwZW9mIHRbIi5zdiJdPyRsKHRbIi5zdiJdLGUsbik6Im9iamVjdCI9PXR5cGVvZiB0WyIuc3YiXT9abCh0WyIuc3YiXSxlKTp2b2lkIHNvKCExLCJVbmV4cGVjdGVkIHNlcnZlciB2YWx1ZTogIitKU09OLnN0cmluZ2lmeSh0LG51bGwsMikpKTp0fSwkbD1mdW5jdGlvbih0LGUsbil7aWYoInRpbWVzdGFtcCI9PT10KXJldHVybiBuLnRpbWVzdGFtcDtzbyghMSwiVW5leHBlY3RlZCBzZXJ2ZXIgdmFsdWU6ICIrdCl9LFpsPWZ1bmN0aW9uKHQsZSxuKXt0Lmhhc093blByb3BlcnR5KCJpbmNyZW1lbnQiKXx8c28oITEsIlVuZXhwZWN0ZWQgc2VydmVyIHZhbHVlOiAiK0pTT04uc3RyaW5naWZ5KHQsbnVsbCwyKSk7dD10LmluY3JlbWVudDsibnVtYmVyIiE9dHlwZW9mIHQmJnNvKCExLCJVbmV4cGVjdGVkIGluY3JlbWVudCB2YWx1ZTogIit0KTtlPWUubm9kZSgpO2lmKHNvKG51bGwhPWUsIkV4cGVjdGVkIENoaWxkcmVuTm9kZS5FTVBUWV9OT0RFIGZvciBudWxscyIpLCFlLmlzTGVhZk5vZGUoKSlyZXR1cm4gdDtlPWUuZ2V0VmFsdWUoKTtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGU/dDplK3R9LHRmPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBuZihlLG5ldyB6bChuLHQpLHIpfSxlZj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5mKHQsbmV3IEhsKGUpLG4pfTtmdW5jdGlvbiBuZih0LHIsaSl7dmFyIGU9dC5nZXRQcmlvcml0eSgpLnZhbCgpLG49SmwoZSxyLmdldEltbWVkaWF0ZUNoaWxkKCIucHJpb3JpdHkiKSxpKTtpZih0LmlzTGVhZk5vZGUoKSl7dmFyIG89dCxlPUpsKG8uZ2V0VmFsdWUoKSxyLGkpO3JldHVybiBlIT09by5nZXRWYWx1ZSgpfHxuIT09by5nZXRQcmlvcml0eSgpLnZhbCgpP25ldyBRdShlLHBjKG4pKTp0fXZhciB0PXQscz10O3JldHVybiBuIT09dC5nZXRQcmlvcml0eSgpLnZhbCgpJiYocz1zLnVwZGF0ZVByaW9yaXR5KG5ldyBRdShuKSkpLHQuZm9yRWFjaENoaWxkKEp1LGZ1bmN0aW9uKHQsZSl7dmFyIG49bmYoZSxyLmdldEltbWVkaWF0ZUNoaWxkKHQpLGkpO24hPT1lJiYocz1zLnVwZGF0ZUltbWVkaWF0ZUNoaWxkKHQsbikpfSksc312YXIgcmY9ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PXQmJih0PSIiKSx2b2lkIDA9PT1lJiYoZT1udWxsKSx2b2lkIDA9PT1uJiYobj17Y2hpbGRyZW46e30sY2hpbGRDb3VudDowfSksdGhpcy5uYW1lPXQsdGhpcy5wYXJlbnQ9ZSx0aGlzLm5vZGU9bn07ZnVuY3Rpb24gb2YodCxlKXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIFphP2U6bmV3IFphKGUpLHI9dCxpPW51KG4pO251bGwhPT1pOyl2YXIgbz1EbyhyLm5vZGUuY2hpbGRyZW4saSl8fHtjaGlsZHJlbjp7fSxjaGlsZENvdW50OjB9LHI9bmV3IHJmKGkscixvKSxpPW51KG49aXUobikpO3JldHVybiByfWZ1bmN0aW9uIHNmKHQpe3JldHVybiB0Lm5vZGUudmFsdWV9ZnVuY3Rpb24gYWYodCxlKXt0Lm5vZGUudmFsdWU9ZSxsZih0KX1mdW5jdGlvbiB1Zih0KXtyZXR1cm4gMDx0Lm5vZGUuY2hpbGRDb3VudH1mdW5jdGlvbiBjZihuLHIpe2lhKG4ubm9kZS5jaGlsZHJlbixmdW5jdGlvbih0LGUpe3IobmV3IHJmKHQsbixlKSl9KX1mdW5jdGlvbiBoZih0KXtyZXR1cm4gbmV3IFphKG51bGw9PT10LnBhcmVudD90Lm5hbWU6aGYodC5wYXJlbnQpKyIvIit0Lm5hbWUpfWZ1bmN0aW9uIGxmKHQpe3ZhciBlLG4scixpO251bGwhPT10LnBhcmVudCYmKGU9dC5wYXJlbnQsbj10Lm5hbWUsaT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09c2YodCkmJiF1Zih0KX0ocj10KSx0PU9vKGUubm9kZS5jaGlsZHJlbixuKSxpJiZ0PyhkZWxldGUgZS5ub2RlLmNoaWxkcmVuW25dLGUubm9kZS5jaGlsZENvdW50LS0sbGYoZSkpOml8fHR8fChlLm5vZGUuY2hpbGRyZW5bbl09ci5ub2RlLGUubm9kZS5jaGlsZENvdW50KyssbGYoZSkpKX1mdW5jdGlvbiBmZih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJjAhPT10Lmxlbmd0aCYmIUlmLnRlc3QodCl9ZnVuY3Rpb24gcGYodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYwIT09dC5sZW5ndGgmJiFUZi50ZXN0KHQpfWZ1bmN0aW9uIGRmKHQpe3JldHVybiBudWxsPT09dHx8InN0cmluZyI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHQmJiFVcyh0KXx8dCYmIm9iamVjdCI9PXR5cGVvZiB0JiZPbyh0LCIuc3YiKX1mdW5jdGlvbiB2Zih0LGUsbixyLGkpe2kmJnZvaWQgMD09PW58fFNmKFdvKHQsZSxpKSxuLHIpfWZ1bmN0aW9uIGdmKHQsZSxuLHIsaSl7aWYoIWl8fHZvaWQgMCE9PW4pe3ZhciBvPVdvKHQsZSxpKTtpZighbnx8Im9iamVjdCIhPXR5cGVvZiBufHxBcnJheS5pc0FycmF5KG4pKXRocm93IG5ldyBFcnJvcihvKyIgbXVzdCBiZSBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgY2hpbGRyZW4gdG8gcmVwbGFjZS4iKTt2YXIgcz1bXTtpYShuLGZ1bmN0aW9uKHQsZSl7dD1uZXcgWmEodCk7aWYoU2YobyxlLHV1KHIsdCkpLCIucHJpb3JpdHkiPT09b3UodCkmJiFkZihlKSl0aHJvdyBuZXcgRXJyb3IobysiY29udGFpbnMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgJyIrdC50b1N0cmluZygpKyInLCB3aGljaCBtdXN0IGJlIGEgdmFsaWQgRmlyZWJhc2UgcHJpb3JpdHkgKGEgc3RyaW5nLCBmaW5pdGUgbnVtYmVyLCBzZXJ2ZXIgdmFsdWUsIG9yIG51bGwpLiIpO3MucHVzaCh0KX0pLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspZm9yKHZhciByLGk9c3Uocj1lW25dKSxvPTA7bzxpLmxlbmd0aDtvKyspaWYoKCIucHJpb3JpdHkiIT09aVtvXXx8byE9PWkubGVuZ3RoLTEpJiYhZmYoaVtvXSkpdGhyb3cgbmV3IEVycm9yKHQrImNvbnRhaW5zIGFuIGludmFsaWQga2V5ICgiK2lbb10rIikgaW4gcGF0aCAiK3IudG9TdHJpbmcoKSsnLiBLZXlzIG11c3QgYmUgbm9uLWVtcHR5IHN0cmluZ3MgYW5kIGNhblwndCBjb250YWluICIuIiwgIiMiLCAiJCIsICIvIiwgIlsiLCBvciAiXSInKTtlLnNvcnQobHUpO3ZhciBzPW51bGw7Zm9yKG49MDtuPGUubGVuZ3RoO24rKyl7aWYocj1lW25dLG51bGwhPT1zJiZwdShzLHIpKXRocm93IG5ldyBFcnJvcih0KyJjb250YWlucyBhIHBhdGggIitzLnRvU3RyaW5nKCkrIiB0aGF0IGlzIGFuY2VzdG9yIG9mIGFub3RoZXIgcGF0aCAiK3IudG9TdHJpbmcoKSk7cz1yfX0obyxzKX19ZnVuY3Rpb24geWYodCxlLG4scil7aWYoIXJ8fHZvaWQgMCE9PW4pe2lmKFVzKG4pKXRocm93IG5ldyBFcnJvcihXbyh0LGUscikrImlzICIrbi50b1N0cmluZygpKyIsIGJ1dCBtdXN0IGJlIGEgdmFsaWQgRmlyZWJhc2UgcHJpb3JpdHkgKGEgc3RyaW5nLCBmaW5pdGUgbnVtYmVyLCBzZXJ2ZXIgdmFsdWUsIG9yIG51bGwpLiIpO2lmKCFkZihuKSl0aHJvdyBuZXcgRXJyb3IoV28odCxlLHIpKyJtdXN0IGJlIGEgdmFsaWQgRmlyZWJhc2UgcHJpb3JpdHkgKGEgc3RyaW5nLCBmaW5pdGUgbnVtYmVyLCBzZXJ2ZXIgdmFsdWUsIG9yIG51bGwpLiIpfX1mdW5jdGlvbiBtZih0LGUsbixyKXtpZighcnx8dm9pZCAwIT09bilzd2l0Y2gobil7Y2FzZSJ2YWx1ZSI6Y2FzZSJjaGlsZF9hZGRlZCI6Y2FzZSJjaGlsZF9yZW1vdmVkIjpjYXNlImNoaWxkX2NoYW5nZWQiOmNhc2UiY2hpbGRfbW92ZWQiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFdvKHQsZSxyKSsnbXVzdCBiZSBhIHZhbGlkIGV2ZW50IHR5cGUgPSAidmFsdWUiLCAiY2hpbGRfYWRkZWQiLCAiY2hpbGRfcmVtb3ZlZCIsICJjaGlsZF9jaGFuZ2VkIiwgb3IgImNoaWxkX21vdmVkIi4nKX19ZnVuY3Rpb24gYmYodCxlLG4scil7aWYoIShyJiZ2b2lkIDA9PT1ufHxmZihuKSkpdGhyb3cgbmV3IEVycm9yKFdvKHQsZSxyKSsnd2FzIGFuIGludmFsaWQga2V5ID0gIicrbisnIi4gIEZpcmViYXNlIGtleXMgbXVzdCBiZSBub24tZW1wdHkgc3RyaW5ncyBhbmQgY2FuXCd0IGNvbnRhaW4gIi4iLCAiIyIsICIkIiwgIi8iLCAiWyIsIG9yICJdIikuJyl9ZnVuY3Rpb24gd2YodCxlLG4scil7aWYoIShyJiZ2b2lkIDA9PT1ufHxwZihuKSkpdGhyb3cgbmV3IEVycm9yKFdvKHQsZSxyKSsnd2FzIGFuIGludmFsaWQgcGF0aCA9ICInK24rJyIuIFBhdGhzIG11c3QgYmUgbm9uLWVtcHR5IHN0cmluZ3MgYW5kIGNhblwndCBjb250YWluICIuIiwgIiMiLCAiJCIsICJbIiwgb3IgIl0iJyl9ZnVuY3Rpb24gX2YodCxlKXtpZigiLmluZm8iPT09bnUoZSkpdGhyb3cgbmV3IEVycm9yKHQrIiBmYWlsZWQgPSBDYW4ndCBtb2RpZnkgZGF0YSB1bmRlciAvLmluZm8vIil9dmFyIElmPS9bXFtcXS4jJFwvXHUwMDAwLVx1MDAxRlx1MDA3Rl0vLFRmPS9bXFtcXS4jJFx1MDAwMC1cdTAwMUZcdTAwN0ZdLyxFZj0xMDQ4NTc2MCxTZj1mdW5jdGlvbihyLHQsZSl7dmFyIGk9ZSBpbnN0YW5jZW9mIFphP25ldyBkdShlLHIpOmU7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgRXJyb3IocisiY29udGFpbnMgdW5kZWZpbmVkICIrZ3UoaSkpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcihyKyJjb250YWlucyBhIGZ1bmN0aW9uICIrZ3UoaSkrIiB3aXRoIGNvbnRlbnRzID0gIit0LnRvU3RyaW5nKCkpO2lmKFVzKHQpKXRocm93IG5ldyBFcnJvcihyKyJjb250YWlucyAiK3QudG9TdHJpbmcoKSsiICIrZ3UoaSkpO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmdC5sZW5ndGg+RWYvMyYmem8odCk+RWYpdGhyb3cgbmV3IEVycm9yKHIrImNvbnRhaW5zIGEgc3RyaW5nIGdyZWF0ZXIgdGhhbiAiK0VmKyIgdXRmOCBieXRlcyAiK2d1KGkpKyIgKCciK3Quc3Vic3RyaW5nKDAsNTApKyIuLi4nKSIpO2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdCl7dmFyIG89ITEscz0hMTtpZihpYSh0LGZ1bmN0aW9uKHQsZSl7aWYoIi52YWx1ZSI9PT10KW89ITA7ZWxzZSBpZigiLnByaW9yaXR5IiE9PXQmJiIuc3YiIT09dCYmKHM9ITAsIWZmKHQpKSl0aHJvdyBuZXcgRXJyb3IocisiIGNvbnRhaW5zIGFuIGludmFsaWQga2V5ICgiK3QrIikgIitndShpKSsnLiAgS2V5cyBtdXN0IGJlIG5vbi1lbXB0eSBzdHJpbmdzIGFuZCBjYW5cJ3QgY29udGFpbiAiLiIsICIjIiwgIiQiLCAiLyIsICJbIiwgb3IgIl0iJyk7dmFyIG47bj10LDA8KHQ9aSkucGFydHNfLmxlbmd0aCYmKHQuYnl0ZUxlbmd0aF8rPTEpLHQucGFydHNfLnB1c2gobiksdC5ieXRlTGVuZ3RoXys9em8obiksdnUodCksU2YocixlLGkpLGU9KHQ9aSkucGFydHNfLnBvcCgpLHQuYnl0ZUxlbmd0aF8tPXpvKGUpLDA8dC5wYXJ0c18ubGVuZ3RoJiYtLXQuYnl0ZUxlbmd0aF99KSxvJiZzKXRocm93IG5ldyBFcnJvcihyKycgY29udGFpbnMgIi52YWx1ZSIgY2hpbGQgJytndShpKSsiIGluIGFkZGl0aW9uIHRvIGFjdHVhbCBjaGlsZHJlbi4iKX19LENmPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uLnBhdGgudG9TdHJpbmcoKTtpZigic3RyaW5nIiE9dHlwZW9mIG4ucmVwb0luZm8uaG9zdHx8MD09PW4ucmVwb0luZm8uaG9zdC5sZW5ndGh8fCFmZihuLnJlcG9JbmZvLm5hbWVzcGFjZSkmJiJsb2NhbGhvc3QiIT09bi5yZXBvSW5mby5ob3N0LnNwbGl0KCI6IilbMF18fDAhPT1yLmxlbmd0aCYmKHI9KHI9cikmJnIucmVwbGFjZSgvXlwvKlwuaW5mbyhcL3wkKS8sIi8iKSwhcGYocikpKXRocm93IG5ldyBFcnJvcihXbyh0LGUsITEpKydtdXN0IGJlIGEgdmFsaWQgZmlyZWJhc2UgVVJMIGFuZCB0aGUgcGF0aCBjYW5cJ3QgY29udGFpbiAiLiIsICIjIiwgIiQiLCAiWyIsIG9yICJdIi4nKX0sTmY9ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TGlzdHNfPVtdLHRoaXMucmVjdXJzaW9uRGVwdGhfPTB9O2Z1bmN0aW9uIEFmKHQsZSl7Zm9yKHZhciBuPW51bGwscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdLG89aS5nZXRQYXRoKCk7bnVsbD09PW58fGZ1KG8sbi5wYXRoKXx8KHQuZXZlbnRMaXN0c18ucHVzaChuKSxuPW51bGwpLChuPW51bGw9PT1uP3tldmVudHM6W10scGF0aDpvfTpuKS5ldmVudHMucHVzaChpKX1uJiZ0LmV2ZW50TGlzdHNfLnB1c2gobil9ZnVuY3Rpb24ga2YodCxlLG4pe0FmKHQsbiksUGYodCxmdW5jdGlvbih0KXtyZXR1cm4gZnUodCxlKX0pfWZ1bmN0aW9uIFJmKHQsZSxuKXtBZih0LG4pLFBmKHQsZnVuY3Rpb24odCl7cmV0dXJuIHB1KHQsZSl8fHB1KGUsdCl9KX1mdW5jdGlvbiBQZih0LGUpe3QucmVjdXJzaW9uRGVwdGhfKys7Zm9yKHZhciBuPSEwLHI9MDtyPHQuZXZlbnRMaXN0c18ubGVuZ3RoO3IrKyl7dmFyIGk9dC5ldmVudExpc3RzX1tyXTtpJiYoZShpLnBhdGgpPyhmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQuZXZlbnRzLmxlbmd0aDtlKyspe3ZhciBuLHI9dC5ldmVudHNbZV07bnVsbCE9PXImJih0LmV2ZW50c1tlXT1udWxsLG49ci5nZXRFdmVudFJ1bm5lcigpLFFzJiZYcygiZXZlbnQ6ICIrci50b1N0cmluZygpKSxmYShuKSl9fSh0LmV2ZW50TGlzdHNfW3JdKSx0LmV2ZW50TGlzdHNfW3JdPW51bGwpOm49ITEpfW4mJih0LmV2ZW50TGlzdHNfPVtdKSx0LnJlY3Vyc2lvbkRlcHRoXy0tfXZhciBPZj0icmVwb19pbnRlcnJ1cHQiLERmPTI1LHhmPShMZi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZXBvSW5mb18uc2VjdXJlPyJodHRwczovLyI6Imh0dHA6Ly8iKSt0aGlzLnJlcG9JbmZvXy5ob3N0fSxMZik7ZnVuY3Rpb24gTGYodCxlLG4scil7dGhpcy5yZXBvSW5mb189dCx0aGlzLmZvcmNlUmVzdENsaWVudF89ZSx0aGlzLmFwcD1uLHRoaXMuYXV0aFRva2VuUHJvdmlkZXJfPXIsdGhpcy5kYXRhVXBkYXRlQ291bnQ9MCx0aGlzLnN0YXRzTGlzdGVuZXJfPW51bGwsdGhpcy5ldmVudFF1ZXVlXz1uZXcgTmYsdGhpcy5uZXh0V3JpdGVJZF89MSx0aGlzLmludGVyY2VwdFNlcnZlckRhdGFDYWxsYmFja189bnVsbCx0aGlzLm9uRGlzY29ubmVjdF89emMoKSx0aGlzLnRyYW5zYWN0aW9uUXVldWVUcmVlXz1uZXcgcmYsdGhpcy5wZXJzaXN0ZW50Q29ubmVjdGlvbl89bnVsbCx0aGlzLmtleT10aGlzLnJlcG9JbmZvXy50b1VSTFN0cmluZygpfWZ1bmN0aW9uIE1mKHMpe2lmKHMuc3RhdHNfPU5hKHMucmVwb0luZm9fKSxzLmZvcmNlUmVzdENsaWVudF98fDA8PSgib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93Lm5hdmlnYXRvciYmd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnR8fCIiKS5zZWFyY2goL2dvb2dsZWJvdHxnb29nbGUgd2VibWFzdGVyIHRvb2xzfGJpbmdib3R8eWFob28hIHNsdXJwfGJhaWR1c3BpZGVyfHlhbmRleGJvdHxkdWNrZHVja2JvdC9pKSlzLnNlcnZlcl89bmV3IEtjKHMucmVwb0luZm9fLGZ1bmN0aW9uKHQsZSxuLHIpe2pmKHMsdCxlLG4scil9LHMuYXV0aFRva2VuUHJvdmlkZXJfKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHFmKHMsITApfSwwKTtlbHNle3ZhciB0PXMuYXBwLm9wdGlvbnMuZGF0YWJhc2VBdXRoVmFyaWFibGVPdmVycmlkZTtpZihudWxsIT10KXtpZigib2JqZWN0IiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKCJPbmx5IG9iamVjdHMgYXJlIHN1cHBvcnRlZCBmb3Igb3B0aW9uIGRhdGFiYXNlQXV0aFZhcmlhYmxlT3ZlcnJpZGUiKTt0cnl7Um8odCl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGhPdmVycmlkZSBwcm92aWRlZDogIit0KX19cy5wZXJzaXN0ZW50Q29ubmVjdGlvbl89bmV3IFR1KHMucmVwb0luZm9fLHMuYXBwLm9wdGlvbnMuYXBwSWQsZnVuY3Rpb24odCxlLG4scil7amYocyx0LGUsbixyKX0sZnVuY3Rpb24odCl7cWYocyx0KX0sZnVuY3Rpb24odCl7dmFyIG47bj1zLGlhKHQsZnVuY3Rpb24odCxlKXtWZihuLHQsZSl9KX0scy5hdXRoVG9rZW5Qcm92aWRlcl8sdCkscy5zZXJ2ZXJfPXMucGVyc2lzdGVudENvbm5lY3Rpb25ffXZhciBlLG47cy5hdXRoVG9rZW5Qcm92aWRlcl8uYWRkVG9rZW5DaGFuZ2VMaXN0ZW5lcihmdW5jdGlvbih0KXtzLnNlcnZlcl8ucmVmcmVzaEF1dGhUb2tlbih0KX0pLHMuc3RhdHNSZXBvcnRlcl89KGU9cy5yZXBvSW5mb18sbj1mdW5jdGlvbigpe3JldHVybiBuZXcgWmMocy5zdGF0c18scy5zZXJ2ZXJfKX0sZT1lLnRvU3RyaW5nKCksQ2FbZV18fChDYVtlXT1uKCkpLENhW2VdKSxzLmluZm9EYXRhXz1uZXcgSGMscy5pbmZvU3luY1RyZWVfPW5ldyBObCh7c3RhcnRMaXN0ZW5pbmc6ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9W10sbz1zLmluZm9EYXRhXy5nZXROb2RlKHQucGF0aCk7cmV0dXJuIG8uaXNFbXB0eSgpfHwoaT1QbChzLmluZm9TeW5jVHJlZV8sdC5wYXRoLG8pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyKCJvayIpfSwwKSksaX0sc3RvcExpc3RlbmluZzpmdW5jdGlvbigpe319KSxWZihzLCJjb25uZWN0ZWQiLCExKSxzLnNlcnZlclN5bmNUcmVlXz1uZXcgTmwoe3N0YXJ0TGlzdGVuaW5nOmZ1bmN0aW9uKG4sdCxlLHIpe3JldHVybiBzLnNlcnZlcl8ubGlzdGVuKG4sZSx0LGZ1bmN0aW9uKHQsZSl7ZT1yKHQsZSk7UmYocy5ldmVudFF1ZXVlXyxuLnBhdGgsZSl9KSxbXX0sc3RvcExpc3RlbmluZzpmdW5jdGlvbih0LGUpe3Muc2VydmVyXy51bmxpc3Rlbih0LGUpfX0pfWZ1bmN0aW9uIEZmKHQpe3Q9dC5pbmZvRGF0YV8uZ2V0Tm9kZShuZXcgWmEoIi5pbmZvL3NlcnZlclRpbWVPZmZzZXQiKSkudmFsKCl8fDA7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCkrdH1mdW5jdGlvbiBVZih0KXtyZXR1cm4gWWwoe3RpbWVzdGFtcDpGZih0KX0pfWZ1bmN0aW9uIGpmKHQsZSxuLHIsaSl7dC5kYXRhVXBkYXRlQ291bnQrKzt2YXIgbz1uZXcgWmEoZSk7bj10LmludGVyY2VwdFNlcnZlckRhdGFDYWxsYmFja18/dC5pbnRlcmNlcHRTZXJ2ZXJEYXRhQ2FsbGJhY2tfKGUsbik6bjt2YXIgcyxhLHUsYz1bXSxoPW87MDwoYz1pP3I/KHM9TG8obixmdW5jdGlvbih0KXtyZXR1cm4gcGModCl9KSxmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1WbCh0LHIpO2lmKGkpe3I9QmwoaSksaT1yLnBhdGgscj1yLnF1ZXJ5SWQsZT1odShpLGUpLG49VGguZnJvbU9iamVjdChuKTtyZXR1cm4gS2wodCxpLG5ldyBoaChyaChyKSxlLG4pKX1yZXR1cm5bXX0odC5zZXJ2ZXJTeW5jVHJlZV8sbyxzLGkpKTooZT1wYyhuKSxzPXQuc2VydmVyU3luY1RyZWVfLGE9byx1PWUsbnVsbD09KGk9VmwocyxlPWkpKT9bXTooZT1CbChpKSxpPWUucGF0aCxlPWUucXVlcnlJZCxhPWh1KGksYSksS2wocyxpLG5ldyB1aChyaChlKSxhLHUpKSkpOnI/KGE9TG8obixmdW5jdGlvbih0KXtyZXR1cm4gcGModCl9KSx1PXQuc2VydmVyU3luY1RyZWVfLHI9byxhPWEsYT1UaC5mcm9tT2JqZWN0KGEpLE1sKHUsbmV3IGhoKG5oKCkscixhKSkpOihuPXBjKG4pLFBsKHQuc2VydmVyU3luY1RyZWVfLG8sbikpKS5sZW5ndGgmJihoPSRmKHQsbykpLFJmKHQuZXZlbnRRdWV1ZV8saCxjKX1mdW5jdGlvbiBxZih0LGUpe1ZmKHQsImNvbm5lY3RlZCIsZSksITE9PT1lJiZmdW5jdGlvbihuKXtRZihuLCJvbkRpc2Nvbm5lY3RFdmVudHMiKTt2YXIgcj1VZihuKSxpPXpjKCk7WWMobi5vbkRpc2Nvbm5lY3RfLGV1KCksZnVuY3Rpb24odCxlKXtlPXRmKHQsZSxuLnNlcnZlclN5bmNUcmVlXyxyKTtRYyhpLHQsZSl9KTt2YXIgbz1bXTtZYyhpLGV1KCksZnVuY3Rpb24odCxlKXtvPW8uY29uY2F0KFBsKG4uc2VydmVyU3luY1RyZWVfLHQsZSkpO3Q9bnAobix0KTskZihuLHQpfSksbi5vbkRpc2Nvbm5lY3RfPXpjKCksUmYobi5ldmVudFF1ZXVlXyxldSgpLG8pfSh0KX1mdW5jdGlvbiBWZih0LGUsbil7ZT1uZXcgWmEoIi8uaW5mby8iK2UpLG49cGMobik7dC5pbmZvRGF0YV8udXBkYXRlU25hcHNob3QoZSxuKTtuPVBsKHQuaW5mb1N5bmNUcmVlXyxlLG4pO1JmKHQuZXZlbnRRdWV1ZV8sZSxuKX1mdW5jdGlvbiBCZih0KXtyZXR1cm4gdC5uZXh0V3JpdGVJZF8rK31mdW5jdGlvbiBLZihyLGksdCxlLG8pe1FmKHIsInNldCIse3BhdGg6aS50b1N0cmluZygpLHZhbHVlOnQscHJpb3JpdHk6ZX0pO3ZhciBuPVVmKHIpLHQ9cGModCxlKSxlPXhsKHIuc2VydmVyU3luY1RyZWVfLGkpLG49ZWYodCxlLG4pLHM9QmYociksbj1BbChyLnNlcnZlclN5bmNUcmVlXyxpLG4scywhMCk7QWYoci5ldmVudFF1ZXVlXyxuKSxyLnNlcnZlcl8ucHV0KGkudG9TdHJpbmcoKSx0LnZhbCghMCksZnVuY3Rpb24odCxlKXt2YXIgbj0ib2siPT09dDtufHxacygic2V0IGF0ICIraSsiIGZhaWxlZDogIit0KTtuPVJsKHIuc2VydmVyU3luY1RyZWVfLHMsIW4pO1JmKHIuZXZlbnRRdWV1ZV8saSxuKSxZZigwLG8sdCxlKX0pO3Q9bnAocixpKTskZihyLHQpLFJmKHIuZXZlbnRRdWV1ZV8sdCxbXSl9ZnVuY3Rpb24gV2YobixyLGkpe24uc2VydmVyXy5vbkRpc2Nvbm5lY3RDYW5jZWwoci50b1N0cmluZygpLGZ1bmN0aW9uKHQsZSl7Im9rIj09PXQmJiFmdW5jdGlvbiB0KG4sZSl7aWYoY3UoZSkpcmV0dXJuIG4udmFsdWU9bnVsbCxuLmNoaWxkcmVuLmNsZWFyKCksITA7aWYobnVsbCE9PW4udmFsdWUpe2lmKG4udmFsdWUuaXNMZWFmTm9kZSgpKXJldHVybiExO3ZhciByPW4udmFsdWU7cmV0dXJuIG4udmFsdWU9bnVsbCxyLmZvckVhY2hDaGlsZChKdSxmdW5jdGlvbih0LGUpe1FjKG4sbmV3IFphKHQpLGUpfSksdChuLGUpfWlmKDA8bi5jaGlsZHJlbi5zaXplKXJldHVybiByPW51KGUpLGU9aXUoZSksbi5jaGlsZHJlbi5oYXMocikmJnQobi5jaGlsZHJlbi5nZXQociksZSkmJm4uY2hpbGRyZW4uZGVsZXRlKHIpLDA9PT1uLmNoaWxkcmVuLnNpemU7cmV0dXJuITB9KG4ub25EaXNjb25uZWN0XyxyKSxZZigwLGksdCxlKX0pfWZ1bmN0aW9uIEhmKG4scix0LGkpe3ZhciBvPXBjKHQpO24uc2VydmVyXy5vbkRpc2Nvbm5lY3RQdXQoci50b1N0cmluZygpLG8udmFsKCEwKSxmdW5jdGlvbih0LGUpeyJvayI9PT10JiZRYyhuLm9uRGlzY29ubmVjdF8scixvKSxZZigwLGksdCxlKX0pfWZ1bmN0aW9uIEdmKHQsZSxuKXtuPSIuaW5mbyI9PT1udShlLnBhdGgpP0RsKHQuaW5mb1N5bmNUcmVlXyxlLG4pOkRsKHQuc2VydmVyU3luY1RyZWVfLGUsbik7a2YodC5ldmVudFF1ZXVlXyxlLnBhdGgsbil9ZnVuY3Rpb24gemYodCl7dC5wZXJzaXN0ZW50Q29ubmVjdGlvbl8mJnQucGVyc2lzdGVudENvbm5lY3Rpb25fLmludGVycnVwdChPZil9ZnVuY3Rpb24gUWYodCl7Zm9yKHZhciBlPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKWVbbi0xXT1hcmd1bWVudHNbbl07dmFyIHI9IiI7dC5wZXJzaXN0ZW50Q29ubmVjdGlvbl8mJihyPXQucGVyc2lzdGVudENvbm5lY3Rpb25fLmlkKyI6IiksWHMuYXBwbHkodm9pZCAwLG5vKFtyXSxlbyhlKSkpfWZ1bmN0aW9uIFlmKHQsbixyLGkpe24mJmZhKGZ1bmN0aW9uKCl7dmFyIHQsZTsib2siPT09cj9uKG51bGwpOihlPXQ9KHJ8fCJlcnJvciIpLnRvVXBwZXJDYXNlKCksaSYmKGUrPSI6ICIraSksKGU9bmV3IEVycm9yKGUpKS5jb2RlPXQsbihlKSl9KX1mdW5jdGlvbiBYZih0LGUsbil7cmV0dXJuIHhsKHQuc2VydmVyU3luY1RyZWVfLGUsbil8fHVjLkVNUFRZX05PREV9ZnVuY3Rpb24gSmYoZSx0KXt2YXIgbjsodD12b2lkIDA9PT10P2UudHJhbnNhY3Rpb25RdWV1ZVRyZWVfOnQpfHxlcChlLHQpLHNmKHQpPyhuPXRwKGUsdCksc28oMDxuLmxlbmd0aCwiU2VuZGluZyB6ZXJvIGxlbmd0aCB0cmFuc2FjdGlvbiBxdWV1ZSIpLG4uZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LnN0YXR1c30pJiZmdW5jdGlvbihpLG8scyl7Zm9yKHZhciB0PXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmN1cnJlbnRXcml0ZUlkfSksZT1YZihpLG8sdCksbj1lLHQ9ZS5oYXNoKCkscj0wO3I8cy5sZW5ndGg7cisrKXt2YXIgYT1zW3JdO3NvKDA9PT1hLnN0YXR1cywidHJ5VG9TZW5kVHJhbnNhY3Rpb25RdWV1ZV86IGl0ZW1zIGluIHF1ZXVlIHNob3VsZCBhbGwgYmUgcnVuLiIpLGEuc3RhdHVzPTEsYS5yZXRyeUNvdW50Kys7dmFyIHU9aHUobyxhLnBhdGgpO249bi51cGRhdGVDaGlsZCh1LGEuY3VycmVudE91dHB1dFNuYXBzaG90UmF3KX12YXIgZT1uLnZhbCghMCksYz1vO2kuc2VydmVyXy5wdXQoYy50b1N0cmluZygpLGUsZnVuY3Rpb24odCl7UWYoaSwidHJhbnNhY3Rpb24gcHV0IHJlc3BvbnNlIix7cGF0aDpjLnRvU3RyaW5nKCksc3RhdHVzOnR9KTt2YXIgZT1bXTtpZigib2siPT09dCl7Zm9yKHZhciBuPVtdLHI9MDtyPHMubGVuZ3RoO3IrKykhZnVuY3Rpb24odCl7c1t0XS5zdGF0dXM9MixlPWUuY29uY2F0KFJsKGkuc2VydmVyU3luY1RyZWVfLHNbdF0uY3VycmVudFdyaXRlSWQpKSxzW3RdLm9uQ29tcGxldGUmJm4ucHVzaChmdW5jdGlvbigpe3JldHVybiBzW3RdLm9uQ29tcGxldGUobnVsbCwhMCxzW3RdLmN1cnJlbnRPdXRwdXRTbmFwc2hvdFJlc29sdmVkKX0pLHNbdF0udW53YXRjaGVyKCl9KHIpO2VwKGksb2YoaS50cmFuc2FjdGlvblF1ZXVlVHJlZV8sbykpLEpmKGksaS50cmFuc2FjdGlvblF1ZXVlVHJlZV8pLFJmKGkuZXZlbnRRdWV1ZV8sbyxlKTtmb3Iocj0wO3I8bi5sZW5ndGg7cisrKWZhKG5bcl0pfWVsc2V7aWYoImRhdGFzdGFsZSI9PT10KWZvcihyPTA7cjxzLmxlbmd0aDtyKyspMz09PXNbcl0uc3RhdHVzP3Nbcl0uc3RhdHVzPTQ6c1tyXS5zdGF0dXM9MDtlbHNle1pzKCJ0cmFuc2FjdGlvbiBhdCAiK2MudG9TdHJpbmcoKSsiIGZhaWxlZDogIit0KTtmb3Iocj0wO3I8cy5sZW5ndGg7cisrKXNbcl0uc3RhdHVzPTQsc1tyXS5hYm9ydFJlYXNvbj10fSRmKGksbyl9fSx0KX0oZSxoZih0KSxuKSk6dWYodCkmJmNmKHQsZnVuY3Rpb24odCl7SmYoZSx0KX0pfWZ1bmN0aW9uICRmKHQsZSl7dmFyIG49WmYodCxlKSxlPWhmKG4pO3JldHVybiBmdW5jdGlvbih1LGMsaCl7aWYoMD09PWMubGVuZ3RoKXJldHVybjtmb3IodmFyIGw9W10sZj1bXSxwPWMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5zdGF0dXN9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuY3VycmVudFdyaXRlSWR9KSx0PTA7dDxjLmxlbmd0aDt0KyspIWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLG89Y1t0XSxzPWh1KGgsby5wYXRoKSxhPSExO3NvKG51bGwhPT1zLCJyZXJ1blRyYW5zYWN0aW9uc1VuZGVyTm9kZV86IHJlbGF0aXZlUGF0aCBzaG91bGQgbm90IGJlIG51bGwuIiksND09PW8uc3RhdHVzPyhhPSEwLGU9by5hYm9ydFJlYXNvbixmPWYuY29uY2F0KFJsKHUuc2VydmVyU3luY1RyZWVfLG8uY3VycmVudFdyaXRlSWQsITApKSk6MD09PW8uc3RhdHVzJiYoZj1vLnJldHJ5Q291bnQ+PURmPyhhPSEwLGU9Im1heHJldHJ5IixmLmNvbmNhdChSbCh1LnNlcnZlclN5bmNUcmVlXyxvLmN1cnJlbnRXcml0ZUlkLCEwKSkpOihuPVhmKHUsby5wYXRoLHApLG8uY3VycmVudElucHV0U25hcHNob3Q9bix2b2lkIDAhPT0oaT1jW3RdLnVwZGF0ZShuLnZhbCgpKSk/KFNmKCJ0cmFuc2FjdGlvbiBmYWlsZWQ6IERhdGEgcmV0dXJuZWQgIixpLG8ucGF0aCkscj1wYyhpKSwib2JqZWN0Ij09dHlwZW9mIGkmJm51bGwhPWkmJk9vKGksIi5wcmlvcml0eSIpfHwocj1yLnVwZGF0ZVByaW9yaXR5KG4uZ2V0UHJpb3JpdHkoKSkpLHM9by5jdXJyZW50V3JpdGVJZCxpPVVmKHUpLGk9ZWYocixuLGkpLG8uY3VycmVudE91dHB1dFNuYXBzaG90UmF3PXIsby5jdXJyZW50T3V0cHV0U25hcHNob3RSZXNvbHZlZD1pLG8uY3VycmVudFdyaXRlSWQ9QmYodSkscC5zcGxpY2UocC5pbmRleE9mKHMpLDEpLChmPWYuY29uY2F0KEFsKHUuc2VydmVyU3luY1RyZWVfLG8ucGF0aCxpLG8uY3VycmVudFdyaXRlSWQsby5hcHBseUxvY2FsbHkpKSkuY29uY2F0KFJsKHUuc2VydmVyU3luY1RyZWVfLHMsITApKSk6KGE9ITAsZT0ibm9kYXRhIixmLmNvbmNhdChSbCh1LnNlcnZlclN5bmNUcmVlXyxvLmN1cnJlbnRXcml0ZUlkLCEwKSkpKSksUmYodS5ldmVudFF1ZXVlXyxoLGYpLGY9W10sYSYmKGNbdF0uc3RhdHVzPTIsYT1jW3RdLnVud2F0Y2hlcixzZXRUaW1lb3V0KGEsTWF0aC5mbG9vcigwKSksY1t0XS5vbkNvbXBsZXRlJiYoIm5vZGF0YSI9PT1lP2wucHVzaChmdW5jdGlvbigpe3JldHVybiBjW3RdLm9uQ29tcGxldGUobnVsbCwhMSxjW3RdLmN1cnJlbnRJbnB1dFNuYXBzaG90KX0pOmwucHVzaChmdW5jdGlvbigpe3JldHVybiBjW3RdLm9uQ29tcGxldGUobmV3IEVycm9yKGUpLCExLG51bGwpfSkpKX0odCk7ZXAodSx1LnRyYW5zYWN0aW9uUXVldWVUcmVlXyk7Zm9yKHQ9MDt0PGwubGVuZ3RoO3QrKylmYShsW3RdKTtKZih1LHUudHJhbnNhY3Rpb25RdWV1ZVRyZWVfKX0odCx0cCh0LG4pLGUpLGV9ZnVuY3Rpb24gWmYodCxlKXtmb3IodmFyIG49dC50cmFuc2FjdGlvblF1ZXVlVHJlZV8scj1udShlKTtudWxsIT09ciYmdm9pZCAwPT09c2Yobik7KW49b2YobixyKSxyPW51KGU9aXUoZSkpO3JldHVybiBufWZ1bmN0aW9uIHRwKHQsZSl7dmFyIG49W107cmV0dXJuIGZ1bmN0aW9uIGUobix0LHIpe3ZhciBpPXNmKHQpO2lmKGkpZm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspci5wdXNoKGlbb10pO2NmKHQsZnVuY3Rpb24odCl7ZShuLHQscil9KX0odCxlLG4pLG4uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm9yZGVyLWUub3JkZXJ9KSxufWZ1bmN0aW9uIGVwKGUsdCl7dmFyIG49c2YodCk7aWYobil7Zm9yKHZhciByPTAsaT0wO2k8bi5sZW5ndGg7aSsrKTIhPT1uW2ldLnN0YXR1cyYmKG5bcl09bltpXSxyKyspO24ubGVuZ3RoPXIsYWYodCwwPG4ubGVuZ3RoP246dm9pZCAwKX1jZih0LGZ1bmN0aW9uKHQpe2VwKGUsdCl9KX1mdW5jdGlvbiBucChlLHQpe3ZhciBuPWhmKFpmKGUsdCkpLHQ9b2YoZS50cmFuc2FjdGlvblF1ZXVlVHJlZV8sdCk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9bj90OnQucGFyZW50O251bGwhPT1yOyl7aWYoZShyKSlyZXR1cm47cj1yLnBhcmVudH19KHQsZnVuY3Rpb24odCl7cnAoZSx0KX0pLHJwKGUsdCksZnVuY3Rpb24gZSh0LG4scixpKXtyJiYhaSYmbih0KSxjZih0LGZ1bmN0aW9uKHQpe2UodCxuLCEwLGkpfSksciYmaSYmbih0KX0odCxmdW5jdGlvbih0KXtycChlLHQpfSksbn1mdW5jdGlvbiBycCh0LGUpe3ZhciBuPXNmKGUpO2lmKG4pe2Zvcih2YXIgcj1bXSxpPVtdLG89LTEscz0wO3M8bi5sZW5ndGg7cysrKTM9PT1uW3NdLnN0YXR1c3x8KDE9PT1uW3NdLnN0YXR1cz8oc28obz09PXMtMSwiQWxsIFNFTlQgaXRlbXMgc2hvdWxkIGJlIGF0IGJlZ2lubmluZyBvZiBxdWV1ZS4iKSxuW289c10uc3RhdHVzPTMsbltzXS5hYm9ydFJlYXNvbj0ic2V0Iik6KHNvKDA9PT1uW3NdLnN0YXR1cywiVW5leHBlY3RlZCB0cmFuc2FjdGlvbiBzdGF0dXMgaW4gYWJvcnQiKSxuW3NdLnVud2F0Y2hlcigpLGk9aS5jb25jYXQoUmwodC5zZXJ2ZXJTeW5jVHJlZV8sbltzXS5jdXJyZW50V3JpdGVJZCwhMCkpLG5bc10ub25Db21wbGV0ZSYmci5wdXNoKG5bc10ub25Db21wbGV0ZS5iaW5kKG51bGwsbmV3IEVycm9yKCJzZXQiKSwhMSxudWxsKSkpKTstMT09PW8/YWYoZSx2b2lkIDApOm4ubGVuZ3RoPW8rMSxSZih0LmV2ZW50UXVldWVfLGhmKGUpLGkpO2ZvcihzPTA7czxyLmxlbmd0aDtzKyspZmEocltzXSl9fXZhciBpcD1mdW5jdGlvbih0LGUpe3ZhciBuPW9wKHQpLHI9bi5uYW1lc3BhY2U7ImZpcmViYXNlLmNvbSI9PT1uLmRvbWFpbiYmJHMobi5ob3N0KyIgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gUGxlYXNlIHVzZSA8WU9VUiBGSVJFQkFTRT4uZmlyZWJhc2Vpby5jb20gaW5zdGVhZCIpLHImJiJ1bmRlZmluZWQiIT09cnx8ImxvY2FsaG9zdCI9PT1uLmRvbWFpbnx8JHMoIkNhbm5vdCBwYXJzZSBGaXJlYmFzZSB1cmwuIFBsZWFzZSB1c2UgaHR0cHM6Ly88WU9VUiBGSVJFQkFTRT4uZmlyZWJhc2Vpby5jb20iKSxuLnNlY3VyZXx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5sb2NhdGlvbiYmd2luZG93LmxvY2F0aW9uLnByb3RvY29sJiYtMSE9PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbC5pbmRleE9mKCJodHRwczoiKSYmWnMoIkluc2VjdXJlIEZpcmViYXNlIGFjY2VzcyBmcm9tIGEgc2VjdXJlIHBhZ2UuIFBsZWFzZSB1c2UgaHR0cHMgaW4gY2FsbHMgdG8gbmV3IEZpcmViYXNlKCkuIik7dD0id3MiPT09bi5zY2hlbWV8fCJ3c3MiPT09bi5zY2hlbWU7cmV0dXJue3JlcG9JbmZvOm5ldyB3YShuLmhvc3Qsbi5zZWN1cmUscixlLHQsIiIsciE9PW4uc3ViZG9tYWluKSxwYXRoOm5ldyBaYShuLnBhdGhTdHJpbmcpfX0sb3A9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGk9IiIsbz0iIixzPSIiLGE9IiIsdT0iIixjPSEwLGg9Imh0dHBzIixsPTQ0MztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJigwPD0ocj10LmluZGV4T2YoIi8vIikpJiYoaD10LnN1YnN0cmluZygwLHItMSksdD10LnN1YnN0cmluZyhyKzIpKSwtMT09PShlPXQuaW5kZXhPZigiLyIpKSYmKGU9dC5sZW5ndGgpLC0xPT09KG49dC5pbmRleE9mKCI/IikpJiYobj10Lmxlbmd0aCksaT10LnN1YnN0cmluZygwLE1hdGgubWluKGUsbikpLGU8biYmKGE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLG49dC5zcGxpdCgiLyIpLHI9MDtyPG4ubGVuZ3RoO3IrKylpZigwPG5bcl0ubGVuZ3RoKXt2YXIgaT1uW3JdO3RyeXtpPWRlY29kZVVSSUNvbXBvbmVudChpLnJlcGxhY2UoL1wrL2csIiAiKSl9Y2F0Y2godCl7fWUrPSIvIitpfXJldHVybiBlfSh0LnN1YnN0cmluZyhlLG4pKSksbj1mdW5jdGlvbih0KXt2YXIgZSxuLHI9e307Ij8iPT09dC5jaGFyQXQoMCkmJih0PXQuc3Vic3RyaW5nKDEpKTt0cnl7Zm9yKHZhciBpPXRvKHQuc3BsaXQoIiYiKSksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBzLGE9by52YWx1ZTswIT09YS5sZW5ndGgmJigyPT09KHM9YS5zcGxpdCgiPSIpKS5sZW5ndGg/cltkZWNvZGVVUklDb21wb25lbnQoc1swXSldPWRlY29kZVVSSUNvbXBvbmVudChzWzFdKTpacygiSW52YWxpZCBxdWVyeSBzZWdtZW50ICciK2ErIicgaW4gcXVlcnkgJyIrdCsiJyIpKX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiByfSh0LnN1YnN0cmluZyhNYXRoLm1pbih0Lmxlbmd0aCxuKSkpLDA8PShyPWkuaW5kZXhPZigiOiIpKT8oYz0iaHR0cHMiPT09aHx8IndzcyI9PT1oLGw9cGFyc2VJbnQoaS5zdWJzdHJpbmcocisxKSwxMCkpOnI9aS5sZW5ndGgsImxvY2FsaG9zdCI9PT0ocj1pLnNsaWNlKDAscikpLnRvTG93ZXJDYXNlKCk/bz0ibG9jYWxob3N0IjpyLnNwbGl0KCIuIikubGVuZ3RoPD0yP289cjoocj1pLmluZGV4T2YoIi4iKSxzPWkuc3Vic3RyaW5nKDAscikudG9Mb3dlckNhc2UoKSxvPWkuc3Vic3RyaW5nKHIrMSksdT1zKSwibnMiaW4gbiYmKHU9bi5ucykpLHtob3N0OmkscG9ydDpsLGRvbWFpbjpvLHN1YmRvbWFpbjpzLHNlY3VyZTpjLHNjaGVtZTpoLHBhdGhTdHJpbmc6YSxuYW1lc3BhY2U6dX19LHNwPShhcC5wcm90b3R5cGUudmFsPWZ1bmN0aW9uKCl7cmV0dXJuIEtvKCJEYXRhU25hcHNob3QudmFsIiwwLDAsYXJndW1lbnRzLmxlbmd0aCksdGhpcy5ub2RlXy52YWwoKX0sYXAucHJvdG90eXBlLmV4cG9ydFZhbD1mdW5jdGlvbigpe3JldHVybiBLbygiRGF0YVNuYXBzaG90LmV4cG9ydFZhbCIsMCwwLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMubm9kZV8udmFsKCEwKX0sYXAucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBLbygiRGF0YVNuYXBzaG90LnRvSlNPTiIsMCwxLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMuZXhwb3J0VmFsKCl9LGFwLnByb3RvdHlwZS5leGlzdHM9ZnVuY3Rpb24oKXtyZXR1cm4gS28oIkRhdGFTbmFwc2hvdC5leGlzdHMiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSwhdGhpcy5ub2RlXy5pc0VtcHR5KCl9LGFwLnByb3RvdHlwZS5jaGlsZD1mdW5jdGlvbih0KXtLbygiRGF0YVNuYXBzaG90LmNoaWxkIiwwLDEsYXJndW1lbnRzLmxlbmd0aCksdD1TdHJpbmcodCksd2YoIkRhdGFTbmFwc2hvdC5jaGlsZCIsMSx0LCExKTt2YXIgZT1uZXcgWmEodCksdD10aGlzLnJlZl8uY2hpbGQoZSk7cmV0dXJuIG5ldyBhcCh0aGlzLm5vZGVfLmdldENoaWxkKGUpLHQsSnUpfSxhcC5wcm90b3R5cGUuaGFzQ2hpbGQ9ZnVuY3Rpb24odCl7S28oIkRhdGFTbmFwc2hvdC5oYXNDaGlsZCIsMSwxLGFyZ3VtZW50cy5sZW5ndGgpLHdmKCJEYXRhU25hcHNob3QuaGFzQ2hpbGQiLDEsdCwhMSk7dD1uZXcgWmEodCk7cmV0dXJuIXRoaXMubm9kZV8uZ2V0Q2hpbGQodCkuaXNFbXB0eSgpfSxhcC5wcm90b3R5cGUuZ2V0UHJpb3JpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gS28oIkRhdGFTbmFwc2hvdC5nZXRQcmlvcml0eSIsMCwwLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMubm9kZV8uZ2V0UHJpb3JpdHkoKS52YWwoKX0sYXAucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24obil7dmFyIHI9dGhpcztyZXR1cm4gS28oIkRhdGFTbmFwc2hvdC5mb3JFYWNoIiwxLDEsYXJndW1lbnRzLmxlbmd0aCksSG8oIkRhdGFTbmFwc2hvdC5mb3JFYWNoIiwxLG4sITEpLCF0aGlzLm5vZGVfLmlzTGVhZk5vZGUoKSYmISF0aGlzLm5vZGVfLmZvckVhY2hDaGlsZCh0aGlzLmluZGV4XyxmdW5jdGlvbih0LGUpe3JldHVybiBuKG5ldyBhcChlLHIucmVmXy5jaGlsZCh0KSxKdSkpfSl9LGFwLnByb3RvdHlwZS5oYXNDaGlsZHJlbj1mdW5jdGlvbigpe3JldHVybiBLbygiRGF0YVNuYXBzaG90Lmhhc0NoaWxkcmVuIiwwLDAsYXJndW1lbnRzLmxlbmd0aCksIXRoaXMubm9kZV8uaXNMZWFmTm9kZSgpJiYhdGhpcy5ub2RlXy5pc0VtcHR5KCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcC5wcm90b3R5cGUsImtleSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlZl8uZ2V0S2V5KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYXAucHJvdG90eXBlLm51bUNoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIEtvKCJEYXRhU25hcHNob3QubnVtQ2hpbGRyZW4iLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLm5vZGVfLm51bUNoaWxkcmVuKCl9LGFwLnByb3RvdHlwZS5nZXRSZWY9ZnVuY3Rpb24oKXtyZXR1cm4gS28oIkRhdGFTbmFwc2hvdC5yZWYiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLnJlZl99LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcC5wcm90b3R5cGUsInJlZiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlZigpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGFwKTtmdW5jdGlvbiBhcCh0LGUsbil7dGhpcy5ub2RlXz10LHRoaXMucmVmXz1lLHRoaXMuaW5kZXhfPW59dmFyIHVwPShjcC5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKHQpe0tvKCJPbkRpc2Nvbm5lY3QuY2FuY2VsIiwwLDEsYXJndW1lbnRzLmxlbmd0aCksSG8oIk9uRGlzY29ubmVjdC5jYW5jZWwiLDEsdCwhMCk7dmFyIGU9bmV3IGxvO3JldHVybiBXZih0aGlzLnJlcG9fLHRoaXMucGF0aF8sZS53cmFwQ2FsbGJhY2sodCkpLGUucHJvbWlzZX0sY3AucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtLbygiT25EaXNjb25uZWN0LnJlbW92ZSIsMCwxLGFyZ3VtZW50cy5sZW5ndGgpLF9mKCJPbkRpc2Nvbm5lY3QucmVtb3ZlIix0aGlzLnBhdGhfKSxIbygiT25EaXNjb25uZWN0LnJlbW92ZSIsMSx0LCEwKTt2YXIgZT1uZXcgbG87cmV0dXJuIEhmKHRoaXMucmVwb18sdGhpcy5wYXRoXyxudWxsLGUud3JhcENhbGxiYWNrKHQpKSxlLnByb21pc2V9LGNwLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXtLbygiT25EaXNjb25uZWN0LnNldCIsMSwyLGFyZ3VtZW50cy5sZW5ndGgpLF9mKCJPbkRpc2Nvbm5lY3Quc2V0Iix0aGlzLnBhdGhfKSx2ZigiT25EaXNjb25uZWN0LnNldCIsMSx0LHRoaXMucGF0aF8sITEpLEhvKCJPbkRpc2Nvbm5lY3Quc2V0IiwyLGUsITApO3ZhciBuPW5ldyBsbztyZXR1cm4gSGYodGhpcy5yZXBvXyx0aGlzLnBhdGhfLHQsbi53cmFwQ2FsbGJhY2soZSkpLG4ucHJvbWlzZX0sY3AucHJvdG90eXBlLnNldFdpdGhQcmlvcml0eT1mdW5jdGlvbih0LGUsbil7S28oIk9uRGlzY29ubmVjdC5zZXRXaXRoUHJpb3JpdHkiLDIsMyxhcmd1bWVudHMubGVuZ3RoKSxfZigiT25EaXNjb25uZWN0LnNldFdpdGhQcmlvcml0eSIsdGhpcy5wYXRoXyksdmYoIk9uRGlzY29ubmVjdC5zZXRXaXRoUHJpb3JpdHkiLDEsdCx0aGlzLnBhdGhfLCExKSx5ZigiT25EaXNjb25uZWN0LnNldFdpdGhQcmlvcml0eSIsMixlLCExKSxIbygiT25EaXNjb25uZWN0LnNldFdpdGhQcmlvcml0eSIsMyxuLCEwKTt2YXIgcixpLG8scyxhPW5ldyBsbztyZXR1cm4gcj10aGlzLnJlcG9fLGk9dGhpcy5wYXRoXyx0PXQsZT1lLG89YS53cmFwQ2FsbGJhY2sobikscz1wYyh0LGUpLHIuc2VydmVyXy5vbkRpc2Nvbm5lY3RQdXQoaS50b1N0cmluZygpLHMudmFsKCEwKSxmdW5jdGlvbih0LGUpeyJvayI9PT10JiZRYyhyLm9uRGlzY29ubmVjdF8saSxzKSxZZigwLG8sdCxlKX0pLGEucHJvbWlzZX0sY3AucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUpe2lmKEtvKCJPbkRpc2Nvbm5lY3QudXBkYXRlIiwxLDIsYXJndW1lbnRzLmxlbmd0aCksX2YoIk9uRGlzY29ubmVjdC51cGRhdGUiLHRoaXMucGF0aF8pLEFycmF5LmlzQXJyYXkodCkpe2Zvcih2YXIgbj17fSxyPTA7cjx0Lmxlbmd0aDsrK3IpblsiIityXT10W3JdO3Q9bixacygiUGFzc2luZyBhbiBBcnJheSB0byBmaXJlYmFzZS5kYXRhYmFzZS5vbkRpc2Nvbm5lY3QoKS51cGRhdGUoKSBpcyBkZXByZWNhdGVkLiBVc2Ugc2V0KCkgaWYgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHRoZSBleGlzdGluZyBkYXRhLCBvciBhbiBPYmplY3Qgd2l0aCBpbnRlZ2VyIGtleXMgaWYgeW91IHJlYWxseSBkbyB3YW50IHRvIG9ubHkgdXBkYXRlIHNvbWUgb2YgdGhlIGNoaWxkcmVuLiIpfWdmKCJPbkRpc2Nvbm5lY3QudXBkYXRlIiwxLHQsdGhpcy5wYXRoXywhMSksSG8oIk9uRGlzY29ubmVjdC51cGRhdGUiLDIsZSwhMCk7dmFyIGk9bmV3IGxvO3JldHVybiBmdW5jdGlvbihuLHIsaSxvKXtpZih4byhpKSlyZXR1cm4gWHMoIm9uRGlzY29ubmVjdCgpLnVwZGF0ZSgpIGNhbGxlZCB3aXRoIGVtcHR5IGRhdGEuICBEb24ndCBkbyBhbnl0aGluZy4iKSxZZigwLG8sIm9rIix2b2lkIDApO24uc2VydmVyXy5vbkRpc2Nvbm5lY3RNZXJnZShyLnRvU3RyaW5nKCksaSxmdW5jdGlvbih0LGUpeyJvayI9PT10JiZpYShpLGZ1bmN0aW9uKHQsZSl7ZT1wYyhlKTtRYyhuLm9uRGlzY29ubmVjdF8sdXUocix0KSxlKX0pLFlmKDAsbyx0LGUpfSl9KHRoaXMucmVwb18sdGhpcy5wYXRoXyx0LGkud3JhcENhbGxiYWNrKGUpKSxpLnByb21pc2V9LGNwKTtmdW5jdGlvbiBjcCh0LGUpe3RoaXMucmVwb189dCx0aGlzLnBhdGhfPWV9dmFyIGhwPShscC5wcm90b3R5cGUuZ2V0UGF0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc25hcHNob3QuZ2V0UmVmKCk7cmV0dXJuKCJ2YWx1ZSI9PT10aGlzLmV2ZW50VHlwZT90OnQuZ2V0UGFyZW50KCkpLnBhdGh9LGxwLnByb3RvdHlwZS5nZXRFdmVudFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ldmVudFR5cGV9LGxwLnByb3RvdHlwZS5nZXRFdmVudFJ1bm5lcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV2ZW50UmVnaXN0cmF0aW9uLmdldEV2ZW50UnVubmVyKHRoaXMpfSxscC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRQYXRoKCkudG9TdHJpbmcoKSsiOiIrdGhpcy5ldmVudFR5cGUrIjoiK1JvKHRoaXMuc25hcHNob3QuZXhwb3J0VmFsKCkpfSxscCk7ZnVuY3Rpb24gbHAodCxlLG4scil7dGhpcy5ldmVudFR5cGU9dCx0aGlzLmV2ZW50UmVnaXN0cmF0aW9uPWUsdGhpcy5zbmFwc2hvdD1uLHRoaXMucHJldk5hbWU9cn12YXIgZnA9KHBwLnByb3RvdHlwZS5nZXRQYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF0aH0scHAucHJvdG90eXBlLmdldEV2ZW50VHlwZT1mdW5jdGlvbigpe3JldHVybiJjYW5jZWwifSxwcC5wcm90b3R5cGUuZ2V0RXZlbnRSdW5uZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ldmVudFJlZ2lzdHJhdGlvbi5nZXRFdmVudFJ1bm5lcih0aGlzKX0scHAucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF0aC50b1N0cmluZygpKyI6Y2FuY2VsIn0scHApO2Z1bmN0aW9uIHBwKHQsZSxuKXt0aGlzLmV2ZW50UmVnaXN0cmF0aW9uPXQsdGhpcy5lcnJvcj1lLHRoaXMucGF0aD1ufXZhciBkcD0odnAucHJvdG90eXBlLnJlc3BvbmRzVG89ZnVuY3Rpb24odCl7cmV0dXJuInZhbHVlIj09PXR9LHZwLnByb3RvdHlwZS5jcmVhdGVFdmVudD1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZ2V0UXVlcnlQYXJhbXMoKS5nZXRJbmRleCgpO3JldHVybiBuZXcgaHAoInZhbHVlIix0aGlzLG5ldyBzcCh0LnNuYXBzaG90Tm9kZSxlLmdldFJlZigpLG4pKX0sdnAucHJvdG90eXBlLmdldEV2ZW50UnVubmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dF87aWYoImNhbmNlbCI9PT10LmdldEV2ZW50VHlwZSgpKXtzbyh0aGlzLmNhbmNlbENhbGxiYWNrXywiUmFpc2luZyBhIGNhbmNlbCBldmVudCBvbiBhIGxpc3RlbmVyIHdpdGggbm8gY2FuY2VsIGNhbGxiYWNrIik7dmFyIG49dGhpcy5jYW5jZWxDYWxsYmFja187cmV0dXJuIGZ1bmN0aW9uKCl7bi5jYWxsKGUsdC5lcnJvcil9fXZhciByPXRoaXMuY2FsbGJhY2tfO3JldHVybiBmdW5jdGlvbigpe3IuY2FsbChlLHQuc25hcHNob3QpfX0sdnAucHJvdG90eXBlLmNyZWF0ZUNhbmNlbEV2ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2FuY2VsQ2FsbGJhY2tfP25ldyBmcCh0aGlzLHQsZSk6bnVsbH0sdnAucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB2cCYmKCF0LmNhbGxiYWNrX3x8IXRoaXMuY2FsbGJhY2tffHx0LmNhbGxiYWNrXz09PXRoaXMuY2FsbGJhY2tfJiZ0LmNvbnRleHRfPT09dGhpcy5jb250ZXh0Xyl9LHZwLnByb3RvdHlwZS5oYXNBbnlDYWxsYmFjaz1mdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5jYWxsYmFja199LHZwKTtmdW5jdGlvbiB2cCh0LGUsbil7dGhpcy5jYWxsYmFja189dCx0aGlzLmNhbmNlbENhbGxiYWNrXz1lLHRoaXMuY29udGV4dF89bn12YXIgZ3AseXA9KG1wLnByb3RvdHlwZS5yZXNwb25kc1RvPWZ1bmN0aW9uKHQpe3Q9ImNoaWxkcmVuX3JlbW92ZWQiPT09KHQ9ImNoaWxkcmVuX2FkZGVkIj09PXQ/ImNoaWxkX2FkZGVkIjp0KT8iY2hpbGRfcmVtb3ZlZCI6dDtyZXR1cm4gT28odGhpcy5jYWxsYmFja3NfLHQpfSxtcC5wcm90b3R5cGUuY3JlYXRlQ2FuY2VsRXZlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jYW5jZWxDYWxsYmFja18/bmV3IGZwKHRoaXMsdCxlKTpudWxsfSxtcC5wcm90b3R5cGUuY3JlYXRlRXZlbnQ9ZnVuY3Rpb24odCxlKXtzbyhudWxsIT10LmNoaWxkTmFtZSwiQ2hpbGQgZXZlbnRzIHNob3VsZCBoYXZlIGEgY2hpbGROYW1lLiIpO3ZhciBuPWUuZ2V0UmVmKCkuY2hpbGQodC5jaGlsZE5hbWUpLGU9ZS5nZXRRdWVyeVBhcmFtcygpLmdldEluZGV4KCk7cmV0dXJuIG5ldyBocCh0LnR5cGUsdGhpcyxuZXcgc3AodC5zbmFwc2hvdE5vZGUsbixlKSx0LnByZXZOYW1lKX0sbXAucHJvdG90eXBlLmdldEV2ZW50UnVubmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dF87aWYoImNhbmNlbCI9PT10LmdldEV2ZW50VHlwZSgpKXtzbyh0aGlzLmNhbmNlbENhbGxiYWNrXywiUmFpc2luZyBhIGNhbmNlbCBldmVudCBvbiBhIGxpc3RlbmVyIHdpdGggbm8gY2FuY2VsIGNhbGxiYWNrIik7dmFyIG49dGhpcy5jYW5jZWxDYWxsYmFja187cmV0dXJuIGZ1bmN0aW9uKCl7bi5jYWxsKGUsdC5lcnJvcil9fXZhciByPXRoaXMuY2FsbGJhY2tzX1t0LmV2ZW50VHlwZV07cmV0dXJuIGZ1bmN0aW9uKCl7ci5jYWxsKGUsdC5zbmFwc2hvdCx0LnByZXZOYW1lKX19LG1wLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7aWYoZSBpbnN0YW5jZW9mIG1wKXtpZighdGhpcy5jYWxsYmFja3NffHwhZS5jYWxsYmFja3NfKXJldHVybiEwO2lmKHRoaXMuY29udGV4dF89PT1lLmNvbnRleHRfKXt2YXIgdD1PYmplY3Qua2V5cyhlLmNhbGxiYWNrc18pLHI9T2JqZWN0LmtleXModGhpcy5jYWxsYmFja3NfKSxpPXQubGVuZ3RoO2lmKGk9PT1yLmxlbmd0aCl7aWYoMSE9PWkpcmV0dXJuIHIuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIGUuY2FsbGJhY2tzX1t0XT09PW4uY2FsbGJhY2tzX1t0XX0pO3Q9dFswXSxyPXJbMF07cmV0dXJuIShyIT09dHx8ZS5jYWxsYmFja3NfW3RdJiZ0aGlzLmNhbGxiYWNrc19bcl0mJmUuY2FsbGJhY2tzX1t0XSE9PXRoaXMuY2FsbGJhY2tzX1tyXSl9fX1yZXR1cm4hMX0sbXAucHJvdG90eXBlLmhhc0FueUNhbGxiYWNrPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLmNhbGxiYWNrc199LG1wKTtmdW5jdGlvbiBtcCh0LGUsbil7dGhpcy5jYWxsYmFja3NfPXQsdGhpcy5jYW5jZWxDYWxsYmFja189ZSx0aGlzLmNvbnRleHRfPW59dmFyIGJwPShPYmplY3QuZGVmaW5lUHJvcGVydHkod3AsIl9fcmVmZXJlbmNlQ29uc3RydWN0b3IiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc28oZ3AsIlJlZmVyZW5jZS50cyBoYXMgbm90IGJlZW4gbG9hZGVkIiksZ3B9LHNldDpmdW5jdGlvbih0KXtncD10fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHdwLnZhbGlkYXRlUXVlcnlFbmRwb2ludHNfPWZ1bmN0aW9uKHQpe3ZhciBlPW51bGwsbj1udWxsO2lmKHQuaGFzU3RhcnQoKSYmKGU9dC5nZXRJbmRleFN0YXJ0VmFsdWUoKSksdC5oYXNFbmQoKSYmKG49dC5nZXRJbmRleEVuZFZhbHVlKCkpLHQuZ2V0SW5kZXgoKT09PVB1KXt2YXIgcj0iUXVlcnk6IFdoZW4gb3JkZXJpbmcgYnkga2V5LCB5b3UgbWF5IG9ubHkgcGFzcyBvbmUgYXJndW1lbnQgdG8gc3RhcnRBdCgpLCBlbmRBdCgpLCBvciBlcXVhbFRvKCkuIixpPSJRdWVyeTogV2hlbiBvcmRlcmluZyBieSBrZXksIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gc3RhcnRBdCgpLCBzdGFydEFmdGVyKCksIGVuZEF0KCksIGVuZEJlZm9yZSgpLCBvciBlcXVhbFRvKCkgbXVzdCBiZSBhIHN0cmluZy4iO2lmKHQuaGFzU3RhcnQoKSl7aWYodC5nZXRJbmRleFN0YXJ0TmFtZSgpIT09dGEpdGhyb3cgbmV3IEVycm9yKHIpO2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoaSl9aWYodC5oYXNFbmQoKSl7aWYodC5nZXRJbmRleEVuZE5hbWUoKSE9PWVhKXRocm93IG5ldyBFcnJvcihyKTtpZigic3RyaW5nIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKGkpfX1lbHNlIGlmKHQuZ2V0SW5kZXgoKT09PUp1KXtpZihudWxsIT1lJiYhZGYoZSl8fG51bGwhPW4mJiFkZihuKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5OiBXaGVuIG9yZGVyaW5nIGJ5IHByaW9yaXR5LCB0aGUgZmlyc3QgYXJndW1lbnQgcGFzc2VkIHRvIHN0YXJ0QXQoKSwgc3RhcnRBZnRlcigpIGVuZEF0KCksIGVuZEJlZm9yZSgpLCBvciBlcXVhbFRvKCkgbXVzdCBiZSBhIHZhbGlkIHByaW9yaXR5IHZhbHVlIChudWxsLCBhIG51bWJlciwgb3IgYSBzdHJpbmcpLiIpfWVsc2UgaWYoc28odC5nZXRJbmRleCgpaW5zdGFuY2VvZiBnY3x8dC5nZXRJbmRleCgpPT09VGMsInVua25vd24gaW5kZXggdHlwZS4iKSxudWxsIT1lJiYib2JqZWN0Ij09dHlwZW9mIGV8fG51bGwhPW4mJiJvYmplY3QiPT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5OiBGaXJzdCBhcmd1bWVudCBwYXNzZWQgdG8gc3RhcnRBdCgpLCBzdGFydEFmdGVyKCksIGVuZEF0KCksIGVuZEJlZm9yZSgpLCBvciBlcXVhbFRvKCkgY2Fubm90IGJlIGFuIG9iamVjdC4iKX0sd3AudmFsaWRhdGVMaW1pdF89ZnVuY3Rpb24odCl7aWYodC5oYXNTdGFydCgpJiZ0Lmhhc0VuZCgpJiZ0Lmhhc0xpbWl0KCkmJiF0Lmhhc0FuY2hvcmVkTGltaXQoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5OiBDYW4ndCBjb21iaW5lIHN0YXJ0QXQoKSwgc3RhcnRBZnRlcigpLCBlbmRBdCgpLCBlbmRCZWZvcmUoKSwgYW5kIGxpbWl0KCkuIFVzZSBsaW1pdFRvRmlyc3QoKSBvciBsaW1pdFRvTGFzdCgpIGluc3RlYWQuIil9LHdwLnByb3RvdHlwZS52YWxpZGF0ZU5vUHJldmlvdXNPcmRlckJ5Q2FsbF89ZnVuY3Rpb24odCl7aWYoITA9PT10aGlzLm9yZGVyQnlDYWxsZWRfKXRocm93IG5ldyBFcnJvcih0KyI6IFlvdSBjYW4ndCBjb21iaW5lIG11bHRpcGxlIG9yZGVyQnkgY2FsbHMuIil9LHdwLnByb3RvdHlwZS5nZXRRdWVyeVBhcmFtcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5UGFyYW1zX30sd3AucHJvdG90eXBlLmdldFJlZj1mdW5jdGlvbigpe3JldHVybiBLbygiUXVlcnkucmVmIiwwLDAsYXJndW1lbnRzLmxlbmd0aCksbmV3IHdwLl9fcmVmZXJlbmNlQ29uc3RydWN0b3IodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgpfSx3cC5wcm90b3R5cGUub249ZnVuY3Rpb24odCxlLG4scil7S28oIlF1ZXJ5Lm9uIiwyLDQsYXJndW1lbnRzLmxlbmd0aCksbWYoIlF1ZXJ5Lm9uIiwxLHQsITEpLEhvKCJRdWVyeS5vbiIsMixlLCExKTtuPXdwLmdldENhbmNlbEFuZENvbnRleHRBcmdzXygiUXVlcnkub24iLG4scik7cmV0dXJuInZhbHVlIj09PXQ/dGhpcy5vblZhbHVlRXZlbnQoZSxuLmNhbmNlbCxuLmNvbnRleHQpOigocj17fSlbdF09ZSx0aGlzLm9uQ2hpbGRFdmVudChyLG4uY2FuY2VsLG4uY29udGV4dCkpLGV9LHdwLnByb3RvdHlwZS5vblZhbHVlRXZlbnQ9ZnVuY3Rpb24odCxlLG4pe249bmV3IGRwKHQsZXx8bnVsbCxufHxudWxsKTtHZih0aGlzLnJlcG8sdGhpcyxuKX0sd3AucHJvdG90eXBlLm9uQ2hpbGRFdmVudD1mdW5jdGlvbih0LGUsbil7bj1uZXcgeXAodCxlLG4pO0dmKHRoaXMucmVwbyx0aGlzLG4pfSx3cC5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQsZSxuKXtLbygiUXVlcnkub2ZmIiwwLDMsYXJndW1lbnRzLmxlbmd0aCksbWYoIlF1ZXJ5Lm9mZiIsMSx0LCEwKSxIbygiUXVlcnkub2ZmIiwyLGUsITApLEdvKCJRdWVyeS5vZmYiLDMsbiwhMCk7dmFyIHI9bnVsbCxpPW51bGw7InZhbHVlIj09PXQ/cj1uZXcgZHAoZXx8bnVsbCxudWxsLG58fG51bGwpOnQmJihlJiYoKGk9e30pW3RdPWUpLHI9bmV3IHlwKGksbnVsbCxufHxudWxsKSksaT10aGlzLnJlcG8sbj1yLG49Ii5pbmZvIj09PW51KChyPXRoaXMpLnBhdGgpP09sKGkuaW5mb1N5bmNUcmVlXyxyLG4pOk9sKGkuc2VydmVyU3luY1RyZWVfLHIsbiksa2YoaS5ldmVudFF1ZXVlXyxyLnBhdGgsbil9LHdwLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgbixyLHQsZT10aGlzO3JldHVybiBuPXRoaXMucmVwbyxyPXRoaXMsKG51bGwhPSh0PUxsKG4uc2VydmVyU3luY1RyZWVfLHIpKT9Qcm9taXNlLnJlc29sdmUodCk6bi5zZXJ2ZXJfLmdldChyKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPXBjKHQpLHQ9UGwobi5zZXJ2ZXJTeW5jVHJlZV8sci5wYXRoLGUpO3JldHVybiBrZihuLmV2ZW50UXVldWVfLHIucGF0aCx0KSxQcm9taXNlLnJlc29sdmUoZSl9LGZ1bmN0aW9uKHQpe3JldHVybiBRZihuLCJnZXQgZm9yIHF1ZXJ5ICIrUm8ocikrIiBmYWlsZWQ6ICIrdCksUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKHQpKX0pKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgc3AodCxlLmdldFJlZigpLGUuZ2V0UXVlcnlQYXJhbXMoKS5nZXRJbmRleCgpKX0pfSx3cC5wcm90b3R5cGUub25jZT1mdW5jdGlvbihlLG4sdCxyKXt2YXIgaT10aGlzO0tvKCJRdWVyeS5vbmNlIiwxLDQsYXJndW1lbnRzLmxlbmd0aCksbWYoIlF1ZXJ5Lm9uY2UiLDEsZSwhMSksSG8oIlF1ZXJ5Lm9uY2UiLDIsbiwhMCk7dmFyIG89d3AuZ2V0Q2FuY2VsQW5kQ29udGV4dEFyZ3NfKCJRdWVyeS5vbmNlIix0LHIpLHM9ITAsYT1uZXcgbG87YS5wcm9taXNlLmNhdGNoKGZ1bmN0aW9uKCl7fSk7dmFyIHU9ZnVuY3Rpb24odCl7cyYmKHM9ITEsaS5vZmYoZSx1KSxuJiZuLmJpbmQoby5jb250ZXh0KSh0KSxhLnJlc29sdmUodCkpfTtyZXR1cm4gdGhpcy5vbihlLHUsZnVuY3Rpb24odCl7aS5vZmYoZSx1KSxvLmNhbmNlbCYmby5jYW5jZWwuYmluZChvLmNvbnRleHQpKHQpLGEucmVqZWN0KHQpfSksYS5wcm9taXNlfSx3cC5wcm90b3R5cGUubGltaXRUb0ZpcnN0PWZ1bmN0aW9uKHQpe2lmKEtvKCJRdWVyeS5saW1pdFRvRmlyc3QiLDEsMSxhcmd1bWVudHMubGVuZ3RoKSwibnVtYmVyIiE9dHlwZW9mIHR8fE1hdGguZmxvb3IodCkhPT10fHx0PD0wKXRocm93IG5ldyBFcnJvcigiUXVlcnkubGltaXRUb0ZpcnN0OiBGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4iKTtpZih0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNMaW1pdCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkubGltaXRUb0ZpcnN0OiBMaW1pdCB3YXMgYWxyZWFkeSBzZXQgKGJ5IGFub3RoZXIgY2FsbCB0byBsaW1pdCwgbGltaXRUb0ZpcnN0LCBvciBsaW1pdFRvTGFzdCkuIik7cmV0dXJuIG5ldyB3cCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCwoZT10aGlzLnF1ZXJ5UGFyYW1zXyx0PXQsKGU9ZS5jb3B5KCkpLmxpbWl0U2V0Xz0hMCxlLmxpbWl0Xz10LGUudmlld0Zyb21fPSJsIixlKSx0aGlzLm9yZGVyQnlDYWxsZWRfKTt2YXIgZX0sd3AucHJvdG90eXBlLmxpbWl0VG9MYXN0PWZ1bmN0aW9uKHQpe2lmKEtvKCJRdWVyeS5saW1pdFRvTGFzdCIsMSwxLGFyZ3VtZW50cy5sZW5ndGgpLCJudW1iZXIiIT10eXBlb2YgdHx8TWF0aC5mbG9vcih0KSE9PXR8fHQ8PTApdGhyb3cgbmV3IEVycm9yKCJRdWVyeS5saW1pdFRvTGFzdDogRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIik7aWYodGhpcy5xdWVyeVBhcmFtc18uaGFzTGltaXQoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5LmxpbWl0VG9MYXN0OiBMaW1pdCB3YXMgYWxyZWFkeSBzZXQgKGJ5IGFub3RoZXIgY2FsbCB0byBsaW1pdCwgbGltaXRUb0ZpcnN0LCBvciBsaW1pdFRvTGFzdCkuIik7cmV0dXJuIG5ldyB3cCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCwoZT10aGlzLnF1ZXJ5UGFyYW1zXyx0PXQsKGU9ZS5jb3B5KCkpLmxpbWl0U2V0Xz0hMCxlLmxpbWl0Xz10LGUudmlld0Zyb21fPSJyIixlKSx0aGlzLm9yZGVyQnlDYWxsZWRfKTt2YXIgZX0sd3AucHJvdG90eXBlLm9yZGVyQnlDaGlsZD1mdW5jdGlvbih0KXtpZihLbygiUXVlcnkub3JkZXJCeUNoaWxkIiwxLDEsYXJndW1lbnRzLmxlbmd0aCksIiRrZXkiPT09dCl0aHJvdyBuZXcgRXJyb3IoJ1F1ZXJ5Lm9yZGVyQnlDaGlsZDogIiRrZXkiIGlzIGludmFsaWQuICBVc2UgUXVlcnkub3JkZXJCeUtleSgpIGluc3RlYWQuJyk7aWYoIiRwcmlvcml0eSI9PT10KXRocm93IG5ldyBFcnJvcignUXVlcnkub3JkZXJCeUNoaWxkOiAiJHByaW9yaXR5IiBpcyBpbnZhbGlkLiAgVXNlIFF1ZXJ5Lm9yZGVyQnlQcmlvcml0eSgpIGluc3RlYWQuJyk7aWYoIiR2YWx1ZSI9PT10KXRocm93IG5ldyBFcnJvcignUXVlcnkub3JkZXJCeUNoaWxkOiAiJHZhbHVlIiBpcyBpbnZhbGlkLiAgVXNlIFF1ZXJ5Lm9yZGVyQnlWYWx1ZSgpIGluc3RlYWQuJyk7d2YoIlF1ZXJ5Lm9yZGVyQnlDaGlsZCIsMSx0LCExKSx0aGlzLnZhbGlkYXRlTm9QcmV2aW91c09yZGVyQnlDYWxsXygiUXVlcnkub3JkZXJCeUNoaWxkIik7dD1uZXcgWmEodCk7aWYoY3UodCkpdGhyb3cgbmV3IEVycm9yKCJRdWVyeS5vcmRlckJ5Q2hpbGQ6IGNhbm5vdCBwYXNzIGluIGVtcHR5IHBhdGguICBVc2UgUXVlcnkub3JkZXJCeVZhbHVlKCkgaW5zdGVhZC4iKTt0PW5ldyBnYyh0KSx0PXFjKHRoaXMucXVlcnlQYXJhbXNfLHQpO3JldHVybiB3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyh0KSxuZXcgd3AodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgsdCwhMCl9LHdwLnByb3RvdHlwZS5vcmRlckJ5S2V5PWZ1bmN0aW9uKCl7S28oIlF1ZXJ5Lm9yZGVyQnlLZXkiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLnZhbGlkYXRlTm9QcmV2aW91c09yZGVyQnlDYWxsXygiUXVlcnkub3JkZXJCeUtleSIpO3ZhciB0PXFjKHRoaXMucXVlcnlQYXJhbXNfLFB1KTtyZXR1cm4gd3AudmFsaWRhdGVRdWVyeUVuZHBvaW50c18odCksbmV3IHdwKHRoaXMuZGF0YWJhc2UsdGhpcy5wYXRoLHQsITApfSx3cC5wcm90b3R5cGUub3JkZXJCeVByaW9yaXR5PWZ1bmN0aW9uKCl7S28oIlF1ZXJ5Lm9yZGVyQnlQcmlvcml0eSIsMCwwLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMudmFsaWRhdGVOb1ByZXZpb3VzT3JkZXJCeUNhbGxfKCJRdWVyeS5vcmRlckJ5UHJpb3JpdHkiKTt2YXIgdD1xYyh0aGlzLnF1ZXJ5UGFyYW1zXyxKdSk7cmV0dXJuIHdwLnZhbGlkYXRlUXVlcnlFbmRwb2ludHNfKHQpLG5ldyB3cCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCx0LCEwKX0sd3AucHJvdG90eXBlLm9yZGVyQnlWYWx1ZT1mdW5jdGlvbigpe0tvKCJRdWVyeS5vcmRlckJ5VmFsdWUiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLnZhbGlkYXRlTm9QcmV2aW91c09yZGVyQnlDYWxsXygiUXVlcnkub3JkZXJCeVZhbHVlIik7dmFyIHQ9cWModGhpcy5xdWVyeVBhcmFtc18sVGMpO3JldHVybiB3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyh0KSxuZXcgd3AodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgsdCwhMCl9LHdwLnByb3RvdHlwZS5zdGFydEF0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9bnVsbCksS28oIlF1ZXJ5LnN0YXJ0QXQiLDAsMixhcmd1bWVudHMubGVuZ3RoKSx2ZigiUXVlcnkuc3RhcnRBdCIsMSx0LHRoaXMucGF0aCwhMCksYmYoIlF1ZXJ5LnN0YXJ0QXQiLDIsZSwhMCk7dmFyIG49VWModGhpcy5xdWVyeVBhcmFtc18sdCxlKTtpZih3cC52YWxpZGF0ZUxpbWl0XyhuKSx3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyhuKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNTdGFydCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkuc3RhcnRBdDogU3RhcnRpbmcgcG9pbnQgd2FzIGFscmVhZHkgc2V0IChieSBhbm90aGVyIGNhbGwgdG8gc3RhcnRBdCBvciBlcXVhbFRvKS4iKTtyZXR1cm4gdm9pZCAwPT09dCYmKGU9dD1udWxsKSxuZXcgd3AodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgsbix0aGlzLm9yZGVyQnlDYWxsZWRfKX0sd3AucHJvdG90eXBlLnN0YXJ0QWZ0ZXI9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT10JiYodD1udWxsKSxLbygiUXVlcnkuc3RhcnRBZnRlciIsMCwyLGFyZ3VtZW50cy5sZW5ndGgpLHZmKCJRdWVyeS5zdGFydEFmdGVyIiwxLHQsdGhpcy5wYXRoLCExKSxiZigiUXVlcnkuc3RhcnRBZnRlciIsMixlLCEwKTt2YXIgbixlPShuPXRoaXMucXVlcnlQYXJhbXNfLHQ9dCxlPWUsKGU9bi5pbmRleF89PT1QdT9VYyhuLHQ9InN0cmluZyI9PXR5cGVvZiB0P2JjKHQpOnQsZSk6VWMobix0LG51bGw9PWU/ZWE6YmMoZSkpKS5zdGFydEFmdGVyU2V0Xz0hMCxlKTtpZih3cC52YWxpZGF0ZUxpbWl0XyhlKSx3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyhlKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNTdGFydCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkuc3RhcnRBZnRlcjogU3RhcnRpbmcgcG9pbnQgd2FzIGFscmVhZHkgc2V0IChieSBhbm90aGVyIGNhbGwgdG8gc3RhcnRBdCwgc3RhcnRBZnRlciBvciBlcXVhbFRvKS4iKTtyZXR1cm4gbmV3IHdwKHRoaXMuZGF0YWJhc2UsdGhpcy5wYXRoLGUsdGhpcy5vcmRlckJ5Q2FsbGVkXyl9LHdwLnByb3RvdHlwZS5lbmRBdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PXQmJih0PW51bGwpLEtvKCJRdWVyeS5lbmRBdCIsMCwyLGFyZ3VtZW50cy5sZW5ndGgpLHZmKCJRdWVyeS5lbmRBdCIsMSx0LHRoaXMucGF0aCwhMCksYmYoIlF1ZXJ5LmVuZEF0IiwyLGUsITApO2U9amModGhpcy5xdWVyeVBhcmFtc18sdCxlKTtpZih3cC52YWxpZGF0ZUxpbWl0XyhlKSx3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyhlKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNFbmQoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5LmVuZEF0OiBFbmRpbmcgcG9pbnQgd2FzIGFscmVhZHkgc2V0IChieSBhbm90aGVyIGNhbGwgdG8gZW5kQXQsIGVuZEJlZm9yZSwgb3IgZXF1YWxUbykuIik7cmV0dXJuIG5ldyB3cCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCxlLHRoaXMub3JkZXJCeUNhbGxlZF8pfSx3cC5wcm90b3R5cGUuZW5kQmVmb3JlPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9bnVsbCksS28oIlF1ZXJ5LmVuZEJlZm9yZSIsMCwyLGFyZ3VtZW50cy5sZW5ndGgpLHZmKCJRdWVyeS5lbmRCZWZvcmUiLDEsdCx0aGlzLnBhdGgsITEpLGJmKCJRdWVyeS5lbmRCZWZvcmUiLDIsZSwhMCk7dmFyIG4sZT0obj10aGlzLnF1ZXJ5UGFyYW1zXyx0PXQsZT1lLChlPW4uaW5kZXhfPT09UHU/amMobix0PSJzdHJpbmciPT10eXBlb2YgdD93Yyh0KTp0LGUpOmpjKG4sdCxudWxsPT1lP3RhOndjKGUpKSkuZW5kQmVmb3JlU2V0Xz0hMCxlKTtpZih3cC52YWxpZGF0ZUxpbWl0XyhlKSx3cC52YWxpZGF0ZVF1ZXJ5RW5kcG9pbnRzXyhlKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNFbmQoKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5LmVuZEJlZm9yZTogRW5kaW5nIHBvaW50IHdhcyBhbHJlYWR5IHNldCAoYnkgYW5vdGhlciBjYWxsIHRvIGVuZEF0LCBlbmRCZWZvcmUsIG9yIGVxdWFsVG8pLiIpO3JldHVybiBuZXcgd3AodGhpcy5kYXRhYmFzZSx0aGlzLnBhdGgsZSx0aGlzLm9yZGVyQnlDYWxsZWRfKX0sd3AucHJvdG90eXBlLmVxdWFsVG89ZnVuY3Rpb24odCxlKXtpZihLbygiUXVlcnkuZXF1YWxUbyIsMSwyLGFyZ3VtZW50cy5sZW5ndGgpLHZmKCJRdWVyeS5lcXVhbFRvIiwxLHQsdGhpcy5wYXRoLCExKSxiZigiUXVlcnkuZXF1YWxUbyIsMixlLCEwKSx0aGlzLnF1ZXJ5UGFyYW1zXy5oYXNTdGFydCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkuZXF1YWxUbzogU3RhcnRpbmcgcG9pbnQgd2FzIGFscmVhZHkgc2V0IChieSBhbm90aGVyIGNhbGwgdG8gc3RhcnRBdC9zdGFydEFmdGVyIG9yIGVxdWFsVG8pLiIpO2lmKHRoaXMucXVlcnlQYXJhbXNfLmhhc0VuZCgpKXRocm93IG5ldyBFcnJvcigiUXVlcnkuZXF1YWxUbzogRW5kaW5nIHBvaW50IHdhcyBhbHJlYWR5IHNldCAoYnkgYW5vdGhlciBjYWxsIHRvIGVuZEF0L2VuZEJlZm9yZSBvciBlcXVhbFRvKS4iKTtyZXR1cm4gdGhpcy5zdGFydEF0KHQsZSkuZW5kQXQodCxlKX0sd3AucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEtvKCJRdWVyeS50b1N0cmluZyIsMCwwLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMucmVwby50b1N0cmluZygpK2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT0iIixuPXQucGllY2VOdW1fO248dC5waWVjZXNfLmxlbmd0aDtuKyspIiIhPT10LnBpZWNlc19bbl0mJihlKz0iLyIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyh0LnBpZWNlc19bbl0pKSk7cmV0dXJuIGV8fCIvIn0odGhpcy5wYXRoKX0sd3AucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBLbygiUXVlcnkudG9KU09OIiwwLDEsYXJndW1lbnRzLmxlbmd0aCksdGhpcy50b1N0cmluZygpfSx3cC5wcm90b3R5cGUucXVlcnlPYmplY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdD10aGlzLnF1ZXJ5UGFyYW1zXyxuPXt9LHQuc3RhcnRTZXRfJiYobi5zcD10LmluZGV4U3RhcnRWYWx1ZV8sdC5zdGFydE5hbWVTZXRfJiYobi5zbj10LmluZGV4U3RhcnROYW1lXykpLHQuZW5kU2V0XyYmKG4uZXA9dC5pbmRleEVuZFZhbHVlXyx0LmVuZE5hbWVTZXRfJiYobi5lbj10LmluZGV4RW5kTmFtZV8pKSx0LmxpbWl0U2V0XyYmKG4ubD10LmxpbWl0XywiIj09PShlPXQudmlld0Zyb21fKSYmKGU9dC5pc1ZpZXdGcm9tTGVmdCgpPyJsIjoiciIpLG4udmY9ZSksdC5pbmRleF8hPT1KdSYmKG4uaT10LmluZGV4Xy50b1N0cmluZygpKSxuO3ZhciB0LGUsbn0sd3AucHJvdG90eXBlLnF1ZXJ5SWRlbnRpZmllcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMucXVlcnlPYmplY3QoKSx0PXJhKHQpO3JldHVybiJ7fSI9PT10PyJkZWZhdWx0Ijp0fSx3cC5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtpZihLbygiUXVlcnkuaXNFcXVhbCIsMSwxLGFyZ3VtZW50cy5sZW5ndGgpLCEodCBpbnN0YW5jZW9mIHdwKSl0aHJvdyBuZXcgRXJyb3IoIlF1ZXJ5LmlzRXF1YWwgZmFpbGVkOiBGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIGZpcmViYXNlLmRhdGFiYXNlLlF1ZXJ5LiIpO3ZhciBlPXRoaXMucmVwbz09PXQucmVwbyxuPWZ1KHRoaXMucGF0aCx0LnBhdGgpLHQ9dGhpcy5xdWVyeUlkZW50aWZpZXIoKT09PXQucXVlcnlJZGVudGlmaWVyKCk7cmV0dXJuIGUmJm4mJnR9LHdwLmdldENhbmNlbEFuZENvbnRleHRBcmdzXz1mdW5jdGlvbih0LGUsbil7dmFyIHI9e2NhbmNlbDpudWxsLGNvbnRleHQ6bnVsbH07aWYoZSYmbilyLmNhbmNlbD1lLEhvKHQsMyxyLmNhbmNlbCwhMCksci5jb250ZXh0PW4sR28odCw0LHIuY29udGV4dCwhMCk7ZWxzZSBpZihlKWlmKCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUpci5jb250ZXh0PWU7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoV28odCwzLCEwKSsiIG11c3QgZWl0aGVyIGJlIGEgY2FuY2VsIGNhbGxiYWNrIG9yIGEgY29udGV4dCBvYmplY3QuIik7ci5jYW5jZWw9ZX1yZXR1cm4gcn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHdwLnByb3RvdHlwZSwicmVmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UmVmKCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksd3ApO2Z1bmN0aW9uIHdwKHQsZSxuLHIpe3RoaXMuZGF0YWJhc2U9dCx0aGlzLnBhdGg9ZSx0aGlzLnF1ZXJ5UGFyYW1zXz1uLHRoaXMub3JkZXJCeUNhbGxlZF89cix0aGlzLnJlcG89dC5yZXBvX312YXIgX3A9KElwLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gS28oIlRyYW5zYWN0aW9uUmVzdWx0LnRvSlNPTiIsMCwxLGFyZ3VtZW50cy5sZW5ndGgpLHtjb21taXR0ZWQ6dGhpcy5jb21taXR0ZWQsc25hcHNob3Q6dGhpcy5zbmFwc2hvdC50b0pTT04oKX19LElwKTtmdW5jdGlvbiBJcCh0LGUpe3RoaXMuY29tbWl0dGVkPXQsdGhpcy5zbmFwc2hvdD1lfXZhciBUcCxFcCxTcD0oWGkoQ3AsVHA9YnApLENwLnByb3RvdHlwZS5nZXRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gS28oIlJlZmVyZW5jZS5rZXkiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSxjdSh0aGlzLnBhdGgpP251bGw6b3UodGhpcy5wYXRoKX0sQ3AucHJvdG90eXBlLmNoaWxkPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpO3JldHVybiBLbygiUmVmZXJlbmNlLmNoaWxkIiwxLDEsYXJndW1lbnRzLmxlbmd0aCksIm51bWJlciI9PXR5cGVvZiB0P3Q9U3RyaW5nKHQpOnQgaW5zdGFuY2VvZiBaYXx8KG51bGw9PT1udSh0aGlzLnBhdGgpPyhlPSJSZWZlcmVuY2UuY2hpbGQiLGk9IShuPTEpLHI9KHI9dCkmJnIucmVwbGFjZSgvXlwvKlwuaW5mbyhcL3wkKS8sIi8iKSx3ZihlLG4scixpKSk6d2YoIlJlZmVyZW5jZS5jaGlsZCIsMSx0LCExKSksbmV3IENwKHRoaXMuZGF0YWJhc2UsdXUodGhpcy5wYXRoLHQpKX0sQ3AucHJvdG90eXBlLmdldFBhcmVudD1mdW5jdGlvbigpe0tvKCJSZWZlcmVuY2UucGFyZW50IiwwLDAsYXJndW1lbnRzLmxlbmd0aCk7dmFyIHQ9YXUodGhpcy5wYXRoKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDpuZXcgQ3AodGhpcy5kYXRhYmFzZSx0KX0sQ3AucHJvdG90eXBlLmdldFJvb3Q9ZnVuY3Rpb24oKXtLbygiUmVmZXJlbmNlLnJvb3QiLDAsMCxhcmd1bWVudHMubGVuZ3RoKTtmb3IodmFyIHQ9dGhpcztudWxsIT09dC5nZXRQYXJlbnQoKTspdD10LmdldFBhcmVudCgpO3JldHVybiB0fSxDcC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7S28oIlJlZmVyZW5jZS5zZXQiLDEsMixhcmd1bWVudHMubGVuZ3RoKSxfZigiUmVmZXJlbmNlLnNldCIsdGhpcy5wYXRoKSx2ZigiUmVmZXJlbmNlLnNldCIsMSx0LHRoaXMucGF0aCwhMSksSG8oIlJlZmVyZW5jZS5zZXQiLDIsZSwhMCk7dmFyIG49bmV3IGxvO3JldHVybiBLZih0aGlzLnJlcG8sdGhpcy5wYXRoLHQsbnVsbCxuLndyYXBDYWxsYmFjayhlKSksbi5wcm9taXNlfSxDcC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSl7aWYoS28oIlJlZmVyZW5jZS51cGRhdGUiLDEsMixhcmd1bWVudHMubGVuZ3RoKSxfZigiUmVmZXJlbmNlLnVwZGF0ZSIsdGhpcy5wYXRoKSxBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIG49e30scj0wO3I8dC5sZW5ndGg7KytyKW5bIiIrcl09dFtyXTt0PW4sWnMoIlBhc3NpbmcgYW4gQXJyYXkgdG8gRmlyZWJhc2UudXBkYXRlKCkgaXMgZGVwcmVjYXRlZC4gVXNlIHNldCgpIGlmIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgZGF0YSwgb3IgYW4gT2JqZWN0IHdpdGggaW50ZWdlciBrZXlzIGlmIHlvdSByZWFsbHkgZG8gd2FudCB0byBvbmx5IHVwZGF0ZSBzb21lIG9mIHRoZSBjaGlsZHJlbi4iKX1nZigiUmVmZXJlbmNlLnVwZGF0ZSIsMSx0LHRoaXMucGF0aCwhMSksSG8oIlJlZmVyZW5jZS51cGRhdGUiLDIsZSwhMCk7dmFyIGk9bmV3IGxvO3JldHVybiBmdW5jdGlvbihpLG8sdCxzKXtRZihpLCJ1cGRhdGUiLHtwYXRoOm8udG9TdHJpbmcoKSx2YWx1ZTp0fSk7dmFyIGEsZSxuPSEwLHI9VWYoaSksdT17fTtpYSh0LGZ1bmN0aW9uKHQsZSl7bj0hMSx1W3RdPXRmKHV1KG8sdCkscGMoZSksaS5zZXJ2ZXJTeW5jVHJlZV8scil9KSxuPyhYcygidXBkYXRlKCkgY2FsbGVkIHdpdGggZW1wdHkgZGF0YS4gIERvbid0IGRvIGFueXRoaW5nLiIpLFlmKDAscywib2siLHZvaWQgMCkpOihhPUJmKGkpLGU9a2woaS5zZXJ2ZXJTeW5jVHJlZV8sbyx1LGEpLEFmKGkuZXZlbnRRdWV1ZV8sZSksaS5zZXJ2ZXJfLm1lcmdlKG8udG9TdHJpbmcoKSx0LGZ1bmN0aW9uKHQsZSl7dmFyIG49Im9rIj09PXQ7bnx8WnMoInVwZGF0ZSBhdCAiK28rIiBmYWlsZWQ6ICIrdCk7dmFyIHI9UmwoaS5zZXJ2ZXJTeW5jVHJlZV8sYSwhbiksbj0wPHIubGVuZ3RoPyRmKGksbyk6bztSZihpLmV2ZW50UXVldWVfLG4sciksWWYoMCxzLHQsZSl9KSxpYSh0LGZ1bmN0aW9uKHQpe3Q9bnAoaSx1dShvLHQpKTskZihpLHQpfSksUmYoaS5ldmVudFF1ZXVlXyxvLFtdKSl9KHRoaXMucmVwbyx0aGlzLnBhdGgsdCxpLndyYXBDYWxsYmFjayhlKSksaS5wcm9taXNlfSxDcC5wcm90b3R5cGUuc2V0V2l0aFByaW9yaXR5PWZ1bmN0aW9uKHQsZSxuKXtpZihLbygiUmVmZXJlbmNlLnNldFdpdGhQcmlvcml0eSIsMiwzLGFyZ3VtZW50cy5sZW5ndGgpLF9mKCJSZWZlcmVuY2Uuc2V0V2l0aFByaW9yaXR5Iix0aGlzLnBhdGgpLHZmKCJSZWZlcmVuY2Uuc2V0V2l0aFByaW9yaXR5IiwxLHQsdGhpcy5wYXRoLCExKSx5ZigiUmVmZXJlbmNlLnNldFdpdGhQcmlvcml0eSIsMixlLCExKSxIbygiUmVmZXJlbmNlLnNldFdpdGhQcmlvcml0eSIsMyxuLCEwKSwiLmxlbmd0aCI9PT10aGlzLmdldEtleSgpfHwiLmtleXMiPT09dGhpcy5nZXRLZXkoKSl0aHJvdyJSZWZlcmVuY2Uuc2V0V2l0aFByaW9yaXR5IGZhaWxlZDogIit0aGlzLmdldEtleSgpKyIgaXMgYSByZWFkLW9ubHkgb2JqZWN0LiI7dmFyIHI9bmV3IGxvO3JldHVybiBLZih0aGlzLnJlcG8sdGhpcy5wYXRoLHQsZSxyLndyYXBDYWxsYmFjayhuKSksci5wcm9taXNlfSxDcC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3JldHVybiBLbygiUmVmZXJlbmNlLnJlbW92ZSIsMCwxLGFyZ3VtZW50cy5sZW5ndGgpLF9mKCJSZWZlcmVuY2UucmVtb3ZlIix0aGlzLnBhdGgpLEhvKCJSZWZlcmVuY2UucmVtb3ZlIiwxLHQsITApLHRoaXMuc2V0KG51bGwsdCl9LENwLnByb3RvdHlwZS50cmFuc2FjdGlvbj1mdW5jdGlvbih0LHIsZSl7dmFyIGk9dGhpcztpZihLbygiUmVmZXJlbmNlLnRyYW5zYWN0aW9uIiwxLDMsYXJndW1lbnRzLmxlbmd0aCksX2YoIlJlZmVyZW5jZS50cmFuc2FjdGlvbiIsdGhpcy5wYXRoKSxIbygiUmVmZXJlbmNlLnRyYW5zYWN0aW9uIiwxLHQsITEpLEhvKCJSZWZlcmVuY2UudHJhbnNhY3Rpb24iLDIsciwhMCksZnVuY3Rpb24odCxlLG4scil7aWYoKCFyfHx2b2lkIDAhPT1uKSYmImJvb2xlYW4iIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoV28odCxlLHIpKyJtdXN0IGJlIGEgYm9vbGVhbi4iKX0oIlJlZmVyZW5jZS50cmFuc2FjdGlvbiIsMyxlLCEwKSwiLmxlbmd0aCI9PT10aGlzLmdldEtleSgpfHwiLmtleXMiPT09dGhpcy5nZXRLZXkoKSl0aHJvdyJSZWZlcmVuY2UudHJhbnNhY3Rpb24gZmFpbGVkOiAiK3RoaXMuZ2V0S2V5KCkrIiBpcyBhIHJlYWQtb25seSBvYmplY3QuIjt2b2lkIDA9PT1lJiYoZT0hMCk7dmFyIG89bmV3IGxvOyJmdW5jdGlvbiI9PXR5cGVvZiByJiZvLnByb21pc2UuY2F0Y2goZnVuY3Rpb24oKXt9KTtmdW5jdGlvbiBuKCl7fXZhciBzPW5ldyBDcCh0aGlzLmRhdGFiYXNlLHRoaXMucGF0aCk7cy5vbigidmFsdWUiLG4pO3JldHVybiBmdW5jdGlvbih0LGUsbixyLGksbyl7UWYodCwidHJhbnNhY3Rpb24gb24gIitlKTt2YXIgcz17cGF0aDplLHVwZGF0ZTpuLG9uQ29tcGxldGU6cixzdGF0dXM6bnVsbCxvcmRlcjpHcygpLGFwcGx5TG9jYWxseTpvLHJldHJ5Q291bnQ6MCx1bndhdGNoZXI6aSxhYm9ydFJlYXNvbjpudWxsLGN1cnJlbnRXcml0ZUlkOm51bGwsY3VycmVudElucHV0U25hcHNob3Q6bnVsbCxjdXJyZW50T3V0cHV0U25hcHNob3RSYXc6bnVsbCxjdXJyZW50T3V0cHV0U25hcHNob3RSZXNvbHZlZDpudWxsfSxuPVhmKHQsZSx2b2lkIDApO3MuY3VycmVudElucHV0U25hcHNob3Q9bix2b2lkIDA9PT0ocj1zLnVwZGF0ZShuLnZhbCgpKSk/KHMudW53YXRjaGVyKCkscy5jdXJyZW50T3V0cHV0U25hcHNob3RSYXc9bnVsbCxzLmN1cnJlbnRPdXRwdXRTbmFwc2hvdFJlc29sdmVkPW51bGwscy5vbkNvbXBsZXRlJiZzLm9uQ29tcGxldGUobnVsbCwhMSxzLmN1cnJlbnRJbnB1dFNuYXBzaG90KSk6KFNmKCJ0cmFuc2FjdGlvbiBmYWlsZWQ6IERhdGEgcmV0dXJuZWQgIixyLHMucGF0aCkscy5zdGF0dXM9MCwoaT1zZihvPW9mKHQudHJhbnNhY3Rpb25RdWV1ZVRyZWVfLGUpKXx8W10pLnB1c2gocyksYWYobyxpKSxvPXZvaWQgMCwib2JqZWN0Ij09dHlwZW9mIHImJm51bGwhPT1yJiZPbyhyLCIucHJpb3JpdHkiKT8obz1EbyhyLCIucHJpb3JpdHkiKSxzbyhkZihvKSwiSW52YWxpZCBwcmlvcml0eSByZXR1cm5lZCBieSB0cmFuc2FjdGlvbi4gUHJpb3JpdHkgbXVzdCBiZSBhIHZhbGlkIHN0cmluZywgZmluaXRlIG51bWJlciwgc2VydmVyIHZhbHVlLCBvciBudWxsLiIpKTpvPSh4bCh0LnNlcnZlclN5bmNUcmVlXyxlKXx8dWMuRU1QVFlfTk9ERSkuZ2V0UHJpb3JpdHkoKS52YWwoKSxpPVVmKHQpLG89cGMocixvKSxpPWVmKG8sbixpKSxzLmN1cnJlbnRPdXRwdXRTbmFwc2hvdFJhdz1vLHMuY3VycmVudE91dHB1dFNuYXBzaG90UmVzb2x2ZWQ9aSxzLmN1cnJlbnRXcml0ZUlkPUJmKHQpLHM9QWwodC5zZXJ2ZXJTeW5jVHJlZV8sZSxpLHMuY3VycmVudFdyaXRlSWQscy5hcHBseUxvY2FsbHkpLFJmKHQuZXZlbnRRdWV1ZV8sZSxzKSxKZih0LHQudHJhbnNhY3Rpb25RdWV1ZVRyZWVfKSl9KHRoaXMucmVwbyx0aGlzLnBhdGgsdCxmdW5jdGlvbih0LGUsbil7dD8oby5yZWplY3QodCksImZ1bmN0aW9uIj09dHlwZW9mIHImJnIodCxlLG51bGwpKToobj1uZXcgc3AobixuZXcgQ3AoaS5kYXRhYmFzZSxpLnBhdGgpLEp1KSxvLnJlc29sdmUobmV3IF9wKGUsbikpLCJmdW5jdGlvbiI9PXR5cGVvZiByJiZyKG51bGwsZSxuKSl9LGZ1bmN0aW9uKCl7cy5vZmYoInZhbHVlIixuKX0sZSksby5wcm9taXNlfSxDcC5wcm90b3R5cGUuc2V0UHJpb3JpdHk9ZnVuY3Rpb24odCxlKXtLbygiUmVmZXJlbmNlLnNldFByaW9yaXR5IiwxLDIsYXJndW1lbnRzLmxlbmd0aCksX2YoIlJlZmVyZW5jZS5zZXRQcmlvcml0eSIsdGhpcy5wYXRoKSx5ZigiUmVmZXJlbmNlLnNldFByaW9yaXR5IiwxLHQsITEpLEhvKCJSZWZlcmVuY2Uuc2V0UHJpb3JpdHkiLDIsZSwhMCk7dmFyIG49bmV3IGxvO3JldHVybiBLZih0aGlzLnJlcG8sdXUodGhpcy5wYXRoLCIucHJpb3JpdHkiKSx0LG51bGwsbi53cmFwQ2FsbGJhY2soZSkpLG4ucHJvbWlzZX0sQ3AucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCxlKXtLbygiUmVmZXJlbmNlLnB1c2giLDAsMixhcmd1bWVudHMubGVuZ3RoKSxfZigiUmVmZXJlbmNlLnB1c2giLHRoaXMucGF0aCksdmYoIlJlZmVyZW5jZS5wdXNoIiwxLHQsdGhpcy5wYXRoLCEwKSxIbygiUmVmZXJlbmNlLnB1c2giLDIsZSwhMCk7dmFyIG49RmYodGhpcy5yZXBvKSxyPVNjKG4pLG49dGhpcy5jaGlsZChyKSxpPXRoaXMuY2hpbGQociksdD1udWxsIT10P24uc2V0KHQsZSkudGhlbihmdW5jdGlvbigpe3JldHVybiBpfSk6UHJvbWlzZS5yZXNvbHZlKGkpO3JldHVybiBuLnRoZW49dC50aGVuLmJpbmQodCksbi5jYXRjaD10LnRoZW4uYmluZCh0LHZvaWQgMCksImZ1bmN0aW9uIj09dHlwZW9mIGUmJnQuY2F0Y2goZnVuY3Rpb24oKXt9KSxufSxDcC5wcm90b3R5cGUub25EaXNjb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIF9mKCJSZWZlcmVuY2Uub25EaXNjb25uZWN0Iix0aGlzLnBhdGgpLG5ldyB1cCh0aGlzLnJlcG8sdGhpcy5wYXRoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KENwLnByb3RvdHlwZSwia2V5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0S2V5KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KENwLnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UGFyZW50KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KENwLnByb3RvdHlwZSwicm9vdCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJvb3QoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxDcCk7ZnVuY3Rpb24gQ3AodCxlKXtyZXR1cm4gVHAuY2FsbCh0aGlzLHQsZSxuZXcgTWMsITEpfHx0aGlzfWJwLl9fcmVmZXJlbmNlQ29uc3RydWN0b3I9U3AsRXA9U3Asc28oIXVsLCJfX3JlZmVyZW5jZUNvbnN0cnVjdG9yIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCIpLHVsPUVwO3ZhciBOcD0iRklSRUJBU0VfREFUQUJBU0VfRU1VTEFUT1JfSE9TVCIsQXA9e30sa3A9ITE7ZnVuY3Rpb24gUnAodCxlLG4scil7dmFyIGk9bnx8dC5vcHRpb25zLmRhdGFiYXNlVVJMO3ZvaWQgMD09PWkmJih0Lm9wdGlvbnMucHJvamVjdElkfHwkcygiQ2FuJ3QgZGV0ZXJtaW5lIEZpcmViYXNlIERhdGFiYXNlIFVSTC4gQmUgc3VyZSB0byBpbmNsdWRlICBhIFByb2plY3QgSUQgd2hlbiBjYWxsaW5nIGZpcmViYXNlLmluaXRpYWxpemVBcHAoKS4iKSxYcygiVXNpbmcgZGVmYXVsdCBob3N0IGZvciBwcm9qZWN0ICIsdC5vcHRpb25zLnByb2plY3RJZCksaT10Lm9wdGlvbnMucHJvamVjdElkKyItZGVmYXVsdC1ydGRiLmZpcmViYXNlaW8uY29tIik7dmFyIG8scz1pcChpLHIpLGE9cy5yZXBvSW5mbyxuPXZvaWQgMDsobj0idW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3M/cHJvY2Vzcy5lbnZbTnBdOm4pPyhvPSEwLGk9Imh0dHA6Ly8iK24rIj9ucz0iK2EubmFtZXNwYWNlLGE9KHM9aXAoaSxyKSkucmVwb0luZm8pOm89IXMucmVwb0luZm8uc2VjdXJlO2U9ciYmbz9uZXcgdmE6bmV3IHBhKHQsZSk7Q2YoIkludmFsaWQgRmlyZWJhc2UgRGF0YWJhc2UgVVJMIiwxLHMpLGN1KHMucGF0aCl8fCRzKCJEYXRhYmFzZSBVUkwgbXVzdCBwb2ludCB0byB0aGUgcm9vdCBvZiBhIEZpcmViYXNlIERhdGFiYXNlIChub3QgaW5jbHVkaW5nIGEgY2hpbGQgcGF0aCkuIik7ZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9RG8oQXAsZS5uYW1lKTtyfHwocj17fSxBcFtlLm5hbWVdPXIpO3ZhciBpPURvKHIsdC50b1VSTFN0cmluZygpKTtpJiYkcygiRGF0YWJhc2UgaW5pdGlhbGl6ZWQgbXVsdGlwbGUgdGltZXMuIFBsZWFzZSBtYWtlIHN1cmUgdGhlIGZvcm1hdCBvZiB0aGUgZGF0YWJhc2UgVVJMIG1hdGNoZXMgd2l0aCBlYWNoIGRhdGFiYXNlKCkgY2FsbC4iKTtyZXR1cm4gaT1uZXcgeGYodCxrcCxlLG4pLHJbdC50b1VSTFN0cmluZygpXT1pfShhLHQsZSk7cmV0dXJuIG5ldyBQcChlKX12YXIgUHA9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPcC5wcm90b3R5cGUsInJlcG9fIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2VTdGFydGVkX3x8KE1mKHRoaXMucmVwb0ludGVybmFsXyksdGhpcy5pbnN0YW5jZVN0YXJ0ZWRfPSEwKSx0aGlzLnJlcG9JbnRlcm5hbF99LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE9wLnByb3RvdHlwZSwicm9vdF8iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290SW50ZXJuYWxffHwodGhpcy5yb290SW50ZXJuYWxfPW5ldyBTcCh0aGlzLGV1KCkpKSx0aGlzLnJvb3RJbnRlcm5hbF99LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE9wLnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVwb18uYXBwfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9wLnByb3RvdHlwZS51c2VFbXVsYXRvcj1mdW5jdGlvbih0LGUpe3ZhciBuO3RoaXMuY2hlY2tEZWxldGVkXygidXNlRW11bGF0b3IiKSx0aGlzLmluc3RhbmNlU3RhcnRlZF8/JHMoIkNhbm5vdCBjYWxsIHVzZUVtdWxhdG9yKCkgYWZ0ZXIgaW5zdGFuY2UgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZC4iKToobj10aGlzLnJlcG9JbnRlcm5hbF8sdD10LGU9ZSxuLnJlcG9JbmZvXz1uZXcgd2EodCsiOiIrZSwhMSxuLnJlcG9JbmZvXy5uYW1lc3BhY2Usbi5yZXBvSW5mb18ud2ViU29ja2V0T25seSxuLnJlcG9JbmZvXy5ub2RlQWRtaW4sbi5yZXBvSW5mb18ucGVyc2lzdGVuY2VLZXksbi5yZXBvSW5mb18uaW5jbHVkZU5hbWVzcGFjZUluUXVlcnlQYXJhbXMpLG4ucmVwb0luZm9fLm5vZGVBZG1pbiYmKG4uYXV0aFRva2VuUHJvdmlkZXJfPW5ldyB2YSkpfSxPcC5wcm90b3R5cGUucmVmPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNoZWNrRGVsZXRlZF8oInJlZiIpLEtvKCJkYXRhYmFzZS5yZWYiLDAsMSxhcmd1bWVudHMubGVuZ3RoKSx0IGluc3RhbmNlb2YgU3A/dGhpcy5yZWZGcm9tVVJMKHQudG9TdHJpbmcoKSk6dm9pZCAwIT09dD90aGlzLnJvb3RfLmNoaWxkKHQpOnRoaXMucm9vdF99LE9wLnByb3RvdHlwZS5yZWZGcm9tVVJMPWZ1bmN0aW9uKHQpe3ZhciBlPSJkYXRhYmFzZS5yZWZGcm9tVVJMIjt0aGlzLmNoZWNrRGVsZXRlZF8oZSksS28oZSwxLDEsYXJndW1lbnRzLmxlbmd0aCk7dmFyIG49aXAodCx0aGlzLnJlcG9fLnJlcG9JbmZvXy5ub2RlQWRtaW4pO0NmKGUsMSxuKTt0PW4ucmVwb0luZm87cmV0dXJuIHRoaXMucmVwb18ucmVwb0luZm9fLmlzQ3VzdG9tSG9zdCgpfHx0Lmhvc3Q9PT10aGlzLnJlcG9fLnJlcG9JbmZvXy5ob3N0fHwkcyhlKyI6IEhvc3QgbmFtZSBkb2VzIG5vdCBtYXRjaCB0aGUgY3VycmVudCBkYXRhYmFzZTogKGZvdW5kICIrdC5ob3N0KyIgYnV0IGV4cGVjdGVkICIrdGhpcy5yZXBvXy5yZXBvSW5mb18uaG9zdCsiKSIpLHRoaXMucmVmKG4ucGF0aC50b1N0cmluZygpKX0sT3AucHJvdG90eXBlLmNoZWNrRGVsZXRlZF89ZnVuY3Rpb24odCl7bnVsbD09PXRoaXMucmVwb0ludGVybmFsXyYmJHMoIkNhbm5vdCBjYWxsICIrdCsiIG9uIGEgZGVsZXRlZCBkYXRhYmFzZS4iKX0sT3AucHJvdG90eXBlLmdvT2ZmbGluZT1mdW5jdGlvbigpe0tvKCJkYXRhYmFzZS5nb09mZmxpbmUiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLmNoZWNrRGVsZXRlZF8oImdvT2ZmbGluZSIpLHpmKHRoaXMucmVwb18pfSxPcC5wcm90b3R5cGUuZ29PbmxpbmU9ZnVuY3Rpb24oKXt2YXIgdDtLbygiZGF0YWJhc2UuZ29PbmxpbmUiLDAsMCxhcmd1bWVudHMubGVuZ3RoKSx0aGlzLmNoZWNrRGVsZXRlZF8oImdvT25saW5lIiksKHQ9dGhpcy5yZXBvXykucGVyc2lzdGVudENvbm5lY3Rpb25fJiZ0LnBlcnNpc3RlbnRDb25uZWN0aW9uXy5yZXN1bWUoT2YpfSxPcC5TZXJ2ZXJWYWx1ZT17VElNRVNUQU1QOnsiLnN2IjoidGltZXN0YW1wIn0saW5jcmVtZW50OmZ1bmN0aW9uKHQpe3JldHVybnsiLnN2Ijp7aW5jcmVtZW50OnR9fX19LE9wKTtmdW5jdGlvbiBPcCh0KXt2YXIgZT10aGlzO3RoaXMucmVwb0ludGVybmFsXz10LHRoaXMuaW5zdGFuY2VTdGFydGVkXz0hMSx0aGlzLklOVEVSTkFMPXtkZWxldGU6ZnVuY3Rpb24oKXtyZXR1cm4gJGkoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7dmFyIGUsbjtyZXR1cm4gdGhpcy5jaGVja0RlbGV0ZWRfKCJkZWxldGUiKSxlPXRoaXMucmVwb18sKG49RG8oQXAsZS5hcHAubmFtZSkpJiZEbyhuLGUua2V5KT09PWV8fCRzKCJEYXRhYmFzZSAiK2UuYXBwLm5hbWUrIigiK2UucmVwb0luZm9fKyIpIGhhcyBhbHJlYWR5IGJlZW4gZGVsZXRlZC4iKSx6ZihlKSxkZWxldGUgbltlLmtleV0sdGhpcy5yZXBvSW50ZXJuYWxfPW51bGwsdGhpcy5yb290SW50ZXJuYWxfPW51bGwsWzJdfSl9KX19LHQgaW5zdGFuY2VvZiB4Znx8JHMoIkRvbid0IGNhbGwgbmV3IERhdGFiYXNlKCkgZGlyZWN0bHkgLSBwbGVhc2UgdXNlIGZpcmViYXNlLmRhdGFiYXNlKCkuIil9dmFyIERwPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGZvcmNlTG9uZ1BvbGxpbmc6ZnVuY3Rpb24oKXtqYS5mb3JjZURpc2FsbG93KCksT2EuZm9yY2VBbGxvdygpfSxmb3JjZVdlYlNvY2tldHM6ZnVuY3Rpb24oKXtPYS5mb3JjZURpc2FsbG93KCl9LGlzV2ViU29ja2V0c0F2YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiBqYS5pc0F2YWlsYWJsZSgpfSxzZXRTZWN1cml0eURlYnVnQ2FsbGJhY2s6ZnVuY3Rpb24odCxlKXt0LnJlcG8ucGVyc2lzdGVudENvbm5lY3Rpb25fLnNlY3VyaXR5RGVidWdDYWxsYmFja189ZX0sc3RhdHM6ZnVuY3Rpb24odCxlKXt2YXIgaTt0PXQucmVwbyx2b2lkIDA9PT0oZT1lKSYmKGU9ITEpLCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmKHQ9ZT8odC5zdGF0c0xpc3RlbmVyX3x8KHQuc3RhdHNMaXN0ZW5lcl89bmV3IFhjKHQuc3RhdHNfKSksdC5zdGF0c0xpc3RlbmVyXy5nZXQoKSk6dC5zdGF0c18uZ2V0KCksaT1PYmplY3Qua2V5cyh0KS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXgoZS5sZW5ndGgsdCl9LDApLGlhKHQsZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dCxyPXQubGVuZ3RoO3I8aSsyO3IrKyluKz0iICI7Y29uc29sZS5sb2cobitlKX0pKX0sc3RhdHNJbmNyZW1lbnRDb3VudGVyOmZ1bmN0aW9uKHQsZSl7dD10LnJlcG8sZT1lLHQuc3RhdHNfLmluY3JlbWVudENvdW50ZXIoZSksdD10LnN0YXRzUmVwb3J0ZXJfLGU9ZSx0LnN0YXRzVG9SZXBvcnRfW2VdPSEwfSxkYXRhVXBkYXRlQ291bnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwby5kYXRhVXBkYXRlQ291bnR9LGludGVyY2VwdFNlcnZlckRhdGE6ZnVuY3Rpb24odCxlKXt0PXQucmVwbyxlPWUsdC5pbnRlcmNlcHRTZXJ2ZXJEYXRhQ2FsbGJhY2tfPWV9LGluaXRTdGFuZGFsb25lOmZ1bmN0aW9uKHQpe3ZhciBlPXQuYXBwLG49dC51cmwscj10LnZlcnNpb24saT10LmN1c3RvbUF1dGhJbXBsLG89dC5uYW1lc3BhY2UsdD12b2lkIDAhPT0odD10Lm5vZGVBZG1pbikmJnQ7cmV0dXJuIEZhKHIpLChyPW5ldyBycygiYXV0aC1pbnRlcm5hbCIsbmV3IG9zKCJkYXRhYmFzZS1zdGFuZGFsb25lIikpKS5zZXRDb21wb25lbnQobmV3IHRzKCJhdXRoLWludGVybmFsIixmdW5jdGlvbigpe3JldHVybiBpfSwiUFJJVkFURSIpKSx7aW5zdGFuY2U6UnAoZSxyLG4sdCksbmFtZXNwYWNlOm99fX0pLFNuPVR1O1R1LnByb3RvdHlwZS5zaW1wbGVMaXN0ZW49ZnVuY3Rpb24odCxlKXt0aGlzLnNlbmRSZXF1ZXN0KCJxIix7cDp0fSxlKX0sVHUucHJvdG90eXBlLmVjaG89ZnVuY3Rpb24odCxlKXt0aGlzLnNlbmRSZXF1ZXN0KCJlY2hvIix7ZDp0fSxlKX07dmFyIHhwLExwPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLERhdGFDb25uZWN0aW9uOlNuLFJlYWxUaW1lQ29ubmVjdGlvbjpLYSxoaWphY2tIYXNoOmZ1bmN0aW9uKGkpe3ZhciBvPVR1LnByb3RvdHlwZS5wdXQ7cmV0dXJuIFR1LnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwIT09ciYmKHI9aSgpKSxvLmNhbGwodGhpcyx0LGUsbixyKX0sZnVuY3Rpb24oKXtUdS5wcm90b3R5cGUucHV0PW99fSxDb25uZWN0aW9uVGFyZ2V0OndhLHF1ZXJ5SWRlbnRpZmllcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5xdWVyeUlkZW50aWZpZXIoKX0sZm9yY2VSZXN0Q2xpZW50OmZ1bmN0aW9uKHQpe2twPXR9fSksTXA9UHAuU2VydmVyVmFsdWU7RmEoKHhwPVhsKS5TREtfVkVSU0lPTikseHAuSU5URVJOQUwucmVnaXN0ZXJDb21wb25lbnQobmV3IHRzKCJkYXRhYmFzZSIsZnVuY3Rpb24odCxlKXtlPWUuaW5zdGFuY2VJZGVudGlmaWVyO3JldHVybiBScCh0LmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSx0LmdldFByb3ZpZGVyKCJhdXRoLWludGVybmFsIiksZSx2b2lkIDApfSwiUFVCTElDIikuc2V0U2VydmljZVByb3BzKHtSZWZlcmVuY2U6U3AsUXVlcnk6YnAsRGF0YWJhc2U6UHAsRGF0YVNuYXBzaG90OnNwLGVuYWJsZUxvZ2dpbmc6TXMsSU5URVJOQUw6RHAsU2VydmVyVmFsdWU6TXAsVEVTVF9BQ0NFU1M6THB9KS5zZXRNdWx0aXBsZUluc3RhbmNlcyghMCkpLHhwLnJlZ2lzdGVyVmVyc2lvbigiQGZpcmViYXNlL2RhdGFiYXNlIiwiMC45LjciKTt2YXIgRnA9ZnVuY3Rpb24odCxlKXtyZXR1cm4oRnA9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHQsZSl7dC5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pfSkodCxlKX07ZnVuY3Rpb24gVXAodCl7dmFyIGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG49ZSYmdFtlXSxyPTA7aWYobilyZXR1cm4gbi5jYWxsKHQpO2lmKHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6KHQ9dCYmcj49dC5sZW5ndGg/dm9pZCAwOnQpJiZ0W3IrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKGU/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfXZhciBHPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sanA9e30scXA9R3x8c2VsZjtmdW5jdGlvbiBWcCgpe31mdW5jdGlvbiBCcCh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4iYXJyYXkiPT0oZT0ib2JqZWN0IiE9ZT9lOnQ/QXJyYXkuaXNBcnJheSh0KT8iYXJyYXkiOmU6Im51bGwiKXx8Im9iamVjdCI9PWUmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGh9ZnVuY3Rpb24gS3AodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIm9iamVjdCI9PWUmJm51bGwhPXR8fCJmdW5jdGlvbiI9PWV9dmFyIFdwPSJjbG9zdXJlX3VpZF8iKygxZTkqTWF0aC5yYW5kb20oKT4+PjApLEhwPTA7ZnVuY3Rpb24gR3AodCxlLG4pe3JldHVybiB0LmNhbGwuYXBwbHkodC5iaW5kLGFyZ3VtZW50cyl9ZnVuY3Rpb24genAoZSxuLHQpe2lmKCFlKXRocm93IEVycm9yKCk7aWYoMjxhcmd1bWVudHMubGVuZ3RoKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkodCxyKSxlLmFwcGx5KG4sdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KG4sYXJndW1lbnRzKX19ZnVuY3Rpb24gUXAodCxlLG4pe3JldHVybihRcD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmLTEhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLnRvU3RyaW5nKCkuaW5kZXhPZigibmF0aXZlIGNvZGUiKT9HcDp6cCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIFlwKGUpe3ZhciBuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1uLnNsaWNlKCk7cmV0dXJuIHQucHVzaC5hcHBseSh0LGFyZ3VtZW50cyksZS5hcHBseSh0aGlzLHQpfX1mdW5jdGlvbiBYcCgpe3JldHVybiBEYXRlLm5vdygpfWZ1bmN0aW9uIEpwKHQsbyl7ZnVuY3Rpb24gZSgpe31lLnByb3RvdHlwZT1vLnByb3RvdHlwZSx0Llg9by5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IGUsKHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQpLktiPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMl09YXJndW1lbnRzW2ldO3JldHVybiBvLnByb3RvdHlwZVtlXS5hcHBseSh0LHIpfX1mdW5jdGlvbiAkcCgpe3RoaXMuaj10aGlzLmosdGhpcy5pPXRoaXMuaX0kcC5wcm90b3R5cGUuaj0hMSwkcC5wcm90b3R5cGUuamE9ZnVuY3Rpb24oKXt2YXIgdDshdGhpcy5qJiYodGhpcy5qPSEwLHRoaXMuRygpLDApJiYodD10aGlzLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LFdwKSYmdFtXcF18fCh0W1dwXT0rK0hwKSl9LCRwLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7aWYodGhpcy5pKWZvcig7dGhpcy5pLmxlbmd0aDspdGhpcy5pLnNoaWZ0KCkoKX07dmFyIFpwPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLHZvaWQgMCl9OmZ1bmN0aW9uKHQsZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiJzdHJpbmciIT10eXBlb2YgZXx8MSE9ZS5sZW5ndGg/LTE6dC5pbmRleE9mKGUsMCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYobiBpbiB0JiZ0W25dPT09ZSlyZXR1cm4gbjtyZXR1cm4tMX0sdGQ9QXJyYXkucHJvdG90eXBlLmZvckVhY2g/ZnVuY3Rpb24odCxlLG4pe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodCxlLG4pfTpmdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPXQubGVuZ3RoLGk9InN0cmluZyI9PXR5cGVvZiB0P3Quc3BsaXQoIiIpOnQsbz0wO288cjtvKyspbyBpbiBpJiZlLmNhbGwobixpW29dLG8sdCl9O2Z1bmN0aW9uIGVkKCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sYXJndW1lbnRzKX1mdW5jdGlvbiBuZCh0KXt2YXIgZT10Lmxlbmd0aDtpZigwPGUpe2Zvcih2YXIgbj1BcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPXRbcl07cmV0dXJuIG59cmV0dXJuW119ZnVuY3Rpb24gcmQodCl7cmV0dXJuL15bXHNceGEwXSokLy50ZXN0KHQpfXZhciBpZCxvZD1TdHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbSgpfTpmdW5jdGlvbih0KXtyZXR1cm4vXltcc1x4YTBdKihbXHNcU10qPylbXHNceGEwXSokLy5leGVjKHQpWzFdfTtmdW5jdGlvbiBzZCh0LGUpe3JldHVybi0xIT10LmluZGV4T2YoZSl9ZnVuY3Rpb24gYWQodCxlKXtyZXR1cm4gdDxlPy0xOmU8dD8xOjB9dDp7dmFyIHVkPXFwLm5hdmlnYXRvcjtpZih1ZCl7dWQ9dWQudXNlckFnZW50O2lmKHVkKXtpZD11ZDticmVhayB0fX1pZD0iIn1mdW5jdGlvbiBjZCh0LGUsbil7Zm9yKHZhciByIGluIHQpZS5jYWxsKG4sdFtyXSxyLHQpfWZ1bmN0aW9uIGhkKHQpe3ZhciBlLG49e307Zm9yKGUgaW4gdCluW2VdPXRbZV07cmV0dXJuIG59dmFyIGxkPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIik7ZnVuY3Rpb24gZmQodCl7Zm9yKHZhciBlLG4scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe2ZvcihlIGluIG49YXJndW1lbnRzW3JdKXRbZV09bltlXTtmb3IodmFyIGk9MDtpPGxkLmxlbmd0aDtpKyspZT1sZFtpXSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixlKSYmKHRbZV09bltlXSl9fWZ1bmN0aW9uIHBkKHQpe3JldHVybiBwZFsiICJdKHQpLHR9cGRbIiAiXT1WcDt2YXIgZGQsdmQ9c2QoaWQsIk9wZXJhIiksZ2Q9c2QoaWQsIlRyaWRlbnQiKXx8c2QoaWQsIk1TSUUiKSx5ZD1zZChpZCwiRWRnZSIpLG1kPXlkfHxnZCxiZD1zZChpZCwiR2Vja28iKSYmIShzZChpZC50b0xvd2VyQ2FzZSgpLCJ3ZWJraXQiKSYmIXNkKGlkLCJFZGdlIikpJiYhKHNkKGlkLCJUcmlkZW50Iil8fHNkKGlkLCJNU0lFIikpJiYhc2QoaWQsIkVkZ2UiKSx3ZD1zZChpZC50b0xvd2VyQ2FzZSgpLCJ3ZWJraXQiKSYmIXNkKGlkLCJFZGdlIik7ZnVuY3Rpb24gX2QoKXt2YXIgdD1xcC5kb2N1bWVudDtyZXR1cm4gdD90LmRvY3VtZW50TW9kZTp2b2lkIDB9dDp7dmFyIElkPSIiLFRkPShUZD1pZCxiZD8vcnY6KFteXCk7XSspKFwpfDspLy5leGVjKFRkKTp5ZD8vRWRnZVwvKFtcZFwuXSspLy5leGVjKFRkKTpnZD8vXGIoPzpNU0lFfHJ2KVs6IF0oW15cKTtdKykoXCl8OykvLmV4ZWMoVGQpOndkPy9XZWJLaXRcLyhcUyspLy5leGVjKFRkKTp2ZD8vKD86VmVyc2lvbilbIFwvXT8oXFMrKS8uZXhlYyhUZCk6dm9pZCAwKTtpZihUZCYmKElkPVRkP1RkWzFdOiIiKSxnZCl7VGQ9X2QoKTtpZihudWxsIT1UZCYmVGQ+cGFyc2VGbG9hdChJZCkpe2RkPVN0cmluZyhUZCk7YnJlYWsgdH19ZGQ9SWR9dmFyIEVkPXt9O2Z1bmN0aW9uIFNkKGEpe3JldHVybiB0PWEsZT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9b2QoU3RyaW5nKGRkKSkuc3BsaXQoIi4iKSxuPW9kKFN0cmluZyhhKSkuc3BsaXQoIi4iKSxyPU1hdGgubWF4KGUubGVuZ3RoLG4ubGVuZ3RoKSxpPTA7MD09dCYmaTxyO2krKylmb3IodmFyIG89ZVtpXXx8IiIscz1uW2ldfHwiIjtvPS8oXGQqKShcRCopKC4qKS8uZXhlYyhvKXx8WyIiLCIiLCIiLCIiXSxzPS8oXGQqKShcRCopKC4qKS8uZXhlYyhzKXx8WyIiLCIiLCIiLCIiXSwoMCE9b1swXS5sZW5ndGh8fDAhPXNbMF0ubGVuZ3RoKSYmKHQ9YWQoMD09b1sxXS5sZW5ndGg/MDpwYXJzZUludChvWzFdLDEwKSwwPT1zWzFdLmxlbmd0aD8wOnBhcnNlSW50KHNbMV0sMTApKXx8YWQoMD09b1syXS5sZW5ndGgsMD09c1syXS5sZW5ndGgpfHxhZChvWzJdLHNbMl0pLG89b1szXSxzPXNbM10sMD09dCk7KTtyZXR1cm4gMDw9dH0sbj1FZCxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KT9uW3RdOm5bdF09ZSh0KTt2YXIgdCxlLG59dmFyIENkPXFwLmRvY3VtZW50JiZnZCYmKF9kKCl8fHBhcnNlSW50KGRkLDEwKSl8fHZvaWQgMCxOZD0hZ2R8fDk8PU51bWJlcihDZCksQWQ9Z2QmJiFTZCgiOSIpLGtkPWZ1bmN0aW9uKCl7aWYoIXFwLmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIHQ9ITEsZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt0PSEwfX0pO3RyeXtxcC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixWcCxlKSxxcC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixWcCxlKX1jYXRjaCh0KXt9cmV0dXJuIHR9KCk7ZnVuY3Rpb24gUmQodCxlKXt0aGlzLnR5cGU9dCx0aGlzLmE9dGhpcy50YXJnZXQ9ZSx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITF9ZnVuY3Rpb24gUGQodCxlKXtpZihSZC5jYWxsKHRoaXMsdD90LnR5cGU6IiIpLHRoaXMucmVsYXRlZFRhcmdldD10aGlzLmE9dGhpcy50YXJnZXQ9bnVsbCx0aGlzLmJ1dHRvbj10aGlzLnNjcmVlblk9dGhpcy5zY3JlZW5YPXRoaXMuY2xpZW50WT10aGlzLmNsaWVudFg9MCx0aGlzLmtleT0iIix0aGlzLm1ldGFLZXk9dGhpcy5zaGlmdEtleT10aGlzLmFsdEtleT10aGlzLmN0cmxLZXk9ITEsdGhpcy5wb2ludGVySWQ9MCx0aGlzLnBvaW50ZXJUeXBlPSIiLHRoaXMuYz1udWxsLHQpe3ZhciBuPXRoaXMudHlwZT10LnR5cGUscj10LmNoYW5nZWRUb3VjaGVzJiZ0LmNoYW5nZWRUb3VjaGVzLmxlbmd0aD90LmNoYW5nZWRUb3VjaGVzWzBdOm51bGw7aWYodGhpcy50YXJnZXQ9dC50YXJnZXR8fHQuc3JjRWxlbWVudCx0aGlzLmE9ZSxlPXQucmVsYXRlZFRhcmdldCl7aWYoYmQpe3Q6e3RyeXtwZChlLm5vZGVOYW1lKTt2YXIgaT0hMDticmVhayB0fWNhdGNoKHQpe31pPSExfWl8fChlPW51bGwpfX1lbHNlIm1vdXNlb3ZlciI9PW4/ZT10LmZyb21FbGVtZW50OiJtb3VzZW91dCI9PW4mJihlPXQudG9FbGVtZW50KTt0aGlzLnJlbGF0ZWRUYXJnZXQ9ZSxyPyh0aGlzLmNsaWVudFg9dm9pZCAwIT09ci5jbGllbnRYP3IuY2xpZW50WDpyLnBhZ2VYLHRoaXMuY2xpZW50WT12b2lkIDAhPT1yLmNsaWVudFk/ci5jbGllbnRZOnIucGFnZVksdGhpcy5zY3JlZW5YPXIuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9ci5zY3JlZW5ZfHwwKToodGhpcy5jbGllbnRYPXZvaWQgMCE9PXQuY2xpZW50WD90LmNsaWVudFg6dC5wYWdlWCx0aGlzLmNsaWVudFk9dm9pZCAwIT09dC5jbGllbnRZP3QuY2xpZW50WTp0LnBhZ2VZLHRoaXMuc2NyZWVuWD10LnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPXQuc2NyZWVuWXx8MCksdGhpcy5idXR0b249dC5idXR0b24sdGhpcy5rZXk9dC5rZXl8fCIiLHRoaXMuY3RybEtleT10LmN0cmxLZXksdGhpcy5hbHRLZXk9dC5hbHRLZXksdGhpcy5zaGlmdEtleT10LnNoaWZ0S2V5LHRoaXMubWV0YUtleT10Lm1ldGFLZXksdGhpcy5wb2ludGVySWQ9dC5wb2ludGVySWR8fDAsdGhpcy5wb2ludGVyVHlwZT0ic3RyaW5nIj09dHlwZW9mIHQucG9pbnRlclR5cGU/dC5wb2ludGVyVHlwZTpPZFt0LnBvaW50ZXJUeXBlXXx8IiIsKHRoaXMuYz10KS5kZWZhdWx0UHJldmVudGVkJiZ0aGlzLmIoKX19UmQucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITB9LEpwKFBkLFJkKTt2YXIgT2Q9ezI6InRvdWNoIiwzOiJwZW4iLDQ6Im1vdXNlIn07UGQucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXtQZC5YLmIuY2FsbCh0aGlzKTt2YXIgdD10aGlzLmM7aWYodC5wcmV2ZW50RGVmYXVsdCl0LnByZXZlbnREZWZhdWx0KCk7ZWxzZSBpZih0LnJldHVyblZhbHVlPSExLEFkKXRyeXsodC5jdHJsS2V5fHwxMTI8PXQua2V5Q29kZSYmdC5rZXlDb2RlPD0xMjMpJiYodC5rZXlDb2RlPS0xKX1jYXRjaCh0KXt9fTt2YXIgRGQ9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKygxZTYqTWF0aC5yYW5kb20oKXwwKSx4ZD0wO2Z1bmN0aW9uIExkKHQsZSxuLHIsaSl7dGhpcy5saXN0ZW5lcj10LHRoaXMucHJveHk9bnVsbCx0aGlzLnNyYz1lLHRoaXMudHlwZT1uLHRoaXMuY2FwdHVyZT0hIXIsdGhpcy5jYT1pLHRoaXMua2V5PSsreGQsdGhpcy5ZPXRoaXMuWj0hMX1mdW5jdGlvbiBNZCh0KXt0Llk9ITAsdC5saXN0ZW5lcj1udWxsLHQucHJveHk9bnVsbCx0LnNyYz1udWxsLHQuY2E9bnVsbH1mdW5jdGlvbiBGZCh0KXt0aGlzLnNyYz10LHRoaXMuYT17fSx0aGlzLmI9MH1mdW5jdGlvbiBVZCh0LGUpe3ZhciBuLHIsaSxvPWUudHlwZTtvIGluIHQuYSYmKG49dC5hW29dLChpPTA8PShyPVpwKG4sZSkpKSYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKG4sciwxKSxpJiYoTWQoZSksMD09dC5hW29dLmxlbmd0aCYmKGRlbGV0ZSB0LmFbb10sdC5iLS0pKSl9ZnVuY3Rpb24gamQodCxlLG4scil7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDsrK2kpe3ZhciBvPXRbaV07aWYoIW8uWSYmby5saXN0ZW5lcj09ZSYmby5jYXB0dXJlPT0hIW4mJm8uY2E9PXIpcmV0dXJuIGl9cmV0dXJuLTF9RmQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUsbixyLGkpe3ZhciBvPXQudG9TdHJpbmcoKTsodD10aGlzLmFbb10pfHwodD10aGlzLmFbb109W10sdGhpcy5iKyspO3ZhciBzPWpkKHQsZSxyLGkpO3JldHVybi0xPHM/KGU9dFtzXSxufHwoZS5aPSExKSk6KChlPW5ldyBMZChlLHRoaXMuc3JjLG8sISFyLGkpKS5aPW4sdC5wdXNoKGUpKSxlfTt2YXIgcWQ9ImNsb3N1cmVfbG1fIisoMWU2Kk1hdGgucmFuZG9tKCl8MCksVmQ9e307ZnVuY3Rpb24gQmQodCxlLG4scixpKXtpZihyJiZyLm9uY2UpcmV0dXJuIGZ1bmN0aW9uIHQoZSxuLHIsaSxvKXtpZihBcnJheS5pc0FycmF5KG4pKXtmb3IodmFyIHM9MDtzPG4ubGVuZ3RoO3MrKyl0KGUsbltzXSxyLGksbyk7cmV0dXJuIG51bGx9cj1YZChyKTtyZXR1cm4gZSYmZVtEZF0/ZS53YShuLHIsS3AoaSk/ISFpLmNhcHR1cmU6ISFpLG8pOktkKGUsbixyLCEwLGksbyl9KHQsZSxuLHIsaSk7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciBvPTA7bzxlLmxlbmd0aDtvKyspQmQodCxlW29dLG4scixpKTtyZXR1cm4gbnVsbH1yZXR1cm4gbj1YZChuKSx0JiZ0W0RkXT90LnZhKGUsbixLcChyKT8hIXIuY2FwdHVyZTohIXIsaSk6S2QodCxlLG4sITEscixpKX1mdW5jdGlvbiBLZCh0LGUsbixyLGksbyl7aWYoIWUpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO3ZhciBzPUtwKGkpPyEhaS5jYXB0dXJlOiEhaTtpZihzJiYhTmQpcmV0dXJuIG51bGw7dmFyIGEsdSxjPVFkKHQpO2lmKGN8fCh0W3FkXT1jPW5ldyBGZCh0KSksKG49Yy5hZGQoZSxuLHIscyxvKSkucHJveHkpcmV0dXJuIG47aWYoYT16ZCxyPXU9TmQ/ZnVuY3Rpb24odCl7cmV0dXJuIGEuY2FsbCh1LnNyYyx1Lmxpc3RlbmVyLHQpfTpmdW5jdGlvbih0KXtpZighKHQ9YS5jYWxsKHUuc3JjLHUubGlzdGVuZXIsdCkpKXJldHVybiB0fSwobi5wcm94eT1yKS5zcmM9dCxyLmxpc3RlbmVyPW4sdC5hZGRFdmVudExpc3RlbmVyKXZvaWQgMD09PShpPSFrZD9zOmkpJiYoaT0hMSksdC5hZGRFdmVudExpc3RlbmVyKGUudG9TdHJpbmcoKSxyLGkpO2Vsc2UgaWYodC5hdHRhY2hFdmVudCl0LmF0dGFjaEV2ZW50KEhkKGUudG9TdHJpbmcoKSkscik7ZWxzZXtpZighdC5hZGRMaXN0ZW5lcnx8IXQucmVtb3ZlTGlzdGVuZXIpdGhyb3cgRXJyb3IoImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS4iKTt0LmFkZExpc3RlbmVyKHIpfXJldHVybiBufWZ1bmN0aW9uIFdkKHQpe3ZhciBlLG4scjsibnVtYmVyIiE9dHlwZW9mIHQmJnQmJiF0LlkmJigoZT10LnNyYykmJmVbRGRdP1VkKGUuYyx0KToobj10LnR5cGUscj10LnByb3h5LGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj9lLnJlbW92ZUV2ZW50TGlzdGVuZXIobixyLHQuY2FwdHVyZSk6ZS5kZXRhY2hFdmVudD9lLmRldGFjaEV2ZW50KEhkKG4pLHIpOmUuYWRkTGlzdGVuZXImJmUucmVtb3ZlTGlzdGVuZXImJmUucmVtb3ZlTGlzdGVuZXIociksKG49UWQoZSkpPyhVZChuLHQpLDA9PW4uYiYmKG4uc3JjPW51bGwsZVtxZF09bnVsbCkpOk1kKHQpKSl9ZnVuY3Rpb24gSGQodCl7cmV0dXJuIHQgaW4gVmQ/VmRbdF06VmRbdF09Im9uIit0fWZ1bmN0aW9uIEdkKHQsZSl7dmFyIG49dC5saXN0ZW5lcixyPXQuY2F8fHQuc3JjO3JldHVybiB0LlomJldkKHQpLG4uY2FsbChyLGUpfWZ1bmN0aW9uIHpkKHQsZSl7aWYodC5ZKXJldHVybiEwO2lmKE5kKXJldHVybiBHZCh0LG5ldyBQZChlLHRoaXMpKTtpZighZSl0OntlPVsid2luZG93IiwiZXZlbnQiXTtmb3IodmFyIG49cXAscj0wO3I8ZS5sZW5ndGg7cisrKWlmKG51bGw9PShuPW5bZVtyXV0pKXtlPW51bGw7YnJlYWsgdH1lPW59cmV0dXJuIEdkKHQsZT1uZXcgUGQoZSx0aGlzKSl9ZnVuY3Rpb24gUWQodCl7cmV0dXJuKHQ9dFtxZF0paW5zdGFuY2VvZiBGZD90Om51bGx9dmFyIFlkPSJfX2Nsb3N1cmVfZXZlbnRzX2ZuXyIrKDFlOSpNYXRoLnJhbmRvbSgpPj4+MCk7ZnVuY3Rpb24gWGQoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTooZVtZZF18fChlW1lkXT1mdW5jdGlvbih0KXtyZXR1cm4gZS5oYW5kbGVFdmVudCh0KX0pLGVbWWRdKX1mdW5jdGlvbiBKZCgpeyRwLmNhbGwodGhpcyksdGhpcy5jPW5ldyBGZCh0aGlzKSwodGhpcy5KPXRoaXMpLkM9bnVsbH1mdW5jdGlvbiAkZCh0LGUpe3ZhciBuLHI9dC5DO2lmKHIpZm9yKG49W107cjtyPXIuQyluLnB1c2gocik7aWYodD10Lkoscj1lLnR5cGV8fGUsInN0cmluZyI9PXR5cGVvZiBlP2U9bmV3IFJkKGUsdCk6ZSBpbnN0YW5jZW9mIFJkP2UudGFyZ2V0PWUudGFyZ2V0fHx0OihzPWUsZmQoZT1uZXcgUmQocix0KSxzKSkscz0hMCxuKWZvcih2YXIgaT1uLmxlbmd0aC0xOzA8PWk7aS0tKXZhciBvPWUuYT1uW2ldLHM9WmQobyxyLCEwLGUpJiZzO2lmKHM9WmQobz1lLmE9dCxyLCEwLGUpJiZzLHM9WmQobyxyLCExLGUpJiZzLG4pZm9yKGk9MDtpPG4ubGVuZ3RoO2krKylzPVpkKG89ZS5hPW5baV0sciwhMSxlKSYmc31mdW5jdGlvbiBaZCh0LGUsbixyKXtpZighKGU9dC5jLmFbU3RyaW5nKGUpXSkpcmV0dXJuITA7ZT1lLmNvbmNhdCgpO2Zvcih2YXIgaT0hMCxvPTA7bzxlLmxlbmd0aDsrK28pe3ZhciBzLGEsdT1lW29dO3UmJiF1LlkmJnUuY2FwdHVyZT09biYmKHM9dS5saXN0ZW5lcixhPXUuY2F8fHUuc3JjLHUuWiYmVWQodC5jLHUpLGk9ITEhPT1zLmNhbGwoYSxyKSYmaSl9cmV0dXJuIGkmJiFyLmRlZmF1bHRQcmV2ZW50ZWR9SnAoSmQsJHApLEpkLnByb3RvdHlwZVtEZF09ITAsKHo9SmQucHJvdG90eXBlKS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuLHIpe0JkKHRoaXMsdCxlLG4scil9LHoucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGUsbixyKXshZnVuY3Rpb24gdChlLG4scixpLG8pe2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBzPTA7czxuLmxlbmd0aDtzKyspdChlLG5bc10scixpLG8pO2Vsc2UgaT1LcChpKT8hIWkuY2FwdHVyZTohIWkscj1YZChyKSxlJiZlW0RkXT8oZT1lLmMsKG49U3RyaW5nKG4pLnRvU3RyaW5nKCkpaW4gZS5hJiYtMTwocj1qZChzPWUuYVtuXSxyLGksbykpJiYoTWQoc1tyXSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKHMsciwxKSwwPT1zLmxlbmd0aCYmKGRlbGV0ZSBlLmFbbl0sZS5iLS0pKSk6KGU9ZSYmUWQoZSkpJiYobj1lLmFbbi50b1N0cmluZygpXSwocj0oZT0tMSk8KGU9bj9qZChuLHIsaSxvKTplKT9uW2VdOm51bGwpJiZXZChyKSl9KHRoaXMsdCxlLG4scil9LHouRz1mdW5jdGlvbigpe2lmKEpkLlguRy5jYWxsKHRoaXMpLHRoaXMuYyl7dmFyIHQsZT10aGlzLmM7Zm9yKHQgaW4gZS5hKXtmb3IodmFyIG49ZS5hW3RdLHI9MDtyPG4ubGVuZ3RoO3IrKylNZChuW3JdKTtkZWxldGUgZS5hW3RdLGUuYi0tfX10aGlzLkM9bnVsbH0sei52YT1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdGhpcy5jLmFkZChTdHJpbmcodCksZSwhMSxuLHIpfSx6LndhPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0aGlzLmMuYWRkKFN0cmluZyh0KSxlLCEwLG4scil9O3ZhciB0dj1xcC5KU09OLnN0cmluZ2lmeTtmdW5jdGlvbiBldigpe3RoaXMuYj10aGlzLmE9bnVsbH12YXIgbnYscnY9KGl2LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gMDx0aGlzLmI/KHRoaXMuYi0tLHQ9dGhpcy5hLHRoaXMuYT10Lm5leHQsdC5uZXh0PW51bGwpOnQ9dGhpcy5jKCksdH0sbmV3IGl2KGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvdn0sZnVuY3Rpb24odCl7dC5yZXNldCgpfSkpO2Z1bmN0aW9uIGl2KHQsZSl7dGhpcy5jPXQsdGhpcy5mPWUsdGhpcy5iPTAsdGhpcy5hPW51bGx9ZnVuY3Rpb24gb3YoKXt0aGlzLm5leHQ9dGhpcy5iPXRoaXMuYT1udWxsfWZ1bmN0aW9uIHN2KHQsZSl7dmFyIG47bnZ8fChuPXFwLlByb21pc2UucmVzb2x2ZSh2b2lkIDApLG52PWZ1bmN0aW9uKCl7bi50aGVuKGN2KX0pLGF2fHwobnYoKSxhdj0hMCksdXYuYWRkKHQsZSl9ZXYucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUpe3ZhciBuPXJ2LmdldCgpO24uc2V0KHQsZSksdGhpcy5iP3RoaXMuYi5uZXh0PW46dGhpcy5hPW4sdGhpcy5iPW59LG92LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLm5leHQ9bnVsbH07dmFyIGF2PSEob3YucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5uZXh0PXRoaXMuYj10aGlzLmE9bnVsbH0pLHV2PW5ldyBldjtmdW5jdGlvbiBjdigpe2Zvcih2YXIgdCxlO249ZT12b2lkIDAsbj1udWxsLChlPXV2KS5hJiYobj1lLmEsZS5hPWUuYS5uZXh0LGUuYXx8KGUuYj1udWxsKSxuLm5leHQ9bnVsbCksdD1uOyl7dHJ5e3QuYS5jYWxsKHQuYil9Y2F0Y2godCl7IWZ1bmN0aW9uKHQpe3FwLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB0fSwwKX0odCl9dmFyIG49cnY7bi5mKHQpLG4uYjwxMDAmJihuLmIrKyx0Lm5leHQ9bi5hLG4uYT10KX1hdj0hMX1mdW5jdGlvbiBodih0LGUpe0pkLmNhbGwodGhpcyksdGhpcy5iPXR8fDEsdGhpcy5hPWV8fHFwLHRoaXMuZj1RcCh0aGlzLlphLHRoaXMpLHRoaXMuZz1YcCgpfWZ1bmN0aW9uIGx2KHQpe3QuYWE9ITEsdC5NJiYodC5hLmNsZWFyVGltZW91dCh0Lk0pLHQuTT1udWxsKX1mdW5jdGlvbiBmdih0LGUsbil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpbiYmKHQ9UXAodCxuKSk7ZWxzZXtpZighdHx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQuaGFuZGxlRXZlbnQpdGhyb3cgRXJyb3IoIkludmFsaWQgbGlzdGVuZXIgYXJndW1lbnQiKTt0PVFwKHQuaGFuZGxlRXZlbnQsdCl9cmV0dXJuIDIxNDc0ODM2NDc8TnVtYmVyKGUpPy0xOnFwLnNldFRpbWVvdXQodCxlfHwwKX1KcChodixKZCksKHo9aHYucHJvdG90eXBlKS5hYT0hMSx6Lk09bnVsbCx6LlphPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5hYSYmKDA8KHQ9WHAoKS10aGlzLmcpJiZ0PC44KnRoaXMuYj90aGlzLk09dGhpcy5hLnNldFRpbWVvdXQodGhpcy5mLHRoaXMuYi10KToodGhpcy5NJiYodGhpcy5hLmNsZWFyVGltZW91dCh0aGlzLk0pLHRoaXMuTT1udWxsKSwkZCh0aGlzLCJ0aWNrIiksdGhpcy5hYSYmKGx2KHRoaXMpLHRoaXMuc3RhcnQoKSkpKX0sei5zdGFydD1mdW5jdGlvbigpe3RoaXMuYWE9ITAsdGhpcy5NfHwodGhpcy5NPXRoaXMuYS5zZXRUaW1lb3V0KHRoaXMuZix0aGlzLmIpLHRoaXMuZz1YcCgpKX0sei5HPWZ1bmN0aW9uKCl7aHYuWC5HLmNhbGwodGhpcyksbHYodGhpcyksZGVsZXRlIHRoaXMuYX07dmFyIHB2LGR2LHZ2LGd2PShGcChkdj1tdix2dj1wdj0kcCksZHYucHJvdG90eXBlPW51bGw9PT12dj9PYmplY3QuY3JlYXRlKHZ2KTooeXYucHJvdG90eXBlPXZ2LnByb3RvdHlwZSxuZXcgeXYpLG12LnByb3RvdHlwZS5mPWZ1bmN0aW9uKHQpe3RoaXMuYj1hcmd1bWVudHMsdGhpcy5hP3RoaXMuYz0hMDpmdW5jdGlvbiB0KGUpe2UuYT1mdihmdW5jdGlvbigpe2UuYT1udWxsLGUuYyYmKGUuYz0hMSx0KGUpKX0sZS5oKTt2YXIgbj1lLmI7ZS5iPW51bGwsZS5nLmFwcGx5KG51bGwsbil9KHRoaXMpfSxtdi5wcm90b3R5cGUuRz1mdW5jdGlvbigpe3B2LnByb3RvdHlwZS5HLmNhbGwodGhpcyksdGhpcy5hJiYocXAuY2xlYXJUaW1lb3V0KHRoaXMuYSksdGhpcy5hPW51bGwsdGhpcy5jPSExLHRoaXMuYj1udWxsKX0sbXYpO2Z1bmN0aW9uIHl2KCl7dGhpcy5jb25zdHJ1Y3Rvcj1kdn1mdW5jdGlvbiBtdih0LGUpe3ZhciBuPXB2LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uZz10LG4uaD1lLG4uYj1udWxsLG4uYz0hMSxuLmE9bnVsbCxufWZ1bmN0aW9uIGJ2KHQpeyRwLmNhbGwodGhpcyksdGhpcy5iPXQsdGhpcy5hPXt9fUpwKGJ2LCRwKTt2YXIgd3Y9W107ZnVuY3Rpb24gX3YodCxlLG4scil7QXJyYXkuaXNBcnJheShuKXx8KG4mJih3dlswXT1uLnRvU3RyaW5nKCkpLG49d3YpO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1CZChlLG5baV0scnx8dC5oYW5kbGVFdmVudCwhMSx0LmJ8fHQpO2lmKCFvKWJyZWFrO3QuYVtvLmtleV09b319ZnVuY3Rpb24gSXYodCl7Y2QodC5hLGZ1bmN0aW9uKHQsZSl7dGhpcy5hLmhhc093blByb3BlcnR5KGUpJiZXZCh0KX0sdCksdC5hPXt9fWZ1bmN0aW9uIFR2KCl7dGhpcy5hPSEwfWZ1bmN0aW9uIEV2KHQsZSxuLHIpe3QuaW5mbyhmdW5jdGlvbigpe3JldHVybiJYTUxIVFRQIFRFWFQgKCIrZSsiKTogIitmdW5jdGlvbih0LGUpe2lmKCF0LmEpcmV0dXJuIGU7aWYoIWUpcmV0dXJuIG51bGw7dHJ5e3ZhciBuPUpTT04ucGFyc2UoZSk7aWYobilmb3IodD0wO3Q8bi5sZW5ndGg7dCsrKWlmKEFycmF5LmlzQXJyYXkoblt0XSkpe3ZhciByPW5bdF07aWYoIShyLmxlbmd0aDwyKSl7dmFyIGk9clsxXTtpZihBcnJheS5pc0FycmF5KGkpJiYhKGkubGVuZ3RoPDEpKXtyPWlbMF07aWYoIm5vb3AiIT1yJiYic3RvcCIhPXImJiJjbG9zZSIhPXIpZm9yKHZhciBvPTE7bzxpLmxlbmd0aDtvKyspaVtvXT0iIn19fXJldHVybiB0dihuKX1jYXRjaCh0KXtyZXR1cm4gZX19KHQsbikrKHI/IiAiK3I6IiIpfSl9YnYucHJvdG90eXBlLkc9ZnVuY3Rpb24oKXtidi5YLkcuY2FsbCh0aGlzKSxJdih0aGlzKX0sYnYucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIkV2ZW50SGFuZGxlci5oYW5kbGVFdmVudCBub3QgaW1wbGVtZW50ZWQiKX0sVHYucHJvdG90eXBlLmluZm89ZnVuY3Rpb24oKXt9O3ZhciBTdj17fSxDdj1udWxsO2Z1bmN0aW9uIE52KCl7cmV0dXJuIEN2PUN2fHxuZXcgSmR9ZnVuY3Rpb24gQXYodCl7UmQuY2FsbCh0aGlzLFN2LkZhLHQpfWZ1bmN0aW9uIGt2KHQpe3ZhciBlPU52KCk7JGQoZSxuZXcgQXYoZSkpfWZ1bmN0aW9uIFJ2KHQsZSl7UmQuY2FsbCh0aGlzLFN2LlNUQVRfRVZFTlQsdCksdGhpcy5zdGF0PWV9ZnVuY3Rpb24gUHYodCl7dmFyIGU9TnYoKTskZChlLG5ldyBSdihlLHQpKX1mdW5jdGlvbiBPdih0KXtSZC5jYWxsKHRoaXMsU3YuR2EsdCl9ZnVuY3Rpb24gRHYodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBFcnJvcigiRm4gbXVzdCBub3QgYmUgbnVsbCBhbmQgbXVzdCBiZSBhIGZ1bmN0aW9uIik7cmV0dXJuIHFwLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0KCl9LGUpfVN2LkZhPSJzZXJ2ZXJyZWFjaGFiaWxpdHkiLEpwKEF2LFJkKSxTdi5TVEFUX0VWRU5UPSJzdGF0ZXZlbnQiLEpwKFJ2LFJkKSxTdi5HYT0idGltaW5nZXZlbnQiLEpwKE92LFJkKTtHYT17Tk9fRVJST1I6MCwkYToxLG5iOjIsbWI6MyxoYjo0LGxiOjUsb2I6NixEYTo3LFRJTUVPVVQ6OCxyYjo5fSxTbj17ZmI6ImNvbXBsZXRlIixCYjoic3VjY2VzcyIsRWE6ImVycm9yIixEYToiYWJvcnQiLHRiOiJyZWFkeSIsdWI6InJlYWR5c3RhdGVjaGFuZ2UiLFRJTUVPVVQ6InRpbWVvdXQiLHBiOiJpbmNyZW1lbnRhbGRhdGEiLHNiOiJwcm9ncmVzcyIsaWI6ImRvd25sb2FkcHJvZ3Jlc3MiLEpiOiJ1cGxvYWRwcm9ncmVzcyJ9O2Z1bmN0aW9uIHh2KCl7fWZ1bmN0aW9uIEx2KHQpe3ZhciBlO3JldHVybiBlPSEoZT10LmEpP3QuYT17fTplfWZ1bmN0aW9uIE12KCl7fXh2LnByb3RvdHlwZS5hPW51bGw7Rz17T1BFTjoiYSIsZWI6ImIiLEVhOiJjIixxYjoiZCJ9O2Z1bmN0aW9uIEZ2KCl7UmQuY2FsbCh0aGlzLCJkIil9ZnVuY3Rpb24gVXYoKXtSZC5jYWxsKHRoaXMsImMiKX1mdW5jdGlvbiBqdigpe31mdW5jdGlvbiBxdih0LGUsbixyKXt0aGlzLmc9dCx0aGlzLmM9ZSx0aGlzLmY9bix0aGlzLlM9cnx8MSx0aGlzLko9bmV3IGJ2KHRoaXMpLHRoaXMuUD1Cdix0PW1kPzEyNTp2b2lkIDAsdGhpcy5SPW5ldyBodih0KSx0aGlzLkI9bnVsbCx0aGlzLmI9ITEsdGhpcy5qPXRoaXMubD10aGlzLmk9dGhpcy5IPXRoaXMudT10aGlzLlQ9dGhpcy5vPW51bGwsdGhpcy5zPVtdLHRoaXMuYT1udWxsLHRoaXMuRD0wLHRoaXMuaD10aGlzLm09bnVsbCx0aGlzLk49LTEsdGhpcy5BPSExLHRoaXMuTz0wLHRoaXMuRj1udWxsLHRoaXMuVj10aGlzLkM9dGhpcy5VPXRoaXMuST0hMX1KcChGdixSZCksSnAoVXYsUmQpLEpwKGp2LHh2KTt2YXIgVnY9bmV3IGp2LEJ2PTQ1ZTMsS3Y9e30sV3Y9e307ZnVuY3Rpb24gSHYodCxlLG4pe3QuSD0xLHQuaT1mZyhzZyhlKSksdC5qPW4sdC5JPSEwLEd2KHQsbnVsbCl9ZnVuY3Rpb24gR3YodCxlKXt0LnU9WHAoKSxRdih0KSx0Lmw9c2codC5pKTt2YXIgcyxhLHUsYyxoLGwsbj10Lmwscj10LlM7QXJyYXkuaXNBcnJheShyKXx8KHI9W1N0cmluZyhyKV0pLFNnKG4uYiwidCIsciksdC5EPTAsdC5hPW15KHQuZyx0LmcuQz9lOm51bGwpLDA8dC5PJiYodC5GPW5ldyBndihRcCh0LkNhLHQsdC5hKSx0Lk8pKSxfdih0LkosdC5hLCJyZWFkeXN0YXRlY2hhbmdlIix0LlhhKSxlPXQuQj9oZCh0LkIpOnt9LHQuaj8odC5tfHwodC5tPSJQT1NUIiksZVsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsdC5hLmJhKHQubCx0Lm0sdC5qLGUpKToodC5tPSJHRVQiLHQuYS5iYSh0LmwsdC5tLG51bGwsZSkpLGt2KDEpLHM9dC5jLGE9dC5tLHU9dC5sLGM9dC5mLGg9dC5TLGw9dC5qLHMuaW5mbyhmdW5jdGlvbigpe2lmKHMuYSlpZihsKWZvcih2YXIgdD0iIixlPWwuc3BsaXQoIiYiKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByLGksbz1lW25dLnNwbGl0KCI9Iik7MTxvLmxlbmd0aCYmKHI9b1swXSxvPW9bMV0sdD0yPD0oaT1yLnNwbGl0KCJfIikpLmxlbmd0aCYmInR5cGUiPT1pWzFdP3QrKHIrIj0iKStvKyImIjp0KyhyKyI9cmVkYWN0ZWQmIikpfWVsc2UgdD1udWxsO2Vsc2UgdD1sO3JldHVybiJYTUxIVFRQIFJFUSAoIitjKyIpIFthdHRlbXB0ICIraCsiXTogIithKyJcbiIrdSsiXG4iK3R9KX1mdW5jdGlvbiB6dih0LGUsbil7Zm9yKHZhciByLGksbyxzPSEwOyF0LkEmJnQuRDxuLmxlbmd0aDspe3ZhciBhPShhPW4sbz1pPXZvaWQgMCxpPShyPXQpLkQsLTE9PShvPWEuaW5kZXhPZigiXG4iLGkpKT9XdjooaT1OdW1iZXIoYS5zdWJzdHJpbmcoaSxvKSksaXNOYU4oaSk/S3Y6KG8rPTEpK2k+YS5sZW5ndGg/V3Y6KGE9YS5zdWJzdHIobyxpKSxyLkQ9bytpLGEpKSk7aWYoYT09V3YpezQ9PWUmJih0Lmg9NCxQdigxNCkscz0hMSksRXYodC5jLHQuZixudWxsLCJbSW5jb21wbGV0ZSBSZXNwb25zZV0iKTticmVha31pZihhPT1Ldil7dC5oPTQsUHYoMTUpLEV2KHQuYyx0LmYsbiwiW0ludmFsaWQgQ2h1bmtdIikscz0hMTticmVha31Fdih0LmMsdC5mLGEsbnVsbCksWnYodCxhKX00PT1lJiYwPT1uLmxlbmd0aCYmKHQuaD0xLFB2KDE2KSxzPSExKSx0LmI9dC5iJiZzLHM/MDxuLmxlbmd0aCYmIXQuViYmKHQuVj0hMCwoZT10LmcpLmE9PXQmJmUuVSYmIWUuRiYmKGUuYy5pbmZvKCJHcmVhdCwgbm8gYnVmZmVyaW5nIHByb3h5IGRldGVjdGVkLiBCeXRlcyByZWNlaXZlZDogIituLmxlbmd0aCksaHkoZSksZS5GPSEwLFB2KDExKSkpOihFdih0LmMsdC5mLG4sIltJbnZhbGlkIENodW5rZWQgUmVzcG9uc2VdIiksJHYodCksSnYodCkpfWZ1bmN0aW9uIFF2KHQpe3QuVD1YcCgpK3QuUCxZdih0LHQuUCl9ZnVuY3Rpb24gWXYodCxlKXtpZihudWxsIT10Lm8pdGhyb3cgRXJyb3IoIldhdGNoRG9nIHRpbWVyIG5vdCBudWxsIik7dC5vPUR2KFFwKHQuVmEsdCksZSl9ZnVuY3Rpb24gWHYodCl7dC5vJiYocXAuY2xlYXJUaW1lb3V0KHQubyksdC5vPW51bGwpfWZ1bmN0aW9uIEp2KHQpezA9PXQuZy52fHx0LkF8fHB5KHQuZyx0KX1mdW5jdGlvbiAkdih0KXtYdih0KTt2YXIgZT10LkY7ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuamEmJmUuamEoKSx0LkY9bnVsbCxsdih0LlIpLEl2KHQuSiksdC5hJiYoZT10LmEsdC5hPW51bGwsZS5hYm9ydCgpLGUuamEoKSl9ZnVuY3Rpb24gWnYodCxlKXt0cnl7dmFyIG4scixpLG8scyxhPXQuZztpZigwIT1hLnYmJihhLmE9PXR8fE9nKGEuYix0KSkpaWYoYS5JPXQuTiwhdC5DJiZPZyhhLmIsdCkmJjM9PWEudil7dHJ5e3ZhciB1PWEua2EuYS5wYXJzZShlKX1jYXRjaCh0KXt1PW51bGx9aWYoQXJyYXkuaXNBcnJheSh1KSYmMz09dS5sZW5ndGgpe3ZhciBjPXU7aWYoMD09Y1swXSl7dDppZighYS5qKXtpZihhLmEpe2lmKCEoYS5hLnUrM2UzPHQudSkpYnJlYWsgdDtmeShhKSxleShhKX1jeShhKSxQdigxOCl9fWVsc2UgYS5vYT1jWzFdLDA8YS5vYS1hLlAmJmNbMl08Mzc1MDAmJmEuSCYmMD09YS5vJiYhYS5tJiYoYS5tPUR2KFFwKGEuU2EsYSksNmUzKSk7aWYoUGcoYS5iKTw9MSYmYS5lYSl7dHJ5e2EuZWEoKX1jYXRjaCh0KXt9YS5lYT12b2lkIDB9fWVsc2UgdnkoYSwxMSl9ZWxzZSBpZighdC5DJiZhLmEhPXR8fGZ5KGEpLCFyZChlKSlmb3IoZT11PWEua2EuYS5wYXJzZShlKSx1PTA7dTxlLmxlbmd0aDt1KyspYz1lW3VdLGEuUD1jWzBdLGM9Y1sxXSwyPT1hLnY/ImMiPT1jWzBdPyhhLko9Y1sxXSxhLmdhPWNbMl0sbnVsbCE9KHI9Y1szXSkmJihhLmhhPXIsYS5jLmluZm8oIlZFUj0iK2EuaGEpKSxudWxsIT0obz1jWzRdKSYmKGEucGE9byxhLmMuaW5mbygiU1ZFUj0iK2EucGEpKSxudWxsIT0ocj1jWzVdKSYmIm51bWJlciI9PXR5cGVvZiByJiYwPHImJihuPTEuNSpyLGEuRD1uLGEuYy5pbmZvKCJiYWNrQ2hhbm5lbFJlcXVlc3RUaW1lb3V0TXNfPSIrbikpLG49YSwobz10LmEpJiYoIShyPW8uYT9vLmEuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtQ2xpZW50LVdpcmUtUHJvdG9jb2wiKTpudWxsKXx8IShpPW4uYikuYSYmKHNkKHIsInNwZHkiKXx8c2QociwicXVpYyIpfHxzZChyLCJoMiIpKSYmKGkuZj1pLmcsaS5hPW5ldyBTZXQsaS5iJiYoRGcoaSxpLmIpLGkuYj1udWxsKSksIW4uQXx8KHM9by5hP28uYS5nZXRSZXNwb25zZUhlYWRlcigiWC1IVFRQLVNlc3Npb24tSWQiKTpudWxsKSYmKG4ubmE9cyxsZyhuLkIsbi5BLHMpKSksYS52PTMsYS5mJiZhLmYudGEoKSxhLlUmJihhLk49WHAoKS10LnUsYS5jLmluZm8oIkhhbmRzaGFrZSBSVFQ6ICIrYS5OKyJtcyIpKSxpPXQsKG49YSkubGE9eXkobixuLkM/bi5nYTpudWxsLG4uZmEpLGkuQz8oeGcobi5iLGkpLG89aSwocz1uLkQpJiZvLnNldFRpbWVvdXQocyksby5vJiYoWHYobyksUXYobykpLG4uYT1pKTp1eShuKSwwPGEuZy5sZW5ndGgmJml5KGEpKToic3RvcCIhPWNbMF0mJiJjbG9zZSIhPWNbMF18fHZ5KGEsNyk6Mz09YS52JiYoInN0b3AiPT1jWzBdfHwiY2xvc2UiPT1jWzBdPyJzdG9wIj09Y1swXT92eShhLDcpOnR5KGEpOiJub29wIiE9Y1swXSYmYS5mJiZhLmYuc2EoYyksYS5vPTApO2t2KDQpfWNhdGNoKHQpe319ZnVuY3Rpb24gdGcodCxlKXtpZih0LmZvckVhY2gmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvckVhY2gpdC5mb3JFYWNoKGUsdm9pZCAwKTtlbHNlIGlmKEJwKHQpfHwic3RyaW5nIj09dHlwZW9mIHQpdGQodCxlLHZvaWQgMCk7ZWxzZXtpZih0LkwmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LkwpdmFyIG49dC5MKCk7ZWxzZSBpZih0LksmJiJmdW5jdGlvbiI9PXR5cGVvZiB0Lkspbj12b2lkIDA7ZWxzZSBpZihCcCh0KXx8InN0cmluZyI9PXR5cGVvZiB0KWZvcih2YXIgbj1bXSxyPXQubGVuZ3RoLGk9MDtpPHI7aSsrKW4ucHVzaChpKTtlbHNlIGZvcihpIGluIG49W10scj0wLHQpbltyKytdPWk7Zm9yKHZhciBpPShyPWZ1bmN0aW9uKHQpe2lmKHQuSyYmImZ1bmN0aW9uIj09dHlwZW9mIHQuSylyZXR1cm4gdC5LKCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0LnNwbGl0KCIiKTtpZihCcCh0KSl7Zm9yKHZhciBlPVtdLG49dC5sZW5ndGgscj0wO3I8bjtyKyspZS5wdXNoKHRbcl0pO3JldHVybiBlfWZvcihyIGluIGU9W10sbj0wLHQpZVtuKytdPXRbcl07cmV0dXJuIGV9KHQpKS5sZW5ndGgsbz0wO288aTtvKyspZS5jYWxsKHZvaWQgMCxyW29dLG4mJm5bb10sdCl9fWZ1bmN0aW9uIGVnKHQsZSl7dGhpcy5iPXt9LHRoaXMuYT1bXSx0aGlzLmM9MDt2YXIgbj1hcmd1bWVudHMubGVuZ3RoO2lmKDE8bil7aWYobiUyKXRocm93IEVycm9yKCJVbmV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cyIpO2Zvcih2YXIgcj0wO3I8bjtyKz0yKXRoaXMuc2V0KGFyZ3VtZW50c1tyXSxhcmd1bWVudHNbcisxXSl9ZWxzZSBpZih0KWlmKHQgaW5zdGFuY2VvZiBlZylmb3Iobj10LkwoKSxyPTA7cjxuLmxlbmd0aDtyKyspdGhpcy5zZXQobltyXSx0LmdldChuW3JdKSk7ZWxzZSBmb3IociBpbiB0KXRoaXMuc2V0KHIsdFtyXSl9ZnVuY3Rpb24gbmcodCl7aWYodC5jIT10LmEubGVuZ3RoKXtmb3IodmFyIGU9MCxuPTA7ZTx0LmEubGVuZ3RoOyl7dmFyIHI9dC5hW2VdO3JnKHQuYixyKSYmKHQuYVtuKytdPXIpLGUrK310LmEubGVuZ3RoPW59aWYodC5jIT10LmEubGVuZ3RoKXtmb3IodmFyIGk9e30sbj1lPTA7ZTx0LmEubGVuZ3RoOylyZyhpLHI9dC5hW2VdKXx8KGlbdC5hW24rK109cl09MSksZSsrO3QuYS5sZW5ndGg9bn19ZnVuY3Rpb24gcmcodCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9KHo9cXYucHJvdG90eXBlKS5zZXRUaW1lb3V0PWZ1bmN0aW9uKHQpe3RoaXMuUD10fSx6LlhhPWZ1bmN0aW9uKHQpe3Q9dC50YXJnZXQ7dmFyIGU9dGhpcy5GO2UmJjM9PVhnKHQpP2UuZigpOnRoaXMuQ2EodCl9LHouQ2E9ZnVuY3Rpb24odCl7dHJ5e2lmKHQ9PXRoaXMuYSl0Ont2YXIgZT1YZyh0aGlzLmEpLG49dGhpcy5hLnVhKCkscj10aGlzLmEuVygpO2lmKCEoZTwzfHwzPT1lJiYhbWQmJiF0aGlzLmEuJCgpKSl7dGhpcy5BfHw0IT1lfHw3PT1ufHxrdig4PT1ufHxyPD0wPzM6MiksWHYodGhpcyk7dmFyIGk9dGhpcy5hLlcoKTt0aGlzLk49aTt2YXIgbz10aGlzLmEuJCgpO2lmKHRoaXMuYj0yMDA9PWkscj10aGlzLmMsdT10aGlzLm0sYz10aGlzLmwsaD10aGlzLmYsbD10aGlzLlMsZj1lLHA9aSxyLmluZm8oZnVuY3Rpb24oKXtyZXR1cm4iWE1MSFRUUCBSRVNQICgiK2grIikgWyBhdHRlbXB0ICIrbCsiXTogIit1KyJcbiIrYysiXG4iK2YrIiAiK3B9KSx0aGlzLmIpe2lmKHRoaXMuVSYmIXRoaXMuQyl7ZTp7aWYodGhpcy5hKXt2YXIgcz10aGlzLmE7aWYoKHM9cy5hP3MuYS5nZXRSZXNwb25zZUhlYWRlcigiWC1IVFRQLUluaXRpYWwtUmVzcG9uc2UiKTpudWxsKSYmIXJkKHMpKXt2YXIgYT1zO2JyZWFrIGV9fWE9bnVsbH1pZighYSl7dGhpcy5iPSExLHRoaXMuaD0zLFB2KDEyKSwkdih0aGlzKSxKdih0aGlzKTticmVhayB0fUV2KHRoaXMuYyx0aGlzLmYsYSwiSW5pdGlhbCBoYW5kc2hha2UgcmVzcG9uc2UgdmlhIFgtSFRUUC1Jbml0aWFsLVJlc3BvbnNlIiksdGhpcy5DPSEwLFp2KHRoaXMsYSl9dGhpcy5JPyh6dih0aGlzLGUsbyksbWQmJnRoaXMuYiYmMz09ZSYmKF92KHRoaXMuSix0aGlzLlIsInRpY2siLHRoaXMuV2EpLHRoaXMuUi5zdGFydCgpKSk6KEV2KHRoaXMuYyx0aGlzLmYsbyxudWxsKSxadih0aGlzLG8pKSw0PT1lJiYkdih0aGlzKSx0aGlzLmImJiF0aGlzLkEmJig0PT1lP3B5KHRoaXMuZyx0aGlzKToodGhpcy5iPSExLFF2KHRoaXMpKSl9ZWxzZSA0MDA9PWkmJjA8by5pbmRleE9mKCJVbmtub3duIFNJRCIpPyh0aGlzLmg9MyxQdigxMikpOih0aGlzLmg9MCxQdigxMykpLCR2KHRoaXMpLEp2KHRoaXMpfX19Y2F0Y2godCl7fXZhciB1LGMsaCxsLGYscH0sei5XYT1mdW5jdGlvbigpe3ZhciB0LGU7dGhpcy5hJiYodD1YZyh0aGlzLmEpLGU9dGhpcy5hLiQoKSx0aGlzLkQ8ZS5sZW5ndGgmJihYdih0aGlzKSx6dih0aGlzLHQsZSksdGhpcy5iJiY0IT10JiZRdih0aGlzKSkpfSx6LmNhbmNlbD1mdW5jdGlvbigpe3RoaXMuQT0hMCwkdih0aGlzKX0sei5WYT1mdW5jdGlvbigpe3RoaXMubz1udWxsO3ZhciB0LGUsbj1YcCgpOzA8PW4tdGhpcy5UPyh0PXRoaXMuYyxlPXRoaXMubCx0LmluZm8oZnVuY3Rpb24oKXtyZXR1cm4iVElNRU9VVDogIitlfSksMiE9dGhpcy5IJiYoa3YoMyksUHYoMTcpKSwkdih0aGlzKSx0aGlzLmg9MixKdih0aGlzKSk6WXYodGhpcyx0aGlzLlQtbil9LCh6PWVnLnByb3RvdHlwZSkuSz1mdW5jdGlvbigpe25nKHRoaXMpO2Zvcih2YXIgdD1bXSxlPTA7ZTx0aGlzLmEubGVuZ3RoO2UrKyl0LnB1c2godGhpcy5iW3RoaXMuYVtlXV0pO3JldHVybiB0fSx6Lkw9ZnVuY3Rpb24oKXtyZXR1cm4gbmcodGhpcyksdGhpcy5hLmNvbmNhdCgpfSx6LmdldD1mdW5jdGlvbih0LGUpe3JldHVybiByZyh0aGlzLmIsdCk/dGhpcy5iW3RdOmV9LHouc2V0PWZ1bmN0aW9uKHQsZSl7cmcodGhpcy5iLHQpfHwodGhpcy5jKyssdGhpcy5hLnB1c2godCkpLHRoaXMuYlt0XT1lfSx6LmZvckVhY2g9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5MKCkscj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgaT1uW3JdLG89dGhpcy5nZXQoaSk7dC5jYWxsKGUsbyxpLHRoaXMpfX07dmFyIGlnPS9eKD86KFteOi8/Iy5dKyk6KT8oPzpcL1wvKD86KFteXFwvPyNdKilAKT8oW15cXC8/I10qPykoPzo6KFswLTldKykpPyg/PVtcXC8/I118JCkpPyhbXj8jXSspPyg/Olw/KFteI10qKSk/KD86IyhbXHNcU10qKSk/JC87ZnVuY3Rpb24gb2codCxlKXt2YXIgbjt0aGlzLmM9dGhpcy5qPXRoaXMuZj0iIix0aGlzLmg9bnVsbCx0aGlzLmk9dGhpcy5nPSIiLHRoaXMuYT0hMSx0IGluc3RhbmNlb2Ygb2c/KHRoaXMuYT12b2lkIDAhPT1lP2U6dC5hLGFnKHRoaXMsdC5mKSx0aGlzLmo9dC5qLHVnKHRoaXMsdC5jKSxjZyh0aGlzLHQuaCksdGhpcy5nPXQuZyxlPXQuYiwobj1uZXcgX2cpLmM9ZS5jLGUuYSYmKG4uYT1uZXcgZWcoZS5hKSxuLmI9ZS5iKSxoZyh0aGlzLG4pLHRoaXMuaT10LmkpOnQmJihuPVN0cmluZyh0KS5tYXRjaChpZykpPyh0aGlzLmE9ISFlLGFnKHRoaXMsblsxXXx8IiIsITApLHRoaXMuaj1wZyhuWzJdfHwiIiksdWcodGhpcyxuWzNdfHwiIiwhMCksY2codGhpcyxuWzRdKSx0aGlzLmc9cGcobls1XXx8IiIsITApLGhnKHRoaXMsbls2XXx8IiIsITApLHRoaXMuaT1wZyhuWzddfHwiIikpOih0aGlzLmE9ISFlLHRoaXMuYj1uZXcgX2cobnVsbCx0aGlzLmEpKX1mdW5jdGlvbiBzZyh0KXtyZXR1cm4gbmV3IG9nKHQpfWZ1bmN0aW9uIGFnKHQsZSxuKXt0LmY9bj9wZyhlLCEwKTplLHQuZiYmKHQuZj10LmYucmVwbGFjZSgvOiQvLCIiKSl9ZnVuY3Rpb24gdWcodCxlLG4pe3QuYz1uP3BnKGUsITApOmV9ZnVuY3Rpb24gY2codCxlKXtpZihlKXtpZihlPU51bWJlcihlKSxpc05hTihlKXx8ZTwwKXRocm93IEVycm9yKCJCYWQgcG9ydCBudW1iZXIgIitlKTt0Lmg9ZX1lbHNlIHQuaD1udWxsfWZ1bmN0aW9uIGhnKHQsZSxuKXt2YXIgcixpO2UgaW5zdGFuY2VvZiBfZz8odC5iPWUscj10LmIsKGk9dC5hKSYmIXIuZiYmKElnKHIpLHIuYz1udWxsLHIuYS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS50b0xvd2VyQ2FzZSgpO2UhPW4mJihUZyh0aGlzLGUpLFNnKHRoaXMsbix0KSl9LHIpKSxyLmY9aSk6KG58fChlPWRnKGUsYmcpKSx0LmI9bmV3IF9nKGUsdC5hKSl9ZnVuY3Rpb24gbGcodCxlLG4pe3QuYi5zZXQoZSxuKX1mdW5jdGlvbiBmZyh0KXtyZXR1cm4gbGcodCwiengiLE1hdGguZmxvb3IoMjE0NzQ4MzY0OCpNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNikrTWF0aC5hYnMoTWF0aC5mbG9vcigyMTQ3NDgzNjQ4Kk1hdGgucmFuZG9tKCkpXlhwKCkpLnRvU3RyaW5nKDM2KSksdH1mdW5jdGlvbiBwZyh0LGUpe3JldHVybiB0P2U/ZGVjb2RlVVJJKHQucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudCh0KToiIn1mdW5jdGlvbiBkZyh0LGUsbil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0Pyh0PWVuY29kZVVSSSh0KS5yZXBsYWNlKGUsdmcpLHQ9bj90LnJlcGxhY2UoLyUyNShbMC05YS1mQS1GXXsyfSkvZywiJSQxIik6dCk6bnVsbH1mdW5jdGlvbiB2Zyh0KXtyZXR1cm4iJSIrKCh0PXQuY2hhckNvZGVBdCgwKSk+PjQmMTUpLnRvU3RyaW5nKDE2KSsoMTUmdCkudG9TdHJpbmcoMTYpfW9nLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciB0PVtdLGU9dGhpcy5mO2UmJnQucHVzaChkZyhlLGdnLCEwKSwiOiIpO3ZhciBuPXRoaXMuYztyZXR1cm4hbiYmImZpbGUiIT1lfHwodC5wdXNoKCIvLyIpLChlPXRoaXMuaikmJnQucHVzaChkZyhlLGdnLCEwKSwiQCIpLHQucHVzaChlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKG4pKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxudWxsIT0obj10aGlzLmgpJiZ0LnB1c2goIjoiLFN0cmluZyhuKSkpLChuPXRoaXMuZykmJih0aGlzLmMmJiIvIiE9bi5jaGFyQXQoMCkmJnQucHVzaCgiLyIpLHQucHVzaChkZyhuLCIvIj09bi5jaGFyQXQoMCk/bWc6eWcsITApKSksKG49dGhpcy5iLnRvU3RyaW5nKCkpJiZ0LnB1c2goIj8iLG4pLChuPXRoaXMuaSkmJnQucHVzaCgiIyIsZGcobix3ZykpLHQuam9pbigiIil9O3ZhciBnZz0vWyNcL1w/QF0vZyx5Zz0vWyNcPzpdL2csbWc9L1sjXD9dL2csYmc9L1sjXD9AXS9nLHdnPS8jL2c7ZnVuY3Rpb24gX2codCxlKXt0aGlzLmI9dGhpcy5hPW51bGwsdGhpcy5jPXR8fG51bGwsdGhpcy5mPSEhZX1mdW5jdGlvbiBJZyhuKXtuLmF8fChuLmE9bmV3IGVnLG4uYj0wLG4uYyYmZnVuY3Rpb24odCxlKXtpZih0KXt0PXQuc3BsaXQoIiYiKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHIsaT10W25dLmluZGV4T2YoIj0iKSxvPW51bGw7MDw9aT8ocj10W25dLnN1YnN0cmluZygwLGkpLG89dFtuXS5zdWJzdHJpbmcoaSsxKSk6cj10W25dLGUocixvP2RlY29kZVVSSUNvbXBvbmVudChvLnJlcGxhY2UoL1wrL2csIiAiKSk6IiIpfX19KG4uYyxmdW5jdGlvbih0LGUpe24uYWRkKGRlY29kZVVSSUNvbXBvbmVudCh0LnJlcGxhY2UoL1wrL2csIiAiKSksZSl9KSl9ZnVuY3Rpb24gVGcodCxlKXtJZyh0KSxlPUNnKHQsZSkscmcodC5hLmIsZSkmJih0LmM9bnVsbCx0LmItPXQuYS5nZXQoZSkubGVuZ3RoLHJnKCh0PXQuYSkuYixlKSYmKGRlbGV0ZSB0LmJbZV0sdC5jLS0sdC5hLmxlbmd0aD4yKnQuYyYmbmcodCkpKX1mdW5jdGlvbiBFZyh0LGUpe3JldHVybiBJZyh0KSxlPUNnKHQsZSkscmcodC5hLmIsZSl9ZnVuY3Rpb24gU2codCxlLG4pe1RnKHQsZSksMDxuLmxlbmd0aCYmKHQuYz1udWxsLHQuYS5zZXQoQ2codCxlKSxuZChuKSksdC5iKz1uLmxlbmd0aCl9ZnVuY3Rpb24gQ2codCxlKXtyZXR1cm4gZT1TdHJpbmcoZSksZT10LmY/ZS50b0xvd2VyQ2FzZSgpOmV9KHo9X2cucHJvdG90eXBlKS5hZGQ9ZnVuY3Rpb24odCxlKXtJZyh0aGlzKSx0aGlzLmM9bnVsbCx0PUNnKHRoaXMsdCk7dmFyIG49dGhpcy5hLmdldCh0KTtyZXR1cm4gbnx8dGhpcy5hLnNldCh0LG49W10pLG4ucHVzaChlKSx0aGlzLmIrPTEsdGhpc30sei5mb3JFYWNoPWZ1bmN0aW9uKG4scil7SWcodGhpcyksdGhpcy5hLmZvckVhY2goZnVuY3Rpb24odCxlKXt0ZCh0LGZ1bmN0aW9uKHQpe24uY2FsbChyLHQsZSx0aGlzKX0sdGhpcyl9LHRoaXMpfSx6Lkw9ZnVuY3Rpb24oKXtJZyh0aGlzKTtmb3IodmFyIHQ9dGhpcy5hLksoKSxlPXRoaXMuYS5MKCksbj1bXSxyPTA7cjxlLmxlbmd0aDtyKyspZm9yKHZhciBpPXRbcl0sbz0wO288aS5sZW5ndGg7bysrKW4ucHVzaChlW3JdKTtyZXR1cm4gbn0sei5LPWZ1bmN0aW9uKHQpe0lnKHRoaXMpO3ZhciBlPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgdClFZyh0aGlzLHQpJiYoZT1lZChlLHRoaXMuYS5nZXQoQ2codGhpcyx0KSkpKTtlbHNle3Q9dGhpcy5hLksoKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyllPWVkKGUsdFtuXSl9cmV0dXJuIGV9LHouc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIElnKHRoaXMpLHRoaXMuYz1udWxsLEVnKHRoaXMsdD1DZyh0aGlzLHQpKSYmKHRoaXMuYi09dGhpcy5hLmdldCh0KS5sZW5ndGgpLHRoaXMuYS5zZXQodCxbZV0pLHRoaXMuYis9MSx0aGlzfSx6LmdldD1mdW5jdGlvbih0LGUpe3JldHVybiB0JiYwPCh0PXRoaXMuSyh0KSkubGVuZ3RoP1N0cmluZyh0WzBdKTplfSx6LnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5jKXJldHVybiB0aGlzLmM7aWYoIXRoaXMuYSlyZXR1cm4iIjtmb3IodmFyIHQ9W10sZT10aGlzLmEuTCgpLG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIHI9ZVtuXSxpPWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcocikpLHI9dGhpcy5LKHIpLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIHM9aTsiIiE9PXJbb10mJihzKz0iPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhyW29dKSkpLHQucHVzaChzKX1yZXR1cm4gdGhpcy5jPXQuam9pbigiJiIpfTt2YXIgTmc9ZnVuY3Rpb24odCxlKXt0aGlzLmI9dCx0aGlzLmE9ZX07ZnVuY3Rpb24gQWcodCl7dGhpcy5nPXR8fGtnLHQ9cXAuUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5nPzA8KHQ9cXAucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgibmF2aWdhdGlvbiIpKS5sZW5ndGgmJigiaHEiPT10WzBdLm5leHRIb3BQcm90b2NvbHx8ImgyIj09dFswXS5uZXh0SG9wUHJvdG9jb2wpOiEhKHFwLmlhJiZxcC5pYS55YSYmcXAuaWEueWEoKSYmcXAuaWEueWEoKS5MYiksdGhpcy5mPXQ/dGhpcy5nOjEsdGhpcy5hPW51bGwsMTx0aGlzLmYmJih0aGlzLmE9bmV3IFNldCksdGhpcy5iPW51bGwsdGhpcy5jPVtdfXZhciBrZz0xMDtmdW5jdGlvbiBSZyh0KXtyZXR1cm4gdC5ifHx0LmEmJnQuYS5zaXplPj10LmZ9ZnVuY3Rpb24gUGcodCl7cmV0dXJuIHQuYj8xOnQuYT90LmEuc2l6ZTowfWZ1bmN0aW9uIE9nKHQsZSl7cmV0dXJuIHQuYj90LmI9PWU6dC5hJiZ0LmEuaGFzKGUpfWZ1bmN0aW9uIERnKHQsZSl7dC5hP3QuYS5hZGQoZSk6dC5iPWV9ZnVuY3Rpb24geGcodCxlKXt0LmImJnQuYj09ZT90LmI9bnVsbDp0LmEmJnQuYS5oYXMoZSkmJnQuYS5kZWxldGUoZSl9ZnVuY3Rpb24gTGcodCl7dmFyIGUsbjtpZihudWxsIT10LmIpcmV0dXJuIHQuYy5jb25jYXQodC5iLnMpO2lmKG51bGw9PXQuYXx8MD09PXQuYS5zaXplKXJldHVybiBuZCh0LmMpO3ZhciByPXQuYzt0cnl7Zm9yKHZhciBpPVVwKHQuYS52YWx1ZXMoKSksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpdmFyIHM9by52YWx1ZSxyPXIuY29uY2F0KHMucyl9Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fXJldHVybiByfWZ1bmN0aW9uIE1nKCl7fWZ1bmN0aW9uIEZnKCl7dGhpcy5hPW5ldyBNZ31mdW5jdGlvbiBVZyh0LGUsbixyLGkpe3RyeXtlLm9ubG9hZD1udWxsLGUub25lcnJvcj1udWxsLGUub25hYm9ydD1udWxsLGUub250aW1lb3V0PW51bGwsaShyKX1jYXRjaCh0KXt9fUFnLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24oKXt2YXIgZSx0O2lmKHRoaXMuYz1MZyh0aGlzKSx0aGlzLmIpdGhpcy5iLmNhbmNlbCgpLHRoaXMuYj1udWxsO2Vsc2UgaWYodGhpcy5hJiYwIT09dGhpcy5hLnNpemUpe3RyeXtmb3IodmFyIG49VXAodGhpcy5hLnZhbHVlcygpKSxyPW4ubmV4dCgpOyFyLmRvbmU7cj1uLm5leHQoKSlyLnZhbHVlLmNhbmNlbCgpfWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJih0PW4ucmV0dXJuKSYmdC5jYWxsKG4pfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX10aGlzLmEuY2xlYXIoKX19LE1nLnByb3RvdHlwZS5zdHJpbmdpZnk9ZnVuY3Rpb24odCl7cmV0dXJuIHFwLkpTT04uc3RyaW5naWZ5KHQsdm9pZCAwKX0sTWcucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBxcC5KU09OLnBhcnNlKHQsdm9pZCAwKX07dmFyIGpnPXFwLkpTT04ucGFyc2U7ZnVuY3Rpb24gcWcodCl7SmQuY2FsbCh0aGlzKSx0aGlzLmhlYWRlcnM9bmV3IGVnLHRoaXMuSD10fHxudWxsLHRoaXMuYj0hMSx0aGlzLnM9dGhpcy5hPW51bGwsdGhpcy5CPSIiLHRoaXMuaD0wLHRoaXMuZj0iIix0aGlzLmc9dGhpcy5BPXRoaXMubD10aGlzLnU9ITEsdGhpcy5vPTAsdGhpcy5tPW51bGwsdGhpcy5JPVZnLHRoaXMuRD10aGlzLkY9ITF9SnAocWcsSmQpO3ZhciBWZz0iIixCZz0vXmh0dHBzPyQvaSxLZz1bIlBPU1QiLCJQVVQiXTtmdW5jdGlvbiBXZyh0KXtyZXR1cm4iY29udGVudC10eXBlIj09dC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEhnKHQsZSl7dC5iPSExLHQuYSYmKHQuZz0hMCx0LmEuYWJvcnQoKSx0Lmc9ITEpLHQuZj1lLHQuaD01LEdnKHQpLFFnKHQpfWZ1bmN0aW9uIEdnKHQpe3QudXx8KHQudT0hMCwkZCh0LCJjb21wbGV0ZSIpLCRkKHQsImVycm9yIikpfWZ1bmN0aW9uIHpnKHQpe2lmKHQuYiYmdm9pZCAwIT09anAmJighdC5zWzFdfHw0IT1YZyh0KXx8MiE9dC5XKCkpKWlmKHQubCYmND09WGcodCkpZnYodC56YSwwLHQpO2Vsc2UgaWYoJGQodCwicmVhZHlzdGF0ZWNoYW5nZSIpLDQ9PVhnKHQpKXt0LmI9ITE7dHJ5e3ZhciBlLG4scixpLG89dC5XKCk7dDpzd2l0Y2gobyl7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDQ6Y2FzZSAyMDY6Y2FzZSAzMDQ6Y2FzZSAxMjIzOnZhciBzPSEwO2JyZWFrIHQ7ZGVmYXVsdDpzPSExfShlPXMpfHwoKG49MD09PW8pJiYoIShpPVN0cmluZyh0LkIpLm1hdGNoKGlnKVsxXXx8bnVsbCkmJnFwLnNlbGYmJnFwLnNlbGYubG9jYXRpb24mJihpPShyPXFwLnNlbGYubG9jYXRpb24ucHJvdG9jb2wpLnN1YnN0cigwLHIubGVuZ3RoLTEpKSxuPSFCZy50ZXN0KGk/aS50b0xvd2VyQ2FzZSgpOiIiKSksZT1uKTtpZihlKSRkKHQsImNvbXBsZXRlIiksJGQodCwic3VjY2VzcyIpO2Vsc2V7dC5oPTY7dHJ5e3ZhciBhPTI8WGcodCk/dC5hLnN0YXR1c1RleHQ6IiJ9Y2F0Y2gobyl7YT0iIn10LmY9YSsiIFsiK3QuVygpKyJdIixHZyh0KX19ZmluYWxseXtRZyh0KX19fWZ1bmN0aW9uIFFnKHQsZSl7aWYodC5hKXtZZyh0KTt2YXIgbj10LmEscj10LnNbMF0/VnA6bnVsbDt0LmE9bnVsbCx0LnM9bnVsbCxlfHwkZCh0LCJyZWFkeSIpO3RyeXtuLm9ucmVhZHlzdGF0ZWNoYW5nZT1yfWNhdGNoKHQpe319fWZ1bmN0aW9uIFlnKHQpe3QuYSYmdC5EJiYodC5hLm9udGltZW91dD1udWxsKSx0Lm0mJihxcC5jbGVhclRpbWVvdXQodC5tKSx0Lm09bnVsbCl9ZnVuY3Rpb24gWGcodCl7cmV0dXJuIHQuYT90LmEucmVhZHlTdGF0ZTowfWZ1bmN0aW9uIEpnKHQsZSxuKXt0Ontmb3IociBpbiBuKXt2YXIgcj0hMTticmVhayB0fXI9ITB9dmFyIGk7cnx8KGk9IiIsY2QobixmdW5jdGlvbih0LGUpe2krPWUsaSs9IjoiLGkrPXQsaSs9IlxyXG4ifSksbj1pLCJzdHJpbmciPT10eXBlb2YgdD9udWxsIT1uJiZlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKG4pKTpsZyh0LGUsbikpfWZ1bmN0aW9uICRnKHQsZSxuKXtyZXR1cm4gbiYmbi5pbnRlcm5hbENoYW5uZWxQYXJhbXMmJm4uaW50ZXJuYWxDaGFubmVsUGFyYW1zW3RdfHxlfWZ1bmN0aW9uIFpnKHQpe3RoaXMucGE9MCx0aGlzLmc9W10sdGhpcy5jPW5ldyBUdix0aGlzLmdhPXRoaXMubGE9dGhpcy5CPXRoaXMuZmE9dGhpcy5hPXRoaXMubmE9dGhpcy5BPXRoaXMuVj10aGlzLmk9dGhpcy5PPXRoaXMubD1udWxsLHRoaXMuT2E9dGhpcy5SPTAsdGhpcy5MYT0kZygiZmFpbEZhc3QiLCExLHQpLHRoaXMuSD10aGlzLm09dGhpcy5qPXRoaXMuaD10aGlzLmY9bnVsbCx0aGlzLlM9ITAsdGhpcy5JPXRoaXMub2E9dGhpcy5QPS0xLHRoaXMuVD10aGlzLm89dGhpcy51PTAsdGhpcy5IYT0kZygiYmFzZVJldHJ5RGVsYXlNcyIsNWUzLHQpLHRoaXMuUmE9JGcoInJldHJ5RGVsYXlTZWVkTXMiLDFlNCx0KSx0aGlzLk1hPSRnKCJmb3J3YXJkQ2hhbm5lbE1heFJldHJpZXMiLDIsdCksdGhpcy5tYT0kZygiZm9yd2FyZENoYW5uZWxSZXF1ZXN0VGltZW91dE1zIiwyZTQsdCksdGhpcy5OYT10JiZ0Lmd8fHZvaWQgMCx0aGlzLkQ9dm9pZCAwLHRoaXMuQz10JiZ0LnN1cHBvcnRzQ3Jvc3NEb21haW5YaHJ8fCExLHRoaXMuSj0iIix0aGlzLmI9bmV3IEFnKHQmJnQuY29uY3VycmVudFJlcXVlc3RMaW1pdCksdGhpcy5rYT1uZXcgRmcsdGhpcy5kYT10JiZ0LmZhc3RIYW5kc2hha2V8fCExLHRoaXMuSWE9dCYmdC5ifHwhMSx0JiZ0LmYmJih0aGlzLmMuYT0hMSksdCYmdC5mb3JjZUxvbmdQb2xsaW5nJiYodGhpcy5TPSExKSx0aGlzLlU9IXRoaXMuZGEmJnRoaXMuUyYmdCYmdC5kZXRlY3RCdWZmZXJpbmdQcm94eXx8ITEsdGhpcy5lYT12b2lkIDAsdGhpcy5OPTAsdGhpcy5GPSExLHRoaXMucz1udWxsLCh0aGlzLkthPXQmJnQuY3x8ITEpJiZ0aGlzLmMuaW5mbygiT3B0LWluIHRvIGVuYWJsZSBDaHJvbWUgT3JpZ2luIFRyaWFscy4iKX1mdW5jdGlvbiB0eSh0KXt2YXIgZSxuO255KHQpLDM9PXQudiYmKGU9dC5SKyssbGcobj1zZyh0LkIpLCJTSUQiLHQuSiksbGcobiwiUklEIixlKSxsZyhuLCJUWVBFIiwidGVybWluYXRlIiksc3kodCxuKSwoZT1uZXcgcXYodCx0LmMsZSx2b2lkIDApKS5IPTIsZS5pPWZnKHNnKG4pKSxuPSExLCEobj1xcC5uYXZpZ2F0b3ImJnFwLm5hdmlnYXRvci5zZW5kQmVhY29uP3FwLm5hdmlnYXRvci5zZW5kQmVhY29uKGUuaS50b1N0cmluZygpLCIiKTpuKSYmcXAuSW1hZ2UmJigobmV3IEltYWdlKS5zcmM9ZS5pLG49ITApLG58fChlLmE9bXkoZS5nLG51bGwpLGUuYS5iYShlLmkpKSxlLnU9WHAoKSxRdihlKSksZ3kodCl9ZnVuY3Rpb24gZXkodCl7dC5hJiYoaHkodCksdC5hLmNhbmNlbCgpLHQuYT1udWxsKX1mdW5jdGlvbiBueSh0KXtleSh0KSx0LmomJihxcC5jbGVhclRpbWVvdXQodC5qKSx0Lmo9bnVsbCksZnkodCksdC5iLmNhbmNlbCgpLHQuaCYmKCJudW1iZXIiPT10eXBlb2YgdC5oJiZxcC5jbGVhclRpbWVvdXQodC5oKSx0Lmg9bnVsbCl9ZnVuY3Rpb24gcnkodCxlKXt0LmcucHVzaChuZXcgTmcodC5PYSsrLGUpKSwzPT10LnYmJml5KHQpfWZ1bmN0aW9uIGl5KHQpe1JnKHQuYil8fHQuaHx8KHQuaD0hMCxzdih0LkJhLHQpLHQudT0wKX1mdW5jdGlvbiBveSh0LGUpe3ZhciBuPWU/ZS5mOnQuUisrLHI9c2codC5CKTtsZyhyLCJTSUQiLHQuSiksbGcociwiUklEIixuKSxsZyhyLCJBSUQiLHQuUCksc3kodCxyKSx0LmkmJnQubCYmSmcocix0LmksdC5sKSxuPW5ldyBxdih0LHQuYyxuLHQudSsxKSxudWxsPT09dC5pJiYobi5CPXQubCksZSYmKHQuZz1lLnMuY29uY2F0KHQuZykpLGU9YXkodCxuLDFlMyksbi5zZXRUaW1lb3V0KE1hdGgucm91bmQoLjUqdC5tYSkrTWF0aC5yb3VuZCguNSp0Lm1hKk1hdGgucmFuZG9tKCkpKSxEZyh0LmIsbiksSHYobixyLGUpfWZ1bmN0aW9uIHN5KHQsbil7dC5mJiZ0Zyh7fSxmdW5jdGlvbih0LGUpe2xnKG4sZSx0KX0pfWZ1bmN0aW9uIGF5KHQsZSxuKXtuPU1hdGgubWluKHQuZy5sZW5ndGgsbik7dmFyIHI9dC5mP1FwKHQuZi5KYSx0LmYsdCk6bnVsbDt0OmZvcih2YXIgaT10Lmcsbz0tMTs7KXt2YXIgcz1bImNvdW50PSIrbl07LTE9PW8/MDxuPyhvPWlbMF0uYixzLnB1c2goIm9mcz0iK28pKTpvPTA6cy5wdXNoKCJvZnM9IitvKTtmb3IodmFyIGE9ITAsdT0wO3U8bjt1Kyspe3ZhciBjPWlbdV0uYixoPWlbdV0uYTtpZigoYy09byk8MClvPU1hdGgubWF4KDAsaVt1XS5iLTEwMCksYT0hMTtlbHNlIHRyeXshZnVuY3Rpb24odCxyLGUpe3ZhciBpPWV8fCIiO3RyeXt0Zyh0LGZ1bmN0aW9uKHQsZSl7dmFyIG49dDtLcCh0KSYmKG49dHYodCkpLHIucHVzaChpK2UrIj0iK2VuY29kZVVSSUNvbXBvbmVudChuKSl9KX1jYXRjaCh0KXt0aHJvdyByLnB1c2goaSsidHlwZT0iK2VuY29kZVVSSUNvbXBvbmVudCgiX2JhZG1hcCIpKSx0fX0oaCxzLCJyZXEiK2MrIl8iKX1jYXRjaCh0KXtyJiZyKGgpfX1pZihhKXtyPXMuam9pbigiJiIpO2JyZWFrIHR9fXJldHVybiB0PXQuZy5zcGxpY2UoMCxuKSxlLnM9dCxyfWZ1bmN0aW9uIHV5KHQpe3QuYXx8dC5qfHwodC5UPTEsc3YodC5BYSx0KSx0Lm89MCl9ZnVuY3Rpb24gY3kodCl7cmV0dXJuISh0LmF8fHQuanx8Mzw9dC5vKSYmKHQuVCsrLHQuaj1EdihRcCh0LkFhLHQpLGR5KHQsdC5vKSksdC5vKyssMSl9ZnVuY3Rpb24gaHkodCl7bnVsbCE9dC5zJiYocXAuY2xlYXJUaW1lb3V0KHQucyksdC5zPW51bGwpfWZ1bmN0aW9uIGx5KHQpe3QuYT1uZXcgcXYodCx0LmMsInJwYyIsdC5UKSxudWxsPT09dC5pJiYodC5hLkI9dC5sKSx0LmEuTz0wO3ZhciBlPXNnKHQubGEpO2xnKGUsIlJJRCIsInJwYyIpLGxnKGUsIlNJRCIsdC5KKSxsZyhlLCJDSSIsdC5IPyIwIjoiMSIpLGxnKGUsIkFJRCIsdC5QKSxzeSh0LGUpLGxnKGUsIlRZUEUiLCJ4bWxodHRwIiksdC5pJiZ0LmwmJkpnKGUsdC5pLHQubCksdC5EJiZ0LmEuc2V0VGltZW91dCh0LkQpO3ZhciBuPXQuYTt0PXQuZ2Esbi5IPTEsbi5pPWZnKHNnKGUpKSxuLmo9bnVsbCxuLkk9ITAsR3Yobix0KX1mdW5jdGlvbiBmeSh0KXtudWxsIT10Lm0mJihxcC5jbGVhclRpbWVvdXQodC5tKSx0Lm09bnVsbCl9ZnVuY3Rpb24gcHkodCxlKXt2YXIgbixyLGksbz1udWxsO2lmKHQuYT09ZSl7ZnkodCksaHkodCksdC5hPW51bGw7dmFyIHM9Mn1lbHNle2lmKCFPZyh0LmIsZSkpcmV0dXJuO289ZS5zLHhnKHQuYixlKSxzPTF9aWYodC5JPWUuTiwwIT10LnYpaWYoZS5iKTE9PXM/KG89ZS5qP2Uuai5sZW5ndGg6MCxlPVhwKCktZS51LG49dC51LCRkKHM9TnYoKSxuZXcgT3YocykpLGl5KHQpKTp1eSh0KTtlbHNlIGlmKDM9PShuPWUuaCl8fDA9PW4mJjA8dC5JfHwoMSE9c3x8KGk9ZSxQZygocj10KS5iKT49ci5iLmYtKHIuaD8xOjApfHwoci5oPyhyLmc9aS5zLmNvbmNhdChyLmcpLDApOjE9PXIudnx8Mj09ci52fHxyLnU+PShyLkxhPzA6ci5NYSl8fChyLmg9RHYoUXAoci5CYSxyLGkpLGR5KHIsci51KSksci51KyssMCkpKSkmJigyIT1zfHwhY3kodCkpKXN3aXRjaChvJiYwPG8ubGVuZ3RoJiYoZT10LmIsZS5jPWUuYy5jb25jYXQobykpLG4pe2Nhc2UgMTp2eSh0LDUpO2JyZWFrO2Nhc2UgNDp2eSh0LDEwKTticmVhaztjYXNlIDM6dnkodCw2KTticmVhaztkZWZhdWx0OnZ5KHQsMil9fWZ1bmN0aW9uIGR5KHQsZSl7dmFyIG49dC5IYStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdC5SYSk7cmV0dXJuIHQuZnx8KG4qPTIpLG4qZX1mdW5jdGlvbiB2eSh0LGUpe3ZhciBuLHIsaSxvO3QuYy5pbmZvKCJFcnJvciBjb2RlICIrZSksMj09ZT8ocj1udWxsLHQuZiYmKHI9bnVsbCksbz1RcCh0LllhLHQpLHJ8fChyPW5ldyBvZygiLy93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvY2xlYXJkb3QuZ2lmIikscXAubG9jYXRpb24mJiJodHRwIj09cXAubG9jYXRpb24ucHJvdG9jb2x8fGFnKHIsImh0dHBzIiksZmcocikpLG49ci50b1N0cmluZygpLHI9byxvPW5ldyBUdixxcC5JbWFnZT8oKGk9bmV3IEltYWdlKS5vbmxvYWQ9WXAoVWcsbyxpLCJUZXN0TG9hZEltYWdlOiBsb2FkZWQiLCEwLHIpLGkub25lcnJvcj1ZcChVZyxvLGksIlRlc3RMb2FkSW1hZ2U6IGVycm9yIiwhMSxyKSxpLm9uYWJvcnQ9WXAoVWcsbyxpLCJUZXN0TG9hZEltYWdlOiBhYm9ydCIsITEsciksaS5vbnRpbWVvdXQ9WXAoVWcsbyxpLCJUZXN0TG9hZEltYWdlOiB0aW1lb3V0IiwhMSxyKSxxcC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5vbnRpbWVvdXQmJmkub250aW1lb3V0KCl9LDFlNCksaS5zcmM9bik6cighMSkpOlB2KDIpLHQudj0wLHQuZiYmdC5mLnJhKGUpLGd5KHQpLG55KHQpfWZ1bmN0aW9uIGd5KHQpe3Qudj0wLHQuST0tMSx0LmYmJigwPT1MZyh0LmIpLmxlbmd0aCYmMD09dC5nLmxlbmd0aHx8KHQuYi5jLmxlbmd0aD0wLG5kKHQuZyksdC5nLmxlbmd0aD0wKSx0LmYucWEoKSl9ZnVuY3Rpb24geXkodCxlLG4pe3ZhciByLGksbyxzLGEsdT0ocz1uKWluc3RhbmNlb2Ygb2c/c2cocyk6bmV3IG9nKHMsdm9pZCAwKTtyZXR1cm4iIiE9dS5jPyhlJiZ1Zyh1LGUrIi4iK3UuYyksY2codSx1LmgpKTooYT1xcC5sb2NhdGlvbixyPWEucHJvdG9jb2wsaT1lP2UrIi4iK2EuaG9zdG5hbWU6YS5ob3N0bmFtZSxvPSthLnBvcnQscz1uLGE9bmV3IG9nKG51bGwsdm9pZCAwKSxyJiZhZyhhLHIpLGkmJnVnKGEsaSksbyYmY2coYSxvKSxzJiYoYS5nPXMpLHU9YSksdC5WJiZjZCh0LlYsZnVuY3Rpb24odCxlKXtsZyh1LGUsdCl9KSxlPXQuQSxuPXQubmEsZSYmbiYmbGcodSxlLG4pLGxnKHUsIlZFUiIsdC5oYSksc3kodCx1KSx1fWZ1bmN0aW9uIG15KHQsZSl7aWYoZSYmIXQuQyl0aHJvdyBFcnJvcigiQ2FuJ3QgY3JlYXRlIHNlY29uZGFyeSBkb21haW4gY2FwYWJsZSBYaHJJbyBvYmplY3QuIik7cmV0dXJuKGU9bmV3IHFnKHQuTmEpKS5GPXQuQyxlfWZ1bmN0aW9uIGJ5KCl7fWZ1bmN0aW9uIHd5KCl7aWYoZ2QmJiEoMTA8PU51bWJlcihDZCkpKXRocm93IEVycm9yKCJFbnZpcm9ubWVudGFsIGVycm9yOiBubyBhdmFpbGFibGUgdHJhbnNwb3J0LiIpfWZ1bmN0aW9uIF95KHQsZSl7SmQuY2FsbCh0aGlzKSx0aGlzLmE9bmV3IFpnKGUpLHRoaXMubz10LHRoaXMuYj1lJiZlLm1lc3NhZ2VVcmxQYXJhbXN8fG51bGwsdD1lJiZlLm1lc3NhZ2VIZWFkZXJzfHxudWxsLGUmJmUuY2xpZW50UHJvdG9jb2xIZWFkZXJSZXF1aXJlZCYmKHQ/dFsiWC1DbGllbnQtUHJvdG9jb2wiXT0id2ViY2hhbm5lbCI6dD17IlgtQ2xpZW50LVByb3RvY29sIjoid2ViY2hhbm5lbCJ9KSx0aGlzLmEubD10LHQ9ZSYmZS5pbml0TWVzc2FnZUhlYWRlcnN8fG51bGwsZSYmZS5tZXNzYWdlQ29udGVudFR5cGUmJih0P3RbIlgtV2ViQ2hhbm5lbC1Db250ZW50LVR5cGUiXT1lLm1lc3NhZ2VDb250ZW50VHlwZTp0PXsiWC1XZWJDaGFubmVsLUNvbnRlbnQtVHlwZSI6ZS5tZXNzYWdlQ29udGVudFR5cGV9KSxlJiZlLmEmJih0P3RbIlgtV2ViQ2hhbm5lbC1DbGllbnQtUHJvZmlsZSJdPWUuYTp0PXsiWC1XZWJDaGFubmVsLUNsaWVudC1Qcm9maWxlIjplLmF9KSx0aGlzLmEuTz10LCh0PWUmJmUuaHR0cEhlYWRlcnNPdmVyd3JpdGVQYXJhbSkmJiFyZCh0KSYmKHRoaXMuYS5pPXQpLHRoaXMubT1lJiZlLnN1cHBvcnRzQ3Jvc3NEb21haW5YaHJ8fCExLHRoaXMubD1lJiZlLnNlbmRSYXdKc29ufHwhMSwoZT1lJiZlLmh0dHBTZXNzaW9uSWRQYXJhbSkmJiFyZChlKSYmKHRoaXMuYS5BPWUsbnVsbCE9PSh0PXRoaXMuYikmJmUgaW4gdCYmKGUgaW4odD10aGlzLmIpJiZkZWxldGUgdFtlXSkpLHRoaXMuZj1uZXcgRXkodGhpcyl9ZnVuY3Rpb24gSXkodCl7RnYuY2FsbCh0aGlzKTt2YXIgZT10Ll9fc21fXztpZihlKXt0Ontmb3IodmFyIG4gaW4gZSl7dD1uO2JyZWFrIHR9dD12b2lkIDB9KHRoaXMuYz10KT8odD10aGlzLmMsdGhpcy5kYXRhPW51bGwhPT1lJiZ0IGluIGU/ZVt0XTp2b2lkIDApOnRoaXMuZGF0YT1lfWVsc2UgdGhpcy5kYXRhPXR9ZnVuY3Rpb24gVHkoKXtVdi5jYWxsKHRoaXMpLHRoaXMuc3RhdHVzPTF9ZnVuY3Rpb24gRXkodCl7dGhpcy5hPXR9KHo9cWcucHJvdG90eXBlKS5iYT1mdW5jdGlvbih0LGUsbixyKXtpZih0aGlzLmEpdGhyb3cgRXJyb3IoIltnb29nLm5ldC5YaHJJb10gT2JqZWN0IGlzIGFjdGl2ZSB3aXRoIGFub3RoZXIgcmVxdWVzdD0iK3RoaXMuQisiOyBuZXdVcmk9Iit0KTtlPWU/ZS50b1VwcGVyQ2FzZSgpOiJHRVQiLHRoaXMuQj10LHRoaXMuZj0iIix0aGlzLmg9MCx0aGlzLnU9ITEsdGhpcy5iPSEwLHRoaXMuYT1uZXcgWE1MSHR0cFJlcXVlc3QsdGhpcy5zPXRoaXMuSD9Mdih0aGlzLkgpOkx2KFZ2KSx0aGlzLmEub25yZWFkeXN0YXRlY2hhbmdlPVFwKHRoaXMuemEsdGhpcyk7dHJ5e3RoaXMuQT0hMCx0aGlzLmEub3BlbihlLFN0cmluZyh0KSwhMCksdGhpcy5BPSExfWNhdGNoKHQpe3JldHVybiB2b2lkIEhnKHRoaXMsdCl9dD1ufHwiIjt2YXIgaSxvPW5ldyBlZyh0aGlzLmhlYWRlcnMpO3ImJnRnKHIsZnVuY3Rpb24odCxlKXtvLnNldChlLHQpfSkscj1mdW5jdGlvbih0KXt0Ontmb3IodmFyIGU9V2csbj10Lmxlbmd0aCxyPSJzdHJpbmciPT10eXBlb2YgdD90LnNwbGl0KCIiKTp0LGk9MDtpPG47aSsrKWlmKGkgaW4gciYmZS5jYWxsKHZvaWQgMCxyW2ldLGksdCkpe2U9aTticmVhayB0fWU9LTF9cmV0dXJuIGU8MD9udWxsOiJzdHJpbmciPT10eXBlb2YgdD90LmNoYXJBdChlKTp0W2VdfShvLkwoKSksbj1xcC5Gb3JtRGF0YSYmdCBpbnN0YW5jZW9mIHFwLkZvcm1EYXRhLDA8PVpwKEtnLGUpJiYhciYmIW4mJm8uc2V0KCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpLG8uZm9yRWFjaChmdW5jdGlvbih0LGUpe3RoaXMuYS5zZXRSZXF1ZXN0SGVhZGVyKGUsdCl9LHRoaXMpLHRoaXMuSSYmKHRoaXMuYS5yZXNwb25zZVR5cGU9dGhpcy5JKSwid2l0aENyZWRlbnRpYWxzImluIHRoaXMuYSYmdGhpcy5hLndpdGhDcmVkZW50aWFscyE9PXRoaXMuRiYmKHRoaXMuYS53aXRoQ3JlZGVudGlhbHM9dGhpcy5GKTt0cnl7WWcodGhpcyksMDx0aGlzLm8mJigodGhpcy5EPShpPXRoaXMuYSxnZCYmU2QoOSkmJiJudW1iZXIiPT10eXBlb2YgaS50aW1lb3V0JiZ2b2lkIDAhPT1pLm9udGltZW91dCkpPyh0aGlzLmEudGltZW91dD10aGlzLm8sdGhpcy5hLm9udGltZW91dD1RcCh0aGlzLnhhLHRoaXMpKTp0aGlzLm09ZnYodGhpcy54YSx0aGlzLm8sdGhpcykpLHRoaXMubD0hMCx0aGlzLmEuc2VuZCh0KSx0aGlzLmw9ITF9Y2F0Y2godCl7SGcodGhpcyx0KX19LHoueGE9ZnVuY3Rpb24oKXt2b2lkIDAhPT1qcCYmdGhpcy5hJiYodGhpcy5mPSJUaW1lZCBvdXQgYWZ0ZXIgIit0aGlzLm8rIm1zLCBhYm9ydGluZyIsdGhpcy5oPTgsJGQodGhpcywidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfSx6LmFib3J0PWZ1bmN0aW9uKHQpe3RoaXMuYSYmdGhpcy5iJiYodGhpcy5iPSExLHRoaXMuZz0hMCx0aGlzLmEuYWJvcnQoKSx0aGlzLmc9ITEsdGhpcy5oPXR8fDcsJGQodGhpcywiY29tcGxldGUiKSwkZCh0aGlzLCJhYm9ydCIpLFFnKHRoaXMpKX0sei5HPWZ1bmN0aW9uKCl7dGhpcy5hJiYodGhpcy5iJiYodGhpcy5iPSExLHRoaXMuZz0hMCx0aGlzLmEuYWJvcnQoKSx0aGlzLmc9ITEpLFFnKHRoaXMsITApKSxxZy5YLkcuY2FsbCh0aGlzKX0sei56YT1mdW5jdGlvbigpe3RoaXMuanx8KHRoaXMuQXx8dGhpcy5sfHx0aGlzLmc/emcodGhpcyk6dGhpcy5VYSgpKX0sei5VYT1mdW5jdGlvbigpe3pnKHRoaXMpfSx6Llc9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIDI8WGcodGhpcyk/dGhpcy5hLnN0YXR1czotMX1jYXRjaCh0KXtyZXR1cm4tMX19LHouJD1mdW5jdGlvbigpe3RyeXtyZXR1cm4gdGhpcy5hP3RoaXMuYS5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2godCl7cmV0dXJuIiJ9fSx6LlBhPWZ1bmN0aW9uKHQpe2lmKHRoaXMuYSl7dmFyIGU9dGhpcy5hLnJlc3BvbnNlVGV4dDtyZXR1cm4gdCYmMD09ZS5pbmRleE9mKHQpJiYoZT1lLnN1YnN0cmluZyh0Lmxlbmd0aCkpLGpnKGUpfX0sei51YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9LHouUWE9ZnVuY3Rpb24oKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHRoaXMuZj90aGlzLmY6U3RyaW5nKHRoaXMuZil9LCh6PVpnLnByb3RvdHlwZSkuaGE9OCx6LnY9MSx6LkJhPWZ1bmN0aW9uKHQpe2lmKHRoaXMuaClpZih0aGlzLmg9bnVsbCwxPT10aGlzLnYpe2lmKCF0KXt0aGlzLlI9TWF0aC5mbG9vcigxZTUqTWF0aC5yYW5kb20oKSksdD10aGlzLlIrKzt2YXIgZSxuPW5ldyBxdih0aGlzLHRoaXMuYyx0LHZvaWQgMCkscj10aGlzLmw7aWYodGhpcy5PJiYocj9mZChyPWhkKHIpLHRoaXMuTyk6cj10aGlzLk8pLG51bGw9PT10aGlzLmkmJihuLkI9ciksdGhpcy5kYSl0Ontmb3IodmFyIGk9ZT0wO2k8dGhpcy5nLmxlbmd0aDtpKyspe3ZhciBvPXRoaXMuZ1tpXTtpZigiX19kYXRhX18iaW4gby5hJiYic3RyaW5nIj09dHlwZW9mKG89by5hLl9fZGF0YV9fKT9vPW8ubGVuZ3RoOm89dm9pZCAwLHZvaWQgMD09PW8pYnJlYWs7aWYoNDA5NjwoZSs9bykpe2U9aTticmVhayB0fWlmKDQwOTY9PT1lfHxpPT09dGhpcy5nLmxlbmd0aC0xKXtlPWkrMTticmVhayB0fX1lPTFlM31lbHNlIGU9MWUzO2U9YXkodGhpcyxuLGUpLGxnKGk9c2codGhpcy5CKSwiUklEIix0KSxsZyhpLCJDVkVSIiwyMiksdGhpcy5BJiZsZyhpLCJYLUhUVFAtU2Vzc2lvbi1JZCIsdGhpcy5BKSxzeSh0aGlzLGkpLHRoaXMuaSYmciYmSmcoaSx0aGlzLmksciksRGcodGhpcy5iLG4pLHRoaXMuSWEmJmxnKGksIlRZUEUiLCJpbml0IiksdGhpcy5kYT8obGcoaSwiJHJlcSIsZSksbGcoaSwiU0lEIiwibnVsbCIpLG4uVT0hMCxIdihuLGksbnVsbCkpOkh2KG4saSxlKSx0aGlzLnY9Mn19ZWxzZSAzPT10aGlzLnYmJih0P295KHRoaXMsdCk6MD09dGhpcy5nLmxlbmd0aHx8UmcodGhpcy5iKXx8b3kodGhpcykpfSx6LkFhPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5qPW51bGwsbHkodGhpcyksdGhpcy5VJiYhKHRoaXMuRnx8bnVsbD09dGhpcy5hfHx0aGlzLk48PTApJiYodD0yKnRoaXMuTix0aGlzLmMuaW5mbygiQlAgZGV0ZWN0aW9uIHRpbWVyIGVuYWJsZWQ6ICIrdCksdGhpcy5zPUR2KFFwKHRoaXMuVGEsdGhpcyksdCkpfSx6LlRhPWZ1bmN0aW9uKCl7dGhpcy5zJiYodGhpcy5zPW51bGwsdGhpcy5jLmluZm8oIkJQIGRldGVjdGlvbiB0aW1lb3V0IHJlYWNoZWQuIiksdGhpcy5jLmluZm8oIkJ1ZmZlcmluZyBwcm94eSBkZXRlY3RlZCBhbmQgc3dpdGNoIHRvIGxvbmctcG9sbGluZyEiKSx0aGlzLkg9ITEsdGhpcy5GPSEwLFB2KDEwKSxleSh0aGlzKSxseSh0aGlzKSl9LHouU2E9ZnVuY3Rpb24oKXtudWxsIT10aGlzLm0mJih0aGlzLm09bnVsbCxleSh0aGlzKSxjeSh0aGlzKSxQdigxOSkpfSx6LllhPWZ1bmN0aW9uKHQpe3Q/KHRoaXMuYy5pbmZvKCJTdWNjZXNzZnVsbHkgcGluZ2VkIGdvb2dsZS5jb20iKSxQdigyKSk6KHRoaXMuYy5pbmZvKCJGYWlsZWQgdG8gcGluZyBnb29nbGUuY29tIiksUHYoMSkpfSwoej1ieS5wcm90b3R5cGUpLnRhPWZ1bmN0aW9uKCl7fSx6LnNhPWZ1bmN0aW9uKCl7fSx6LnJhPWZ1bmN0aW9uKCl7fSx6LnFhPWZ1bmN0aW9uKCl7fSx6LkphPWZ1bmN0aW9uKCl7fSx3eS5wcm90b3R5cGUuYT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgX3kodCxlKX0sSnAoX3ksSmQpLF95LnByb3RvdHlwZS5nPWZ1bmN0aW9uKCl7dGhpcy5hLmY9dGhpcy5mLHRoaXMubSYmKHRoaXMuYS5DPSEwKTt2YXIgdD10aGlzLmEsZT10aGlzLm8sbj10aGlzLmJ8fHZvaWQgMDtQdigwKSx0LmZhPWUsdC5WPW58fHt9LHQuSD10LlMsdC5CPXl5KHQsbnVsbCx0LmZhKSxpeSh0KX0sX3kucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dHkodGhpcy5hKX0sX3kucHJvdG90eXBlLmg9ZnVuY3Rpb24odCl7dmFyIGU7InN0cmluZyI9PXR5cGVvZiB0PygoZT17fSkuX19kYXRhX189dCxyeSh0aGlzLmEsZSkpOnRoaXMubD8oKGU9e30pLl9fZGF0YV9fPXR2KHQpLHJ5KHRoaXMuYSxlKSk6cnkodGhpcy5hLHQpfSxfeS5wcm90b3R5cGUuRz1mdW5jdGlvbigpe3RoaXMuYS5mPW51bGwsZGVsZXRlIHRoaXMuZix0eSh0aGlzLmEpLGRlbGV0ZSB0aGlzLmEsX3kuWC5HLmNhbGwodGhpcyl9LEpwKEl5LEZ2KSxKcChUeSxVdiksSnAoRXksYnkpLEV5LnByb3RvdHlwZS50YT1mdW5jdGlvbigpeyRkKHRoaXMuYSwiYSIpfSxFeS5wcm90b3R5cGUuc2E9ZnVuY3Rpb24odCl7JGQodGhpcy5hLG5ldyBJeSh0KSl9LEV5LnByb3RvdHlwZS5yYT1mdW5jdGlvbih0KXskZCh0aGlzLmEsbmV3IFR5KX0sRXkucHJvdG90eXBlLnFhPWZ1bmN0aW9uKCl7JGQodGhpcy5hLCJiIil9LHd5LnByb3RvdHlwZS5jcmVhdGVXZWJDaGFubmVsPXd5LnByb3RvdHlwZS5hLF95LnByb3RvdHlwZS5zZW5kPV95LnByb3RvdHlwZS5oLF95LnByb3RvdHlwZS5vcGVuPV95LnByb3RvdHlwZS5nLEdhLk5PX0VSUk9SPTAsR2EuVElNRU9VVD04LEdhLkhUVFBfRVJST1I9NixTbi5DT01QTEVURT0iY29tcGxldGUiLChNdi5FdmVudFR5cGU9RykuT1BFTj0iYSIsRy5DTE9TRT0iYiIsRy5FUlJPUj0iYyIsRy5NRVNTQUdFPSJkIixKZC5wcm90b3R5cGUubGlzdGVuPUpkLnByb3RvdHlwZS52YSxxZy5wcm90b3R5cGUubGlzdGVuT25jZT1xZy5wcm90b3R5cGUud2EscWcucHJvdG90eXBlLmdldExhc3RFcnJvcj1xZy5wcm90b3R5cGUuUWEscWcucHJvdG90eXBlLmdldExhc3RFcnJvckNvZGU9cWcucHJvdG90eXBlLnVhLHFnLnByb3RvdHlwZS5nZXRTdGF0dXM9cWcucHJvdG90eXBlLlcscWcucHJvdG90eXBlLmdldFJlc3BvbnNlSnNvbj1xZy5wcm90b3R5cGUuUGEscWcucHJvdG90eXBlLmdldFJlc3BvbnNlVGV4dD1xZy5wcm90b3R5cGUuJCxxZy5wcm90b3R5cGUuc2VuZD1xZy5wcm90b3R5cGUuYmE7dmFyIFN5PU52LEN5PUdhLE55PVNuLEF5PVN2LGt5PTEwLFJ5PTExLFB5PU12LE95PXFnLER5PSh4eS5wcm90b3R5cGUudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcmV2aW91c1ZhbHVlPU1hdGgubWF4KHQsdGhpcy5wcmV2aW91c1ZhbHVlKSx0aGlzLnByZXZpb3VzVmFsdWV9LHh5LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIHQ9Kyt0aGlzLnByZXZpb3VzVmFsdWU7cmV0dXJuIHRoaXMuaSYmdGhpcy5pKHQpLHR9LHh5KTtmdW5jdGlvbiB4eSh0LGUpe3ZhciBuPXRoaXM7dGhpcy5wcmV2aW91c1ZhbHVlPXQsZSYmKGUuc2VxdWVuY2VOdW1iZXJIYW5kbGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuLnQodCl9LHRoaXMuaT1mdW5jdGlvbih0KXtyZXR1cm4gZS53cml0ZVNlcXVlbmNlTnVtYmVyKHQpfSl9RHkubz0tMTt2YXIgTHksTXk9e09LOiJvayIsQ0FOQ0VMTEVEOiJjYW5jZWxsZWQiLFVOS05PV046InVua25vd24iLElOVkFMSURfQVJHVU1FTlQ6ImludmFsaWQtYXJndW1lbnQiLERFQURMSU5FX0VYQ0VFREVEOiJkZWFkbGluZS1leGNlZWRlZCIsTk9UX0ZPVU5EOiJub3QtZm91bmQiLEFMUkVBRFlfRVhJU1RTOiJhbHJlYWR5LWV4aXN0cyIsUEVSTUlTU0lPTl9ERU5JRUQ6InBlcm1pc3Npb24tZGVuaWVkIixVTkFVVEhFTlRJQ0FURUQ6InVuYXV0aGVudGljYXRlZCIsUkVTT1VSQ0VfRVhIQVVTVEVEOiJyZXNvdXJjZS1leGhhdXN0ZWQiLEZBSUxFRF9QUkVDT05ESVRJT046ImZhaWxlZC1wcmVjb25kaXRpb24iLEFCT1JURUQ6ImFib3J0ZWQiLE9VVF9PRl9SQU5HRToib3V0LW9mLXJhbmdlIixVTklNUExFTUVOVEVEOiJ1bmltcGxlbWVudGVkIixJTlRFUk5BTDoiaW50ZXJuYWwiLFVOQVZBSUxBQkxFOiJ1bmF2YWlsYWJsZSIsREFUQV9MT1NTOiJkYXRhLWxvc3MifSxGeT0oWGkoanksTHk9RXJyb3IpLGp5KSxVeT1uZXcgcHMoIkBmaXJlYmFzZS9maXJlc3RvcmUiKTtmdW5jdGlvbiBqeSh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49THkuY2FsbCh0aGlzLGUpfHx0aGlzKS5jb2RlPXQsbi5tZXNzYWdlPWUsbi5uYW1lPSJGaXJlYmFzZUVycm9yIixuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIG4ubmFtZSsiOiBbY29kZT0iK24uY29kZSsiXTogIituLm1lc3NhZ2V9LG59ZnVuY3Rpb24gcXkoKXtyZXR1cm4gVXkubG9nTGV2ZWx9ZnVuY3Rpb24gVnkodCl7Zm9yKHZhciBlLG49W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtVeS5sb2dMZXZlbDw9YXMuREVCVUcmJihlPW4ubWFwKFd5KSxVeS5kZWJ1Zy5hcHBseShVeSxubyhbIkZpcmVzdG9yZSAoOC4zLjIpOiAiK3RdLGUpKSl9ZnVuY3Rpb24gQnkodCl7Zm9yKHZhciBlLG49W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtVeS5sb2dMZXZlbDw9YXMuRVJST1ImJihlPW4ubWFwKFd5KSxVeS5lcnJvci5hcHBseShVeSxubyhbIkZpcmVzdG9yZSAoOC4zLjIpOiAiK3RdLGUpKSl9ZnVuY3Rpb24gS3kodCl7Zm9yKHZhciBlLG49W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtVeS5sb2dMZXZlbDw9YXMuV0FSTiYmKGU9bi5tYXAoV3kpLFV5Lndhcm4uYXBwbHkoVXksbm8oWyJGaXJlc3RvcmUgKDguMy4yKTogIit0XSxlKSkpfWZ1bmN0aW9uIFd5KGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gZTt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKHQpe3JldHVybiBlfX1mdW5jdGlvbiBIeSh0KXt0PSJGSVJFU1RPUkUgKDguMy4yKSBJTlRFUk5BTCBBU1NFUlRJT04gRkFJTEVEOiAiKyh0PXZvaWQgMD09PXQ/IlVuZXhwZWN0ZWQgc3RhdGUiOnQpO3Rocm93IEJ5KHQpLG5ldyBFcnJvcih0KX1mdW5jdGlvbiBHeSh0KXt0fHxIeSgpfXZhciB6eT0oUXkudT1mdW5jdGlvbigpe2Zvcih2YXIgdD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLGU9TWF0aC5mbG9vcigyNTYvdC5sZW5ndGgpKnQubGVuZ3RoLG49IiI7bi5sZW5ndGg8MjA7KWZvcih2YXIgcj1mdW5jdGlvbih0KXt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJihzZWxmLmNyeXB0b3x8c2VsZi5tc0NyeXB0byksbj1uZXcgVWludDhBcnJheSh0KTtpZihlJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRSYW5kb21WYWx1ZXMpZS5nZXRSYW5kb21WYWx1ZXMobik7ZWxzZSBmb3IodmFyIHI9MDtyPHQ7cisrKW5bcl09TWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSk7cmV0dXJuIG59KDQwKSxpPTA7aTxyLmxlbmd0aDsrK2kpbi5sZW5ndGg8MjAmJnJbaV08ZSYmKG4rPXQuY2hhckF0KHJbaV0ldC5sZW5ndGgpKTtyZXR1cm4gbn0sUXkpO2Z1bmN0aW9uIFF5KCl7fWZ1bmN0aW9uIFl5KHQsZSl7cmV0dXJuIHQ8ZT8tMTplPHQ/MTowfWZ1bmN0aW9uIFh5KHQsbixyKXtyZXR1cm4gdC5sZW5ndGg9PT1uLmxlbmd0aCYmdC5ldmVyeShmdW5jdGlvbih0LGUpe3JldHVybiByKHQsbltlXSl9KX1mdW5jdGlvbiBKeSh0KXtyZXR1cm4gdCsiXDAifXZhciAkeT0oZW0ubm93PWZ1bmN0aW9uKCl7cmV0dXJuIGVtLmZyb21NaWxsaXMoRGF0ZS5ub3coKSl9LGVtLmZyb21EYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBlbS5mcm9tTWlsbGlzKHQuZ2V0VGltZSgpKX0sZW0uZnJvbU1pbGxpcz1mdW5jdGlvbih0KXt2YXIgZT1NYXRoLmZsb29yKHQvMWUzKTtyZXR1cm4gbmV3IGVtKGUsMWU2Kih0LTFlMyplKSl9LGVtLnByb3RvdHlwZS50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy50b01pbGxpcygpKX0sZW0ucHJvdG90eXBlLnRvTWlsbGlzPWZ1bmN0aW9uKCl7cmV0dXJuIDFlMyp0aGlzLnNlY29uZHMrdGhpcy5uYW5vc2Vjb25kcy8xZTZ9LGVtLnByb3RvdHlwZS5fY29tcGFyZVRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlY29uZHM9PT10LnNlY29uZHM/WXkodGhpcy5uYW5vc2Vjb25kcyx0Lm5hbm9zZWNvbmRzKTpZeSh0aGlzLnNlY29uZHMsdC5zZWNvbmRzKX0sZW0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Vjb25kcz09PXRoaXMuc2Vjb25kcyYmdC5uYW5vc2Vjb25kcz09PXRoaXMubmFub3NlY29uZHN9LGVtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJUaW1lc3RhbXAoc2Vjb25kcz0iK3RoaXMuc2Vjb25kcysiLCBuYW5vc2Vjb25kcz0iK3RoaXMubmFub3NlY29uZHMrIikifSxlbS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3NlY29uZHM6dGhpcy5zZWNvbmRzLG5hbm9zZWNvbmRzOnRoaXMubmFub3NlY29uZHN9fSxlbS5wcm90b3R5cGUudmFsdWVPZj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2Vjb25kcy0gLTYyMTM1NTk2ODAwO3JldHVybiBTdHJpbmcodCkucGFkU3RhcnQoMTIsIjAiKSsiLiIrU3RyaW5nKHRoaXMubmFub3NlY29uZHMpLnBhZFN0YXJ0KDksIjAiKX0sZW0pLFp5PSh0bS5mcm9tVGltZXN0YW1wPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdG0odCl9LHRtLm1pbj1mdW5jdGlvbigpe3JldHVybiBuZXcgdG0obmV3ICR5KDAsMCkpfSx0bS5wcm90b3R5cGUuY29tcGFyZVRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRpbWVzdGFtcC5fY29tcGFyZVRvKHQudGltZXN0YW1wKX0sdG0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGltZXN0YW1wLmlzRXF1YWwodC50aW1lc3RhbXApfSx0bS5wcm90b3R5cGUudG9NaWNyb3NlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gMWU2KnRoaXMudGltZXN0YW1wLnNlY29uZHMrdGhpcy50aW1lc3RhbXAubmFub3NlY29uZHMvMWUzfSx0bS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iU25hcHNob3RWZXJzaW9uKCIrdGhpcy50aW1lc3RhbXAudG9TdHJpbmcoKSsiKSJ9LHRtLnByb3RvdHlwZS50b1RpbWVzdGFtcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpbWVzdGFtcH0sdG0pO2Z1bmN0aW9uIHRtKHQpe3RoaXMudGltZXN0YW1wPXR9ZnVuY3Rpb24gZW0odCxlKXtpZih0aGlzLnNlY29uZHM9dCwodGhpcy5uYW5vc2Vjb25kcz1lKTwwKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJUaW1lc3RhbXAgbmFub3NlY29uZHMgb3V0IG9mIHJhbmdlOiAiK2UpO2lmKDFlOTw9ZSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVGltZXN0YW1wIG5hbm9zZWNvbmRzIG91dCBvZiByYW5nZTogIitlKTtpZih0PC02MjEzNTU5NjgwMCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVGltZXN0YW1wIHNlY29uZHMgb3V0IG9mIHJhbmdlOiAiK3QpO2lmKDI1MzQwMjMwMDgwMDw9dCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVGltZXN0YW1wIHNlY29uZHMgb3V0IG9mIHJhbmdlOiAiK3QpfWZ1bmN0aW9uIG5tKHQpe3ZhciBlLG49MDtmb3IoZSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZuKys7cmV0dXJuIG59ZnVuY3Rpb24gcm0odCxlKXtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmZShuLHRbbl0pfWZ1bmN0aW9uIGltKHQpe2Zvcih2YXIgZSBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpKXJldHVybiExO3JldHVybiEwfXZhciBvbSxzbSxHYT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGdtLnByb3RvdHlwZSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVufSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGdtLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09Z20uY29tcGFyYXRvcih0aGlzLHQpfSxnbS5wcm90b3R5cGUuY2hpbGQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zZWdtZW50cy5zbGljZSh0aGlzLm9mZnNldCx0aGlzLmxpbWl0KCkpO3JldHVybiB0IGluc3RhbmNlb2YgZ20/dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UucHVzaCh0KX0pOmUucHVzaCh0KSx0aGlzLmNvbnN0cnVjdChlKX0sZ20ucHJvdG90eXBlLmxpbWl0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0K3RoaXMubGVuZ3RofSxnbS5wcm90b3R5cGUucG9wRmlyc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dm9pZCAwPT09dD8xOnQsdGhpcy5jb25zdHJ1Y3QodGhpcy5zZWdtZW50cyx0aGlzLm9mZnNldCt0LHRoaXMubGVuZ3RoLXQpfSxnbS5wcm90b3R5cGUucG9wTGFzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnN0cnVjdCh0aGlzLnNlZ21lbnRzLHRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoLTEpfSxnbS5wcm90b3R5cGUuZmlyc3RTZWdtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VnbWVudHNbdGhpcy5vZmZzZXRdfSxnbS5wcm90b3R5cGUubGFzdFNlZ21lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQodGhpcy5sZW5ndGgtMSl9LGdtLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VnbWVudHNbdGhpcy5vZmZzZXQrdF19LGdtLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmxlbmd0aH0sZ20ucHJvdG90eXBlLmlzUHJlZml4T2Y9ZnVuY3Rpb24odCl7aWYodC5sZW5ndGg8dGhpcy5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspaWYodGhpcy5nZXQoZSkhPT10LmdldChlKSlyZXR1cm4hMTtyZXR1cm4hMH0sZ20ucHJvdG90eXBlLmlzSW1tZWRpYXRlUGFyZW50T2Y9ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGgrMSE9PXQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKWlmKHRoaXMuZ2V0KGUpIT09dC5nZXQoZSkpcmV0dXJuITE7cmV0dXJuITB9LGdtLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLm9mZnNldCxuPXRoaXMubGltaXQoKTtlPG47ZSsrKXQodGhpcy5zZWdtZW50c1tlXSl9LGdtLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VnbWVudHMuc2xpY2UodGhpcy5vZmZzZXQsdGhpcy5saW1pdCgpKX0sZ20uY29tcGFyYXRvcj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCkscj0wO3I8bjtyKyspe3ZhciBpPXQuZ2V0KHIpLG89ZS5nZXQocik7aWYoaTxvKXJldHVybi0xO2lmKG88aSlyZXR1cm4gMX1yZXR1cm4gdC5sZW5ndGg8ZS5sZW5ndGg/LTE6dC5sZW5ndGg+ZS5sZW5ndGg/MTowfSxnbSksYW09KFhpKHZtLHNtPUdhKSx2bS5wcm90b3R5cGUuY29uc3RydWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IHZtKHQsZSxuKX0sdm0ucHJvdG90eXBlLmNhbm9uaWNhbFN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvQXJyYXkoKS5qb2luKCIvIil9LHZtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbm9uaWNhbFN0cmluZygpfSx2bS5mcm9tU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj1bXSxyPTAsaT10O3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdO2lmKDA8PW8uaW5kZXhPZigiLy8iKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBzZWdtZW50ICgiK28rIikuIFBhdGhzIG11c3Qgbm90IGNvbnRhaW4gLy8gaW4gdGhlbS4iKTtuLnB1c2guYXBwbHkobixvLnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiAwPHQubGVuZ3RofSkpfXJldHVybiBuZXcgdm0obil9LHZtLmVtcHR5UGF0aD1mdW5jdGlvbigpe3JldHVybiBuZXcgdm0oW10pfSx2bSksdW09L15bX2EtekEtWl1bX2EtekEtWjAtOV0qJC8sY209KFhpKGRtLG9tPUdhKSxkbS5wcm90b3R5cGUuY29uc3RydWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IGRtKHQsZSxuKX0sZG0uaXNWYWxpZElkZW50aWZpZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVtLnRlc3QodCl9LGRtLnByb3RvdHlwZS5jYW5vbmljYWxTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b0FycmF5KCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0PXQucmVwbGFjZSgvXFwvZywiXFxcXCIpLnJlcGxhY2UoL2AvZywiXFxgIiksdD0hZG0uaXNWYWxpZElkZW50aWZpZXIodCk/ImAiK3QrImAiOnR9KS5qb2luKCIuIil9LGRtLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbm9uaWNhbFN0cmluZygpfSxkbS5wcm90b3R5cGUuaXNLZXlGaWVsZD1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJiJfX25hbWVfXyI9PT10aGlzLmdldCgwKX0sZG0ua2V5RmllbGQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGRtKFsiX19uYW1lX18iXSl9LGRtLmZyb21TZXJ2ZXJGb3JtYXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49IiIscj0wLGk9ZnVuY3Rpb24oKXtpZigwPT09bi5sZW5ndGgpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgZmllbGQgcGF0aCAoIit0KyIpLiBQYXRocyBtdXN0IG5vdCBiZSBlbXB0eSwgYmVnaW4gd2l0aCAnLicsIGVuZCB3aXRoICcuJywgb3IgY29udGFpbiAnLi4nIik7ZS5wdXNoKG4pLG49IiJ9LG89ITE7cjx0Lmxlbmd0aDspe3ZhciBzPXRbcl07aWYoIlxcIj09PXMpe2lmKHIrMT09PXQubGVuZ3RoKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJQYXRoIGhhcyB0cmFpbGluZyBlc2NhcGUgY2hhcmFjdGVyOiAiK3QpO3ZhciBhPXRbcisxXTtpZigiXFwiIT09YSYmIi4iIT09YSYmImAiIT09YSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiUGF0aCBoYXMgaW52YWxpZCBlc2NhcGUgc2VxdWVuY2U6ICIrdCk7bis9YSxyKz0yfWVsc2UiYCI9PT1zP289IW86Ii4iIT09c3x8bz9uKz1zOmkoKSxyKyt9aWYoaSgpLG8pdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIlVudGVybWluYXRlZCBgIGluIHBhdGg6ICIrdCk7cmV0dXJuIG5ldyBkbShlKX0sZG0uZW1wdHlQYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBkbShbXSl9LGRtKSxobT0ocG0ucHJvdG90eXBlLmNvdmVycz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPXRoaXMuZmllbGRzO2U8bi5sZW5ndGg7ZSsrKWlmKG5bZV0uaXNQcmVmaXhPZih0KSlyZXR1cm4hMDtyZXR1cm4hMX0scG0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIFh5KHRoaXMuZmllbGRzLHQuZmllbGRzLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaXNFcXVhbChlKX0pfSxwbSksbG09KGZtLmZyb21CYXNlNjRTdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBmbShhdG9iKHQpKX0sZm0uZnJvbVVpbnQ4QXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBmbShmdW5jdGlvbih0KXtmb3IodmFyIGU9IiIsbj0wO248dC5sZW5ndGg7KytuKWUrPVN0cmluZy5mcm9tQ2hhckNvZGUodFtuXSk7cmV0dXJuIGV9KHQpKX0sZm0ucHJvdG90eXBlLnRvQmFzZTY0PWZ1bmN0aW9uKCl7cmV0dXJuIHQ9dGhpcy5iaW5hcnlTdHJpbmcsYnRvYSh0KTt2YXIgdH0sZm0ucHJvdG90eXBlLnRvVWludDhBcnJheT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgpLG49MDtuPHQubGVuZ3RoO24rKyllW25dPXQuY2hhckNvZGVBdChuKTtyZXR1cm4gZX0odGhpcy5iaW5hcnlTdHJpbmcpfSxmbS5wcm90b3R5cGUuYXBwcm94aW1hdGVCeXRlU2l6ZT1mdW5jdGlvbigpe3JldHVybiAyKnRoaXMuYmluYXJ5U3RyaW5nLmxlbmd0aH0sZm0ucHJvdG90eXBlLmNvbXBhcmVUbz1mdW5jdGlvbih0KXtyZXR1cm4gWXkodGhpcy5iaW5hcnlTdHJpbmcsdC5iaW5hcnlTdHJpbmcpfSxmbS5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5iaW5hcnlTdHJpbmc9PT10LmJpbmFyeVN0cmluZ30sZm0pO2Z1bmN0aW9uIGZtKHQpe3RoaXMuYmluYXJ5U3RyaW5nPXR9ZnVuY3Rpb24gcG0odCl7KHRoaXMuZmllbGRzPXQpLnNvcnQoY20uY29tcGFyYXRvcil9ZnVuY3Rpb24gZG0oKXtyZXR1cm4gbnVsbCE9PW9tJiZvbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gdm0oKXtyZXR1cm4gbnVsbCE9PXNtJiZzbS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gZ20odCxlLG4pe3ZvaWQgMD09PWU/ZT0wOmU+dC5sZW5ndGgmJkh5KCksdm9pZCAwPT09bj9uPXQubGVuZ3RoLWU6bj50Lmxlbmd0aC1lJiZIeSgpLHRoaXMuc2VnbWVudHM9dCx0aGlzLm9mZnNldD1lLHRoaXMubGVuPW59bG0uRU1QVFlfQllURV9TVFJJTkc9bmV3IGxtKCIiKTt2YXIgeW09bmV3IFJlZ0V4cCgvXlxkezR9LVxkXGQtXGRcZFRcZFxkOlxkXGQ6XGRcZCg/OlwuKFxkKykpP1okLyk7ZnVuY3Rpb24gbW0odCl7aWYoR3koISF0KSwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJue3NlY29uZHM6Ym0odC5zZWNvbmRzKSxuYW5vczpibSh0Lm5hbm9zKX07dmFyIGU9MCxuPXltLmV4ZWModCk7R3koISFuKSxuWzFdJiYobj0oKG49blsxXSkrIjAwMDAwMDAwMCIpLnN1YnN0cigwLDkpLGU9TnVtYmVyKG4pKTt0PW5ldyBEYXRlKHQpO3JldHVybntzZWNvbmRzOk1hdGguZmxvb3IodC5nZXRUaW1lKCkvMWUzKSxuYW5vczplfX1mdW5jdGlvbiBibSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/dDoic3RyaW5nIj09dHlwZW9mIHQ/TnVtYmVyKHQpOjB9ZnVuY3Rpb24gd20odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2xtLmZyb21CYXNlNjRTdHJpbmcodCk6bG0uZnJvbVVpbnQ4QXJyYXkodCl9ZnVuY3Rpb24gX20odCl7cmV0dXJuInNlcnZlcl90aW1lc3RhbXAiPT09KG51bGw9PT0odD0oKG51bGw9PT0odD1udWxsPT10P3ZvaWQgMDp0Lm1hcFZhbHVlKXx8dm9pZCAwPT09dD92b2lkIDA6dC5maWVsZHMpfHx7fSkuX190eXBlX18pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnN0cmluZ1ZhbHVlKX1mdW5jdGlvbiBJbSh0KXt0PW1tKHQubWFwVmFsdWUuZmllbGRzLl9fbG9jYWxfd3JpdGVfdGltZV9fLnRpbWVzdGFtcFZhbHVlKTtyZXR1cm4gbmV3ICR5KHQuc2Vjb25kcyx0Lm5hbm9zKX1mdW5jdGlvbiBUbSh0KXtyZXR1cm4gbnVsbD09dH1mdW5jdGlvbiBFbSh0KXtyZXR1cm4gMD09PXQmJjEvdD09LTEvMH1mdW5jdGlvbiBTbSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJk51bWJlci5pc0ludGVnZXIodCkmJiFFbSh0KSYmdDw9TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVImJnQ+PU51bWJlci5NSU5fU0FGRV9JTlRFR0VSfXZhciBDbT0oTm0uZnJvbVBhdGg9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBObShhbS5mcm9tU3RyaW5nKHQpKX0sTm0uZnJvbU5hbWU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBObShhbS5mcm9tU3RyaW5nKHQpLnBvcEZpcnN0KDUpKX0sTm0ucHJvdG90eXBlLmhhc0NvbGxlY3Rpb25JZD1mdW5jdGlvbih0KXtyZXR1cm4gMjw9dGhpcy5wYXRoLmxlbmd0aCYmdGhpcy5wYXRoLmdldCh0aGlzLnBhdGgubGVuZ3RoLTIpPT09dH0sTm0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10JiYwPT09YW0uY29tcGFyYXRvcih0aGlzLnBhdGgsdC5wYXRoKX0sTm0ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGF0aC50b1N0cmluZygpfSxObS5jb21wYXJhdG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFtLmNvbXBhcmF0b3IodC5wYXRoLGUucGF0aCl9LE5tLmlzRG9jdW1lbnRLZXk9ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoJTI9PTB9LE5tLmZyb21TZWdtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IE5tKG5ldyBhbSh0LnNsaWNlKCkpKX0sTm0pO2Z1bmN0aW9uIE5tKHQpe3RoaXMucGF0aD10fWZ1bmN0aW9uIEFtKHQpe3JldHVybiJudWxsVmFsdWUiaW4gdD8wOiJib29sZWFuVmFsdWUiaW4gdD8xOiJpbnRlZ2VyVmFsdWUiaW4gdHx8ImRvdWJsZVZhbHVlImluIHQ/MjoidGltZXN0YW1wVmFsdWUiaW4gdD8zOiJzdHJpbmdWYWx1ZSJpbiB0PzU6ImJ5dGVzVmFsdWUiaW4gdD82OiJyZWZlcmVuY2VWYWx1ZSJpbiB0Pzc6Imdlb1BvaW50VmFsdWUiaW4gdD84OiJhcnJheVZhbHVlImluIHQ/OToibWFwVmFsdWUiaW4gdD9fbSh0KT80OjEwOkh5KCl9ZnVuY3Rpb24ga20ocixpKXt2YXIgdCxlLG49QW0ocik7aWYobiE9PUFtKGkpKXJldHVybiExO3N3aXRjaChuKXtjYXNlIDA6cmV0dXJuITA7Y2FzZSAxOnJldHVybiByLmJvb2xlYW5WYWx1ZT09PWkuYm9vbGVhblZhbHVlO2Nhc2UgNDpyZXR1cm4gSW0ocikuaXNFcXVhbChJbShpKSk7Y2FzZSAzOnJldHVybiBmdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHIudGltZXN0YW1wVmFsdWUmJiJzdHJpbmciPT10eXBlb2YgdC50aW1lc3RhbXBWYWx1ZSYmci50aW1lc3RhbXBWYWx1ZS5sZW5ndGg9PT10LnRpbWVzdGFtcFZhbHVlLmxlbmd0aClyZXR1cm4gci50aW1lc3RhbXBWYWx1ZT09PXQudGltZXN0YW1wVmFsdWU7dmFyIGU9bW0oci50aW1lc3RhbXBWYWx1ZSksdD1tbSh0LnRpbWVzdGFtcFZhbHVlKTtyZXR1cm4gZS5zZWNvbmRzPT09dC5zZWNvbmRzJiZlLm5hbm9zPT09dC5uYW5vc30oaSk7Y2FzZSA1OnJldHVybiByLnN0cmluZ1ZhbHVlPT09aS5zdHJpbmdWYWx1ZTtjYXNlIDY6cmV0dXJuIGU9aSx3bShyLmJ5dGVzVmFsdWUpLmlzRXF1YWwod20oZS5ieXRlc1ZhbHVlKSk7Y2FzZSA3OnJldHVybiByLnJlZmVyZW5jZVZhbHVlPT09aS5yZWZlcmVuY2VWYWx1ZTtjYXNlIDg6cmV0dXJuIHQ9aSxibSgoZT1yKS5nZW9Qb2ludFZhbHVlLmxhdGl0dWRlKT09PWJtKHQuZ2VvUG9pbnRWYWx1ZS5sYXRpdHVkZSkmJmJtKGUuZ2VvUG9pbnRWYWx1ZS5sb25naXR1ZGUpPT09Ym0odC5nZW9Qb2ludFZhbHVlLmxvbmdpdHVkZSk7Y2FzZSAyOnJldHVybiBmdW5jdGlvbih0LGUpe2lmKCJpbnRlZ2VyVmFsdWUiaW4gdCYmImludGVnZXJWYWx1ZSJpbiBlKXJldHVybiBibSh0LmludGVnZXJWYWx1ZSk9PT1ibShlLmludGVnZXJWYWx1ZSk7aWYoImRvdWJsZVZhbHVlImluIHQmJiJkb3VibGVWYWx1ZSJpbiBlKXt0PWJtKHQuZG91YmxlVmFsdWUpLGU9Ym0oZS5kb3VibGVWYWx1ZSk7cmV0dXJuIHQ9PT1lP0VtKHQpPT09RW0oZSk6aXNOYU4odCkmJmlzTmFOKGUpfXJldHVybiExfShyLGkpO2Nhc2UgOTpyZXR1cm4gWHkoci5hcnJheVZhbHVlLnZhbHVlc3x8W10saS5hcnJheVZhbHVlLnZhbHVlc3x8W10sa20pO2Nhc2UgMTA6cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQsZT1yLm1hcFZhbHVlLmZpZWxkc3x8e30sbj1pLm1hcFZhbHVlLmZpZWxkc3x8e307aWYobm0oZSkhPT1ubShuKSlyZXR1cm4hMTtmb3IodCBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkodCkmJih2b2lkIDA9PT1uW3RdfHwha20oZVt0XSxuW3RdKSkpcmV0dXJuITE7cmV0dXJuITB9KCk7ZGVmYXVsdDpyZXR1cm4gSHkoKX19ZnVuY3Rpb24gUm0odCxlKXtyZXR1cm4gdm9pZCAwIT09KHQudmFsdWVzfHxbXSkuZmluZChmdW5jdGlvbih0KXtyZXR1cm4ga20odCxlKX0pfWZ1bmN0aW9uIFBtKHQsZSl7dmFyIG4scixpLG89QW0odCkscz1BbShlKTtpZihvIT09cylyZXR1cm4gWXkobyxzKTtzd2l0Y2gobyl7Y2FzZSAwOnJldHVybiAwO2Nhc2UgMTpyZXR1cm4gWXkodC5ib29sZWFuVmFsdWUsZS5ib29sZWFuVmFsdWUpO2Nhc2UgMjpyZXR1cm4gcj1lLGk9Ym0odC5pbnRlZ2VyVmFsdWV8fHQuZG91YmxlVmFsdWUpLHI9Ym0oci5pbnRlZ2VyVmFsdWV8fHIuZG91YmxlVmFsdWUpLGk8cj8tMTpyPGk/MTppPT09cj8wOmlzTmFOKGkpP2lzTmFOKHIpPzA6LTE6MTtjYXNlIDM6cmV0dXJuIE9tKHQudGltZXN0YW1wVmFsdWUsZS50aW1lc3RhbXBWYWx1ZSk7Y2FzZSA0OnJldHVybiBPbShJbSh0KSxJbShlKSk7Y2FzZSA1OnJldHVybiBZeSh0LnN0cmluZ1ZhbHVlLGUuc3RyaW5nVmFsdWUpO2Nhc2UgNjpyZXR1cm4gZnVuY3Rpb24odCxlKXt0PXdtKHQpLGU9d20oZSk7cmV0dXJuIHQuY29tcGFyZVRvKGUpfSh0LmJ5dGVzVmFsdWUsZS5ieXRlc1ZhbHVlKTtjYXNlIDc6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXQuc3BsaXQoIi8iKSxyPWUuc3BsaXQoIi8iKSxpPTA7aTxuLmxlbmd0aCYmaTxyLmxlbmd0aDtpKyspe3ZhciBvPVl5KG5baV0scltpXSk7aWYoMCE9PW8pcmV0dXJuIG99cmV0dXJuIFl5KG4ubGVuZ3RoLHIubGVuZ3RoKX0odC5yZWZlcmVuY2VWYWx1ZSxlLnJlZmVyZW5jZVZhbHVlKTtjYXNlIDg6cmV0dXJuIG49dC5nZW9Qb2ludFZhbHVlLGk9ZS5nZW9Qb2ludFZhbHVlLDAhPT0ocj1ZeShibShuLmxhdGl0dWRlKSxibShpLmxhdGl0dWRlKSkpP3I6WXkoYm0obi5sb25naXR1ZGUpLGJtKGkubG9uZ2l0dWRlKSk7Y2FzZSA5OnJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LnZhbHVlc3x8W10scj1lLnZhbHVlc3x8W10saT0wO2k8bi5sZW5ndGgmJmk8ci5sZW5ndGg7KytpKXt2YXIgbz1QbShuW2ldLHJbaV0pO2lmKG8pcmV0dXJuIG99cmV0dXJuIFl5KG4ubGVuZ3RoLHIubGVuZ3RoKX0odC5hcnJheVZhbHVlLGUuYXJyYXlWYWx1ZSk7Y2FzZSAxMDpyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj10LmZpZWxkc3x8e30scj1PYmplY3Qua2V5cyhuKSxpPWUuZmllbGRzfHx7fSxvPU9iamVjdC5rZXlzKGkpO3Iuc29ydCgpLG8uc29ydCgpO2Zvcih2YXIgcz0wO3M8ci5sZW5ndGgmJnM8by5sZW5ndGg7KytzKXt2YXIgYT1ZeShyW3NdLG9bc10pO2lmKDAhPT1hKXJldHVybiBhO2E9UG0obltyW3NdXSxpW29bc11dKTtpZigwIT09YSlyZXR1cm4gYX1yZXR1cm4gWXkoci5sZW5ndGgsby5sZW5ndGgpfSh0Lm1hcFZhbHVlLGUubWFwVmFsdWUpO2RlZmF1bHQ6dGhyb3cgSHkoKX19ZnVuY3Rpb24gT20odCxlKXtpZigic3RyaW5nIj09dHlwZW9mIHQmJiJzdHJpbmciPT10eXBlb2YgZSYmdC5sZW5ndGg9PT1lLmxlbmd0aClyZXR1cm4gWXkodCxlKTt2YXIgbj1tbSh0KSx0PW1tKGUpLGU9WXkobi5zZWNvbmRzLHQuc2Vjb25kcyk7cmV0dXJuIDAhPT1lP2U6WXkobi5uYW5vcyx0Lm5hbm9zKX1mdW5jdGlvbiBEbSh0KXtyZXR1cm4gZnVuY3Rpb24gcyh0KXtyZXR1cm4ibnVsbFZhbHVlImluIHQ/Im51bGwiOiJib29sZWFuVmFsdWUiaW4gdD8iIit0LmJvb2xlYW5WYWx1ZToiaW50ZWdlclZhbHVlImluIHQ/IiIrdC5pbnRlZ2VyVmFsdWU6ImRvdWJsZVZhbHVlImluIHQ/IiIrdC5kb3VibGVWYWx1ZToidGltZXN0YW1wVmFsdWUiaW4gdD9mdW5jdGlvbih0KXt2YXIgdD1tbSh0KTtyZXR1cm4idGltZSgiK3Quc2Vjb25kcysiLCIrdC5uYW5vcysiKSJ9KHQudGltZXN0YW1wVmFsdWUpOiJzdHJpbmdWYWx1ZSJpbiB0P3Quc3RyaW5nVmFsdWU6ImJ5dGVzVmFsdWUiaW4gdD93bSh0LmJ5dGVzVmFsdWUpLnRvQmFzZTY0KCk6InJlZmVyZW5jZVZhbHVlImluIHQ/KGU9dC5yZWZlcmVuY2VWYWx1ZSxDbS5mcm9tTmFtZShlKS50b1N0cmluZygpKToiZ2VvUG9pbnRWYWx1ZSJpbiB0PyJnZW8oIisoZT10Lmdlb1BvaW50VmFsdWUpLmxhdGl0dWRlKyIsIitlLmxvbmdpdHVkZSsiKSI6ImFycmF5VmFsdWUiaW4gdD9mdW5jdGlvbih0KXtmb3IodmFyIGU9IlsiLG49ITAscj0wLGk9dC52YWx1ZXN8fFtdO3I8aS5sZW5ndGg7cisrKW4/bj0hMTplKz0iLCIsZSs9cyhpW3JdKTtyZXR1cm4gZSsiXSJ9KHQuYXJyYXlWYWx1ZSk6Im1hcFZhbHVlImluIHQ/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSJ7IixuPSEwLHI9MCxpPU9iamVjdC5rZXlzKHQuZmllbGRzfHx7fSkuc29ydCgpO3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdO24/bj0hMTplKz0iLCIsZSs9bysiOiIrcyh0LmZpZWxkc1tvXSl9cmV0dXJuIGUrIn0ifSh0Lm1hcFZhbHVlKTpIeSgpO3ZhciBlfSh0KX1mdW5jdGlvbiB4bSh0LGUpe3JldHVybntyZWZlcmVuY2VWYWx1ZToicHJvamVjdHMvIit0LnByb2plY3RJZCsiL2RhdGFiYXNlcy8iK3QuZGF0YWJhc2UrIi9kb2N1bWVudHMvIitlLnBhdGguY2Fub25pY2FsU3RyaW5nKCl9fWZ1bmN0aW9uIExtKHQpe3JldHVybiB0JiYiaW50ZWdlclZhbHVlImluIHR9ZnVuY3Rpb24gTW0odCl7cmV0dXJuISF0JiYiYXJyYXlWYWx1ZSJpbiB0fWZ1bmN0aW9uIEZtKHQpe3JldHVybiB0JiYibnVsbFZhbHVlImluIHR9ZnVuY3Rpb24gVW0odCl7cmV0dXJuIHQmJiJkb3VibGVWYWx1ZSJpbiB0JiZpc05hTihOdW1iZXIodC5kb3VibGVWYWx1ZSkpfWZ1bmN0aW9uIGptKHQpe3JldHVybiB0JiYibWFwVmFsdWUiaW4gdH12YXIgcW09KFZtLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWbSh7bWFwVmFsdWU6e319KX0sVm0ucHJvdG90eXBlLmZpZWxkPWZ1bmN0aW9uKHQpe3JldHVybiBWbS5leHRyYWN0TmVzdGVkVmFsdWUodGhpcy5idWlsZFByb3RvKCksdCl9LFZtLnByb3RvdHlwZS50b1Byb3RvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmllbGQoY20uZW1wdHlQYXRoKCkpfSxWbS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5zZXRPdmVybGF5KHQsZSl9LFZtLnByb3RvdHlwZS5zZXRBbGw9ZnVuY3Rpb24odCl7dmFyIG49dGhpczt0LmZvckVhY2goZnVuY3Rpb24odCxlKXt0P24uc2V0KGUsdCk6bi5kZWxldGUoZSl9KX0sVm0ucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt0aGlzLnNldE92ZXJsYXkodCxudWxsKX0sVm0ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIGttKHRoaXMuYnVpbGRQcm90bygpLHQuYnVpbGRQcm90bygpKX0sVm0ucHJvdG90eXBlLnNldE92ZXJsYXk9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dGhpcy5vdmVybGF5TWFwLHI9MDtyPHQubGVuZ3RoLTE7KytyKXZhciBpPXQuZ2V0KHIpLG89bi5nZXQoaSksbj0obyBpbnN0YW5jZW9mIE1hcHx8KG89byYmMTA9PT1BbShvKT9uZXcgTWFwKE9iamVjdC5lbnRyaWVzKG8ubWFwVmFsdWUuZmllbGRzfHx7fSkpOm5ldyBNYXAsbi5zZXQoaSxvKSksbyk7bi5zZXQodC5sYXN0U2VnbWVudCgpLGUpfSxWbS5wcm90b3R5cGUuYXBwbHlPdmVybGF5PWZ1bmN0aW9uKHIsdCl7dmFyIGk9dGhpcyxvPSExLGU9Vm0uZXh0cmFjdE5lc3RlZFZhbHVlKHRoaXMucGFydGlhbFZhbHVlLHIpLHM9am0oZSk/T2JqZWN0LmFzc2lnbih7fSxlLm1hcFZhbHVlLmZpZWxkcyk6e307cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuO3QgaW5zdGFuY2VvZiBNYXA/bnVsbCE9KG49aS5hcHBseU92ZXJsYXkoci5jaGlsZChlKSx0KSkmJihzW2VdPW4sbz0hMCk6bnVsbCE9PXQ/KHNbZV09dCxvPSEwKTpzLmhhc093blByb3BlcnR5KGUpJiYoZGVsZXRlIHNbZV0sbz0hMCl9KSxvP3ttYXBWYWx1ZTp7ZmllbGRzOnN9fTpudWxsfSxWbS5wcm90b3R5cGUuYnVpbGRQcm90bz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuYXBwbHlPdmVybGF5KGNtLmVtcHR5UGF0aCgpLHRoaXMub3ZlcmxheU1hcCk7cmV0dXJuIG51bGwhPXQmJih0aGlzLnBhcnRpYWxWYWx1ZT10LHRoaXMub3ZlcmxheU1hcC5jbGVhcigpKSx0aGlzLnBhcnRpYWxWYWx1ZX0sVm0uZXh0cmFjdE5lc3RlZFZhbHVlPWZ1bmN0aW9uKHQsZSl7aWYoZS5pc0VtcHR5KCkpcmV0dXJuIHQ7Zm9yKHZhciBuPXQscj0wO3I8ZS5sZW5ndGgtMTsrK3Ipe2lmKCFuLm1hcFZhbHVlLmZpZWxkcylyZXR1cm4gbnVsbDtpZigham0obj1uLm1hcFZhbHVlLmZpZWxkc1tlLmdldChyKV0pKXJldHVybiBudWxsfXJldHVybihuPShuLm1hcFZhbHVlLmZpZWxkc3x8e30pW2UubGFzdFNlZ21lbnQoKV0pfHxudWxsfSxWbS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZtKHRoaXMuYnVpbGRQcm90bygpKX0sVm0pO2Z1bmN0aW9uIFZtKHQpe3RoaXMub3ZlcmxheU1hcD1uZXcgTWFwLHRoaXMucGFydGlhbFZhbHVlPXR9dmFyIEJtPShXbS5uZXdJbnZhbGlkRG9jdW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBXbSh0LDAsWnkubWluKCkscW0uZW1wdHkoKSwwKX0sV20ubmV3Rm91bmREb2N1bWVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBXbSh0LDEsZSxuLDApfSxXbS5uZXdOb0RvY3VtZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBXbSh0LDIsZSxxbS5lbXB0eSgpLDApfSxXbS5uZXdVbmtub3duRG9jdW1lbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFdtKHQsMyxlLHFtLmVtcHR5KCksMil9LFdtLnByb3RvdHlwZS5jb252ZXJ0VG9Gb3VuZERvY3VtZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMudmVyc2lvbj10LHRoaXMuZG9jdW1lbnRUeXBlPTEsdGhpcy5kYXRhPWUsdGhpcy5kb2N1bWVudFN0YXRlPTAsdGhpc30sV20ucHJvdG90eXBlLmNvbnZlcnRUb05vRG9jdW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudmVyc2lvbj10LHRoaXMuZG9jdW1lbnRUeXBlPTIsdGhpcy5kYXRhPXFtLmVtcHR5KCksdGhpcy5kb2N1bWVudFN0YXRlPTAsdGhpc30sV20ucHJvdG90eXBlLmNvbnZlcnRUb1Vua25vd25Eb2N1bWVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52ZXJzaW9uPXQsdGhpcy5kb2N1bWVudFR5cGU9Myx0aGlzLmRhdGE9cW0uZW1wdHkoKSx0aGlzLmRvY3VtZW50U3RhdGU9Mix0aGlzfSxXbS5wcm90b3R5cGUuc2V0SGFzQ29tbWl0dGVkTXV0YXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9jdW1lbnRTdGF0ZT0yLHRoaXN9LFdtLnByb3RvdHlwZS5zZXRIYXNMb2NhbE11dGF0aW9ucz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvY3VtZW50U3RhdGU9MSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoV20ucHJvdG90eXBlLCJoYXNMb2NhbE11dGF0aW9ucyIse2dldDpmdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5kb2N1bWVudFN0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXbS5wcm90b3R5cGUsImhhc0NvbW1pdHRlZE11dGF0aW9ucyIse2dldDpmdW5jdGlvbigpe3JldHVybiAyPT09dGhpcy5kb2N1bWVudFN0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXbS5wcm90b3R5cGUsImhhc1BlbmRpbmdXcml0ZXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNMb2NhbE11dGF0aW9uc3x8dGhpcy5oYXNDb21taXR0ZWRNdXRhdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksV20ucHJvdG90eXBlLmlzVmFsaWREb2N1bWVudD1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5kb2N1bWVudFR5cGV9LFdtLnByb3RvdHlwZS5pc0ZvdW5kRG9jdW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMuZG9jdW1lbnRUeXBlfSxXbS5wcm90b3R5cGUuaXNOb0RvY3VtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIDI9PT10aGlzLmRvY3VtZW50VHlwZX0sV20ucHJvdG90eXBlLmlzVW5rbm93bkRvY3VtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIDM9PT10aGlzLmRvY3VtZW50VHlwZX0sV20ucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBXbSYmdGhpcy5rZXkuaXNFcXVhbCh0LmtleSkmJnRoaXMudmVyc2lvbi5pc0VxdWFsKHQudmVyc2lvbikmJnRoaXMuZG9jdW1lbnRUeXBlPT09dC5kb2N1bWVudFR5cGUmJnRoaXMuZG9jdW1lbnRTdGF0ZT09PXQuZG9jdW1lbnRTdGF0ZSYmdGhpcy5kYXRhLmlzRXF1YWwodC5kYXRhKX0sV20ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXbSh0aGlzLmtleSx0aGlzLmRvY3VtZW50VHlwZSx0aGlzLnZlcnNpb24sdGhpcy5kYXRhLmNsb25lKCksdGhpcy5kb2N1bWVudFN0YXRlKX0sV20ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkRvY3VtZW50KCIrdGhpcy5rZXkrIiwgIit0aGlzLnZlcnNpb24rIiwgIitKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEudG9Qcm90bygpKSsiLCB7ZG9jdW1lbnRUeXBlOiAiK3RoaXMuZG9jdW1lbnRUeXBlKyJ9KSwge2RvY3VtZW50U3RhdGU6ICIrdGhpcy5kb2N1bWVudFN0YXRlKyJ9KSJ9LFdtKSxLbT1mdW5jdGlvbih0LGUsbixyLGksbyxzKXt2b2lkIDA9PT1lJiYoZT1udWxsKSx2b2lkIDA9PT1uJiYobj1bXSksdm9pZCAwPT09ciYmKHI9W10pLHZvaWQgMD09PWkmJihpPW51bGwpLHZvaWQgMD09PW8mJihvPW51bGwpLHZvaWQgMD09PXMmJihzPW51bGwpLHRoaXMucGF0aD10LHRoaXMuY29sbGVjdGlvbkdyb3VwPWUsdGhpcy5vcmRlckJ5PW4sdGhpcy5maWx0ZXJzPXIsdGhpcy5saW1pdD1pLHRoaXMuc3RhcnRBdD1vLHRoaXMuZW5kQXQ9cyx0aGlzLmg9bnVsbH07ZnVuY3Rpb24gV20odCxlLG4scixpKXt0aGlzLmtleT10LHRoaXMuZG9jdW1lbnRUeXBlPWUsdGhpcy52ZXJzaW9uPW4sdGhpcy5kYXRhPXIsdGhpcy5kb2N1bWVudFN0YXRlPWl9ZnVuY3Rpb24gSG0odCxlLG4scixpLG8scyl7cmV0dXJuIG5ldyBLbSh0LGU9dm9pZCAwPT09ZT9udWxsOmUsbj12b2lkIDA9PT1uP1tdOm4scj12b2lkIDA9PT1yP1tdOnIsaT12b2lkIDA9PT1pP251bGw6aSxvPXZvaWQgMD09PW8/bnVsbDpvLHM9dm9pZCAwPT09cz9udWxsOnMpfWZ1bmN0aW9uIEdtKHQpe3ZhciBlPXQ7cmV0dXJuIG51bGw9PT1lLmgmJih0PWUucGF0aC5jYW5vbmljYWxTdHJpbmcoKSxudWxsIT09ZS5jb2xsZWN0aW9uR3JvdXAmJih0Kz0ifGNnOiIrZS5jb2xsZWN0aW9uR3JvdXApLHQrPSJ8ZjoiLHQrPWUuZmlsdGVycy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuKHQ9dCkuZmllbGQuY2Fub25pY2FsU3RyaW5nKCkrdC5vcC50b1N0cmluZygpK0RtKHQudmFsdWUpfSkuam9pbigiLCIpLHQrPSJ8b2I6Iix0Kz1lLm9yZGVyQnkubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0PXQpLmZpZWxkLmNhbm9uaWNhbFN0cmluZygpK3QuZGlyfSkuam9pbigiLCIpLFRtKGUubGltaXQpfHwodCs9InxsOiIsdCs9ZS5saW1pdCksZS5zdGFydEF0JiYodCs9InxsYjoiLHQrPV9iKGUuc3RhcnRBdCkpLGUuZW5kQXQmJih0Kz0ifHViOiIsdCs9X2IoZS5lbmRBdCkpLGUuaD10KSxlLmh9ZnVuY3Rpb24gem0odCxlKXtpZih0LmxpbWl0IT09ZS5saW1pdClyZXR1cm4hMTtpZih0Lm9yZGVyQnkubGVuZ3RoIT09ZS5vcmRlckJ5Lmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG4scixpPTA7aTx0Lm9yZGVyQnkubGVuZ3RoO2krKylpZihuPXQub3JkZXJCeVtpXSxyPWUub3JkZXJCeVtpXSxuLmRpciE9PXIuZGlyfHwhbi5maWVsZC5pc0VxdWFsKHIuZmllbGQpKXJldHVybiExO2lmKHQuZmlsdGVycy5sZW5ndGghPT1lLmZpbHRlcnMubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbyxzLGE9MDthPHQuZmlsdGVycy5sZW5ndGg7YSsrKWlmKG89dC5maWx0ZXJzW2FdLHM9ZS5maWx0ZXJzW2FdLG8ub3AhPT1zLm9wfHwhby5maWVsZC5pc0VxdWFsKHMuZmllbGQpfHwha20oby52YWx1ZSxzLnZhbHVlKSlyZXR1cm4hMTtyZXR1cm4gdC5jb2xsZWN0aW9uR3JvdXA9PT1lLmNvbGxlY3Rpb25Hcm91cCYmISF0LnBhdGguaXNFcXVhbChlLnBhdGgpJiYhIUViKHQuc3RhcnRBdCxlLnN0YXJ0QXQpJiZFYih0LmVuZEF0LGUuZW5kQXQpfWZ1bmN0aW9uIFFtKHQpe3JldHVybiBDbS5pc0RvY3VtZW50S2V5KHQucGF0aCkmJm51bGw9PT10LmNvbGxlY3Rpb25Hcm91cCYmMD09PXQuZmlsdGVycy5sZW5ndGh9dmFyIFltLFhtPShYaShKbSxZbT1mdW5jdGlvbigpe30pLEptLmNyZWF0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQuaXNLZXlGaWVsZCgpPyJpbiI9PT1lfHwibm90LWluIj09PWU/dGhpcy5sKHQsZSxuKTpuZXcgZWIodCxlLG4pOiJhcnJheS1jb250YWlucyI9PT1lP25ldyBmYih0LG4pOiJpbiI9PT1lP25ldyBwYih0LG4pOiJub3QtaW4iPT09ZT9uZXcgZGIodCxuKToiYXJyYXktY29udGFpbnMtYW55Ij09PWU/bmV3IHZiKHQsbik6bmV3IEptKHQsZSxuKX0sSm0ubD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldygiaW4iPT09ZT9uYjpyYikodCxuKX0sSm0ucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24odCl7dD10LmRhdGEuZmllbGQodGhpcy5maWVsZCk7cmV0dXJuIiE9Ij09PXRoaXMub3A/bnVsbCE9PXQmJnRoaXMubShQbSh0LHRoaXMudmFsdWUpKTpudWxsIT09dCYmQW0odGhpcy52YWx1ZSk9PT1BbSh0KSYmdGhpcy5tKFBtKHQsdGhpcy52YWx1ZSkpfSxKbS5wcm90b3R5cGUubT1mdW5jdGlvbih0KXtzd2l0Y2godGhpcy5vcCl7Y2FzZSI8IjpyZXR1cm4gdDwwO2Nhc2UiPD0iOnJldHVybiB0PD0wO2Nhc2UiPT0iOnJldHVybiAwPT09dDtjYXNlIiE9IjpyZXR1cm4gMCE9PXQ7Y2FzZSI+IjpyZXR1cm4gMDx0O2Nhc2UiPj0iOnJldHVybiAwPD10O2RlZmF1bHQ6cmV0dXJuIEh5KCl9fSxKbS5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3JldHVybiAwPD1bIjwiLCI8PSIsIj4iLCI+PSIsIiE9Iiwibm90LWluIl0uaW5kZXhPZih0aGlzLm9wKX0sSm0pO2Z1bmN0aW9uIEptKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPVltLmNhbGwodGhpcyl8fHRoaXMpLmZpZWxkPXQsci5vcD1lLHIudmFsdWU9bixyfXZhciAkbSxabSx0YixlYj0oWGkoc2IsdGI9WG0pLHNiLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKHQpe3Q9Q20uY29tcGFyYXRvcih0LmtleSx0aGlzLmtleSk7cmV0dXJuIHRoaXMubSh0KX0sc2IpLG5iPShYaShvYixabT1YbSksb2IucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMua2V5cy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRXF1YWwoZS5rZXkpfSl9LG9iKSxyYj0oWGkoaWIsJG09WG0pLGliLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLmtleXMuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0VxdWFsKGUua2V5KX0pfSxpYik7ZnVuY3Rpb24gaWIodCxlKXt2YXIgbj10aGlzO3JldHVybihuPSRtLmNhbGwodGhpcyx0LCJub3QtaW4iLGUpfHx0aGlzKS5rZXlzPWFiKDAsZSksbn1mdW5jdGlvbiBvYih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49Wm0uY2FsbCh0aGlzLHQsImluIixlKXx8dGhpcykua2V5cz1hYigwLGUpLG59ZnVuY3Rpb24gc2IodCxlLG4pe3ZhciByPXRoaXM7cmV0dXJuKHI9dGIuY2FsbCh0aGlzLHQsZSxuKXx8dGhpcykua2V5PUNtLmZyb21OYW1lKG4ucmVmZXJlbmNlVmFsdWUpLHJ9ZnVuY3Rpb24gYWIodCxlKXtyZXR1cm4oKG51bGw9PT0oZT1lLmFycmF5VmFsdWUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZhbHVlcyl8fFtdKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIENtLmZyb21OYW1lKHQucmVmZXJlbmNlVmFsdWUpfSl9dmFyIHViLGNiLGhiLGxiLGZiPShYaSh3YixsYj1YbSksd2IucHJvdG90eXBlLm1hdGNoZXM9ZnVuY3Rpb24odCl7dD10LmRhdGEuZmllbGQodGhpcy5maWVsZCk7cmV0dXJuIE1tKHQpJiZSbSh0LmFycmF5VmFsdWUsdGhpcy52YWx1ZSl9LHdiKSxwYj0oWGkoYmIsaGI9WG0pLGJiLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKHQpe3Q9dC5kYXRhLmZpZWxkKHRoaXMuZmllbGQpO3JldHVybiBudWxsIT09dCYmUm0odGhpcy52YWx1ZS5hcnJheVZhbHVlLHQpfSxiYiksZGI9KFhpKG1iLGNiPVhtKSxtYi5wcm90b3R5cGUubWF0Y2hlcz1mdW5jdGlvbih0KXtpZihSbSh0aGlzLnZhbHVlLmFycmF5VmFsdWUse251bGxWYWx1ZToiTlVMTF9WQUxVRSJ9KSlyZXR1cm4hMTt0PXQuZGF0YS5maWVsZCh0aGlzLmZpZWxkKTtyZXR1cm4gbnVsbCE9PXQmJiFSbSh0aGlzLnZhbHVlLmFycmF5VmFsdWUsdCl9LG1iKSx2Yj0oWGkoeWIsdWI9WG0pLHliLnByb3RvdHlwZS5tYXRjaGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsdD10LmRhdGEuZmllbGQodGhpcy5maWVsZCk7cmV0dXJuISghTW0odCl8fCF0LmFycmF5VmFsdWUudmFsdWVzKSYmdC5hcnJheVZhbHVlLnZhbHVlcy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBSbShlLnZhbHVlLmFycmF5VmFsdWUsdCl9KX0seWIpLGdiPWZ1bmN0aW9uKHQsZSl7dGhpcy5wb3NpdGlvbj10LHRoaXMuYmVmb3JlPWV9O2Z1bmN0aW9uIHliKHQsZSl7cmV0dXJuIHViLmNhbGwodGhpcyx0LCJhcnJheS1jb250YWlucy1hbnkiLGUpfHx0aGlzfWZ1bmN0aW9uIG1iKHQsZSl7cmV0dXJuIGNiLmNhbGwodGhpcyx0LCJub3QtaW4iLGUpfHx0aGlzfWZ1bmN0aW9uIGJiKHQsZSl7cmV0dXJuIGhiLmNhbGwodGhpcyx0LCJpbiIsZSl8fHRoaXN9ZnVuY3Rpb24gd2IodCxlKXtyZXR1cm4gbGIuY2FsbCh0aGlzLHQsImFycmF5LWNvbnRhaW5zIixlKXx8dGhpc31mdW5jdGlvbiBfYih0KXtyZXR1cm4odC5iZWZvcmU/ImIiOiJhIikrIjoiK3QucG9zaXRpb24ubWFwKERtKS5qb2luKCIsIil9dmFyIEliPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9ImFzYyIpLHRoaXMuZmllbGQ9dCx0aGlzLmRpcj1lfTtmdW5jdGlvbiBUYih0LGUsbil7Zm9yKHZhciByPTAsaT0wO2k8dC5wb3NpdGlvbi5sZW5ndGg7aSsrKXt2YXIgbz1lW2ldLHM9dC5wb3NpdGlvbltpXSxyPW8uZmllbGQuaXNLZXlGaWVsZCgpP0NtLmNvbXBhcmF0b3IoQ20uZnJvbU5hbWUocy5yZWZlcmVuY2VWYWx1ZSksbi5rZXkpOlBtKHMsbi5kYXRhLmZpZWxkKG8uZmllbGQpKTtpZigiZGVzYyI9PT1vLmRpciYmKHIqPS0xKSwwIT09cilicmVha31yZXR1cm4gdC5iZWZvcmU/cjw9MDpyPDB9ZnVuY3Rpb24gRWIodCxlKXtpZihudWxsPT09dClyZXR1cm4gbnVsbD09PWU7aWYobnVsbD09PWUpcmV0dXJuITE7aWYodC5iZWZvcmUhPT1lLmJlZm9yZXx8dC5wb3NpdGlvbi5sZW5ndGghPT1lLnBvc2l0aW9uLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49MDtuPHQucG9zaXRpb24ubGVuZ3RoO24rKylpZigha20odC5wb3NpdGlvbltuXSxlLnBvc2l0aW9uW25dKSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgU2I9ZnVuY3Rpb24odCxlLG4scixpLG8scyxhKXt2b2lkIDA9PT1lJiYoZT1udWxsKSx2b2lkIDA9PT1uJiYobj1bXSksdm9pZCAwPT09ciYmKHI9W10pLHZvaWQgMD09PWkmJihpPW51bGwpLHZvaWQgMD09PW8mJihvPSJGIiksdm9pZCAwPT09cyYmKHM9bnVsbCksdm9pZCAwPT09YSYmKGE9bnVsbCksdGhpcy5wYXRoPXQsdGhpcy5jb2xsZWN0aW9uR3JvdXA9ZSx0aGlzLmV4cGxpY2l0T3JkZXJCeT1uLHRoaXMuZmlsdGVycz1yLHRoaXMubGltaXQ9aSx0aGlzLmxpbWl0VHlwZT1vLHRoaXMuc3RhcnRBdD1zLHRoaXMuZW5kQXQ9YSx0aGlzLnA9bnVsbCx0aGlzLlQ9bnVsbCx0aGlzLnN0YXJ0QXQsdGhpcy5lbmRBdH07ZnVuY3Rpb24gQ2IodCxlLG4scixpLG8scyxhKXtyZXR1cm4gbmV3IFNiKHQsZSxuLHIsaSxvLHMsYSl9ZnVuY3Rpb24gTmIodCl7cmV0dXJuIG5ldyBTYih0KX1mdW5jdGlvbiBBYih0KXtyZXR1cm4hVG0odC5saW1pdCkmJiJGIj09PXQubGltaXRUeXBlfWZ1bmN0aW9uIGtiKHQpe3JldHVybiFUbSh0LmxpbWl0KSYmIkwiPT09dC5saW1pdFR5cGV9ZnVuY3Rpb24gUmIodCl7cmV0dXJuIDA8dC5leHBsaWNpdE9yZGVyQnkubGVuZ3RoP3QuZXhwbGljaXRPcmRlckJ5WzBdLmZpZWxkOm51bGx9ZnVuY3Rpb24gUGIodCl7Zm9yKHZhciBlPTAsbj10LmZpbHRlcnM7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV07aWYoci5nKCkpcmV0dXJuIHIuZmllbGR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gT2IodCl7cmV0dXJuIG51bGwhPT10LmNvbGxlY3Rpb25Hcm91cH1mdW5jdGlvbiBEYih0KXt2YXIgZT10O2lmKG51bGw9PT1lLnApe2UucD1bXTt2YXIgbj1QYihlKSx0PVJiKGUpO2lmKG51bGwhPT1uJiZudWxsPT09dCluLmlzS2V5RmllbGQoKXx8ZS5wLnB1c2gobmV3IEliKG4pKSxlLnAucHVzaChuZXcgSWIoY20ua2V5RmllbGQoKSwiYXNjIikpO2Vsc2V7Zm9yKHZhciByPSExLGk9MCxvPWUuZXhwbGljaXRPcmRlckJ5O2k8by5sZW5ndGg7aSsrKXt2YXIgcz1vW2ldO2UucC5wdXNoKHMpLHMuZmllbGQuaXNLZXlGaWVsZCgpJiYocj0hMCl9cnx8KG49MDxlLmV4cGxpY2l0T3JkZXJCeS5sZW5ndGg/ZS5leHBsaWNpdE9yZGVyQnlbZS5leHBsaWNpdE9yZGVyQnkubGVuZ3RoLTFdLmRpcjoiYXNjIixlLnAucHVzaChuZXcgSWIoY20ua2V5RmllbGQoKSxuKSkpfX1yZXR1cm4gZS5wfWZ1bmN0aW9uIHhiKHQpe3ZhciBlPXQ7aWYoIWUuVClpZigiRiI9PT1lLmxpbWl0VHlwZSllLlQ9SG0oZS5wYXRoLGUuY29sbGVjdGlvbkdyb3VwLERiKGUpLGUuZmlsdGVycyxlLmxpbWl0LGUuc3RhcnRBdCxlLmVuZEF0KTtlbHNle2Zvcih2YXIgbj1bXSxyPTAsaT1EYihlKTtyPGkubGVuZ3RoO3IrKyl7dmFyIG89aVtyXSxzPSJkZXNjIj09PW8uZGlyPyJhc2MiOiJkZXNjIjtuLnB1c2gobmV3IEliKG8uZmllbGQscykpfXZhciBhPWUuZW5kQXQ/bmV3IGdiKGUuZW5kQXQucG9zaXRpb24sIWUuZW5kQXQuYmVmb3JlKTpudWxsLHQ9ZS5zdGFydEF0P25ldyBnYihlLnN0YXJ0QXQucG9zaXRpb24sIWUuc3RhcnRBdC5iZWZvcmUpOm51bGw7ZS5UPUhtKGUucGF0aCxlLmNvbGxlY3Rpb25Hcm91cCxuLGUuZmlsdGVycyxlLmxpbWl0LGEsdCl9cmV0dXJuIGUuVH1mdW5jdGlvbiBMYih0LGUsbil7cmV0dXJuIG5ldyBTYih0LnBhdGgsdC5jb2xsZWN0aW9uR3JvdXAsdC5leHBsaWNpdE9yZGVyQnkuc2xpY2UoKSx0LmZpbHRlcnMuc2xpY2UoKSxlLG4sdC5zdGFydEF0LHQuZW5kQXQpfWZ1bmN0aW9uIE1iKHQsZSl7cmV0dXJuIHptKHhiKHQpLHhiKGUpKSYmdC5saW1pdFR5cGU9PT1lLmxpbWl0VHlwZX1mdW5jdGlvbiBGYih0KXtyZXR1cm4gR20oeGIodCkpKyJ8bHQ6Iit0LmxpbWl0VHlwZX1mdW5jdGlvbiBVYih0KXtyZXR1cm4iUXVlcnkodGFyZ2V0PSIrKGU9eGIodCksbj1lLnBhdGguY2Fub25pY2FsU3RyaW5nKCksbnVsbCE9PWUuY29sbGVjdGlvbkdyb3VwJiYobis9IiBjb2xsZWN0aW9uR3JvdXA9IitlLmNvbGxlY3Rpb25Hcm91cCksMDxlLmZpbHRlcnMubGVuZ3RoJiYobis9IiwgZmlsdGVyczogWyIrZS5maWx0ZXJzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4odD10KS5maWVsZC5jYW5vbmljYWxTdHJpbmcoKSsiICIrdC5vcCsiICIrRG0odC52YWx1ZSl9KS5qb2luKCIsICIpKyJdIiksVG0oZS5saW1pdCl8fChuKz0iLCBsaW1pdDogIitlLmxpbWl0KSwwPGUub3JkZXJCeS5sZW5ndGgmJihuKz0iLCBvcmRlckJ5OiBbIitlLm9yZGVyQnkubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0PXQpLmZpZWxkLmNhbm9uaWNhbFN0cmluZygpKyIgKCIrdC5kaXIrIikifSkuam9pbigiLCAiKSsiXSIpLGUuc3RhcnRBdCYmKG4rPSIsIHN0YXJ0QXQ6ICIrX2IoZS5zdGFydEF0KSksZS5lbmRBdCYmKG4rPSIsIGVuZEF0OiAiK19iKGUuZW5kQXQpKSwiVGFyZ2V0KCIrbisiKSIpKyI7IGxpbWl0VHlwZT0iK3QubGltaXRUeXBlKyIpIjt2YXIgZSxufWZ1bmN0aW9uIGpiKGksdCl7cmV0dXJuIHQuaXNGb3VuZERvY3VtZW50KCkmJihlPWksbj10LmtleS5wYXRoLG51bGwhPT1lLmNvbGxlY3Rpb25Hcm91cD90LmtleS5oYXNDb2xsZWN0aW9uSWQoZS5jb2xsZWN0aW9uR3JvdXApJiZlLnBhdGguaXNQcmVmaXhPZihuKTpDbS5pc0RvY3VtZW50S2V5KGUucGF0aCk/ZS5wYXRoLmlzRXF1YWwobik6ZS5wYXRoLmlzSW1tZWRpYXRlUGFyZW50T2YobikpJiZmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPWkuZXhwbGljaXRPcmRlckJ5O2U8bi5sZW5ndGg7ZSsrKXt2YXIgcj1uW2VdO2lmKCFyLmZpZWxkLmlzS2V5RmllbGQoKSYmbnVsbD09PXQuZGF0YS5maWVsZChyLmZpZWxkKSlyZXR1cm59cmV0dXJuIDF9KHQpJiZmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPWkuZmlsdGVycztlPG4ubGVuZ3RoO2UrKylpZighbltlXS5tYXRjaGVzKHQpKXJldHVybjtyZXR1cm4gMX0odCkmJihuPXQsKCEodD1pKS5zdGFydEF0fHxUYih0LnN0YXJ0QXQsRGIodCksbikpJiYoIXQuZW5kQXR8fCFUYih0LmVuZEF0LERiKHQpLG4pKSk7dmFyIGUsbn1mdW5jdGlvbiBxYihhKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIG49ITEscj0wLGk9RGIoYSk7cjxpLmxlbmd0aDtyKyspe3ZhciBvPWlbcl0scz1mdW5jdGlvbih0LHIsZSl7dmFyIG49dC5maWVsZC5pc0tleUZpZWxkKCk/Q20uY29tcGFyYXRvcihyLmtleSxlLmtleSk6ZnVuY3Rpb24odCxlKXt2YXIgbj1yLmRhdGEuZmllbGQodCksdD1lLmRhdGEuZmllbGQodCk7cmV0dXJuIG51bGwhPT1uJiZudWxsIT09dD9QbShuLHQpOkh5KCl9KHQuZmllbGQsZSk7c3dpdGNoKHQuZGlyKXtjYXNlImFzYyI6cmV0dXJuIG47Y2FzZSJkZXNjIjpyZXR1cm4tMSpuO2RlZmF1bHQ6cmV0dXJuIEh5KCl9fShvLHQsZSk7aWYoMCE9PXMpcmV0dXJuIHM7bj1ufHxvLmZpZWxkLmlzS2V5RmllbGQoKX1yZXR1cm4gMH19ZnVuY3Rpb24gVmIodCxlKXtpZih0Lkkpe2lmKGlzTmFOKGUpKXJldHVybntkb3VibGVWYWx1ZToiTmFOIn07aWYoZT09PTEvMClyZXR1cm57ZG91YmxlVmFsdWU6IkluZmluaXR5In07aWYoZT09PS0xLzApcmV0dXJue2RvdWJsZVZhbHVlOiItSW5maW5pdHkifX1yZXR1cm57ZG91YmxlVmFsdWU6RW0oZSk/Ii0wIjplfX1mdW5jdGlvbiBCYih0KXtyZXR1cm57aW50ZWdlclZhbHVlOiIiK3R9fWZ1bmN0aW9uIEtiKHQsZSl7cmV0dXJuIFNtKGUpP0JiKGUpOlZiKHQsZSl9U249ZnVuY3Rpb24oKXt0aGlzLl89dm9pZCAwfTtmdW5jdGlvbiBXYih0LGUpe3JldHVybiB0IGluc3RhbmNlb2Ygcnc/TG0odD1lKXx8dCYmImRvdWJsZVZhbHVlImluIHQ/ZTp7aW50ZWdlclZhbHVlOjB9Om51bGx9dmFyIEhiLEdiLHpiPShYaShYYixHYj1TbiksWGIpLFFiPShYaShZYixIYj1TbiksWWIpO2Z1bmN0aW9uIFliKHQpe3ZhciBlPXRoaXM7cmV0dXJuKGU9SGIuY2FsbCh0aGlzKXx8dGhpcykuZWxlbWVudHM9dCxlfWZ1bmN0aW9uIFhiKCl7cmV0dXJuIG51bGwhPT1HYiYmR2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfWZ1bmN0aW9uIEpiKHQsZSl7Zm9yKHZhciBuPXN3KGUpLHI9MCxpPXQuZWxlbWVudHM7cjxpLmxlbmd0aDtyKyspIWZ1bmN0aW9uKGUpe24uc29tZShmdW5jdGlvbih0KXtyZXR1cm4ga20odCxlKX0pfHxuLnB1c2goZSl9KGlbcl0pO3JldHVybnthcnJheVZhbHVlOnt2YWx1ZXM6bn19fXZhciAkYixaYj0oWGkodHcsJGI9U24pLHR3KTtmdW5jdGlvbiB0dyh0KXt2YXIgZT10aGlzO3JldHVybihlPSRiLmNhbGwodGhpcyl8fHRoaXMpLmVsZW1lbnRzPXQsZX1mdW5jdGlvbiBldyh0LGUpe2Zvcih2YXIgbj1zdyhlKSxyPTAsaT10LmVsZW1lbnRzO3I8aS5sZW5ndGg7cisrKSFmdW5jdGlvbihlKXtuPW4uZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiFrbSh0LGUpfSl9KGlbcl0pO3JldHVybnthcnJheVZhbHVlOnt2YWx1ZXM6bn19fXZhciBudyxydz0oWGkoaXcsbnc9U24pLGl3KTtmdW5jdGlvbiBpdyh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49bncuY2FsbCh0aGlzKXx8dGhpcykuUj10LG4uQT1lLG59ZnVuY3Rpb24gb3codCl7cmV0dXJuIGJtKHQuaW50ZWdlclZhbHVlfHx0LmRvdWJsZVZhbHVlKX1mdW5jdGlvbiBzdyh0KXtyZXR1cm4gTW0odCkmJnQuYXJyYXlWYWx1ZS52YWx1ZXM/dC5hcnJheVZhbHVlLnZhbHVlcy5zbGljZSgpOltdfWZ1bmN0aW9uIGF3KHQsZSl7dGhpcy52ZXJzaW9uPXQsdGhpcy50cmFuc2Zvcm1SZXN1bHRzPWV9dmFyIHV3PWZ1bmN0aW9uKHQsZSl7dGhpcy5maWVsZD10LHRoaXMudHJhbnNmb3JtPWV9LGN3PShody5ub25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBod30saHcuZXhpc3RzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaHcodm9pZCAwLHQpfSxody51cGRhdGVUaW1lPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaHcodCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShody5wcm90b3R5cGUsImlzTm9uZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLnVwZGF0ZVRpbWUmJnZvaWQgMD09PXRoaXMuZXhpc3RzfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGh3LnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmV4aXN0cz09PXQuZXhpc3RzJiYodGhpcy51cGRhdGVUaW1lPyEhdC51cGRhdGVUaW1lJiZ0aGlzLnVwZGF0ZVRpbWUuaXNFcXVhbCh0LnVwZGF0ZVRpbWUpOiF0LnVwZGF0ZVRpbWUpfSxodyk7ZnVuY3Rpb24gaHcodCxlKXt0aGlzLnVwZGF0ZVRpbWU9dCx0aGlzLmV4aXN0cz1lfWZ1bmN0aW9uIGx3KHQsZSl7cmV0dXJuIHZvaWQgMCE9PXQudXBkYXRlVGltZT9lLmlzRm91bmREb2N1bWVudCgpJiZlLnZlcnNpb24uaXNFcXVhbCh0LnVwZGF0ZVRpbWUpOnZvaWQgMD09PXQuZXhpc3RzfHx0LmV4aXN0cz09PWUuaXNGb3VuZERvY3VtZW50KCl9R2E9ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIGZ3KHQsZSxuKXt2YXIgcixpLG8sczt0IGluc3RhbmNlb2YgeXc/KGk9ZSxvPW4sbHcoKHI9dCkucHJlY29uZGl0aW9uLGkpJiYocz1yLnZhbHVlLmNsb25lKCksbz1UdyhyLmZpZWxkVHJhbnNmb3JtcyxvLGkpLHMuc2V0QWxsKG8pLGkuY29udmVydFRvRm91bmREb2N1bWVudChkdyhpKSxzKS5zZXRIYXNMb2NhbE11dGF0aW9ucygpKSk6dCBpbnN0YW5jZW9mIG13PyhvPWUsaT1uLGx3KChzPXQpLnByZWNvbmRpdGlvbixvKSYmKG49VHcocy5maWVsZFRyYW5zZm9ybXMsaSxvKSwoaT1vLmRhdGEpLnNldEFsbChfdyhzKSksaS5zZXRBbGwobiksby5jb252ZXJ0VG9Gb3VuZERvY3VtZW50KGR3KG8pLGkpLnNldEhhc0xvY2FsTXV0YXRpb25zKCkpKTooZT1lLGx3KHQucHJlY29uZGl0aW9uLGUpJiZlLmNvbnZlcnRUb05vRG9jdW1lbnQoWnkubWluKCkpKX1mdW5jdGlvbiBwdyh0LGUpe3JldHVybiB0LnR5cGU9PT1lLnR5cGUmJiEhdC5rZXkuaXNFcXVhbChlLmtleSkmJiEhdC5wcmVjb25kaXRpb24uaXNFcXVhbChlLnByZWNvbmRpdGlvbikmJihuPXQuZmllbGRUcmFuc2Zvcm1zLHI9ZS5maWVsZFRyYW5zZm9ybXMsISEodm9pZCAwPT09biYmdm9pZCAwPT09cnx8biYmciYmWHkobixyLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9ZSwodD10KS5maWVsZC5pc0VxdWFsKGUuZmllbGQpJiYodD10LnRyYW5zZm9ybSxlPWUudHJhbnNmb3JtLHQgaW5zdGFuY2VvZiBRYiYmZSBpbnN0YW5jZW9mIFFifHx0IGluc3RhbmNlb2YgWmImJmUgaW5zdGFuY2VvZiBaYj9YeSh0LmVsZW1lbnRzLGUuZWxlbWVudHMsa20pOnQgaW5zdGFuY2VvZiBydyYmZSBpbnN0YW5jZW9mIHJ3P2ttKHQuQSxlLkEpOnQgaW5zdGFuY2VvZiB6YiYmZSBpbnN0YW5jZW9mIHpiKX0pKSkmJigwPT09dC50eXBlP3QudmFsdWUuaXNFcXVhbChlLnZhbHVlKToxIT09dC50eXBlfHx0LmRhdGEuaXNFcXVhbChlLmRhdGEpJiZ0LmZpZWxkTWFzay5pc0VxdWFsKGUuZmllbGRNYXNrKSk7dmFyIG4scn1mdW5jdGlvbiBkdyh0KXtyZXR1cm4gdC5pc0ZvdW5kRG9jdW1lbnQoKT90LnZlcnNpb246WnkubWluKCl9dmFyIHZ3LGd3LHl3PShYaSh3dyxndz1HYSksd3cpLG13PShYaShidyx2dz1HYSksYncpO2Z1bmN0aW9uIGJ3KHQsZSxuLHIsaSl7dm9pZCAwPT09aSYmKGk9W10pO3ZhciBvPXRoaXM7cmV0dXJuKG89dncuY2FsbCh0aGlzKXx8dGhpcykua2V5PXQsby5kYXRhPWUsby5maWVsZE1hc2s9bixvLnByZWNvbmRpdGlvbj1yLG8uZmllbGRUcmFuc2Zvcm1zPWksby50eXBlPTEsb31mdW5jdGlvbiB3dyh0LGUsbixyKXt2b2lkIDA9PT1yJiYocj1bXSk7dmFyIGk9dGhpcztyZXR1cm4oaT1ndy5jYWxsKHRoaXMpfHx0aGlzKS5rZXk9dCxpLnZhbHVlPWUsaS5wcmVjb25kaXRpb249bixpLmZpZWxkVHJhbnNmb3Jtcz1yLGkudHlwZT0wLGl9ZnVuY3Rpb24gX3cobil7dmFyIHI9bmV3IE1hcDtyZXR1cm4gbi5maWVsZE1hc2suZmllbGRzLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU7dC5pc0VtcHR5KCl8fChlPW4uZGF0YS5maWVsZCh0KSxyLnNldCh0LGUpKX0pLHJ9ZnVuY3Rpb24gSXcodCxlLG4pe3ZhciByPW5ldyBNYXA7R3kodC5sZW5ndGg9PT1uLmxlbmd0aCk7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBvPXRbaV0scz1vLnRyYW5zZm9ybSxhPWUuZGF0YS5maWVsZChvLmZpZWxkKTtyLnNldChvLmZpZWxkLChvPXMscz1hLGE9bltpXSxvIGluc3RhbmNlb2YgUWI/SmIobyxzKTpvIGluc3RhbmNlb2YgWmI/ZXcobyxzKTphKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gVHcodCxlLG4pe2Zvcih2YXIgcixpPW5ldyBNYXAsbz0wLHM9dDtvPHMubGVuZ3RoO28rKyl7dmFyIGE9c1tvXSx1PWEudHJhbnNmb3JtLGM9bi5kYXRhLmZpZWxkKGEuZmllbGQpO2kuc2V0KGEuZmllbGQsKHI9YyxhPWUsYz12b2lkIDAsKHU9dSlpbnN0YW5jZW9mIHpiPyhjPXtmaWVsZHM6e19fdHlwZV9fOntzdHJpbmdWYWx1ZToic2VydmVyX3RpbWVzdGFtcCJ9LF9fbG9jYWxfd3JpdGVfdGltZV9fOnt0aW1lc3RhbXBWYWx1ZTp7c2Vjb25kczphLnNlY29uZHMsbmFub3M6YS5uYW5vc2Vjb25kc319fX0sciYmKGMuZmllbGRzLl9fcHJldmlvdXNfdmFsdWVfXz1yKSx7bWFwVmFsdWU6Y30pOnUgaW5zdGFuY2VvZiBRYj9KYih1LHIpOnUgaW5zdGFuY2VvZiBaYj9ldyh1LHIpOih1PVdiKGM9dSxyKSxyPW93KHUpK293KGMuQSksTG0odSkmJkxtKGMuQSk/QmIocik6VmIoYy5SLHIpKSkpfXJldHVybiBpfWZ1bmN0aW9uIEV3KHQpe3RoaXMuY291bnQ9dH12YXIgU3csQ3csTncsQXc9KFhpKFB3LE53PUdhKSxQdyksa3c9KFhpKFJ3LEN3PUdhKSxSdyk7ZnVuY3Rpb24gUncodCxlKXt2YXIgbj10aGlzO3JldHVybihuPUN3LmNhbGwodGhpcyl8fHRoaXMpLmtleT10LG4ucHJlY29uZGl0aW9uPWUsbi50eXBlPTMsbi5maWVsZFRyYW5zZm9ybXM9W10sbn1mdW5jdGlvbiBQdyh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49TncuY2FsbCh0aGlzKXx8dGhpcykua2V5PXQsbi5wcmVjb25kaXRpb249ZSxuLnR5cGU9MixuLmZpZWxkVHJhbnNmb3Jtcz1bXSxufWZ1bmN0aW9uIE93KHQpe3N3aXRjaCh0KXtjYXNlIE15Lk9LOnJldHVybiBIeSgpLDA7Y2FzZSBNeS5DQU5DRUxMRUQ6Y2FzZSBNeS5VTktOT1dOOmNhc2UgTXkuREVBRExJTkVfRVhDRUVERUQ6Y2FzZSBNeS5SRVNPVVJDRV9FWEhBVVNURUQ6Y2FzZSBNeS5JTlRFUk5BTDpjYXNlIE15LlVOQVZBSUxBQkxFOmNhc2UgTXkuVU5BVVRIRU5USUNBVEVEOnJldHVybjtjYXNlIE15LklOVkFMSURfQVJHVU1FTlQ6Y2FzZSBNeS5OT1RfRk9VTkQ6Y2FzZSBNeS5BTFJFQURZX0VYSVNUUzpjYXNlIE15LlBFUk1JU1NJT05fREVOSUVEOmNhc2UgTXkuRkFJTEVEX1BSRUNPTkRJVElPTjpjYXNlIE15LkFCT1JURUQ6Y2FzZSBNeS5PVVRfT0ZfUkFOR0U6Y2FzZSBNeS5VTklNUExFTUVOVEVEOmNhc2UgTXkuREFUQV9MT1NTOnJldHVybiAxO2RlZmF1bHQ6cmV0dXJuIEh5KCksMH19ZnVuY3Rpb24gRHcodCl7aWYodm9pZCAwPT09dClyZXR1cm4gQnkoIkdSUEMgZXJyb3IgaGFzIG5vIC5jb2RlIiksTXkuVU5LTk9XTjtzd2l0Y2godCl7Y2FzZSBTdy5PSzpyZXR1cm4gTXkuT0s7Y2FzZSBTdy5DQU5DRUxMRUQ6cmV0dXJuIE15LkNBTkNFTExFRDtjYXNlIFN3LlVOS05PV046cmV0dXJuIE15LlVOS05PV047Y2FzZSBTdy5ERUFETElORV9FWENFRURFRDpyZXR1cm4gTXkuREVBRExJTkVfRVhDRUVERUQ7Y2FzZSBTdy5SRVNPVVJDRV9FWEhBVVNURUQ6cmV0dXJuIE15LlJFU09VUkNFX0VYSEFVU1RFRDtjYXNlIFN3LklOVEVSTkFMOnJldHVybiBNeS5JTlRFUk5BTDtjYXNlIFN3LlVOQVZBSUxBQkxFOnJldHVybiBNeS5VTkFWQUlMQUJMRTtjYXNlIFN3LlVOQVVUSEVOVElDQVRFRDpyZXR1cm4gTXkuVU5BVVRIRU5USUNBVEVEO2Nhc2UgU3cuSU5WQUxJRF9BUkdVTUVOVDpyZXR1cm4gTXkuSU5WQUxJRF9BUkdVTUVOVDtjYXNlIFN3Lk5PVF9GT1VORDpyZXR1cm4gTXkuTk9UX0ZPVU5EO2Nhc2UgU3cuQUxSRUFEWV9FWElTVFM6cmV0dXJuIE15LkFMUkVBRFlfRVhJU1RTO2Nhc2UgU3cuUEVSTUlTU0lPTl9ERU5JRUQ6cmV0dXJuIE15LlBFUk1JU1NJT05fREVOSUVEO2Nhc2UgU3cuRkFJTEVEX1BSRUNPTkRJVElPTjpyZXR1cm4gTXkuRkFJTEVEX1BSRUNPTkRJVElPTjtjYXNlIFN3LkFCT1JURUQ6cmV0dXJuIE15LkFCT1JURUQ7Y2FzZSBTdy5PVVRfT0ZfUkFOR0U6cmV0dXJuIE15Lk9VVF9PRl9SQU5HRTtjYXNlIFN3LlVOSU1QTEVNRU5URUQ6cmV0dXJuIE15LlVOSU1QTEVNRU5URUQ7Y2FzZSBTdy5EQVRBX0xPU1M6cmV0dXJuIE15LkRBVEFfTE9TUztkZWZhdWx0OnJldHVybiBIeSgpfX0oU249U3c9U3d8fHt9KVtTbi5PSz0wXT0iT0siLFNuW1NuLkNBTkNFTExFRD0xXT0iQ0FOQ0VMTEVEIixTbltTbi5VTktOT1dOPTJdPSJVTktOT1dOIixTbltTbi5JTlZBTElEX0FSR1VNRU5UPTNdPSJJTlZBTElEX0FSR1VNRU5UIixTbltTbi5ERUFETElORV9FWENFRURFRD00XT0iREVBRExJTkVfRVhDRUVERUQiLFNuW1NuLk5PVF9GT1VORD01XT0iTk9UX0ZPVU5EIixTbltTbi5BTFJFQURZX0VYSVNUUz02XT0iQUxSRUFEWV9FWElTVFMiLFNuW1NuLlBFUk1JU1NJT05fREVOSUVEPTddPSJQRVJNSVNTSU9OX0RFTklFRCIsU25bU24uVU5BVVRIRU5USUNBVEVEPTE2XT0iVU5BVVRIRU5USUNBVEVEIixTbltTbi5SRVNPVVJDRV9FWEhBVVNURUQ9OF09IlJFU09VUkNFX0VYSEFVU1RFRCIsU25bU24uRkFJTEVEX1BSRUNPTkRJVElPTj05XT0iRkFJTEVEX1BSRUNPTkRJVElPTiIsU25bU24uQUJPUlRFRD0xMF09IkFCT1JURUQiLFNuW1NuLk9VVF9PRl9SQU5HRT0xMV09Ik9VVF9PRl9SQU5HRSIsU25bU24uVU5JTVBMRU1FTlRFRD0xMl09IlVOSU1QTEVNRU5URUQiLFNuW1NuLklOVEVSTkFMPTEzXT0iSU5URVJOQUwiLFNuW1NuLlVOQVZBSUxBQkxFPTE0XT0iVU5BVkFJTEFCTEUiLFNuW1NuLkRBVEFfTE9TUz0xNV09IkRBVEFfTE9TUyI7dmFyIHh3PShqdy5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBqdyh0aGlzLmNvbXBhcmF0b3IsdGhpcy5yb290Lmluc2VydCh0LGUsdGhpcy5jb21wYXJhdG9yKS5jb3B5KG51bGwsbnVsbCxNdy5CTEFDSyxudWxsLG51bGwpKX0sancucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGp3KHRoaXMuY29tcGFyYXRvcix0aGlzLnJvb3QucmVtb3ZlKHQsdGhpcy5jb21wYXJhdG9yKS5jb3B5KG51bGwsbnVsbCxNdy5CTEFDSyxudWxsLG51bGwpKX0sancucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5yb290OyFlLmlzRW1wdHkoKTspe3ZhciBuPXRoaXMuY29tcGFyYXRvcih0LGUua2V5KTtpZigwPT09bilyZXR1cm4gZS52YWx1ZTtuPDA/ZT1lLmxlZnQ6MDxuJiYoZT1lLnJpZ2h0KX1yZXR1cm4gbnVsbH0sancucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj10aGlzLnJvb3Q7IW4uaXNFbXB0eSgpOyl7dmFyIHI9dGhpcy5jb21wYXJhdG9yKHQsbi5rZXkpO2lmKDA9PT1yKXJldHVybiBlK24ubGVmdC5zaXplO249cjwwP24ubGVmdDooZSs9bi5sZWZ0LnNpemUrMSxuLnJpZ2h0KX1yZXR1cm4tMX0sancucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290LmlzRW1wdHkoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGp3LnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3Quc2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxqdy5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdC5taW5LZXkoKX0sancucHJvdG90eXBlLm1heEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3QubWF4S2V5KCl9LGp3LnByb3RvdHlwZS5pbm9yZGVyVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJvb3QuaW5vcmRlclRyYXZlcnNhbCh0KX0sancucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24obil7dGhpcy5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlKSwhMX0pfSxqdy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4ucHVzaCh0KyI6IitlKSwhMX0pLCJ7IituLmpvaW4oIiwgIikrIn0ifSxqdy5wcm90b3R5cGUucmV2ZXJzZVRyYXZlcnNhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yb290LnJldmVyc2VUcmF2ZXJzYWwodCl9LGp3LnByb3RvdHlwZS5nZXRJdGVyYXRvcj1mdW5jdGlvbigpe3JldHVybiBuZXcgTHcodGhpcy5yb290LG51bGwsdGhpcy5jb21wYXJhdG9yLCExKX0sancucHJvdG90eXBlLmdldEl0ZXJhdG9yRnJvbT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEx3KHRoaXMucm9vdCx0LHRoaXMuY29tcGFyYXRvciwhMSl9LGp3LnByb3RvdHlwZS5nZXRSZXZlcnNlSXRlcmF0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEx3KHRoaXMucm9vdCxudWxsLHRoaXMuY29tcGFyYXRvciwhMCl9LGp3LnByb3RvdHlwZS5nZXRSZXZlcnNlSXRlcmF0b3JGcm9tPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTHcodGhpcy5yb290LHQsdGhpcy5jb21wYXJhdG9yLCEwKX0sancpLEx3PShVdy5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe3ZhciB0PXRoaXMubm9kZVN0YWNrLnBvcCgpLGU9e2tleTp0LmtleSx2YWx1ZTp0LnZhbHVlfTtpZih0aGlzLmlzUmV2ZXJzZSlmb3IodD10LmxlZnQ7IXQuaXNFbXB0eSgpOyl0aGlzLm5vZGVTdGFjay5wdXNoKHQpLHQ9dC5yaWdodDtlbHNlIGZvcih0PXQucmlnaHQ7IXQuaXNFbXB0eSgpOyl0aGlzLm5vZGVTdGFjay5wdXNoKHQpLHQ9dC5sZWZ0O3JldHVybiBlfSxVdy5wcm90b3R5cGUuaGFzTmV4dD1mdW5jdGlvbigpe3JldHVybiAwPHRoaXMubm9kZVN0YWNrLmxlbmd0aH0sVXcucHJvdG90eXBlLnBlZWs9ZnVuY3Rpb24oKXtpZigwPT09dGhpcy5ub2RlU3RhY2subGVuZ3RoKXJldHVybiBudWxsO3ZhciB0PXRoaXMubm9kZVN0YWNrW3RoaXMubm9kZVN0YWNrLmxlbmd0aC0xXTtyZXR1cm57a2V5OnQua2V5LHZhbHVlOnQudmFsdWV9fSxVdyksTXc9KEZ3LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIG5ldyBGdyhudWxsIT10P3Q6dGhpcy5rZXksbnVsbCE9ZT9lOnRoaXMudmFsdWUsbnVsbCE9bj9uOnRoaXMuY29sb3IsbnVsbCE9cj9yOnRoaXMubGVmdCxudWxsIT1pP2k6dGhpcy5yaWdodCl9LEZ3LnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuITF9LEZ3LnByb3RvdHlwZS5pbm9yZGVyVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlZnQuaW5vcmRlclRyYXZlcnNhbCh0KXx8dCh0aGlzLmtleSx0aGlzLnZhbHVlKXx8dGhpcy5yaWdodC5pbm9yZGVyVHJhdmVyc2FsKHQpfSxGdy5wcm90b3R5cGUucmV2ZXJzZVRyYXZlcnNhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yaWdodC5yZXZlcnNlVHJhdmVyc2FsKHQpfHx0KHRoaXMua2V5LHRoaXMudmFsdWUpfHx0aGlzLmxlZnQucmV2ZXJzZVRyYXZlcnNhbCh0KX0sRncucHJvdG90eXBlLm1pbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlZnQuaXNFbXB0eSgpP3RoaXM6dGhpcy5sZWZ0Lm1pbigpfSxGdy5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWluKCkua2V5fSxGdy5wcm90b3R5cGUubWF4S2V5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmlnaHQuaXNFbXB0eSgpP3RoaXMua2V5OnRoaXMucmlnaHQubWF4S2V5KCl9LEZ3LnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMsaT1uKHQsci5rZXkpO3JldHVybihyPWk8MD9yLmNvcHkobnVsbCxudWxsLG51bGwsci5sZWZ0Lmluc2VydCh0LGUsbiksbnVsbCk6MD09PWk/ci5jb3B5KG51bGwsZSxudWxsLG51bGwsbnVsbCk6ci5jb3B5KG51bGwsbnVsbCxudWxsLG51bGwsci5yaWdodC5pbnNlcnQodCxlLG4pKSkuZml4VXAoKX0sRncucHJvdG90eXBlLnJlbW92ZU1pbj1mdW5jdGlvbigpe2lmKHRoaXMubGVmdC5pc0VtcHR5KCkpcmV0dXJuIEZ3LkVNUFRZO3ZhciB0PXRoaXM7cmV0dXJuKHQ9KHQ9IXQubGVmdC5pc1JlZCgpJiYhdC5sZWZ0LmxlZnQuaXNSZWQoKT90Lm1vdmVSZWRMZWZ0KCk6dCkuY29weShudWxsLG51bGwsbnVsbCx0LmxlZnQucmVtb3ZlTWluKCksbnVsbCkpLmZpeFVwKCl9LEZ3LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXM7aWYoZSh0LHIua2V5KTwwKXI9KHI9IShyLmxlZnQuaXNFbXB0eSgpfHxyLmxlZnQuaXNSZWQoKXx8ci5sZWZ0LmxlZnQuaXNSZWQoKSk/ci5tb3ZlUmVkTGVmdCgpOnIpLmNvcHkobnVsbCxudWxsLG51bGwsci5sZWZ0LnJlbW92ZSh0LGUpLG51bGwpO2Vsc2V7aWYoMD09PWUodCwocj0hKChyPXIubGVmdC5pc1JlZCgpP3Iucm90YXRlUmlnaHQoKTpyKS5yaWdodC5pc0VtcHR5KCl8fHIucmlnaHQuaXNSZWQoKXx8ci5yaWdodC5sZWZ0LmlzUmVkKCkpP3IubW92ZVJlZFJpZ2h0KCk6cikua2V5KSl7aWYoci5yaWdodC5pc0VtcHR5KCkpcmV0dXJuIEZ3LkVNUFRZO249ci5yaWdodC5taW4oKSxyPXIuY29weShuLmtleSxuLnZhbHVlLG51bGwsbnVsbCxyLnJpZ2h0LnJlbW92ZU1pbigpKX1yPXIuY29weShudWxsLG51bGwsbnVsbCxudWxsLHIucmlnaHQucmVtb3ZlKHQsZSkpfXJldHVybiByLmZpeFVwKCl9LEZ3LnByb3RvdHlwZS5pc1JlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yfSxGdy5wcm90b3R5cGUuZml4VXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0PSh0PSh0PXQucmlnaHQuaXNSZWQoKSYmIXQubGVmdC5pc1JlZCgpP3Qucm90YXRlTGVmdCgpOnQpLmxlZnQuaXNSZWQoKSYmdC5sZWZ0LmxlZnQuaXNSZWQoKT90LnJvdGF0ZVJpZ2h0KCk6dCkubGVmdC5pc1JlZCgpJiZ0LnJpZ2h0LmlzUmVkKCk/dC5jb2xvckZsaXAoKTp0fSxGdy5wcm90b3R5cGUubW92ZVJlZExlZnQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbG9yRmxpcCgpO3JldHVybiB0PXQucmlnaHQubGVmdC5pc1JlZCgpPyh0PSh0PXQuY29weShudWxsLG51bGwsbnVsbCxudWxsLHQucmlnaHQucm90YXRlUmlnaHQoKSkpLnJvdGF0ZUxlZnQoKSkuY29sb3JGbGlwKCk6dH0sRncucHJvdG90eXBlLm1vdmVSZWRSaWdodD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29sb3JGbGlwKCk7cmV0dXJuIHQ9dC5sZWZ0LmxlZnQuaXNSZWQoKT8odD10LnJvdGF0ZVJpZ2h0KCkpLmNvbG9yRmxpcCgpOnR9LEZ3LnByb3RvdHlwZS5yb3RhdGVMZWZ0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb3B5KG51bGwsbnVsbCxGdy5SRUQsbnVsbCx0aGlzLnJpZ2h0LmxlZnQpO3JldHVybiB0aGlzLnJpZ2h0LmNvcHkobnVsbCxudWxsLHRoaXMuY29sb3IsdCxudWxsKX0sRncucHJvdG90eXBlLnJvdGF0ZVJpZ2h0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb3B5KG51bGwsbnVsbCxGdy5SRUQsdGhpcy5sZWZ0LnJpZ2h0LG51bGwpO3JldHVybiB0aGlzLmxlZnQuY29weShudWxsLG51bGwsdGhpcy5jb2xvcixudWxsLHQpfSxGdy5wcm90b3R5cGUuY29sb3JGbGlwPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZWZ0LmNvcHkobnVsbCxudWxsLCF0aGlzLmxlZnQuY29sb3IsbnVsbCxudWxsKSxlPXRoaXMucmlnaHQuY29weShudWxsLG51bGwsIXRoaXMucmlnaHQuY29sb3IsbnVsbCxudWxsKTtyZXR1cm4gdGhpcy5jb3B5KG51bGwsbnVsbCwhdGhpcy5jb2xvcix0LGUpfSxGdy5wcm90b3R5cGUuY2hlY2tNYXhEZXB0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY2hlY2soKTtyZXR1cm4gTWF0aC5wb3coMix0KTw9dGhpcy5zaXplKzF9LEZ3LnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSZWQoKSYmdGhpcy5sZWZ0LmlzUmVkKCkpdGhyb3cgSHkoKTtpZih0aGlzLnJpZ2h0LmlzUmVkKCkpdGhyb3cgSHkoKTt2YXIgdD10aGlzLmxlZnQuY2hlY2soKTtpZih0IT09dGhpcy5yaWdodC5jaGVjaygpKXRocm93IEh5KCk7cmV0dXJuIHQrKHRoaXMuaXNSZWQoKT8wOjEpfSxGdyk7ZnVuY3Rpb24gRncodCxlLG4scixpKXt0aGlzLmtleT10LHRoaXMudmFsdWU9ZSx0aGlzLmNvbG9yPW51bGwhPW4/bjpGdy5SRUQsdGhpcy5sZWZ0PW51bGwhPXI/cjpGdy5FTVBUWSx0aGlzLnJpZ2h0PW51bGwhPWk/aTpGdy5FTVBUWSx0aGlzLnNpemU9dGhpcy5sZWZ0LnNpemUrMSt0aGlzLnJpZ2h0LnNpemV9ZnVuY3Rpb24gVXcodCxlLG4scil7dGhpcy5pc1JldmVyc2U9cix0aGlzLm5vZGVTdGFjaz1bXTtmb3IodmFyIGk9MTshdC5pc0VtcHR5KCk7KWlmKGk9ZT9uKHQua2V5LGUpOjEsciYmKGkqPS0xKSxpPDApdD10aGlzLmlzUmV2ZXJzZT90LmxlZnQ6dC5yaWdodDtlbHNle2lmKDA9PT1pKXt0aGlzLm5vZGVTdGFjay5wdXNoKHQpO2JyZWFrfXRoaXMubm9kZVN0YWNrLnB1c2godCksdD10aGlzLmlzUmV2ZXJzZT90LnJpZ2h0OnQubGVmdH19ZnVuY3Rpb24gancodCxlKXt0aGlzLmNvbXBhcmF0b3I9dCx0aGlzLnJvb3Q9ZXx8TXcuRU1QVFl9ZnVuY3Rpb24gcXcoKXt0aGlzLnNpemU9MH1Ndy5FTVBUWT1udWxsLE13LlJFRD0hMCxNdy5CTEFDSz0hMSxNdy5FTVBUWT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHF3LnByb3RvdHlwZSwia2V5Iix7Z2V0OmZ1bmN0aW9uKCl7dGhyb3cgSHkoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkocXcucHJvdG90eXBlLCJ2YWx1ZSIse2dldDpmdW5jdGlvbigpe3Rocm93IEh5KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHF3LnByb3RvdHlwZSwiY29sb3IiLHtnZXQ6ZnVuY3Rpb24oKXt0aHJvdyBIeSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxdy5wcm90b3R5cGUsImxlZnQiLHtnZXQ6ZnVuY3Rpb24oKXt0aHJvdyBIeSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxdy5wcm90b3R5cGUsInJpZ2h0Iix7Z2V0OmZ1bmN0aW9uKCl7dGhyb3cgSHkoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxxdy5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiB0aGlzfSxxdy5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmV3IE13KHQsZSl9LHF3LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpc30scXcucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hMH0scXcucHJvdG90eXBlLmlub3JkZXJUcmF2ZXJzYWw9ZnVuY3Rpb24odCl7cmV0dXJuITF9LHF3LnByb3RvdHlwZS5yZXZlcnNlVHJhdmVyc2FsPWZ1bmN0aW9uKHQpe3JldHVybiExfSxxdy5wcm90b3R5cGUubWluS2V5PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHF3LnByb3RvdHlwZS5tYXhLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scXcucHJvdG90eXBlLmlzUmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHF3LnByb3RvdHlwZS5jaGVja01heERlcHRoPWZ1bmN0aW9uKCl7cmV0dXJuITB9LHF3LnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe3JldHVybiAwfSxuZXcgcXcpO3ZhciBWdz0oSHcucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PXRoaXMuZGF0YS5nZXQodCl9LEh3LnByb3RvdHlwZS5maXJzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEubWluS2V5KCl9LEh3LnByb3RvdHlwZS5sYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5tYXhLZXkoKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEh3LnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEuc2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxIdy5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kYXRhLmluZGV4T2YodCl9LEh3LnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKG4pe3RoaXMuZGF0YS5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCksITF9KX0sSHcucHJvdG90eXBlLmZvckVhY2hJblJhbmdlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMuZGF0YS5nZXRJdGVyYXRvckZyb20odFswXSk7bi5oYXNOZXh0KCk7KXt2YXIgcj1uLmdldE5leHQoKTtpZigwPD10aGlzLmNvbXBhcmF0b3Ioci5rZXksdFsxXSkpcmV0dXJuO2Uoci5rZXkpfX0sSHcucHJvdG90eXBlLmZvckVhY2hXaGlsZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj12b2lkIDAhPT1lP3RoaXMuZGF0YS5nZXRJdGVyYXRvckZyb20oZSk6dGhpcy5kYXRhLmdldEl0ZXJhdG9yKCk7bi5oYXNOZXh0KCk7KWlmKCF0KG4uZ2V0TmV4dCgpLmtleSkpcmV0dXJufSxIdy5wcm90b3R5cGUuZmlyc3RBZnRlck9yRXF1YWw9ZnVuY3Rpb24odCl7dD10aGlzLmRhdGEuZ2V0SXRlcmF0b3JGcm9tKHQpO3JldHVybiB0Lmhhc05leHQoKT90LmdldE5leHQoKS5rZXk6bnVsbH0sSHcucHJvdG90eXBlLmdldEl0ZXJhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCdyh0aGlzLmRhdGEuZ2V0SXRlcmF0b3IoKSl9LEh3LnByb3RvdHlwZS5nZXRJdGVyYXRvckZyb209ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBCdyh0aGlzLmRhdGEuZ2V0SXRlcmF0b3JGcm9tKHQpKX0sSHcucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb3B5KHRoaXMuZGF0YS5yZW1vdmUodCkuaW5zZXJ0KHQsITApKX0sSHcucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXModCk/dGhpcy5jb3B5KHRoaXMuZGF0YS5yZW1vdmUodCkpOnRoaXN9LEh3LnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5pc0VtcHR5KCl9LEh3LnByb3RvdHlwZS51bmlvbldpdGg9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gZS5zaXplPHQuc2l6ZSYmKGU9dCx0PXRoaXMpLHQuZm9yRWFjaChmdW5jdGlvbih0KXtlPWUuYWRkKHQpfSksZX0sSHcucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7aWYoISh0IGluc3RhbmNlb2YgSHcpKXJldHVybiExO2lmKHRoaXMuc2l6ZSE9PXQuc2l6ZSlyZXR1cm4hMTtmb3IodmFyIGU9dGhpcy5kYXRhLmdldEl0ZXJhdG9yKCksbj10LmRhdGEuZ2V0SXRlcmF0b3IoKTtlLmhhc05leHQoKTspe3ZhciByPWUuZ2V0TmV4dCgpLmtleSxpPW4uZ2V0TmV4dCgpLmtleTtpZigwIT09dGhpcy5jb21wYXJhdG9yKHIsaSkpcmV0dXJuITF9cmV0dXJuITB9LEh3LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbih0KXtlLnB1c2godCl9KSxlfSxIdy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLnB1c2godCl9KSwiU29ydGVkU2V0KCIrZS50b1N0cmluZygpKyIpIn0sSHcucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEh3KHRoaXMuY29tcGFyYXRvcik7cmV0dXJuIGUuZGF0YT10LGV9LEh3KSxCdz0oV3cucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyLmdldE5leHQoKS5rZXl9LFd3LnByb3RvdHlwZS5oYXNOZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlci5oYXNOZXh0KCl9LFd3KSxLdz1uZXcgeHcoQ20uY29tcGFyYXRvcik7ZnVuY3Rpb24gV3codCl7dGhpcy5pdGVyPXR9ZnVuY3Rpb24gSHcodCl7dGhpcy5jb21wYXJhdG9yPXQsdGhpcy5kYXRhPW5ldyB4dyh0aGlzLmNvbXBhcmF0b3IpfXZhciBHdz1uZXcgeHcoQ20uY29tcGFyYXRvcik7dmFyIHp3PW5ldyB4dyhDbS5jb21wYXJhdG9yKTt2YXIgUXc9bmV3IFZ3KENtLmNvbXBhcmF0b3IpO2Z1bmN0aW9uIFl3KCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj1RdyxyPTAsaT10O3I8aS5sZW5ndGg7cisrKXZhciBvPWlbcl0sbj1uLmFkZChvKTtyZXR1cm4gbn12YXIgWHc9bmV3IFZ3KFl5KTt2YXIgSnc9KGFfLmNyZWF0ZVN5bnRoZXNpemVkUmVtb3RlRXZlbnRGb3JDdXJyZW50Q2hhbmdlPWZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IE1hcDtyZXR1cm4gbi5zZXQodCwkdy5jcmVhdGVTeW50aGVzaXplZFRhcmdldENoYW5nZUZvckN1cnJlbnRDaGFuZ2UodCxlKSksbmV3IGFfKFp5Lm1pbigpLG4sWHcsS3csWXcoKSl9LGFfKSwkdz0oc18uY3JlYXRlU3ludGhlc2l6ZWRUYXJnZXRDaGFuZ2VGb3JDdXJyZW50Q2hhbmdlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBzXyhsbS5FTVBUWV9CWVRFX1NUUklORyxlLFl3KCksWXcoKSxZdygpKX0sc18pLFp3PWZ1bmN0aW9uKHQsZSxuLHIpe3RoaXMudj10LHRoaXMucmVtb3ZlZFRhcmdldElkcz1lLHRoaXMua2V5PW4sdGhpcy5QPXJ9LHRfPWZ1bmN0aW9uKHQsZSl7dGhpcy50YXJnZXRJZD10LHRoaXMuVj1lfSxlXz1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1uJiYobj1sbS5FTVBUWV9CWVRFX1NUUklORyksdm9pZCAwPT09ciYmKHI9bnVsbCksdGhpcy5zdGF0ZT10LHRoaXMudGFyZ2V0SWRzPWUsdGhpcy5yZXN1bWVUb2tlbj1uLHRoaXMuY2F1c2U9cn0sbl89KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvXy5wcm90b3R5cGUsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvXy5wcm90b3R5cGUsInJlc3VtZVRva2VuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkob18ucHJvdG90eXBlLCJrIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLlN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG9fLnByb3RvdHlwZSwiTyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLkZ9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksb18ucHJvdG90eXBlLiQ9ZnVuY3Rpb24odCl7MDx0LmFwcHJveGltYXRlQnl0ZVNpemUoKSYmKHRoaXMuRj0hMCx0aGlzLkM9dCl9LG9fLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7dmFyIG49WXcoKSxyPVl3KCksaT1ZdygpO3JldHVybiB0aGlzLkQuZm9yRWFjaChmdW5jdGlvbih0LGUpe3N3aXRjaChlKXtjYXNlIDA6bj1uLmFkZCh0KTticmVhaztjYXNlIDI6cj1yLmFkZCh0KTticmVhaztjYXNlIDE6aT1pLmFkZCh0KTticmVhaztkZWZhdWx0Okh5KCl9fSksbmV3ICR3KHRoaXMuQyx0aGlzLk4sbixyLGkpfSxvXy5wcm90b3R5cGUuTD1mdW5jdGlvbigpe3RoaXMuRj0hMSx0aGlzLkQ9Y18oKX0sb18ucHJvdG90eXBlLkI9ZnVuY3Rpb24odCxlKXt0aGlzLkY9ITAsdGhpcy5EPXRoaXMuRC5pbnNlcnQodCxlKX0sb18ucHJvdG90eXBlLnE9ZnVuY3Rpb24odCl7dGhpcy5GPSEwLHRoaXMuRD10aGlzLkQucmVtb3ZlKHQpfSxvXy5wcm90b3R5cGUuVT1mdW5jdGlvbigpe3RoaXMuUys9MX0sb18ucHJvdG90eXBlLks9ZnVuY3Rpb24oKXstLXRoaXMuU30sb18ucHJvdG90eXBlLmo9ZnVuY3Rpb24oKXt0aGlzLkY9ITAsdGhpcy5OPSEwfSxvXykscl89KGlfLnByb3RvdHlwZS5YPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dC52O2U8bi5sZW5ndGg7ZSsrKXt2YXIgcj1uW2VdO3QuUCYmdC5QLmlzRm91bmREb2N1bWVudCgpP3RoaXMuWihyLHQuUCk6dGhpcy50dChyLHQua2V5LHQuUCl9Zm9yKHZhciBpPTAsbz10LnJlbW92ZWRUYXJnZXRJZHM7aTxvLmxlbmd0aDtpKyspcj1vW2ldLHRoaXMudHQocix0LmtleSx0LlApfSxpXy5wcm90b3R5cGUuZXQ9ZnVuY3Rpb24obil7dmFyIHI9dGhpczt0aGlzLmZvckVhY2hUYXJnZXQobixmdW5jdGlvbih0KXt2YXIgZT1yLm50KHQpO3N3aXRjaChuLnN0YXRlKXtjYXNlIDA6ci5zdCh0KSYmZS4kKG4ucmVzdW1lVG9rZW4pO2JyZWFrO2Nhc2UgMTplLksoKSxlLmt8fGUuTCgpLGUuJChuLnJlc3VtZVRva2VuKTticmVhaztjYXNlIDI6ZS5LKCksZS5rfHxyLnJlbW92ZVRhcmdldCh0KTticmVhaztjYXNlIDM6ci5zdCh0KSYmKGUuaigpLGUuJChuLnJlc3VtZVRva2VuKSk7YnJlYWs7Y2FzZSA0OnIuc3QodCkmJihyLml0KHQpLGUuJChuLnJlc3VtZVRva2VuKSk7YnJlYWs7ZGVmYXVsdDpIeSgpfX0pfSxpXy5wcm90b3R5cGUuZm9yRWFjaFRhcmdldD1mdW5jdGlvbih0LG4pe3ZhciByPXRoaXM7MDx0LnRhcmdldElkcy5sZW5ndGg/dC50YXJnZXRJZHMuZm9yRWFjaChuKTp0aGlzLkcuZm9yRWFjaChmdW5jdGlvbih0LGUpe3Iuc3QoZSkmJm4oZSl9KX0saV8ucHJvdG90eXBlLnJ0PWZ1bmN0aW9uKHQpe3ZhciBlPXQudGFyZ2V0SWQsbj10LlYuY291bnQsdD10aGlzLm90KGUpO3QmJihRbSh0PXQudGFyZ2V0KT8wPT09bj8odD1uZXcgQ20odC5wYXRoKSx0aGlzLnR0KGUsdCxCbS5uZXdOb0RvY3VtZW50KHQsWnkubWluKCkpKSk6R3koMT09PW4pOnRoaXMuY3QoZSkhPT1uJiYodGhpcy5pdChlKSx0aGlzLlk9dGhpcy5ZLmFkZChlKSkpfSxpXy5wcm90b3R5cGUudXQ9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxvPW5ldyBNYXA7dGhpcy5HLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1pLm90KGUpO24mJih0LmN1cnJlbnQmJlFtKG4udGFyZ2V0KSYmKG49bmV3IENtKG4udGFyZ2V0LnBhdGgpLG51bGwhPT1pLkguZ2V0KG4pfHxpLmF0KGUsbil8fGkudHQoZSxuLEJtLm5ld05vRG9jdW1lbnQobixyKSkpLHQuTyYmKG8uc2V0KGUsdC5NKCkpLHQuTCgpKSl9KTt2YXIgcz1ZdygpO3RoaXMuSi5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ITA7ZS5mb3JFYWNoV2hpbGUoZnVuY3Rpb24odCl7dD1pLm90KHQpO3JldHVybiF0fHwyPT09dC5wdXJwb3NlfHwobj0hMSl9KSxuJiYocz1zLmFkZCh0KSl9KTt2YXIgdD1uZXcgSncocixvLHRoaXMuWSx0aGlzLkgscyk7cmV0dXJuIHRoaXMuSD1Ldyx0aGlzLko9dV8oKSx0aGlzLlk9bmV3IFZ3KFl5KSx0fSxpXy5wcm90b3R5cGUuWj1mdW5jdGlvbih0LGUpe3ZhciBuO3RoaXMuc3QodCkmJihuPXRoaXMuYXQodCxlLmtleSk/MjowLHRoaXMubnQodCkuQihlLmtleSxuKSx0aGlzLkg9dGhpcy5ILmluc2VydChlLmtleSxlKSx0aGlzLko9dGhpcy5KLmluc2VydChlLmtleSx0aGlzLmh0KGUua2V5KS5hZGQodCkpKX0saV8ucHJvdG90eXBlLnR0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjt0aGlzLnN0KHQpJiYocj10aGlzLm50KHQpLHRoaXMuYXQodCxlKT9yLkIoZSwxKTpyLnEoZSksdGhpcy5KPXRoaXMuSi5pbnNlcnQoZSx0aGlzLmh0KGUpLmRlbGV0ZSh0KSksbiYmKHRoaXMuSD10aGlzLkguaW5zZXJ0KGUsbikpKX0saV8ucHJvdG90eXBlLnJlbW92ZVRhcmdldD1mdW5jdGlvbih0KXt0aGlzLkcuZGVsZXRlKHQpfSxpXy5wcm90b3R5cGUuY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5udCh0KS5NKCk7cmV0dXJuIHRoaXMuVy5nZXRSZW1vdGVLZXlzRm9yVGFyZ2V0KHQpLnNpemUrZS5hZGRlZERvY3VtZW50cy5zaXplLWUucmVtb3ZlZERvY3VtZW50cy5zaXplfSxpXy5wcm90b3R5cGUuVT1mdW5jdGlvbih0KXt0aGlzLm50KHQpLlUoKX0saV8ucHJvdG90eXBlLm50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuRy5nZXQodCk7cmV0dXJuIGV8fChlPW5ldyBuXyx0aGlzLkcuc2V0KHQsZSkpLGV9LGlfLnByb3RvdHlwZS5odD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLkouZ2V0KHQpO3JldHVybiBlfHwoZT1uZXcgVncoWXkpLHRoaXMuSj10aGlzLkouaW5zZXJ0KHQsZSkpLGV9LGlfLnByb3RvdHlwZS5zdD1mdW5jdGlvbih0KXt2YXIgZT1udWxsIT09dGhpcy5vdCh0KTtyZXR1cm4gZXx8VnkoIldhdGNoQ2hhbmdlQWdncmVnYXRvciIsIkRldGVjdGVkIGluYWN0aXZlIHRhcmdldCIsdCksZX0saV8ucHJvdG90eXBlLm90PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuRy5nZXQodCk7cmV0dXJuIGUmJmUuaz9udWxsOnRoaXMuVy5sdCh0KX0saV8ucHJvdG90eXBlLml0PWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7dGhpcy5HLnNldChlLG5ldyBuXyksdGhpcy5XLmdldFJlbW90ZUtleXNGb3JUYXJnZXQoZSkuZm9yRWFjaChmdW5jdGlvbih0KXtuLnR0KGUsdCxudWxsKX0pfSxpXy5wcm90b3R5cGUuYXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5XLmdldFJlbW90ZUtleXNGb3JUYXJnZXQodCkuaGFzKGUpfSxpXyk7ZnVuY3Rpb24gaV8odCl7dGhpcy5XPXQsdGhpcy5HPW5ldyBNYXAsdGhpcy5IPUt3LHRoaXMuSj11XygpLHRoaXMuWT1uZXcgVncoWXkpfWZ1bmN0aW9uIG9fKCl7dGhpcy5TPTAsdGhpcy5EPWNfKCksdGhpcy5DPWxtLkVNUFRZX0JZVEVfU1RSSU5HLHRoaXMuTj0hMSx0aGlzLkY9ITB9ZnVuY3Rpb24gc18odCxlLG4scixpKXt0aGlzLnJlc3VtZVRva2VuPXQsdGhpcy5jdXJyZW50PWUsdGhpcy5hZGRlZERvY3VtZW50cz1uLHRoaXMubW9kaWZpZWREb2N1bWVudHM9cix0aGlzLnJlbW92ZWREb2N1bWVudHM9aX1mdW5jdGlvbiBhXyh0LGUsbixyLGkpe3RoaXMuc25hcHNob3RWZXJzaW9uPXQsdGhpcy50YXJnZXRDaGFuZ2VzPWUsdGhpcy50YXJnZXRNaXNtYXRjaGVzPW4sdGhpcy5kb2N1bWVudFVwZGF0ZXM9cix0aGlzLnJlc29sdmVkTGltYm9Eb2N1bWVudHM9aX1mdW5jdGlvbiB1Xygpe3JldHVybiBuZXcgeHcoQ20uY29tcGFyYXRvcil9ZnVuY3Rpb24gY18oKXtyZXR1cm4gbmV3IHh3KENtLmNvbXBhcmF0b3IpfXZhciBoXz17YXNjOiJBU0NFTkRJTkciLGRlc2M6IkRFU0NFTkRJTkcifSxsXz17IjwiOiJMRVNTX1RIQU4iLCI8PSI6IkxFU1NfVEhBTl9PUl9FUVVBTCIsIj4iOiJHUkVBVEVSX1RIQU4iLCI+PSI6IkdSRUFURVJfVEhBTl9PUl9FUVVBTCIsIj09IjoiRVFVQUwiLCIhPSI6Ik5PVF9FUVVBTCIsImFycmF5LWNvbnRhaW5zIjoiQVJSQVlfQ09OVEFJTlMiLGluOiJJTiIsIm5vdC1pbiI6Ik5PVF9JTiIsImFycmF5LWNvbnRhaW5zLWFueSI6IkFSUkFZX0NPTlRBSU5TX0FOWSJ9LGZfPWZ1bmN0aW9uKHQsZSl7dGhpcy5kYXRhYmFzZUlkPXQsdGhpcy5JPWV9O2Z1bmN0aW9uIHBfKHQsZSl7cmV0dXJuIHQuST9uZXcgRGF0ZSgxZTMqZS5zZWNvbmRzKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqLywiIikucmVwbGFjZSgiWiIsIiIpKyIuIisoIjAwMDAwMDAwMCIrZS5uYW5vc2Vjb25kcykuc2xpY2UoLTkpKyJaIjp7c2Vjb25kczoiIitlLnNlY29uZHMsbmFub3M6ZS5uYW5vc2Vjb25kc319ZnVuY3Rpb24gZF8odCxlKXtyZXR1cm4gdC5JP2UudG9CYXNlNjQoKTplLnRvVWludDhBcnJheSgpfWZ1bmN0aW9uIHZfKHQpe3JldHVybiBHeSghIXQpLFp5LmZyb21UaW1lc3RhbXAoKHQ9bW0odCksbmV3ICR5KHQuc2Vjb25kcyx0Lm5hbm9zKSkpfWZ1bmN0aW9uIGdfKHQsZSl7cmV0dXJuIG5ldyBhbShbInByb2plY3RzIix0LnByb2plY3RJZCwiZGF0YWJhc2VzIix0LmRhdGFiYXNlXSkuY2hpbGQoImRvY3VtZW50cyIpLmNoaWxkKGUpLmNhbm9uaWNhbFN0cmluZygpfWZ1bmN0aW9uIHlfKHQpe3Q9YW0uZnJvbVN0cmluZyh0KTtyZXR1cm4gR3koRl8odCkpLHR9ZnVuY3Rpb24gbV8odCxlKXtyZXR1cm4gZ18odC5kYXRhYmFzZUlkLGUucGF0aCl9ZnVuY3Rpb24gYl8odCxlKXtlPXlfKGUpO2lmKGUuZ2V0KDEpIT09dC5kYXRhYmFzZUlkLnByb2plY3RJZCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVHJpZWQgdG8gZGVzZXJpYWxpemUga2V5IGZyb20gZGlmZmVyZW50IHByb2plY3Q6ICIrZS5nZXQoMSkrIiB2cyAiK3QuZGF0YWJhc2VJZC5wcm9qZWN0SWQpO2lmKGUuZ2V0KDMpIT09dC5kYXRhYmFzZUlkLmRhdGFiYXNlKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJUcmllZCB0byBkZXNlcmlhbGl6ZSBrZXkgZnJvbSBkaWZmZXJlbnQgZGF0YWJhc2U6ICIrZS5nZXQoMykrIiB2cyAiK3QuZGF0YWJhc2VJZC5kYXRhYmFzZSk7cmV0dXJuIG5ldyBDbShUXyhlKSl9ZnVuY3Rpb24gd18odCxlKXtyZXR1cm4gZ18odC5kYXRhYmFzZUlkLGUpfWZ1bmN0aW9uIF9fKHQpe3Q9eV8odCk7cmV0dXJuIDQ9PT10Lmxlbmd0aD9hbS5lbXB0eVBhdGgoKTpUXyh0KX1mdW5jdGlvbiBJXyh0KXtyZXR1cm4gbmV3IGFtKFsicHJvamVjdHMiLHQuZGF0YWJhc2VJZC5wcm9qZWN0SWQsImRhdGFiYXNlcyIsdC5kYXRhYmFzZUlkLmRhdGFiYXNlXSkuY2Fub25pY2FsU3RyaW5nKCl9ZnVuY3Rpb24gVF8odCl7cmV0dXJuIEd5KDQ8dC5sZW5ndGgmJiJkb2N1bWVudHMiPT09dC5nZXQoNCkpLHQucG9wRmlyc3QoNSl9ZnVuY3Rpb24gRV8odCxlLG4pe3JldHVybntuYW1lOm1fKHQsZSksZmllbGRzOm4udG9Qcm90bygpLm1hcFZhbHVlLmZpZWxkc319ZnVuY3Rpb24gU18odCxlLG4pe3ZhciByPWJfKHQsZS5uYW1lKSx0PXZfKGUudXBkYXRlVGltZSksZT1uZXcgcW0oe21hcFZhbHVlOntmaWVsZHM6ZS5maWVsZHN9fSksZT1CbS5uZXdGb3VuZERvY3VtZW50KHIsdCxlKTtyZXR1cm4gbiYmZS5zZXRIYXNDb21taXR0ZWRNdXRhdGlvbnMoKSxuP2Uuc2V0SGFzQ29tbWl0dGVkTXV0YXRpb25zKCk6ZX1mdW5jdGlvbiBDXyh0LGUpe3ZhciBuLHIsaTtpZihlIGluc3RhbmNlb2YgeXcpbj17dXBkYXRlOkVfKHQsZS5rZXksZS52YWx1ZSl9O2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEF3KW49e2RlbGV0ZTptXyh0LGUua2V5KX07ZWxzZSBpZihlIGluc3RhbmNlb2YgbXcpbj17dXBkYXRlOkVfKHQsZS5rZXksZS5kYXRhKSx1cGRhdGVNYXNrOihpPWUuZmllbGRNYXNrLHI9W10saS5maWVsZHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gci5wdXNoKHQuY2Fub25pY2FsU3RyaW5nKCkpfSkse2ZpZWxkUGF0aHM6cn0pfTtlbHNle2lmKCEoZSBpbnN0YW5jZW9mIGt3KSlyZXR1cm4gSHkoKTtuPXt2ZXJpZnk6bV8odCxlLmtleSl9fXJldHVybiAwPGUuZmllbGRUcmFuc2Zvcm1zLmxlbmd0aCYmKG4udXBkYXRlVHJhbnNmb3Jtcz1lLmZpZWxkVHJhbnNmb3Jtcy5tYXAoZnVuY3Rpb24odCl7dmFyIGU9dC50cmFuc2Zvcm07aWYoZSBpbnN0YW5jZW9mIHpiKXJldHVybntmaWVsZFBhdGg6dC5maWVsZC5jYW5vbmljYWxTdHJpbmcoKSxzZXRUb1NlcnZlclZhbHVlOiJSRVFVRVNUX1RJTUUifTtpZihlIGluc3RhbmNlb2YgUWIpcmV0dXJue2ZpZWxkUGF0aDp0LmZpZWxkLmNhbm9uaWNhbFN0cmluZygpLGFwcGVuZE1pc3NpbmdFbGVtZW50czp7dmFsdWVzOmUuZWxlbWVudHN9fTtpZihlIGluc3RhbmNlb2YgWmIpcmV0dXJue2ZpZWxkUGF0aDp0LmZpZWxkLmNhbm9uaWNhbFN0cmluZygpLHJlbW92ZUFsbEZyb21BcnJheTp7dmFsdWVzOmUuZWxlbWVudHN9fTtpZihlIGluc3RhbmNlb2YgcncpcmV0dXJue2ZpZWxkUGF0aDp0LmZpZWxkLmNhbm9uaWNhbFN0cmluZygpLGluY3JlbWVudDplLkF9O3Rocm93IEh5KCl9KSksZS5wcmVjb25kaXRpb24uaXNOb25lfHwobi5jdXJyZW50RG9jdW1lbnQ9dm9pZCAwIT09KGk9ZS5wcmVjb25kaXRpb24pLnVwZGF0ZVRpbWU/e3VwZGF0ZVRpbWU6KGU9dCx0PWkudXBkYXRlVGltZSxwXyhlLHQudG9UaW1lc3RhbXAoKSkpfTp2b2lkIDAhPT1pLmV4aXN0cz97ZXhpc3RzOmkuZXhpc3RzfTpIeSgpKSxufWZ1bmN0aW9uIE5fKGUsdCl7dmFyIG49dC5jdXJyZW50RG9jdW1lbnQ/dm9pZCAwIT09KHM9dC5jdXJyZW50RG9jdW1lbnQpLnVwZGF0ZVRpbWU/Y3cudXBkYXRlVGltZSh2XyhzLnVwZGF0ZVRpbWUpKTp2b2lkIDAhPT1zLmV4aXN0cz9jdy5leGlzdHMocy5leGlzdHMpOmN3Lm5vbmUoKTpjdy5ub25lKCkscj10LnVwZGF0ZVRyYW5zZm9ybXM/dC51cGRhdGVUcmFuc2Zvcm1zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbixyPW51bGw7InNldFRvU2VydmVyVmFsdWUiaW4gZT8oR3koIlJFUVVFU1RfVElNRSI9PT1lLnNldFRvU2VydmVyVmFsdWUpLHI9bmV3IHpiKToiYXBwZW5kTWlzc2luZ0VsZW1lbnRzImluIGU/KG49ZS5hcHBlbmRNaXNzaW5nRWxlbWVudHMudmFsdWVzfHxbXSxyPW5ldyBRYihuKSk6InJlbW92ZUFsbEZyb21BcnJheSJpbiBlPyhuPWUucmVtb3ZlQWxsRnJvbUFycmF5LnZhbHVlc3x8W10scj1uZXcgWmIobikpOiJpbmNyZW1lbnQiaW4gZT9yPW5ldyBydyh0LGUuaW5jcmVtZW50KTpIeSgpO2U9Y20uZnJvbVNlcnZlckZvcm1hdChlLmZpZWxkUGF0aCk7cmV0dXJuIG5ldyB1dyhlLHIpfShlLHQpfSk6W107aWYodC51cGRhdGUpe3QudXBkYXRlLm5hbWU7dmFyIGk9Yl8oZSx0LnVwZGF0ZS5uYW1lKSxvPW5ldyBxbSh7bWFwVmFsdWU6e2ZpZWxkczp0LnVwZGF0ZS5maWVsZHN9fSk7aWYodC51cGRhdGVNYXNrKXt2YXIgcz0ocz10LnVwZGF0ZU1hc2suZmllbGRQYXRoc3x8W10sbmV3IGhtKHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBjbS5mcm9tU2VydmVyRm9ybWF0KHQpfSkpKTtyZXR1cm4gbmV3IG13KGksbyxzLG4scil9cmV0dXJuIG5ldyB5dyhpLG8sbixyKX1pZih0LmRlbGV0ZSl7cj1iXyhlLHQuZGVsZXRlKTtyZXR1cm4gbmV3IEF3KHIsbil9aWYodC52ZXJpZnkpe3Q9Yl8oZSx0LnZlcmlmeSk7cmV0dXJuIG5ldyBrdyh0LG4pfXJldHVybiBIeSgpfWZ1bmN0aW9uIEFfKHQsZSl7cmV0dXJue2RvY3VtZW50czpbd18odCxlLnBhdGgpXX19ZnVuY3Rpb24ga18odCxlKXt2YXIgbj17c3RydWN0dXJlZFF1ZXJ5Ont9fSxyPWUucGF0aDtudWxsIT09ZS5jb2xsZWN0aW9uR3JvdXA/KG4ucGFyZW50PXdfKHQsciksbi5zdHJ1Y3R1cmVkUXVlcnkuZnJvbT1be2NvbGxlY3Rpb25JZDplLmNvbGxlY3Rpb25Hcm91cCxhbGxEZXNjZW5kYW50czohMH1dKToobi5wYXJlbnQ9d18odCxyLnBvcExhc3QoKSksbi5zdHJ1Y3R1cmVkUXVlcnkuZnJvbT1be2NvbGxlY3Rpb25JZDpyLmxhc3RTZWdtZW50KCl9XSk7cj1mdW5jdGlvbih0KXtpZigwIT09dC5sZW5ndGgpe3Q9dC5tYXAoZnVuY3Rpb24odCl7aWYoIj09Ij09PXQub3Ape2lmKFVtKHQudmFsdWUpKXJldHVybnt1bmFyeUZpbHRlcjp7ZmllbGQ6RF8odC5maWVsZCksb3A6IklTX05BTiJ9fTtpZihGbSh0LnZhbHVlKSlyZXR1cm57dW5hcnlGaWx0ZXI6e2ZpZWxkOkRfKHQuZmllbGQpLG9wOiJJU19OVUxMIn19fWVsc2UgaWYoIiE9Ij09PXQub3Ape2lmKFVtKHQudmFsdWUpKXJldHVybnt1bmFyeUZpbHRlcjp7ZmllbGQ6RF8odC5maWVsZCksb3A6IklTX05PVF9OQU4ifX07aWYoRm0odC52YWx1ZSkpcmV0dXJue3VuYXJ5RmlsdGVyOntmaWVsZDpEXyh0LmZpZWxkKSxvcDoiSVNfTk9UX05VTEwifX19cmV0dXJue2ZpZWxkRmlsdGVyOntmaWVsZDpEXyh0LmZpZWxkKSxvcDooZT10Lm9wLGxfW2VdKSx2YWx1ZTp0LnZhbHVlfX07dmFyIGV9KTtyZXR1cm4gMT09PXQubGVuZ3RoP3RbMF06e2NvbXBvc2l0ZUZpbHRlcjp7b3A6IkFORCIsZmlsdGVyczp0fX19fShlLmZpbHRlcnMpO3ImJihuLnN0cnVjdHVyZWRRdWVyeS53aGVyZT1yKTtyPWZ1bmN0aW9uKHQpe2lmKDAhPT10Lmxlbmd0aClyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJue2ZpZWxkOkRfKCh0PXQpLmZpZWxkKSxkaXJlY3Rpb246KHQ9dC5kaXIsaF9bdF0pfX0pfShlLm9yZGVyQnkpO3ImJihuLnN0cnVjdHVyZWRRdWVyeS5vcmRlckJ5PXIpO3I9ZS5saW1pdCxyPXQuSXx8VG0ocik/cjp7dmFsdWU6cn07cmV0dXJuIG51bGwhPT1yJiYobi5zdHJ1Y3R1cmVkUXVlcnkubGltaXQ9ciksZS5zdGFydEF0JiYobi5zdHJ1Y3R1cmVkUXVlcnkuc3RhcnRBdD1QXyhlLnN0YXJ0QXQpKSxlLmVuZEF0JiYobi5zdHJ1Y3R1cmVkUXVlcnkuZW5kQXQ9UF8oZS5lbmRBdCkpLG59ZnVuY3Rpb24gUl8odCl7dmFyIGU9X18odC5wYXJlbnQpLG49dC5zdHJ1Y3R1cmVkUXVlcnkscj1uLmZyb20/bi5mcm9tLmxlbmd0aDowLGk9bnVsbDswPHImJihHeSgxPT09ciksKGE9bi5mcm9tWzBdKS5hbGxEZXNjZW5kYW50cz9pPWEuY29sbGVjdGlvbklkOmU9ZS5jaGlsZChhLmNvbGxlY3Rpb25JZCkpO3ZhciBvPVtdO24ud2hlcmUmJihvPWZ1bmN0aW9uIGUodCl7cmV0dXJuIHQ/dm9pZCAwIT09dC51bmFyeUZpbHRlcj9bTV8odCldOnZvaWQgMCE9PXQuZmllbGRGaWx0ZXI/W0xfKHQpXTp2b2lkIDAhPT10LmNvbXBvc2l0ZUZpbHRlcj90LmNvbXBvc2l0ZUZpbHRlci5maWx0ZXJzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0LmNvbmNhdChlKX0pOkh5KCk6W119KG4ud2hlcmUpKTt2YXIgcz1bXSx0PW51bGwscj1udWxsLGE9bnVsbDtyZXR1cm4gQ2IoZSxpLHM9bi5vcmRlckJ5P24ub3JkZXJCeS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJYih4XygoZT10KS5maWVsZCksZnVuY3Rpb24oKXtzd2l0Y2goZS5kaXJlY3Rpb24pe2Nhc2UiQVNDRU5ESU5HIjpyZXR1cm4iYXNjIjtjYXNlIkRFU0NFTkRJTkciOnJldHVybiJkZXNjIjtkZWZhdWx0OnJldHVybn19KCkpO3ZhciBlfSk6cyxvLHQ9bi5saW1pdD9UbShvPSJvYmplY3QiPT10eXBlb2Yobz1uLmxpbWl0KT9vLnZhbHVlOm8pP251bGw6bzp0LCJGIixyPW4uc3RhcnRBdD9PXyhuLnN0YXJ0QXQpOnIsYT1uLmVuZEF0P09fKG4uZW5kQXQpOmEpfWZ1bmN0aW9uIFBfKHQpe3JldHVybntiZWZvcmU6dC5iZWZvcmUsdmFsdWVzOnQucG9zaXRpb259fWZ1bmN0aW9uIE9fKHQpe3ZhciBlPSEhdC5iZWZvcmUsdD10LnZhbHVlc3x8W107cmV0dXJuIG5ldyBnYih0LGUpfWZ1bmN0aW9uIERfKHQpe3JldHVybntmaWVsZFBhdGg6dC5jYW5vbmljYWxTdHJpbmcoKX19ZnVuY3Rpb24geF8odCl7cmV0dXJuIGNtLmZyb21TZXJ2ZXJGb3JtYXQodC5maWVsZFBhdGgpfWZ1bmN0aW9uIExfKHQpe3JldHVybiBYbS5jcmVhdGUoeF8odC5maWVsZEZpbHRlci5maWVsZCksZnVuY3Rpb24oKXtzd2l0Y2godC5maWVsZEZpbHRlci5vcCl7Y2FzZSJFUVVBTCI6cmV0dXJuIj09IjtjYXNlIk5PVF9FUVVBTCI6cmV0dXJuIiE9IjtjYXNlIkdSRUFURVJfVEhBTiI6cmV0dXJuIj4iO2Nhc2UiR1JFQVRFUl9USEFOX09SX0VRVUFMIjpyZXR1cm4iPj0iO2Nhc2UiTEVTU19USEFOIjpyZXR1cm4iPCI7Y2FzZSJMRVNTX1RIQU5fT1JfRVFVQUwiOnJldHVybiI8PSI7Y2FzZSJBUlJBWV9DT05UQUlOUyI6cmV0dXJuImFycmF5LWNvbnRhaW5zIjtjYXNlIklOIjpyZXR1cm4iaW4iO2Nhc2UiTk9UX0lOIjpyZXR1cm4ibm90LWluIjtjYXNlIkFSUkFZX0NPTlRBSU5TX0FOWSI6cmV0dXJuImFycmF5LWNvbnRhaW5zLWFueSI7Y2FzZSJPUEVSQVRPUl9VTlNQRUNJRklFRCI6ZGVmYXVsdDpyZXR1cm4gSHkoKX19KCksdC5maWVsZEZpbHRlci52YWx1ZSl9ZnVuY3Rpb24gTV8odCl7c3dpdGNoKHQudW5hcnlGaWx0ZXIub3Ape2Nhc2UiSVNfTkFOIjp2YXIgZT14Xyh0LnVuYXJ5RmlsdGVyLmZpZWxkKTtyZXR1cm4gWG0uY3JlYXRlKGUsIj09Iix7ZG91YmxlVmFsdWU6TmFOfSk7Y2FzZSJJU19OVUxMIjplPXhfKHQudW5hcnlGaWx0ZXIuZmllbGQpO3JldHVybiBYbS5jcmVhdGUoZSwiPT0iLHtudWxsVmFsdWU6Ik5VTExfVkFMVUUifSk7Y2FzZSJJU19OT1RfTkFOIjp2YXIgbj14Xyh0LnVuYXJ5RmlsdGVyLmZpZWxkKTtyZXR1cm4gWG0uY3JlYXRlKG4sIiE9Iix7ZG91YmxlVmFsdWU6TmFOfSk7Y2FzZSJJU19OT1RfTlVMTCI6bj14Xyh0LnVuYXJ5RmlsdGVyLmZpZWxkKTtyZXR1cm4gWG0uY3JlYXRlKG4sIiE9Iix7bnVsbFZhbHVlOiJOVUxMX1ZBTFVFIn0pO2Nhc2UiT1BFUkFUT1JfVU5TUEVDSUZJRUQiOmRlZmF1bHQ6cmV0dXJuIEh5KCl9fWZ1bmN0aW9uIEZfKHQpe3JldHVybiA0PD10Lmxlbmd0aCYmInByb2plY3RzIj09PXQuZ2V0KDApJiYiZGF0YWJhc2VzIj09PXQuZ2V0KDIpfWZ1bmN0aW9uIFVfKHQpe2Zvcih2YXIgZT0iIixuPTA7bjx0Lmxlbmd0aDtuKyspMDxlLmxlbmd0aCYmKGU9al8oZSkpLGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49ZSxyPXQubGVuZ3RoLGk9MDtpPHI7aSsrKXt2YXIgbz10LmNoYXJBdChpKTtzd2l0Y2gobyl7Y2FzZSJcMCI6bis9IgEQIjticmVhaztjYXNlIgEiOm4rPSIBESI7YnJlYWs7ZGVmYXVsdDpuKz1vfX1yZXR1cm4gbn0odC5nZXQobiksZSk7cmV0dXJuIGpfKGUpfWZ1bmN0aW9uIGpfKHQpe3JldHVybiB0KyIBASJ9ZnVuY3Rpb24gcV8odCl7dmFyIGU9dC5sZW5ndGg7aWYoR3koMjw9ZSksMj09PWUpcmV0dXJuIEd5KCIBIj09PXQuY2hhckF0KDApJiYiASI9PT10LmNoYXJBdCgxKSksYW0uZW1wdHlQYXRoKCk7Zm9yKHZhciBuPWUtMixyPVtdLGk9IiIsbz0wO288ZTspe3ZhciBzPXQuaW5kZXhPZigiASIsbyk7c3dpdGNoKChzPDB8fG48cykmJkh5KCksdC5jaGFyQXQocysxKSl7Y2FzZSIBIjp2YXIgYT10LnN1YnN0cmluZyhvLHMpLHU9dm9pZCAwOzA9PT1pLmxlbmd0aD91PWE6KHU9aSs9YSxpPSIiKSxyLnB1c2godSk7YnJlYWs7Y2FzZSIQIjppKz10LnN1YnN0cmluZyhvLHMpLGkrPSJcMCI7YnJlYWs7Y2FzZSIRIjppKz10LnN1YnN0cmluZyhvLHMrMSk7YnJlYWs7ZGVmYXVsdDpIeSgpfW89cysyfXJldHVybiBuZXcgYW0ocil9ZnVuY3Rpb24gVl8odCxlLG4pe3RoaXMub3duZXJJZD10LHRoaXMuYWxsb3dUYWJTeW5jaHJvbml6YXRpb249ZSx0aGlzLmxlYXNlVGltZXN0YW1wTXM9bn12YXIgQl89ZnVuY3Rpb24odCxlKXt0aGlzLnNlY29uZHM9dCx0aGlzLm5hbm9zZWNvbmRzPWV9O1ZfLnN0b3JlPSJvd25lciIsVl8ua2V5PSJvd25lciI7ZnVuY3Rpb24gS18odCxlLG4pe3RoaXMudXNlcklkPXQsdGhpcy5sYXN0QWNrbm93bGVkZ2VkQmF0Y2hJZD1lLHRoaXMubGFzdFN0cmVhbVRva2VuPW59S18uc3RvcmU9Im11dGF0aW9uUXVldWVzIixLXy5rZXlQYXRoPSJ1c2VySWQiO2Z1bmN0aW9uIFdfKHQsZSxuLHIsaSl7dGhpcy51c2VySWQ9dCx0aGlzLmJhdGNoSWQ9ZSx0aGlzLmxvY2FsV3JpdGVUaW1lTXM9bix0aGlzLmJhc2VNdXRhdGlvbnM9cix0aGlzLm11dGF0aW9ucz1pfVdfLnN0b3JlPSJtdXRhdGlvbnMiLFdfLmtleVBhdGg9ImJhdGNoSWQiLFdfLnVzZXJNdXRhdGlvbnNJbmRleD0idXNlck11dGF0aW9uc0luZGV4IixXXy51c2VyTXV0YXRpb25zS2V5UGF0aD1bInVzZXJJZCIsImJhdGNoSWQiXTt2YXIgSF89KEdfLnByZWZpeEZvclVzZXI9ZnVuY3Rpb24odCl7cmV0dXJuW3RdfSxHXy5wcmVmaXhGb3JQYXRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QsVV8oZSldfSxHXy5rZXk9ZnVuY3Rpb24odCxlLG4pe3JldHVyblt0LFVfKGUpLG5dfSxHXyk7ZnVuY3Rpb24gR18oKXt9SF8uc3RvcmU9ImRvY3VtZW50TXV0YXRpb25zIixIXy5QTEFDRUhPTERFUj1uZXcgSF87ZnVuY3Rpb24gel8odCxlKXt0aGlzLnBhdGg9dCx0aGlzLnJlYWRUaW1lPWV9ZnVuY3Rpb24gUV8odCxlKXt0aGlzLnBhdGg9dCx0aGlzLnZlcnNpb249ZX12YXIgWV89ZnVuY3Rpb24odCxlLG4scixpLG8pe3RoaXMudW5rbm93bkRvY3VtZW50PXQsdGhpcy5ub0RvY3VtZW50PWUsdGhpcy5kb2N1bWVudD1uLHRoaXMuaGFzQ29tbWl0dGVkTXV0YXRpb25zPXIsdGhpcy5yZWFkVGltZT1pLHRoaXMucGFyZW50UGF0aD1vfTtZXy5zdG9yZT0icmVtb3RlRG9jdW1lbnRzIixZXy5yZWFkVGltZUluZGV4PSJyZWFkVGltZUluZGV4IixZXy5yZWFkVGltZUluZGV4UGF0aD0icmVhZFRpbWUiLFlfLmNvbGxlY3Rpb25SZWFkVGltZUluZGV4PSJjb2xsZWN0aW9uUmVhZFRpbWVJbmRleCIsWV8uY29sbGVjdGlvblJlYWRUaW1lSW5kZXhQYXRoPVsicGFyZW50UGF0aCIsInJlYWRUaW1lIl07ZnVuY3Rpb24gWF8odCl7dGhpcy5ieXRlU2l6ZT10fVhfLnN0b3JlPSJyZW1vdGVEb2N1bWVudEdsb2JhbCIsWF8ua2V5PSJyZW1vdGVEb2N1bWVudEdsb2JhbEtleSI7ZnVuY3Rpb24gSl8odCxlLG4scixpLG8scyl7dGhpcy50YXJnZXRJZD10LHRoaXMuY2Fub25pY2FsSWQ9ZSx0aGlzLnJlYWRUaW1lPW4sdGhpcy5yZXN1bWVUb2tlbj1yLHRoaXMubGFzdExpc3RlblNlcXVlbmNlTnVtYmVyPWksdGhpcy5sYXN0TGltYm9GcmVlU25hcHNob3RWZXJzaW9uPW8sdGhpcy5xdWVyeT1zfUpfLnN0b3JlPSJ0YXJnZXRzIixKXy5rZXlQYXRoPSJ0YXJnZXRJZCIsSl8ucXVlcnlUYXJnZXRzSW5kZXhOYW1lPSJxdWVyeVRhcmdldHNJbmRleCIsSl8ucXVlcnlUYXJnZXRzS2V5UGF0aD1bImNhbm9uaWNhbElkIiwidGFyZ2V0SWQiXTt2YXIgJF89ZnVuY3Rpb24odCxlLG4pe3RoaXMudGFyZ2V0SWQ9dCx0aGlzLnBhdGg9ZSx0aGlzLnNlcXVlbmNlTnVtYmVyPW59OyRfLnN0b3JlPSJ0YXJnZXREb2N1bWVudHMiLCRfLmtleVBhdGg9WyJ0YXJnZXRJZCIsInBhdGgiXSwkXy5kb2N1bWVudFRhcmdldHNJbmRleD0iZG9jdW1lbnRUYXJnZXRzSW5kZXgiLCRfLmRvY3VtZW50VGFyZ2V0c0tleVBhdGg9WyJwYXRoIiwidGFyZ2V0SWQiXTtmdW5jdGlvbiBaXyh0LGUsbixyKXt0aGlzLmhpZ2hlc3RUYXJnZXRJZD10LHRoaXMuaGlnaGVzdExpc3RlblNlcXVlbmNlTnVtYmVyPWUsdGhpcy5sYXN0UmVtb3RlU25hcHNob3RWZXJzaW9uPW4sdGhpcy50YXJnZXRDb3VudD1yfVpfLmtleT0idGFyZ2V0R2xvYmFsS2V5IixaXy5zdG9yZT0idGFyZ2V0R2xvYmFsIjtmdW5jdGlvbiB0SSh0LGUpe3RoaXMuY29sbGVjdGlvbklkPXQsdGhpcy5wYXJlbnQ9ZX10SS5zdG9yZT0iY29sbGVjdGlvblBhcmVudHMiLHRJLmtleVBhdGg9WyJjb2xsZWN0aW9uSWQiLCJwYXJlbnQiXTtmdW5jdGlvbiBlSSh0LGUsbixyKXt0aGlzLmNsaWVudElkPXQsdGhpcy51cGRhdGVUaW1lTXM9ZSx0aGlzLm5ldHdvcmtFbmFibGVkPW4sdGhpcy5pbkZvcmVncm91bmQ9cn1lSS5zdG9yZT0iY2xpZW50TWV0YWRhdGEiLGVJLmtleVBhdGg9ImNsaWVudElkIjtmdW5jdGlvbiBuSSh0LGUsbil7dGhpcy5idW5kbGVJZD10LHRoaXMuY3JlYXRlVGltZT1lLHRoaXMudmVyc2lvbj1ufW5JLnN0b3JlPSJidW5kbGVzIixuSS5rZXlQYXRoPSJidW5kbGVJZCI7ZnVuY3Rpb24gckkodCxlLG4pe3RoaXMubmFtZT10LHRoaXMucmVhZFRpbWU9ZSx0aGlzLmJ1bmRsZWRRdWVyeT1ufXJJLnN0b3JlPSJuYW1lZFF1ZXJpZXMiLHJJLmtleVBhdGg9Im5hbWUiO3ZhciBpSSxvST1ubyhubyhbXSxubyhubyhbXSxubyhubyhbXSxubyhubyhbXSxbS18uc3RvcmUsV18uc3RvcmUsSF8uc3RvcmUsWV8uc3RvcmUsSl8uc3RvcmUsVl8uc3RvcmUsWl8uc3RvcmUsJF8uc3RvcmVdKSxbZUkuc3RvcmVdKSksW1hfLnN0b3JlXSkpLFt0SS5zdG9yZV0pKSxbbkkuc3RvcmUsckkuc3RvcmVdKSxzST0iVGhlIGN1cnJlbnQgdGFiIGlzIG5vdCBpbiB0aGUgcmVxdWlyZWQgc3RhdGUgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbi4gSXQgbWlnaHQgYmUgbmVjZXNzYXJ5IHRvIHJlZnJlc2ggdGhlIGJyb3dzZXIgdGFiLiIsR2E9KG1JLnByb3RvdHlwZS5hZGRPbkNvbW1pdHRlZExpc3RlbmVyPWZ1bmN0aW9uKHQpe3RoaXMub25Db21taXR0ZWRMaXN0ZW5lcnMucHVzaCh0KX0sbUkucHJvdG90eXBlLnJhaXNlT25Db21taXR0ZWRFdmVudD1mdW5jdGlvbigpe3RoaXMub25Db21taXR0ZWRMaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdCgpfSl9LG1JKSxhST1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7bi5yZXNvbHZlPXQsbi5yZWplY3Q9ZX0pfSx1ST0oeUkucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5leHQodm9pZCAwLHQpfSx5SS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyLGkpe3ZhciBvPXRoaXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tBdHRhY2hlZCYmSHkoKSx0aGlzLmNhbGxiYWNrQXR0YWNoZWQ9ITAsdGhpcy5pc0RvbmU/dGhpcy5lcnJvcj90aGlzLndyYXBGYWlsdXJlKGksdGhpcy5lcnJvcik6dGhpcy53cmFwU3VjY2VzcyhyLHRoaXMucmVzdWx0KTpuZXcgeUkoZnVuY3Rpb24oZSxuKXtvLm5leHRDYWxsYmFjaz1mdW5jdGlvbih0KXtvLndyYXBTdWNjZXNzKHIsdCkubmV4dChlLG4pfSxvLmNhdGNoQ2FsbGJhY2s9ZnVuY3Rpb24odCl7by53cmFwRmFpbHVyZShpLHQpLm5leHQoZSxuKX19KX0seUkucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7bi5uZXh0KHQsZSl9KX0seUkucHJvdG90eXBlLndyYXBVc2VyRnVuY3Rpb249ZnVuY3Rpb24odCl7dHJ5e3ZhciBlPXQoKTtyZXR1cm4gZSBpbnN0YW5jZW9mIHlJP2U6eUkucmVzb2x2ZShlKX1jYXRjaCh0KXtyZXR1cm4geUkucmVqZWN0KHQpfX0seUkucHJvdG90eXBlLndyYXBTdWNjZXNzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ/dGhpcy53cmFwVXNlckZ1bmN0aW9uKGZ1bmN0aW9uKCl7cmV0dXJuIHQoZSl9KTp5SS5yZXNvbHZlKGUpfSx5SS5wcm90b3R5cGUud3JhcEZhaWx1cmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD90aGlzLndyYXBVc2VyRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gdChlKX0pOnlJLnJlamVjdChlKX0seUkucmVzb2x2ZT1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHlJKGZ1bmN0aW9uKHQsZSl7dChuKX0pfSx5SS5yZWplY3Q9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyB5SShmdW5jdGlvbih0LGUpe2Uobil9KX0seUkud2FpdEZvcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHlJKGZ1bmN0aW9uKGUsbil7dmFyIHI9MCxpPTAsbz0hMTt0LmZvckVhY2goZnVuY3Rpb24odCl7KytyLHQubmV4dChmdW5jdGlvbigpeysraSxvJiZpPT09ciYmZSgpfSxmdW5jdGlvbih0KXtyZXR1cm4gbih0KX0pfSksbz0hMCxpPT09ciYmZSgpfSl9LHlJLm9yPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbj15SS5yZXNvbHZlKCExKSxlPTAscj10O2U8ci5sZW5ndGg7ZSsrKSFmdW5jdGlvbihlKXtuPW4ubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdD95SS5yZXNvbHZlKHQpOmUoKX0pfShyW2VdKTtyZXR1cm4gbn0seUkuZm9yRWFjaD1mdW5jdGlvbih0LG4pe3ZhciByPXRoaXMsaT1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aS5wdXNoKG4uY2FsbChyLHQsZSkpfSksdGhpcy53YWl0Rm9yKGkpfSx5SSksY0k9KGdJLm9wZW49ZnVuY3Rpb24odCxlLG4scil7dHJ5e3JldHVybiBuZXcgZ0koZSx0LnRyYW5zYWN0aW9uKHIsbikpfWNhdGNoKHQpe3Rocm93IG5ldyBmSShlLHQpfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGdJLnByb3RvdHlwZSwiZHQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mdC5wcm9taXNlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGdJLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbih0KXt0JiZ0aGlzLmZ0LnJlamVjdCh0KSx0aGlzLmFib3J0ZWR8fChWeSgiU2ltcGxlRGIiLCJBYm9ydGluZyB0cmFuc2FjdGlvbjoiLHQ/dC5tZXNzYWdlOiJDbGllbnQtaW5pdGlhdGVkIGFib3J0IiksdGhpcy5hYm9ydGVkPSEwLHRoaXMudHJhbnNhY3Rpb24uYWJvcnQoKSl9LGdJLnByb3RvdHlwZS5zdG9yZT1mdW5jdGlvbih0KXt0PXRoaXMudHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodCk7cmV0dXJuIG5ldyB3SSh0KX0sZ0kpLGhJPSh2SS5kZWxldGU9ZnVuY3Rpb24odCl7cmV0dXJuIFZ5KCJTaW1wbGVEYiIsIlJlbW92aW5nIGRhdGFiYXNlOiIsdCksSUkod2luZG93LmluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSh0KSkudG9Qcm9taXNlKCl9LHZJLnl0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBpbmRleGVkREIpcmV0dXJuITE7aWYodkkuZ3QoKSlyZXR1cm4hMDt2YXIgdD1wbygpLGU9dkkuX3QodCksbj0wPGUmJmU8MTAsZT12SS5FdCh0KSxlPTA8ZSYmZTw0LjU7cmV0dXJuISgwPHQuaW5kZXhPZigiTVNJRSAiKXx8MDx0LmluZGV4T2YoIlRyaWRlbnQvIil8fDA8dC5pbmRleE9mKCJFZGdlLyIpfHxufHxlKX0sdkkuZ3Q9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHByb2Nlc3MmJiJZRVMiPT09KG51bGw9PT0odD1wcm9jZXNzLmVudil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuVHQpfSx2SS5JdD1mdW5jdGlvbih0LGUpe3JldHVybiB0LnN0b3JlKGUpfSx2SS5fdD1mdW5jdGlvbih0KXt0PXQubWF0Y2goL2koPzpwaG9uZXxwYWR8cG9kKSBvcyAoW1xkX10rKS9pKSx0PXQ/dFsxXS5zcGxpdCgiXyIpLnNsaWNlKDAsMikuam9pbigiLiIpOiItMSI7cmV0dXJuIE51bWJlcih0KX0sdkkuRXQ9ZnVuY3Rpb24odCl7dD10Lm1hdGNoKC9BbmRyb2lkIChbXGQuXSspL2kpLHQ9dD90WzFdLnNwbGl0KCIuIikuc2xpY2UoMCwyKS5qb2luKCIuIik6Ii0xIjtyZXR1cm4gTnVtYmVyKHQpfSx2SS5wcm90b3R5cGUuQXQ9ZnVuY3Rpb24obyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLGk9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmRiP1szLDJdOihWeSgiU2ltcGxlRGIiLCJPcGVuaW5nIGRhdGFiYXNlOiIsdGhpcy5uYW1lKSxlPXRoaXMsWzQsbmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXt2YXIgcj1pbmRleGVkREIub3BlbihpLm5hbWUsaS52ZXJzaW9uKTtyLm9uc3VjY2Vzcz1mdW5jdGlvbih0KXt0PXQudGFyZ2V0LnJlc3VsdDtlKHQpfSxyLm9uYmxvY2tlZD1mdW5jdGlvbigpe24obmV3IGZJKG8sIkNhbm5vdCB1cGdyYWRlIEluZGV4ZWREQiBzY2hlbWEgd2hpbGUgYW5vdGhlciB0YWIgaXMgb3Blbi4gQ2xvc2UgYWxsIHRhYnMgdGhhdCBhY2Nlc3MgRmlyZXN0b3JlIGFuZCByZWxvYWQgdGhpcyBwYWdlIHRvIHByb2NlZWQuIikpfSxyLm9uZXJyb3I9ZnVuY3Rpb24odCl7dD10LnRhcmdldC5lcnJvcjsiVmVyc2lvbkVycm9yIj09PXQubmFtZT9uKG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLCJBIG5ld2VyIHZlcnNpb24gb2YgdGhlIEZpcmVzdG9yZSBTREsgd2FzIHByZXZpb3VzbHkgdXNlZCBhbmQgc28gdGhlIHBlcnNpc3RlZCBkYXRhIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHZlcnNpb24gb2YgdGhlIFNESyB5b3UgYXJlIG5vdyB1c2luZy4gVGhlIFNESyB3aWxsIG9wZXJhdGUgd2l0aCBwZXJzaXN0ZW5jZSBkaXNhYmxlZC4gSWYgeW91IG5lZWQgcGVyc2lzdGVuY2UsIHBsZWFzZSByZS11cGdyYWRlIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgU0RLIG9yIGVsc2UgY2xlYXIgdGhlIHBlcnNpc3RlZCBJbmRleGVkREIgZGF0YSBmb3IgeW91ciBhcHAgdG8gc3RhcnQgZnJlc2guIikpOm4obmV3IGZJKG8sdCkpfSxyLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbih0KXtWeSgiU2ltcGxlRGIiLCdEYXRhYmFzZSAiJytpLm5hbWUrJyIgcmVxdWlyZXMgdXBncmFkZSBmcm9tIHZlcnNpb246Jyx0Lm9sZFZlcnNpb24pO3ZhciBlPXQudGFyZ2V0LnJlc3VsdDtpLnd0LlJ0KGUsci50cmFuc2FjdGlvbix0Lm9sZFZlcnNpb24saS52ZXJzaW9uKS5uZXh0KGZ1bmN0aW9uKCl7VnkoIlNpbXBsZURiIiwiRGF0YWJhc2UgdXBncmFkZSB0byB2ZXJzaW9uICIraS52ZXJzaW9uKyIgY29tcGxldGUiKX0pfX0pXSk7Y2FzZSAxOmUuZGI9dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMiwodGhpcy5idCYmKHRoaXMuZGIub252ZXJzaW9uY2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBpLmJ0KHQpfSksdGhpcy5kYildfX0pfSl9LHZJLnByb3RvdHlwZS52dD1mdW5jdGlvbihlKXt0aGlzLmJ0PWUsdGhpcy5kYiYmKHRoaXMuZGIub252ZXJzaW9uY2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSl9LHZJLnByb3RvdHlwZS5ydW5UcmFuc2FjdGlvbj1mdW5jdGlvbihhLG4sdSxjKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGksbyxzLGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppPSJyZWFkb25seSI9PT1uLG89MCxlPWZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6KytvLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDQsLDVdKSxbNCxzLkF0KGEpXTtjYXNlIDI6cmV0dXJuIHMuZGI9dC5zZW50KCksZT1jSS5vcGVuKHMuZGIsYSxpPyJyZWFkb25seSI6InJlYWR3cml0ZSIsdSksbj1jKGUpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmFib3J0KHQpLHVJLnJlamVjdCh0KX0pLnRvUHJvbWlzZSgpLHI9e30sbi5jYXRjaChmdW5jdGlvbigpe30pLFs0LGUuZHRdO2Nhc2UgMzpyZXR1cm5bMiwoci52YWx1ZT0odC5zZW50KCksbikscildO2Nhc2UgNDpyZXR1cm4gbj10LnNlbnQoKSxyPSJGaXJlYmFzZUVycm9yIiE9PW4ubmFtZSYmbzwzLFZ5KCJTaW1wbGVEYiIsIlRyYW5zYWN0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiIsbi5tZXNzYWdlLCJSZXRyeWluZzoiLHIpLHMuY2xvc2UoKSxyP1szLDVdOlsyLHt2YWx1ZTpQcm9taXNlLnJlamVjdChuKX1dO2Nhc2UgNTpyZXR1cm5bMl19fSl9LHM9dGhpcyx0LmxhYmVsPTE7Y2FzZSAxOnJldHVybls1LGUoKV07Y2FzZSAyOmlmKCJvYmplY3QiPT10eXBlb2YoZT10LnNlbnQoKSkpcmV0dXJuWzIsZS52YWx1ZV07dC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMywxXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LHZJLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3RoaXMuZGImJnRoaXMuZGIuY2xvc2UoKSx0aGlzLmRiPXZvaWQgMH0sdkkpLGxJPShPYmplY3QuZGVmaW5lUHJvcGVydHkoZEkucHJvdG90eXBlLCJpc0RvbmUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5WdH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZEkucHJvdG90eXBlLCJEdCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLlN0fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkSS5wcm90b3R5cGUsImN1cnNvciIse3NldDpmdW5jdGlvbih0KXt0aGlzLlB0PXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZEkucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24oKXt0aGlzLlZ0PSEwfSxkSS5wcm90b3R5cGUuQ3Q9ZnVuY3Rpb24odCl7dGhpcy5TdD10fSxkSS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIElJKHRoaXMuUHQuZGVsZXRlKCkpfSxkSSksZkk9KFhpKHBJLGlJPUZ5KSxwSSk7ZnVuY3Rpb24gcEkodCxlKXt2YXIgbj10aGlzO3JldHVybihuPWlJLmNhbGwodGhpcyxNeS5VTkFWQUlMQUJMRSwiSW5kZXhlZERCIHRyYW5zYWN0aW9uICciK3QrIicgZmFpbGVkOiAiK2UpfHx0aGlzKS5uYW1lPSJJbmRleGVkRGJUcmFuc2FjdGlvbkVycm9yIixufWZ1bmN0aW9uIGRJKHQpe3RoaXMuUHQ9dCx0aGlzLlZ0PSExLHRoaXMuU3Q9bnVsbH1mdW5jdGlvbiB2SSh0LGUsbil7dGhpcy5uYW1lPXQsdGhpcy52ZXJzaW9uPWUsdGhpcy53dD1uLDEyLjI9PT12SS5fdChwbygpKSYmQnkoIkZpcmVzdG9yZSBwZXJzaXN0ZW5jZSBzdWZmZXJzIGZyb20gYSBidWcgaW4gaU9TIDEyLjIgU2FmYXJpIHRoYXQgbWF5IGNhdXNlIHlvdXIgYXBwIHRvIHN0b3Agd29ya2luZy4gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS81NjQ5NjI5Ni8xMTA5MTUgZm9yIGRldGFpbHMgYW5kIGEgcG90ZW50aWFsIHdvcmthcm91bmQuIil9ZnVuY3Rpb24gZ0koZSx0KXt2YXIgbj10aGlzO3RoaXMuYWN0aW9uPWUsdGhpcy50cmFuc2FjdGlvbj10LHRoaXMuYWJvcnRlZD0hMSx0aGlzLmZ0PW5ldyBhSSx0aGlzLnRyYW5zYWN0aW9uLm9uY29tcGxldGU9ZnVuY3Rpb24oKXtuLmZ0LnJlc29sdmUoKX0sdGhpcy50cmFuc2FjdGlvbi5vbmFib3J0PWZ1bmN0aW9uKCl7dC5lcnJvcj9uLmZ0LnJlamVjdChuZXcgZkkoZSx0LmVycm9yKSk6bi5mdC5yZXNvbHZlKCl9LHRoaXMudHJhbnNhY3Rpb24ub25lcnJvcj1mdW5jdGlvbih0KXt0PUVJKHQudGFyZ2V0LmVycm9yKTtuLmZ0LnJlamVjdChuZXcgZkkoZSx0KSl9fWZ1bmN0aW9uIHlJKHQpe3ZhciBlPXRoaXM7dGhpcy5uZXh0Q2FsbGJhY2s9bnVsbCx0aGlzLmNhdGNoQ2FsbGJhY2s9bnVsbCx0aGlzLnJlc3VsdD12b2lkIDAsdGhpcy5lcnJvcj12b2lkIDAsdGhpcy5pc0RvbmU9ITEsdGhpcy5jYWxsYmFja0F0dGFjaGVkPSExLHQoZnVuY3Rpb24odCl7ZS5pc0RvbmU9ITAsZS5yZXN1bHQ9dCxlLm5leHRDYWxsYmFjayYmZS5uZXh0Q2FsbGJhY2sodCl9LGZ1bmN0aW9uKHQpe2UuaXNEb25lPSEwLGUuZXJyb3I9dCxlLmNhdGNoQ2FsbGJhY2smJmUuY2F0Y2hDYWxsYmFjayh0KX0pfWZ1bmN0aW9uIG1JKCl7dGhpcy5vbkNvbW1pdHRlZExpc3RlbmVycz1bXX1mdW5jdGlvbiBiSSh0KXtyZXR1cm4iSW5kZXhlZERiVHJhbnNhY3Rpb25FcnJvciI9PT10Lm5hbWV9dmFyIHdJPShfSS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKHQsZSl7dD12b2lkIDAhPT1lPyhWeSgiU2ltcGxlRGIiLCJQVVQiLHRoaXMuc3RvcmUubmFtZSx0LGUpLHRoaXMuc3RvcmUucHV0KGUsdCkpOihWeSgiU2ltcGxlRGIiLCJQVVQiLHRoaXMuc3RvcmUubmFtZSwiPGF1dG8ta2V5PiIsdCksdGhpcy5zdG9yZS5wdXQodCkpO3JldHVybiBJSSh0KX0sX0kucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gVnkoIlNpbXBsZURiIiwiQUREIix0aGlzLnN0b3JlLm5hbWUsdCx0KSxJSSh0aGlzLnN0b3JlLmFkZCh0KSl9LF9JLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztyZXR1cm4gSUkodGhpcy5zdG9yZS5nZXQoZSkpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW51bGwpLFZ5KCJTaW1wbGVEYiIsIkdFVCIsbi5zdG9yZS5uYW1lLGUsdCksdH0pfSxfSS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3JldHVybiBWeSgiU2ltcGxlRGIiLCJERUxFVEUiLHRoaXMuc3RvcmUubmFtZSx0KSxJSSh0aGlzLnN0b3JlLmRlbGV0ZSh0KSl9LF9JLnByb3RvdHlwZS5jb3VudD1mdW5jdGlvbigpe3JldHVybiBWeSgiU2ltcGxlRGIiLCJDT1VOVCIsdGhpcy5zdG9yZS5uYW1lKSxJSSh0aGlzLnN0b3JlLmNvdW50KCkpfSxfSS5wcm90b3R5cGUuTnQ9ZnVuY3Rpb24odCxlKXt2YXIgZT10aGlzLmN1cnNvcih0aGlzLm9wdGlvbnModCxlKSksbj1bXTtyZXR1cm4gdGhpcy54dChlLGZ1bmN0aW9uKHQsZSl7bi5wdXNoKGUpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBufSl9LF9JLnByb3RvdHlwZS5GdD1mdW5jdGlvbih0LGUpe1Z5KCJTaW1wbGVEYiIsIkRFTEVURSBBTEwiLHRoaXMuc3RvcmUubmFtZSk7ZT10aGlzLm9wdGlvbnModCxlKTtlLmt0PSExO2U9dGhpcy5jdXJzb3IoZSk7cmV0dXJuIHRoaXMueHQoZSxmdW5jdGlvbih0LGUsbil7cmV0dXJuIG4uZGVsZXRlKCl9KX0sX0kucHJvdG90eXBlLk90PWZ1bmN0aW9uKHQsZSl7ZT9uPXQ6KG49e30sZT10KTt2YXIgbj10aGlzLmN1cnNvcihuKTtyZXR1cm4gdGhpcy54dChuLGUpfSxfSS5wcm90b3R5cGUuJHQ9ZnVuY3Rpb24ocil7dmFyIHQ9dGhpcy5jdXJzb3Ioe30pO3JldHVybiBuZXcgdUkoZnVuY3Rpb24obixlKXt0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7dD1FSSh0LnRhcmdldC5lcnJvcik7ZSh0KX0sdC5vbnN1Y2Nlc3M9ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQucmVzdWx0O2U/cihlLnByaW1hcnlLZXksZS52YWx1ZSkubmV4dChmdW5jdGlvbih0KXt0P2UuY29udGludWUoKTpuKCl9KTpuKCl9fSl9LF9JLnByb3RvdHlwZS54dD1mdW5jdGlvbih0LGkpe3ZhciBvPVtdO3JldHVybiBuZXcgdUkoZnVuY3Rpb24ocixlKXt0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7ZSh0LnRhcmdldC5lcnJvcil9LHQub25zdWNjZXNzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC50YXJnZXQucmVzdWx0O24/KGU9bmV3IGxJKG4pLCh0PWkobi5wcmltYXJ5S2V5LG4udmFsdWUsZSkpaW5zdGFuY2VvZiB1SSYmKHQ9dC5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5kb25lKCksdUkucmVqZWN0KHQpfSksby5wdXNoKHQpKSxlLmlzRG9uZT9yKCk6bnVsbD09PWUuRHQ/bi5jb250aW51ZSgpOm4uY29udGludWUoZS5EdCkpOnIoKX19KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHVJLndhaXRGb3Iobyl9KX0sX0kucHJvdG90eXBlLm9wdGlvbnM9ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gdm9pZCAwIT09dCYmKCJzdHJpbmciPT10eXBlb2YgdD9uPXQ6ZT10KSx7aW5kZXg6bixyYW5nZTplfX0sX0kucHJvdG90eXBlLmN1cnNvcj1mdW5jdGlvbih0KXt2YXIgZT0ibmV4dCI7aWYodC5yZXZlcnNlJiYoZT0icHJldiIpLHQuaW5kZXgpe3ZhciBuPXRoaXMuc3RvcmUuaW5kZXgodC5pbmRleCk7cmV0dXJuIHQua3Q/bi5vcGVuS2V5Q3Vyc29yKHQucmFuZ2UsZSk6bi5vcGVuQ3Vyc29yKHQucmFuZ2UsZSl9cmV0dXJuIHRoaXMuc3RvcmUub3BlbkN1cnNvcih0LnJhbmdlLGUpfSxfSSk7ZnVuY3Rpb24gX0kodCl7dGhpcy5zdG9yZT10fWZ1bmN0aW9uIElJKHQpe3JldHVybiBuZXcgdUkoZnVuY3Rpb24oZSxuKXt0Lm9uc3VjY2Vzcz1mdW5jdGlvbih0KXt0PXQudGFyZ2V0LnJlc3VsdDtlKHQpfSx0Lm9uZXJyb3I9ZnVuY3Rpb24odCl7dD1FSSh0LnRhcmdldC5lcnJvcik7bih0KX19KX12YXIgVEk9ITE7ZnVuY3Rpb24gRUkodCl7dmFyIGU9aEkuX3QocG8oKSk7aWYoMTIuMjw9ZSYmZTwxMyl7ZT0iQW4gaW50ZXJuYWwgZXJyb3Igd2FzIGVuY291bnRlcmVkIGluIHRoZSBJbmRleGVkIERhdGFiYXNlIHNlcnZlciI7aWYoMDw9dC5tZXNzYWdlLmluZGV4T2YoZSkpe3ZhciBuPW5ldyBGeSgiaW50ZXJuYWwiLCJJT1NfSU5ERVhFRERCX0JVRzE6IEluZGV4ZWREYiBoYXMgdGhyb3duICciK2UrIicuIFRoaXMgaXMgbGlrZWx5IGR1ZSB0byBhbiB1bmF2b2lkYWJsZSBidWcgaW4gaU9TLiBTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzU2NDk2Mjk2LzExMDkxNSBmb3IgZGV0YWlscyBhbmQgYSBwb3RlbnRpYWwgd29ya2Fyb3VuZC4iKTtyZXR1cm4gVEl8fChUST0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgbn0sMCkpLG59fXJldHVybiB0fXZhciBTSSxDST0oWGkoTkksU0k9R2EpLE5JKTtmdW5jdGlvbiBOSSh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49U0kuY2FsbCh0aGlzKXx8dGhpcykuTXQ9dCxuLmN1cnJlbnRTZXF1ZW5jZU51bWJlcj1lLG59ZnVuY3Rpb24gQUkodCxlKXtyZXR1cm4gaEkuSXQodC5NdCxlKX12YXIga0k9KExJLnByb3RvdHlwZS5hcHBseVRvUmVtb3RlRG9jdW1lbnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4scixpLG8scyxhLHU9ZS5tdXRhdGlvblJlc3VsdHMsYz0wO2M8dGhpcy5tdXRhdGlvbnMubGVuZ3RoO2MrKyl7dmFyIGg9dGhpcy5tdXRhdGlvbnNbY107aC5rZXkuaXNFcXVhbCh0LmtleSkmJihuPWgscj10LGk9dVtjXSxoPWE9cz1vPXZvaWQgMCxuIGluc3RhbmNlb2YgeXc/KHM9cixhPWksaD0obz1uKS52YWx1ZS5jbG9uZSgpLG89SXcoby5maWVsZFRyYW5zZm9ybXMscyxhLnRyYW5zZm9ybVJlc3VsdHMpLGguc2V0QWxsKG8pLHMuY29udmVydFRvRm91bmREb2N1bWVudChhLnZlcnNpb24saCkuc2V0SGFzQ29tbWl0dGVkTXV0YXRpb25zKCkpOm4gaW5zdGFuY2VvZiBtdz8obz1yLHM9aSxsdygoYT1uKS5wcmVjb25kaXRpb24sbyk/KGg9SXcoYS5maWVsZFRyYW5zZm9ybXMsbyxzLnRyYW5zZm9ybVJlc3VsdHMpLChuPW8uZGF0YSkuc2V0QWxsKF93KGEpKSxuLnNldEFsbChoKSxvLmNvbnZlcnRUb0ZvdW5kRG9jdW1lbnQocy52ZXJzaW9uLG4pLnNldEhhc0NvbW1pdHRlZE11dGF0aW9ucygpKTpvLmNvbnZlcnRUb1Vua25vd25Eb2N1bWVudChzLnZlcnNpb24pKTpyLmNvbnZlcnRUb05vRG9jdW1lbnQoaS52ZXJzaW9uKS5zZXRIYXNDb21taXR0ZWRNdXRhdGlvbnMoKSl9fSxMSS5wcm90b3R5cGUuYXBwbHlUb0xvY2FsVmlldz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPXRoaXMuYmFzZU11dGF0aW9ucztlPG4ubGVuZ3RoO2UrKykocj1uW2VdKS5rZXkuaXNFcXVhbCh0LmtleSkmJmZ3KHIsdCx0aGlzLmxvY2FsV3JpdGVUaW1lKTtmb3IodmFyIHIsaT0wLG89dGhpcy5tdXRhdGlvbnM7aTxvLmxlbmd0aDtpKyspKHI9b1tpXSkua2V5LmlzRXF1YWwodC5rZXkpJiZmdyhyLHQsdGhpcy5sb2NhbFdyaXRlVGltZSl9LExJLnByb3RvdHlwZS5hcHBseVRvTG9jYWxEb2N1bWVudFNldD1mdW5jdGlvbihuKXt2YXIgcj10aGlzO3RoaXMubXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5nZXQodC5rZXkpLHQ9ZTtyLmFwcGx5VG9Mb2NhbFZpZXcodCksZS5pc1ZhbGlkRG9jdW1lbnQoKXx8dC5jb252ZXJ0VG9Ob0RvY3VtZW50KFp5Lm1pbigpKX0pfSxMSS5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11dGF0aW9ucy5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5hZGQoZS5rZXkpfSxZdygpKX0sTEkucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYmF0Y2hJZD09PXQuYmF0Y2hJZCYmWHkodGhpcy5tdXRhdGlvbnMsdC5tdXRhdGlvbnMscHcpJiZYeSh0aGlzLmJhc2VNdXRhdGlvbnMsdC5iYXNlTXV0YXRpb25zLHB3KX0sTEkpLFJJPSh4SS5mcm9tPWZ1bmN0aW9uKHQsZSxuKXtHeSh0Lm11dGF0aW9ucy5sZW5ndGg9PT1uLmxlbmd0aCk7Zm9yKHZhciByPXp3LGk9dC5tdXRhdGlvbnMsbz0wO288aS5sZW5ndGg7bysrKXI9ci5pbnNlcnQoaVtvXS5rZXksbltvXS52ZXJzaW9uKTtyZXR1cm4gbmV3IHhJKHQsZSxuLHIpfSx4SSksUEk9KERJLnByb3RvdHlwZS53aXRoU2VxdWVuY2VOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBESSh0aGlzLnRhcmdldCx0aGlzLnRhcmdldElkLHRoaXMucHVycG9zZSx0LHRoaXMuc25hcHNob3RWZXJzaW9uLHRoaXMubGFzdExpbWJvRnJlZVNuYXBzaG90VmVyc2lvbix0aGlzLnJlc3VtZVRva2VuKX0sREkucHJvdG90eXBlLndpdGhSZXN1bWVUb2tlbj1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgREkodGhpcy50YXJnZXQsdGhpcy50YXJnZXRJZCx0aGlzLnB1cnBvc2UsdGhpcy5zZXF1ZW5jZU51bWJlcixlLHRoaXMubGFzdExpbWJvRnJlZVNuYXBzaG90VmVyc2lvbix0KX0sREkucHJvdG90eXBlLndpdGhMYXN0TGltYm9GcmVlU25hcHNob3RWZXJzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgREkodGhpcy50YXJnZXQsdGhpcy50YXJnZXRJZCx0aGlzLnB1cnBvc2UsdGhpcy5zZXF1ZW5jZU51bWJlcix0aGlzLnNuYXBzaG90VmVyc2lvbix0LHRoaXMucmVzdW1lVG9rZW4pfSxESSksT0k9ZnVuY3Rpb24odCl7dGhpcy5MdD10fTtmdW5jdGlvbiBESSh0LGUsbixyLGksbyxzKXt2b2lkIDA9PT1pJiYoaT1aeS5taW4oKSksdm9pZCAwPT09byYmKG89WnkubWluKCkpLHZvaWQgMD09PXMmJihzPWxtLkVNUFRZX0JZVEVfU1RSSU5HKSx0aGlzLnRhcmdldD10LHRoaXMudGFyZ2V0SWQ9ZSx0aGlzLnB1cnBvc2U9bix0aGlzLnNlcXVlbmNlTnVtYmVyPXIsdGhpcy5zbmFwc2hvdFZlcnNpb249aSx0aGlzLmxhc3RMaW1ib0ZyZWVTbmFwc2hvdFZlcnNpb249byx0aGlzLnJlc3VtZVRva2VuPXN9ZnVuY3Rpb24geEkodCxlLG4scil7dGhpcy5iYXRjaD10LHRoaXMuY29tbWl0VmVyc2lvbj1lLHRoaXMubXV0YXRpb25SZXN1bHRzPW4sdGhpcy5kb2NWZXJzaW9ucz1yfWZ1bmN0aW9uIExJKHQsZSxuLHIpe3RoaXMuYmF0Y2hJZD10LHRoaXMubG9jYWxXcml0ZVRpbWU9ZSx0aGlzLmJhc2VNdXRhdGlvbnM9bix0aGlzLm11dGF0aW9ucz1yfWZ1bmN0aW9uIE1JKHQsZSl7aWYoZS5kb2N1bWVudClyZXR1cm4gU18odC5MdCxlLmRvY3VtZW50LCEhZS5oYXNDb21taXR0ZWRNdXRhdGlvbnMpO2lmKGUubm9Eb2N1bWVudCl7dmFyIG49Q20uZnJvbVNlZ21lbnRzKGUubm9Eb2N1bWVudC5wYXRoKSxyPVZJKGUubm9Eb2N1bWVudC5yZWFkVGltZSksbj1CbS5uZXdOb0RvY3VtZW50KG4scik7cmV0dXJuIGUuaGFzQ29tbWl0dGVkTXV0YXRpb25zP24uc2V0SGFzQ29tbWl0dGVkTXV0YXRpb25zKCk6bn1pZihlLnVua25vd25Eb2N1bWVudCl7bj1DbS5mcm9tU2VnbWVudHMoZS51bmtub3duRG9jdW1lbnQucGF0aCkscj1WSShlLnVua25vd25Eb2N1bWVudC52ZXJzaW9uKTtyZXR1cm4gQm0ubmV3VW5rbm93bkRvY3VtZW50KG4scil9cmV0dXJuIEh5KCl9ZnVuY3Rpb24gRkkodCxlLG4pe3ZhciByPVVJKG4pLG49ZS5rZXkucGF0aC5wb3BMYXN0KCkudG9BcnJheSgpO2lmKGUuaXNGb3VuZERvY3VtZW50KCkpe3ZhciBpPXtuYW1lOm1fKG89dC5MdCwocz1lKS5rZXkpLGZpZWxkczpzLmRhdGEudG9Qcm90bygpLm1hcFZhbHVlLmZpZWxkcyx1cGRhdGVUaW1lOnBfKG8scy52ZXJzaW9uLnRvVGltZXN0YW1wKCkpfSxvPWUuaGFzQ29tbWl0dGVkTXV0YXRpb25zO3JldHVybiBuZXcgWV8obnVsbCxudWxsLGksbyxyLG4pfWlmKGUuaXNOb0RvY3VtZW50KCkpe3ZhciBzPWUua2V5LnBhdGgudG9BcnJheSgpLGk9cUkoZS52ZXJzaW9uKSxvPWUuaGFzQ29tbWl0dGVkTXV0YXRpb25zO3JldHVybiBuZXcgWV8obnVsbCxuZXcgel8ocyxpKSxudWxsLG8scixuKX1pZihlLmlzVW5rbm93bkRvY3VtZW50KCkpe289ZS5rZXkucGF0aC50b0FycmF5KCksZT1xSShlLnZlcnNpb24pO3JldHVybiBuZXcgWV8obmV3IFFfKG8sZSksbnVsbCxudWxsLCEwLHIsbil9cmV0dXJuIEh5KCl9ZnVuY3Rpb24gVUkodCl7dD10LnRvVGltZXN0YW1wKCk7cmV0dXJuW3Quc2Vjb25kcyx0Lm5hbm9zZWNvbmRzXX1mdW5jdGlvbiBqSSh0KXt0PW5ldyAkeSh0WzBdLHRbMV0pO3JldHVybiBaeS5mcm9tVGltZXN0YW1wKHQpfWZ1bmN0aW9uIHFJKHQpe3Q9dC50b1RpbWVzdGFtcCgpO3JldHVybiBuZXcgQl8odC5zZWNvbmRzLHQubmFub3NlY29uZHMpfWZ1bmN0aW9uIFZJKHQpe3Q9bmV3ICR5KHQuc2Vjb25kcyx0Lm5hbm9zZWNvbmRzKTtyZXR1cm4gWnkuZnJvbVRpbWVzdGFtcCh0KX1mdW5jdGlvbiBCSShlLHQpe2Zvcih2YXIgbj0odC5iYXNlTXV0YXRpb25zfHxbXSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBOXyhlLkx0LHQpfSkscj0wO3I8dC5tdXRhdGlvbnMubGVuZ3RoLTE7KytyKXt2YXIgaSxvPXQubXV0YXRpb25zW3JdO3IrMTx0Lm11dGF0aW9ucy5sZW5ndGgmJnZvaWQgMCE9PXQubXV0YXRpb25zW3IrMV0udHJhbnNmb3JtJiYoaT10Lm11dGF0aW9uc1tyKzFdLG8udXBkYXRlVHJhbnNmb3Jtcz1pLnRyYW5zZm9ybS5maWVsZFRyYW5zZm9ybXMsdC5tdXRhdGlvbnMuc3BsaWNlKHIrMSwxKSwrK3IpfXZhciBzPXQubXV0YXRpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gTl8oZS5MdCx0KX0pLGE9JHkuZnJvbU1pbGxpcyh0LmxvY2FsV3JpdGVUaW1lTXMpO3JldHVybiBuZXcga0kodC5iYXRjaElkLGEsbixzKX1mdW5jdGlvbiBLSSh0KXt2YXIgZT1WSSh0LnJlYWRUaW1lKSxuPXZvaWQgMCE9PXQubGFzdExpbWJvRnJlZVNuYXBzaG90VmVyc2lvbj9WSSh0Lmxhc3RMaW1ib0ZyZWVTbmFwc2hvdFZlcnNpb24pOlp5Lm1pbigpLHI9dm9pZCAwIT09dC5xdWVyeS5kb2N1bWVudHM/KEd5KDE9PT0ocj10LnF1ZXJ5KS5kb2N1bWVudHMubGVuZ3RoKSx4YihOYihfXyhyLmRvY3VtZW50c1swXSkpKSk6eGIoUl8odC5xdWVyeSkpO3JldHVybiBuZXcgUEkocix0LnRhcmdldElkLDAsdC5sYXN0TGlzdGVuU2VxdWVuY2VOdW1iZXIsZSxuLGxtLmZyb21CYXNlNjRTdHJpbmcodC5yZXN1bWVUb2tlbikpfWZ1bmN0aW9uIFdJKHQsZSl7dmFyIG49cUkoZS5zbmFwc2hvdFZlcnNpb24pLHI9cUkoZS5sYXN0TGltYm9GcmVlU25hcHNob3RWZXJzaW9uKSxpPShRbShlLnRhcmdldCk/QV86a18pKHQuTHQsZS50YXJnZXQpLHQ9ZS5yZXN1bWVUb2tlbi50b0Jhc2U2NCgpO3JldHVybiBuZXcgSl8oZS50YXJnZXRJZCxHbShlLnRhcmdldCksbix0LGUuc2VxdWVuY2VOdW1iZXIscixpKX1mdW5jdGlvbiBISSh0KXt2YXIgZT1SXyh7cGFyZW50OnQucGFyZW50LHN0cnVjdHVyZWRRdWVyeTp0LnN0cnVjdHVyZWRRdWVyeX0pO3JldHVybiJMQVNUIj09PXQubGltaXRUeXBlP0xiKGUsZS5saW1pdCwiTCIpOmV9dmFyIEdJPSh6SS5wcm90b3R5cGUuZ2V0QnVuZGxlTWV0YWRhdGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gUUkodCkuZ2V0KGUpLm5leHQoZnVuY3Rpb24odCl7aWYodClyZXR1cm57aWQ6KHQ9dCkuYnVuZGxlSWQsY3JlYXRlVGltZTpWSSh0LmNyZWF0ZVRpbWUpLHZlcnNpb246dC52ZXJzaW9ufX0pfSx6SS5wcm90b3R5cGUuc2F2ZUJ1bmRsZU1ldGFkYXRhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFFJKHQpLnB1dCh7YnVuZGxlSWQ6KGU9ZSkuaWQsY3JlYXRlVGltZTpxSSh2XyhlLmNyZWF0ZVRpbWUpKSx2ZXJzaW9uOmUudmVyc2lvbn0pfSx6SS5wcm90b3R5cGUuZ2V0TmFtZWRRdWVyeT1mdW5jdGlvbih0LGUpe3JldHVybiBZSSh0KS5nZXQoZSkubmV4dChmdW5jdGlvbih0KXtpZih0KXJldHVybntuYW1lOih0PXQpLm5hbWUscXVlcnk6SEkodC5idW5kbGVkUXVlcnkpLHJlYWRUaW1lOlZJKHQucmVhZFRpbWUpfX0pfSx6SS5wcm90b3R5cGUuc2F2ZU5hbWVkUXVlcnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gWUkodCkucHV0KHtuYW1lOihlPWUpLm5hbWUscmVhZFRpbWU6cUkodl8oZS5yZWFkVGltZSkpLGJ1bmRsZWRRdWVyeTplLmJ1bmRsZWRRdWVyeX0pfSx6SSk7ZnVuY3Rpb24gekkoKXt9ZnVuY3Rpb24gUUkodCl7cmV0dXJuIEFJKHQsbkkuc3RvcmUpfWZ1bmN0aW9uIFlJKHQpe3JldHVybiBBSSh0LHJJLnN0b3JlKX12YXIgWEk9KGVULnByb3RvdHlwZS5hZGRUb0NvbGxlY3Rpb25QYXJlbnRJbmRleD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLkJ0LmFkZChlKSx1SS5yZXNvbHZlKCl9LGVULnByb3RvdHlwZS5nZXRDb2xsZWN0aW9uUGFyZW50cz1mdW5jdGlvbih0LGUpe3JldHVybiB1SS5yZXNvbHZlKHRoaXMuQnQuZ2V0RW50cmllcyhlKSl9LGVUKSxKST0odFQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgZT10Lmxhc3RTZWdtZW50KCksbj10LnBvcExhc3QoKSxyPXRoaXMuaW5kZXhbZV18fG5ldyBWdyhhbS5jb21wYXJhdG9yKSx0PSFyLmhhcyhuKTtyZXR1cm4gdGhpcy5pbmRleFtlXT1yLmFkZChuKSx0fSx0VC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGFzdFNlZ21lbnQoKSx0PXQucG9wTGFzdCgpLGU9dGhpcy5pbmRleFtlXTtyZXR1cm4gZSYmZS5oYXModCl9LHRULnByb3RvdHlwZS5nZXRFbnRyaWVzPWZ1bmN0aW9uKHQpe3JldHVybih0aGlzLmluZGV4W3RdfHxuZXcgVncoYW0uY29tcGFyYXRvcikpLnRvQXJyYXkoKX0sdFQpLCRJPShaSS5wcm90b3R5cGUuYWRkVG9Db2xsZWN0aW9uUGFyZW50SW5kZXg9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKHRoaXMucXQuaGFzKGUpKXJldHVybiB1SS5yZXNvbHZlKCk7dmFyIHI9ZS5sYXN0U2VnbWVudCgpLGk9ZS5wb3BMYXN0KCk7dC5hZGRPbkNvbW1pdHRlZExpc3RlbmVyKGZ1bmN0aW9uKCl7bi5xdC5hZGQoZSl9KTtpPXtjb2xsZWN0aW9uSWQ6cixwYXJlbnQ6VV8oaSl9O3JldHVybiBuVCh0KS5wdXQoaSl9LFpJLnByb3RvdHlwZS5nZXRDb2xsZWN0aW9uUGFyZW50cz1mdW5jdGlvbih0LGkpe3ZhciBvPVtdLGU9SURCS2V5UmFuZ2UuYm91bmQoW2ksIiJdLFtKeShpKSwiIl0sITEsITApO3JldHVybiBuVCh0KS5OdChlKS5uZXh0KGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dDtlPG4ubGVuZ3RoO2UrKyl7dmFyIHI9bltlXTtpZihyLmNvbGxlY3Rpb25JZCE9PWkpYnJlYWs7by5wdXNoKHFfKHIucGFyZW50KSl9cmV0dXJuIG99KX0sWkkpO2Z1bmN0aW9uIFpJKCl7dGhpcy5xdD1uZXcgSkl9ZnVuY3Rpb24gdFQoKXt0aGlzLmluZGV4PXt9fWZ1bmN0aW9uIGVUKCl7dGhpcy5CdD1uZXcgSkl9ZnVuY3Rpb24gblQodCl7cmV0dXJuIEFJKHQsdEkuc3RvcmUpfXZhciByVD17ZGlkUnVuOiExLHNlcXVlbmNlTnVtYmVyc0NvbGxlY3RlZDowLHRhcmdldHNSZW1vdmVkOjAsZG9jdW1lbnRzUmVtb3ZlZDowfSxpVD0ob1Qud2l0aENhY2hlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG9UKHQsb1QuREVGQVVMVF9DT0xMRUNUSU9OX1BFUkNFTlRJTEUsb1QuREVGQVVMVF9NQVhfU0VRVUVOQ0VfTlVNQkVSU19UT19DT0xMRUNUKX0sb1QpO2Z1bmN0aW9uIG9UKHQsZSxuKXt0aGlzLmNhY2hlU2l6ZUNvbGxlY3Rpb25UaHJlc2hvbGQ9dCx0aGlzLnBlcmNlbnRpbGVUb0NvbGxlY3Q9ZSx0aGlzLm1heGltdW1TZXF1ZW5jZU51bWJlcnNUb0NvbGxlY3Q9bn1mdW5jdGlvbiBzVCh0LGUsbil7dmFyIHI9dC5zdG9yZShXXy5zdG9yZSksaT10LnN0b3JlKEhfLnN0b3JlKSxvPVtdLHQ9SURCS2V5UmFuZ2Uub25seShuLmJhdGNoSWQpLHM9MCx0PXIuT3Qoe3JhbmdlOnR9LGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcysrLG4uZGVsZXRlKCl9KTtvLnB1c2godC5uZXh0KGZ1bmN0aW9uKCl7R3koMT09PXMpfSkpO2Zvcih2YXIgYT1bXSx1PTAsYz1uLm11dGF0aW9uczt1PGMubGVuZ3RoO3UrKyl7dmFyIGg9Y1t1XSxsPUhfLmtleShlLGgua2V5LnBhdGgsbi5iYXRjaElkKTtvLnB1c2goaS5kZWxldGUobCkpLGEucHVzaChoLmtleSl9cmV0dXJuIHVJLndhaXRGb3IobykubmV4dChmdW5jdGlvbigpe3JldHVybiBhfSl9ZnVuY3Rpb24gYVQodCl7aWYoIXQpcmV0dXJuIDA7dmFyIGU7aWYodC5kb2N1bWVudCllPXQuZG9jdW1lbnQ7ZWxzZSBpZih0LnVua25vd25Eb2N1bWVudCllPXQudW5rbm93bkRvY3VtZW50O2Vsc2V7aWYoIXQubm9Eb2N1bWVudCl0aHJvdyBIeSgpO2U9dC5ub0RvY3VtZW50fXJldHVybiBKU09OLnN0cmluZ2lmeShlKS5sZW5ndGh9aVQuREVGQVVMVF9DT0xMRUNUSU9OX1BFUkNFTlRJTEU9MTAsaVQuREVGQVVMVF9NQVhfU0VRVUVOQ0VfTlVNQkVSU19UT19DT0xMRUNUPTFlMyxpVC5ERUZBVUxUPW5ldyBpVCg0MTk0MzA0MCxpVC5ERUZBVUxUX0NPTExFQ1RJT05fUEVSQ0VOVElMRSxpVC5ERUZBVUxUX01BWF9TRVFVRU5DRV9OVU1CRVJTX1RPX0NPTExFQ1QpLGlULkRJU0FCTEVEPW5ldyBpVCgtMSwwLDApO3ZhciB1VD0oY1QuS3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIEd5KCIiIT09dC51aWQpLG5ldyBjVCh0LmlzQXV0aGVudGljYXRlZCgpP3QudWlkOiIiLGUsbixyKX0sY1QucHJvdG90eXBlLmNoZWNrRW1wdHk9ZnVuY3Rpb24odCl7dmFyIHI9ITAsZT1JREJLZXlSYW5nZS5ib3VuZChbdGhpcy51c2VySWQsTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZXSxbdGhpcy51c2VySWQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZXSk7cmV0dXJuIGxUKHQpLk90KHtpbmRleDpXXy51c2VyTXV0YXRpb25zSW5kZXgscmFuZ2U6ZX0sZnVuY3Rpb24odCxlLG4pe3I9ITEsbi5kb25lKCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KX0sY1QucHJvdG90eXBlLmFkZE11dGF0aW9uQmF0Y2g9ZnVuY3Rpb24oZCx2LGcseSl7dmFyIG09dGhpcyxiPWZUKGQpLHc9bFQoZCk7cmV0dXJuIHcuYWRkKHt9KS5uZXh0KGZ1bmN0aW9uKHQpe0d5KCJudW1iZXIiPT10eXBlb2YgdCk7Zm9yKHZhciBlLG4scixpLG8scz1uZXcga0kodCx2LGcseSksYT0oZT1tLlIsbj1tLnVzZXJJZCxpPShyPXMpLmJhc2VNdXRhdGlvbnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBDXyhlLkx0LHQpfSksbz1yLm11dGF0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIENfKGUuTHQsdCl9KSxuZXcgV18obixyLmJhdGNoSWQsci5sb2NhbFdyaXRlVGltZS50b01pbGxpcygpLGksbykpLHU9W10sYz1uZXcgVncoZnVuY3Rpb24odCxlKXtyZXR1cm4gWXkodC5jYW5vbmljYWxTdHJpbmcoKSxlLmNhbm9uaWNhbFN0cmluZygpKX0pLGg9MCxsPXk7aDxsLmxlbmd0aDtoKyspe3ZhciBmPWxbaF0scD1IXy5rZXkobS51c2VySWQsZi5rZXkucGF0aCx0KSxjPWMuYWRkKGYua2V5LnBhdGgucG9wTGFzdCgpKTt1LnB1c2gody5wdXQoYSkpLHUucHVzaChiLnB1dChwLEhfLlBMQUNFSE9MREVSKSl9cmV0dXJuIGMuZm9yRWFjaChmdW5jdGlvbih0KXt1LnB1c2gobS5VdC5hZGRUb0NvbGxlY3Rpb25QYXJlbnRJbmRleChkLHQpKX0pLGQuYWRkT25Db21taXR0ZWRMaXN0ZW5lcihmdW5jdGlvbigpe20uUXRbdF09cy5rZXlzKCl9KSx1SS53YWl0Rm9yKHUpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gc30pfSl9LGNULnByb3RvdHlwZS5sb29rdXBNdXRhdGlvbkJhdGNoPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gbFQodCkuZ2V0KGUpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQ/KEd5KHQudXNlcklkPT09bi51c2VySWQpLEJJKG4uUix0KSk6bnVsbH0pfSxjVC5wcm90b3R5cGUuanQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLlF0W2VdP3VJLnJlc29sdmUodGhpcy5RdFtlXSk6dGhpcy5sb29rdXBNdXRhdGlvbkJhdGNoKHQsZSkubmV4dChmdW5jdGlvbih0KXtpZih0KXt0PXQua2V5cygpO3JldHVybiBuLlF0W2VdPXR9cmV0dXJuIG51bGx9KX0sY1QucHJvdG90eXBlLmdldE5leHRNdXRhdGlvbkJhdGNoQWZ0ZXJCYXRjaElkPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxpPWUrMSxlPUlEQktleVJhbmdlLmxvd2VyQm91bmQoW3RoaXMudXNlcklkLGldKSxvPW51bGw7cmV0dXJuIGxUKHQpLk90KHtpbmRleDpXXy51c2VyTXV0YXRpb25zSW5kZXgscmFuZ2U6ZX0sZnVuY3Rpb24odCxlLG4pe2UudXNlcklkPT09ci51c2VySWQmJihHeShlLmJhdGNoSWQ+PWkpLG89Qkkoci5SLGUpKSxuLmRvbmUoKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gb30pfSxjVC5wcm90b3R5cGUuZ2V0SGlnaGVzdFVuYWNrbm93bGVkZ2VkQmF0Y2hJZD1mdW5jdGlvbih0KXt2YXIgZT1JREJLZXlSYW5nZS51cHBlckJvdW5kKFt0aGlzLnVzZXJJZCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFldKSxyPS0xO3JldHVybiBsVCh0KS5PdCh7aW5kZXg6V18udXNlck11dGF0aW9uc0luZGV4LHJhbmdlOmUscmV2ZXJzZTohMH0sZnVuY3Rpb24odCxlLG4pe3I9ZS5iYXRjaElkLG4uZG9uZSgpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiByfSl9LGNULnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPUlEQktleVJhbmdlLmJvdW5kKFt0aGlzLnVzZXJJZCwtMV0sW3RoaXMudXNlcklkLE51bWJlci5QT1NJVElWRV9JTkZJTklUWV0pO3JldHVybiBsVCh0KS5OdChXXy51c2VyTXV0YXRpb25zSW5kZXgsbikubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIEJJKGUuUix0KX0pfSl9LGNULnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXNBZmZlY3RpbmdEb2N1bWVudEtleT1mdW5jdGlvbihvLHMpe3ZhciBhPXRoaXMsdD1IXy5wcmVmaXhGb3JQYXRoKHRoaXMudXNlcklkLHMucGF0aCksdD1JREJLZXlSYW5nZS5sb3dlckJvdW5kKHQpLHU9W107cmV0dXJuIGZUKG8pLk90KHtyYW5nZTp0fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9dFswXSxpPXRbMV0sdD10WzJdLGk9cV8oaSk7aWYocj09PWEudXNlcklkJiZzLnBhdGguaXNFcXVhbChpKSlyZXR1cm4gbFQobykuZ2V0KHQpLm5leHQoZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgSHkoKTtHeSh0LnVzZXJJZD09PWEudXNlcklkKSx1LnB1c2goQkkoYS5SLHQpKX0pO24uZG9uZSgpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiB1fSl9LGNULnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXNBZmZlY3RpbmdEb2N1bWVudEtleXM9ZnVuY3Rpb24oZSx0KXt2YXIgcz10aGlzLGE9bmV3IFZ3KFl5KSxuPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24obyl7dmFyIHQ9SF8ucHJlZml4Rm9yUGF0aChzLnVzZXJJZCxvLnBhdGgpLHQ9SURCS2V5UmFuZ2UubG93ZXJCb3VuZCh0KSx0PWZUKGUpLk90KHtyYW5nZTp0fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9dFswXSxpPXRbMV0sdD10WzJdLGk9cV8oaSk7cj09PXMudXNlcklkJiZvLnBhdGguaXNFcXVhbChpKT9hPWEuYWRkKHQpOm4uZG9uZSgpfSk7bi5wdXNoKHQpfSksdUkud2FpdEZvcihuKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHMuV3QoZSxhKX0pfSxjVC5wcm90b3R5cGUuZ2V0QWxsTXV0YXRpb25CYXRjaGVzQWZmZWN0aW5nUXVlcnk9ZnVuY3Rpb24odCxlKXt2YXIgbz10aGlzLHM9ZS5wYXRoLGE9cy5sZW5ndGgrMSxlPUhfLnByZWZpeEZvclBhdGgodGhpcy51c2VySWQscyksZT1JREJLZXlSYW5nZS5sb3dlckJvdW5kKGUpLHU9bmV3IFZ3KFl5KTtyZXR1cm4gZlQodCkuT3Qoe3JhbmdlOmV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10WzBdLGk9dFsxXSx0PXRbMl0saT1xXyhpKTtyPT09by51c2VySWQmJnMuaXNQcmVmaXhPZihpKT9pLmxlbmd0aD09PWEmJih1PXUuYWRkKHQpKTpuLmRvbmUoKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gby5XdCh0LHUpfSl9LGNULnByb3RvdHlwZS5XdD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1bXSxpPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7aS5wdXNoKGxUKGUpLmdldCh0KS5uZXh0KGZ1bmN0aW9uKHQpe2lmKG51bGw9PT10KXRocm93IEh5KCk7R3kodC51c2VySWQ9PT1uLnVzZXJJZCksci5wdXNoKEJJKG4uUix0KSl9KSl9KSx1SS53YWl0Rm9yKGkpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gcn0pfSxjVC5wcm90b3R5cGUucmVtb3ZlTXV0YXRpb25CYXRjaD1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7cmV0dXJuIHNUKGUuTXQsdGhpcy51c2VySWQsbikubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gZS5hZGRPbkNvbW1pdHRlZExpc3RlbmVyKGZ1bmN0aW9uKCl7ci5HdChuLmJhdGNoSWQpfSksdUkuZm9yRWFjaCh0LGZ1bmN0aW9uKHQpe3JldHVybiByLnJlZmVyZW5jZURlbGVnYXRlLm1hcmtQb3RlbnRpYWxseU9ycGhhbmVkKGUsdCl9KX0pfSxjVC5wcm90b3R5cGUuR3Q9ZnVuY3Rpb24odCl7ZGVsZXRlIHRoaXMuUXRbdF19LGNULnByb3RvdHlwZS5wZXJmb3JtQ29uc2lzdGVuY3lDaGVjaz1mdW5jdGlvbihlKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLmNoZWNrRW1wdHkoZSkubmV4dChmdW5jdGlvbih0KXtpZighdClyZXR1cm4gdUkucmVzb2x2ZSgpO3ZhciB0PUlEQktleVJhbmdlLmxvd2VyQm91bmQoSF8ucHJlZml4Rm9yVXNlcihpLnVzZXJJZCkpLHI9W107cmV0dXJuIGZUKGUpLk90KHtyYW5nZTp0fSxmdW5jdGlvbih0LGUsbil7dFswXT09PWkudXNlcklkPyh0PXFfKHRbMV0pLHIucHVzaCh0KSk6bi5kb25lKCl9KS5uZXh0KGZ1bmN0aW9uKCl7R3koMD09PXIubGVuZ3RoKX0pfSl9LGNULnByb3RvdHlwZS5jb250YWluc0tleT1mdW5jdGlvbih0LGUpe3JldHVybiBoVCh0LHRoaXMudXNlcklkLGUpfSxjVC5wcm90b3R5cGUuenQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gcFQodCkuZ2V0KHRoaXMudXNlcklkKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0fHxuZXcgS18oZS51c2VySWQsLTEsIiIpfSl9LGNUKTtmdW5jdGlvbiBjVCh0LGUsbixyKXt0aGlzLnVzZXJJZD10LHRoaXMuUj1lLHRoaXMuVXQ9bix0aGlzLnJlZmVyZW5jZURlbGVnYXRlPXIsdGhpcy5RdD17fX1mdW5jdGlvbiBoVCh0LG8sZSl7dmFyIGU9SF8ucHJlZml4Rm9yUGF0aChvLGUucGF0aCkscz1lWzFdLGU9SURCS2V5UmFuZ2UubG93ZXJCb3VuZChlKSxhPSExO3JldHVybiBmVCh0KS5PdCh7cmFuZ2U6ZSxrdDohMH0sZnVuY3Rpb24odCxlLG4pe3ZhciByPXRbMF0saT10WzFdO3RbMl0scj09PW8mJmk9PT1zJiYoYT0hMCksbi5kb25lKCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGF9KX1mdW5jdGlvbiBsVCh0KXtyZXR1cm4gQUkodCxXXy5zdG9yZSl9ZnVuY3Rpb24gZlQodCl7cmV0dXJuIEFJKHQsSF8uc3RvcmUpfWZ1bmN0aW9uIHBUKHQpe3JldHVybiBBSSh0LEtfLnN0b3JlKX12YXIgZFQ9KHlULnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSHQrPTIsdGhpcy5IdH0seVQuSnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHlUKDApfSx5VC5ZdD1mdW5jdGlvbigpe3JldHVybiBuZXcgeVQoLTEpfSx5VCksdlQ9KGdULnByb3RvdHlwZS5hbGxvY2F0ZVRhcmdldElkPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXM7cmV0dXJuIHRoaXMuWHQobikubmV4dChmdW5jdGlvbih0KXt2YXIgZT1uZXcgZFQodC5oaWdoZXN0VGFyZ2V0SWQpO3JldHVybiB0LmhpZ2hlc3RUYXJnZXRJZD1lLm5leHQoKSxyLlp0KG4sdCkubmV4dChmdW5jdGlvbigpe3JldHVybiB0LmhpZ2hlc3RUYXJnZXRJZH0pfSl9LGdULnByb3RvdHlwZS5nZXRMYXN0UmVtb3RlU25hcHNob3RWZXJzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLlh0KHQpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIFp5LmZyb21UaW1lc3RhbXAobmV3ICR5KHQubGFzdFJlbW90ZVNuYXBzaG90VmVyc2lvbi5zZWNvbmRzLHQubGFzdFJlbW90ZVNuYXBzaG90VmVyc2lvbi5uYW5vc2Vjb25kcykpfSl9LGdULnByb3RvdHlwZS5nZXRIaWdoZXN0U2VxdWVuY2VOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuWHQodCkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdC5oaWdoZXN0TGlzdGVuU2VxdWVuY2VOdW1iZXJ9KX0sZ1QucHJvdG90eXBlLnNldFRhcmdldHNNZXRhZGF0YT1mdW5jdGlvbihlLG4scil7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5YdChlKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmhpZ2hlc3RMaXN0ZW5TZXF1ZW5jZU51bWJlcj1uLHImJih0Lmxhc3RSZW1vdGVTbmFwc2hvdFZlcnNpb249ci50b1RpbWVzdGFtcCgpKSxuPnQuaGlnaGVzdExpc3RlblNlcXVlbmNlTnVtYmVyJiYodC5oaWdoZXN0TGlzdGVuU2VxdWVuY2VOdW1iZXI9biksaS5adChlLHQpfSl9LGdULnByb3RvdHlwZS5hZGRUYXJnZXREYXRhPWZ1bmN0aW9uKGUsbil7dmFyIHI9dGhpcztyZXR1cm4gdGhpcy50ZShlLG4pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gci5YdChlKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldENvdW50Kz0xLHIuZWUobix0KSxyLlp0KGUsdCl9KX0pfSxnVC5wcm90b3R5cGUudXBkYXRlVGFyZ2V0RGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRlKHQsZSl9LGdULnByb3RvdHlwZS5yZW1vdmVUYXJnZXREYXRhPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5yZW1vdmVNYXRjaGluZ0tleXNGb3JUYXJnZXRJZChlLHQudGFyZ2V0SWQpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gbVQoZSkuZGVsZXRlKHQudGFyZ2V0SWQpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBuLlh0KGUpfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gR3koMDx0LnRhcmdldENvdW50KSwtLXQudGFyZ2V0Q291bnQsbi5adChlLHQpfSl9LGdULnByb3RvdHlwZS5yZW1vdmVUYXJnZXRzPWZ1bmN0aW9uKG4scixpKXt2YXIgbz10aGlzLHM9MCxhPVtdO3JldHVybiBtVChuKS5PdChmdW5jdGlvbih0LGUpe2U9S0koZSk7ZS5zZXF1ZW5jZU51bWJlcjw9ciYmbnVsbD09PWkuZ2V0KGUudGFyZ2V0SWQpJiYocysrLGEucHVzaChvLnJlbW92ZVRhcmdldERhdGEobixlKSkpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiB1SS53YWl0Rm9yKGEpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBzfSl9LGdULnByb3RvdHlwZS5mb3JFYWNoVGFyZ2V0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIG1UKHQpLk90KGZ1bmN0aW9uKHQsZSl7ZT1LSShlKTtuKGUpfSl9LGdULnByb3RvdHlwZS5YdD1mdW5jdGlvbih0KXtyZXR1cm4gYlQodCkuZ2V0KFpfLmtleSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gR3kobnVsbCE9PXQpLHR9KX0sZ1QucHJvdG90eXBlLlp0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJUKHQpLnB1dChaXy5rZXksZSl9LGdULnByb3RvdHlwZS50ZT1mdW5jdGlvbih0LGUpe3JldHVybiBtVCh0KS5wdXQoV0kodGhpcy5SLGUpKX0sZ1QucHJvdG90eXBlLmVlPWZ1bmN0aW9uKHQsZSl7dmFyIG49ITE7cmV0dXJuIHQudGFyZ2V0SWQ+ZS5oaWdoZXN0VGFyZ2V0SWQmJihlLmhpZ2hlc3RUYXJnZXRJZD10LnRhcmdldElkLG49ITApLHQuc2VxdWVuY2VOdW1iZXI+ZS5oaWdoZXN0TGlzdGVuU2VxdWVuY2VOdW1iZXImJihlLmhpZ2hlc3RMaXN0ZW5TZXF1ZW5jZU51bWJlcj10LnNlcXVlbmNlTnVtYmVyLG49ITApLG59LGdULnByb3RvdHlwZS5nZXRUYXJnZXRDb3VudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5YdCh0KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldENvdW50fSl9LGdULnByb3RvdHlwZS5nZXRUYXJnZXREYXRhPWZ1bmN0aW9uKHQscil7dmFyIGU9R20ociksZT1JREJLZXlSYW5nZS5ib3VuZChbZSxOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFldLFtlLE51bWJlci5QT1NJVElWRV9JTkZJTklUWV0pLGk9bnVsbDtyZXR1cm4gbVQodCkuT3Qoe3JhbmdlOmUsaW5kZXg6Sl8ucXVlcnlUYXJnZXRzSW5kZXhOYW1lfSxmdW5jdGlvbih0LGUsbil7ZT1LSShlKTt6bShyLGUudGFyZ2V0KSYmKGk9ZSxuLmRvbmUoKSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGl9KX0sZ1QucHJvdG90eXBlLmFkZE1hdGNoaW5nS2V5cz1mdW5jdGlvbihuLHQscil7dmFyIGk9dGhpcyxvPVtdLHM9d1Qobik7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1VXyh0LnBhdGgpO28ucHVzaChzLnB1dChuZXcgJF8ocixlKSkpLG8ucHVzaChpLnJlZmVyZW5jZURlbGVnYXRlLmFkZFJlZmVyZW5jZShuLHIsdCkpfSksdUkud2FpdEZvcihvKX0sZ1QucHJvdG90eXBlLnJlbW92ZU1hdGNoaW5nS2V5cz1mdW5jdGlvbihuLHQscil7dmFyIGk9dGhpcyxvPXdUKG4pO3JldHVybiB1SS5mb3JFYWNoKHQsZnVuY3Rpb24odCl7dmFyIGU9VV8odC5wYXRoKTtyZXR1cm4gdUkud2FpdEZvcihbby5kZWxldGUoW3IsZV0pLGkucmVmZXJlbmNlRGVsZWdhdGUucmVtb3ZlUmVmZXJlbmNlKG4scix0KV0pfSl9LGdULnByb3RvdHlwZS5yZW1vdmVNYXRjaGluZ0tleXNGb3JUYXJnZXRJZD1mdW5jdGlvbih0LGUpe3Q9d1QodCksZT1JREJLZXlSYW5nZS5ib3VuZChbZV0sW2UrMV0sITEsITApO3JldHVybiB0LmRlbGV0ZShlKX0sZ1QucHJvdG90eXBlLmdldE1hdGNoaW5nS2V5c0ZvclRhcmdldElkPWZ1bmN0aW9uKHQsZSl7dmFyIGU9SURCS2V5UmFuZ2UuYm91bmQoW2VdLFtlKzFdLCExLCEwKSx0PXdUKHQpLHI9WXcoKTtyZXR1cm4gdC5PdCh7cmFuZ2U6ZSxrdDohMH0sZnVuY3Rpb24odCxlLG4pe3Q9cV8odFsxXSksdD1uZXcgQ20odCk7cj1yLmFkZCh0KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gcn0pfSxnVC5wcm90b3R5cGUuY29udGFpbnNLZXk9ZnVuY3Rpb24odCxlKXt2YXIgZT1VXyhlLnBhdGgpLGU9SURCS2V5UmFuZ2UuYm91bmQoW2VdLFtKeShlKV0sITEsITApLGk9MDtyZXR1cm4gd1QodCkuT3Qoe2luZGV4OiRfLmRvY3VtZW50VGFyZ2V0c0luZGV4LGt0OiEwLHJhbmdlOmV9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10WzBdO3RbMV0sMCE9PXImJihpKyssbi5kb25lKCkpfSkubmV4dChmdW5jdGlvbigpe3JldHVybiAwPGl9KX0sZ1QucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG1UKHQpLmdldChlKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0P0tJKHQpOm51bGx9KX0sZ1QpO2Z1bmN0aW9uIGdUKHQsZSl7dGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZT10LHRoaXMuUj1lfWZ1bmN0aW9uIHlUKHQpe3RoaXMuSHQ9dH1mdW5jdGlvbiBtVCh0KXtyZXR1cm4gQUkodCxKXy5zdG9yZSl9ZnVuY3Rpb24gYlQodCl7cmV0dXJuIEFJKHQsWl8uc3RvcmUpfWZ1bmN0aW9uIHdUKHQpe3JldHVybiBBSSh0LCRfLnN0b3JlKX1mdW5jdGlvbiBfVChlKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7aWYoZS5jb2RlIT09TXkuRkFJTEVEX1BSRUNPTkRJVElPTnx8ZS5tZXNzYWdlIT09c0kpdGhyb3cgZTtyZXR1cm4gVnkoIkxvY2FsU3RvcmUiLCJVbmV4cGVjdGVkbHkgbG9zdCBwcmltYXJ5IGxlYXNlIiksWzJdfSl9KX1mdW5jdGlvbiBJVCh0LGUpe3ZhciBuPXRbMF0scj10WzFdLHQ9ZVswXSxlPWVbMV0sdD1ZeShuLHQpO3JldHVybiAwPT09dD9ZeShyLGUpOnR9dmFyIFRUPShSVC5wcm90b3R5cGUuaWU9ZnVuY3Rpb24oKXtyZXR1cm4rK3RoaXMuc2V9LFJULnByb3RvdHlwZS5yZT1mdW5jdGlvbih0KXt2YXIgZT1bdCx0aGlzLmllKCldO3RoaXMuYnVmZmVyLnNpemU8dGhpcy5uZT90aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlci5hZGQoZSk6SVQoZSx0PXRoaXMuYnVmZmVyLmxhc3QoKSk8MCYmKHRoaXMuYnVmZmVyPXRoaXMuYnVmZmVyLmRlbGV0ZSh0KS5hZGQoZSkpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUlQucHJvdG90eXBlLCJtYXhWYWx1ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1ZmZlci5sYXN0KClbMF19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksUlQpLEVUPShrVC5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24odCl7LTEhPT10aGlzLmdhcmJhZ2VDb2xsZWN0b3IucGFyYW1zLmNhY2hlU2l6ZUNvbGxlY3Rpb25UaHJlc2hvbGQmJnRoaXMudWUodCl9LGtULnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dGhpcy5jZSYmKHRoaXMuY2UuY2FuY2VsKCksdGhpcy5jZT1udWxsKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGtULnByb3RvdHlwZSwic3RhcnRlZCIse2dldDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5jZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxrVC5wcm90b3R5cGUudWU9ZnVuY3Rpb24obil7dmFyIHQ9dGhpcyxlPXRoaXMub2U/M2U1OjZlNDtWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIkdhcmJhZ2UgY29sbGVjdGlvbiBzY2hlZHVsZWQgaW4gIitlKyJtcyIpLHRoaXMuY2U9dGhpcy5hc3luY1F1ZXVlLmVucXVldWVBZnRlckRlbGF5KCJscnVfZ2FyYmFnZV9jb2xsZWN0aW9uIixlLGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6dGhpcy5jZT1udWxsLHRoaXMub2U9ITAsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsMywsN10pLFs0LG4uY29sbGVjdEdhcmJhZ2UodGhpcy5nYXJiYWdlQ29sbGVjdG9yKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbMyw3XTtjYXNlIDM6cmV0dXJuIGJJKGU9dC5zZW50KCkpPyhWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIklnbm9yaW5nIEluZGV4ZWREQiBlcnJvciBkdXJpbmcgZ2FyYmFnZSBjb2xsZWN0aW9uOiAiLGUpLFszLDZdKTpbMyw0XTtjYXNlIDQ6cmV0dXJuWzQsX1QoZSldO2Nhc2UgNTp0LnNlbnQoKSx0LmxhYmVsPTY7Y2FzZSA2OnJldHVyblszLDddO2Nhc2UgNzpyZXR1cm5bNCx0aGlzLnVlKG4pXTtjYXNlIDg6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSl9LGtUKSxTVD0oQVQucHJvdG90eXBlLmNhbGN1bGF0ZVRhcmdldENvdW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWUuaGUodCkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5mbG9vcihlLzEwMCp0KX0pfSxBVC5wcm90b3R5cGUubnRoU2VxdWVuY2VOdW1iZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2lmKDA9PT1lKXJldHVybiB1SS5yZXNvbHZlKER5Lm8pO3ZhciByPW5ldyBUVChlKTtyZXR1cm4gdGhpcy5hZS5mb3JFYWNoVGFyZ2V0KHQsZnVuY3Rpb24odCl7cmV0dXJuIHIucmUodC5zZXF1ZW5jZU51bWJlcil9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG4uYWUubGUodCxmdW5jdGlvbih0KXtyZXR1cm4gci5yZSh0KX0pfSkubmV4dChmdW5jdGlvbigpe3JldHVybiByLm1heFZhbHVlfSl9LEFULnByb3RvdHlwZS5yZW1vdmVUYXJnZXRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5hZS5yZW1vdmVUYXJnZXRzKHQsZSxuKX0sQVQucHJvdG90eXBlLnJlbW92ZU9ycGhhbmVkRG9jdW1lbnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWUucmVtb3ZlT3JwaGFuZWREb2N1bWVudHModCxlKX0sQVQucHJvdG90eXBlLmNvbGxlY3Q9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3JldHVybi0xPT09dGhpcy5wYXJhbXMuY2FjaGVTaXplQ29sbGVjdGlvblRocmVzaG9sZD8oVnkoIkxydUdhcmJhZ2VDb2xsZWN0b3IiLCJHYXJiYWdlIGNvbGxlY3Rpb24gc2tpcHBlZDsgZGlzYWJsZWQiKSx1SS5yZXNvbHZlKHJUKSk6dGhpcy5nZXRDYWNoZVNpemUoZSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdDxyLnBhcmFtcy5jYWNoZVNpemVDb2xsZWN0aW9uVGhyZXNob2xkPyhWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIkdhcmJhZ2UgY29sbGVjdGlvbiBza2lwcGVkOyBDYWNoZSBzaXplICIrdCsiIGlzIGxvd2VyIHRoYW4gdGhyZXNob2xkICIrci5wYXJhbXMuY2FjaGVTaXplQ29sbGVjdGlvblRocmVzaG9sZCksclQpOnIuZmUoZSxuKX0pfSxBVC5wcm90b3R5cGUuZ2V0Q2FjaGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmFlLmdldENhY2hlU2l6ZSh0KX0sQVQucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGUsbil7dmFyIHIsaSxvLHMsYSx1LGMsaD10aGlzLGw9RGF0ZS5ub3coKTtyZXR1cm4gdGhpcy5jYWxjdWxhdGVUYXJnZXRDb3VudChlLHRoaXMucGFyYW1zLnBlcmNlbnRpbGVUb0NvbGxlY3QpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIGk9dD5oLnBhcmFtcy5tYXhpbXVtU2VxdWVuY2VOdW1iZXJzVG9Db2xsZWN0PyhWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIkNhcHBpbmcgc2VxdWVuY2UgbnVtYmVycyB0byBjb2xsZWN0IGRvd24gdG8gdGhlIG1heGltdW0gb2YgIitoLnBhcmFtcy5tYXhpbXVtU2VxdWVuY2VOdW1iZXJzVG9Db2xsZWN0KyIgZnJvbSAiK3QpLGgucGFyYW1zLm1heGltdW1TZXF1ZW5jZU51bWJlcnNUb0NvbGxlY3QpOnQscz1EYXRlLm5vdygpLGgubnRoU2VxdWVuY2VOdW1iZXIoZSxpKX0pLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxhPURhdGUubm93KCksaC5yZW1vdmVUYXJnZXRzKGUscixuKX0pLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIG89dCx1PURhdGUubm93KCksaC5yZW1vdmVPcnBoYW5lZERvY3VtZW50cyhlLHIpfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gYz1EYXRlLm5vdygpLHF5KCk8PWFzLkRFQlVHJiZWeSgiTHJ1R2FyYmFnZUNvbGxlY3RvciIsIkxSVSBHYXJiYWdlIENvbGxlY3Rpb25cblx0Q291bnRlZCB0YXJnZXRzIGluICIrKHMtbCkrIm1zXG5cdERldGVybWluZWQgbGVhc3QgcmVjZW50bHkgdXNlZCAiK2krIiBpbiAiKyhhLXMpKyJtc1xuXHRSZW1vdmVkICIrbysiIHRhcmdldHMgaW4gIisodS1hKSsibXNcblx0UmVtb3ZlZCAiK3QrIiBkb2N1bWVudHMgaW4gIisoYy11KSsibXNcblRvdGFsIER1cmF0aW9uOiAiKyhjLWwpKyJtcyIpLHVJLnJlc29sdmUoe2RpZFJ1bjohMCxzZXF1ZW5jZU51bWJlcnNDb2xsZWN0ZWQ6aSx0YXJnZXRzUmVtb3ZlZDpvLGRvY3VtZW50c1JlbW92ZWQ6dH0pfSl9LEFUKSxDVD0oTlQucHJvdG90eXBlLmhlPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuZGUodCk7cmV0dXJuIHRoaXMuZGIuZ2V0VGFyZ2V0Q2FjaGUoKS5nZXRUYXJnZXRDb3VudCh0KS5uZXh0KGZ1bmN0aW9uKGUpe3JldHVybiBuLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIGUrdH0pfSl9LE5ULnByb3RvdHlwZS5kZT1mdW5jdGlvbih0KXt2YXIgZT0wO3JldHVybiB0aGlzLmxlKHQsZnVuY3Rpb24odCl7ZSsrfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBlfSl9LE5ULnByb3RvdHlwZS5mb3JFYWNoVGFyZ2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZGIuZ2V0VGFyZ2V0Q2FjaGUoKS5mb3JFYWNoVGFyZ2V0KHQsZSl9LE5ULnByb3RvdHlwZS5sZT1mdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLndlKHQsZnVuY3Rpb24odCxlKXtyZXR1cm4gbihlKX0pfSxOVC5wcm90b3R5cGUuYWRkUmVmZXJlbmNlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUFQodCxuKX0sTlQucHJvdG90eXBlLnJlbW92ZVJlZmVyZW5jZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIFBUKHQsbil9LE5ULnByb3RvdHlwZS5yZW1vdmVUYXJnZXRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5kYi5nZXRUYXJnZXRDYWNoZSgpLnJlbW92ZVRhcmdldHModCxlLG4pfSxOVC5wcm90b3R5cGUubWFya1BvdGVudGlhbGx5T3JwaGFuZWQ9UFQsTlQucHJvdG90eXBlLl9lPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHI9ZSxpPSExLHBUKG49dCkuJHQoZnVuY3Rpb24odCl7cmV0dXJuIGhUKG4sdCxyKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0JiYoaT0hMCksdUkucmVzb2x2ZSghdCl9KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gaX0pO3ZhciBuLHIsaX0sTlQucHJvdG90eXBlLnJlbW92ZU9ycGhhbmVkRG9jdW1lbnRzPWZ1bmN0aW9uKG4scil7dmFyIGk9dGhpcyxvPXRoaXMuZGIuZ2V0UmVtb3RlRG9jdW1lbnRDYWNoZSgpLm5ld0NoYW5nZUJ1ZmZlcigpLHM9W10sYT0wO3JldHVybiB0aGlzLndlKG4sZnVuY3Rpb24oZSx0KXt0PD1yJiYodD1pLl9lKG4sZSkubmV4dChmdW5jdGlvbih0KXtpZighdClyZXR1cm4gYSsrLG8uZ2V0RW50cnkobixlKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG8ucmVtb3ZlRW50cnkoZSksd1QobikuZGVsZXRlKFswLFVfKGUucGF0aCldKX0pfSkscy5wdXNoKHQpKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gdUkud2FpdEZvcihzKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseShuKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gYX0pfSxOVC5wcm90b3R5cGUucmVtb3ZlVGFyZ2V0PWZ1bmN0aW9uKHQsZSl7ZT1lLndpdGhTZXF1ZW5jZU51bWJlcih0LmN1cnJlbnRTZXF1ZW5jZU51bWJlcik7cmV0dXJuIHRoaXMuZGIuZ2V0VGFyZ2V0Q2FjaGUoKS51cGRhdGVUYXJnZXREYXRhKHQsZSl9LE5ULnByb3RvdHlwZS51cGRhdGVMaW1ib0RvY3VtZW50PVBULE5ULnByb3RvdHlwZS53ZT1mdW5jdGlvbih0LHIpe3ZhciBpLHQ9d1QodCksbz1EeS5vO3JldHVybiB0Lk90KHtpbmRleDokXy5kb2N1bWVudFRhcmdldHNJbmRleH0sZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdLHQ9KHRbMV0sZS5wYXRoKSxlPWUuc2VxdWVuY2VOdW1iZXI7MD09PW4/KG8hPT1EeS5vJiZyKG5ldyBDbShxXyhpKSksbyksbz1lLGk9dCk6bz1EeS5vfSkubmV4dChmdW5jdGlvbigpe28hPT1EeS5vJiZyKG5ldyBDbShxXyhpKSksbyl9KX0sTlQucHJvdG90eXBlLmdldENhY2hlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kYi5nZXRSZW1vdGVEb2N1bWVudENhY2hlKCkuZ2V0U2l6ZSh0KX0sTlQpO2Z1bmN0aW9uIE5UKHQsZSl7dGhpcy5kYj10LHRoaXMuZ2FyYmFnZUNvbGxlY3Rvcj1uZXcgU1QodGhpcyxlKX1mdW5jdGlvbiBBVCh0LGUpe3RoaXMuYWU9dCx0aGlzLnBhcmFtcz1lfWZ1bmN0aW9uIGtUKHQsZSl7dGhpcy5nYXJiYWdlQ29sbGVjdG9yPXQsdGhpcy5hc3luY1F1ZXVlPWUsdGhpcy5vZT0hMSx0aGlzLmNlPW51bGx9ZnVuY3Rpb24gUlQodCl7dGhpcy5uZT10LHRoaXMuYnVmZmVyPW5ldyBWdyhJVCksdGhpcy5zZT0wfWZ1bmN0aW9uIFBUKHQsZSl7cmV0dXJuIHdUKHQpLnB1dCgodD10LmN1cnJlbnRTZXF1ZW5jZU51bWJlcixuZXcgJF8oMCxVXyhlLnBhdGgpLHQpKSl9dmFyIE9ULERUPShqVC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwS2V5Rm4odCksZT10aGlzLmlubmVyW2VdO2lmKHZvaWQgMCE9PWUpZm9yKHZhciBuPTAscj1lO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dLG89aVswXSxpPWlbMV07aWYodGhpcy5lcXVhbHNGbihvLHQpKXJldHVybiBpfX0salQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dGhpcy5nZXQodCl9LGpULnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLm1hcEtleUZuKHQpLHI9dGhpcy5pbm5lcltuXTtpZih2b2lkIDAhPT1yKXtmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKylpZih0aGlzLmVxdWFsc0ZuKHJbaV1bMF0sdCkpcmV0dXJuIHZvaWQocltpXT1bdCxlXSk7ci5wdXNoKFt0LGVdKX1lbHNlIHRoaXMuaW5uZXJbbl09W1t0LGVdXX0salQucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm1hcEtleUZuKHQpLG49dGhpcy5pbm5lcltlXTtpZih2b2lkIDA9PT1uKXJldHVybiExO2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKWlmKHRoaXMuZXF1YWxzRm4obltyXVswXSx0KSlyZXR1cm4gMT09PW4ubGVuZ3RoP2RlbGV0ZSB0aGlzLmlubmVyW2VdOm4uc3BsaWNlKHIsMSksITA7cmV0dXJuITF9LGpULnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKHMpe3JtKHRoaXMuaW5uZXIsZnVuY3Rpb24odCxlKXtmb3IodmFyIG49MCxyPWU7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl0sbz1pWzBdLGk9aVsxXTtzKG8saSl9fSl9LGpULnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIGltKHRoaXMuaW5uZXIpfSxqVCksU249KFVULnByb3RvdHlwZS5nZXRSZWFkVGltZT1mdW5jdGlvbih0KXt0PXRoaXMuY2hhbmdlcy5nZXQodCk7cmV0dXJuIHQ/dC5yZWFkVGltZTpaeS5taW4oKX0sVVQucHJvdG90eXBlLmFkZEVudHJ5PWZ1bmN0aW9uKHQsZSl7dGhpcy5hc3NlcnROb3RBcHBsaWVkKCksdGhpcy5jaGFuZ2VzLnNldCh0LmtleSx7ZG9jdW1lbnQ6dCxyZWFkVGltZTplfSl9LFVULnByb3RvdHlwZS5yZW1vdmVFbnRyeT1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPW51bGwpLHRoaXMuYXNzZXJ0Tm90QXBwbGllZCgpLHRoaXMuY2hhbmdlcy5zZXQodCx7ZG9jdW1lbnQ6Qm0ubmV3SW52YWxpZERvY3VtZW50KHQpLHJlYWRUaW1lOmV9KX0sVVQucHJvdG90eXBlLmdldEVudHJ5PWZ1bmN0aW9uKHQsZSl7dGhpcy5hc3NlcnROb3RBcHBsaWVkKCk7dmFyIG49dGhpcy5jaGFuZ2VzLmdldChlKTtyZXR1cm4gdm9pZCAwIT09bj91SS5yZXNvbHZlKG4uZG9jdW1lbnQpOnRoaXMuZ2V0RnJvbUNhY2hlKHQsZSl9LFVULnByb3RvdHlwZS5nZXRFbnRyaWVzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZ2V0QWxsRnJvbUNhY2hlKHQsZSl9LFVULnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hc3NlcnROb3RBcHBsaWVkKCksdGhpcy5jaGFuZ2VzQXBwbGllZD0hMCx0aGlzLmFwcGx5Q2hhbmdlcyh0KX0sVVQucHJvdG90eXBlLmFzc2VydE5vdEFwcGxpZWQ9ZnVuY3Rpb24oKXt9LFVUKSx4VD0oRlQucHJvdG90eXBlLmFkZEVudHJ5PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVlQodCkucHV0KEJUKGUpLG4pfSxGVC5wcm90b3R5cGUucmVtb3ZlRW50cnk9ZnVuY3Rpb24odCxlKXt0PVZUKHQpLGU9QlQoZSk7cmV0dXJuIHQuZGVsZXRlKGUpfSxGVC5wcm90b3R5cGUudXBkYXRlTWV0YWRhdGE9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLmdldE1ldGFkYXRhKGUpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQuYnl0ZVNpemUrPW4sci5tZShlLHQpfSl9LEZULnByb3RvdHlwZS5nZXRFbnRyeT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIFZUKHQpLmdldChCVChlKSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gbi55ZShlLHQpfSl9LEZULnByb3RvdHlwZS5nZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIFZUKHQpLmdldChCVChlKSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm57ZG9jdW1lbnQ6bi55ZShlLHQpLHNpemU6YVQodCl9fSl9LEZULnByb3RvdHlwZS5nZXRFbnRyaWVzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxyPUt3O3JldHVybiB0aGlzLnBlKHQsZSxmdW5jdGlvbih0LGUpe2U9bi55ZSh0LGUpO3I9ci5pbnNlcnQodCxlKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gcn0pfSxGVC5wcm90b3R5cGUuRWU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLGk9S3csbz1uZXcgeHcoQ20uY29tcGFyYXRvcik7cmV0dXJuIHRoaXMucGUodCxlLGZ1bmN0aW9uKHQsZSl7dmFyIG49ci55ZSh0LGUpO2k9aS5pbnNlcnQodCxuKSxvPW8uaW5zZXJ0KHQsYVQoZSkpfSkubmV4dChmdW5jdGlvbigpe3JldHVybntkb2N1bWVudHM6aSxUZTpvfX0pfSxGVC5wcm90b3R5cGUucGU9ZnVuY3Rpb24odCxlLGkpe2lmKGUuaXNFbXB0eSgpKXJldHVybiB1SS5yZXNvbHZlKCk7dmFyIG49SURCS2V5UmFuZ2UuYm91bmQoZS5maXJzdCgpLnBhdGgudG9BcnJheSgpLGUubGFzdCgpLnBhdGgudG9BcnJheSgpKSxvPWUuZ2V0SXRlcmF0b3IoKSxzPW8uZ2V0TmV4dCgpO3JldHVybiBWVCh0KS5PdCh7cmFuZ2U6bn0sZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1DbS5mcm9tU2VnbWVudHModCk7cyYmQ20uY29tcGFyYXRvcihzLHIpPDA7KWkocyxudWxsKSxzPW8uZ2V0TmV4dCgpO3MmJnMuaXNFcXVhbChyKSYmKGkocyxlKSxzPW8uaGFzTmV4dCgpP28uZ2V0TmV4dCgpOm51bGwpLHM/bi5DdChzLnBhdGgudG9BcnJheSgpKTpuLmRvbmUoKX0pLm5leHQoZnVuY3Rpb24oKXtmb3IoO3M7KWkocyxudWxsKSxzPW8uaGFzTmV4dCgpP28uZ2V0TmV4dCgpOm51bGx9KX0sRlQucHJvdG90eXBlLmdldERvY3VtZW50c01hdGNoaW5nUXVlcnk9ZnVuY3Rpb24odCxyLGUpe3ZhciBuLGk9dGhpcyxvPUt3LHM9ci5wYXRoLmxlbmd0aCsxLGE9e307cmV0dXJuIGUuaXNFcXVhbChaeS5taW4oKSk/KG49ci5wYXRoLnRvQXJyYXkoKSxhLnJhbmdlPUlEQktleVJhbmdlLmxvd2VyQm91bmQobikpOihuPXIucGF0aC50b0FycmF5KCksZT1VSShlKSxhLnJhbmdlPUlEQktleVJhbmdlLmxvd2VyQm91bmQoW24sZV0sITApLGEuaW5kZXg9WV8uY29sbGVjdGlvblJlYWRUaW1lSW5kZXgpLFZUKHQpLk90KGEsZnVuY3Rpb24odCxlLG4pe3QubGVuZ3RoPT09cyYmKGU9TUkoaS5SLGUpLHIucGF0aC5pc1ByZWZpeE9mKGUua2V5LnBhdGgpP2piKHIsZSkmJihvPW8uaW5zZXJ0KGUua2V5LGUpKTpuLmRvbmUoKSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG99KX0sRlQucHJvdG90eXBlLm5ld0NoYW5nZUJ1ZmZlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IExUKHRoaXMsISF0JiZ0LnRyYWNrUmVtb3ZhbHMpfSxGVC5wcm90b3R5cGUuZ2V0U2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRNZXRhZGF0YSh0KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmJ5dGVTaXplfSl9LEZULnByb3RvdHlwZS5nZXRNZXRhZGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gcVQodCkuZ2V0KFhfLmtleSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gR3koISF0KSx0fSl9LEZULnByb3RvdHlwZS5tZT1mdW5jdGlvbih0LGUpe3JldHVybiBxVCh0KS5wdXQoWF8ua2V5LGUpfSxGVC5wcm90b3R5cGUueWU9ZnVuY3Rpb24odCxlKXtpZihlKXtlPU1JKHRoaXMuUixlKTtpZighZS5pc05vRG9jdW1lbnQoKXx8IWUudmVyc2lvbi5pc0VxdWFsKFp5Lm1pbigpKSlyZXR1cm4gZX1yZXR1cm4gQm0ubmV3SW52YWxpZERvY3VtZW50KHQpfSxGVCksTFQ9KFhpKE1ULE9UPVNuKSxNVC5wcm90b3R5cGUuYXBwbHlDaGFuZ2VzPWZ1bmN0aW9uKGkpe3ZhciBvPXRoaXMscz1bXSxhPTAsdT1uZXcgVncoZnVuY3Rpb24odCxlKXtyZXR1cm4gWXkodC5jYW5vbmljYWxTdHJpbmcoKSxlLmNhbm9uaWNhbFN0cmluZygpKX0pO3JldHVybiB0aGlzLmNoYW5nZXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuLHI9by5BZS5nZXQodCk7ZS5kb2N1bWVudC5pc1ZhbGlkRG9jdW1lbnQoKT8obj1GSShvLkllLlIsZS5kb2N1bWVudCxvLmdldFJlYWRUaW1lKHQpKSx1PXUuYWRkKHQucGF0aC5wb3BMYXN0KCkpLGU9YVQobiksYSs9ZS1yLHMucHVzaChvLkllLmFkZEVudHJ5KGksdCxuKSkpOihhLT1yLG8udHJhY2tSZW1vdmFscz8ocj1GSShvLkllLlIsQm0ubmV3Tm9Eb2N1bWVudCh0LFp5Lm1pbigpKSxvLmdldFJlYWRUaW1lKHQpKSxzLnB1c2goby5JZS5hZGRFbnRyeShpLHQscikpKTpzLnB1c2goby5JZS5yZW1vdmVFbnRyeShpLHQpKSl9KSx1LmZvckVhY2goZnVuY3Rpb24odCl7cy5wdXNoKG8uSWUuVXQuYWRkVG9Db2xsZWN0aW9uUGFyZW50SW5kZXgoaSx0KSl9KSxzLnB1c2godGhpcy5JZS51cGRhdGVNZXRhZGF0YShpLGEpKSx1SS53YWl0Rm9yKHMpfSxNVC5wcm90b3R5cGUuZ2V0RnJvbUNhY2hlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5JZS5nZSh0LGUpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIG4uQWUuc2V0KGUsdC5zaXplKSx0LmRvY3VtZW50fSl9LE1ULnByb3RvdHlwZS5nZXRBbGxGcm9tQ2FjaGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLkllLkVlKHQsZSkubmV4dChmdW5jdGlvbih0KXt2YXIgZT10LmRvY3VtZW50cztyZXR1cm4gdC5UZS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bi5BZS5zZXQodCxlKX0pLGV9KX0sTVQpO2Z1bmN0aW9uIE1UKHQsZSl7dmFyIG49dGhpcztyZXR1cm4obj1PVC5jYWxsKHRoaXMpfHx0aGlzKS5JZT10LG4udHJhY2tSZW1vdmFscz1lLG4uQWU9bmV3IERUKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKCl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaXNFcXVhbChlKX0pLG59ZnVuY3Rpb24gRlQodCxlKXt0aGlzLlI9dCx0aGlzLlV0PWV9ZnVuY3Rpb24gVVQoKXt0aGlzLmNoYW5nZXM9bmV3IERUKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKCl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaXNFcXVhbChlKX0pLHRoaXMuY2hhbmdlc0FwcGxpZWQ9ITF9ZnVuY3Rpb24galQodCxlKXt0aGlzLm1hcEtleUZuPXQsdGhpcy5lcXVhbHNGbj1lLHRoaXMuaW5uZXI9e319ZnVuY3Rpb24gcVQodCl7cmV0dXJuIEFJKHQsWF8uc3RvcmUpfWZ1bmN0aW9uIFZUKHQpe3JldHVybiBBSSh0LFlfLnN0b3JlKX1mdW5jdGlvbiBCVCh0KXtyZXR1cm4gdC5wYXRoLnRvQXJyYXkoKX12YXIgS1Q9KFdULnByb3RvdHlwZS5SdD1mdW5jdGlvbihlLG4sdCxyKXt2YXIgaT10aGlzO0d5KHQ8ciYmMDw9dCYmcjw9MTEpO3ZhciBvPW5ldyBjSSgiY3JlYXRlT3JVcGdyYWRlIixuKTt0PDEmJjE8PXImJihlLmNyZWF0ZU9iamVjdFN0b3JlKFZfLnN0b3JlKSwocz1lKS5jcmVhdGVPYmplY3RTdG9yZShLXy5zdG9yZSx7a2V5UGF0aDpLXy5rZXlQYXRofSkscy5jcmVhdGVPYmplY3RTdG9yZShXXy5zdG9yZSx7a2V5UGF0aDpXXy5rZXlQYXRoLGF1dG9JbmNyZW1lbnQ6ITB9KS5jcmVhdGVJbmRleChXXy51c2VyTXV0YXRpb25zSW5kZXgsV18udXNlck11dGF0aW9uc0tleVBhdGgse3VuaXF1ZTohMH0pLHMuY3JlYXRlT2JqZWN0U3RvcmUoSF8uc3RvcmUpLEhUKGUpLGUuY3JlYXRlT2JqZWN0U3RvcmUoWV8uc3RvcmUpKTt2YXIgcyxhPXVJLnJlc29sdmUoKTtyZXR1cm4gdDwzJiYzPD1yJiYoMCE9PXQmJigocz1lKS5kZWxldGVPYmplY3RTdG9yZSgkXy5zdG9yZSkscy5kZWxldGVPYmplY3RTdG9yZShKXy5zdG9yZSkscy5kZWxldGVPYmplY3RTdG9yZShaXy5zdG9yZSksSFQoZSkpLGE9YS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHQ9by5zdG9yZShaXy5zdG9yZSksZT1uZXcgWl8oMCwwLFp5Lm1pbigpLnRvVGltZXN0YW1wKCksMCksdC5wdXQoWl8ua2V5LGUpO3ZhciB0LGV9KSksdDw0JiY0PD1yJiYoYT0oYT0wIT09dD9hLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gbj1lLChyPW8pLnN0b3JlKFdfLnN0b3JlKS5OdCgpLm5leHQoZnVuY3Rpb24odCl7bi5kZWxldGVPYmplY3RTdG9yZShXXy5zdG9yZSksbi5jcmVhdGVPYmplY3RTdG9yZShXXy5zdG9yZSx7a2V5UGF0aDpXXy5rZXlQYXRoLGF1dG9JbmNyZW1lbnQ6ITB9KS5jcmVhdGVJbmRleChXXy51c2VyTXV0YXRpb25zSW5kZXgsV18udXNlck11dGF0aW9uc0tleVBhdGgse3VuaXF1ZTohMH0pO3ZhciBlPXIuc3RvcmUoV18uc3RvcmUpLHQ9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGUucHV0KHQpfSk7cmV0dXJuIHVJLndhaXRGb3IodCl9KTt2YXIgbixyfSk6YSkubmV4dChmdW5jdGlvbigpe2UuY3JlYXRlT2JqZWN0U3RvcmUoZUkuc3RvcmUse2tleVBhdGg6ZUkua2V5UGF0aH0pfSkpLHQ8NSYmNTw9ciYmKGE9YS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuUmUobyl9KSksdDw2JiY2PD1yJiYoYT1hLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gZS5jcmVhdGVPYmplY3RTdG9yZShYXy5zdG9yZSksaS5iZShvKX0pKSx0PDcmJjc8PXImJihhPWEubmV4dChmdW5jdGlvbigpe3JldHVybiBpLnZlKG8pfSkpLHQ8OCYmODw9ciYmKGE9YS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuUGUoZSxvKX0pKSx0PDkmJjk8PXImJihhPWEubmV4dChmdW5jdGlvbigpe3ZhciB0Oyh0PWUpLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInJlbW90ZURvY3VtZW50Q2hhbmdlcyIpJiZ0LmRlbGV0ZU9iamVjdFN0b3JlKCJyZW1vdGVEb2N1bWVudENoYW5nZXMiKSwodD1uLm9iamVjdFN0b3JlKFlfLnN0b3JlKSkuY3JlYXRlSW5kZXgoWV8ucmVhZFRpbWVJbmRleCxZXy5yZWFkVGltZUluZGV4UGF0aCx7dW5pcXVlOiExfSksdC5jcmVhdGVJbmRleChZXy5jb2xsZWN0aW9uUmVhZFRpbWVJbmRleCxZXy5jb2xsZWN0aW9uUmVhZFRpbWVJbmRleFBhdGgse3VuaXF1ZTohMX0pfSkpLHQ8MTAmJjEwPD1yJiYoYT1hLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gaS5WZShvKX0pKSxhPXQ8MTEmJjExPD1yP2EubmV4dChmdW5jdGlvbigpe2UuY3JlYXRlT2JqZWN0U3RvcmUobkkuc3RvcmUse2tleVBhdGg6bkkua2V5UGF0aH0pLGUuY3JlYXRlT2JqZWN0U3RvcmUockkuc3RvcmUse2tleVBhdGg6ckkua2V5UGF0aH0pfSk6YX0sV1QucHJvdG90eXBlLmJlPWZ1bmN0aW9uKGUpe3ZhciBuPTA7cmV0dXJuIGUuc3RvcmUoWV8uc3RvcmUpLk90KGZ1bmN0aW9uKHQsZSl7bis9YVQoZSl9KS5uZXh0KGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFhfKG4pO3JldHVybiBlLnN0b3JlKFhfLnN0b3JlKS5wdXQoWF8ua2V5LHQpfSl9LFdULnByb3RvdHlwZS5SZT1mdW5jdGlvbihuKXt2YXIgcj10aGlzLHQ9bi5zdG9yZShLXy5zdG9yZSksaT1uLnN0b3JlKFdfLnN0b3JlKTtyZXR1cm4gdC5OdCgpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHVJLmZvckVhY2godCxmdW5jdGlvbihlKXt2YXIgdD1JREJLZXlSYW5nZS5ib3VuZChbZS51c2VySWQsLTFdLFtlLnVzZXJJZCxlLmxhc3RBY2tub3dsZWRnZWRCYXRjaElkXSk7cmV0dXJuIGkuTnQoV18udXNlck11dGF0aW9uc0luZGV4LHQpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHVJLmZvckVhY2godCxmdW5jdGlvbih0KXtHeSh0LnVzZXJJZD09PWUudXNlcklkKTt0PUJJKHIuUix0KTtyZXR1cm4gc1QobixlLnVzZXJJZCx0KS5uZXh0KGZ1bmN0aW9uKCl7fSl9KX0pfSl9KX0sV1QucHJvdG90eXBlLnZlPWZ1bmN0aW9uKHQpe3ZhciBvPXQuc3RvcmUoJF8uc3RvcmUpLGU9dC5zdG9yZShZXy5zdG9yZSk7cmV0dXJuIHQuc3RvcmUoWl8uc3RvcmUpLmdldChaXy5rZXkpLm5leHQoZnVuY3Rpb24ocil7dmFyIGk9W107cmV0dXJuIGUuT3QoZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgYW0odCksdD1bMCxVXyhuKV07aS5wdXNoKG8uZ2V0KHQpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQ/dUkucmVzb2x2ZSgpOm8ucHV0KG5ldyAkXygwLFVfKG4pLHIuaGlnaGVzdExpc3RlblNlcXVlbmNlTnVtYmVyKSl9KSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHVJLndhaXRGb3IoaSl9KX0pfSxXVC5wcm90b3R5cGUuUGU9ZnVuY3Rpb24odCxlKXt0LmNyZWF0ZU9iamVjdFN0b3JlKHRJLnN0b3JlLHtrZXlQYXRoOnRJLmtleVBhdGh9KTtmdW5jdGlvbiByKHQpe2lmKGkuYWRkKHQpKXt2YXIgZT10Lmxhc3RTZWdtZW50KCksdD10LnBvcExhc3QoKTtyZXR1cm4gbi5wdXQoe2NvbGxlY3Rpb25JZDplLHBhcmVudDpVXyh0KX0pfX12YXIgbj1lLnN0b3JlKHRJLnN0b3JlKSxpPW5ldyBKSTtyZXR1cm4gZS5zdG9yZShZXy5zdG9yZSkuT3Qoe2t0OiEwfSxmdW5jdGlvbih0LGUpe3Q9bmV3IGFtKHQpO3JldHVybiByKHQucG9wTGFzdCgpKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gZS5zdG9yZShIXy5zdG9yZSkuT3Qoe2t0OiEwfSxmdW5jdGlvbih0LGUpe3RbMF07dmFyIG49dFsxXSxuPSh0WzJdLHFfKG4pKTtyZXR1cm4gcihuLnBvcExhc3QoKSl9KX0pfSxXVC5wcm90b3R5cGUuVmU9ZnVuY3Rpb24odCl7dmFyIG49dGhpcyxyPXQuc3RvcmUoSl8uc3RvcmUpO3JldHVybiByLk90KGZ1bmN0aW9uKHQsZSl7ZT1LSShlKSxlPVdJKG4uUixlKTtyZXR1cm4gci5wdXQoZSl9KX0sV1QpO2Z1bmN0aW9uIFdUKHQpe3RoaXMuUj10fWZ1bmN0aW9uIEhUKHQpe3QuY3JlYXRlT2JqZWN0U3RvcmUoJF8uc3RvcmUse2tleVBhdGg6JF8ua2V5UGF0aH0pLmNyZWF0ZUluZGV4KCRfLmRvY3VtZW50VGFyZ2V0c0luZGV4LCRfLmRvY3VtZW50VGFyZ2V0c0tleVBhdGgse3VuaXF1ZTohMH0pLHQuY3JlYXRlT2JqZWN0U3RvcmUoSl8uc3RvcmUse2tleVBhdGg6Sl8ua2V5UGF0aH0pLmNyZWF0ZUluZGV4KEpfLnF1ZXJ5VGFyZ2V0c0luZGV4TmFtZSxKXy5xdWVyeVRhcmdldHNLZXlQYXRoLHt1bmlxdWU6ITB9KSx0LmNyZWF0ZU9iamVjdFN0b3JlKFpfLnN0b3JlKX12YXIgR1Q9IkZhaWxlZCB0byBvYnRhaW4gZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgcGVyc2lzdGVuY2UgbGF5ZXIuIFRvIGFsbG93IHNoYXJlZCBhY2Nlc3MsIG11bHRpLXRhYiBzeW5jaHJvbml6YXRpb24gaGFzIHRvIGJlIGVuYWJsZWQgaW4gYWxsIHRhYnMuIElmIHlvdSBhcmUgdXNpbmcgYGV4cGVyaW1lbnRhbEZvcmNlT3duaW5nVGFiOnRydWVgLCBtYWtlIHN1cmUgdGhhdCBvbmx5IG9uZSB0YWIgaGFzIHBlcnNpc3RlbmNlIGVuYWJsZWQgYXQgYW55IGdpdmVuIHRpbWUuIix6VD0oUVQucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5qZSgpLnRoZW4oZnVuY3Rpb24oKXtpZighZS5pc1ByaW1hcnkmJiFlLmFsbG93VGFiU3luY2hyb25pemF0aW9uKXRocm93IG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLEdUKTtyZXR1cm4gZS5XZSgpLGUuR2UoKSxlLnplKCksZS5ydW5UcmFuc2FjdGlvbigiZ2V0SGlnaGVzdExpc3RlblNlcXVlbmNlTnVtYmVyIiwicmVhZG9ubHkiLGZ1bmN0aW9uKHQpe3JldHVybiBlLnFlLmdldEhpZ2hlc3RTZXF1ZW5jZU51bWJlcih0KX0pfSkudGhlbihmdW5jdGlvbih0KXtlLk5lPW5ldyBEeSh0LGUuRGUpfSkudGhlbihmdW5jdGlvbigpe2UueGU9ITB9KS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5CZSYmZS5CZS5jbG9zZSgpLFByb21pc2UucmVqZWN0KHQpfSl9LFFULnByb3RvdHlwZS5IZT1mdW5jdGlvbihuKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLk1lPWZ1bmN0aW9uKGUpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdGFydGVkP1syLG4oZSldOlsyXX0pfSl9LG4odGhpcy5pc1ByaW1hcnkpfSxRVC5wcm90b3R5cGUuc2V0RGF0YWJhc2VEZWxldGVkTGlzdGVuZXI9ZnVuY3Rpb24obil7dmFyIHQ9dGhpczt0aGlzLkJlLnZ0KGZ1bmN0aW9uKGUpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBudWxsPT09ZS5uZXdWZXJzaW9uP1s0LG4oKV06WzMsMl07Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9KX0sUVQucHJvdG90eXBlLnNldE5ldHdvcmtFbmFibGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5uZXR3b3JrRW5hYmxlZCE9PXQmJih0aGlzLm5ldHdvcmtFbmFibGVkPXQsdGhpcy5TZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKGUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuc3RhcnRlZD9bNCx0aGlzLmplKCldOlszLDJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSkpfSxRVC5wcm90b3R5cGUuamU9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLnJ1blRyYW5zYWN0aW9uKCJ1cGRhdGVDbGllbnRNZXRhZGF0YUFuZFRyeUJlY29tZVByaW1hcnkiLCJyZWFkd3JpdGUiLGZ1bmN0aW9uKGUpe3JldHVybiBYVChlKS5wdXQobmV3IGVJKG4uY2xpZW50SWQsRGF0ZS5ub3coKSxuLm5ldHdvcmtFbmFibGVkLG4uaW5Gb3JlZ3JvdW5kKSkubmV4dChmdW5jdGlvbigpe2lmKG4uaXNQcmltYXJ5KXJldHVybiBuLkplKGUpLm5leHQoZnVuY3Rpb24odCl7dHx8KG4uaXNQcmltYXJ5PSExLG4uU2UuZW5xdWV1ZVJldHJ5YWJsZShmdW5jdGlvbigpe3JldHVybiBuLk1lKCExKX0pKX0pfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBuLlllKGUpfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gbi5pc1ByaW1hcnkmJiF0P24uWGUoZSkubmV4dChmdW5jdGlvbigpe3JldHVybiExfSk6ISF0JiZuLlplKGUpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSl9KS5jYXRjaChmdW5jdGlvbih0KXtpZihiSSh0KSlyZXR1cm4gVnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiRmFpbGVkIHRvIGV4dGVuZCBvd25lciBsZWFzZTogIix0KSxuLmlzUHJpbWFyeTtpZighbi5hbGxvd1RhYlN5bmNocm9uaXphdGlvbil0aHJvdyB0O3JldHVybiBWeSgiSW5kZXhlZERiUGVyc2lzdGVuY2UiLCJSZWxlYXNpbmcgb3duZXIgbGVhc2UgYWZ0ZXIgZXJyb3IgZHVyaW5nIGxlYXNlIHJlZnJlc2giLHQpLCExfSkudGhlbihmdW5jdGlvbih0KXtuLmlzUHJpbWFyeSE9PXQmJm4uU2UuZW5xdWV1ZVJldHJ5YWJsZShmdW5jdGlvbigpe3JldHVybiBuLk1lKHQpfSksbi5pc1ByaW1hcnk9dH0pfSxRVC5wcm90b3R5cGUuSmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gWVQodCkuZ2V0KFZfLmtleSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdUkucmVzb2x2ZShlLnRuKHQpKX0pfSxRVC5wcm90b3R5cGUuZW49ZnVuY3Rpb24odCl7cmV0dXJuIFhUKHQpLmRlbGV0ZSh0aGlzLmNsaWVudElkKX0sUVQucHJvdG90eXBlLm5uPWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG89dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiF0aGlzLmlzUHJpbWFyeXx8dGhpcy5zbih0aGlzLiRlLDE4ZTUpP1szLDJdOih0aGlzLiRlPURhdGUubm93KCksWzQsdGhpcy5ydW5UcmFuc2FjdGlvbigibWF5YmVHYXJiYWdlQ29sbGVjdE11bHRpQ2xpZW50U3RhdGUiLCJyZWFkd3JpdGUtcHJpbWFyeSIsZnVuY3Rpb24odCl7dmFyIHI9QUkodCxlSS5zdG9yZSk7cmV0dXJuIHIuTnQoKS5uZXh0KGZ1bmN0aW9uKHQpe3ZhciBlPW8ucm4odCwxOGU1KSxuPXQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybi0xPT09ZS5pbmRleE9mKHQpfSk7cmV0dXJuIHVJLmZvckVhY2gobixmdW5jdGlvbih0KXtyZXR1cm4gci5kZWxldGUodC5jbGllbnRJZCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG59KX0pfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm5bXX0pXSk7Y2FzZSAxOmlmKGU9dC5zZW50KCksdGhpcy5LZSlmb3Iobj0wLHI9ZTtuPHIubGVuZ3RoO24rKylpPXJbbl0sdGhpcy5LZS5yZW1vdmVJdGVtKHRoaXMub24oaS5jbGllbnRJZCkpO3QubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9LFFULnByb3RvdHlwZS56ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5PZT10aGlzLlNlLmVucXVldWVBZnRlckRlbGF5KCJjbGllbnRfbWV0YWRhdGFfcmVmcmVzaCIsNGUzLGZ1bmN0aW9uKCl7cmV0dXJuIHQuamUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQubm4oKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC56ZSgpfSl9KX0sUVQucHJvdG90eXBlLnRuPWZ1bmN0aW9uKHQpe3JldHVybiEhdCYmdC5vd25lcklkPT09dGhpcy5jbGllbnRJZH0sUVQucHJvdG90eXBlLlllPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXM7cmV0dXJuIHRoaXMuQ2U/dUkucmVzb2x2ZSghMCk6WVQoZSkuZ2V0KFZfLmtleSkubmV4dChmdW5jdGlvbih0KXtpZihudWxsIT09dCYmci5zbih0LmxlYXNlVGltZXN0YW1wTXMsNWUzKSYmIXIuY24odC5vd25lcklkKSl7aWYoci50bih0KSYmci5uZXR3b3JrRW5hYmxlZClyZXR1cm4hMDtpZighci50bih0KSl7aWYoIXQuYWxsb3dUYWJTeW5jaHJvbml6YXRpb24pdGhyb3cgbmV3IEZ5KE15LkZBSUxFRF9QUkVDT05ESVRJT04sR1QpO3JldHVybiExfX1yZXR1cm4hKCFyLm5ldHdvcmtFbmFibGVkfHwhci5pbkZvcmVncm91bmQpfHxYVChlKS5OdCgpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXIucm4odCw1ZTMpLmZpbmQoZnVuY3Rpb24odCl7aWYoci5jbGllbnRJZCE9PXQuY2xpZW50SWQpe3ZhciBlPSFyLm5ldHdvcmtFbmFibGVkJiZ0Lm5ldHdvcmtFbmFibGVkLG49IXIuaW5Gb3JlZ3JvdW5kJiZ0LmluRm9yZWdyb3VuZCx0PXIubmV0d29ya0VuYWJsZWQ9PT10Lm5ldHdvcmtFbmFibGVkO2lmKGV8fG4mJnQpcmV0dXJuITB9cmV0dXJuITF9KX0pfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gci5pc1ByaW1hcnkhPT10JiZWeSgiSW5kZXhlZERiUGVyc2lzdGVuY2UiLCJDbGllbnQgIisodD8iaXMiOiJpcyBub3QiKSsiIGVsaWdpYmxlIGZvciBhIHByaW1hcnkgbGVhc2UuIiksdH0pfSxRVC5wcm90b3R5cGUuc2h1dGRvd249ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG49dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnhlPSExLHRoaXMudW4oKSx0aGlzLk9lJiYodGhpcy5PZS5jYW5jZWwoKSx0aGlzLk9lPW51bGwpLHRoaXMuYW4oKSx0aGlzLmhuKCksWzQsdGhpcy5CZS5ydW5UcmFuc2FjdGlvbigic2h1dGRvd24iLCJyZWFkd3JpdGUiLFtWXy5zdG9yZSxlSS5zdG9yZV0sZnVuY3Rpb24odCl7dmFyIGU9bmV3IENJKHQsRHkubyk7cmV0dXJuIG4uWGUoZSkubmV4dChmdW5jdGlvbigpe3JldHVybiBuLmVuKGUpfSl9KV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSx0aGlzLkJlLmNsb3NlKCksdGhpcy5sbigpLFsyXX19KX0pfSxRVC5wcm90b3R5cGUucm49ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gbi5zbih0LnVwZGF0ZVRpbWVNcyxlKSYmIW4uY24odC5jbGllbnRJZCl9KX0sUVQucHJvdG90eXBlLmZuPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5ydW5UcmFuc2FjdGlvbigiZ2V0QWN0aXZlQ2xpZW50cyIsInJlYWRvbmx5IixmdW5jdGlvbih0KXtyZXR1cm4gWFQodCkuTnQoKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBlLnJuKHQsMThlNSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsaWVudElkfSl9KX0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUVQucHJvdG90eXBlLCJzdGFydGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksUVQucHJvdG90eXBlLmdldE11dGF0aW9uUXVldWU9ZnVuY3Rpb24odCl7cmV0dXJuIHVULkt0KHQsdGhpcy5SLHRoaXMuVXQsdGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZSl9LFFULnByb3RvdHlwZS5nZXRUYXJnZXRDYWNoZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnFlfSxRVC5wcm90b3R5cGUuZ2V0UmVtb3RlRG9jdW1lbnRDYWNoZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlVlfSxRVC5wcm90b3R5cGUuZ2V0SW5kZXhNYW5hZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVXR9LFFULnByb3RvdHlwZS5nZXRCdW5kbGVDYWNoZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlFlfSxRVC5wcm90b3R5cGUucnVuVHJhbnNhY3Rpb249ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPXRoaXM7VnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiU3RhcnRpbmcgdHJhbnNhY3Rpb246IixlKTt2YXIgbyx0PSJyZWFkb25seSI9PT1uPyJyZWFkb25seSI6InJlYWR3cml0ZSI7cmV0dXJuIHRoaXMuQmUucnVuVHJhbnNhY3Rpb24oZSx0LG9JLGZ1bmN0aW9uKHQpe3JldHVybiBvPW5ldyBDSSh0LGkuTmU/aS5OZS5uZXh0KCk6RHkubyksInJlYWR3cml0ZS1wcmltYXJ5Ij09PW4/aS5KZShvKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiEhdHx8aS5ZZShvKX0pLm5leHQoZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgQnkoIkZhaWxlZCB0byBvYnRhaW4gcHJpbWFyeSBsZWFzZSBmb3IgYWN0aW9uICciK2UrIicuIiksaS5pc1ByaW1hcnk9ITEsaS5TZS5lbnF1ZXVlUmV0cnlhYmxlKGZ1bmN0aW9uKCl7cmV0dXJuIGkuTWUoITEpfSksbmV3IEZ5KE15LkZBSUxFRF9QUkVDT05ESVRJT04sc0kpO3JldHVybiByKG8pfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gaS5aZShvKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHR9KX0pOmkuZG4obykubmV4dChmdW5jdGlvbigpe3JldHVybiByKG8pfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBvLnJhaXNlT25Db21taXR0ZWRFdmVudCgpLHR9KX0sUVQucHJvdG90eXBlLmRuPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIFlUKHQpLmdldChWXy5rZXkpLm5leHQoZnVuY3Rpb24odCl7aWYobnVsbCE9PXQmJmUuc24odC5sZWFzZVRpbWVzdGFtcE1zLDVlMykmJiFlLmNuKHQub3duZXJJZCkmJiFlLnRuKHQpJiYhKGUuQ2V8fGUuYWxsb3dUYWJTeW5jaHJvbml6YXRpb24mJnQuYWxsb3dUYWJTeW5jaHJvbml6YXRpb24pKXRocm93IG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLEdUKX0pfSxRVC5wcm90b3R5cGUuWmU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFZfKHRoaXMuY2xpZW50SWQsdGhpcy5hbGxvd1RhYlN5bmNocm9uaXphdGlvbixEYXRlLm5vdygpKTtyZXR1cm4gWVQodCkucHV0KFZfLmtleSxlKX0sUVQueXQ9ZnVuY3Rpb24oKXtyZXR1cm4gaEkueXQoKX0sUVQucHJvdG90eXBlLlhlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1ZVCh0KTtyZXR1cm4gbi5nZXQoVl8ua2V5KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBlLnRuKHQpPyhWeSgiSW5kZXhlZERiUGVyc2lzdGVuY2UiLCJSZWxlYXNpbmcgcHJpbWFyeSBsZWFzZS4iKSxuLmRlbGV0ZShWXy5rZXkpKTp1SS5yZXNvbHZlKCl9KX0sUVQucHJvdG90eXBlLnNuPWZ1bmN0aW9uKHQsZSl7dmFyIG49RGF0ZS5ub3coKTtyZXR1cm4hKHQ8bi1lfHxuPHQmJihCeSgiRGV0ZWN0ZWQgYW4gdXBkYXRlIHRpbWUgdGhhdCBpcyBpbiB0aGUgZnV0dXJlOiAiK3QrIiA+ICIrbiksMSkpfSxRVC5wcm90b3R5cGUuV2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO251bGwhPT10aGlzLmRvY3VtZW50JiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyJiYodGhpcy5rZT1mdW5jdGlvbigpe3QuU2UuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiB0LmluRm9yZWdyb3VuZD0idmlzaWJsZSI9PT10LmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSx0LmplKCl9KX0sdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLmtlKSx0aGlzLmluRm9yZWdyb3VuZD0idmlzaWJsZSI9PT10aGlzLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSl9LFFULnByb3RvdHlwZS5hbj1mdW5jdGlvbigpe3RoaXMua2UmJih0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHRoaXMua2UpLHRoaXMua2U9bnVsbCl9LFFULnByb3RvdHlwZS5HZT1mdW5jdGlvbigpe3ZhciB0LGU9dGhpczsiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09PSh0PXRoaXMud2luZG93KXx8dm9pZCAwPT09dD92b2lkIDA6dC5hZGRFdmVudExpc3RlbmVyKSYmKHRoaXMuRmU9ZnVuY3Rpb24oKXtlLnVuKCksZS5TZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2h1dGRvd24oKX0pfSx0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLHRoaXMuRmUpKX0sUVQucHJvdG90eXBlLmhuPWZ1bmN0aW9uKCl7dGhpcy5GZSYmKHRoaXMud2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInVubG9hZCIsdGhpcy5GZSksdGhpcy5GZT1udWxsKX0sUVQucHJvdG90eXBlLmNuPWZ1bmN0aW9uKHQpe3RyeXt2YXIgZT1udWxsIT09KG51bGw9PT0oZT10aGlzLktlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5nZXRJdGVtKHRoaXMub24odCkpKTtyZXR1cm4gVnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiQ2xpZW50ICciK3QrIicgIisoZT8iaXMiOiJpcyBub3QiKSsiIHpvbWJpZWQgaW4gTG9jYWxTdG9yYWdlIiksZX1jYXRjaCh0KXtyZXR1cm4gQnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiRmFpbGVkIHRvIGdldCB6b21iaWVkIGNsaWVudCBpZC4iLHQpLCExfX0sUVQucHJvdG90eXBlLnVuPWZ1bmN0aW9uKCl7aWYodGhpcy5LZSl0cnl7dGhpcy5LZS5zZXRJdGVtKHRoaXMub24odGhpcy5jbGllbnRJZCksU3RyaW5nKERhdGUubm93KCkpKX1jYXRjaCh0KXtCeSgiRmFpbGVkIHRvIHNldCB6b21iaWUgY2xpZW50IGlkLiIsdCl9fSxRVC5wcm90b3R5cGUubG49ZnVuY3Rpb24oKXtpZih0aGlzLktlKXRyeXt0aGlzLktlLnJlbW92ZUl0ZW0odGhpcy5vbih0aGlzLmNsaWVudElkKSl9Y2F0Y2godCl7fX0sUVQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQpe3JldHVybiJmaXJlc3RvcmVfem9tYmllXyIrdGhpcy5wZXJzaXN0ZW5jZUtleSsiXyIrdH0sUVQpO2Z1bmN0aW9uIFFUKHQsZSxuLHIsaSxvLHMsYSx1LGMpe2lmKHRoaXMuYWxsb3dUYWJTeW5jaHJvbml6YXRpb249dCx0aGlzLnBlcnNpc3RlbmNlS2V5PWUsdGhpcy5jbGllbnRJZD1uLHRoaXMuU2U9aSx0aGlzLndpbmRvdz1vLHRoaXMuZG9jdW1lbnQ9cyx0aGlzLkRlPXUsdGhpcy5DZT1jLHRoaXMuTmU9bnVsbCx0aGlzLnhlPSExLHRoaXMuaXNQcmltYXJ5PSExLHRoaXMubmV0d29ya0VuYWJsZWQ9ITAsdGhpcy5GZT1udWxsLHRoaXMuaW5Gb3JlZ3JvdW5kPSExLHRoaXMua2U9bnVsbCx0aGlzLk9lPW51bGwsdGhpcy4kZT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksdGhpcy5NZT1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LCFRVC55dCgpKXRocm93IG5ldyBGeShNeS5VTklNUExFTUVOVEVELCJUaGlzIHBsYXRmb3JtIGlzIGVpdGhlciBtaXNzaW5nIEluZGV4ZWREQiBvciBpcyBrbm93biB0byBoYXZlIGFuIGluY29tcGxldGUgaW1wbGVtZW50YXRpb24uIE9mZmxpbmUgcGVyc2lzdGVuY2UgaGFzIGJlZW4gZGlzYWJsZWQuIik7dGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZT1uZXcgQ1QodGhpcyxyKSx0aGlzLkxlPWUrIm1haW4iLHRoaXMuUj1uZXcgT0koYSksdGhpcy5CZT1uZXcgaEkodGhpcy5MZSwxMSxuZXcgS1QodGhpcy5SKSksdGhpcy5xZT1uZXcgdlQodGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZSx0aGlzLlIpLHRoaXMuVXQ9bmV3ICRJLHRoaXMuVWU9KGU9dGhpcy5SLGE9dGhpcy5VdCxuZXcgeFQoZSxhKSksdGhpcy5RZT1uZXcgR0ksdGhpcy53aW5kb3cmJnRoaXMud2luZG93LmxvY2FsU3RvcmFnZT90aGlzLktlPXRoaXMud2luZG93LmxvY2FsU3RvcmFnZToodGhpcy5LZT1udWxsLCExPT09YyYmQnkoIkluZGV4ZWREYlBlcnNpc3RlbmNlIiwiTG9jYWxTdG9yYWdlIGlzIHVuYXZhaWxhYmxlLiBBcyBhIHJlc3VsdCwgcGVyc2lzdGVuY2UgbWF5IG5vdCB3b3JrIHJlbGlhYmx5LiBJbiBwYXJ0aWN1bGFyIGVuYWJsZVBlcnNpc3RlbmNlKCkgY291bGQgZmFpbCBpbW1lZGlhdGVseSBhZnRlciByZWZyZXNoaW5nIHRoZSBwYWdlLiIpKX1mdW5jdGlvbiBZVCh0KXtyZXR1cm4gQUkodCxWXy5zdG9yZSl9ZnVuY3Rpb24gWFQodCl7cmV0dXJuIEFJKHQsZUkuc3RvcmUpfWZ1bmN0aW9uIEpUKHQsZSl7dmFyIG49dC5wcm9qZWN0SWQ7cmV0dXJuIHQuaXNEZWZhdWx0RGF0YWJhc2V8fChuKz0iLiIrdC5kYXRhYmFzZSksImZpcmVzdG9yZS8iK2UrIi8iK24rIi8ifWZ1bmN0aW9uICRUKHQsZSl7dGhpcy5wcm9ncmVzcz10LHRoaXMud249ZX12YXIgWlQ9KHNFLnByb3RvdHlwZS5tbj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7cmV0dXJuIHRoaXMuX24uZ2V0QWxsTXV0YXRpb25CYXRjaGVzQWZmZWN0aW5nRG9jdW1lbnRLZXkoZSxuKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiByLnluKGUsbix0KX0pfSxzRS5wcm90b3R5cGUueW49ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLlVlLmdldEVudHJ5KHQsZSkubmV4dChmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPXI7ZTxuLmxlbmd0aDtlKyspbltlXS5hcHBseVRvTG9jYWxWaWV3KHQpO3JldHVybiB0fSl9LHNFLnByb3RvdHlwZS5nbj1mdW5jdGlvbih0LGkpe3QuZm9yRWFjaChmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0wLHI9aTtuPHIubGVuZ3RoO24rKylyW25dLmFwcGx5VG9Mb2NhbFZpZXcoZSl9KX0sc0UucHJvdG90eXBlLnBuPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5VZS5nZXRFbnRyaWVzKGUsdCkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gbi5FbihlLHQpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gdH0pfSl9LHNFLnByb3RvdHlwZS5Fbj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMuX24uZ2V0QWxsTXV0YXRpb25CYXRjaGVzQWZmZWN0aW5nRG9jdW1lbnRLZXlzKHQsZSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gbi5nbihlLHQpfSl9LHNFLnByb3RvdHlwZS5nZXREb2N1bWVudHNNYXRjaGluZ1F1ZXJ5PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gcj1lLENtLmlzRG9jdW1lbnRLZXkoci5wYXRoKSYmbnVsbD09PXIuY29sbGVjdGlvbkdyb3VwJiYwPT09ci5maWx0ZXJzLmxlbmd0aD90aGlzLlRuKHQsZS5wYXRoKTpPYihlKT90aGlzLkluKHQsZSxuKTp0aGlzLkFuKHQsZSxuKTt2YXIgcn0sc0UucHJvdG90eXBlLlRuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMubW4odCxuZXcgQ20oZSkpLm5leHQoZnVuY3Rpb24odCl7dmFyIGU9R3c7cmV0dXJuIGU9dC5pc0ZvdW5kRG9jdW1lbnQoKT9lLmluc2VydCh0LmtleSx0KTplfSl9LHNFLnByb3RvdHlwZS5Jbj1mdW5jdGlvbihuLHIsaSl7dmFyIG89dGhpcyxzPXIuY29sbGVjdGlvbkdyb3VwLGE9R3c7cmV0dXJuIHRoaXMuVXQuZ2V0Q29sbGVjdGlvblBhcmVudHMobixzKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB1SS5mb3JFYWNoKHQsZnVuY3Rpb24odCl7dmFyIGUsZT0oZT1yLHQ9dC5jaGlsZChzKSxuZXcgU2IodCxudWxsLGUuZXhwbGljaXRPcmRlckJ5LnNsaWNlKCksZS5maWx0ZXJzLnNsaWNlKCksZS5saW1pdCxlLmxpbWl0VHlwZSxlLnN0YXJ0QXQsZS5lbmRBdCkpO3JldHVybiBvLkFuKG4sZSxpKS5uZXh0KGZ1bmN0aW9uKHQpe3QuZm9yRWFjaChmdW5jdGlvbih0LGUpe2E9YS5pbnNlcnQodCxlKX0pfSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGF9KX0pfSxzRS5wcm90b3R5cGUuQW49ZnVuY3Rpb24oZSxuLHQpe3ZhciBjLGgscj10aGlzO3JldHVybiB0aGlzLlVlLmdldERvY3VtZW50c01hdGNoaW5nUXVlcnkoZSxuLHQpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIGM9dCxyLl9uLmdldEFsbE11dGF0aW9uQmF0Y2hlc0FmZmVjdGluZ1F1ZXJ5KGUsbil9KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBoPXQsci5SbihlLGgsYykubmV4dChmdW5jdGlvbih0KXtjPXQ7Zm9yKHZhciBlPTAsbj1oO2U8bi5sZW5ndGg7ZSsrKWZvcih2YXIgcj1uW2VdLGk9MCxvPXIubXV0YXRpb25zO2k8by5sZW5ndGg7aSsrKXt2YXIgcz1vW2ldLGE9cy5rZXksdT1jLmdldChhKTtudWxsPT11JiYodT1CbS5uZXdJbnZhbGlkRG9jdW1lbnQoYSksYz1jLmluc2VydChhLHUpKSxmdyhzLHUsci5sb2NhbFdyaXRlVGltZSksdS5pc0ZvdW5kRG9jdW1lbnQoKXx8KGM9Yy5yZW1vdmUoYSkpfX0pfSkubmV4dChmdW5jdGlvbigpe3JldHVybiBjLmZvckVhY2goZnVuY3Rpb24odCxlKXtqYihuLGUpfHwoYz1jLnJlbW92ZSh0KSl9KSxjfSl9LHNFLnByb3RvdHlwZS5Sbj1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPVl3KCksaT0wLG89ZTtpPG8ubGVuZ3RoO2krKylmb3IodmFyIHM9MCxhPW9baV0ubXV0YXRpb25zO3M8YS5sZW5ndGg7cysrKXt2YXIgdT1hW3NdO3UgaW5zdGFuY2VvZiBtdyYmbnVsbD09PW4uZ2V0KHUua2V5KSYmKHI9ci5hZGQodS5rZXkpKX12YXIgYz1uO3JldHVybiB0aGlzLlVlLmdldEVudHJpZXModCxyKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCxlKXtlLmlzRm91bmREb2N1bWVudCgpJiYoYz1jLmluc2VydCh0LGUpKX0pLGN9KX0sc0UpLHRFPShvRS5Qbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1ZdygpLHI9WXcoKSxpPTAsbz1lLmRvY0NoYW5nZXM7aTxvLmxlbmd0aDtpKyspe3ZhciBzPW9baV07c3dpdGNoKHMudHlwZSl7Y2FzZSAwOm49bi5hZGQocy5kb2Mua2V5KTticmVhaztjYXNlIDE6cj1yLmFkZChzLmRvYy5rZXkpfX1yZXR1cm4gbmV3IG9FKHQsZS5mcm9tQ2FjaGUsbixyKX0sb0UpLGVFPShpRS5wcm90b3R5cGUuVm49ZnVuY3Rpb24odCl7dGhpcy5Tbj10fSxpRS5wcm90b3R5cGUuZ2V0RG9jdW1lbnRzTWF0Y2hpbmdRdWVyeT1mdW5jdGlvbihlLHIsaSxvKXt2YXIgcz10aGlzO3JldHVybiAwPT09ci5maWx0ZXJzLmxlbmd0aCYmbnVsbD09PXIubGltaXQmJm51bGw9PXIuc3RhcnRBdCYmbnVsbD09ci5lbmRBdCYmKDA9PT1yLmV4cGxpY2l0T3JkZXJCeS5sZW5ndGh8fDE9PT1yLmV4cGxpY2l0T3JkZXJCeS5sZW5ndGgmJnIuZXhwbGljaXRPcmRlckJ5WzBdLmZpZWxkLmlzS2V5RmllbGQoKSl8fGkuaXNFcXVhbChaeS5taW4oKSk/dGhpcy5EbihlLHIpOnRoaXMuU24ucG4oZSxvKS5uZXh0KGZ1bmN0aW9uKHQpe3ZhciBuPXMuQ24ocix0KTtyZXR1cm4oQWIocil8fGtiKHIpKSYmcy5ObihyLmxpbWl0VHlwZSxuLG8saSk/cy5EbihlLHIpOihxeSgpPD1hcy5ERUJVRyYmVnkoIlF1ZXJ5RW5naW5lIiwiUmUtdXNpbmcgcHJldmlvdXMgcmVzdWx0IGZyb20gJXMgdG8gZXhlY3V0ZSBxdWVyeTogJXMiLGkudG9TdHJpbmcoKSxVYihyKSkscy5Tbi5nZXREb2N1bWVudHNNYXRjaGluZ1F1ZXJ5KGUscixpKS5uZXh0KGZ1bmN0aW9uKGUpe3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odCl7ZT1lLmluc2VydCh0LmtleSx0KX0pLGV9KSl9KX0saUUucHJvdG90eXBlLkNuPWZ1bmN0aW9uKG4sdCl7dmFyIHI9bmV3IFZ3KHFiKG4pKTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7amIobixlKSYmKHI9ci5hZGQoZSkpfSkscn0saUUucHJvdG90eXBlLk5uPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKG4uc2l6ZSE9PWUuc2l6ZSlyZXR1cm4hMDtlPSJGIj09PXQ/ZS5sYXN0KCk6ZS5maXJzdCgpO3JldHVybiEhZSYmKGUuaGFzUGVuZGluZ1dyaXRlc3x8MDxlLnZlcnNpb24uY29tcGFyZVRvKHIpKX0saUUucHJvdG90eXBlLkRuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHF5KCk8PWFzLkRFQlVHJiZWeSgiUXVlcnlFbmdpbmUiLCJVc2luZyBmdWxsIGNvbGxlY3Rpb24gc2NhbiB0byBleGVjdXRlIHF1ZXJ5OiIsVWIoZSkpLHRoaXMuU24uZ2V0RG9jdW1lbnRzTWF0Y2hpbmdRdWVyeSh0LGUsWnkubWluKCkpfSxpRSksbkU9KHJFLnByb3RvdHlwZS5jb2xsZWN0R2FyYmFnZT1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJDb2xsZWN0IGdhcmJhZ2UiLCJyZWFkd3JpdGUtcHJpbWFyeSIsZnVuY3Rpb24odCl7cmV0dXJuIGUuY29sbGVjdCh0LG4uRm4pfSl9LHJFKTtmdW5jdGlvbiByRSh0LGUsbixyKXt0aGlzLnBlcnNpc3RlbmNlPXQsdGhpcy54bj1lLHRoaXMuUj1yLHRoaXMuRm49bmV3IHh3KFl5KSx0aGlzLmtuPW5ldyBEVChHbSx6bSksdGhpcy5Pbj1aeS5taW4oKSx0aGlzLl9uPXQuZ2V0TXV0YXRpb25RdWV1ZShuKSx0aGlzLiRuPXQuZ2V0UmVtb3RlRG9jdW1lbnRDYWNoZSgpLHRoaXMucWU9dC5nZXRUYXJnZXRDYWNoZSgpLHRoaXMuTW49bmV3IFpUKHRoaXMuJG4sdGhpcy5fbix0aGlzLnBlcnNpc3RlbmNlLmdldEluZGV4TWFuYWdlcigpKSx0aGlzLlFlPXQuZ2V0QnVuZGxlQ2FjaGUoKSx0aGlzLnhuLlZuKHRoaXMuTW4pfWZ1bmN0aW9uIGlFKCl7fWZ1bmN0aW9uIG9FKHQsZSxuLHIpe3RoaXMudGFyZ2V0SWQ9dCx0aGlzLmZyb21DYWNoZT1lLHRoaXMuYm49bix0aGlzLnZuPXJ9ZnVuY3Rpb24gc0UodCxlLG4pe3RoaXMuVWU9dCx0aGlzLl9uPWUsdGhpcy5VdD1ufWZ1bmN0aW9uIGFFKHQsZSxuLHIpe3JldHVybiBuZXcgbkUodCxlLG4scil9ZnVuY3Rpb24gdUUoaSxvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixtLHI7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbj0oZT1pKS5fbixtPWUuTW4sWzQsZS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiSGFuZGxlIHVzZXIgY2hhbmdlIiwicmVhZG9ubHkiLGZ1bmN0aW9uKGcpe3ZhciB5O3JldHVybiBlLl9uLmdldEFsbE11dGF0aW9uQmF0Y2hlcyhnKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiB5PXQsbj1lLnBlcnNpc3RlbmNlLmdldE11dGF0aW9uUXVldWUobyksbT1uZXcgWlQoZS4kbixuLGUucGVyc2lzdGVuY2UuZ2V0SW5kZXhNYW5hZ2VyKCkpLG4uZ2V0QWxsTXV0YXRpb25CYXRjaGVzKGcpfSkubmV4dChmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj1bXSxyPVl3KCksaT0wLG89eTtpPG8ubGVuZ3RoO2krKyl7dmFyIHM9b1tpXTtlLnB1c2gocy5iYXRjaElkKTtmb3IodmFyIGE9MCx1PXMubXV0YXRpb25zO2E8dS5sZW5ndGg7YSsrKXZhciBjPXVbYV0scj1yLmFkZChjLmtleSl9Zm9yKHZhciBoPTAsbD10O2g8bC5sZW5ndGg7aCsrKXt2YXIgZj1sW2hdO24ucHVzaChmLmJhdGNoSWQpO2Zvcih2YXIgcD0wLGQ9Zi5tdXRhdGlvbnM7cDxkLmxlbmd0aDtwKyspe3ZhciB2PWRbcF07cj1yLmFkZCh2LmtleSl9fXJldHVybiBtLnBuKGcscikubmV4dChmdW5jdGlvbih0KXtyZXR1cm57TG46dCxyZW1vdmVkQmF0Y2hJZHM6ZSxhZGRlZEJhdGNoSWRzOm59fSl9KX0pXTtjYXNlIDE6cmV0dXJuIHI9dC5zZW50KCksWzIsKGUuX249bixlLk1uPW0sZS54bi5WbihlLk1uKSxyKV19fSl9KX1mdW5jdGlvbiBjRSh0LGgpe3ZhciBsPXQ7cmV0dXJuIGwucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIkFja25vd2xlZGdlIGJhdGNoIiwicmVhZHdyaXRlLXByaW1hcnkiLGZ1bmN0aW9uKHQpe3ZhciBlLHIsaSxvLHMsbixhLHU9aC5iYXRjaC5rZXlzKCksYz1sLiRuLm5ld0NoYW5nZUJ1ZmZlcih7dHJhY2tSZW1vdmFsczohMH0pO3JldHVybiBlPWwscj10LG89YyxzPShpPWgpLmJhdGNoLG49cy5rZXlzKCksYT11SS5yZXNvbHZlKCksbi5mb3JFYWNoKGZ1bmN0aW9uKG4pe2E9YS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG8uZ2V0RW50cnkocixuKX0pLm5leHQoZnVuY3Rpb24odCl7dmFyIGU9aS5kb2NWZXJzaW9ucy5nZXQobik7R3kobnVsbCE9PWUpLHQudmVyc2lvbi5jb21wYXJlVG8oZSk8MCYmKHMuYXBwbHlUb1JlbW90ZURvY3VtZW50KHQsaSksdC5pc1ZhbGlkRG9jdW1lbnQoKSYmby5hZGRFbnRyeSh0LGkuY29tbWl0VmVyc2lvbikpfSl9KSxhLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gZS5fbi5yZW1vdmVNdXRhdGlvbkJhdGNoKHIscyl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGMuYXBwbHkodCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGwuX24ucGVyZm9ybUNvbnNpc3RlbmN5Q2hlY2sodCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGwuTW4ucG4odCx1KX0pfSl9ZnVuY3Rpb24gaEUodCl7dmFyIGU9dDtyZXR1cm4gZS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiR2V0IGxhc3QgcmVtb3RlIHNuYXBzaG90IHZlcnNpb24iLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIGUucWUuZ2V0TGFzdFJlbW90ZVNuYXBzaG90VmVyc2lvbih0KX0pfWZ1bmN0aW9uIGxFKHQscil7dmFyIHU9dCxjPXIuc25hcHNob3RWZXJzaW9uLGg9dS5GbjtyZXR1cm4gdS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiQXBwbHkgcmVtb3RlIGV2ZW50IiwicmVhZHdyaXRlLXByaW1hcnkiLGZ1bmN0aW9uKHMpe3ZhciB0PXUuJG4ubmV3Q2hhbmdlQnVmZmVyKHt0cmFja1JlbW92YWxzOiEwfSk7aD11LkZuO3ZhciBhPVtdO3IudGFyZ2V0Q2hhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLG89aC5nZXQoZSk7byYmKGEucHVzaCh1LnFlLnJlbW92ZU1hdGNoaW5nS2V5cyhzLHQucmVtb3ZlZERvY3VtZW50cyxlKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHUucWUuYWRkTWF0Y2hpbmdLZXlzKHMsdC5hZGRlZERvY3VtZW50cyxlKX0pKSwwPChpPXQucmVzdW1lVG9rZW4pLmFwcHJveGltYXRlQnl0ZVNpemUoKSYmKG49by53aXRoUmVzdW1lVG9rZW4oaSxjKS53aXRoU2VxdWVuY2VOdW1iZXIocy5jdXJyZW50U2VxdWVuY2VOdW1iZXIpLGg9aC5pbnNlcnQoZSxuKSxyPW8saT10LEd5KDA8KG89bikucmVzdW1lVG9rZW4uYXBwcm94aW1hdGVCeXRlU2l6ZSgpKSwoMD09PXIucmVzdW1lVG9rZW4uYXBwcm94aW1hdGVCeXRlU2l6ZSgpfHwzZTg8PW8uc25hcHNob3RWZXJzaW9uLnRvTWljcm9zZWNvbmRzKCktci5zbmFwc2hvdFZlcnNpb24udG9NaWNyb3NlY29uZHMoKXx8MDxpLmFkZGVkRG9jdW1lbnRzLnNpemUraS5tb2RpZmllZERvY3VtZW50cy5zaXplK2kucmVtb3ZlZERvY3VtZW50cy5zaXplKSYmYS5wdXNoKHUucWUudXBkYXRlVGFyZ2V0RGF0YShzLG4pKSkpfSk7dmFyIGUsbj1LdztyZXR1cm4gci5kb2N1bWVudFVwZGF0ZXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe3IucmVzb2x2ZWRMaW1ib0RvY3VtZW50cy5oYXModCkmJmEucHVzaCh1LnBlcnNpc3RlbmNlLnJlZmVyZW5jZURlbGVnYXRlLnVwZGF0ZUxpbWJvRG9jdW1lbnQocyx0KSl9KSxhLnB1c2goZkUocyx0LHIuZG9jdW1lbnRVcGRhdGVzLGMsdm9pZCAwKS5uZXh0KGZ1bmN0aW9uKHQpe249dH0pKSxjLmlzRXF1YWwoWnkubWluKCkpfHwoZT11LnFlLmdldExhc3RSZW1vdGVTbmFwc2hvdFZlcnNpb24ocykubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdS5xZS5zZXRUYXJnZXRzTWV0YWRhdGEocyxzLmN1cnJlbnRTZXF1ZW5jZU51bWJlcixjKX0pLGEucHVzaChlKSksdUkud2FpdEZvcihhKS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkocyl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHUuTW4uRW4ocyxuKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdS5Gbj1oLHR9KX1mdW5jdGlvbiBmRSh0LHMsZSxhLHUpe3ZhciBuPVl3KCk7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gbj1uLmFkZCh0KX0pLHMuZ2V0RW50cmllcyh0LG4pLm5leHQoZnVuY3Rpb24oaSl7dmFyIG89S3c7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPWkuZ2V0KHQpLHI9KG51bGw9PXU/dm9pZCAwOnUuZ2V0KHQpKXx8YTtlLmlzTm9Eb2N1bWVudCgpJiZlLnZlcnNpb24uaXNFcXVhbChaeS5taW4oKSk/KHMucmVtb3ZlRW50cnkodCxyKSxvPW8uaW5zZXJ0KHQsZSkpOiFuLmlzVmFsaWREb2N1bWVudCgpfHwwPGUudmVyc2lvbi5jb21wYXJlVG8obi52ZXJzaW9uKXx8MD09PWUudmVyc2lvbi5jb21wYXJlVG8obi52ZXJzaW9uKSYmbi5oYXNQZW5kaW5nV3JpdGVzPyhzLmFkZEVudHJ5KGUsciksbz1vLmluc2VydCh0LGUpKTpWeSgiTG9jYWxTdG9yZSIsIklnbm9yaW5nIG91dGRhdGVkIHdhdGNoIHVwZGF0ZSBmb3IgIix0LCIuIEN1cnJlbnQgdmVyc2lvbjoiLG4udmVyc2lvbiwiIFdhdGNoIHZlcnNpb246IixlLnZlcnNpb24pfSksb30pfWZ1bmN0aW9uIHBFKHQscil7dmFyIGk9dDtyZXR1cm4gaS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiQWxsb2NhdGUgdGFyZ2V0IiwicmVhZHdyaXRlIixmdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4gaS5xZS5nZXRUYXJnZXREYXRhKGUscikubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gdD8obj10LHVJLnJlc29sdmUobikpOmkucWUuYWxsb2NhdGVUYXJnZXRJZChlKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBuPW5ldyBQSShyLHQsMCxlLmN1cnJlbnRTZXF1ZW5jZU51bWJlciksaS5xZS5hZGRUYXJnZXREYXRhKGUsbikubmV4dChmdW5jdGlvbigpe3JldHVybiBufSl9KX0pfSkudGhlbihmdW5jdGlvbih0KXt2YXIgZT1pLkZuLmdldCh0LnRhcmdldElkKTtyZXR1cm4obnVsbD09PWV8fDA8dC5zbmFwc2hvdFZlcnNpb24uY29tcGFyZVRvKGUuc25hcHNob3RWZXJzaW9uKSkmJihpLkZuPWkuRm4uaW5zZXJ0KHQudGFyZ2V0SWQsdCksaS5rbi5zZXQocix0LnRhcmdldElkKSksdH0pfWZ1bmN0aW9uIGRFKGksbyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6bj0oZT1pKS5Gbi5nZXQobykscj1zPyJyZWFkd3JpdGUiOiJyZWFkd3JpdGUtcHJpbWFyeSIsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNV0pLHM/WzMsM106WzQsZS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiUmVsZWFzZSB0YXJnZXQiLHIsZnVuY3Rpb24odCl7cmV0dXJuIGUucGVyc2lzdGVuY2UucmVmZXJlbmNlRGVsZWdhdGUucmVtb3ZlVGFyZ2V0KHQsbil9KV07Y2FzZSAyOnQuc2VudCgpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsNV07Y2FzZSA0OmlmKCFiSShyPXQuc2VudCgpKSl0aHJvdyByO3JldHVybiBWeSgiTG9jYWxTdG9yZSIsIkZhaWxlZCB0byB1cGRhdGUgc2VxdWVuY2UgbnVtYmVycyBmb3IgdGFyZ2V0ICIrbysiOiAiK3IpLFszLDVdO2Nhc2UgNTpyZXR1cm4gZS5Gbj1lLkZuLnJlbW92ZShvKSxlLmtuLmRlbGV0ZShuLnRhcmdldCksWzJdfX0pfSl9ZnVuY3Rpb24gdkUodCxvLHMpe3ZhciBhPXQsdT1aeS5taW4oKSxjPVl3KCk7cmV0dXJuIGEucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIkV4ZWN1dGUgcXVlcnkiLCJyZWFkb25seSIsZnVuY3Rpb24oZSl7cmV0dXJuIHQ9YSxuPWUscj14YihvKSwodm9pZCAwIT09KHQ9KGk9dCkua24uZ2V0KHIpKT91SS5yZXNvbHZlKGkuRm4uZ2V0KHQpKTppLnFlLmdldFRhcmdldERhdGEobixyKSkubmV4dChmdW5jdGlvbih0KXtpZih0KXJldHVybiB1PXQubGFzdExpbWJvRnJlZVNuYXBzaG90VmVyc2lvbixhLnFlLmdldE1hdGNoaW5nS2V5c0ZvclRhcmdldElkKGUsdC50YXJnZXRJZCkubmV4dChmdW5jdGlvbih0KXtjPXR9KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gYS54bi5nZXREb2N1bWVudHNNYXRjaGluZ1F1ZXJ5KGUsbyxzP3U6WnkubWluKCkscz9jOll3KCkpfSkubmV4dChmdW5jdGlvbih0KXtyZXR1cm57ZG9jdW1lbnRzOnQsQm46Y319KTt2YXIgdCxuLHIsaX0pfWZ1bmN0aW9uIGdFKHQsZSl7dmFyIG49dCxyPW4ucWUsdD1uLkZuLmdldChlKTtyZXR1cm4gdD9Qcm9taXNlLnJlc29sdmUodC50YXJnZXQpOm4ucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIkdldCB0YXJnZXQgZGF0YSIsInJlYWRvbmx5IixmdW5jdGlvbih0KXtyZXR1cm4gci5sdCh0LGUpLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQ/dC50YXJnZXQ6bnVsbH0pfSl9ZnVuY3Rpb24geUUodCl7dmFyIHM9dDtyZXR1cm4gcy5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiR2V0IG5ldyBkb2N1bWVudCBjaGFuZ2VzIiwicmVhZG9ubHkiLGZ1bmN0aW9uKHQpe3JldHVybiBlPXMuJG4sbj10LHQ9cy5PbixyPWUsaT1LdyxvPVVJKHQpLHQ9VlQobiksbj1JREJLZXlSYW5nZS5sb3dlckJvdW5kKG8sITApLHQuT3Qoe2luZGV4OllfLnJlYWRUaW1lSW5kZXgscmFuZ2U6bn0sZnVuY3Rpb24odCxlKXt2YXIgbj1NSShyLlIsZSk7aT1pLmluc2VydChuLmtleSxuKSxvPWUucmVhZFRpbWV9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJue3duOmkscmVhZFRpbWU6akkobyl9fSk7dmFyIGUsbixyLGksb30pLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9dC53bix0PXQucmVhZFRpbWU7cmV0dXJuIHMuT249dCxlfSl9ZnVuY3Rpb24gbUUobil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVyblsyLChlPW4pLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJTeW5jaHJvbml6ZSBsYXN0IGRvY3VtZW50IGNoYW5nZSByZWFkIHRpbWUiLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9VlQodCkscj1aeS5taW4oKSx0Lk90KHtpbmRleDpZXy5yZWFkVGltZUluZGV4LHJldmVyc2U6ITB9LGZ1bmN0aW9uKHQsZSxuKXtlLnJlYWRUaW1lJiYocj1qSShlLnJlYWRUaW1lKSksbi5kb25lKCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KTt2YXIgcn0pLnRoZW4oZnVuY3Rpb24odCl7ZS5Pbj10fSldfSl9KX12YXIgYkUsd0UsX0U9KEJFLnByb3RvdHlwZS5nZXRCdW5kbGVNZXRhZGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB1SS5yZXNvbHZlKHRoaXMuS24uZ2V0KGUpKX0sQkUucHJvdG90eXBlLnNhdmVCdW5kbGVNZXRhZGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLktuLnNldChlLmlkLHtpZDplLmlkLHZlcnNpb246ZS52ZXJzaW9uLGNyZWF0ZVRpbWU6dl8oZS5jcmVhdGVUaW1lKX0pLHVJLnJlc29sdmUoKX0sQkUucHJvdG90eXBlLmdldE5hbWVkUXVlcnk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdUkucmVzb2x2ZSh0aGlzLmpuLmdldChlKSl9LEJFLnByb3RvdHlwZS5zYXZlTmFtZWRRdWVyeT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmpuLnNldChlLm5hbWUse25hbWU6KGU9ZSkubmFtZSxxdWVyeTpISShlLmJ1bmRsZWRRdWVyeSkscmVhZFRpbWU6dl8oZS5yZWFkVGltZSl9KSx1SS5yZXNvbHZlKCl9LEJFKSxJRT0oVkUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5Xbi5pc0VtcHR5KCl9LFZFLnByb3RvdHlwZS5hZGRSZWZlcmVuY2U9ZnVuY3Rpb24odCxlKXtlPW5ldyBURSh0LGUpO3RoaXMuV249dGhpcy5Xbi5hZGQoZSksdGhpcy56bj10aGlzLnpuLmFkZChlKX0sVkUucHJvdG90eXBlLkpuPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpczt0LmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIG4uYWRkUmVmZXJlbmNlKHQsZSl9KX0sVkUucHJvdG90eXBlLnJlbW92ZVJlZmVyZW5jZT1mdW5jdGlvbih0LGUpe3RoaXMuWW4obmV3IFRFKHQsZSkpfSxWRS5wcm90b3R5cGUuWG49ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3QuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gbi5yZW1vdmVSZWZlcmVuY2UodCxlKX0pfSxWRS5wcm90b3R5cGUuWm49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPW5ldyBDbShuZXcgYW0oW10pKSxyPW5ldyBURShuLHQpLHQ9bmV3IFRFKG4sdCsxKSxpPVtdO3JldHVybiB0aGlzLnpuLmZvckVhY2hJblJhbmdlKFtyLHRdLGZ1bmN0aW9uKHQpe2UuWW4odCksaS5wdXNoKHQua2V5KX0pLGl9LFZFLnByb3RvdHlwZS50cz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5Xbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLlluKHQpfSl9LFZFLnByb3RvdHlwZS5Zbj1mdW5jdGlvbih0KXt0aGlzLlduPXRoaXMuV24uZGVsZXRlKHQpLHRoaXMuem49dGhpcy56bi5kZWxldGUodCl9LFZFLnByb3RvdHlwZS5lcz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgQ20obmV3IGFtKFtdKSksbj1uZXcgVEUoZSx0KSx0PW5ldyBURShlLHQrMSkscj1ZdygpO3JldHVybiB0aGlzLnpuLmZvckVhY2hJblJhbmdlKFtuLHRdLGZ1bmN0aW9uKHQpe3I9ci5hZGQodC5rZXkpfSkscn0sVkUucHJvdG90eXBlLmNvbnRhaW5zS2V5PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBURSh0LDApLGU9dGhpcy5Xbi5maXJzdEFmdGVyT3JFcXVhbChlKTtyZXR1cm4gbnVsbCE9PWUmJnQuaXNFcXVhbChlLmtleSl9LFZFKSxURT0ocUUuR249ZnVuY3Rpb24odCxlKXtyZXR1cm4gQ20uY29tcGFyYXRvcih0LmtleSxlLmtleSl8fFl5KHQubnMsZS5ucyl9LHFFLkhuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFl5KHQubnMsZS5ucyl8fENtLmNvbXBhcmF0b3IodC5rZXksZS5rZXkpfSxxRSksRUU9KGpFLnByb3RvdHlwZS5jaGVja0VtcHR5PWZ1bmN0aW9uKHQpe3JldHVybiB1SS5yZXNvbHZlKDA9PT10aGlzLl9uLmxlbmd0aCl9LGpFLnByb3RvdHlwZS5hZGRNdXRhdGlvbkJhdGNoPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMuc3M7dGhpcy5zcysrLDA8dGhpcy5fbi5sZW5ndGgmJnRoaXMuX25bdGhpcy5fbi5sZW5ndGgtMV07bj1uZXcga0koaSxlLG4scik7dGhpcy5fbi5wdXNoKG4pO2Zvcih2YXIgbz0wLHM9cjtvPHMubGVuZ3RoO28rKyl7dmFyIGE9c1tvXTt0aGlzLnJzPXRoaXMucnMuYWRkKG5ldyBURShhLmtleSxpKSksdGhpcy5VdC5hZGRUb0NvbGxlY3Rpb25QYXJlbnRJbmRleCh0LGEua2V5LnBhdGgucG9wTGFzdCgpKX1yZXR1cm4gdUkucmVzb2x2ZShuKX0sakUucHJvdG90eXBlLmxvb2t1cE11dGF0aW9uQmF0Y2g9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdUkucmVzb2x2ZSh0aGlzLm9zKGUpKX0sakUucHJvdG90eXBlLmdldE5leHRNdXRhdGlvbkJhdGNoQWZ0ZXJCYXRjaElkPWZ1bmN0aW9uKHQsZSl7ZSs9MSxlPXRoaXMuY3MoZSksZT1lPDA/MDplO3JldHVybiB1SS5yZXNvbHZlKHRoaXMuX24ubGVuZ3RoPmU/dGhpcy5fbltlXTpudWxsKX0sakUucHJvdG90eXBlLmdldEhpZ2hlc3RVbmFja25vd2xlZGdlZEJhdGNoSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdUkucmVzb2x2ZSgwPT09dGhpcy5fbi5sZW5ndGg/LTE6dGhpcy5zcy0xKX0sakUucHJvdG90eXBlLmdldEFsbE11dGF0aW9uQmF0Y2hlcz1mdW5jdGlvbih0KXtyZXR1cm4gdUkucmVzb2x2ZSh0aGlzLl9uLnNsaWNlKCkpfSxqRS5wcm90b3R5cGUuZ2V0QWxsTXV0YXRpb25CYXRjaGVzQWZmZWN0aW5nRG9jdW1lbnRLZXk9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9bmV3IFRFKGUsMCksZT1uZXcgVEUoZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLGk9W107cmV0dXJuIHRoaXMucnMuZm9yRWFjaEluUmFuZ2UoW3IsZV0sZnVuY3Rpb24odCl7dD1uLm9zKHQubnMpO2kucHVzaCh0KX0pLHVJLnJlc29sdmUoaSl9LGpFLnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXNBZmZlY3RpbmdEb2N1bWVudEtleXM9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9bmV3IFZ3KFl5KTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBURSh0LDApLHQ9bmV3IFRFKHQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtuLnJzLmZvckVhY2hJblJhbmdlKFtlLHRdLGZ1bmN0aW9uKHQpe3I9ci5hZGQodC5ucyl9KX0pLHVJLnJlc29sdmUodGhpcy51cyhyKSl9LGpFLnByb3RvdHlwZS5nZXRBbGxNdXRhdGlvbkJhdGNoZXNBZmZlY3RpbmdRdWVyeT1mdW5jdGlvbih0LGUpe3ZhciBuPWUucGF0aCxyPW4ubGVuZ3RoKzEsZT1uO0NtLmlzRG9jdW1lbnRLZXkoZSl8fChlPWUuY2hpbGQoIiIpKTt2YXIgZT1uZXcgVEUobmV3IENtKGUpLDApLGk9bmV3IFZ3KFl5KTtyZXR1cm4gdGhpcy5ycy5mb3JFYWNoV2hpbGUoZnVuY3Rpb24odCl7dmFyIGU9dC5rZXkucGF0aDtyZXR1cm4hIW4uaXNQcmVmaXhPZihlKSYmKGUubGVuZ3RoPT09ciYmKGk9aS5hZGQodC5ucykpLCEwKX0sZSksdUkucmVzb2x2ZSh0aGlzLnVzKGkpKX0sakUucHJvdG90eXBlLnVzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Q9ZS5vcyh0KTtudWxsIT09dCYmbi5wdXNoKHQpfSksbn0sakUucHJvdG90eXBlLnJlbW92ZU11dGF0aW9uQmF0Y2g9ZnVuY3Rpb24obixyKXt2YXIgaT10aGlzO0d5KDA9PT10aGlzLmhzKHIuYmF0Y2hJZCwicmVtb3ZlZCIpKSx0aGlzLl9uLnNoaWZ0KCk7dmFyIG89dGhpcy5ycztyZXR1cm4gdUkuZm9yRWFjaChyLm11dGF0aW9ucyxmdW5jdGlvbih0KXt2YXIgZT1uZXcgVEUodC5rZXksci5iYXRjaElkKTtyZXR1cm4gbz1vLmRlbGV0ZShlKSxpLnJlZmVyZW5jZURlbGVnYXRlLm1hcmtQb3RlbnRpYWxseU9ycGhhbmVkKG4sdC5rZXkpfSkubmV4dChmdW5jdGlvbigpe2kucnM9b30pfSxqRS5wcm90b3R5cGUuR3Q9ZnVuY3Rpb24odCl7fSxqRS5wcm90b3R5cGUuY29udGFpbnNLZXk9ZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgVEUoZSwwKSxuPXRoaXMucnMuZmlyc3RBZnRlck9yRXF1YWwobik7cmV0dXJuIHVJLnJlc29sdmUoZS5pc0VxdWFsKG4mJm4ua2V5KSl9LGpFLnByb3RvdHlwZS5wZXJmb3JtQ29uc2lzdGVuY3lDaGVjaz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbi5sZW5ndGgsdUkucmVzb2x2ZSgpfSxqRS5wcm90b3R5cGUuaHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jcyh0KX0sakUucHJvdG90eXBlLmNzPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09dGhpcy5fbi5sZW5ndGg/MDp0LXRoaXMuX25bMF0uYmF0Y2hJZH0sakUucHJvdG90eXBlLm9zPWZ1bmN0aW9uKHQpe3Q9dGhpcy5jcyh0KTtyZXR1cm4gdDwwfHx0Pj10aGlzLl9uLmxlbmd0aD9udWxsOnRoaXMuX25bdF19LGpFKSxTRT0oVUUucHJvdG90eXBlLmFkZEVudHJ5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1lLmtleSxpPXRoaXMuZG9jcy5nZXQociksbz1pP2kuc2l6ZTowLGk9dGhpcy5scyhlKTtyZXR1cm4gdGhpcy5kb2NzPXRoaXMuZG9jcy5pbnNlcnQocix7ZG9jdW1lbnQ6ZS5jbG9uZSgpLHNpemU6aSxyZWFkVGltZTpufSksdGhpcy5zaXplKz1pLW8sdGhpcy5VdC5hZGRUb0NvbGxlY3Rpb25QYXJlbnRJbmRleCh0LHIucGF0aC5wb3BMYXN0KCkpfSxVRS5wcm90b3R5cGUucmVtb3ZlRW50cnk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kb2NzLmdldCh0KTtlJiYodGhpcy5kb2NzPXRoaXMuZG9jcy5yZW1vdmUodCksdGhpcy5zaXplLT1lLnNpemUpfSxVRS5wcm90b3R5cGUuZ2V0RW50cnk9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmRvY3MuZ2V0KGUpO3JldHVybiB1SS5yZXNvbHZlKG4/bi5kb2N1bWVudC5jbG9uZSgpOkJtLm5ld0ludmFsaWREb2N1bWVudChlKSl9LFVFLnByb3RvdHlwZS5nZXRFbnRyaWVzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyxyPUt3O3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5kb2NzLmdldCh0KTtyPXIuaW5zZXJ0KHQsZT9lLmRvY3VtZW50LmNsb25lKCk6Qm0ubmV3SW52YWxpZERvY3VtZW50KHQpKX0pLHVJLnJlc29sdmUocil9LFVFLnByb3RvdHlwZS5nZXREb2N1bWVudHNNYXRjaGluZ1F1ZXJ5PWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9S3csaT1uZXcgQ20oZS5wYXRoLmNoaWxkKCIiKSksbz10aGlzLmRvY3MuZ2V0SXRlcmF0b3JGcm9tKGkpO28uaGFzTmV4dCgpOyl7dmFyIHM9by5nZXROZXh0KCksYT1zLmtleSx1PXMudmFsdWUscz11LmRvY3VtZW50LHU9dS5yZWFkVGltZTtpZighZS5wYXRoLmlzUHJlZml4T2YoYS5wYXRoKSlicmVhazt1LmNvbXBhcmVUbyhuKTw9MHx8amIoZSxzKSYmKHI9ci5pbnNlcnQocy5rZXkscy5jbG9uZSgpKSl9cmV0dXJuIHVJLnJlc29sdmUocil9LFVFLnByb3RvdHlwZS5mcz1mdW5jdGlvbih0LGUpe3JldHVybiB1SS5mb3JFYWNoKHRoaXMuZG9jcyxmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pfSxVRS5wcm90b3R5cGUubmV3Q2hhbmdlQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgQ0UodGhpcyl9LFVFLnByb3RvdHlwZS5nZXRTaXplPWZ1bmN0aW9uKHQpe3JldHVybiB1SS5yZXNvbHZlKHRoaXMuc2l6ZSl9LFVFKSxDRT0oWGkoRkUsd0U9U24pLEZFLnByb3RvdHlwZS5hcHBseUNoYW5nZXM9ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPVtdO3JldHVybiB0aGlzLmNoYW5nZXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe2UuZG9jdW1lbnQuaXNWYWxpZERvY3VtZW50KCk/aS5wdXNoKHIuSWUuYWRkRW50cnkobixlLmRvY3VtZW50LHIuZ2V0UmVhZFRpbWUodCkpKTpyLkllLnJlbW92ZUVudHJ5KHQpfSksdUkud2FpdEZvcihpKX0sRkUucHJvdG90eXBlLmdldEZyb21DYWNoZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLkllLmdldEVudHJ5KHQsZSl9LEZFLnByb3RvdHlwZS5nZXRBbGxGcm9tQ2FjaGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5JZS5nZXRFbnRyaWVzKHQsZSl9LEZFKSxORT0oTUUucHJvdG90eXBlLmZvckVhY2hUYXJnZXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5kcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oZSl9KSx1SS5yZXNvbHZlKCl9LE1FLnByb3RvdHlwZS5nZXRMYXN0UmVtb3RlU25hcHNob3RWZXJzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiB1SS5yZXNvbHZlKHRoaXMubGFzdFJlbW90ZVNuYXBzaG90VmVyc2lvbil9LE1FLnByb3RvdHlwZS5nZXRIaWdoZXN0U2VxdWVuY2VOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVJLnJlc29sdmUodGhpcy53cyl9LE1FLnByb3RvdHlwZS5hbGxvY2F0ZVRhcmdldElkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhpZ2hlc3RUYXJnZXRJZD10aGlzLnlzLm5leHQoKSx1SS5yZXNvbHZlKHRoaXMuaGlnaGVzdFRhcmdldElkKX0sTUUucHJvdG90eXBlLnNldFRhcmdldHNNZXRhZGF0YT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG4mJih0aGlzLmxhc3RSZW1vdGVTbmFwc2hvdFZlcnNpb249biksZT50aGlzLndzJiYodGhpcy53cz1lKSx1SS5yZXNvbHZlKCl9LE1FLnByb3RvdHlwZS50ZT1mdW5jdGlvbih0KXt0aGlzLmRzLnNldCh0LnRhcmdldCx0KTt2YXIgZT10LnRhcmdldElkO2U+dGhpcy5oaWdoZXN0VGFyZ2V0SWQmJih0aGlzLnlzPW5ldyBkVChlKSx0aGlzLmhpZ2hlc3RUYXJnZXRJZD1lKSx0LnNlcXVlbmNlTnVtYmVyPnRoaXMud3MmJih0aGlzLndzPXQuc2VxdWVuY2VOdW1iZXIpfSxNRS5wcm90b3R5cGUuYWRkVGFyZ2V0RGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRlKGUpLHRoaXMudGFyZ2V0Q291bnQrPTEsdUkucmVzb2x2ZSgpfSxNRS5wcm90b3R5cGUudXBkYXRlVGFyZ2V0RGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRlKGUpLHVJLnJlc29sdmUoKX0sTUUucHJvdG90eXBlLnJlbW92ZVRhcmdldERhdGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5kcy5kZWxldGUoZS50YXJnZXQpLHRoaXMuX3MuWm4oZS50YXJnZXRJZCksLS10aGlzLnRhcmdldENvdW50LHVJLnJlc29sdmUoKX0sTUUucHJvdG90eXBlLnJlbW92ZVRhcmdldHM9ZnVuY3Rpb24obixyLGkpe3ZhciBvPXRoaXMscz0wLGE9W107cmV0dXJuIHRoaXMuZHMuZm9yRWFjaChmdW5jdGlvbih0LGUpe2Uuc2VxdWVuY2VOdW1iZXI8PXImJm51bGw9PT1pLmdldChlLnRhcmdldElkKSYmKG8uZHMuZGVsZXRlKHQpLGEucHVzaChvLnJlbW92ZU1hdGNoaW5nS2V5c0ZvclRhcmdldElkKG4sZS50YXJnZXRJZCkpLHMrKyl9KSx1SS53YWl0Rm9yKGEpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gc30pfSxNRS5wcm90b3R5cGUuZ2V0VGFyZ2V0Q291bnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHVJLnJlc29sdmUodGhpcy50YXJnZXRDb3VudCl9LE1FLnByb3RvdHlwZS5nZXRUYXJnZXREYXRhPWZ1bmN0aW9uKHQsZSl7ZT10aGlzLmRzLmdldChlKXx8bnVsbDtyZXR1cm4gdUkucmVzb2x2ZShlKX0sTUUucHJvdG90eXBlLmFkZE1hdGNoaW5nS2V5cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuX3MuSm4oZSxuKSx1SS5yZXNvbHZlKCl9LE1FLnByb3RvdHlwZS5yZW1vdmVNYXRjaGluZ0tleXM9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuX3MuWG4odCxuKTt2YXIgcj10aGlzLnBlcnNpc3RlbmNlLnJlZmVyZW5jZURlbGVnYXRlLGk9W107cmV0dXJuIHImJnQuZm9yRWFjaChmdW5jdGlvbih0KXtpLnB1c2goci5tYXJrUG90ZW50aWFsbHlPcnBoYW5lZChlLHQpKX0pLHVJLndhaXRGb3IoaSl9LE1FLnByb3RvdHlwZS5yZW1vdmVNYXRjaGluZ0tleXNGb3JUYXJnZXRJZD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9zLlpuKGUpLHVJLnJlc29sdmUoKX0sTUUucHJvdG90eXBlLmdldE1hdGNoaW5nS2V5c0ZvclRhcmdldElkPWZ1bmN0aW9uKHQsZSl7ZT10aGlzLl9zLmVzKGUpO3JldHVybiB1SS5yZXNvbHZlKGUpfSxNRS5wcm90b3R5cGUuY29udGFpbnNLZXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdUkucmVzb2x2ZSh0aGlzLl9zLmNvbnRhaW5zS2V5KGUpKX0sTUUpLEFFPShMRS5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LExFLnByb3RvdHlwZS5zaHV0ZG93bj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnhlPSExLFByb21pc2UucmVzb2x2ZSgpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTEUucHJvdG90eXBlLCJzdGFydGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksTEUucHJvdG90eXBlLnNldERhdGFiYXNlRGVsZXRlZExpc3RlbmVyPWZ1bmN0aW9uKCl7fSxMRS5wcm90b3R5cGUuc2V0TmV0d29ya0VuYWJsZWQ9ZnVuY3Rpb24oKXt9LExFLnByb3RvdHlwZS5nZXRJbmRleE1hbmFnZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5VdH0sTEUucHJvdG90eXBlLmdldE11dGF0aW9uUXVldWU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nc1t0LnRvS2V5KCldO3JldHVybiBlfHwoZT1uZXcgRUUodGhpcy5VdCx0aGlzLnJlZmVyZW5jZURlbGVnYXRlKSx0aGlzLmdzW3QudG9LZXkoKV09ZSksZX0sTEUucHJvdG90eXBlLmdldFRhcmdldENhY2hlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucWV9LExFLnByb3RvdHlwZS5nZXRSZW1vdGVEb2N1bWVudENhY2hlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVWV9LExFLnByb3RvdHlwZS5nZXRCdW5kbGVDYWNoZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlFlfSxMRS5wcm90b3R5cGUucnVuVHJhbnNhY3Rpb249ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7VnkoIk1lbW9yeVBlcnNpc3RlbmNlIiwiU3RhcnRpbmcgdHJhbnNhY3Rpb246Iix0KTt2YXIgaT1uZXcga0UodGhpcy5OZS5uZXh0KCkpO3JldHVybiB0aGlzLnJlZmVyZW5jZURlbGVnYXRlLkVzKCksbihpKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiByLnJlZmVyZW5jZURlbGVnYXRlLlRzKGkpLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gdH0pfSkudG9Qcm9taXNlKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaS5yYWlzZU9uQ29tbWl0dGVkRXZlbnQoKSx0fSl9LExFLnByb3RvdHlwZS5Jcz1mdW5jdGlvbihlLG4pe3JldHVybiB1SS5vcihPYmplY3QudmFsdWVzKHRoaXMuZ3MpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5jb250YWluc0tleShlLG4pfX0pKX0sTEUpLGtFPShYaSh4RSxiRT1HYSkseEUpLFJFPShERS5icz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IERFKHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoREUucHJvdG90eXBlLCJ2cyIse2dldDpmdW5jdGlvbigpe2lmKHRoaXMuUnMpcmV0dXJuIHRoaXMuUnM7dGhyb3cgSHkoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxERS5wcm90b3R5cGUuYWRkUmVmZXJlbmNlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5Bcy5hZGRSZWZlcmVuY2UobixlKSx0aGlzLnZzLmRlbGV0ZShuLnRvU3RyaW5nKCkpLHVJLnJlc29sdmUoKX0sREUucHJvdG90eXBlLnJlbW92ZVJlZmVyZW5jZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuQXMucmVtb3ZlUmVmZXJlbmNlKG4sZSksdGhpcy52cy5hZGQobi50b1N0cmluZygpKSx1SS5yZXNvbHZlKCl9LERFLnByb3RvdHlwZS5tYXJrUG90ZW50aWFsbHlPcnBoYW5lZD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnZzLmFkZChlLnRvU3RyaW5nKCkpLHVJLnJlc29sdmUoKX0sREUucHJvdG90eXBlLnJlbW92ZVRhcmdldD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5Bcy5abihlLnRhcmdldElkKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBuLnZzLmFkZCh0LnRvU3RyaW5nKCkpfSk7dmFyIHI9dGhpcy5wZXJzaXN0ZW5jZS5nZXRUYXJnZXRDYWNoZSgpO3JldHVybiByLmdldE1hdGNoaW5nS2V5c0ZvclRhcmdldElkKHQsZS50YXJnZXRJZCkubmV4dChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIG4udnMuYWRkKHQudG9TdHJpbmcoKSl9KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gci5yZW1vdmVUYXJnZXREYXRhKHQsZSl9KX0sREUucHJvdG90eXBlLkVzPWZ1bmN0aW9uKCl7dGhpcy5Scz1uZXcgU2V0fSxERS5wcm90b3R5cGUuVHM9ZnVuY3Rpb24obil7dmFyIHI9dGhpcyxpPXRoaXMucGVyc2lzdGVuY2UuZ2V0UmVtb3RlRG9jdW1lbnRDYWNoZSgpLm5ld0NoYW5nZUJ1ZmZlcigpO3JldHVybiB1SS5mb3JFYWNoKHRoaXMudnMsZnVuY3Rpb24odCl7dmFyIGU9Q20uZnJvbVBhdGgodCk7cmV0dXJuIHIuUHMobixlKS5uZXh0KGZ1bmN0aW9uKHQpe3R8fGkucmVtb3ZlRW50cnkoZSl9KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gci5Scz1udWxsLGkuYXBwbHkobil9KX0sREUucHJvdG90eXBlLnVwZGF0ZUxpbWJvRG9jdW1lbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiB0aGlzLlBzKHQsZSkubmV4dChmdW5jdGlvbih0KXt0P24udnMuZGVsZXRlKGUudG9TdHJpbmcoKSk6bi52cy5hZGQoZS50b1N0cmluZygpKX0pfSxERS5wcm90b3R5cGUucHM9ZnVuY3Rpb24odCl7cmV0dXJuIDB9LERFLnByb3RvdHlwZS5Qcz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIHVJLm9yKFtmdW5jdGlvbigpe3JldHVybiB1SS5yZXNvbHZlKG4uQXMuY29udGFpbnNLZXkoZSkpfSxmdW5jdGlvbigpe3JldHVybiBuLnBlcnNpc3RlbmNlLmdldFRhcmdldENhY2hlKCkuY29udGFpbnNLZXkodCxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gbi5wZXJzaXN0ZW5jZS5Jcyh0LGUpfV0pfSxERSksUEU9KE9FLnByb3RvdHlwZS5pc0F1dGhlbnRpY2F0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9dGhpcy51aWR9LE9FLnByb3RvdHlwZS50b0tleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQXV0aGVudGljYXRlZCgpPyJ1aWQ6Iit0aGlzLnVpZDoiYW5vbnltb3VzLXVzZXIifSxPRS5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdC51aWQ9PT10aGlzLnVpZH0sT0UpO2Z1bmN0aW9uIE9FKHQpe3RoaXMudWlkPXR9ZnVuY3Rpb24gREUodCl7dGhpcy5wZXJzaXN0ZW5jZT10LHRoaXMuQXM9bmV3IElFLHRoaXMuUnM9bnVsbH1mdW5jdGlvbiB4RSh0KXt2YXIgZT10aGlzO3JldHVybihlPWJFLmNhbGwodGhpcyl8fHRoaXMpLmN1cnJlbnRTZXF1ZW5jZU51bWJlcj10LGV9ZnVuY3Rpb24gTEUodCxlKXt2YXIgbj10aGlzO3RoaXMuZ3M9e30sdGhpcy5OZT1uZXcgRHkoMCksdGhpcy54ZT0hMSx0aGlzLnhlPSEwLHRoaXMucmVmZXJlbmNlRGVsZWdhdGU9dCh0aGlzKSx0aGlzLnFlPW5ldyBORSh0aGlzKSx0aGlzLlV0PW5ldyBYSSx0aGlzLlVlPSh0PXRoaXMuVXQsbmV3IFNFKHQsZnVuY3Rpb24odCl7cmV0dXJuIG4ucmVmZXJlbmNlRGVsZWdhdGUucHModCl9KSksdGhpcy5SPW5ldyBPSShlKSx0aGlzLlFlPW5ldyBfRSh0aGlzLlIpfWZ1bmN0aW9uIE1FKHQpe3RoaXMucGVyc2lzdGVuY2U9dCx0aGlzLmRzPW5ldyBEVChHbSx6bSksdGhpcy5sYXN0UmVtb3RlU25hcHNob3RWZXJzaW9uPVp5Lm1pbigpLHRoaXMuaGlnaGVzdFRhcmdldElkPTAsdGhpcy53cz0wLHRoaXMuX3M9bmV3IElFLHRoaXMudGFyZ2V0Q291bnQ9MCx0aGlzLnlzPWRULkp0KCl9ZnVuY3Rpb24gRkUodCl7dmFyIGU9dGhpcztyZXR1cm4oZT13RS5jYWxsKHRoaXMpfHx0aGlzKS5JZT10LGV9ZnVuY3Rpb24gVUUodCxlKXt0aGlzLlV0PXQsdGhpcy5scz1lLHRoaXMuZG9jcz1uZXcgeHcoQ20uY29tcGFyYXRvciksdGhpcy5zaXplPTB9ZnVuY3Rpb24gakUodCxlKXt0aGlzLlV0PXQsdGhpcy5yZWZlcmVuY2VEZWxlZ2F0ZT1lLHRoaXMuX249W10sdGhpcy5zcz0xLHRoaXMucnM9bmV3IFZ3KFRFLkduKX1mdW5jdGlvbiBxRSh0LGUpe3RoaXMua2V5PXQsdGhpcy5ucz1lfWZ1bmN0aW9uIFZFKCl7dGhpcy5Xbj1uZXcgVncoVEUuR24pLHRoaXMuem49bmV3IFZ3KFRFLkhuKX1mdW5jdGlvbiBCRSh0KXt0aGlzLlI9dCx0aGlzLktuPW5ldyBNYXAsdGhpcy5qbj1uZXcgTWFwfWZ1bmN0aW9uIEtFKHQsZSl7cmV0dXJuImZpcmVzdG9yZV9jbGllbnRzXyIrdCsiXyIrZX1mdW5jdGlvbiBXRSh0LGUsbil7bj0iZmlyZXN0b3JlX211dGF0aW9uc18iK3QrIl8iK247cmV0dXJuIGUuaXNBdXRoZW50aWNhdGVkKCkmJihuKz0iXyIrZS51aWQpLG59ZnVuY3Rpb24gSEUodCxlKXtyZXR1cm4iZmlyZXN0b3JlX3RhcmdldHNfIit0KyJfIitlfVBFLlVOQVVUSEVOVElDQVRFRD1uZXcgUEUobnVsbCksUEUuR09PR0xFX0NSRURFTlRJQUxTPW5ldyBQRSgiZ29vZ2xlLWNyZWRlbnRpYWxzLXVpZCIpLFBFLkZJUlNUX1BBUlRZPW5ldyBQRSgiZmlyc3QtcGFydHktdWlkIik7dmFyIEdFLHpFPShnUy5Wcz1mdW5jdGlvbih0LGUsbil7dmFyIHIsaT1KU09OLnBhcnNlKG4pLG89Im9iamVjdCI9PXR5cGVvZiBpJiYtMSE9PVsicGVuZGluZyIsImFja25vd2xlZGdlZCIsInJlamVjdGVkIl0uaW5kZXhPZihpLnN0YXRlKSYmKHZvaWQgMD09PWkuZXJyb3J8fCJvYmplY3QiPT10eXBlb2YgaS5lcnJvcik7cmV0dXJuIG8mJmkuZXJyb3ImJihvPSJzdHJpbmciPT10eXBlb2YgaS5lcnJvci5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIGkuZXJyb3IuY29kZSkmJihyPW5ldyBGeShpLmVycm9yLmNvZGUsaS5lcnJvci5tZXNzYWdlKSksbz9uZXcgZ1ModCxlLGkuc3RhdGUscik6KEJ5KCJTaGFyZWRDbGllbnRTdGF0ZSIsIkZhaWxlZCB0byBwYXJzZSBtdXRhdGlvbiBzdGF0ZSBmb3IgSUQgJyIrZSsiJzogIituKSxudWxsKX0sZ1MucHJvdG90eXBlLlNzPWZ1bmN0aW9uKCl7dmFyIHQ9e3N0YXRlOnRoaXMuc3RhdGUsdXBkYXRlVGltZU1zOkRhdGUubm93KCl9O3JldHVybiB0aGlzLmVycm9yJiYodC5lcnJvcj17Y29kZTp0aGlzLmVycm9yLmNvZGUsbWVzc2FnZTp0aGlzLmVycm9yLm1lc3NhZ2V9KSxKU09OLnN0cmluZ2lmeSh0KX0sZ1MpLFFFPSh2Uy5Wcz1mdW5jdGlvbih0LGUpe3ZhciBuLHI9SlNPTi5wYXJzZShlKSxpPSJvYmplY3QiPT10eXBlb2YgciYmLTEhPT1bIm5vdC1jdXJyZW50IiwiY3VycmVudCIsInJlamVjdGVkIl0uaW5kZXhPZihyLnN0YXRlKSYmKHZvaWQgMD09PXIuZXJyb3J8fCJvYmplY3QiPT10eXBlb2Ygci5lcnJvcik7cmV0dXJuIGkmJnIuZXJyb3ImJihpPSJzdHJpbmciPT10eXBlb2Ygci5lcnJvci5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIHIuZXJyb3IuY29kZSkmJihuPW5ldyBGeShyLmVycm9yLmNvZGUsci5lcnJvci5tZXNzYWdlKSksaT9uZXcgdlModCxyLnN0YXRlLG4pOihCeSgiU2hhcmVkQ2xpZW50U3RhdGUiLCJGYWlsZWQgdG8gcGFyc2UgdGFyZ2V0IHN0YXRlIGZvciBJRCAnIit0KyInOiAiK2UpLG51bGwpfSx2Uy5wcm90b3R5cGUuU3M9ZnVuY3Rpb24oKXt2YXIgdD17c3RhdGU6dGhpcy5zdGF0ZSx1cGRhdGVUaW1lTXM6RGF0ZS5ub3coKX07cmV0dXJuIHRoaXMuZXJyb3ImJih0LmVycm9yPXtjb2RlOnRoaXMuZXJyb3IuY29kZSxtZXNzYWdlOnRoaXMuZXJyb3IubWVzc2FnZX0pLEpTT04uc3RyaW5naWZ5KHQpfSx2UyksWUU9KGRTLlZzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPUpTT04ucGFyc2UoZSkscj0ib2JqZWN0Ij09dHlwZW9mIG4mJm4uYWN0aXZlVGFyZ2V0SWRzIGluc3RhbmNlb2YgQXJyYXksaT1YdyxvPTA7ciYmbzxuLmFjdGl2ZVRhcmdldElkcy5sZW5ndGg7KytvKXI9U20obi5hY3RpdmVUYXJnZXRJZHNbb10pLGk9aS5hZGQobi5hY3RpdmVUYXJnZXRJZHNbb10pO3JldHVybiByP25ldyBkUyh0LGkpOihCeSgiU2hhcmVkQ2xpZW50U3RhdGUiLCJGYWlsZWQgdG8gcGFyc2UgY2xpZW50IGRhdGEgZm9yIGluc3RhbmNlICciK3QrIic6ICIrZSksbnVsbCl9LGRTKSxYRT0ocFMuVnM9ZnVuY3Rpb24odCl7dmFyIGU9SlNPTi5wYXJzZSh0KTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJi0xIT09WyJVbmtub3duIiwiT25saW5lIiwiT2ZmbGluZSJdLmluZGV4T2YoZS5vbmxpbmVTdGF0ZSkmJiJzdHJpbmciPT10eXBlb2YgZS5jbGllbnRJZD9uZXcgcFMoZS5jbGllbnRJZCxlLm9ubGluZVN0YXRlKTooQnkoIlNoYXJlZENsaWVudFN0YXRlIiwiRmFpbGVkIHRvIHBhcnNlIG9ubGluZSBzdGF0ZTogIit0KSxudWxsKX0scFMpLEpFPShmUy5wcm90b3R5cGUuRHM9ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVUYXJnZXRJZHM9dGhpcy5hY3RpdmVUYXJnZXRJZHMuYWRkKHQpfSxmUy5wcm90b3R5cGUuQ3M9ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmVUYXJnZXRJZHM9dGhpcy5hY3RpdmVUYXJnZXRJZHMuZGVsZXRlKHQpfSxmUy5wcm90b3R5cGUuU3M9ZnVuY3Rpb24oKXt2YXIgdD17YWN0aXZlVGFyZ2V0SWRzOnRoaXMuYWN0aXZlVGFyZ2V0SWRzLnRvQXJyYXkoKSx1cGRhdGVUaW1lTXM6RGF0ZS5ub3coKX07cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfSxmUyksJEU9KGxTLnl0PWZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCF0LmxvY2FsU3RvcmFnZSl9LGxTLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvLHMsYSx1LGMsaCxsPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnN5bmNFbmdpbmUuZm4oKV07Y2FzZSAxOmZvcihzPXQuc2VudCgpLGU9MCxuPXM7ZTxuLmxlbmd0aDtlKyspKHI9bltlXSkhPT10aGlzLk5zJiYoaT10aGlzLmdldEl0ZW0oS0UodGhpcy5wZXJzaXN0ZW5jZUtleSxyKSkpJiYobz1ZRS5WcyhyLGkpKSYmKHRoaXMua3M9dGhpcy5rcy5pbnNlcnQoby5jbGllbnRJZCxvKSk7Zm9yKHRoaXMuS3MoKSwocz10aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlVzKSkmJihhPXRoaXMuanMocykpJiZ0aGlzLldzKGEpLHU9MCxjPXRoaXMuT3M7dTxjLmxlbmd0aDt1KyspaD1jW3VdLHRoaXMuRnMoaCk7cmV0dXJuIHRoaXMuT3M9W10sdGhpcy53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe3JldHVybiBsLnNodXRkb3duKCl9KSx0aGlzLnN0YXJ0ZWQ9ITAsWzJdfX0pfSl9LGxTLnByb3RvdHlwZS53cml0ZVNlcXVlbmNlTnVtYmVyPWZ1bmN0aW9uKHQpe3RoaXMuc2V0SXRlbSh0aGlzLk1zLEpTT04uc3RyaW5naWZ5KHQpKX0sbFMucHJvdG90eXBlLmdldEFsbEFjdGl2ZVF1ZXJ5VGFyZ2V0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLkdzKHRoaXMua3MpfSxsUy5wcm90b3R5cGUuaXNBY3RpdmVRdWVyeVRhcmdldD1mdW5jdGlvbihuKXt2YXIgcj0hMTtyZXR1cm4gdGhpcy5rcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7ZS5hY3RpdmVUYXJnZXRJZHMuaGFzKG4pJiYocj0hMCl9KSxyfSxsUy5wcm90b3R5cGUuYWRkUGVuZGluZ011dGF0aW9uPWZ1bmN0aW9uKHQpe3RoaXMuenModCwicGVuZGluZyIpfSxsUy5wcm90b3R5cGUudXBkYXRlTXV0YXRpb25TdGF0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy56cyh0LGUsbiksdGhpcy5Icyh0KX0sbFMucHJvdG90eXBlLmFkZExvY2FsUXVlcnlUYXJnZXQ9ZnVuY3Rpb24odCl7dmFyIGUsbj0ibm90LWN1cnJlbnQiO3JldHVybiB0aGlzLmlzQWN0aXZlUXVlcnlUYXJnZXQodCkmJighKGU9dGhpcy5zdG9yYWdlLmdldEl0ZW0oSEUodGhpcy5wZXJzaXN0ZW5jZUtleSx0KSkpfHwoZT1RRS5Wcyh0LGUpKSYmKG49ZS5zdGF0ZSkpLHRoaXMuSnMuRHModCksdGhpcy5LcygpLG59LGxTLnByb3RvdHlwZS5yZW1vdmVMb2NhbFF1ZXJ5VGFyZ2V0PWZ1bmN0aW9uKHQpe3RoaXMuSnMuQ3ModCksdGhpcy5LcygpfSxsUy5wcm90b3R5cGUuaXNMb2NhbFF1ZXJ5VGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkpzLmFjdGl2ZVRhcmdldElkcy5oYXModCl9LGxTLnByb3RvdHlwZS5jbGVhclF1ZXJ5U3RhdGU9ZnVuY3Rpb24odCl7dGhpcy5yZW1vdmVJdGVtKEhFKHRoaXMucGVyc2lzdGVuY2VLZXksdCkpfSxsUy5wcm90b3R5cGUudXBkYXRlUXVlcnlTdGF0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5Zcyh0LGUsbil9LGxTLnByb3RvdHlwZS5oYW5kbGVVc2VyQ2hhbmdlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO2UuZm9yRWFjaChmdW5jdGlvbih0KXtyLkhzKHQpfSksdGhpcy5jdXJyZW50VXNlcj10LG4uZm9yRWFjaChmdW5jdGlvbih0KXtyLmFkZFBlbmRpbmdNdXRhdGlvbih0KX0pfSxsUy5wcm90b3R5cGUuc2V0T25saW5lU3RhdGU9ZnVuY3Rpb24odCl7dGhpcy5Ycyh0KX0sbFMucHJvdG90eXBlLm5vdGlmeUJ1bmRsZUxvYWRlZD1mdW5jdGlvbigpe3RoaXMuWnMoKX0sbFMucHJvdG90eXBlLnNodXRkb3duPWZ1bmN0aW9uKCl7dGhpcy5zdGFydGVkJiYodGhpcy53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsdGhpcy54cyksdGhpcy5yZW1vdmVJdGVtKHRoaXMuJHMpLHRoaXMuc3RhcnRlZD0hMSl9LGxTLnByb3RvdHlwZS5nZXRJdGVtPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc3RvcmFnZS5nZXRJdGVtKHQpO3JldHVybiBWeSgiU2hhcmVkQ2xpZW50U3RhdGUiLCJSRUFEIix0LGUpLGV9LGxTLnByb3RvdHlwZS5zZXRJdGVtPWZ1bmN0aW9uKHQsZSl7VnkoIlNoYXJlZENsaWVudFN0YXRlIiwiU0VUIix0LGUpLHRoaXMuc3RvcmFnZS5zZXRJdGVtKHQsZSl9LGxTLnByb3RvdHlwZS5yZW1vdmVJdGVtPWZ1bmN0aW9uKHQpe1Z5KCJTaGFyZWRDbGllbnRTdGF0ZSIsIlJFTU9WRSIsdCksdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odCl9LGxTLnByb3RvdHlwZS5Gcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG89dDtvLnN0b3JhZ2VBcmVhPT09dGhpcy5zdG9yYWdlJiYoVnkoIlNoYXJlZENsaWVudFN0YXRlIiwiRVZFTlQiLG8ua2V5LG8ubmV3VmFsdWUpLG8ua2V5IT09dGhpcy4kcz90aGlzLlNlLmVucXVldWVSZXRyeWFibGUoZnVuY3Rpb24oKXtyZXR1cm4gJGkoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7aWYodGhpcy5zdGFydGVkKXtpZihudWxsIT09by5rZXkpaWYodGhpcy5Mcy50ZXN0KG8ua2V5KSl7aWYobnVsbD09by5uZXdWYWx1ZSlyZXR1cm4gZT10aGlzLnRpKG8ua2V5KSxbMix0aGlzLmVpKGUsbnVsbCldO2lmKGU9dGhpcy5uaShvLmtleSxvLm5ld1ZhbHVlKSlyZXR1cm5bMix0aGlzLmVpKGUuY2xpZW50SWQsZSldfWVsc2UgaWYodGhpcy5Ccy50ZXN0KG8ua2V5KSl7aWYobnVsbCE9PW8ubmV3VmFsdWUmJihuPXRoaXMuc2koby5rZXksby5uZXdWYWx1ZSkpKXJldHVyblsyLHRoaXMuaWkobildfWVsc2UgaWYodGhpcy5xcy50ZXN0KG8ua2V5KSl7aWYobnVsbCE9PW8ubmV3VmFsdWUmJihyPXRoaXMucmkoby5rZXksby5uZXdWYWx1ZSkpKXJldHVyblsyLHRoaXMub2kocildfWVsc2UgaWYoby5rZXk9PT10aGlzLlVzKXtpZihudWxsIT09by5uZXdWYWx1ZSYmKGk9dGhpcy5qcyhvLm5ld1ZhbHVlKSkpcmV0dXJuWzIsdGhpcy5XcyhpKV19ZWxzZSBpZihvLmtleT09PXRoaXMuTXMpKGk9ZnVuY3Rpb24odCl7dmFyIGU9RHkubztpZihudWxsIT10KXRyeXt2YXIgbj1KU09OLnBhcnNlKHQpO0d5KCJudW1iZXIiPT10eXBlb2YgbiksZT1ufWNhdGNoKHQpe0J5KCJTaGFyZWRDbGllbnRTdGF0ZSIsIkZhaWxlZCB0byByZWFkIHNlcXVlbmNlIG51bWJlciBmcm9tIFdlYlN0b3JhZ2UiLHQpfXJldHVybiBlfShvLm5ld1ZhbHVlKSkhPT1EeS5vJiZ0aGlzLnNlcXVlbmNlTnVtYmVySGFuZGxlcihpKTtlbHNlIGlmKG8ua2V5PT09dGhpcy5RcylyZXR1cm5bMix0aGlzLnN5bmNFbmdpbmUuY2koKV19ZWxzZSB0aGlzLk9zLnB1c2gobyk7cmV0dXJuWzJdfSl9KX0pOkJ5KCJSZWNlaXZlZCBXZWJTdG9yYWdlIG5vdGlmaWNhdGlvbiBmb3IgbG9jYWwgY2hhbmdlLiBBbm90aGVyIGNsaWVudCBtaWdodCBoYXZlIGdhcmJhZ2UtY29sbGVjdGVkIG91ciBzdGF0ZSIpKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGxTLnByb3RvdHlwZSwiSnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5rcy5nZXQodGhpcy5Ocyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbFMucHJvdG90eXBlLktzPWZ1bmN0aW9uKCl7dGhpcy5zZXRJdGVtKHRoaXMuJHMsdGhpcy5Kcy5TcygpKX0sbFMucHJvdG90eXBlLnpzPWZ1bmN0aW9uKHQsZSxuKXtuPW5ldyB6RSh0aGlzLmN1cnJlbnRVc2VyLHQsZSxuKSx0PVdFKHRoaXMucGVyc2lzdGVuY2VLZXksdGhpcy5jdXJyZW50VXNlcix0KTt0aGlzLnNldEl0ZW0odCxuLlNzKCkpfSxsUy5wcm90b3R5cGUuSHM9ZnVuY3Rpb24odCl7dD1XRSh0aGlzLnBlcnNpc3RlbmNlS2V5LHRoaXMuY3VycmVudFVzZXIsdCk7dGhpcy5yZW1vdmVJdGVtKHQpfSxsUy5wcm90b3R5cGUuWHM9ZnVuY3Rpb24odCl7dD17Y2xpZW50SWQ6dGhpcy5OcyxvbmxpbmVTdGF0ZTp0fTt0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlVzLEpTT04uc3RyaW5naWZ5KHQpKX0sbFMucHJvdG90eXBlLllzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1IRSh0aGlzLnBlcnNpc3RlbmNlS2V5LHQpLG49bmV3IFFFKHQsZSxuKTt0aGlzLnNldEl0ZW0ocixuLlNzKCkpfSxsUy5wcm90b3R5cGUuWnM9ZnVuY3Rpb24oKXt0aGlzLnNldEl0ZW0odGhpcy5RcywidmFsdWUtbm90LXVzZWQiKX0sbFMucHJvdG90eXBlLnRpPWZ1bmN0aW9uKHQpe3Q9dGhpcy5Mcy5leGVjKHQpO3JldHVybiB0P3RbMV06bnVsbH0sbFMucHJvdG90eXBlLm5pPWZ1bmN0aW9uKHQsZSl7dD10aGlzLnRpKHQpO3JldHVybiBZRS5Wcyh0LGUpfSxsUy5wcm90b3R5cGUuc2k9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLkJzLmV4ZWModCksdD1OdW1iZXIoblsxXSksbj12b2lkIDAhPT1uWzJdP25bMl06bnVsbDtyZXR1cm4gekUuVnMobmV3IFBFKG4pLHQsZSl9LGxTLnByb3RvdHlwZS5yaT1mdW5jdGlvbih0LGUpe3Q9dGhpcy5xcy5leGVjKHQpLHQ9TnVtYmVyKHRbMV0pO3JldHVybiBRRS5Wcyh0LGUpfSxsUy5wcm90b3R5cGUuanM9ZnVuY3Rpb24odCl7cmV0dXJuIFhFLlZzKHQpfSxsUy5wcm90b3R5cGUuaWk9ZnVuY3Rpb24oZSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiBlLnVzZXIudWlkPT09dGhpcy5jdXJyZW50VXNlci51aWQ/WzIsdGhpcy5zeW5jRW5naW5lLnVpKGUuYmF0Y2hJZCxlLnN0YXRlLGUuZXJyb3IpXTooVnkoIlNoYXJlZENsaWVudFN0YXRlIiwiSWdub3JpbmcgbXV0YXRpb24gZm9yIG5vbi1hY3RpdmUgdXNlciAiK2UudXNlci51aWQpLFsyXSl9KX0pfSxsUy5wcm90b3R5cGUub2k9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3luY0VuZ2luZS5haSh0LnRhcmdldElkLHQuc3RhdGUsdC5lcnJvcil9LGxTLnByb3RvdHlwZS5laT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMscj1lP3RoaXMua3MuaW5zZXJ0KHQsZSk6dGhpcy5rcy5yZW1vdmUodCksaT10aGlzLkdzKHRoaXMua3MpLG89dGhpcy5HcyhyKSxzPVtdLGE9W107cmV0dXJuIG8uZm9yRWFjaChmdW5jdGlvbih0KXtpLmhhcyh0KXx8cy5wdXNoKHQpfSksaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe28uaGFzKHQpfHxhLnB1c2godCl9KSx0aGlzLnN5bmNFbmdpbmUuaGkocyxhKS50aGVuKGZ1bmN0aW9uKCl7bi5rcz1yfSl9LGxTLnByb3RvdHlwZS5Xcz1mdW5jdGlvbih0KXt0aGlzLmtzLmdldCh0LmNsaWVudElkKSYmdGhpcy5vbmxpbmVTdGF0ZUhhbmRsZXIodC5vbmxpbmVTdGF0ZSl9LGxTLnByb3RvdHlwZS5Hcz1mdW5jdGlvbih0KXt2YXIgbj1YdztyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bj1uLnVuaW9uV2l0aChlLmFjdGl2ZVRhcmdldElkcyl9KSxufSxsUyksWkU9KGhTLnByb3RvdHlwZS5hZGRQZW5kaW5nTXV0YXRpb249ZnVuY3Rpb24odCl7fSxoUy5wcm90b3R5cGUudXBkYXRlTXV0YXRpb25TdGF0ZT1mdW5jdGlvbih0LGUsbil7fSxoUy5wcm90b3R5cGUuYWRkTG9jYWxRdWVyeVRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5saS5Ecyh0KSx0aGlzLmZpW3RdfHwibm90LWN1cnJlbnQifSxoUy5wcm90b3R5cGUudXBkYXRlUXVlcnlTdGF0ZT1mdW5jdGlvbih0LGUsbil7dGhpcy5maVt0XT1lfSxoUy5wcm90b3R5cGUucmVtb3ZlTG9jYWxRdWVyeVRhcmdldD1mdW5jdGlvbih0KXt0aGlzLmxpLkNzKHQpfSxoUy5wcm90b3R5cGUuaXNMb2NhbFF1ZXJ5VGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpLmFjdGl2ZVRhcmdldElkcy5oYXModCl9LGhTLnByb3RvdHlwZS5jbGVhclF1ZXJ5U3RhdGU9ZnVuY3Rpb24odCl7ZGVsZXRlIHRoaXMuZmlbdF19LGhTLnByb3RvdHlwZS5nZXRBbGxBY3RpdmVRdWVyeVRhcmdldHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saS5hY3RpdmVUYXJnZXRJZHN9LGhTLnByb3RvdHlwZS5pc0FjdGl2ZVF1ZXJ5VGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpLmFjdGl2ZVRhcmdldElkcy5oYXModCl9LGhTLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxpPW5ldyBKRSxQcm9taXNlLnJlc29sdmUoKX0saFMucHJvdG90eXBlLmhhbmRsZVVzZXJDaGFuZ2U9ZnVuY3Rpb24odCxlLG4pe30saFMucHJvdG90eXBlLnNldE9ubGluZVN0YXRlPWZ1bmN0aW9uKHQpe30saFMucHJvdG90eXBlLnNodXRkb3duPWZ1bmN0aW9uKCl7fSxoUy5wcm90b3R5cGUud3JpdGVTZXF1ZW5jZU51bWJlcj1mdW5jdGlvbih0KXt9LGhTLnByb3RvdHlwZS5ub3RpZnlCdW5kbGVMb2FkZWQ9ZnVuY3Rpb24oKXt9LGhTKSx0Uz0oY1MucHJvdG90eXBlLmRpPWZ1bmN0aW9uKHQpe30sY1MucHJvdG90eXBlLnNodXRkb3duPWZ1bmN0aW9uKCl7fSxjUyksZVM9KHVTLnByb3RvdHlwZS5kaT1mdW5jdGlvbih0KXt0aGlzLmdpLnB1c2godCl9LHVTLnByb3RvdHlwZS5zaHV0ZG93bj1mdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvbmxpbmUiLHRoaXMud2kpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvZmZsaW5lIix0aGlzLm1pKX0sdVMucHJvdG90eXBlLnBpPWZ1bmN0aW9uKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy53aSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLHRoaXMubWkpfSx1Uy5wcm90b3R5cGUuX2k9ZnVuY3Rpb24oKXtWeSgiQ29ubmVjdGl2aXR5TW9uaXRvciIsIk5ldHdvcmsgY29ubmVjdGl2aXR5IGNoYW5nZWQ6IEFWQUlMQUJMRSIpO2Zvcih2YXIgdD0wLGU9dGhpcy5naTt0PGUubGVuZ3RoO3QrKykoMCxlW3RdKSgwKX0sdVMucHJvdG90eXBlLnlpPWZ1bmN0aW9uKCl7VnkoIkNvbm5lY3Rpdml0eU1vbml0b3IiLCJOZXR3b3JrIGNvbm5lY3Rpdml0eSBjaGFuZ2VkOiBVTkFWQUlMQUJMRSIpO2Zvcih2YXIgdD0wLGU9dGhpcy5naTt0PGUubGVuZ3RoO3QrKykoMCxlW3RdKSgxKX0sdVMueXQ9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmFkZEV2ZW50TGlzdGVuZXImJnZvaWQgMCE9PXdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyfSx1UyksblM9e0JhdGNoR2V0RG9jdW1lbnRzOiJiYXRjaEdldCIsQ29tbWl0OiJjb21taXQiLFJ1blF1ZXJ5OiJydW5RdWVyeSJ9LHJTPShhUy5wcm90b3R5cGUuSWk9ZnVuY3Rpb24odCl7dGhpcy5BaT10fSxhUy5wcm90b3R5cGUuUmk9ZnVuY3Rpb24odCl7dGhpcy5iaT10fSxhUy5wcm90b3R5cGUub25NZXNzYWdlPWZ1bmN0aW9uKHQpe3RoaXMudmk9dH0sYVMucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dGhpcy5UaSgpfSxhUy5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbih0KXt0aGlzLkVpKHQpfSxhUy5wcm90b3R5cGUuUGk9ZnVuY3Rpb24oKXt0aGlzLkFpKCl9LGFTLnByb3RvdHlwZS5WaT1mdW5jdGlvbih0KXt0aGlzLmJpKHQpfSxhUy5wcm90b3R5cGUuU2k9ZnVuY3Rpb24odCl7dGhpcy52aSh0KX0sYVMpLGlTPShzUy5wcm90b3R5cGUuTmk9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9dGhpcy54aShlLHQpO1Z5KCJSZXN0Q29ubmVjdGlvbiIsIlNlbmRpbmc6ICIsaSxuKTt0PXt9O3JldHVybiB0aGlzLkZpKHQsciksdGhpcy5raShlLGksdCxuKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBWeSgiUmVzdENvbm5lY3Rpb24iLCJSZWNlaXZlZDogIix0KSx0fSxmdW5jdGlvbih0KXt0aHJvdyBLeSgiUmVzdENvbm5lY3Rpb24iLGUrIiBmYWlsZWQgd2l0aCBlcnJvcjogIix0LCJ1cmw6ICIsaSwicmVxdWVzdDoiLG4pLHR9KX0sc1MucHJvdG90eXBlLk9pPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0aGlzLk5pKHQsZSxuLHIpfSxzUy5wcm90b3R5cGUuRmk9ZnVuY3Rpb24odCxlKXtpZih0WyJYLUdvb2ctQXBpLUNsaWVudCJdPSJnbC1qcy8gZmlyZS84LjMuMiIsdFsiWC1GaXJlYmFzZS1HTVBJRCJdPXRoaXMuZGF0YWJhc2VJbmZvLmFwcElkLHRbIkNvbnRlbnQtVHlwZSJdPSJ0ZXh0L3BsYWluIixlKWZvcih2YXIgbiBpbiBlLmF1dGhIZWFkZXJzKWUuYXV0aEhlYWRlcnMuaGFzT3duUHJvcGVydHkobikmJih0W25dPWUuYXV0aEhlYWRlcnNbbl0pfSxzUy5wcm90b3R5cGUueGk9ZnVuY3Rpb24odCxlKXt0PW5TW3RdO3JldHVybiB0aGlzLkRpKyIvdjEvIitlKyI6Iit0fSxYaShvUyxHRT1zUyksb1MucHJvdG90eXBlLmtpPWZ1bmN0aW9uKG8sZSxzLGEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe3ZhciBpPW5ldyBPeTtpLmxpc3Rlbk9uY2UoTnkuQ09NUExFVEUsZnVuY3Rpb24oKXt0cnl7c3dpdGNoKGkuZ2V0TGFzdEVycm9yQ29kZSgpKXtjYXNlIEN5Lk5PX0VSUk9SOnZhciB0PWkuZ2V0UmVzcG9uc2VKc29uKCk7VnkoIkNvbm5lY3Rpb24iLCJYSFIgcmVjZWl2ZWQ6IixKU09OLnN0cmluZ2lmeSh0KSksbih0KTticmVhaztjYXNlIEN5LlRJTUVPVVQ6VnkoIkNvbm5lY3Rpb24iLCdSUEMgIicrbysnIiB0aW1lZCBvdXQnKSxyKG5ldyBGeShNeS5ERUFETElORV9FWENFRURFRCwiUmVxdWVzdCB0aW1lIG91dCIpKTticmVhaztjYXNlIEN5LkhUVFBfRVJST1I6dmFyIGU9aS5nZXRTdGF0dXMoKTtWeSgiQ29ubmVjdGlvbiIsJ1JQQyAiJytvKyciIGZhaWxlZCB3aXRoIHN0YXR1czonLGUsInJlc3BvbnNlIHRleHQ6IixpLmdldFJlc3BvbnNlVGV4dCgpKSwwPGU/KHQ9aS5nZXRSZXNwb25zZUpzb24oKS5lcnJvcikmJnQuc3RhdHVzJiZ0Lm1lc3NhZ2U/KGU9dC5zdGF0dXMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKSxlPTA8PU9iamVjdC52YWx1ZXMoTXkpLmluZGV4T2YoZSk/ZTpNeS5VTktOT1dOLHIobmV3IEZ5KGUsdC5tZXNzYWdlKSkpOnIobmV3IEZ5KE15LlVOS05PV04sIlNlcnZlciByZXNwb25kZWQgd2l0aCBzdGF0dXMgIitpLmdldFN0YXR1cygpKSk6cihuZXcgRnkoTXkuVU5BVkFJTEFCTEUsIkNvbm5lY3Rpb24gZmFpbGVkLiIpKTticmVhaztkZWZhdWx0Okh5KCl9fWZpbmFsbHl7VnkoIkNvbm5lY3Rpb24iLCdSUEMgIicrbysnIiBjb21wbGV0ZWQuJyl9fSk7dmFyIHQ9SlNPTi5zdHJpbmdpZnkoYSk7aS5zZW5kKGUsIlBPU1QiLHQscywxNSl9KX0sb1MucHJvdG90eXBlLiRpPWZ1bmN0aW9uKHQsZSl7dmFyIG49W3RoaXMuRGksIi8iLCJnb29nbGUuZmlyZXN0b3JlLnYxLkZpcmVzdG9yZSIsIi8iLHQsIi9jaGFubmVsIl0scj1uZXcgd3ksaT1TeSgpLHQ9e2h0dHBTZXNzaW9uSWRQYXJhbToiZ3Nlc3Npb25pZCIsaW5pdE1lc3NhZ2VIZWFkZXJzOnt9LG1lc3NhZ2VVcmxQYXJhbXM6e2RhdGFiYXNlOiJwcm9qZWN0cy8iK3RoaXMuZGF0YWJhc2VJZC5wcm9qZWN0SWQrIi9kYXRhYmFzZXMvIit0aGlzLmRhdGFiYXNlSWQuZGF0YWJhc2V9LHNlbmRSYXdKc29uOiEwLHN1cHBvcnRzQ3Jvc3NEb21haW5YaHI6ITAsaW50ZXJuYWxDaGFubmVsUGFyYW1zOntmb3J3YXJkQ2hhbm5lbFJlcXVlc3RUaW1lb3V0TXM6NmU1fSxmb3JjZUxvbmdQb2xsaW5nOnRoaXMuZm9yY2VMb25nUG9sbGluZyxkZXRlY3RCdWZmZXJpbmdQcm94eTp0aGlzLmF1dG9EZXRlY3RMb25nUG9sbGluZ307dGhpcy5GaSh0LmluaXRNZXNzYWdlSGVhZGVycyxlKSx2bygpfHx5bygpfHwwPD1wbygpLmluZGV4T2YoIkVsZWN0cm9uLyIpfHwoMDw9KGU9cG8oKSkuaW5kZXhPZigiTVNJRSAiKXx8MDw9ZS5pbmRleE9mKCJUcmlkZW50LyIpKXx8MDw9cG8oKS5pbmRleE9mKCJNU0FwcEhvc3QvIil8fGdvKCl8fCh0Lmh0dHBIZWFkZXJzT3ZlcndyaXRlUGFyYW09IiRodHRwSGVhZGVycyIpO249bi5qb2luKCIiKTtWeSgiQ29ubmVjdGlvbiIsIkNyZWF0aW5nIFdlYkNoYW5uZWw6ICIrbix0KTt2YXIgbz1yLmNyZWF0ZVdlYkNoYW5uZWwobix0KSxzPSExLGE9ITEsdT1uZXcgclMoe0VpOmZ1bmN0aW9uKHQpe2E/VnkoIkNvbm5lY3Rpb24iLCJOb3Qgc2VuZGluZyBiZWNhdXNlIFdlYkNoYW5uZWwgaXMgY2xvc2VkOiIsdCk6KHN8fChWeSgiQ29ubmVjdGlvbiIsIk9wZW5pbmcgV2ViQ2hhbm5lbCB0cmFuc3BvcnQuIiksby5vcGVuKCkscz0hMCksVnkoIkNvbm5lY3Rpb24iLCJXZWJDaGFubmVsIHNlbmRpbmc6Iix0KSxvLnNlbmQodCkpfSxUaTpmdW5jdGlvbigpe3JldHVybiBvLmNsb3NlKCl9fSksdD1mdW5jdGlvbih0LGUsbil7dC5saXN0ZW4oZSxmdW5jdGlvbih0KXt0cnl7bih0KX1jYXRjaCh0KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgdH0sMCl9fSl9O3JldHVybiB0KG8sUHkuRXZlbnRUeXBlLk9QRU4sZnVuY3Rpb24oKXthfHxWeSgiQ29ubmVjdGlvbiIsIldlYkNoYW5uZWwgdHJhbnNwb3J0IG9wZW5lZC4iKX0pLHQobyxQeS5FdmVudFR5cGUuQ0xPU0UsZnVuY3Rpb24oKXthfHwoYT0hMCxWeSgiQ29ubmVjdGlvbiIsIldlYkNoYW5uZWwgdHJhbnNwb3J0IGNsb3NlZCIpLHUuVmkoKSl9KSx0KG8sUHkuRXZlbnRUeXBlLkVSUk9SLGZ1bmN0aW9uKHQpe2F8fChhPSEwLEt5KCJDb25uZWN0aW9uIiwiV2ViQ2hhbm5lbCB0cmFuc3BvcnQgZXJyb3JlZDoiLHQpLHUuVmkobmV3IEZ5KE15LlVOQVZBSUxBQkxFLCJUaGUgb3BlcmF0aW9uIGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQiKSkpfSksdChvLFB5LkV2ZW50VHlwZS5NRVNTQUdFLGZ1bmN0aW9uKHQpe3ZhciBlLG4scixpO2F8fChHeSghIShlPXQuZGF0YVswXSkpLChuPWUuZXJyb3J8fChudWxsPT09KGk9ZVswXSl8fHZvaWQgMD09PWk/dm9pZCAwOmkuZXJyb3IpKT8oVnkoIkNvbm5lY3Rpb24iLCJXZWJDaGFubmVsIHJlY2VpdmVkIGVycm9yOiIsbikscj1uLnN0YXR1cyx0PWZ1bmN0aW9uKCl7dmFyIHQ9U3dbcl07aWYodm9pZCAwIT09dClyZXR1cm4gRHcodCl9KCksaT1uLm1lc3NhZ2Usdm9pZCAwPT09dCYmKHQ9TXkuSU5URVJOQUwsaT0iVW5rbm93biBlcnJvciBzdGF0dXM6ICIrcisiIHdpdGggbWVzc2FnZSAiK24ubWVzc2FnZSksYT0hMCx1LlZpKG5ldyBGeSh0LGkpKSxvLmNsb3NlKCkpOihWeSgiQ29ubmVjdGlvbiIsIldlYkNoYW5uZWwgcmVjZWl2ZWQ6IixlKSx1LlNpKGUpKSl9KSx0KGksQXkuU1RBVF9FVkVOVCxmdW5jdGlvbih0KXt0LnN0YXQ9PT1reT9WeSgiQ29ubmVjdGlvbiIsIkRldGVjdGVkIGJ1ZmZlcmluZyBwcm94eSIpOnQuc3RhdD09PVJ5JiZWeSgiQ29ubmVjdGlvbiIsIkRldGVjdGVkIG5vIGJ1ZmZlcmluZyBwcm94eSIpfSksc2V0VGltZW91dChmdW5jdGlvbigpe3UuUGkoKX0sMCksdX0sb1MpO2Z1bmN0aW9uIG9TKHQpe3ZhciBlPXRoaXM7cmV0dXJuKGU9R0UuY2FsbCh0aGlzLHQpfHx0aGlzKS5mb3JjZUxvbmdQb2xsaW5nPXQuZm9yY2VMb25nUG9sbGluZyxlLmF1dG9EZXRlY3RMb25nUG9sbGluZz10LmF1dG9EZXRlY3RMb25nUG9sbGluZyxlfWZ1bmN0aW9uIHNTKHQpe3RoaXMuZGF0YWJhc2VJbmZvPXQsdGhpcy5kYXRhYmFzZUlkPXQuZGF0YWJhc2VJZDt2YXIgZT10LnNzbD8iaHR0cHMiOiJodHRwIjt0aGlzLkRpPWUrIjovLyIrdC5ob3N0LHRoaXMuQ2k9InByb2plY3RzLyIrdGhpcy5kYXRhYmFzZUlkLnByb2plY3RJZCsiL2RhdGFiYXNlcy8iK3RoaXMuZGF0YWJhc2VJZC5kYXRhYmFzZSsiL2RvY3VtZW50cyJ9ZnVuY3Rpb24gYVModCl7dGhpcy5FaT10LkVpLHRoaXMuVGk9dC5UaX1mdW5jdGlvbiB1Uygpe3ZhciB0PXRoaXM7dGhpcy53aT1mdW5jdGlvbigpe3JldHVybiB0Ll9pKCl9LHRoaXMubWk9ZnVuY3Rpb24oKXtyZXR1cm4gdC55aSgpfSx0aGlzLmdpPVtdLHRoaXMucGkoKX1mdW5jdGlvbiBjUygpe31mdW5jdGlvbiBoUygpe3RoaXMubGk9bmV3IEpFLHRoaXMuZmk9e30sdGhpcy5vbmxpbmVTdGF0ZUhhbmRsZXI9bnVsbCx0aGlzLnNlcXVlbmNlTnVtYmVySGFuZGxlcj1udWxsfWZ1bmN0aW9uIGxTKHQsZSxuLHIsaSl7dGhpcy53aW5kb3c9dCx0aGlzLlNlPWUsdGhpcy5wZXJzaXN0ZW5jZUtleT1uLHRoaXMuTnM9cix0aGlzLnN5bmNFbmdpbmU9bnVsbCx0aGlzLm9ubGluZVN0YXRlSGFuZGxlcj1udWxsLHRoaXMuc2VxdWVuY2VOdW1iZXJIYW5kbGVyPW51bGwsdGhpcy54cz10aGlzLkZzLmJpbmQodGhpcyksdGhpcy5rcz1uZXcgeHcoWXkpLHRoaXMuc3RhcnRlZD0hMSx0aGlzLk9zPVtdO249bi5yZXBsYWNlKC9bLiorP14ke30oKXxbXF1cXF0vZywiXFwkJiIpO3RoaXMuc3RvcmFnZT10aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UsdGhpcy5jdXJyZW50VXNlcj1pLHRoaXMuJHM9S0UodGhpcy5wZXJzaXN0ZW5jZUtleSx0aGlzLk5zKSx0aGlzLk1zPSJmaXJlc3RvcmVfc2VxdWVuY2VfbnVtYmVyXyIrdGhpcy5wZXJzaXN0ZW5jZUtleSx0aGlzLmtzPXRoaXMua3MuaW5zZXJ0KHRoaXMuTnMsbmV3IEpFKSx0aGlzLkxzPW5ldyBSZWdFeHAoIl5maXJlc3RvcmVfY2xpZW50c18iK24rIl8oW15fXSopJCIpLHRoaXMuQnM9bmV3IFJlZ0V4cCgiXmZpcmVzdG9yZV9tdXRhdGlvbnNfIituKyJfKFxcZCspKD86XyguKikpPyQiKSx0aGlzLnFzPW5ldyBSZWdFeHAoIl5maXJlc3RvcmVfdGFyZ2V0c18iK24rIl8oXFxkKykkIiksdGhpcy5Vcz0iZmlyZXN0b3JlX29ubGluZV9zdGF0ZV8iK3RoaXMucGVyc2lzdGVuY2VLZXksdGhpcy5Rcz0iZmlyZXN0b3JlX2J1bmRsZV9sb2FkZWRfIit0aGlzLnBlcnNpc3RlbmNlS2V5LHRoaXMud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHRoaXMueHMpfWZ1bmN0aW9uIGZTKCl7dGhpcy5hY3RpdmVUYXJnZXRJZHM9WHd9ZnVuY3Rpb24gcFModCxlKXt0aGlzLmNsaWVudElkPXQsdGhpcy5vbmxpbmVTdGF0ZT1lfWZ1bmN0aW9uIGRTKHQsZSl7dGhpcy5jbGllbnRJZD10LHRoaXMuYWN0aXZlVGFyZ2V0SWRzPWV9ZnVuY3Rpb24gdlModCxlLG4pe3RoaXMudGFyZ2V0SWQ9dCx0aGlzLnN0YXRlPWUsdGhpcy5lcnJvcj1ufWZ1bmN0aW9uIGdTKHQsZSxuLHIpe3RoaXMudXNlcj10LHRoaXMuYmF0Y2hJZD1lLHRoaXMuc3RhdGU9bix0aGlzLmVycm9yPXJ9ZnVuY3Rpb24geVMoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6bnVsbH1mdW5jdGlvbiBtUygpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6bnVsbH1mdW5jdGlvbiBiUyh0KXtyZXR1cm4gbmV3IGZfKHQsITApfWZ1bmN0aW9uIHdTKHQsZSxuLHIsaSl7dmFyIG89dGhpczt0aGlzLmxvY2FsU3RvcmU9dCx0aGlzLmRhdGFzdG9yZT1lLHRoaXMuYXN5bmNRdWV1ZT1uLHRoaXMucmVtb3RlU3luY2VyPXt9LHRoaXMua3I9W10sdGhpcy5Pcj1uZXcgTWFwLHRoaXMuJHI9bmV3IFNldCx0aGlzLk1yPVtdLHRoaXMuTHI9aSx0aGlzLkxyLmRpKGZ1bmN0aW9uKHQpe24uZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaShvLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBLUyh0aGlzKT8oVnkoIlJlbW90ZVN0b3JlIiwiUmVzdGFydGluZyBzdHJlYW1zIGZvciBuZXR3b3JrIHJlYWNoYWJpbGl0eSBjaGFuZ2UuIiksWzQsZnVuY3Rpb24obil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKGU9bikuJHIuYWRkKDQpLFs0LE1TKGUpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLGUuQnIuc2V0KCJVbmtub3duIiksZS4kci5kZWxldGUoNCksWzQsTFMoZSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9KHRoaXMpXSk6WzMsMl07Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzJdfX0pfSl9KX0pLHRoaXMuQnI9bmV3IEFTKG4scil9dmFyIF9TLElTLFRTLEVTPSh4Uy5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnFpPTB9LHhTLnByb3RvdHlwZS5LaT1mdW5jdGlvbigpe3RoaXMucWk9dGhpcy5CaX0seFMucHJvdG90eXBlLmppPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5jYW5jZWwoKTt2YXIgbj1NYXRoLmZsb29yKHRoaXMucWkrdGhpcy5XaSgpKSxyPU1hdGgubWF4KDAsRGF0ZS5ub3coKS10aGlzLlFpKSxpPU1hdGgubWF4KDAsbi1yKTswPGkmJlZ5KCJFeHBvbmVudGlhbEJhY2tvZmYiLCJCYWNraW5nIG9mZiBmb3IgIitpKyIgbXMgKGJhc2UgZGVsYXk6ICIrdGhpcy5xaSsiIG1zLCBkZWxheSB3aXRoIGppdHRlcjogIituKyIgbXMsIGxhc3QgYXR0ZW1wdDogIityKyIgbXMgYWdvKSIpLHRoaXMuVWk9dGhpcy5TZS5lbnF1ZXVlQWZ0ZXJEZWxheSh0aGlzLnRpbWVySWQsaSxmdW5jdGlvbigpe3JldHVybiBlLlFpPURhdGUubm93KCksdCgpfSksdGhpcy5xaSo9dGhpcy5MaSx0aGlzLnFpPHRoaXMuTWkmJih0aGlzLnFpPXRoaXMuTWkpLHRoaXMucWk+dGhpcy5CaSYmKHRoaXMucWk9dGhpcy5CaSl9LHhTLnByb3RvdHlwZS5HaT1mdW5jdGlvbigpe251bGwhPT10aGlzLlVpJiYodGhpcy5VaS5za2lwRGVsYXkoKSx0aGlzLlVpPW51bGwpfSx4Uy5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuVWkmJih0aGlzLlVpLmNhbmNlbCgpLHRoaXMuVWk9bnVsbCl9LHhTLnByb3RvdHlwZS5XaT1mdW5jdGlvbigpe3JldHVybihNYXRoLnJhbmRvbSgpLS41KSp0aGlzLnFpfSx4UyksU249KERTLnByb3RvdHlwZS50cj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5zdGF0ZXx8Mj09PXRoaXMuc3RhdGV8fDQ9PT10aGlzLnN0YXRlfSxEUy5wcm90b3R5cGUuZXI9ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRoaXMuc3RhdGV9LERTLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpezMhPT10aGlzLnN0YXRlP3RoaXMuYXV0aCgpOnRoaXMubnIoKX0sRFMucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy50cigpP1s0LHRoaXMuY2xvc2UoMCldOlszLDJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSxEUy5wcm90b3R5cGUuc3I9ZnVuY3Rpb24oKXt0aGlzLnN0YXRlPTAsdGhpcy5aaS5yZXNldCgpfSxEUy5wcm90b3R5cGUuaXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuZXIoKSYmbnVsbD09PXRoaXMuWGkmJih0aGlzLlhpPXRoaXMuU2UuZW5xdWV1ZUFmdGVyRGVsYXkodGhpcy56aSw2ZTQsZnVuY3Rpb24oKXtyZXR1cm4gdC5ycigpfSkpfSxEUy5wcm90b3R5cGUuY3I9ZnVuY3Rpb24odCl7dGhpcy51cigpLHRoaXMuc3RyZWFtLnNlbmQodCl9LERTLnByb3RvdHlwZS5ycj1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lcigpP1syLHRoaXMuY2xvc2UoMCldOlsyXX0pfSl9LERTLnByb3RvdHlwZS51cj1mdW5jdGlvbigpe3RoaXMuWGkmJih0aGlzLlhpLmNhbmNlbCgpLHRoaXMuWGk9bnVsbCl9LERTLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbihlLG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnVyKCksdGhpcy5aaS5jYW5jZWwoKSx0aGlzLllpKyssMyE9PWU/dGhpcy5aaS5yZXNldCgpOm4mJm4uY29kZT09PU15LlJFU09VUkNFX0VYSEFVU1RFRD8oQnkobi50b1N0cmluZygpKSxCeSgiVXNpbmcgbWF4aW11bSBiYWNrb2ZmIGRlbGF5IHRvIHByZXZlbnQgb3ZlcmxvYWRpbmcgdGhlIGJhY2tlbmQuIiksdGhpcy5aaS5LaSgpKTpuJiZuLmNvZGU9PT1NeS5VTkFVVEhFTlRJQ0FURUQmJnRoaXMuSmkuaW52YWxpZGF0ZVRva2VuKCksbnVsbCE9PXRoaXMuc3RyZWFtJiYodGhpcy5hcigpLHRoaXMuc3RyZWFtLmNsb3NlKCksdGhpcy5zdHJlYW09bnVsbCksdGhpcy5zdGF0ZT1lLFs0LHRoaXMubGlzdGVuZXIuUmkobildO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9LERTLnByb3RvdHlwZS5hcj1mdW5jdGlvbigpe30sRFMucHJvdG90eXBlLmF1dGg9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMuc3RhdGU9MTt2YXIgdD10aGlzLmhyKHRoaXMuWWkpLGU9dGhpcy5ZaTt0aGlzLkppLmdldFRva2VuKCkudGhlbihmdW5jdGlvbih0KXtuLllpPT09ZSYmbi5scih0KX0sZnVuY3Rpb24oZSl7dChmdW5jdGlvbigpe3ZhciB0PW5ldyBGeShNeS5VTktOT1dOLCJGZXRjaGluZyBhdXRoIHRva2VuIGZhaWxlZDogIitlLm1lc3NhZ2UpO3JldHVybiBuLmRyKHQpfSl9KX0sRFMucHJvdG90eXBlLmxyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmhyKHRoaXMuWWkpO3RoaXMuc3RyZWFtPXRoaXMud3IodCksdGhpcy5zdHJlYW0uSWkoZnVuY3Rpb24oKXtuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuc3RhdGU9MixlLmxpc3RlbmVyLklpKCl9KX0pLHRoaXMuc3RyZWFtLlJpKGZ1bmN0aW9uKHQpe24oZnVuY3Rpb24oKXtyZXR1cm4gZS5kcih0KX0pfSksdGhpcy5zdHJlYW0ub25NZXNzYWdlKGZ1bmN0aW9uKHQpe24oZnVuY3Rpb24oKXtyZXR1cm4gZS5vbk1lc3NhZ2UodCl9KX0pfSxEUy5wcm90b3R5cGUubnI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc3RhdGU9NCx0aGlzLlppLmppKGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0YXRlPTAsdGhpcy5zdGFydCgpLFsyXX0pfSl9KX0sRFMucHJvdG90eXBlLmRyPWZ1bmN0aW9uKHQpe3JldHVybiBWeSgiUGVyc2lzdGVudFN0cmVhbSIsImNsb3NlIHdpdGggZXJyb3I6ICIrdCksdGhpcy5zdHJlYW09bnVsbCx0aGlzLmNsb3NlKDMsdCl9LERTLnByb3RvdHlwZS5ocj1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3JldHVybiBmdW5jdGlvbih0KXtuLlNlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gbi5ZaT09PWU/dCgpOihWeSgiUGVyc2lzdGVudFN0cmVhbSIsInN0cmVhbSBjYWxsYmFjayBza2lwcGVkIGJ5IGdldENsb3NlR3VhcmRlZERpc3BhdGNoZXIuIiksUHJvbWlzZS5yZXNvbHZlKCkpfSl9fSxEUyksU1M9KFhpKE9TLFRTPVNuKSxPUy5wcm90b3R5cGUud3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSGkuJGkoIkxpc3RlbiIsdCl9LE9TLnByb3RvdHlwZS5vbk1lc3NhZ2U9ZnVuY3Rpb24odCl7dGhpcy5aaS5yZXNldCgpO3ZhciBlPWZ1bmN0aW9uKHQsZSl7aWYoInRhcmdldENoYW5nZSJpbiBlKXtlLnRhcmdldENoYW5nZTt2YXIgbj0iTk9fQ0hBTkdFIj09PShvPWUudGFyZ2V0Q2hhbmdlLnRhcmdldENoYW5nZVR5cGV8fCJOT19DSEFOR0UiKT8wOiJBREQiPT09bz8xOiJSRU1PVkUiPT09bz8yOiJDVVJSRU5UIj09PW8/MzoiUkVTRVQiPT09bz80Okh5KCkscj1lLnRhcmdldENoYW5nZS50YXJnZXRJZHN8fFtdLGk9KHM9ZS50YXJnZXRDaGFuZ2UucmVzdW1lVG9rZW4sdC5JPyhHeSh2b2lkIDA9PT1zfHwic3RyaW5nIj09dHlwZW9mIHMpLGxtLmZyb21CYXNlNjRTdHJpbmcoc3x8IiIpKTooR3kodm9pZCAwPT09c3x8cyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpLGxtLmZyb21VaW50OEFycmF5KHN8fG5ldyBVaW50OEFycmF5KSkpLG89KGE9ZS50YXJnZXRDaGFuZ2UuY2F1c2UpJiYodT12b2lkIDA9PT0oYz1hKS5jb2RlP015LlVOS05PV046RHcoYy5jb2RlKSxuZXcgRnkodSxjLm1lc3NhZ2V8fCIiKSkscz1uZXcgZV8obixyLGksb3x8bnVsbCl9ZWxzZSBpZigiZG9jdW1lbnRDaGFuZ2UiaW4gZSl7ZS5kb2N1bWVudENoYW5nZSwobj1lLmRvY3VtZW50Q2hhbmdlKS5kb2N1bWVudCxuLmRvY3VtZW50Lm5hbWUsbi5kb2N1bWVudC51cGRhdGVUaW1lO3ZhciByPWJfKHQsbi5kb2N1bWVudC5uYW1lKSxpPXZfKG4uZG9jdW1lbnQudXBkYXRlVGltZSksYT1uZXcgcW0oe21hcFZhbHVlOntmaWVsZHM6bi5kb2N1bWVudC5maWVsZHN9fSksdT0obz1CbS5uZXdGb3VuZERvY3VtZW50KHIsaSxhKSxuLnRhcmdldElkc3x8W10pLGM9bi5yZW1vdmVkVGFyZ2V0SWRzfHxbXTtzPW5ldyBadyh1LGMsby5rZXksbyl9ZWxzZSBpZigiZG9jdW1lbnREZWxldGUiaW4gZSllLmRvY3VtZW50RGVsZXRlLChuPWUuZG9jdW1lbnREZWxldGUpLmRvY3VtZW50LHI9Yl8odCxuLmRvY3VtZW50KSxpPW4ucmVhZFRpbWU/dl8obi5yZWFkVGltZSk6WnkubWluKCksYT1CbS5uZXdOb0RvY3VtZW50KHIsaSksbz1uLnJlbW92ZWRUYXJnZXRJZHN8fFtdLHM9bmV3IFp3KFtdLG8sYS5rZXksYSk7ZWxzZSBpZigiZG9jdW1lbnRSZW1vdmUiaW4gZSllLmRvY3VtZW50UmVtb3ZlLChuPWUuZG9jdW1lbnRSZW1vdmUpLmRvY3VtZW50LHI9Yl8odCxuLmRvY3VtZW50KSxpPW4ucmVtb3ZlZFRhcmdldElkc3x8W10scz1uZXcgWncoW10saSxyLG51bGwpO2Vsc2V7aWYoISgiZmlsdGVyImluIGUpKXJldHVybiBIeSgpO2UuZmlsdGVyO2U9ZS5maWx0ZXI7ZS50YXJnZXRJZCxuPWUuY291bnR8fDAscj1uZXcgRXcobiksaT1lLnRhcmdldElkLHM9bmV3IHRfKGkscil9cmV0dXJuIHN9KHRoaXMuUix0KSx0PWZ1bmN0aW9uKHQpe2lmKCEoInRhcmdldENoYW5nZSJpbiB0KSlyZXR1cm4gWnkubWluKCk7dD10LnRhcmdldENoYW5nZTtyZXR1cm4oIXQudGFyZ2V0SWRzfHwhdC50YXJnZXRJZHMubGVuZ3RoKSYmdC5yZWFkVGltZT92Xyh0LnJlYWRUaW1lKTpaeS5taW4oKX0odCk7cmV0dXJuIHRoaXMubGlzdGVuZXIuX3IoZSx0KX0sT1MucHJvdG90eXBlLm1yPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpPXt9O2kuZGF0YWJhc2U9SV8odGhpcy5SKSxpLmFkZFRhcmdldD0oZT10aGlzLlIsKHI9UW0ocj0obj10KS50YXJnZXQpP3tkb2N1bWVudHM6QV8oZSxyKX06e3F1ZXJ5OmtfKGUscil9KS50YXJnZXRJZD1uLnRhcmdldElkLDA8bi5yZXN1bWVUb2tlbi5hcHByb3hpbWF0ZUJ5dGVTaXplKCk/ci5yZXN1bWVUb2tlbj1kXyhlLG4ucmVzdW1lVG9rZW4pOjA8bi5zbmFwc2hvdFZlcnNpb24uY29tcGFyZVRvKFp5Lm1pbigpKSYmKHIucmVhZFRpbWU9cF8oZSxuLnNuYXBzaG90VmVyc2lvbi50b1RpbWVzdGFtcCgpKSkscik7dmFyIG8sdD0odGhpcy5SLG89dCxudWxsPT0odD1mdW5jdGlvbigpe3N3aXRjaChvLnB1cnBvc2Upe2Nhc2UgMDpyZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuImV4aXN0ZW5jZS1maWx0ZXItbWlzbWF0Y2giO2Nhc2UgMjpyZXR1cm4ibGltYm8tZG9jdW1lbnQiO2RlZmF1bHQ6cmV0dXJuIEh5KCl9fSgpKT9udWxsOnsiZ29vZy1saXN0ZW4tdGFncyI6dH0pO3QmJihpLmxhYmVscz10KSx0aGlzLmNyKGkpfSxPUy5wcm90b3R5cGUueXI9ZnVuY3Rpb24odCl7dmFyIGU9e307ZS5kYXRhYmFzZT1JXyh0aGlzLlIpLGUucmVtb3ZlVGFyZ2V0PXQsdGhpcy5jcihlKX0sT1MpLENTPShYaShQUyxJUz1TbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFBTLnByb3RvdHlwZSwicHIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ncn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxQUy5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLmdyPSExLHRoaXMubGFzdFN0cmVhbVRva2VuPXZvaWQgMCxJUy5wcm90b3R5cGUuc3RhcnQuY2FsbCh0aGlzKX0sUFMucHJvdG90eXBlLmFyPWZ1bmN0aW9uKCl7dGhpcy5nciYmdGhpcy5FcihbXSl9LFBTLnByb3RvdHlwZS53cj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5IaS4kaSgiV3JpdGUiLHQpfSxQUy5wcm90b3R5cGUub25NZXNzYWdlPWZ1bmN0aW9uKHQpe2lmKEd5KCEhdC5zdHJlYW1Ub2tlbiksdGhpcy5sYXN0U3RyZWFtVG9rZW49dC5zdHJlYW1Ub2tlbix0aGlzLmdyKXt0aGlzLlppLnJlc2V0KCk7dmFyIGU9KG49dC53cml0ZVJlc3VsdHMscj10LmNvbW1pdFRpbWUsbiYmMDxuLmxlbmd0aD8oR3kodm9pZCAwIT09ciksbi5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG49ciwodD0oZT10KS51cGRhdGVUaW1lP3ZfKGUudXBkYXRlVGltZSk6dl8obikpLmlzRXF1YWwoWnkubWluKCkpJiYodD12XyhuKSksbmV3IGF3KHQsZS50cmFuc2Zvcm1SZXN1bHRzfHxbXSk7dmFyIGUsbn0pKTpbXSksbj12Xyh0LmNvbW1pdFRpbWUpO3JldHVybiB0aGlzLmxpc3RlbmVyLlRyKG4sZSl9dmFyIG4scjtyZXR1cm4gR3koIXQud3JpdGVSZXN1bHRzfHwwPT09dC53cml0ZVJlc3VsdHMubGVuZ3RoKSx0aGlzLmdyPSEwLHRoaXMubGlzdGVuZXIuSXIoKX0sUFMucHJvdG90eXBlLkFyPWZ1bmN0aW9uKCl7dmFyIHQ9e307dC5kYXRhYmFzZT1JXyh0aGlzLlIpLHRoaXMuY3IodCl9LFBTLnByb3RvdHlwZS5Fcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHQ9e3N0cmVhbVRva2VuOnRoaXMubGFzdFN0cmVhbVRva2VuLHdyaXRlczp0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gQ18oZS5SLHQpfSl9O3RoaXMuY3IodCl9LFBTKSxOUz0oWGkoUlMsX1M9ZnVuY3Rpb24oKXt9KSxSUy5wcm90b3R5cGUuYnI9ZnVuY3Rpb24oKXtpZih0aGlzLlJyKXRocm93IG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLCJUaGUgY2xpZW50IGhhcyBhbHJlYWR5IGJlZW4gdGVybWluYXRlZC4iKX0sUlMucHJvdG90eXBlLk5pPWZ1bmN0aW9uKGUsbixyKXt2YXIgaT10aGlzO3JldHVybiB0aGlzLmJyKCksdGhpcy5jcmVkZW50aWFscy5nZXRUb2tlbigpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGkuSGkuTmkoZSxuLHIsdCl9KS5jYXRjaChmdW5jdGlvbih0KXt0aHJvdyB0LmNvZGU9PT1NeS5VTkFVVEhFTlRJQ0FURUQmJmkuY3JlZGVudGlhbHMuaW52YWxpZGF0ZVRva2VuKCksdH0pfSxSUy5wcm90b3R5cGUuT2k9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPXRoaXM7cmV0dXJuIHRoaXMuYnIoKSx0aGlzLmNyZWRlbnRpYWxzLmdldFRva2VuKCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaS5IaS5PaShlLG4scix0KX0pLmNhdGNoKGZ1bmN0aW9uKHQpe3Rocm93IHQuY29kZT09PU15LlVOQVVUSEVOVElDQVRFRCYmaS5jcmVkZW50aWFscy5pbnZhbGlkYXRlVG9rZW4oKSx0fSl9LFJTLnByb3RvdHlwZS50ZXJtaW5hdGU9ZnVuY3Rpb24oKXt0aGlzLlJyPSExfSxSUyksQVM9KGtTLnByb3RvdHlwZS5Tcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7MD09PXRoaXMudnImJih0aGlzLkRyKCJVbmtub3duIiksdGhpcy5Qcj10aGlzLmFzeW5jUXVldWUuZW5xdWV1ZUFmdGVyRGVsYXkoIm9ubGluZV9zdGF0ZV90aW1lb3V0IiwxZTQsZnVuY3Rpb24oKXtyZXR1cm4gdC5Qcj1udWxsLHQuQ3IoIkJhY2tlbmQgZGlkbid0IHJlc3BvbmQgd2l0aGluIDEwIHNlY29uZHMuIiksdC5EcigiT2ZmbGluZSIpLFByb21pc2UucmVzb2x2ZSgpfSkpfSxrUy5wcm90b3R5cGUuTnI9ZnVuY3Rpb24odCl7Ik9ubGluZSI9PT10aGlzLnN0YXRlP3RoaXMuRHIoIlVua25vd24iKToodGhpcy52cisrLDE8PXRoaXMudnImJih0aGlzLkZyKCksdGhpcy5DcigiQ29ubmVjdGlvbiBmYWlsZWQgMSB0aW1lcy4gTW9zdCByZWNlbnQgZXJyb3I6ICIrdC50b1N0cmluZygpKSx0aGlzLkRyKCJPZmZsaW5lIikpKX0sa1MucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt0aGlzLkZyKCksdGhpcy52cj0wLCJPbmxpbmUiPT09dCYmKHRoaXMuVnI9ITEpLHRoaXMuRHIodCl9LGtTLnByb3RvdHlwZS5Ecj1mdW5jdGlvbih0KXt0IT09dGhpcy5zdGF0ZSYmKHRoaXMuc3RhdGU9dCx0aGlzLm9ubGluZVN0YXRlSGFuZGxlcih0KSl9LGtTLnByb3RvdHlwZS5Dcj1mdW5jdGlvbih0KXt0PSJDb3VsZCBub3QgcmVhY2ggQ2xvdWQgRmlyZXN0b3JlIGJhY2tlbmQuICIrdCsiXG5UaGlzIHR5cGljYWxseSBpbmRpY2F0ZXMgdGhhdCB5b3VyIGRldmljZSBkb2VzIG5vdCBoYXZlIGEgaGVhbHRoeSBJbnRlcm5ldCBjb25uZWN0aW9uIGF0IHRoZSBtb21lbnQuIFRoZSBjbGllbnQgd2lsbCBvcGVyYXRlIGluIG9mZmxpbmUgbW9kZSB1bnRpbCBpdCBpcyBhYmxlIHRvIHN1Y2Nlc3NmdWxseSBjb25uZWN0IHRvIHRoZSBiYWNrZW5kLiI7dGhpcy5Wcj8oQnkodCksdGhpcy5Wcj0hMSk6VnkoIk9ubGluZVN0YXRlVHJhY2tlciIsdCl9LGtTLnByb3RvdHlwZS5Gcj1mdW5jdGlvbigpe251bGwhPT10aGlzLlByJiYodGhpcy5Qci5jYW5jZWwoKSx0aGlzLlByPW51bGwpfSxrUyk7ZnVuY3Rpb24ga1ModCxlKXt0aGlzLmFzeW5jUXVldWU9dCx0aGlzLm9ubGluZVN0YXRlSGFuZGxlcj1lLHRoaXMuc3RhdGU9IlVua25vd24iLHRoaXMudnI9MCx0aGlzLlByPW51bGwsdGhpcy5Wcj0hMH1mdW5jdGlvbiBSUyh0LGUsbil7dmFyIHI9dGhpcztyZXR1cm4ocj1fUy5jYWxsKHRoaXMpfHx0aGlzKS5jcmVkZW50aWFscz10LHIuSGk9ZSxyLlI9bixyLlJyPSExLHJ9ZnVuY3Rpb24gUFModCxlLG4scixpKXt2YXIgbz10aGlzO3JldHVybihvPUlTLmNhbGwodGhpcyx0LCJ3cml0ZV9zdHJlYW1fY29ubmVjdGlvbl9iYWNrb2ZmIiwid3JpdGVfc3RyZWFtX2lkbGUiLGUsbixpKXx8dGhpcykuUj1yLG8uZ3I9ITEsb31mdW5jdGlvbiBPUyh0LGUsbixyLGkpe3ZhciBvPXRoaXM7cmV0dXJuKG89VFMuY2FsbCh0aGlzLHQsImxpc3Rlbl9zdHJlYW1fY29ubmVjdGlvbl9iYWNrb2ZmIiwibGlzdGVuX3N0cmVhbV9pZGxlIixlLG4saSl8fHRoaXMpLlI9cixvfWZ1bmN0aW9uIERTKHQsZSxuLHIsaSxvKXt0aGlzLlNlPXQsdGhpcy56aT1uLHRoaXMuSGk9cix0aGlzLkppPWksdGhpcy5saXN0ZW5lcj1vLHRoaXMuc3RhdGU9MCx0aGlzLllpPTAsdGhpcy5YaT1udWxsLHRoaXMuc3RyZWFtPW51bGwsdGhpcy5aaT1uZXcgRVModCxlKX1mdW5jdGlvbiB4Uyh0LGUsbixyLGkpe3ZvaWQgMD09PW4mJihuPTFlMyksdm9pZCAwPT09ciYmKHI9MS41KSx2b2lkIDA9PT1pJiYoaT02ZTQpLHRoaXMuU2U9dCx0aGlzLnRpbWVySWQ9ZSx0aGlzLk1pPW4sdGhpcy5MaT1yLHRoaXMuQmk9aSx0aGlzLnFpPTAsdGhpcy5VaT1udWxsLHRoaXMuUWk9RGF0ZS5ub3coKSx0aGlzLnJlc2V0KCl9ZnVuY3Rpb24gTFMocil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZighS1MocikpcmV0dXJuWzMsNF07ZT0wLG49ci5Ncix0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiBlPG4ubGVuZ3RoP1s0LCgwLG5bZV0pKCEwKV06WzMsNF07Y2FzZSAyOnQuc2VudCgpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuIGUrKyxbMywxXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9ZnVuY3Rpb24gTVMocil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDplPTAsbj1yLk1yLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIGU8bi5sZW5ndGg/WzQsKDAsbltlXSkoITEpXTpbMyw0XTtjYXNlIDI6dC5zZW50KCksdC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gZSsrLFszLDFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBGUyh0LGUpe3QuT3IuaGFzKGUudGFyZ2V0SWQpfHwodC5Pci5zZXQoZS50YXJnZXRJZCxlKSxCUyh0KT9WUyh0KTokUyh0KS5lcigpJiZqUyh0LGUpKX1mdW5jdGlvbiBVUyh0LGUpe3ZhciBuPXQsdD0kUyhuKTtuLk9yLmRlbGV0ZShlKSx0LmVyKCkmJnFTKG4sZSksMD09PW4uT3Iuc2l6ZSYmKHQuZXIoKT90LmlyKCk6S1MobikmJm4uQnIuc2V0KCJVbmtub3duIikpfWZ1bmN0aW9uIGpTKHQsZSl7dC5xci5VKGUudGFyZ2V0SWQpLCRTKHQpLm1yKGUpfWZ1bmN0aW9uIHFTKHQsZSl7dC5xci5VKGUpLCRTKHQpLnlyKGUpfWZ1bmN0aW9uIFZTKGUpe2UucXI9bmV3IHJfKHtnZXRSZW1vdGVLZXlzRm9yVGFyZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiBlLnJlbW90ZVN5bmNlci5nZXRSZW1vdGVLZXlzRm9yVGFyZ2V0KHQpfSxsdDpmdW5jdGlvbih0KXtyZXR1cm4gZS5Pci5nZXQodCl8fG51bGx9fSksJFMoZSkuc3RhcnQoKSxlLkJyLlNyKCl9ZnVuY3Rpb24gQlModCl7cmV0dXJuIEtTKHQpJiYhJFModCkudHIoKSYmMDx0Lk9yLnNpemV9ZnVuY3Rpb24gS1ModCl7cmV0dXJuIDA9PT10LiRyLnNpemV9ZnVuY3Rpb24gV1ModCl7dC5xcj12b2lkIDB9ZnVuY3Rpb24gSFMocyxhLHUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixvO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6aWYocy5Cci5zZXQoIk9ubGluZSIpLCEoYSBpbnN0YW5jZW9mIGVfJiYyPT09YS5zdGF0ZSYmYS5jYXVzZSkpcmV0dXJuWzMsNl07dC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsMywsNV0pLFs0LGZ1bmN0aW9uKG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6ZT1zLmNhdXNlLG49MCxyPXMudGFyZ2V0SWRzLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG48ci5sZW5ndGg/KGk9cltuXSxvLk9yLmhhcyhpKT9bNCxvLnJlbW90ZVN5bmNlci5yZWplY3RMaXN0ZW4oaSxlKV06WzMsM10pOlszLDVdO2Nhc2UgMjp0LnNlbnQoKSxvLk9yLmRlbGV0ZShpKSxvLnFyLnJlbW92ZVRhcmdldChpKSx0LmxhYmVsPTM7Y2FzZSAzOnQubGFiZWw9NDtjYXNlIDQ6cmV0dXJuIG4rKyxbMywxXTtjYXNlIDU6cmV0dXJuWzJdfX0pfSl9KHMsYSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzMsNV07Y2FzZSAzOnJldHVybiBuPXQuc2VudCgpLFZ5KCJSZW1vdGVTdG9yZSIsIkZhaWxlZCB0byByZW1vdmUgdGFyZ2V0cyAlczogJXMgIixhLnRhcmdldElkcy5qb2luKCIsIiksbiksWzQsR1MocyxuKV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMyw1XTtjYXNlIDU6cmV0dXJuWzMsMTNdO2Nhc2UgNjppZihhIGluc3RhbmNlb2YgWnc/cy5xci5YKGEpOmEgaW5zdGFuY2VvZiB0Xz9zLnFyLnJ0KGEpOnMucXIuZXQoYSksdS5pc0VxdWFsKFp5Lm1pbigpKSlyZXR1cm5bMywxM107dC5sYWJlbD03O2Nhc2UgNzpyZXR1cm4gdC50cnlzLnB1c2goWzcsMTEsLDEzXSksWzQsaEUocy5sb2NhbFN0b3JlKV07Y2FzZSA4OnJldHVybiBvPXQuc2VudCgpLDA8PXUuY29tcGFyZVRvKG8pP1s0LChpPXUsKGU9KHI9cykucXIudXQoaSkpLnRhcmdldENoYW5nZXMuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuOzA8dC5yZXN1bWVUb2tlbi5hcHByb3hpbWF0ZUJ5dGVTaXplKCkmJigobj1yLk9yLmdldChlKSkmJnIuT3Iuc2V0KGUsbi53aXRoUmVzdW1lVG9rZW4odC5yZXN1bWVUb2tlbixpKSkpfSksZS50YXJnZXRNaXNtYXRjaGVzLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9ci5Pci5nZXQodCk7ZSYmKHIuT3Iuc2V0KHQsZS53aXRoUmVzdW1lVG9rZW4obG0uRU1QVFlfQllURV9TVFJJTkcsZS5zbmFwc2hvdFZlcnNpb24pKSxxUyhyLHQpLGU9bmV3IFBJKGUudGFyZ2V0LHQsMSxlLnNlcXVlbmNlTnVtYmVyKSxqUyhyLGUpKX0pLHIucmVtb3RlU3luY2VyLmFwcGx5UmVtb3RlRXZlbnQoZSkpXTpbMywxMF07Y2FzZSA5OnQuc2VudCgpLHQubGFiZWw9MTA7Y2FzZSAxMDpyZXR1cm5bMywxM107Y2FzZSAxMTpyZXR1cm4gVnkoIlJlbW90ZVN0b3JlIiwiRmFpbGVkIHRvIHJhaXNlIHNuYXBzaG90OiIsbz10LnNlbnQoKSksWzQsR1MocyxvKV07Y2FzZSAxMjpyZXR1cm4gdC5zZW50KCksWzMsMTNdO2Nhc2UgMTM6cmV0dXJuWzJdfXZhciByLGksZX0pfSl9ZnVuY3Rpb24gR1MobixyLGkpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6aWYoIWJJKHIpKXRocm93IHI7cmV0dXJuIG4uJHIuYWRkKDEpLFs0LE1TKG4pXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLG4uQnIuc2V0KCJPZmZsaW5lIiksaT1pfHxmdW5jdGlvbigpe3JldHVybiBoRShuLmxvY2FsU3RvcmUpfSxuLmFzeW5jUXVldWUuZW5xdWV1ZVJldHJ5YWJsZShmdW5jdGlvbigpe3JldHVybiAkaShlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBWeSgiUmVtb3RlU3RvcmUiLCJSZXRyeWluZyBJbmRleGVkREIgYWNjZXNzIiksWzQsaSgpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLG4uJHIuZGVsZXRlKDEpLFs0LExTKG4pXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSksWzJdfX0pfSl9ZnVuY3Rpb24gelMoZSxuKXtyZXR1cm4gbigpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiBHUyhlLHQsbil9KX1mdW5jdGlvbiBRUyh1KXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGksbyxzLGE7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpvPVpTKGk9dSkscz0wPGkua3IubGVuZ3RoP2kua3JbaS5rci5sZW5ndGgtMV0uYmF0Y2hJZDotMSx0LmxhYmVsPTE7Y2FzZSAxOmlmKCEoS1MoaSkmJmkua3IubGVuZ3RoPDEwKSlyZXR1cm5bMyw3XTt0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0LnRyeXMucHVzaChbMiw0LCw2XSksWzQsKGU9aS5sb2NhbFN0b3JlLG49cywocj1lKS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiR2V0IG5leHQgbXV0YXRpb24gYmF0Y2giLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PW4mJihuPS0xKSxyLl9uLmdldE5leHRNdXRhdGlvbkJhdGNoQWZ0ZXJCYXRjaElkKHQsbil9KSldO2Nhc2UgMzpyZXR1cm4gbnVsbD09PShhPXQuc2VudCgpKT8oMD09PWkua3IubGVuZ3RoJiZvLmlyKCksWzMsN10pOihzPWEuYmF0Y2hJZCxmdW5jdGlvbih0LGUpe3Qua3IucHVzaChlKTt0PVpTKHQpO3QuZXIoKSYmdC5wciYmdC5FcihlLm11dGF0aW9ucyl9KGksYSksWzMsNl0pO2Nhc2UgNDpyZXR1cm4gYT10LnNlbnQoKSxbNCxHUyhpLGEpXTtjYXNlIDU6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNjpyZXR1cm5bMywxXTtjYXNlIDc6cmV0dXJuIFlTKGkpJiZYUyhpKSxbMl19dmFyIGUsbixyfSl9KX1mdW5jdGlvbiBZUyh0KXtyZXR1cm4gS1ModCkmJiFaUyh0KS50cigpJiYwPHQua3IubGVuZ3RofWZ1bmN0aW9uIFhTKHQpe1pTKHQpLnN0YXJ0KCl9ZnVuY3Rpb24gSlMobixyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1uLHI/KGUuJHIuZGVsZXRlKDIpLFs0LExTKGUpXSk6WzMsMl07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbMyw1XTtjYXNlIDI6cmV0dXJuIHI/WzMsNF06KGUuJHIuYWRkKDIpLFs0LE1TKGUpXSk7Y2FzZSAzOnQuc2VudCgpLGUuQnIuc2V0KCJVbmtub3duIiksdC5sYWJlbD00O2Nhc2UgNDp0LmxhYmVsPTU7Y2FzZSA1OnJldHVyblsyXX19KX0pfWZ1bmN0aW9uICRTKG4pe3ZhciB0LGUscixpPXRoaXM7cmV0dXJuIG4uVXJ8fChuLlVyPSh0PW4uZGF0YXN0b3JlLGU9bi5hc3luY1F1ZXVlLHI9e0lpOmZ1bmN0aW9uKG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gbi5Pci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7alMobix0KX0pLFsyXX0pfSl9LmJpbmQobnVsbCxuKSxSaTpmdW5jdGlvbihlLG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gV1MoZSksQlMoZSk/KGUuQnIuTnIobiksVlMoZSkpOmUuQnIuc2V0KCJVbmtub3duIiksWzJdfSl9KX0uYmluZChudWxsLG4pLF9yOkhTLmJpbmQobnVsbCxuKX0sdC5icigpLG5ldyBTUyhlLHQuSGksdC5jcmVkZW50aWFscyx0LlIscikpLG4uTXIucHVzaChmdW5jdGlvbihlKXtyZXR1cm4gJGkoaSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT8obi5Vci5zcigpLEJTKG4pP1ZTKG4pOm4uQnIuc2V0KCJVbmtub3duIiksWzMsM10pOlszLDFdO2Nhc2UgMTpyZXR1cm5bNCxuLlVyLnN0b3AoKV07Y2FzZSAyOnQuc2VudCgpLFdTKG4pLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KSksbi5Vcn1mdW5jdGlvbiBaUyhuKXt2YXIgdCxlLHIsaT10aGlzO3JldHVybiBuLlFyfHwobi5Rcj0odD1uLmRhdGFzdG9yZSxlPW4uYXN5bmNRdWV1ZSxyPXtJaTpmdW5jdGlvbihlKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuIFpTKGUpLkFyKCksWzJdfSl9KX0uYmluZChudWxsLG4pLFJpOmZ1bmN0aW9uKGUsbil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIG4mJlpTKGUpLnByP1s0LGZ1bmN0aW9uKHIsaSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gT3cobj1pLmNvZGUpJiZuIT09TXkuQUJPUlRFRD8oZT1yLmtyLnNoaWZ0KCksWlMocikuc3IoKSxbNCx6UyhyLGZ1bmN0aW9uKCl7cmV0dXJuIHIucmVtb3RlU3luY2VyLnJlamVjdEZhaWxlZFdyaXRlKGUuYmF0Y2hJZCxpKX0pXSk6WzMsM107Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbNCxRUyhyKV07Y2FzZSAyOnQuc2VudCgpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KGUsbildOlszLDJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiBZUyhlKSYmWFMoZSksWzJdfX0pfSl9LmJpbmQobnVsbCxuKSxJcjpmdW5jdGlvbihvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7Zm9yKGU9WlMobyksbj0wLHI9by5rcjtuPHIubGVuZ3RoO24rKylpPXJbbl0sZS5FcihpLm11dGF0aW9ucyk7cmV0dXJuWzJdfSl9KX0uYmluZChudWxsLG4pLFRyOmZ1bmN0aW9uKHIsaSxvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPXIua3Iuc2hpZnQoKSxuPVJJLmZyb20oZSxpLG8pLFs0LHpTKHIsZnVuY3Rpb24oKXtyZXR1cm4gci5yZW1vdGVTeW5jZXIuYXBwbHlTdWNjZXNzZnVsV3JpdGUobil9KV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbNCxRUyhyKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbMl19fSl9KX0uYmluZChudWxsLG4pfSx0LmJyKCksbmV3IENTKGUsdC5IaSx0LmNyZWRlbnRpYWxzLHQuUixyKSksbi5Nci5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiAkaShpLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPyhuLlFyLnNyKCksWzQsUVMobildKTpbMywyXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCxuLlFyLnN0b3AoKV07Y2FzZSAzOnQuc2VudCgpLDA8bi5rci5sZW5ndGgmJihWeSgiUmVtb3RlU3RvcmUiLCJTdG9wcGluZyB3cml0ZSBzdHJlYW0gd2l0aCAiK24ua3IubGVuZ3RoKyIgcGVuZGluZyB3cml0ZXMiKSxuLmtyPVtdKSx0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSkpLG4uUXJ9dmFyIHRDPShlQy5jcmVhdGVBbmRTY2hlZHVsZT1mdW5jdGlvbih0LGUsbixyLGkpe2k9bmV3IGVDKHQsZSxEYXRlLm5vdygpK24scixpKTtyZXR1cm4gaS5zdGFydChuKSxpfSxlQy5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLnRpbWVySGFuZGxlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gZS5oYW5kbGVEZWxheUVsYXBzZWQoKX0sdCl9LGVDLnByb3RvdHlwZS5za2lwRGVsYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYW5kbGVEZWxheUVsYXBzZWQoKX0sZUMucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbih0KXtudWxsIT09dGhpcy50aW1lckhhbmRsZSYmKHRoaXMuY2xlYXJUaW1lb3V0KCksdGhpcy5kZWZlcnJlZC5yZWplY3QobmV3IEZ5KE15LkNBTkNFTExFRCwiT3BlcmF0aW9uIGNhbmNlbGxlZCIrKHQ/IjogIit0OiIiKSkpKX0sZUMucHJvdG90eXBlLmhhbmRsZURlbGF5RWxhcHNlZD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PWUudGltZXJIYW5kbGU/KGUuY2xlYXJUaW1lb3V0KCksZS5vcCgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGUuZGVmZXJyZWQucmVzb2x2ZSh0KX0pKTpQcm9taXNlLnJlc29sdmUoKX0pfSxlQy5wcm90b3R5cGUuY2xlYXJUaW1lb3V0PWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMudGltZXJIYW5kbGUmJih0aGlzLnJlbW92YWxDYWxsYmFjayh0aGlzKSxjbGVhclRpbWVvdXQodGhpcy50aW1lckhhbmRsZSksdGhpcy50aW1lckhhbmRsZT1udWxsKX0sZUMpO2Z1bmN0aW9uIGVDKHQsZSxuLHIsaSl7dGhpcy5hc3luY1F1ZXVlPXQsdGhpcy50aW1lcklkPWUsdGhpcy50YXJnZXRUaW1lTXM9bix0aGlzLm9wPXIsdGhpcy5yZW1vdmFsQ2FsbGJhY2s9aSx0aGlzLmRlZmVycmVkPW5ldyBhSSx0aGlzLnRoZW49dGhpcy5kZWZlcnJlZC5wcm9taXNlLnRoZW4uYmluZCh0aGlzLmRlZmVycmVkLnByb21pc2UpLHRoaXMuZGVmZXJyZWQucHJvbWlzZS5jYXRjaChmdW5jdGlvbih0KXt9KX1mdW5jdGlvbiBuQyh0LGUpe2lmKEJ5KCJBc3luY1F1ZXVlIixlKyI6ICIrdCksYkkodCkpcmV0dXJuIG5ldyBGeShNeS5VTkFWQUlMQUJMRSxlKyI6ICIrdCk7dGhyb3cgdH1mdW5jdGlvbiByQygpe3RoaXMucXVlcmllcz1uZXcgRFQoRmIsTWIpLHRoaXMub25saW5lU3RhdGU9IlVua25vd24iLHRoaXMuR3I9bmV3IFNldH12YXIgaUM9KGhDLmVtcHR5U2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaEModC5jb21wYXJhdG9yKX0saEMucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dGhpcy5rZXllZE1hcC5nZXQodCl9LGhDLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMua2V5ZWRNYXAuZ2V0KHQpfSxoQy5wcm90b3R5cGUuZmlyc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zb3J0ZWRTZXQubWluS2V5KCl9LGhDLnByb3RvdHlwZS5sYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc29ydGVkU2V0Lm1heEtleSgpfSxoQy5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNvcnRlZFNldC5pc0VtcHR5KCl9LGhDLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQpe3Q9dGhpcy5rZXllZE1hcC5nZXQodCk7cmV0dXJuIHQ/dGhpcy5zb3J0ZWRTZXQuaW5kZXhPZih0KTotMX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGhDLnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNvcnRlZFNldC5zaXplfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGhDLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKG4pe3RoaXMuc29ydGVkU2V0Lmlub3JkZXJUcmF2ZXJzYWwoZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0KSwhMX0pfSxoQy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGVsZXRlKHQua2V5KTtyZXR1cm4gZS5jb3B5KGUua2V5ZWRNYXAuaW5zZXJ0KHQua2V5LHQpLGUuc29ydGVkU2V0Lmluc2VydCh0LG51bGwpKX0saEMucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldCh0KTtyZXR1cm4gZT90aGlzLmNvcHkodGhpcy5rZXllZE1hcC5yZW1vdmUodCksdGhpcy5zb3J0ZWRTZXQucmVtb3ZlKGUpKTp0aGlzfSxoQy5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtpZighKHQgaW5zdGFuY2VvZiBoQykpcmV0dXJuITE7aWYodGhpcy5zaXplIT09dC5zaXplKXJldHVybiExO2Zvcih2YXIgZT10aGlzLnNvcnRlZFNldC5nZXRJdGVyYXRvcigpLG49dC5zb3J0ZWRTZXQuZ2V0SXRlcmF0b3IoKTtlLmhhc05leHQoKTspe3ZhciByPWUuZ2V0TmV4dCgpLmtleSxpPW4uZ2V0TmV4dCgpLmtleTtpZighci5pc0VxdWFsKGkpKXJldHVybiExfXJldHVybiEwfSxoQy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UucHVzaCh0LnRvU3RyaW5nKCkpfSksMD09PWUubGVuZ3RoPyJEb2N1bWVudFNldCAoKSI6IkRvY3VtZW50U2V0IChcbiAgIitlLmpvaW4oIiAgXG4iKSsiXG4pIn0saEMucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgaEM7cmV0dXJuIG4uY29tcGFyYXRvcj10aGlzLmNvbXBhcmF0b3Isbi5rZXllZE1hcD10LG4uc29ydGVkU2V0PWUsbn0saEMpLG9DPShjQy5wcm90b3R5cGUudHJhY2s9ZnVuY3Rpb24odCl7dmFyIGU9dC5kb2Mua2V5LG49dGhpcy5Lci5nZXQoZSk7IW58fDAhPT10LnR5cGUmJjM9PT1uLnR5cGU/dGhpcy5Lcj10aGlzLktyLmluc2VydChlLHQpOjM9PT10LnR5cGUmJjEhPT1uLnR5cGU/dGhpcy5Lcj10aGlzLktyLmluc2VydChlLHt0eXBlOm4udHlwZSxkb2M6dC5kb2N9KToyPT09dC50eXBlJiYyPT09bi50eXBlP3RoaXMuS3I9dGhpcy5Lci5pbnNlcnQoZSx7dHlwZToyLGRvYzp0LmRvY30pOjI9PT10LnR5cGUmJjA9PT1uLnR5cGU/dGhpcy5Lcj10aGlzLktyLmluc2VydChlLHt0eXBlOjAsZG9jOnQuZG9jfSk6MT09PXQudHlwZSYmMD09PW4udHlwZT90aGlzLktyPXRoaXMuS3IucmVtb3ZlKGUpOjE9PT10LnR5cGUmJjI9PT1uLnR5cGU/dGhpcy5Lcj10aGlzLktyLmluc2VydChlLHt0eXBlOjEsZG9jOm4uZG9jfSk6MD09PXQudHlwZSYmMT09PW4udHlwZT90aGlzLktyPXRoaXMuS3IuaW5zZXJ0KGUse3R5cGU6Mixkb2M6dC5kb2N9KTpIeSgpfSxjQy5wcm90b3R5cGUuanI9ZnVuY3Rpb24oKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5Lci5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7bi5wdXNoKGUpfSksbn0sY0MpLHNDPSh1Qy5mcm9tSW5pdGlhbERvY3VtZW50cz1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT1bXTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2kucHVzaCh7dHlwZTowLGRvYzp0fSl9KSxuZXcgdUModCxlLGlDLmVtcHR5U2V0KGUpLGksbixyLCEwLCExKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHVDLnByb3RvdHlwZSwiaGFzUGVuZGluZ1dyaXRlcyIse2dldDpmdW5jdGlvbigpe3JldHVybiF0aGlzLm11dGF0ZWRLZXlzLmlzRW1wdHkoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx1Qy5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtpZighKHRoaXMuZnJvbUNhY2hlPT09dC5mcm9tQ2FjaGUmJnRoaXMuc3luY1N0YXRlQ2hhbmdlZD09PXQuc3luY1N0YXRlQ2hhbmdlZCYmdGhpcy5tdXRhdGVkS2V5cy5pc0VxdWFsKHQubXV0YXRlZEtleXMpJiZNYih0aGlzLnF1ZXJ5LHQucXVlcnkpJiZ0aGlzLmRvY3MuaXNFcXVhbCh0LmRvY3MpJiZ0aGlzLm9sZERvY3MuaXNFcXVhbCh0Lm9sZERvY3MpKSlyZXR1cm4hMTt2YXIgZT10aGlzLmRvY0NoYW5nZXMsbj10LmRvY0NoYW5nZXM7aWYoZS5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKylpZihlW3JdLnR5cGUhPT1uW3JdLnR5cGV8fCFlW3JdLmRvYy5pc0VxdWFsKG5bcl0uZG9jKSlyZXR1cm4hMTtyZXR1cm4hMH0sdUMpLGFDPWZ1bmN0aW9uKCl7dGhpcy5Xcj12b2lkIDAsdGhpcy5saXN0ZW5lcnM9W119O2Z1bmN0aW9uIHVDKHQsZSxuLHIsaSxvLHMsYSl7dGhpcy5xdWVyeT10LHRoaXMuZG9jcz1lLHRoaXMub2xkRG9jcz1uLHRoaXMuZG9jQ2hhbmdlcz1yLHRoaXMubXV0YXRlZEtleXM9aSx0aGlzLmZyb21DYWNoZT1vLHRoaXMuc3luY1N0YXRlQ2hhbmdlZD1zLHRoaXMuZXhjbHVkZXNNZXRhZGF0YUNoYW5nZXM9YX1mdW5jdGlvbiBjQygpe3RoaXMuS3I9bmV3IHh3KENtLmNvbXBhcmF0b3IpfWZ1bmN0aW9uIGhDKG4pe3RoaXMuY29tcGFyYXRvcj1uP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlKXx8Q20uY29tcGFyYXRvcih0LmtleSxlLmtleSl9OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIENtLmNvbXBhcmF0b3IodC5rZXksZS5rZXkpfSx0aGlzLmtleWVkTWFwPUd3LHRoaXMuc29ydGVkU2V0PW5ldyB4dyh0aGlzLmNvbXBhcmF0b3IpfWZ1bmN0aW9uIGxDKHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZihlPXMsbj1hLnF1ZXJ5LHI9ITEsKGk9ZS5xdWVyaWVzLmdldChuKSl8fChyPSEwLGk9bmV3IGFDKSwhcilyZXR1cm5bMyw0XTt0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB0LnRyeXMucHVzaChbMSwzLCw0XSksbz1pLFs0LGUub25MaXN0ZW4obildO2Nhc2UgMjpyZXR1cm4gby5Xcj10LnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIG89dC5zZW50KCksbz1uQyhvLCJJbml0aWFsaXphdGlvbiBvZiBxdWVyeSAnIitVYihhLnF1ZXJ5KSsiJyBmYWlsZWQiKSxbMix2b2lkIGEub25FcnJvcihvKV07Y2FzZSA0OnJldHVybiBlLnF1ZXJpZXMuc2V0KG4saSksaS5saXN0ZW5lcnMucHVzaChhKSxhLnpyKGUub25saW5lU3RhdGUpLGkuV3ImJmEuSHIoaS5XcikmJnBDKGUpLFsyXX19KX0pfWZ1bmN0aW9uIGZDKHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuIGU9cyxuPWEucXVlcnkscj0hMSwoaT1lLnF1ZXJpZXMuZ2V0KG4pKSYmMDw9KG89aS5saXN0ZW5lcnMuaW5kZXhPZihhKSkmJihpLmxpc3RlbmVycy5zcGxpY2UobywxKSxyPTA9PT1pLmxpc3RlbmVycy5sZW5ndGgpLHI/WzIsKGUucXVlcmllcy5kZWxldGUobiksZS5vblVubGlzdGVuKG4pKV06WzJdfSl9KX1mdW5jdGlvbiBwQyh0KXt0LkdyLmZvckVhY2goZnVuY3Rpb24odCl7dC5uZXh0KCl9KX12YXIgZEM9KF9DLnByb3RvdHlwZS5Icj1mdW5jdGlvbih0KXtpZighdGhpcy5vcHRpb25zLmluY2x1ZGVNZXRhZGF0YUNoYW5nZXMpe2Zvcih2YXIgZT1bXSxuPTAscj10LmRvY0NoYW5nZXM7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07MyE9PWkudHlwZSYmZS5wdXNoKGkpfXQ9bmV3IHNDKHQucXVlcnksdC5kb2NzLHQub2xkRG9jcyxlLHQubXV0YXRlZEtleXMsdC5mcm9tQ2FjaGUsdC5zeW5jU3RhdGVDaGFuZ2VkLCEwKX12YXIgbz0hMTtyZXR1cm4gdGhpcy5Zcj90aGlzLlpyKHQpJiYodGhpcy5Kci5uZXh0KHQpLG89ITApOnRoaXMuZW8odCx0aGlzLm9ubGluZVN0YXRlKSYmKHRoaXMubm8odCksbz0hMCksdGhpcy5Ycj10LG99LF9DLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKHQpe3RoaXMuSnIuZXJyb3IodCl9LF9DLnByb3RvdHlwZS56cj1mdW5jdGlvbih0KXt0aGlzLm9ubGluZVN0YXRlPXQ7dmFyIGU9ITE7cmV0dXJuIHRoaXMuWHImJiF0aGlzLllyJiZ0aGlzLmVvKHRoaXMuWHIsdCkmJih0aGlzLm5vKHRoaXMuWHIpLGU9ITApLGV9LF9DLnByb3RvdHlwZS5lbz1mdW5jdGlvbih0LGUpe2lmKCF0LmZyb21DYWNoZSlyZXR1cm4hMDt2YXIgbj0iT2ZmbGluZSIhPT1lO3JldHVybiEodGhpcy5vcHRpb25zLnNvJiZufHx0LmRvY3MuaXNFbXB0eSgpJiYiT2ZmbGluZSIhPT1lKX0sX0MucHJvdG90eXBlLlpyPWZ1bmN0aW9uKHQpe2lmKDA8dC5kb2NDaGFuZ2VzLmxlbmd0aClyZXR1cm4hMDt2YXIgZT10aGlzLlhyJiZ0aGlzLlhyLmhhc1BlbmRpbmdXcml0ZXMhPT10Lmhhc1BlbmRpbmdXcml0ZXM7cmV0dXJuISghdC5zeW5jU3RhdGVDaGFuZ2VkJiYhZSkmJiEwPT09dGhpcy5vcHRpb25zLmluY2x1ZGVNZXRhZGF0YUNoYW5nZXN9LF9DLnByb3RvdHlwZS5ubz1mdW5jdGlvbih0KXt0PXNDLmZyb21Jbml0aWFsRG9jdW1lbnRzKHQucXVlcnksdC5kb2NzLHQubXV0YXRlZEtleXMsdC5mcm9tQ2FjaGUpLHRoaXMuWXI9ITAsdGhpcy5Kci5uZXh0KHQpfSxfQyksdkM9KHdDLnByb3RvdHlwZS5pbz1mdW5jdGlvbigpe3JldHVybiJtZXRhZGF0YSJpbiB0aGlzLnBheWxvYWR9LHdDKSxnQz0oYkMucHJvdG90eXBlLnFuPWZ1bmN0aW9uKHQpe3JldHVybiBiXyh0aGlzLlIsdCl9LGJDLnByb3RvdHlwZS5Vbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5tZXRhZGF0YS5leGlzdHM/U18odGhpcy5SLHQuZG9jdW1lbnQsITEpOkJtLm5ld05vRG9jdW1lbnQodGhpcy5xbih0Lm1ldGFkYXRhLm5hbWUpLHRoaXMuUW4odC5tZXRhZGF0YS5yZWFkVGltZSkpfSxiQy5wcm90b3R5cGUuUW49dl8sYkMpLHlDPShtQy5wcm90b3R5cGUub289ZnVuY3Rpb24odCl7dGhpcy5wcm9ncmVzcy5ieXRlc0xvYWRlZCs9dC5ieXRlTGVuZ3RoO3ZhciBlPXRoaXMucHJvZ3Jlc3MuZG9jdW1lbnRzTG9hZGVkO3JldHVybiB0LnBheWxvYWQubmFtZWRRdWVyeT90aGlzLnF1ZXJpZXMucHVzaCh0LnBheWxvYWQubmFtZWRRdWVyeSk6dC5wYXlsb2FkLmRvY3VtZW50TWV0YWRhdGE/KHRoaXMuZG9jdW1lbnRzLnB1c2goe21ldGFkYXRhOnQucGF5bG9hZC5kb2N1bWVudE1ldGFkYXRhfSksdC5wYXlsb2FkLmRvY3VtZW50TWV0YWRhdGEuZXhpc3RzfHwrK2UpOnQucGF5bG9hZC5kb2N1bWVudCYmKHRoaXMuZG9jdW1lbnRzW3RoaXMuZG9jdW1lbnRzLmxlbmd0aC0xXS5kb2N1bWVudD10LnBheWxvYWQuZG9jdW1lbnQsKytlKSxlIT09dGhpcy5wcm9ncmVzcy5kb2N1bWVudHNMb2FkZWQ/KHRoaXMucHJvZ3Jlc3MuZG9jdW1lbnRzTG9hZGVkPWUsT2JqZWN0LmFzc2lnbih7fSx0aGlzLnByb2dyZXNzKSk6bnVsbH0sbUMucHJvdG90eXBlLmNvPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgTWFwLG49bmV3IGdDKHRoaXMuUikscj0wLGk9dDtyPGkubGVuZ3RoO3IrKyl7dmFyIG89aVtyXTtpZihvLm1ldGFkYXRhLnF1ZXJpZXMpZm9yKHZhciBzPW4ucW4oby5tZXRhZGF0YS5uYW1lKSxhPTAsdT1vLm1ldGFkYXRhLnF1ZXJpZXM7YTx1Lmxlbmd0aDthKyspe3ZhciBjPXVbYV0saD0oZS5nZXQoYyl8fFl3KCkpLmFkZChzKTtlLnNldChjLGgpfX1yZXR1cm4gZX0sbUMucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsZnVuY3Rpb24obCxmLHAsZCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLHIsaSxvLGUscyxhLHUsYyxoO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6Zm9yKG49bCxyPVl3KCksaT1LdyxvPXp3LGU9MCxzPXA7ZTxzLmxlbmd0aDtlKyspYT1zW2VdLHU9Zi5xbihhLm1ldGFkYXRhLm5hbWUpLGEuZG9jdW1lbnQmJihyPXIuYWRkKHUpKSxpPWkuaW5zZXJ0KHUsZi5VbihhKSksbz1vLmluc2VydCh1LGYuUW4oYS5tZXRhZGF0YS5yZWFkVGltZSkpO3JldHVybiBjPW4uJG4ubmV3Q2hhbmdlQnVmZmVyKHt0cmFja1JlbW92YWxzOiEwfSksWzQscEUobix4YihOYihhbS5mcm9tU3RyaW5nKCJfX2J1bmRsZV9fL2RvY3MvIitkKSkpKV07Y2FzZSAxOnJldHVybiBoPXQuc2VudCgpLFsyLG4ucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIkFwcGx5IGJ1bmRsZSBkb2N1bWVudHMiLCJyZWFkd3JpdGUiLGZ1bmN0aW9uKGUpe3JldHVybiBmRShlLGMsaSxaeS5taW4oKSxvKS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBjLmFwcGx5KGUpLHR9KS5uZXh0KGZ1bmN0aW9uKHQpe3JldHVybiBuLnFlLnJlbW92ZU1hdGNoaW5nS2V5c0ZvclRhcmdldElkKGUsaC50YXJnZXRJZCkubmV4dChmdW5jdGlvbigpe3JldHVybiBuLnFlLmFkZE1hdGNoaW5nS2V5cyhlLHIsaC50YXJnZXRJZCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIG4uTW4uRW4oZSx0KX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gdH0pfSl9KV19fSl9KX0odGhpcy5sb2NhbFN0b3JlLG5ldyBnQyh0aGlzLlIpLHRoaXMuZG9jdW1lbnRzLHRoaXMucm8uaWQpXTtjYXNlIDE6ZT10LnNlbnQoKSxuPXRoaXMuY28odGhpcy5kb2N1bWVudHMpLHI9MCxpPXRoaXMucXVlcmllcyx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiByPGkubGVuZ3RoPyhpPWlbcl0sWzQsZnVuY3Rpb24oZSxpLG8pe3JldHVybiB2b2lkIDA9PT1vJiYobz1ZdygpKSwkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQscEUoZSx4YihISShpLmJ1bmRsZWRRdWVyeSkpKV07Y2FzZSAxOnJldHVybiBuPXQuc2VudCgpLFsyLChyPWUpLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJTYXZlIG5hbWVkIHF1ZXJ5IiwicmVhZHdyaXRlIixmdW5jdGlvbih0KXt2YXIgZT12XyhpLnJlYWRUaW1lKTtpZigwPD1uLnNuYXBzaG90VmVyc2lvbi5jb21wYXJlVG8oZSkpcmV0dXJuIHIuUWUuc2F2ZU5hbWVkUXVlcnkodCxpKTtlPW4ud2l0aFJlc3VtZVRva2VuKGxtLkVNUFRZX0JZVEVfU1RSSU5HLGUpO3JldHVybiByLkZuPXIuRm4uaW5zZXJ0KGUudGFyZ2V0SWQsZSksci5xZS51cGRhdGVUYXJnZXREYXRhKHQsZSkubmV4dChmdW5jdGlvbigpe3JldHVybiByLnFlLnJlbW92ZU1hdGNoaW5nS2V5c0ZvclRhcmdldElkKHQsbi50YXJnZXRJZCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHIucWUuYWRkTWF0Y2hpbmdLZXlzKHQsbyxuLnRhcmdldElkKX0pLm5leHQoZnVuY3Rpb24oKXtyZXR1cm4gci5RZS5zYXZlTmFtZWRRdWVyeSh0LGkpfSl9KV19fSl9KX0odGhpcy5sb2NhbFN0b3JlLGksbi5nZXQoaS5uYW1lKSldKTpbMyw1XTtjYXNlIDM6dC5zZW50KCksdC5sYWJlbD00O2Nhc2UgNDpyZXR1cm4gcisrLFszLDJdO2Nhc2UgNTpyZXR1cm5bMiwodGhpcy5wcm9ncmVzcy50YXNrU3RhdGU9IlN1Y2Nlc3MiLG5ldyAkVChPYmplY3QuYXNzaWduKHt9LHRoaXMucHJvZ3Jlc3MpLGUpKV19fSl9KX0sbUMpO2Z1bmN0aW9uIG1DKHQsZSxuKXt0aGlzLnJvPXQsdGhpcy5sb2NhbFN0b3JlPWUsdGhpcy5SPW4sdGhpcy5xdWVyaWVzPVtdLHRoaXMuZG9jdW1lbnRzPVtdLHRoaXMucHJvZ3Jlc3M9SUModCl9ZnVuY3Rpb24gYkModCl7dGhpcy5SPXR9ZnVuY3Rpb24gd0ModCxlKXt0aGlzLnBheWxvYWQ9dCx0aGlzLmJ5dGVMZW5ndGg9ZX1mdW5jdGlvbiBfQyh0LGUsbil7dGhpcy5xdWVyeT10LHRoaXMuSnI9ZSx0aGlzLllyPSExLHRoaXMuWHI9bnVsbCx0aGlzLm9ubGluZVN0YXRlPSJVbmtub3duIix0aGlzLm9wdGlvbnM9bnx8e319ZnVuY3Rpb24gSUModCl7cmV0dXJue3Rhc2tTdGF0ZToiUnVubmluZyIsZG9jdW1lbnRzTG9hZGVkOjAsYnl0ZXNMb2FkZWQ6MCx0b3RhbERvY3VtZW50czp0LnRvdGFsRG9jdW1lbnRzLHRvdGFsQnl0ZXM6dC50b3RhbEJ5dGVzfX12YXIgVEM9ZnVuY3Rpb24odCl7dGhpcy5rZXk9dH0sRUM9ZnVuY3Rpb24odCl7dGhpcy5rZXk9dH0sU0M9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSQy5wcm90b3R5cGUsIndvIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW99LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksUkMucHJvdG90eXBlLl9vPWZ1bmN0aW9uKHQsZSl7dmFyIHM9dGhpcyxhPWU/ZS5tbzpuZXcgb0MsdT0oZXx8dGhpcykuZm8sYz0oZXx8dGhpcykubXV0YXRlZEtleXMsaD11LGw9ITEsZj1BYih0aGlzLnF1ZXJ5KSYmdS5zaXplPT09dGhpcy5xdWVyeS5saW1pdD91Lmxhc3QoKTpudWxsLHA9a2IodGhpcy5xdWVyeSkmJnUuc2l6ZT09PXRoaXMucXVlcnkubGltaXQ/dS5maXJzdCgpOm51bGw7aWYodC5pbm9yZGVyVHJhdmVyc2FsKGZ1bmN0aW9uKHQsZSl7dmFyIG49dS5nZXQodCkscj1qYihzLnF1ZXJ5LGUpP2U6bnVsbCxpPSEhbiYmcy5tdXRhdGVkS2V5cy5oYXMobi5rZXkpLG89ISFyJiYoci5oYXNMb2NhbE11dGF0aW9uc3x8cy5tdXRhdGVkS2V5cy5oYXMoci5rZXkpJiZyLmhhc0NvbW1pdHRlZE11dGF0aW9ucyksZT0hMTtuJiZyP24uZGF0YS5pc0VxdWFsKHIuZGF0YSk/aSE9PW8mJihhLnRyYWNrKHt0eXBlOjMsZG9jOnJ9KSxlPSEwKTpzLnlvKG4scil8fChhLnRyYWNrKHt0eXBlOjIsZG9jOnJ9KSxlPSEwLChmJiYwPHMubG8ocixmKXx8cCYmcy5sbyhyLHApPDApJiYobD0hMCkpOiFuJiZyPyhhLnRyYWNrKHt0eXBlOjAsZG9jOnJ9KSxlPSEwKTpuJiYhciYmKGEudHJhY2soe3R5cGU6MSxkb2M6bn0pLGU9ITAsKGZ8fHApJiYobD0hMCkpLGUmJihjPXI/KGg9aC5hZGQociksbz9jLmFkZCh0KTpjLmRlbGV0ZSh0KSk6KGg9aC5kZWxldGUodCksYy5kZWxldGUodCkpKX0pLEFiKHRoaXMucXVlcnkpfHxrYih0aGlzLnF1ZXJ5KSlmb3IoO2guc2l6ZT50aGlzLnF1ZXJ5LmxpbWl0Oyl7dmFyIG49QWIodGhpcy5xdWVyeSk/aC5sYXN0KCk6aC5maXJzdCgpLGg9aC5kZWxldGUobi5rZXkpLGM9Yy5kZWxldGUobi5rZXkpO2EudHJhY2soe3R5cGU6MSxkb2M6bn0pfXJldHVybntmbzpoLG1vOmEsTm46bCxtdXRhdGVkS2V5czpjfX0sUkMucHJvdG90eXBlLnlvPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaGFzTG9jYWxNdXRhdGlvbnMmJmUuaGFzQ29tbWl0dGVkTXV0YXRpb25zJiYhZS5oYXNMb2NhbE11dGF0aW9uc30sUkMucHJvdG90eXBlLmFwcGx5Q2hhbmdlcz1mdW5jdGlvbih0LGUsbil7dmFyIG89dGhpcyxyPXRoaXMuZm87dGhpcy5mbz10LmZvLHRoaXMubXV0YXRlZEtleXM9dC5tdXRhdGVkS2V5czt2YXIgaT10Lm1vLmpyKCk7aS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHI9dC50eXBlLGk9ZS50eXBlLG4ociktbihpKXx8by5sbyh0LmRvYyxlLmRvYyk7ZnVuY3Rpb24gbih0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiAxO2Nhc2UgMjpjYXNlIDM6cmV0dXJuIDI7Y2FzZSAxOnJldHVybiAwO2RlZmF1bHQ6cmV0dXJuIEh5KCl9fXZhciByLGl9KSx0aGlzLnBvKG4pO3ZhciBzPWU/dGhpcy5FbygpOltdLG49MD09PXRoaXMuaG8uc2l6ZSYmdGhpcy5jdXJyZW50PzE6MCxlPW4hPT10aGlzLmFvO3JldHVybiB0aGlzLmFvPW4sMCE9PWkubGVuZ3RofHxlP3tzbmFwc2hvdDpuZXcgc0ModGhpcy5xdWVyeSx0LmZvLHIsaSx0Lm11dGF0ZWRLZXlzLDA9PW4sZSwhMSksVG86c306e1RvOnN9fSxSQy5wcm90b3R5cGUuenI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY3VycmVudCYmIk9mZmxpbmUiPT09dD8odGhpcy5jdXJyZW50PSExLHRoaXMuYXBwbHlDaGFuZ2VzKHtmbzp0aGlzLmZvLG1vOm5ldyBvQyxtdXRhdGVkS2V5czp0aGlzLm11dGF0ZWRLZXlzLE5uOiExfSwhMSkpOntUbzpbXX19LFJDLnByb3RvdHlwZS5Jbz1mdW5jdGlvbih0KXtyZXR1cm4hdGhpcy51by5oYXModCkmJiEhdGhpcy5mby5oYXModCkmJiF0aGlzLmZvLmdldCh0KS5oYXNMb2NhbE11dGF0aW9uc30sUkMucHJvdG90eXBlLnBvPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dCYmKHQuYWRkZWREb2N1bWVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS51bz1lLnVvLmFkZCh0KX0pLHQubW9kaWZpZWREb2N1bWVudHMuZm9yRWFjaChmdW5jdGlvbih0KXt9KSx0LnJlbW92ZWREb2N1bWVudHMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS51bz1lLnVvLmRlbGV0ZSh0KX0pLHRoaXMuY3VycmVudD10LmN1cnJlbnQpfSxSQy5wcm90b3R5cGUuRW89ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLmN1cnJlbnQpcmV0dXJuW107dmFyIG49dGhpcy5obzt0aGlzLmhvPVl3KCksdGhpcy5mby5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuSW8odC5rZXkpJiYoZS5obz1lLmhvLmFkZCh0LmtleSkpfSk7dmFyIHI9W107cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbih0KXtlLmhvLmhhcyh0KXx8ci5wdXNoKG5ldyBFQyh0KSl9KSx0aGlzLmhvLmZvckVhY2goZnVuY3Rpb24odCl7bi5oYXModCl8fHIucHVzaChuZXcgVEModCkpfSkscn0sUkMucHJvdG90eXBlLkFvPWZ1bmN0aW9uKHQpe3RoaXMudW89dC5Cbix0aGlzLmhvPVl3KCk7dD10aGlzLl9vKHQuZG9jdW1lbnRzKTtyZXR1cm4gdGhpcy5hcHBseUNoYW5nZXModCwhMCl9LFJDLnByb3RvdHlwZS5Sbz1mdW5jdGlvbigpe3JldHVybiBzQy5mcm9tSW5pdGlhbERvY3VtZW50cyh0aGlzLnF1ZXJ5LHRoaXMuZm8sdGhpcy5tdXRhdGVkS2V5cywwPT09dGhpcy5hbyl9LFJDKSxDQz1mdW5jdGlvbih0LGUsbil7dGhpcy5xdWVyeT10LHRoaXMudGFyZ2V0SWQ9ZSx0aGlzLnZpZXc9bn0sTkM9ZnVuY3Rpb24odCl7dGhpcy5rZXk9dCx0aGlzLmJvPSExfSxBQz0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGtDLnByb3RvdHlwZSwiaXNQcmltYXJ5Q2xpZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITA9PT10aGlzLk9vfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGtDKTtmdW5jdGlvbiBrQyh0LGUsbixyLGksbyl7dGhpcy5sb2NhbFN0b3JlPXQsdGhpcy5yZW1vdGVTdG9yZT1lLHRoaXMuZXZlbnRNYW5hZ2VyPW4sdGhpcy5zaGFyZWRDbGllbnRTdGF0ZT1yLHRoaXMuY3VycmVudFVzZXI9aSx0aGlzLm1heENvbmN1cnJlbnRMaW1ib1Jlc29sdXRpb25zPW8sdGhpcy52bz17fSx0aGlzLlBvPW5ldyBEVChGYixNYiksdGhpcy5Wbz1uZXcgTWFwLHRoaXMuU289bmV3IFNldCx0aGlzLkRvPW5ldyB4dyhDbS5jb21wYXJhdG9yKSx0aGlzLkNvPW5ldyBNYXAsdGhpcy5Obz1uZXcgSUUsdGhpcy54bz17fSx0aGlzLkZvPW5ldyBNYXAsdGhpcy5rbz1kVC5ZdCgpLHRoaXMub25saW5lU3RhdGU9IlVua25vd24iLHRoaXMuT289dm9pZCAwfWZ1bmN0aW9uIFJDKHQsZSl7dGhpcy5xdWVyeT10LHRoaXMudW89ZSx0aGlzLmFvPW51bGwsdGhpcy5jdXJyZW50PSExLHRoaXMuaG89WXcoKSx0aGlzLm11dGF0ZWRLZXlzPVl3KCksdGhpcy5sbz1xYih0KSx0aGlzLmZvPW5ldyBpQyh0aGlzLmxvKX1mdW5jdGlvbiBQQyhpLG8scyxhKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGkuJG89ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihyLGksbyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPWkudmlldy5fbyhvKSkuTm4/WzQsdkUoci5sb2NhbFN0b3JlLGkucXVlcnksITEpLnRoZW4oZnVuY3Rpb24odCl7dD10LmRvY3VtZW50cztyZXR1cm4gaS52aWV3Ll9vKHQsZSl9KV06WzMsMl07Y2FzZSAxOmU9dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gbj1zJiZzLnRhcmdldENoYW5nZXMuZ2V0KGkudGFyZ2V0SWQpLG49aS52aWV3LmFwcGx5Q2hhbmdlcyhlLHIuaXNQcmltYXJ5Q2xpZW50LG4pLFsyLChWQyhyLGkudGFyZ2V0SWQsbi5Ubyksbi5zbmFwc2hvdCldfX0pfSl9KGksdCxlLG4pfSxbNCx2RShpLmxvY2FsU3RvcmUsbywhMCldO2Nhc2UgMTpyZXR1cm4gbj10LnNlbnQoKSxyPW5ldyBTQyhvLG4uQm4pLGU9ci5fbyhuLmRvY3VtZW50cyksbj0kdy5jcmVhdGVTeW50aGVzaXplZFRhcmdldENoYW5nZUZvckN1cnJlbnRDaGFuZ2UocyxhJiYiT2ZmbGluZSIhPT1pLm9ubGluZVN0YXRlKSxuPXIuYXBwbHlDaGFuZ2VzKGUsaS5pc1ByaW1hcnlDbGllbnQsbiksVkMoaSxzLG4uVG8pLHI9bmV3IENDKG8scyxyKSxbMiwoaS5Qby5zZXQobyxyKSxpLlZvLmhhcyhzKT9pLlZvLmdldChzKS5wdXNoKG8pOmkuVm8uc2V0KHMsW29dKSxuLnNuYXBzaG90KV19fSl9KX1mdW5jdGlvbiBPQyhmLHAsZCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzLGw7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpsPVhDKGYpLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDUsLDZdKSxbNCwoaT1sLmxvY2FsU3RvcmUsYT1wLGM9aSxoPSR5Lm5vdygpLG89YS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5hZGQoZS5rZXkpfSxZdygpKSxjLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJMb2NhbGx5IHdyaXRlIG11dGF0aW9ucyIsInJlYWR3cml0ZSIsZnVuY3Rpb24ocyl7cmV0dXJuIGMuTW4ucG4ocyxvKS5uZXh0KGZ1bmN0aW9uKHQpe3U9dDtmb3IodmFyIGU9W10sbj0wLHI9YTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXSxvPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPW51bGwscj0wLGk9dC5maWVsZFRyYW5zZm9ybXM7cjxpLmxlbmd0aDtyKyspe3ZhciBvPWlbcl0scz1lLmRhdGEuZmllbGQoby5maWVsZCkscz1XYihvLnRyYW5zZm9ybSxzfHxudWxsKTtudWxsIT1zJiYobj1udWxsPT1uP3FtLmVtcHR5KCk6bikuc2V0KG8uZmllbGQscyl9cmV0dXJuIG58fG51bGx9KGksdS5nZXQoaS5rZXkpKTtudWxsIT1vJiZlLnB1c2gobmV3IG13KGkua2V5LG8sZnVuY3Rpb24gcyh0KXt2YXIgYT1bXTtyZXR1cm4gcm0odC5maWVsZHN8fHt9LGZ1bmN0aW9uKHQsZSl7dmFyIG49bmV3IGNtKFt0XSk7aWYoam0oZSkpaWYoMD09PShlPXMoZS5tYXBWYWx1ZSkuZmllbGRzKS5sZW5ndGgpYS5wdXNoKG4pO2Vsc2UgZm9yKHZhciByPTAsaT1lO3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdO2EucHVzaChuLmNoaWxkKG8pKX1lbHNlIGEucHVzaChuKX0pLG5ldyBobShhKX0oby50b1Byb3RvKCkubWFwVmFsdWUpLGN3LmV4aXN0cyghMCkpKX1yZXR1cm4gYy5fbi5hZGRNdXRhdGlvbkJhdGNoKHMsaCxlLGEpfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFwcGx5VG9Mb2NhbERvY3VtZW50U2V0KHUpLHtiYXRjaElkOnQuYmF0Y2hJZCxjaGFuZ2VzOnV9fSkpXTtjYXNlIDI6cmV0dXJuIHM9dC5zZW50KCksbC5zaGFyZWRDbGllbnRTdGF0ZS5hZGRQZW5kaW5nTXV0YXRpb24ocy5iYXRjaElkKSxlPWwsbj1zLmJhdGNoSWQscj1kLGk9KGk9KGk9ZS54b1tlLmN1cnJlbnRVc2VyLnRvS2V5KCldKXx8bmV3IHh3KFl5KSkuaW5zZXJ0KG4sciksZS54b1tlLmN1cnJlbnRVc2VyLnRvS2V5KCldPWksWzQsS0MobCxzLmNoYW5nZXMpXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFs0LFFTKGwucmVtb3RlU3RvcmUpXTtjYXNlIDQ6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNTpyZXR1cm4gbD10LnNlbnQoKSxsPW5DKGwsIkZhaWxlZCB0byBwZXJzaXN0IHdyaXRlIiksZC5yZWplY3QobCksWzMsNl07Y2FzZSA2OnJldHVyblsyXX12YXIgZSxuLHIsaSxhLHUsYyxoLG99KX0pfWZ1bmN0aW9uIERDKHIsaSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpuPXIsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNl0pLFs0LGxFKG4ubG9jYWxTdG9yZSxpKV07Y2FzZSAyOnJldHVybiBlPXQuc2VudCgpLGkudGFyZ2V0Q2hhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7ZT1uLkNvLmdldChlKTtlJiYoR3kodC5hZGRlZERvY3VtZW50cy5zaXplK3QubW9kaWZpZWREb2N1bWVudHMuc2l6ZSt0LnJlbW92ZWREb2N1bWVudHMuc2l6ZTw9MSksMDx0LmFkZGVkRG9jdW1lbnRzLnNpemU/ZS5ibz0hMDowPHQubW9kaWZpZWREb2N1bWVudHMuc2l6ZT9HeShlLmJvKTowPHQucmVtb3ZlZERvY3VtZW50cy5zaXplJiYoR3koZS5ibyksZS5ibz0hMSkpfSksWzQsS0MobixlLGkpXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNDpyZXR1cm5bNCxfVCh0LnNlbnQoKSldO2Nhc2UgNTpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSA2OnJldHVyblsyXX19KX0pfWZ1bmN0aW9uIHhDKHQsbixlKXt2YXIgcix0PXQ7KHQuaXNQcmltYXJ5Q2xpZW50JiYwPT09ZXx8IXQuaXNQcmltYXJ5Q2xpZW50JiYxPT09ZSkmJihyPVtdLHQuUG8uZm9yRWFjaChmdW5jdGlvbih0LGUpe2U9ZS52aWV3LnpyKG4pO2Uuc25hcHNob3QmJnIucHVzaChlLnNuYXBzaG90KX0pLGZ1bmN0aW9uKHQsaSl7dC5vbmxpbmVTdGF0ZT1pO3ZhciBvPSExO3QucXVlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTAscj1lLmxpc3RlbmVycztuPHIubGVuZ3RoO24rKylyW25dLnpyKGkpJiYobz0hMCl9KSxvJiZwQyh0KX0odC5ldmVudE1hbmFnZXIsbiksci5sZW5ndGgmJnQudm8uX3IociksdC5vbmxpbmVTdGF0ZT1uLHQuaXNQcmltYXJ5Q2xpZW50JiZ0LnNoYXJlZENsaWVudFN0YXRlLnNldE9ubGluZVN0YXRlKG4pKX1mdW5jdGlvbiBMQyhzLGEsdSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpuPXMsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNl0pLFs0LChlPW4ubG9jYWxTdG9yZSxyPWEsKGk9ZSkucGVyc2lzdGVuY2UucnVuVHJhbnNhY3Rpb24oIlJlamVjdCBiYXRjaCIsInJlYWR3cml0ZS1wcmltYXJ5IixmdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4gaS5fbi5sb29rdXBNdXRhdGlvbkJhdGNoKGUscikubmV4dChmdW5jdGlvbih0KXtyZXR1cm4gR3kobnVsbCE9PXQpLG49dC5rZXlzKCksaS5fbi5yZW1vdmVNdXRhdGlvbkJhdGNoKGUsdCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuX24ucGVyZm9ybUNvbnNpc3RlbmN5Q2hlY2soZSl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIGkuTW4ucG4oZSxuKX0pfSkpXTtjYXNlIDI6cmV0dXJuIG89dC5zZW50KCksVUMobixhLHUpLEZDKG4sYSksbi5zaGFyZWRDbGllbnRTdGF0ZS51cGRhdGVNdXRhdGlvblN0YXRlKGEsInJlamVjdGVkIix1KSxbNCxLQyhuLG8pXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNDpyZXR1cm5bNCxfVCh0LnNlbnQoKSldO2Nhc2UgNTpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSA2OnJldHVyblsyXX12YXIgZSxyLGl9KX0pfWZ1bmN0aW9uIE1DKG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLHIsaTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOktTKChuPW8pLnJlbW90ZVN0b3JlKXx8VnkoIlN5bmNFbmdpbmUiLCJUaGUgbmV0d29yayBpcyBkaXNhYmxlZC4gVGhlIHRhc2sgcmV0dXJuZWQgYnkgJ2F3YWl0UGVuZGluZ1dyaXRlcygpJyB3aWxsIG5vdCBjb21wbGV0ZSB1bnRpbCB0aGUgbmV0d29yayBpcyBlbmFibGVkLiIpLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCwoZT1uLmxvY2FsU3RvcmUpLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJHZXQgaGlnaGVzdCB1bmFja25vd2xlZGdlZCBiYXRjaCBpZCIsInJlYWRvbmx5IixmdW5jdGlvbih0KXtyZXR1cm4gZS5fbi5nZXRIaWdoZXN0VW5hY2tub3dsZWRnZWRCYXRjaElkKHQpfSldO2Nhc2UgMjpyZXR1cm4tMT09PShyPXQuc2VudCgpKT9bMix2b2lkIHMucmVzb2x2ZSgpXTooKGk9bi5Gby5nZXQocil8fFtdKS5wdXNoKHMpLG4uRm8uc2V0KHIsaSksWzMsNF0pO2Nhc2UgMzpyZXR1cm4gaT10LnNlbnQoKSxpPW5DKGksIkluaXRpYWxpemF0aW9uIG9mIHdhaXRGb3JQZW5kaW5nV3JpdGVzKCkgb3BlcmF0aW9uIGZhaWxlZCIpLHMucmVqZWN0KGkpLFszLDRdO2Nhc2UgNDpyZXR1cm5bMl19dmFyIGV9KX0pfWZ1bmN0aW9uIEZDKHQsZSl7KHQuRm8uZ2V0KGUpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih0KXt0LnJlc29sdmUoKX0pLHQuRm8uZGVsZXRlKGUpfWZ1bmN0aW9uIFVDKHQsZSxuKXt2YXIgcj10LGk9ci54b1tyLmN1cnJlbnRVc2VyLnRvS2V5KCldO2kmJigodD1pLmdldChlKSkmJihuP3QucmVqZWN0KG4pOnQucmVzb2x2ZSgpLGk9aS5yZW1vdmUoZSkpLHIueG9bci5jdXJyZW50VXNlci50b0tleSgpXT1pKX1mdW5jdGlvbiBqQyhlLHQsbil7dm9pZCAwPT09biYmKG49bnVsbCksZS5zaGFyZWRDbGllbnRTdGF0ZS5yZW1vdmVMb2NhbFF1ZXJ5VGFyZ2V0KHQpO2Zvcih2YXIgcj0wLGk9ZS5Wby5nZXQodCk7cjxpLmxlbmd0aDtyKyspe3ZhciBvPWlbcl07ZS5Qby5kZWxldGUobyksbiYmZS52by5NbyhvLG4pfWUuVm8uZGVsZXRlKHQpLGUuaXNQcmltYXJ5Q2xpZW50JiZlLk5vLlpuKHQpLmZvckVhY2goZnVuY3Rpb24odCl7ZS5Oby5jb250YWluc0tleSh0KXx8cUMoZSx0KX0pfWZ1bmN0aW9uIHFDKHQsZSl7dC5Tby5kZWxldGUoZS5wYXRoLmNhbm9uaWNhbFN0cmluZygpKTt2YXIgbj10LkRvLmdldChlKTtudWxsIT09biYmKFVTKHQucmVtb3RlU3RvcmUsbiksdC5Ebz10LkRvLnJlbW92ZShlKSx0LkNvLmRlbGV0ZShuKSxCQyh0KSl9ZnVuY3Rpb24gVkModCxlLG4pe2Zvcih2YXIgcixpLG8scz0wLGE9bjtzPGEubGVuZ3RoO3MrKyl7dmFyIHU9YVtzXTt1IGluc3RhbmNlb2YgVEM/KHQuTm8uYWRkUmVmZXJlbmNlKHUua2V5LGUpLHI9dCxvPXZvaWQgMCxpPShvPShpPXUpLmtleSkucGF0aC5jYW5vbmljYWxTdHJpbmcoKSxyLkRvLmdldChvKXx8ci5Tby5oYXMoaSl8fChWeSgiU3luY0VuZ2luZSIsIk5ldyBkb2N1bWVudCBpbiBsaW1ibzogIitvKSxyLlNvLmFkZChpKSxCQyhyKSkpOnUgaW5zdGFuY2VvZiBFQz8oVnkoIlN5bmNFbmdpbmUiLCJEb2N1bWVudCBubyBsb25nZXIgaW4gbGltYm86ICIrdS5rZXkpLHQuTm8ucmVtb3ZlUmVmZXJlbmNlKHUua2V5LGUpLHQuTm8uY29udGFpbnNLZXkodS5rZXkpfHxxQyh0LHUua2V5KSk6SHkoKX19ZnVuY3Rpb24gQkModCl7Zm9yKDswPHQuU28uc2l6ZSYmdC5Eby5zaXplPHQubWF4Q29uY3VycmVudExpbWJvUmVzb2x1dGlvbnM7KXt2YXIgZT10LlNvLnZhbHVlcygpLm5leHQoKS52YWx1ZTt0LlNvLmRlbGV0ZShlKTt2YXIgbj1uZXcgQ20oYW0uZnJvbVN0cmluZyhlKSksZT10LmtvLm5leHQoKTt0LkNvLnNldChlLG5ldyBOQyhuKSksdC5Ebz10LkRvLmluc2VydChuLGUpLEZTKHQucmVtb3RlU3RvcmUsbmV3IFBJKHhiKE5iKG4ucGF0aCkpLGUsMixEeS5vKSl9fWZ1bmN0aW9uIEtDKGUscyxhKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG4scixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gcj1bXSxpPVtdLG89W10sKG49ZSkuUG8uaXNFbXB0eSgpP1szLDNdOihuLlBvLmZvckVhY2goZnVuY3Rpb24odCxlKXtvLnB1c2gobi4kbyhlLHMsYSkudGhlbihmdW5jdGlvbih0KXt0JiYobi5pc1ByaW1hcnlDbGllbnQmJm4uc2hhcmVkQ2xpZW50U3RhdGUudXBkYXRlUXVlcnlTdGF0ZShlLnRhcmdldElkLHQuZnJvbUNhY2hlPyJub3QtY3VycmVudCI6ImN1cnJlbnQiKSxyLnB1c2godCksdD10RS5QbihlLnRhcmdldElkLHQpLGkucHVzaCh0KSl9KSl9KSxbNCxQcm9taXNlLmFsbChvKV0pO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksbi52by5fcihyKSxbNCxmdW5jdGlvbih1LGMpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcixlLG4saSxvLHMsYTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnI9dSx0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB0LnRyeXMucHVzaChbMSwzLCw0XSksWzQsci5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigibm90aWZ5TG9jYWxWaWV3Q2hhbmdlcyIsInJlYWR3cml0ZSIsZnVuY3Rpb24obil7cmV0dXJuIHVJLmZvckVhY2goYyxmdW5jdGlvbihlKXtyZXR1cm4gdUkuZm9yRWFjaChlLmJuLGZ1bmN0aW9uKHQpe3JldHVybiByLnBlcnNpc3RlbmNlLnJlZmVyZW5jZURlbGVnYXRlLmFkZFJlZmVyZW5jZShuLGUudGFyZ2V0SWQsdCl9KS5uZXh0KGZ1bmN0aW9uKCl7cmV0dXJuIHVJLmZvckVhY2goZS52bixmdW5jdGlvbih0KXtyZXR1cm4gci5wZXJzaXN0ZW5jZS5yZWZlcmVuY2VEZWxlZ2F0ZS5yZW1vdmVSZWZlcmVuY2UobixlLnRhcmdldElkLHQpfSl9KX0pfSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzMsNF07Y2FzZSAzOmlmKCFiSShlPXQuc2VudCgpKSl0aHJvdyBlO3JldHVybiBWeSgiTG9jYWxTdG9yZSIsIkZhaWxlZCB0byB1cGRhdGUgc2VxdWVuY2UgbnVtYmVyczogIitlKSxbMyw0XTtjYXNlIDQ6Zm9yKG49MCxpPWM7bjxpLmxlbmd0aDtuKyspYT1pW25dLG89YS50YXJnZXRJZCxhLmZyb21DYWNoZXx8KHM9ci5Gbi5nZXQobyksYT1zLnNuYXBzaG90VmVyc2lvbixhPXMud2l0aExhc3RMaW1ib0ZyZWVTbmFwc2hvdFZlcnNpb24oYSksci5Gbj1yLkZuLmluc2VydChvLGEpKTtyZXR1cm5bMl19fSl9KX0obi5sb2NhbFN0b3JlLGkpXTtjYXNlIDI6dC5zZW50KCksdC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBXQyhpLG8pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKG49aSkuY3VycmVudFVzZXIuaXNFcXVhbChvKT9bMywzXTooVnkoIlN5bmNFbmdpbmUiLCJVc2VyIGNoYW5nZS4gTmV3IHVzZXI6IixvLnRvS2V5KCkpLFs0LHVFKG4ubG9jYWxTdG9yZSxvKV0pO2Nhc2UgMTpyZXR1cm4gcj10LnNlbnQoKSxuLmN1cnJlbnRVc2VyPW8sKGU9bikuRm8uZm9yRWFjaChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7dC5yZWplY3QobmV3IEZ5KE15LkNBTkNFTExFRCwiJ3dhaXRGb3JQZW5kaW5nV3JpdGVzJyBwcm9taXNlIGlzIHJlamVjdGVkIGR1ZSB0byBhIHVzZXIgY2hhbmdlLiIpKX0pfSksZS5Gby5jbGVhcigpLG4uc2hhcmVkQ2xpZW50U3RhdGUuaGFuZGxlVXNlckNoYW5nZShvLHIucmVtb3ZlZEJhdGNoSWRzLHIuYWRkZWRCYXRjaElkcyksWzQsS0MobixyLkxuKV07Y2FzZSAyOnQuc2VudCgpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfXZhciBlfSl9KX1mdW5jdGlvbiBIQyhhLHUsYyxoKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG8scztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LChlPShvPWEpLmxvY2FsU3RvcmUsbj11LGk9KHI9ZSkuX24sci5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiTG9va3VwIG11dGF0aW9uIGRvY3VtZW50cyIsInJlYWRvbmx5IixmdW5jdGlvbihlKXtyZXR1cm4gaS5qdChlLG4pLm5leHQoZnVuY3Rpb24odCl7cmV0dXJuIHQ/ci5Nbi5wbihlLHQpOnVJLnJlc29sdmUobnVsbCl9KX0pKV07Y2FzZSAxOnJldHVybiBudWxsPT09KHM9dC5zZW50KCkpP1szLDZdOiJwZW5kaW5nIiE9PWM/WzMsM106WzQsUVMoby5yZW1vdGVTdG9yZSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzMsNF07Y2FzZSAzOiJhY2tub3dsZWRnZWQiPT09Y3x8InJlamVjdGVkIj09PWM/KFVDKG8sdSxofHxudWxsKSxGQyhvLHUpLG8ubG9jYWxTdG9yZS5fbi5HdCh1KSk6SHkoKSx0LmxhYmVsPTQ7Y2FzZSA0OnJldHVybls0LEtDKG8scyldO2Nhc2UgNTpyZXR1cm4gdC5zZW50KCksWzMsN107Y2FzZSA2OlZ5KCJTeW5jRW5naW5lIiwiQ2Fubm90IGFwcGx5IG11dGF0aW9uIGJhdGNoIHdpdGggaWQ6ICIrdSksdC5sYWJlbD03O2Nhc2UgNzpyZXR1cm5bMl19dmFyIGUsbixyLGl9KX0pfWZ1bmN0aW9uIEdDKGgsbCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciByLGUsaSxvLHMsYSx1LGM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gWUMocj1oKSxYQyhyKSwhMCE9PWx8fCEwPT09ci5Pbz9bMywzXTooZT1yLnNoYXJlZENsaWVudFN0YXRlLmdldEFsbEFjdGl2ZVF1ZXJ5VGFyZ2V0cygpLFs0LHpDKHIsZS50b0FycmF5KCkpXSk7Y2FzZSAxOnJldHVybiBpPXQuc2VudCgpLHIuT289ITAsWzQsSlMoci5yZW1vdGVTdG9yZSwhMCldO2Nhc2UgMjpmb3IodC5zZW50KCksbz0wLHM9aTtvPHMubGVuZ3RoO28rKylhPXNbb10sRlMoci5yZW1vdGVTdG9yZSxhKTtyZXR1cm5bMyw3XTtjYXNlIDM6cmV0dXJuITEhPT1sfHwhMT09PXIuT28/WzMsN106KHU9W10sYz1Qcm9taXNlLnJlc29sdmUoKSxyLlZvLmZvckVhY2goZnVuY3Rpb24odCxlKXtyLnNoYXJlZENsaWVudFN0YXRlLmlzTG9jYWxRdWVyeVRhcmdldChlKT91LnB1c2goZSk6Yz1jLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gakMocixlKSxkRShyLmxvY2FsU3RvcmUsZSwhMCl9KSxVUyhyLnJlbW90ZVN0b3JlLGUpfSksWzQsY10pO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzQsekMocix1KV07Y2FzZSA1OnJldHVybiB0LnNlbnQoKSwobj1yKS5Dby5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7VVMobi5yZW1vdGVTdG9yZSxlKX0pLG4uTm8udHMoKSxuLkNvPW5ldyBNYXAsbi5Ebz1uZXcgeHcoQ20uY29tcGFyYXRvciksci5Pbz0hMSxbNCxKUyhyLnJlbW90ZVN0b3JlLCExKV07Y2FzZSA2OnQuc2VudCgpLHQubGFiZWw9NztjYXNlIDc6cmV0dXJuWzJdfXZhciBufSl9KX1mdW5jdGlvbiB6QyhwLGQpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvLHMsYSx1LGMsaCxsLGY7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDplPXAsbj1bXSxyPVtdLGk9MCxvPWQsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gaTxvLmxlbmd0aD8ocz1vW2ldLGE9dm9pZCAwLCh1PWUuVm8uZ2V0KHMpKSYmMCE9PXUubGVuZ3RoP1s0LHBFKGUubG9jYWxTdG9yZSx4Yih1WzBdKSldOlszLDddKTpbMywxM107Y2FzZSAyOmE9dC5zZW50KCksYz0wLGg9dSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVybiBjPGgubGVuZ3RoPyhsPWhbY10sbD1lLlBvLmdldChsKSxbNCxmdW5jdGlvbihyLGkpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdkUoKGU9cikubG9jYWxTdG9yZSxpLnF1ZXJ5LCEwKV07Y2FzZSAxOnJldHVybiBuPXQuc2VudCgpLG49aS52aWV3LkFvKG4pLFsyLChlLmlzUHJpbWFyeUNsaWVudCYmVkMoZSxpLnRhcmdldElkLG4uVG8pLG4pXX19KX0pfShlLGwpXSk6WzMsNl07Y2FzZSA0OihsPXQuc2VudCgpKS5zbmFwc2hvdCYmci5wdXNoKGwuc25hcHNob3QpLHQubGFiZWw9NTtjYXNlIDU6cmV0dXJuIGMrKyxbMywzXTtjYXNlIDY6cmV0dXJuWzMsMTFdO2Nhc2UgNzpyZXR1cm5bNCxnRShlLmxvY2FsU3RvcmUscyldO2Nhc2UgODpyZXR1cm4gZj10LnNlbnQoKSxbNCxwRShlLmxvY2FsU3RvcmUsZildO2Nhc2UgOTpyZXR1cm4gYT10LnNlbnQoKSxbNCxQQyhlLFFDKGYpLHMsITEpXTtjYXNlIDEwOnQuc2VudCgpLHQubGFiZWw9MTE7Y2FzZSAxMTpuLnB1c2goYSksdC5sYWJlbD0xMjtjYXNlIDEyOnJldHVybiBpKyssWzMsMV07Y2FzZSAxMzpyZXR1cm5bMiwoZS52by5fcihyKSxuKV19fSl9KX1mdW5jdGlvbiBRQyh0KXtyZXR1cm4gQ2IodC5wYXRoLHQuY29sbGVjdGlvbkdyb3VwLHQub3JkZXJCeSx0LmZpbHRlcnMsdC5saW1pdCwiRiIsdC5zdGFydEF0LHQuZW5kQXQpfWZ1bmN0aW9uIFlDKHQpe3JldHVybiB0LnJlbW90ZVN0b3JlLnJlbW90ZVN5bmNlci5hcHBseVJlbW90ZUV2ZW50PURDLmJpbmQobnVsbCx0KSx0LnJlbW90ZVN0b3JlLnJlbW90ZVN5bmNlci5nZXRSZW1vdGVLZXlzRm9yVGFyZ2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dDtpZigodD1uLkNvLmdldChlKSkmJnQuYm8pcmV0dXJuIFl3KCkuYWRkKHQua2V5KTt2YXIgcj1ZdygpO2lmKCEoZT1uLlZvLmdldChlKSkpcmV0dXJuIHI7Zm9yKHZhciBpPTAsbz1lO2k8by5sZW5ndGg7aSsrKXZhciBzPW9baV0scz1uLlBvLmdldChzKSxyPXIudW5pb25XaXRoKHMudmlldy53byk7cmV0dXJuIHJ9LmJpbmQobnVsbCx0KSx0LnJlbW90ZVN0b3JlLnJlbW90ZVN5bmNlci5yZWplY3RMaXN0ZW49ZnVuY3Rpb24obyxzLGEpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPW8pLnNoYXJlZENsaWVudFN0YXRlLnVwZGF0ZVF1ZXJ5U3RhdGUocywicmVqZWN0ZWQiLGEpLGk9ZS5Dby5nZXQocyksKG49aSYmaS5rZXkpPyhyPShyPW5ldyB4dyhDbS5jb21wYXJhdG9yKSkuaW5zZXJ0KG4sQm0ubmV3Tm9Eb2N1bWVudChuLFp5Lm1pbigpKSksaT1ZdygpLmFkZChuKSxpPW5ldyBKdyhaeS5taW4oKSxuZXcgTWFwLG5ldyBWdyhZeSkscixpKSxbNCxEQyhlLGkpXSk6WzMsMl07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxlLkRvPWUuRG8ucmVtb3ZlKG4pLGUuQ28uZGVsZXRlKHMpLEJDKGUpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCxkRShlLmxvY2FsU3RvcmUscywhMSkudGhlbihmdW5jdGlvbigpe3JldHVybiBqQyhlLHMsYSl9KS5jYXRjaChfVCldO2Nhc2UgMzp0LnNlbnQoKSx0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfS5iaW5kKG51bGwsdCksdC52by5fcj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10LHI9ITEsaT0wLG89ZTtpPG8ubGVuZ3RoO2krKyl7dmFyIHM9b1tpXSxhPXMucXVlcnksYT1uLnF1ZXJpZXMuZ2V0KGEpO2lmKGEpe2Zvcih2YXIgdT0wLGM9YS5saXN0ZW5lcnM7dTxjLmxlbmd0aDt1KyspY1t1XS5IcihzKSYmKHI9ITApO2EuV3I9c319ciYmcEMobil9LmJpbmQobnVsbCx0LmV2ZW50TWFuYWdlciksdC52by5Nbz1mdW5jdGlvbih0LGUsbil7dmFyIHI9dDtpZih0PXIucXVlcmllcy5nZXQoZSkpZm9yKHZhciBpPTAsbz10Lmxpc3RlbmVycztpPG8ubGVuZ3RoO2krKylvW2ldLm9uRXJyb3Iobik7ci5xdWVyaWVzLmRlbGV0ZShlKX0uYmluZChudWxsLHQuZXZlbnRNYW5hZ2VyKSx0fWZ1bmN0aW9uIFhDKHQpe3JldHVybiB0LnJlbW90ZVN0b3JlLnJlbW90ZVN5bmNlci5hcHBseVN1Y2Nlc3NmdWxXcml0ZT1mdW5jdGlvbihpLG8pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHI7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDplPWksbj1vLmJhdGNoLmJhdGNoSWQsdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNl0pLFs0LGNFKGUubG9jYWxTdG9yZSxvKV07Y2FzZSAyOnJldHVybiByPXQuc2VudCgpLFVDKGUsbixudWxsKSxGQyhlLG4pLGUuc2hhcmVkQ2xpZW50U3RhdGUudXBkYXRlTXV0YXRpb25TdGF0ZShuLCJhY2tub3dsZWRnZWQiKSxbNCxLQyhlLHIpXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFszLDZdO2Nhc2UgNDpyZXR1cm5bNCxfVCh0LnNlbnQoKSldO2Nhc2UgNTpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSA2OnJldHVyblsyXX19KX0pfS5iaW5kKG51bGwsdCksdC5yZW1vdGVTdG9yZS5yZW1vdGVTeW5jZXIucmVqZWN0RmFpbGVkV3JpdGU9TEMuYmluZChudWxsLHQpLHR9ZnVuY3Rpb24gSkModCxlLG4pe3ZhciByPXQ7IWZ1bmN0aW9uKGYscCxkKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGEsdSxjLGgsbDtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwxNCwsMTVdKSxbNCxwLmdldE1ldGFkYXRhKCldO2Nhc2UgMTpyZXR1cm4gYT10LnNlbnQoKSxbNCwocj1mLmxvY2FsU3RvcmUsbz1yLHM9dl8oKGk9YSkuY3JlYXRlVGltZSksby5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiaGFzTmV3ZXJCdW5kbGUiLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIG8uUWUuZ2V0QnVuZGxlTWV0YWRhdGEodCxpLmlkKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuISF0JiYwPD10LmNyZWF0ZVRpbWUuY29tcGFyZVRvKHMpfSkpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpP1s0LHAuY2xvc2UoKV06WzMsNF07Y2FzZSAzOnJldHVyblsyLCh0LnNlbnQoKSx2b2lkIGQuX2NvbXBsZXRlV2l0aCh7dGFza1N0YXRlOiJTdWNjZXNzIixkb2N1bWVudHNMb2FkZWQ6YS50b3RhbERvY3VtZW50cyxieXRlc0xvYWRlZDphLnRvdGFsQnl0ZXMsdG90YWxEb2N1bWVudHM6YS50b3RhbERvY3VtZW50cyx0b3RhbEJ5dGVzOmEudG90YWxCeXRlc30pKV07Y2FzZSA0OnJldHVybiBkLl91cGRhdGVQcm9ncmVzcyhJQyhhKSksdT1uZXcgeUMoYSxmLmxvY2FsU3RvcmUscC5SKSxbNCxwLkxvKCldO2Nhc2UgNTpjPXQuc2VudCgpLHQubGFiZWw9NjtjYXNlIDY6cmV0dXJuIGM/WzQsdS5vbyhjKV06WzMsMTBdO2Nhc2UgNzpyZXR1cm4oaD10LnNlbnQoKSkmJmQuX3VwZGF0ZVByb2dyZXNzKGgpLFs0LHAuTG8oKV07Y2FzZSA4OmM9dC5zZW50KCksdC5sYWJlbD05O2Nhc2UgOTpyZXR1cm5bMyw2XTtjYXNlIDEwOnJldHVybls0LHUuY29tcGxldGUoKV07Y2FzZSAxMTpyZXR1cm4gbD10LnNlbnQoKSxbNCxLQyhmLGwud24sdm9pZCAwKV07Y2FzZSAxMjpyZXR1cm4gdC5zZW50KCksWzQsKHI9Zi5sb2NhbFN0b3JlLGU9YSwobj1yKS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigiU2F2ZSBidW5kbGUiLCJyZWFkd3JpdGUiLGZ1bmN0aW9uKHQpe3JldHVybiBuLlFlLnNhdmVCdW5kbGVNZXRhZGF0YSh0LGUpfSkpXTtjYXNlIDEzOnJldHVybiB0LnNlbnQoKSxkLl9jb21wbGV0ZVdpdGgobC5wcm9ncmVzcyksWzMsMTVdO2Nhc2UgMTQ6cmV0dXJuIEt5KCJTeW5jRW5naW5lIiwiTG9hZGluZyBidW5kbGUgZmFpbGVkIHdpdGggIisobD10LnNlbnQoKSkpLGQuX2ZhaWxXaXRoKGwpLFszLDE1XTtjYXNlIDE1OnJldHVyblsyXX12YXIgZSxuLHIsaSxvLHN9KX0pfShyLGUsbikudGhlbihmdW5jdGlvbigpe3Iuc2hhcmVkQ2xpZW50U3RhdGUubm90aWZ5QnVuZGxlTG9hZGVkKCl9KX12YXIgJEMsWkMsdE49KGFOLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLlI9YlMoZS5kYXRhYmFzZUluZm8uZGF0YWJhc2VJZCksdGhpcy5zaGFyZWRDbGllbnRTdGF0ZT10aGlzLkJvKGUpLHRoaXMucGVyc2lzdGVuY2U9dGhpcy5xbyhlKSxbNCx0aGlzLnBlcnNpc3RlbmNlLnN0YXJ0KCldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksdGhpcy5nY1NjaGVkdWxlcj10aGlzLlVvKGUpLHRoaXMubG9jYWxTdG9yZT10aGlzLlFvKGUpLFsyXX19KX0pfSxhTi5wcm90b3R5cGUuVW89ZnVuY3Rpb24odCl7cmV0dXJuIG51bGx9LGFOLnByb3RvdHlwZS5Rbz1mdW5jdGlvbih0KXtyZXR1cm4gYUUodGhpcy5wZXJzaXN0ZW5jZSxuZXcgZUUsdC5pbml0aWFsVXNlcix0aGlzLlIpfSxhTi5wcm90b3R5cGUucW89ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBBRShSRS5icyx0aGlzLlIpfSxhTi5wcm90b3R5cGUuQm89ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBaRX0sYU4ucHJvdG90eXBlLnRlcm1pbmF0ZT1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmdjU2NoZWR1bGVyJiZ0aGlzLmdjU2NoZWR1bGVyLnN0b3AoKSxbNCx0aGlzLnNoYXJlZENsaWVudFN0YXRlLnNodXRkb3duKCldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzQsdGhpcy5wZXJzaXN0ZW5jZS5zaHV0ZG93bigpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSxhTiksZU49KFhpKHNOLFpDPXROKSxzTi5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxaQy5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzQsbUUodGhpcy5sb2NhbFN0b3JlKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbNCx0aGlzLktvLmluaXRpYWxpemUodGhpcyxlKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbNCxYQyh0aGlzLktvLnN5bmNFbmdpbmUpXTtjYXNlIDQ6cmV0dXJuIHQuc2VudCgpLFs0LFFTKHRoaXMuS28ucmVtb3RlU3RvcmUpXTtjYXNlIDU6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSxzTi5wcm90b3R5cGUuUW89ZnVuY3Rpb24odCl7cmV0dXJuIGFFKHRoaXMucGVyc2lzdGVuY2UsbmV3IGVFLHQuaW5pdGlhbFVzZXIsdGhpcy5SKX0sc04ucHJvdG90eXBlLlVvPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGVyc2lzdGVuY2UucmVmZXJlbmNlRGVsZWdhdGUuZ2FyYmFnZUNvbGxlY3RvcjtyZXR1cm4gbmV3IEVUKGUsdC5hc3luY1F1ZXVlKX0sc04ucHJvdG90eXBlLnFvPWZ1bmN0aW9uKHQpe3ZhciBlPUpUKHQuZGF0YWJhc2VJbmZvLmRhdGFiYXNlSWQsdC5kYXRhYmFzZUluZm8ucGVyc2lzdGVuY2VLZXkpLG49dm9pZCAwIT09dGhpcy5jYWNoZVNpemVCeXRlcz9pVC53aXRoQ2FjaGVTaXplKHRoaXMuY2FjaGVTaXplQnl0ZXMpOmlULkRFRkFVTFQ7cmV0dXJuIG5ldyB6VCh0aGlzLnN5bmNocm9uaXplVGFicyxlLHQuY2xpZW50SWQsbix0LmFzeW5jUXVldWUseVMoKSxtUygpLHRoaXMuUix0aGlzLnNoYXJlZENsaWVudFN0YXRlLCEhdGhpcy5mb3JjZU93bmVyc2hpcCl9LHNOLnByb3RvdHlwZS5Cbz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFpFfSxzTiksbk49KFhpKG9OLCRDPWVOKSxvTi5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbj10aGlzO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsJEMucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLHIpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLGU9dGhpcy5Lby5zeW5jRW5naW5lLHRoaXMuc2hhcmVkQ2xpZW50U3RhdGUgaW5zdGFuY2VvZiAkRT8odGhpcy5zaGFyZWRDbGllbnRTdGF0ZS5zeW5jRW5naW5lPXt1aTpIQy5iaW5kKG51bGwsZSksYWk6ZnVuY3Rpb24oaSxvLHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPWkpLk9vPyhWeSgiU3luY0VuZ2luZSIsIklnbm9yaW5nIHVuZXhwZWN0ZWQgcXVlcnkgc3RhdGUgbm90aWZpY2F0aW9uLiIpLFszLDhdKTpbMywxXTtjYXNlIDE6aWYoIWUuVm8uaGFzKG8pKXJldHVyblszLDhdO3N3aXRjaChzKXtjYXNlImN1cnJlbnQiOmNhc2Uibm90LWN1cnJlbnQiOnJldHVyblszLDJdO2Nhc2UicmVqZWN0ZWQiOnJldHVyblszLDVdfXJldHVyblszLDddO2Nhc2UgMjpyZXR1cm5bNCx5RShlLmxvY2FsU3RvcmUpXTtjYXNlIDM6cmV0dXJuIG49dC5zZW50KCkscj1Kdy5jcmVhdGVTeW50aGVzaXplZFJlbW90ZUV2ZW50Rm9yQ3VycmVudENoYW5nZShvLCJjdXJyZW50Ij09PXMpLFs0LEtDKGUsbixyKV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMyw4XTtjYXNlIDU6cmV0dXJuWzQsZEUoZS5sb2NhbFN0b3JlLG8sITApXTtjYXNlIDY6cmV0dXJuIHQuc2VudCgpLGpDKGUsbyxhKSxbMyw4XTtjYXNlIDc6SHkoKSx0LmxhYmVsPTg7Y2FzZSA4OnJldHVyblsyXX19KX0pfS5iaW5kKG51bGwsZSksaGk6ZnVuY3Rpb24oYyxoLGwpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixlLHIsaSxvLHMsYSx1O3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6aWYoIShuPVlDKGMpKS5PbylyZXR1cm5bMywxMF07ZT0wLHI9aCx0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiBlPHIubGVuZ3RoPyhyPXJbZV0sbi5Wby5oYXMocik/KFZ5KCJTeW5jRW5naW5lIiwiQWRkaW5nIGFuIGFscmVhZHkgYWN0aXZlIHRhcmdldCAiK3IpLFszLDVdKTpbNCxnRShuLmxvY2FsU3RvcmUscildKTpbMyw2XTtjYXNlIDI6cmV0dXJuIGk9dC5zZW50KCksWzQscEUobi5sb2NhbFN0b3JlLGkpXTtjYXNlIDM6cmV0dXJuIG89dC5zZW50KCksWzQsUEMobixRQyhpKSxvLnRhcmdldElkLCExKV07Y2FzZSA0OnQuc2VudCgpLEZTKG4ucmVtb3RlU3RvcmUsbyksdC5sYWJlbD01O2Nhc2UgNTpyZXR1cm4gZSsrLFszLDFdO2Nhc2UgNjpzPWZ1bmN0aW9uKGUpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIG4uVm8uaGFzKGUpP1s0LGRFKG4ubG9jYWxTdG9yZSxlLCExKS50aGVuKGZ1bmN0aW9uKCl7VVMobi5yZW1vdGVTdG9yZSxlKSxqQyhuLGUpfSkuY2F0Y2goX1QpXTpbMywyXTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMl19fSl9LGE9MCx1PWwsdC5sYWJlbD03O2Nhc2UgNzpyZXR1cm4gYTx1Lmxlbmd0aD8odT11W2FdLFs1LHModSldKTpbMywxMF07Y2FzZSA4OnQuc2VudCgpLHQubGFiZWw9OTtjYXNlIDk6cmV0dXJuIGErKyxbMyw3XTtjYXNlIDEwOnJldHVyblsyXX19KX0pfS5iaW5kKG51bGwsZSksZm46ZnVuY3Rpb24odCl7cmV0dXJuIHQubG9jYWxTdG9yZS5wZXJzaXN0ZW5jZS5mbigpfS5iaW5kKG51bGwsZSksY2k6ZnVuY3Rpb24obil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVyblsyLHlFKChlPW4pLmxvY2FsU3RvcmUpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIEtDKGUsdCl9KV19KX0pfS5iaW5kKG51bGwsZSl9LFs0LHRoaXMuc2hhcmVkQ2xpZW50U3RhdGUuc3RhcnQoKV0pOlszLDNdO2Nhc2UgMjp0LnNlbnQoKSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVybls0LHRoaXMucGVyc2lzdGVuY2UuSGUoZnVuY3Rpb24oZSl7cmV0dXJuICRpKG4sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsR0ModGhpcy5Lby5zeW5jRW5naW5lLGUpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLHRoaXMuZ2NTY2hlZHVsZXImJihlJiYhdGhpcy5nY1NjaGVkdWxlci5zdGFydGVkP3RoaXMuZ2NTY2hlZHVsZXIuc3RhcnQodGhpcy5sb2NhbFN0b3JlKTplfHx0aGlzLmdjU2NoZWR1bGVyLnN0b3AoKSksWzJdfX0pfSl9KV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMl19fSl9KX0sb04ucHJvdG90eXBlLkJvPWZ1bmN0aW9uKHQpe3ZhciBlPXlTKCk7aWYoISRFLnl0KGUpKXRocm93IG5ldyBGeShNeS5VTklNUExFTUVOVEVELCJJbmRleGVkREIgcGVyc2lzdGVuY2UgaXMgb25seSBhdmFpbGFibGUgb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCBMb2NhbFN0b3JhZ2UuIik7dmFyIG49SlQodC5kYXRhYmFzZUluZm8uZGF0YWJhc2VJZCx0LmRhdGFiYXNlSW5mby5wZXJzaXN0ZW5jZUtleSk7cmV0dXJuIG5ldyAkRShlLHQuYXN5bmNRdWV1ZSxuLHQuY2xpZW50SWQsdC5pbml0aWFsVXNlcil9LG9OKSxyTj0oaU4ucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24obixyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmxvY2FsU3RvcmU/WzMsMl06KHRoaXMubG9jYWxTdG9yZT1uLmxvY2FsU3RvcmUsdGhpcy5zaGFyZWRDbGllbnRTdGF0ZT1uLnNoYXJlZENsaWVudFN0YXRlLHRoaXMuZGF0YXN0b3JlPXRoaXMuY3JlYXRlRGF0YXN0b3JlKHIpLHRoaXMucmVtb3RlU3RvcmU9dGhpcy5jcmVhdGVSZW1vdGVTdG9yZShyKSx0aGlzLmV2ZW50TWFuYWdlcj10aGlzLmNyZWF0ZUV2ZW50TWFuYWdlcihyKSx0aGlzLnN5bmNFbmdpbmU9dGhpcy5jcmVhdGVTeW5jRW5naW5lKHIsIW4uc3luY2hyb25pemVUYWJzKSx0aGlzLnNoYXJlZENsaWVudFN0YXRlLm9ubGluZVN0YXRlSGFuZGxlcj1mdW5jdGlvbih0KXtyZXR1cm4geEMoZS5zeW5jRW5naW5lLHQsMSl9LHRoaXMucmVtb3RlU3RvcmUucmVtb3RlU3luY2VyLmhhbmRsZUNyZWRlbnRpYWxDaGFuZ2U9V0MuYmluZChudWxsLHRoaXMuc3luY0VuZ2luZSksWzQsSlModGhpcy5yZW1vdGVTdG9yZSx0aGlzLnN5bmNFbmdpbmUuaXNQcmltYXJ5Q2xpZW50KV0pO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSxpTi5wcm90b3R5cGUuY3JlYXRlRXZlbnRNYW5hZ2VyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgckN9LGlOLnByb3RvdHlwZS5jcmVhdGVEYXRhc3RvcmU9ZnVuY3Rpb24odCl7dmFyIGU9YlModC5kYXRhYmFzZUluZm8uZGF0YWJhc2VJZCksbj0obj10LmRhdGFiYXNlSW5mbyxuZXcgaVMobikpO3JldHVybiB0PXQuY3JlZGVudGlhbHMsbmV3IE5TKHQsbixlKX0saU4ucHJvdG90eXBlLmNyZWF0ZVJlbW90ZVN0b3JlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmxvY2FsU3RvcmUscj10aGlzLmRhdGFzdG9yZSxpPXQuYXN5bmNRdWV1ZSxvPWZ1bmN0aW9uKHQpe3JldHVybiB4QyhlLnN5bmNFbmdpbmUsdCwwKX0sdD1uZXcoZVMueXQoKT9lUzp0Uyk7cmV0dXJuIG5ldyB3UyhuLHIsaSxvLHQpfSxpTi5wcm90b3R5cGUuY3JlYXRlU3luY0VuZ2luZT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbih0LGUsbixyLGksbyxzKXtvPW5ldyBBQyh0LGUsbixyLGksbyk7cmV0dXJuIHMmJihvLk9vPSEwKSxvfSh0aGlzLmxvY2FsU3RvcmUsdGhpcy5yZW1vdGVTdG9yZSx0aGlzLmV2ZW50TWFuYWdlcix0aGlzLnNoYXJlZENsaWVudFN0YXRlLHQuaW5pdGlhbFVzZXIsdC5tYXhDb25jdXJyZW50TGltYm9SZXNvbHV0aW9ucyxlKX0saU4ucHJvdG90eXBlLnRlcm1pbmF0ZT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1uLFZ5KCJSZW1vdGVTdG9yZSIsIlJlbW90ZVN0b3JlIHNodXR0aW5nIGRvd24uIiksZS4kci5hZGQoNSksWzQsTVMoZSldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksZS5Mci5zaHV0ZG93bigpLGUuQnIuc2V0KCJVbmtub3duIiksWzJdfX0pfSl9KHRoaXMucmVtb3RlU3RvcmUpfSxpTik7ZnVuY3Rpb24gaU4oKXt9ZnVuY3Rpb24gb04odCxlKXt2YXIgbj10aGlzO3JldHVybihuPSRDLmNhbGwodGhpcyx0LGUsITEpfHx0aGlzKS5Lbz10LG4uY2FjaGVTaXplQnl0ZXM9ZSxuLnN5bmNocm9uaXplVGFicz0hMCxufWZ1bmN0aW9uIHNOKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPVpDLmNhbGwodGhpcyl8fHRoaXMpLktvPXQsci5jYWNoZVNpemVCeXRlcz1lLHIuZm9yY2VPd25lcnNoaXA9bixyLnN5bmNocm9uaXplVGFicz0hMSxyfWZ1bmN0aW9uIGFOKCl7dGhpcy5zeW5jaHJvbml6ZVRhYnM9ITF9ZnVuY3Rpb24gdU4obixyKXt2b2lkIDA9PT1yJiYocj0xMDI0MCk7dmFyIGk9MDtyZXR1cm57cmVhZDpmdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gaTxuLmJ5dGVMZW5ndGg/KGU9e3ZhbHVlOm4uc2xpY2UoaSxpK3IpLGRvbmU6ITF9LFsyLChpKz1yLGUpXSk6WzIse2RvbmU6ITB9XX0pfSl9LGNhbmNlbDpmdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm5bMl19KX0pfSxyZWxlYXNlTG9jazpmdW5jdGlvbigpe30sY2xvc2VkOlByb21pc2UucmVqZWN0KCJ1bmltcGxlbWVudGVkIil9fXZhciBjTj0obU4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24odCl7dGhpcy5vYnNlcnZlci5uZXh0JiZ0aGlzLmpvKHRoaXMub2JzZXJ2ZXIubmV4dCx0KX0sbU4ucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe3RoaXMub2JzZXJ2ZXIuZXJyb3I/dGhpcy5qbyh0aGlzLm9ic2VydmVyLmVycm9yLHQpOmNvbnNvbGUuZXJyb3IoIlVuY2F1Z2h0IEVycm9yIGluIHNuYXBzaG90IGxpc3RlbmVyOiIsdCl9LG1OLnByb3RvdHlwZS5Xbz1mdW5jdGlvbigpe3RoaXMubXV0ZWQ9ITB9LG1OLnByb3RvdHlwZS5qbz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5tdXRlZHx8c2V0VGltZW91dChmdW5jdGlvbigpe24ubXV0ZWR8fHQoZSl9LDApfSxtTiksaE49KHlOLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkdvLmNhbmNlbCgpfSx5Ti5wcm90b3R5cGUuZ2V0TWV0YWRhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuWzIsdGhpcy5tZXRhZGF0YS5wcm9taXNlXX0pfSl9LHlOLnByb3RvdHlwZS5Mbz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZ2V0TWV0YWRhdGEoKV07Y2FzZSAxOnJldHVyblsyLCh0LnNlbnQoKSx0aGlzLkhvKCkpXX19KX0pfSx5Ti5wcm90b3R5cGUuSG89ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5KbygpXTtjYXNlIDE6cmV0dXJuIG51bGw9PT0oZT10LnNlbnQoKSk/WzIsbnVsbF06KHI9dGhpcy56by5kZWNvZGUoZSksbj1OdW1iZXIociksaXNOYU4obikmJnRoaXMuWW8oImxlbmd0aCBzdHJpbmcgKCIrcisiKSBpcyBub3QgdmFsaWQgbnVtYmVyIiksWzQsdGhpcy5YbyhuKV0pO2Nhc2UgMjpyZXR1cm4gcj10LnNlbnQoKSxbMixuZXcgdkMoSlNPTi5wYXJzZShyKSxlLmxlbmd0aCtuKV19fSl9KX0seU4ucHJvdG90eXBlLlpvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnVmZmVyLmZpbmRJbmRleChmdW5jdGlvbih0KXtyZXR1cm4gdD09PSJ7Ii5jaGFyQ29kZUF0KDApfSl9LHlOLnByb3RvdHlwZS5Kbz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuWm8oKTwwP1s0LHRoaXMudGMoKV06WzMsM107Y2FzZSAxOmlmKHQuc2VudCgpKXJldHVyblszLDNdO3QubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzMsMF07Y2FzZSAzOnJldHVybiAwPT09dGhpcy5idWZmZXIubGVuZ3RoP1syLG51bGxdOigoZT10aGlzLlpvKCkpPDAmJnRoaXMuWW8oIlJlYWNoZWQgdGhlIGVuZCBvZiBidW5kbGUgd2hlbiBhIGxlbmd0aCBzdHJpbmcgaXMgZXhwZWN0ZWQuIiksbj10aGlzLmJ1ZmZlci5zbGljZSgwLGUpLFsyLCh0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlci5zbGljZShlKSxuKV0pfX0pfSl9LHlOLnByb3RvdHlwZS5Ybz1mdW5jdGlvbihuKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5idWZmZXIubGVuZ3RoPG4/WzQsdGhpcy50YygpXTpbMywzXTtjYXNlIDE6dC5zZW50KCkmJnRoaXMuWW8oIlJlYWNoZWQgdGhlIGVuZCBvZiBidW5kbGUgd2hlbiBtb3JlIGlzIGV4cGVjdGVkLiIpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzMsMF07Y2FzZSAzOnJldHVybiBlPXRoaXMuem8uZGVjb2RlKHRoaXMuYnVmZmVyLnNsaWNlKDAsbikpLFsyLCh0aGlzLmJ1ZmZlcj10aGlzLmJ1ZmZlci5zbGljZShuKSxlKV19fSl9KX0seU4ucHJvdG90eXBlLllvPWZ1bmN0aW9uKHQpe3Rocm93IHRoaXMuR28uY2FuY2VsKCksbmV3IEVycm9yKCJJbnZhbGlkIGJ1bmRsZSBmb3JtYXQ6ICIrdCl9LHlOLnByb3RvdHlwZS50Yz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5Hby5yZWFkKCldO2Nhc2UgMTpyZXR1cm4oZT10LnNlbnQoKSkuZG9uZXx8KChuPW5ldyBVaW50OEFycmF5KHRoaXMuYnVmZmVyLmxlbmd0aCtlLnZhbHVlLmxlbmd0aCkpLnNldCh0aGlzLmJ1ZmZlciksbi5zZXQoZS52YWx1ZSx0aGlzLmJ1ZmZlci5sZW5ndGgpLHRoaXMuYnVmZmVyPW4pLFsyLGUuZG9uZV19fSl9KX0seU4pLGxOPShnTi5wcm90b3R5cGUubG9va3VwPWZ1bmN0aW9uKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZih0aGlzLmVuc3VyZUNvbW1pdE5vdENhbGxlZCgpLDA8dGhpcy5tdXRhdGlvbnMubGVuZ3RoKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJGaXJlc3RvcmUgdHJhbnNhY3Rpb25zIHJlcXVpcmUgYWxsIHJlYWRzIHRvIGJlIGV4ZWN1dGVkIGJlZm9yZSBhbGwgd3JpdGVzLiIpO3JldHVybls0LGZ1bmN0aW9uKHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLGUscixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1JXygobj1zKS5SKSsiL2RvY3VtZW50cyIscj17ZG9jdW1lbnRzOmEubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBtXyhuLlIsdCl9KX0sWzQsbi5PaSgiQmF0Y2hHZXREb2N1bWVudHMiLGUscildO2Nhc2UgMTpyZXR1cm4gcj10LnNlbnQoKSxpPW5ldyBNYXAsci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLHQ9KGU9bi5SLCJmb3VuZCJpbih0PXQpP2Z1bmN0aW9uKHQsZSl7R3koISFlLmZvdW5kKSxlLmZvdW5kLm5hbWUsZS5mb3VuZC51cGRhdGVUaW1lO3ZhciBuPWJfKHQsZS5mb3VuZC5uYW1lKSx0PXZfKGUuZm91bmQudXBkYXRlVGltZSksZT1uZXcgcW0oe21hcFZhbHVlOntmaWVsZHM6ZS5mb3VuZC5maWVsZHN9fSk7cmV0dXJuIEJtLm5ld0ZvdW5kRG9jdW1lbnQobix0LGUpfShlLHQpOiJtaXNzaW5nImluIHQ/ZnVuY3Rpb24odCxlKXtHeSghIWUubWlzc2luZyksR3koISFlLnJlYWRUaW1lKTt0PWJfKHQsZS5taXNzaW5nKSxlPXZfKGUucmVhZFRpbWUpO3JldHVybiBCbS5uZXdOb0RvY3VtZW50KHQsZSl9KGUsdCk6SHkoKSk7aS5zZXQodC5rZXkudG9TdHJpbmcoKSx0KX0pLG89W10sWzIsKGEuZm9yRWFjaChmdW5jdGlvbih0KXt0PWkuZ2V0KHQudG9TdHJpbmcoKSk7R3koISF0KSxvLnB1c2godCl9KSxvKV19fSl9KX0odGhpcy5kYXRhc3RvcmUscildO2Nhc2UgMTpyZXR1cm5bMiwoKGU9dC5zZW50KCkpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIG4ucmVjb3JkVmVyc2lvbih0KX0pLGUpXX19KX0pfSxnTi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZShlLnRvTXV0YXRpb24odCx0aGlzLnByZWNvbmRpdGlvbih0KSkpLHRoaXMud3JpdHRlbkRvY3MuYWRkKHQudG9TdHJpbmcoKSl9LGdOLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXt0cnl7dGhpcy53cml0ZShlLnRvTXV0YXRpb24odCx0aGlzLnByZWNvbmRpdGlvbkZvclVwZGF0ZSh0KSkpfWNhdGNoKHQpe3RoaXMubGFzdFdyaXRlRXJyb3I9dH10aGlzLndyaXR0ZW5Eb2NzLmFkZCh0LnRvU3RyaW5nKCkpfSxnTi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3RoaXMud3JpdGUobmV3IEF3KHQsdGhpcy5wcmVjb25kaXRpb24odCkpKSx0aGlzLndyaXR0ZW5Eb2NzLmFkZCh0LnRvU3RyaW5nKCkpfSxnTi5wcm90b3R5cGUuY29tbWl0PWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG49dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOmlmKHRoaXMuZW5zdXJlQ29tbWl0Tm90Q2FsbGVkKCksdGhpcy5sYXN0V3JpdGVFcnJvcil0aHJvdyB0aGlzLmxhc3RXcml0ZUVycm9yO3JldHVybiBlPXRoaXMucmVhZFZlcnNpb25zLHRoaXMubXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24odCl7ZS5kZWxldGUodC5rZXkudG9TdHJpbmcoKSl9KSxlLmZvckVhY2goZnVuY3Rpb24odCxlKXtlPUNtLmZyb21QYXRoKGUpO24ubXV0YXRpb25zLnB1c2gobmV3IGt3KGUsbi5wcmVjb25kaXRpb24oZSkpKX0pLFs0LGZ1bmN0aW9uKGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBuPUlfKChlPWkpLlIpKyIvZG9jdW1lbnRzIixyPXt3cml0ZXM6by5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIENfKGUuUix0KX0pfSxbNCxlLk5pKCJDb21taXQiLG4scildO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9KHRoaXMuZGF0YXN0b3JlLHRoaXMubXV0YXRpb25zKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSx0aGlzLmNvbW1pdHRlZD0hMCxbMl19fSl9KX0sZ04ucHJvdG90eXBlLnJlY29yZFZlcnNpb249ZnVuY3Rpb24odCl7dmFyIGU7aWYodC5pc0ZvdW5kRG9jdW1lbnQoKSllPXQudmVyc2lvbjtlbHNle2lmKCF0LmlzTm9Eb2N1bWVudCgpKXRocm93IEh5KCk7ZT1aeS5taW4oKX12YXIgbj10aGlzLnJlYWRWZXJzaW9ucy5nZXQodC5rZXkudG9TdHJpbmcoKSk7aWYobil7aWYoIWUuaXNFcXVhbChuKSl0aHJvdyBuZXcgRnkoTXkuQUJPUlRFRCwiRG9jdW1lbnQgdmVyc2lvbiBjaGFuZ2VkIGJldHdlZW4gdHdvIHJlYWRzLiIpfWVsc2UgdGhpcy5yZWFkVmVyc2lvbnMuc2V0KHQua2V5LnRvU3RyaW5nKCksZSl9LGdOLnByb3RvdHlwZS5wcmVjb25kaXRpb249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yZWFkVmVyc2lvbnMuZ2V0KHQudG9TdHJpbmcoKSk7cmV0dXJuIXRoaXMud3JpdHRlbkRvY3MuaGFzKHQudG9TdHJpbmcoKSkmJmU/Y3cudXBkYXRlVGltZShlKTpjdy5ub25lKCl9LGdOLnByb3RvdHlwZS5wcmVjb25kaXRpb25Gb3JVcGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yZWFkVmVyc2lvbnMuZ2V0KHQudG9TdHJpbmcoKSk7aWYodGhpcy53cml0dGVuRG9jcy5oYXModC50b1N0cmluZygpKXx8IWUpcmV0dXJuIGN3LmV4aXN0cyghMCk7aWYoZS5pc0VxdWFsKFp5Lm1pbigpKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiQ2FuJ3QgdXBkYXRlIGEgZG9jdW1lbnQgdGhhdCBkb2Vzbid0IGV4aXN0LiIpO3JldHVybiBjdy51cGRhdGVUaW1lKGUpfSxnTi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCl7dGhpcy5lbnN1cmVDb21taXROb3RDYWxsZWQoKSx0aGlzLm11dGF0aW9ucy5wdXNoKHQpfSxnTi5wcm90b3R5cGUuZW5zdXJlQ29tbWl0Tm90Q2FsbGVkPWZ1bmN0aW9uKCl7fSxnTiksZk49KHZOLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLm5jKCl9LHZOLnByb3RvdHlwZS5uYz1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5aaS5qaShmdW5jdGlvbigpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHI9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gZT1uZXcgbE4odGhpcy5kYXRhc3RvcmUpLChuPXRoaXMuc2MoZSkpJiZuLnRoZW4oZnVuY3Rpb24odCl7ci5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gZS5jb21taXQoKS50aGVuKGZ1bmN0aW9uKCl7ci5kZWZlcnJlZC5yZXNvbHZlKHQpfSkuY2F0Y2goZnVuY3Rpb24odCl7ci5pYyh0KX0pfSl9KS5jYXRjaChmdW5jdGlvbih0KXtyLmljKHQpfSksWzJdfSl9KX0pfSx2Ti5wcm90b3R5cGUuc2M9ZnVuY3Rpb24odCl7dHJ5e3ZhciBlPXRoaXMudXBkYXRlRnVuY3Rpb24odCk7cmV0dXJuIVRtKGUpJiZlLmNhdGNoJiZlLnRoZW4/ZToodGhpcy5kZWZlcnJlZC5yZWplY3QoRXJyb3IoIlRyYW5zYWN0aW9uIGNhbGxiYWNrIG11c3QgcmV0dXJuIGEgUHJvbWlzZSIpKSxudWxsKX1jYXRjaCh0KXtyZXR1cm4gdGhpcy5kZWZlcnJlZC5yZWplY3QodCksbnVsbH19LHZOLnByb3RvdHlwZS5pYz1mdW5jdGlvbih0KXt2YXIgZT10aGlzOzA8dGhpcy5lYyYmdGhpcy5yYyh0KT8oLS10aGlzLmVjLHRoaXMuYXN5bmNRdWV1ZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuIGUubmMoKSxQcm9taXNlLnJlc29sdmUoKX0pKTp0aGlzLmRlZmVycmVkLnJlamVjdCh0KX0sdk4ucHJvdG90eXBlLnJjPWZ1bmN0aW9uKHQpe2lmKCJGaXJlYmFzZUVycm9yIiE9PXQubmFtZSlyZXR1cm4hMTt0PXQuY29kZTtyZXR1cm4iYWJvcnRlZCI9PT10fHwiZmFpbGVkLXByZWNvbmRpdGlvbiI9PT10fHwhT3codCl9LHZOKSxwTj0oZE4ucHJvdG90eXBlLmdldENvbmZpZ3VyYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlY2VpdmVkSW5pdGlhbFVzZXIucHJvbWlzZV07Y2FzZSAxOnJldHVyblsyLCh0LnNlbnQoKSx7YXN5bmNRdWV1ZTp0aGlzLmFzeW5jUXVldWUsZGF0YWJhc2VJbmZvOnRoaXMuZGF0YWJhc2VJbmZvLGNsaWVudElkOnRoaXMuY2xpZW50SWQsY3JlZGVudGlhbHM6dGhpcy5jcmVkZW50aWFscyxpbml0aWFsVXNlcjp0aGlzLnVzZXIsbWF4Q29uY3VycmVudExpbWJvUmVzb2x1dGlvbnM6MTAwfSldfX0pfSl9LGROLnByb3RvdHlwZS5zZXRDcmVkZW50aWFsQ2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmNyZWRlbnRpYWxMaXN0ZW5lcj10LHRoaXMucmVjZWl2ZWRJbml0aWFsVXNlci5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5jcmVkZW50aWFsTGlzdGVuZXIoZS51c2VyKX0pfSxkTi5wcm90b3R5cGUudmVyaWZ5Tm90VGVybWluYXRlZD1mdW5jdGlvbigpe2lmKHRoaXMuYXN5bmNRdWV1ZS5pc1NodXR0aW5nRG93bil0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiVGhlIGNsaWVudCBoYXMgYWxyZWFkeSBiZWVuIHRlcm1pbmF0ZWQuIil9LGROLnByb3RvdHlwZS50ZXJtaW5hdGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuYXN5bmNRdWV1ZS5lbnRlclJlc3RyaWN0ZWRNb2RlKCk7dmFyIG49bmV3IGFJO3JldHVybiB0aGlzLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldEV2ZW5XaGlsZVJlc3RyaWN0ZWQoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdC50cnlzLnB1c2goWzAsNSwsNl0pLHRoaXMub25saW5lQ29tcG9uZW50cz9bNCx0aGlzLm9ubGluZUNvbXBvbmVudHMudGVybWluYXRlKCldOlszLDJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0aGlzLm9mZmxpbmVDb21wb25lbnRzP1s0LHRoaXMub2ZmbGluZUNvbXBvbmVudHMudGVybWluYXRlKCldOlszLDRdO2Nhc2UgMzp0LnNlbnQoKSx0LmxhYmVsPTQ7Y2FzZSA0OnJldHVybiB0aGlzLmNyZWRlbnRpYWxzLnJlbW92ZUNoYW5nZUxpc3RlbmVyKCksbi5yZXNvbHZlKCksWzMsNl07Y2FzZSA1OnJldHVybiBlPXQuc2VudCgpLGU9bkMoZSwiRmFpbGVkIHRvIHNodXRkb3duIHBlcnNpc3RlbmNlIiksbi5yZWplY3QoZSksWzMsNl07Y2FzZSA2OnJldHVyblsyXX19KX0pfSksbi5wcm9taXNlfSxkTik7ZnVuY3Rpb24gZE4odCxlLG4pe3ZhciByPXRoaXM7dGhpcy5jcmVkZW50aWFscz10LHRoaXMuYXN5bmNRdWV1ZT1lLHRoaXMuZGF0YWJhc2VJbmZvPW4sdGhpcy51c2VyPVBFLlVOQVVUSEVOVElDQVRFRCx0aGlzLmNsaWVudElkPXp5LnUoKSx0aGlzLmNyZWRlbnRpYWxMaXN0ZW5lcj1mdW5jdGlvbigpe30sdGhpcy5yZWNlaXZlZEluaXRpYWxVc2VyPW5ldyBhSSx0aGlzLmNyZWRlbnRpYWxzLnNldENoYW5nZUxpc3RlbmVyKGZ1bmN0aW9uKHQpe1Z5KCJGaXJlc3RvcmVDbGllbnQiLCJSZWNlaXZlZCB1c2VyPSIsdC51aWQpLHIudXNlcj10LHIuY3JlZGVudGlhbExpc3RlbmVyKHQpLHIucmVjZWl2ZWRJbml0aWFsVXNlci5yZXNvbHZlKCl9KX1mdW5jdGlvbiB2Tih0LGUsbixyKXt0aGlzLmFzeW5jUXVldWU9dCx0aGlzLmRhdGFzdG9yZT1lLHRoaXMudXBkYXRlRnVuY3Rpb249bix0aGlzLmRlZmVycmVkPXIsdGhpcy5lYz01LHRoaXMuWmk9bmV3IEVTKHRoaXMuYXN5bmNRdWV1ZSwidHJhbnNhY3Rpb25fcmV0cnkiKX1mdW5jdGlvbiBnTih0KXt0aGlzLmRhdGFzdG9yZT10LHRoaXMucmVhZFZlcnNpb25zPW5ldyBNYXAsdGhpcy5tdXRhdGlvbnM9W10sdGhpcy5jb21taXR0ZWQ9ITEsdGhpcy5sYXN0V3JpdGVFcnJvcj1udWxsLHRoaXMud3JpdHRlbkRvY3M9bmV3IFNldH1mdW5jdGlvbiB5Tih0LGUpe3ZhciBuPXRoaXM7dGhpcy5Hbz10LHRoaXMuUj1lLHRoaXMubWV0YWRhdGE9bmV3IGFJLHRoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5LHRoaXMuem89bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLHRoaXMuSG8oKS50aGVuKGZ1bmN0aW9uKHQpe3QmJnQuaW8oKT9uLm1ldGFkYXRhLnJlc29sdmUodC5wYXlsb2FkLm1ldGFkYXRhKTpuLm1ldGFkYXRhLnJlamVjdChuZXcgRXJyb3IoIlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBidW5kbGUgaXMgbm90IGEgbWV0YWRhdGEsIGl0IGlzXG4gICAgICAgICAgICAgIitKU09OLnN0cmluZ2lmeShudWxsPT10P3ZvaWQgMDp0LnBheWxvYWQpKSl9LGZ1bmN0aW9uKHQpe3JldHVybiBuLm1ldGFkYXRhLnJlamVjdCh0KX0pfWZ1bmN0aW9uIG1OKHQpe3RoaXMub2JzZXJ2ZXI9dCx0aGlzLm11dGVkPSExfWZ1bmN0aW9uIGJOKGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scj10aGlzO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGkuYXN5bmNRdWV1ZS52ZXJpZnlPcGVyYXRpb25JblByb2dyZXNzKCksVnkoIkZpcmVzdG9yZUNsaWVudCIsIkluaXRpYWxpemluZyBPZmZsaW5lQ29tcG9uZW50UHJvdmlkZXIiKSxbNCxpLmdldENvbmZpZ3VyYXRpb24oKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLFs0LG8uaW5pdGlhbGl6ZShlKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxuPWUuaW5pdGlhbFVzZXIsaS5zZXRDcmVkZW50aWFsQ2hhbmdlTGlzdGVuZXIoZnVuY3Rpb24oZSl7bi5pc0VxdWFsKGUpfHwobj1lLGkuYXN5bmNRdWV1ZS5lbnF1ZXVlUmV0cnlhYmxlKGZ1bmN0aW9uKCl7cmV0dXJuICRpKHIsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdUUoby5sb2NhbFN0b3JlLGUpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSkpfSksby5wZXJzaXN0ZW5jZS5zZXREYXRhYmFzZURlbGV0ZWRMaXN0ZW5lcihmdW5jdGlvbigpe3JldHVybiBpLnRlcm1pbmF0ZSgpfSksaS5vZmZsaW5lQ29tcG9uZW50cz1vLFsyXX19KX0pfWZ1bmN0aW9uIHdOKHIsaSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gci5hc3luY1F1ZXVlLnZlcmlmeU9wZXJhdGlvbkluUHJvZ3Jlc3MoKSxbNCxfTihyKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLFZ5KCJGaXJlc3RvcmVDbGllbnQiLCJJbml0aWFsaXppbmcgT25saW5lQ29tcG9uZW50UHJvdmlkZXIiKSxbNCxyLmdldENvbmZpZ3VyYXRpb24oKV07Y2FzZSAyOnJldHVybiBuPXQuc2VudCgpLFs0LGkuaW5pdGlhbGl6ZShlLG4pXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLHIuc2V0Q3JlZGVudGlhbENoYW5nZUxpc3RlbmVyKGZ1bmN0aW9uKHQpe3JldHVybiByLmFzeW5jUXVldWUuZW5xdWV1ZVJldHJ5YWJsZShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihyLGkpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKGU9cikuYXN5bmNRdWV1ZS52ZXJpZnlPcGVyYXRpb25JblByb2dyZXNzKCksVnkoIlJlbW90ZVN0b3JlIiwiUmVtb3RlU3RvcmUgcmVjZWl2ZWQgbmV3IGNyZWRlbnRpYWxzIiksbj1LUyhlKSxlLiRyLmFkZCgzKSxbNCxNUyhlKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxuJiZlLkJyLnNldCgiVW5rbm93biIpLFs0LGUucmVtb3RlU3luY2VyLmhhbmRsZUNyZWRlbnRpYWxDaGFuZ2UoaSldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksZS4kci5kZWxldGUoMyksWzQsTFMoZSldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9KGkucmVtb3RlU3RvcmUsdCl9KX0pLHIub25saW5lQ29tcG9uZW50cz1pLFsyXX19KX0pfWZ1bmN0aW9uIF9OKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlLm9mZmxpbmVDb21wb25lbnRzP1szLDJdOihWeSgiRmlyZXN0b3JlQ2xpZW50IiwiVXNpbmcgZGVmYXVsdCBPZmZsaW5lQ29tcG9uZW50UHJvdmlkZXIiKSxbNCxiTihlLG5ldyB0TildKTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixlLm9mZmxpbmVDb21wb25lbnRzXX19KX0pfWZ1bmN0aW9uIElOKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlLm9ubGluZUNvbXBvbmVudHM/WzMsMl06KFZ5KCJGaXJlc3RvcmVDbGllbnQiLCJVc2luZyBkZWZhdWx0IE9ubGluZUNvbXBvbmVudFByb3ZpZGVyIiksWzQsd04oZSxuZXcgck4pXSk7Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsZS5vbmxpbmVDb21wb25lbnRzXX19KX0pfWZ1bmN0aW9uIFROKHQpe3JldHVybiBfTih0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBlcnNpc3RlbmNlfSl9ZnVuY3Rpb24gRU4odCl7cmV0dXJuIF9OKHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQubG9jYWxTdG9yZX0pfWZ1bmN0aW9uIFNOKHQpe3JldHVybiBJTih0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbW90ZVN0b3JlfSl9ZnVuY3Rpb24gQ04odCl7cmV0dXJuIElOKHQpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuc3luY0VuZ2luZX0pfWZ1bmN0aW9uIE5OKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsSU4ocildO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxbMiwoKG49ZS5ldmVudE1hbmFnZXIpLm9uTGlzdGVuPWZ1bmN0aW9uKHMsYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG87cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1ZQyhzKSwobz1lLlBvLmdldChhKSk/KG49by50YXJnZXRJZCxlLnNoYXJlZENsaWVudFN0YXRlLmFkZExvY2FsUXVlcnlUYXJnZXQobikscj1vLnZpZXcuUm8oKSxbMyw0XSk6WzMsMV07Y2FzZSAxOnJldHVybls0LHBFKGUubG9jYWxTdG9yZSx4YihhKSldO2Nhc2UgMjpyZXR1cm4gaT10LnNlbnQoKSxvPWUuc2hhcmVkQ2xpZW50U3RhdGUuYWRkTG9jYWxRdWVyeVRhcmdldChpLnRhcmdldElkKSxuPWkudGFyZ2V0SWQsWzQsUEMoZSxhLG4sImN1cnJlbnQiPT09byldO2Nhc2UgMzpyPXQuc2VudCgpLGUuaXNQcmltYXJ5Q2xpZW50JiZGUyhlLnJlbW90ZVN0b3JlLGkpLHQubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzIscl19fSl9KX0uYmluZChudWxsLGUuc3luY0VuZ2luZSksbi5vblVubGlzdGVuPWZ1bmN0aW9uKGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBuPShlPWkpLlBvLmdldChvKSwxPChyPWUuVm8uZ2V0KG4udGFyZ2V0SWQpKS5sZW5ndGg/WzIsKGUuVm8uc2V0KG4udGFyZ2V0SWQsci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIU1iKHQsbyl9KSksdm9pZCBlLlBvLmRlbGV0ZShvKSldOmUuaXNQcmltYXJ5Q2xpZW50PyhlLnNoYXJlZENsaWVudFN0YXRlLnJlbW92ZUxvY2FsUXVlcnlUYXJnZXQobi50YXJnZXRJZCksZS5zaGFyZWRDbGllbnRTdGF0ZS5pc0FjdGl2ZVF1ZXJ5VGFyZ2V0KG4udGFyZ2V0SWQpP1szLDJdOls0LGRFKGUubG9jYWxTdG9yZSxuLnRhcmdldElkLCExKS50aGVuKGZ1bmN0aW9uKCl7ZS5zaGFyZWRDbGllbnRTdGF0ZS5jbGVhclF1ZXJ5U3RhdGUobi50YXJnZXRJZCksVVMoZS5yZW1vdGVTdG9yZSxuLnRhcmdldElkKSxqQyhlLG4udGFyZ2V0SWQpfSkuY2F0Y2goX1QpXSk6WzMsM107Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzMsNV07Y2FzZSAzOnJldHVybiBqQyhlLG4udGFyZ2V0SWQpLFs0LGRFKGUubG9jYWxTdG9yZSxuLnRhcmdldElkLCEwKV07Y2FzZSA0OnQuc2VudCgpLHQubGFiZWw9NTtjYXNlIDU6cmV0dXJuWzJdfX0pfSl9LmJpbmQobnVsbCxlLnN5bmNFbmdpbmUpLG4pXX19KX0pfWZ1bmN0aW9uIEFOKG4scixpKXt2YXIgdD10aGlzO3ZvaWQgMD09PWkmJihpPXt9KTt2YXIgbz1uZXcgYUk7cmV0dXJuIG4uYXN5bmNRdWV1ZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9ZnVuY3Rpb24obixyLGksbyxzKXt2YXIgdD1uZXcgY04oe25leHQ6ZnVuY3Rpb24odCl7ci5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuIGZDKG4sYSl9KTt2YXIgZT10LmRvY3MuaGFzKGkpOyFlJiZ0LmZyb21DYWNoZT9zLnJlamVjdChuZXcgRnkoTXkuVU5BVkFJTEFCTEUsIkZhaWxlZCB0byBnZXQgZG9jdW1lbnQgYmVjYXVzZSB0aGUgY2xpZW50IGlzIG9mZmxpbmUuIikpOmUmJnQuZnJvbUNhY2hlJiZvJiYic2VydmVyIj09PW8uc291cmNlP3MucmVqZWN0KG5ldyBGeShNeS5VTkFWQUlMQUJMRSwnRmFpbGVkIHRvIGdldCBkb2N1bWVudCBmcm9tIHNlcnZlci4gKEhvd2V2ZXIsIHRoaXMgZG9jdW1lbnQgZG9lcyBleGlzdCBpbiB0aGUgbG9jYWwgY2FjaGUuIFJ1biBhZ2FpbiB3aXRob3V0IHNldHRpbmcgc291cmNlIHRvICJzZXJ2ZXIiIHRvIHJldHJpZXZlIHRoZSBjYWNoZWQgZG9jdW1lbnQuKScpKTpzLnJlc29sdmUodCl9LGVycm9yOmZ1bmN0aW9uKHQpe3JldHVybiBzLnJlamVjdCh0KX19KSxhPW5ldyBkQyhOYihpLnBhdGgpLHQse2luY2x1ZGVNZXRhZGF0YUNoYW5nZXM6ITAsc286ITB9KTtyZXR1cm4gbEMobixhKX0sWzQsTk4obildO2Nhc2UgMTpyZXR1cm5bMixlLmFwcGx5KHZvaWQgMCxbdC5zZW50KCksbi5hc3luY1F1ZXVlLHIsaSxvXSldfX0pfSl9KSxvLnByb21pc2V9ZnVuY3Rpb24ga04obixyLGkpe3ZhciB0PXRoaXM7dm9pZCAwPT09aSYmKGk9e30pO3ZhciBvPW5ldyBhSTtyZXR1cm4gbi5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1mdW5jdGlvbihlLG4sdCxyLGkpe3ZhciBvPW5ldyBjTih7bmV4dDpmdW5jdGlvbih0KXtuLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gZkMoZSxzKX0pLHQuZnJvbUNhY2hlJiYic2VydmVyIj09PXIuc291cmNlP2kucmVqZWN0KG5ldyBGeShNeS5VTkFWQUlMQUJMRSwnRmFpbGVkIHRvIGdldCBkb2N1bWVudHMgZnJvbSBzZXJ2ZXIuIChIb3dldmVyLCB0aGVzZSBkb2N1bWVudHMgbWF5IGV4aXN0IGluIHRoZSBsb2NhbCBjYWNoZS4gUnVuIGFnYWluIHdpdGhvdXQgc2V0dGluZyBzb3VyY2UgdG8gInNlcnZlciIgdG8gcmV0cmlldmUgdGhlIGNhY2hlZCBkb2N1bWVudHMuKScpKTppLnJlc29sdmUodCl9LGVycm9yOmZ1bmN0aW9uKHQpe3JldHVybiBpLnJlamVjdCh0KX19KSxzPW5ldyBkQyh0LG8se2luY2x1ZGVNZXRhZGF0YUNoYW5nZXM6ITAsc286ITB9KTtyZXR1cm4gbEMoZSxzKX0sWzQsTk4obildO2Nhc2UgMTpyZXR1cm5bMixlLmFwcGx5KHZvaWQgMCxbdC5zZW50KCksbi5hc3luY1F1ZXVlLHIsaSxvXSldfX0pfSl9KSxvLnByb21pc2V9ZnVuY3Rpb24gUk4odCxlKXt0aGlzLnVzZXI9ZSx0aGlzLnR5cGU9Ik9BdXRoIix0aGlzLmF1dGhIZWFkZXJzPXt9LHRoaXMuYXV0aEhlYWRlcnMuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIrdH12YXIgUE49ZnVuY3Rpb24odCxlLG4scixpLG8scyl7dGhpcy5kYXRhYmFzZUlkPXQsdGhpcy5hcHBJZD1lLHRoaXMucGVyc2lzdGVuY2VLZXk9bix0aGlzLmhvc3Q9cix0aGlzLnNzbD1pLHRoaXMuZm9yY2VMb25nUG9sbGluZz1vLHRoaXMuYXV0b0RldGVjdExvbmdQb2xsaW5nPXN9LE9OPShPYmplY3QuZGVmaW5lUHJvcGVydHkoQk4ucHJvdG90eXBlLCJpc0RlZmF1bHREYXRhYmFzZSIse2dldDpmdW5jdGlvbigpe3JldHVybiIoZGVmYXVsdCkiPT09dGhpcy5kYXRhYmFzZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxCTi5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEJOJiZ0LnByb2plY3RJZD09PXRoaXMucHJvamVjdElkJiZ0LmRhdGFiYXNlPT09dGhpcy5kYXRhYmFzZX0sQk4pLEROPW5ldyBNYXAseE49KFZOLnByb3RvdHlwZS5nZXRUb2tlbj1mdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCl9LFZOLnByb3RvdHlwZS5pbnZhbGlkYXRlVG9rZW49ZnVuY3Rpb24oKXt9LFZOLnByb3RvdHlwZS5zZXRDaGFuZ2VMaXN0ZW5lcj1mdW5jdGlvbih0KXsodGhpcy5jaGFuZ2VMaXN0ZW5lcj10KShQRS5VTkFVVEhFTlRJQ0FURUQpfSxWTi5wcm90b3R5cGUucmVtb3ZlQ2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24oKXt0aGlzLmNoYW5nZUxpc3RlbmVyPW51bGx9LFZOKSxMTj0ocU4ucHJvdG90eXBlLmdldFRva2VuPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXRoaXMuY2MsdD10aGlzLmZvcmNlUmVmcmVzaDtyZXR1cm4gdGhpcy5mb3JjZVJlZnJlc2g9ITEsdGhpcy5hdXRoP3RoaXMuYXV0aC5nZXRUb2tlbih0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNjIT09bj8oVnkoIkZpcmViYXNlQ3JlZGVudGlhbHNQcm92aWRlciIsImdldFRva2VuIGFib3J0ZWQgZHVlIHRvIHRva2VuIGNoYW5nZS4iKSxlLmdldFRva2VuKCkpOnQ/KEd5KCJzdHJpbmciPT10eXBlb2YgdC5hY2Nlc3NUb2tlbiksbmV3IFJOKHQuYWNjZXNzVG9rZW4sZS5jdXJyZW50VXNlcikpOm51bGx9KTpQcm9taXNlLnJlc29sdmUobnVsbCl9LHFOLnByb3RvdHlwZS5pbnZhbGlkYXRlVG9rZW49ZnVuY3Rpb24oKXt0aGlzLmZvcmNlUmVmcmVzaD0hMH0scU4ucHJvdG90eXBlLnNldENoYW5nZUxpc3RlbmVyPWZ1bmN0aW9uKHQpe3RoaXMuY2hhbmdlTGlzdGVuZXI9dCx0aGlzLnJlY2VpdmVkSW5pdGlhbFVzZXImJnQodGhpcy5jdXJyZW50VXNlcil9LHFOLnByb3RvdHlwZS5yZW1vdmVDaGFuZ2VMaXN0ZW5lcj1mdW5jdGlvbigpe3RoaXMuYXV0aCYmdGhpcy5hdXRoLnJlbW92ZUF1dGhUb2tlbkxpc3RlbmVyKHRoaXMub2MpLHRoaXMub2M9bnVsbCx0aGlzLmNoYW5nZUxpc3RlbmVyPW51bGx9LHFOLnByb3RvdHlwZS51Yz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuYXV0aCYmdGhpcy5hdXRoLmdldFVpZCgpO3JldHVybiBHeShudWxsPT09dHx8InN0cmluZyI9PXR5cGVvZiB0KSxuZXcgUEUodCl9LHFOKSxNTj0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGpOLnByb3RvdHlwZSwiYXV0aEhlYWRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD17IlgtR29vZy1BdXRoVXNlciI6dGhpcy5oY30sZT10aGlzLmFjLmF1dGguZ2V0QXV0aEhlYWRlclZhbHVlRm9yRmlyc3RQYXJ0eShbXSk7cmV0dXJuIGUmJih0LkF1dGhvcml6YXRpb249ZSksdH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxqTiksRk49KFVOLnByb3RvdHlwZS5nZXRUb2tlbj1mdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUobmV3IE1OKHRoaXMuYWMsdGhpcy5oYykpfSxVTi5wcm90b3R5cGUuc2V0Q2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24odCl7dChQRS5GSVJTVF9QQVJUWSl9LFVOLnByb3RvdHlwZS5yZW1vdmVDaGFuZ2VMaXN0ZW5lcj1mdW5jdGlvbigpe30sVU4ucHJvdG90eXBlLmludmFsaWRhdGVUb2tlbj1mdW5jdGlvbigpe30sVU4pO2Z1bmN0aW9uIFVOKHQsZSl7dGhpcy5hYz10LHRoaXMuaGM9ZX1mdW5jdGlvbiBqTih0LGUpe3RoaXMuYWM9dCx0aGlzLmhjPWUsdGhpcy50eXBlPSJGaXJzdFBhcnR5Iix0aGlzLnVzZXI9UEUuRklSU1RfUEFSVFl9ZnVuY3Rpb24gcU4odCl7dmFyIGU9dGhpczt0aGlzLm9jPW51bGwsdGhpcy5jdXJyZW50VXNlcj1QRS5VTkFVVEhFTlRJQ0FURUQsdGhpcy5yZWNlaXZlZEluaXRpYWxVc2VyPSExLHRoaXMuY2M9MCx0aGlzLmNoYW5nZUxpc3RlbmVyPW51bGwsdGhpcy5mb3JjZVJlZnJlc2g9ITEsdGhpcy5vYz1mdW5jdGlvbigpe2UuY2MrKyxlLmN1cnJlbnRVc2VyPWUudWMoKSxlLnJlY2VpdmVkSW5pdGlhbFVzZXI9ITAsZS5jaGFuZ2VMaXN0ZW5lciYmZS5jaGFuZ2VMaXN0ZW5lcihlLmN1cnJlbnRVc2VyKX0sdGhpcy5jYz0wLHRoaXMuYXV0aD10LmdldEltbWVkaWF0ZSh7b3B0aW9uYWw6ITB9KSx0aGlzLmF1dGg/dGhpcy5hdXRoLmFkZEF1dGhUb2tlbkxpc3RlbmVyKHRoaXMub2MpOih0aGlzLm9jKG51bGwpLHQuZ2V0KCkudGhlbihmdW5jdGlvbih0KXtlLmF1dGg9dCxlLm9jJiZlLmF1dGguYWRkQXV0aFRva2VuTGlzdGVuZXIoZS5vYyl9LGZ1bmN0aW9uKCl7fSkpfWZ1bmN0aW9uIFZOKCl7dGhpcy5jaGFuZ2VMaXN0ZW5lcj1udWxsfWZ1bmN0aW9uIEJOKHQsZSl7dGhpcy5wcm9qZWN0SWQ9dCx0aGlzLmRhdGFiYXNlPWV8fCIoZGVmYXVsdCkifWZ1bmN0aW9uIEtOKHQsZSxuKXtpZighbil0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiRnVuY3Rpb24gIit0KyIoKSBjYW5ub3QgYmUgY2FsbGVkIHdpdGggYW4gZW1wdHkgIitlKyIuIil9ZnVuY3Rpb24gV04odCxlKXtpZih2b2lkIDA9PT1lKXJldHVybnttZXJnZTohMX07aWYodm9pZCAwIT09ZS5tZXJnZUZpZWxkcyYmdm9pZCAwIT09ZS5tZXJnZSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBvcHRpb25zIHBhc3NlZCB0byBmdW5jdGlvbiAiK3QrJygpOiBZb3UgY2Fubm90IHNwZWNpZnkgYm90aCAibWVyZ2UiIGFuZCAibWVyZ2VGaWVsZHMiLicpO3JldHVybiBlfWZ1bmN0aW9uIEhOKHQsZSxuLHIpe2lmKCEwPT09ZSYmITA9PT1yKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULHQrIiBhbmQgIituKyIgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuIil9ZnVuY3Rpb24gR04odCl7aWYoIUNtLmlzRG9jdW1lbnRLZXkodCkpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgZG9jdW1lbnQgcmVmZXJlbmNlLiBEb2N1bWVudCByZWZlcmVuY2VzIG11c3QgaGF2ZSBhbiBldmVuIG51bWJlciBvZiBzZWdtZW50cywgYnV0ICIrdCsiIGhhcyAiK3QubGVuZ3RoKyIuIil9ZnVuY3Rpb24gek4odCl7aWYoQ20uaXNEb2N1bWVudEtleSh0KSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBjb2xsZWN0aW9uIHJlZmVyZW5jZS4gQ29sbGVjdGlvbiByZWZlcmVuY2VzIG11c3QgaGF2ZSBhbiBvZGQgbnVtYmVyIG9mIHNlZ21lbnRzLCBidXQgIit0KyIgaGFzICIrdC5sZW5ndGgrIi4iKX1mdW5jdGlvbiBRTihlKXtpZih2b2lkIDA9PT1lKXJldHVybiJ1bmRlZmluZWQiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIDIwPGUubGVuZ3RoJiYoZT1lLnN1YnN0cmluZygwLDIwKSsiLi4uIiksSlNPTi5zdHJpbmdpZnkoZSk7aWYoIm51bWJlciI9PXR5cGVvZiBlfHwiYm9vbGVhbiI9PXR5cGVvZiBlKXJldHVybiIiK2U7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlPyJhIGZ1bmN0aW9uIjpIeSgpO2lmKGUgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4iYW4gYXJyYXkiO3ZhciB0PWZ1bmN0aW9uKCl7aWYoZS5jb25zdHJ1Y3Rvcil7dmFyIHQ9L2Z1bmN0aW9uXHMrKFteXHMoXSspXHMqXCgvLmV4ZWMoZS5jb25zdHJ1Y3Rvci50b1N0cmluZygpKTtpZih0JiYxPHQubGVuZ3RoKXJldHVybiB0WzFdfXJldHVybiBudWxsfSgpO3JldHVybiB0PyJhIGN1c3RvbSAiK3QrIiBvYmplY3QiOiJhbiBvYmplY3QifWZ1bmN0aW9uIFlOKHQsZSl7aWYoKHQ9Il9kZWxlZ2F0ZSJpbiB0P3QuX2RlbGVnYXRlOnQpaW5zdGFuY2VvZiBlKXJldHVybiB0O2lmKGUubmFtZT09PXQuY29uc3RydWN0b3IubmFtZSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiVHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgaW5zdGFuY2UuIERpZCB5b3UgcGFzcyBhIHJlZmVyZW5jZSBmcm9tIGEgZGlmZmVyZW50IEZpcmVzdG9yZSBTREs/Iik7dD1RTih0KTt0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiRXhwZWN0ZWQgdHlwZSAnIitlLm5hbWUrIicsIGJ1dCBpdCB3YXM6ICIrdCl9ZnVuY3Rpb24gWE4odCxlKXtpZihlPD0wKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJGdW5jdGlvbiAiK3QrIigpIHJlcXVpcmVzIGEgcG9zaXRpdmUgbnVtYmVyLCBidXQgaXQgd2FzOiAiK2UrIi4iKX12YXIgSk4sJE49KGFBLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhvc3Q9PT10Lmhvc3QmJnRoaXMuc3NsPT09dC5zc2wmJnRoaXMuY3JlZGVudGlhbHM9PT10LmNyZWRlbnRpYWxzJiZ0aGlzLmNhY2hlU2l6ZUJ5dGVzPT09dC5jYWNoZVNpemVCeXRlcyYmdGhpcy5leHBlcmltZW50YWxGb3JjZUxvbmdQb2xsaW5nPT09dC5leHBlcmltZW50YWxGb3JjZUxvbmdQb2xsaW5nJiZ0aGlzLmV4cGVyaW1lbnRhbEF1dG9EZXRlY3RMb25nUG9sbGluZz09PXQuZXhwZXJpbWVudGFsQXV0b0RldGVjdExvbmdQb2xsaW5nJiZ0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXM9PT10Lmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXN9LGFBKSxaTj0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHNBLnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2FwcCl0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiRmlyZXN0b3JlIHdhcyBub3QgaW5pdGlhbGl6ZWQgdXNpbmcgdGhlIEZpcmViYXNlIFNESy4gJ2FwcCcgaXMgbm90IGF2YWlsYWJsZSIpO3JldHVybiB0aGlzLl9hcHB9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHNBLnByb3RvdHlwZSwiX2luaXRpYWxpemVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldHRpbmdzRnJvemVufSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzQS5wcm90b3R5cGUsIl90ZXJtaW5hdGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3Rlcm1pbmF0ZVRhc2t9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksc0EucHJvdG90eXBlLl9zZXRTZXR0aW5ncz1mdW5jdGlvbih0KXtpZih0aGlzLl9zZXR0aW5nc0Zyb3plbil0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiRmlyZXN0b3JlIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRlZCBhbmQgaXRzIHNldHRpbmdzIGNhbiBubyBsb25nZXIgYmUgY2hhbmdlZC4gWW91IGNhbiBvbmx5IG1vZGlmeSBzZXR0aW5ncyBiZWZvcmUgY2FsbGluZyBhbnkgb3RoZXIgbWV0aG9kcyBvbiBhIEZpcmVzdG9yZSBvYmplY3QuIik7dGhpcy5fc2V0dGluZ3M9bmV3ICROKHQpLHZvaWQgMCE9PXQuY3JlZGVudGlhbHMmJih0aGlzLl9jcmVkZW50aWFscz1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gbmV3IHhOO3N3aXRjaCh0LnR5cGUpe2Nhc2UiZ2FwaSI6dmFyIGU9dC5jbGllbnQ7cmV0dXJuIEd5KCEoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZXx8IWUuYXV0aHx8IWUuYXV0aC5nZXRBdXRoSGVhZGVyVmFsdWVGb3JGaXJzdFBhcnR5KSksbmV3IEZOKGUsdC5zZXNzaW9uSW5kZXh8fCIwIik7Y2FzZSJwcm92aWRlciI6cmV0dXJuIHQuY2xpZW50O2RlZmF1bHQ6dGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIm1ha2VDcmVkZW50aWFsc1Byb3ZpZGVyIGZhaWxlZCBkdWUgdG8gaW52YWxpZCBjcmVkZW50aWFsIHR5cGUiKX19KHQuY3JlZGVudGlhbHMpKX0sc0EucHJvdG90eXBlLl9nZXRTZXR0aW5ncz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXR0aW5nc30sc0EucHJvdG90eXBlLl9mcmVlemVTZXR0aW5ncz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXR0aW5nc0Zyb3plbj0hMCx0aGlzLl9zZXR0aW5nc30sc0EucHJvdG90eXBlLl9kZWxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdGVybWluYXRlVGFza3x8KHRoaXMuX3Rlcm1pbmF0ZVRhc2s9dGhpcy5fdGVybWluYXRlKCkpLHRoaXMuX3Rlcm1pbmF0ZVRhc2t9LHNBLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57YXBwOnRoaXMuX2FwcCxkYXRhYmFzZUlkOnRoaXMuX2RhdGFiYXNlSWQsc2V0dGluZ3M6dGhpcy5fc2V0dGluZ3N9fSxzQS5wcm90b3R5cGUuX3Rlcm1pbmF0ZT1mdW5jdGlvbigpe3JldHVybih0PUROLmdldCh0aGlzKSkmJihWeSgiQ29tcG9uZW50UHJvdmlkZXIiLCJSZW1vdmluZyBEYXRhc3RvcmUiKSxETi5kZWxldGUodGhpcyksdC50ZXJtaW5hdGUoKSksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHR9LHNBKSx0QT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KG9BLnByb3RvdHlwZSwiX3BhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa2V5LnBhdGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG9BLnByb3RvdHlwZSwiaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa2V5LnBhdGgubGFzdFNlZ21lbnQoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkob0EucHJvdG90eXBlLCJwYXRoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2tleS5wYXRoLmNhbm9uaWNhbFN0cmluZygpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvQS5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiBuZXcgbkEodGhpcy5maXJlc3RvcmUsdGhpcy5fY29udmVydGVyLHRoaXMuX2tleS5wYXRoLnBvcExhc3QoKSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksb0EucHJvdG90eXBlLndpdGhDb252ZXJ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvQSh0aGlzLmZpcmVzdG9yZSx0LHRoaXMuX2tleSl9LG9BKSxlQT0oaUEucHJvdG90eXBlLndpdGhDb252ZXJ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpQSh0aGlzLmZpcmVzdG9yZSx0LHRoaXMuX3F1ZXJ5KX0saUEpLG5BPShYaShyQSxKTj1lQSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHJBLnByb3RvdHlwZSwiaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcXVlcnkucGF0aC5sYXN0U2VnbWVudCgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyQS5wcm90b3R5cGUsInBhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcXVlcnkucGF0aC5jYW5vbmljYWxTdHJpbmcoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkockEucHJvdG90eXBlLCJwYXJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wYXRoLnBvcExhc3QoKTtyZXR1cm4gdC5pc0VtcHR5KCk/bnVsbDpuZXcgdEEodGhpcy5maXJlc3RvcmUsbnVsbCxuZXcgQ20odCkpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHJBLnByb3RvdHlwZS53aXRoQ29udmVydGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgckEodGhpcy5maXJlc3RvcmUsdCx0aGlzLl9wYXRoKX0sckEpO2Z1bmN0aW9uIHJBKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPUpOLmNhbGwodGhpcyx0LGUsTmIobikpfHx0aGlzKS5maXJlc3RvcmU9dCxyLl9wYXRoPW4sci50eXBlPSJjb2xsZWN0aW9uIixyfWZ1bmN0aW9uIGlBKHQsZSxuKXt0aGlzLl9jb252ZXJ0ZXI9ZSx0aGlzLl9xdWVyeT1uLHRoaXMudHlwZT0icXVlcnkiLHRoaXMuZmlyZXN0b3JlPXR9ZnVuY3Rpb24gb0EodCxlLG4pe3RoaXMuX2NvbnZlcnRlcj1lLHRoaXMuX2tleT1uLHRoaXMudHlwZT0iZG9jdW1lbnQiLHRoaXMuZmlyZXN0b3JlPXR9ZnVuY3Rpb24gc0EodCxlKXt0aGlzLl9wZXJzaXN0ZW5jZUtleT0iKGxpdGUpIix0aGlzLl9zZXR0aW5ncz1uZXcgJE4oe30pLHRoaXMuX3NldHRpbmdzRnJvemVuPSExLHQgaW5zdGFuY2VvZiBPTj8odGhpcy5fZGF0YWJhc2VJZD10LHRoaXMuX2NyZWRlbnRpYWxzPW5ldyB4Tik6KHRoaXMuX2FwcD10LHRoaXMuX2RhdGFiYXNlSWQ9ZnVuY3Rpb24odCl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuYXBwbHkodC5vcHRpb25zLFsicHJvamVjdElkIl0pKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCcicHJvamVjdElkIiBub3QgcHJvdmlkZWQgaW4gZmlyZWJhc2UuaW5pdGlhbGl6ZUFwcC4nKTtyZXR1cm4gbmV3IE9OKHQub3B0aW9ucy5wcm9qZWN0SWQpfSh0KSx0aGlzLl9jcmVkZW50aWFscz1uZXcgTE4oZSkpfWZ1bmN0aW9uIGFBKHQpe3ZhciBlO2lmKHZvaWQgMD09PXQuaG9zdCl7aWYodm9pZCAwIT09dC5zc2wpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkNhbid0IHByb3ZpZGUgc3NsIG9wdGlvbiBpZiBob3N0IG9wdGlvbiBpcyBub3Qgc2V0Iik7dGhpcy5ob3N0PSJmaXJlc3RvcmUuZ29vZ2xlYXBpcy5jb20iLHRoaXMuc3NsPSEwfWVsc2UgdGhpcy5ob3N0PXQuaG9zdCx0aGlzLnNzbD1udWxsPT09KGU9dC5zc2wpfHx2b2lkIDA9PT1lfHxlO2lmKHRoaXMuY3JlZGVudGlhbHM9dC5jcmVkZW50aWFscyx0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXM9ISF0Lmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXMsdm9pZCAwPT09dC5jYWNoZVNpemVCeXRlcyl0aGlzLmNhY2hlU2l6ZUJ5dGVzPTQxOTQzMDQwO2Vsc2V7aWYoLTEhPT10LmNhY2hlU2l6ZUJ5dGVzJiZ0LmNhY2hlU2l6ZUJ5dGVzPDEwNDg1NzYpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsImNhY2hlU2l6ZUJ5dGVzIG11c3QgYmUgYXQgbGVhc3QgMTA0ODU3NiIpO3RoaXMuY2FjaGVTaXplQnl0ZXM9dC5jYWNoZVNpemVCeXRlc310aGlzLmV4cGVyaW1lbnRhbEZvcmNlTG9uZ1BvbGxpbmc9ISF0LmV4cGVyaW1lbnRhbEZvcmNlTG9uZ1BvbGxpbmcsdGhpcy5leHBlcmltZW50YWxBdXRvRGV0ZWN0TG9uZ1BvbGxpbmc9ISF0LmV4cGVyaW1lbnRhbEF1dG9EZXRlY3RMb25nUG9sbGluZyxITigiZXhwZXJpbWVudGFsRm9yY2VMb25nUG9sbGluZyIsdC5leHBlcmltZW50YWxGb3JjZUxvbmdQb2xsaW5nLCJleHBlcmltZW50YWxBdXRvRGV0ZWN0TG9uZ1BvbGxpbmciLHQuZXhwZXJpbWVudGFsQXV0b0RldGVjdExvbmdQb2xsaW5nKX1mdW5jdGlvbiB1QSh0LGUpe2Zvcih2YXIgbixyPVtdLGk9MjtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXJbaS0yXT1hcmd1bWVudHNbaV07aWYodD1abyh0KSxLTigiY29sbGVjdGlvbiIsInBhdGgiLGUpLHQgaW5zdGFuY2VvZiBaTilyZXR1cm4gek4obj1hbS5mcm9tU3RyaW5nLmFwcGx5KGFtLG5vKFtlXSxyKSkpLG5ldyBuQSh0LG51bGwsbik7aWYoISh0IGluc3RhbmNlb2YgdEF8fHQgaW5zdGFuY2VvZiBuQSkpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkV4cGVjdGVkIGZpcnN0IGFyZ3VtZW50IHRvIGNvbGxlY3Rpb24oKSB0byBiZSBhIENvbGxlY3Rpb25SZWZlcmVuY2UsIGEgRG9jdW1lbnRSZWZlcmVuY2Ugb3IgRmlyZWJhc2VGaXJlc3RvcmUiKTtyZXR1cm4gek4obj1hbS5mcm9tU3RyaW5nLmFwcGx5KGFtLG5vKFt0LnBhdGhdLHIpKS5jaGlsZChhbS5mcm9tU3RyaW5nKGUpKSksbmV3IG5BKHQuZmlyZXN0b3JlLG51bGwsbil9ZnVuY3Rpb24gY0EodCxlKXtmb3IodmFyIG4scj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMl09YXJndW1lbnRzW2ldO2lmKHQ9Wm8odCksS04oImRvYyIsInBhdGgiLGU9MT09PWFyZ3VtZW50cy5sZW5ndGg/enkudSgpOmUpLHQgaW5zdGFuY2VvZiBaTilyZXR1cm4gR04obj1hbS5mcm9tU3RyaW5nLmFwcGx5KGFtLG5vKFtlXSxyKSkpLG5ldyB0QSh0LG51bGwsbmV3IENtKG4pKTtpZighKHQgaW5zdGFuY2VvZiB0QXx8dCBpbnN0YW5jZW9mIG5BKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiRXhwZWN0ZWQgZmlyc3QgYXJndW1lbnQgdG8gY29sbGVjdGlvbigpIHRvIGJlIGEgQ29sbGVjdGlvblJlZmVyZW5jZSwgYSBEb2N1bWVudFJlZmVyZW5jZSBvciBGaXJlYmFzZUZpcmVzdG9yZSIpO3JldHVybiBHTihuPXQuX3BhdGguY2hpbGQoYW0uZnJvbVN0cmluZy5hcHBseShhbSxubyhbZV0scikpKSksbmV3IHRBKHQuZmlyZXN0b3JlLHQgaW5zdGFuY2VvZiBuQT90Ll9jb252ZXJ0ZXI6bnVsbCxuZXcgQ20obikpfWZ1bmN0aW9uIGhBKHQsZSl7cmV0dXJuIHQ9Wm8odCksZT1abyhlKSwodCBpbnN0YW5jZW9mIHRBfHx0IGluc3RhbmNlb2YgbkEpJiYoZSBpbnN0YW5jZW9mIHRBfHxlIGluc3RhbmNlb2YgbkEpJiZ0LmZpcmVzdG9yZT09PWUuZmlyZXN0b3JlJiZ0LnBhdGg9PT1lLnBhdGgmJnQuX2NvbnZlcnRlcj09PWUuX2NvbnZlcnRlcn1mdW5jdGlvbiBsQSh0LGUpe3JldHVybiB0PVpvKHQpLGU9Wm8oZSksdCBpbnN0YW5jZW9mIGVBJiZlIGluc3RhbmNlb2YgZUEmJnQuZmlyZXN0b3JlPT09ZS5maXJlc3RvcmUmJk1iKHQuX3F1ZXJ5LGUuX3F1ZXJ5KSYmdC5fY29udmVydGVyPT09ZS5fY29udmVydGVyfXZhciBmQT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHBBLnByb3RvdHlwZSwiaXNTaHV0dGluZ0Rvd24iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kY30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxwQS5wcm90b3R5cGUuZW5xdWV1ZUFuZEZvcmdldD1mdW5jdGlvbih0KXt0aGlzLmVucXVldWUodCl9LHBBLnByb3RvdHlwZS5lbnF1ZXVlQW5kRm9yZ2V0RXZlbldoaWxlUmVzdHJpY3RlZD1mdW5jdGlvbih0KXt0aGlzLkVjKCksdGhpcy5UYyh0KX0scEEucHJvdG90eXBlLmVudGVyUmVzdHJpY3RlZE1vZGU9ZnVuY3Rpb24oKXt2YXIgdDt0aGlzLmRjfHwodGhpcy5kYz0hMCwodD1tUygpKSYmImZ1bmN0aW9uIj09dHlwZW9mIHQucmVtb3ZlRXZlbnRMaXN0ZW5lciYmdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLmdjKSl9LHBBLnByb3RvdHlwZS5lbnF1ZXVlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkVjKCksdGhpcy5kYz9uZXcgUHJvbWlzZShmdW5jdGlvbih0KXt9KTp0aGlzLlRjKHQpfSxwQS5wcm90b3R5cGUuZW5xdWV1ZVJldHJ5YWJsZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiBlLmZjLnB1c2godCksZS5JYygpfSl9LHBBLnByb3RvdHlwZS5JYz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZigwPT09dGhpcy5mYy5sZW5ndGgpcmV0dXJuWzMsNV07dC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsMywsNF0pLFs0LHRoaXMuZmNbMF0oKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSx0aGlzLmZjLnNoaWZ0KCksdGhpcy5aaS5yZXNldCgpLFszLDRdO2Nhc2UgMzppZighYkkoZT10LnNlbnQoKSkpdGhyb3cgZTtyZXR1cm4gVnkoIkFzeW5jUXVldWUiLCJPcGVyYXRpb24gZmFpbGVkIHdpdGggcmV0cnlhYmxlIGVycm9yOiAiK2UpLFszLDRdO2Nhc2UgNDowPHRoaXMuZmMubGVuZ3RoJiZ0aGlzLlppLmppKGZ1bmN0aW9uKCl7cmV0dXJuIG4uSWMoKX0pLHQubGFiZWw9NTtjYXNlIDU6cmV0dXJuWzJdfX0pfSl9LHBBLnByb3RvdHlwZS5UYz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLGU9dGhpcy5sYy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHIubWM9ITAsdCgpLmNhdGNoKGZ1bmN0aW9uKHQpe3Rocm93IHIuX2M9dCxyLm1jPSExLEJ5KCJJTlRFUk5BTCBVTkhBTkRMRUQgRVJST1I6ICIsKG49KGU9dCkubWVzc2FnZXx8IiIsbj1lLnN0YWNrP2Uuc3RhY2suaW5jbHVkZXMoZS5tZXNzYWdlKT9lLnN0YWNrOmUubWVzc2FnZSsiXG4iK2Uuc3RhY2s6bikpLHQ7dmFyIGUsbn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHIubWM9ITEsdH0pfSk7cmV0dXJuIHRoaXMubGM9ZX0scEEucHJvdG90eXBlLmVucXVldWVBZnRlckRlbGF5PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3RoaXMuRWMoKSwtMTx0aGlzLnljLmluZGV4T2YodCkmJihlPTApO249dEMuY3JlYXRlQW5kU2NoZWR1bGUodGhpcyx0LGUsbixmdW5jdGlvbih0KXtyZXR1cm4gci5BYyh0KX0pO3JldHVybiB0aGlzLndjLnB1c2gobiksbn0scEEucHJvdG90eXBlLkVjPWZ1bmN0aW9uKCl7dGhpcy5fYyYmSHkoKX0scEEucHJvdG90eXBlLnZlcmlmeU9wZXJhdGlvbkluUHJvZ3Jlc3M9ZnVuY3Rpb24oKXt9LHBBLnByb3RvdHlwZS5SYz1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGU9dGhpcy5sY107Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6aWYoZSE9PXRoaXMubGMpcmV0dXJuWzMsMF07dC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0scEEucHJvdG90eXBlLmJjPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy53YztlPG4ubGVuZ3RoO2UrKylpZihuW2VdLnRpbWVySWQ9PT10KXJldHVybiEwO3JldHVybiExfSxwQS5wcm90b3R5cGUudmM9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5SYygpLnRoZW4oZnVuY3Rpb24oKXtpLndjLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50YXJnZXRUaW1lTXMtZS50YXJnZXRUaW1lTXN9KTtmb3IodmFyIHQ9MCxlPWkud2M7dDxlLmxlbmd0aDt0Kyspe3ZhciBuPWVbdF07aWYobi5za2lwRGVsYXkoKSwiYWxsIiE9PXImJm4udGltZXJJZD09PXIpYnJlYWt9cmV0dXJuIGkuUmMoKX0pfSxwQS5wcm90b3R5cGUuUGM9ZnVuY3Rpb24odCl7dGhpcy55Yy5wdXNoKHQpfSxwQS5wcm90b3R5cGUuQWM9ZnVuY3Rpb24odCl7dD10aGlzLndjLmluZGV4T2YodCk7dGhpcy53Yy5zcGxpY2UodCwxKX0scEEpO2Z1bmN0aW9uIHBBKCl7dmFyIGU9dGhpczt0aGlzLmxjPVByb21pc2UucmVzb2x2ZSgpLHRoaXMuZmM9W10sdGhpcy5kYz0hMSx0aGlzLndjPVtdLHRoaXMuX2M9bnVsbCx0aGlzLm1jPSExLHRoaXMueWM9W10sdGhpcy5aaT1uZXcgRVModGhpcywiYXN5bmNfcXVldWVfcmV0cnkiKSx0aGlzLmdjPWZ1bmN0aW9uKCl7dmFyIHQ9bVMoKTt0JiZWeSgiQXN5bmNRdWV1ZSIsIlZpc2liaWxpdHkgc3RhdGUgY2hhbmdlZCB0byAiK3QudmlzaWJpbGl0eVN0YXRlKSxlLlppLkdpKCl9O3ZhciB0PW1TKCk7dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLmdjKX1mdW5jdGlvbiBkQShpKXtyZXR1cm4gZnVuY3Rpb24oKXtpZigib2JqZWN0Ij09dHlwZW9mIGkmJm51bGwhPT1pKWZvcih2YXIgdD1pLGU9MCxuPVsibmV4dCIsImVycm9yIiwiY29tcGxldGUiXTtlPG4ubGVuZ3RoO2UrKyl7dmFyIHI9bltlXTtpZihyIGluIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0W3JdKXJldHVybiAxfX0oKX12YXIgdkEsZ0E9KGJBLnByb3RvdHlwZS5vblByb2dyZXNzPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9wcm9ncmVzc09ic2VydmVyPXtuZXh0OnQsZXJyb3I6ZSxjb21wbGV0ZTpufX0sYkEucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl90YXNrQ29tcGxldGlvblJlc29sdmVyLnByb21pc2UuY2F0Y2godCl9LGJBLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3Rhc2tDb21wbGV0aW9uUmVzb2x2ZXIucHJvbWlzZS50aGVuKHQsZSl9LGJBLnByb3RvdHlwZS5fY29tcGxldGVXaXRoPWZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZVByb2dyZXNzKHQpLHRoaXMuX3Byb2dyZXNzT2JzZXJ2ZXIuY29tcGxldGUmJnRoaXMuX3Byb2dyZXNzT2JzZXJ2ZXIuY29tcGxldGUoKSx0aGlzLl90YXNrQ29tcGxldGlvblJlc29sdmVyLnJlc29sdmUodCl9LGJBLnByb3RvdHlwZS5fZmFpbFdpdGg9ZnVuY3Rpb24odCl7dGhpcy5fbGFzdFByb2dyZXNzLnRhc2tTdGF0ZT0iRXJyb3IiLHRoaXMuX3Byb2dyZXNzT2JzZXJ2ZXIubmV4dCYmdGhpcy5fcHJvZ3Jlc3NPYnNlcnZlci5uZXh0KHRoaXMuX2xhc3RQcm9ncmVzcyksdGhpcy5fcHJvZ3Jlc3NPYnNlcnZlci5lcnJvciYmdGhpcy5fcHJvZ3Jlc3NPYnNlcnZlci5lcnJvcih0KSx0aGlzLl90YXNrQ29tcGxldGlvblJlc29sdmVyLnJlamVjdCh0KX0sYkEucHJvdG90eXBlLl91cGRhdGVQcm9ncmVzcz1mdW5jdGlvbih0KXt0aGlzLl9sYXN0UHJvZ3Jlc3M9dCx0aGlzLl9wcm9ncmVzc09ic2VydmVyLm5leHQmJnRoaXMuX3Byb2dyZXNzT2JzZXJ2ZXIubmV4dCh0KX0sYkEpLHlBPShYaShtQSx2QT1aTiksbUEucHJvdG90eXBlLl90ZXJtaW5hdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZmlyZXN0b3JlQ2xpZW50fHxfQSh0aGlzKSx0aGlzLl9maXJlc3RvcmVDbGllbnQudGVybWluYXRlKCl9LG1BKTtmdW5jdGlvbiBtQSh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49dkEuY2FsbCh0aGlzLHQsZSl8fHRoaXMpLl9xdWV1ZT1uZXcgZkEsbi5fcGVyc2lzdGVuY2VLZXk9Im5hbWUiaW4gdD90Lm5hbWU6IltERUZBVUxUXSIsbn1mdW5jdGlvbiBiQSgpe3RoaXMuX3Byb2dyZXNzT2JzZXJ2ZXI9e30sdGhpcy5fdGFza0NvbXBsZXRpb25SZXNvbHZlcj1uZXcgYUksdGhpcy5fbGFzdFByb2dyZXNzPXt0YXNrU3RhdGU6IlJ1bm5pbmciLHRvdGFsQnl0ZXM6MCx0b3RhbERvY3VtZW50czowLGJ5dGVzTG9hZGVkOjAsZG9jdW1lbnRzTG9hZGVkOjB9fWZ1bmN0aW9uIHdBKHQpe3JldHVybiB0Ll9maXJlc3RvcmVDbGllbnR8fF9BKHQpLHQuX2ZpcmVzdG9yZUNsaWVudC52ZXJpZnlOb3RUZXJtaW5hdGVkKCksdC5fZmlyZXN0b3JlQ2xpZW50fWZ1bmN0aW9uIF9BKHQpe3ZhciBlLG4scixpPXQuX2ZyZWV6ZVNldHRpbmdzKCksaT0oZT10Ll9kYXRhYmFzZUlkLG49KG51bGw9PT0ocj10Ll9hcHApfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLm9wdGlvbnMuYXBwSWQpfHwiIixyPXQuX3BlcnNpc3RlbmNlS2V5LG5ldyBQTihlLG4scixpLmhvc3QsaS5zc2wsaS5leHBlcmltZW50YWxGb3JjZUxvbmdQb2xsaW5nLGkuZXhwZXJpbWVudGFsQXV0b0RldGVjdExvbmdQb2xsaW5nKSk7dC5fZmlyZXN0b3JlQ2xpZW50PW5ldyBwTih0Ll9jcmVkZW50aWFscyx0Ll9xdWV1ZSxpKX1mdW5jdGlvbiBJQShyLGksbyl7dmFyIHQ9dGhpcyxzPW5ldyBhSTtyZXR1cm4gci5hc3luY1F1ZXVlLmVucXVldWUoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdC50cnlzLnB1c2goWzAsMywsNF0pLFs0LGJOKHIsbyldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksWzQsd04ocixpKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxzLnJlc29sdmUoKSxbMyw0XTtjYXNlIDM6aWYoISgiRmlyZWJhc2VFcnJvciI9PT0oZT1uPXQuc2VudCgpKS5uYW1lP2UuY29kZT09PU15LkZBSUxFRF9QUkVDT05ESVRJT058fGUuY29kZT09PU15LlVOSU1QTEVNRU5URUQ6ISgidW5kZWZpbmVkIiE9dHlwZW9mIERPTUV4Y2VwdGlvbiYmZSBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbil8fDIyPT09ZS5jb2RlfHwyMD09PWUuY29kZXx8MTE9PT1lLmNvZGUpKXRocm93IG47cmV0dXJuIGNvbnNvbGUud2FybigiRXJyb3IgZW5hYmxpbmcgb2ZmbGluZSBwZXJzaXN0ZW5jZS4gRmFsbGluZyBiYWNrIHRvIHBlcnNpc3RlbmNlIGRpc2FibGVkOiAiK24pLHMucmVqZWN0KG4pLFszLDRdO2Nhc2UgNDpyZXR1cm5bMl19dmFyIGV9KX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBzLnByb21pc2V9KX1mdW5jdGlvbiBUQSh0KXtpZih0Ll9pbml0aWFsaXplZHx8dC5fdGVybWluYXRlZCl0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiRmlyZXN0b3JlIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRlZCBhbmQgcGVyc2lzdGVuY2UgY2FuIG5vIGxvbmdlciBiZSBlbmFibGVkLiBZb3UgY2FuIG9ubHkgZW5hYmxlIHBlcnNpc3RlbmNlIGJlZm9yZSBjYWxsaW5nIGFueSBvdGhlciBtZXRob2RzIG9uIGEgRmlyZXN0b3JlIG9iamVjdC4iKX12YXIgRUE9KExBLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbnRlcm5hbFBhdGguaXNFcXVhbCh0Ll9pbnRlcm5hbFBhdGgpfSxMQSksU0E9KHhBLmZyb21CYXNlNjRTdHJpbmc9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgeEEobG0uZnJvbUJhc2U2NFN0cmluZyh0KSl9Y2F0Y2godCl7dGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkZhaWxlZCB0byBjb25zdHJ1Y3QgZGF0YSBmcm9tIEJhc2U2NCBzdHJpbmc6ICIrdCl9fSx4QS5mcm9tVWludDhBcnJheT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHhBKGxtLmZyb21VaW50OEFycmF5KHQpKX0seEEucHJvdG90eXBlLnRvQmFzZTY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2J5dGVTdHJpbmcudG9CYXNlNjQoKX0seEEucHJvdG90eXBlLnRvVWludDhBcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ieXRlU3RyaW5nLnRvVWludDhBcnJheSgpfSx4QS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQnl0ZXMoYmFzZTY0OiAiK3RoaXMudG9CYXNlNjQoKSsiKSJ9LHhBLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ieXRlU3RyaW5nLmlzRXF1YWwodC5fYnl0ZVN0cmluZyl9LHhBKSxDQT1mdW5jdGlvbih0KXt0aGlzLl9tZXRob2ROYW1lPXR9LE5BPShPYmplY3QuZGVmaW5lUHJvcGVydHkoREEucHJvdG90eXBlLCJsYXRpdHVkZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KERBLnByb3RvdHlwZSwibG9uZ2l0dWRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvbmd9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksREEucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xhdD09PXQuX2xhdCYmdGhpcy5fbG9uZz09PXQuX2xvbmd9LERBLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bGF0aXR1ZGU6dGhpcy5fbGF0LGxvbmdpdHVkZTp0aGlzLl9sb25nfX0sREEucHJvdG90eXBlLl9jb21wYXJlVG89ZnVuY3Rpb24odCl7cmV0dXJuIFl5KHRoaXMuX2xhdCx0Ll9sYXQpfHxZeSh0aGlzLl9sb25nLHQuX2xvbmcpfSxEQSksQUE9L15fXy4qX18kLyxrQT0oT0EucHJvdG90eXBlLnRvTXV0YXRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9PXRoaXMuZmllbGRNYXNrP25ldyBtdyh0LHRoaXMuZGF0YSx0aGlzLmZpZWxkTWFzayxlLHRoaXMuZmllbGRUcmFuc2Zvcm1zKTpuZXcgeXcodCx0aGlzLmRhdGEsZSx0aGlzLmZpZWxkVHJhbnNmb3Jtcyl9LE9BKSxSQT0oUEEucHJvdG90eXBlLnRvTXV0YXRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG13KHQsdGhpcy5kYXRhLHRoaXMuZmllbGRNYXNrLGUsdGhpcy5maWVsZFRyYW5zZm9ybXMpfSxQQSk7ZnVuY3Rpb24gUEEodCxlLG4pe3RoaXMuZGF0YT10LHRoaXMuZmllbGRNYXNrPWUsdGhpcy5maWVsZFRyYW5zZm9ybXM9bn1mdW5jdGlvbiBPQSh0LGUsbil7dGhpcy5kYXRhPXQsdGhpcy5maWVsZE1hc2s9ZSx0aGlzLmZpZWxkVHJhbnNmb3Jtcz1ufWZ1bmN0aW9uIERBKHQsZSl7aWYoIWlzRmluaXRlKHQpfHx0PC05MHx8OTA8dCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiTGF0aXR1ZGUgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIC05MCBhbmQgOTAsIGJ1dCB3YXM6ICIrdCk7aWYoIWlzRmluaXRlKGUpfHxlPC0xODB8fDE4MDxlKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJMb25naXR1ZGUgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIC0xODAgYW5kIDE4MCwgYnV0IHdhczogIitlKTt0aGlzLl9sYXQ9dCx0aGlzLl9sb25nPWV9ZnVuY3Rpb24geEEodCl7dGhpcy5fYnl0ZVN0cmluZz10fWZ1bmN0aW9uIExBKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7KytuKWlmKDA9PT10W25dLmxlbmd0aCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBmaWVsZCBuYW1lIGF0IGFyZ3VtZW50ICQoaSArIDEpLiBGaWVsZCBuYW1lcyBtdXN0IG5vdCBiZSBlbXB0eS4iKTt0aGlzLl9pbnRlcm5hbFBhdGg9bmV3IGNtKHQpfWZ1bmN0aW9uIE1BKHQpe3N3aXRjaCh0KXtjYXNlIDA6Y2FzZSAyOmNhc2UgMTpyZXR1cm4gMTtjYXNlIDM6Y2FzZSA0OnJldHVybjtkZWZhdWx0OnRocm93IEh5KCl9fXZhciBGQT0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHFBLnByb3RvdHlwZSwicGF0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdzLnBhdGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHFBLnByb3RvdHlwZSwiU2MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXR0aW5ncy5TY30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxxQS5wcm90b3R5cGUuRGM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxQShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5zZXR0aW5ncyksdCksdGhpcy5kYXRhYmFzZUlkLHRoaXMuUix0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXMsdGhpcy5maWVsZFRyYW5zZm9ybXMsdGhpcy5maWVsZE1hc2spfSxxQS5wcm90b3R5cGUuQ2M9ZnVuY3Rpb24odCl7dmFyIGU9bnVsbD09PShlPXRoaXMucGF0aCl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY2hpbGQodCksZT10aGlzLkRjKHtwYXRoOmUsTmM6ITF9KTtyZXR1cm4gZS54Yyh0KSxlfSxxQS5wcm90b3R5cGUuRmM9ZnVuY3Rpb24odCl7dmFyIGUsdD1udWxsPT09KGU9dGhpcy5wYXRoKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jaGlsZCh0KSx0PXRoaXMuRGMoe3BhdGg6dCxOYzohMX0pO3JldHVybiB0LlZjKCksdH0scUEucHJvdG90eXBlLmtjPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkRjKHtwYXRoOnZvaWQgMCxOYzohMH0pfSxxQS5wcm90b3R5cGUuT2M9ZnVuY3Rpb24odCl7cmV0dXJuIHZrKHQsdGhpcy5zZXR0aW5ncy5tZXRob2ROYW1lLHRoaXMuc2V0dGluZ3MuJGN8fCExLHRoaXMucGF0aCx0aGlzLnNldHRpbmdzLk1jKX0scUEucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10aGlzLmZpZWxkTWFzay5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiBlLmlzUHJlZml4T2YodCl9KXx8dm9pZCAwIT09dGhpcy5maWVsZFRyYW5zZm9ybXMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gZS5pc1ByZWZpeE9mKHQuZmllbGQpfSl9LHFBLnByb3RvdHlwZS5WYz1mdW5jdGlvbigpe2lmKHRoaXMucGF0aClmb3IodmFyIHQ9MDt0PHRoaXMucGF0aC5sZW5ndGg7dCsrKXRoaXMueGModGhpcy5wYXRoLmdldCh0KSl9LHFBLnByb3RvdHlwZS54Yz1mdW5jdGlvbih0KXtpZigwPT09dC5sZW5ndGgpdGhyb3cgdGhpcy5PYygiRG9jdW1lbnQgZmllbGRzIG11c3Qgbm90IGJlIGVtcHR5Iik7aWYoTUEodGhpcy5TYykmJkFBLnRlc3QodCkpdGhyb3cgdGhpcy5PYygnRG9jdW1lbnQgZmllbGRzIGNhbm5vdCBiZWdpbiBhbmQgZW5kIHdpdGggIl9fIicpfSxxQSksVUE9KGpBLnByb3RvdHlwZS5MYz1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9ITEpLG5ldyBGQSh7U2M6dCxtZXRob2ROYW1lOmUsTWM6bixwYXRoOmNtLmVtcHR5UGF0aCgpLE5jOiExLCRjOnJ9LHRoaXMuZGF0YWJhc2VJZCx0aGlzLlIsdGhpcy5pZ25vcmVVbmRlZmluZWRQcm9wZXJ0aWVzKX0sakEpO2Z1bmN0aW9uIGpBKHQsZSxuKXt0aGlzLmRhdGFiYXNlSWQ9dCx0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXM9ZSx0aGlzLlI9bnx8YlModCl9ZnVuY3Rpb24gcUEodCxlLG4scixpLG8pe3RoaXMuc2V0dGluZ3M9dCx0aGlzLmRhdGFiYXNlSWQ9ZSx0aGlzLlI9bix0aGlzLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXM9cix2b2lkIDA9PT1pJiZ0aGlzLlZjKCksdGhpcy5maWVsZFRyYW5zZm9ybXM9aXx8W10sdGhpcy5maWVsZE1hc2s9b3x8W119ZnVuY3Rpb24gVkEodCl7dmFyIGU9dC5fZnJlZXplU2V0dGluZ3MoKSxuPWJTKHQuX2RhdGFiYXNlSWQpO3JldHVybiBuZXcgVUEodC5fZGF0YWJhc2VJZCwhIWUuaWdub3JlVW5kZWZpbmVkUHJvcGVydGllcyxuKX1mdW5jdGlvbiBCQSh0LGUsbixyLGksbyl7dm9pZCAwPT09byYmKG89e30pO3ZhciBzPXQuTGMoby5tZXJnZXx8by5tZXJnZUZpZWxkcz8yOjAsZSxuLGkpO2xrKCJEYXRhIG11c3QgYmUgYW4gb2JqZWN0LCBidXQgaXQgd2FzOiIscyxyKTt2YXIgYSx1LHI9Y2socixzKTtpZihvLm1lcmdlKWE9bmV3IGhtKHMuZmllbGRNYXNrKSx1PXMuZmllbGRUcmFuc2Zvcm1zO2Vsc2UgaWYoby5tZXJnZUZpZWxkcyl7Zm9yKHZhciBjPVtdLGg9MCxsPW8ubWVyZ2VGaWVsZHM7aDxsLmxlbmd0aDtoKyspe3ZhciBmPWZrKGUsbFtoXSxuKTtpZighcy5jb250YWlucyhmKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiRmllbGQgJyIrZisiJyBpcyBzcGVjaWZpZWQgaW4geW91ciBmaWVsZCBtYXNrIGJ1dCBtaXNzaW5nIGZyb20geW91ciBpbnB1dCBkYXRhLiIpO2drKGMsZil8fGMucHVzaChmKX1hPW5ldyBobShjKSx1PXMuZmllbGRUcmFuc2Zvcm1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gYS5jb3ZlcnModC5maWVsZCl9KX1lbHNlIGE9bnVsbCx1PXMuZmllbGRUcmFuc2Zvcm1zO3JldHVybiBuZXcga0EobmV3IHFtKHIpLGEsdSl9dmFyIEtBLFdBPShYaShIQSxLQT1DQSksSEEucHJvdG90eXBlLl90b0ZpZWxkVHJhbnNmb3JtPWZ1bmN0aW9uKHQpe2lmKDIhPT10LlNjKXRocm93IDE9PT10LlNjP3QuT2ModGhpcy5fbWV0aG9kTmFtZSsiKCkgY2FuIG9ubHkgYXBwZWFyIGF0IHRoZSB0b3AgbGV2ZWwgb2YgeW91ciB1cGRhdGUgZGF0YSIpOnQuT2ModGhpcy5fbWV0aG9kTmFtZSsiKCkgY2Fubm90IGJlIHVzZWQgd2l0aCBzZXQoKSB1bmxlc3MgeW91IHBhc3Mge21lcmdlOnRydWV9Iik7cmV0dXJuIHQuZmllbGRNYXNrLnB1c2godC5wYXRoKSxudWxsfSxIQS5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEhBfSxIQSk7ZnVuY3Rpb24gSEEoKXtyZXR1cm4gbnVsbCE9PUtBJiZLQS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gR0EodCxlLG4pe3JldHVybiBuZXcgRkEoe1NjOjMsTWM6ZS5zZXR0aW5ncy5NYyxtZXRob2ROYW1lOnQuX21ldGhvZE5hbWUsTmM6bn0sZS5kYXRhYmFzZUlkLGUuUixlLmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXMpfXZhciB6QSxRQSxZQSxYQSxKQT0oWGkoaWssWEE9Q0EpLGlrLnByb3RvdHlwZS5fdG9GaWVsZFRyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHV3KHQucGF0aCxuZXcgemIpfSxpay5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGlrfSxpayksJEE9KFhpKHJrLFlBPUNBKSxyay5wcm90b3R5cGUuX3RvRmllbGRUcmFuc2Zvcm09ZnVuY3Rpb24odCl7dmFyIGU9R0EodGhpcyx0LCEwKSxuPXRoaXMuQmMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB1ayh0LGUpfSksbj1uZXcgUWIobik7cmV0dXJuIG5ldyB1dyh0LnBhdGgsbil9LHJrLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzPT09dH0scmspLFpBPShYaShuayxRQT1DQSksbmsucHJvdG90eXBlLl90b0ZpZWxkVHJhbnNmb3JtPWZ1bmN0aW9uKHQpe3ZhciBlPUdBKHRoaXMsdCwhMCksbj10aGlzLkJjLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdWsodCxlKX0pLG49bmV3IFpiKG4pO3JldHVybiBuZXcgdXcodC5wYXRoLG4pfSxuay5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR9LG5rKSx0az0oWGkoZWssekE9Q0EpLGVrLnByb3RvdHlwZS5fdG9GaWVsZFRyYW5zZm9ybT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgcncodC5SLEtiKHQuUix0aGlzLnFjKSk7cmV0dXJuIG5ldyB1dyh0LnBhdGgsZSl9LGVrLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzPT09dH0sZWspO2Z1bmN0aW9uIGVrKHQsZSl7dmFyIG49dGhpcztyZXR1cm4obj16QS5jYWxsKHRoaXMsdCl8fHRoaXMpLnFjPWUsbn1mdW5jdGlvbiBuayh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49UUEuY2FsbCh0aGlzLHQpfHx0aGlzKS5CYz1lLG59ZnVuY3Rpb24gcmsodCxlKXt2YXIgbj10aGlzO3JldHVybihuPVlBLmNhbGwodGhpcyx0KXx8dGhpcykuQmM9ZSxufWZ1bmN0aW9uIGlrKCl7cmV0dXJuIG51bGwhPT1YQSYmWEEuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfWZ1bmN0aW9uIG9rKHQscixpLGUpe3ZhciBvPXQuTGMoMSxyLGkpO2xrKCJEYXRhIG11c3QgYmUgYW4gb2JqZWN0LCBidXQgaXQgd2FzOiIsbyxlKTt2YXIgcz1bXSxhPXFtLmVtcHR5KCk7cm0oZSxmdW5jdGlvbih0LGUpe3ZhciBuPWRrKHIsdCxpKTtlPVpvKGUpO3Q9by5GYyhuKTtlIGluc3RhbmNlb2YgV0E/cy5wdXNoKG4pOm51bGwhPSh0PXVrKGUsdCkpJiYocy5wdXNoKG4pLGEuc2V0KG4sdCkpfSk7ZT1uZXcgaG0ocyk7cmV0dXJuIG5ldyBSQShhLGUsby5maWVsZFRyYW5zZm9ybXMpfWZ1bmN0aW9uIHNrKHQsZSxuLHIsaSxvKXt2YXIgcz10LkxjKDEsZSxuKSxhPVtmayhlLHIsbildLHU9W2ldO2lmKG8ubGVuZ3RoJTIhPTApdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkZ1bmN0aW9uICIrZSsiKCkgbmVlZHMgdG8gYmUgY2FsbGVkIHdpdGggYW4gZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzIHRoYXQgYWx0ZXJuYXRlIGJldHdlZW4gZmllbGQgbmFtZXMgYW5kIHZhbHVlcy4iKTtmb3IodmFyIGM9MDtjPG8ubGVuZ3RoO2MrPTIpYS5wdXNoKGZrKGUsb1tjXSkpLHUucHVzaChvW2MrMV0pO2Zvcih2YXIgaCxsLGYscD1bXSxkPXFtLmVtcHR5KCksdj1hLmxlbmd0aC0xOzA8PXY7LS12KWdrKHAsYVt2XSl8fChoPWFbdl0sbD1abyhsPXVbdl0pLGY9cy5GYyhoKSxsIGluc3RhbmNlb2YgV0E/cC5wdXNoKGgpOm51bGwhPShmPXVrKGwsZikpJiYocC5wdXNoKGgpLGQuc2V0KGgsZikpKTtpPW5ldyBobShwKTtyZXR1cm4gbmV3IFJBKGQsaSxzLmZpZWxkVHJhbnNmb3Jtcyl9ZnVuY3Rpb24gYWsodCxlLG4scil7cmV0dXJuIHZvaWQgMD09PXImJihyPSExKSx1ayhuLHQuTGMocj80OjMsZSkpfWZ1bmN0aW9uIHVrKHMsdCl7aWYoaGsocz1abyhzKSkpcmV0dXJuIGxrKCJVbnN1cHBvcnRlZCBmaWVsZCB2YWx1ZToiLHQscyksY2socyx0KTtpZihzIGluc3RhbmNlb2YgQ0EpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoIU1BKGUuU2MpKXRocm93IGUuT2ModC5fbWV0aG9kTmFtZSsiKCkgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHVwZGF0ZSgpIGFuZCBzZXQoKSIpO2lmKCFlLnBhdGgpdGhyb3cgZS5PYyh0Ll9tZXRob2ROYW1lKyIoKSBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBpbnNpZGUgYXJyYXlzIik7dD10Ll90b0ZpZWxkVHJhbnNmb3JtKGUpO3QmJmUuZmllbGRUcmFuc2Zvcm1zLnB1c2godCl9KHMsdCksbnVsbDtpZih2b2lkIDA9PT1zJiZ0Lmlnbm9yZVVuZGVmaW5lZFByb3BlcnRpZXMpcmV0dXJuIG51bGw7aWYodC5wYXRoJiZ0LmZpZWxkTWFzay5wdXNoKHQucGF0aCkscyBpbnN0YW5jZW9mIEFycmF5KXtpZih0LnNldHRpbmdzLk5jJiY0IT09dC5TYyl0aHJvdyB0Lk9jKCJOZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTAscj0wLGk9cztyPGkubGVuZ3RoO3IrKyl7dmFyIG89dWsoaVtyXSx0LmtjKG4pKTtudWxsPT1vJiYobz17bnVsbFZhbHVlOiJOVUxMX1ZBTFVFIn0pLGUucHVzaChvKSxuKyt9cmV0dXJue2FycmF5VmFsdWU6e3ZhbHVlczplfX19KHQpfXJldHVybiBmdW5jdGlvbih0LGUpe2lmKG51bGw9PT0odD1abyh0KSkpcmV0dXJue251bGxWYWx1ZToiTlVMTF9WQUxVRSJ9O2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gS2IoZS5SLHQpO2lmKCJib29sZWFuIj09dHlwZW9mIHQpcmV0dXJue2Jvb2xlYW5WYWx1ZTp0fTtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJue3N0cmluZ1ZhbHVlOnR9O2lmKHQgaW5zdGFuY2VvZiBEYXRlKXt2YXIgbj0keS5mcm9tRGF0ZSh0KTtyZXR1cm57dGltZXN0YW1wVmFsdWU6cF8oZS5SLG4pfX1pZih0IGluc3RhbmNlb2YgJHkpcmV0dXJuIG49bmV3ICR5KHQuc2Vjb25kcywxZTMqTWF0aC5mbG9vcih0Lm5hbm9zZWNvbmRzLzFlMykpLHt0aW1lc3RhbXBWYWx1ZTpwXyhlLlIsbil9O2lmKHQgaW5zdGFuY2VvZiBOQSlyZXR1cm57Z2VvUG9pbnRWYWx1ZTp7bGF0aXR1ZGU6dC5sYXRpdHVkZSxsb25naXR1ZGU6dC5sb25naXR1ZGV9fTtpZih0IGluc3RhbmNlb2YgU0EpcmV0dXJue2J5dGVzVmFsdWU6ZF8oZS5SLHQuX2J5dGVTdHJpbmcpfTtpZih0IGluc3RhbmNlb2YgdEEpe3ZhciBuPWUuZGF0YWJhc2VJZCxyPXQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkO2lmKCFyLmlzRXF1YWwobikpdGhyb3cgZS5PYygiRG9jdW1lbnQgcmVmZXJlbmNlIGlzIGZvciBkYXRhYmFzZSAiK3IucHJvamVjdElkKyIvIityLmRhdGFiYXNlKyIgYnV0IHNob3VsZCBiZSBmb3IgZGF0YWJhc2UgIituLnByb2plY3RJZCsiLyIrbi5kYXRhYmFzZSk7cmV0dXJue3JlZmVyZW5jZVZhbHVlOmdfKHQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkfHxlLmRhdGFiYXNlSWQsdC5fa2V5LnBhdGgpfX10aHJvdyBlLk9jKCJVbnN1cHBvcnRlZCBmaWVsZCB2YWx1ZTogIitRTih0KSl9KHMsdCl9ZnVuY3Rpb24gY2sodCxuKXt2YXIgcj17fTtyZXR1cm4gaW0odCk/bi5wYXRoJiYwPG4ucGF0aC5sZW5ndGgmJm4uZmllbGRNYXNrLnB1c2gobi5wYXRoKTpybSh0LGZ1bmN0aW9uKHQsZSl7ZT11ayhlLG4uQ2ModCkpO251bGwhPWUmJihyW3RdPWUpfSkse21hcFZhbHVlOntmaWVsZHM6cn19fWZ1bmN0aW9uIGhrKHQpe3JldHVybiEoIm9iamVjdCIhPXR5cGVvZiB0fHxudWxsPT09dHx8dCBpbnN0YW5jZW9mIEFycmF5fHx0IGluc3RhbmNlb2YgRGF0ZXx8dCBpbnN0YW5jZW9mICR5fHx0IGluc3RhbmNlb2YgTkF8fHQgaW5zdGFuY2VvZiBTQXx8dCBpbnN0YW5jZW9mIHRBfHx0IGluc3RhbmNlb2YgQ0EpfWZ1bmN0aW9uIGxrKHQsZSxuKXtpZighaGsobil8fCgib2JqZWN0IiE9dHlwZW9mKHI9bil8fG51bGw9PT1yfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YocikhPT1PYmplY3QucHJvdG90eXBlJiZudWxsIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHIpKSl7bj1RTihuKTt0aHJvdyJhbiBvYmplY3QiPT09bj9lLk9jKHQrIiBhIGN1c3RvbSBvYmplY3QiKTplLk9jKHQrIiAiK24pfXZhciByfWZ1bmN0aW9uIGZrKHQsZSxuKXtpZigoZT1abyhlKSlpbnN0YW5jZW9mIEVBKXJldHVybiBlLl9pbnRlcm5hbFBhdGg7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBkayh0LGUpO3Rocm93IHZrKCJGaWVsZCBwYXRoIGFyZ3VtZW50cyBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIEZpZWxkUGF0aC4iLHQsITEsdm9pZCAwLG4pfXZhciBwaz1uZXcgUmVnRXhwKCJbflxcKi9cXFtcXF1dIik7ZnVuY3Rpb24gZGsoZSxuLHIpe2lmKDA8PW4uc2VhcmNoKHBrKSl0aHJvdyB2aygiSW52YWxpZCBmaWVsZCBwYXRoICgiK24rIikuIFBhdGhzIG11c3Qgbm90IGNvbnRhaW4gJ34nLCAnKicsICcvJywgJ1snLCBvciAnXSciLGUsITEsdm9pZCAwLHIpO3RyeXtyZXR1cm4obmV3KEVBLmJpbmQuYXBwbHkoRUEsbm8oW3ZvaWQgMF0sbi5zcGxpdCgiLiIpKSkpKS5faW50ZXJuYWxQYXRofWNhdGNoKHQpe3Rocm93IHZrKCJJbnZhbGlkIGZpZWxkIHBhdGggKCIrbisiKS4gUGF0aHMgbXVzdCBub3QgYmUgZW1wdHksIGJlZ2luIHdpdGggJy4nLCBlbmQgd2l0aCAnLicsIG9yIGNvbnRhaW4gJy4uJyIsZSwhMSx2b2lkIDAscil9fWZ1bmN0aW9uIHZrKHQsZSxuLHIsaSl7dmFyIG89ciYmIXIuaXNFbXB0eSgpLHM9dm9pZCAwIT09aSxlPSJGdW5jdGlvbiAiK2UrIigpIGNhbGxlZCB3aXRoIGludmFsaWQgZGF0YSI7biYmKGUrPSIgKHZpYSBgdG9GaXJlc3RvcmUoKWApIik7bj0iIjtyZXR1cm4ob3x8cykmJihuKz0iIChmb3VuZCIsbyYmKG4rPSIgaW4gZmllbGQgIityKSxzJiYobis9IiBpbiBkb2N1bWVudCAiK2kpLG4rPSIpIiksbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsKGUrPSIuICIpK3Qrbil9ZnVuY3Rpb24gZ2sodCxlKXtyZXR1cm4gdC5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRXF1YWwoZSl9KX12YXIgeWssbWs9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfay5wcm90b3R5cGUsImlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2tleS5wYXRoLmxhc3RTZWdtZW50KCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KF9rLnByb3RvdHlwZSwicmVmIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB0QSh0aGlzLl9maXJlc3RvcmUsdGhpcy5fY29udmVydGVyLHRoaXMuX2tleSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksX2sucHJvdG90eXBlLmV4aXN0cz1mdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5fZG9jdW1lbnR9LF9rLnByb3RvdHlwZS5kYXRhPWZ1bmN0aW9uKCl7aWYodGhpcy5fZG9jdW1lbnQpe2lmKHRoaXMuX2NvbnZlcnRlcil7dmFyIHQ9bmV3IGJrKHRoaXMuX2ZpcmVzdG9yZSx0aGlzLl91c2VyRGF0YVdyaXRlcix0aGlzLl9rZXksdGhpcy5fZG9jdW1lbnQsbnVsbCk7cmV0dXJuIHRoaXMuX2NvbnZlcnRlci5mcm9tRmlyZXN0b3JlKHQpfXJldHVybiB0aGlzLl91c2VyRGF0YVdyaXRlci5jb252ZXJ0VmFsdWUodGhpcy5fZG9jdW1lbnQuZGF0YS50b1Byb3RvKCkpfX0sX2sucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtpZih0aGlzLl9kb2N1bWVudCl7dD10aGlzLl9kb2N1bWVudC5kYXRhLmZpZWxkKElrKCJEb2N1bWVudFNuYXBzaG90LmdldCIsdCkpO2lmKG51bGwhPT10KXJldHVybiB0aGlzLl91c2VyRGF0YVdyaXRlci5jb252ZXJ0VmFsdWUodCl9fSxfayksYms9KFhpKHdrLHlrPW1rKSx3ay5wcm90b3R5cGUuZGF0YT1mdW5jdGlvbigpe3JldHVybiB5ay5wcm90b3R5cGUuZGF0YS5jYWxsKHRoaXMpfSx3ayk7ZnVuY3Rpb24gd2soKXtyZXR1cm4gbnVsbCE9PXlrJiZ5ay5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gX2sodCxlLG4scixpKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl91c2VyRGF0YVdyaXRlcj1lLHRoaXMuX2tleT1uLHRoaXMuX2RvY3VtZW50PXIsdGhpcy5fY29udmVydGVyPWl9ZnVuY3Rpb24gSWsodCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZGsodCxlKTooZSBpbnN0YW5jZW9mIEVBP2U6ZS5fZGVsZWdhdGUpLl9pbnRlcm5hbFBhdGh9dmFyIFRrLEVrLFNrPShPay5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXNQZW5kaW5nV3JpdGVzPT09dC5oYXNQZW5kaW5nV3JpdGVzJiZ0aGlzLmZyb21DYWNoZT09PXQuZnJvbUNhY2hlfSxPayksQ2s9KFhpKFBrLEVrPW1rKSxQay5wcm90b3R5cGUuZXhpc3RzPWZ1bmN0aW9uKCl7cmV0dXJuIEVrLnByb3RvdHlwZS5leGlzdHMuY2FsbCh0aGlzKX0sUGsucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCYmKHQ9e30pLHRoaXMuX2RvY3VtZW50KXtpZih0aGlzLl9jb252ZXJ0ZXIpe3ZhciBlPW5ldyBOayh0aGlzLl9maXJlc3RvcmUsdGhpcy5fdXNlckRhdGFXcml0ZXIsdGhpcy5fa2V5LHRoaXMuX2RvY3VtZW50LHRoaXMubWV0YWRhdGEsbnVsbCk7cmV0dXJuIHRoaXMuX2NvbnZlcnRlci5mcm9tRmlyZXN0b3JlKGUsdCl9cmV0dXJuIHRoaXMuX3VzZXJEYXRhV3JpdGVyLmNvbnZlcnRWYWx1ZSh0aGlzLl9kb2N1bWVudC5kYXRhLnRvUHJvdG8oKSx0LnNlcnZlclRpbWVzdGFtcHMpfX0sUGsucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PWUmJihlPXt9KSx0aGlzLl9kb2N1bWVudCl7dD10aGlzLl9kb2N1bWVudC5kYXRhLmZpZWxkKElrKCJEb2N1bWVudFNuYXBzaG90LmdldCIsdCkpO2lmKG51bGwhPT10KXJldHVybiB0aGlzLl91c2VyRGF0YVdyaXRlci5jb252ZXJ0VmFsdWUodCxlLnNlcnZlclRpbWVzdGFtcHMpfX0sUGspLE5rPShYaShSayxUaz1DayksUmsucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PXt9KSxUay5wcm90b3R5cGUuZGF0YS5jYWxsKHRoaXMsdCl9LFJrKSxBaz0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGtrLnByb3RvdHlwZSwiZG9jcyIse2dldDpmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUucHVzaCh0KX0pLGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGtrLnByb3RvdHlwZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zbmFwc2hvdC5kb2NzLnNpemV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGtrLnByb3RvdHlwZSwiZW1wdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2l6ZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxray5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7dGhpcy5fc25hcHNob3QuZG9jcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuY2FsbChuLG5ldyBOayhyLl9maXJlc3RvcmUsci5fdXNlckRhdGFXcml0ZXIsdC5rZXksdCxuZXcgU2soci5fc25hcHNob3QubXV0YXRlZEtleXMuaGFzKHQua2V5KSxyLl9zbmFwc2hvdC5mcm9tQ2FjaGUpLHIucXVlcnkuX2NvbnZlcnRlcikpfSl9LGtrLnByb3RvdHlwZS5kb2NDaGFuZ2VzPWZ1bmN0aW9uKHQpe3Q9ISEodD12b2lkIDA9PT10P3t9OnQpLmluY2x1ZGVNZXRhZGF0YUNoYW5nZXM7aWYodCYmdGhpcy5fc25hcHNob3QuZXhjbHVkZXNNZXRhZGF0YUNoYW5nZXMpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIlRvIGluY2x1ZGUgbWV0YWRhdGEgY2hhbmdlcyB3aXRoIHlvdXIgZG9jdW1lbnQgY2hhbmdlcywgeW91IG11c3QgYWxzbyBwYXNzIHsgaW5jbHVkZU1ldGFkYXRhQ2hhbmdlczp0cnVlIH0gdG8gb25TbmFwc2hvdCgpLiIpO3JldHVybiB0aGlzLl9jYWNoZWRDaGFuZ2VzJiZ0aGlzLl9jYWNoZWRDaGFuZ2VzSW5jbHVkZU1ldGFkYXRhQ2hhbmdlcz09PXR8fCh0aGlzLl9jYWNoZWRDaGFuZ2VzPWZ1bmN0aW9uKGksZSl7aWYoaS5fc25hcHNob3Qub2xkRG9jcy5pc0VtcHR5KCkpe3ZhciBuPTA7cmV0dXJuIGkuX3NuYXBzaG90LmRvY0NoYW5nZXMubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBOayhpLl9maXJlc3RvcmUsaS5fdXNlckRhdGFXcml0ZXIsdC5kb2Mua2V5LHQuZG9jLG5ldyBTayhpLl9zbmFwc2hvdC5tdXRhdGVkS2V5cy5oYXModC5kb2Mua2V5KSxpLl9zbmFwc2hvdC5mcm9tQ2FjaGUpLGkucXVlcnkuX2NvbnZlcnRlcik7cmV0dXJuIHQuZG9jLHt0eXBlOiJhZGRlZCIsZG9jOmUsb2xkSW5kZXg6LTEsbmV3SW5kZXg6bisrfX0pfXZhciBvPWkuX3NuYXBzaG90Lm9sZERvY3M7cmV0dXJuIGkuX3NuYXBzaG90LmRvY0NoYW5nZXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBlfHwzIT09dC50eXBlfSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBOayhpLl9maXJlc3RvcmUsaS5fdXNlckRhdGFXcml0ZXIsdC5kb2Mua2V5LHQuZG9jLG5ldyBTayhpLl9zbmFwc2hvdC5tdXRhdGVkS2V5cy5oYXModC5kb2Mua2V5KSxpLl9zbmFwc2hvdC5mcm9tQ2FjaGUpLGkucXVlcnkuX2NvbnZlcnRlciksbj0tMSxyPS0xO3JldHVybiAwIT09dC50eXBlJiYobj1vLmluZGV4T2YodC5kb2Mua2V5KSxvPW8uZGVsZXRlKHQuZG9jLmtleSkpLDEhPT10LnR5cGUmJihyPShvPW8uYWRkKHQuZG9jKSkuaW5kZXhPZih0LmRvYy5rZXkpKSx7dHlwZTpmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiJhZGRlZCI7Y2FzZSAyOmNhc2UgMzpyZXR1cm4ibW9kaWZpZWQiO2Nhc2UgMTpyZXR1cm4icmVtb3ZlZCI7ZGVmYXVsdDpyZXR1cm4gSHkoKX19KHQudHlwZSksZG9jOmUsb2xkSW5kZXg6bixuZXdJbmRleDpyfX0pfSh0aGlzLHQpLHRoaXMuX2NhY2hlZENoYW5nZXNJbmNsdWRlTWV0YWRhdGFDaGFuZ2VzPXQpLHRoaXMuX2NhY2hlZENoYW5nZXN9LGtrKTtmdW5jdGlvbiBrayh0LGUsbixyKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl91c2VyRGF0YVdyaXRlcj1lLHRoaXMuX3NuYXBzaG90PXIsdGhpcy5tZXRhZGF0YT1uZXcgU2soci5oYXNQZW5kaW5nV3JpdGVzLHIuZnJvbUNhY2hlKSx0aGlzLnF1ZXJ5PW59ZnVuY3Rpb24gUmsoKXtyZXR1cm4gbnVsbCE9PVRrJiZUay5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gUGsodCxlLG4scixpLG8pe3ZhciBzPXRoaXM7cmV0dXJuKHM9RWsuY2FsbCh0aGlzLHQsZSxuLHIsbyl8fHRoaXMpLl9maXJlc3RvcmU9dCxzLl9maXJlc3RvcmVJbXBsPXQscy5tZXRhZGF0YT1pLHN9ZnVuY3Rpb24gT2sodCxlKXt0aGlzLmhhc1BlbmRpbmdXcml0ZXM9dCx0aGlzLmZyb21DYWNoZT1lfWZ1bmN0aW9uIERrKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBDayYmZSBpbnN0YW5jZW9mIENrP3QuX2ZpcmVzdG9yZT09PWUuX2ZpcmVzdG9yZSYmdC5fa2V5LmlzRXF1YWwoZS5fa2V5KSYmKG51bGw9PT10Ll9kb2N1bWVudD9udWxsPT09ZS5fZG9jdW1lbnQ6dC5fZG9jdW1lbnQuaXNFcXVhbChlLl9kb2N1bWVudCkpJiZ0Ll9jb252ZXJ0ZXI9PT1lLl9jb252ZXJ0ZXI6dCBpbnN0YW5jZW9mIEFrJiZlIGluc3RhbmNlb2YgQWsmJnQuX2ZpcmVzdG9yZT09PWUuX2ZpcmVzdG9yZSYmbEEodC5xdWVyeSxlLnF1ZXJ5KSYmdC5tZXRhZGF0YS5pc0VxdWFsKGUubWV0YWRhdGEpJiZ0Ll9zbmFwc2hvdC5pc0VxdWFsKGUuX3NuYXBzaG90KX1mdW5jdGlvbiB4ayh0KXtpZihrYih0KSYmMD09PXQuZXhwbGljaXRPcmRlckJ5Lmxlbmd0aCl0aHJvdyBuZXcgRnkoTXkuVU5JTVBMRU1FTlRFRCwibGltaXRUb0xhc3QoKSBxdWVyaWVzIHJlcXVpcmUgc3BlY2lmeWluZyBhdCBsZWFzdCBvbmUgb3JkZXJCeSgpIGNsYXVzZSIpfUdhPWZ1bmN0aW9uKCl7fTtmdW5jdGlvbiBMayh0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtmb3IodmFyIHI9MCxpPWU7cjxpLmxlbmd0aDtyKyspdD1pW3JdLl9hcHBseSh0KTtyZXR1cm4gdH12YXIgTWssRmssVWssamsscWssVms9KFhpKFhrLHFrPUdhKSxYay5wcm90b3R5cGUuX2FwcGx5PWZ1bmN0aW9uKHQpe3ZhciBlPVZBKHQuZmlyZXN0b3JlKSxlPWZ1bmN0aW9uKHQsZSxuLHIsaSxvKXtpZihyLmlzS2V5RmllbGQoKSl7aWYoImFycmF5LWNvbnRhaW5zIj09PWl8fCJhcnJheS1jb250YWlucy1hbnkiPT09aSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBRdWVyeS4gWW91IGNhbid0IHBlcmZvcm0gJyIraSsiJyBxdWVyaWVzIG9uIEZpZWxkUGF0aC5kb2N1bWVudElkKCkuIik7aWYoImluIj09PWl8fCJub3QtaW4iPT09aSl7WmsobyxpKTtmb3IodmFyIHM9W10sYT0wLHU9bzthPHUubGVuZ3RoO2ErKyl7dmFyIGM9dVthXTtzLnB1c2goJGsobix0LGMpKX1oPXthcnJheVZhbHVlOnt2YWx1ZXM6c319fWVsc2UgaD0kayhuLHQsbyl9ZWxzZSJpbiIhPT1pJiYibm90LWluIiE9PWkmJiJhcnJheS1jb250YWlucy1hbnkiIT09aXx8WmsobyxpKSxoPWFrKGUsIndoZXJlIixvLCJpbiI9PT1pfHwibm90LWluIj09PWkpO3ZhciBoPVhtLmNyZWF0ZShyLGksaCk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoZS5nKCkpe3ZhciBuPVBiKHQpO2lmKG51bGwhPT1uJiYhbi5pc0VxdWFsKGUuZmllbGQpKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIHF1ZXJ5LiBBbGwgd2hlcmUgZmlsdGVycyB3aXRoIGFuIGluZXF1YWxpdHkgKDwsIDw9LCAhPSwgbm90LWluLCA+LCBvciA+PSkgbXVzdCBiZSBvbiB0aGUgc2FtZSBmaWVsZC4gQnV0IHlvdSBoYXZlIGluZXF1YWxpdHkgZmlsdGVycyBvbiAnIituLnRvU3RyaW5nKCkrIicgYW5kICciK2UuZmllbGQudG9TdHJpbmcoKSsiJyIpO249UmIodCk7bnVsbCE9PW4mJnRSKDAsZS5maWVsZCxuKX10PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTAscj10LmZpbHRlcnM7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07aWYoMDw9ZS5pbmRleE9mKGkub3ApKXJldHVybiBpLm9wfXJldHVybiBudWxsfSh0LGZ1bmN0aW9uKCl7c3dpdGNoKGUub3Ape2Nhc2UiIT0iOnJldHVyblsiIT0iLCJub3QtaW4iXTtjYXNlImFycmF5LWNvbnRhaW5zIjpyZXR1cm5bImFycmF5LWNvbnRhaW5zIiwiYXJyYXktY29udGFpbnMtYW55Iiwibm90LWluIl07Y2FzZSJpbiI6cmV0dXJuWyJhcnJheS1jb250YWlucy1hbnkiLCJpbiIsIm5vdC1pbiJdO2Nhc2UiYXJyYXktY29udGFpbnMtYW55IjpyZXR1cm5bImFycmF5LWNvbnRhaW5zIiwiYXJyYXktY29udGFpbnMtYW55IiwiaW4iLCJub3QtaW4iXTtjYXNlIm5vdC1pbiI6cmV0dXJuWyJhcnJheS1jb250YWlucyIsImFycmF5LWNvbnRhaW5zLWFueSIsImluIiwibm90LWluIiwiIT0iXTtkZWZhdWx0OnJldHVybltdfX0oKSk7aWYobnVsbCE9PXQpdGhyb3cgdD09PWUub3A/bmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFlvdSBjYW5ub3QgdXNlIG1vcmUgdGhhbiBvbmUgJyIrZS5vcC50b1N0cmluZygpKyInIGZpbHRlci4iKTpuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gWW91IGNhbm5vdCB1c2UgJyIrZS5vcC50b1N0cmluZygpKyInIGZpbHRlcnMgd2l0aCAnIit0LnRvU3RyaW5nKCkrIicgZmlsdGVycy4iKX0odCxoKSxofSh0Ll9xdWVyeSxlLHQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkLHRoaXMuVWMsdGhpcy5RYyx0aGlzLktjKTtyZXR1cm4gbmV3IGVBKHQuZmlyZXN0b3JlLHQuX2NvbnZlcnRlciwodD10Ll9xdWVyeSxlPXQuZmlsdGVycy5jb25jYXQoW2VdKSxuZXcgU2IodC5wYXRoLHQuY29sbGVjdGlvbkdyb3VwLHQuZXhwbGljaXRPcmRlckJ5LnNsaWNlKCksZSx0LmxpbWl0LHQubGltaXRUeXBlLHQuc3RhcnRBdCx0LmVuZEF0KSkpfSxYayksQms9KFhpKFlrLGprPUdhKSxZay5wcm90b3R5cGUuX2FwcGx5PWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSxuKXtpZihudWxsIT09dC5zdGFydEF0KXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIHF1ZXJ5LiBZb3UgbXVzdCBub3QgY2FsbCBzdGFydEF0KCkgb3Igc3RhcnRBZnRlcigpIGJlZm9yZSBjYWxsaW5nIG9yZGVyQnkoKS4iKTtpZihudWxsIT09dC5lbmRBdCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gWW91IG11c3Qgbm90IGNhbGwgZW5kQXQoKSBvciBlbmRCZWZvcmUoKSBiZWZvcmUgY2FsbGluZyBvcmRlckJ5KCkuIik7dmFyIHI9bmV3IEliKGUsbik7cmV0dXJuIGU9cixudWxsIT09UmIobj10KXx8bnVsbCE9PSh0PVBiKG4pKSYmdFIoMCx0LGUuZmllbGQpLHJ9KHQuX3F1ZXJ5LHRoaXMuVWMsdGhpcy5qYyk7cmV0dXJuIG5ldyBlQSh0LmZpcmVzdG9yZSx0Ll9jb252ZXJ0ZXIsKHQ9dC5fcXVlcnksZT10LmV4cGxpY2l0T3JkZXJCeS5jb25jYXQoW2VdKSxuZXcgU2IodC5wYXRoLHQuY29sbGVjdGlvbkdyb3VwLGUsdC5maWx0ZXJzLnNsaWNlKCksdC5saW1pdCx0LmxpbWl0VHlwZSx0LnN0YXJ0QXQsdC5lbmRBdCkpKX0sWWspLEtrPShYaShRayxVaz1HYSksUWsucHJvdG90eXBlLl9hcHBseT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGVBKHQuZmlyZXN0b3JlLHQuX2NvbnZlcnRlcixMYih0Ll9xdWVyeSx0aGlzLldjLHRoaXMuR2MpKX0sUWspLFdrPShYaSh6ayxGaz1HYSksemsucHJvdG90eXBlLl9hcHBseT1mdW5jdGlvbih0KXt2YXIgZT1Kayh0LHRoaXMudHlwZSx0aGlzLnpjLHRoaXMuSGMpO3JldHVybiBuZXcgZUEodC5maXJlc3RvcmUsdC5fY29udmVydGVyLCh0PXQuX3F1ZXJ5LGU9ZSxuZXcgU2IodC5wYXRoLHQuY29sbGVjdGlvbkdyb3VwLHQuZXhwbGljaXRPcmRlckJ5LnNsaWNlKCksdC5maWx0ZXJzLnNsaWNlKCksdC5saW1pdCx0LmxpbWl0VHlwZSxlLHQuZW5kQXQpKSl9LHprKSxIaz0oWGkoR2ssTWs9R2EpLEdrLnByb3RvdHlwZS5fYXBwbHk9ZnVuY3Rpb24odCl7dmFyIGU9SmsodCx0aGlzLnR5cGUsdGhpcy56Yyx0aGlzLkhjKTtyZXR1cm4gbmV3IGVBKHQuZmlyZXN0b3JlLHQuX2NvbnZlcnRlciwodD10Ll9xdWVyeSxlPWUsbmV3IFNiKHQucGF0aCx0LmNvbGxlY3Rpb25Hcm91cCx0LmV4cGxpY2l0T3JkZXJCeS5zbGljZSgpLHQuZmlsdGVycy5zbGljZSgpLHQubGltaXQsdC5saW1pdFR5cGUsdC5zdGFydEF0LGUpKSl9LEdrKTtmdW5jdGlvbiBHayh0LGUsbil7dmFyIHI9dGhpcztyZXR1cm4ocj1Nay5jYWxsKHRoaXMpfHx0aGlzKS50eXBlPXQsci56Yz1lLHIuSGM9bixyfWZ1bmN0aW9uIHprKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPUZrLmNhbGwodGhpcyl8fHRoaXMpLnR5cGU9dCxyLnpjPWUsci5IYz1uLHJ9ZnVuY3Rpb24gUWsodCxlLG4pe3ZhciByPXRoaXM7cmV0dXJuKHI9VWsuY2FsbCh0aGlzKXx8dGhpcykudHlwZT10LHIuV2M9ZSxyLkdjPW4scn1mdW5jdGlvbiBZayh0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKG49amsuY2FsbCh0aGlzKXx8dGhpcykuVWM9dCxuLmpjPWUsbi50eXBlPSJvcmRlckJ5IixufWZ1bmN0aW9uIFhrKHQsZSxuKXt2YXIgcj10aGlzO3JldHVybihyPXFrLmNhbGwodGhpcyl8fHRoaXMpLlVjPXQsci5RYz1lLHIuS2M9bixyLnR5cGU9IndoZXJlIixyfWZ1bmN0aW9uIEprKHQsYyxlLG4pe2lmKGVbMF09Wm8oZVswXSksZVswXWluc3RhbmNlb2YgbWspcmV0dXJuIGZ1bmN0aW9uKHQsZSxuLHIpe2lmKCFuKXRocm93IG5ldyBGeShNeS5OT1RfRk9VTkQsIkNhbid0IHVzZSBhIERvY3VtZW50U25hcHNob3QgdGhhdCBkb2Vzbid0IGV4aXN0IGZvciAiK2MrIigpLiIpO2Zvcih2YXIgaT1bXSxvPTAscz1EYih0KTtvPHMubGVuZ3RoO28rKyl7dmFyIGE9c1tvXTtpZihhLmZpZWxkLmlzS2V5RmllbGQoKSlpLnB1c2goeG0oZSxuLmtleSkpO2Vsc2V7dmFyIHU9bi5kYXRhLmZpZWxkKGEuZmllbGQpO2lmKF9tKHUpKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCdJbnZhbGlkIHF1ZXJ5LiBZb3UgYXJlIHRyeWluZyB0byBzdGFydCBvciBlbmQgYSBxdWVyeSB1c2luZyBhIGRvY3VtZW50IGZvciB3aGljaCB0aGUgZmllbGQgIicrYS5maWVsZCsnIiBpcyBhbiB1bmNvbW1pdHRlZCBzZXJ2ZXIgdGltZXN0YW1wLiAoU2luY2UgdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgaXMgdW5rbm93biwgeW91IGNhbm5vdCBzdGFydC9lbmQgYSBxdWVyeSB3aXRoIGl0LiknKTtpZihudWxsPT09dSl7YT1hLmZpZWxkLmNhbm9uaWNhbFN0cmluZygpO3Rocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIHF1ZXJ5LiBZb3UgYXJlIHRyeWluZyB0byBzdGFydCBvciBlbmQgYSBxdWVyeSB1c2luZyBhIGRvY3VtZW50IGZvciB3aGljaCB0aGUgZmllbGQgJyIrYSsiJyAodXNlZCBhcyB0aGUgb3JkZXJCeSkgZG9lcyBub3QgZXhpc3QuIil9aS5wdXNoKHUpfX1yZXR1cm4gbmV3IGdiKGkscil9KHQuX3F1ZXJ5LHQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkLGVbMF0uX2RvY3VtZW50LG4pO3ZhciByPVZBKHQuZmlyZXN0b3JlKTtyZXR1cm4gZnVuY3Rpb24odCxlLG4scixpLG8pe3ZhciBzPXQuZXhwbGljaXRPcmRlckJ5O2lmKGkubGVuZ3RoPnMubGVuZ3RoKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJUb28gbWFueSBhcmd1bWVudHMgcHJvdmlkZWQgdG8gIityKyIoKS4gVGhlIG51bWJlciBvZiBhcmd1bWVudHMgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBvcmRlckJ5KCkgY2xhdXNlcyIpO2Zvcih2YXIgYT1bXSx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBjPWlbdV07aWYoc1t1XS5maWVsZC5pc0tleUZpZWxkKCkpe2lmKCJzdHJpbmciIT10eXBlb2YgYyl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gRXhwZWN0ZWQgYSBzdHJpbmcgZm9yIGRvY3VtZW50IElEIGluICIrcisiKCksIGJ1dCBnb3QgYSAiK3R5cGVvZiBjKTtpZighT2IodCkmJi0xIT09Yy5pbmRleE9mKCIvIikpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFdoZW4gcXVlcnlpbmcgYSBjb2xsZWN0aW9uIGFuZCBvcmRlcmluZyBieSBGaWVsZFBhdGguZG9jdW1lbnRJZCgpLCB0aGUgdmFsdWUgcGFzc2VkIHRvICIrcisiKCkgbXVzdCBiZSBhIHBsYWluIGRvY3VtZW50IElELCBidXQgJyIrYysiJyBjb250YWlucyBhIHNsYXNoLiIpO3ZhciBoPXQucGF0aC5jaGlsZChhbS5mcm9tU3RyaW5nKGMpKTtpZighQ20uaXNEb2N1bWVudEtleShoKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gV2hlbiBxdWVyeWluZyBhIGNvbGxlY3Rpb24gZ3JvdXAgYW5kIG9yZGVyaW5nIGJ5IEZpZWxkUGF0aC5kb2N1bWVudElkKCksIHRoZSB2YWx1ZSBwYXNzZWQgdG8gIityKyIoKSBtdXN0IHJlc3VsdCBpbiBhIHZhbGlkIGRvY3VtZW50IHBhdGgsIGJ1dCAnIitoKyInIGlzIG5vdCBiZWNhdXNlIGl0IGNvbnRhaW5zIGFuIG9kZCBudW1iZXIgb2Ygc2VnbWVudHMuIik7aD1uZXcgQ20oaCk7YS5wdXNoKHhtKGUsaCkpfWVsc2V7Yz1hayhuLHIsYyk7YS5wdXNoKGMpfX1yZXR1cm4gbmV3IGdiKGEsbyl9KHQuX3F1ZXJ5LHQuZmlyZXN0b3JlLl9kYXRhYmFzZUlkLHIsYyxlLG4pfWZ1bmN0aW9uICRrKHQsZSxuKXtpZigic3RyaW5nIj09dHlwZW9mKG49Wm8obikpKXtpZigiIj09PW4pdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFdoZW4gcXVlcnlpbmcgd2l0aCBGaWVsZFBhdGguZG9jdW1lbnRJZCgpLCB5b3UgbXVzdCBwcm92aWRlIGEgdmFsaWQgZG9jdW1lbnQgSUQsIGJ1dCBpdCB3YXMgYW4gZW1wdHkgc3RyaW5nLiIpO2lmKCFPYihlKSYmLTEhPT1uLmluZGV4T2YoIi8iKSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBxdWVyeS4gV2hlbiBxdWVyeWluZyBhIGNvbGxlY3Rpb24gYnkgRmllbGRQYXRoLmRvY3VtZW50SWQoKSwgeW91IG11c3QgcHJvdmlkZSBhIHBsYWluIGRvY3VtZW50IElELCBidXQgJyIrbisiJyBjb250YWlucyBhICcvJyBjaGFyYWN0ZXIuIik7ZT1lLnBhdGguY2hpbGQoYW0uZnJvbVN0cmluZyhuKSk7aWYoIUNtLmlzRG9jdW1lbnRLZXkoZSkpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFdoZW4gcXVlcnlpbmcgYSBjb2xsZWN0aW9uIGdyb3VwIGJ5IEZpZWxkUGF0aC5kb2N1bWVudElkKCksIHRoZSB2YWx1ZSBwcm92aWRlZCBtdXN0IHJlc3VsdCBpbiBhIHZhbGlkIGRvY3VtZW50IHBhdGgsIGJ1dCAnIitlKyInIGlzIG5vdCBiZWNhdXNlIGl0IGhhcyBhbiBvZGQgbnVtYmVyIG9mIHNlZ21lbnRzICgiK2UubGVuZ3RoKyIpLiIpO3JldHVybiB4bSh0LG5ldyBDbShlKSl9aWYobiBpbnN0YW5jZW9mIHRBKXJldHVybiB4bSh0LG4uX2tleSk7dGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgcXVlcnkuIFdoZW4gcXVlcnlpbmcgd2l0aCBGaWVsZFBhdGguZG9jdW1lbnRJZCgpLCB5b3UgbXVzdCBwcm92aWRlIGEgdmFsaWQgc3RyaW5nIG9yIGEgRG9jdW1lbnRSZWZlcmVuY2UsIGJ1dCBpdCB3YXM6ICIrUU4obikrIi4iKX1mdW5jdGlvbiBaayh0LGUpe2lmKCFBcnJheS5pc0FycmF5KHQpfHwwPT09dC5sZW5ndGgpdGhyb3cgbmV3IEZ5KE15LklOVkFMSURfQVJHVU1FTlQsIkludmFsaWQgUXVlcnkuIEEgbm9uLWVtcHR5IGFycmF5IGlzIHJlcXVpcmVkIGZvciAnIitlLnRvU3RyaW5nKCkrIicgZmlsdGVycy4iKTtpZigxMDx0Lmxlbmd0aCl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiSW52YWxpZCBRdWVyeS4gJyIrZS50b1N0cmluZygpKyInIGZpbHRlcnMgc3VwcG9ydCBhIG1heGltdW0gb2YgMTAgZWxlbWVudHMgaW4gdGhlIHZhbHVlIGFycmF5LiIpfWZ1bmN0aW9uIHRSKHQsZSxuKXtpZighbi5pc0VxdWFsKGUpKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIHF1ZXJ5LiBZb3UgaGF2ZSBhIHdoZXJlIGZpbHRlciB3aXRoIGFuIGluZXF1YWxpdHkgKDwsIDw9LCAhPSwgbm90LWluLCA+LCBvciA+PSkgb24gZmllbGQgJyIrZS50b1N0cmluZygpKyInIGFuZCBzbyB5b3UgbXVzdCBhbHNvIHVzZSAnIitlLnRvU3RyaW5nKCkrIicgYXMgeW91ciBmaXJzdCBhcmd1bWVudCB0byBvcmRlckJ5KCksIGJ1dCB5b3VyIGZpcnN0IG9yZGVyQnkoKSBpcyBvbiBmaWVsZCAnIituLnRvU3RyaW5nKCkrIicgaW5zdGVhZC4iKX1lUi5wcm90b3R5cGUuY29udmVydFZhbHVlPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PWUmJihlPSJub25lIiksQW0odCkpe2Nhc2UgMDpyZXR1cm4gbnVsbDtjYXNlIDE6cmV0dXJuIHQuYm9vbGVhblZhbHVlO2Nhc2UgMjpyZXR1cm4gYm0odC5pbnRlZ2VyVmFsdWV8fHQuZG91YmxlVmFsdWUpO2Nhc2UgMzpyZXR1cm4gdGhpcy5jb252ZXJ0VGltZXN0YW1wKHQudGltZXN0YW1wVmFsdWUpO2Nhc2UgNDpyZXR1cm4gdGhpcy5jb252ZXJ0U2VydmVyVGltZXN0YW1wKHQsZSk7Y2FzZSA1OnJldHVybiB0LnN0cmluZ1ZhbHVlO2Nhc2UgNjpyZXR1cm4gdGhpcy5jb252ZXJ0Qnl0ZXMod20odC5ieXRlc1ZhbHVlKSk7Y2FzZSA3OnJldHVybiB0aGlzLmNvbnZlcnRSZWZlcmVuY2UodC5yZWZlcmVuY2VWYWx1ZSk7Y2FzZSA4OnJldHVybiB0aGlzLmNvbnZlcnRHZW9Qb2ludCh0Lmdlb1BvaW50VmFsdWUpO2Nhc2UgOTpyZXR1cm4gdGhpcy5jb252ZXJ0QXJyYXkodC5hcnJheVZhbHVlLGUpO2Nhc2UgMTA6cmV0dXJuIHRoaXMuY29udmVydE9iamVjdCh0Lm1hcFZhbHVlLGUpO2RlZmF1bHQ6dGhyb3cgSHkoKX19LGVSLnByb3RvdHlwZS5jb252ZXJ0T2JqZWN0PWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcyxpPXt9O3JldHVybiBybSh0LmZpZWxkc3x8e30sZnVuY3Rpb24odCxlKXtpW3RdPXIuY29udmVydFZhbHVlKGUsbil9KSxpfSxlUi5wcm90b3R5cGUuY29udmVydEdlb1BvaW50PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTkEoYm0odC5sYXRpdHVkZSksYm0odC5sb25naXR1ZGUpKX0sZVIucHJvdG90eXBlLmNvbnZlcnRBcnJheT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuKHQudmFsdWVzfHxbXSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuLmNvbnZlcnRWYWx1ZSh0LGUpfSl9LGVSLnByb3RvdHlwZS5jb252ZXJ0U2VydmVyVGltZXN0YW1wPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKGUpe2Nhc2UicHJldmlvdXMiOnZhciBuPWZ1bmN0aW9uIHQoZSl7ZT1lLm1hcFZhbHVlLmZpZWxkcy5fX3ByZXZpb3VzX3ZhbHVlX187cmV0dXJuIF9tKGUpP3QoZSk6ZX0odCk7cmV0dXJuIG51bGw9PW4/bnVsbDp0aGlzLmNvbnZlcnRWYWx1ZShuLGUpO2Nhc2UiZXN0aW1hdGUiOnJldHVybiB0aGlzLmNvbnZlcnRUaW1lc3RhbXAoSW0odCkpO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSxlUi5wcm90b3R5cGUuY29udmVydFRpbWVzdGFtcD1mdW5jdGlvbih0KXt0PW1tKHQpO3JldHVybiBuZXcgJHkodC5zZWNvbmRzLHQubmFub3MpfSxlUi5wcm90b3R5cGUuY29udmVydERvY3VtZW50S2V5PWZ1bmN0aW9uKHQsZSl7dmFyIG49YW0uZnJvbVN0cmluZyh0KTtHeShGXyhuKSk7dD1uZXcgT04obi5nZXQoMSksbi5nZXQoMykpLG49bmV3IENtKG4ucG9wRmlyc3QoNSkpO3JldHVybiB0LmlzRXF1YWwoZSl8fEJ5KCJEb2N1bWVudCAiK24rIiBjb250YWlucyBhIGRvY3VtZW50IHJlZmVyZW5jZSB3aXRoaW4gYSBkaWZmZXJlbnQgZGF0YWJhc2UgKCIrdC5wcm9qZWN0SWQrIi8iK3QuZGF0YWJhc2UrIikgd2hpY2ggaXMgbm90IHN1cHBvcnRlZC4gSXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcmVmZXJlbmNlIGluIHRoZSBjdXJyZW50IGRhdGFiYXNlICgiK2UucHJvamVjdElkKyIvIitlLmRhdGFiYXNlKyIpIGluc3RlYWQuIiksbn0sU249ZVI7ZnVuY3Rpb24gZVIoKXt9ZnVuY3Rpb24gblIodCxlLG4pe3JldHVybiB0P24mJihuLm1lcmdlfHxuLm1lcmdlRmllbGRzKT90LnRvRmlyZXN0b3JlKGUsbik6dC50b0ZpcmVzdG9yZShlKTplfXZhciByUixpUj0oWGkoYVIsclI9U24pLGFSLnByb3RvdHlwZS5jb252ZXJ0Qnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBTQSh0KX0sYVIucHJvdG90eXBlLmNvbnZlcnRSZWZlcmVuY2U9ZnVuY3Rpb24odCl7dD10aGlzLmNvbnZlcnREb2N1bWVudEtleSh0LHRoaXMuZmlyZXN0b3JlLl9kYXRhYmFzZUlkKTtyZXR1cm4gbmV3IHRBKHRoaXMuZmlyZXN0b3JlLG51bGwsdCl9LGFSKSxvUj0oc1IucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUsbil7dGhpcy5fdmVyaWZ5Tm90Q29tbWl0dGVkKCk7dD11Uih0LHRoaXMuX2ZpcmVzdG9yZSksZT1uUih0Ll9jb252ZXJ0ZXIsZSxuKSxuPUJBKHRoaXMuX2RhdGFSZWFkZXIsIldyaXRlQmF0Y2guc2V0Iix0Ll9rZXksZSxudWxsIT09dC5fY29udmVydGVyLG4pO3JldHVybiB0aGlzLl9tdXRhdGlvbnMucHVzaChuLnRvTXV0YXRpb24odC5fa2V5LGN3Lm5vbmUoKSkpLHRoaXN9LHNSLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPTM7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktM109YXJndW1lbnRzW2ldO3RoaXMuX3ZlcmlmeU5vdENvbW1pdHRlZCgpO3Q9dVIodCx0aGlzLl9maXJlc3RvcmUpLGU9InN0cmluZyI9PXR5cGVvZihlPVpvKGUpKXx8ZSBpbnN0YW5jZW9mIEVBP3NrKHRoaXMuX2RhdGFSZWFkZXIsIldyaXRlQmF0Y2gudXBkYXRlIix0Ll9rZXksZSxuLHIpOm9rKHRoaXMuX2RhdGFSZWFkZXIsIldyaXRlQmF0Y2gudXBkYXRlIix0Ll9rZXksZSk7cmV0dXJuIHRoaXMuX211dGF0aW9ucy5wdXNoKGUudG9NdXRhdGlvbih0Ll9rZXksY3cuZXhpc3RzKCEwKSkpLHRoaXN9LHNSLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dGhpcy5fdmVyaWZ5Tm90Q29tbWl0dGVkKCk7dD11Uih0LHRoaXMuX2ZpcmVzdG9yZSk7cmV0dXJuIHRoaXMuX211dGF0aW9ucz10aGlzLl9tdXRhdGlvbnMuY29uY2F0KG5ldyBBdyh0Ll9rZXksY3cubm9uZSgpKSksdGhpc30sc1IucHJvdG90eXBlLmNvbW1pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl92ZXJpZnlOb3RDb21taXR0ZWQoKSx0aGlzLl9jb21taXR0ZWQ9ITAsMDx0aGlzLl9tdXRhdGlvbnMubGVuZ3RoP3RoaXMuX2NvbW1pdEhhbmRsZXIodGhpcy5fbXV0YXRpb25zKTpQcm9taXNlLnJlc29sdmUoKX0sc1IucHJvdG90eXBlLl92ZXJpZnlOb3RDb21taXR0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLl9jb21taXR0ZWQpdGhyb3cgbmV3IEZ5KE15LkZBSUxFRF9QUkVDT05ESVRJT04sIkEgd3JpdGUgYmF0Y2ggY2FuIG5vIGxvbmdlciBiZSB1c2VkIGFmdGVyIGNvbW1pdCgpIGhhcyBiZWVuIGNhbGxlZC4iKX0sc1IpO2Z1bmN0aW9uIHNSKHQsZSl7dGhpcy5fZmlyZXN0b3JlPXQsdGhpcy5fY29tbWl0SGFuZGxlcj1lLHRoaXMuX211dGF0aW9ucz1bXSx0aGlzLl9jb21taXR0ZWQ9ITEsdGhpcy5fZGF0YVJlYWRlcj1WQSh0KX1mdW5jdGlvbiBhUih0KXt2YXIgZT10aGlzO3JldHVybihlPXJSLmNhbGwodGhpcyl8fHRoaXMpLmZpcmVzdG9yZT10LGV9ZnVuY3Rpb24gdVIodCxlKXtpZigodD1abyh0KSkuZmlyZXN0b3JlIT09ZSl0aHJvdyBuZXcgRnkoTXkuSU5WQUxJRF9BUkdVTUVOVCwiUHJvdmlkZWQgZG9jdW1lbnQgcmVmZXJlbmNlIGlzIGZyb20gYSBkaWZmZXJlbnQgRmlyZXN0b3JlIGluc3RhbmNlLiIpO3JldHVybiB0fXZhciBjUixoUj0oWGkobFIsY1I9U24pLGxSLnByb3RvdHlwZS5jb252ZXJ0Qnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBTQSh0KX0sbFIucHJvdG90eXBlLmNvbnZlcnRSZWZlcmVuY2U9ZnVuY3Rpb24odCl7dD10aGlzLmNvbnZlcnREb2N1bWVudEtleSh0LHRoaXMuZmlyZXN0b3JlLl9kYXRhYmFzZUlkKTtyZXR1cm4gbmV3IHRBKHRoaXMuZmlyZXN0b3JlLG51bGwsdCl9LGxSKTtmdW5jdGlvbiBsUih0KXt2YXIgZT10aGlzO3JldHVybihlPWNSLmNhbGwodGhpcyl8fHRoaXMpLmZpcmVzdG9yZT10LGV9ZnVuY3Rpb24gZlIodCxlLG4pe2Zvcih2YXIgcj1bXSxpPTM7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktM109YXJndW1lbnRzW2ldO3Q9WU4odCx0QSk7dmFyIG89WU4odC5maXJlc3RvcmUseUEpLHM9VkEobyk7cmV0dXJuIGRSKG8sWygic3RyaW5nIj09dHlwZW9mKGU9Wm8oZSkpfHxlIGluc3RhbmNlb2YgRUE/c2socywidXBkYXRlRG9jIix0Ll9rZXksZSxuLHIpOm9rKHMsInVwZGF0ZURvYyIsdC5fa2V5LGUpKS50b011dGF0aW9uKHQuX2tleSxjdy5leGlzdHMoITApKV0pfWZ1bmN0aW9uIHBSKGUpe2Zvcih2YXIgbj1bXSx0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyluW3QtMV09YXJndW1lbnRzW3RdO2U9Wm8oZSk7dmFyIHI9e2luY2x1ZGVNZXRhZGF0YUNoYW5nZXM6ITF9LGk9MDsib2JqZWN0IiE9dHlwZW9mIG5baV18fGRBKG5baV0pfHwocj1uW2ldLGkrKyk7dmFyIG8scyxhLHUsYyxoLGw9e2luY2x1ZGVNZXRhZGF0YUNoYW5nZXM6ci5pbmNsdWRlTWV0YWRhdGFDaGFuZ2VzfTtyZXR1cm4gZEEobltpXSkmJihvPW5baV0sbltpXT1udWxsPT09KHI9by5uZXh0KXx8dm9pZCAwPT09cj92b2lkIDA6ci5iaW5kKG8pLG5baSsxXT1udWxsPT09KHI9by5lcnJvcil8fHZvaWQgMD09PXI/dm9pZCAwOnIuYmluZChvKSxuW2krMl09bnVsbD09PShyPW8uY29tcGxldGUpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLmJpbmQobykpLGUgaW5zdGFuY2VvZiB0QT8oYT1ZTihlLmZpcmVzdG9yZSx5QSksdT1OYihlLl9rZXkucGF0aCksaD17bmV4dDpmdW5jdGlvbih0KXtuW2ldJiZuW2ldKHZSKGEsZSx0KSl9LGVycm9yOm5baSsxXSxjb21wbGV0ZTpuW2krMl19KToocz1ZTihlLGVBKSxhPVlOKHMuZmlyZXN0b3JlLHlBKSx1PXMuX3F1ZXJ5LGM9bmV3IGhSKGEpLGg9e25leHQ6ZnVuY3Rpb24odCl7bltpXSYmbltpXShuZXcgQWsoYSxjLHMsdCkpfSxlcnJvcjpuW2krMV0sY29tcGxldGU6bltpKzJdfSx4ayhlLl9xdWVyeSkpLGZ1bmN0aW9uKG4sdCxlKXt2YXIgcj10aGlzLGk9bmV3IGNOKGgpLG89bmV3IGRDKHQsaSxlKTtyZXR1cm4gbi5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkocix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1sQyxbNCxOTihuKV07Y2FzZSAxOnJldHVyblsyLGUuYXBwbHkodm9pZCAwLFt0LnNlbnQoKSxvXSldfX0pfSl9KSxmdW5jdGlvbigpe2kuV28oKSxuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaShyLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZDLFs0LE5OKG4pXTtjYXNlIDE6cmV0dXJuWzIsZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLG9dKV19fSl9KX0pfX0od0EoYSksdSxsKX1mdW5jdGlvbiBkUih0LGUpe3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciB0PXRoaXMsaT1uZXcgYUk7cmV0dXJuIG4uYXN5bmNRdWV1ZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9T0MsWzQsQ04obildO2Nhc2UgMTpyZXR1cm5bMixlLmFwcGx5KHZvaWQgMCxbdC5zZW50KCkscixpXSldfX0pfSl9KSxpLnByb21pc2V9KHdBKHQpLGUpfWZ1bmN0aW9uIHZSKHQsZSxuKXt2YXIgcj1uLmRvY3MuZ2V0KGUuX2tleSksaT1uZXcgaFIodCk7cmV0dXJuIG5ldyBDayh0LGksZS5fa2V5LHIsbmV3IFNrKG4uaGFzUGVuZGluZ1dyaXRlcyxuLmZyb21DYWNoZSksZS5fY29udmVydGVyKX12YXIgZ1IseVI9KGJSLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXVSKHQsdGhpcy5fZmlyZXN0b3JlKSxyPW5ldyBpUih0aGlzLl9maXJlc3RvcmUpO3JldHVybiB0aGlzLl90cmFuc2FjdGlvbi5sb29rdXAoW24uX2tleV0pLnRoZW4oZnVuY3Rpb24odCl7aWYoIXR8fDEhPT10Lmxlbmd0aClyZXR1cm4gSHkoKTt0PXRbMF07aWYodC5pc0ZvdW5kRG9jdW1lbnQoKSlyZXR1cm4gbmV3IG1rKGUuX2ZpcmVzdG9yZSxyLHQua2V5LHQsbi5fY29udmVydGVyKTtpZih0LmlzTm9Eb2N1bWVudCgpKXJldHVybiBuZXcgbWsoZS5fZmlyZXN0b3JlLHIsbi5fa2V5LG51bGwsbi5fY29udmVydGVyKTt0aHJvdyBIeSgpfSl9LGJSLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlLG4pe3Q9dVIodCx0aGlzLl9maXJlc3RvcmUpLGU9blIodC5fY29udmVydGVyLGUsbiksbj1CQSh0aGlzLl9kYXRhUmVhZGVyLCJUcmFuc2FjdGlvbi5zZXQiLHQuX2tleSxlLG51bGwhPT10Ll9jb252ZXJ0ZXIsbik7cmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uLnNldCh0Ll9rZXksbiksdGhpc30sYlIucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPVtdLGk9MztpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXJbaS0zXT1hcmd1bWVudHNbaV07dD11Uih0LHRoaXMuX2ZpcmVzdG9yZSksZT0ic3RyaW5nIj09dHlwZW9mKGU9Wm8oZSkpfHxlIGluc3RhbmNlb2YgRUE/c2sodGhpcy5fZGF0YVJlYWRlciwiVHJhbnNhY3Rpb24udXBkYXRlIix0Ll9rZXksZSxuLHIpOm9rKHRoaXMuX2RhdGFSZWFkZXIsIlRyYW5zYWN0aW9uLnVwZGF0ZSIsdC5fa2V5LGUpO3JldHVybiB0aGlzLl90cmFuc2FjdGlvbi51cGRhdGUodC5fa2V5LGUpLHRoaXN9LGJSLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dD11Uih0LHRoaXMuX2ZpcmVzdG9yZSk7cmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uLmRlbGV0ZSh0Ll9rZXkpLHRoaXN9LFhpKG1SLGdSPWJSKSxtUi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj11Uih0LHRoaXMuX2ZpcmVzdG9yZSkscj1uZXcgaFIodGhpcy5fZmlyZXN0b3JlKTtyZXR1cm4gZ1IucHJvdG90eXBlLmdldC5jYWxsKHRoaXMsdCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IENrKGUuX2ZpcmVzdG9yZSxyLG4uX2tleSx0Ll9kb2N1bWVudCxuZXcgU2soITEsITEpLG4uX2NvbnZlcnRlcil9KX0sbVIpO2Z1bmN0aW9uIG1SKHQsZSl7dmFyIG49dGhpcztyZXR1cm4obj1nUi5jYWxsKHRoaXMsdCxlKXx8dGhpcykuX2ZpcmVzdG9yZT10LG59ZnVuY3Rpb24gYlIodCxlKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl90cmFuc2FjdGlvbj1lLHRoaXMuX2RhdGFSZWFkZXI9VkEodCl9ZnVuY3Rpb24gd1IoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4QXJyYXkpdGhyb3cgbmV3IEZ5KE15LlVOSU1QTEVNRU5URUQsIlVpbnQ4QXJyYXlzIGFyZSBub3QgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuIil9ZnVuY3Rpb24gX1IoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF0b2IpdGhyb3cgbmV3IEZ5KE15LlVOSU1QTEVNRU5URUQsIkJsb2JzIGFyZSB1bmF2YWlsYWJsZSBpbiBGaXJlc3RvcmUgaW4gdGhpcyBlbnZpcm9ubWVudC4iKX12YXIgSVIsVFI9KFJSLmZyb21CYXNlNjRTdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIF9SKCksbmV3IFJSKFNBLmZyb21CYXNlNjRTdHJpbmcodCkpfSxSUi5mcm9tVWludDhBcnJheT1mdW5jdGlvbih0KXtyZXR1cm4gd1IoKSxuZXcgUlIoU0EuZnJvbVVpbnQ4QXJyYXkodCkpfSxSUi5wcm90b3R5cGUudG9CYXNlNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gX1IoKSx0aGlzLl9kZWxlZ2F0ZS50b0Jhc2U2NCgpfSxSUi5wcm90b3R5cGUudG9VaW50OEFycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHdSKCksdGhpcy5fZGVsZWdhdGUudG9VaW50OEFycmF5KCl9LFJSLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5pc0VxdWFsKHQuX2RlbGVnYXRlKX0sUlIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkJsb2IoYmFzZTY0OiAiK3RoaXMudG9CYXNlNjQoKSsiKSJ9LFJSKSxFUj0oa1IucHJvdG90eXBlLmVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7VEEodD1ZTih0LHlBKSk7dmFyIG49d0EodCkscj10Ll9mcmVlemVTZXR0aW5ncygpLHQ9bmV3IHJOO3JldHVybiBJQShuLHQsbmV3IGVOKHQsci5jYWNoZVNpemVCeXRlcyxudWxsPT1lP3ZvaWQgMDplLmZvcmNlT3duZXJzaGlwKSl9KHQuX2RlbGVnYXRlLHtmb3JjZU93bmVyc2hpcDplfSl9LGtSLnByb3RvdHlwZS5lbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtUQSh0PVlOKHQseUEpKTt2YXIgZT13QSh0KSxuPXQuX2ZyZWV6ZVNldHRpbmdzKCksdD1uZXcgck47cmV0dXJuIElBKGUsdCxuZXcgbk4odCxuLmNhY2hlU2l6ZUJ5dGVzKSl9KHQuX2RlbGVnYXRlKX0sa1IucHJvdG90eXBlLmNsZWFySW5kZXhlZERiUGVyc2lzdGVuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciB0PXRoaXM7aWYobi5faW5pdGlhbGl6ZWQmJiFuLl90ZXJtaW5hdGVkKXRocm93IG5ldyBGeShNeS5GQUlMRURfUFJFQ09ORElUSU9OLCJQZXJzaXN0ZW5jZSBjYW4gb25seSBiZSBjbGVhcmVkIGJlZm9yZSBhIEZpcmVzdG9yZSBpbnN0YW5jZSBpcyBpbml0aWFsaXplZCBvciBhZnRlciBpdCBpcyB0ZXJtaW5hdGVkLiIpO3ZhciByPW5ldyBhSTtyZXR1cm4gbi5fcXVldWUuZW5xdWV1ZUFuZEZvcmdldEV2ZW5XaGlsZVJlc3RyaWN0ZWQoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdC50cnlzLnB1c2goWzAsMiwsM10pLFs0LGZ1bmN0aW9uKG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBoSS55dCgpPyhlPW4rIm1haW4iLFs0LGhJLmRlbGV0ZShlKV0pOlsyLFByb21pc2UucmVzb2x2ZSgpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfShKVChuLl9kYXRhYmFzZUlkLG4uX3BlcnNpc3RlbmNlS2V5KSldO2Nhc2UgMTpyZXR1cm4gdC5zZW50KCksci5yZXNvbHZlKCksWzMsM107Y2FzZSAyOnJldHVybiBlPXQuc2VudCgpLHIucmVqZWN0KGUpLFszLDNdO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0pLHIucHJvbWlzZX0odC5fZGVsZWdhdGUpfSxrUiksU1I9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBUi5wcm90b3R5cGUsIl9kYXRhYmFzZUlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLl9kYXRhYmFzZUlkfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEFSLnByb3RvdHlwZS5zZXR0aW5ncz1mdW5jdGlvbih0KXt0Lm1lcmdlJiZkZWxldGUodD1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5fZGVsZWdhdGUuX2dldFNldHRpbmdzKCkpLHQpKS5tZXJnZSx0aGlzLl9kZWxlZ2F0ZS5fc2V0U2V0dGluZ3ModCl9LEFSLnByb3RvdHlwZS51c2VFbXVsYXRvcj1mdW5jdGlvbih0LGUpe3ZhciBuLHI7bj10aGlzLl9kZWxlZ2F0ZSxyPXQsdD1lLCJmaXJlc3RvcmUuZ29vZ2xlYXBpcy5jb20iIT09KGU9KG49WU4obixaTikpLl9nZXRTZXR0aW5ncygpKS5ob3N0JiZlLmhvc3QhPT1yJiZLeSgiSG9zdCBoYXMgYmVlbiBzZXQgaW4gYm90aCBzZXR0aW5ncygpIGFuZCB1c2VFbXVsYXRvcigpLCBlbXVsYXRvciBob3N0IHdpbGwgYmUgdXNlZCIpLG4uX3NldFNldHRpbmdzKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7aG9zdDpyKyI6Iit0LHNzbDohMX0pKX0sQVIucHJvdG90eXBlLmVuYWJsZU5ldHdvcms9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIHQ9dGhpcztyZXR1cm4gaS5hc3luY1F1ZXVlLmVucXVldWUoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFROKGkpXTtjYXNlIDE6cmV0dXJuIG49dC5zZW50KCksWzQsU04oaSldO2Nhc2UgMjpyZXR1cm4gcj10LnNlbnQoKSxbMiwobi5zZXROZXR3b3JrRW5hYmxlZCghMCksKGU9cikuJHIuZGVsZXRlKDApLExTKGUpKV19dmFyIGV9KX0pfSl9KHdBKFlOKHRoaXMuX2RlbGVnYXRlLHlBKSkpfSxBUi5wcm90b3R5cGUuZGlzYWJsZU5ldHdvcms9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIHQ9dGhpcztyZXR1cm4gci5hc3luY1F1ZXVlLmVucXVldWUoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFROKHIpXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksWzQsU04ocildO2Nhc2UgMjpyZXR1cm4gbj10LnNlbnQoKSxbMiwoZS5zZXROZXR3b3JrRW5hYmxlZCghMSksZnVuY3Rpb24obil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKGU9bikuJHIuYWRkKDApLFs0LE1TKGUpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLGUuQnIuc2V0KCJPZmZsaW5lIiksWzJdfX0pfSl9KG4pKV19fSl9KX0pfSh3QShZTih0aGlzLl9kZWxlZ2F0ZSx5QSkpKX0sQVIucHJvdG90eXBlLmVuYWJsZVBlcnNpc3RlbmNlPWZ1bmN0aW9uKHQpe3ZhciBlPSExLG49ITE7cmV0dXJuIHQmJkhOKCJzeW5jaHJvbml6ZVRhYnMiLGU9ISF0LnN5bmNocm9uaXplVGFicywiZXhwZXJpbWVudGFsRm9yY2VPd25pbmdUYWIiLG49ISF0LmV4cGVyaW1lbnRhbEZvcmNlT3duaW5nVGFiKSxlP3RoaXMuSmMuZW5hYmxlTXVsdGlUYWJJbmRleGVkRGJQZXJzaXN0ZW5jZSh0aGlzKTp0aGlzLkpjLmVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKHRoaXMsbil9LEFSLnByb3RvdHlwZS5jbGVhclBlcnNpc3RlbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSmMuY2xlYXJJbmRleGVkRGJQZXJzaXN0ZW5jZSh0aGlzKX0sQVIucHJvdG90eXBlLnRlcm1pbmF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLlljJiYodGhpcy5ZYy5fcmVtb3ZlU2VydmljZUluc3RhbmNlKCJmaXJlc3RvcmUiKSx0aGlzLlljLl9yZW1vdmVTZXJ2aWNlSW5zdGFuY2UoImZpcmVzdG9yZS1leHAiKSksdGhpcy5fZGVsZWdhdGUuX2RlbGV0ZSgpfSxBUi5wcm90b3R5cGUud2FpdEZvclBlbmRpbmdXcml0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHQ9dGhpcyxyPW5ldyBhSTtyZXR1cm4gbi5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkodCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1NQyxbNCxDTihuKV07Y2FzZSAxOnJldHVyblsyLGUuYXBwbHkodm9pZCAwLFt0LnNlbnQoKSxyXSldfX0pfSl9KSxyLnByb21pc2V9KHdBKFlOKHRoaXMuX2RlbGVnYXRlLHlBKSkpfSxBUi5wcm90b3R5cGUub25TbmFwc2hvdHNJblN5bmM9ZnVuY3Rpb24odCl7cmV0dXJuIGU9dGhpcy5fZGVsZWdhdGUsdD10LGZ1bmN0aW9uKG4sdCl7dmFyIGU9dGhpcyxyPW5ldyBjTih0KTtyZXR1cm4gbi5hc3luY1F1ZXVlLmVucXVldWVBbmRGb3JnZXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1mdW5jdGlvbih0LGUpe3QuR3IuYWRkKGUpLGUubmV4dCgpfSxbNCxOTihuKV07Y2FzZSAxOnJldHVyblsyLGUuYXBwbHkodm9pZCAwLFt0LnNlbnQoKSxyXSldfX0pfSl9KSxmdW5jdGlvbigpe3IuV28oKSxuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaShlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZ1bmN0aW9uKHQsZSl7dC5Hci5kZWxldGUoZSl9LFs0LE5OKG4pXTtjYXNlIDE6cmV0dXJuWzIsZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLHJdKV19fSl9KX0pfX0od0EoWU4oZSx5QSkpLGRBKHQpP3Q6e25leHQ6dH0pO3ZhciBlfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQVIucHJvdG90eXBlLCJhcHAiLHtnZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5ZYyl0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwiRmlyZXN0b3JlIHdhcyBub3QgaW5pdGlhbGl6ZWQgdXNpbmcgdGhlIEZpcmViYXNlIFNESy4gJ2FwcCcgaXMgbm90IGF2YWlsYWJsZSIpO3JldHVybiB0aGlzLlljfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEFSLnByb3RvdHlwZS5jb2xsZWN0aW9uPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gbmV3IFlSKHRoaXMsdUEodGhpcy5fZGVsZWdhdGUsdCkpfWNhdGNoKHQpe3Rocm93IGpSKHQsImNvbGxlY3Rpb24oKSIsIkZpcmVzdG9yZS5jb2xsZWN0aW9uKCkiKX19LEFSLnByb3RvdHlwZS5kb2M9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgRlIodGhpcyxjQSh0aGlzLl9kZWxlZ2F0ZSx0KSl9Y2F0Y2godCl7dGhyb3cgalIodCwiZG9jKCkiLCJGaXJlc3RvcmUuZG9jKCkiKX19LEFSLnByb3RvdHlwZS5jb2xsZWN0aW9uR3JvdXA9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgR1IodGhpcyxmdW5jdGlvbih0LGUpe2lmKHQ9WU4odCxaTiksS04oImNvbGxlY3Rpb25Hcm91cCIsImNvbGxlY3Rpb24gaWQiLGUpLDA8PWUuaW5kZXhPZigiLyIpKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIGNvbGxlY3Rpb24gSUQgJyIrZSsiJyBwYXNzZWQgdG8gZnVuY3Rpb24gY29sbGVjdGlvbkdyb3VwKCkuIENvbGxlY3Rpb24gSURzIG11c3Qgbm90IGNvbnRhaW4gJy8nLiIpO3JldHVybiBuZXcgZUEodCxudWxsLChlPWUsbmV3IFNiKGFtLmVtcHR5UGF0aCgpLGUpKSl9KHRoaXMuX2RlbGVnYXRlLHQpKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJjb2xsZWN0aW9uR3JvdXAoKSIsIkZpcmVzdG9yZS5jb2xsZWN0aW9uR3JvdXAoKSIpfX0sQVIucHJvdG90eXBlLnJ1blRyYW5zYWN0aW9uPWZ1bmN0aW9uKGUpe3ZhciBuLHI9dGhpcztyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgdD10aGlzLGk9bmV3IGFJO3JldHVybiBuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LElOKG4pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YXN0b3JlfSldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxuZXcgZk4obi5hc3luY1F1ZXVlLGUscixpKS5ydW4oKSxbMl19fSl9KX0pLGkucHJvbWlzZX0od0Eobj10aGlzLl9kZWxlZ2F0ZSksZnVuY3Rpb24odCl7cmV0dXJuIHQ9bmV3IHlSKG4sdCksZShuZXcgUFIocix0KSl9KX0sQVIucHJvdG90eXBlLmJhdGNoPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gd0EodGhpcy5fZGVsZWdhdGUpLG5ldyBPUihuZXcgb1IodGhpcy5fZGVsZWdhdGUsZnVuY3Rpb24odCl7cmV0dXJuIGRSKGUuX2RlbGVnYXRlLHQpfSkpfSxBUi5wcm90b3R5cGUubG9hZEJ1bmRsZT1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRnkoTXkuRkFJTEVEX1BSRUNPTkRJVElPTiwnImxvYWRCdW5kbGUoKSIgZG9lcyBub3QgZXhpc3QsIGhhdmUgeW91IGltcG9ydGVkICJmaXJlYmFzZS9maXJlc3RvcmUvYnVuZGxlIj8nKX0sQVIucHJvdG90eXBlLm5hbWVkUXVlcnk9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEZ5KE15LkZBSUxFRF9QUkVDT05ESVRJT04sJyJuYW1lZFF1ZXJ5KCkiIGRvZXMgbm90IGV4aXN0LCBoYXZlIHlvdSBpbXBvcnRlZCAiZmlyZWJhc2UvZmlyZXN0b3JlL2J1bmRsZSI/Jyl9LEFSKSxDUj0oWGkoTlIsSVI9U24pLE5SLnByb3RvdHlwZS5jb252ZXJ0Qnl0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBUUihuZXcgU0EodCkpfSxOUi5wcm90b3R5cGUuY29udmVydFJlZmVyZW5jZT1mdW5jdGlvbih0KXt0PXRoaXMuY29udmVydERvY3VtZW50S2V5KHQsdGhpcy5maXJlc3RvcmUuX2RhdGFiYXNlSWQpO3JldHVybiBGUi5YYyh0LHRoaXMuZmlyZXN0b3JlLG51bGwpfSxOUik7ZnVuY3Rpb24gTlIodCl7dmFyIGU9dGhpcztyZXR1cm4oZT1JUi5jYWxsKHRoaXMpfHx0aGlzKS5maXJlc3RvcmU9dCxlfWZ1bmN0aW9uIEFSKHQsZSxuKXt2YXIgcj10aGlzO3RoaXMuX2RlbGVnYXRlPWUsdGhpcy5KYz1uLHRoaXMuSU5URVJOQUw9e2RlbGV0ZTpmdW5jdGlvbigpe3JldHVybiByLnRlcm1pbmF0ZSgpfX0sdCBpbnN0YW5jZW9mIE9OfHwodGhpcy5ZYz10KX1mdW5jdGlvbiBrUigpe31mdW5jdGlvbiBSUih0KXt0aGlzLl9kZWxlZ2F0ZT10fXZhciBQUj0oTVIucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49blAodCk7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmdldChuKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV1IoZS5fZmlyZXN0b3JlLG5ldyBDayhlLl9maXJlc3RvcmUuX2RlbGVnYXRlLGUuX3VzZXJEYXRhV3JpdGVyLHQuX2tleSx0Ll9kb2N1bWVudCx0Lm1ldGFkYXRhLG4uX2NvbnZlcnRlcikpfSl9LE1SLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlLG4pe3Q9blAodCk7cmV0dXJuIG4/KFdOKCJUcmFuc2FjdGlvbi5zZXQiLG4pLHRoaXMuX2RlbGVnYXRlLnNldCh0LGUsbikpOnRoaXMuX2RlbGVnYXRlLnNldCh0LGUpLHRoaXN9LE1SLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPTM7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktM109YXJndW1lbnRzW2ldO3ZhciBvPW5QKHQpO3JldHVybiAyPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9kZWxlZ2F0ZS51cGRhdGUobyxlKToodD10aGlzLl9kZWxlZ2F0ZSkudXBkYXRlLmFwcGx5KHQsbm8oW28sZSxuXSxyKSksdGhpc30sTVIucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt0PW5QKHQpO3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5kZWxldGUodCksdGhpc30sTVIpLE9SPShMUi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSxuKXt0PW5QKHQpO3JldHVybiBuPyhXTigiV3JpdGVCYXRjaC5zZXQiLG4pLHRoaXMuX2RlbGVnYXRlLnNldCh0LGUsbikpOnRoaXMuX2RlbGVnYXRlLnNldCh0LGUpLHRoaXN9LExSLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPTM7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktM109YXJndW1lbnRzW2ldO3ZhciBvPW5QKHQpO3JldHVybiAyPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLl9kZWxlZ2F0ZS51cGRhdGUobyxlKToodD10aGlzLl9kZWxlZ2F0ZSkudXBkYXRlLmFwcGx5KHQsbm8oW28sZSxuXSxyKSksdGhpc30sTFIucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt0PW5QKHQpO3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5kZWxldGUodCksdGhpc30sTFIucHJvdG90eXBlLmNvbW1pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5jb21taXQoKX0sTFIpLERSPSh4Ui5wcm90b3R5cGUuZnJvbUZpcmVzdG9yZT1mdW5jdGlvbih0LGUpe3Q9bmV3IE5rKHRoaXMuX2ZpcmVzdG9yZS5fZGVsZWdhdGUsdGhpcy5fdXNlckRhdGFXcml0ZXIsdC5fa2V5LHQuX2RvY3VtZW50LHQubWV0YWRhdGEsbnVsbCk7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmZyb21GaXJlc3RvcmUobmV3IEhSKHRoaXMuX2ZpcmVzdG9yZSx0KSxudWxsIT1lP2U6e30pfSx4Ui5wcm90b3R5cGUudG9GaXJlc3RvcmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT90aGlzLl9kZWxlZ2F0ZS50b0ZpcmVzdG9yZSh0LGUpOnRoaXMuX2RlbGVnYXRlLnRvRmlyZXN0b3JlKHQpfSx4Ui5aYz1mdW5jdGlvbih0LGUpe3ZhciBuPXhSLnR1LHI9bi5nZXQodCk7cnx8KHI9bmV3IFdlYWtNYXAsbi5zZXQodCxyKSk7bj1yLmdldChlKTtyZXR1cm4gbnx8KG49bmV3IHhSKHQsbmV3IENSKHQpLGUpLHIuc2V0KGUsbikpLG59LHhSKTtmdW5jdGlvbiB4Uih0LGUsbil7dGhpcy5fZmlyZXN0b3JlPXQsdGhpcy5fdXNlckRhdGFXcml0ZXI9ZSx0aGlzLl9kZWxlZ2F0ZT1ufWZ1bmN0aW9uIExSKHQpe3RoaXMuX2RlbGVnYXRlPXR9ZnVuY3Rpb24gTVIodCxlKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl9kZWxlZ2F0ZT1lLHRoaXMuX3VzZXJEYXRhV3JpdGVyPW5ldyBDUih0KX1EUi50dT1uZXcgV2Vha01hcDt2YXIgRlI9KFVSLmV1PWZ1bmN0aW9uKHQsZSxuKXtpZih0Lmxlbmd0aCUyIT0wKXRocm93IG5ldyBGeShNeS5JTlZBTElEX0FSR1VNRU5ULCJJbnZhbGlkIGRvY3VtZW50IHJlZmVyZW5jZS4gRG9jdW1lbnQgcmVmZXJlbmNlcyBtdXN0IGhhdmUgYW4gZXZlbiBudW1iZXIgb2Ygc2VnbWVudHMsIGJ1dCAiK3QuY2Fub25pY2FsU3RyaW5nKCkrIiBoYXMgIit0Lmxlbmd0aCk7cmV0dXJuIG5ldyBVUihlLG5ldyB0QShlLl9kZWxlZ2F0ZSxuLG5ldyBDbSh0KSkpfSxVUi5YYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG5ldyBVUihlLG5ldyB0QShlLl9kZWxlZ2F0ZSxuLHQpKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KFVSLnByb3RvdHlwZSwiaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuaWR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFVSLnByb3RvdHlwZSwicGFyZW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZUih0aGlzLmZpcmVzdG9yZSx0aGlzLl9kZWxlZ2F0ZS5wYXJlbnQpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVUi5wcm90b3R5cGUsInBhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUucGF0aH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxVUi5wcm90b3R5cGUuY29sbGVjdGlvbj1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIG5ldyBZUih0aGlzLmZpcmVzdG9yZSx1QSh0aGlzLl9kZWxlZ2F0ZSx0KSl9Y2F0Y2godCl7dGhyb3cgalIodCwiY29sbGVjdGlvbigpIiwiRG9jdW1lbnRSZWZlcmVuY2UuY29sbGVjdGlvbigpIil9fSxVUi5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4odD1abyh0KSlpbnN0YW5jZW9mIHRBJiZoQSh0aGlzLl9kZWxlZ2F0ZSx0KX0sVVIucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe2U9V04oIkRvY3VtZW50UmVmZXJlbmNlLnNldCIsZSk7dHJ5e3JldHVybiBmdW5jdGlvbih0LGUsbil7dD1ZTih0LHRBKTt2YXIgcj1ZTih0LmZpcmVzdG9yZSx5QSksZT1uUih0Ll9jb252ZXJ0ZXIsZSxuKTtyZXR1cm4gZFIocixbQkEoVkEociksInNldERvYyIsdC5fa2V5LGUsbnVsbCE9PXQuX2NvbnZlcnRlcixuKS50b011dGF0aW9uKHQuX2tleSxjdy5ub25lKCkpXSl9KHRoaXMuX2RlbGVnYXRlLHQsZSl9Y2F0Y2godCl7dGhyb3cgalIodCwic2V0RG9jKCkiLCJEb2N1bWVudFJlZmVyZW5jZS5zZXQoKSIpfX0sVVIucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1bXSxyPTI7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyluW3ItMl09YXJndW1lbnRzW3JdO3RyeXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZlIodGhpcy5fZGVsZWdhdGUsdCk6ZlIuYXBwbHkodm9pZCAwLG5vKFt0aGlzLl9kZWxlZ2F0ZSx0LGVdLG4pKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJ1cGRhdGVEb2MoKSIsIkRvY3VtZW50UmVmZXJlbmNlLnVwZGF0ZSgpIil9fSxVUi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGRSKFlOKCh0PXRoaXMuX2RlbGVnYXRlKS5maXJlc3RvcmUseUEpLFtuZXcgQXcodC5fa2V5LGN3Lm5vbmUoKSldKTt2YXIgdH0sVVIucHJvdG90eXBlLm9uU25hcHNob3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcyx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3ZhciByPXFSKHQpLGk9VlIodCxmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFdSKGUuZmlyZXN0b3JlLG5ldyBDayhlLmZpcmVzdG9yZS5fZGVsZWdhdGUsZS5fdXNlckRhdGFXcml0ZXIsdC5fa2V5LHQuX2RvY3VtZW50LHQubWV0YWRhdGEsZS5fZGVsZWdhdGUuX2NvbnZlcnRlcikpfSk7cmV0dXJuIHBSKHRoaXMuX2RlbGVnYXRlLHIsaSl9LFVSLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4oImNhY2hlIj09PShudWxsPT10P3ZvaWQgMDp0LnNvdXJjZSk/ZnVuY3Rpb24oZSl7ZT1ZTihlLHRBKTt2YXIgbj1ZTihlLmZpcmVzdG9yZSx5QSksdD13QShuKSxyPW5ldyBoUihuKTtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgdD10aGlzLGk9bmV3IGFJO3JldHVybiBuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZ1bmN0aW9uKG8scyxhKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHIsaTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwyLCwzXSksWzQsKGU9cywobj1vKS5wZXJzaXN0ZW5jZS5ydW5UcmFuc2FjdGlvbigicmVhZCBkb2N1bWVudCIsInJlYWRvbmx5IixmdW5jdGlvbih0KXtyZXR1cm4gbi5Nbi5tbih0LGUpfSkpXTtjYXNlIDE6cmV0dXJuKGk9dC5zZW50KCkpLmlzRm91bmREb2N1bWVudCgpP2EucmVzb2x2ZShpKTppLmlzTm9Eb2N1bWVudCgpP2EucmVzb2x2ZShudWxsKTphLnJlamVjdChuZXcgRnkoTXkuVU5BVkFJTEFCTEUsIkZhaWxlZCB0byBnZXQgZG9jdW1lbnQgZnJvbSBjYWNoZS4gKEhvd2V2ZXIsIHRoaXMgZG9jdW1lbnQgbWF5IGV4aXN0IG9uIHRoZSBzZXJ2ZXIuIFJ1biBhZ2FpbiB3aXRob3V0IHNldHRpbmcgJ3NvdXJjZScgaW4gdGhlIEdldE9wdGlvbnMgdG8gYXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgZG9jdW1lbnQgZnJvbSB0aGUgc2VydmVyLikiKSksWzMsM107Y2FzZSAyOnJldHVybiByPXQuc2VudCgpLGk9bkMociwiRmFpbGVkIHRvIGdldCBkb2N1bWVudCAnIitzKyIgZnJvbSBjYWNoZSIpLGEucmVqZWN0KGkpLFszLDNdO2Nhc2UgMzpyZXR1cm5bMl19dmFyIGUsbn0pfSl9LFs0LEVOKG4pXTtjYXNlIDE6cmV0dXJuWzIsZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLHIsaV0pXX19KX0pfSksaS5wcm9taXNlfSh0LGUuX2tleSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IENrKG4scixlLl9rZXksdCxuZXcgU2sobnVsbCE9PXQmJnQuaGFzTG9jYWxNdXRhdGlvbnMsITApLGUuX2NvbnZlcnRlcil9KX06InNlcnZlciI9PT0obnVsbD09dD92b2lkIDA6dC5zb3VyY2UpP2Z1bmN0aW9uKGUpe2U9WU4oZSx0QSk7dmFyIG49WU4oZS5maXJlc3RvcmUseUEpO3JldHVybiBBTih3QShuKSxlLl9rZXkse3NvdXJjZToic2VydmVyIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHZSKG4sZSx0KX0pfTpmdW5jdGlvbihlKXtlPVlOKGUsdEEpO3ZhciBuPVlOKGUuZmlyZXN0b3JlLHlBKTtyZXR1cm4gQU4od0EobiksZS5fa2V5KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB2UihuLGUsdCl9KX0pKHRoaXMuX2RlbGVnYXRlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV1IoZS5maXJlc3RvcmUsbmV3IENrKGUuZmlyZXN0b3JlLl9kZWxlZ2F0ZSxlLl91c2VyRGF0YVdyaXRlcix0Ll9rZXksdC5fZG9jdW1lbnQsdC5tZXRhZGF0YSxlLl9kZWxlZ2F0ZS5fY29udmVydGVyKSl9KX0sVVIucHJvdG90eXBlLndpdGhDb252ZXJ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBVUih0aGlzLmZpcmVzdG9yZSx0P3RoaXMuX2RlbGVnYXRlLndpdGhDb252ZXJ0ZXIoRFIuWmModGhpcy5maXJlc3RvcmUsdCkpOnRoaXMuX2RlbGVnYXRlLndpdGhDb252ZXJ0ZXIobnVsbCkpfSxVUik7ZnVuY3Rpb24gVVIodCxlKXt0aGlzLmZpcmVzdG9yZT10LHRoaXMuX2RlbGVnYXRlPWUsdGhpcy5fdXNlckRhdGFXcml0ZXI9bmV3IENSKHQpfWZ1bmN0aW9uIGpSKHQsZSxuKXtyZXR1cm4gdC5tZXNzYWdlPXQubWVzc2FnZS5yZXBsYWNlKGUsbiksdH1mdW5jdGlvbiBxUih0KXtmb3IodmFyIGU9MCxuPXQ7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV07aWYoIm9iamVjdCI9PXR5cGVvZiByJiYhZEEocikpcmV0dXJuIHJ9cmV0dXJue319ZnVuY3Rpb24gVlIodCxlKXt2YXIgbjtyZXR1cm57bmV4dDpmdW5jdGlvbih0KXtuLm5leHQmJm4ubmV4dChlKHQpKX0sZXJyb3I6bnVsbD09PSh0PShuPWRBKHRbMF0pP3RbMF06ZEEodFsxXSk/dFsxXToiZnVuY3Rpb24iPT10eXBlb2YgdFswXT97bmV4dDp0WzBdLGVycm9yOnRbMV0sY29tcGxldGU6dFsyXX06e25leHQ6dFsxXSxlcnJvcjp0WzJdLGNvbXBsZXRlOnRbM119KS5lcnJvcil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuYmluZChuKSxjb21wbGV0ZTpudWxsPT09KHQ9bi5jb21wbGV0ZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuYmluZChuKX19dmFyIEJSLEtSLFdSPShPYmplY3QuZGVmaW5lUHJvcGVydHkoZVAucHJvdG90eXBlLCJyZWYiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEZSKHRoaXMuX2ZpcmVzdG9yZSx0aGlzLl9kZWxlZ2F0ZS5yZWYpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlUC5wcm90b3R5cGUsImlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlkfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlUC5wcm90b3R5cGUsIm1ldGFkYXRhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLm1ldGFkYXRhfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlUC5wcm90b3R5cGUsImV4aXN0cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5leGlzdHMoKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlUC5wcm90b3R5cGUuZGF0YT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuZGF0YSh0KX0sZVAucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5nZXQodCxlKX0sZVAucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIERrKHRoaXMuX2RlbGVnYXRlLHQuX2RlbGVnYXRlKX0sZVApLEhSPShYaSh0UCxLUj1XUiksdFAucHJvdG90eXBlLmRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmRhdGEodCl9LHRQKSxHUj0oWlIucHJvdG90eXBlLndoZXJlPWZ1bmN0aW9uKHQsZSxuKXt0cnl7cmV0dXJuIG5ldyBaUih0aGlzLmZpcmVzdG9yZSxMayh0aGlzLl9kZWxlZ2F0ZSwocj1uLGk9ZSxvPUlrKCJ3aGVyZSIsdCksbmV3IFZrKG8saSxyKSkpKX1jYXRjaCh0KXt0aHJvdyBqUih0LC8ob3JkZXJCeXx3aGVyZSlcKFwpLywiUXVlcnkuJDEoKSIpfXZhciByLGksb30sWlIucHJvdG90eXBlLm9yZGVyQnk9ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIG5ldyBaUih0aGlzLmZpcmVzdG9yZSxMayh0aGlzLl9kZWxlZ2F0ZSwobj12b2lkIDA9PT1lPyJhc2MiOmUscj1Jaygib3JkZXJCeSIsdCksbmV3IEJrKHIsbikpKSl9Y2F0Y2godCl7dGhyb3cgalIodCwvKG9yZGVyQnl8d2hlcmUpXChcKS8sIlF1ZXJ5LiQxKCkiKX12YXIgbixyfSxaUi5wcm90b3R5cGUubGltaXQ9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuZXcgWlIodGhpcy5maXJlc3RvcmUsTGsodGhpcy5fZGVsZWdhdGUsKFhOKCJsaW1pdCIsZT10KSxuZXcgS2soImxpbWl0IixlLCJGIikpKSl9Y2F0Y2godCl7dGhyb3cgalIodCwibGltaXQoKSIsIlF1ZXJ5LmxpbWl0KCkiKX12YXIgZX0sWlIucHJvdG90eXBlLmxpbWl0VG9MYXN0PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLExrKHRoaXMuX2RlbGVnYXRlLChYTigibGltaXRUb0xhc3QiLGU9dCksbmV3IEtrKCJsaW1pdFRvTGFzdCIsZSwiTCIpKSkpfWNhdGNoKHQpe3Rocm93IGpSKHQsImxpbWl0VG9MYXN0KCkiLCJRdWVyeS5saW1pdFRvTGFzdCgpIil9dmFyIGV9LFpSLnByb3RvdHlwZS5zdGFydEF0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3RyeXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLExrKHRoaXMuX2RlbGVnYXRlLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgV2soInN0YXJ0QXQiLHQsITApfS5hcHBseSh2b2lkIDAsdCkpKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJzdGFydEF0KCkiLCJRdWVyeS5zdGFydEF0KCkiKX19LFpSLnByb3RvdHlwZS5zdGFydEFmdGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3RyeXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLExrKHRoaXMuX2RlbGVnYXRlLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgV2soInN0YXJ0QWZ0ZXIiLHQsITEpfS5hcHBseSh2b2lkIDAsdCkpKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJzdGFydEFmdGVyKCkiLCJRdWVyeS5zdGFydEFmdGVyKCkiKX19LFpSLnByb3RvdHlwZS5lbmRCZWZvcmU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dHJ5e3JldHVybiBuZXcgWlIodGhpcy5maXJlc3RvcmUsTGsodGhpcy5fZGVsZWdhdGUsZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIG5ldyBIaygiZW5kQmVmb3JlIix0LCEwKX0uYXBwbHkodm9pZCAwLHQpKSl9Y2F0Y2godCl7dGhyb3cgalIodCwiZW5kQmVmb3JlKCkiLCJRdWVyeS5lbmRCZWZvcmUoKSIpfX0sWlIucHJvdG90eXBlLmVuZEF0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3RyeXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLExrKHRoaXMuX2RlbGVnYXRlLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3JldHVybiBuZXcgSGsoImVuZEF0Iix0LCExKX0uYXBwbHkodm9pZCAwLHQpKSl9Y2F0Y2godCl7dGhyb3cgalIodCwiZW5kQXQoKSIsIlF1ZXJ5LmVuZEF0KCkiKX19LFpSLnByb3RvdHlwZS5pc0VxdWFsPWZ1bmN0aW9uKHQpe3JldHVybiBsQSh0aGlzLl9kZWxlZ2F0ZSx0Ll9kZWxlZ2F0ZSl9LFpSLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4oImNhY2hlIj09PShudWxsPT10P3ZvaWQgMDp0LnNvdXJjZSk/ZnVuY3Rpb24oZSl7ZT1ZTihlLGVBKTt2YXIgbj1ZTihlLmZpcmVzdG9yZSx5QSksdD13QShuKSxyPW5ldyBoUihuKTtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgdD10aGlzLGk9bmV3IGFJO3JldHVybiBuLmFzeW5jUXVldWUuZW5xdWV1ZUFuZEZvcmdldChmdW5jdGlvbigpe3JldHVybiAkaSh0LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZ1bmN0aW9uKGksbyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHQudHJ5cy5wdXNoKFswLDIsLDNdKSxbNCx2RShpLG8sITApXTtjYXNlIDE6cmV0dXJuIHI9dC5zZW50KCksZT1uZXcgU0MobyxyLkJuKSxuPWUuX28oci5kb2N1bWVudHMpLG49ZS5hcHBseUNoYW5nZXMobiwhMSkscy5yZXNvbHZlKG4uc25hcHNob3QpLFszLDNdO2Nhc2UgMjpyZXR1cm4gbj10LnNlbnQoKSxyPW5DKG4sIkZhaWxlZCB0byBleGVjdXRlIHF1ZXJ5ICciK28rIiBhZ2FpbnN0IGNhY2hlIikscy5yZWplY3QociksWzMsM107Y2FzZSAzOnJldHVyblsyXX19KX0pfSxbNCxFTihuKV07Y2FzZSAxOnJldHVyblsyLGUuYXBwbHkodm9pZCAwLFt0LnNlbnQoKSxyLGldKV19fSl9KX0pLGkucHJvbWlzZX0odCxlLl9xdWVyeSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEFrKG4scixlLHQpfSl9OiJzZXJ2ZXIiPT09KG51bGw9PXQ/dm9pZCAwOnQuc291cmNlKT9mdW5jdGlvbihlKXtlPVlOKGUsZUEpO3ZhciBuPVlOKGUuZmlyZXN0b3JlLHlBKSx0PXdBKG4pLHI9bmV3IGhSKG4pO3JldHVybiBrTih0LGUuX3F1ZXJ5LHtzb3VyY2U6InNlcnZlciJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgQWsobixyLGUsdCl9KX06ZnVuY3Rpb24oZSl7ZT1ZTihlLGVBKTt2YXIgbj1ZTihlLmZpcmVzdG9yZSx5QSksdD13QShuKSxyPW5ldyBoUihuKTtyZXR1cm4geGsoZS5fcXVlcnkpLGtOKHQsZS5fcXVlcnkpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBBayhuLHIsZSx0KX0pfSkodGhpcy5fZGVsZWdhdGUpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBRUihlLmZpcmVzdG9yZSxuZXcgQWsoZS5maXJlc3RvcmUuX2RlbGVnYXRlLGUuX3VzZXJEYXRhV3JpdGVyLGUuX2RlbGVnYXRlLHQuX3NuYXBzaG90KSl9KX0sWlIucHJvdG90eXBlLm9uU25hcHNob3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcyx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3ZhciByPXFSKHQpLGk9VlIodCxmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFFSKGUuZmlyZXN0b3JlLG5ldyBBayhlLmZpcmVzdG9yZS5fZGVsZWdhdGUsZS5fdXNlckRhdGFXcml0ZXIsZS5fZGVsZWdhdGUsdC5fc25hcHNob3QpKX0pO3JldHVybiBwUih0aGlzLl9kZWxlZ2F0ZSxyLGkpfSxaUi5wcm90b3R5cGUud2l0aENvbnZlcnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFpSKHRoaXMuZmlyZXN0b3JlLHQ/dGhpcy5fZGVsZWdhdGUud2l0aENvbnZlcnRlcihEUi5aYyh0aGlzLmZpcmVzdG9yZSx0KSk6dGhpcy5fZGVsZWdhdGUud2l0aENvbnZlcnRlcihudWxsKSl9LFpSKSx6Uj0oT2JqZWN0LmRlZmluZVByb3BlcnR5KCRSLnByb3RvdHlwZSwidHlwZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS50eXBlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgkUi5wcm90b3R5cGUsImRvYyIse2dldDpmdW5jdGlvbigpe3JldHVybiBuZXcgSFIodGhpcy5fZmlyZXN0b3JlLHRoaXMuX2RlbGVnYXRlLmRvYyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KCRSLnByb3RvdHlwZSwib2xkSW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUub2xkSW5kZXh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KCRSLnByb3RvdHlwZSwibmV3SW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUubmV3SW5kZXh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksJFIpLFFSPShPYmplY3QuZGVmaW5lUHJvcGVydHkoSlIucHJvdG90eXBlLCJxdWVyeSIse2dldDpmdW5jdGlvbigpe3JldHVybiBuZXcgR1IodGhpcy5fZmlyZXN0b3JlLHRoaXMuX2RlbGVnYXRlLnF1ZXJ5KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSlIucHJvdG90eXBlLCJtZXRhZGF0YSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5tZXRhZGF0YX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSlIucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLnNpemV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEpSLnByb3RvdHlwZSwiZW1wdHkiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuZW1wdHl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEpSLnByb3RvdHlwZSwiZG9jcyIse2dldDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmRvY3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSFIoZS5fZmlyZXN0b3JlLHQpfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksSlIucHJvdG90eXBlLmRvY0NoYW5nZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fZGVsZWdhdGUuZG9jQ2hhbmdlcyh0KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB6UihlLl9maXJlc3RvcmUsdCl9KX0sSlIucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3RoaXMuX2RlbGVnYXRlLmZvckVhY2goZnVuY3Rpb24odCl7ZS5jYWxsKG4sbmV3IEhSKHIuX2ZpcmVzdG9yZSx0KSl9KX0sSlIucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIERrKHRoaXMuX2RlbGVnYXRlLHQuX2RlbGVnYXRlKX0sSlIpLFlSPShYaShYUixCUj1HUiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFhSLnByb3RvdHlwZSwiaWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuaWR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFhSLnByb3RvdHlwZSwicGF0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5wYXRofSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYUi5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RlbGVnYXRlLnBhcmVudDtyZXR1cm4gdD9uZXcgRlIodGhpcy5maXJlc3RvcmUsdCk6bnVsbH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxYUi5wcm90b3R5cGUuZG9jPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gbmV3IEZSKHRoaXMuZmlyZXN0b3JlLHZvaWQgMD09PXQ/Y0EodGhpcy5fZGVsZWdhdGUpOmNBKHRoaXMuX2RlbGVnYXRlLHQpKX1jYXRjaCh0KXt0aHJvdyBqUih0LCJkb2MoKSIsIkNvbGxlY3Rpb25SZWZlcmVuY2UuZG9jKCkiKX19LFhSLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGk9dGhpcztyZXR1cm4gZT10aGlzLl9kZWxlZ2F0ZSxuPXQsdD1ZTihlLmZpcmVzdG9yZSx5QSkscj1jQShlKSxuPW5SKGUuX2NvbnZlcnRlcixuKSxkUih0LFtCQShWQShlLmZpcmVzdG9yZSksImFkZERvYyIsci5fa2V5LG4sbnVsbCE9PWUuX2NvbnZlcnRlcix7fSkudG9NdXRhdGlvbihyLl9rZXksY3cuZXhpc3RzKCExKSldKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRlIoaS5maXJlc3RvcmUsdCl9KX0sWFIucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIGhBKHRoaXMuX2RlbGVnYXRlLHQuX2RlbGVnYXRlKX0sWFIucHJvdG90eXBlLndpdGhDb252ZXJ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBYUih0aGlzLmZpcmVzdG9yZSx0P3RoaXMuX2RlbGVnYXRlLndpdGhDb252ZXJ0ZXIoRFIuWmModGhpcy5maXJlc3RvcmUsdCkpOnRoaXMuX2RlbGVnYXRlLndpdGhDb252ZXJ0ZXIobnVsbCkpfSxYUik7ZnVuY3Rpb24gWFIodCxlKXt2YXIgbj10aGlzO3JldHVybihuPUJSLmNhbGwodGhpcyx0LGUpfHx0aGlzKS5maXJlc3RvcmU9dCxuLl9kZWxlZ2F0ZT1lLG59ZnVuY3Rpb24gSlIodCxlKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl9kZWxlZ2F0ZT1lfWZ1bmN0aW9uICRSKHQsZSl7dGhpcy5fZmlyZXN0b3JlPXQsdGhpcy5fZGVsZWdhdGU9ZX1mdW5jdGlvbiBaUih0LGUpe3RoaXMuZmlyZXN0b3JlPXQsdGhpcy5fZGVsZWdhdGU9ZSx0aGlzLl91c2VyRGF0YVdyaXRlcj1uZXcgQ1IodCl9ZnVuY3Rpb24gdFAoKXtyZXR1cm4gbnVsbCE9PUtSJiZLUi5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9ZnVuY3Rpb24gZVAodCxlKXt0aGlzLl9maXJlc3RvcmU9dCx0aGlzLl9kZWxlZ2F0ZT1lfWZ1bmN0aW9uIG5QKHQpe3JldHVybiBZTih0LHRBKX1pUC5kb2N1bWVudElkPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpUChjbS5rZXlGaWVsZCgpLmNhbm9uaWNhbFN0cmluZygpKX0saVAucHJvdG90eXBlLmlzRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9Wm8odCkpaW5zdGFuY2VvZiBFQSYmdGhpcy5fZGVsZWdhdGUuX2ludGVybmFsUGF0aC5pc0VxdWFsKHQuX2ludGVybmFsUGF0aCl9LEdhPWlQLHJQLnNlcnZlclRpbWVzdGFtcD1mdW5jdGlvbigpe3ZhciB0PW5ldyBKQSgic2VydmVyVGltZXN0YW1wIik7cmV0dXJuIHQuX21ldGhvZE5hbWU9IkZpZWxkVmFsdWUuc2VydmVyVGltZXN0YW1wIixuZXcgclAodCl9LHJQLmRlbGV0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBXQSgiZGVsZXRlRmllbGQiKTtyZXR1cm4gdC5fbWV0aG9kTmFtZT0iRmllbGRWYWx1ZS5kZWxldGUiLG5ldyByUCh0KX0sclAuYXJyYXlVbmlvbj1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gbmV3ICRBKCJhcnJheVVuaW9uIix0KX0uYXBwbHkodm9pZCAwLHQpO3JldHVybiBuLl9tZXRob2ROYW1lPSJGaWVsZFZhbHVlLmFycmF5VW5pb24iLG5ldyByUChuKX0sclAuYXJyYXlSZW1vdmU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIG5ldyBaQSgiYXJyYXlSZW1vdmUiLHQpfS5hcHBseSh2b2lkIDAsdCk7cmV0dXJuIG4uX21ldGhvZE5hbWU9IkZpZWxkVmFsdWUuYXJyYXlSZW1vdmUiLG5ldyByUChuKX0sclAuaW5jcmVtZW50PWZ1bmN0aW9uKHQpe3Q9bmV3IHRrKCJpbmNyZW1lbnQiLHQpO3JldHVybiB0Ll9tZXRob2ROYW1lPSJGaWVsZFZhbHVlLmluY3JlbWVudCIsbmV3IHJQKHQpfSxyUC5wcm90b3R5cGUuaXNFcXVhbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuaXNFcXVhbCh0Ll9kZWxlZ2F0ZSl9LFNuPXJQO2Z1bmN0aW9uIHJQKHQpe3RoaXMuX2RlbGVnYXRlPXR9ZnVuY3Rpb24gaVAoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fZGVsZWdhdGU9bmV3KEVBLmJpbmQuYXBwbHkoRUEsbm8oW3ZvaWQgMF0sdCkpKX1mdW5jdGlvbiBvUCh0KXtyZXR1cm4gZT10aGlzLl9kZWxlZ2F0ZSxzPXQsbj13QShlPVlOKGUseUEpKSx0PW5ldyBnQSxmdW5jdGlvbihuLHQscil7dmFyIGUsaT10aGlzLG89KGU9cyx0PWJTKHQpLGU9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIHVOKHQsdm9pZCAwKTtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIHVOKG5ldyBVaW50OEFycmF5KHQpLHZvaWQgMCk7aWYodCBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKXJldHVybiB0LmdldFJlYWRlcigpO3Rocm93IG5ldyBFcnJvcigiU291cmNlIG9mIGB0b0J5dGVTdHJlYW1SZWFkZXJgIGhhcyB0byBiZSBhIEFycmF5QnVmZmVyIG9yIFJlYWRhYmxlU3RyZWFtIil9KCJzdHJpbmciPT10eXBlb2YgZT8obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoZSk6ZSksbmV3IGhOKGUsdCkpO24uYXN5bmNRdWV1ZS5lbnF1ZXVlQW5kRm9yZ2V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKGksdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9SkMsWzQsQ04obildO2Nhc2UgMTpyZXR1cm4gZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLG8scl0pLFsyXX19KX0pfSl9KG4sZS5fZGF0YWJhc2VJZCx0KSx0O3ZhciBlLHMsbn1mdW5jdGlvbiBzUCh0KXt2YXIgZT10aGlzLG49dGhpcy5fZGVsZWdhdGUsdD10O3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciB0PXRoaXM7cmV0dXJuIG4uYXN5bmNRdWV1ZS5lbnF1ZXVlKGZ1bmN0aW9uKCl7cmV0dXJuICRpKHQsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10O3JldHVybiBuLnBlcnNpc3RlbmNlLnJ1blRyYW5zYWN0aW9uKCJHZXQgbmFtZWQgcXVlcnkiLCJyZWFkb25seSIsZnVuY3Rpb24odCl7cmV0dXJuIG4uUWUuZ2V0TmFtZWRRdWVyeSh0LGUpfSl9LFs0LEVOKG4pXTtjYXNlIDE6cmV0dXJuWzIsZS5hcHBseSh2b2lkIDAsW3Quc2VudCgpLHJdKV19fSl9KX0pfSh3QShuPVlOKG4seUEpKSx0KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0P25ldyBlQShuLG51bGwsdC5xdWVyeSk6bnVsbH0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQ/bmV3IEdSKGUsdCk6bnVsbH0pfXZhciBhUCx1UCxjUD17RmlyZXN0b3JlOlNSLEdlb1BvaW50Ok5BLFRpbWVzdGFtcDokeSxCbG9iOlRSLFRyYW5zYWN0aW9uOlBSLFdyaXRlQmF0Y2g6T1IsRG9jdW1lbnRSZWZlcmVuY2U6RlIsRG9jdW1lbnRTbmFwc2hvdDpXUixRdWVyeTpHUixRdWVyeURvY3VtZW50U25hcHNob3Q6SFIsUXVlcnlTbmFwc2hvdDpRUixDb2xsZWN0aW9uUmVmZXJlbmNlOllSLEZpZWxkUGF0aDpHYSxGaWVsZFZhbHVlOlNuLHNldExvZ0xldmVsOmZ1bmN0aW9uKHQpe1V5LnNldExvZ0xldmVsKHQpfSxDQUNIRV9TSVpFX1VOTElNSVRFRDotMX07KGFQPVhsKS5JTlRFUk5BTC5yZWdpc3RlckNvbXBvbmVudChuZXcgdHMoImZpcmVzdG9yZSIsZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCk7cmV0dXJuIGU9ZSx0PXQuZ2V0UHJvdmlkZXIoImF1dGgtaW50ZXJuYWwiKSxuZXcgU1IoZSxuZXcgeUEoZSx0KSxuZXcgRVIpfSwiUFVCTElDIikuc2V0U2VydmljZVByb3BzKE9iamVjdC5hc3NpZ24oe30sY1ApKSksYVAucmVnaXN0ZXJWZXJzaW9uKCJAZmlyZWJhc2UvZmlyZXN0b3JlIiwiMi4yLjIiKSwodVA9U1IpLnByb3RvdHlwZS5sb2FkQnVuZGxlPW9QLHVQLnByb3RvdHlwZS5uYW1lZFF1ZXJ5PXNQO3ZhciBoUCxsUD17T0s6Im9rIixDQU5DRUxMRUQ6ImNhbmNlbGxlZCIsVU5LTk9XTjoidW5rbm93biIsSU5WQUxJRF9BUkdVTUVOVDoiaW52YWxpZC1hcmd1bWVudCIsREVBRExJTkVfRVhDRUVERUQ6ImRlYWRsaW5lLWV4Y2VlZGVkIixOT1RfRk9VTkQ6Im5vdC1mb3VuZCIsQUxSRUFEWV9FWElTVFM6ImFscmVhZHktZXhpc3RzIixQRVJNSVNTSU9OX0RFTklFRDoicGVybWlzc2lvbi1kZW5pZWQiLFVOQVVUSEVOVElDQVRFRDoidW5hdXRoZW50aWNhdGVkIixSRVNPVVJDRV9FWEhBVVNURUQ6InJlc291cmNlLWV4aGF1c3RlZCIsRkFJTEVEX1BSRUNPTkRJVElPTjoiZmFpbGVkLXByZWNvbmRpdGlvbiIsQUJPUlRFRDoiYWJvcnRlZCIsT1VUX09GX1JBTkdFOiJvdXQtb2YtcmFuZ2UiLFVOSU1QTEVNRU5URUQ6InVuaW1wbGVtZW50ZWQiLElOVEVSTkFMOiJpbnRlcm5hbCIsVU5BVkFJTEFCTEU6InVuYXZhaWxhYmxlIixEQVRBX0xPU1M6ImRhdGEtbG9zcyJ9LGZQPShYaShwUCxoUD1FcnJvcikscFApO2Z1bmN0aW9uIHBQKHQsZSxuKXtlPWhQLmNhbGwodGhpcyxlKXx8dGhpcztyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGUscFAucHJvdG90eXBlKSxlLmNvZGU9dCxlLmRldGFpbHM9bixlfWZ1bmN0aW9uIGRQKHQsZSxuKXt2YXIgcj1mdW5jdGlvbih0KXtpZigyMDA8PXQmJnQ8MzAwKXJldHVybiJvayI7c3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4iaW50ZXJuYWwiO2Nhc2UgNDAwOnJldHVybiJpbnZhbGlkLWFyZ3VtZW50IjtjYXNlIDQwMTpyZXR1cm4idW5hdXRoZW50aWNhdGVkIjtjYXNlIDQwMzpyZXR1cm4icGVybWlzc2lvbi1kZW5pZWQiO2Nhc2UgNDA0OnJldHVybiJub3QtZm91bmQiO2Nhc2UgNDA5OnJldHVybiJhYm9ydGVkIjtjYXNlIDQyOTpyZXR1cm4icmVzb3VyY2UtZXhoYXVzdGVkIjtjYXNlIDQ5OTpyZXR1cm4iY2FuY2VsbGVkIjtjYXNlIDUwMDpyZXR1cm4iaW50ZXJuYWwiO2Nhc2UgNTAxOnJldHVybiJ1bmltcGxlbWVudGVkIjtjYXNlIDUwMzpyZXR1cm4idW5hdmFpbGFibGUiO2Nhc2UgNTA0OnJldHVybiJkZWFkbGluZS1leGNlZWRlZCJ9cmV0dXJuInVua25vd24ifSh0KSxpPXIsbz12b2lkIDA7dHJ5e3ZhciBzPWUmJmUuZXJyb3I7aWYocyl7dmFyIGE9cy5zdGF0dXM7aWYoInN0cmluZyI9PXR5cGVvZiBhKXtpZighbFBbYV0pcmV0dXJuIG5ldyBmUCgiaW50ZXJuYWwiLCJpbnRlcm5hbCIpO3I9bFBbYV0saT1hfWE9cy5tZXNzYWdlOyJzdHJpbmciPT10eXBlb2YgYSYmKGk9YSksdm9pZCAwIT09KG89cy5kZXRhaWxzKSYmKG89bi5kZWNvZGUobykpfX1jYXRjaCh0KXt9cmV0dXJuIm9rIj09PXI/bnVsbDpuZXcgZlAocixpLG8pfXZhciB2UD0oZ1AucHJvdG90eXBlLmdldEF1dGhUb2tlbj1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOmlmKCF0aGlzLmF1dGgpcmV0dXJuWzIsdm9pZCAwXTt0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB0LnRyeXMucHVzaChbMSwzLCw0XSksWzQsdGhpcy5hdXRoLmdldFRva2VuKCldO2Nhc2UgMjpyZXR1cm4oZT10LnNlbnQoKSk/WzIsZS5hY2Nlc3NUb2tlbl06WzIsdm9pZCAwXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFsyLHZvaWQgMF07Y2FzZSA0OnJldHVyblsyXX19KX0pfSxnUC5wcm90b3R5cGUuZ2V0SW5zdGFuY2VJZFRva2VuPWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe2lmKCEodGhpcy5tZXNzYWdpbmcmJiJOb3RpZmljYXRpb24iaW4gc2VsZiYmImdyYW50ZWQiPT09Tm90aWZpY2F0aW9uLnBlcm1pc3Npb24pKXJldHVyblsyLHZvaWQgMF07dHJ5e3JldHVyblsyLHRoaXMubWVzc2FnaW5nLmdldFRva2VuKCldfWNhdGNoKHQpe3JldHVyblsyLHZvaWQgMF19cmV0dXJuWzJdfSl9KX0sZ1AucHJvdG90eXBlLmdldENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZ2V0QXV0aFRva2VuKCldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxbNCx0aGlzLmdldEluc3RhbmNlSWRUb2tlbigpXTtjYXNlIDI6cmV0dXJuIG49dC5zZW50KCksWzIse2F1dGhUb2tlbjplLGluc3RhbmNlSWRUb2tlbjpufV19fSl9KX0sZ1ApO2Z1bmN0aW9uIGdQKHQsZSl7dmFyIG49dGhpczt0aGlzLmF1dGg9bnVsbCx0aGlzLm1lc3NhZ2luZz1udWxsLHRoaXMuYXV0aD10LmdldEltbWVkaWF0ZSh7b3B0aW9uYWw6ITB9KSx0aGlzLm1lc3NhZ2luZz1lLmdldEltbWVkaWF0ZSh7b3B0aW9uYWw6ITB9KSx0aGlzLmF1dGh8fHQuZ2V0KCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5hdXRoPXR9LGZ1bmN0aW9uKCl7fSksdGhpcy5tZXNzYWdpbmd8fGUuZ2V0KCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbi5tZXNzYWdpbmc9dH0sZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiB5UCh0LGUpe3ZhciBuLHI9e307Zm9yKG4gaW4gdCl0Lmhhc093blByb3BlcnR5KG4pJiYocltuXT1lKHRbbl0pKTtyZXR1cm4gcn12YXIgbVA9KGJQLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihudWxsPT10KXJldHVybiBudWxsO2lmKCJudW1iZXIiPT10eXBlb2YodD10IGluc3RhbmNlb2YgTnVtYmVyP3QudmFsdWVPZigpOnQpJiZpc0Zpbml0ZSh0KSlyZXR1cm4gdDtpZighMD09PXR8fCExPT09dClyZXR1cm4gdDtpZigiW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSlyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS5lbmNvZGUodCl9KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0KXJldHVybiB5UCh0LGZ1bmN0aW9uKHQpe3JldHVybiBlLmVuY29kZSh0KX0pO3Rocm93IG5ldyBFcnJvcigiRGF0YSBjYW5ub3QgYmUgZW5jb2RlZCBpbiBKU09OOiAiK3QpfSxiUC5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYobnVsbD09dClyZXR1cm4gdDtpZih0WyJAdHlwZSJdKXN3aXRjaCh0WyJAdHlwZSJdKXtjYXNlInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWUiOmNhc2UidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUiOnZhciBuPU51bWJlcih0LnZhbHVlKTtpZihpc05hTihuKSl0aHJvdyBuZXcgRXJyb3IoIkRhdGEgY2Fubm90IGJlIGRlY29kZWQgZnJvbSBKU09OOiAiK3QpO3JldHVybiBuO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJEYXRhIGNhbm5vdCBiZSBkZWNvZGVkIGZyb20gSlNPTjogIit0KX1yZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS5kZWNvZGUodCl9KToiZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0P3lQKHQsZnVuY3Rpb24odCl7cmV0dXJuIGUuZGVjb2RlKHQpfSk6dH0sYlApO2Z1bmN0aW9uIGJQKCl7fXZhciB3UD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KF9QLnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwX30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxfUC5wcm90b3R5cGUuX3VybD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmFwcF8ub3B0aW9ucy5wcm9qZWN0SWQ7cmV0dXJuIG51bGw9PT10aGlzLmVtdWxhdG9yT3JpZ2luP251bGwhPT10aGlzLmN1c3RvbURvbWFpbj90aGlzLmN1c3RvbURvbWFpbisiLyIrdDoiaHR0cHM6Ly8iK3RoaXMucmVnaW9uKyItIitlKyIuY2xvdWRmdW5jdGlvbnMubmV0LyIrdDp0aGlzLmVtdWxhdG9yT3JpZ2luKyIvIitlKyIvIit0aGlzLnJlZ2lvbisiLyIrdH0sX1AucHJvdG90eXBlLnVzZUVtdWxhdG9yPWZ1bmN0aW9uKHQsZSl7dGhpcy5lbXVsYXRvck9yaWdpbj0iaHR0cDovLyIrdCsiOiIrZX0sX1AucHJvdG90eXBlLnVzZUZ1bmN0aW9uc0VtdWxhdG9yPWZ1bmN0aW9uKHQpe3RoaXMuZW11bGF0b3JPcmlnaW49dH0sX1AucHJvdG90eXBlLmh0dHBzQ2FsbGFibGU9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5jYWxsKGUsdCxufHx7fSl9fSxfUC5wcm90b3R5cGUucG9zdEpTT049ZnVuY3Rpb24ocixpLG8pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6b1siQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2pzb24iLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx0aGlzLmZldGNoSW1wbChyLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoaSksaGVhZGVyczpvfSldO2Nhc2UgMjpyZXR1cm4gZT10LnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFsyLHtzdGF0dXM6MCxqc29uOm51bGx9XTtjYXNlIDQ6bj1udWxsLHQubGFiZWw9NTtjYXNlIDU6cmV0dXJuIHQudHJ5cy5wdXNoKFs1LDcsLDhdKSxbNCxlLmpzb24oKV07Y2FzZSA2OnJldHVybiBuPXQuc2VudCgpLFszLDhdO2Nhc2UgNzpyZXR1cm4gdC5zZW50KCksWzMsOF07Y2FzZSA4OnJldHVyblsyLHtzdGF0dXM6ZS5zdGF0dXMsanNvbjpufV19fSl9KX0sX1AucHJvdG90eXBlLmNhbGw9ZnVuY3Rpb24oYyxoLGwpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxvLHMsYSx1O3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGk9dGhpcy5fdXJsKGMpLGg9dGhpcy5zZXJpYWxpemVyLmVuY29kZShoKSxvPXtkYXRhOmh9LHM9e30sWzQsdGhpcy5jb250ZXh0UHJvdmlkZXIuZ2V0Q29udGV4dCgpXTtjYXNlIDE6cmV0dXJuKGE9dC5zZW50KCkpLmF1dGhUb2tlbiYmKHMuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIrYS5hdXRoVG9rZW4pLGEuaW5zdGFuY2VJZFRva2VuJiYoc1siRmlyZWJhc2UtSW5zdGFuY2UtSUQtVG9rZW4iXT1hLmluc3RhbmNlSWRUb2tlbiksdT1sLnRpbWVvdXR8fDdlNCxuPXUsZT1uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3I9c2V0VGltZW91dChmdW5jdGlvbigpe2UobmV3IGZQKCJkZWFkbGluZS1leGNlZWRlZCIsImRlYWRsaW5lLWV4Y2VlZGVkIikpfSxuKX0pLHU9KGE9e3RpbWVyOnIscHJvbWlzZTplfSkudGltZXIsYT1hLnByb21pc2UsWzQsUHJvbWlzZS5yYWNlKFtJUCh1LHRoaXMucG9zdEpTT04oaSxvLHMpKSxhLElQKHUsdGhpcy5jYW5jZWxBbGxSZXF1ZXN0cyldKV07Y2FzZSAyOmlmKCEoYT10LnNlbnQoKSkpdGhyb3cgbmV3IGZQKCJjYW5jZWxsZWQiLCJGaXJlYmFzZSBGdW5jdGlvbnMgaW5zdGFuY2Ugd2FzIGRlbGV0ZWQuIik7aWYodT1kUChhLnN0YXR1cyxhLmpzb24sdGhpcy5zZXJpYWxpemVyKSl0aHJvdyB1O2lmKCFhLmpzb24pdGhyb3cgbmV3IGZQKCJpbnRlcm5hbCIsIlJlc3BvbnNlIGlzIG5vdCB2YWxpZCBKU09OIG9iamVjdC4iKTtpZih2b2lkIDA9PT0odT12b2lkIDA9PT0odT1hLmpzb24uZGF0YSk/YS5qc29uLnJlc3VsdDp1KSl0aHJvdyBuZXcgZlAoImludGVybmFsIiwiUmVzcG9uc2UgaXMgbWlzc2luZyBkYXRhIGZpZWxkLiIpO3JldHVyblsyLHtkYXRhOnRoaXMuc2VyaWFsaXplci5kZWNvZGUodSl9XX12YXIgbixyLGV9KX0pfSxfUCk7ZnVuY3Rpb24gX1AodCxlLG4scixpKXt2YXIgbz10aGlzO3ZvaWQgMD09PXImJihyPSJ1cy1jZW50cmFsMSIpLHRoaXMuYXBwXz10LHRoaXMuZmV0Y2hJbXBsPWksdGhpcy5zZXJpYWxpemVyPW5ldyBtUCx0aGlzLmVtdWxhdG9yT3JpZ2luPW51bGwsdGhpcy5JTlRFUk5BTD17ZGVsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShvLmRlbGV0ZVNlcnZpY2UoKSl9fSx0aGlzLmNvbnRleHRQcm92aWRlcj1uZXcgdlAoZSxuKSx0aGlzLmNhbmNlbEFsbFJlcXVlc3RzPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe28uZGVsZXRlU2VydmljZT1mdW5jdGlvbigpe3JldHVybiB0KCl9fSk7dHJ5e3ZhciBzPW5ldyBVUkwocik7dGhpcy5jdXN0b21Eb21haW49cy5vcmlnaW4sdGhpcy5yZWdpb249InVzLWNlbnRyYWwxIn1jYXRjaCh0KXt0aGlzLmN1c3RvbURvbWFpbj1udWxsLHRoaXMucmVnaW9uPXJ9fWZ1bmN0aW9uIElQKG4scil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQscl07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLGNsZWFyVGltZW91dChuKSxbMixlXX19KX0pfXZhciBUUCxFUCxTUDtmdW5jdGlvbiBDUChuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3Qobi5yZXN1bHQpfSxuLm9uZXJyb3I9ZnVuY3Rpb24oKXtlKG4uZXJyb3IpfX0pfWZ1bmN0aW9uIE5QKG4scixpKXt2YXIgbyx0PW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7Q1Aobz1uW3JdLmFwcGx5KG4saSkpLnRoZW4odCxlKX0pO3JldHVybiB0LnJlcXVlc3Q9byx0fWZ1bmN0aW9uIEFQKHQsbixlKXtlLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLGUse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW25dW2VdfSxzZXQ6ZnVuY3Rpb24odCl7dGhpc1tuXVtlXT10fX0pfSl9ZnVuY3Rpb24ga1AoZSxuLHIsdCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QgaW4gci5wcm90b3R5cGUmJihlLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiBOUCh0aGlzW25dLHQsYXJndW1lbnRzKX0pfSl9ZnVuY3Rpb24gUlAoZSxuLHIsdCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QgaW4gci5wcm90b3R5cGUmJihlLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiB0aGlzW25dW3RdLmFwcGx5KHRoaXNbbl0sYXJndW1lbnRzKX0pfSl9ZnVuY3Rpb24gUFAodCxyLGUsbil7bi5mb3JFYWNoKGZ1bmN0aW9uKG4pe24gaW4gZS5wcm90b3R5cGUmJih0LnByb3RvdHlwZVtuXT1mdW5jdGlvbigpe3JldHVybiB0PXRoaXNbcl0sKGU9TlAodCxuLGFyZ3VtZW50cykpLnRoZW4oZnVuY3Rpb24odCl7aWYodClyZXR1cm4gbmV3IERQKHQsZS5yZXF1ZXN0KX0pO3ZhciB0LGV9KX0pfWZ1bmN0aW9uIE9QKHQpe3RoaXMuX2luZGV4PXR9ZnVuY3Rpb24gRFAodCxlKXt0aGlzLl9jdXJzb3I9dCx0aGlzLl9yZXF1ZXN0PWV9ZnVuY3Rpb24geFAodCl7dGhpcy5fc3RvcmU9dH1mdW5jdGlvbiBMUChuKXt0aGlzLl90eD1uLHRoaXMuY29tcGxldGU9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtuLm9uY29tcGxldGU9ZnVuY3Rpb24oKXt0KCl9LG4ub25lcnJvcj1mdW5jdGlvbigpe2Uobi5lcnJvcil9LG4ub25hYm9ydD1mdW5jdGlvbigpe2Uobi5lcnJvcil9fSl9ZnVuY3Rpb24gTVAodCxlLG4pe3RoaXMuX2RiPXQsdGhpcy5vbGRWZXJzaW9uPWUsdGhpcy50cmFuc2FjdGlvbj1uZXcgTFAobil9ZnVuY3Rpb24gRlAodCl7dGhpcy5fZGI9dH1mdW5jdGlvbiBVUCh0LGUsbil7dmFyIGU9TlAoaW5kZXhlZERCLCJvcGVuIixbdCxlXSkscj1lLnJlcXVlc3Q7cmV0dXJuIHImJihyLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbih0KXtuJiZuKG5ldyBNUChyLnJlc3VsdCx0Lm9sZFZlcnNpb24sci50cmFuc2FjdGlvbikpfSksZS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRlAodCl9KX1mdW5jdGlvbiBqUCh0KXtyZXR1cm4gTlAoaW5kZXhlZERCLCJkZWxldGVEYXRhYmFzZSIsW3RdKX1UUD1YbCxFUD1mZXRjaC5iaW5kKHNlbGYpLFNQPXtGdW5jdGlvbnM6d1B9LFRQLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygiZnVuY3Rpb25zIixmdW5jdGlvbih0LGUpe3ZhciBuPWUuaW5zdGFuY2VJZGVudGlmaWVyLHI9dC5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCksZT10LmdldFByb3ZpZGVyKCJhdXRoLWludGVybmFsIiksdD10LmdldFByb3ZpZGVyKCJtZXNzYWdpbmciKTtyZXR1cm4gbmV3IHdQKHIsZSx0LG4sRVApfSwiUFVCTElDIikuc2V0U2VydmljZVByb3BzKFNQKS5zZXRNdWx0aXBsZUluc3RhbmNlcyghMCkpLFhsLnJlZ2lzdGVyVmVyc2lvbigiQGZpcmViYXNlL2Z1bmN0aW9ucyIsIjAuNi41IiksQVAoT1AsIl9pbmRleCIsWyJuYW1lIiwia2V5UGF0aCIsIm11bHRpRW50cnkiLCJ1bmlxdWUiXSksa1AoT1AsIl9pbmRleCIsSURCSW5kZXgsWyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSksUFAoT1AsIl9pbmRleCIsSURCSW5kZXgsWyJvcGVuQ3Vyc29yIiwib3BlbktleUN1cnNvciJdKSxBUChEUCwiX2N1cnNvciIsWyJkaXJlY3Rpb24iLCJrZXkiLCJwcmltYXJ5S2V5IiwidmFsdWUiXSksa1AoRFAsIl9jdXJzb3IiLElEQkN1cnNvcixbInVwZGF0ZSIsImRlbGV0ZSJdKSxbImFkdmFuY2UiLCJjb250aW51ZSIsImNvbnRpbnVlUHJpbWFyeUtleSJdLmZvckVhY2goZnVuY3Rpb24obil7biBpbiBJREJDdXJzb3IucHJvdG90eXBlJiYoRFAucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLl9jdXJzb3Jbbl0uYXBwbHkoZS5fY3Vyc29yLHQpLENQKGUuX3JlcXVlc3QpLnRoZW4oZnVuY3Rpb24odCl7aWYodClyZXR1cm4gbmV3IERQKHQsZS5fcmVxdWVzdCl9KX0pfSl9KSx4UC5wcm90b3R5cGUuY3JlYXRlSW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE9QKHRoaXMuX3N0b3JlLmNyZWF0ZUluZGV4LmFwcGx5KHRoaXMuX3N0b3JlLGFyZ3VtZW50cykpfSx4UC5wcm90b3R5cGUuaW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE9QKHRoaXMuX3N0b3JlLmluZGV4LmFwcGx5KHRoaXMuX3N0b3JlLGFyZ3VtZW50cykpfSxBUCh4UCwiX3N0b3JlIixbIm5hbWUiLCJrZXlQYXRoIiwiaW5kZXhOYW1lcyIsImF1dG9JbmNyZW1lbnQiXSksa1AoeFAsIl9zdG9yZSIsSURCT2JqZWN0U3RvcmUsWyJwdXQiLCJhZGQiLCJkZWxldGUiLCJjbGVhciIsImdldCIsImdldEFsbCIsImdldEtleSIsImdldEFsbEtleXMiLCJjb3VudCJdKSxQUCh4UCwiX3N0b3JlIixJREJPYmplY3RTdG9yZSxbIm9wZW5DdXJzb3IiLCJvcGVuS2V5Q3Vyc29yIl0pLFJQKHhQLCJfc3RvcmUiLElEQk9iamVjdFN0b3JlLFsiZGVsZXRlSW5kZXgiXSksTFAucHJvdG90eXBlLm9iamVjdFN0b3JlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB4UCh0aGlzLl90eC5vYmplY3RTdG9yZS5hcHBseSh0aGlzLl90eCxhcmd1bWVudHMpKX0sQVAoTFAsIl90eCIsWyJvYmplY3RTdG9yZU5hbWVzIiwibW9kZSJdKSxSUChMUCwiX3R4IixJREJUcmFuc2FjdGlvbixbImFib3J0Il0pLE1QLnByb3RvdHlwZS5jcmVhdGVPYmplY3RTdG9yZT1mdW5jdGlvbigpe3JldHVybiBuZXcgeFAodGhpcy5fZGIuY3JlYXRlT2JqZWN0U3RvcmUuYXBwbHkodGhpcy5fZGIsYXJndW1lbnRzKSl9LEFQKE1QLCJfZGIiLFsibmFtZSIsInZlcnNpb24iLCJvYmplY3RTdG9yZU5hbWVzIl0pLFJQKE1QLCJfZGIiLElEQkRhdGFiYXNlLFsiZGVsZXRlT2JqZWN0U3RvcmUiLCJjbG9zZSJdKSxGUC5wcm90b3R5cGUudHJhbnNhY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IExQKHRoaXMuX2RiLnRyYW5zYWN0aW9uLmFwcGx5KHRoaXMuX2RiLGFyZ3VtZW50cykpfSxBUChGUCwiX2RiIixbIm5hbWUiLCJ2ZXJzaW9uIiwib2JqZWN0U3RvcmVOYW1lcyJdKSxSUChGUCwiX2RiIixJREJEYXRhYmFzZSxbImNsb3NlIl0pLFsib3BlbkN1cnNvciIsIm9wZW5LZXlDdXJzb3IiXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe1t4UCxPUF0uZm9yRWFjaChmdW5jdGlvbih0KXtpIGluIHQucHJvdG90eXBlJiYodC5wcm90b3R5cGVbaS5yZXBsYWNlKCJvcGVuIiwiaXRlcmF0ZSIpXT1mdW5jdGlvbigpe3ZhciB0PShuPWFyZ3VtZW50cyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuKSksZT10W3QubGVuZ3RoLTFdLG49dGhpcy5fc3RvcmV8fHRoaXMuX2luZGV4LHI9bltpXS5hcHBseShuLHQuc2xpY2UoMCwtMSkpO3Iub25zdWNjZXNzPWZ1bmN0aW9uKCl7ZShyLnJlc3VsdCl9fSl9KX0pLFtPUCx4UF0uZm9yRWFjaChmdW5jdGlvbih0KXt0LnByb3RvdHlwZS5nZXRBbGx8fCh0LnByb3RvdHlwZS5nZXRBbGw9ZnVuY3Rpb24odCxuKXt2YXIgcj10aGlzLGk9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3IuaXRlcmF0ZUN1cnNvcih0LGZ1bmN0aW9uKHQpe3Q/KGkucHVzaCh0LnZhbHVlKSx2b2lkIDA9PT1ufHxpLmxlbmd0aCE9bj90LmNvbnRpbnVlKCk6ZShpKSk6ZShpKX0pfSl9KX0pO3ZhciBxUD0xZTQsVlA9Inc6MC40LjIzIixCUD0iRklTX3YyIixLUD0iaHR0cHM6Ly9maXJlYmFzZWluc3RhbGxhdGlvbnMuZ29vZ2xlYXBpcy5jb20vdjEiLFdQPTM2ZTUsU249KChHYT17fSlbIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiXT0nTWlzc2luZyBBcHAgY29uZmlndXJhdGlvbiB2YWx1ZTogInskdmFsdWVOYW1lfSInLEdhWyJub3QtcmVnaXN0ZXJlZCJdPSJGaXJlYmFzZSBJbnN0YWxsYXRpb24gaXMgbm90IHJlZ2lzdGVyZWQuIixHYVsiaW5zdGFsbGF0aW9uLW5vdC1mb3VuZCJdPSJGaXJlYmFzZSBJbnN0YWxsYXRpb24gbm90IGZvdW5kLiIsR2FbInJlcXVlc3QtZmFpbGVkIl09J3skcmVxdWVzdE5hbWV9IHJlcXVlc3QgZmFpbGVkIHdpdGggZXJyb3IgInskc2VydmVyQ29kZX0geyRzZXJ2ZXJTdGF0dXN9OiB7JHNlcnZlck1lc3NhZ2V9IicsR2FbImFwcC1vZmZsaW5lIl09IkNvdWxkIG5vdCBwcm9jZXNzIHJlcXVlc3QuIEFwcGxpY2F0aW9uIG9mZmxpbmUuIixHYVsiZGVsZXRlLXBlbmRpbmctcmVnaXN0cmF0aW9uIl09IkNhbid0IGRlbGV0ZSBpbnN0YWxsYXRpb24gd2hpbGUgdGhlcmUgaXMgYSBwZW5kaW5nIHJlZ2lzdHJhdGlvbiByZXF1ZXN0LiIsR2EpLEhQPW5ldyBDbygiaW5zdGFsbGF0aW9ucyIsIkluc3RhbGxhdGlvbnMiLFNuKTtmdW5jdGlvbiBHUCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEVvJiZ0LmNvZGUuaW5jbHVkZXMoInJlcXVlc3QtZmFpbGVkIil9ZnVuY3Rpb24gelAodCl7dD10LnByb2plY3RJZDtyZXR1cm4gS1ArIi9wcm9qZWN0cy8iK3QrIi9pbnN0YWxsYXRpb25zIn1mdW5jdGlvbiBRUCh0KXtyZXR1cm57dG9rZW46dC50b2tlbixyZXF1ZXN0U3RhdHVzOjIsZXhwaXJlc0luOih0PXQuZXhwaXJlc0luLE51bWJlcih0LnJlcGxhY2UoInMiLCIwMDAiKSkpLGNyZWF0aW9uVGltZTpEYXRlLm5vdygpfX1mdW5jdGlvbiBZUChuLHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHIuanNvbigpXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksZT1lLmVycm9yLFsyLEhQLmNyZWF0ZSgicmVxdWVzdC1mYWlsZWQiLHtyZXF1ZXN0TmFtZTpuLHNlcnZlckNvZGU6ZS5jb2RlLHNlcnZlck1lc3NhZ2U6ZS5tZXNzYWdlLHNlcnZlclN0YXR1czplLnN0YXR1c30pXX19KX0pfWZ1bmN0aW9uIFhQKHQpe3Q9dC5hcGlLZXk7cmV0dXJuIG5ldyBIZWFkZXJzKHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwieC1nb29nLWFwaS1rZXkiOnR9KX1mdW5jdGlvbiBKUCh0LGUpe2U9ZS5yZWZyZXNoVG9rZW4sdD1YUCh0KTtyZXR1cm4gdC5hcHBlbmQoIkF1dGhvcml6YXRpb24iLEJQKyIgIitlKSx0fWZ1bmN0aW9uICRQKG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LG4oKV07Y2FzZSAxOnJldHVybiA1MDA8PShlPXQuc2VudCgpKS5zdGF0dXMmJmUuc3RhdHVzPDYwMD9bMixuKCldOlsyLGVdfX0pfSl9ZnVuY3Rpb24gWlAoZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCxlKX0pfXZhciB0Tz0vXltjZGVmXVtcdy1dezIxfSQvLGVPPSIiO2Z1bmN0aW9uIG5PKCl7dHJ5e3ZhciB0PW5ldyBVaW50OEFycmF5KDE3KTsoc2VsZi5jcnlwdG98fHNlbGYubXNDcnlwdG8pLmdldFJhbmRvbVZhbHVlcyh0KSx0WzBdPTExMit0WzBdJTE2O3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsbm8oW10sZW8odCkpKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKX0odCkuc3Vic3RyKDAsMjIpO3JldHVybiB0Ty50ZXN0KHQpP3Q6ZU99Y2F0Y2godCl7cmV0dXJuIGVPfX1mdW5jdGlvbiByTyh0KXtyZXR1cm4gdC5hcHBOYW1lKyIhIit0LmFwcElkfXZhciBpTz1uZXcgTWFwO2Z1bmN0aW9uIG9PKHQsZSl7dD1yTyh0KTtzTyh0LGUpLGZ1bmN0aW9uKHQsZSl7dmFyIG49dU8oKTtuJiZuLnBvc3RNZXNzYWdlKHtrZXk6dCxmaWQ6ZX0pO2NPKCl9KHQsZSl9ZnVuY3Rpb24gc08odCxlKXt2YXIgbixyLGk9aU8uZ2V0KHQpO2lmKGkpdHJ5e2Zvcih2YXIgbz10byhpKSxzPW8ubmV4dCgpOyFzLmRvbmU7cz1vLm5leHQoKSkoMCxzLnZhbHVlKShlKX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYocj1vLnJldHVybikmJnIuY2FsbChvKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fXZhciBhTz1udWxsO2Z1bmN0aW9uIHVPKCl7cmV0dXJuIWFPJiYiQnJvYWRjYXN0Q2hhbm5lbCJpbiBzZWxmJiYoKGFPPW5ldyBCcm9hZGNhc3RDaGFubmVsKCJbRmlyZWJhc2VdIEZJRCBDaGFuZ2UiKSkub25tZXNzYWdlPWZ1bmN0aW9uKHQpe3NPKHQuZGF0YS5rZXksdC5kYXRhLmZpZCl9KSxhT31mdW5jdGlvbiBjTygpezA9PT1pTy5zaXplJiZhTyYmKGFPLmNsb3NlKCksYU89bnVsbCl9dmFyIGhPLGxPPSJmaXJlYmFzZS1pbnN0YWxsYXRpb25zLWRhdGFiYXNlIixmTz0xLHBPPSJmaXJlYmFzZS1pbnN0YWxsYXRpb25zLXN0b3JlIixkTz1udWxsO2Z1bmN0aW9uIHZPKCl7cmV0dXJuIGRPPWRPfHxVUChsTyxmTyxmdW5jdGlvbih0KXswPT09dC5vbGRWZXJzaW9uJiZ0LmNyZWF0ZU9iamVjdFN0b3JlKHBPKX0pfWZ1bmN0aW9uIGdPKG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9ck8obyksWzQsdk8oKV07Y2FzZSAxOnJldHVybiByPXQuc2VudCgpLG49ci50cmFuc2FjdGlvbihwTywicmVhZHdyaXRlIiksWzQsKHI9bi5vYmplY3RTdG9yZShwTykpLmdldChlKV07Y2FzZSAyOnJldHVybiBpPXQuc2VudCgpLFs0LHIucHV0KHMsZSldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzQsbi5jb21wbGV0ZV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxpJiZpLmZpZD09PXMuZmlkfHxvTyhvLHMuZmlkKSxbMixzXX19KX0pfWZ1bmN0aW9uIHlPKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9ck8ociksWzQsdk8oKV07Y2FzZSAxOnJldHVybiBuPXQuc2VudCgpLFs0LChuPW4udHJhbnNhY3Rpb24ocE8sInJlYWR3cml0ZSIpKS5vYmplY3RTdG9yZShwTykuZGVsZXRlKGUpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFs0LG4uY29tcGxldGVdO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzJdfX0pfSl9ZnVuY3Rpb24gbU8ocyxhKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPXJPKHMpLFs0LHZPKCldO2Nhc2UgMTpyZXR1cm4gcj10LnNlbnQoKSxuPXIudHJhbnNhY3Rpb24ocE8sInJlYWR3cml0ZSIpLFs0LChyPW4ub2JqZWN0U3RvcmUocE8pKS5nZXQoZSldO2Nhc2UgMjpyZXR1cm4gaT10LnNlbnQoKSx2b2lkIDAhPT0obz1hKGkpKT9bMyw0XTpbNCxyLmRlbGV0ZShlKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbMyw2XTtjYXNlIDQ6cmV0dXJuWzQsci5wdXQobyxlKV07Y2FzZSA1OnQuc2VudCgpLHQubGFiZWw9NjtjYXNlIDY6cmV0dXJuWzQsbi5jb21wbGV0ZV07Y2FzZSA3OnJldHVybiB0LnNlbnQoKSwhb3x8aSYmaS5maWQ9PT1vLmZpZHx8b08ocyxvLmZpZCksWzIsb119fSl9KX1mdW5jdGlvbiBiTyhpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbU8oaSxmdW5jdGlvbih0KXt0PV9PKHR8fHtmaWQ6bk8oKSxyZWdpc3RyYXRpb25TdGF0dXM6MH0pLHQ9ZnVuY3Rpb24odCxlKXt7aWYoMCE9PWUucmVnaXN0cmF0aW9uU3RhdHVzKXJldHVybiAxPT09ZS5yZWdpc3RyYXRpb25TdGF0dXM/e2luc3RhbGxhdGlvbkVudHJ5OmUscmVnaXN0cmF0aW9uUHJvbWlzZTpmdW5jdGlvbihpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsd08oaSldO2Nhc2UgMTplPXQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuIDEhPT1lLnJlZ2lzdHJhdGlvblN0YXR1cz9bMyw1XTpbNCxaUCgxMDApXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFs0LHdPKGkpXTtjYXNlIDQ6cmV0dXJuIGU9dC5zZW50KCksWzMsMl07Y2FzZSA1OnJldHVybiAwIT09ZS5yZWdpc3RyYXRpb25TdGF0dXM/WzMsN106WzQsYk8oaSldO2Nhc2UgNjpyZXR1cm4gcj10LnNlbnQoKSxuPXIuaW5zdGFsbGF0aW9uRW50cnksKHI9ci5yZWdpc3RyYXRpb25Qcm9taXNlKT9bMixyXTpbMixuXTtjYXNlIDc6cmV0dXJuWzIsZV19fSl9KX0odCl9OntpbnN0YWxsYXRpb25FbnRyeTplfTtpZighbmF2aWdhdG9yLm9uTGluZSl7dmFyIG49UHJvbWlzZS5yZWplY3QoSFAuY3JlYXRlKCJhcHAtb2ZmbGluZSIpKTtyZXR1cm57aW5zdGFsbGF0aW9uRW50cnk6ZSxyZWdpc3RyYXRpb25Qcm9taXNlOm59fWU9e2ZpZDplLmZpZCxyZWdpc3RyYXRpb25TdGF0dXM6MSxyZWdpc3RyYXRpb25UaW1lOkRhdGUubm93KCl9LHQ9ZnVuY3Rpb24ocixpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwyLCw3XSksWzQsZnVuY3Rpb24ocyx0KXt2YXIgYT10LmZpZDtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPXpQKHMpLG49WFAocyksbz17ZmlkOmEsYXV0aFZlcnNpb246QlAsYXBwSWQ6cy5hcHBJZCxzZGtWZXJzaW9uOlZQfSxyPXttZXRob2Q6IlBPU1QiLGhlYWRlcnM6bixib2R5OkpTT04uc3RyaW5naWZ5KG8pfSxbNCwkUChmdW5jdGlvbigpe3JldHVybiBmZXRjaChlLHIpfSldO2Nhc2UgMTpyZXR1cm4oaT10LnNlbnQoKSkub2s/WzQsaS5qc29uKCldOlszLDNdO2Nhc2UgMjpyZXR1cm4gbz10LnNlbnQoKSxbMix7ZmlkOm8uZmlkfHxhLHJlZ2lzdHJhdGlvblN0YXR1czoyLHJlZnJlc2hUb2tlbjpvLnJlZnJlc2hUb2tlbixhdXRoVG9rZW46UVAoby5hdXRoVG9rZW4pfV07Y2FzZSAzOnJldHVybls0LFlQKCJDcmVhdGUgSW5zdGFsbGF0aW9uIixpKV07Y2FzZSA0OnRocm93IHQuc2VudCgpfX0pfSl9KHIsaSldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxbMixnTyhyLGUpXTtjYXNlIDI6cmV0dXJuIEdQKG49dC5zZW50KCkpJiY0MDk9PT1uLmN1c3RvbURhdGEuc2VydmVyQ29kZT9bNCx5TyhyKV06WzMsNF07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbMyw2XTtjYXNlIDQ6cmV0dXJuWzQsZ08ocix7ZmlkOmkuZmlkLHJlZ2lzdHJhdGlvblN0YXR1czowfSldO2Nhc2UgNTp0LnNlbnQoKSx0LmxhYmVsPTY7Y2FzZSA2OnRocm93IG47Y2FzZSA3OnJldHVyblsyXX19KX0pfSh0LGUpO3JldHVybntpbnN0YWxsYXRpb25FbnRyeTplLHJlZ2lzdHJhdGlvblByb21pc2U6dH19fShpLHQpO3JldHVybiBlPXQucmVnaXN0cmF0aW9uUHJvbWlzZSx0Lmluc3RhbGxhdGlvbkVudHJ5fSldO2Nhc2UgMTpyZXR1cm4obj10LnNlbnQoKSkuZmlkIT09ZU8/WzMsM106KHI9e30sWzQsZV0pO2Nhc2UgMjpyZXR1cm5bMiwoci5pbnN0YWxsYXRpb25FbnRyeT10LnNlbnQoKSxyKV07Y2FzZSAzOnJldHVyblsyLHtpbnN0YWxsYXRpb25FbnRyeTpuLHJlZ2lzdHJhdGlvblByb21pc2U6ZX1dfX0pfSl9ZnVuY3Rpb24gd08odCl7cmV0dXJuIG1PKHQsZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgSFAuY3JlYXRlKCJpbnN0YWxsYXRpb24tbm90LWZvdW5kIik7cmV0dXJuIF9PKHQpfSl9ZnVuY3Rpb24gX08odCl7cmV0dXJuIDE9PT0oZT10KS5yZWdpc3RyYXRpb25TdGF0dXMmJmUucmVnaXN0cmF0aW9uVGltZStxUDxEYXRlLm5vdygpP3tmaWQ6dC5maWQscmVnaXN0cmF0aW9uU3RhdHVzOjB9OnQ7dmFyIGV9ZnVuY3Rpb24gSU8odCxzKXt2YXIgYT10LmFwcENvbmZpZyx1PXQucGxhdGZvcm1Mb2dnZXJQcm92aWRlcjtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPWZ1bmN0aW9uKHQsZSl7ZT1lLmZpZDtyZXR1cm4gelAodCkrIi8iK2UrIi9hdXRoVG9rZW5zOmdlbmVyYXRlIn0oYSxzKSxuPUpQKGEscyksKG89dS5nZXRJbW1lZGlhdGUoe29wdGlvbmFsOiEwfSkpJiZuLmFwcGVuZCgieC1maXJlYmFzZS1jbGllbnQiLG8uZ2V0UGxhdGZvcm1JbmZvU3RyaW5nKCkpLG89e2luc3RhbGxhdGlvbjp7c2RrVmVyc2lvbjpWUH19LHI9e21ldGhvZDoiUE9TVCIsaGVhZGVyczpuLGJvZHk6SlNPTi5zdHJpbmdpZnkobyl9LFs0LCRQKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKGUscil9KV07Y2FzZSAxOnJldHVybihpPXQuc2VudCgpKS5vaz9bNCxpLmpzb24oKV06WzMsM107Y2FzZSAyOnJldHVybiBvPXQuc2VudCgpLFsyLFFQKG8pXTtjYXNlIDM6cmV0dXJuWzQsWVAoIkdlbmVyYXRlIEF1dGggVG9rZW4iLGkpXTtjYXNlIDQ6dGhyb3cgdC5zZW50KCl9fSl9KX1mdW5jdGlvbiBUTyhpLG8pe3JldHVybiB2b2lkIDA9PT1vJiYobz0hMSksJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHIsZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbU8oaS5hcHBDb25maWcsZnVuY3Rpb24odCl7aWYoIVNPKHQpKXRocm93IEhQLmNyZWF0ZSgibm90LXJlZ2lzdGVyZWQiKTt2YXIgZSxuPXQuYXV0aFRva2VuO2lmKG98fDIhPT0oZT1uKS5yZXF1ZXN0U3RhdHVzfHxmdW5jdGlvbih0KXt2YXIgZT1EYXRlLm5vdygpO3JldHVybiBlPHQuY3JlYXRpb25UaW1lfHx0LmNyZWF0aW9uVGltZSt0LmV4cGlyZXNJbjxlK1dQfShlKSl7aWYoMT09PW4ucmVxdWVzdFN0YXR1cylyZXR1cm4gcj1mdW5jdGlvbihuLHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LEVPKG4uYXBwQ29uZmlnKV07Y2FzZSAxOmU9dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gMSE9PWUuYXV0aFRva2VuLnJlcXVlc3RTdGF0dXM/WzMsNV06WzQsWlAoMTAwKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbNCxFTyhuLmFwcENvbmZpZyldO2Nhc2UgNDpyZXR1cm4gZT10LnNlbnQoKSxbMywyXTtjYXNlIDU6cmV0dXJuIDA9PT0oZT1lLmF1dGhUb2tlbikucmVxdWVzdFN0YXR1cz9bMixUTyhuLHIpXTpbMixlXX19KX0pfShpLG8pLHQ7aWYoIW5hdmlnYXRvci5vbkxpbmUpdGhyb3cgSFAuY3JlYXRlKCJhcHAtb2ZmbGluZSIpO249KGU9dCxuPXtyZXF1ZXN0U3RhdHVzOjEscmVxdWVzdFRpbWU6RGF0ZS5ub3coKX0sSmkoSmkoe30sZSkse2F1dGhUb2tlbjpufSkpO3JldHVybiByPWZ1bmN0aW9uKGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwzLCw4XSksWzQsSU8oaSxvKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLHI9SmkoSmkoe30sbykse2F1dGhUb2tlbjplfSksWzQsZ08oaS5hcHBDb25maWcscildO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzIsZV07Y2FzZSAzOnJldHVybiFHUChuPXQuc2VudCgpKXx8NDAxIT09bi5jdXN0b21EYXRhLnNlcnZlckNvZGUmJjQwNCE9PW4uY3VzdG9tRGF0YS5zZXJ2ZXJDb2RlP1szLDVdOls0LHlPKGkuYXBwQ29uZmlnKV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMyw3XTtjYXNlIDU6cmV0dXJuIHI9SmkoSmkoe30sbykse2F1dGhUb2tlbjp7cmVxdWVzdFN0YXR1czowfX0pLFs0LGdPKGkuYXBwQ29uZmlnLHIpXTtjYXNlIDY6dC5zZW50KCksdC5sYWJlbD03O2Nhc2UgNzp0aHJvdyBuO2Nhc2UgODpyZXR1cm5bMl19fSl9KX0oaSxuKSxufXJldHVybiB0fSldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKSxyP1s0LHJdOlszLDNdO2Nhc2UgMjpyZXR1cm4gbj10LnNlbnQoKSxbMyw0XTtjYXNlIDM6bj1lLmF1dGhUb2tlbix0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyLG5dfX0pfSl9ZnVuY3Rpb24gRU8odCl7cmV0dXJuIG1PKHQsZnVuY3Rpb24odCl7aWYoIVNPKHQpKXRocm93IEhQLmNyZWF0ZSgibm90LXJlZ2lzdGVyZWQiKTt2YXIgZT10LmF1dGhUb2tlbjtyZXR1cm4gMT09PShlPWUpLnJlcXVlc3RTdGF0dXMmJmUucmVxdWVzdFRpbWUrcVA8RGF0ZS5ub3coKT9KaShKaSh7fSx0KSx7YXV0aFRva2VuOntyZXF1ZXN0U3RhdHVzOjB9fSk6dH0pfWZ1bmN0aW9uIFNPKHQpe3JldHVybiB2b2lkIDAhPT10JiYyPT09dC5yZWdpc3RyYXRpb25TdGF0dXN9ZnVuY3Rpb24gQ08oZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITEpLCRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsZnVuY3Rpb24obil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsYk8obildO2Nhc2UgMTpyZXR1cm4oZT10LnNlbnQoKS5yZWdpc3RyYXRpb25Qcm9taXNlKT9bNCxlXTpbMywzXTtjYXNlIDI6dC5zZW50KCksdC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0oZS5hcHBDb25maWcpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFs0LFRPKGUsbildO2Nhc2UgMjpyZXR1cm5bMix0LnNlbnQoKS50b2tlbl19fSl9KX1mdW5jdGlvbiBOTyhpLG8pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHI7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1mdW5jdGlvbih0LGUpe2U9ZS5maWQ7cmV0dXJuIHpQKHQpKyIvIitlfShpLG8pLHI9SlAoaSxvKSxuPXttZXRob2Q6IkRFTEVURSIsaGVhZGVyczpyfSxbNCwkUChmdW5jdGlvbigpe3JldHVybiBmZXRjaChlLG4pfSldO2Nhc2UgMTpyZXR1cm4ocj10LnNlbnQoKSkub2s/WzMsM106WzQsWVAoIkRlbGV0ZSBJbnN0YWxsYXRpb24iLHIpXTtjYXNlIDI6dGhyb3cgdC5zZW50KCk7Y2FzZSAzOnJldHVyblsyXX19KX0pfWZ1bmN0aW9uIEFPKHQscil7dmFyIGk9dC5hcHBDb25maWc7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dU8oKTt2YXIgbj1yTyh0KTsodD1pTy5nZXQobikpfHwodD1uZXcgU2V0LGlPLnNldChuLHQpKSx0LmFkZChlKX0oaSxyKSxmdW5jdGlvbigpe3ZhciB0LGUsbjtlPXIsbj1yTyh0PWkpLCh0PWlPLmdldChuKSkmJih0LmRlbGV0ZShlKSwwPT09dC5zaXplJiZpTy5kZWxldGUobiksY08oKSl9fWZ1bmN0aW9uIGtPKHQpe3JldHVybiBIUC5jcmVhdGUoIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiLHt2YWx1ZU5hbWU6dH0pfShoTz1YbCkuSU5URVJOQUwucmVnaXN0ZXJDb21wb25lbnQobmV3IHRzKCJpbnN0YWxsYXRpb25zIixmdW5jdGlvbih0KXt2YXIgZT10LmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSxuPXthcHBDb25maWc6ZnVuY3Rpb24odCl7dmFyIGUsbjtpZighdHx8IXQub3B0aW9ucyl0aHJvdyBrTygiQXBwIENvbmZpZ3VyYXRpb24iKTtpZighdC5uYW1lKXRocm93IGtPKCJBcHAgTmFtZSIpO3RyeXtmb3IodmFyIHI9dG8oWyJwcm9qZWN0SWQiLCJhcGlLZXkiLCJhcHBJZCJdKSxpPXIubmV4dCgpOyFpLmRvbmU7aT1yLm5leHQoKSl7dmFyIG89aS52YWx1ZTtpZighdC5vcHRpb25zW29dKXRocm93IGtPKG8pfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYobj1yLnJldHVybikmJm4uY2FsbChyKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJue2FwcE5hbWU6dC5uYW1lLHByb2plY3RJZDp0Lm9wdGlvbnMucHJvamVjdElkLGFwaUtleTp0Lm9wdGlvbnMuYXBpS2V5LGFwcElkOnQub3B0aW9ucy5hcHBJZH19KGUpLHBsYXRmb3JtTG9nZ2VyUHJvdmlkZXI6dC5nZXRQcm92aWRlcigicGxhdGZvcm0tbG9nZ2VyIil9O3JldHVybnthcHA6ZSxnZXRJZDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGJPKHIuYXBwQ29uZmlnKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLG49ZS5pbnN0YWxsYXRpb25FbnRyeSwoZS5yZWdpc3RyYXRpb25Qcm9taXNlfHxUTyhyKSkuY2F0Y2goY29uc29sZS5lcnJvciksWzIsbi5maWRdfX0pfSl9KG4pfSxnZXRUb2tlbjpmdW5jdGlvbih0KXtyZXR1cm4gQ08obix0KX0sZGVsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbU8oZT1yLmFwcENvbmZpZyxmdW5jdGlvbih0KXtpZighdHx8MCE9PXQucmVnaXN0cmF0aW9uU3RhdHVzKXJldHVybiB0fSldO2Nhc2UgMTppZighKG49dC5zZW50KCkpKXJldHVyblszLDZdO2lmKDEhPT1uLnJlZ2lzdHJhdGlvblN0YXR1cylyZXR1cm5bMywyXTt0aHJvdyBIUC5jcmVhdGUoImRlbGV0ZS1wZW5kaW5nLXJlZ2lzdHJhdGlvbiIpO2Nhc2UgMjppZigyIT09bi5yZWdpc3RyYXRpb25TdGF0dXMpcmV0dXJuWzMsNl07aWYobmF2aWdhdG9yLm9uTGluZSlyZXR1cm5bMywzXTt0aHJvdyBIUC5jcmVhdGUoImFwcC1vZmZsaW5lIik7Y2FzZSAzOnJldHVybls0LE5PKGUsbildO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzQseU8oZSldO2Nhc2UgNTp0LnNlbnQoKSx0LmxhYmVsPTY7Y2FzZSA2OnJldHVyblsyXX19KX0pfShuKX0sb25JZENoYW5nZTpmdW5jdGlvbih0KXtyZXR1cm4gQU8obix0KX19fSwiUFVCTElDIikpLGhPLnJlZ2lzdGVyVmVyc2lvbigiQGZpcmViYXNlL2luc3RhbGxhdGlvbnMiLCIwLjQuMjMiKTt2YXIgUk8sU249KChHYT17fSlbIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiXT0nTWlzc2luZyBBcHAgY29uZmlndXJhdGlvbiB2YWx1ZTogInskdmFsdWVOYW1lfSInLEdhWyJvbmx5LWF2YWlsYWJsZS1pbi13aW5kb3ciXT0iVGhpcyBtZXRob2QgaXMgYXZhaWxhYmxlIGluIGEgV2luZG93IGNvbnRleHQuIixHYVsib25seS1hdmFpbGFibGUtaW4tc3ciXT0iVGhpcyBtZXRob2QgaXMgYXZhaWxhYmxlIGluIGEgc2VydmljZSB3b3JrZXIgY29udGV4dC4iLEdhWyJwZXJtaXNzaW9uLWRlZmF1bHQiXT0iVGhlIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHdhcyBub3QgZ3JhbnRlZCBhbmQgZGlzbWlzc2VkIGluc3RlYWQuIixHYVsicGVybWlzc2lvbi1ibG9ja2VkIl09IlRoZSBub3RpZmljYXRpb24gcGVybWlzc2lvbiB3YXMgbm90IGdyYW50ZWQgYW5kIGJsb2NrZWQgaW5zdGVhZC4iLEdhWyJ1bnN1cHBvcnRlZC1icm93c2VyIl09IlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgdGhlIEFQSSdzIHJlcXVpcmVkIHRvIHVzZSB0aGUgZmlyZWJhc2UgU0RLLiIsR2FbImZhaWxlZC1zZXJ2aWNlLXdvcmtlci1yZWdpc3RyYXRpb24iXT0iV2UgYXJlIHVuYWJsZSB0byByZWdpc3RlciB0aGUgZGVmYXVsdCBzZXJ2aWNlIHdvcmtlci4geyRicm93c2VyRXJyb3JNZXNzYWdlfSIsR2FbInRva2VuLXN1YnNjcmliZS1mYWlsZWQiXT0iQSBwcm9ibGVtIG9jY3VycmVkIHdoaWxlIHN1YnNjcmliaW5nIHRoZSB1c2VyIHRvIEZDTTogeyRlcnJvckluZm99IixHYVsidG9rZW4tc3Vic2NyaWJlLW5vLXRva2VuIl09IkZDTSByZXR1cm5lZCBubyB0b2tlbiB3aGVuIHN1YnNjcmliaW5nIHRoZSB1c2VyIHRvIHB1c2guIixHYVsidG9rZW4tdW5zdWJzY3JpYmUtZmFpbGVkIl09IkEgcHJvYmxlbSBvY2N1cnJlZCB3aGlsZSB1bnN1YnNjcmliaW5nIHRoZSB1c2VyIGZyb20gRkNNOiB7JGVycm9ySW5mb30iLEdhWyJ0b2tlbi11cGRhdGUtZmFpbGVkIl09IkEgcHJvYmxlbSBvY2N1cnJlZCB3aGlsZSB1cGRhdGluZyB0aGUgdXNlciBmcm9tIEZDTTogeyRlcnJvckluZm99IixHYVsidG9rZW4tdXBkYXRlLW5vLXRva2VuIl09IkZDTSByZXR1cm5lZCBubyB0b2tlbiB3aGVuIHVwZGF0aW5nIHRoZSB1c2VyIHRvIHB1c2guIixHYVsidXNlLXN3LWFmdGVyLWdldC10b2tlbiJdPSJUaGUgdXNlU2VydmljZVdvcmtlcigpIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgb25jZSBhbmQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgZ2V0VG9rZW4oKSB0byBlbnN1cmUgeW91ciBzZXJ2aWNlIHdvcmtlciBpcyB1c2VkLiIsR2FbImludmFsaWQtc3ctcmVnaXN0cmF0aW9uIl09IlRoZSBpbnB1dCB0byB1c2VTZXJ2aWNlV29ya2VyKCkgbXVzdCBiZSBhIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uIixHYVsiaW52YWxpZC1iZy1oYW5kbGVyIl09IlRoZSBpbnB1dCB0byBzZXRCYWNrZ3JvdW5kTWVzc2FnZUhhbmRsZXIoKSBtdXN0IGJlIGEgZnVuY3Rpb24uIixHYVsiaW52YWxpZC12YXBpZC1rZXkiXT0iVGhlIHB1YmxpYyBWQVBJRCBrZXkgbXVzdCBiZSBhIHN0cmluZy4iLEdhWyJ1c2UtdmFwaWQta2V5LWFmdGVyLWdldC10b2tlbiJdPSJUaGUgdXNlUHVibGljVmFwaWRLZXkoKSBtZXRob2QgbWF5IG9ubHkgYmUgY2FsbGVkIG9uY2UgYW5kIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIGdldFRva2VuKCkgdG8gZW5zdXJlIHlvdXIgVkFQSUQga2V5IGlzIHVzZWQuIixHYSksUE89bmV3IENvKCJtZXNzYWdpbmciLCJNZXNzYWdpbmciLFNuKSxPTz0iQkRPVTk5LWg2N0hjQTZKZUZYSGJTTk11N2UyeU5OdTNSem9NajhUTTRXODhqSVRmcTdabVB2SU0xSXYtNF9sMkx4UWNZd2hxYnkyeEdwV3d6amZBbkc0IixETz0iaHR0cHM6Ly9mY21yZWdpc3RyYXRpb25zLmdvb2dsZWFwaXMuY29tL3YxIix4Tz0iRkNNX01TRyIsTE89Imdvb2dsZS5jLmEuY19pZCI7ZnVuY3Rpb24gTU8odCl7dD1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxubyhbXSxlbyh0KSkpKS5yZXBsYWNlKC89L2csIiIpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIil9KEdhPVJPPVJPfHx7fSkuUFVTSF9SRUNFSVZFRD0icHVzaC1yZWNlaXZlZCIsR2EuTk9USUZJQ0FUSU9OX0NMSUNLRUQ9Im5vdGlmaWNhdGlvbi1jbGlja2VkIjt2YXIgRk89ImZjbV90b2tlbl9kZXRhaWxzX2RiIixVTz01LGpPPSJmY21fdG9rZW5fb2JqZWN0X1N0b3JlIjtmdW5jdGlvbiBxTyhzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbyxuPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4iZGF0YWJhc2VzImluIGluZGV4ZWREQj9bNCxpbmRleGVkREIuZGF0YWJhc2VzKCldOlszLDJdO2Nhc2UgMTppZihlPXQuc2VudCgpLCFlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lfSkuaW5jbHVkZXMoRk8pKXJldHVyblsyLG51bGxdO3QubGFiZWw9MjtjYXNlIDI6cmV0dXJuIG89bnVsbCxbNCxVUChGTyxVTyxmdW5jdGlvbihpKXtyZXR1cm4gJGkobix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGkub2xkVmVyc2lvbjwyP1syXTppLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoak8pP1s0LChyPWkudHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoak8pKS5pbmRleCgiZmNtU2VuZGVySWQiKS5nZXQocyldOlsyXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksWzQsci5jbGVhcigpXTtjYXNlIDI6aWYodC5zZW50KCksIWUpcmV0dXJuWzJdO2lmKDI9PT1pLm9sZFZlcnNpb24pe2lmKCEobj1lKS5hdXRofHwhbi5wMjU2ZGh8fCFuLmVuZHBvaW50KXJldHVyblsyXTtvPXt0b2tlbjpuLmZjbVRva2VuLGNyZWF0ZVRpbWU6bnVsbCE9PShyPW4uY3JlYXRlVGltZSkmJnZvaWQgMCE9PXI/cjpEYXRlLm5vdygpLHN1YnNjcmlwdGlvbk9wdGlvbnM6e2F1dGg6bi5hdXRoLHAyNTZkaDpuLnAyNTZkaCxlbmRwb2ludDpuLmVuZHBvaW50LHN3U2NvcGU6bi5zd1Njb3BlLHZhcGlkS2V5OiJzdHJpbmciPT10eXBlb2Ygbi52YXBpZEtleT9uLnZhcGlkS2V5Ok1PKG4udmFwaWRLZXkpfX19ZWxzZSgzPT09aS5vbGRWZXJzaW9ufHw0PT09aS5vbGRWZXJzaW9uKSYmKG89e3Rva2VuOihuPWUpLmZjbVRva2VuLGNyZWF0ZVRpbWU6bi5jcmVhdGVUaW1lLHN1YnNjcmlwdGlvbk9wdGlvbnM6e2F1dGg6TU8obi5hdXRoKSxwMjU2ZGg6TU8obi5wMjU2ZGgpLGVuZHBvaW50Om4uZW5kcG9pbnQsc3dTY29wZTpuLnN3U2NvcGUsdmFwaWRLZXk6TU8obi52YXBpZEtleSl9fSk7cmV0dXJuWzJdfX0pfSl9KV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKS5jbG9zZSgpLFs0LGpQKEZPKV07Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbNCxqUCgiZmNtX3ZhcGlkX2RldGFpbHNfZGIiKV07Y2FzZSA1OnJldHVybiB0LnNlbnQoKSxbNCxqUCgidW5kZWZpbmVkIildO2Nhc2UgNjpyZXR1cm4gdC5zZW50KCksWzIsZnVuY3Rpb24odCl7aWYoIXR8fCF0LnN1YnNjcmlwdGlvbk9wdGlvbnMpcmV0dXJuITE7dmFyIGU9dC5zdWJzY3JpcHRpb25PcHRpb25zO3JldHVybiJudW1iZXIiPT10eXBlb2YgdC5jcmVhdGVUaW1lJiYwPHQuY3JlYXRlVGltZSYmInN0cmluZyI9PXR5cGVvZiB0LnRva2VuJiYwPHQudG9rZW4ubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGUuYXV0aCYmMDxlLmF1dGgubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGUucDI1NmRoJiYwPGUucDI1NmRoLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBlLmVuZHBvaW50JiYwPGUuZW5kcG9pbnQubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGUuc3dTY29wZSYmMDxlLnN3U2NvcGUubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGUudmFwaWRLZXkmJjA8ZS52YXBpZEtleS5sZW5ndGh9KG8pP286bnVsbF19fSl9KX12YXIgVk89ImZpcmViYXNlLW1lc3NhZ2luZy1kYXRhYmFzZSIsQk89MSxLTz0iZmlyZWJhc2UtbWVzc2FnaW5nLXN0b3JlIixXTz1udWxsO2Z1bmN0aW9uIEhPKCl7cmV0dXJuIFdPPVdPfHxVUChWTyxCTyxmdW5jdGlvbih0KXswPT09dC5vbGRWZXJzaW9uJiZ0LmNyZWF0ZU9iamVjdFN0b3JlKEtPKX0pfWZ1bmN0aW9uIEdPKHIpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9UU8ociksWzQsSE8oKV07Y2FzZSAxOnJldHVybls0LHQuc2VudCgpLnRyYW5zYWN0aW9uKEtPKS5vYmplY3RTdG9yZShLTykuZ2V0KGUpXTtjYXNlIDI6cmV0dXJuKGU9dC5zZW50KCkpP1syLGVdOlszLDNdO2Nhc2UgMzpyZXR1cm5bNCxxTyhyLmFwcENvbmZpZy5zZW5kZXJJZCldO2Nhc2UgNDpyZXR1cm4obj10LnNlbnQoKSk/WzQsek8ocixuKV06WzMsNl07Y2FzZSA1OnJldHVybiB0LnNlbnQoKSxbMixuXTtjYXNlIDY6cmV0dXJuWzJdfX0pfSl9ZnVuY3Rpb24gek8ocixpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPVFPKHIpLFs0LEhPKCldO2Nhc2UgMTpyZXR1cm4gbj10LnNlbnQoKSxbNCwobj1uLnRyYW5zYWN0aW9uKEtPLCJyZWFkd3JpdGUiKSkub2JqZWN0U3RvcmUoS08pLnB1dChpLGUpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFs0LG4uY29tcGxldGVdO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzIsaV19fSl9KX1mdW5jdGlvbiBRTyh0KXtyZXR1cm4gdC5hcHBDb25maWcuYXBwSWR9ZnVuY3Rpb24gWU8ocixpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LEpPKHIpXTtjYXNlIDE6ZT10LnNlbnQoKSxlPXttZXRob2Q6IkRFTEVURSIsaGVhZGVyczplfSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0LnRyeXMucHVzaChbMiw1LCw2XSksWzQsZmV0Y2goWE8oci5hcHBDb25maWcpKyIvIitpLGUpXTtjYXNlIDM6cmV0dXJuWzQsdC5zZW50KCkuanNvbigpXTtjYXNlIDQ6aWYoKGU9dC5zZW50KCkpLmVycm9yKXRocm93IG49ZS5lcnJvci5tZXNzYWdlLFBPLmNyZWF0ZSgidG9rZW4tdW5zdWJzY3JpYmUtZmFpbGVkIix7ZXJyb3JJbmZvOm59KTtyZXR1cm5bMyw2XTtjYXNlIDU6dGhyb3cgbj10LnNlbnQoKSxQTy5jcmVhdGUoInRva2VuLXVuc3Vic2NyaWJlLWZhaWxlZCIse2Vycm9ySW5mbzpufSk7Y2FzZSA2OnJldHVyblsyXX19KX0pfWZ1bmN0aW9uIFhPKHQpe3Q9dC5wcm9qZWN0SWQ7cmV0dXJuIERPKyIvcHJvamVjdHMvIit0KyIvcmVnaXN0cmF0aW9ucyJ9ZnVuY3Rpb24gSk8odCl7dmFyIG49dC5hcHBDb25maWcscj10Lmluc3RhbGxhdGlvbnM7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsci5nZXRUb2tlbigpXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksWzIsbmV3IEhlYWRlcnMoeyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJ4LWdvb2ctYXBpLWtleSI6bi5hcGlLZXksIngtZ29vZy1maXJlYmFzZS1pbnN0YWxsYXRpb25zLWF1dGgiOiJGSVMgIitlfSldfX0pfSl9ZnVuY3Rpb24gJE8odCl7dmFyIGU9dC5wMjU2ZGgsbj10LmF1dGgscj10LmVuZHBvaW50LHQ9dC52YXBpZEtleSxlPXt3ZWI6e2VuZHBvaW50OnIsYXV0aDpuLHAyNTZkaDplfX07cmV0dXJuIHQhPT1PTyYmKGUud2ViLmFwcGxpY2F0aW9uUHViS2V5PXQpLGV9ZnVuY3Rpb24gWk8oYyxoLGwpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcyxhLHU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZigiZ3JhbnRlZCIhPT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbil0aHJvdyBQTy5jcmVhdGUoInBlcm1pc3Npb24tYmxvY2tlZCIpO3JldHVybls0LGZ1bmN0aW9uKG4scil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbi5wdXNoTWFuYWdlci5nZXRTdWJzY3JpcHRpb24oKV07Y2FzZSAxOnJldHVybihlPXQuc2VudCgpKT9bMixlXTpbMixuLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7dXNlclZpc2libGVPbmx5OiEwLGFwcGxpY2F0aW9uU2VydmVyS2V5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgdD0odCsiPSIucmVwZWF0KCg0LXQubGVuZ3RoJTQpJTQpKS5yZXBsYWNlKC9cLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIiksZT1hdG9iKHQpLG49bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLHI9MDtyPGUubGVuZ3RoOysrciluW3JdPWUuY2hhckNvZGVBdChyKTtyZXR1cm4gbn0ocil9KV19fSl9KX0oaCxsKV07Y2FzZSAxOnJldHVybiB1PXQuc2VudCgpLFs0LEdPKGMpXTtjYXNlIDI6cmV0dXJuIHM9dC5zZW50KCksYT17dmFwaWRLZXk6bCxzd1Njb3BlOmguc2NvcGUsZW5kcG9pbnQ6dS5lbmRwb2ludCxhdXRoOk1PKHUuZ2V0S2V5KCJhdXRoIikpLHAyNTZkaDpNTyh1LmdldEtleSgicDI1NmRoIikpfSxzP1szLDNdOlsyLGVEKGMsYSldO2Nhc2UgMzppZihlPXMuc3Vic2NyaXB0aW9uT3B0aW9ucyxyPShuPWEpLnZhcGlkS2V5PT09ZS52YXBpZEtleSxpPW4uZW5kcG9pbnQ9PT1lLmVuZHBvaW50LG89bi5hdXRoPT09ZS5hdXRoLGU9bi5wMjU2ZGg9PT1lLnAyNTZkaCxyJiZpJiZvJiZlKXJldHVyblszLDhdO3QubGFiZWw9NDtjYXNlIDQ6cmV0dXJuIHQudHJ5cy5wdXNoKFs0LDYsLDddKSxbNCxZTyhjLHMudG9rZW4pXTtjYXNlIDU6cmV0dXJuIHQuc2VudCgpLFszLDddO2Nhc2UgNjpyZXR1cm4gdT10LnNlbnQoKSxjb25zb2xlLndhcm4odSksWzMsN107Y2FzZSA3OnJldHVyblsyLGVEKGMsYSldO2Nhc2UgODpyZXR1cm4gRGF0ZS5ub3coKT49cy5jcmVhdGVUaW1lKzYwNDhlNT9bMixmdW5jdGlvbihpLG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCwzLCw1XSksWzQsZnVuY3Rpb24obyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxKTyhvKV07Y2FzZSAxOmU9dC5zZW50KCksbj0kTyhzLnN1YnNjcmlwdGlvbk9wdGlvbnMpLG49e21ldGhvZDoiUEFUQ0giLGhlYWRlcnM6ZSxib2R5OkpTT04uc3RyaW5naWZ5KG4pfSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0LnRyeXMucHVzaChbMiw1LCw2XSksWzQsZmV0Y2goWE8oby5hcHBDb25maWcpKyIvIitzLnRva2VuLG4pXTtjYXNlIDM6cmV0dXJuWzQsdC5zZW50KCkuanNvbigpXTtjYXNlIDQ6cmV0dXJuIHI9dC5zZW50KCksWzMsNl07Y2FzZSA1OnRocm93IGk9dC5zZW50KCksUE8uY3JlYXRlKCJ0b2tlbi11cGRhdGUtZmFpbGVkIix7ZXJyb3JJbmZvOml9KTtjYXNlIDY6aWYoci5lcnJvcil0aHJvdyBpPXIuZXJyb3IubWVzc2FnZSxQTy5jcmVhdGUoInRva2VuLXVwZGF0ZS1mYWlsZWQiLHtlcnJvckluZm86aX0pO2lmKCFyLnRva2VuKXRocm93IFBPLmNyZWF0ZSgidG9rZW4tdXBkYXRlLW5vLXRva2VuIik7cmV0dXJuWzIsci50b2tlbl19fSl9KX0obyxpKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLG49SmkoSmkoe30saSkse3Rva2VuOmUsY3JlYXRlVGltZTpEYXRlLm5vdygpfSksWzQsek8obyxuKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbMixlXTtjYXNlIDM6cmV0dXJuIHI9dC5zZW50KCksWzQsdEQobyxzKV07Y2FzZSA0OnRocm93IHQuc2VudCgpLHI7Y2FzZSA1OnJldHVyblsyXX19KX0pfSh7dG9rZW46cy50b2tlbixjcmVhdGVUaW1lOkRhdGUubm93KCksc3Vic2NyaXB0aW9uT3B0aW9uczphfSxjLGgpXTpbMixzLnRva2VuXTtjYXNlIDk6cmV0dXJuWzJdfXZhciBlLG4scixpLG99KX0pfWZ1bmN0aW9uIHREKG4scil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsR08obildO2Nhc2UgMTpyZXR1cm4oZT10LnNlbnQoKSk/WzQsWU8obixlLnRva2VuKV06WzMsNF07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbNCxmdW5jdGlvbihyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPVFPKHIpLFs0LEhPKCldO2Nhc2UgMTpyZXR1cm4gbj10LnNlbnQoKSxbNCwobj1uLnRyYW5zYWN0aW9uKEtPLCJyZWFkd3JpdGUiKSkub2JqZWN0U3RvcmUoS08pLmRlbGV0ZShlKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbNCxuLmNvbXBsZXRlXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfShuKV07Y2FzZSAzOnQuc2VudCgpLHQubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzQsci5wdXNoTWFuYWdlci5nZXRTdWJzY3JpcHRpb24oKV07Y2FzZSA1OnJldHVybihlPXQuc2VudCgpKT9bMixlLnVuc3Vic2NyaWJlKCldOlsyLCEwXX19KX0pfWZ1bmN0aW9uIGVEKG4scil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsZnVuY3Rpb24obyxzKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxKTyhvKV07Y2FzZSAxOmU9dC5zZW50KCksbj0kTyhzKSxuPXttZXRob2Q6IlBPU1QiLGhlYWRlcnM6ZSxib2R5OkpTT04uc3RyaW5naWZ5KG4pfSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0LnRyeXMucHVzaChbMiw1LCw2XSksWzQsZmV0Y2goWE8oby5hcHBDb25maWcpLG4pXTtjYXNlIDM6cmV0dXJuWzQsdC5zZW50KCkuanNvbigpXTtjYXNlIDQ6cmV0dXJuIHI9dC5zZW50KCksWzMsNl07Y2FzZSA1OnRocm93IGk9dC5zZW50KCksUE8uY3JlYXRlKCJ0b2tlbi1zdWJzY3JpYmUtZmFpbGVkIix7ZXJyb3JJbmZvOml9KTtjYXNlIDY6aWYoci5lcnJvcil0aHJvdyBpPXIuZXJyb3IubWVzc2FnZSxQTy5jcmVhdGUoInRva2VuLXN1YnNjcmliZS1mYWlsZWQiLHtlcnJvckluZm86aX0pO2lmKCFyLnRva2VuKXRocm93IFBPLmNyZWF0ZSgidG9rZW4tc3Vic2NyaWJlLW5vLXRva2VuIik7cmV0dXJuWzIsci50b2tlbl19fSl9KX0obixyKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLGU9e3Rva2VuOmUsY3JlYXRlVGltZTpEYXRlLm5vdygpLHN1YnNjcmlwdGlvbk9wdGlvbnM6cn0sWzQsek8obixlKV07Y2FzZSAyOnJldHVybiB0LnNlbnQoKSxbMixlLnRva2VuXX19KX0pfWZ1bmN0aW9uIG5EKHQpe3ZhciBlPXtmcm9tOnQuZnJvbSxjb2xsYXBzZUtleTp0LmNvbGxhcHNlX2tleX07cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoIWUubm90aWZpY2F0aW9uKXJldHVybjt0Lm5vdGlmaWNhdGlvbj17fTt2YXIgbj1lLm5vdGlmaWNhdGlvbi50aXRsZTtuJiYodC5ub3RpZmljYXRpb24udGl0bGU9bik7bj1lLm5vdGlmaWNhdGlvbi5ib2R5O24mJih0Lm5vdGlmaWNhdGlvbi5ib2R5PW4pO2U9ZS5ub3RpZmljYXRpb24uaW1hZ2U7ZSYmKHQubm90aWZpY2F0aW9uLmltYWdlPWUpfShlLHQpLGZ1bmN0aW9uKHQsZSl7aWYoIWUuZGF0YSlyZXR1cm47dC5kYXRhPWUuZGF0YX0oZSx0KSxmdW5jdGlvbih0LGUpe2lmKCFlLmZjbU9wdGlvbnMpcmV0dXJuO3QuZmNtT3B0aW9ucz17fTt2YXIgbj1lLmZjbU9wdGlvbnMubGluaztuJiYodC5mY21PcHRpb25zLmxpbms9bik7ZT1lLmZjbU9wdGlvbnMuYW5hbHl0aWNzX2xhYmVsO2UmJih0LmZjbU9wdGlvbnMuYW5hbHl0aWNzTGFiZWw9ZSl9KGUsdCksZX1mdW5jdGlvbiByRCh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQmJkxPIGluIHR9ZnVuY3Rpb24gaUQoZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCxlKX0pfXZhciBvRD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHNELnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMuYXBwfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHNELnByb3RvdHlwZS5zZXRCYWNrZ3JvdW5kTWVzc2FnZUhhbmRsZXI9ZnVuY3Rpb24odCl7aWYodGhpcy5pc09uQmFja2dyb3VuZE1lc3NhZ2VVc2VkPSExLCF0fHwiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBQTy5jcmVhdGUoImludmFsaWQtYmctaGFuZGxlciIpO3RoaXMuYmdNZXNzYWdlSGFuZGxlcj10fSxzRC5wcm90b3R5cGUub25CYWNrZ3JvdW5kTWVzc2FnZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmlzT25CYWNrZ3JvdW5kTWVzc2FnZVVzZWQ9ITAsdGhpcy5iZ01lc3NhZ2VIYW5kbGVyPXQsZnVuY3Rpb24oKXtlLmJnTWVzc2FnZUhhbmRsZXI9bnVsbH19LHNELnByb3RvdHlwZS5nZXRUb2tlbj1mdW5jdGlvbigpe3ZhciBuO3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnZhcGlkS2V5P1szLDJdOls0LEdPKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMpXTtjYXNlIDE6ZT10LnNlbnQoKSx0aGlzLnZhcGlkS2V5PW51bGwhPT0obj1udWxsPT09KG49bnVsbD09ZT92b2lkIDA6ZS5zdWJzY3JpcHRpb25PcHRpb25zKXx8dm9pZCAwPT09bj92b2lkIDA6bi52YXBpZEtleSkmJnZvaWQgMCE9PW4/bjpPTyx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyLFpPKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMsc2VsZi5yZWdpc3RyYXRpb24sdGhpcy52YXBpZEtleSldfX0pfSl9LHNELnByb3RvdHlwZS5kZWxldGVUb2tlbj1mdW5jdGlvbigpe3JldHVybiB0RCh0aGlzLmZpcmViYXNlRGVwZW5kZW5jaWVzLHNlbGYucmVnaXN0cmF0aW9uKX0sc0QucHJvdG90eXBlLnJlcXVlc3RQZXJtaXNzaW9uPWZ1bmN0aW9uKCl7dGhyb3cgUE8uY3JlYXRlKCJvbmx5LWF2YWlsYWJsZS1pbi13aW5kb3ciKX0sc0QucHJvdG90eXBlLnVzZVB1YmxpY1ZhcGlkS2V5PWZ1bmN0aW9uKHQpe2lmKG51bGwhPT10aGlzLnZhcGlkS2V5KXRocm93IFBPLmNyZWF0ZSgidXNlLXZhcGlkLWtleS1hZnRlci1nZXQtdG9rZW4iKTtpZigic3RyaW5nIiE9dHlwZW9mIHR8fDA9PT10Lmxlbmd0aCl0aHJvdyBQTy5jcmVhdGUoImludmFsaWQtdmFwaWQta2V5Iik7dGhpcy52YXBpZEtleT10fSxzRC5wcm90b3R5cGUudXNlU2VydmljZVdvcmtlcj1mdW5jdGlvbigpe3Rocm93IFBPLmNyZWF0ZSgib25seS1hdmFpbGFibGUtaW4td2luZG93Iil9LHNELnByb3RvdHlwZS5vbk1lc3NhZ2U9ZnVuY3Rpb24oKXt0aHJvdyBQTy5jcmVhdGUoIm9ubHktYXZhaWxhYmxlLWluLXdpbmRvdyIpfSxzRC5wcm90b3R5cGUub25Ub2tlblJlZnJlc2g9ZnVuY3Rpb24oKXt0aHJvdyBQTy5jcmVhdGUoIm9ubHktYXZhaWxhYmxlLWluLXdpbmRvdyIpfSxzRC5wcm90b3R5cGUub25QdXNoPWZ1bmN0aW9uKGEpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxvLHM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4ocz1mdW5jdGlvbih0KXt2YXIgZT10LmRhdGE7aWYoIWUpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmpzb24oKX1jYXRjaCh0KXtyZXR1cm4gbnVsbH19KGEpKT9bNCxhRCgpXTooY29uc29sZS5kZWJ1ZygiRmlyZWJhc2VNZXNzYWdpbmc6IGZhaWxlZCB0byBnZXQgcGFyc2VkIE1lc3NhZ2VQYXlsb2FkIGZyb20gdGhlIFB1c2hFdmVudC4gU2tpcCBoYW5kbGluZyB0aGUgcHVzaC4iKSxbMl0pO2Nhc2UgMTpyZXR1cm4oaT10LnNlbnQoKSxpLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuInZpc2libGUiPT09dC52aXNpYmlsaXR5U3RhdGUmJiF0LnVybC5zdGFydHNXaXRoKCJjaHJvbWUtZXh0ZW5zaW9uOi8vIil9KSk/WzIsZnVuY3Rpb24odCxlKXt2YXIgbixyO2UuaXNGaXJlYmFzZU1lc3NhZ2luZz0hMCxlLm1lc3NhZ2VUeXBlPVJPLlBVU0hfUkVDRUlWRUQ7dHJ5e2Zvcih2YXIgaT10byh0KSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSlvLnZhbHVlLnBvc3RNZXNzYWdlKGUpfWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihyPWkucmV0dXJuKSYmci5jYWxsKGkpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19KGkscyldOihvPSExLHMubm90aWZpY2F0aW9uP1s0LGZ1bmN0aW9uKHQpe3ZhciBlPXQuYWN0aW9ucyxuPU5vdGlmaWNhdGlvbi5tYXhBY3Rpb25zO2UmJm4mJmUubGVuZ3RoPm4mJmNvbnNvbGUud2FybigiVGhpcyBicm93c2VyIG9ubHkgc3VwcG9ydHMgIituKyIgYWN0aW9ucy4gVGhlIHJlbWFpbmluZyBhY3Rpb25zIHdpbGwgbm90IGJlIGRpc3BsYXllZC4iKTtyZXR1cm4gc2VsZi5yZWdpc3RyYXRpb24uc2hvd05vdGlmaWNhdGlvbihudWxsIT09KG49dC50aXRsZSkmJnZvaWQgMCE9PW4/bjoiIix0KX0oKChyPUppKHt9LChlPXMpLm5vdGlmaWNhdGlvbikpLmRhdGE9KChuPXt9KVt4T109ZSxuKSxyKSldOlszLDNdKTtjYXNlIDI6dC5zZW50KCksbz0hMCx0LmxhYmVsPTM7Y2FzZSAzOnJldHVybiEwPT09byYmITE9PT10aGlzLmlzT25CYWNrZ3JvdW5kTWVzc2FnZVVzZWQ/WzJdOih0aGlzLmJnTWVzc2FnZUhhbmRsZXImJihzPW5EKHMpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmJnTWVzc2FnZUhhbmRsZXI/dGhpcy5iZ01lc3NhZ2VIYW5kbGVyKHMpOnRoaXMuYmdNZXNzYWdlSGFuZGxlci5uZXh0KHMpKSxbNCxpRCgxZTMpXSk7Y2FzZSA0OnJldHVybiB0LnNlbnQoKSxbMl19dmFyIGUsbixyfSl9KX0sc0QucHJvdG90eXBlLm9uU3ViQ2hhbmdlPWZ1bmN0aW9uKG4pe3ZhciByO3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBuLm5ld1N1YnNjcmlwdGlvbj9bMywyXTpbNCx0RCh0aGlzLmZpcmViYXNlRGVwZW5kZW5jaWVzLHNlbGYucmVnaXN0cmF0aW9uKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbMl07Y2FzZSAyOnJldHVybls0LEdPKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMpXTtjYXNlIDM6cmV0dXJuIGU9dC5zZW50KCksWzQsdEQodGhpcy5maXJlYmFzZURlcGVuZGVuY2llcyxzZWxmLnJlZ2lzdHJhdGlvbildO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzQsWk8odGhpcy5maXJlYmFzZURlcGVuZGVuY2llcyxzZWxmLnJlZ2lzdHJhdGlvbixudWxsIT09KHI9bnVsbD09PShyPW51bGw9PWU/dm9pZCAwOmUuc3Vic2NyaXB0aW9uT3B0aW9ucyl8fHZvaWQgMD09PXI/dm9pZCAwOnIudmFwaWRLZXkpJiZ2b2lkIDAhPT1yP3I6T08pXTtjYXNlIDU6cmV0dXJuIHQuc2VudCgpLFsyXX19KX0pfSxzRC5wcm90b3R5cGUub25Ob3RpZmljYXRpb25DbGljaz1mdW5jdGlvbihzKXt2YXIgYTtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPW51bGw9PT0oYT1udWxsPT09KGE9cy5ub3RpZmljYXRpb24pfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmRhdGEpfHx2b2lkIDA9PT1hP3ZvaWQgMDphW3hPXSk/cy5hY3Rpb24/WzJdOihzLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHMubm90aWZpY2F0aW9uLmNsb3NlKCksKG49ZnVuY3Rpb24odCl7dmFyIGUsbj1udWxsIT09KGU9bnVsbD09PShlPXQuZmNtT3B0aW9ucyl8fHZvaWQgMD09PWU/dm9pZCAwOmUubGluaykmJnZvaWQgMCE9PWU/ZTpudWxsPT09KG49dC5ub3RpZmljYXRpb24pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmNsaWNrX2FjdGlvbjtpZihuKXJldHVybiBuO3JldHVybiByRCh0LmRhdGEpP3NlbGYubG9jYXRpb24ub3JpZ2luOm51bGx9KGUpKT8ocj1uZXcgVVJMKG4sc2VsZi5sb2NhdGlvbi5ocmVmKSxpPW5ldyBVUkwoc2VsZi5sb2NhdGlvbi5vcmlnaW4pLHIuaG9zdCE9PWkuaG9zdD9bMl06WzQsZnVuY3Rpb24odSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scixpLG8scyxhO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsYUQoKV07Y2FzZSAxOmU9dC5zZW50KCk7dHJ5e2ZvcihuPXRvKGUpLHI9bi5uZXh0KCk7IXIuZG9uZTtyPW4ubmV4dCgpKWlmKGk9ci52YWx1ZSxvPW5ldyBVUkwoaS51cmwsc2VsZi5sb2NhdGlvbi5ocmVmKSx1Lmhvc3Q9PT1vLmhvc3QpcmV0dXJuWzIsaV19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKGE9bi5yZXR1cm4pJiZhLmNhbGwobil9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fXJldHVyblsyLG51bGxdfX0pfSl9KHIpXSk6WzJdKTpbMl07Y2FzZSAxOnJldHVybihvPXQuc2VudCgpKT9bMyw0XTpbNCxzZWxmLmNsaWVudHMub3BlbldpbmRvdyhuKV07Y2FzZSAyOnJldHVybiBvPXQuc2VudCgpLFs0LGlEKDNlMyldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSA0OnJldHVybls0LG8uZm9jdXMoKV07Y2FzZSA1Om89dC5zZW50KCksdC5sYWJlbD02O2Nhc2UgNjpyZXR1cm4gbz8oZS5tZXNzYWdlVHlwZT1STy5OT1RJRklDQVRJT05fQ0xJQ0tFRCxlLmlzRmlyZWJhc2VNZXNzYWdpbmc9ITAsWzIsby5wb3N0TWVzc2FnZShlKV0pOlsyXX19KX0pfSxzRCk7ZnVuY3Rpb24gc0QodCl7dmFyIGU9dGhpczt0aGlzLmZpcmViYXNlRGVwZW5kZW5jaWVzPXQsdGhpcy5pc09uQmFja2dyb3VuZE1lc3NhZ2VVc2VkPW51bGwsdGhpcy52YXBpZEtleT1udWxsLHRoaXMuYmdNZXNzYWdlSGFuZGxlcj1udWxsLHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigicHVzaCIsZnVuY3Rpb24odCl7dC53YWl0VW50aWwoZS5vblB1c2godCkpfSksc2VsZi5hZGRFdmVudExpc3RlbmVyKCJwdXNoc3Vic2NyaXB0aW9uY2hhbmdlIixmdW5jdGlvbih0KXt0LndhaXRVbnRpbChlLm9uU3ViQ2hhbmdlKHQpKX0pLHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigibm90aWZpY2F0aW9uY2xpY2siLGZ1bmN0aW9uKHQpe3Qud2FpdFVudGlsKGUub25Ob3RpZmljYXRpb25DbGljayh0KSl9KX1mdW5jdGlvbiBhRCgpe3JldHVybiBzZWxmLmNsaWVudHMubWF0Y2hBbGwoe3R5cGU6IndpbmRvdyIsaW5jbHVkZVVuY29udHJvbGxlZDohMH0pfXZhciB1RD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KGNELnByb3RvdHlwZSwiYXBwIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMuYXBwfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGNELnByb3RvdHlwZS5tZXNzYWdlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihpKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihuPWkuZGF0YSkuaXNGaXJlYmFzZU1lc3NhZ2luZz8odGhpcy5vbk1lc3NhZ2VDYWxsYmFjayYmbi5tZXNzYWdlVHlwZT09PVJPLlBVU0hfUkVDRUlWRUQmJigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vbk1lc3NhZ2VDYWxsYmFjaz90aGlzLm9uTWVzc2FnZUNhbGxiYWNrKChkZWxldGUoZT1PYmplY3QuYXNzaWduKHt9LG4pKS5tZXNzYWdlVHlwZSxkZWxldGUgZS5pc0ZpcmViYXNlTWVzc2FnaW5nLGUpKTp0aGlzLm9uTWVzc2FnZUNhbGxiYWNrLm5leHQoT2JqZWN0LmFzc2lnbih7fSxuKSkpLHJEKHI9bi5kYXRhKSYmIjEiPT09clsiZ29vZ2xlLmMuYS5lIl0/WzQsdGhpcy5sb2dFdmVudChuLm1lc3NhZ2VUeXBlLHIpXTpbMywyXSk6WzJdO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX12YXIgZX0pfSl9LGNELnByb3RvdHlwZS5nZXRWYXBpZEtleT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhcGlkS2V5fSxjRC5wcm90b3R5cGUuZ2V0U3dSZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zd1JlZ2lzdHJhdGlvbn0sY0QucHJvdG90eXBlLmdldFRva2VuPWZ1bmN0aW9uKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiJkZWZhdWx0IiE9PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uP1szLDJdOls0LE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpXTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjppZigiZ3JhbnRlZCIhPT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbil0aHJvdyBQTy5jcmVhdGUoInBlcm1pc3Npb24tYmxvY2tlZCIpO3JldHVybls0LHRoaXMudXBkYXRlVmFwaWRLZXkobnVsbD09ZT92b2lkIDA6ZS52YXBpZEtleSldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzQsdGhpcy51cGRhdGVTd1JlZyhudWxsPT1lP3ZvaWQgMDplLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pXTtjYXNlIDQ6cmV0dXJuIHQuc2VudCgpLFsyLFpPKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMsdGhpcy5zd1JlZ2lzdHJhdGlvbix0aGlzLnZhcGlkS2V5KV19fSl9KX0sY0QucHJvdG90eXBlLnVwZGF0ZVZhcGlkS2V5PWZ1bmN0aW9uKGUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtyZXR1cm4gZT90aGlzLnZhcGlkS2V5PWU6dGhpcy52YXBpZEtleXx8KHRoaXMudmFwaWRLZXk9T08pLFsyXX0pfSl9LGNELnByb3RvdHlwZS51cGRhdGVTd1JlZz1mdW5jdGlvbihlKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZXx8dGhpcy5zd1JlZ2lzdHJhdGlvbj9bMywyXTpbNCx0aGlzLnJlZ2lzdGVyRGVmYXVsdFN3KCldO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOmlmKCFlJiZ0aGlzLnN3UmVnaXN0cmF0aW9uKXJldHVyblsyXTtpZighKGUgaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKSl0aHJvdyBQTy5jcmVhdGUoImludmFsaWQtc3ctcmVnaXN0cmF0aW9uIik7cmV0dXJuIHRoaXMuc3dSZWdpc3RyYXRpb249ZSxbMl19fSl9KX0sY0QucHJvdG90eXBlLnJlZ2lzdGVyRGVmYXVsdFN3PWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHQudHJ5cy5wdXNoKFswLDIsLDNdKSxlPXRoaXMsWzQsbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9maXJlYmFzZS1tZXNzYWdpbmctc3cuanMiLHtzY29wZToiL2ZpcmViYXNlLWNsb3VkLW1lc3NhZ2luZy1wdXNoLXNjb3BlIn0pXTtjYXNlIDE6cmV0dXJuIGUuc3dSZWdpc3RyYXRpb249dC5zZW50KCksdGhpcy5zd1JlZ2lzdHJhdGlvbi51cGRhdGUoKS5jYXRjaChmdW5jdGlvbigpe30pLFszLDNdO2Nhc2UgMjp0aHJvdyBlPXQuc2VudCgpLFBPLmNyZWF0ZSgiZmFpbGVkLXNlcnZpY2Utd29ya2VyLXJlZ2lzdHJhdGlvbiIse2Jyb3dzZXJFcnJvck1lc3NhZ2U6ZS5tZXNzYWdlfSk7Y2FzZSAzOnJldHVyblsyXX19KX0pfSxjRC5wcm90b3R5cGUuZGVsZXRlVG9rZW49ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5zd1JlZ2lzdHJhdGlvbj9bMywyXTpbNCx0aGlzLnJlZ2lzdGVyRGVmYXVsdFN3KCldO2Nhc2UgMTp0LnNlbnQoKSx0LmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyLHREKHRoaXMuZmlyZWJhc2VEZXBlbmRlbmNpZXMsdGhpcy5zd1JlZ2lzdHJhdGlvbildfX0pfSl9LGNELnByb3RvdHlwZS5yZXF1ZXN0UGVybWlzc2lvbj1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiJncmFudGVkIj09PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uP1syXTpbNCxOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKV07Y2FzZSAxOmlmKCJncmFudGVkIj09PShlPXQuc2VudCgpKSlyZXR1cm5bMl07dGhyb3ciZGVuaWVkIj09PWU/UE8uY3JlYXRlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKTpQTy5jcmVhdGUoInBlcm1pc3Npb24tZGVmYXVsdCIpfX0pfSl9LGNELnByb3RvdHlwZS51c2VQdWJsaWNWYXBpZEtleT1mdW5jdGlvbih0KXtpZihudWxsIT09dGhpcy52YXBpZEtleSl0aHJvdyBQTy5jcmVhdGUoInVzZS12YXBpZC1rZXktYWZ0ZXItZ2V0LXRva2VuIik7aWYoInN0cmluZyIhPXR5cGVvZiB0fHwwPT09dC5sZW5ndGgpdGhyb3cgUE8uY3JlYXRlKCJpbnZhbGlkLXZhcGlkLWtleSIpO3RoaXMudmFwaWRLZXk9dH0sY0QucHJvdG90eXBlLnVzZVNlcnZpY2VXb3JrZXI9ZnVuY3Rpb24odCl7aWYoISh0IGluc3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbikpdGhyb3cgUE8uY3JlYXRlKCJpbnZhbGlkLXN3LXJlZ2lzdHJhdGlvbiIpO2lmKHRoaXMuc3dSZWdpc3RyYXRpb24pdGhyb3cgUE8uY3JlYXRlKCJ1c2Utc3ctYWZ0ZXItZ2V0LXRva2VuIik7dGhpcy5zd1JlZ2lzdHJhdGlvbj10fSxjRC5wcm90b3R5cGUub25NZXNzYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMub25NZXNzYWdlQ2FsbGJhY2s9dCxmdW5jdGlvbigpe2Uub25NZXNzYWdlQ2FsbGJhY2s9bnVsbH19LGNELnByb3RvdHlwZS5zZXRCYWNrZ3JvdW5kTWVzc2FnZUhhbmRsZXI9ZnVuY3Rpb24oKXt0aHJvdyBQTy5jcmVhdGUoIm9ubHktYXZhaWxhYmxlLWluLXN3Iil9LGNELnByb3RvdHlwZS5vbkJhY2tncm91bmRNZXNzYWdlPWZ1bmN0aW9uKCl7dGhyb3cgUE8uY3JlYXRlKCJvbmx5LWF2YWlsYWJsZS1pbi1zdyIpfSxjRC5wcm90b3R5cGUub25Ub2tlblJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXt9fSxjRC5wcm90b3R5cGUubG9nRXZlbnQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBSTy5OT1RJRklDQVRJT05fQ0xJQ0tFRDpyZXR1cm4ibm90aWZpY2F0aW9uX29wZW4iO2Nhc2UgUk8uUFVTSF9SRUNFSVZFRDpyZXR1cm4ibm90aWZpY2F0aW9uX2ZvcmVncm91bmQiO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yfX0obiksWzQsdGhpcy5maXJlYmFzZURlcGVuZGVuY2llcy5hbmFseXRpY3NQcm92aWRlci5nZXQoKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKS5sb2dFdmVudChlLHttZXNzYWdlX2lkOnJbTE9dLG1lc3NhZ2VfbmFtZTpyWyJnb29nbGUuYy5hLmNfbCJdLG1lc3NhZ2VfdGltZTpyWyJnb29nbGUuYy5hLnRzIl0sbWVzc2FnZV9kZXZpY2VfdGltZTpNYXRoLmZsb29yKERhdGUubm93KCkvMWUzKX0pLFsyXX19KX0pfSxjRCk7ZnVuY3Rpb24gY0QodCl7dmFyIGU9dGhpczt0aGlzLmZpcmViYXNlRGVwZW5kZW5jaWVzPXQsdGhpcy52YXBpZEtleT1udWxsLHRoaXMub25NZXNzYWdlQ2FsbGJhY2s9bnVsbCxuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbih0KXtyZXR1cm4gZS5tZXNzYWdlRXZlbnRMaXN0ZW5lcih0KX0pfWZ1bmN0aW9uIGhEKHQpe3JldHVybiBQTy5jcmVhdGUoIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiLHt2YWx1ZU5hbWU6dH0pfVNuPXtpc1N1cHBvcnRlZDpsRH07ZnVuY3Rpb24gbEQoKXtyZXR1cm4gc2VsZiYmIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSJpbiBzZWxmPyJpbmRleGVkREIiaW4gc2VsZiYmbnVsbCE9PWluZGV4ZWREQiYmIlB1c2hNYW5hZ2VyImluIHNlbGYmJiJOb3RpZmljYXRpb24iaW4gc2VsZiYmU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInNob3dOb3RpZmljYXRpb24iKSYmUHVzaFN1YnNjcmlwdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImdldEtleSIpOiJpbmRleGVkREIiaW4gd2luZG93JiZudWxsIT09aW5kZXhlZERCJiZuYXZpZ2F0b3IuY29va2llRW5hYmxlZCYmInNlcnZpY2VXb3JrZXIiaW4gbmF2aWdhdG9yJiYiUHVzaE1hbmFnZXIiaW4gd2luZG93JiYiTm90aWZpY2F0aW9uImluIHdpbmRvdyYmImZldGNoImluIHdpbmRvdyYmU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInNob3dOb3RpZmljYXRpb24iKSYmUHVzaFN1YnNjcmlwdGlvbi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImdldEtleSIpfVhsLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygibWVzc2FnaW5nIixmdW5jdGlvbih0KXt2YXIgZT10LmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSx0PXthcHA6ZSxhcHBDb25maWc6ZnVuY3Rpb24odCl7dmFyIGUsbjtpZighdHx8IXQub3B0aW9ucyl0aHJvdyBoRCgiQXBwIENvbmZpZ3VyYXRpb24gT2JqZWN0Iik7aWYoIXQubmFtZSl0aHJvdyBoRCgiQXBwIE5hbWUiKTt2YXIgcj10Lm9wdGlvbnM7dHJ5e2Zvcih2YXIgaT10byhbInByb2plY3RJZCIsImFwaUtleSIsImFwcElkIiwibWVzc2FnaW5nU2VuZGVySWQiXSksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBzPW8udmFsdWU7aWYoIXJbc10pdGhyb3cgaEQocyl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1yZXR1cm57YXBwTmFtZTp0Lm5hbWUscHJvamVjdElkOnIucHJvamVjdElkLGFwaUtleTpyLmFwaUtleSxhcHBJZDpyLmFwcElkLHNlbmRlcklkOnIubWVzc2FnaW5nU2VuZGVySWR9fShlKSxpbnN0YWxsYXRpb25zOnQuZ2V0UHJvdmlkZXIoImluc3RhbGxhdGlvbnMiKS5nZXRJbW1lZGlhdGUoKSxhbmFseXRpY3NQcm92aWRlcjp0LmdldFByb3ZpZGVyKCJhbmFseXRpY3MtaW50ZXJuYWwiKX07aWYoIWxEKCkpdGhyb3cgUE8uY3JlYXRlKCJ1bnN1cHBvcnRlZC1icm93c2VyIik7cmV0dXJuIG5ldyhzZWxmJiYiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlImluIHNlbGY/b0Q6dUQpKHQpfSwiUFVCTElDIikuc2V0U2VydmljZVByb3BzKFNuKSk7dmFyIGZELHBEPSJmaXJlYmFzZXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20iLGREPSJzdG9yYWdlQnVja2V0Iix2RD0oWGkoZ0QsZkQ9RW8pLGdELnByb3RvdHlwZS5fY29kZUVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4geUQodCk9PT10aGlzLmNvZGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnRC5wcm90b3R5cGUsIm1lc3NhZ2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXN0b21EYXRhLnNlcnZlclJlc3BvbnNlP3RoaXMubWVzc2FnZSsiXG4iK3RoaXMuY3VzdG9tRGF0YS5zZXJ2ZXJSZXNwb25zZTp0aGlzLm1lc3NhZ2V9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGdELnByb3RvdHlwZSwic2VydmVyUmVzcG9uc2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXN0b21EYXRhLnNlcnZlclJlc3BvbnNlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5jdXN0b21EYXRhLnNlcnZlclJlc3BvbnNlPXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZ0QpO2Z1bmN0aW9uIGdEKHQsZSl7dD1mRC5jYWxsKHRoaXMseUQodCksIkZpcmViYXNlIFN0b3JhZ2U6ICIrZSsiICgiK3lEKHQpKyIpIil8fHRoaXM7cmV0dXJuIHQuY3VzdG9tRGF0YT17c2VydmVyUmVzcG9uc2U6bnVsbH0sT2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZ0QucHJvdG90eXBlKSx0fWZ1bmN0aW9uIHlEKHQpe3JldHVybiJzdG9yYWdlLyIrdH1mdW5jdGlvbiBtRCgpe3JldHVybiBuZXcgdkQoInVua25vd24iLCJBbiB1bmtub3duIGVycm9yIG9jY3VycmVkLCBwbGVhc2UgY2hlY2sgdGhlIGVycm9yIHBheWxvYWQgZm9yIHNlcnZlciByZXNwb25zZS4iKX1mdW5jdGlvbiBiRCgpe3JldHVybiBuZXcgdkQoImNhbmNlbGVkIiwiVXNlciBjYW5jZWxlZCB0aGUgdXBsb2FkL2Rvd25sb2FkLiIpfWZ1bmN0aW9uIHdEKCl7cmV0dXJuIG5ldyB2RCgiY2Fubm90LXNsaWNlLWJsb2IiLCJDYW5ub3Qgc2xpY2UgYmxvYiBmb3IgdXBsb2FkLiBQbGVhc2UgcmV0cnkgdGhlIHVwbG9hZC4iKX1mdW5jdGlvbiBfRCh0KXtyZXR1cm4gbmV3IHZEKCJpbnZhbGlkLWFyZ3VtZW50Iix0KX1mdW5jdGlvbiBJRCgpe3JldHVybiBuZXcgdkQoImFwcC1kZWxldGVkIiwiVGhlIEZpcmViYXNlIGFwcCB3YXMgZGVsZXRlZC4iKX1mdW5jdGlvbiBURCh0KXtyZXR1cm4gbmV3IHZEKCJpbnZhbGlkLXJvb3Qtb3BlcmF0aW9uIiwiVGhlIG9wZXJhdGlvbiAnIit0KyInIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gYSByb290IHJlZmVyZW5jZSwgY3JlYXRlIGEgbm9uLXJvb3QgcmVmZXJlbmNlIHVzaW5nIGNoaWxkLCBzdWNoIGFzIC5jaGlsZCgnZmlsZS5wbmcnKS4iKX1mdW5jdGlvbiBFRCh0LGUpe3JldHVybiBuZXcgdkQoImludmFsaWQtZm9ybWF0IiwiU3RyaW5nIGRvZXMgbm90IG1hdGNoIGZvcm1hdCAnIit0KyInOiAiK2UpfWZ1bmN0aW9uIFNEKHQpe3Rocm93IG5ldyB2RCgiaW50ZXJuYWwtZXJyb3IiLCJJbnRlcm5hbCBlcnJvcjogIit0KX12YXIgQ0Q9e1JBVzoicmF3IixCQVNFNjQ6ImJhc2U2NCIsQkFTRTY0VVJMOiJiYXNlNjR1cmwiLERBVEFfVVJMOiJkYXRhX3VybCJ9LE5EPWZ1bmN0aW9uKHQsZSl7dGhpcy5kYXRhPXQsdGhpcy5jb250ZW50VHlwZT1lfHxudWxsfTtmdW5jdGlvbiBBRCh0LGUpe3N3aXRjaCh0KXtjYXNlIENELlJBVzpyZXR1cm4gbmV3IE5EKGtEKGUpKTtjYXNlIENELkJBU0U2NDpjYXNlIENELkJBU0U2NFVSTDpyZXR1cm4gbmV3IE5EKFJEKHQsZSkpO2Nhc2UgQ0QuREFUQV9VUkw6cmV0dXJuIG5ldyBORChmdW5jdGlvbih0KXt0PW5ldyBQRCh0KTtyZXR1cm4gdC5iYXNlNjQ/UkQoQ0QuQkFTRTY0LHQucmVzdCk6ZnVuY3Rpb24odCl7dmFyIGU7dHJ5e2U9ZGVjb2RlVVJJQ29tcG9uZW50KHQpfWNhdGNoKHQpe3Rocm93IEVEKENELkRBVEFfVVJMLCJNYWxmb3JtZWQgZGF0YSBVUkwuIil9cmV0dXJuIGtEKGUpfSh0LnJlc3QpfShlKSxuZXcgUEQoZSkuY29udGVudFR5cGUpfXRocm93IG1EKCl9ZnVuY3Rpb24ga0QodCl7Zm9yKHZhciBlPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dC5jaGFyQ29kZUF0KG4pO3I8PTEyNz9lLnB1c2gocik6cjw9MjA0Nz9lLnB1c2goMTkyfHI+PjYsMTI4fDYzJnIpOjU1Mjk2PT0oNjQ1MTImcik/bjx0Lmxlbmd0aC0xJiY1NjMyMD09KDY0NTEyJnQuY2hhckNvZGVBdChuKzEpKT8ocj02NTUzNnwoMTAyMyZyKTw8MTB8MTAyMyZ0LmNoYXJDb2RlQXQoKytuKSxlLnB1c2goMjQwfHI+PjE4LDEyOHxyPj4xMiY2MywxMjh8cj4+NiY2MywxMjh8NjMmcikpOmUucHVzaCgyMzksMTkxLDE4OSk6NTYzMjA9PSg2NDUxMiZyKT9lLnB1c2goMjM5LDE5MSwxODkpOmUucHVzaCgyMjR8cj4+MTIsMTI4fHI+PjYmNjMsMTI4fDYzJnIpfXJldHVybiBuZXcgVWludDhBcnJheShlKX1mdW5jdGlvbiBSRChlLHQpe3N3aXRjaChlKXtjYXNlIENELkJBU0U2NDp2YXIgbj0tMSE9PXQuaW5kZXhPZigiLSIpLHI9LTEhPT10LmluZGV4T2YoIl8iKTtpZihufHxyKXRocm93IEVEKGUsIkludmFsaWQgY2hhcmFjdGVyICciKyhuPyItIjoiXyIpKyInIGZvdW5kOiBpcyBpdCBiYXNlNjR1cmwgZW5jb2RlZD8iKTticmVhaztjYXNlIENELkJBU0U2NFVSTDpyPS0xIT09dC5pbmRleE9mKCIrIiksbj0tMSE9PXQuaW5kZXhPZigiLyIpO2lmKHJ8fG4pdGhyb3cgRUQoZSwiSW52YWxpZCBjaGFyYWN0ZXIgJyIrKHI/IisiOiIvIikrIicgZm91bmQ6IGlzIGl0IGJhc2U2NCBlbmNvZGVkPyIpO3Q9dC5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKX12YXIgaTt0cnl7aT1hdG9iKHQpfWNhdGNoKHQpe3Rocm93IEVEKGUsIkludmFsaWQgY2hhcmFjdGVyIGZvdW5kIil9Zm9yKHZhciBvPW5ldyBVaW50OEFycmF5KGkubGVuZ3RoKSxzPTA7czxpLmxlbmd0aDtzKyspb1tzXT1pLmNoYXJDb2RlQXQocyk7cmV0dXJuIG99dmFyIFBEPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKHRoaXMuYmFzZTY0PSExLCh0aGlzLmNvbnRlbnRUeXBlPW51bGwpPT09KGU9dC5tYXRjaCgvXmRhdGE6KFteLF0rKT8sLykpKXRocm93IEVEKENELkRBVEFfVVJMLCJNdXN0IGJlIGZvcm1hdHRlZCAnZGF0YTpbPG1lZGlhdHlwZT5dWztiYXNlNjRdLDxkYXRhPiIpO3ZhciBuLHI9ZVsxXXx8bnVsbDtudWxsIT1yJiYodGhpcy5iYXNlNjQ9KG49IjtiYXNlNjQiLChlPXIpLmxlbmd0aD49bi5sZW5ndGgmJmUuc3Vic3RyaW5nKGUubGVuZ3RoLW4ubGVuZ3RoKT09PW4pLHRoaXMuY29udGVudFR5cGU9dGhpcy5iYXNlNjQ/ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC0iO2Jhc2U2NCIubGVuZ3RoKTpyKSx0aGlzLnJlc3Q9dC5zdWJzdHJpbmcodC5pbmRleE9mKCIsIikrMSl9O3ZhciBPRCxERD17U1RBVEVfQ0hBTkdFRDoic3RhdGVfY2hhbmdlZCJ9LHhEPXtSVU5OSU5HOiJydW5uaW5nIixQQVVTRUQ6InBhdXNlZCIsU1VDQ0VTUzoic3VjY2VzcyIsQ0FOQ0VMRUQ6ImNhbmNlbGVkIixFUlJPUjoiZXJyb3IifTtmdW5jdGlvbiBMRCh0KXtzd2l0Y2godCl7Y2FzZSJydW5uaW5nIjpjYXNlInBhdXNpbmciOmNhc2UiY2FuY2VsaW5nIjpyZXR1cm4geEQuUlVOTklORztjYXNlInBhdXNlZCI6cmV0dXJuIHhELlBBVVNFRDtjYXNlInN1Y2Nlc3MiOnJldHVybiB4RC5TVUNDRVNTO2Nhc2UiY2FuY2VsZWQiOnJldHVybiB4RC5DQU5DRUxFRDtjYXNlImVycm9yIjpkZWZhdWx0OnJldHVybiB4RC5FUlJPUn19KEdhPU9EPU9EfHx7fSlbR2EuTk9fRVJST1I9MF09Ik5PX0VSUk9SIixHYVtHYS5ORVRXT1JLX0VSUk9SPTFdPSJORVRXT1JLX0VSUk9SIixHYVtHYS5BQk9SVD0yXT0iQUJPUlQiO3ZhciBNRD0oRkQucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24odCxlLG4scil7aWYodGhpcy5zZW50Xyl0aHJvdyBTRCgiY2Fubm90IC5zZW5kKCkgbW9yZSB0aGFuIG9uY2UiKTtpZih0aGlzLnNlbnRfPSEwLHRoaXMueGhyXy5vcGVuKGUsdCwhMCksdm9pZCAwIT09cilmb3IodmFyIGkgaW4gcilyLmhhc093blByb3BlcnR5KGkpJiZ0aGlzLnhocl8uc2V0UmVxdWVzdEhlYWRlcihpLHJbaV0udG9TdHJpbmcoKSk7cmV0dXJuIHZvaWQgMCE9PW4/dGhpcy54aHJfLnNlbmQobik6dGhpcy54aHJfLnNlbmQoKSx0aGlzLnNlbmRQcm9taXNlX30sRkQucHJvdG90eXBlLmdldEVycm9yQ29kZT1mdW5jdGlvbigpe2lmKCF0aGlzLnNlbnRfKXRocm93IFNEKCJjYW5ub3QgLmdldEVycm9yQ29kZSgpIGJlZm9yZSBzZW5kaW5nIik7cmV0dXJuIHRoaXMuZXJyb3JDb2RlX30sRkQucHJvdG90eXBlLmdldFN0YXR1cz1mdW5jdGlvbigpe2lmKCF0aGlzLnNlbnRfKXRocm93IFNEKCJjYW5ub3QgLmdldFN0YXR1cygpIGJlZm9yZSBzZW5kaW5nIik7dHJ5e3JldHVybiB0aGlzLnhocl8uc3RhdHVzfWNhdGNoKHQpe3JldHVybi0xfX0sRkQucHJvdG90eXBlLmdldFJlc3BvbnNlVGV4dD1mdW5jdGlvbigpe2lmKCF0aGlzLnNlbnRfKXRocm93IFNEKCJjYW5ub3QgLmdldFJlc3BvbnNlVGV4dCgpIGJlZm9yZSBzZW5kaW5nIik7cmV0dXJuIHRoaXMueGhyXy5yZXNwb25zZVRleHR9LEZELnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMueGhyXy5hYm9ydCgpfSxGRC5wcm90b3R5cGUuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueGhyXy5nZXRSZXNwb25zZUhlYWRlcih0KX0sRkQucHJvdG90eXBlLmFkZFVwbG9hZFByb2dyZXNzTGlzdGVuZXI9ZnVuY3Rpb24odCl7bnVsbCE9dGhpcy54aHJfLnVwbG9hZCYmdGhpcy54aHJfLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsdCl9LEZELnByb3RvdHlwZS5yZW1vdmVVcGxvYWRQcm9ncmVzc0xpc3RlbmVyPWZ1bmN0aW9uKHQpe251bGwhPXRoaXMueGhyXy51cGxvYWQmJnRoaXMueGhyXy51cGxvYWQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLHQpfSxGRCk7ZnVuY3Rpb24gRkQoKXt2YXIgZT10aGlzO3RoaXMuc2VudF89ITEsdGhpcy54aHJfPW5ldyBYTUxIdHRwUmVxdWVzdCx0aGlzLmVycm9yQ29kZV89T0QuTk9fRVJST1IsdGhpcy5zZW5kUHJvbWlzZV89bmV3IFByb21pc2UoZnVuY3Rpb24odCl7ZS54aHJfLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixmdW5jdGlvbigpe2UuZXJyb3JDb2RlXz1PRC5BQk9SVCx0KGUpfSksZS54aHJfLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbigpe2UuZXJyb3JDb2RlXz1PRC5ORVRXT1JLX0VSUk9SLHQoZSl9KSxlLnhocl8uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXt0KGUpfSl9KX12YXIgVUQ9KGpELnByb3RvdHlwZS5jcmVhdGVYaHJJbz1mdW5jdGlvbigpe3JldHVybiBuZXcgTUR9LGpEKTtmdW5jdGlvbiBqRCgpe312YXIgcUQ9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWRC5wcm90b3R5cGUsInBhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXRoX30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVkQucHJvdG90eXBlLCJpc1Jvb3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMucGF0aC5sZW5ndGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksVkQucHJvdG90eXBlLmZ1bGxTZXJ2ZXJVcmw9ZnVuY3Rpb24oKXt2YXIgdD1lbmNvZGVVUklDb21wb25lbnQ7cmV0dXJuIi9iLyIrdCh0aGlzLmJ1Y2tldCkrIi9vLyIrdCh0aGlzLnBhdGgpfSxWRC5wcm90b3R5cGUuYnVja2V0T25seVNlcnZlclVybD1mdW5jdGlvbigpe3JldHVybiIvYi8iK2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmJ1Y2tldCkrIi9vIn0sVkQubWFrZUZyb21CdWNrZXRTcGVjPWZ1bmN0aW9uKGUpe3ZhciB0O3RyeXt0PVZELm1ha2VGcm9tVXJsKGUpfWNhdGNoKHQpe3JldHVybiBuZXcgVkQoZSwiIil9aWYoIiI9PT10LnBhdGgpcmV0dXJuIHQ7dGhyb3cgbmV3IHZEKCJpbnZhbGlkLWRlZmF1bHQtYnVja2V0IiwiSW52YWxpZCBkZWZhdWx0IGJ1Y2tldCAnIitlKyInLiIpfSxWRC5tYWtlRnJvbVVybD1mdW5jdGlvbih0KXt2YXIgZT1udWxsLG49IihbQS1aYS16MC05LlxcLV9dKykiO3ZhciByPW5ldyBSZWdFeHAoIl5nczovLyIrbisiKC8oLiopKT8kIiwiaSIpO2Z1bmN0aW9uIGkodCl7dC5wYXRoXz1kZWNvZGVVUklDb21wb25lbnQodC5wYXRoKX1mb3IodmFyIG89cEQucmVwbGFjZSgvWy5dL2csIlxcLiIpLHM9W3tyZWdleDpyLGluZGljZXM6e2J1Y2tldDoxLHBhdGg6M30scG9zdE1vZGlmeTpmdW5jdGlvbih0KXsiLyI9PT10LnBhdGguY2hhckF0KHQucGF0aC5sZW5ndGgtMSkmJih0LnBhdGhfPXQucGF0aF8uc2xpY2UoMCwtMSkpfX0se3JlZ2V4Om5ldyBSZWdFeHAoIl5odHRwcz86Ly8iK28rIi92W0EtWmEtejAtOV9dKy9iLyIrbisiL28oLyhbXj8jXSopLiopPyQiLCJpIiksaW5kaWNlczp7YnVja2V0OjEscGF0aDozfSxwb3N0TW9kaWZ5Oml9LHtyZWdleDpuZXcgUmVnRXhwKCJeaHR0cHM/Oi8vKD86c3RvcmFnZS5nb29nbGVhcGlzLmNvbXxzdG9yYWdlLmNsb3VkLmdvb2dsZS5jb20pLyIrbisiLyhbXj8jXSopIiwiaSIpLGluZGljZXM6e2J1Y2tldDoxLHBhdGg6Mn0scG9zdE1vZGlmeTppfV0sYT0wO2E8cy5sZW5ndGg7YSsrKXt2YXIgdT1zW2FdLGM9dS5yZWdleC5leGVjKHQpO2lmKGMpe2U9bmV3IFZEKGNbdS5pbmRpY2VzLmJ1Y2tldF0sY1t1LmluZGljZXMucGF0aF18fCIiKTt1LnBvc3RNb2RpZnkoZSk7YnJlYWt9fWlmKG51bGw9PWUpdGhyb3cgbmV3IHZEKCJpbnZhbGlkLXVybCIsIkludmFsaWQgVVJMICciK3QrIicuIik7cmV0dXJuIGV9LFZEKTtmdW5jdGlvbiBWRCh0LGUpe3RoaXMuYnVja2V0PXQsdGhpcy5wYXRoXz1lfXZhciBCRD0oS0QucHJvdG90eXBlLmdldFByb21pc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9taXNlX30sS0QucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbih0KXt9LEtEKTtmdW5jdGlvbiBLRCh0KXt0aGlzLnByb21pc2VfPVByb21pc2UucmVqZWN0KHQpfWZ1bmN0aW9uIFdEKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZ31mdW5jdGlvbiBIRCh0KXtyZXR1cm4gR0QoKSYmdCBpbnN0YW5jZW9mIEJsb2J9ZnVuY3Rpb24gR0QoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEJsb2J9ZnVuY3Rpb24gekQodCxlLG4scil7aWYocjxlKXRocm93IF9EKCJJbnZhbGlkIHZhbHVlIGZvciAnIit0KyInLiBFeHBlY3RlZCAiK2UrIiBvciBncmVhdGVyLiIpO2lmKG48cil0aHJvdyBfRCgiSW52YWxpZCB2YWx1ZSBmb3IgJyIrdCsiJy4gRXhwZWN0ZWQgIituKyIgb3IgbGVzcy4iKX1mdW5jdGlvbiBRRCh0KXtyZXR1cm4iaHR0cHM6Ly8iK3BEKyIvdjAiK3R9ZnVuY3Rpb24gWUQodCl7dmFyIGUsbj1lbmNvZGVVUklDb21wb25lbnQscj0iPyI7Zm9yKGUgaW4gdCl0Lmhhc093blByb3BlcnR5KGUpJiYocj1yKyhuKGUpKyI9IituKHRbZV0pKSsiJiIpO3JldHVybiByPXIuc2xpY2UoMCwtMSl9dmFyIFhEPShKRC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7dmFyIGUsbix0LHIsaSxvLHMsYSx1LGM9dGhpcztmdW5jdGlvbiBoKHQsZSl7dmFyIG4scj1jLnJlc29sdmVfLGk9Yy5yZWplY3RfLG89ZS54aHI7aWYoZS53YXNTdWNjZXNzQ29kZSl0cnl7dmFyIHM9Yy5jYWxsYmFja18obyxvLmdldFJlc3BvbnNlVGV4dCgpKTt2b2lkIDAhPT1zP3Iocyk6cigpfWNhdGNoKHQpe2kodCl9ZWxzZSBudWxsIT09bz8oKG49bUQoKSkuc2VydmVyUmVzcG9uc2U9by5nZXRSZXNwb25zZVRleHQoKSxjLmVycm9yQ2FsbGJhY2tfP2koYy5lcnJvckNhbGxiYWNrXyhvLG4pKTppKG4pKTplLmNhbmNlbGVkP2kobj0oYy5hcHBEZWxldGVfP0lEOmJEKSgpKTppKG49bmV3IHZEKCJyZXRyeS1saW1pdC1leGNlZWRlZCIsIk1heCByZXRyeSB0aW1lIGZvciBvcGVyYXRpb24gZXhjZWVkZWQsIHBsZWFzZSB0cnkgYWdhaW4uIikpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gMj09PXN9ZnVuY3Rpb24gZigpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTthfHwoYT0hMCxuLmFwcGx5KG51bGwsdCkpfWZ1bmN0aW9uIHAodCl7aT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aT1udWxsLGUoZCxsKCkpfSx0KX1mdW5jdGlvbiBkKHQpe2Zvcih2YXIgZT1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyllW24tMV09YXJndW1lbnRzW25dO2F8fCh0fHxsKCl8fG8/Zi5jYWxsLmFwcGx5KGYsbm8oW251bGwsdF0sZSkpOihyPDY0JiYocio9MikscCgxPT09cz8ocz0yLDApOjFlMyoocitNYXRoLnJhbmRvbSgpKSkpKX1mdW5jdGlvbiB2KHQpe3V8fCh1PSEwLGF8fChudWxsIT09aT8odHx8KHM9MiksY2xlYXJUaW1lb3V0KGkpLHAoMCkpOnR8fChzPTEpKSl9dGhpcy5jYW5jZWxlZF8/aCgwLG5ldyAkRCghMSxudWxsLCEwKSk6dGhpcy5iYWNrb2ZmSWRfPShlPWZ1bmN0aW9uKHIsdCl7ZnVuY3Rpb24gaSh0KXt2YXIgZT10LmxvYWRlZCx0PXQubGVuZ3RoQ29tcHV0YWJsZT90LnRvdGFsOi0xO251bGwhPT1jLnByb2dyZXNzQ2FsbGJhY2tfJiZjLnByb2dyZXNzQ2FsbGJhY2tfKGUsdCl9dD9yKCExLG5ldyAkRCghMSxudWxsLCEwKSk6KHQ9Yy5wb29sXy5jcmVhdGVYaHJJbygpLGMucGVuZGluZ1hocl89dCxudWxsIT09Yy5wcm9ncmVzc0NhbGxiYWNrXyYmdC5hZGRVcGxvYWRQcm9ncmVzc0xpc3RlbmVyKGkpLHQuc2VuZChjLnVybF8sYy5tZXRob2RfLGMuYm9keV8sYy5oZWFkZXJzXykudGhlbihmdW5jdGlvbih0KXtudWxsIT09Yy5wcm9ncmVzc0NhbGxiYWNrXyYmdC5yZW1vdmVVcGxvYWRQcm9ncmVzc0xpc3RlbmVyKGkpLGMucGVuZGluZ1hocl89bnVsbDt2YXIgZT10LmdldEVycm9yQ29kZSgpPT09T0QuTk9fRVJST1Isbj10LmdldFN0YXR1cygpO2UmJiFjLmlzUmV0cnlTdGF0dXNDb2RlXyhuKT8obj0tMSE9PWMuc3VjY2Vzc0NvZGVzXy5pbmRleE9mKG4pLHIoITAsbmV3ICREKG4sdCkpKToodD10LmdldEVycm9yQ29kZSgpPT09T0QuQUJPUlQscighMSxuZXcgJEQoITEsbnVsbCx0KSkpfSkpfSxuPWgsdD10aGlzLnRpbWVvdXRfLGk9bnVsbCx1PWE9bz0hKHI9MSkscChzPTApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtvPSEwLHYoITApfSx0KSx2KX0sSkQucHJvdG90eXBlLmdldFByb21pc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9taXNlX30sSkQucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbih0KXt0aGlzLmNhbmNlbGVkXz0hMCx0aGlzLmFwcERlbGV0ZV89dHx8ITEsbnVsbCE9PXRoaXMuYmFja29mZklkXyYmKDAsdGhpcy5iYWNrb2ZmSWRfKSghMSksbnVsbCE9PXRoaXMucGVuZGluZ1hocl8mJnRoaXMucGVuZGluZ1hocl8uYWJvcnQoKX0sSkQucHJvdG90eXBlLmlzUmV0cnlTdGF0dXNDb2RlXz1mdW5jdGlvbih0KXt2YXIgZT01MDA8PXQmJnQ8NjAwLG49LTEhPT1bNDA4LDQyOV0uaW5kZXhPZih0KSx0PS0xIT09dGhpcy5hZGRpdGlvbmFsUmV0cnlDb2Rlc18uaW5kZXhPZih0KTtyZXR1cm4gZXx8bnx8dH0sSkQpO2Z1bmN0aW9uIEpEKHQsZSxuLHIsaSxvLHMsYSx1LGMsaCl7dmFyIGw9dGhpczt0aGlzLnBlbmRpbmdYaHJfPW51bGwsdGhpcy5iYWNrb2ZmSWRfPW51bGwsdGhpcy5jYW5jZWxlZF89ITEsdGhpcy5hcHBEZWxldGVfPSExLHRoaXMudXJsXz10LHRoaXMubWV0aG9kXz1lLHRoaXMuaGVhZGVyc189bix0aGlzLmJvZHlfPXIsdGhpcy5zdWNjZXNzQ29kZXNfPWkuc2xpY2UoKSx0aGlzLmFkZGl0aW9uYWxSZXRyeUNvZGVzXz1vLnNsaWNlKCksdGhpcy5jYWxsYmFja189cyx0aGlzLmVycm9yQ2FsbGJhY2tfPWEsdGhpcy5wcm9ncmVzc0NhbGxiYWNrXz1jLHRoaXMudGltZW91dF89dSx0aGlzLnBvb2xfPWgsdGhpcy5wcm9taXNlXz1uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe2wucmVzb2x2ZV89dCxsLnJlamVjdF89ZSxsLnN0YXJ0XygpfSl9dmFyICREPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLndhc1N1Y2Nlc3NDb2RlPXQsdGhpcy54aHI9ZSx0aGlzLmNhbmNlbGVkPSEhbn07ZnVuY3Rpb24gWkQoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iQnVpbGRlcj9CbG9iQnVpbGRlcjoidW5kZWZpbmVkIiE9dHlwZW9mIFdlYktpdEJsb2JCdWlsZGVyP1dlYktpdEJsb2JCdWlsZGVyOnZvaWQgMDtpZih2b2lkIDAhPT1uKXtmb3IodmFyIHI9bmV3IG4saT0wO2k8dC5sZW5ndGg7aSsrKXIuYXBwZW5kKHRbaV0pO3JldHVybiByLmdldEJsb2IoKX1pZihHRCgpKXJldHVybiBuZXcgQmxvYih0KTt0aHJvdyBuZXcgdkQoInVuc3VwcG9ydGVkLWVudmlyb25tZW50IiwiVGhpcyBicm93c2VyIGRvZXNuJ3Qgc2VlbSB0byBzdXBwb3J0IGNyZWF0aW5nIEJsb2JzIil9dmFyIHR4PShleC5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNpemVffSxleC5wcm90b3R5cGUudHlwZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGVffSxleC5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXtpZihIRCh0aGlzLmRhdGFfKSl7dmFyIG49dGhpcy5kYXRhXyxyPShpPXQscj1lLChuPW4pLndlYmtpdFNsaWNlP24ud2Via2l0U2xpY2UoaSxyKTpuLm1velNsaWNlP24ubW96U2xpY2UoaSxyKTpuLnNsaWNlP24uc2xpY2UoaSxyKTpudWxsKTtyZXR1cm4gbnVsbD09PXI/bnVsbDpuZXcgZXgocil9dmFyIGkscjtyZXR1cm4gbmV3IGV4KG5ldyBVaW50OEFycmF5KHRoaXMuZGF0YV8uYnVmZmVyLHQsZS10KSwhMCl9LGV4LmdldEJsb2I9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07aWYoR0QoKSl7dmFyIG49dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBleD90LmRhdGFfOnR9KTtyZXR1cm4gbmV3IGV4KFpELmFwcGx5KG51bGwsbikpfXZhciBuPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBXRCh0KT9BRChDRC5SQVcsdCkuZGF0YTp0LmRhdGFffSkscj0wO24uZm9yRWFjaChmdW5jdGlvbih0KXtyKz10LmJ5dGVMZW5ndGh9KTt2YXIgaT1uZXcgVWludDhBcnJheShyKSxvPTA7cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpW28rK109dFtlXX0pLG5ldyBleChpLCEwKX0sZXgucHJvdG90eXBlLnVwbG9hZERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhX30sZXgpO2Z1bmN0aW9uIGV4KHQsZSl7dmFyIG49MCxyPSIiO0hEKHQpPyhuPSh0aGlzLmRhdGFfPXQpLnNpemUscj10LnR5cGUpOnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8oZT90aGlzLmRhdGFfPW5ldyBVaW50OEFycmF5KHQpOih0aGlzLmRhdGFfPW5ldyBVaW50OEFycmF5KHQuYnl0ZUxlbmd0aCksdGhpcy5kYXRhXy5zZXQobmV3IFVpbnQ4QXJyYXkodCkpKSxuPXRoaXMuZGF0YV8ubGVuZ3RoKTp0IGluc3RhbmNlb2YgVWludDhBcnJheSYmKGU/dGhpcy5kYXRhXz10Oih0aGlzLmRhdGFfPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKSx0aGlzLmRhdGFfLnNldCh0KSksbj10Lmxlbmd0aCksdGhpcy5zaXplXz1uLHRoaXMudHlwZV89cn1mdW5jdGlvbiBueCh0KXt2YXIgZSxuO3RyeXtlPUpTT04ucGFyc2UodCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9cmV0dXJuIm9iamVjdCIhPXR5cGVvZihuPWUpfHxBcnJheS5pc0FycmF5KG4pP251bGw6ZX1mdW5jdGlvbiByeCh0KXt2YXIgZT10Lmxhc3RJbmRleE9mKCIvIix0Lmxlbmd0aC0yKTtyZXR1cm4tMT09PWU/dDp0LnNsaWNlKGUrMSl9ZnVuY3Rpb24gaXgodCxlKXtyZXR1cm4gZX12YXIgb3g9ZnVuY3Rpb24odCxlLG4scil7dGhpcy5zZXJ2ZXI9dCx0aGlzLmxvY2FsPWV8fHQsdGhpcy53cml0YWJsZT0hIW4sdGhpcy54Zm9ybT1yfHxpeH0sc3g9bnVsbDtmdW5jdGlvbiBheCgpe2lmKHN4KXJldHVybiBzeDt2YXIgdD1bXTt0LnB1c2gobmV3IG94KCJidWNrZXQiKSksdC5wdXNoKG5ldyBveCgiZ2VuZXJhdGlvbiIpKSx0LnB1c2gobmV3IG94KCJtZXRhZ2VuZXJhdGlvbiIpKSx0LnB1c2gobmV3IG94KCJuYW1lIiwiZnVsbFBhdGgiLCEwKSk7dmFyIGU9bmV3IG94KCJuYW1lIik7ZS54Zm9ybT1mdW5jdGlvbih0LGUpe3JldHVybiFXRChlPWUpfHxlLmxlbmd0aDwyP2U6cngoZSl9LHQucHVzaChlKTtlPW5ldyBveCgic2l6ZSIpO3JldHVybiBlLnhmb3JtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWU/TnVtYmVyKGUpOmV9LHQucHVzaChlKSx0LnB1c2gobmV3IG94KCJ0aW1lQ3JlYXRlZCIpKSx0LnB1c2gobmV3IG94KCJ1cGRhdGVkIikpLHQucHVzaChuZXcgb3goIm1kNUhhc2giLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjYWNoZUNvbnRyb2wiLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjb250ZW50RGlzcG9zaXRpb24iLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjb250ZW50RW5jb2RpbmciLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjb250ZW50TGFuZ3VhZ2UiLG51bGwsITApKSx0LnB1c2gobmV3IG94KCJjb250ZW50VHlwZSIsbnVsbCwhMCkpLHQucHVzaChuZXcgb3goIm1ldGFkYXRhIiwiY3VzdG9tTWV0YWRhdGEiLCEwKSksc3g9dH1mdW5jdGlvbiB1eChuLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJyZWYiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uLmJ1Y2tldCxlPW4uZnVsbFBhdGgsZT1uZXcgcUQodCxlKTtyZXR1cm4gci5fbWFrZVN0b3JhZ2VSZWZlcmVuY2UoZSl9fSl9ZnVuY3Rpb24gY3godCxlLG4pe2U9bngoZSk7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9e3R5cGU6ImZpbGUifSxpPW4ubGVuZ3RoLG89MDtvPGk7bysrKXt2YXIgcz1uW29dO3Jbcy5sb2NhbF09cy54Zm9ybShyLGVbcy5zZXJ2ZXJdKX1yZXR1cm4gdXgocix0KSxyfSh0LGUsbil9ZnVuY3Rpb24gaHgodCxlKXtmb3IodmFyIG49e30scj1lLmxlbmd0aCxpPTA7aTxyO2krKyl7dmFyIG89ZVtpXTtvLndyaXRhYmxlJiYobltvLnNlcnZlcl09dFtvLmxvY2FsXSl9cmV0dXJuIEpTT04uc3RyaW5naWZ5KG4pfXZhciBseD0icHJlZml4ZXMiLGZ4PSJpdGVtcyI7ZnVuY3Rpb24gcHgodCxlLG4pe249bngobik7aWYobnVsbD09PW4pcmV0dXJuIG51bGw7cmV0dXJuIGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj17cHJlZml4ZXM6W10saXRlbXM6W10sbmV4dFBhZ2VUb2tlbjpuLm5leHRQYWdlVG9rZW59O2lmKG5bbHhdKWZvcih2YXIgaT0wLG89bltseF07aTxvLmxlbmd0aDtpKyspe3ZhciBzPW9baV0ucmVwbGFjZSgvXC8kLywiIiksYT10Ll9tYWtlU3RvcmFnZVJlZmVyZW5jZShuZXcgcUQoZSxzKSk7ci5wcmVmaXhlcy5wdXNoKGEpfWlmKG5bZnhdKWZvcih2YXIgdT0wLGM9bltmeF07dTxjLmxlbmd0aDt1Kyspe3ZhciBoPWNbdV0sYT10Ll9tYWtlU3RvcmFnZVJlZmVyZW5jZShuZXcgcUQoZSxoLm5hbWUpKTtyLml0ZW1zLnB1c2goYSl9cmV0dXJuIHJ9KHQsZSxuKX12YXIgZHg9ZnVuY3Rpb24odCxlLG4scil7dGhpcy51cmw9dCx0aGlzLm1ldGhvZD1lLHRoaXMuaGFuZGxlcj1uLHRoaXMudGltZW91dD1yLHRoaXMudXJsUGFyYW1zPXt9LHRoaXMuaGVhZGVycz17fSx0aGlzLmJvZHk9bnVsbCx0aGlzLmVycm9ySGFuZGxlcj1udWxsLHRoaXMucHJvZ3Jlc3NDYWxsYmFjaz1udWxsLHRoaXMuc3VjY2Vzc0NvZGVzPVsyMDBdLHRoaXMuYWRkaXRpb25hbFJldHJ5Q29kZXM9W119O2Z1bmN0aW9uIHZ4KHQpe2lmKCF0KXRocm93IG1EKCl9ZnVuY3Rpb24gZ3gobixyKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gdngobnVsbCE9PShlPWN4KG4sZSxyKSkpLGV9fWZ1bmN0aW9uIHl4KG4scil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZ4KG51bGwhPT0oZT1weChuLHIsZSkpKSxlfX1mdW5jdGlvbiBteChyLGkpe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciBuPWN4KHIsZSxpKTtyZXR1cm4gdngobnVsbCE9PW4pLGZ1bmN0aW9uKHIsdCl7aWYobnVsbD09PSh0PW54KHQpKSlyZXR1cm4gbnVsbDtpZighV0QodC5kb3dubG9hZFRva2VucykpcmV0dXJuIG51bGw7aWYoMD09PSh0PXQuZG93bmxvYWRUb2tlbnMpLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgaT1lbmNvZGVVUklDb21wb25lbnQ7cmV0dXJuIHQuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24odCl7dmFyIGU9ci5idWNrZXQsbj1yLmZ1bGxQYXRoO3JldHVybiBRRCgiL2IvIitpKGUpKyIvby8iK2kobikpK1lEKHthbHQ6Im1lZGlhIix0b2tlbjp0fSl9KVswXX0obixlKX19ZnVuY3Rpb24gYngoaSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIG4scj00MDE9PT10LmdldFN0YXR1cygpP25ldyB2RCgidW5hdXRoZW50aWNhdGVkIiwiVXNlciBpcyBub3QgYXV0aGVudGljYXRlZCwgcGxlYXNlIGF1dGhlbnRpY2F0ZSB1c2luZyBGaXJlYmFzZSBBdXRoZW50aWNhdGlvbiBhbmQgdHJ5IGFnYWluLiIpOjQwMj09PXQuZ2V0U3RhdHVzKCk/KG49aS5idWNrZXQsbmV3IHZEKCJxdW90YS1leGNlZWRlZCIsIlF1b3RhIGZvciBidWNrZXQgJyIrbisiJyBleGNlZWRlZCwgcGxlYXNlIHZpZXcgcXVvdGEgb24gaHR0cHM6Ly9maXJlYmFzZS5nb29nbGUuY29tL3ByaWNpbmcvLiIpKTo0MDM9PT10LmdldFN0YXR1cygpPyhyPWkucGF0aCxuZXcgdkQoInVuYXV0aG9yaXplZCIsIlVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyAnIityKyInLiIpKTplO3JldHVybiByLnNlcnZlclJlc3BvbnNlPWUuc2VydmVyUmVzcG9uc2Uscn19ZnVuY3Rpb24gd3gocil7dmFyIGk9Yngocik7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIG49aSh0LGUpO3JldHVybiA0MDQ9PT10LmdldFN0YXR1cygpJiYodD1yLnBhdGgsbj1uZXcgdkQoIm9iamVjdC1ub3QtZm91bmQiLCJPYmplY3QgJyIrdCsiJyBkb2VzIG5vdCBleGlzdC4iKSksbi5zZXJ2ZXJSZXNwb25zZT1lLnNlcnZlclJlc3BvbnNlLG59fWZ1bmN0aW9uIF94KHQsZSxuKXt2YXIgcj1RRChlLmZ1bGxTZXJ2ZXJVcmwoKSksaT10Lm1heE9wZXJhdGlvblJldHJ5VGltZSxpPW5ldyBkeChyLCJHRVQiLGd4KHQsbiksaSk7cmV0dXJuIGkuZXJyb3JIYW5kbGVyPXd4KGUpLGl9ZnVuY3Rpb24gSXgodCxlLG4pe249T2JqZWN0LmFzc2lnbih7fSxuKTtyZXR1cm4gbi5mdWxsUGF0aD10LnBhdGgsbi5zaXplPWUuc2l6ZSgpLG4uY29udGVudFR5cGV8fChuLmNvbnRlbnRUeXBlPSh0PWUsKGU9bnVsbCkmJmUuY29udGVudFR5cGV8fHQmJnQudHlwZSgpfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIikpLG59ZnVuY3Rpb24gVHgodCxlLG4scixpKXt2YXIgbz1lLmJ1Y2tldE9ubHlTZXJ2ZXJVcmwoKSxzPXsiWC1Hb29nLVVwbG9hZC1Qcm90b2NvbCI6Im11bHRpcGFydCJ9O3ZhciBhPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PSIiLGU9MDtlPDI7ZSsrKXQrPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5zbGljZSgyKTtyZXR1cm4gdH0oKTtzWyJDb250ZW50LVR5cGUiXT0ibXVsdGlwYXJ0L3JlbGF0ZWQ7IGJvdW5kYXJ5PSIrYTt2YXIgdT1JeChlLHIsaSksaT0iLS0iK2ErIlxyXG5Db250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLThcclxuXHJcbiIraHgodSxuKSsiXHJcbi0tIithKyJcclxuQ29udGVudC1UeXBlOiAiK3UuY29udGVudFR5cGUrIlxyXG5cclxuIixhPSJcclxuLS0iK2ErIi0tIixyPXR4LmdldEJsb2IoaSxyLGEpO2lmKG51bGw9PT1yKXRocm93IHdEKCk7YT17bmFtZTp1LmZ1bGxQYXRofSx1PVFEKG8pLG89dC5tYXhVcGxvYWRSZXRyeVRpbWUsbz1uZXcgZHgodSwiUE9TVCIsZ3godCxuKSxvKTtyZXR1cm4gby51cmxQYXJhbXM9YSxvLmhlYWRlcnM9cyxvLmJvZHk9ci51cGxvYWREYXRhKCksby5lcnJvckhhbmRsZXI9YngoZSksb312YXIgRXg9ZnVuY3Rpb24odCxlLG4scil7dGhpcy5jdXJyZW50PXQsdGhpcy50b3RhbD1lLHRoaXMuZmluYWxpemVkPSEhbix0aGlzLm1ldGFkYXRhPXJ8fG51bGx9O2Z1bmN0aW9uIFN4KHQsZSl7dmFyIG49bnVsbDt0cnl7bj10LmdldFJlc3BvbnNlSGVhZGVyKCJYLUdvb2ctVXBsb2FkLVN0YXR1cyIpfWNhdGNoKHQpe3Z4KCExKX1yZXR1cm4gdngoISFuJiYtMSE9PShlfHxbImFjdGl2ZSJdKS5pbmRleE9mKG4pKSxufWZ1bmN0aW9uIEN4KHQsZSxuLHIsaSl7dmFyIG89ZS5idWNrZXRPbmx5U2VydmVyVXJsKCkscz1JeChlLHIsaSksaT17bmFtZTpzLmZ1bGxQYXRofSxvPVFEKG8pLHI9eyJYLUdvb2ctVXBsb2FkLVByb3RvY29sIjoicmVzdW1hYmxlIiwiWC1Hb29nLVVwbG9hZC1Db21tYW5kIjoic3RhcnQiLCJYLUdvb2ctVXBsb2FkLUhlYWRlci1Db250ZW50LUxlbmd0aCI6ci5zaXplKCksIlgtR29vZy1VcGxvYWQtSGVhZGVyLUNvbnRlbnQtVHlwZSI6cy5jb250ZW50VHlwZSwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCJ9LG49aHgocyxuKSx0PXQubWF4VXBsb2FkUmV0cnlUaW1lO3Q9bmV3IGR4KG8sIlBPU1QiLGZ1bmN0aW9uKHQpe3ZhciBlO1N4KHQpO3RyeXtlPXQuZ2V0UmVzcG9uc2VIZWFkZXIoIlgtR29vZy1VcGxvYWQtVVJMIil9Y2F0Y2godCl7dngoITEpfXJldHVybiB2eChXRChlKSksZX0sdCk7cmV0dXJuIHQudXJsUGFyYW1zPWksdC5oZWFkZXJzPXIsdC5ib2R5PW4sdC5lcnJvckhhbmRsZXI9YngoZSksdH1mdW5jdGlvbiBOeCh0LGUsbixpKXt0PXQubWF4VXBsb2FkUmV0cnlUaW1lLHQ9bmV3IGR4KG4sIlBPU1QiLGZ1bmN0aW9uKHQpe3ZhciBlPVN4KHQsWyJhY3RpdmUiLCJmaW5hbCJdKSxuPW51bGw7dHJ5e249dC5nZXRSZXNwb25zZUhlYWRlcigiWC1Hb29nLVVwbG9hZC1TaXplLVJlY2VpdmVkIil9Y2F0Y2godCl7dngoITEpfW58fHZ4KCExKTt2YXIgcj1OdW1iZXIobik7cmV0dXJuIHZ4KCFpc05hTihyKSksbmV3IEV4KHIsaS5zaXplKCksImZpbmFsIj09PWUpfSx0KTtyZXR1cm4gdC5oZWFkZXJzPXsiWC1Hb29nLVVwbG9hZC1Db21tYW5kIjoicXVlcnkifSx0LmVycm9ySGFuZGxlcj1ieChlKSx0fWZ1bmN0aW9uIEF4KHQsbyxlLHMsbixhLHIsaSl7dmFyIHU9bmV3IEV4KDAsMCk7aWYocj8odS5jdXJyZW50PXIuY3VycmVudCx1LnRvdGFsPXIudG90YWwpOih1LmN1cnJlbnQ9MCx1LnRvdGFsPXMuc2l6ZSgpKSxzLnNpemUoKSE9PXUudG90YWwpdGhyb3cgbmV3IHZEKCJzZXJ2ZXItZmlsZS13cm9uZy1zaXplIiwiU2VydmVyIHJlY29yZGVkIGluY29ycmVjdCB1cGxvYWQgZmlsZSBzaXplLCBwbGVhc2UgcmV0cnkgdGhlIHVwbG9hZC4iKTt2YXIgYz11LnRvdGFsLXUuY3VycmVudCxoPWM7MDxuJiYoaD1NYXRoLm1pbihoLG4pKTtyPXUuY3VycmVudCxuPXIraCxjPXsiWC1Hb29nLVVwbG9hZC1Db21tYW5kIjpoPT09Yz8idXBsb2FkLCBmaW5hbGl6ZSI6InVwbG9hZCIsIlgtR29vZy1VcGxvYWQtT2Zmc2V0Ijp1LmN1cnJlbnR9LHI9cy5zbGljZShyLG4pO2lmKG51bGw9PT1yKXRocm93IHdEKCk7bj1vLm1heFVwbG9hZFJldHJ5VGltZSxuPW5ldyBkeChlLCJQT1NUIixmdW5jdGlvbih0LGUpe3ZhciBuPVN4KHQsWyJhY3RpdmUiLCJmaW5hbCJdKSxyPXUuY3VycmVudCtoLGk9cy5zaXplKCksZT0iZmluYWwiPT09bj9neChvLGEpKHQsZSk6bnVsbDtyZXR1cm4gbmV3IEV4KHIsaSwiZmluYWwiPT09bixlKX0sbik7cmV0dXJuIG4uaGVhZGVycz1jLG4uYm9keT1yLnVwbG9hZERhdGEoKSxuLnByb2dyZXNzQ2FsbGJhY2s9aXx8bnVsbCxuLmVycm9ySGFuZGxlcj1ieCh0KSxufXZhciBreD1mdW5jdGlvbih0LGUsbil7ImZ1bmN0aW9uIj09dHlwZW9mIHR8fG51bGwhPWV8fG51bGwhPW4/KHRoaXMubmV4dD10LHRoaXMuZXJyb3I9ZSx0aGlzLmNvbXBsZXRlPW4pOih0PXQsdGhpcy5uZXh0PXQubmV4dCx0aGlzLmVycm9yPXQuZXJyb3IsdGhpcy5jb21wbGV0ZT10LmNvbXBsZXRlKX07ZnVuY3Rpb24gUngobil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseSh2b2lkIDAsdCl9KX19dmFyIFB4PShPeC5wcm90b3R5cGUuX21ha2VQcm9ncmVzc0NhbGxiYWNrPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPXRoaXMuX3RyYW5zZmVycmVkO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5fdXBkYXRlUHJvZ3Jlc3Mobit0KX19LE94LnByb3RvdHlwZS5fc2hvdWxkRG9SZXN1bWFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIDI2MjE0NDx0LnNpemUoKX0sT3gucHJvdG90eXBlLl9zdGFydD1mdW5jdGlvbigpeyJydW5uaW5nIj09PXRoaXMuX3N0YXRlJiZ2b2lkIDA9PT10aGlzLl9yZXF1ZXN0JiYodGhpcy5fcmVzdW1hYmxlP3ZvaWQgMD09PXRoaXMuX3VwbG9hZFVybD90aGlzLl9jcmVhdGVSZXN1bWFibGUoKTp0aGlzLl9uZWVkVG9GZXRjaFN0YXR1cz90aGlzLl9mZXRjaFN0YXR1cygpOnRoaXMuX25lZWRUb0ZldGNoTWV0YWRhdGE/dGhpcy5fZmV0Y2hNZXRhZGF0YSgpOnRoaXMuX2NvbnRpbnVlVXBsb2FkKCk6dGhpcy5fb25lU2hvdFVwbG9hZCgpKX0sT3gucHJvdG90eXBlLl9yZXNvbHZlVG9rZW49ZnVuY3Rpb24oZSl7dmFyIG49dGhpczt0aGlzLl9yZWYuc3RvcmFnZS5fZ2V0QXV0aFRva2VuKCkudGhlbihmdW5jdGlvbih0KXtzd2l0Y2gobi5fc3RhdGUpe2Nhc2UicnVubmluZyI6ZSh0KTticmVhaztjYXNlImNhbmNlbGluZyI6bi5fdHJhbnNpdGlvbigiY2FuY2VsZWQiKTticmVhaztjYXNlInBhdXNpbmciOm4uX3RyYW5zaXRpb24oInBhdXNlZCIpfX0pfSxPeC5wcm90b3R5cGUuX2NyZWF0ZVJlc3VtYWJsZT1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fcmVzb2x2ZVRva2VuKGZ1bmN0aW9uKHQpe3ZhciBlPUN4KG4uX3JlZi5zdG9yYWdlLG4uX3JlZi5fbG9jYXRpb24sbi5fbWFwcGluZ3Msbi5fYmxvYixuLl9tZXRhZGF0YSksdD1uLl9yZWYuc3RvcmFnZS5fbWFrZVJlcXVlc3QoZSx0KTsobi5fcmVxdWVzdD10KS5nZXRQcm9taXNlKCkudGhlbihmdW5jdGlvbih0KXtuLl9yZXF1ZXN0PXZvaWQgMCxuLl91cGxvYWRVcmw9dCxuLl9uZWVkVG9GZXRjaFN0YXR1cz0hMSxuLmNvbXBsZXRlVHJhbnNpdGlvbnNfKCl9LG4uX2Vycm9ySGFuZGxlcil9KX0sT3gucHJvdG90eXBlLl9mZXRjaFN0YXR1cz1mdW5jdGlvbigpe3ZhciBuPXRoaXMscj10aGlzLl91cGxvYWRVcmw7dGhpcy5fcmVzb2x2ZVRva2VuKGZ1bmN0aW9uKHQpe3ZhciBlPU54KG4uX3JlZi5zdG9yYWdlLG4uX3JlZi5fbG9jYXRpb24scixuLl9ibG9iKSx0PW4uX3JlZi5zdG9yYWdlLl9tYWtlUmVxdWVzdChlLHQpOyhuLl9yZXF1ZXN0PXQpLmdldFByb21pc2UoKS50aGVuKGZ1bmN0aW9uKHQpe24uX3JlcXVlc3Q9dm9pZCAwLG4uX3VwZGF0ZVByb2dyZXNzKHQuY3VycmVudCksbi5fbmVlZFRvRmV0Y2hTdGF0dXM9ITEsdC5maW5hbGl6ZWQmJihuLl9uZWVkVG9GZXRjaE1ldGFkYXRhPSEwKSxuLmNvbXBsZXRlVHJhbnNpdGlvbnNfKCl9LG4uX2Vycm9ySGFuZGxlcil9KX0sT3gucHJvdG90eXBlLl9jb250aW51ZVVwbG9hZD1mdW5jdGlvbigpe3ZhciBuPXRoaXMscj0yNjIxNDQqdGhpcy5fY2h1bmtNdWx0aXBsaWVyLGk9bmV3IEV4KHRoaXMuX3RyYW5zZmVycmVkLHRoaXMuX2Jsb2Iuc2l6ZSgpKSxvPXRoaXMuX3VwbG9hZFVybDt0aGlzLl9yZXNvbHZlVG9rZW4oZnVuY3Rpb24odCl7dmFyIGU7dHJ5e2U9QXgobi5fcmVmLl9sb2NhdGlvbixuLl9yZWYuc3RvcmFnZSxvLG4uX2Jsb2IscixuLl9tYXBwaW5ncyxpLG4uX21ha2VQcm9ncmVzc0NhbGxiYWNrKCkpfWNhdGNoKHQpe3JldHVybiBuLl9lcnJvcj10LHZvaWQgbi5fdHJhbnNpdGlvbigiZXJyb3IiKX10PW4uX3JlZi5zdG9yYWdlLl9tYWtlUmVxdWVzdChlLHQpOyhuLl9yZXF1ZXN0PXQpLmdldFByb21pc2UoKS50aGVuKGZ1bmN0aW9uKHQpe24uX2luY3JlYXNlTXVsdGlwbGllcigpLG4uX3JlcXVlc3Q9dm9pZCAwLG4uX3VwZGF0ZVByb2dyZXNzKHQuY3VycmVudCksdC5maW5hbGl6ZWQ/KG4uX21ldGFkYXRhPXQubWV0YWRhdGEsbi5fdHJhbnNpdGlvbigic3VjY2VzcyIpKTpuLmNvbXBsZXRlVHJhbnNpdGlvbnNfKCl9LG4uX2Vycm9ySGFuZGxlcil9KX0sT3gucHJvdG90eXBlLl9pbmNyZWFzZU11bHRpcGxpZXI9ZnVuY3Rpb24oKXsyNjIxNDQqdGhpcy5fY2h1bmtNdWx0aXBsaWVyPDMzNTU0NDMyJiYodGhpcy5fY2h1bmtNdWx0aXBsaWVyKj0yKX0sT3gucHJvdG90eXBlLl9mZXRjaE1ldGFkYXRhPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLl9yZXNvbHZlVG9rZW4oZnVuY3Rpb24odCl7dmFyIGU9X3gobi5fcmVmLnN0b3JhZ2Usbi5fcmVmLl9sb2NhdGlvbixuLl9tYXBwaW5ncyksdD1uLl9yZWYuc3RvcmFnZS5fbWFrZVJlcXVlc3QoZSx0KTsobi5fcmVxdWVzdD10KS5nZXRQcm9taXNlKCkudGhlbihmdW5jdGlvbih0KXtuLl9yZXF1ZXN0PXZvaWQgMCxuLl9tZXRhZGF0YT10LG4uX3RyYW5zaXRpb24oInN1Y2Nlc3MiKX0sbi5fbWV0YWRhdGFFcnJvckhhbmRsZXIpfSl9LE94LnByb3RvdHlwZS5fb25lU2hvdFVwbG9hZD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5fcmVzb2x2ZVRva2VuKGZ1bmN0aW9uKHQpe3ZhciBlPVR4KG4uX3JlZi5zdG9yYWdlLG4uX3JlZi5fbG9jYXRpb24sbi5fbWFwcGluZ3Msbi5fYmxvYixuLl9tZXRhZGF0YSksdD1uLl9yZWYuc3RvcmFnZS5fbWFrZVJlcXVlc3QoZSx0KTsobi5fcmVxdWVzdD10KS5nZXRQcm9taXNlKCkudGhlbihmdW5jdGlvbih0KXtuLl9yZXF1ZXN0PXZvaWQgMCxuLl9tZXRhZGF0YT10LG4uX3VwZGF0ZVByb2dyZXNzKG4uX2Jsb2Iuc2l6ZSgpKSxuLl90cmFuc2l0aW9uKCJzdWNjZXNzIil9LG4uX2Vycm9ySGFuZGxlcil9KX0sT3gucHJvdG90eXBlLl91cGRhdGVQcm9ncmVzcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl90cmFuc2ZlcnJlZDt0aGlzLl90cmFuc2ZlcnJlZD10LHRoaXMuX3RyYW5zZmVycmVkIT09ZSYmdGhpcy5fbm90aWZ5T2JzZXJ2ZXJzKCl9LE94LnByb3RvdHlwZS5fdHJhbnNpdGlvbj1mdW5jdGlvbih0KXtpZih0aGlzLl9zdGF0ZSE9PXQpc3dpdGNoKHQpe2Nhc2UiY2FuY2VsaW5nIjpjYXNlInBhdXNpbmciOnRoaXMuX3N0YXRlPXQsdm9pZCAwIT09dGhpcy5fcmVxdWVzdCYmdGhpcy5fcmVxdWVzdC5jYW5jZWwoKTticmVhaztjYXNlInJ1bm5pbmciOnZhciBlPSJwYXVzZWQiPT09dGhpcy5fc3RhdGU7dGhpcy5fc3RhdGU9dCxlJiYodGhpcy5fbm90aWZ5T2JzZXJ2ZXJzKCksdGhpcy5fc3RhcnQoKSk7YnJlYWs7Y2FzZSJwYXVzZWQiOnRoaXMuX3N0YXRlPXQsdGhpcy5fbm90aWZ5T2JzZXJ2ZXJzKCk7YnJlYWs7Y2FzZSJjYW5jZWxlZCI6dGhpcy5fZXJyb3I9YkQoKSx0aGlzLl9zdGF0ZT10LHRoaXMuX25vdGlmeU9ic2VydmVycygpO2JyZWFrO2Nhc2UiZXJyb3IiOmNhc2Uic3VjY2VzcyI6dGhpcy5fc3RhdGU9dCx0aGlzLl9ub3RpZnlPYnNlcnZlcnMoKX19LE94LnByb3RvdHlwZS5jb21wbGV0ZVRyYW5zaXRpb25zXz1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9zdGF0ZSl7Y2FzZSJwYXVzaW5nIjp0aGlzLl90cmFuc2l0aW9uKCJwYXVzZWQiKTticmVhaztjYXNlImNhbmNlbGluZyI6dGhpcy5fdHJhbnNpdGlvbigiY2FuY2VsZWQiKTticmVhaztjYXNlInJ1bm5pbmciOnRoaXMuX3N0YXJ0KCl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoT3gucHJvdG90eXBlLCJzbmFwc2hvdCIse2dldDpmdW5jdGlvbigpe3ZhciB0PUxEKHRoaXMuX3N0YXRlKTtyZXR1cm57Ynl0ZXNUcmFuc2ZlcnJlZDp0aGlzLl90cmFuc2ZlcnJlZCx0b3RhbEJ5dGVzOnRoaXMuX2Jsb2Iuc2l6ZSgpLHN0YXRlOnQsbWV0YWRhdGE6dGhpcy5fbWV0YWRhdGEsdGFzazp0aGlzLHJlZjp0aGlzLl9yZWZ9fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE94LnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLG89bmV3IGt4KGUsbixyKTtyZXR1cm4gdGhpcy5fYWRkT2JzZXJ2ZXIobyksZnVuY3Rpb24oKXtpLl9yZW1vdmVPYnNlcnZlcihvKX19LE94LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3Byb21pc2UudGhlbih0LGUpfSxPeC5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbihudWxsLHQpfSxPeC5wcm90b3R5cGUuX2FkZE9ic2VydmVyPWZ1bmN0aW9uKHQpe3RoaXMuX29ic2VydmVycy5wdXNoKHQpLHRoaXMuX25vdGlmeU9ic2VydmVyKHQpfSxPeC5wcm90b3R5cGUuX3JlbW92ZU9ic2VydmVyPWZ1bmN0aW9uKHQpe3Q9dGhpcy5fb2JzZXJ2ZXJzLmluZGV4T2YodCk7LTEhPT10JiZ0aGlzLl9vYnNlcnZlcnMuc3BsaWNlKHQsMSl9LE94LnByb3RvdHlwZS5fbm90aWZ5T2JzZXJ2ZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9maW5pc2hQcm9taXNlKCksdGhpcy5fb2JzZXJ2ZXJzLnNsaWNlKCkuZm9yRWFjaChmdW5jdGlvbih0KXtlLl9ub3RpZnlPYnNlcnZlcih0KX0pfSxPeC5wcm90b3R5cGUuX2ZpbmlzaFByb21pc2U9ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzLl9yZXNvbHZlKXt2YXIgdD0hMDtzd2l0Y2goTEQodGhpcy5fc3RhdGUpKXtjYXNlIHhELlNVQ0NFU1M6UngodGhpcy5fcmVzb2x2ZS5iaW5kKG51bGwsdGhpcy5zbmFwc2hvdCkpKCk7YnJlYWs7Y2FzZSB4RC5DQU5DRUxFRDpjYXNlIHhELkVSUk9SOlJ4KHRoaXMuX3JlamVjdC5iaW5kKG51bGwsdGhpcy5fZXJyb3IpKSgpO2JyZWFrO2RlZmF1bHQ6dD0hMX10JiYodGhpcy5fcmVzb2x2ZT12b2lkIDAsdGhpcy5fcmVqZWN0PXZvaWQgMCl9fSxPeC5wcm90b3R5cGUuX25vdGlmeU9ic2VydmVyPWZ1bmN0aW9uKHQpe3N3aXRjaChMRCh0aGlzLl9zdGF0ZSkpe2Nhc2UgeEQuUlVOTklORzpjYXNlIHhELlBBVVNFRDp0Lm5leHQmJlJ4KHQubmV4dC5iaW5kKHQsdGhpcy5zbmFwc2hvdCkpKCk7YnJlYWs7Y2FzZSB4RC5TVUNDRVNTOnQuY29tcGxldGUmJlJ4KHQuY29tcGxldGUuYmluZCh0KSkoKTticmVhaztjYXNlIHhELkNBTkNFTEVEOmNhc2UgeEQuRVJST1I6dC5lcnJvciYmUngodC5lcnJvci5iaW5kKHQsdGhpcy5fZXJyb3IpKSgpO2JyZWFrO2RlZmF1bHQ6dC5lcnJvciYmUngodC5lcnJvci5iaW5kKHQsdGhpcy5fZXJyb3IpKSgpfX0sT3gucHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3ZhciB0PSJwYXVzZWQiPT09dGhpcy5fc3RhdGV8fCJwYXVzaW5nIj09PXRoaXMuX3N0YXRlO3JldHVybiB0JiZ0aGlzLl90cmFuc2l0aW9uKCJydW5uaW5nIiksdH0sT3gucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7dmFyIHQ9InJ1bm5pbmciPT09dGhpcy5fc3RhdGU7cmV0dXJuIHQmJnRoaXMuX3RyYW5zaXRpb24oInBhdXNpbmciKSx0fSxPeC5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7dmFyIHQ9InJ1bm5pbmciPT09dGhpcy5fc3RhdGV8fCJwYXVzaW5nIj09PXRoaXMuX3N0YXRlO3JldHVybiB0JiZ0aGlzLl90cmFuc2l0aW9uKCJjYW5jZWxpbmciKSx0fSxPeCk7ZnVuY3Rpb24gT3godCxlLG4pe3ZhciByPXRoaXM7dm9pZCAwPT09biYmKG49bnVsbCksdGhpcy5fdHJhbnNmZXJyZWQ9MCx0aGlzLl9uZWVkVG9GZXRjaFN0YXR1cz0hMSx0aGlzLl9uZWVkVG9GZXRjaE1ldGFkYXRhPSExLHRoaXMuX29ic2VydmVycz1bXSx0aGlzLl9lcnJvcj12b2lkIDAsdGhpcy5fdXBsb2FkVXJsPXZvaWQgMCx0aGlzLl9yZXF1ZXN0PXZvaWQgMCx0aGlzLl9jaHVua011bHRpcGxpZXI9MSx0aGlzLl9yZXNvbHZlPXZvaWQgMCx0aGlzLl9yZWplY3Q9dm9pZCAwLHRoaXMuX3JlZj10LHRoaXMuX2Jsb2I9ZSx0aGlzLl9tZXRhZGF0YT1uLHRoaXMuX21hcHBpbmdzPWF4KCksdGhpcy5fcmVzdW1hYmxlPXRoaXMuX3Nob3VsZERvUmVzdW1hYmxlKHRoaXMuX2Jsb2IpLHRoaXMuX3N0YXRlPSJydW5uaW5nIix0aGlzLl9lcnJvckhhbmRsZXI9ZnVuY3Rpb24odCl7ci5fcmVxdWVzdD12b2lkIDAsci5fY2h1bmtNdWx0aXBsaWVyPTEsdC5fY29kZUVxdWFscygiY2FuY2VsZWQiKT8oci5fbmVlZFRvRmV0Y2hTdGF0dXM9ITAsci5jb21wbGV0ZVRyYW5zaXRpb25zXygpKTooci5fZXJyb3I9dCxyLl90cmFuc2l0aW9uKCJlcnJvciIpKX0sdGhpcy5fbWV0YWRhdGFFcnJvckhhbmRsZXI9ZnVuY3Rpb24odCl7ci5fcmVxdWVzdD12b2lkIDAsdC5fY29kZUVxdWFscygiY2FuY2VsZWQiKT9yLmNvbXBsZXRlVHJhbnNpdGlvbnNfKCk6KHIuX2Vycm9yPXQsci5fdHJhbnNpdGlvbigiZXJyb3IiKSl9LHRoaXMuX3Byb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtyLl9yZXNvbHZlPXQsci5fcmVqZWN0PWUsci5fc3RhcnQoKX0pLHRoaXMuX3Byb21pc2UudGhlbihudWxsLGZ1bmN0aW9uKCl7fSl9dmFyIER4PSh4eC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iZ3M6Ly8iK3RoaXMuX2xvY2F0aW9uLmJ1Y2tldCsiLyIrdGhpcy5fbG9jYXRpb24ucGF0aH0seHgucHJvdG90eXBlLl9uZXdSZWY9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IHh4KHQsZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4eC5wcm90b3R5cGUsInJvb3QiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgcUQodGhpcy5fbG9jYXRpb24uYnVja2V0LCIiKTtyZXR1cm4gdGhpcy5fbmV3UmVmKHRoaXMuX3NlcnZpY2UsdCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHh4LnByb3RvdHlwZSwiYnVja2V0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLmJ1Y2tldH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeHgucHJvdG90eXBlLCJmdWxsUGF0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2NhdGlvbi5wYXRofSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4eC5wcm90b3R5cGUsIm5hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcngodGhpcy5fbG9jYXRpb24ucGF0aCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHh4LnByb3RvdHlwZSwic3RvcmFnZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2aWNlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4eC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgZT10Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1lPyIiOnQuc2xpY2UoMCxlKX0odGhpcy5fbG9jYXRpb24ucGF0aCk7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7dD1uZXcgcUQodGhpcy5fbG9jYXRpb24uYnVja2V0LHQpO3JldHVybiBuZXcgeHgodGhpcy5fc2VydmljZSx0KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx4eC5wcm90b3R5cGUuX3Rocm93SWZSb290PWZ1bmN0aW9uKHQpe2lmKCIiPT09dGhpcy5fbG9jYXRpb24ucGF0aCl0aHJvdyBURCh0KX0seHgpO2Z1bmN0aW9uIHh4KHQsZSl7dGhpcy5fc2VydmljZT10LHRoaXMuX2xvY2F0aW9uPWUgaW5zdGFuY2VvZiBxRD9lOnFELm1ha2VGcm9tVXJsKGUpfWZ1bmN0aW9uIEx4KHQpe3ZhciBlPXtwcmVmaXhlczpbXSxpdGVtczpbXX07cmV0dXJuIGZ1bmN0aW9uIHIoaSxvLHMpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsTXgoaSx7cGFnZVRva2VuOnN9KV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLChuPW8ucHJlZml4ZXMpLnB1c2guYXBwbHkobixlLnByZWZpeGVzKSwobj1vLml0ZW1zKS5wdXNoLmFwcGx5KG4sZS5pdGVtcyksbnVsbD09ZS5uZXh0UGFnZVRva2VuP1szLDNdOls0LHIoaSxvLGUubmV4dFBhZ2VUb2tlbildO2Nhc2UgMjp0LnNlbnQoKSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSh0LGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZX0pfWZ1bmN0aW9uIE14KGMsaCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBhLHU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbnVsbCE9aCYmIm51bWJlciI9PXR5cGVvZiBoLm1heFJlc3VsdHMmJnpEKCJvcHRpb25zLm1heFJlc3VsdHMiLDEsMWUzLGgubWF4UmVzdWx0cyksWzQsYy5zdG9yYWdlLl9nZXRBdXRoVG9rZW4oKV07Y2FzZSAxOnJldHVybiBhPXQuc2VudCgpLHU9aHx8e30sZT1jLnN0b3JhZ2Usbj1jLl9sb2NhdGlvbixyPSIvIixpPXUucGFnZVRva2VuLG89dS5tYXhSZXN1bHRzLHM9e30sbi5pc1Jvb3Q/cy5wcmVmaXg9IiI6cy5wcmVmaXg9bi5wYXRoKyIvIixyJiYwPHIubGVuZ3RoJiYocy5kZWxpbWl0ZXI9ciksaSYmKHMucGFnZVRva2VuPWkpLG8mJihzLm1heFJlc3VsdHM9byksaT1RRChuLmJ1Y2tldE9ubHlTZXJ2ZXJVcmwoKSksbz1lLm1heE9wZXJhdGlvblJldHJ5VGltZSwobz1uZXcgZHgoaSwiR0VUIix5eChlLG4uYnVja2V0KSxvKSkudXJsUGFyYW1zPXMsby5lcnJvckhhbmRsZXI9YngobiksWzIsYy5zdG9yYWdlLl9tYWtlUmVxdWVzdChvLGEpLmdldFByb21pc2UoKV19dmFyIGUsbixyLGksbyxzfSl9KX1mdW5jdGlvbiBGeCh1LGMpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgYTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB1Ll90aHJvd0lmUm9vdCgidXBkYXRlTWV0YWRhdGEiKSxbNCx1LnN0b3JhZ2UuX2dldEF1dGhUb2tlbigpXTtjYXNlIDE6cmV0dXJuIGE9dC5zZW50KCksZT11LnN0b3JhZ2Usbj11Ll9sb2NhdGlvbixyPWMsaT1heCgpLG89UUQobi5mdWxsU2VydmVyVXJsKCkpLHM9aHgocixpKSxyPWUubWF4T3BlcmF0aW9uUmV0cnlUaW1lLChyPW5ldyBkeChvLCJQQVRDSCIsZ3goZSxpKSxyKSkuaGVhZGVycz17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgifSxyLmJvZHk9cyxyLmVycm9ySGFuZGxlcj13eChuKSxbMix1LnN0b3JhZ2UuX21ha2VSZXF1ZXN0KHIsYSkuZ2V0UHJvbWlzZSgpXX12YXIgZSxuLHIsaSxvLHN9KX0pfWZ1bmN0aW9uIFV4KGEpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiBhLl90aHJvd0lmUm9vdCgiZ2V0RG93bmxvYWRVUkwiKSxbNCxhLnN0b3JhZ2UuX2dldEF1dGhUb2tlbigpXTtjYXNlIDE6cmV0dXJuIHM9dC5zZW50KCksZT1hLnN0b3JhZ2Usbj1hLl9sb2NhdGlvbixyPWF4KCksaT1RRChuLmZ1bGxTZXJ2ZXJVcmwoKSksbz1lLm1heE9wZXJhdGlvblJldHJ5VGltZSwobz1uZXcgZHgoaSwiR0VUIixteChlLHIpLG8pKS5lcnJvckhhbmRsZXI9d3gobiksWzIsYS5zdG9yYWdlLl9tYWtlUmVxdWVzdChvLHMpLmdldFByb21pc2UoKS50aGVuKGZ1bmN0aW9uKHQpe2lmKG51bGw9PT10KXRocm93IG5ldyB2RCgibm8tZG93bmxvYWQtdXJsIiwiVGhlIGdpdmVuIGZpbGUgZG9lcyBub3QgaGF2ZSBhbnkgZG93bmxvYWQgVVJMcy4iKTtyZXR1cm4gdH0pXX12YXIgZSxuLHIsaSxvfSl9KX1mdW5jdGlvbiBqeChvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gby5fdGhyb3dJZlJvb3QoImRlbGV0ZU9iamVjdCIpLFs0LG8uc3RvcmFnZS5fZ2V0QXV0aFRva2VuKCldO2Nhc2UgMTpyZXR1cm4gaT10LnNlbnQoKSxlPW8uc3RvcmFnZSxuPW8uX2xvY2F0aW9uLHI9UUQobi5mdWxsU2VydmVyVXJsKCkpLGU9ZS5tYXhPcGVyYXRpb25SZXRyeVRpbWUsKGU9bmV3IGR4KHIsIkRFTEVURSIsZnVuY3Rpb24odCxlKXt9LGUpKS5zdWNjZXNzQ29kZXM9WzIwMCwyMDRdLGUuZXJyb3JIYW5kbGVyPXd4KG4pLFsyLG8uc3RvcmFnZS5fbWFrZVJlcXVlc3QoZSxpKS5nZXRQcm9taXNlKCldfXZhciBlLG4scn0pfSl9ZnVuY3Rpb24gcXgodCxlKXt2YXIgbixlPShuPXQuX2xvY2F0aW9uLnBhdGgsZT0oZT1lKS5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gMDx0Lmxlbmd0aH0pLmpvaW4oIi8iKSwwPT09bi5sZW5ndGg/ZTpuKyIvIitlKSxlPW5ldyBxRCh0Ll9sb2NhdGlvbi5idWNrZXQsZSk7cmV0dXJuIG5ldyBEeCh0LnN0b3JhZ2UsZSl9ZnVuY3Rpb24gVngodCl7cmV0dXJuL15bQS1aYS16XSs6XC9cLy8udGVzdCh0KX1mdW5jdGlvbiBCeCh0LGUpe2lmKHQgaW5zdGFuY2VvZiBXeCl7dmFyIG49dDtpZihudWxsPT1uLl9idWNrZXQpdGhyb3cgbmV3IHZEKCJuby1kZWZhdWx0LWJ1Y2tldCIsIk5vIGRlZmF1bHQgYnVja2V0IGZvdW5kLiBEaWQgeW91IHNldCB0aGUgJyIrZEQrIicgcHJvcGVydHkgd2hlbiBpbml0aWFsaXppbmcgdGhlIGFwcD8iKTtuPW5ldyBEeChuLG4uX2J1Y2tldCk7cmV0dXJuIG51bGwhPWU/QngobixlKTpufWlmKHZvaWQgMD09PWUpcmV0dXJuIHQ7aWYoZS5pbmNsdWRlcygiLi4iKSl0aHJvdyBfRCgnYHBhdGhgIHBhcmFtIGNhbm5vdCBjb250YWluICIuLiInKTtyZXR1cm4gcXgodCxlKX1mdW5jdGlvbiBLeCh0LGUpe2lmKGUmJlZ4KGUpKXtpZih0IGluc3RhbmNlb2YgV3gpcmV0dXJuIG5ldyBEeCh0LGUpO3Rocm93IF9EKCJUbyB1c2UgcmVmKHNlcnZpY2UsIHVybCksIHRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgU3RvcmFnZSBpbnN0YW5jZS4iKX1yZXR1cm4gQngodCxlKX12YXIgV3g9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShIeC5wcm90b3R5cGUsIm1heFVwbG9hZFJldHJ5VGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhVcGxvYWRSZXRyeVRpbWV9LHNldDpmdW5jdGlvbih0KXt6RCgidGltZSIsMCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdCksdGhpcy5fbWF4VXBsb2FkUmV0cnlUaW1lPXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEh4LnByb3RvdHlwZSwibWF4T3BlcmF0aW9uUmV0cnlUaW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heE9wZXJhdGlvblJldHJ5VGltZX0sc2V0OmZ1bmN0aW9uKHQpe3pEKCJ0aW1lIiwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0KSx0aGlzLl9tYXhPcGVyYXRpb25SZXRyeVRpbWU9dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxIeC5wcm90b3R5cGUuX2dldEF1dGhUb2tlbj1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybihlPXRoaXMuX2F1dGhQcm92aWRlci5nZXRJbW1lZGlhdGUoe29wdGlvbmFsOiEwfSkpP1s0LGUuZ2V0VG9rZW4oKV06WzMsMl07Y2FzZSAxOmlmKG51bGwhPT0oZT10LnNlbnQoKSkpcmV0dXJuWzIsZS5hY2Nlc3NUb2tlbl07dC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixudWxsXX19KX0pfSxIeC5wcm90b3R5cGUuX2RlbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxldGVkPSEwLHRoaXMuX3JlcXVlc3RzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQuY2FuY2VsKCl9KSx0aGlzLl9yZXF1ZXN0cy5jbGVhcigpLFByb21pc2UucmVzb2x2ZSgpfSxIeC5wcm90b3R5cGUuX21ha2VTdG9yYWdlUmVmZXJlbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRHgodGhpcyx0KX0sSHgucHJvdG90eXBlLl9tYWtlUmVxdWVzdD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYodGhpcy5fZGVsZXRlZClyZXR1cm4gbmV3IEJEKElEKCkpO3ZhciByLGksbyxzLGEsdSxjPShyPXQsaT10aGlzLl9hcHBJZCxvPWUscz10aGlzLl9wb29sLGE9dGhpcy5fZmlyZWJhc2VWZXJzaW9uLHU9WUQoci51cmxQYXJhbXMpLHQ9ci51cmwrdSxlPU9iamVjdC5hc3NpZ24oe30sci5oZWFkZXJzKSx1PWUsKGk9aSkmJih1WyJYLUZpcmViYXNlLUdNUElEIl09aSksaT1lLG51bGwhPT0obz1vKSYmMDxvLmxlbmd0aCYmKGkuQXV0aG9yaXphdGlvbj0iRmlyZWJhc2UgIitvKSxhPWEsZVsiWC1GaXJlYmFzZS1TdG9yYWdlLVZlcnNpb24iXT0id2VianMvIisobnVsbCE9YT9hOiJBcHBNYW5hZ2VyIiksbmV3IFhEKHQsci5tZXRob2QsZSxyLmJvZHksci5zdWNjZXNzQ29kZXMsci5hZGRpdGlvbmFsUmV0cnlDb2RlcyxyLmhhbmRsZXIsci5lcnJvckhhbmRsZXIsci50aW1lb3V0LHIucHJvZ3Jlc3NDYWxsYmFjayxzKSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RzLmFkZChjKSxjLmdldFByb21pc2UoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG4uX3JlcXVlc3RzLmRlbGV0ZShjKX0sZnVuY3Rpb24oKXtyZXR1cm4gbi5fcmVxdWVzdHMuZGVsZXRlKGMpfSksY30sSHgpO2Z1bmN0aW9uIEh4KHQsZSxuLHIsaSl7dGhpcy5hcHA9dCx0aGlzLl9hdXRoUHJvdmlkZXI9ZSx0aGlzLl9wb29sPW4sdGhpcy5fdXJsPXIsdGhpcy5fZmlyZWJhc2VWZXJzaW9uPWksdGhpcy5fYnVja2V0PW51bGwsdGhpcy5fYXBwSWQ9bnVsbCx0aGlzLl9kZWxldGVkPSExLHRoaXMuX21heE9wZXJhdGlvblJldHJ5VGltZT0xMmU0LHRoaXMuX21heFVwbG9hZFJldHJ5VGltZT02ZTUsdGhpcy5fcmVxdWVzdHM9bmV3IFNldCx0aGlzLl9idWNrZXQ9bnVsbCE9cj9xRC5tYWtlRnJvbUJ1Y2tldFNwZWMocik6bnVsbD09KHI9bnVsbD09KHI9dGhpcy5hcHAub3B0aW9ucyk/dm9pZCAwOnJbZERdKT9udWxsOnFELm1ha2VGcm9tQnVja2V0U3BlYyhyKX1mdW5jdGlvbiBHeCh0LGUsbil7cmV0dXJuIGU9ZSxuPW4sKHQ9dCkuX3Rocm93SWZSb290KCJ1cGxvYWRCeXRlc1Jlc3VtYWJsZSIpLG5ldyBQeCh0LG5ldyB0eChlKSxuKX1mdW5jdGlvbiB6eCh0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG47cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gci5fdGhyb3dJZlJvb3QoImdldE1ldGFkYXRhIiksWzQsci5zdG9yYWdlLl9nZXRBdXRoVG9rZW4oKV07Y2FzZSAxOnJldHVybiBlPXQuc2VudCgpLG49X3goci5zdG9yYWdlLHIuX2xvY2F0aW9uLGF4KCkpLFsyLHIuc3RvcmFnZS5fbWFrZVJlcXVlc3QobixlKS5nZXRQcm9taXNlKCldfX0pfSl9KHQpfWZ1bmN0aW9uIFF4KHQsZSl7cmV0dXJuIEt4KHQsZSl9dmFyIFl4PShPYmplY3QuZGVmaW5lUHJvcGVydHkoWHgucHJvdG90eXBlLCJieXRlc1RyYW5zZmVycmVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLmJ5dGVzVHJhbnNmZXJyZWR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFh4LnByb3RvdHlwZSwibWV0YWRhdGEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUubWV0YWRhdGF9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFh4LnByb3RvdHlwZSwic3RhdGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuc3RhdGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFh4LnByb3RvdHlwZSwidG90YWxCeXRlcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS50b3RhbEJ5dGVzfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLFh4KTtmdW5jdGlvbiBYeCh0LGUsbil7dGhpcy5fZGVsZWdhdGU9dCx0aGlzLnRhc2s9ZSx0aGlzLnJlZj1ufXZhciBKeD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KCR4LnByb3RvdHlwZSwic25hcHNob3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFl4KHRoaXMuX2RlbGVnYXRlLnNuYXBzaG90LHRoaXMsdGhpcy5fcmVmKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSwkeC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLnRoZW4oZnVuY3Rpb24odCl7aWYoZSlyZXR1cm4gZShuZXcgWXgodCxuLG4uX3JlZikpfSx0KX0sJHgucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMsbz12b2lkIDA7cmV0dXJuIGUmJihvPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKHQpe3JldHVybiBlKG5ldyBZeCh0LGksaS5fcmVmKSl9OntuZXh0OmUubmV4dD9mdW5jdGlvbih0KXtyZXR1cm4gZS5uZXh0KG5ldyBZeCh0LGksaS5fcmVmKSl9OnZvaWQgMCxjb21wbGV0ZTplLmNvbXBsZXRlfHx2b2lkIDAsZXJyb3I6ZS5lcnJvcnx8dm9pZCAwfSksdGhpcy5fZGVsZWdhdGUub24odCxvLG58fHZvaWQgMCxyfHx2b2lkIDApfSwkeCk7ZnVuY3Rpb24gJHgodCxlKXt0aGlzLl9kZWxlZ2F0ZT10LHRoaXMuX3JlZj1lLHRoaXMuY2FuY2VsPXRoaXMuX2RlbGVnYXRlLmNhbmNlbC5iaW5kKHRoaXMuX2RlbGVnYXRlKSx0aGlzLmNhdGNoPXRoaXMuX2RlbGVnYXRlLmNhdGNoLmJpbmQodGhpcy5fZGVsZWdhdGUpLHRoaXMucGF1c2U9dGhpcy5fZGVsZWdhdGUucGF1c2UuYmluZCh0aGlzLl9kZWxlZ2F0ZSksdGhpcy5yZXN1bWU9dGhpcy5fZGVsZWdhdGUucmVzdW1lLmJpbmQodGhpcy5fZGVsZWdhdGUpfXZhciBaeD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KHRMLnByb3RvdHlwZSwicHJlZml4ZXMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5wcmVmaXhlcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlTCh0LGUuX3NlcnZpY2UpfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRMLnByb3RvdHlwZSwiaXRlbXMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5pdGVtcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlTCh0LGUuX3NlcnZpY2UpfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRMLnByb3RvdHlwZSwibmV4dFBhZ2VUb2tlbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5uZXh0UGFnZVRva2VufHxudWxsfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHRMKTtmdW5jdGlvbiB0TCh0LGUpe3RoaXMuX2RlbGVnYXRlPXQsdGhpcy5fc2VydmljZT1lfXZhciBlTD0oT2JqZWN0LmRlZmluZVByb3BlcnR5KG5MLnByb3RvdHlwZSwibmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5uYW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuTC5wcm90b3R5cGUsImJ1Y2tldCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5idWNrZXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG5MLnByb3RvdHlwZSwiZnVsbFBhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUuZnVsbFBhdGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksbkwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlLnRvU3RyaW5nKCl9LG5MLnByb3RvdHlwZS5jaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG5MKHF4KHRoaXMuX2RlbGVnYXRlLHQpLHRoaXMuc3RvcmFnZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuTC5wcm90b3R5cGUsInJvb3QiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG5MKHRoaXMuX2RlbGVnYXRlLnJvb3QsdGhpcy5zdG9yYWdlKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobkwucHJvdG90eXBlLCJwYXJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kZWxlZ2F0ZS5wYXJlbnQ7cmV0dXJuIG51bGw9PXQ/bnVsbDpuZXcgbkwodCx0aGlzLnN0b3JhZ2UpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG5MLnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdGhyb3dJZlJvb3QoInB1dCIpLG5ldyBKeChHeCh0aGlzLl9kZWxlZ2F0ZSx0LGUpLHRoaXMpfSxuTC5wcm90b3R5cGUucHV0U3RyaW5nPWZ1bmN0aW9uKHQsZSxuKXt2b2lkIDA9PT1lJiYoZT1DRC5SQVcpLHRoaXMuX3Rocm93SWZSb290KCJwdXRTdHJpbmciKTt0PUFEKGUsdCksbj1KaSh7fSxuKTtyZXR1cm4gbnVsbD09bi5jb250ZW50VHlwZSYmbnVsbCE9dC5jb250ZW50VHlwZSYmKG4uY29udGVudFR5cGU9dC5jb250ZW50VHlwZSksbmV3IEp4KG5ldyBQeCh0aGlzLl9kZWxlZ2F0ZSxuZXcgdHgodC5kYXRhLCEwKSxuKSx0aGlzKX0sbkwucHJvdG90eXBlLmxpc3RBbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBMeCh0aGlzLl9kZWxlZ2F0ZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFp4KHQsZS5zdG9yYWdlKX0pfSxuTC5wcm90b3R5cGUubGlzdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBNeCh0aGlzLl9kZWxlZ2F0ZSx0fHx2b2lkIDApLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBaeCh0LGUuc3RvcmFnZSl9KX0sbkwucHJvdG90eXBlLmdldE1ldGFkYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHp4KHRoaXMuX2RlbGVnYXRlKX0sbkwucHJvdG90eXBlLnVwZGF0ZU1ldGFkYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBGeCh0aGlzLl9kZWxlZ2F0ZSx0KX0sbkwucHJvdG90eXBlLmdldERvd25sb2FkVVJMPWZ1bmN0aW9uKCl7cmV0dXJuIFV4KHRoaXMuX2RlbGVnYXRlKX0sbkwucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90aHJvd0lmUm9vdCgiZGVsZXRlIiksangodGhpcy5fZGVsZWdhdGUpfSxuTC5wcm90b3R5cGUuX3Rocm93SWZSb290PWZ1bmN0aW9uKHQpe2lmKCIiPT09dGhpcy5fZGVsZWdhdGUuX2xvY2F0aW9uLnBhdGgpdGhyb3cgVEQodCl9LG5MKTtmdW5jdGlvbiBuTCh0LGUpe3RoaXMuX2RlbGVnYXRlPXQsdGhpcy5zdG9yYWdlPWV9dmFyIHJMPShPYmplY3QuZGVmaW5lUHJvcGVydHkoaUwucHJvdG90eXBlLCJtYXhPcGVyYXRpb25SZXRyeVRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVsZWdhdGUubWF4T3BlcmF0aW9uUmV0cnlUaW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpTC5wcm90b3R5cGUsIm1heFVwbG9hZFJldHJ5VGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZS5tYXhVcGxvYWRSZXRyeVRpbWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksaUwucHJvdG90eXBlLnJlZj1mdW5jdGlvbih0KXtpZihWeCh0KSl0aHJvdyBfRCgicmVmKCkgZXhwZWN0ZWQgYSBjaGlsZCBwYXRoIGJ1dCBnb3QgYSBVUkwsIHVzZSByZWZGcm9tVVJMIGluc3RlYWQuIik7cmV0dXJuIG5ldyBlTChReCh0aGlzLl9kZWxlZ2F0ZSx0KSx0aGlzKX0saUwucHJvdG90eXBlLnJlZkZyb21VUkw9ZnVuY3Rpb24odCl7aWYoIVZ4KHQpKXRocm93IF9EKCJyZWZGcm9tVVJMKCkgZXhwZWN0ZWQgYSBmdWxsIFVSTCBidXQgZ290IGEgY2hpbGQgcGF0aCwgdXNlIHJlZigpIGluc3RlYWQuIik7dHJ5e3FELm1ha2VGcm9tVXJsKHQpfWNhdGNoKHQpe3Rocm93IF9EKCJyZWZGcm9tVXJsKCkgZXhwZWN0ZWQgYSB2YWxpZCBmdWxsIFVSTCBidXQgZ290IGFuIGludmFsaWQgb25lLiIpfXJldHVybiBuZXcgZUwoUXgodGhpcy5fZGVsZWdhdGUsdCksdGhpcyl9LGlMLnByb3RvdHlwZS5zZXRNYXhVcGxvYWRSZXRyeVRpbWU9ZnVuY3Rpb24odCl7dGhpcy5fZGVsZWdhdGUubWF4VXBsb2FkUmV0cnlUaW1lPXR9LGlMLnByb3RvdHlwZS5zZXRNYXhPcGVyYXRpb25SZXRyeVRpbWU9ZnVuY3Rpb24odCl7dGhpcy5fZGVsZWdhdGUubWF4T3BlcmF0aW9uUmV0cnlUaW1lPXR9LGlMKTtmdW5jdGlvbiBpTCh0LGUpe3ZhciBuPXRoaXM7dGhpcy5hcHA9dCx0aGlzLl9kZWxlZ2F0ZT1lLHRoaXMuSU5URVJOQUw9e2RlbGV0ZTpmdW5jdGlvbigpe3JldHVybiBuLl9kZWxlZ2F0ZS5fZGVsZXRlKCl9fX12YXIgb0wsc0w7ZnVuY3Rpb24gYUwodCxlKXt2YXIgbj1lLmluc3RhbmNlSWRlbnRpZmllcixlPXQuZ2V0UHJvdmlkZXIoImFwcCIpLmdldEltbWVkaWF0ZSgpLHQ9dC5nZXRQcm92aWRlcigiYXV0aC1pbnRlcm5hbCIpO3JldHVybiBuZXcgckwoZSxuZXcgV3goZSx0LG5ldyBVRCxuLFhsLlNES19WRVJTSU9OKSl9c0w9e1Rhc2tTdGF0ZTp4RCxUYXNrRXZlbnQ6REQsU3RyaW5nRm9ybWF0OkNELFN0b3JhZ2U6V3gsUmVmZXJlbmNlOmVMfSwob0w9WGwpLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygic3RvcmFnZSIsYUwsIlBVQkxJQyIpLnNldFNlcnZpY2VQcm9wcyhzTCkuc2V0TXVsdGlwbGVJbnN0YW5jZXMoITApKSxvTC5yZWdpc3RlclZlcnNpb24oIkBmaXJlYmFzZS9zdG9yYWdlIiwiMC40LjYiKTt2YXIgdUwsY0wsaEw9IjAuNC45IixsTD0iRkItUEVSRi1UUkFDRS1NRUFTVVJFIixmTD0iQGZpcmViYXNlL3BlcmZvcm1hbmNlL2NvbmZpZyIscEw9IkBmaXJlYmFzZS9wZXJmb3JtYW5jZS9jb25maWdleHBpcmUiLFNuPSJQZXJmb3JtYW5jZSIsR2E9KChHYT17fSlbInRyYWNlIHN0YXJ0ZWQiXT0iVHJhY2UgeyR0cmFjZU5hbWV9IHdhcyBzdGFydGVkIGJlZm9yZS4iLEdhWyJ0cmFjZSBzdG9wcGVkIl09IlRyYWNlIHskdHJhY2VOYW1lfSBpcyBub3QgcnVubmluZy4iLEdhWyJub25wb3NpdGl2ZSB0cmFjZSBzdGFydFRpbWUiXT0iVHJhY2UgeyR0cmFjZU5hbWV9IHN0YXJ0VGltZSBzaG91bGQgYmUgcG9zaXRpdmUuIixHYVsibm9ucG9zaXRpdmUgdHJhY2UgZHVyYXRpb24iXT0iVHJhY2UgeyR0cmFjZU5hbWV9IGR1cmF0aW9uIHNob3VsZCBiZSBwb3NpdGl2ZS4iLEdhWyJubyB3aW5kb3ciXT0iV2luZG93IGlzIG5vdCBhdmFpbGFibGUuIixHYVsibm8gYXBwIGlkIl09IkFwcCBpZCBpcyBub3QgYXZhaWxhYmxlLiIsR2FbIm5vIHByb2plY3QgaWQiXT0iUHJvamVjdCBpZCBpcyBub3QgYXZhaWxhYmxlLiIsR2FbIm5vIGFwaSBrZXkiXT0iQXBpIGtleSBpcyBub3QgYXZhaWxhYmxlLiIsR2FbImludmFsaWQgY2MgbG9nIl09IkF0dGVtcHRlZCB0byBxdWV1ZSBpbnZhbGlkIGNjIGV2ZW50IixHYVsiRkIgbm90IGRlZmF1bHQiXT0iUGVyZm9ybWFuY2UgY2FuIG9ubHkgc3RhcnQgd2hlbiBGaXJlYmFzZSBhcHAgaW5zdGFuY2UgaXMgdGhlIGRlZmF1bHQgb25lLiIsR2FbIlJDIHJlc3BvbnNlIG5vdCBvayJdPSJSQyByZXNwb25zZSBpcyBub3Qgb2siLEdhWyJpbnZhbGlkIGF0dHJpYnV0ZSBuYW1lIl09IkF0dHJpYnV0ZSBuYW1lIHskYXR0cmlidXRlTmFtZX0gaXMgaW52YWxpZC4iLEdhWyJpbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZSJdPSJBdHRyaWJ1dGUgdmFsdWUgeyRhdHRyaWJ1dGVWYWx1ZX0gaXMgaW52YWxpZC4iLEdhWyJpbnZhbGlkIGN1c3RvbSBtZXRyaWMgbmFtZSJdPSJDdXN0b20gbWV0cmljIG5hbWUgeyRjdXN0b21NZXRyaWNOYW1lfSBpcyBpbnZhbGlkIixHYVsiaW52YWxpZCBTdHJpbmcgbWVyZ2VyIGlucHV0Il09IklucHV0IGZvciBTdHJpbmcgbWVyZ2VyIGlzIGludmFsaWQsIGNvbnRhY3Qgc3VwcG9ydCB0ZWFtIHRvIHJlc29sdmUuIixHYSksZEw9bmV3IENvKCJwZXJmb3JtYW5jZSIsU24sR2EpLHZMPW5ldyBwcyhTbik7dkwubG9nTGV2ZWw9YXMuSU5GTzt2YXIgZ0wseUw9KG1MLnByb3RvdHlwZS5nZXRVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aW5kb3dMb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMF19LG1MLnByb3RvdHlwZS5tYXJrPWZ1bmN0aW9uKHQpe3RoaXMucGVyZm9ybWFuY2UmJnRoaXMucGVyZm9ybWFuY2UubWFyayYmdGhpcy5wZXJmb3JtYW5jZS5tYXJrKHQpfSxtTC5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbih0LGUsbil7dGhpcy5wZXJmb3JtYW5jZSYmdGhpcy5wZXJmb3JtYW5jZS5tZWFzdXJlJiZ0aGlzLnBlcmZvcm1hbmNlLm1lYXN1cmUodCxlLG4pfSxtTC5wcm90b3R5cGUuZ2V0RW50cmllc0J5VHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wZXJmb3JtYW5jZSYmdGhpcy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlP3RoaXMucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSh0KTpbXX0sbUwucHJvdG90eXBlLmdldEVudHJpZXNCeU5hbWU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGVyZm9ybWFuY2UmJnRoaXMucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZT90aGlzLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUodCk6W119LG1MLnByb3RvdHlwZS5nZXRUaW1lT3JpZ2luPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGVyZm9ybWFuY2UmJih0aGlzLnBlcmZvcm1hbmNlLnRpbWVPcmlnaW58fHRoaXMucGVyZm9ybWFuY2UudGltaW5nLm5hdmlnYXRpb25TdGFydCl9LG1MLnByb3RvdHlwZS5yZXF1aXJlZEFwaXNBdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2gmJlByb21pc2UmJnRoaXMubmF2aWdhdG9yJiZ0aGlzLm5hdmlnYXRvci5jb29raWVFbmFibGVkPyEhYm8oKXx8KHZMLmluZm8oIkluZGV4ZWREQiBpcyBub3Qgc3VwcG9ydGVkIGJ5IGN1cnJlbnQgYnJvd3N3ZXIiKSwhMSk6KHZMLmluZm8oIkZpcmViYXNlIFBlcmZvcm1hbmNlIGNhbm5vdCBzdGFydCBpZiBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgZmV0Y2ggYW5kIFByb21pc2Ugb3IgY29va2llIGlzIGRpc2FibGVkLiIpLCExKX0sbUwucHJvdG90eXBlLnNldHVwT2JzZXJ2ZXI9ZnVuY3Rpb24odCxpKXt0aGlzLlBlcmZvcm1hbmNlT2JzZXJ2ZXImJm5ldyB0aGlzLlBlcmZvcm1hbmNlT2JzZXJ2ZXIoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj10LmdldEVudHJpZXMoKTtlPG4ubGVuZ3RoO2UrKyl7dmFyIHI9bltlXTtpKHIpfX0pLm9ic2VydmUoe2VudHJ5VHlwZXM6W3RdfSl9LG1MLmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHVMPXZvaWQgMD09PXVMP25ldyBtTChjTCk6dUx9LG1MKTtmdW5jdGlvbiBtTCh0KXtpZighKHRoaXMud2luZG93PXQpKXRocm93IGRMLmNyZWF0ZSgibm8gd2luZG93Iik7dGhpcy5wZXJmb3JtYW5jZT10LnBlcmZvcm1hbmNlLHRoaXMuUGVyZm9ybWFuY2VPYnNlcnZlcj10LlBlcmZvcm1hbmNlT2JzZXJ2ZXIsdGhpcy53aW5kb3dMb2NhdGlvbj10LmxvY2F0aW9uLHRoaXMubmF2aWdhdG9yPXQubmF2aWdhdG9yLHRoaXMuZG9jdW1lbnQ9dC5kb2N1bWVudCx0aGlzLm5hdmlnYXRvciYmdGhpcy5uYXZpZ2F0b3IuY29va2llRW5hYmxlZCYmKHRoaXMubG9jYWxTdG9yYWdlPXQubG9jYWxTdG9yYWdlKSx0LnBlcmZNZXRyaWNzJiZ0LnBlcmZNZXRyaWNzLm9uRmlyc3RJbnB1dERlbGF5JiYodGhpcy5vbkZpcnN0SW5wdXREZWxheT10LnBlcmZNZXRyaWNzLm9uRmlyc3RJbnB1dERlbGF5KX1mdW5jdGlvbiBiTCh0LGUpe3ZhciBuPXQubGVuZ3RoLWUubGVuZ3RoO2lmKG48MHx8MTxuKXRocm93IGRMLmNyZWF0ZSgiaW52YWxpZCBTdHJpbmcgbWVyZ2VyIGlucHV0Iik7Zm9yKHZhciByPVtdLGk9MDtpPHQubGVuZ3RoO2krKylyLnB1c2godC5jaGFyQXQoaSkpLGUubGVuZ3RoPmkmJnIucHVzaChlLmNoYXJBdChpKSk7cmV0dXJuIHIuam9pbigiIil9dmFyIHdMLF9MLElMPShUTC5wcm90b3R5cGUuZ2V0QXBwSWQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZpcmViYXNlQXBwSW5zdGFuY2UmJnRoaXMuZmlyZWJhc2VBcHBJbnN0YW5jZS5vcHRpb25zJiZ0aGlzLmZpcmViYXNlQXBwSW5zdGFuY2Uub3B0aW9ucy5hcHBJZDtpZighdCl0aHJvdyBkTC5jcmVhdGUoIm5vIGFwcCBpZCIpO3JldHVybiB0fSxUTC5wcm90b3R5cGUuZ2V0UHJvamVjdElkPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5maXJlYmFzZUFwcEluc3RhbmNlJiZ0aGlzLmZpcmViYXNlQXBwSW5zdGFuY2Uub3B0aW9ucyYmdGhpcy5maXJlYmFzZUFwcEluc3RhbmNlLm9wdGlvbnMucHJvamVjdElkO2lmKCF0KXRocm93IGRMLmNyZWF0ZSgibm8gcHJvamVjdCBpZCIpO3JldHVybiB0fSxUTC5wcm90b3R5cGUuZ2V0QXBpS2V5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5maXJlYmFzZUFwcEluc3RhbmNlJiZ0aGlzLmZpcmViYXNlQXBwSW5zdGFuY2Uub3B0aW9ucyYmdGhpcy5maXJlYmFzZUFwcEluc3RhbmNlLm9wdGlvbnMuYXBpS2V5O2lmKCF0KXRocm93IGRMLmNyZWF0ZSgibm8gYXBpIGtleSIpO3JldHVybiB0fSxUTC5wcm90b3R5cGUuZ2V0RmxUcmFuc3BvcnRGdWxsVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmxUcmFuc3BvcnRFbmRwb2ludFVybC5jb25jYXQoIj9rZXk9Iix0aGlzLnRyYW5zcG9ydEtleSl9LFRMLmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIGdMPXZvaWQgMD09PWdMP25ldyBUTDpnTH0sVEwpO2Z1bmN0aW9uIFRMKCl7dGhpcy5pbnN0cnVtZW50YXRpb25FbmFibGVkPSEwLHRoaXMuZGF0YUNvbGxlY3Rpb25FbmFibGVkPSEwLHRoaXMubG9nZ2luZ0VuYWJsZWQ9ITEsdGhpcy50cmFjZXNTYW1wbGluZ1JhdGU9MSx0aGlzLm5ldHdvcmtSZXF1ZXN0c1NhbXBsaW5nUmF0ZT0xLHRoaXMubG9nRW5kUG9pbnRVcmw9Imh0dHBzOi8vZmlyZWJhc2Vsb2dnaW5nLmdvb2dsZWFwaXMuY29tL3YwY2MvbG9nP2Zvcm1hdD1qc29uX3Byb3RvIix0aGlzLmZsVHJhbnNwb3J0RW5kcG9pbnRVcmw9YkwoImh0cy9mcmJzbGdpZ3Aub2dlcHNjbXYvaWVvL2VheWxnIiwidHA6L2llYWVvZ24tYWdvbGFpLm8vMWZybGdsZ2MvbyIpLHRoaXMudHJhbnNwb3J0S2V5PWJMKCJBelNDOHI2UmVpR3FGTXlmdmdvdyIsIklheXgwdS1YVDN2a3NWTS1wSVYiKSx0aGlzLmxvZ1NvdXJjZT00NjIsdGhpcy5sb2dUcmFjZUFmdGVyU2FtcGxpbmc9ITEsdGhpcy5sb2dOZXR3b3JrQWZ0ZXJTYW1wbGluZz0hMSx0aGlzLmNvbmZpZ1RpbWVUb0xpdmU9MTJ9KFNuPV9MPV9MfHx7fSlbU24uVU5LTk9XTj0wXT0iVU5LTk9XTiIsU25bU24uVklTSUJMRT0xXT0iVklTSUJMRSIsU25bU24uSElEREVOPTJdPSJISURERU4iO3ZhciBFTD1bImZpcmViYXNlXyIsImdvb2dsZV8iLCJnYV8iXSxTTD1uZXcgUmVnRXhwKCJeW2EtekEtWl1cXHcqJCIpO2Z1bmN0aW9uIENMKCl7c3dpdGNoKHlMLmdldEluc3RhbmNlKCkuZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlKXtjYXNlInZpc2libGUiOnJldHVybiBfTC5WSVNJQkxFO2Nhc2UiaGlkZGVuIjpyZXR1cm4gX0wuSElEREVOO2RlZmF1bHQ6cmV0dXJuIF9MLlVOS05PV059fXZhciBOTD0iMC4wLjEiLEFMPXtsb2dnaW5nRW5hYmxlZDohMH0sa0w9IkZJUkVCQVNFX0lOU1RBTExBVElPTlNfQVVUSCI7ZnVuY3Rpb24gUkwodCl7dmFyIG4sZT1mdW5jdGlvbigpe3ZhciB0PXlMLmdldEluc3RhbmNlKCkubG9jYWxTdG9yYWdlO2lmKCF0KXJldHVybjt2YXIgZT10LmdldEl0ZW0ocEwpO2lmKCFlfHwhZnVuY3Rpb24odCl7cmV0dXJuIE51bWJlcih0KT5EYXRlLm5vdygpfShlKSlyZXR1cm47dmFyIG49dC5nZXRJdGVtKGZMKTtpZighbilyZXR1cm47dHJ5e3JldHVybiBKU09OLnBhcnNlKG4pfWNhdGNoKHQpe3JldHVybn19KCk7cmV0dXJuIGU/KE9MKGUpLFByb21pc2UucmVzb2x2ZSgpKToobj10LGZ1bmN0aW9uKCl7dmFyIHQ9SUwuZ2V0SW5zdGFuY2UoKS5pbnN0YWxsYXRpb25zU2VydmljZS5nZXRUb2tlbigpO3JldHVybiB0LnRoZW4oZnVuY3Rpb24odCl7fSksdH0oKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBlPSJodHRwczovL2ZpcmViYXNlcmVtb3RlY29uZmlnLmdvb2dsZWFwaXMuY29tL3YxL3Byb2plY3RzLyIrSUwuZ2V0SW5zdGFuY2UoKS5nZXRQcm9qZWN0SWQoKSsiL25hbWVzcGFjZXMvZmlyZXBlcmY6ZmV0Y2g/a2V5PSIrSUwuZ2V0SW5zdGFuY2UoKS5nZXRBcGlLZXkoKSx0PW5ldyBSZXF1ZXN0KGUse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QXV0aG9yaXphdGlvbjprTCsiICIrdH0sYm9keTpKU09OLnN0cmluZ2lmeSh7YXBwX2luc3RhbmNlX2lkOm4sYXBwX2luc3RhbmNlX2lkX3Rva2VuOnQsYXBwX2lkOklMLmdldEluc3RhbmNlKCkuZ2V0QXBwSWQoKSxhcHBfdmVyc2lvbjpoTCxzZGtfdmVyc2lvbjpOTH0pfSk7cmV0dXJuIGZldGNoKHQpLnRoZW4oZnVuY3Rpb24odCl7aWYodC5vaylyZXR1cm4gdC5qc29uKCk7dGhyb3cgZEwuY3JlYXRlKCJSQyByZXNwb25zZSBub3Qgb2siKX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt2TC5pbmZvKFBMKX0pLnRoZW4oT0wpLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9eUwuZ2V0SW5zdGFuY2UoKS5sb2NhbFN0b3JhZ2U7aWYoIXR8fCFlKXJldHVybjtlLnNldEl0ZW0oZkwsSlNPTi5zdHJpbmdpZnkodCkpLGUuc2V0SXRlbShwTCxTdHJpbmcoRGF0ZS5ub3coKSs2MCpJTC5nZXRJbnN0YW5jZSgpLmNvbmZpZ1RpbWVUb0xpdmUqNjAqMWUzKSl9LGZ1bmN0aW9uKCl7fSkpfXZhciBQTD0iQ291bGQgbm90IGZldGNoIGNvbmZpZywgd2lsbCB1c2UgZGVmYXVsdCBjb25maWdzIjtmdW5jdGlvbiBPTCh0KXtpZighdClyZXR1cm4gdDt2YXIgZT1JTC5nZXRJbnN0YW5jZSgpLG49dC5lbnRyaWVzfHx7fTtyZXR1cm4gZS5sb2dnaW5nRW5hYmxlZD12b2lkIDAhPT1uLmZwcl9lbmFibGVkPyJ0cnVlIj09PVN0cmluZyhuLmZwcl9lbmFibGVkKTpBTC5sb2dnaW5nRW5hYmxlZCxuLmZwcl9sb2dfc291cmNlJiYoZS5sb2dTb3VyY2U9TnVtYmVyKG4uZnByX2xvZ19zb3VyY2UpKSxuLmZwcl9sb2dfZW5kcG9pbnRfdXJsJiYoZS5sb2dFbmRQb2ludFVybD1uLmZwcl9sb2dfZW5kcG9pbnRfdXJsKSxuLmZwcl9sb2dfdHJhbnNwb3J0X2tleSYmKGUudHJhbnNwb3J0S2V5PW4uZnByX2xvZ190cmFuc3BvcnRfa2V5KSx2b2lkIDAhPT1uLmZwcl92Y19uZXR3b3JrX3JlcXVlc3Rfc2FtcGxpbmdfcmF0ZSYmKGUubmV0d29ya1JlcXVlc3RzU2FtcGxpbmdSYXRlPU51bWJlcihuLmZwcl92Y19uZXR3b3JrX3JlcXVlc3Rfc2FtcGxpbmdfcmF0ZSkpLHZvaWQgMCE9PW4uZnByX3ZjX3RyYWNlX3NhbXBsaW5nX3JhdGUmJihlLnRyYWNlc1NhbXBsaW5nUmF0ZT1OdW1iZXIobi5mcHJfdmNfdHJhY2Vfc2FtcGxpbmdfcmF0ZSkpLGUubG9nVHJhY2VBZnRlclNhbXBsaW5nPURMKGUudHJhY2VzU2FtcGxpbmdSYXRlKSxlLmxvZ05ldHdvcmtBZnRlclNhbXBsaW5nPURMKGUubmV0d29ya1JlcXVlc3RzU2FtcGxpbmdSYXRlKSx0fWZ1bmN0aW9uIERMKHQpe3JldHVybiBNYXRoLnJhbmRvbSgpPD10fXZhciB4TCxMTD0xO2Z1bmN0aW9uIE1MKCl7cmV0dXJuIExMPTIseEw9eEx8fGZ1bmN0aW9uKCl7dmFyIG49eUwuZ2V0SW5zdGFuY2UoKS5kb2N1bWVudDtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCl7dmFyIGU7biYmImNvbXBsZXRlIiE9PW4ucmVhZHlTdGF0ZT8oZT1mdW5jdGlvbigpeyJjb21wbGV0ZSI9PT1uLnJlYWR5U3RhdGUmJihuLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLGUpLHQoKSl9LG4uYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsZSkpOnQoKX0pfSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4odD1JTC5nZXRJbnN0YW5jZSgpLmluc3RhbGxhdGlvbnNTZXJ2aWNlLmdldElkKCkpLnRoZW4oZnVuY3Rpb24odCl7d0w9dH0pLHQ7dmFyIHR9KS50aGVuKFJMKS50aGVuKEZMLEZMKX1mdW5jdGlvbiBGTCgpe0xMPTN9dmFyIFVMLGpMPTFlNCxxTD01NTAwLFZMPTMsQkw9MWUzLEtMPVZMLFdMPVtdLEhMPSExO2Z1bmN0aW9uIEdMKHQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdCxlO2lmKDAhPT1LTClyZXR1cm4gV0wubGVuZ3RoPyh0PVdMLnNwbGljZSgwLEJMKSxlPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybntzb3VyY2VfZXh0ZW5zaW9uX2pzb25fcHJvdG8zOnQubWVzc2FnZSxldmVudF90aW1lX21zOlN0cmluZyh0LmV2ZW50VGltZSl9fSksdm9pZCBmdW5jdGlvbih0LHIpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1JTC5nZXRJbnN0YW5jZSgpLmdldEZsVHJhbnNwb3J0RnVsbFVybCgpO3JldHVybiBmZXRjaChlLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KX0odCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5va3x8dkwuaW5mbygiQ2FsbCB0byBGaXJlYmFzZSBiYWNrZW5kIGZhaWxlZC4iKSx0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7dmFyIGU9TnVtYmVyKHQubmV4dFJlcXVlc3RXYWl0TWlsbGlzKSxuPWpMO2lzTmFOKGUpfHwobj1NYXRoLm1heChlLG4pKTt0PXQubG9nUmVzcG9uc2VEZXRhaWxzO0FycmF5LmlzQXJyYXkodCkmJjA8dC5sZW5ndGgmJiJSRVRSWV9SRVFVRVNUX0xBVEVSIj09PXRbMF0ucmVzcG9uc2VBY3Rpb24mJihXTD1ubyhubyhbXSxyKSxXTCksdkwuaW5mbygiUmV0cnkgdHJhbnNwb3J0IHJlcXVlc3QgbGF0ZXIuIikpLEtMPVZMLEdMKG4pfSl9KHtyZXF1ZXN0X3RpbWVfbXM6U3RyaW5nKERhdGUubm93KCkpLGNsaWVudF9pbmZvOntjbGllbnRfdHlwZToxLGpzX2NsaWVudF9pbmZvOnt9fSxsb2dfc291cmNlOklMLmdldEluc3RhbmNlKCkubG9nU291cmNlLGxvZ19ldmVudDplfSx0KS5jYXRjaChmdW5jdGlvbigpe1dMPW5vKG5vKFtdLHQpLFdMKSxLTC0tLHZMLmluZm8oIlRyaWVzIGxlZnQ6ICIrS0wrIi4iKSxHTChqTCl9KSk6R0woakwpfSx0KX1mdW5jdGlvbiB6TChuKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07IWZ1bmN0aW9uKHQpe2lmKCF0LmV2ZW50VGltZXx8IXQubWVzc2FnZSl0aHJvdyBkTC5jcmVhdGUoImludmFsaWQgY2MgbG9nIik7V0w9bm8obm8oW10sV0wpLFt0XSl9KHttZXNzYWdlOm4uYXBwbHkodm9pZCAwLHQpLGV2ZW50VGltZTpEYXRlLm5vdygpfSl9fWZ1bmN0aW9uIFFMKHQsZSl7KFVMPVVMfHx6TChKTCkpKHQsZSl9ZnVuY3Rpb24gWUwodCl7dmFyIGU9SUwuZ2V0SW5zdGFuY2UoKTshZS5pbnN0cnVtZW50YXRpb25FbmFibGVkJiZ0LmlzQXV0b3x8KGUuZGF0YUNvbGxlY3Rpb25FbmFibGVkfHx0LmlzQXV0bykmJnlMLmdldEluc3RhbmNlKCkucmVxdWlyZWRBcGlzQXZhaWxhYmxlKCkmJih0LmlzQXV0byYmQ0woKSE9PV9MLlZJU0lCTEV8fCgzPT09TEw/WEwodCk6TUwoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFhMKHQpfSxmdW5jdGlvbigpe3JldHVybiBYTCh0KX0pKSl9ZnVuY3Rpb24gWEwodCl7dmFyIGU7IXdMfHwoZT1JTC5nZXRJbnN0YW5jZSgpKS5sb2dnaW5nRW5hYmxlZCYmZS5sb2dUcmFjZUFmdGVyU2FtcGxpbmcmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gUUwodCwxKX0sMCl9ZnVuY3Rpb24gSkwodCxlKXtyZXR1cm4oMD09PWU/ZnVuY3Rpb24odCl7dD17dXJsOnQudXJsLGh0dHBfbWV0aG9kOnQuaHR0cE1ldGhvZHx8MCxodHRwX3Jlc3BvbnNlX2NvZGU6MjAwLHJlc3BvbnNlX3BheWxvYWRfYnl0ZXM6dC5yZXNwb25zZVBheWxvYWRCeXRlcyxjbGllbnRfc3RhcnRfdGltZV91czp0LnN0YXJ0VGltZVVzLHRpbWVfdG9fcmVzcG9uc2VfaW5pdGlhdGVkX3VzOnQudGltZVRvUmVzcG9uc2VJbml0aWF0ZWRVcyx0aW1lX3RvX3Jlc3BvbnNlX2NvbXBsZXRlZF91czp0LnRpbWVUb1Jlc3BvbnNlQ29tcGxldGVkVXN9LHQ9e2FwcGxpY2F0aW9uX2luZm86JEwoKSxuZXR3b3JrX3JlcXVlc3RfbWV0cmljOnR9O3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX06ZnVuY3Rpb24odCl7dmFyIGU9e25hbWU6dC5uYW1lLGlzX2F1dG86dC5pc0F1dG8sY2xpZW50X3N0YXJ0X3RpbWVfdXM6dC5zdGFydFRpbWVVcyxkdXJhdGlvbl91czp0LmR1cmF0aW9uVXN9OzAhPT1PYmplY3Qua2V5cyh0LmNvdW50ZXJzKS5sZW5ndGgmJihlLmNvdW50ZXJzPXQuY291bnRlcnMpO3Q9dC5nZXRBdHRyaWJ1dGVzKCk7MCE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aCYmKGUuY3VzdG9tX2F0dHJpYnV0ZXM9dCk7ZT17YXBwbGljYXRpb25faW5mbzokTCgpLHRyYWNlX21ldHJpYzplfTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9KSh0KX1mdW5jdGlvbiAkTCgpe3JldHVybntnb29nbGVfYXBwX2lkOklMLmdldEluc3RhbmNlKCkuZ2V0QXBwSWQoKSxhcHBfaW5zdGFuY2VfaWQ6d0wsd2ViX2FwcF9pbmZvOntzZGtfdmVyc2lvbjpoTCxwYWdlX3VybDp5TC5nZXRJbnN0YW5jZSgpLmdldFVybCgpLHNlcnZpY2Vfd29ya2VyX3N0YXR1czoic2VydmljZVdvcmtlciJpbih0PXlMLmdldEluc3RhbmNlKCkubmF2aWdhdG9yKT90LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcj8yOjM6MSx2aXNpYmlsaXR5X3N0YXRlOkNMKCksZWZmZWN0aXZlX2Nvbm5lY3Rpb25fdHlwZTpmdW5jdGlvbigpe3ZhciB0PXlMLmdldEluc3RhbmNlKCkubmF2aWdhdG9yLmNvbm5lY3Rpb247c3dpdGNoKHQmJnQuZWZmZWN0aXZlVHlwZSl7Y2FzZSJzbG93LTJnIjpyZXR1cm4gMTtjYXNlIjJnIjpyZXR1cm4gMjtjYXNlIjNnIjpyZXR1cm4gMztjYXNlIjRnIjpyZXR1cm4gNDtkZWZhdWx0OnJldHVybiAwfX0oKX0sYXBwbGljYXRpb25fcHJvY2Vzc19zdGF0ZTowfTt2YXIgdH12YXIgWkw9WyJfZnAiLCJfZmNwIiwiX2ZpZCJdO3ZhciB0TT0oZU0ucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKCl7aWYoMSE9PXRoaXMuc3RhdGUpdGhyb3cgZEwuY3JlYXRlKCJ0cmFjZSBzdGFydGVkIix7dHJhY2VOYW1lOnRoaXMubmFtZX0pO3RoaXMuYXBpLm1hcmsodGhpcy50cmFjZVN0YXJ0TWFyayksdGhpcy5zdGF0ZT0yfSxlTS5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbigpe2lmKDIhPT10aGlzLnN0YXRlKXRocm93IGRMLmNyZWF0ZSgidHJhY2Ugc3RvcHBlZCIse3RyYWNlTmFtZTp0aGlzLm5hbWV9KTt0aGlzLnN0YXRlPTMsdGhpcy5hcGkubWFyayh0aGlzLnRyYWNlU3RvcE1hcmspLHRoaXMuYXBpLm1lYXN1cmUodGhpcy50cmFjZU1lYXN1cmUsdGhpcy50cmFjZVN0YXJ0TWFyayx0aGlzLnRyYWNlU3RvcE1hcmspLHRoaXMuY2FsY3VsYXRlVHJhY2VNZXRyaWNzKCksWUwodGhpcyl9LGVNLnByb3RvdHlwZS5yZWNvcmQ9ZnVuY3Rpb24odCxlLG4pe2lmKHQ8PTApdGhyb3cgZEwuY3JlYXRlKCJub25wb3NpdGl2ZSB0cmFjZSBzdGFydFRpbWUiLHt0cmFjZU5hbWU6dGhpcy5uYW1lfSk7aWYoZTw9MCl0aHJvdyBkTC5jcmVhdGUoIm5vbnBvc2l0aXZlIHRyYWNlIGR1cmF0aW9uIix7dHJhY2VOYW1lOnRoaXMubmFtZX0pO2lmKHRoaXMuZHVyYXRpb25Vcz1NYXRoLmZsb29yKDFlMyplKSx0aGlzLnN0YXJ0VGltZVVzPU1hdGguZmxvb3IoMWUzKnQpLG4mJm4uYXR0cmlidXRlcyYmKHRoaXMuY3VzdG9tQXR0cmlidXRlcz1KaSh7fSxuLmF0dHJpYnV0ZXMpKSxuJiZuLm1ldHJpY3MpZm9yKHZhciByPTAsaT1PYmplY3Qua2V5cyhuLm1ldHJpY3MpO3I8aS5sZW5ndGg7cisrKXt2YXIgbz1pW3JdO2lzTmFOKE51bWJlcihuLm1ldHJpY3Nbb10pKXx8KHRoaXMuY291bnRlcnNbb109TnVtYmVyKE1hdGguZmxvb3Iobi5tZXRyaWNzW29dKSkpfVlMKHRoaXMpfSxlTS5wcm90b3R5cGUuaW5jcmVtZW50TWV0cmljPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9MSksdm9pZCAwPT09dGhpcy5jb3VudGVyc1t0XT90aGlzLnB1dE1ldHJpYyh0LGUpOnRoaXMucHV0TWV0cmljKHQsdGhpcy5jb3VudGVyc1t0XStlKX0sZU0ucHJvdG90eXBlLnB1dE1ldHJpYz1mdW5jdGlvbih0LGUpe2lmKG49dCxyPXRoaXMubmFtZSwwPT09bi5sZW5ndGh8fDEwMDxuLmxlbmd0aHx8IShyJiZyLnN0YXJ0c1dpdGgoIl93dF8iKSYmLTE8WkwuaW5kZXhPZihuKSkmJm4uc3RhcnRzV2l0aCgiXyIpKXRocm93IGRMLmNyZWF0ZSgiaW52YWxpZCBjdXN0b20gbWV0cmljIG5hbWUiLHtjdXN0b21NZXRyaWNOYW1lOnR9KTt2YXIgbixyO3RoaXMuY291bnRlcnNbdF09KHQ9ZSwoZT1NYXRoLmZsb29yKHQpKTx0JiZ2TC5pbmZvKCJNZXRyaWMgdmFsdWUgc2hvdWxkIGJlIGFuIEludGVnZXIsIHNldHRpbmcgdGhlIHZhbHVlIGFzIDogIitlKyIuIiksZSl9LGVNLnByb3RvdHlwZS5nZXRNZXRyaWM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY291bnRlcnNbdF18fDB9LGVNLnByb3RvdHlwZS5wdXRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlKXt2YXIgbixyLGk9ISgwPT09KG49dCkubGVuZ3RofHw0MDxuLmxlbmd0aCkmJighRUwuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gbi5zdGFydHNXaXRoKHQpfSkmJiEhbi5tYXRjaChTTCkpLHI9MCE9PShyPWUpLmxlbmd0aCYmci5sZW5ndGg8PTEwMDtpZihpJiZyKXRoaXMuY3VzdG9tQXR0cmlidXRlc1t0XT1lO2Vsc2V7aWYoIWkpdGhyb3cgZEwuY3JlYXRlKCJpbnZhbGlkIGF0dHJpYnV0ZSBuYW1lIix7YXR0cmlidXRlTmFtZTp0fSk7aWYoIXIpdGhyb3cgZEwuY3JlYXRlKCJpbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZSIse2F0dHJpYnV0ZVZhbHVlOmV9KX19LGVNLnByb3RvdHlwZS5nZXRBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY3VzdG9tQXR0cmlidXRlc1t0XX0sZU0ucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZT1mdW5jdGlvbih0KXt2b2lkIDAhPT10aGlzLmN1c3RvbUF0dHJpYnV0ZXNbdF0mJmRlbGV0ZSB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNbdF19LGVNLnByb3RvdHlwZS5nZXRBdHRyaWJ1dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIEppKHt9LHRoaXMuY3VzdG9tQXR0cmlidXRlcyl9LGVNLnByb3RvdHlwZS5zZXRTdGFydFRpbWU9ZnVuY3Rpb24odCl7dGhpcy5zdGFydFRpbWVVcz10fSxlTS5wcm90b3R5cGUuc2V0RHVyYXRpb249ZnVuY3Rpb24odCl7dGhpcy5kdXJhdGlvblVzPXR9LGVNLnByb3RvdHlwZS5jYWxjdWxhdGVUcmFjZU1ldHJpY3M9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmFwaS5nZXRFbnRyaWVzQnlOYW1lKHRoaXMudHJhY2VNZWFzdXJlKSx0PXQmJnRbMF07dCYmKHRoaXMuZHVyYXRpb25Vcz1NYXRoLmZsb29yKDFlMyp0LmR1cmF0aW9uKSx0aGlzLnN0YXJ0VGltZVVzPU1hdGguZmxvb3IoMWUzKih0LnN0YXJ0VGltZSt0aGlzLmFwaS5nZXRUaW1lT3JpZ2luKCkpKSl9LGVNLmNyZWF0ZU9vYlRyYWNlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpPXlMLmdldEluc3RhbmNlKCkuZ2V0VXJsKCk7aSYmKHI9bmV3IGVNKCJfd3RfIitpLCEwKSxpPU1hdGguZmxvb3IoMWUzKnlMLmdldEluc3RhbmNlKCkuZ2V0VGltZU9yaWdpbigpKSxyLnNldFN0YXJ0VGltZShpKSx0JiZ0WzBdJiYoci5zZXREdXJhdGlvbihNYXRoLmZsb29yKDFlMyp0WzBdLmR1cmF0aW9uKSksci5wdXRNZXRyaWMoImRvbUludGVyYWN0aXZlIixNYXRoLmZsb29yKDFlMyp0WzBdLmRvbUludGVyYWN0aXZlKSksci5wdXRNZXRyaWMoImRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZCIsTWF0aC5mbG9vcigxZTMqdFswXS5kb21Db250ZW50TG9hZGVkRXZlbnRFbmQpKSxyLnB1dE1ldHJpYygibG9hZEV2ZW50RW5kIixNYXRoLmZsb29yKDFlMyp0WzBdLmxvYWRFdmVudEVuZCkpKSxlJiYoKHQ9ZS5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiJmaXJzdC1wYWludCI9PT10Lm5hbWV9KSkmJnQuc3RhcnRUaW1lJiZyLnB1dE1ldHJpYygiX2ZwIixNYXRoLmZsb29yKDFlMyp0LnN0YXJ0VGltZSkpLChlPWUuZmluZChmdW5jdGlvbih0KXtyZXR1cm4iZmlyc3QtY29udGVudGZ1bC1wYWludCI9PT10Lm5hbWV9KSkmJmUuc3RhcnRUaW1lJiZyLnB1dE1ldHJpYygiX2ZjcCIsTWF0aC5mbG9vcigxZTMqZS5zdGFydFRpbWUpKSxuJiZyLnB1dE1ldHJpYygiX2ZpZCIsTWF0aC5mbG9vcigxZTMqbikpKSxZTChyKSl9LGVNLmNyZWF0ZVVzZXJUaW1pbmdUcmFjZT1mdW5jdGlvbih0KXtZTChuZXcgZU0odCwhMSx0KSl9LGVNKTtmdW5jdGlvbiBlTSh0LGUsbil7dm9pZCAwPT09ZSYmKGU9ITEpLHRoaXMubmFtZT10LHRoaXMuaXNBdXRvPWUsdGhpcy5zdGF0ZT0xLHRoaXMuY3VzdG9tQXR0cmlidXRlcz17fSx0aGlzLmNvdW50ZXJzPXt9LHRoaXMuYXBpPXlMLmdldEluc3RhbmNlKCksdGhpcy5yYW5kb21JZD1NYXRoLmZsb29yKDFlNipNYXRoLnJhbmRvbSgpKSx0aGlzLmlzQXV0b3x8KHRoaXMudHJhY2VTdGFydE1hcms9IkZCLVBFUkYtVFJBQ0UtU1RBUlQtIit0aGlzLnJhbmRvbUlkKyItIit0aGlzLm5hbWUsdGhpcy50cmFjZVN0b3BNYXJrPSJGQi1QRVJGLVRSQUNFLVNUT1AtIit0aGlzLnJhbmRvbUlkKyItIit0aGlzLm5hbWUsdGhpcy50cmFjZU1lYXN1cmU9bnx8bEwrIi0iK3RoaXMucmFuZG9tSWQrIi0iK3RoaXMubmFtZSxuJiZ0aGlzLmNhbGN1bGF0ZVRyYWNlTWV0cmljcygpKX1mdW5jdGlvbiBuTSh0KXt2YXIgZSxuLHIsaT10O2kmJnZvaWQgMCE9PWkucmVzcG9uc2VTdGFydCYmKG49eUwuZ2V0SW5zdGFuY2UoKS5nZXRUaW1lT3JpZ2luKCkscj1NYXRoLmZsb29yKDFlMyooaS5zdGFydFRpbWUrbikpLHQ9aS5yZXNwb25zZVN0YXJ0P01hdGguZmxvb3IoMWUzKihpLnJlc3BvbnNlU3RhcnQtaS5zdGFydFRpbWUpKTp2b2lkIDAsbj1NYXRoLmZsb29yKDFlMyooaS5yZXNwb25zZUVuZC1pLnN0YXJ0VGltZSkpLGk9e3VybDppLm5hbWUmJmkubmFtZS5zcGxpdCgiPyIpWzBdLHJlc3BvbnNlUGF5bG9hZEJ5dGVzOmkudHJhbnNmZXJTaXplLHN0YXJ0VGltZVVzOnIsdGltZVRvUmVzcG9uc2VJbml0aWF0ZWRVczp0LHRpbWVUb1Jlc3BvbnNlQ29tcGxldGVkVXM6bn0sZT1pLChyPUlMLmdldEluc3RhbmNlKCkpLmluc3RydW1lbnRhdGlvbkVuYWJsZWQmJih0PWUudXJsLG49ci5sb2dFbmRQb2ludFVybC5zcGxpdCgiPyIpWzBdLGk9ci5mbFRyYW5zcG9ydEVuZHBvaW50VXJsLnNwbGl0KCI/IilbMF0sdCE9PW4mJnQhPT1pJiZyLmxvZ2dpbmdFbmFibGVkJiZyLmxvZ05ldHdvcmtBZnRlclNhbXBsaW5nJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIFFMKGUsMCl9LDApKSl9dmFyIHJNPTVlMztmdW5jdGlvbiBpTSgpe3dMJiYoc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PXlMLmdldEluc3RhbmNlKCksZT10LmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKSxuPXQuZ2V0RW50cmllc0J5VHlwZSgicGFpbnQiKTt7dmFyIHI7dC5vbkZpcnN0SW5wdXREZWxheT8ocj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dE0uY3JlYXRlT29iVHJhY2UoZSxuKSxyPXZvaWQgMH0sck0pLHQub25GaXJzdElucHV0RGVsYXkoZnVuY3Rpb24odCl7ciYmKGNsZWFyVGltZW91dChyKSx0TS5jcmVhdGVPb2JUcmFjZShlLG4sdCkpfSkpOnRNLmNyZWF0ZU9vYlRyYWNlKGUsbil9fSwwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zm9yKHZhciB0PXlMLmdldEluc3RhbmNlKCksZT10LmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIiksbj0wLHI9ZTtuPHIubGVuZ3RoO24rKyluTShyW25dKTt0LnNldHVwT2JzZXJ2ZXIoInJlc291cmNlIixuTSl9LDApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmb3IodmFyIHQ9eUwuZ2V0SW5zdGFuY2UoKSxlPXQuZ2V0RW50cmllc0J5VHlwZSgibWVhc3VyZSIpLG49MCxyPWU7bjxyLmxlbmd0aDtuKyspb00ocltuXSk7dC5zZXR1cE9ic2VydmVyKCJtZWFzdXJlIixvTSl9LDApKX1mdW5jdGlvbiBvTSh0KXt0PXQubmFtZTt0LnN1YnN0cmluZygwLGxMLmxlbmd0aCkhPT1sTCYmdE0uY3JlYXRlVXNlclRpbWluZ1RyYWNlKHQpfXZhciBzTT0oYU0ucHJvdG90eXBlLnRyYWNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdE0odCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhTS5wcm90b3R5cGUsImluc3RydW1lbnRhdGlvbkVuYWJsZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSUwuZ2V0SW5zdGFuY2UoKS5pbnN0cnVtZW50YXRpb25FbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7SUwuZ2V0SW5zdGFuY2UoKS5pbnN0cnVtZW50YXRpb25FbmFibGVkPXR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGFNLnByb3RvdHlwZSwiZGF0YUNvbGxlY3Rpb25FbmFibGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIElMLmdldEluc3RhbmNlKCkuZGF0YUNvbGxlY3Rpb25FbmFibGVkfSxzZXQ6ZnVuY3Rpb24odCl7SUwuZ2V0SW5zdGFuY2UoKS5kYXRhQ29sbGVjdGlvbkVuYWJsZWQ9dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhTSk7ZnVuY3Rpb24gYU0odCl7dGhpcy5hcHA9dCx5TC5nZXRJbnN0YW5jZSgpLnJlcXVpcmVkQXBpc0F2YWlsYWJsZSgpJiZ3bygpLnRoZW4oZnVuY3Rpb24odCl7dCYmKEhMfHwoR0wocUwpLEhMPSEwKSxNTCgpLnRoZW4oaU0saU0pKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe3ZMLmluZm8oIkVudmlyb25tZW50IGRvZXNuJ3Qgc3VwcG9ydCBJbmRleGVkREI6ICIrdCl9KX12YXIgdU07ZnVuY3Rpb24gY00odCxlKXtpZigiW0RFRkFVTFRdIiE9PXQubmFtZSl0aHJvdyBkTC5jcmVhdGUoIkZCIG5vdCBkZWZhdWx0Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpdGhyb3cgZEwuY3JlYXRlKCJubyB3aW5kb3ciKTtyZXR1cm4gY0w9d2luZG93LElMLmdldEluc3RhbmNlKCkuZmlyZWJhc2VBcHBJbnN0YW5jZT10LElMLmdldEluc3RhbmNlKCkuaW5zdGFsbGF0aW9uc1NlcnZpY2U9ZSxuZXcgc00odCl9KHVNPVhsKS5JTlRFUk5BTC5yZWdpc3RlckNvbXBvbmVudChuZXcgdHMoInBlcmZvcm1hbmNlIixmdW5jdGlvbih0KXt2YXIgZT10LmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSx0PXQuZ2V0UHJvdmlkZXIoImluc3RhbGxhdGlvbnMiKS5nZXRJbW1lZGlhdGUoKTtyZXR1cm4gY00oZSx0KX0sIlBVQkxJQyIpKSx1TS5yZWdpc3RlclZlcnNpb24oIkBmaXJlYmFzZS9wZXJmb3JtYW5jZSIsIjAuNC45Iik7dmFyIGhNLGxNLGZNPSJmaXJlYmFzZV9pZCIscE09Im9yaWdpbiIsZE09NmU0LHZNPSJodHRwczovL2ZpcmViYXNlLmdvb2dsZWFwaXMuY29tL3YxYWxwaGEvcHJvamVjdHMvLS9hcHBzL3thcHAtaWR9L3dlYkNvbmZpZyIsZ009Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanMiOyhTbj1oTT1oTXx8e30pLkVWRU5UPSJldmVudCIsU24uU0VUPSJzZXQiLFNuLkNPTkZJRz0iY29uZmlnIiwoU249bE09bE18fHt9KS5BRERfU0hJUFBJTkdfSU5GTz0iYWRkX3NoaXBwaW5nX2luZm8iLFNuLkFERF9QQVlNRU5UX0lORk89ImFkZF9wYXltZW50X2luZm8iLFNuLkFERF9UT19DQVJUPSJhZGRfdG9fY2FydCIsU24uQUREX1RPX1dJU0hMSVNUPSJhZGRfdG9fd2lzaGxpc3QiLFNuLkJFR0lOX0NIRUNLT1VUPSJiZWdpbl9jaGVja291dCIsU24uQ0hFQ0tPVVRfUFJPR1JFU1M9ImNoZWNrb3V0X3Byb2dyZXNzIixTbi5FWENFUFRJT049ImV4Y2VwdGlvbiIsU24uR0VORVJBVEVfTEVBRD0iZ2VuZXJhdGVfbGVhZCIsU24uTE9HSU49ImxvZ2luIixTbi5QQUdFX1ZJRVc9InBhZ2VfdmlldyIsU24uUFVSQ0hBU0U9InB1cmNoYXNlIixTbi5SRUZVTkQ9InJlZnVuZCIsU24uUkVNT1ZFX0ZST01fQ0FSVD0icmVtb3ZlX2Zyb21fY2FydCIsU24uU0NSRUVOX1ZJRVc9InNjcmVlbl92aWV3IixTbi5TRUFSQ0g9InNlYXJjaCIsU24uU0VMRUNUX0NPTlRFTlQ9InNlbGVjdF9jb250ZW50IixTbi5TRUxFQ1RfSVRFTT0ic2VsZWN0X2l0ZW0iLFNuLlNFTEVDVF9QUk9NT1RJT049InNlbGVjdF9wcm9tb3Rpb24iLFNuLlNFVF9DSEVDS09VVF9PUFRJT049InNldF9jaGVja291dF9vcHRpb24iLFNuLlNIQVJFPSJzaGFyZSIsU24uU0lHTl9VUD0ic2lnbl91cCIsU24uVElNSU5HX0NPTVBMRVRFPSJ0aW1pbmdfY29tcGxldGUiLFNuLlZJRVdfQ0FSVD0idmlld19jYXJ0IixTbi5WSUVXX0lURU09InZpZXdfaXRlbSIsU24uVklFV19JVEVNX0xJU1Q9InZpZXdfaXRlbV9saXN0IixTbi5WSUVXX1BST01PVElPTj0idmlld19wcm9tb3Rpb24iLFNuLlZJRVdfU0VBUkNIX1JFU1VMVFM9InZpZXdfc2VhcmNoX3Jlc3VsdHMiO3ZhciB5TT1uZXcgcHMoIkBmaXJlYmFzZS9hbmFseXRpY3MiKTtmdW5jdGlvbiBtTShvLHMsYSx1KXtyZXR1cm4gZnVuY3Rpb24obixyLGkpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0LnRyeXMucHVzaChbMCw2LCw3XSksbiE9PWhNLkVWRU5UP1szLDJdOls0LGZ1bmN0aW9uKHUsYyxoLGwsZil7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLHIsZSxpLG8scyxhO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuKHQudHJ5cy5wdXNoKFswLDQsLDVdKSxuPVtdLGYmJmYuc2VuZF90byk/KGE9Zi5zZW5kX3RvLEFycmF5LmlzQXJyYXkoYSl8fChhPVthXSksWzQsUHJvbWlzZS5hbGwoaCldKTpbMywyXTtjYXNlIDE6Zm9yKHI9dC5zZW50KCksZT1mdW5jdGlvbihlKXt2YXIgdD1yLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQubWVhc3VyZW1lbnRJZD09PWV9KSx0PXQmJmNbdC5hcHBJZF07aWYoIXQpcmV0dXJuIG49W10sImJyZWFrIjtuLnB1c2godCl9LGk9MCxvPWE7aTxvLmxlbmd0aCYmKHM9b1tpXSwiYnJlYWsiIT09ZShzKSk7aSsrKTt0LmxhYmVsPTI7Y2FzZSAyOnJldHVybiAwPT09bi5sZW5ndGgmJihuPU9iamVjdC52YWx1ZXMoYykpLFs0LFByb21pc2UuYWxsKG4pXTtjYXNlIDM6cmV0dXJuIHQuc2VudCgpLHUoaE0uRVZFTlQsbCxmfHx7fSksWzMsNV07Y2FzZSA0OnJldHVybiBhPXQuc2VudCgpLHlNLmVycm9yKGEpLFszLDVdO2Nhc2UgNTpyZXR1cm5bMl19fSl9KX0obyxzLGEscixpKV07Y2FzZSAxOnJldHVybiB0LnNlbnQoKSxbMyw1XTtjYXNlIDI6cmV0dXJuIG4hPT1oTS5DT05GSUc/WzMsNF06WzQsZnVuY3Rpb24ocixpLG8scyxhLHUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6ZT1zW2FdLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDcsLDhdKSxlP1s0LGlbZV1dOlszLDNdO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzMsNl07Y2FzZSAzOnJldHVybls0LFByb21pc2UuYWxsKG8pXTtjYXNlIDQ6cmV0dXJuIG49dC5zZW50KCksKG49bi5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1lYXN1cmVtZW50SWQ9PT1hfSkpP1s0LGlbbi5hcHBJZF1dOlszLDZdO2Nhc2UgNTp0LnNlbnQoKSx0LmxhYmVsPTY7Y2FzZSA2OnJldHVyblszLDhdO2Nhc2UgNzpyZXR1cm4gbj10LnNlbnQoKSx5TS5lcnJvcihuKSxbMyw4XTtjYXNlIDg6cmV0dXJuIHIoaE0uQ09ORklHLGEsdSksWzJdfX0pfSl9KG8scyxhLHUscixpKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbMyw1XTtjYXNlIDQ6byhoTS5TRVQsciksdC5sYWJlbD01O2Nhc2UgNTpyZXR1cm5bMyw3XTtjYXNlIDY6cmV0dXJuIGU9dC5zZW50KCkseU0uZXJyb3IoZSksWzMsN107Y2FzZSA3OnJldHVyblsyXX19KX0pfX12YXIgU249KChTbj17fSlbImFscmVhZHktZXhpc3RzIl09IkEgRmlyZWJhc2UgQW5hbHl0aWNzIGluc3RhbmNlIHdpdGggdGhlIGFwcElkIHskaWR9ICBhbHJlYWR5IGV4aXN0cy4gT25seSBvbmUgRmlyZWJhc2UgQW5hbHl0aWNzIGluc3RhbmNlIGNhbiBiZSBjcmVhdGVkIGZvciBlYWNoIGFwcElkLiIsU25bImFscmVhZHktaW5pdGlhbGl6ZWQiXT0iRmlyZWJhc2UgQW5hbHl0aWNzIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuc2V0dGluZ3MoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgaW5pdGlhbGl6aW5nIGFueSBBbmFseXRpY3MgaW5zdGFuY2VvciBpdCB3aWxsIGhhdmUgbm8gZWZmZWN0LiIsU25bImludGVyb3AtY29tcG9uZW50LXJlZy1mYWlsZWQiXT0iRmlyZWJhc2UgQW5hbHl0aWNzIEludGVyb3AgQ29tcG9uZW50IGZhaWxlZCB0byBpbnN0YW50aWF0ZTogeyRyZWFzb259IixTblsiaW52YWxpZC1hbmFseXRpY3MtY29udGV4dCJdPSJGaXJlYmFzZSBBbmFseXRpY3MgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50LiBXcmFwIGluaXRpYWxpemF0aW9uIG9mIGFuYWx5dGljcyBpbiBhbmFseXRpY3MuaXNTdXBwb3J0ZWQoKSB0byBwcmV2ZW50IGluaXRpYWxpemF0aW9uIGluIHVuc3VwcG9ydGVkIGVudmlyb25tZW50cy4gRGV0YWlsczogeyRlcnJvckluZm99IixTblsiaW5kZXhlZGRiLXVuYXZhaWxhYmxlIl09IkluZGV4ZWREQiB1bmF2YWlsYWJsZSBvciByZXN0cmljdGVkIGluIHRoaXMgZW52aXJvbm1lbnQuIFdyYXAgaW5pdGlhbGl6YXRpb24gb2YgYW5hbHl0aWNzIGluIGFuYWx5dGljcy5pc1N1cHBvcnRlZCgpIHRvIHByZXZlbnQgaW5pdGlhbGl6YXRpb24gaW4gdW5zdXBwb3J0ZWQgZW52aXJvbm1lbnRzLiBEZXRhaWxzOiB7JGVycm9ySW5mb30iLFNuWyJmZXRjaC10aHJvdHRsZSJdPSJUaGUgY29uZmlnIGZldGNoIHJlcXVlc3QgdGltZWQgb3V0IHdoaWxlIGluIGFuIGV4cG9uZW50aWFsIGJhY2tvZmYgc3RhdGUuIFVuaXggdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIGZldGNoIHJlcXVlc3QgdGhyb3R0bGluZyBlbmRzOiB7JHRocm90dGxlRW5kVGltZU1pbGxpc30uIixTblsiY29uZmlnLWZldGNoLWZhaWxlZCJdPSJEeW5hbWljIGNvbmZpZyBmZXRjaCBmYWlsZWQ6IFt7JGh0dHBTdGF0dXN9XSB7JHJlc3BvbnNlTWVzc2FnZX0iLFNuWyJuby1hcGkta2V5Il09J1RoZSAiYXBpS2V5IiBmaWVsZCBpcyBlbXB0eSBpbiB0aGUgbG9jYWwgRmlyZWJhc2UgY29uZmlnLiBGaXJlYmFzZSBBbmFseXRpY3MgcmVxdWlyZXMgdGhpcyBmaWVsZCB0b2NvbnRhaW4gYSB2YWxpZCBBUEkga2V5LicsU25bIm5vLWFwcC1pZCJdPSdUaGUgImFwcElkIiBmaWVsZCBpcyBlbXB0eSBpbiB0aGUgbG9jYWwgRmlyZWJhc2UgY29uZmlnLiBGaXJlYmFzZSBBbmFseXRpY3MgcmVxdWlyZXMgdGhpcyBmaWVsZCB0b2NvbnRhaW4gYSB2YWxpZCBhcHAgSUQuJyxTbiksYk09bmV3IENvKCJhbmFseXRpY3MiLCJBbmFseXRpY3MiLFNuKSx3TT0zMDtmdW5jdGlvbiBfTSh0LGUpe3ZvaWQgMD09PXQmJih0PXt9KSx2b2lkIDA9PT1lJiYoZT0xZTMpLHRoaXMudGhyb3R0bGVNZXRhZGF0YT10LHRoaXMuaW50ZXJ2YWxNaWxsaXM9ZX12YXIgSU09bmV3KF9NLnByb3RvdHlwZS5nZXRUaHJvdHRsZU1ldGFkYXRhPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRocm90dGxlTWV0YWRhdGFbdF19LF9NLnByb3RvdHlwZS5zZXRUaHJvdHRsZU1ldGFkYXRhPWZ1bmN0aW9uKHQsZSl7dGhpcy50aHJvdHRsZU1ldGFkYXRhW3RdPWV9LF9NLnByb3RvdHlwZS5kZWxldGVUaHJvdHRsZU1ldGFkYXRhPWZ1bmN0aW9uKHQpe2RlbGV0ZSB0aGlzLnRocm90dGxlTWV0YWRhdGFbdF19LF9NKTtmdW5jdGlvbiBUTShvKXt2YXIgcztyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGk7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT1vLmFwcElkLGk9by5hcGlLZXksaT17bWV0aG9kOiJHRVQiLGhlYWRlcnM6bmV3IEhlYWRlcnMoe0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIngtZ29vZy1hcGkta2V5IjppfSl9LGU9dk0ucmVwbGFjZSgie2FwcC1pZH0iLGUpLFs0LGZldGNoKGUsaSldO2Nhc2UgMTppZigyMDA9PT0obj10LnNlbnQoKSkuc3RhdHVzfHwzMDQ9PT1uLnN0YXR1cylyZXR1cm5bMyw2XTtyPSIiLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHQudHJ5cy5wdXNoKFsyLDQsLDVdKSxbNCxuLmpzb24oKV07Y2FzZSAzOnJldHVybiBpPXQuc2VudCgpLG51bGwhPT0ocz1pLmVycm9yKSYmdm9pZCAwIT09cyYmcy5tZXNzYWdlJiYocj1pLmVycm9yLm1lc3NhZ2UpLFszLDVdO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzMsNV07Y2FzZSA1OnRocm93IGJNLmNyZWF0ZSgiY29uZmlnLWZldGNoLWZhaWxlZCIse2h0dHBTdGF0dXM6bi5zdGF0dXMscmVzcG9uc2VNZXNzYWdlOnJ9KTtjYXNlIDY6cmV0dXJuWzIsbi5qc29uKCldfX0pfSl9ZnVuY3Rpb24gRU0oYSx1LGMpe3JldHVybiB2b2lkIDA9PT11JiYodT1JTSksJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbixyLGksbyxzPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7aWYoaT1hLm9wdGlvbnMsZT1pLmFwcElkLG49aS5hcGlLZXkscj1pLm1lYXN1cmVtZW50SWQsIWUpdGhyb3cgYk0uY3JlYXRlKCJuby1hcHAtaWQiKTtpZihuKXJldHVybiBpPXUuZ2V0VGhyb3R0bGVNZXRhZGF0YShlKXx8e2JhY2tvZmZDb3VudDowLHRocm90dGxlRW5kVGltZU1pbGxpczpEYXRlLm5vdygpfSxvPW5ldyBOTSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuICRpKHMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiBvLmFib3J0KCksWzJdfSl9KX0sdm9pZCAwIT09Yz9jOmRNKSxbMixmdW5jdGlvbiBzKGEsdCx1LGMpe3ZhciBoPXQudGhyb3R0bGVFbmRUaW1lTWlsbGlzLGw9dC5iYWNrb2ZmQ291bnQ7dm9pZCAwPT09YyYmKGM9SU0pO3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6ZT1hLmFwcElkLG49YS5tZWFzdXJlbWVudElkLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCxTTSh1LGgpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFszLDRdO2Nhc2UgMzppZihpPXQuc2VudCgpLG4pcmV0dXJuIHlNLndhcm4oIlRpbWVkIG91dCBmZXRjaGluZyB0aGlzIEZpcmViYXNlIGFwcCdzIG1lYXN1cmVtZW50IElEIGZyb20gdGhlIHNlcnZlci4gRmFsbGluZyBiYWNrIHRvIHRoZSBtZWFzdXJlbWVudCBJRCAiK24rJyBwcm92aWRlZCBpbiB0aGUgIm1lYXN1cmVtZW50SWQiIGZpZWxkIGluIHRoZSBsb2NhbCBGaXJlYmFzZSBjb25maWcuIFsnK2kubWVzc2FnZSsiXSIpLFsyLHthcHBJZDplLG1lYXN1cmVtZW50SWQ6bn1dO3Rocm93IGk7Y2FzZSA0OnJldHVybiB0LnRyeXMucHVzaChbNCw2LCw3XSksWzQsVE0oYSldO2Nhc2UgNTpyZXR1cm4gbz10LnNlbnQoKSxjLmRlbGV0ZVRocm90dGxlTWV0YWRhdGEoZSksWzIsb107Y2FzZSA2OmlmKENNKHI9dC5zZW50KCkpKXJldHVybiBpPTUwMz09PU51bWJlcihyLmN1c3RvbURhdGEuaHR0cFN0YXR1cyk/JG8obCxjLmludGVydmFsTWlsbGlzLHdNKTokbyhsLGMuaW50ZXJ2YWxNaWxsaXMpLG89e3Rocm90dGxlRW5kVGltZU1pbGxpczpEYXRlLm5vdygpK2ksYmFja29mZkNvdW50OmwrMX0sYy5zZXRUaHJvdHRsZU1ldGFkYXRhKGUsbykseU0uZGVidWcoIkNhbGxpbmcgYXR0ZW1wdEZldGNoIGFnYWluIGluICIraSsiIG1pbGxpcyIpLFsyLHMoYSxvLHUsYyldO2lmKGMuZGVsZXRlVGhyb3R0bGVNZXRhZGF0YShlKSxuKXJldHVybiB5TS53YXJuKCJGYWlsZWQgdG8gZmV0Y2ggdGhpcyBGaXJlYmFzZSBhcHAncyBtZWFzdXJlbWVudCBJRCBmcm9tIHRoZSBzZXJ2ZXIuIEZhbGxpbmcgYmFjayB0byB0aGUgbWVhc3VyZW1lbnQgSUQgIituKycgcHJvdmlkZWQgaW4gdGhlICJtZWFzdXJlbWVudElkIiBmaWVsZCBpbiB0aGUgbG9jYWwgRmlyZWJhc2UgY29uZmlnLiBbJytyLm1lc3NhZ2UrIl0iKSxbMix7YXBwSWQ6ZSxtZWFzdXJlbWVudElkOm59XTt0aHJvdyByO2Nhc2UgNzpyZXR1cm5bMl19fSl9KX0oe2FwcElkOmUsYXBpS2V5Om4sbWVhc3VyZW1lbnRJZDpyfSxpLG8sdSldO2lmKHIpcmV0dXJuWzIse21lYXN1cmVtZW50SWQ6cixhcHBJZDplfV07dGhyb3cgYk0uY3JlYXRlKCJuby1hcGkta2V5Iil9KX0pfWZ1bmN0aW9uIFNNKGksbyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5tYXgoby1EYXRlLm5vdygpLDApLHI9c2V0VGltZW91dCh0LG4pO2kuYWRkRXZlbnRMaXN0ZW5lcihmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKSxlKGJNLmNyZWF0ZSgiZmV0Y2gtdGhyb3R0bGUiLHt0aHJvdHRsZUVuZFRpbWVNaWxsaXM6b30pKX0pfSl9ZnVuY3Rpb24gQ00odCl7aWYodCBpbnN0YW5jZW9mIEVvJiZ0LmN1c3RvbURhdGEpe3Q9TnVtYmVyKHQuY3VzdG9tRGF0YS5odHRwU3RhdHVzKTtyZXR1cm4gNDI5PT09dHx8NTAwPT09dHx8NTAzPT09dHx8NTA0PT09dH19dmFyIE5NPShBTS5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0KXt0aGlzLmxpc3RlbmVycy5wdXNoKHQpfSxBTS5wcm90b3R5cGUuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLmxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0KCl9KX0sQU0pO2Z1bmN0aW9uIEFNKCl7dGhpcy5saXN0ZW5lcnM9W119ZnVuY3Rpb24ga00oYSx1LGMsaCxsLGYpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaSxvLHM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4oaT1FTShhKSkudGhlbihmdW5jdGlvbih0KXtjW3QubWVhc3VyZW1lbnRJZF09dC5hcHBJZCxhLm9wdGlvbnMubWVhc3VyZW1lbnRJZCYmdC5tZWFzdXJlbWVudElkIT09YS5vcHRpb25zLm1lYXN1cmVtZW50SWQmJnlNLndhcm4oIlRoZSBtZWFzdXJlbWVudCBJRCBpbiB0aGUgbG9jYWwgRmlyZWJhc2UgY29uZmlnICgiK2Eub3B0aW9ucy5tZWFzdXJlbWVudElkKyIpIGRvZXMgbm90IG1hdGNoIHRoZSBtZWFzdXJlbWVudCBJRCBmZXRjaGVkIGZyb20gdGhlIHNlcnZlciAoIit0Lm1lYXN1cmVtZW50SWQrIikuIFRvIGVuc3VyZSBhbmFseXRpY3MgZXZlbnRzIGFyZSBhbHdheXMgc2VudCB0byB0aGUgY29ycmVjdCBBbmFseXRpY3MgcHJvcGVydHksIHVwZGF0ZSB0aGUgbWVhc3VyZW1lbnQgSUQgZmllbGQgaW4gdGhlIGxvY2FsIGNvbmZpZyBvciByZW1vdmUgaXQgZnJvbSB0aGUgbG9jYWwgY29uZmlnLiIpfSkuY2F0Y2goZnVuY3Rpb24odCl7cmV0dXJuIHlNLmVycm9yKHQpfSksdS5wdXNoKGkpLG89ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gYm8oKT9bMywxXTooeU0ud2FybihiTS5jcmVhdGUoImluZGV4ZWRkYi11bmF2YWlsYWJsZSIse2Vycm9ySW5mbzoiSW5kZXhlZERCIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudC4ifSkubWVzc2FnZSksWzIsITFdKTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx3bygpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFszLDRdO2Nhc2UgMzpyZXR1cm4gZT10LnNlbnQoKSx5TS53YXJuKGJNLmNyZWF0ZSgiaW5kZXhlZGRiLXVuYXZhaWxhYmxlIix7ZXJyb3JJbmZvOmV9KS5tZXNzYWdlKSxbMiwhMV07Y2FzZSA0OnJldHVyblsyLCEwXX19KX0pfSgpLnRoZW4oZnVuY3Rpb24odCl7aWYodClyZXR1cm4gaC5nZXRJZCgpfSksWzQsUHJvbWlzZS5hbGwoW2ksb10pXTtjYXNlIDE6cmV0dXJuIHM9dC5zZW50KCksaT1zWzBdLG89c1sxXSxmdW5jdGlvbigpe2Zvcih2YXIgdD13aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGU9MCxuPU9iamVjdC52YWx1ZXModCk7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV07aWYoci5zcmMmJnIuc3JjLmluY2x1ZGVzKGdNKSlyZXR1cm4gcn19KCl8fChlPWYsbj1pLm1lYXN1cmVtZW50SWQsKHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikpLnNyYz1nTSsiP2w9IitlKyImaWQ9IituLHIuYXN5bmM9ITAsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyKSksbCgianMiLG5ldyBEYXRlKSwocz17fSlbcE1dPSJmaXJlYmFzZSIscy51cGRhdGU9ITAscz1zLG51bGwhPW8mJihzW2ZNXT1vKSxsKGhNLkNPTkZJRyxpLm1lYXN1cmVtZW50SWQscyksWzIsaS5tZWFzdXJlbWVudElkXX12YXIgZSxuLHJ9KX0pfXZhciBSTSxQTSxPTT17fSxETT1bXSx4TT17fSxMTT0iZGF0YUxheWVyIixNTT0iZ3RhZyIsRk09ITE7ZnVuY3Rpb24gVU0odCl7aWYoRk0pdGhyb3cgYk0uY3JlYXRlKCJhbHJlYWR5LWluaXRpYWxpemVkIik7dC5kYXRhTGF5ZXJOYW1lJiYoTE09dC5kYXRhTGF5ZXJOYW1lKSx0Lmd0YWdOYW1lJiYoTU09dC5ndGFnTmFtZSl9ZnVuY3Rpb24gak0odCxlKXtpPVtdLGdvKCkmJmkucHVzaCgiVGhpcyBpcyBhIGJyb3dzZXIgZXh0ZW5zaW9uIGVudmlyb25tZW50LiIpLF9vKCl8fGkucHVzaCgiQ29va2llcyBhcmUgbm90IGF2YWlsYWJsZS4iKSwwPGkubGVuZ3RoJiYoaT1pLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiIoIisoZSsxKSsiKSAiK3R9KS5qb2luKCIgIiksaT1iTS5jcmVhdGUoImludmFsaWQtYW5hbHl0aWNzLWNvbnRleHQiLHtlcnJvckluZm86aX0pLHlNLndhcm4oaS5tZXNzYWdlKSk7dmFyIG4scixpLG8scyxhLHU9dC5vcHRpb25zLmFwcElkO2lmKCF1KXRocm93IGJNLmNyZWF0ZSgibm8tYXBwLWlkIik7aWYoIXQub3B0aW9ucy5hcGlLZXkpe2lmKCF0Lm9wdGlvbnMubWVhc3VyZW1lbnRJZCl0aHJvdyBiTS5jcmVhdGUoIm5vLWFwaS1rZXkiKTt5TS53YXJuKCdUaGUgImFwaUtleSIgZmllbGQgaXMgZW1wdHkgaW4gdGhlIGxvY2FsIEZpcmViYXNlIGNvbmZpZy4gVGhpcyBpcyBuZWVkZWQgdG8gZmV0Y2ggdGhlIGxhdGVzdCBtZWFzdXJlbWVudCBJRCBmb3IgdGhpcyBGaXJlYmFzZSBhcHAuIEZhbGxpbmcgYmFjayB0byB0aGUgbWVhc3VyZW1lbnQgSUQgJyt0Lm9wdGlvbnMubWVhc3VyZW1lbnRJZCsnIHByb3ZpZGVkIGluIHRoZSAibWVhc3VyZW1lbnRJZCIgZmllbGQgaW4gdGhlIGxvY2FsIEZpcmViYXNlIGNvbmZpZy4nKX1pZihudWxsIT1PTVt1XSl0aHJvdyBiTS5jcmVhdGUoImFscmVhZHktZXhpc3RzIix7aWQ6dX0pO3JldHVybiBGTXx8KHM9TE0sYT1bXSxBcnJheS5pc0FycmF5KHdpbmRvd1tzXSk/YT13aW5kb3dbc106d2luZG93W3NdPWEsbj1PTSxyPURNLGk9eE0sbz1MTSxzPU1NLGE9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07d2luZG93W29dLnB1c2goYXJndW1lbnRzKX0sd2luZG93W3NdJiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93W3NdJiYoYT13aW5kb3dbc10pLHdpbmRvd1tzXT1tTShhLG4scixpKSxzPXtndGFnQ29yZTphLHdyYXBwZWRHdGFnOndpbmRvd1tzXX0sUE09cy53cmFwcGVkR3RhZyxSTT1zLmd0YWdDb3JlLEZNPSEwKSxPTVt1XT1rTSh0LERNLHhNLGUsUk0sTE0pLHthcHA6dCxsb2dFdmVudDpmdW5jdGlvbih0LGUsbil7IWZ1bmN0aW9uKG4scixpLG8scyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHMmJnMuZ2xvYmFsPyhuKGhNLkVWRU5ULGksbyksWzJdKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQscl07Y2FzZSAyOmU9dC5zZW50KCksZT1KaShKaSh7fSxvKSx7c2VuZF90bzplfSksbihoTS5FVkVOVCxpLGUpLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KFBNLE9NW3VdLHQsZSxuKS5jYXRjaChmdW5jdGlvbih0KXtyZXR1cm4geU0uZXJyb3IodCl9KX0sc2V0Q3VycmVudFNjcmVlbjpmdW5jdGlvbih0LGUpeyFmdW5jdGlvbihuLHIsaSxvKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbyYmby5nbG9iYWw/KG4oaE0uU0VULHtzY3JlZW5fbmFtZTppfSksWzIsUHJvbWlzZS5yZXNvbHZlKCldKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQscl07Y2FzZSAyOmU9dC5zZW50KCksbihoTS5DT05GSUcsZSx7dXBkYXRlOiEwLHNjcmVlbl9uYW1lOml9KSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfShQTSxPTVt1XSx0LGUpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiB5TS5lcnJvcih0KX0pfSxzZXRVc2VySWQ6ZnVuY3Rpb24odCxlKXshZnVuY3Rpb24obixyLGksbyl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIG8mJm8uZ2xvYmFsPyhuKGhNLlNFVCx7dXNlcl9pZDppfSksWzIsUHJvbWlzZS5yZXNvbHZlKCldKTpbMywxXTtjYXNlIDE6cmV0dXJuWzQscl07Y2FzZSAyOmU9dC5zZW50KCksbihoTS5DT05GSUcsZSx7dXBkYXRlOiEwLHVzZXJfaWQ6aX0pLHQubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KFBNLE9NW3VdLHQsZSkuY2F0Y2goZnVuY3Rpb24odCl7cmV0dXJuIHlNLmVycm9yKHQpfSl9LHNldFVzZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKHQsZSl7IWZ1bmN0aW9uKHMsYSx1LGMpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHIsaSxvO3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6aWYoIWN8fCFjLmdsb2JhbClyZXR1cm5bMywxXTtmb3IoZT17fSxuPTAscj1PYmplY3Qua2V5cyh1KTtuPHIubGVuZ3RoO24rKylpPXJbbl0sZVsidXNlcl9wcm9wZXJ0aWVzLiIraV09dVtpXTtyZXR1cm4gcyhoTS5TRVQsZSksWzIsUHJvbWlzZS5yZXNvbHZlKCldO2Nhc2UgMTpyZXR1cm5bNCxhXTtjYXNlIDI6bz10LnNlbnQoKSxzKGhNLkNPTkZJRyxvLHt1cGRhdGU6ITAsdXNlcl9wcm9wZXJ0aWVzOnV9KSx0LmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfShQTSxPTVt1XSx0LGUpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiB5TS5lcnJvcih0KX0pfSxzZXRBbmFseXRpY3NDb2xsZWN0aW9uRW5hYmxlZDpmdW5jdGlvbih0KXshZnVuY3Rpb24obixyKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxuXTtjYXNlIDE6cmV0dXJuIGU9dC5zZW50KCksd2luZG93WyJnYS1kaXNhYmxlLSIrZV09IXIsWzJdfX0pfSl9KE9NW3VdLHQpLmNhdGNoKGZ1bmN0aW9uKHQpe3JldHVybiB5TS5lcnJvcih0KX0pfSxJTlRFUk5BTDp7ZGVsZXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGRlbGV0ZSBPTVt1XSxQcm9taXNlLnJlc29sdmUoKX19fX12YXIgcU0sVk09ImFuYWx5dGljcyI7ZnVuY3Rpb24gQk0oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDppZihnbygpKXJldHVyblsyLCExXTtpZighX28oKSlyZXR1cm5bMiwhMV07aWYoIWJvKCkpcmV0dXJuWzIsITFdO3QubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCx3bygpXTtjYXNlIDI6cmV0dXJuWzIsdC5zZW50KCldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzIsITFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0ocU09WGwpLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cyhWTSxmdW5jdGlvbih0KXtyZXR1cm4gak0odC5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCksdC5nZXRQcm92aWRlcigiaW5zdGFsbGF0aW9ucyIpLmdldEltbWVkaWF0ZSgpKX0sIlBVQkxJQyIpLnNldFNlcnZpY2VQcm9wcyh7c2V0dGluZ3M6VU0sRXZlbnROYW1lOmxNLGlzU3VwcG9ydGVkOkJNfSkpLHFNLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygiYW5hbHl0aWNzLWludGVybmFsIixmdW5jdGlvbih0KXt0cnl7cmV0dXJue2xvZ0V2ZW50OnQuZ2V0UHJvdmlkZXIoVk0pLmdldEltbWVkaWF0ZSgpLmxvZ0V2ZW50fX1jYXRjaCh0KXt0aHJvdyBiTS5jcmVhdGUoImludGVyb3AtY29tcG9uZW50LXJlZy1mYWlsZWQiLHtyZWFzb246dH0pfX0sIlBSSVZBVEUiKSkscU0ucmVnaXN0ZXJWZXJzaW9uKCJAZmlyZWJhc2UvYW5hbHl0aWNzIiwiMC42LjciKTt2YXIgS009KFdNLnByb3RvdHlwZS5pc0NhY2hlZERhdGFGcmVzaD1mdW5jdGlvbih0LGUpe2lmKCFlKXJldHVybiB0aGlzLmxvZ2dlci5kZWJ1ZygiQ29uZmlnIGZldGNoIGNhY2hlIGNoZWNrLiBDYWNoZSB1bnBvcHVsYXRlZC4iKSwhMTt2YXIgbj1EYXRlLm5vdygpLWUsZT1uPD10O3JldHVybiB0aGlzLmxvZ2dlci5kZWJ1ZygiQ29uZmlnIGZldGNoIGNhY2hlIGNoZWNrLiBDYWNoZSBhZ2UgbWlsbGlzOiAiK24rIi4gQ2FjaGUgbWF4IGFnZSBtaWxsaXMgKG1pbmltdW1GZXRjaEludGVydmFsTWlsbGlzIHNldHRpbmcpOiAiK3QrIi4gSXMgY2FjaGUgaGl0OiAiK2UrIi4iKSxlfSxXTS5wcm90b3R5cGUuZmV0Y2g9ZnVuY3Rpb24oaSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLG4scjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFByb21pc2UuYWxsKFt0aGlzLnN0b3JhZ2UuZ2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcygpLHRoaXMuc3RvcmFnZS5nZXRMYXN0U3VjY2Vzc2Z1bEZldGNoUmVzcG9uc2UoKV0pXTtjYXNlIDE6cmV0dXJuKHI9dC5zZW50KCksZT1yWzBdLChyPXJbMV0pJiZ0aGlzLmlzQ2FjaGVkRGF0YUZyZXNoKGkuY2FjaGVNYXhBZ2VNaWxsaXMsZSkpP1syLHJdOihpLmVUYWc9ciYmci5lVGFnLFs0LHRoaXMuY2xpZW50LmZldGNoKGkpXSk7Y2FzZSAyOnJldHVybiBuPXQuc2VudCgpLHI9W3RoaXMuc3RvcmFnZUNhY2hlLnNldExhc3RTdWNjZXNzZnVsRmV0Y2hUaW1lc3RhbXBNaWxsaXMoRGF0ZS5ub3coKSldLDIwMD09PW4uc3RhdHVzJiZyLnB1c2godGhpcy5zdG9yYWdlLnNldExhc3RTdWNjZXNzZnVsRmV0Y2hSZXNwb25zZShuKSksWzQsUHJvbWlzZS5hbGwocildO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzIsbl19fSl9KX0sV00pO2Z1bmN0aW9uIFdNKHQsZSxuLHIpe3RoaXMuY2xpZW50PXQsdGhpcy5zdG9yYWdlPWUsdGhpcy5zdG9yYWdlQ2FjaGU9bix0aGlzLmxvZ2dlcj1yfXZhciBTbj0oKFNuPXt9KVsicmVnaXN0cmF0aW9uLXdpbmRvdyJdPSJVbmRlZmluZWQgd2luZG93IG9iamVjdC4gVGhpcyBTREsgb25seSBzdXBwb3J0cyB1c2FnZSBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIixTblsicmVnaXN0cmF0aW9uLXByb2plY3QtaWQiXT0iVW5kZWZpbmVkIHByb2plY3QgaWRlbnRpZmllci4gQ2hlY2sgRmlyZWJhc2UgYXBwIGluaXRpYWxpemF0aW9uLiIsU25bInJlZ2lzdHJhdGlvbi1hcGkta2V5Il09IlVuZGVmaW5lZCBBUEkga2V5LiBDaGVjayBGaXJlYmFzZSBhcHAgaW5pdGlhbGl6YXRpb24uIixTblsicmVnaXN0cmF0aW9uLWFwcC1pZCJdPSJVbmRlZmluZWQgYXBwIGlkZW50aWZpZXIuIENoZWNrIEZpcmViYXNlIGFwcCBpbml0aWFsaXphdGlvbi4iLFNuWyJzdG9yYWdlLW9wZW4iXT0iRXJyb3IgdGhyb3duIHdoZW4gb3BlbmluZyBzdG9yYWdlLiBPcmlnaW5hbCBlcnJvcjogeyRvcmlnaW5hbEVycm9yTWVzc2FnZX0uIixTblsic3RvcmFnZS1nZXQiXT0iRXJyb3IgdGhyb3duIHdoZW4gcmVhZGluZyBmcm9tIHN0b3JhZ2UuIE9yaWdpbmFsIGVycm9yOiB7JG9yaWdpbmFsRXJyb3JNZXNzYWdlfS4iLFNuWyJzdG9yYWdlLXNldCJdPSJFcnJvciB0aHJvd24gd2hlbiB3cml0aW5nIHRvIHN0b3JhZ2UuIE9yaWdpbmFsIGVycm9yOiB7JG9yaWdpbmFsRXJyb3JNZXNzYWdlfS4iLFNuWyJzdG9yYWdlLWRlbGV0ZSJdPSJFcnJvciB0aHJvd24gd2hlbiBkZWxldGluZyBmcm9tIHN0b3JhZ2UuIE9yaWdpbmFsIGVycm9yOiB7JG9yaWdpbmFsRXJyb3JNZXNzYWdlfS4iLFNuWyJmZXRjaC1jbGllbnQtbmV0d29yayJdPSJGZXRjaCBjbGllbnQgZmFpbGVkIHRvIGNvbm5lY3QgdG8gYSBuZXR3b3JrLiBDaGVjayBJbnRlcm5ldCBjb25uZWN0aW9uLiBPcmlnaW5hbCBlcnJvcjogeyRvcmlnaW5hbEVycm9yTWVzc2FnZX0uIixTblsiZmV0Y2gtdGltZW91dCJdPSdUaGUgY29uZmlnIGZldGNoIHJlcXVlc3QgdGltZWQgb3V0LiAgQ29uZmlndXJlIHRpbWVvdXQgdXNpbmcgImZldGNoVGltZW91dE1pbGxpcyIgU0RLIHNldHRpbmcuJyxTblsiZmV0Y2gtdGhyb3R0bGUiXT0nVGhlIGNvbmZpZyBmZXRjaCByZXF1ZXN0IHRpbWVkIG91dCB3aGlsZSBpbiBhbiBleHBvbmVudGlhbCBiYWNrb2ZmIHN0YXRlLiBDb25maWd1cmUgdGltZW91dCB1c2luZyAiZmV0Y2hUaW1lb3V0TWlsbGlzIiBTREsgc2V0dGluZy4gVW5peCB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzIHdoZW4gZmV0Y2ggcmVxdWVzdCB0aHJvdHRsaW5nIGVuZHM6IHskdGhyb3R0bGVFbmRUaW1lTWlsbGlzfS4nLFNuWyJmZXRjaC1jbGllbnQtcGFyc2UiXT0iRmV0Y2ggY2xpZW50IGNvdWxkIG5vdCBwYXJzZSByZXNwb25zZS4gT3JpZ2luYWwgZXJyb3I6IHskb3JpZ2luYWxFcnJvck1lc3NhZ2V9LiIsU25bImZldGNoLXN0YXR1cyJdPSJGZXRjaCBzZXJ2ZXIgcmV0dXJuZWQgYW4gSFRUUCBlcnJvciBzdGF0dXMuIEhUVFAgc3RhdHVzOiB7JGh0dHBTdGF0dXN9LiIsU24pLEhNPW5ldyBDbygicmVtb3RlY29uZmlnIiwiUmVtb3RlIENvbmZpZyIsU24pO3ZhciBHTT0oek0ucHJvdG90eXBlLmZldGNoPWZ1bmN0aW9uKGYpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbixyLGksbyxzLGEsdSxjLGgsbDtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFByb21pc2UuYWxsKFt0aGlzLmZpcmViYXNlSW5zdGFsbGF0aW9ucy5nZXRJZCgpLHRoaXMuZmlyZWJhc2VJbnN0YWxsYXRpb25zLmdldFRva2VuKCldKV07Y2FzZSAxOm89dC5zZW50KCksbj1vWzBdLGk9b1sxXSxyPXdpbmRvdy5GSVJFQkFTRV9SRU1PVEVfQ09ORklHX1VSTF9CQVNFfHwiaHR0cHM6Ly9maXJlYmFzZXJlbW90ZWNvbmZpZy5nb29nbGVhcGlzLmNvbSIsbz1yKyIvdjEvcHJvamVjdHMvIit0aGlzLnByb2plY3RJZCsiL25hbWVzcGFjZXMvIit0aGlzLm5hbWVzcGFjZSsiOmZldGNoP2tleT0iK3RoaXMuYXBpS2V5LHI9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1FbmNvZGluZyI6Imd6aXAiLCJJZi1Ob25lLU1hdGNoIjpmLmVUYWd8fCIqIn0saT17c2RrX3ZlcnNpb246dGhpcy5zZGtWZXJzaW9uLGFwcF9pbnN0YW5jZV9pZDpuLGFwcF9pbnN0YW5jZV9pZF90b2tlbjppLGFwcF9pZDp0aGlzLmFwcElkLGxhbmd1YWdlX2NvZGU6KGU9dm9pZCAwPT09ZT9uYXZpZ2F0b3I6ZSkubGFuZ3VhZ2VzJiZlLmxhbmd1YWdlc1swXXx8ZS5sYW5ndWFnZX0saT17bWV0aG9kOiJQT1NUIixoZWFkZXJzOnIsYm9keTpKU09OLnN0cmluZ2lmeShpKX0sbz1mZXRjaChvLGkpLGk9bmV3IFByb21pc2UoZnVuY3Rpb24odCxlKXtmLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEVycm9yKCJUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLiIpO3QubmFtZT0iQWJvcnRFcnJvciIsZSh0KX0pfSksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gdC50cnlzLnB1c2goWzIsNSwsNl0pLFs0LFByb21pc2UucmFjZShbbyxpXSldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksWzQsb107Y2FzZSA0OnJldHVybiBsPXQuc2VudCgpLFszLDZdO2Nhc2UgNTp0aHJvdyBpPXQuc2VudCgpLG89ImZldGNoLWNsaWVudC1uZXR3b3JrIiwiQWJvcnRFcnJvciI9PT1pLm5hbWUmJihvPSJmZXRjaC10aW1lb3V0IiksSE0uY3JlYXRlKG8se29yaWdpbmFsRXJyb3JNZXNzYWdlOmkubWVzc2FnZX0pO2Nhc2UgNjppZihzPWwuc3RhdHVzLGE9bC5oZWFkZXJzLmdldCgiRVRhZyIpfHx2b2lkIDAsMjAwIT09bC5zdGF0dXMpcmV0dXJuWzMsMTFdO2g9dm9pZCAwLHQubGFiZWw9NztjYXNlIDc6cmV0dXJuIHQudHJ5cy5wdXNoKFs3LDksLDEwXSksWzQsbC5qc29uKCldO2Nhc2UgODpyZXR1cm4gaD10LnNlbnQoKSxbMywxMF07Y2FzZSA5OnRocm93IGw9dC5zZW50KCksSE0uY3JlYXRlKCJmZXRjaC1jbGllbnQtcGFyc2UiLHtvcmlnaW5hbEVycm9yTWVzc2FnZTpsLm1lc3NhZ2V9KTtjYXNlIDEwOnU9aC5lbnRyaWVzLGM9aC5zdGF0ZSx0LmxhYmVsPTExO2Nhc2UgMTE6aWYoIklOU1RBTkNFX1NUQVRFX1VOU1BFQ0lGSUVEIj09PWM/cz01MDA6Ik5PX0NIQU5HRSI9PT1jP3M9MzA0OiJOT19URU1QTEFURSIhPT1jJiYiRU1QVFlfQ09ORklHIiE9PWN8fCh1PXt9KSwzMDQhPT1zJiYyMDAhPT1zKXRocm93IEhNLmNyZWF0ZSgiZmV0Y2gtc3RhdHVzIix7aHR0cFN0YXR1czpzfSk7cmV0dXJuWzIse3N0YXR1czpzLGVUYWc6YSxjb25maWc6dX1dfXZhciBlfSl9KX0sek0pO2Z1bmN0aW9uIHpNKHQsZSxuLHIsaSxvKXt0aGlzLmZpcmViYXNlSW5zdGFsbGF0aW9ucz10LHRoaXMuc2RrVmVyc2lvbj1lLHRoaXMubmFtZXNwYWNlPW4sdGhpcy5wcm9qZWN0SWQ9cix0aGlzLmFwaUtleT1pLHRoaXMuYXBwSWQ9b312YXIgUU09KFlNLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQpe3RoaXMubGlzdGVuZXJzLnB1c2godCl9LFlNLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMubGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIHQoKX0pfSxZTSk7ZnVuY3Rpb24gWU0oKXt0aGlzLmxpc3RlbmVycz1bXX12YXIgWE09WyIxIiwidHJ1ZSIsInQiLCJ5ZXMiLCJ5Iiwib24iXSxKTT0oJE0ucHJvdG90eXBlLmFzU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfSwkTS5wcm90b3R5cGUuYXNCb29sZWFuPWZ1bmN0aW9uKCl7cmV0dXJuInN0YXRpYyIhPT10aGlzLl9zb3VyY2UmJjA8PVhNLmluZGV4T2YodGhpcy5fdmFsdWUudG9Mb3dlckNhc2UoKSl9LCRNLnByb3RvdHlwZS5hc051bWJlcj1mdW5jdGlvbigpe2lmKCJzdGF0aWMiPT09dGhpcy5fc291cmNlKXJldHVybiAwO3ZhciB0PU51bWJlcih0aGlzLl92YWx1ZSk7cmV0dXJuIHQ9aXNOYU4odCk/MDp0fSwkTS5wcm90b3R5cGUuZ2V0U291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NvdXJjZX0sJE0pO2Z1bmN0aW9uICRNKHQsZSl7dm9pZCAwPT09ZSYmKGU9IiIpLHRoaXMuX3NvdXJjZT10LHRoaXMuX3ZhbHVlPWV9dmFyIFpNPSh0Ri5wcm90b3R5cGUuc2V0TG9nTGV2ZWw9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UiZGVidWciOnRoaXMuX2xvZ2dlci5sb2dMZXZlbD1hcy5ERUJVRzticmVhaztjYXNlInNpbGVudCI6dGhpcy5fbG9nZ2VyLmxvZ0xldmVsPWFzLlNJTEVOVDticmVhaztkZWZhdWx0OnRoaXMuX2xvZ2dlci5sb2dMZXZlbD1hcy5FUlJPUn19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0Ri5wcm90b3R5cGUsImZldGNoVGltZU1pbGxpcyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdG9yYWdlQ2FjaGUuZ2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcygpfHwtMX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodEYucHJvdG90eXBlLCJsYXN0RmV0Y2hTdGF0dXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RvcmFnZUNhY2hlLmdldExhc3RGZXRjaFN0YXR1cygpfHwibm8tZmV0Y2gteWV0In0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx0Ri5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFByb21pc2UuYWxsKFt0aGlzLl9zdG9yYWdlLmdldExhc3RTdWNjZXNzZnVsRmV0Y2hSZXNwb25zZSgpLHRoaXMuX3N0b3JhZ2UuZ2V0QWN0aXZlQ29uZmlnRXRhZygpXSldO2Nhc2UgMTpyZXR1cm4gbj10LnNlbnQoKSxlPW5bMF0sbj1uWzFdLGUmJmUuY29uZmlnJiZlLmVUYWcmJmUuZVRhZyE9PW4/WzQsUHJvbWlzZS5hbGwoW3RoaXMuX3N0b3JhZ2VDYWNoZS5zZXRBY3RpdmVDb25maWcoZS5jb25maWcpLHRoaXMuX3N0b3JhZ2Uuc2V0QWN0aXZlQ29uZmlnRXRhZyhlLmVUYWcpXSldOlsyLCExXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFsyLCEwXX19KX0pfSx0Ri5wcm90b3R5cGUuZW5zdXJlSW5pdGlhbGl6ZWQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9pbml0aWFsaXplUHJvbWlzZXx8KHRoaXMuX2luaXRpYWxpemVQcm9taXNlPXRoaXMuX3N0b3JhZ2VDYWNoZS5sb2FkRnJvbVN0b3JhZ2UoKS50aGVuKGZ1bmN0aW9uKCl7dC5faXNJbml0aWFsaXphdGlvbkNvbXBsZXRlPSEwfSkpLHRoaXMuX2luaXRpYWxpemVQcm9taXNlfSx0Ri5wcm90b3R5cGUuZmV0Y2g9ZnVuY3Rpb24oKXtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHIsaSxvLHM9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnI9bmV3IFFNLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gJGkocyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuIHIuYWJvcnQoKSxbMl19KX0pfSx0aGlzLnNldHRpbmdzLmZldGNoVGltZW91dE1pbGxpcyksdC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdC50cnlzLnB1c2goWzEsNCwsNl0pLFs0LHRoaXMuX2NsaWVudC5mZXRjaCh7Y2FjaGVNYXhBZ2VNaWxsaXM6dGhpcy5zZXR0aW5ncy5taW5pbXVtRmV0Y2hJbnRlcnZhbE1pbGxpcyxzaWduYWw6cn0pXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLFs0LHRoaXMuX3N0b3JhZ2VDYWNoZS5zZXRMYXN0RmV0Y2hTdGF0dXMoInN1Y2Nlc3MiKV07Y2FzZSAzOnJldHVybiB0LnNlbnQoKSxbMyw2XTtjYXNlIDQ6cmV0dXJuIGk9dC5zZW50KCksbj0iZmV0Y2gtdGhyb3R0bGUiLG89KGU9aSlpbnN0YW5jZW9mIEVvJiYtMSE9PWUuY29kZS5pbmRleE9mKG4pPyJ0aHJvdHRsZSI6ImZhaWx1cmUiLFs0LHRoaXMuX3N0b3JhZ2VDYWNoZS5zZXRMYXN0RmV0Y2hTdGF0dXMobyldO2Nhc2UgNTp0aHJvdyB0LnNlbnQoKSxpO2Nhc2UgNjpyZXR1cm5bMl19dmFyIGUsbn0pfSl9LHRGLnByb3RvdHlwZS5mZXRjaEFuZEFjdGl2YXRlPWZ1bmN0aW9uKCl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBaaSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5mZXRjaCgpXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFsyLHRoaXMuYWN0aXZhdGUoKV19fSl9KX0sdEYucHJvdG90eXBlLmdldEFsbD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9e30pO3ZvaWQgMD09PWUmJihlPXt9KTtyZXR1cm4gT2JqZWN0LmtleXMoSmkoSmkoe30sdCksZSkpfSh0aGlzLl9zdG9yYWdlQ2FjaGUuZ2V0QWN0aXZlQ29uZmlnKCksdGhpcy5kZWZhdWx0Q29uZmlnKS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlXT1uLmdldFZhbHVlKGUpLHR9LHt9KX0sdEYucHJvdG90eXBlLmdldEJvb2xlYW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUodCkuYXNCb29sZWFuKCl9LHRGLnByb3RvdHlwZS5nZXROdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWUodCkuYXNOdW1iZXIoKX0sdEYucHJvdG90eXBlLmdldFN0cmluZz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSh0KS5hc1N0cmluZygpfSx0Ri5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24odCl7dGhpcy5faXNJbml0aWFsaXphdGlvbkNvbXBsZXRlfHx0aGlzLl9sb2dnZXIuZGVidWcoJ0EgdmFsdWUgd2FzIHJlcXVlc3RlZCBmb3Iga2V5ICInK3QrJyIgYmVmb3JlIFNESyBpbml0aWFsaXphdGlvbiBjb21wbGV0ZWQuIEF3YWl0IG9uIGVuc3VyZUluaXRpYWxpemVkIGlmIHRoZSBpbnRlbnQgd2FzIHRvIGdldCBhIHByZXZpb3VzbHkgYWN0aXZhdGVkIHZhbHVlLicpO3ZhciBlPXRoaXMuX3N0b3JhZ2VDYWNoZS5nZXRBY3RpdmVDb25maWcoKTtyZXR1cm4gZSYmdm9pZCAwIT09ZVt0XT9uZXcgSk0oInJlbW90ZSIsZVt0XSk6dGhpcy5kZWZhdWx0Q29uZmlnJiZ2b2lkIDAhPT10aGlzLmRlZmF1bHRDb25maWdbdF0/bmV3IEpNKCJkZWZhdWx0IixTdHJpbmcodGhpcy5kZWZhdWx0Q29uZmlnW3RdKSk6KHRoaXMuX2xvZ2dlci5kZWJ1ZygnUmV0dXJuaW5nIHN0YXRpYyB2YWx1ZSBmb3Iga2V5ICInK3QrJyIuIERlZmluZSBhIGRlZmF1bHQgb3IgcmVtb3RlIHZhbHVlIGlmIHRoaXMgaXMgdW5pbnRlbnRpb25hbC4nKSxuZXcgSk0oInN0YXRpYyIpKX0sdEYpO2Z1bmN0aW9uIHRGKHQsZSxuLHIsaSl7dGhpcy5hcHA9dCx0aGlzLl9jbGllbnQ9ZSx0aGlzLl9zdG9yYWdlQ2FjaGU9bix0aGlzLl9zdG9yYWdlPXIsdGhpcy5fbG9nZ2VyPWksdGhpcy5faXNJbml0aWFsaXphdGlvbkNvbXBsZXRlPSExLHRoaXMuc2V0dGluZ3M9e2ZldGNoVGltZW91dE1pbGxpczo2ZTQsbWluaW11bUZldGNoSW50ZXJ2YWxNaWxsaXM6NDMyZTV9LHRoaXMuZGVmYXVsdENvbmZpZz17fX1mdW5jdGlvbiBlRih0LGUpe3Q9dC50YXJnZXQuZXJyb3J8fHZvaWQgMDtyZXR1cm4gSE0uY3JlYXRlKGUse29yaWdpbmFsRXJyb3JNZXNzYWdlOnQmJnQubWVzc2FnZX0pfXZhciBuRj0iYXBwX25hbWVzcGFjZV9zdG9yZSIsckY9ImZpcmViYXNlX3JlbW90ZV9jb25maWciLGlGPTE7dmFyIG9GPShzRi5wcm90b3R5cGUuZ2V0TGFzdEZldGNoU3RhdHVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJsYXN0X2ZldGNoX3N0YXR1cyIpfSxzRi5wcm90b3R5cGUuc2V0TGFzdEZldGNoU3RhdHVzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNldCgibGFzdF9mZXRjaF9zdGF0dXMiLHQpfSxzRi5wcm90b3R5cGUuZ2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgibGFzdF9zdWNjZXNzZnVsX2ZldGNoX3RpbWVzdGFtcF9taWxsaXMiKX0sc0YucHJvdG90eXBlLnNldExhc3RTdWNjZXNzZnVsRmV0Y2hUaW1lc3RhbXBNaWxsaXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2V0KCJsYXN0X3N1Y2Nlc3NmdWxfZmV0Y2hfdGltZXN0YW1wX21pbGxpcyIsdCl9LHNGLnByb3RvdHlwZS5nZXRMYXN0U3VjY2Vzc2Z1bEZldGNoUmVzcG9uc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoImxhc3Rfc3VjY2Vzc2Z1bF9mZXRjaF9yZXNwb25zZSIpfSxzRi5wcm90b3R5cGUuc2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFJlc3BvbnNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNldCgibGFzdF9zdWNjZXNzZnVsX2ZldGNoX3Jlc3BvbnNlIix0KX0sc0YucHJvdG90eXBlLmdldEFjdGl2ZUNvbmZpZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgiYWN0aXZlX2NvbmZpZyIpfSxzRi5wcm90b3R5cGUuc2V0QWN0aXZlQ29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNldCgiYWN0aXZlX2NvbmZpZyIsdCl9LHNGLnByb3RvdHlwZS5nZXRBY3RpdmVDb25maWdFdGFnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KCJhY3RpdmVfY29uZmlnX2V0YWciKX0sc0YucHJvdG90eXBlLnNldEFjdGl2ZUNvbmZpZ0V0YWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2V0KCJhY3RpdmVfY29uZmlnX2V0YWciLHQpfSxzRi5wcm90b3R5cGUuZ2V0VGhyb3R0bGVNZXRhZGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldCgidGhyb3R0bGVfbWV0YWRhdGEiKX0sc0YucHJvdG90eXBlLnNldFRocm90dGxlTWV0YWRhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2V0KCJ0aHJvdHRsZV9tZXRhZGF0YSIsdCl9LHNGLnByb3RvdHlwZS5kZWxldGVUaHJvdHRsZU1ldGFkYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVsZXRlKCJ0aHJvdHRsZV9tZXRhZGF0YSIpfSxzRi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxzPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLm9wZW5EYlByb21pc2VdO2Nhc2UgMTpyZXR1cm4gbz10LnNlbnQoKSxbMixuZXcgUHJvbWlzZShmdW5jdGlvbihlLG4pe3ZhciB0PW8udHJhbnNhY3Rpb24oW25GXSwicmVhZG9ubHkiKS5vYmplY3RTdG9yZShuRikscj1zLmNyZWF0ZUNvbXBvc2l0ZUtleShhKTt0cnl7dmFyIGk9dC5nZXQocik7aS5vbmVycm9yPWZ1bmN0aW9uKHQpe24oZUYodCwic3RvcmFnZS1nZXQiKSl9LGkub25zdWNjZXNzPWZ1bmN0aW9uKHQpe3Q9dC50YXJnZXQucmVzdWx0O2UodD90LnZhbHVlOnZvaWQgMCl9fWNhdGNoKHQpe24oSE0uY3JlYXRlKCJzdG9yYWdlLWdldCIse29yaWdpbmFsRXJyb3JNZXNzYWdlOnQmJnQubWVzc2FnZX0pKX19KV19fSl9KX0sc0YucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLHUpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbyxzPXRoaXM7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLm9wZW5EYlByb21pc2VdO2Nhc2UgMTpyZXR1cm4gbz10LnNlbnQoKSxbMixuZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3ZhciBuPW8udHJhbnNhY3Rpb24oW25GXSwicmVhZHdyaXRlIikub2JqZWN0U3RvcmUobkYpLHI9cy5jcmVhdGVDb21wb3NpdGVLZXkoYSk7dHJ5e3ZhciBpPW4ucHV0KHtjb21wb3NpdGVLZXk6cix2YWx1ZTp1fSk7aS5vbmVycm9yPWZ1bmN0aW9uKHQpe2UoZUYodCwic3RvcmFnZS1zZXQiKSl9LGkub25zdWNjZXNzPWZ1bmN0aW9uKCl7dCgpfX1jYXRjaCh0KXtlKEhNLmNyZWF0ZSgic3RvcmFnZS1zZXQiLHtvcmlnaW5hbEVycm9yTWVzc2FnZTp0JiZ0Lm1lc3NhZ2V9KSl9fSldfX0pfSl9LHNGLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oYSl7cmV0dXJuICRpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvLHM9dGhpcztyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMub3BlbkRiUHJvbWlzZV07Y2FzZSAxOnJldHVybiBvPXQuc2VudCgpLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsZSl7dmFyIG49by50cmFuc2FjdGlvbihbbkZdLCJyZWFkd3JpdGUiKS5vYmplY3RTdG9yZShuRikscj1zLmNyZWF0ZUNvbXBvc2l0ZUtleShhKTt0cnl7dmFyIGk9bi5kZWxldGUocik7aS5vbmVycm9yPWZ1bmN0aW9uKHQpe2UoZUYodCwic3RvcmFnZS1kZWxldGUiKSl9LGkub25zdWNjZXNzPWZ1bmN0aW9uKCl7dCgpfX1jYXRjaCh0KXtlKEhNLmNyZWF0ZSgic3RvcmFnZS1kZWxldGUiLHtvcmlnaW5hbEVycm9yTWVzc2FnZTp0JiZ0Lm1lc3NhZ2V9KSl9fSldfX0pfSl9LHNGLnByb3RvdHlwZS5jcmVhdGVDb21wb3NpdGVLZXk9ZnVuY3Rpb24odCl7cmV0dXJuW3RoaXMuYXBwSWQsdGhpcy5hcHBOYW1lLHRoaXMubmFtZXNwYWNlLHRdLmpvaW4oKX0sc0YpO2Z1bmN0aW9uIHNGKHQsZSxuLHIpe3ZvaWQgMD09PXImJihyPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsbil7dmFyIHQ9aW5kZXhlZERCLm9wZW4ockYsaUYpO3Qub25lcnJvcj1mdW5jdGlvbih0KXtuKGVGKHQsInN0b3JhZ2Utb3BlbiIpKX0sdC5vbnN1Y2Nlc3M9ZnVuY3Rpb24odCl7ZSh0LnRhcmdldC5yZXN1bHQpfSx0Lm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldC5yZXN1bHQ7MD09PXQub2xkVmVyc2lvbiYmZS5jcmVhdGVPYmplY3RTdG9yZShuRix7a2V5UGF0aDoiY29tcG9zaXRlS2V5In0pfX0pKSx0aGlzLmFwcElkPXQsdGhpcy5hcHBOYW1lPWUsdGhpcy5uYW1lc3BhY2U9bix0aGlzLm9wZW5EYlByb21pc2U9cn12YXIgYUY9KHVGLnByb3RvdHlwZS5nZXRMYXN0RmV0Y2hTdGF0dXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXN0RmV0Y2hTdGF0dXN9LHVGLnByb3RvdHlwZS5nZXRMYXN0U3VjY2Vzc2Z1bEZldGNoVGltZXN0YW1wTWlsbGlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpc30sdUYucHJvdG90eXBlLmdldEFjdGl2ZUNvbmZpZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZUNvbmZpZ30sdUYucHJvdG90eXBlLmxvYWRGcm9tU3RvcmFnZT1mdW5jdGlvbigpe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSxuLHI7cmV0dXJuIFppKHRoaXMsZnVuY3Rpb24odCl7c3dpdGNoKHQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZT10aGlzLnN0b3JhZ2UuZ2V0TGFzdEZldGNoU3RhdHVzKCksbj10aGlzLnN0b3JhZ2UuZ2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcygpLHI9dGhpcy5zdG9yYWdlLmdldEFjdGl2ZUNvbmZpZygpLFs0LGVdO2Nhc2UgMTpyZXR1cm4oZT10LnNlbnQoKSkmJih0aGlzLmxhc3RGZXRjaFN0YXR1cz1lKSxbNCxuXTtjYXNlIDI6cmV0dXJuKG49dC5zZW50KCkpJiYodGhpcy5sYXN0U3VjY2Vzc2Z1bEZldGNoVGltZXN0YW1wTWlsbGlzPW4pLFs0LHJdO2Nhc2UgMzpyZXR1cm4ocj10LnNlbnQoKSkmJih0aGlzLmFjdGl2ZUNvbmZpZz1yKSxbMl19fSl9KX0sdUYucHJvdG90eXBlLnNldExhc3RGZXRjaFN0YXR1cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sYXN0RmV0Y2hTdGF0dXM9dCx0aGlzLnN0b3JhZ2Uuc2V0TGFzdEZldGNoU3RhdHVzKHQpfSx1Ri5wcm90b3R5cGUuc2V0TGFzdFN1Y2Nlc3NmdWxGZXRjaFRpbWVzdGFtcE1pbGxpcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sYXN0U3VjY2Vzc2Z1bEZldGNoVGltZXN0YW1wTWlsbGlzPXQsdGhpcy5zdG9yYWdlLnNldExhc3RTdWNjZXNzZnVsRmV0Y2hUaW1lc3RhbXBNaWxsaXModCl9LHVGLnByb3RvdHlwZS5zZXRBY3RpdmVDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYWN0aXZlQ29uZmlnPXQsdGhpcy5zdG9yYWdlLnNldEFjdGl2ZUNvbmZpZyh0KX0sdUYpO2Z1bmN0aW9uIHVGKHQpe3RoaXMuc3RvcmFnZT10fXZhciBjRj0oaEYucHJvdG90eXBlLmZldGNoPWZ1bmN0aW9uKG4pe3JldHVybiAkaSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuc3RvcmFnZS5nZXRUaHJvdHRsZU1ldGFkYXRhKCldO2Nhc2UgMTpyZXR1cm4gZT10LnNlbnQoKXx8e2JhY2tvZmZDb3VudDowLHRocm90dGxlRW5kVGltZU1pbGxpczpEYXRlLm5vdygpfSxbMix0aGlzLmF0dGVtcHRGZXRjaChuLGUpXX19KX0pfSxoRi5wcm90b3R5cGUuYXR0ZW1wdEZldGNoPWZ1bmN0aW9uKHIsdCl7dmFyIHM9dC50aHJvdHRsZUVuZFRpbWVNaWxsaXMsYT10LmJhY2tvZmZDb3VudDtyZXR1cm4gJGkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4gWmkodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LChpPXIuc2lnbmFsLG89cyxuZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgubWF4KG8tRGF0ZS5ub3coKSwwKSxyPXNldFRpbWVvdXQodCxuKTtpLmFkZEV2ZW50TGlzdGVuZXIoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQociksZShITS5jcmVhdGUoImZldGNoLXRocm90dGxlIix7dGhyb3R0bGVFbmRUaW1lTWlsbGlzOm99KSl9KX0pKV07Y2FzZSAxOnQuc2VudCgpLHQubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHQudHJ5cy5wdXNoKFsyLDUsLDddKSxbNCx0aGlzLmNsaWVudC5mZXRjaChyKV07Y2FzZSAzOnJldHVybiBlPXQuc2VudCgpLFs0LHRoaXMuc3RvcmFnZS5kZWxldGVUaHJvdHRsZU1ldGFkYXRhKCldO2Nhc2UgNDpyZXR1cm4gdC5zZW50KCksWzIsZV07Y2FzZSA1OmlmKCFmdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgRW8mJnQuY3VzdG9tRGF0YSl7dD1OdW1iZXIodC5jdXN0b21EYXRhLmh0dHBTdGF0dXMpO3JldHVybiA0Mjk9PT10fHw1MDA9PT10fHw1MDM9PT10fHw1MDQ9PT10fX0obj10LnNlbnQoKSkpdGhyb3cgbjtyZXR1cm4gbj17dGhyb3R0bGVFbmRUaW1lTWlsbGlzOkRhdGUubm93KCkrJG8oYSksYmFja29mZkNvdW50OmErMX0sWzQsdGhpcy5zdG9yYWdlLnNldFRocm90dGxlTWV0YWRhdGEobildO2Nhc2UgNjpyZXR1cm4gdC5zZW50KCksWzIsdGhpcy5hdHRlbXB0RmV0Y2gocixuKV07Y2FzZSA3OnJldHVyblsyXX12YXIgaSxvfSl9KX0saEYpO2Z1bmN0aW9uIGhGKHQsZSl7dGhpcy5jbGllbnQ9dCx0aGlzLnN0b3JhZ2U9ZX12YXIgbEYsZkY9IkBmaXJlYmFzZS9yZW1vdGUtY29uZmlnIjtyZXR1cm4obEY9WGwpLklOVEVSTkFMLnJlZ2lzdGVyQ29tcG9uZW50KG5ldyB0cygicmVtb3RlQ29uZmlnIixmdW5jdGlvbih0LGUpe3ZhciBuPWUuaW5zdGFuY2VJZGVudGlmaWVyLHI9dC5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCksaT10LmdldFByb3ZpZGVyKCJpbnN0YWxsYXRpb25zIikuZ2V0SW1tZWRpYXRlKCk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpdGhyb3cgSE0uY3JlYXRlKCJyZWdpc3RyYXRpb24td2luZG93Iik7dmFyIG89ci5vcHRpb25zLHM9by5wcm9qZWN0SWQsYT1vLmFwaUtleSx1PW8uYXBwSWQ7aWYoIXMpdGhyb3cgSE0uY3JlYXRlKCJyZWdpc3RyYXRpb24tcHJvamVjdC1pZCIpO2lmKCFhKXRocm93IEhNLmNyZWF0ZSgicmVnaXN0cmF0aW9uLWFwaS1rZXkiKTtpZighdSl0aHJvdyBITS5jcmVhdGUoInJlZ2lzdHJhdGlvbi1hcHAtaWQiKTtuPW58fCJmaXJlYmFzZSI7ZT1uZXcgb0YodSxyLm5hbWUsbiksdD1uZXcgYUYoZSksbz1uZXcgcHMoZkYpO28ubG9nTGV2ZWw9YXMuRVJST1I7dT1uZXcgR00oaSxsRi5TREtfVkVSU0lPTixuLHMsYSx1KSx1PW5ldyBjRih1LGUpLHU9bmV3IEtNKHUsZSx0LG8pLG89bmV3IFpNKHIsdSx0LGUsbyk7cmV0dXJuIG8uZW5zdXJlSW5pdGlhbGl6ZWQoKSxvfSwiUFVCTElDIikuc2V0TXVsdGlwbGVJbnN0YW5jZXMoITApKSxsRi5yZWdpc3RlclZlcnNpb24oZkYsIjAuMS4zNCIpLGNvbnNvbGUud2FybigiXG5JdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyB0aGUgZGV2ZWxvcG1lbnQgYnVpbGQgb2YgdGhlIEZpcmViYXNlIEpTIFNESy5cbldoZW4gZGVwbG95aW5nIEZpcmViYXNlIGFwcHMgdG8gcHJvZHVjdGlvbiwgaXQgaXMgYWR2aXNhYmxlIHRvIG9ubHkgaW1wb3J0XG50aGUgaW5kaXZpZHVhbCBTREsgY29tcG9uZW50cyB5b3UgaW50ZW5kIHRvIHVzZS5cblxuRm9yIHRoZSBDRE4gYnVpbGRzLCB0aGVzZSBhcmUgYXZhaWxhYmxlIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyXG4ocmVwbGFjZSA8UEFDS0FHRT4gd2l0aCB0aGUgbmFtZSBvZiBhIGNvbXBvbmVudCAtIGkuZS4gYXV0aCwgZGF0YWJhc2UsIGV0Yyk6XG5cbmh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ZpcmViYXNlanMvNS4wLjAvZmlyZWJhc2UtPFBBQ0tBR0U+LmpzXG4iKSxYbC5yZWdpc3RlclZlcnNpb24oImZpcmViYXNlIiwiOC4zLjIiLCJjZG4iKSxYbH0pOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlyZWJhc2UuanMubWFwDQo="}},"time_used":88,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":64,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,tether,solana,ripple,dogecoin,usd-coin,the-open-network,binancecoin,tron\u0026vs_currencies=usd\u0026include_24hr_change=true","fqdn":"api.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"104.20.41.132","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.024Z","timestamp":1785153915024,"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":"api.coingecko.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 03 Jul 2026 17:14:13 GMT","end":"Thu, 01 Oct 2026 18:14:10 GMT"},"fingerprint":{"sha1":"FD:68:29:08:59:93:ED:F1:73:C5:56:C8:B7:8C:EA:2D:F8:7E:E5:67","sha256":"28:11:40:A6:0A:FB:70:11:FF:CD:E4:7F:13:40:3F:0F:D5:5F:68:21:26:DF:61:5A:45:A5:EB:B3:33:B2:A9:0B"}}},"request":{"raw":"GET /api/v3/simple/price?ids=bitcoin,ethereum,tether,solana,ripple,dogecoin,usd-coin,the-open-network,binancecoin,tron\u0026vs_currencies=usd\u0026include_24hr_change=true HTTP/1.1\r\nHost: api.coingecko.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\nReferer: https://onchainopt.com/\r\nOrigin: https://onchainopt.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\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\ndate: Mon, 27 Jul 2026 12:05:15 GMT\r\ncontent-type: application/json; charset=utf-8\r\nserver: cloudflare\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: POST, PUT, DELETE, GET, OPTIONS\r\naccess-control-expose-headers: link, per-page, total\r\naccess-control-max-age: 7200\r\nx-frame-options: SAMEORIGIN\r\nx-xss-protection: 0\r\nx-content-type-options: nosniff\r\nx-permitted-cross-domain-policies: none\r\nreferrer-policy: strict-origin-when-cross-origin\r\nx-data-source: 1.0\r\ncache-control: max-age=30, public, must-revalidate, s-maxage=60\r\naccess-control-request-method: *\r\naccess-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization\r\nvary: Accept-Encoding, Origin\r\ncontent-encoding: gzip\r\netag: W/\"34c844778086eca7486caf513271941f\"\r\nx-request-id: 820d034c-9370-465d-b41e-49918f663aab\r\nx-runtime: 0.019711\r\ncontent-security-policy-report-only: script-src https://accounts.google.com/gsi/client; frame-src https://accounts.google.com/gsi/; connect-src https://accounts.google.com/gsi/;\r\nstrict-transport-security: max-age=600\r\ncf-cache-status: EXPIRED\r\npriority: u=4,i=?0\r\ncf-ray: a21b82e0feeb35a6-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\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":"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":628,"size_decoded":1509,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"af0e352c4963b0570bdc1b58babd779f","sha1":"ff1339d297110af5cd0da47ac933cda27ba10c6f","sha256":"9bd849b898c2f9221c5a207fe028ce4c886332d14041bd6376336e55f599a31f","sha512":"9e6d1f29fbc868550c230cdb0de4a4bfaf46375c7631603d68b1fa6e7bf30f600094a1fef1621b50f8b1eecc01fd6a447425b84dd9f4651d09473ba8b8723d11","ssdeep":"","tlshash":"3af0d1c3123085639daa8e764a907661da4f5df19c0d8206426fdce918891ee175e8d7","first_seen":"2026-07-27T12:05:48.896867Z","last_seen":"2026-07-27T12:06:15.813427Z","times_seen":2,"resource_available":false,"data":"eyJiaW5hbmNlY29pbiI6eyJ1c2QiOjU3Mi45NSwidXNkXzI0aF9jaGFuZ2UiOjAuMzMwODI5MjkzNjUzODY1OH0sImJpdGNvaW4iOnsidXNkIjo2NTA5MiwidXNkXzI0aF9jaGFuZ2UiOjAuODI1MjU4MDcyNjI5ODcwN30sImRvZ2Vjb2luIjp7InVzZCI6MC4wNzI1NzEsInVzZF8yNGhfY2hhbmdlIjotMC44MDU3MTUxMDczODY4MDI5fSwiZXRoZXJldW0iOnsidXNkIjoxOTYxLjE4LCJ1c2RfMjRoX2NoYW5nZSI6My44OTk3NjMxOTcyMjM0MzcyfSwicmlwcGxlIjp7InVzZCI6MS4xLCJ1c2RfMjRoX2NoYW5nZSI6MC40ODg1MDM3NDg3ODkzNTA5fSwic29sYW5hIjp7InVzZCI6NzYuNTQsInVzZF8yNGhfY2hhbmdlIjoyLjIzNjE0OTM5MzI2MjMyMn0sInRldGhlciI6eyJ1c2QiOjAuOTk5MDM5LCJ1c2RfMjRoX2NoYW5nZSI6LTAuMDA2NDM5NDYwMDc5MDAyMzkyNX0sInRoZS1vcGVuLW5ldHdvcmsiOnsidXNkIjoxLjUsInVzZF8yNGhfY2hhbmdlIjotMC42OTk0NjQzMTMyNDc1NX0sInRyb24iOnsidXNkIjowLjMzMDU0MywidXNkXzI0aF9jaGFuZ2UiOi0wLjQ0MDAyNjM4MTYyMjQzODF9LCJ1c2QtY29pbiI6eyJ1c2QiOjAuOTk5ODksInVzZF8yNGhfY2hhbmdlIjotMC4wMDUxNDIzNzEzMzM0NDk2Njd9fQ=="}},"time_used":184,"timings":{"blocked":0,"dns":3,"connect":9,"send":0,"wait":172,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/logoIcon/favicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.578Z","timestamp":1785153914578,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/logoIcon/favicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 455\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":455,"size_decoded":719,"mime_type":"image/png","magic":"PNG image data, 128 x 128, 8-bit/color RGBA, non-interlaced","md5":"013a96287cde3d7f12fa85fed005bd43","sha1":"a85b2dedec2dfaa028d65ac06a1ea631b2c5556d","sha256":"4950760c3f41715c3aca376d77e8c1c2006508c984954e7182cfe7d4fa90cb3c","sha512":"7de5fcede75df94a8a2a99419d132b6d1224724c1acc38aa733e8262fb1825f3479227387de2560e86c9e4af97f90748c07075739ce70d8edf023bd5ea7549c4","ssdeep":"","tlshash":"34f00b8682828d7fd35edc7003121eb09c338bcb128a414970a6dcad29fc6424447bcf","first_seen":"2026-07-27T07:44:27.070784Z","last_seen":"2026-07-27T12:06:15.845829Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABeUlEQVR4nO3csQ0CUQwFQR8iogQS+oEe6eLa46gBCekLdqaCF6wcejuOY+g6rR7AWgKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngLjz6gFf9XhcZ+Y+M8/Z99fqOb/g3y7AZWZuq0f8ks2jyLZ/uwB8SABxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEEPcGAgoLJIGckOcAAAAASUVORK5CYII="}},"time_used":73,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":73,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/optionicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.588Z","timestamp":1785153914588,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/optionicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1901\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1901,"size_decoded":2166,"mime_type":"image/png","magic":"PNG image data, 121 x 120, 8-bit/color RGBA, non-interlaced","md5":"3fc1099a880f3f015ecd1b861bfa9106","sha1":"54dc58187fb480f49a1b14dae1f392c206d1309b","sha256":"aeac71287ad4f3fc1466181fef2f62546f701405e501a30270084def0ad7f94c","sha512":"ac7a7bea37df77d6525aaaf97bc452f9287fc042738937ecf3d0889fed0f56b1082c54f49a327643ea2c530c15d4441d455a6db56457bf8a2b7321cfb818c1b9","ssdeep":"","tlshash":"55411b42e4441c63639fdd7ee92105b45a4e47f7098dd204e44215b98800852fd96e5b","first_seen":"2026-04-01T23:54:14.658228Z","last_seen":"2026-07-27T12:06:15.841082Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":86,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":73,"receive":13,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1722981567_1-1png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.595Z","timestamp":1785153914595,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1722981567_1-1png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 7560\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":7560,"size_decoded":7721,"mime_type":"image/png","magic":"PNG image data, 200 x 200, 8-bit colormap, non-interlaced","md5":"4a6ea106b5d8c01916056032e0e87cbd","sha1":"84468310e21d1e82c7cf62a46b256c886ffc178b","sha256":"4502167f2c8721790d247085fa1b0394f3635782146ef69c9d955222ebc9ee86","sha512":"3dd978e66241251e6ddbaabbbd1a084caa040bebdc608abc752f4d2516448c0af51427be6d6531c61599cb72dee8893cdd60d51de0854ffff152ce2591dab0f9","ssdeep":"192:aoUrug5ndiK6NE3ig9Yx85leWWBjbG7L6TMeeB:uruiiKRbcBHG7u4eeB","tlshash":"f6f18d23d5b266d90102b56d1cc22bd71c385eda55de84b7a91447408a8c6f748cef6f","first_seen":"2023-05-26T11:52:40Z","last_seen":"2026-07-27T12:06:15.845106Z","times_seen":57,"resource_available":false,"data":"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"}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":84,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_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://onchainopt.com/","date":"2026-07-27T12:05:15.087Z","timestamp":1785153915087,"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 /_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_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://onchainopt.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/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/rosetta\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"rosetta\"\r\nreport-to: {\"group\":\"rosetta\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/rosetta\"}]}\r\ncontent-length: 3967\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:44 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:44 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 09 Apr 2026 01:12:55 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 428071\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":20284,"size_decoded":4819,"mime_type":"text/css; charset=UTF-8","magic":"ASCII text, with very long lines (20284), with no line terminators","md5":"fde4f72b90fe807270db3c332dd058df","sha1":"7ef4d70af01c38a7f80a7650be25f63aff4ba751","sha256":"ab31c9be358d2107fc1158434c7aeaaf15f82e3e405ed67ab236b5ac232ed159","sha512":"9bef39350af557afeb10cb71068426ab28befaf5295359954787be06a5ce0993d69e8f5018a5a17c44311d294dd1a87a6f82edd0f5743df0149b8e4e53061695","ssdeep":"192:nvqx/EhZINcrXsfg0SgG8CqA3uku9SJFzvQVMbnUIfIxIVVpTrecfzPtcmt4v78l:gMF8Sb3i0JFzourUqWMVpTrdfzPtcBG","tlshash":"c492872057aed01967efa82364d36dff71d444db90123eeaaf5a7352cd821f231ea214","first_seen":"2026-04-13T20:43:22.641436Z","last_seen":"2026-07-30T05:46:25.805952Z","times_seen":18468,"resource_available":false,"data":"LlZJcGdKZC1aVmk5b2QtT1JIYi1PRVZtY2R7bGVmdDowO3RvcDowO2hlaWdodDozOXB4O3dpZHRoOjEwMCU7ei1pbmRleDoxMDAwMDAwMTtwb3NpdGlvbjpmaXhlZDtib3JkZXI6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNkI5MERBO21hcmdpbjowO2JveC1zaGFkb3c6MCAwIDhweCAxcHggIzk5OX0uVklwZ0pkLVpWaTlvZC14bDA3T2ItT0VWbWNke3otaW5kZXg6MTAwMDAwMDI7Ym9yZGVyOm5vbmU7cG9zaXRpb246Zml4ZWQ7Ym94LXNoYWRvdzowIDNweCA4cHggMnB4ICM5OTl9LlZJcGdKZC1aVmk5b2QtU21mWi1PRVZtY2R7ei1pbmRleDoxMDAwMDAwMDtib3JkZXI6bm9uZTttYXJnaW46MH0uZ29vZy10ZS1nYWRnZXR7Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY2Njt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdvb2ctdGUtZ2FkZ2V0IGltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyOm5vbmV9Lmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNENUQ1RDU7Ym9yZGVyLXRvcDoxcHggc29saWQgIzlCOUI5Qjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRThFOEU4O2JvcmRlci1yaWdodDoxcHggc29saWQgI0Q1RDVENTtmb250LXNpemU6MTBwdDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDoxcHg7cGFkZGluZy1ib3R0b206MnB4O2N1cnNvcjpwb2ludGVyfS5nb29nLXRlLWdhZGdldC1pY29ue21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4O3dpZHRoOjE5cHg7aGVpZ2h0OjE5cHg7Ym9yZGVyOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWNvbWJve21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5nb29nLXRlLWdhZGdldCAuZ29vZy10ZS1jb21ib3ttYXJnaW46NHB4IDB9LlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDphY3RpdmUsLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkOmhvdmVyLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDpsaW5rLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDp2aXNpdGVke2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNDQ0O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLVR2RDlQYy1oU1JHUGR7ZGlzcGxheTpibG9jazttYXJnaW46MCAxMHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1Bke3BhZGRpbmctdG9wOjJweDtwYWRkaW5nLWxlZnQ6NHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgKiwuVklwZ0pkLVpWaTlvZC1TbWZaICosLlZJcGdKZC1aVmk5b2QtbDl4a3RmICosLlZJcGdKZC1aVmk5b2QtdkgxR21mICosLlZJcGdKZC1aVmk5b2QteGwwN09iICosLmdvb2ctdGUtY29tYm97Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHR9LlZJcGdKZC1aVmk5b2QtT1JIYnttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNFNEVGRkI7b3ZlcmZsb3c6aGlkZGVufS5WSXBnSmQtWlZpOW9kLU9SSGIgaW1ne2JvcmRlcjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGItYk45N1Bje2NvbG9yOiMwMDB9LlZJcGdKZC1aVmk5b2QtT1JIYi1iTjk3UGMgaW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1PUkhiLVRzd3YxYntjb2xvcjojNjY2O3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW4tdG9wOjA7Zm9udC1zaXplOjdwdH0uVklwZ0pkLVpWaTlvZC1PUkhiLUtFNnZxZXt3aWR0aDo4cHh9LlZJcGdKZC1aVmk5b2QtTGdic1Nle2JvcmRlci1jb2xvcjojRTdFN0U3O2JvcmRlci1zdHlsZTpub25lIHNvbGlkIHNvbGlkIG5vbmU7Ym9yZGVyLXdpZHRoOjAgMXB4IDFweCAwfS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBkaXZ7Ym9yZGVyLWNvbG9yOiNDQ0MgIzk5OSAjOTk5ICNDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOTk5O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2hlaWdodDoyMHB4fS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBidXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vd3JhcH0uVklwZ0pkLVpWaTlvZC1MZ2JzU2UgYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0NDQ30uVklwZ0pkLVpWaTlvZC1TbWZae21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6I0ZGRjt3aGl0ZS1zcGFjZTpub3dyYXB9LlZJcGdKZC1aVmk5b2QtU21mWi1oU1JHUGR7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMHB0O2JvcmRlcjoxcHggb3V0c2V0ICM4ODg7cGFkZGluZzo2cHggMTBweDt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowfS5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1BkIGltZ3ttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0OjJweDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlcjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZCBzcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7bWFyZ2luLWxlZnQ6MnB4O21hcmdpbi1yaWdodDoycHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWZsb2F0LXRvcCAuVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZHtwYWRkaW5nOjJweDtib3JkZXItdG9wLXdpZHRoOjB9Lmdvb2ctdGUtZmxvYXQtYm90dG9tIC5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1Bke3BhZGRpbmc6MnB4O2JvcmRlci1ib3R0b20td2lkdGg6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVke3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMEM7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4fS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgc3Bhbnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgaW1ne21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4fS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZHtjb2xvcjojMDAwfS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZCBzcGFue3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYntiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCAjQzNEOUZGO292ZXJmbG93LXk6c2Nyb2xsO292ZXJmbG93LXg6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItaWJuQzZie3BhZGRpbmc6M3B4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmIsLlZJcGdKZC1aVmk5b2QteGwwN09iLWlibkM2YjpsaW5re2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6dmlzaXRlZHtjb2xvcjojNTUxQThCfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6aG92ZXJ7YmFja2dyb3VuZDojQzNEOUZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6YWN0aXZle2NvbG9yOiMwMEN9LlZJcGdKZC1aVmk5b2QtdkgxR21me2JhY2tncm91bmQtY29sb3I6I0ZGRjt0ZXh0LWRlY29yYXRpb246bm9uZTtib3JkZXI6MXB4IHNvbGlkICM2QjkwREE7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1LcmhQTmJ7d2lkdGg6MTZweH0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaGdEVXdle21hcmdpbjo2cHggMDtoZWlnaHQ6MXB4O2JhY2tncm91bmQtY29sb3I6I2FhYTtvdmVyZmxvdzpoaWRkZW59LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgZGl2e3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmIgLnVERUZnZXtkaXNwbGF5Om5vbmV9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgLmZtY21Te3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo0cHh9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZHt0ZXh0LWRlY29yYXRpb246bm9uZX0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOmFjdGl2ZSBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YjpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOnZpc2l0ZWQgZGl2e2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmI6aG92ZXIgZGl2e2NvbG9yOiNGRkY7YmFja2dyb3VuZDojMzZDfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDphY3RpdmUgZGl2LC5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kOmhvdmVyIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDp2aXNpdGVkIGRpdntjb2xvcjojMDAwO2ZvbnQtd2VpZ2h0OjcwMH0uVklwZ0pkLVpWaTlvZC1sOXhrdGZ7YmFja2dyb3VuZC1jb2xvcjojRkZGO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHh9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLU9FVm1jZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyOjFweCBzb2xpZCAjNkI5MERBO2JveC1zaGFkb3c6MCAzcHggOHB4IDJweCAjOTk5O2JvcmRlci1yYWRpdXM6OHB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0ZiBpbWd7Ym9yZGVyOm5vbmV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLWZtY21Te21hcmdpbi10b3A6NnB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGN7bWFyZ2luLXRvcDo2cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGMgKnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuRFVHSmlle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X21pbnVzX3NtLmdpZil9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuVGR5VERle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X3BsdXNfc20uZ2lmKX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtVmd3SmxjIHNwYW57Y29sb3I6IzAwQzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyO21hcmdpbjowIDRweH0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtSTlHTHB7bWFyZ2luOjZweCAwIDB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm17bWFyZ2luOjB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm0gdGV4dGFyZWF7bWFyZ2luLWJvdHRvbTo0cHg7d2lkdGg6MTAwJX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYteWVQZTVje21hcmdpbjo2cHggMCA0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLXdPSE15Znt6LWluZGV4OjEwMDA7cG9zaXRpb246Zml4ZWQ7dHJhbnNpdGlvbi1kZWxheTouNnM7bGVmdDotMTAwMHB4O3RvcDotMTAwMHB4fS5WSXBnSmQtWlZpOW9kLWFaMndFZS13T0hNeWYtdGk2aEdje3RyYW5zaXRpb24tZGVsYXk6MHM7bGVmdDotMTRweDt0b3A6LTE0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPe2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDRweDtoZWlnaHQ6MTA0cHg7Ym9yZGVyLXJhZGl1czo1MHB4O2JhY2tncm91bmQ6I0ZGRiB1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL3Byb2R1Y3QvMngvdHJhbnNsYXRlXzI0ZHAucG5nKSA1MCUgNTAlIG5vLXJlcGVhdDt0cmFuc2l0aW9uOmFsbCAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKC40KTtvcGFjaXR5OjB9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPLXRpNmhHY3t0cmFuc2Zvcm06c2NhbGUoLjUpO29wYWNpdHk6MX0uVklwZ0pkLVpWaTlvZC1hWjJ3RWV7bWFyZ2luOjJweCAwIDAgMnB4O2FuaW1hdGlvbjpzcGlubmVyLXJvdGF0b3IgMS40cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBzcGlubmVyLXJvdGF0b3J7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9fS5WSXBnSmQtWlZpOW9kLWFaMndFZS1KdDVjS3tzdHJva2UtZGFzaGFycmF5OjE4NztzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZTojNDI4NUY0O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO2FuaW1hdGlvbjpzcGlubmVyLWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNwaW5uZXItZGFzaHswJXtzdHJva2UtZGFzaG9mZnNldDoxODd9NTAle3N0cm9rZS1kYXNob2Zmc2V0OjQ2Ljc1O3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX10b3tzdHJva2UtZGFzaG9mZnNldDoxODc7dHJhbnNmb3JtOnJvdGF0ZSg0NTBkZWcpfX0uVklwZ0pkLXlBV05FYi1MN2xia2IgYSwuVklwZ0pkLXlBV05FYi1MN2xia2IgYm9keSwuVklwZ0pkLXlBV05FYi1MN2xia2IgZGl2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBmb3JtLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoMSwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDIsLlZJcGdKZC15QVdORWItTDdsYmtiIGgzLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoNCwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDUsLlZJcGdKZC15QVdORWItTDdsYmtiIGg2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBodG1sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBpZnJhbWUsLlZJcGdKZC15QVdORWItTDdsYmtiIGltZywuVklwZ0pkLXlBV05FYi1MN2xia2IgbGksLlZJcGdKZC15QVdORWItTDdsYmtiIG9sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBwLC5WSXBnSmQteUFXTkViLUw3bGJrYiBzcGFuLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0YWJsZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgdGJvZHksLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0ciwuVklwZ0pkLXlBV05FYi1MN2xia2IgdWx7YWxsOnVuc2V0O2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0Om5vcm1hbH0uVklwZ0pkLXlBV05FYi1MN2xia2Igb2wsLlZJcGdKZC15QVdORWItTDdsYmtiIHVse2xpc3Qtc3R5bGU6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9LlZJcGdKZC15QVdORWItTDdsYmtiIGNhcHRpb24sLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6NDAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiBpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1kaXY+LlZJcGdKZC15QVdORWItTDdsYmtie3BhZGRpbmc6MTBweCAxNHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYntjb2xvcjojMjIyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlZWU7Ym94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy1tb3otYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy13ZWJraXQtYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpO2Rpc3BsYXk6bm9uZTtmb250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBwdDt3aWR0aDo0MjBweDtwYWRkaW5nOjEycHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TLC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NsZWFyOmJvdGg7Zm9udC1zaXplOjEwcHQ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpqdXN0aWZ5O3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXI0bmtle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46NHB4IDA7dGV4dC1hbGlnbjpsZWZ0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UdkQ5UGMtTGdic1Nle2Rpc3BsYXk6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbDRlSFh7ZmxvYXQ6bGVmdDttYXJnaW46MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLVBMRGJiZntkaXNwbGF5OmlubGluZS1ibG9ja30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItZnc0MlplLVowQXJxZi1oYUFjbGZ7ZGlzcGxheTpub25lO3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1IOXREdHttYXJnaW4tdG9wOjIwcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUxLNXl1e2Zsb2F0OmxlZnR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXF3VThNZXtmbG9hdDpyaWdodH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItY0dNSTJie21pbi1oZWlnaHQ6MTVweDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MSV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLWpPZmtNYi1OZTNzRmZ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjMjk5MTBkIDAsIzIwYWYwZSAxMDAlKTtiYWNrZ3JvdW5kOiMyOTkxMGQ7Ym9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6aW5zZXQgMCAycHggMnB4ICMxZTY2MDk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDJweCAjMWU2NjA5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCAycHggIzFlNjYwOTtjb2xvcjp3aGl0ZTtmb250LXNpemU6OXB0O2ZvbnQtd2VpZ2h0OmJvbGRlcjttYXJnaW4tdG9wOjEycHg7cGFkZGluZzo2cHg7dGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzFlNjYwOX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLWhTUkdQZHtjb2xvcjojMTVjO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMXB4O21hcmdpbi1yaWdodDoxNXB4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYj50ZXh0YXJlYXtmb250LWZhbWlseTphcmlhbDtyZXNpemU6dmVydGljYWw7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLXJhZGl1czoxcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkIHNpbHZlcjtmb250LXNpemU6MTNweDtoZWlnaHQ6YXV0bztvdmVyZmxvdy15OmF1dG87cGFkZGluZzoxcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIHRleHRhcmVhOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTtvdXRsaW5lOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1JYkUwU3ttYXJnaW4tcmlnaHQ6MTBweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwe21pbi1oZWlnaHQ6MjVweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZy10b3A6OHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwe21hcmdpbi1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dHtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6NTRweDsqbWluLXdpZHRoOjcwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZGNkY2RjO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzQ0NDtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjI3cHg7b3V0bGluZTowO3BhZGRpbmc6MCA4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjI3cHg7bWFyZ2luOjAgMTZweCAwIDA7Ym94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpO2JvcmRlci1yYWRpdXM6MnB4O3RyYW5zaXRpb246YWxsIC4yMThzO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSwjZjFmMWYxKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmhvdmVye2JvcmRlcjoxcHggc29saWQgI2M2YzZjNjtjb2xvcjojMjIyO3RyYW5zaXRpb246YWxsIDBzO2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y4ZjhmOCwjZjFmMWYxKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjYzZjNmM2O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjZmNmY2O2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmZvY3VzIC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LkFIbXV3ZSAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXM6YWN0aXZle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjUpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC41KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dC5BSG11d2UsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTt6LWluZGV4OjQhaW1wb3J0YW50fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LmdrNlNNZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNlZWUsI2UwZTBlMCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2NvbG9yOiMzMzN9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZntjb2xvcjp3aGl0ZTtib3JkZXItY29sb3I6IzMwNzllZDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZDkwZmU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzQ3ODdlZCl9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZi5BSG11d2UgLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjpob3ZlciAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3Vze2JvcmRlci1jb2xvcjojMzA3OWVkO2JhY2tncm91bmQtY29sb3I6IzM1N2FlODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjMzU3YWU4KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmhvdmVye2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmYsMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZiwwIDFweCAxcHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmLDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmLkFIbXV3ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3VzLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0IC5WSXBnSmQteUFXTkViLVowQXJxZi1zRmVCcWY6aG92ZXIsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQuQUhtdXdlLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpmb2N1cywuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzMwNzllZH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbXJ4UGdle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZn0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLVcwdkpvLWZtY21Te2NvbG9yOiM5OTk7Zm9udC1zaXplOjExcHg7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46MTVweCAwIDVweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXUwcGpvZS1mbWNtU3tjb2xvcjojODAwO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6OXB0fS5WSXBnSmQteUFXTkViLVZJcGdKZC1mbWNtUy1zbjU0UXtiYWNrZ3JvdW5kLWNvbG9yOiNjOWQ3ZjE7Ym94LXNoYWRvdzoycHggMnB4IDRweCAjOTlhO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQteGwwN09ie2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym94LXNoYWRvdzowIDJweCA0cHggIzk5YTttaW4td2lkdGg6MDtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQtajdMRmxie2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MnB4IDVweCA1cHg7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLXN0eWxlOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYjpob3ZlcntiYWNrZ3JvdW5kOiNkZGR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYiBoMXtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDA7bWFyZ2luOjRweCAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQteGwwN09iIC5WSXBnSmQteUFXTkViLVZJcGdKZC1qN0xGbGIgc3Ryb25ne2NvbG9yOiMzNDVhYWR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVZJcGdKZC1lS201RmMtaEZzYm97dGV4dC1hbGlnbjpyaWdodDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6YXV0b30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYi1TSXNyVGQgLlZJcGdKZC15QVdORWItVklwZ0pkLWVLbTVGYy1oRnNib3t0ZXh0LWFsaWduOmxlZnQ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OmF1dG99LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVRWTHc5Yy1wcEhscmYtc241NFEsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtZm1jbVN7YmFja2dyb3VuZC1jb2xvcjojZjFlYTAwO2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjNweCAzcHggNHB4IHJnYmEoMCwwLDAsLjUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojZjFlYTAwO2N1cnNvcjpwb2ludGVyO21hcmdpbjotMnB4IC0ycHggLTJweCAtM3B4O3BhZGRpbmc6MnB4IDJweCAycHggM3B4O3Bvc2l0aW9uOnJlbGF0aXZlfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2NvbG9yOiMyMjJ9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2JhY2tncm91bmQtY29sb3I6I2M5ZDdmMTtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwOy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggNHB4IDAgMDstbW96LWJvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7Ym94LXNoYWRvdzozcHggM3B4IDRweCByZ2JhKDAsMCwwLC41KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOi0ycHggLTJweCAtMnB4IC0zcHg7cGFkZGluZzoycHggMnB4IDNweCAzcHg7cG9zaXRpb246cmVsYXRpdmV9LlZJcGdKZC15QVdORWItTDdsYmtiIHNwYW46Zm9jdXN7b3V0bGluZTpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtRHlWREF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmU7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowO21hcmdpbjotMnB4O3BhZGRpbmc6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi15QVdORWItVFZMdzljLXNuNTRRLUx6WDNlZntib3JkZXItbGVmdDoycHggc29saWQgcmVkO21hcmdpbi1sZWZ0Oi0ycHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1UVkx3OWMtc241NFEtWUlBaUlie2JvcmRlci1yaWdodDoycHggc29saWQgcmVkO21hcmdpbi1yaWdodDotMnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJme3BhZGRpbmc6MnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21Te2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDJweCAzcHg7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMzMzM7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkICNjMGMwYzA7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO2hlaWdodDoyMXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJvcmRlci1yYWRpdXM6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmhvdmVye2JvcmRlcjoxcHggc29saWQgI2I5YjliOTtib3JkZXItdG9wOjFweCBzb2xpZCAjYTBhMGEwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO291dGxpbmU6bm9uZTtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC1ZUHFqYmYtc0ZlQnFme2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDZweCAzcHg7bWFyZ2luOjAgMCAwIDJweDtoZWlnaHQ6MjFweH0uVklwZ0pkLXlBV05FYi1MN2xia2I+ZGl2e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LWZhbWlseTpHb29nbGUgU2FucyxBcmlhbCxzYW5zLXNlcmlmfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVWQ3ZnJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmVuZDttYXJnaW46MTRweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1TSXNyVGR7bWFyZ2luLXJpZ2h0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1JdWl6V2MtaTNqTThje21hcmdpbi1sZWZ0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1rNzdJaWZ7bWFyZ2luOjAgMTZweCAxNnB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYXhBVjF7d2lkdGg6YXV0bztjb2xvcjojMWYxZjFmO2ZvbnQtc2l6ZToxNnB4O3RleHQtYWxpZ246aW5pdGlhbH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWF4QVYxIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlke2JvcmRlci1yYWRpdXM6MCAwIDEycHggMTJweDttYXJnaW46MDtiYWNrZ3JvdW5kOiNmMWY0Zjk7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDo1MHB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkLUI3STRPZHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6NzclO3BhZGRpbmc6MTJweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLU43RXFpZC1CN0k0T2QgLlZJcGdKZC15QVdORWItU0lzclRke3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1VVHVqQ2J7Y29sb3I6IzFmMWYxZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVVR1akNie3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1lTzltS2V7Y29sb3I6IzQ0NDc0Njtmb250LXNpemU6MTJweDtwYWRkaW5nLXRvcDo0cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtZU85bUtle3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDo1cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NSAuVklwZ0pkLXlBV05FYi1TSXNyVGR7bGVmdDo1cHg7cmlnaHQ6YXV0b30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYntmaWxsOiMwYjU3ZDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1iZ202c2Z7bWFyZ2luOi00cHggMnB4IDAgMDtwYWRkaW5nOjJweCAwIDA7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjI0cHg7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDpub25lfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYmdtNnNmOmhvdmVye2JhY2tncm91bmQ6I2U4ZWJlY30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWFYWVRjZXtkaXNwbGF5Om5vbmV9c2VudGluZWx7fQ=="}},"time_used":63,"timings":{"blocked":-1,"dns":2,"connect":15,"send":0,"wait":16,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.google.com/gen204?sl=en\u0026nca=te_ap\u0026client=te\u0026logld=vTE_20260722","fqdn":"translate.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.250.178.110","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.527Z","timestamp":1785153915527,"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":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:35 GMT","end":"Mon, 21 Sep 2026 08:37:34 GMT"},"fingerprint":{"sha1":"2F:20:3B:91:88:65:20:CD:06:9D:0C:58:4D:17:6F:FC:9D:EC:41:83","sha256":"0C:7B:D3:23:E9:5B:D6:6B:F2:5C:71:91:4D:41:CE:E6:D7:1F:A2:F2:63:BA:25:70:1D:00:F3:C0:72:21:51:6D"}}},"request":{"raw":"GET /gen204?sl=en\u0026nca=te_ap\u0026client=te\u0026logld=vTE_20260722 HTTP/1.1\r\nHost: translate.google.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://onchainopt.com/\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/3 204 \r\ncontent-type: image/gif; charset=utf-8\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 12:05:15 GMT\r\ncross-origin-resource-policy: cross-origin\r\np3p: CP=\"This is not a P3P policy! See g.co/p3phelp for more info.\"\r\ncross-origin-opener-policy: same-origin\r\npermissions-policy: ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factors=*, ch-ua-platform=*, ch-ua-platform-version=*\r\naccept-ch: Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factors, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version\r\ncontent-security-policy: require-trusted-types-for 'script';report-uri /_/TranslateApiHttp/cspreport, script-src 'nonce-cdDb88I7ev2i2FjrV9u69g' 'unsafe-inline';object-src 'none';base-uri 'self';report-uri /_/TranslateApiHttp/cspreport;worker-src 'self'\r\nreporting-endpoints: default=\"/_/TranslateApiHttp/web-reports?context=eJzj4tDikmJw1ZBiEOLh-D1p7mU2gRfzGluZlJSS8gvjS4oS84pzEktSi1OLylKL4o0MjMwMzI2M9AyM4wsMABdOEn0\"\r\nserver: ESF\r\ncontent-length: 0\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nset-cookie: __Secure-ENID=35.SE=UJEMihY5Y2wnsDa_w9vO-CVIFzpVKzGFWoCHNOAZ6oDD6RkKa8zip1TO1uUHcr677mTL-EfC9y6aiC4mf-h-I-qk7wB-SPb_iHW9myVu65eA6WxZeblppYvguB9c8JcmyP_8DP-o0LwfpRP0oJaW5iXa58qFCI3piNG7svpBoGwmqq7F6IbzWSx3ylWiZ7PBsW547yVtJSPk3c_CcpjWQ2HLNPRx59TL4f123lbQY1oR; expires=Fri, 27-Aug-2027 04:23:33 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"204","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"image/gif; charset=utf-8","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-30T08:24:56.947858Z","times_seen":17613206,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1722981900_1027png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.596Z","timestamp":1785153914596,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1722981900_1027png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 7811\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":7811,"size_decoded":7972,"mime_type":"image/png","magic":"PNG image data, 200 x 200, 8-bit colormap, non-interlaced","md5":"21130e7bbe8379217afb10962d2306a2","sha1":"a55fe67973fa721e35adf9a398555527eed5c354","sha256":"34b28a2166ef83580a4b4b1f8fb4526dff8ef0d047f1f7c7efc16e0d732c5ac1","sha512":"f61c6c1da114f4d2c8831be60000a06228000a91b2542b65ad0605bef2e8b1cfb01b5aef0995c38d7732738064d2a1b26823312f7af788bda76b72dfe135fe68","ssdeep":"192:wGL3gUnYh9RWDBUQ6nbemQxJ5QM0eNRQRWLLJchZlaboIBfqz3Clzq:jL3gzvtnCAM02R7LeLla01Cs","tlshash":"4bf1bfc61b63d3dfe55dc5e90b4379e963868984fc10cb03202288a4ce6fe784e23b56","first_seen":"2024-11-22T16:17:37.042185Z","last_seen":"2026-07-27T12:06:15.834816Z","times_seen":29,"resource_available":false,"data":"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"}},"time_used":107,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":81,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T12:05:13.794Z","timestamp":1785153913794,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: onchainopt.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-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/2 200 \r\nx-powered-by: PHP/8.2.32\r\ncontent-type: text/html; charset=UTF-8\r\ncache-control: no-cache, private\r\nset-cookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; expires=Mon, 27 Jul 2026 14:05:14 GMT; Max-Age=7200; path=/; samesite=lax; secure\nonchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D; expires=Mon, 27 Jul 2026 14:05:14 GMT; Max-Age=7200; path=/; httponly; samesite=lax; secure\r\ncontent-length: 13316\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"Tailwind CSS","description":"Tailwind is a utility-first CSS framework.","website":"https://tailwindcss.com/","common_platform_enumeration":"","icon":"tailwindcss.svg","categories":["UI frameworks"]},{"name":"PHP:8.2.32","description":"PHP is a general-purpose scripting language used for web development.","website":"https://php.net","common_platform_enumeration":"cpe:2.3:a:php:php:*:*:*:*:*:*:*:*","icon":"PHP.svg","categories":["Programming languages"]},{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"Vue.js","description":"Vue.js is an open-source model–view–viewmodel JavaScript framework for building user interfaces and single-page applications.","website":"https://vuejs.org","common_platform_enumeration":"","icon":"vue.svg","categories":["JavaScript frameworks"]},{"name":"jQuery:3.6.0","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]}],"data":{"size":74133,"size_decoded":14658,"mime_type":"text/html; charset=UTF-8","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (6563), with CRLF, LF line terminators","md5":"8874c1e1c46e909f5338a26de42bbbee","sha1":"5cc09a2978ba2b4271a8ce9cb31b071a448100ba","sha256":"918b31bd17f7308accda89e164235db4a90e81df5f57e0cc3d86a58ffadd22a9","sha512":"58e7c99c539f67c33408c8227a312b0797a034b8b21dd21655ab0102fc927487991358909d17c840432a83103142b1884ffcc94c2bd63cb9d3a7221771cd61f9","ssdeep":"1536:yjtDbdrjtDbdyjtDbdNjtDbd/jtDbdAjtDbdIjtDbdzjtDbdDjtDbdljtDbdwKmh:yjtDbdrjtDbdyjtDbdNjtDbd/jtDbdA/","tlshash":"9773876691a04077a17be2f59b723f5df9a6b207c78286e53adc02410fb6d448c63edc","first_seen":"2026-07-27T12:05:48.905996Z","last_seen":"2026-07-27T12:05:48.905996Z","times_seen":1,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCI+DQogIDx0aXRsZT4gT25jaGFpbiBPcHRpb24gLSBIb21lPC90aXRsZT4NCiAgICA8bWV0YSBuYW1lPSJ0aXRsZSIgQ29udGVudD0iT25jaGFpbiBPcHRpb24gLSBIb21lIj4KCiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iV2VsY29tZSB0byBpbml0aWF0aXZlIFRva2VuIC0gWW91ciBQYXRoIHRvIFNtYXJ0IENyeXB0byBUcmFkaW5nIj4KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJiaXRjb2luLGludmVzdG1lbnQsdHJhZGUgcHJvZml0LHRvbmNoYWluIHdhbGxldCxjcnlwdG8gd2FsbGV0LGV0aGVyZXVtIj4KICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvaW1hZ2VzL2xvZ29JY29uL2Zhdmljb24ucG5nIiB0eXBlPSJpbWFnZS94LWljb24iPgoKICAgIAogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSJodHRwczovL29uY2hhaW5vcHQuY29tL2Fzc2V0cy9pbWFnZXMvbG9nb0ljb24vbG9nby5wbmciPgogICAgPG1ldGEgbmFtZT0iYXBwbGUtbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4KICAgIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLXN0YXR1cy1iYXItc3R5bGUiIGNvbnRlbnQ9ImJsYWNrIj4KICAgIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLXRpdGxlIiBjb250ZW50PSJPbmNoYWluIE9wdGlvbiAtIEhvbWUiPgogICAgCiAgICA8bWV0YSBpdGVtcHJvcD0ibmFtZSIgY29udGVudD0iT25jaGFpbiBPcHRpb24gLSBIb21lIj4KICAgIDxtZXRhIGl0ZW1wcm9wPSJkZXNjcmlwdGlvbiIgY29udGVudD0iV2VsY29tZSB0byBpbml0aWF0aXZlIFRva2VuIC0gWW91ciBQYXRoIHRvIFNtYXJ0IENyeXB0byBUcmFkaW5nIj4KICAgIDxtZXRhIGl0ZW1wcm9wPSJpbWFnZSIgY29udGVudD0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvaW1hZ2VzL3Nlby82YTY2NTg1NGE0ZWU5MTc4NTA5MjE4MC5qcGciPgogICAgCiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0id2Vic2l0ZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IllvdXIgUGF0aCB0byBTbWFydCBDcnlwdG8gVHJhZGluZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IllvdXIgUGF0aCB0byBTbWFydCBDcnlwdG8gVHJhZGluZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vYXNzZXRzL2ltYWdlcy9zZW8vNmE2NjU4NTRhNGVlOTE3ODUwOTIxODAuanBnIi8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6dHlwZSIgY29udGVudD0ianBnIi8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6d2lkdGgiIGNvbnRlbnQ9IjExODAiIC8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6aGVpZ2h0IiBjb250ZW50PSI2MDAiIC8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL29uY2hhaW5vcHQuY29tIj4KICAgIAogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpjYXJkIiBjb250ZW50PSJzdW1tYXJ5X2xhcmdlX2ltYWdlIj4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2Fzc2V0cy9nbG9iYWwvanMvanF1ZXJ5LTMuNi4wLm1pbi5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vYXNzZXRzL2dsb2JhbC9qcy9ib290c3RyYXAuYnVuZGxlLm1pbi5qcyI+PC9zY3JpcHQ+DQogIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi50YWlsd2luZGNzcy5jb20iPjwvc2NyaXB0Pg0KICAgDQo8L2hlYWQ+DQo8Ym9keSBjbGFzcz0iYmctZ3JheS01MCBmb250LXNhbnMiPg0KICANCiAgDQogIA0KDQoNCjwhLS0gVG9wIEhlYWRlciAtLT4NCiAgPGRpdiBjbGFzcz0iYmctd2hpdGUgc2hhZG93IHAtMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPg0KICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiI+DQogICAgICA8ZGl2IGNsYXNzPSJiZy1ibGFjayB0ZXh0LWJsYWNrIGZvbnQtYm9sZCByb3VuZGVkLWZ1bGwgcC0yIj48aW1nIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvaW1hZ2VzL2xvZ29JY29uL2Zhdmljb24ucG5nIiB3aWR0aD0iMzJweCIgaGVpZ2h0PSIzMnB4Ij4gPC9kaXY+DQogICAgICA8aDEgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC1sZyI+T25jaGFpbiBPcHRpb248L2gxPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImZsZXggc3BhY2UteC0zIj4NCiAgICAgIDxidXR0b24gY2xhc3M9IiBwLTIgcm91bmRlZC1mdWxsIiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9tZXNzYWdlcyciPjxpbWcgY2xhc3M9Imljb24iIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9pY29ucy9tZXNzYWdlaWNvbi5wbmciIGFsdD0iIiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4Ij48L2J1dHRvbj4NCiAgICAgIDxidXR0b24gY2xhc3M9IiBwLTIgcm91bmRlZC1mdWxsIiBpZD0ib3BlbkxhbmdNb2RhbCI+PGltZyBjbGFzcz0iaWNvbiIgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2ljb25zL21hcGljb24ucG5nIiBhbHQ9IiIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCI+PC9idXR0b24+DQogICAgPC9kaXY+DQogIDwvZGl2Pg0KDQoNCiAgDQoNCg0KIA0KDQoNCg0KICA8IS0tIEhlcm8gU2VjdGlvbiAtLT4NCiAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC02IGJnLXdoaXRlIHNoYWRvdyBtdC0yIj4NCiAgICA8aW1nIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9pY29ucy9yZWNlaXZlZ2lmdC5wbmciIGNsYXNzPSJteC1hdXRvIHctMzIiIGFsdD0iZ2lmdCBib3giLz4NCiAgICA8aDIgY2xhc3M9InRleHQteGwgZm9udC1zZW1pYm9sZCBtdC00Ij5XZWxjb21lIE9uY2hhaW4gT3B0aW9uPC9oMj4NCiAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTUwMCB0ZXh0LXNtIj5PcGVuIHRyYW5zYWN0aW9ucyBhbnl0aW1lLCBhbnl3aGVyZSBzYWZlbHk8L3A+DQogICAgPGJ1dHRvbiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9sb2dpbiciIGNsYXNzPSJiZy15ZWxsb3ctNDAwIHRleHQtYmxhY2sgZm9udC1ib2xkIHctZnVsbCBweS0yIHJvdW5kZWQteGwgbXQtNCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6NDZyZW0iPkxvZyBpbjwvYnV0dG9uPg0KICA8L2Rpdj4NCiAgDQogIA0KICA8IS0tIEZlYXR1cmVzIEdyaWQgLS0+DQogIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTQgZ2FwLTQgdGV4dC1jZW50ZXIgdGV4dC1zbSBtdC00IHB4LTIiPg0KICAgIDxkaXYgb25jbGljaz0id2luZG93LmxvY2F0aW9uPSdodHRwczovL29uY2hhaW5vcHQuY29tL3VzZXIvaW52ZXN0L3N0YXRpc3RpY3MnIiANCiAgY2xhc3M9ImN1cnNvci1wb2ludGVyIHRleHQtY2VudGVyIGhvdmVyOmJnLWdyYXktMTAwIHAtMiByb3VuZGVkLWxnIj4NCiAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQtZnVsbCBpbmxpbmUtYmxvY2siPjxpbWcgIGNsYXNzPSJpY29uIiBzcmM9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vaWNvbnMvaW52ZXN0aWNvbi5wbmciICBhbHQ9IiJ3aWR0aD0iMzBweCIgaGVpZ2h0PSIzMHB4Ij48L2Rpdj4NCiAgICAgIDxwPkFJIEFyYml0cmFnZTwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGlkPSJvcGVuTW9kYWwiIGNsYXNzPSJjdXJzb3ItcG9pbnRlciB0ZXh0LWNlbnRlciBob3ZlcjpiZy1ncmF5LTEwMCBwLTIgcm91bmRlZC1sZyI+DQogICAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLWZ1bGwgaW5saW5lLWJsb2NrIj48aW1nICBjbGFzcz0iaWNvbiIgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2ljb25zL2RlcG9zaXRpY29uLnBuZyIgIGFsdD0iIndpZHRoPSIzMHB4IiBoZWlnaHQ9IjMwcHgiPjwvZGl2Pg0KICAgICAgPHA+UmVjaGFyZ2U8L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci93aXRoZHJhdyciIA0KICBjbGFzcz0iY3Vyc29yLXBvaW50ZXIgdGV4dC1jZW50ZXIgaG92ZXI6YmctZ3JheS0xMDAgcC0yIHJvdW5kZWQtbGciPg0KICAgICAgPGRpdiBjbGFzcz0icm91bmRlZC1mdWxsIGlubGluZS1ibG9jayI+PGltZyAgY2xhc3M9Imljb24iIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9pY29ucy93aXRoZHJhd2ljb24ucG5nIiAgYWx0PSIid2lkdGg9IjMwcHgiIGhlaWdodD0iMzBweCI+PC9kaXY+DQogICAgICA8cD5XaXRoZHJhdzwvcD4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbj0naHR0cHM6Ly9vbmNoYWlub3B0LmNvbS91c2VyL3RyYW5zZmVyLWJhbGFuY2UnIiANCiAgY2xhc3M9ImN1cnNvci1wb2ludGVyIHRleHQtY2VudGVyIGhvdmVyOmJnLWdyYXktMTAwIHAtMiByb3VuZGVkLWxnIj4NCiAgICAgIDxkaXYgY2xhc3M9InJvdW5kZWQtZnVsbCBpbmxpbmUtYmxvY2siPjxpbWcgIGNsYXNzPSJpY29uIiBzcmM9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vaWNvbnMvdHJhbnNmZXJpY29uLnBuZyIgIGFsdD0iIndpZHRoPSIzMHB4IiBoZWlnaHQ9IjMwcHgiPjwvZGl2Pg0KICAgICAgPHA+VHJhbnNmZXI8L3A+DQogICAgPC9kaXY+DQogICAgPGRpdiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9saW5rX3dhbGxldCciIA0KICBjbGFzcz0iY3Vyc29yLXBvaW50ZXIgdGV4dC1jZW50ZXIgaG92ZXI6YmctZ3JheS0xMDAgcC0yIHJvdW5kZWQtbGciPg0KICAgICAgPGRpdiBjbGFzcz0icm91bmRlZC1mdWxsIGlubGluZS1ibG9jayI+PGltZyAgY2xhc3M9Imljb24iIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9pY29ucy9vcHRpb25pY29uLnBuZyIgIGFsdD0iIndpZHRoPSIzMHB4IiBoZWlnaHQ9IjMwcHgiPjwvZGl2Pg0KICAgICAgPHA+Q29ubmVjdFdhbGxldDwvcD4NCiAgICA8L2Rpdj4NCiAgPCEtLSAgPGRpdiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9pbnZlc3QvcmFua2luZyciIC0tPg0KICA8IS0tY2xhc3M9ImN1cnNvci1wb2ludGVyIHRleHQtY2VudGVyIGhvdmVyOmJnLWdyYXktMTAwIHAtMiByb3VuZGVkLWxnIj4tLT4NCiAgPCEtLSAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLWZ1bGwgaW5saW5lLWJsb2NrIj48aW1nICBjbGFzcz0iaWNvbiIgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2ljb25zL3ZpcGljb24ucG5nIiAgYWx0PSIid2lkdGg9IjMwcHgiIGhlaWdodD0iMzBweCI+PC9kaXY+LS0+DQogIDwhLS0gICAgPHA+VklQPC9wPi0tPg0KICA8IS0tICA8L2Rpdj4tLT4NCiAgPCEtLSAgPGRpdiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9zdGFraW5nJyIgLS0+DQogIDwhLS1jbGFzcz0iY3Vyc29yLXBvaW50ZXIgdGV4dC1jZW50ZXIgaG92ZXI6YmctZ3JheS0xMDAgcC0yIHJvdW5kZWQtbGciPi0tPg0KICA8IS0tICAgIDxkaXYgY2xhc3M9InJvdW5kZWQtZnVsbCBpbmxpbmUtYmxvY2siPjxpbWcgIGNsYXNzPSJpY29uIiBzcmM9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vaWNvbnMvc2ltdHJhZGVpY29uLnBuZyIgIGFsdD0iIndpZHRoPSIzMHB4IiBoZWlnaHQ9IjMwcHgiPjwvZGl2Pi0tPg0KICA8IS0tICAgIDxwPlNpbSBUcmFkZTwvcD4tLT4NCiAgPCEtLSAgPC9kaXY+LS0+DQogICAgPGRpdiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9zdXBwb3J0bGluZSciIA0KICBjbGFzcz0iY3Vyc29yLXBvaW50ZXIgdGV4dC1jZW50ZXIgaG92ZXI6YmctZ3JheS0xMDAgcC0yIHJvdW5kZWQtbGciPg0KICAgICAgPGRpdiBjbGFzcz0icm91bmRlZC1mdWxsIGlubGluZS1ibG9jayI+PGltZyAgY2xhc3M9Imljb24iIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9pY29ucy9jaGF0aWNvbi5wbmciICBhbHQ9IiJ3aWR0aD0iMzBweCIgaGVpZ2h0PSIzMHB4Ij48L2Rpdj4NCiAgICAgIDxwPkxpdmUgQ2hhdDwvcD4NCiAgICA8L2Rpdj4NCiAgPC9kaXY+DQoNCiAgPCEtLSBJbWFnZSBTbGlkZXIgLS0+DQo8ZGl2IGNsYXNzPSJyZWxhdGl2ZSB3LVszNDJweF0gaC1bMTIycHhdIG14LWF1dG8gbXQtNCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1sZyBzaGFkb3ctbGciPg0KICA8IS0tIFNsaWRlcyAtLT4NCiAgPGRpdiBjbGFzcz0iZmxleCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi03MDAgZWFzZS1pbi1vdXQiIGlkPSJzbGlkZXIiPg0KICAgIDxpbWcgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2ljb25zL3NsaWRlcjEucG5nIiBjbGFzcz0idy1bMzQycHhdIGgtWzEyMnB4XSBmbGV4LXNocmluay0wIiBhbHQ9IlNsaWRlIDEiPg0KICAgIDxpbWcgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2ljb25zL3NsaWRlcjIuanBlZyIgY2xhc3M9InctWzM0MnB4XSBoLVsxMjJweF0gZmxleC1zaHJpbmstMCIgYWx0PSJTbGlkZSAyIj4NCiAgICAgDQogIDwvZGl2Pg0KDQogIDwhLS0gRG90cyAtLT4NCiAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgYm90dG9tLTIgbGVmdC0xLzIgdHJhbnNmb3JtIC10cmFuc2xhdGUteC0xLzIgZmxleCBzcGFjZS14LTIiPg0KICAgIDxzcGFuIGNsYXNzPSJ3LTIgaC0yIGJnLXllbGxvdy01MDAgcm91bmRlZC1mdWxsIiBpZD0iZG90MCI+PC9zcGFuPg0KICAgIDxzcGFuIGNsYXNzPSJ3LTIgaC0yIGJnLWdyYXktNDAwIHJvdW5kZWQtZnVsbCIgaWQ9ImRvdDEiPjwvc3Bhbj4NCiAgICAgDQogIDwvZGl2Pg0KPC9kaXY+DQoNCiAgPCEtLSBNYXJrZXQgTGlzdCAtLT4NCiAgPGRpdiBjbGFzcz0ibXQtNiBiZy13aGl0ZSBzaGFkb3cgcC00Ij4NCiAgICA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtNiBib3JkZXItYiBwYi0yIj4NCiAgICAgIDxidXR0b24gY2xhc3M9ImZvbnQtc2VtaWJvbGQgYm9yZGVyLWItMiBib3JkZXIteWVsbG93LTQwMCI+SG90PC9idXR0b24+DQogICAgICA8YnV0dG9uIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIj4yNGggbGlzdDwvYnV0dG9uPg0KICAgICAgPGJ1dHRvbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+UmlzZTwvYnV0dG9uPg0KICAgICAgPGJ1dHRvbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+TG9zczwvYnV0dG9uPg0KICAgIDwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0ibXQtNCBzcGFjZS15LTMiPg0KICAgICAgICANCiAgICAgICAgIAkJCQkJICAgIA0KCQkJCQkgICAgICAgICAgIDwhLS0gQ29pbiBSb3cgLS0+DQogICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIiIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbj0naHR0cHM6Ly9vbmNoYWlub3B0LmNvbS91c2VyL2NvaW5fZGV0YWlscy8xJyI+DQogICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiI+DQogICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtMnhsIj48aW1nICBjbGFzcz0iaWNvbiIgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2Fzc2V0cy9pbWFnZXMvY29pbmljb24vMTcyMjk4MTU2N18xLTFwbmciICBhbHQ9IiJ3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4Ij48L3NwYW4+DQogICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNlbWlib2xkIj5CVEMvVVNEVDwvcD4NCiAgICAgICAgICAgICANCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InRleHQtcmlnaHQiPg0KICAgICAgICAgIDxwIGNsYXNzPSJmb250LWJvbGQiIGlkPSJidGMtcHJpY2UiPjA8L3A+DQogICAgICAgICAgPHNwYW4gaWQ9ImJ0Yy1jaGFuZ2UiIGNsYXNzPSJtYXJrZXQtY29pbi1jaGFuZ2UgZG93biBiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi02MDAgcHgtMiBweS0xIHJvdW5kZWQgdGV4dC14cyI+KzAlPC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICA8IS0tIENvaW4gUm93IC0tPg0KICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9jb2luX2RldGFpbHMvMiciPg0KICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTIiPg0KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LTJ4bCI+PGltZyAgY2xhc3M9Imljb24iIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvaW1hZ2VzL2NvaW5pY29uLzE3MjI5ODE5MDBfMTAyN3BuZyIgIGFsdD0iIndpZHRoPSIyOHB4IiBoZWlnaHQ9IjI4cHgiPjwvc3Bhbj4NCiAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQiPkVUSC9VU0RUPC9wPg0KICAgICAgICAgICAgIA0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+DQogICAgICAgICAgPHAgY2xhc3M9ImZvbnQtYm9sZCIgaWQ9ImV0aC1wcmljZSI+MDwvcD4NCiAgICAgICAgICA8c3BhbiBpZD0iZXRoLWNoYW5nZSIgY2xhc3M9Im1hcmtldC1jb2luLWNoYW5nZSBkb3duIGJnLWdyZWVuLTEwMCB0ZXh0LWdyZWVuLTYwMCBweC0yIHB5LTEgcm91bmRlZCB0ZXh0LXhzIj4rMCU8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgIDwhLS0gQ29pbiBSb3cgLS0+DQogICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIiIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbj0naHR0cHM6Ly9vbmNoYWlub3B0LmNvbS91c2VyL2NvaW5fZGV0YWlscy8zJyI+DQogICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiI+DQogICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtMnhsIj48aW1nICBjbGFzcz0iaWNvbiIgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2Fzc2V0cy9pbWFnZXMvY29pbmljb24vMTcyMjk5NTMyMl8xMDAwMDU2OTcycG5nIiAgYWx0PSIid2lkdGg9IjI4cHgiIGhlaWdodD0iMjhweCI+PC9zcGFuPg0KICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICA8cCBjbGFzcz0iZm9udC1zZW1pYm9sZCI+VVNEVC9VU0RUPC9wPg0KICAgICAgICAgICAgIA0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+DQogICAgICAgICAgPHAgY2xhc3M9ImZvbnQtYm9sZCIgaWQ9InVzZHQtcHJpY2UiPjA8L3A+DQogICAgICAgICAgPHNwYW4gaWQ9InVzZHQtY2hhbmdlIiBjbGFzcz0ibWFya2V0LWNvaW4tY2hhbmdlIGRvd24gYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tNjAwIHB4LTIgcHktMSByb3VuZGVkIHRleHQteHMiPiswJTwvc3Bhbj4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgPCEtLSBDb2luIFJvdyAtLT4NCiAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciIgb25jbGljaz0id2luZG93LmxvY2F0aW9uPSdodHRwczovL29uY2hhaW5vcHQuY29tL3VzZXIvY29pbl9kZXRhaWxzLzQnIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIj4NCiAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC0yeGwiPjxpbWcgIGNsYXNzPSJpY29uIiBzcmM9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vYXNzZXRzL2ltYWdlcy9jb2luaWNvbi8xNzIyOTk1NDk0XzEwMDAwNTY5NzNwbmciICBhbHQ9IiJ3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4Ij48L3NwYW4+DQogICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNlbWlib2xkIj5TT0wvVVNEVDwvcD4NCiAgICAgICAgICAgICANCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InRleHQtcmlnaHQiPg0KICAgICAgICAgIDxwIGNsYXNzPSJmb250LWJvbGQiIGlkPSJzb2wtcHJpY2UiPjA8L3A+DQogICAgICAgICAgPHNwYW4gaWQ9InNvbC1jaGFuZ2UiIGNsYXNzPSJtYXJrZXQtY29pbi1jaGFuZ2UgZG93biBiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi02MDAgcHgtMiBweS0xIHJvdW5kZWQgdGV4dC14cyI+KzAlPC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICA8IS0tIENvaW4gUm93IC0tPg0KICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9jb2luX2RldGFpbHMvNSciPg0KICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTIiPg0KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LTJ4bCI+PGltZyAgY2xhc3M9Imljb24iIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvaW1hZ2VzL2NvaW5pY29uLzE3MjI5OTU2ODBfMTAwMDA1Njk3NHBuZyIgIGFsdD0iIndpZHRoPSIyOHB4IiBoZWlnaHQ9IjI4cHgiPjwvc3Bhbj4NCiAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQiPlhSUC9VU0RUPC9wPg0KICAgICAgICAgICAgIA0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+DQogICAgICAgICAgPHAgY2xhc3M9ImZvbnQtYm9sZCIgaWQ9InhycC1wcmljZSI+MDwvcD4NCiAgICAgICAgICA8c3BhbiBpZD0ieHJwLWNoYW5nZSIgY2xhc3M9Im1hcmtldC1jb2luLWNoYW5nZSBkb3duIGJnLWdyZWVuLTEwMCB0ZXh0LWdyZWVuLTYwMCBweC0yIHB5LTEgcm91bmRlZCB0ZXh0LXhzIj4rMCU8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgIDwhLS0gQ29pbiBSb3cgLS0+DQogICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIiIG9uY2xpY2s9IndpbmRvdy5sb2NhdGlvbj0naHR0cHM6Ly9vbmNoYWlub3B0LmNvbS91c2VyL2NvaW5fZGV0YWlscy82JyI+DQogICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiI+DQogICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtMnhsIj48aW1nICBjbGFzcz0iaWNvbiIgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2Fzc2V0cy9pbWFnZXMvY29pbmljb24vMTcyMjk5NTgyM18xMDAwMDU2OTc3cG5nIiAgYWx0PSIid2lkdGg9IjI4cHgiIGhlaWdodD0iMjhweCI+PC9zcGFuPg0KICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICA8cCBjbGFzcz0iZm9udC1zZW1pYm9sZCI+RE9HRS9VU0RUPC9wPg0KICAgICAgICAgICAgIA0KICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+DQogICAgICAgICAgPHAgY2xhc3M9ImZvbnQtYm9sZCIgaWQ9ImRvZ2UtcHJpY2UiPjA8L3A+DQogICAgICAgICAgPHNwYW4gaWQ9ImRvZ2UtY2hhbmdlIiBjbGFzcz0ibWFya2V0LWNvaW4tY2hhbmdlIGRvd24gYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tNjAwIHB4LTIgcHktMSByb3VuZGVkIHRleHQteHMiPiswJTwvc3Bhbj4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgPCEtLSBDb2luIFJvdyAtLT4NCiAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciIgb25jbGljaz0id2luZG93LmxvY2F0aW9uPSdodHRwczovL29uY2hhaW5vcHQuY29tL3VzZXIvY29pbl9kZXRhaWxzLzcnIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIj4NCiAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC0yeGwiPjxpbWcgIGNsYXNzPSJpY29uIiBzcmM9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vYXNzZXRzL2ltYWdlcy9jb2luaWNvbi8xNzIzMDU1OTYwX3VzZGNwbmciICBhbHQ9IiJ3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4Ij48L3NwYW4+DQogICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNlbWlib2xkIj5VU0RDL1VTRFQ8L3A+DQogICAgICAgICAgICAgDQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4NCiAgICAgICAgICA8cCBjbGFzcz0iZm9udC1ib2xkIiBpZD0idXNkYy1wcmljZSI+MDwvcD4NCiAgICAgICAgICA8c3BhbiBpZD0idXNkYy1jaGFuZ2UiIGNsYXNzPSJtYXJrZXQtY29pbi1jaGFuZ2UgZG93biBiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi02MDAgcHgtMiBweS0xIHJvdW5kZWQgdGV4dC14cyI+KzAlPC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICA8IS0tIENvaW4gUm93IC0tPg0KICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9jb2luX2RldGFpbHMvOCciPg0KICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTIiPg0KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LTJ4bCI+PGltZyAgY2xhc3M9Imljb24iIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvaW1hZ2VzL2NvaW5pY29uLzE3MjMwNTYwNjhfaW1hZ2UtMjAyNC0wOC0wNy0xOTQwMzQ0MjBwbmciICBhbHQ9IiJ3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4Ij48L3NwYW4+DQogICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNlbWlib2xkIj5UT04vVVNEVDwvcD4NCiAgICAgICAgICAgICANCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InRleHQtcmlnaHQiPg0KICAgICAgICAgIDxwIGNsYXNzPSJmb250LWJvbGQiIGlkPSJ0b24tcHJpY2UiPjA8L3A+DQogICAgICAgICAgPHNwYW4gaWQ9InRvbi1jaGFuZ2UiIGNsYXNzPSJtYXJrZXQtY29pbi1jaGFuZ2UgZG93biBiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi02MDAgcHgtMiBweS0xIHJvdW5kZWQgdGV4dC14cyI+KzAlPC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICA8IS0tIENvaW4gUm93IC0tPg0KICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9jb2luX2RldGFpbHMvOSciPg0KICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTIiPg0KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LTJ4bCI+PGltZyAgY2xhc3M9Imljb24iIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvaW1hZ2VzL2NvaW5pY29uLzE3MjMyMzkxNzdfaW1hZ2UtMjAyNC0wOC0wOS0yMjMyNTA4ODZwbmciICBhbHQ9IiJ3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4Ij48L3NwYW4+DQogICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNlbWlib2xkIj5CTkIvVVNEVDwvcD4NCiAgICAgICAgICAgICANCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9InRleHQtcmlnaHQiPg0KICAgICAgICAgIDxwIGNsYXNzPSJmb250LWJvbGQiIGlkPSJibmItcHJpY2UiPjA8L3A+DQogICAgICAgICAgPHNwYW4gaWQ9ImJuYi1jaGFuZ2UiIGNsYXNzPSJtYXJrZXQtY29pbi1jaGFuZ2UgZG93biBiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi02MDAgcHgtMiBweS0xIHJvdW5kZWQgdGV4dC14cyI+KzAlPC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICA8IS0tIENvaW4gUm93IC0tPg0KICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIiBvbmNsaWNrPSJ3aW5kb3cubG9jYXRpb249J2h0dHBzOi8vb25jaGFpbm9wdC5jb20vdXNlci9jb2luX2RldGFpbHMvMTAnIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIj4NCiAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC0yeGwiPjxpbWcgIGNsYXNzPSJpY29uIiBzcmM9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vYXNzZXRzL2ltYWdlcy9jb2luaWNvbi8xNzIzMjM5NDM1X2ltYWdlLTIwMjQtMDgtMDktMjIzNjU5Mjc5cG5nIiAgYWx0PSIid2lkdGg9IjI4cHgiIGhlaWdodD0iMjhweCI+PC9zcGFuPg0KICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICA8cCBjbGFzcz0iZm9udC1zZW1pYm9sZCI+VFJYL1VTRFQ8L3A+DQogICAgICAgICAgICAgDQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4NCiAgICAgICAgICA8cCBjbGFzcz0iZm9udC1ib2xkIiBpZD0idHJ4LXByaWNlIj4wPC9wPg0KICAgICAgICAgIDxzcGFuIGlkPSJ0cngtY2hhbmdlIiBjbGFzcz0ibWFya2V0LWNvaW4tY2hhbmdlIGRvd24gYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tNjAwIHB4LTIgcHktMSByb3VuZGVkIHRleHQteHMiPiswJTwvc3Bhbj4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCg0KICAgICAgICAgCQ0KDQogICAgICA8IS0tIEFkZCBtb3JlIGNvaW5zIGluIHNhbWUgZm9ybWF0IC0tPg0KICAgIDwvZGl2Pg0KICA8L2Rpdj4NCg0KIDxzY3JpcHQ+DQoNCi8vIFByZXBhcmUgdGhlIGxpc3Qgb2YgY29pbiBJRHMgaW4gQmxhZGUgYW5kIHBhc3MgaXQgdG8gSmF2YVNjcmlwdA0KY29uc3QgY29pbnMgPSBbeyJpZCI6MSwibmFtZSI6IkJpdGNvaW4iLCJzbmFtZSI6ImJpdGNvaW4iLCJzeW1ib2wiOiJidGMiLCJjb21wYW55IjoiQmluYW5jZSIsImljb24iOiJhc3NldHNcL2ltYWdlc1wvY29pbmljb25cLzE3MjI5ODE1NjdfMS0xcG5nIiwiZHVyYXRpb25zIjoiWzMwLCA2MCwgOTAsIDEyMCwgMTgwLCAzMDBdIiwicGVyY2VudGFnZXMiOiJbMTIsIDE4LCAyMiwgMjUsIDMwLCAzMl0iLCJsaW1pdHMiOiJbICAge1x1MDAyMm1pblx1MDAyMjogMTAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDEwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDEwMDAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDEwMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwMH0gXSIsInN0YXR1cyI6MSwiY3JlYXRlZF9hdCI6IjIwMjQtMDgtMDdUMDk6Mjk6MjcuMDAwMDAwWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA4LTA4VDA2OjIwOjI2LjAwMDAwMFoifSx7ImlkIjoyLCJuYW1lIjoiRXRoZXJldW0iLCJzbmFtZSI6ImV0aGVyZXVtIiwic3ltYm9sIjoiZXRoIiwiY29tcGFueSI6IkJpbmFuY2UiLCJpY29uIjoiYXNzZXRzXC9pbWFnZXNcL2NvaW5pY29uXC8xNzIyOTgxOTAwXzEwMjdwbmciLCJkdXJhdGlvbnMiOiJbMzAsIDYwLCA5MCwgMTIwLCAxODAsIDMwMF0iLCJwZXJjZW50YWdlcyI6IlsxMiwgMTgsIDIyLCAyNSwgMzAsIDMyXSIsImxpbWl0cyI6IlsgICB7XHUwMDIybWluXHUwMDIyOiAxMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiAxMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiA1MDAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMDAwfSBdIiwic3RhdHVzIjoxLCJjcmVhdGVkX2F0IjoiMjAyNC0wOC0wN1QwOTozNTowMC4wMDAwMDBaIiwidXBkYXRlZF9hdCI6IjIwMjQtMDgtMTBUMTE6MTA6MTIuMDAwMDAwWiJ9LHsiaWQiOjMsIm5hbWUiOiJVU0RUIiwic25hbWUiOiJ0ZXRoZXIiLCJzeW1ib2wiOiJ1c2R0IiwiY29tcGFueSI6IkNSWVBUT0NBUCIsImljb24iOiJhc3NldHNcL2ltYWdlc1wvY29pbmljb25cLzE3MjI5OTUzMjJfMTAwMDA1Njk3MnBuZyIsImR1cmF0aW9ucyI6IlszMCwgNjAsIDkwLCAxMjAsIDE4MCwgMzAwXSIsInBlcmNlbnRhZ2VzIjoiWzEyLCAxOCwgMjIsIDI1LCAzMCwgMzJdIiwibGltaXRzIjoiWyAgIHtcdTAwMjJtaW5cdTAwMjI6IDEwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiA1MDAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiA1MDAwMCwgXHUwMDIybWF4XHUwMDIyOiAxMDAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDEwMDAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAwMCwgXHUwMDIybWF4XHUwMDIyOiAxMDAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiAxMDAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDAwMDB9IF0iLCJzdGF0dXMiOjEsImNyZWF0ZWRfYXQiOiIyMDI0LTA4LTA3VDEzOjE4OjQyLjAwMDAwMFoiLCJ1cGRhdGVkX2F0IjoiMjAyNC0wOC0xMFQxMTo0NzoxMC4wMDAwMDBaIn0seyJpZCI6NCwibmFtZSI6IlNvbGFuYSIsInNuYW1lIjoic29sYW5hIiwic3ltYm9sIjoic29sIiwiY29tcGFueSI6IkJpbmFuY2UiLCJpY29uIjoiYXNzZXRzXC9pbWFnZXNcL2NvaW5pY29uXC8xNzIyOTk1NDk0XzEwMDAwNTY5NzNwbmciLCJkdXJhdGlvbnMiOiJbMzAsIDYwLCA5MCwgMTIwLCAxODAsIDMwMF0iLCJwZXJjZW50YWdlcyI6IlsxMiwgMTgsIDIyLCAyNSwgMzAsIDMyXSIsImxpbWl0cyI6IlsgICB7XHUwMDIybWluXHUwMDIyOiAxMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiAxMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiA1MDAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMDAwfSBdIiwic3RhdHVzIjoxLCJjcmVhdGVkX2F0IjoiMjAyNC0wOC0wN1QxMzoyMTozNC4wMDAwMDBaIiwidXBkYXRlZF9hdCI6IjIwMjQtMDgtMDhUMDY6MjE6MTcuMDAwMDAwWiJ9LHsiaWQiOjUsIm5hbWUiOiJSaXBwbGUiLCJzbmFtZSI6InJpcHBsZSIsInN5bWJvbCI6InhycCIsImNvbXBhbnkiOiJCaW5hbmNlIiwiaWNvbiI6ImFzc2V0c1wvaW1hZ2VzXC9jb2luaWNvblwvMTcyMjk5NTY4MF8xMDAwMDU2OTc0cG5nIiwiZHVyYXRpb25zIjoiWzMwLCA2MCwgOTAsIDEyMCwgMTgwLCAzMDBdIiwicGVyY2VudGFnZXMiOiJbMTIsIDE4LCAyMiwgMjUsIDMwLCAzMl0iLCJsaW1pdHMiOiJbICAge1x1MDAyMm1pblx1MDAyMjogMTAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDEwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDEwMDAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDEwMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwMH0gXSIsInN0YXR1cyI6MSwiY3JlYXRlZF9hdCI6IjIwMjQtMDgtMDdUMTM6MjQ6NDAuMDAwMDAwWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA4LTA4VDA2OjIxOjI5LjAwMDAwMFoifSx7ImlkIjo2LCJuYW1lIjoiRG9nZWNvaW4iLCJzbmFtZSI6ImRvZ2Vjb2luIiwic3ltYm9sIjoiZG9nZSIsImNvbXBhbnkiOiJCaW5hbmNlIiwiaWNvbiI6ImFzc2V0c1wvaW1hZ2VzXC9jb2luaWNvblwvMTcyMjk5NTgyM18xMDAwMDU2OTc3cG5nIiwiZHVyYXRpb25zIjoiWzMwLCA2MCwgOTAsIDEyMCwgMTgwLCAzMDBdIiwicGVyY2VudGFnZXMiOiJbMTIsIDE4LCAyMiwgMjUsIDMwLCAzMl0iLCJsaW1pdHMiOiJbICAge1x1MDAyMm1pblx1MDAyMjogMTAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDEwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDEwMDAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDEwMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwMH0gXSIsInN0YXR1cyI6MSwiY3JlYXRlZF9hdCI6IjIwMjQtMDgtMDdUMTM6Mjc6MDMuMDAwMDAwWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA4LTA4VDA2OjIxOjM2LjAwMDAwMFoifSx7ImlkIjo3LCJuYW1lIjoiVVNEQyIsInNuYW1lIjoidXNkLWNvaW4iLCJzeW1ib2wiOiJ1c2RjIiwiY29tcGFueSI6IkJpbmFuY2UiLCJpY29uIjoiYXNzZXRzXC9pbWFnZXNcL2NvaW5pY29uXC8xNzIzMDU1OTYwX3VzZGNwbmciLCJkdXJhdGlvbnMiOiJbMzAsIDYwLCA5MCwgMTIwLCAxODAsIDMwMF0iLCJwZXJjZW50YWdlcyI6IlsxMiwgMTgsIDIyLCAyNSwgMzAsIDMyXSIsImxpbWl0cyI6IlsgICB7XHUwMDIybWluXHUwMDIyOiAxMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiAxMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiA1MDAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMDAwfSBdIiwic3RhdHVzIjoxLCJjcmVhdGVkX2F0IjoiMjAyNC0wOC0wOFQwNjowOToyMC4wMDAwMDBaIiwidXBkYXRlZF9hdCI6IjIwMjQtMDgtMTBUMTE6MTM6MjkuMDAwMDAwWiJ9LHsiaWQiOjgsIm5hbWUiOiJUb25jb2luIiwic25hbWUiOiJ0aGUtb3Blbi1uZXR3b3JrIiwic3ltYm9sIjoidG9uIiwiY29tcGFueSI6Ik9LWCIsImljb24iOiJhc3NldHNcL2ltYWdlc1wvY29pbmljb25cLzE3MjMwNTYwNjhfaW1hZ2UtMjAyNC0wOC0wNy0xOTQwMzQ0MjBwbmciLCJkdXJhdGlvbnMiOiJbMzAsIDYwLCA5MCwgMTIwLCAxODAsIDMwMF0iLCJwZXJjZW50YWdlcyI6IlsxMiwgMTgsIDIyLCAyNSwgMzAsIDMyXSIsImxpbWl0cyI6IlsgICB7XHUwMDIybWluXHUwMDIyOiAxMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiAxMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiA1MDAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMDAwfSBdIiwic3RhdHVzIjoxLCJjcmVhdGVkX2F0IjoiMjAyNC0wOC0wOFQwNjoxMTowOC4wMDAwMDBaIiwidXBkYXRlZF9hdCI6IjIwMjQtMDgtMTBUMTE6MTQ6MTQuMDAwMDAwWiJ9LHsiaWQiOjksIm5hbWUiOiJCaW5hbmNlIENvaW4iLCJzbmFtZSI6ImJpbmFuY2Vjb2luIiwic3ltYm9sIjoiYm5iIiwiY29tcGFueSI6IkJpbmFuY2UiLCJpY29uIjoiYXNzZXRzXC9pbWFnZXNcL2NvaW5pY29uXC8xNzIzMjM5MTc3X2ltYWdlLTIwMjQtMDgtMDktMjIzMjUwODg2cG5nIiwiZHVyYXRpb25zIjoiWzMwLCA2MCwgOTAsIDEyMCwgMTgwLCAzMDBdIiwicGVyY2VudGFnZXMiOiJbMTIsIDE4LCAyMiwgMjUsIDMwLCAzMl0iLCJsaW1pdHMiOiJbICAge1x1MDAyMm1pblx1MDAyMjogMTAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDUwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDEwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDUwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAwLCBcdTAwMjJtYXhcdTAwMjI6IDEwMDAwMDB9LCAgIHtcdTAwMjJtaW5cdTAwMjI6IDEwMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwMH0gXSIsInN0YXR1cyI6MSwiY3JlYXRlZF9hdCI6IjIwMjQtMDgtMTBUMDk6MDI6NTcuMDAwMDAwWiIsInVwZGF0ZWRfYXQiOiIyMDI0LTA4LTEwVDExOjE0OjUyLjAwMDAwMFoifSx7ImlkIjoxMCwibmFtZSI6IlRST04iLCJzbmFtZSI6InRyb24iLCJzeW1ib2wiOiJ0cngiLCJjb21wYW55IjoiQmluYW5jZSIsImljb24iOiJhc3NldHNcL2ltYWdlc1wvY29pbmljb25cLzE3MjMyMzk0MzVfaW1hZ2UtMjAyNC0wOC0wOS0yMjM2NTkyNzlwbmciLCJkdXJhdGlvbnMiOiJbMzAsIDYwLCA5MCwgMTIwLCAxODAsIDMwMF0iLCJwZXJjZW50YWdlcyI6IlsxMiwgMTgsIDIyLCAyNSwgMzAsIDMyXSIsImxpbWl0cyI6IlsgICB7XHUwMDIybWluXHUwMDIyOiAxMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogNTAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiAxMDAwMDAsIFx1MDAyMm1heFx1MDAyMjogNTAwMDAwfSwgICB7XHUwMDIybWluXHUwMDIyOiA1MDAwMDAsIFx1MDAyMm1heFx1MDAyMjogMTAwMDAwMH0sICAge1x1MDAyMm1pblx1MDAyMjogMTAwMDAwMCwgXHUwMDIybWF4XHUwMDIyOiA1MDAwMDAwfSBdIiwic3RhdHVzIjoxLCJjcmVhdGVkX2F0IjoiMjAyNC0wOC0xMFQwOTowNzoxNS4wMDAwMDBaIiwidXBkYXRlZF9hdCI6IjIwMjQtMDgtMTBUMDk6MDc6MTUuMDAwMDAwWiJ9XTsNCg0KLy8gRnVuY3Rpb24gdG8gZmV0Y2ggZGF0YSBmcm9tIENvaW5HZWNrbyBBUEkNCmFzeW5jIGZ1bmN0aW9uIGZldGNoQ3J5cHRvUHJpY2VzKCkgew0KICAgIC8vIENvbnN0cnVjdCB0aGUgQVBJIFVSTCBkeW5hbWljYWxseSBiYXNlZCBvbiB0aGUgbGlzdCBvZiBjb2lucw0KICAgIGNvbnN0IGlkcyA9IGNvaW5zLm1hcChjb2luID0+IGNvaW4uc25hbWUpLmpvaW4oJywnKTsNCiAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9hcGkuY29pbmdlY2tvLmNvbS9hcGkvdjMvc2ltcGxlL3ByaWNlP2lkcz0ke2lkc30mdnNfY3VycmVuY2llcz11c2QmaW5jbHVkZV8yNGhyX2NoYW5nZT10cnVlYDsNCg0KICAgIHRyeSB7DQogICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsNCiAgICAgICAgDQogICAgICAgIGlmIChyZXNwb25zZS5vaykgew0KICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTsNCg0KICAgICAgICAgICAgLy8gVXBkYXRlIHByaWNlcyBhbmQgMjRoIGNoYW5nZXMgZHluYW1pY2FsbHkNCiAgICAgICAgICAgIGNvaW5zLmZvckVhY2goY29pbiA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJpY2VFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7Y29pbi5zeW1ib2x9LXByaWNlYCk7DQogICAgICAgICAgICAgICAgY29uc3QgY2hhbmdlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke2NvaW4uc3ltYm9sfS1jaGFuZ2VgKTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtjb2luLnNuYW1lXSkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmljZSA9IGRhdGFbY29pbi5zbmFtZV0udXNkLnRvRml4ZWQoMik7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IGRhdGFbY29pbi5zbmFtZV0udXNkXzI0aF9jaGFuZ2UudG9GaXhlZCgyKTsNCg0KICAgICAgICAgICAgICAgICAgICBwcmljZUVsZW1lbnQudGV4dENvbnRlbnQgPSBgJCR7cHJpY2V9YDsNCiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRWxlbWVudC50ZXh0Q29udGVudCA9IGAke2NoYW5nZX0lYDsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGNvbG9yIGJhc2VkIG9uIHRoZSBwcmljZSBjaGFuZ2UNCiAgICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZSA+PSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VFbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSAnIzAwYzA4Nyc7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VFbGVtZW50LnN0eWxlLmNvbG9yID0gJyNmZmYnOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gJyNlMTUyNDEnOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlRWxlbWVudC5zdHlsZS5jb2xvciA9ICcjZmZmJzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAocHJpY2UgPj0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2VFbGVtZW50LnN0eWxlLmNvbG9yID0gJyMwMGMwODcnOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2VFbGVtZW50LnN0eWxlLmNvbG9yID0gJyNlMTUyNDEnOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5nZUVsZW1lbnQuc3R5bGUuYm9yZGVyUmFkaXVzID0gJzEycHgnOw0KICAgICAgICAgICAgICAgICAgICBjaGFuZ2VFbGVtZW50LnN0eWxlLmxpbmVIZWlnaHQgPSAnLjZyZW0nOw0KICAgICAgICAgICAgICAgICAgICBjaGFuZ2VFbGVtZW50LnN0eWxlLndpZHRoID0gJzEwcHgnOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIGRhdGEgZnJvbSBDb2luR2Vja28nKTsNCiAgICAgICAgfQ0KICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTsNCiAgICB9DQp9DQoNCi8vIENhbGwgdGhlIGZ1bmN0aW9uIG9uIHBhZ2UgbG9hZA0KZmV0Y2hDcnlwdG9QcmljZXMoKTsNCg0KLy8gU2V0IGFuIGludGVydmFsIHRvIHVwZGF0ZSBwcmljZXMgYW5kIGNoYW5nZXMgZXZlcnkgNjAgc2Vjb25kcw0Kc2V0SW50ZXJ2YWwoZmV0Y2hDcnlwdG9QcmljZXMsIDYwMDAwKTsNCg0KDQo8L3NjcmlwdD4NCg0KPCEtLSBMYW5ndWFnZSBNb2RhbCAtLT4NCjxkaXYgaWQ9ImxhbmdNb2RhbCIgY2xhc3M9Im1vZGFsIiBzdHlsZT0iZGlzcGxheTpub25lOyI+DQogIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPg0KICAgIDxzcGFuIGNsYXNzPSJjbG9zZSI+JnRpbWVzOzwvc3Bhbj4NCiAgICA8aDIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDIwcHg7Ij5DaGFuZ2UgTGFuZ3VhZ2U8L2gyPg0KICAgIA0KICAgIDwhLS0gR29vZ2xlIFRyYW5zbGF0ZSBEcm9wZG93biAtLT4NCiAgICA8ZGl2IGlkPSJnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQiPjwvZGl2Pg0KICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEdvb2dsZSBUcmFuc2xhdGUgU2NyaXB0IC0tPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICAgICBmdW5jdGlvbiBnb29nbGVUcmFuc2xhdGVFbGVtZW50SW5pdCgpIHsNCiAgICAgICAgICAgIG5ldyBnb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZUVsZW1lbnQoew0KICAgICAgICAgICAgICAgIHBhZ2VMYW5ndWFnZTogJ2VuJw0KICAgICAgICAgICAgfSwgJ2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudCcpOw0KICAgICAgICB9DQogICAgPC9zY3JpcHQ+DQogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vdHJhbnNsYXRlLmdvb2dsZS5jb20vdHJhbnNsYXRlX2EvZWxlbWVudC5qcz9jYj1nb29nbGVUcmFuc2xhdGVFbGVtZW50SW5pdCI+PC9zY3JpcHQ+DQoNCjxzY3JpcHQ+DQpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKXsNCiAgY29uc3QgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGFuZ01vZGFsIik7DQogIGNvbnN0IG9wZW5CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlbkxhbmdNb2RhbCIpOw0KICBjb25zdCBjbG9zZUJ0biA9IG1vZGFsLnF1ZXJ5U2VsZWN0b3IoIi5jbG9zZSIpOw0KDQogIG9wZW5CdG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihlKXsNCiAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgbW9kYWwuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsNCiAgfSk7DQoNCiAgY2xvc2VCdG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpew0KICAgIG1vZGFsLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogIH0pOw0KDQogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKGUpew0KICAgIGlmKGUudGFyZ2V0ID09IG1vZGFsKXsNCiAgICAgIG1vZGFsLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgfQ0KICB9KTsNCg0KICAvLyBGb3JjZSByZW1vdmUgR29vZ2xlIHRvcCBiYXINCiAgZnVuY3Rpb24gcmVtb3ZlR29vZ2xlQmFyKCkgew0KICAgIGNvbnN0IGZyYW1lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaWZyYW1lLmdvb2ctdGUtYmFubmVyLWZyYW1lIik7DQogICAgaWYoZnJhbWUpIGZyYW1lLnJlbW92ZSgpOw0KICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5Iik7DQogICAgaWYoYm9keSkgYm9keS5zdHlsZS50b3AgPSAiMHB4IjsNCiAgfQ0KICBzZXRJbnRlcnZhbChyZW1vdmVHb29nbGVCYXIsIDEwMDApOyAvLyBjaGVjayBldmVyeSBzZWNvbmQNCn0pOw0KPC9zY3JpcHQ+DQoNCiANCg0KPCEtLSBnb29nbGUgdHJhbnNsYXRlIC0tPg0KICAgIDxzdHlsZT4NCiAgICAgICAgKiB7DQogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgICAgICB9DQoNCiAgICAgICAgDQoNCiAgICAgICAgLmdvb2ctdGUtZ2FkZ2V0IHsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBSb2JvdG8sICJPcGVuIFNhbnMiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7DQogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAuZ29vZy1sb2dvLWxpbmsgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ow0KICAgICAgICB9DQoNCiAgICAgICAgLmdvb2ctdGUtZ2FkZ2V0IHsNCiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Ow0KICAgICAgICB9DQoNCiAgICAgICAgLmdvb2ctdGUtZ2FkZ2V0IC5nb29nLXRlLWNvbWJvIHsNCiAgICAgICAgICAgIGNvbG9yOiAjYjViNWI1Ow0KICAgICAgICB9DQoNCiAgICAgICAgLmdvb2ctdGUtYmFubmVyLWZyYW1lLnNraXB0cmFuc2xhdGUgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ow0KICAgICAgICB9DQoNCiAgICAgICAgLmdvb2ctdGUtY29tYm8sIC5WSXBnSmQtWlZpOW9kLU9SSGIgKiwgLlZJcGdKZC1aVmk5b2QtU21mWiAqLCAuVklwZ0pkLVpWaTlvZC14bDA3T2IgKiwgLlZJcGdKZC1aVmk5b2QtdkgxR21mICosIC5WSXBnSmQtWlZpOW9kLWw5eGt0ZiAqew0KICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI0U1RjhDNiAwJSwgIzYxQjk5OCAxMDAlKTsNCiAgICAgICAgICAgIHBhZGRpbmc6IDEzcHggIWltcG9ydGFudDsNCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW0gIWltcG9ydGFudDsNCiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtICFpbXBvcnRhbnQ7DQogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgICAgICB6b29tOiAxOw0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4Ow0KICAgICAgICAgICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLCAuVklwZ0pkLVpWaTlvZC1sNGVIWC1oU1JHUGQ6bGluaywgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkOnZpc2l0ZWQsIC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDpob3ZlciwgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkOmFjdGl2ZSB7DQogICAgICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsNCiAgICAgICAgICAgIGNvbG9yOiAjNDQ0Ow0KICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAgICAgICAgZGlzcGxheTpub25lOw0KICAgICAgICB9DQoNCiAgICAgICAgLmdvb2ctdGUtbWVudTIgew0KICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgICB9DQoNCiAgICAgICAgLmdvb2ctdGUtbWVudS12YWx1ZSB7DQogICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50Ow0KICAgICAgICB9DQogICAgICAgIC5nb29nLXRlLW1lbnUtdmFsdWU6YmVmb3JlIHsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAiTWF0ZXJpYWwgSWNvbnMiOw0KICAgICAgICAgICAgY29udGVudDogIlxFOTI3IjsNCiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTZweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsNCiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMTBweDsNCiAgICAgICAgfQ0KDQogICAgICAgIC5nb29nLXRlLW1lbnUtdmFsdWUgc3BhbjpudGgtY2hpbGQoNSkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC5nb29nLXRlLW1lbnUtdmFsdWUgc3BhbjpudGgtY2hpbGQoMykgew0KICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7DQogICAgICAgICAgICBmb250LWZhbWlseTogIk1hdGVyaWFsIEljb25zIjsNCiAgICAgICAgfQ0KICAgICAgICAuZ29vZy10ZS1tZW51LXZhbHVlIHNwYW46bnRoLWNoaWxkKDMpOmFmdGVyIHsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAiTWF0ZXJpYWwgSWNvbnMiOw0KICAgICAgICAgICAgY29udGVudDogIlxFNUM1IjsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOw0KICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC02cHg7DQogICAgICAgIH0NCg0KICAgICAgICAuZ29vZy10ZS1nYWRnZXQtaWNvbiB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMHB4Ow0KICAgICAgICAgICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7DQogICAgICAgICAgICB3aWR0aDogMzJweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHggIWltcG9ydGFudDsNCiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7DQogICAgICAgIH0NCg0KICAgICAgICAuZ29vZy10ZS1iYW5uZXItZnJhbWUuc2tpcHRyYW5zbGF0ZSB7DQogICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7DQogICAgICAgIH0NCg0KICAgICAgICBib2R5IHsNCiAgICAgICAgICAgIHRvcDogMHB4ICFpbXBvcnRhbnQ7DQogICAgICAgIH0NCg0KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjY3cHgpIHsNCiAgICAgICAgICAgICNnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQgew0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgI2dvb2dsZV90cmFuc2xhdGVfZWxlbWVudCBnb29nLXRlLWdhZGdldCB7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAjZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50IC5za2lwdHJhbnNsYXRlIHsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICNnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQgLmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZSB7DQogICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZSAuVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVkIHsNCiAgICAgICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5nb29nLXRlLWdhZGdldCBpbWd7DQogICAgICAgICAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsNCiAgICAgICAgfQ0KICAgICAgICBib2R5ID4gLnNraXB0cmFuc2xhdGUgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgICAgfQ0KLyogTW9kYWwgU3R5bGluZyAqLw0KLm1vZGFsIHsNCiAgZGlzcGxheTogbm9uZTsNCiAgcG9zaXRpb246IGZpeGVkOw0KICB6LWluZGV4OiA5OTk5Ow0KICBsZWZ0OiAwOyB0b3A6IDA7DQogIHdpZHRoOiAxMDB2dzsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC44KTsNCiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7DQp9DQoubW9kYWwtY29udGVudCB7DQogIGJhY2tncm91bmQ6ICMxYTFhMWE7DQogIHBhZGRpbmc6IDIwcHg7DQogIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogIHdpZHRoOiA5MCU7IG1heC13aWR0aDogNDAwcHg7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBjb2xvcjogI2ZmZjsNCn0NCi5tb2RhbC1jb250ZW50IC5jbG9zZSB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgdG9wOiAxMHB4OyByaWdodDogMTVweDsNCiAgZm9udC1zaXplOiAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGNvbG9yOiAjZmZmOw0KfQ0KDQovKiBSZW1vdmUgR29vZ2xlIHRvcCBiYW5uZXIgKi8NCi5nb29nLXRlLWJhbm5lci1mcmFtZS5za2lwdHJhbnNsYXRlLCAuZ29vZy10ZS1nYWRnZXQgc3BhbiB7DQogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsNCn0NCmJvZHkgew0KICB0b3A6IDBweCAhaW1wb3J0YW50Ow0KfQ0KDQovKiBTdHlsZSBHb29nbGUgRHJvcGRvd24gKi8NCi5nb29nLXRlLWdhZGdldCB7DQogIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsNCiAgZm9udC1zaXplOiAxNHB4Ow0KICBjb2xvcjogI2ZmZjsNCn0NCi5nb29nLXRlLWNvbWJvIHsNCiAgcGFkZGluZzogOHB4IDEwcHg7DQogIGJvcmRlci1yYWRpdXM6IDZweDsNCiAgYm9yZGVyOiBub25lOw0KICAvKmJhY2tncm91bmQ6ICMzMzM7Ki8NCiAgY29sb3I6ICNmZmY7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQovKiBGYWtlIGZsYWcgZHJvcGRvd24gc3R5bGluZyAqLw0KLmdvb2ctdGUtY29tYm8gb3B0aW9uIHsNCiAgcGFkZGluZy1sZWZ0OiAyNXB4Ow0KICBiYWNrZ3JvdW5kLXNpemU6IDE4cHggMTJweDsNCiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCn0NCjwvc3R5bGU+DQogPHN0eWxlPg0KICAgICAgICAvKiBNb2RhbCBvdmVybGF5ICovDQogICAgICAgIC5jdXN0b20tbW9kYWwgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLyogSGlkZGVuIGJ5IGRlZmF1bHQgKi8NCiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICAgICAgICAgIHotaW5kZXg6IDEwMDAwOw0KICAgICAgICAgICAgbGVmdDogMDsNCiAgICAgICAgICAgIHRvcDogMDsNCiAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7DQogICAgICAgIH0NCg0KICAgICAgICAvKiBNb2RhbCBjb250ZW50ICovDQogICAgICAgIC5jdXN0b20tbW9kYWwtY29udGVudCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOw0KICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBtYXgtd2lkdGg6IDcwMHB4Ow0KICAgICAgICAgICAgbWFyZ2luOiA0JSBhdXRvOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsNCiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC5jdXN0b20tbW9kYWwtaGVhZGVyLA0KICAgICAgICAuY3VzdG9tLW1vZGFsLWZvb3RlciB7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KDQogICAgICAgIC5jdXN0b20tY2xvc2UtYnRuIHsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDsNCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgIA0KICAgIDwvc3R5bGU+DQo8IS0tIOKchSBNb2RhbCAtLT4NCjxkaXYgaWQ9ImRlcG9zaXRNb2RhbCIgY2xhc3M9ImN1c3RvbS1tb2RhbCI+DQogICAgPGRpdiBjbGFzcz0iY3VzdG9tLW1vZGFsLWNvbnRlbnQiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJjdXN0b20tbW9kYWwtaGVhZGVyIj4NCiAgICAgICAgICAgIDxoNSBjbGFzcz0ibW9kYWwtdGl0bGUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgQXQgZmlyc3Qgc2lnbiBpbiB5b3VyIGFjY291bnQgICAgICAgICAgICAgICAgICAgIDwvaDU+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY3VzdG9tLWNsb3NlLWJ0biIgaWQ9ImNsb3NlTW9kYWwiPiZ0aW1lczs8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImN1c3RvbS1tb2RhbC1ib2R5Ij4NCiAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJodHRwczovL29uY2hhaW5vcHQuY29tL3VzZXIvZGVwb3NpdC9pbnNlcnQiIG1ldGhvZD0icG9zdCI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Il90b2tlbiIgdmFsdWU9IllpM21FcElkQ0puYWJBSk5ROGxWZkM2ZzdRTGtJakRBWm9lb3VVR2giPiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVuY3kiPg0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPCEtLSBSZWNoYXJnZSBhbW91bnQgLS0+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2VsZWN0IE5ldHdvcms8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtb3VudC1pbnB1dC13cmFwcGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJhbW91bnQtaW5wdXQiIG5hbWU9ImdhdGV3YXkiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3QgT25lPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMDA0IiAgZGF0YS1nYXRld2F5PSJ7JnF1b3Q7aWQmcXVvdDs6NSwmcXVvdDtuYW1lJnF1b3Q7OiZxdW90O0JpdGNvaW4gQlRDJnF1b3Q7LCZxdW90O2N1cnJlbmN5JnF1b3Q7OiZxdW90OyQmcXVvdDssJnF1b3Q7c3ltYm9sJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDttZXRob2RfY29kZSZxdW90OzoxMDA0LCZxdW90O2dhdGV3YXlfYWxpYXMmcXVvdDs6JnF1b3Q7Yml0Y29pbl9idGMmcXVvdDssJnF1b3Q7bWluX2Ftb3VudCZxdW90OzomcXVvdDsxMC4wMDAwMDAwMCZxdW90OywmcXVvdDttYXhfYW1vdW50JnF1b3Q7OiZxdW90OzEwMDAwMDAuMDAwMDAwMDAmcXVvdDssJnF1b3Q7cGVyY2VudF9jaGFyZ2UmcXVvdDs6JnF1b3Q7MC4wMCZxdW90OywmcXVvdDtmaXhlZF9jaGFyZ2UmcXVvdDs6JnF1b3Q7MC4wMDAwMDAwMCZxdW90OywmcXVvdDtyYXRlJnF1b3Q7OiZxdW90OzEuMDAwMDAwMDAmcXVvdDssJnF1b3Q7aW1hZ2UmcXVvdDs6bnVsbCwmcXVvdDtjcmVhdGVkX2F0JnF1b3Q7OiZxdW90OzIwMjQtMDgtMjJUMTg6MzI6NDQuMDAwMDAwWiZxdW90OywmcXVvdDt1cGRhdGVkX2F0JnF1b3Q7OiZxdW90OzIwMjYtMDEtMDdUMTc6MTg6NTUuMDAwMDAwWiZxdW90OywmcXVvdDttZXRob2QmcXVvdDs6eyZxdW90O2lkJnF1b3Q7OjYzLCZxdW90O2Zvcm1faWQmcXVvdDs6NywmcXVvdDtjb2RlJnF1b3Q7OiZxdW90OzEwMDQmcXVvdDssJnF1b3Q7bmFtZSZxdW90OzomcXVvdDtCaXRjb2luIEJUQyZxdW90OywmcXVvdDthbGlhcyZxdW90OzomcXVvdDtiaXRjb2luX2J0YyZxdW90OywmcXVvdDtzdGF0dXMmcXVvdDs6dHJ1ZSwmcXVvdDtzdXBwb3J0ZWRfY3VycmVuY2llcyZxdW90OzpbXSwmcXVvdDtjcnlwdG8mcXVvdDs6MCwmcXVvdDtkZXNjcmlwdGlvbiZxdW90OzomcXVvdDtiYzFxdzg3cWg4N2Y4c2Q4cWdkOWh0bGY5OWFleXV5amx5cWx1dm41ZWMmcXVvdDssJnF1b3Q7Y3JlYXRlZF9hdCZxdW90OzomcXVvdDsyMDI0LTA4LTIyVDE4OjMyOjQ0LjAwMDAwMFomcXVvdDssJnF1b3Q7dXBkYXRlZF9hdCZxdW90OzomcXVvdDsyMDI2LTAxLTA3VDE3OjE2OjEwLjAwMDAwMFomcXVvdDt9fSI+Qml0Y29pbiBCVEM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEwMDciICBkYXRhLWdhdGV3YXk9InsmcXVvdDtpZCZxdW90Ozo4LCZxdW90O25hbWUmcXVvdDs6JnF1b3Q7Qk5CIEJTQyhCRVAyMCkmcXVvdDssJnF1b3Q7Y3VycmVuY3kmcXVvdDs6JnF1b3Q7JCZxdW90OywmcXVvdDtzeW1ib2wmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O21ldGhvZF9jb2RlJnF1b3Q7OjEwMDcsJnF1b3Q7Z2F0ZXdheV9hbGlhcyZxdW90OzomcXVvdDtibmJfYnNjKGJlcDIwKSZxdW90OywmcXVvdDttaW5fYW1vdW50JnF1b3Q7OiZxdW90OzEwMC4wMDAwMDAwMCZxdW90OywmcXVvdDttYXhfYW1vdW50JnF1b3Q7OiZxdW90OzEwMDAwMDAuMDAwMDAwMDAmcXVvdDssJnF1b3Q7cGVyY2VudF9jaGFyZ2UmcXVvdDs6JnF1b3Q7MC4wMCZxdW90OywmcXVvdDtmaXhlZF9jaGFyZ2UmcXVvdDs6JnF1b3Q7MC4wMDAwMDAwMCZxdW90OywmcXVvdDtyYXRlJnF1b3Q7OiZxdW90OzEuMDAwMDAwMDAmcXVvdDssJnF1b3Q7aW1hZ2UmcXVvdDs6bnVsbCwmcXVvdDtjcmVhdGVkX2F0JnF1b3Q7OiZxdW90OzIwMjQtMDgtMjJUMTg6NDY6MTcuMDAwMDAwWiZxdW90OywmcXVvdDt1cGRhdGVkX2F0JnF1b3Q7OiZxdW90OzIwMjYtMDEtMDdUMTc6MTg6MjQuMDAwMDAwWiZxdW90OywmcXVvdDttZXRob2QmcXVvdDs6eyZxdW90O2lkJnF1b3Q7OjY2LCZxdW90O2Zvcm1faWQmcXVvdDs6MTAsJnF1b3Q7Y29kZSZxdW90OzomcXVvdDsxMDA3JnF1b3Q7LCZxdW90O25hbWUmcXVvdDs6JnF1b3Q7Qk5CIEJTQyhCRVAyMCkmcXVvdDssJnF1b3Q7YWxpYXMmcXVvdDs6JnF1b3Q7Ym5iX2JzYyhiZXAyMCkmcXVvdDssJnF1b3Q7c3RhdHVzJnF1b3Q7OnRydWUsJnF1b3Q7c3VwcG9ydGVkX2N1cnJlbmNpZXMmcXVvdDs6W10sJnF1b3Q7Y3J5cHRvJnF1b3Q7OjAsJnF1b3Q7ZGVzY3JpcHRpb24mcXVvdDs6JnF1b3Q7MHhBNDg4Yzk5RjAwM2MyNERGMWZEZDAwQTY1NTUxMzM2YTY5OGU1MDNEJnF1b3Q7LCZxdW90O2NyZWF0ZWRfYXQmcXVvdDs6JnF1b3Q7MjAyNC0wOC0yMlQxODo0NjoxNy4wMDAwMDBaJnF1b3Q7LCZxdW90O3VwZGF0ZWRfYXQmcXVvdDs6JnF1b3Q7MjAyNi0wMS0wN1QxNzoxODoyNC4wMDAwMDBaJnF1b3Q7fX0iPkJOQiBCU0MoQkVQMjApPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMDA2IiAgZGF0YS1nYXRld2F5PSJ7JnF1b3Q7aWQmcXVvdDs6NywmcXVvdDtuYW1lJnF1b3Q7OiZxdW90O0V0aGVyZXVtIEVSQzIwJnF1b3Q7LCZxdW90O2N1cnJlbmN5JnF1b3Q7OiZxdW90OyQmcXVvdDssJnF1b3Q7c3ltYm9sJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDttZXRob2RfY29kZSZxdW90OzoxMDA2LCZxdW90O2dhdGV3YXlfYWxpYXMmcXVvdDs6JnF1b3Q7ZXRoZXJldW1fZXJjMjAmcXVvdDssJnF1b3Q7bWluX2Ftb3VudCZxdW90OzomcXVvdDsxMC4wMDAwMDAwMCZxdW90OywmcXVvdDttYXhfYW1vdW50JnF1b3Q7OiZxdW90OzEwMDAwMDAuMDAwMDAwMDAmcXVvdDssJnF1b3Q7cGVyY2VudF9jaGFyZ2UmcXVvdDs6JnF1b3Q7MC4wMCZxdW90OywmcXVvdDtmaXhlZF9jaGFyZ2UmcXVvdDs6JnF1b3Q7MC4wMDAwMDAwMCZxdW90OywmcXVvdDtyYXRlJnF1b3Q7OiZxdW90OzEuMDAwMDAwMDAmcXVvdDssJnF1b3Q7aW1hZ2UmcXVvdDs6bnVsbCwmcXVvdDtjcmVhdGVkX2F0JnF1b3Q7OiZxdW90OzIwMjQtMDgtMjJUMTg6NDA6MjMuMDAwMDAwWiZxdW90OywmcXVvdDt1cGRhdGVkX2F0JnF1b3Q7OiZxdW90OzIwMjYtMDEtMDdUMTc6MTk6MTcuMDAwMDAwWiZxdW90OywmcXVvdDttZXRob2QmcXVvdDs6eyZxdW90O2lkJnF1b3Q7OjY1LCZxdW90O2Zvcm1faWQmcXVvdDs6OSwmcXVvdDtjb2RlJnF1b3Q7OiZxdW90OzEwMDYmcXVvdDssJnF1b3Q7bmFtZSZxdW90OzomcXVvdDtFdGhlcmV1bSBFUkMyMCZxdW90OywmcXVvdDthbGlhcyZxdW90OzomcXVvdDtldGhlcmV1bV9lcmMyMCZxdW90OywmcXVvdDtzdGF0dXMmcXVvdDs6dHJ1ZSwmcXVvdDtzdXBwb3J0ZWRfY3VycmVuY2llcyZxdW90OzpbXSwmcXVvdDtjcnlwdG8mcXVvdDs6MCwmcXVvdDtkZXNjcmlwdGlvbiZxdW90OzomcXVvdDsweEE0ODhjOTlGMDAzYzI0REYxZkRkMDBBNjU1NTEzMzZhNjk4ZTUwM0QmcXVvdDssJnF1b3Q7Y3JlYXRlZF9hdCZxdW90OzomcXVvdDsyMDI0LTA4LTIyVDE4OjQwOjIzLjAwMDAwMFomcXVvdDssJnF1b3Q7dXBkYXRlZF9hdCZxdW90OzomcXVvdDsyMDI2LTAxLTA3VDE3OjE1OjQ0LjAwMDAwMFomcXVvdDt9fSI+RXRoZXJldW0gRVJDMjA8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEwMTAiICBkYXRhLWdhdGV3YXk9InsmcXVvdDtpZCZxdW90OzoxMSwmcXVvdDtuYW1lJnF1b3Q7OiZxdW90O1NvbGFuYSBTT0wmcXVvdDssJnF1b3Q7Y3VycmVuY3kmcXVvdDs6JnF1b3Q7JCZxdW90OywmcXVvdDtzeW1ib2wmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O21ldGhvZF9jb2RlJnF1b3Q7OjEwMTAsJnF1b3Q7Z2F0ZXdheV9hbGlhcyZxdW90OzomcXVvdDtzb2xhbmFfc29sJnF1b3Q7LCZxdW90O21pbl9hbW91bnQmcXVvdDs6JnF1b3Q7MTAuMDAwMDAwMDAmcXVvdDssJnF1b3Q7bWF4X2Ftb3VudCZxdW90OzomcXVvdDsxMDAwMDAwLjAwMDAwMDAwJnF1b3Q7LCZxdW90O3BlcmNlbnRfY2hhcmdlJnF1b3Q7OiZxdW90OzAuMDAmcXVvdDssJnF1b3Q7Zml4ZWRfY2hhcmdlJnF1b3Q7OiZxdW90OzAuMDAwMDAwMDAmcXVvdDssJnF1b3Q7cmF0ZSZxdW90OzomcXVvdDsxLjAwMDAwMDAwJnF1b3Q7LCZxdW90O2ltYWdlJnF1b3Q7Om51bGwsJnF1b3Q7Y3JlYXRlZF9hdCZxdW90OzomcXVvdDsyMDI2LTAxLTA3VDE3OjI4OjE4LjAwMDAwMFomcXVvdDssJnF1b3Q7dXBkYXRlZF9hdCZxdW90OzomcXVvdDsyMDI2LTAxLTA3VDE3OjM2OjI2LjAwMDAwMFomcXVvdDssJnF1b3Q7bWV0aG9kJnF1b3Q7OnsmcXVvdDtpZCZxdW90Ozo2OSwmcXVvdDtmb3JtX2lkJnF1b3Q7OjE2LCZxdW90O2NvZGUmcXVvdDs6JnF1b3Q7MTAxMCZxdW90OywmcXVvdDtuYW1lJnF1b3Q7OiZxdW90O1NvbGFuYSBTT0wmcXVvdDssJnF1b3Q7YWxpYXMmcXVvdDs6JnF1b3Q7c29sYW5hX3NvbCZxdW90OywmcXVvdDtzdGF0dXMmcXVvdDs6dHJ1ZSwmcXVvdDtzdXBwb3J0ZWRfY3VycmVuY2llcyZxdW90OzpbXSwmcXVvdDtjcnlwdG8mcXVvdDs6MCwmcXVvdDtkZXNjcmlwdGlvbiZxdW90OzomcXVvdDtCQkYxaGc5dlNTa1Z1Um1Tam1WVHJzYUtEcDFQN2ZrWFVmUGl1VmF5a0ZCMiZxdW90OywmcXVvdDtjcmVhdGVkX2F0JnF1b3Q7OiZxdW90OzIwMjYtMDEtMDdUMTc6Mjg6MTguMDAwMDAwWiZxdW90OywmcXVvdDt1cGRhdGVkX2F0JnF1b3Q7OiZxdW90OzIwMjYtMDEtMDdUMTc6MzY6MjYuMDAwMDAwWiZxdW90O319Ij5Tb2xhbmEgU09MPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwhLS0gUmVjaGFyZ2UgYW1vdW50IC0tPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkRlcG9zaXQgQW1vdW50PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbW91bnQtaW5wdXQtd3JhcHBlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9ImFtb3VudC1pbnB1dCIgbmFtZT0iYW1vdW50IiB2YWx1ZT0iIiByZXF1aXJlZCBwbGFjZWhvbGRlcj0iUGxlYXNlIGVudGVyIGRlcG9zaXQgYW1vdW50Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBFUkMyMCB3YXJuaW5nIG1lc3NhZ2UgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtaW4tYW1vdW50Ij5NaW5pbXVtIGRlcG9zaXQgPHNwYW4+PHNwYW4gY2xhc3M9Im1pbiBmdy1ib2xkIj4wPC9zcGFuPiBVU0RUIC0gPHNwYW4gY2xhc3M9Im1heCBmdy1ib2xkIj4wPC9zcGFuPiBVU0RUPC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwhLS0gSW1wb3J0YW50IHJlbWluZGVycyAtPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydC1ib3giPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQtdGl0bGUiPkltcG9ydGFudCBOb3RpY2U6PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImFsZXJ0LWxpc3QiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QbGVhc2UgbWFrZSBzdXJlIHlvdXIgd2FsbGV0IHN1cHBvcnRzIHRoZSBzZWxlY3RlZCBuZXR3b3JrPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RE8gTk9UIGRlcG9zaXQgbm9uLWFzc2V0cyB0byBhbnkgY3J5cHRvIGFkZHJlc3NlczwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRlcG9zaXQgY3JlZGl0aW5nIHRpbWUgZGVwZW5kcyBvbiBibG9ja2NoYWluIG5ldHdvcmsgY29uZmlybWF0aW9uIHNwZWVkPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXQtMyBwcmV2aWV3LWRldGFpbHMgZC1ub25lIiA+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBkYXRhLXYtMWZhODY1OTc9IiIgZGF0YS12LWNmYzlhN2ZjPSIiIGNsYXNzPSJhbGVydC1saXN0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtdi0xZmE4NjU5Nz0iIiBkYXRhLXYtY2ZjOWE3ZmM9IiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGRhdGEtdi0xZmE4NjU5Nz0iIiBkYXRhLXYtY2ZjOWE3ZmM9IiIgY2xhc3M9Im4iPkxpbWl0PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGRhdGEtdi0xZmE4NjU5Nz0iIiBkYXRhLXYtY2ZjOWE3ZmM9IiIgY2xhc3M9InMiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJtaW4gZnctYm9sZCI+MDwvc3Bhbj4gVVNEVCAtIDxzcGFuIGNsYXNzPSJtYXggZnctYm9sZCI+MDwvc3Bhbj4gVVNEVDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12LTFmYTg2NTk3PSIiIGRhdGEtdi1jZmM5YTdmYz0iIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZGF0YS12LTFmYTg2NTk3PSIiIGRhdGEtdi1jZmM5YTdmYz0iIiBjbGFzcz0ibiI+Q2hhcmdlPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGRhdGEtdi0xZmE4NjU5Nz0iIiBkYXRhLXYtY2ZjOWE3ZmM9IiIgY2xhc3M9InMiPiA8c3Bhbj48c3BhbiBjbGFzcz0iY2hhcmdlIGZ3LWJvbGQiPjA8L3NwYW4+IFVTRFQ8L3NwYW4+IDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZGF0YS12LTFmYTg2NTk3PSIiIGRhdGEtdi1jZmM5YTdmYz0iIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZGF0YS12LTFmYTg2NTk3PSIiIGRhdGEtdi1jZmM5YTdmYz0iIiBjbGFzcz0ibiI+UGF5YWJsZTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBkYXRhLXYtMWZhODY1OTc9IiIgZGF0YS12LWNmYzlhN2ZjPSIiIGNsYXNzPSJzIj4gPHNwYW4+PHNwYW4gY2xhc3M9InBheWFibGUgZnctYm9sZCI+IDA8L3NwYW4+IFVTRFQ8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkYXRhLXYtMWZhODY1OTc9IiIgZGF0YS12LWNmYzlhN2ZjPSIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBkYXRhLXYtMWZhODY1OTc9IiIgZGF0YS12LWNmYzlhN2ZjPSIiIGNsYXNzPSJuIj5JbjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBkYXRhLXYtMWZhODY1OTc9IiIgZGF0YS12LWNmYzlhN2ZjPSIiIGNsYXNzPSJzIj4gPHNwYW4gY2xhc3M9ImZpbmFsX2FtbyBmdy1ib2xkIj4wPC9zcGFuPiA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICAgPGxpIGRhdGEtdi0xZmE4NjU5Nz0iIiBkYXRhLXYtY2ZjOWE3ZmM9IiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGRhdGEtdi0xZmE4NjU5Nz0iIiBkYXRhLXYtY2ZjOWE3ZmM9IiIgY2xhc3M9Im4iPkBsYTxzcGFuIGNsYXNzPSJmaW5hbF9hbW8gZnctYm9sZCI+MDwvc3Bhbj5uZygnQ29udmVyc2lvbiB3aXRoJyk8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZGF0YS12LTFmYTg2NTk3PSIiIGRhdGEtdi1jZmM5YTdmYz0iIiBjbGFzcz0icyI+IDxzcGFuIGNsYXNzPSJtZXRob2RfY3VycmVuY3kiPjwvc3Bhbj4gYW5kIGZpbmFsIHZhbHVlIHdpbGwgU2hvdyBvbiBuZXh0IHN0ZXA8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiANCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8IS0tIE9yZGVyIHN1bW1hcnkgLS0+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9yZGVyLXN1bW1hcnkgcHJldmlldy1kZXRhaWxzIGQtbm9uZSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5LXRpdGxlIj5PcmRlciBTdW1tYXJ5PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5LXJvdyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VtbWFyeS1sYWJlbCI+TGltaXQ8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5LXZhbHVlIG5ldHdvcmstdHlwZS1kaXNwbGF5Ij48c3Bhbj48c3BhbiBjbGFzcz0ibWluIGZ3LWJvbGQiPjA8L3NwYW4+IFVTRFQgLSA8c3BhbiBjbGFzcz0ibWF4IGZ3LWJvbGQiPjA8L3NwYW4+IFVTRFQ8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1bW1hcnktcm93IiBpZD0iY29pbi10eXBlLXJvdyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1bW1hcnktbGFiZWwiPkNoYXJnZTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1bW1hcnktdmFsdWUgY29pbi10eXBlLWRpc3BsYXkiPjxzcGFuPjxzcGFuIGNsYXNzPSJjaGFyZ2UgZnctYm9sZCI+MDwvc3Bhbj4gVVNEVDwvc3Bhbj4gPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1bW1hcnktcm93Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5LWxhYmVsIj5QYXlhYmxlPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VtbWFyeS12YWx1ZSBhbW91bnQtZGlzcGxheSI+PHNwYW4+PHNwYW4gY2xhc3M9InBheWFibGUgZnctYm9sZCI+IDA8L3NwYW4+IFVTRFQ8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1bW1hcnktcm93Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5LWxhYmVsIj5OZXR3b3JrIEZlZTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1bW1hcnktdmFsdWUiPkNvbGxlY3RlZCBieSBibG9ja2NoYWluIG5ldHdvcms8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZXJjMjAtZmVlLXJvdyIgY2xhc3M9InN1bW1hcnktcm93IiBzdHlsZT0iZGlzcGxheTpub25lOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VtbWFyeS1sYWJlbCI+SW48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdW1tYXJ5LXZhbHVlIj48c3BhbiBjbGFzcz0iZmluYWxfYW1vIGZ3LWJvbGQiPjA8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICA8IS0tIENvbmZpcm0gcmVjaGFyZ2UgYnV0dG9uIC0tPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0bi1wcmltYXJ5Ij5Db25maXJtIERlcG9zaXQ8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICANCiAgIA0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAgICAgLyogQmFzZSBzdHlsZXMgKi8NCiAgICAgICAgIA0KICAgICAgICAvKiBJbnB1dCBmaXhlcyAqLw0KICAgICAgICBpbnB1dCwgYnV0dG9uLCB0ZXh0YXJlYSwgc2VsZWN0IHsNCiAgICAgICAgICAgIGZvbnQ6IGluaGVyaXQ7DQogICAgICAgICAgICBjb2xvcjogaW5oZXJpdDsNCiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgICAgICAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTsNCiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwOw0KICAgICAgICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGlucHV0OmZvY3VzLCBidXR0b246Zm9jdXMsIHRleHRhcmVhOmZvY3VzLCBzZWxlY3Q6Zm9jdXMgew0KICAgICAgICAgICAgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLyogTnVtYmVyIGlucHV0IGFycm93IGZpeCAqLw0KICAgICAgICBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sIA0KICAgICAgICBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24geyANCiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgICAgICAgICAgIG1hcmdpbjogMDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT1udW1iZXJdIHsNCiAgICAgICAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvKiBNYWluIGNvbnRhaW5lciAqLw0KICAgICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4Ow0KICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87DQogICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7DQogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLyogQ2FyZCBzdHlsZXMgKi8NCiAgICAgICAgLmNhcmQgew0KICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsNCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7DQogICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogNDgwcHg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvKiBUb3AgbmF2aWdhdGlvbiAqLw0KICAgICAgICAuY2FyZC1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4Ow0KICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7DQogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5iYWNrLWJ0biB7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgICAgICAgd2lkdGg6IDM2cHg7DQogICAgICAgICAgICBoZWlnaHQ6IDM2cHg7DQogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgICAgICBjb2xvcjogIzMzMzsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7DQogICAgICAgICAgICBib3JkZXI6IG5vbmU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5wYWdlLXRpdGxlIHsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDsNCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICAgICAgICBmbGV4OiAxOw0KICAgICAgICAgICAgbWFyZ2luOiAwIDM2cHg7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5yZWNvcmQtYnRuIHsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICB3aWR0aDogMzZweDsNCiAgICAgICAgICAgIGhlaWdodDogMzZweDsNCiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgIGNvbG9yOiAjMzMzOw0KICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTsNCiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLyogU3RlcCBpbmRpY2F0b3IgKi8NCiAgICAgICAgLnN0ZXBzIHsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweCA0MHB4Ow0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAuc3RlcCB7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5zdGVwLW51bWJlciB7DQogICAgICAgICAgICB3aWR0aDogMzBweDsNCiAgICAgICAgICAgIGhlaWdodDogMzBweDsNCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5zdGVwLmFjdGl2ZSAuc3RlcC1udW1iZXIgew0KICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y2YTUwMDsNCiAgICAgICAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZjZhNTAwOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAuc3RlcC1sYWJlbCB7DQogICAgICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgICAgICBjb2xvcjogIzk5OTsNCiAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgd29yZC13cmFwOiBicmVhay13b3JkOyAvKiDoh6rliqjmjaLooYzplb/ljZXor40gKi8NCiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyAvKiDlvLrliLbmjaLooYwgKi8NCiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiDlkK/nlKjmjaLooYzooYzkuLogKi8NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLnN0ZXAuYWN0aXZlIC5zdGVwLWxhYmVsIHsNCiAgICAgICAgICAgIGNvbG9yOiAjZjZhNTAwOw0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLnN0ZXBzOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogJyc7DQogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgICAgICB0b3A6IDM1cHg7DQogICAgICAgICAgICBsZWZ0OiA3MHB4Ow0KICAgICAgICAgICAgcmlnaHQ6IDcwcHg7DQogICAgICAgICAgICBoZWlnaHQ6IDFweDsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlMGUwZTA7DQogICAgICAgICAgICB6LWluZGV4OiAwOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvKiBDYXJkIGNvbnRlbnQgKi8NCiAgICAgICAgLmNhcmQtYm9keSB7DQogICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHggMjBweDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLnNlY3Rpb24gew0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgew0KICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4Ow0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgICAgICAgIGNvbG9yOiAjMzMzOw0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLyogTmV0d29yayBzZWxlY3Rpb24gKi8NCiAgICAgICAgLm5ldHdvcmstb3B0aW9ucyB7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgZ2FwOiAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4Ow0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAubmV0d29yay1vcHRpb24gew0KICAgICAgICAgICAgZmxleDogMTsNCiAgICAgICAgICAgIGhlaWdodDogNTBweDsNCiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNmU4ZWE7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAubmV0d29yay1vcHRpb24uYWN0aXZlIHsNCiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2Y2YTUwMDsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ2LCAxNjUsIDAsIDAuMDUpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAubmV0d29yay1vcHRpb24taWNvbiB7DQogICAgICAgICAgICB3aWR0aDogMjBweDsNCiAgICAgICAgICAgIGhlaWdodDogMjBweDsNCiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm5ldHdvcmstb3B0aW9uLXRleHQgew0KICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLyogQW1vdW50IGlucHV0ICovDQogICAgICAgIC5hbW91bnQtaW5wdXQtd3JhcHBlciB7DQogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5hbW91bnQtaW5wdXQgew0KICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICBoZWlnaHQ6IDUwcHg7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlOGVhOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4Ow0KICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y3ZjhmYTsNCiAgICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAuYW1vdW50LWlucHV0OmZvY3VzIHsNCiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2Y2YTUwMDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1pbi1hbW91bnQgew0KICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICAgICAgY29sb3I6ICM5OTk7DQogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4Ow0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvKiBBbGVydCBib3ggKi8NCiAgICAgICAgLmFsZXJ0LWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOGViOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgICAgICAgICAgcGFkZGluZzogMTVweDsNCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7DQogICAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmNmE1MDA7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5hbGVydC10aXRsZSB7DQogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOw0KICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4Ow0KICAgICAgICAgICAgY29sb3I6ICMzMzM7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5hbGVydC1saXN0IHsNCiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsNCiAgICAgICAgICAgIG1hcmdpbjogMDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLmFsZXJ0LWxpc3QgbGkgew0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4Ow0KICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4Ow0KICAgICAgICAgICAgY29sb3I6ICM2NjY7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5hbGVydC1saXN0IGxpOmxhc3QtY2hpbGQgew0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLyogT3JkZXIgc3VtbWFyeSAqLw0KICAgICAgICAub3JkZXItc3VtbWFyeSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5Ow0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgICAgICAgICAgcGFkZGluZzogMTVweDsNCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5zdW1tYXJ5LXRpdGxlIHsNCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7DQogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KICAgICAgICAgICAgY29sb3I6ICMzMzM7DQogICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4Ow0KICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5zdW1tYXJ5LXJvdyB7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4Ow0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAuc3VtbWFyeS1sYWJlbCB7DQogICAgICAgICAgICBjb2xvcjogIzY2NjsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLnN1bW1hcnktdmFsdWUgew0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGNvbG9yOiAjMzMzOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvKiDmm7/mjaIgKi8NCiAgICAgLyogICAuYnRuLXByaW1hcnkgew0KICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICBoZWlnaHQ6IDUwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjZhNTAwOw0KICAgICAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5idG4tcHJpbWFyeTphY3RpdmUgew0KICAgICAgICAgICAgYmFja2dyb3VuZDogI2UwOTYwMDsNCiAgICAgICAgfSovDQogICAgICAgIC5idG4tcHJpbWFyeSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgaGVpZ2h0OiA1MHB4Ow0KICAgIGJhY2tncm91bmQ6ICNmNmE1MDA7DQogICAgY29sb3I6IHdoaXRlOw0KICAgIGJvcmRlci1yYWRpdXM6IDhweDsNCiAgICBmb250LXNpemU6IDE2cHg7DQogICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2U7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KfQ0KDQouYnRuLXByaW1hcnk6aG92ZXIgew0KICAgIGJhY2tncm91bmQ6ICNmOGI3MDA7DQp9DQoNCi5idG4tcHJpbWFyeTphY3RpdmUgew0KICAgIGJhY2tncm91bmQ6ICNlMDk2MDA7DQogICAgY29sb3I6IHdoaXRlOw0KfQ0KDQouYnRuLXByaW1hcnk6Zm9jdXMgew0KICAgIG91dGxpbmU6IG5vbmU7DQogICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICBiYWNrZ3JvdW5kOiAjZjZhNTAwOw0KICAgIGNvbG9yOiB3aGl0ZTsNCn0NCg0KLmJ0bi1wcmltYXJ5OmRpc2FibGVkIHsNCiAgICBiYWNrZ3JvdW5kOiAjZTBlMGUwOw0KICAgIGNvbG9yOiAjOTk5Ow0KICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7DQp9DQogICAgICAgIC8qIFdhcm5pbmcgbWVzc2FnZSAqLw0KICAgICAgICAud2FybmluZy1tZXNzYWdlIHsNCiAgICAgICAgICAgIGNvbG9yOiAjZmY0ZDRmOw0KICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4Ow0KICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4Ow0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgNzcsIDc5LCAwLjEpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZmY0ZDRmOw0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLyogaU9TIGlucHV0IGZpeGVzICovDQogICAgICAgIGlucHV0W3R5cGU9InBhc3N3b3JkIl0sIA0KICAgICAgICBpbnB1dFt0eXBlPSJudW1iZXIiXSB7DQogICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7DQogICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgLyog5pu05Y+v6Z2g55qE5qih5oCB5qGG5qC35byPICovDQovKiDmnIDnroDljZXlj6/pnaDnmoTmqKHmgIHmoYblrp7njrAgKi8NCi5tb2RhbC1vdmVybGF5IHsNCiAgICBwb3NpdGlvbjogZml4ZWQ7DQogICAgdG9wOiAwOw0KICAgIGxlZnQ6IDA7DQogICAgcmlnaHQ6IDA7DQogICAgYm90dG9tOiAwOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsNCiAgICB6LWluZGV4OiA5OTk5Ow0KICAgIGRpc3BsYXk6IG5vbmU7DQogICAgb3ZlcmZsb3c6IGF1dG87DQogICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOw0KfQ0KDQoubW9kYWwtY29udGFpbmVyIHsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgd2lkdGg6IDkwJTsNCiAgICBtYXgtd2lkdGg6IDM2MHB4Ow0KICAgIG1hcmdpbjogNjBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7DQogICAgYm9yZGVyLXJhZGl1czogMTBweDsNCiAgICBib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuMik7DQogICAgb3ZlcmZsb3c6IGhpZGRlbjsNCn0NCiAgICAgICAgLm1vZGFsLWhlYWRlciB7DQogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgICAgICBwYWRkaW5nOiAyMHB4Ow0KICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7DQogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICAgIH0NCg0KICAgICAgICAubW9kYWwtdGl0bGUgew0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4Ow0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgICAgICAgIGNvbG9yOiAjMzMzOw0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWNsb3NlIHsNCiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgIHRvcDogNTAlOw0KICAgICAgICAgICAgbGVmdDogMjBweDsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7DQogICAgICAgICAgICBib3JkZXI6IG5vbmU7DQogICAgICAgICAgICBmb250LXNpemU6IDI0cHg7DQogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgICAgICBjb2xvcjogIzk5OTsNCiAgICAgICAgICAgIHBhZGRpbmc6IDA7DQogICAgICAgICAgICBsaW5lLWhlaWdodDogMTsNCiAgICAgICAgfQ0KDQogICAgICAgIC5tb2RhbC1ib2R5IHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7DQogICAgICAgIH0NCg0KICAgICAgICAubW9kYWwtaW5wdXQgew0KICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDEwcHg7DQogICAgICAgICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsNCiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogICAgICAgIH0NCg0KICAgICAgICAubW9kYWwtZm9vdGVyIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweCAyMHB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLXN1Ym1pdCB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZBNTAwOw0KICAgICAgICAgICAgY29sb3I6IHdoaXRlOw0KICAgICAgICAgICAgYm9yZGVyOiBub25lOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgIH0NCg0KICAgICAgICAubW9kYWwtaW5wdXQuZXJyb3Igew0KICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmY0ZDRmOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAvKiBMb2FkaW5nIGFuaW1hdGlvbiAqLw0KICAgICAgICAubG9hZGluZy1vdmVybGF5IHsNCiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICAgICAgICAgIHRvcDogMDsNCiAgICAgICAgICAgIGxlZnQ6IDA7DQogICAgICAgICAgICByaWdodDogMDsNCiAgICAgICAgICAgIGJvdHRvbTogMDsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTsNCiAgICAgICAgICAgIHotaW5kZXg6IDk5OTU7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOw0KICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAubG9hZGluZy1vdmVybGF5LnZpc2libGUgew0KICAgICAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAubG9hZGluZy1zcGlubmVyIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43NSk7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4Ow0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIHdpZHRoOiAxMjBweDsNCiAgICAgICAgICAgIGhlaWdodDogMTIwcHg7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5zcGlubmVyIHsNCiAgICAgICAgICAgIHdpZHRoOiA0OHB4Ow0KICAgICAgICAgICAgaGVpZ2h0OiA0OHB4Ow0KICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7DQogICAgICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAubG9hZGluZy10ZXh0IHsNCiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsNCiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7DQogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7DQogICAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLyogTWVkaWEgcXVlcmllcyAqLw0KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHsNCiAgICAgICAgICAgIC5jb250YWluZXIgew0KICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7DQogICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuY2FyZCB7DQogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOw0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7DQogICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTsNCiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDAlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuc3RlcHMgew0KICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMzBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLnN0ZXBzOjpiZWZvcmUgew0KICAgICAgICAgICAgICAgIGxlZnQ6IDU1cHg7DQogICAgICAgICAgICAgICAgcmlnaHQ6IDU1cHg7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7DQogICAgICAgICAgICAuY2FyZCB7DQogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA1MjBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7DQogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7DQogICAgICAgICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiA0MHB4IDE1cHg7DQogICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuY2FyZCB7DQogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIHdpZHRoOiA4MDBweDsNCiAgICAgICAgICAgICAgICBtYXJnaW46IDQwcHggYXV0bzsNCiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4Ow0KICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLmNhcmQtaGVhZGVyIHsNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC5wYWdlLXRpdGxlIHsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIwcHg7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC5zdGVwcyB7DQogICAgICAgICAgICAgICAgcGFkZGluZzogMzBweCA4MHB4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuc3RlcHM6OmJlZm9yZSB7DQogICAgICAgICAgICAgICAgbGVmdDogMTAwcHg7DQogICAgICAgICAgICAgICAgcmlnaHQ6IDEwMHB4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuc3RlcC1udW1iZXIgew0KICAgICAgICAgICAgICAgIHdpZHRoOiAzNnB4Ow0KICAgICAgICAgICAgICAgIGhlaWdodDogMzZweDsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC5zdGVwLWxhYmVsIHsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuY2FyZC1ib2R5IHsNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDQwcHggNDBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLnNlY3Rpb24gew0KICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC5zZWN0aW9uLXRpdGxlIHsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7DQogICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLm5ldHdvcmstb3B0aW9ucyB7DQogICAgICAgICAgICAgICAgZ2FwOiAyMHB4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAubmV0d29yay1vcHRpb24gew0KICAgICAgICAgICAgICAgIGhlaWdodDogNjBweDsNCiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAubmV0d29yay1vcHRpb24taWNvbiB7DQogICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4Ow0KICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLm5ldHdvcmstb3B0aW9uLXRleHQgew0KICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLmFtb3VudC1pbnB1dCB7DQogICAgICAgICAgICAgICAgaGVpZ2h0OiA2MHB4Ow0KICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7DQogICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLm1pbi1hbW91bnQgew0KICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuYWxlcnQtYm94IHsNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4Ow0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLmFsZXJ0LXRpdGxlIHsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLmFsZXJ0LWxpc3QgbGkgew0KICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC5vcmRlci1zdW1tYXJ5IHsNCiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4Ow0KICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLnN1bW1hcnktdGl0bGUgew0KICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4Ow0KICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuc3VtbWFyeS1yb3cgew0KICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIC5zdW1tYXJ5LWxhYmVsLCAuc3VtbWFyeS12YWx1ZSB7DQogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgDQogICAgICAgICAgICAuYnRuLXByaW1hcnkgew0KICAgICAgICAgICAgICAgIGhlaWdodDogNjBweDsNCiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7DQogICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLm1vZGFsLWNvbnRhaW5lciB7DQogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgQHN1cHBvcnRzIChwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKSB7DQogICAgICAgICAgICAuY2FyZCB7DQogICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgIC8qIOemgeeUqOenu+WKqOiuvuWkh+eahOm7mOiupOinpuaRuOmrmOS6ruaViOaenCAqLw0KKiB7DQogICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApICFpbXBvcnRhbnQ7DQp9DQoNCi8qIOehruS/neaMiemSruWcqOaJgOacieeKtuaAgeS4i+minOiJsuS4gOiHtCAqLw0KLmJ0bi1wcmltYXJ5LCANCi5idG4tcHJpbWFyeTpob3ZlciwgDQouYnRuLXByaW1hcnk6YWN0aXZlLCANCi5idG4tcHJpbWFyeTpmb2N1cywgDQoubW9kYWwtc3VibWl0LA0KLm1vZGFsLXN1Ym1pdDpob3ZlciwNCi5tb2RhbC1zdWJtaXQ6YWN0aXZlLA0KLm1vZGFsLXN1Ym1pdDpmb2N1cyB7DQogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKSAhaW1wb3J0YW50Ow0KICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsNCiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7DQp9DQoNCi8qIOehruS/neaMiemSrua/gOa0u+eKtuaAgeminOiJsuespuWQiOmihOacnyAqLw0KLmJ0bi1wcmltYXJ5OmFjdGl2ZSB7DQogICAgYmFja2dyb3VuZDogI2UwOTYwMCAhaW1wb3J0YW50Ow0KICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Ow0KfQ0KDQovKiDnoa7kv53mj5DkuqTmjInpkq7mv4DmtLvnirbmgIHpopzoibLnrKblkIjpooTmnJ8gKi8NCi5tb2RhbC1zdWJtaXQ6YWN0aXZlIHsNCiAgICBiYWNrZ3JvdW5kOiAjZTA5NjAwICFpbXBvcnRhbnQ7DQogICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7DQp9DQoNCi8qIEVUSOmSseWMheaPkOekuumTvuaOpeagt+W8jyAqLw0KLndhbGxldC1saW5rIHsNCiAgICBjb2xvcjogI2Y2YTUwMDsNCiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCiAgICBmb250LXdlaWdodDogNTAwOw0KfQ0KICAgIDwvc3R5bGU+DQoNCg0KICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgDQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIA0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCg0KDQo8IS0tIOKchSBNb2RhbCBTY3JpcHQgLS0+DQo8c2NyaXB0Pg0KICAgIGNvbnN0IG9wZW5CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3Blbk1vZGFsJyk7DQogICAgY29uc3QgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdE1vZGFsJyk7DQogICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xvc2VNb2RhbCcpOw0KICAgIGNvbnN0IGNhbmNlbEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYW5jZWxNb2RhbCcpOw0KDQogICAgb3BlbkJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgbW9kYWwuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7DQogICAgfSk7DQoNCiAgICBjbG9zZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgbW9kYWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCiAgICB9KTsNCg0KICAgIGNhbmNlbEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgbW9kYWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCiAgICB9KTsNCg0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7DQogICAgICAgIGlmIChlLnRhcmdldCA9PT0gbW9kYWwpIHsNCiAgICAgICAgICAgIG1vZGFsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAgICAgIH0NCiAgICB9KTsNCjwvc2NyaXB0PgkJIA0KPHNjcmlwdD4NCiAgICANCg0KICAgIC8vIEJhY2sgYnV0dG9uDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhY2tCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IGhpc3RvcnkuYmFjaygpKTsNCiAgPC9zY3JpcHQ+DQoNCiANCiAgICANCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vb25jaGFpbm9wdC5jb20vYXNzZXRzL2dsb2JhbC9jc3MvaXppVG9hc3QubWluLmNzcyI+CjxzY3JpcHQgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2Fzc2V0cy9nbG9iYWwvanMvaXppVG9hc3QubWluLmpzIj48L3NjcmlwdD4KCgo8c2NyaXB0PgogICAgInVzZSBzdHJpY3QiOwogICAgZnVuY3Rpb24gbm90aWZ5KHN0YXR1cywgbWVzc2FnZSkgewogICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PSAnc3RyaW5nJykgewogICAgICAgICAgICBpemlUb2FzdFtzdGF0dXNdKHsKICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsCiAgICAgICAgICAgICAgICBwb3NpdGlvbjogInRvcFJpZ2h0IgogICAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkLmVhY2gobWVzc2FnZSwgZnVuY3Rpb24oaSwgdmFsKSB7CiAgICAgICAgICAgICAgICBpemlUb2FzdFtzdGF0dXNdKHsKICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB2YWwsCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICJ0b3BSaWdodCIKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9Cjwvc2NyaXB0PgoNCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvZ2xvYmFsL2pzL2ZpcmViYXNlL2ZpcmViYXNlLTguMy4yLmpzIj48L3NjcmlwdD4NCg0KPHNjcmlwdD4NCiAgICAidXNlIHN0cmljdCI7ICAgDQogICAgDQogICAgdmFyIHBlcm1pc3Npb24gPSBudWxsOw0KICAgIHZhciBhdXRoZW50aWNhdGVkID0gJyc7DQogICAgdmFyIHB1c2hOb3RpZnkgPSAxOw0KICAgIHZhciBmaXJlYmFzZUNvbmZpZyA9IG51bGw7DQoNCiAgICBmdW5jdGlvbiBwdXNoTm90aWZ5QWN0aW9uKCl7IA0KICAgICAgICBwZXJtaXNzaW9uID0gTm90aWZpY2F0aW9uLnBlcm1pc3Npb247DQoNCiAgICAgICAgaWYoISgnTm90aWZpY2F0aW9uJyBpbiB3aW5kb3cpKXsNCiAgICAgICAgICAgIG5vdGlmeSgnaW5mbycsICdQdXNoIG5vdGlmaWNhdGlvbnMgbm90IGF2YWlsYWJsZSBpbiB5b3VyIGJyb3dzZXIuIFRyeSBDaHJvbWl1bS4nKQ0KICAgICAgICB9DQogICAgICAgIGVsc2UgaWYocGVybWlzc2lvbiA9PT0gJ2RlbmllZCcgfHwgcGVybWlzc2lvbiA9PSAnZGVmYXVsdCcpeyAvL05vdGljZSBmb3IgdXNlcnMgZGFzaGJvYXJkDQogICAgICAgICAgICAkKCcubm90aWNlJykuYXBwZW5kKGANCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjdXN0b20tLWNhcmQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJkLWhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBkLWZsZXggZmxleC13cmFwIG5vdGljZV9ub3RpZnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz0iYWxlcnQtaGVhZGluZyI+UGxlYXNlIEFsbG93IC8gUmVzZXQgQnJvd3NlciBOb3RpZmljYXRpb24gPGkgY2xhc3M9J2xhcyBsYS1iZWxsIHRleHQtLWRhbmdlcic+PC9pPjwvaDU+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcmQtYm9keSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTAgc21hbGwiPklmIHlvdSB3YW50IHRvIGdldCBwdXNoIG5vdGlmaWNhdGlvbiB0aGVuIHlvdSBoYXZlIHRvIGFsbG93IG5vdGlmaWNhdGlvbiBmcm9tIHlvdXIgYnJvd3NlcjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gDQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICBgKTsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIC8vSWYgZW5hYmxlIHB1c2ggbm90aWZpY2F0aW9uIGZyb20gYWRtaW4gcGFuZWwNCiAgICBpZihwdXNoTm90aWZ5ID09IDEpew0KICAgICAgICBwdXNoTm90aWZ5QWN0aW9uKCk7DQogICAgfQ0KDQogICAgLy9XaGVuIHVzZXJzIGFsbG93IGJyb3dzZXIgbm90aWZpY2F0aW9uDQogICAgaWYocGVybWlzc2lvbiAhPSAnZGVuaWVkJyAmJiBmaXJlYmFzZUNvbmZpZyl7IA0KICAgDQogICAgICAgIC8vRmlyZWJhc2UgDQogICAgICAgIGZpcmViYXNlLmluaXRpYWxpemVBcHAoZmlyZWJhc2VDb25maWcpOw0KICAgICAgICBjb25zdCBtZXNzYWdpbmcgPSBmaXJlYmFzZS5tZXNzYWdpbmcoKTsNCg0KICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9hc3NldHMvZ2xvYmFsL2pzL2ZpcmViYXNlL2ZpcmViYXNlLW1lc3NhZ2luZy1zdy5qcyIpDQogICAgICAgIA0KICAgICAgICAudGhlbigocmVnaXN0cmF0aW9uKSA9PiB7DQogICAgICAgICAgICBtZXNzYWdpbmcudXNlU2VydmljZVdvcmtlcihyZWdpc3RyYXRpb24pOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBmdW5jdGlvbiBpbml0RmlyZWJhc2VNZXNzYWdpbmdSZWdpc3RyYXRpb24oKSB7DQogICAgICAgICAgICAgICAgbWVzc2FnaW5nDQogICAgICAgICAgICAgICAgLnJlcXVlc3RQZXJtaXNzaW9uKCkNCiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdpbmcuZ2V0VG9rZW4oKQ0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHRva2VuKXsgICANCiAgICAgICAgICAgICAgICAgICAgJC5hamF4KHsgDQogICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL29uY2hhaW5vcHQuY29tL2FkZC9kZXZpY2UvdG9rZW4nLA0KICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ1BPU1QnLA0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuOiB0b2tlbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX3Rva2VuJzogIllpM21FcElkQ0puYWJBSk5ROGxWZkM2ZzdRTGtJakRBWm9lb3VVR2giDQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzcG9uc2Upew0KICAgICAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3Ipew0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBtZXNzYWdpbmcub25NZXNzYWdlKGZ1bmN0aW9uIChwYXlsb2FkKXsgDQogICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPSBwYXlsb2FkLm5vdGlmaWNhdGlvbi50aXRsZTsNCiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gew0KICAgICAgICAgICAgICAgICAgICBib2R5OiBwYXlsb2FkLm5vdGlmaWNhdGlvbi5ib2R5LA0KICAgICAgICAgICAgICAgICAgICBpY29uOiBwYXlsb2FkLm5vdGlmaWNhdGlvbi5pY29uLCANCiAgICAgICAgICAgICAgICAgICAgY2xpY2tfYWN0aW9uOnBheWxvYWQubm90aWZpY2F0aW9uLmNsaWNrX2FjdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgdmlicmF0ZTogWzIwMCwgMTAwLCAyMDBdDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uKHRpdGxlLCBvcHRpb25zKTsNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAvL0ZvciBhdXRoZW50aWNhdGVkIHVzZXJzDQogICAgICAgICAgICBpZihhdXRoZW50aWNhdGVkKXsNCiAgICAgICAgICAgICAgICBpbml0RmlyZWJhc2VNZXNzYWdpbmdSZWdpc3RyYXRpb24oKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICB9KTsNCg0KICAgIH0NCjwvc2NyaXB0Pg0KICAgICAgICA8c2NyaXB0Pg0KICAgICAgICAoZnVuY3Rpb24gKCQpIHsNCiAgICAgICAgICAgICJ1c2Ugc3RyaWN0IjsNCiAgICAgICAgICAgICQoJ3NlbGVjdFtuYW1lPWdhdGV3YXldJykuY2hhbmdlKGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgaWYoISQoJ3NlbGVjdFtuYW1lPWdhdGV3YXldJykudmFsKCkpew0KICAgICAgICAgICAgICAgICAgICAkKCcucHJldmlldy1kZXRhaWxzJykuYWRkQ2xhc3MoJ2Qtbm9uZScpOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9ICQoJ3NlbGVjdFtuYW1lPWdhdGV3YXldIG9wdGlvbjpzZWxlY3RlZCcpLmRhdGEoJ2dhdGV3YXknKTsNCiAgICAgICAgICAgICAgICB2YXIgZml4ZWRfY2hhcmdlID0gcGFyc2VGbG9hdChyZXNvdXJjZS5maXhlZF9jaGFyZ2UpOw0KICAgICAgICAgICAgICAgIHZhciBwZXJjZW50X2NoYXJnZSA9IHBhcnNlRmxvYXQocmVzb3VyY2UucGVyY2VudF9jaGFyZ2UpOw0KICAgICAgICAgICAgICAgIHZhciByYXRlID0gcGFyc2VGbG9hdChyZXNvdXJjZS5yYXRlKQ0KICAgICAgICAgICAgICAgIGlmKHJlc291cmNlLm1ldGhvZC5jcnlwdG8gPT0gMSl7DQogICAgICAgICAgICAgICAgICAgIHZhciB0b0ZpeGVkRGlnaXQgPSA4Ow0KICAgICAgICAgICAgICAgICAgICAkKCcuY3J5cHRvX2N1cnJlbmN5JykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpOw0KICAgICAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgICAgICB2YXIgdG9GaXhlZERpZ2l0ID0gMjsNCiAgICAgICAgICAgICAgICAgICAgJCgnLmNyeXB0b19jdXJyZW5jeScpLmFkZENsYXNzKCdkLW5vbmUnKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJCgnLm1pbicpLnRleHQocGFyc2VGbG9hdChyZXNvdXJjZS5taW5fYW1vdW50KS50b0ZpeGVkKDIpKTsNCiAgICAgICAgICAgICAgICAkKCcubWF4JykudGV4dChwYXJzZUZsb2F0KHJlc291cmNlLm1heF9hbW91bnQpLnRvRml4ZWQoMikpOw0KICAgICAgICAgICAgICAgIHZhciBhbW91bnQgPSBwYXJzZUZsb2F0KCQoJ2lucHV0W25hbWU9YW1vdW50XScpLnZhbCgpKTsNCiAgICAgICAgICAgICAgICBpZiAoIWFtb3VudCkgew0KICAgICAgICAgICAgICAgICAgICBhbW91bnQgPSAwOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZihhbW91bnQgPD0gMCl7DQogICAgICAgICAgICAgICAgICAgICQoJy5wcmV2aWV3LWRldGFpbHMnKS5hZGRDbGFzcygnZC1ub25lJyk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJCgnLnByZXZpZXctZGV0YWlscycpLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTsNCiAgICAgICAgICAgICAgICB2YXIgY2hhcmdlID0gcGFyc2VGbG9hdChmaXhlZF9jaGFyZ2UgKyAoYW1vdW50ICogcGVyY2VudF9jaGFyZ2UgLyAxMDApKS50b0ZpeGVkKDIpOw0KICAgICAgICAgICAgICAgICQoJy5jaGFyZ2UnKS50ZXh0KGNoYXJnZSk7DQogICAgICAgICAgICAgICAgdmFyIHBheWFibGUgPSBwYXJzZUZsb2F0KChwYXJzZUZsb2F0KGFtb3VudCkgKyBwYXJzZUZsb2F0KGNoYXJnZSkpKS50b0ZpeGVkKDIpOw0KICAgICAgICAgICAgICAgICQoJy5wYXlhYmxlJykudGV4dChwYXlhYmxlKTsNCiAgICAgICAgICAgICAgICB2YXIgZmluYWxfYW1vID0gKHBhcnNlRmxvYXQoKHBhcnNlRmxvYXQoYW1vdW50KSArIHBhcnNlRmxvYXQoY2hhcmdlKSkpKnJhdGUpLnRvRml4ZWQodG9GaXhlZERpZ2l0KTsNCiAgICAgICAgICAgICAgICAkKCcuZmluYWxfYW1vJykudGV4dChmaW5hbF9hbW8pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZS5jdXJyZW5jeSAhPSAnVVNEVCcpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHJhdGVFbGVtZW50ID0gYDxzcGFuIGNsYXNzPSJmdy1ib2xkIj5Db252ZXJzaW9uIFJhdGU8L3NwYW4+IDxzcGFuPjxzcGFuICBjbGFzcz0iZnctYm9sZCI+MSBVU0RUID0gPHNwYW4gY2xhc3M9InJhdGUiPiR7cmF0ZX08L3NwYW4+ICA8c3BhbiBjbGFzcz0ibWV0aG9kX2N1cnJlbmN5Ij4ke3Jlc291cmNlLmN1cnJlbmN5fTwvc3Bhbj48L3NwYW4+PC9zcGFuPmA7DQogICAgICAgICAgICAgICAgICAgICQoJy5yYXRlLWVsZW1lbnQnKS5odG1sKHJhdGVFbGVtZW50KQ0KICAgICAgICAgICAgICAgICAgICAkKCcucmF0ZS1lbGVtZW50JykucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpOw0KICAgICAgICAgICAgICAgICAgICAkKCcuaW4tc2l0ZS1jdXInKS5yZW1vdmVDbGFzcygnZC1ub25lJyk7DQogICAgICAgICAgICAgICAgICAgICQoJy5yYXRlLWVsZW1lbnQnKS5hZGRDbGFzcygnZC1mbGV4Jyk7DQogICAgICAgICAgICAgICAgICAgICQoJy5pbi1zaXRlLWN1cicpLmFkZENsYXNzKCdkLWZsZXgnKTsNCiAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgJCgnLnJhdGUtZWxlbWVudCcpLmh0bWwoJycpDQogICAgICAgICAgICAgICAgICAgICQoJy5yYXRlLWVsZW1lbnQnKS5hZGRDbGFzcygnZC1ub25lJyk7DQogICAgICAgICAgICAgICAgICAgICQoJy5pbi1zaXRlLWN1cicpLmFkZENsYXNzKCdkLW5vbmUnKTsNCiAgICAgICAgICAgICAgICAgICAgJCgnLnJhdGUtZWxlbWVudCcpLnJlbW92ZUNsYXNzKCdkLWZsZXgnKTsNCiAgICAgICAgICAgICAgICAgICAgJCgnLmluLXNpdGUtY3VyJykucmVtb3ZlQ2xhc3MoJ2QtZmxleCcpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkKCcubWV0aG9kX2N1cnJlbmN5JykudGV4dChyZXNvdXJjZS5jdXJyZW5jeSk7DQogICAgICAgICAgICAgICAgJCgnaW5wdXRbbmFtZT1jdXJyZW5jeV0nKS52YWwocmVzb3VyY2UuY3VycmVuY3kpOw0KICAgICAgICAgICAgICAgICQoJ2lucHV0W25hbWU9YW1vdW50XScpLm9uKCdpbnB1dCcpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAkKCdpbnB1dFtuYW1lPWFtb3VudF0nKS5vbignaW5wdXQnLGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgJCgnc2VsZWN0W25hbWU9Z2F0ZXdheV0nKS5jaGFuZ2UoKTsNCiAgICAgICAgICAgICAgICAkKCcuYW1vdW50JykudGV4dChwYXJzZUZsb2F0KCQodGhpcykudmFsKCkpLnRvRml4ZWQoMikpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0pKGpRdWVyeSk7DQogICAgPC9zY3JpcHQ+DQoNCiAgICA8c2NyaXB0Pg0KICAgICAgICAoZnVuY3Rpb24oJCkgew0KICAgICAgICAgICAgInVzZSBzdHJpY3QiOw0KICAgICAgICAgICAgJCgiLmxhbmdTZWwiKS5vbigiY2hhbmdlIiwgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9jaGFuZ2UvIiArICQodGhpcykudmFsKCk7DQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgJCgnLnBvbGljeScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICQuZ2V0KCdodHRwczovL29uY2hhaW5vcHQuY29tL2Nvb2tpZS9hY2NlcHQnLCBmdW5jdGlvbihyZXNwb25zZSkgew0KICAgICAgICAgICAgICAgICAgICAkKCcuY29va2llcy1jYXJkJykuYWRkQ2xhc3MoJ2Qtbm9uZScpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgJCgnLmNvb2tpZXMtY2FyZCcpLnJlbW92ZUNsYXNzKCdoaWRlJykNCiAgICAgICAgICAgIH0sIDIwMDApOw0KDQogICAgICAgICAgICB2YXIgaW5wdXRFbGVtZW50cyA9ICQoJ1t0eXBlPXRleHRdLFt0eXBlPXBhc3N3b3JkXSxbdHlwZT1lbWFpbF0sW3R5cGU9bnVtYmVyXSxzZWxlY3QsdGV4dGFyZWEnKTsNCiAgICAgICAgICAgICQuZWFjaChpbnB1dEVsZW1lbnRzLCBmdW5jdGlvbihpbmRleCwgZWxlbWVudCkgew0KICAgICAgICAgICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpOw0KICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0tZ3JvdXAnKS5maW5kKCdsYWJlbCcpLmF0dHIoJ2ZvcicsIGVsZW1lbnQuYXR0cignbmFtZScpKTsNCiAgICAgICAgICAgICAgICBlbGVtZW50LmF0dHIoJ2lkJywgZWxlbWVudC5hdHRyKCduYW1lJykpDQogICAgICAgICAgICB9KTsNCg0KICAgICAgICAgICAgJC5lYWNoKCQoJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhJyksIGZ1bmN0aW9uKGksIGVsZW1lbnQpIHsNCiAgICAgICAgICAgICAgICB2YXIgZWxlbWVudFR5cGUgPSAkKGVsZW1lbnQpOw0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50VHlwZS5hdHRyKCd0eXBlJykgIT0gJ2NoZWNrYm94Jykgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3JlcXVpcmVkJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuY2xvc2VzdCgnLmZvcm0tZ3JvdXAnKS5maW5kKCdsYWJlbCcpLmFkZENsYXNzKCdyZXF1aXJlZCcpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGUnKSkuZm9yRWFjaCh0YWJsZSA9PiB7DQogICAgICAgICAgICAgICAgbGV0IGhlYWRpbmcgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0aGVhZCB0ciB0aCcpOw0KICAgICAgICAgICAgICAgIEFycmF5LmZyb20odGFibGUucXVlcnlTZWxlY3RvckFsbCgndGJvZHkgdHInKSkuZm9yRWFjaCgocm93KSA9PiB7DQogICAgICAgICAgICAgICAgICAgIEFycmF5LmZyb20ocm93LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RkJykpLmZvckVhY2goKGNvbHVtLCBpKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb2x1bS5zZXRBdHRyaWJ1dGUoJ2RhdGEtbGFiZWwnLCBoZWFkaW5nW2ldLmlubmVyVGV4dCkNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9KTsNCg0KICAgICAgICB9KShqUXVlcnkpOw0KICAgIDwvc2NyaXB0Pg0KICAgIA0KICAgIA0KICAgIA0KICAgIA0KICAgIDwhLS0gQm90dG9tIE5hdmlnYXRpb24gLS0+DQogIDxkaXYgY2xhc3M9ImZpeGVkIGJvdHRvbS0wIGxlZnQtMCB3LWZ1bGwgYmctd2hpdGUgc2hhZG93LW1kIGZsZXgganVzdGlmeS1hcm91bmQgcHktMiI+DQogICAgPGEgaHJlZj0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS91c2VyL2Rhc2hib2FyZCIgY2xhc3M9IiB0ZXh0LXllbGxvdy01MDAgIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIj4NCiAgICAgIDxzcGFuPjxpbWcgIGNsYXNzPSJiZy15ZWxsb3ctNTAwIHAtMSAiIHN0eWxlPSJib3JkZXItcmFkaXVzOjdweDsiICAgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2ljb25zL2hvbWVpY29uLnBuZyIgYWx0PSIiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiPjwvc3Bhbj4NCiAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIj5Ib21lPC9zcGFuPg0KICAgIDwvYT4NCiAgICA8YSBocmVmPSJodHRwczovL29uY2hhaW5vcHQuY29tL3VzZXIvbWFya2V0IiBjbGFzcz0iIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgPHNwYW4+PGltZyAgc3JjPSJodHRwczovL29uY2hhaW5vcHQuY29tL2ljb25zL21hcmtldGljb24ucG5nIiBhbHQ9IiIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCI+PC9zcGFuPg0KICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMiPk1hcmtldDwvc3Bhbj4NCiAgICA8L2E+DQogICAgPGEgaHJlZj0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS91c2VyL3dhbGxldCIgY2xhc3M9IiBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWdyYXktNTAwIj4NCiAgICAgIDxzcGFuPjxpbWcgIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9pY29ucy90cmFuc2FjdGlvbmljb24ucG5nIiBhbHQ9IiIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCI+PC9zcGFuPg0KICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMiPlRyYW5zYWN0aW9uPC9zcGFuPg0KICAgIDwvYT4NCiAgICA8YSBocmVmPSJodHRwczovL29uY2hhaW5vcHQuY29tL3VzZXIvbWluZSIgY2xhc3M9IiBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWdyYXktNTAwIj4NCiAgICAgIDxzcGFuPjxpbWcgIHNyYz0iaHR0cHM6Ly9vbmNoYWlub3B0LmNvbS9pY29ucy9wZXJzb25hbGljb24ucG5nIiBhbHQ9IiIgd2lkdGg9IjI0cHgiIGhlaWdodD0iMjRweCI+PC9zcGFuPg0KICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMiPlBlcnNvbmFsPC9zcGFuPg0KICAgIDwvYT4NCiAgPC9kaXY+DQogICAgICAgIA0KICAgIA0KICAgIA0KICAgIA0KICAgIDxzY3JpcHQ+DQogIC8vIFdhaXQgdW50aWwgcGFnZSBmdWxseSBsb2Fkcw0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCl7DQogICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAvLyBGYWRlIG91dCBlZmZlY3QNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVsb2FkZXIiKS5zdHlsZS5vcGFjaXR5ID0gIjAiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZWxvYWRlciIpLnN0eWxlLnRyYW5zaXRpb24gPSAib3BhY2l0eSAwLjhzIGVhc2UiOw0KDQogICAgICAvLyBBZnRlciBmYWRlIGFuaW1hdGlvbiwgaGlkZSBhbmQgc2hvdyBjb250ZW50DQogICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZWxvYWRlciIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLWNvbnRlbnQiKS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTsNCiAgICAgIH0sIDgwMCk7IC8vIG1hdGNoZXMgZmFkZSBkdXJhdGlvbg0KICAgIH0sIDgwMCk7IC8vIOKPsyB3YWl0IDQgc2Vjb25kcyBhZnRlciBmdWxseSBsb2FkZWQNCiAgfSk7DQogDQogIGNvbnN0IHNsaWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzbGlkZXIiKTsNCiAgY29uc3QgZG90cyA9IFtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG90MCIpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG90MSIpXTsNCiAgbGV0IGluZGV4ID0gMDsNCg0KICBmdW5jdGlvbiBzaG93U2xpZGUoaSkgew0KICAgIHNsaWRlci5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWCgkey1pICogMzQyfXB4KWA7DQogICAgZG90cy5mb3JFYWNoKChkb3QsIGlkeCkgPT4gew0KICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoImJnLXllbGxvdy01MDAiKTsNCiAgICAgIGRvdC5jbGFzc0xpc3QuYWRkKCJiZy1ncmF5LTQwMCIpOw0KICAgICAgaWYgKGlkeCA9PT0gaSkgew0KICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgiYmcteWVsbG93LTUwMCIpOw0KICAgICAgICBkb3QuY2xhc3NMaXN0LnJlbW92ZSgiYmctZ3JheS00MDAiKTsNCiAgICAgIH0NCiAgICB9KTsNCiAgfQ0KDQogIHNldEludGVydmFsKCgpID0+IHsNCiAgICBpbmRleCA9IChpbmRleCArIDEpICUgMjsNCiAgICBzaG93U2xpZGUoaW5kZXgpOw0KICB9LCAzMDAwKTsgLy8gYXV0byBjaGFuZ2UgZXZlcnkgM3MNCjwvc2NyaXB0Pg0KICAgICAgICANCiAgICANCiAgICANCiAgICANCiAgICAgDQogICANCiANCg0KPC9ib2R5Pg0KPC9odG1sPg0K"}},"time_used":386,"timings":{"blocked":-1,"dns":98,"connect":22,"send":0,"wait":237,"receive":0,"ssl":28},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/transfericon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.587Z","timestamp":1785153914587,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/transfericon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3656\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3656,"size_decoded":3921,"mime_type":"image/png","magic":"PNG image data, 121 x 120, 8-bit/color RGBA, non-interlaced","md5":"f0e3e56b8137505f4b141160656eb45c","sha1":"86373b4f3b1fffbf0144a2d2470c688bf661e872","sha256":"edfe5687cbc9ca4b160bf77c2b3377185b14a26463fc92aa09f304c967759548","sha512":"1c23c119008be437f97973bcbc11ada4cbafa5f984986ed4e1cd91525c5689569bfa36cb73a7a626392bb96fa69fe9bb8aa1fc2fc17c7f2440523c2eb9a188d3","ssdeep":"","tlshash":"7e715c0a25a2a416177f4b750f2320eedafdbc0a3b2d44bd465027b2e277270c4ce47a","first_seen":"2026-04-01T23:54:14.662099Z","last_seen":"2026-07-27T12:06:15.826773Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":87,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":28,"receive":59,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/slider2.jpeg","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.592Z","timestamp":1785153914592,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/slider2.jpeg HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 213099\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":213099,"size_decoded":213367,"mime_type":"image/jpeg","magic":"JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 1000x449, components 3","md5":"f99f4bfd4b8000bfa6550c342e4d48f0","sha1":"3e29d2d945918601d224a4c3c4257062d2856d27","sha256":"a71fb2d26f4fdd847151f98f136ffcf7a292584570d1c93bcfe41e345b457405","sha512":"94b30a3ee210fbc8b9ae4863455133765ae3e7cb6380f24e68ee0bc50fc636a18a39b5a1e64274b6949d6e54467f2f9462b52449026328bd9c79f65182e2690e","ssdeep":"6144:Mrq9MCwHS/sVU9fQIia2TQ65n7FT3P1ZeL/2+:2lZH6sVU9fQIi7cIn7FTy","tlshash":"3e2423b7eb58708a776cf8630f5c936c611d12defff4a112ba5c06d60d852940cfa86a","first_seen":"2025-01-21T08:38:09.27761Z","last_seen":"2026-07-27T12:06:15.844308Z","times_seen":17,"resource_available":false,"data":"/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA5LjEtYzAwMiA3OS5mMzU0ZWZjNzAsIDIwMjMvMTEvMDktMTI6MDU6NTMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyNS40IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4QTg0ODAzNTQxMjkxMUVGQkRFQ0ZGNUYzRTRCRTAwNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4QTg0ODAzNjQxMjkxMUVGQkRFQ0ZGNUYzRTRCRTAwNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhBODQ4MDMzNDEyOTExRUZCREVDRkY1RjNFNEJFMDA2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhBODQ4MDM0NDEyOTExRUZCREVDRkY1RjNFNEJFMDA2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEB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"}},"time_used":112,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":87,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/personalicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.611Z","timestamp":1785153914611,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/personalicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2249\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":2249,"size_decoded":2514,"mime_type":"image/png","magic":"PNG image data, 97 x 96, 8-bit/color RGBA, non-interlaced","md5":"77416891c4771a01a629b5c734aca624","sha1":"35933747ed7765f0cc4c86589e3acb5d51ffaf3d","sha256":"15708f91ebf8a74f9f8517212a84a9334dd2be9b7941b70589abaf8529f7946e","sha512":"683c58fe656d9f6f780dfc4a54f93a3b7d17b9bda2719e038d88d4e001e4335ea14ee09e60c8e15018b7a0f3bdd9a99929676f240343b1da840f77d8cf076511","ssdeep":"","tlshash":"6f415bc296e03ce4d96586291de5b0887cf0073c6dcd0e18acd1b412e958551a123b63","first_seen":"2026-04-01T23:54:14.848375Z","last_seen":"2026-07-27T12:06:15.837971Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_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://onchainopt.com/","date":"2026-07-27T12:05:15.523Z","timestamp":1785153915523,"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 /_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_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://onchainopt.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\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/rosetta\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"rosetta\"\r\nreport-to: {\"group\":\"rosetta\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/rosetta\"}]}\r\ncontent-length: 3967\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:44 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:44 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 09 Apr 2026 01:12:55 GMT\r\ncontent-type: text/css; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 428071\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":20284,"size_decoded":4799,"mime_type":"text/css; charset=UTF-8","magic":"ASCII text, with very long lines (20284), with no line terminators","md5":"fde4f72b90fe807270db3c332dd058df","sha1":"7ef4d70af01c38a7f80a7650be25f63aff4ba751","sha256":"ab31c9be358d2107fc1158434c7aeaaf15f82e3e405ed67ab236b5ac232ed159","sha512":"9bef39350af557afeb10cb71068426ab28befaf5295359954787be06a5ce0993d69e8f5018a5a17c44311d294dd1a87a6f82edd0f5743df0149b8e4e53061695","ssdeep":"192:nvqx/EhZINcrXsfg0SgG8CqA3uku9SJFzvQVMbnUIfIxIVVpTrecfzPtcmt4v78l:gMF8Sb3i0JFzourUqWMVpTrdfzPtcBG","tlshash":"c492872057aed01967efa82364d36dff71d444db90123eeaaf5a7352cd821f231ea214","first_seen":"2026-04-13T20:43:22.641436Z","last_seen":"2026-07-30T05:46:25.805952Z","times_seen":18468,"resource_available":false,"data":"LlZJcGdKZC1aVmk5b2QtT1JIYi1PRVZtY2R7bGVmdDowO3RvcDowO2hlaWdodDozOXB4O3dpZHRoOjEwMCU7ei1pbmRleDoxMDAwMDAwMTtwb3NpdGlvbjpmaXhlZDtib3JkZXI6bm9uZTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNkI5MERBO21hcmdpbjowO2JveC1zaGFkb3c6MCAwIDhweCAxcHggIzk5OX0uVklwZ0pkLVpWaTlvZC14bDA3T2ItT0VWbWNke3otaW5kZXg6MTAwMDAwMDI7Ym9yZGVyOm5vbmU7cG9zaXRpb246Zml4ZWQ7Ym94LXNoYWRvdzowIDNweCA4cHggMnB4ICM5OTl9LlZJcGdKZC1aVmk5b2QtU21mWi1PRVZtY2R7ei1pbmRleDoxMDAwMDAwMDtib3JkZXI6bm9uZTttYXJnaW46MH0uZ29vZy10ZS1nYWRnZXR7Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY2Njt3aGl0ZS1zcGFjZTpub3dyYXB9Lmdvb2ctdGUtZ2FkZ2V0IGltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyOm5vbmV9Lmdvb2ctdGUtZ2FkZ2V0LXNpbXBsZXtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNENUQ1RDU7Ym9yZGVyLXRvcDoxcHggc29saWQgIzlCOUI5Qjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRThFOEU4O2JvcmRlci1yaWdodDoxcHggc29saWQgI0Q1RDVENTtmb250LXNpemU6MTBwdDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXRvcDoxcHg7cGFkZGluZy1ib3R0b206MnB4O2N1cnNvcjpwb2ludGVyfS5nb29nLXRlLWdhZGdldC1pY29ue21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4O3dpZHRoOjE5cHg7aGVpZ2h0OjE5cHg7Ym9yZGVyOm5vbmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWNvbWJve21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfS5nb29nLXRlLWdhZGdldCAuZ29vZy10ZS1jb21ib3ttYXJnaW46NHB4IDB9LlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDphY3RpdmUsLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkOmhvdmVyLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDpsaW5rLC5WSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZDp2aXNpdGVke2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNDQ0O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1BkLC5WSXBnSmQtWlZpOW9kLVR2RDlQYy1oU1JHUGR7ZGlzcGxheTpibG9jazttYXJnaW46MCAxMHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgLlZJcGdKZC1aVmk5b2QtbDRlSFgtaFNSR1Bke3BhZGRpbmctdG9wOjJweDtwYWRkaW5nLWxlZnQ6NHB4fS5WSXBnSmQtWlZpOW9kLU9SSGIgKiwuVklwZ0pkLVpWaTlvZC1TbWZaICosLlZJcGdKZC1aVmk5b2QtbDl4a3RmICosLlZJcGdKZC1aVmk5b2QtdkgxR21mICosLlZJcGdKZC1aVmk5b2QteGwwN09iICosLmdvb2ctdGUtY29tYm97Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHR9LlZJcGdKZC1aVmk5b2QtT1JIYnttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNFNEVGRkI7b3ZlcmZsb3c6aGlkZGVufS5WSXBnSmQtWlZpOW9kLU9SSGIgaW1ne2JvcmRlcjpub25lfS5WSXBnSmQtWlZpOW9kLU9SSGItYk45N1Bje2NvbG9yOiMwMDB9LlZJcGdKZC1aVmk5b2QtT1JIYi1iTjk3UGMgaW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1PUkhiLVRzd3YxYntjb2xvcjojNjY2O3ZlcnRpY2FsLWFsaWduOnRvcDttYXJnaW4tdG9wOjA7Zm9udC1zaXplOjdwdH0uVklwZ0pkLVpWaTlvZC1PUkhiLUtFNnZxZXt3aWR0aDo4cHh9LlZJcGdKZC1aVmk5b2QtTGdic1Nle2JvcmRlci1jb2xvcjojRTdFN0U3O2JvcmRlci1zdHlsZTpub25lIHNvbGlkIHNvbGlkIG5vbmU7Ym9yZGVyLXdpZHRoOjAgMXB4IDFweCAwfS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBkaXZ7Ym9yZGVyLWNvbG9yOiNDQ0MgIzk5OSAjOTk5ICNDQ0M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjOTk5O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MXB4O2hlaWdodDoyMHB4fS5WSXBnSmQtWlZpOW9kLUxnYnNTZSBidXR0b257YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjBweDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjA7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vd3JhcH0uVklwZ0pkLVpWaTlvZC1MZ2JzU2UgYnV0dG9uOmFjdGl2ZXtiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0NDQ30uVklwZ0pkLVpWaTlvZC1TbWZae21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6I0ZGRjt3aGl0ZS1zcGFjZTpub3dyYXB9LlZJcGdKZC1aVmk5b2QtU21mWi1oU1JHUGR7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMHB0O2JvcmRlcjoxcHggb3V0c2V0ICM4ODg7cGFkZGluZzo2cHggMTBweDt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowfS5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1BkIGltZ3ttYXJnaW4tbGVmdDoycHg7bWFyZ2luLXJpZ2h0OjJweDt3aWR0aDoxOXB4O2hlaWdodDoxOXB4O2JvcmRlcjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZCBzcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7bWFyZ2luLWxlZnQ6MnB4O21hcmdpbi1yaWdodDoycHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nb29nLXRlLWZsb2F0LXRvcCAuVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZHtwYWRkaW5nOjJweDtib3JkZXItdG9wLXdpZHRoOjB9Lmdvb2ctdGUtZmxvYXQtYm90dG9tIC5WSXBnSmQtWlZpOW9kLVNtZlotaFNSR1Bke3BhZGRpbmc6MnB4O2JvcmRlci1ib3R0b20td2lkdGg6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVke3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMEM7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OjRweDttYXJnaW4tcmlnaHQ6NHB4fS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgc3Bhbnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQgaW1ne21hcmdpbi1sZWZ0OjJweDttYXJnaW4tcmlnaHQ6MnB4fS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZHtjb2xvcjojMDAwfS5nb29nLXRlLWdhZGdldC1zaW1wbGUgLlZJcGdKZC1aVmk5b2QteGwwN09iLWxUQnhlZCBzcGFue3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYntiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ym9yZGVyOjJweCBzb2xpZCAjQzNEOUZGO292ZXJmbG93LXk6c2Nyb2xsO292ZXJmbG93LXg6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH0uVklwZ0pkLVpWaTlvZC14bDA3T2ItaWJuQzZie3BhZGRpbmc6M3B4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmIsLlZJcGdKZC1aVmk5b2QteGwwN09iLWlibkM2YjpsaW5re2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6dmlzaXRlZHtjb2xvcjojNTUxQThCfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6aG92ZXJ7YmFja2dyb3VuZDojQzNEOUZGfS5WSXBnSmQtWlZpOW9kLXhsMDdPYi1pYm5DNmI6YWN0aXZle2NvbG9yOiMwMEN9LlZJcGdKZC1aVmk5b2QtdkgxR21me2JhY2tncm91bmQtY29sb3I6I0ZGRjt0ZXh0LWRlY29yYXRpb246bm9uZTtib3JkZXI6MXB4IHNvbGlkICM2QjkwREE7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1LcmhQTmJ7d2lkdGg6MTZweH0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaGdEVXdle21hcmdpbjo2cHggMDtoZWlnaHQ6MXB4O2JhY2tncm91bmQtY29sb3I6I2FhYTtvdmVyZmxvdzpoaWRkZW59LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgZGl2e3BhZGRpbmc6NHB4fS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmIgLnVERUZnZXtkaXNwbGF5Om5vbmV9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQgLmZtY21Te3BhZGRpbmctbGVmdDo0cHg7cGFkZGluZy1yaWdodDo0cHh9LlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZHt0ZXh0LWRlY29yYXRpb246bm9uZX0uVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOmFjdGl2ZSBkaXYsLlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2YjpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiOnZpc2l0ZWQgZGl2e2NvbG9yOiMwMEM7YmFja2dyb3VuZDojRkZGfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmI6aG92ZXIgZGl2e2NvbG9yOiNGRkY7YmFja2dyb3VuZDojMzZDfS5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDphY3RpdmUgZGl2LC5WSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmItZ2s2U01kOmhvdmVyIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDpsaW5rIGRpdiwuVklwZ0pkLVpWaTlvZC12SDFHbWYtaWJuQzZiLWdrNlNNZDp2aXNpdGVkIGRpdntjb2xvcjojMDAwO2ZvbnQtd2VpZ2h0OjcwMH0uVklwZ0pkLVpWaTlvZC1sOXhrdGZ7YmFja2dyb3VuZC1jb2xvcjojRkZGO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHh9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLU9FVm1jZHtiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7Ym9yZGVyOjFweCBzb2xpZCAjNkI5MERBO2JveC1zaGFkb3c6MCAzcHggOHB4IDJweCAjOTk5O2JvcmRlci1yYWRpdXM6OHB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0ZiBpbWd7Ym9yZGVyOm5vbmV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLWZtY21Te21hcmdpbi10b3A6NnB4fS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGN7bWFyZ2luLXRvcDo2cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5WSXBnSmQtWlZpOW9kLWw5eGt0Zi1WZ3dKbGMgKnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuRFVHSmlle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X21pbnVzX3NtLmdpZil9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLVZnd0psYyAuVGR5VERle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vd3d3Jmdvb2dsZS5jb20vaW1hZ2VzL3ppcHB5X3BsdXNfc20uZ2lmKX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtVmd3SmxjIHNwYW57Y29sb3I6IzAwQzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyO21hcmdpbjowIDRweH0uVklwZ0pkLVpWaTlvZC1sOXhrdGYtSTlHTHB7bWFyZ2luOjZweCAwIDB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm17bWFyZ2luOjB9LlZJcGdKZC1aVmk5b2QtbDl4a3RmLUk5R0xwIGZvcm0gdGV4dGFyZWF7bWFyZ2luLWJvdHRvbTo0cHg7d2lkdGg6MTAwJX0uVklwZ0pkLVpWaTlvZC1sOXhrdGYteWVQZTVje21hcmdpbjo2cHggMCA0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLXdPSE15Znt6LWluZGV4OjEwMDA7cG9zaXRpb246Zml4ZWQ7dHJhbnNpdGlvbi1kZWxheTouNnM7bGVmdDotMTAwMHB4O3RvcDotMTAwMHB4fS5WSXBnSmQtWlZpOW9kLWFaMndFZS13T0hNeWYtdGk2aEdje3RyYW5zaXRpb24tZGVsYXk6MHM7bGVmdDotMTRweDt0b3A6LTE0cHh9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPe2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1vei1ib3gtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDRweDtoZWlnaHQ6MTA0cHg7Ym9yZGVyLXJhZGl1czo1MHB4O2JhY2tncm91bmQ6I0ZGRiB1cmwoaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL3Byb2R1Y3QvMngvdHJhbnNsYXRlXzI0ZHAucG5nKSA1MCUgNTAlIG5vLXJlcGVhdDt0cmFuc2l0aW9uOmFsbCAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKC40KTtvcGFjaXR5OjB9LlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPLXRpNmhHY3t0cmFuc2Zvcm06c2NhbGUoLjUpO29wYWNpdHk6MX0uVklwZ0pkLVpWaTlvZC1hWjJ3RWV7bWFyZ2luOjJweCAwIDAgMnB4O2FuaW1hdGlvbjpzcGlubmVyLXJvdGF0b3IgMS40cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBzcGlubmVyLXJvdGF0b3J7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3t0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9fS5WSXBnSmQtWlZpOW9kLWFaMndFZS1KdDVjS3tzdHJva2UtZGFzaGFycmF5OjE4NztzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZTojNDI4NUY0O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO2FuaW1hdGlvbjpzcGlubmVyLWRhc2ggMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNwaW5uZXItZGFzaHswJXtzdHJva2UtZGFzaG9mZnNldDoxODd9NTAle3N0cm9rZS1kYXNob2Zmc2V0OjQ2Ljc1O3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX10b3tzdHJva2UtZGFzaG9mZnNldDoxODc7dHJhbnNmb3JtOnJvdGF0ZSg0NTBkZWcpfX0uVklwZ0pkLXlBV05FYi1MN2xia2IgYSwuVklwZ0pkLXlBV05FYi1MN2xia2IgYm9keSwuVklwZ0pkLXlBV05FYi1MN2xia2IgZGl2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBmb3JtLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoMSwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDIsLlZJcGdKZC15QVdORWItTDdsYmtiIGgzLC5WSXBnSmQteUFXTkViLUw3bGJrYiBoNCwuVklwZ0pkLXlBV05FYi1MN2xia2IgaDUsLlZJcGdKZC15QVdORWItTDdsYmtiIGg2LC5WSXBnSmQteUFXTkViLUw3bGJrYiBodG1sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBpZnJhbWUsLlZJcGdKZC15QVdORWItTDdsYmtiIGltZywuVklwZ0pkLXlBV05FYi1MN2xia2IgbGksLlZJcGdKZC15QVdORWItTDdsYmtiIG9sLC5WSXBnSmQteUFXTkViLUw3bGJrYiBwLC5WSXBnSmQteUFXTkViLUw3bGJrYiBzcGFuLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0YWJsZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgdGJvZHksLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0ciwuVklwZ0pkLXlBV05FYi1MN2xia2IgdWx7YWxsOnVuc2V0O2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0Om5vcm1hbH0uVklwZ0pkLXlBV05FYi1MN2xia2Igb2wsLlZJcGdKZC15QVdORWItTDdsYmtiIHVse2xpc3Qtc3R5bGU6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9LlZJcGdKZC15QVdORWItTDdsYmtiIGNhcHRpb24sLlZJcGdKZC15QVdORWItTDdsYmtiIHRkLC5WSXBnSmQteUFXTkViLUw3bGJrYiB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6NDAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiBpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntib3JkZXI6MH1kaXY+LlZJcGdKZC15QVdORWItTDdsYmtie3BhZGRpbmc6MTBweCAxNHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYntjb2xvcjojMjIyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlZWU7Ym94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy1tb3otYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpOy13ZWJraXQtYm94LXNoYWRvdzowIDRweCAxNnB4IHJnYmEoMCwwLDAsLjIpO2Rpc3BsYXk6bm9uZTtmb250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBwdDt3aWR0aDo0MjBweDtwYWRkaW5nOjEycHg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TLC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NsZWFyOmJvdGg7Zm9udC1zaXplOjEwcHQ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpqdXN0aWZ5O3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXI0bmtle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46NHB4IDA7dGV4dC1hbGlnbjpsZWZ0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UdkQ5UGMtTGdic1Nle2Rpc3BsYXk6bm9uZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbDRlSFh7ZmxvYXQ6bGVmdDttYXJnaW46MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLVBMRGJiZntkaXNwbGF5OmlubGluZS1ibG9ja30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItZnc0MlplLVowQXJxZi1oYUFjbGZ7ZGlzcGxheTpub25lO3dpZHRoOjEwMCV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1IOXREdHttYXJnaW4tdG9wOjIwcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUxLNXl1e2Zsb2F0OmxlZnR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXF3VThNZXtmbG9hdDpyaWdodH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItY0dNSTJie21pbi1oZWlnaHQ6MTVweDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MSV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLWpPZmtNYi1OZTNzRmZ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjMjk5MTBkIDAsIzIwYWYwZSAxMDAlKTtiYWNrZ3JvdW5kOiMyOTkxMGQ7Ym9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6aW5zZXQgMCAycHggMnB4ICMxZTY2MDk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMnB4IDJweCAjMWU2NjA5Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDJweCAycHggIzFlNjYwOTtjb2xvcjp3aGl0ZTtmb250LXNpemU6OXB0O2ZvbnQtd2VpZ2h0OmJvbGRlcjttYXJnaW4tdG9wOjEycHg7cGFkZGluZzo2cHg7dGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzFlNjYwOX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItWjBBcnFmLWhTUkdQZHtjb2xvcjojMTVjO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMXB4O21hcmdpbi1yaWdodDoxNXB4O3RleHQtZGVjb3JhdGlvbjpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYj50ZXh0YXJlYXtmb250LWZhbWlseTphcmlhbDtyZXNpemU6dmVydGljYWw7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLXJhZGl1czoxcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkIHNpbHZlcjtmb250LXNpemU6MTNweDtoZWlnaHQ6YXV0bztvdmVyZmxvdy15OmF1dG87cGFkZGluZzoxcHh9LlZJcGdKZC15QVdORWItTDdsYmtiIHRleHRhcmVhOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTtvdXRsaW5lOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVowQXJxZi1JYkUwU3ttYXJnaW4tcmlnaHQ6MTBweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwe21pbi1oZWlnaHQ6MjVweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZy10b3A6OHB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwe21hcmdpbi1ib3R0b206NXB4O21hcmdpbi1ib3R0b206MH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dHtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6NTRweDsqbWluLXdpZHRoOjcwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZGNkY2RjO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMSk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzQ0NDtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjI3cHg7b3V0bGluZTowO3BhZGRpbmc6MCA4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjI3cHg7bWFyZ2luOjAgMTZweCAwIDA7Ym94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpO2JvcmRlci1yYWRpdXM6MnB4O3RyYW5zaXRpb246YWxsIC4yMThzO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSwjZjFmMWYxKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO2N1cnNvcjpkZWZhdWx0fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmhvdmVye2JvcmRlcjoxcHggc29saWQgI2M2YzZjNjtjb2xvcjojMjIyO3RyYW5zaXRpb246YWxsIDBzO2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y4ZjhmOCwjZjFmMWYxKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmV7Ym9yZGVyOjFweCBzb2xpZCAjYzZjNmM2O2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZjZmNmY2O2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmZvY3VzIC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LkFIbXV3ZSAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXM6YWN0aXZle2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjUpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC41KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dC5BSG11d2UsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgIzRkOTBmZTt6LWluZGV4OjQhaW1wb3J0YW50fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0LmdrNlNNZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNlZWUsI2UwZTBlMCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2NvbG9yOiMzMzN9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZntjb2xvcjp3aGl0ZTtib3JkZXItY29sb3I6IzMwNzllZDtiYWNrZ3JvdW5kLWNvbG9yOiM0ZDkwZmU7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzQ3ODdlZCl9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZi5BSG11d2UgLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjphY3RpdmUsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQgLlZJcGdKZC15QVdORWItWjBBcnFmLXNGZUJxZjpob3ZlciAuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3Vze2JvcmRlci1jb2xvcjojMzA3OWVkO2JhY2tncm91bmQtY29sb3I6IzM1N2FlODtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjMzU3YWU4KX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmhvdmVye2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmYsMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2ZmZiwwIDFweCAxcHggcmdiYSgwLDAsMCwuMSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmLDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmLkFIbXV3ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dCAuVklwZ0pkLXlBV05FYi1aMEFycWYtc0ZlQnFmOmZvY3VzLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0IC5WSXBnSmQteUFXTkViLVowQXJxZi1zRmVCcWY6aG92ZXIsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUw0Tm41ZS1JOUdMcCAuVklwZ0pkLXlBV05FYi1aMEFycWYtSTlHTHAgaW5wdXQuQUhtdXdlLC5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1MNE5uNWUtSTlHTHAgLlZJcGdKZC15QVdORWItWjBBcnFmLUk5R0xwIGlucHV0OmFjdGl2ZSwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpmb2N1cywuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItTDRObjVlLUk5R0xwIC5WSXBnSmQteUFXTkViLVowQXJxZi1JOUdMcCBpbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzMwNzllZH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItbXJ4UGdle2NvbG9yOiM5OTk7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZn0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLVcwdkpvLWZtY21Te2NvbG9yOiM5OTk7Zm9udC1zaXplOjExcHg7Zm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZjttYXJnaW46MTVweCAwIDVweH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXUwcGpvZS1mbWNtU3tjb2xvcjojODAwO2Rpc3BsYXk6bm9uZTtmb250LXNpemU6OXB0fS5WSXBnSmQteUFXTkViLVZJcGdKZC1mbWNtUy1zbjU0UXtiYWNrZ3JvdW5kLWNvbG9yOiNjOWQ3ZjE7Ym94LXNoYWRvdzoycHggMnB4IDRweCAjOTlhO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZX0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQteGwwN09ie2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym94LXNoYWRvdzowIDJweCA0cHggIzk5YTttaW4td2lkdGg6MDtvdXRsaW5lOm5vbmU7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjAwMH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItSUZkS3lkLXhsMDdPYiAuVklwZ0pkLXlBV05FYi1WSXBnSmQtajdMRmxie2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MnB4IDVweCA1cHg7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLXN0eWxlOm5vbmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYjpob3ZlcntiYWNrZ3JvdW5kOiNkZGR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC14bDA3T2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYiBoMXtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDA7bWFyZ2luOjRweCAwfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQteGwwN09iIC5WSXBnSmQteUFXTkViLVZJcGdKZC1qN0xGbGIgc3Ryb25ne2NvbG9yOiMzNDVhYWR9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVZJcGdKZC1lS201RmMtaEZzYm97dGV4dC1hbGlnbjpyaWdodDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6YXV0b30uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVklwZ0pkLWo3TEZsYi1TSXNyVGQgLlZJcGdKZC15QVdORWItVklwZ0pkLWVLbTVGYy1oRnNib3t0ZXh0LWFsaWduOmxlZnQ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OmF1dG99LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLVRWTHc5Yy1wcEhscmYtc241NFEsLlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtZm1jbVN7YmFja2dyb3VuZC1jb2xvcjojZjFlYTAwO2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjNweCAzcHggNHB4IHJnYmEoMCwwLDAsLjUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojZjFlYTAwO2N1cnNvcjpwb2ludGVyO21hcmdpbjotMnB4IC0ycHggLTJweCAtM3B4O3BhZGRpbmc6MnB4IDJweCAycHggM3B4O3Bvc2l0aW9uOnJlbGF0aXZlfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2NvbG9yOiMyMjJ9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1WeTJBcWMtcGJUVFlle2NvbG9yOndoaXRlO3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudH0uVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiwuVklwZ0pkLXlBV05FYi1MN2xia2IgLlZJcGdKZC15QVdORWItVFZMdzljLXBwSGxyZiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtcHBIbHJmLXNuNTRRe2JhY2tncm91bmQtY29sb3I6I2M5ZDdmMTtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwOy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggNHB4IDAgMDstbW96LWJvcmRlci1yYWRpdXM6NHB4IDRweCAwIDA7Ym94LXNoYWRvdzozcHggM3B4IDRweCByZ2JhKDAsMCwwLC41KTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOi0ycHggLTJweCAtMnB4IC0zcHg7cGFkZGluZzoycHggMnB4IDNweCAzcHg7cG9zaXRpb246cmVsYXRpdmV9LlZJcGdKZC15QVdORWItTDdsYmtiIHNwYW46Zm9jdXN7b3V0bGluZTpub25lfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1UVkx3OWMtRHlWREF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmU7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm9yZGVyLXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1czowO21hcmdpbjotMnB4O3BhZGRpbmc6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi15QVdORWItVFZMdzljLXNuNTRRLUx6WDNlZntib3JkZXItbGVmdDoycHggc29saWQgcmVkO21hcmdpbi1sZWZ0Oi0ycHh9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLXlBV05FYi1UVkx3OWMtc241NFEtWUlBaUlie2JvcmRlci1yaWdodDoycHggc29saWQgcmVkO21hcmdpbi1yaWdodDotMnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJme3BhZGRpbmc6MnB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21Te2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDJweCAzcHg7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMzMzM7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci10b3A6MXB4IHNvbGlkICNjMGMwYzA7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO2hlaWdodDoyMXB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJvcmRlci1yYWRpdXM6MXB4fS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmhvdmVye2JvcmRlcjoxcHggc29saWQgI2I5YjliOTtib3JkZXItdG9wOjFweCBzb2xpZCAjYTBhMGEwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpfS5WSXBnSmQteUFXTkViLUw3bGJrYiAuVklwZ0pkLXlBV05FYi1JRmRLeWQtWVBxamJmLWZtY21TOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpO291dGxpbmU6bm9uZTtib3JkZXI6MXB4IHNvbGlkICM0ZDkwZmV9LlZJcGdKZC15QVdORWItTDdsYmtiIC5WSXBnSmQteUFXTkViLUlGZEt5ZC1ZUHFqYmYtc0ZlQnFme2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDZweCAzcHg7bWFyZ2luOjAgMCAwIDJweDtoZWlnaHQ6MjFweH0uVklwZ0pkLXlBV05FYi1MN2xia2I+ZGl2e2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTpmbGV4Oy1tb3otYm94LW9yaWVudDp2ZXJ0aWNhbDstbW96LWJveC1kaXJlY3Rpb246bm9ybWFsO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LWZhbWlseTpHb29nbGUgU2FucyxBcmlhbCxzYW5zLXNlcmlmfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVWQ3ZnJ7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5OmZsZXg7LW1vei1ib3gtYWxpZ246ZW5kO2FsaWduLWl0ZW1zOmVuZDttYXJnaW46MTRweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1TSXNyVGR7bWFyZ2luLXJpZ2h0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1JdWl6V2MtaTNqTThje21hcmdpbi1sZWZ0OjE0cHg7Y29sb3I6Izc0Nzc3NTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1rNzdJaWZ7bWFyZ2luOjAgMTZweCAxNnB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYXhBVjF7d2lkdGg6YXV0bztjb2xvcjojMWYxZjFmO2ZvbnQtc2l6ZToxNnB4O3RleHQtYWxpZ246aW5pdGlhbH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWF4QVYxIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlke2JvcmRlci1yYWRpdXM6MCAwIDEycHggMTJweDttYXJnaW46MDtiYWNrZ3JvdW5kOiNmMWY0Zjk7cG9zaXRpb246cmVsYXRpdmU7bWluLWhlaWdodDo1MHB4fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkIC5WSXBnSmQteUFXTkViLVNJc3JUZHt0ZXh0LWFsaWduOnJpZ2h0fS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkLUI3STRPZHtkaXNwbGF5Oi1tb3otYm94O2Rpc3BsYXk6ZmxleDstbW96LWJveC1vcmllbnQ6dmVydGljYWw7LW1vei1ib3gtZGlyZWN0aW9uOm5vcm1hbDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6NzclO3BhZGRpbmc6MTJweH0uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLU43RXFpZC1CN0k0T2QgLlZJcGdKZC15QVdORWItU0lzclRke3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1VVHVqQ2J7Y29sb3I6IzFmMWYxZjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtVVR1akNie3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1lTzltS2V7Y29sb3I6IzQ0NDc0Njtmb250LXNpemU6MTJweDtwYWRkaW5nLXRvcDo0cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIC5WSXBnSmQteUFXTkViLVNJc3JUZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtZU85bUtle3RleHQtYWxpZ246cmlnaHR9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDo1cHh9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC14Z292NSAuVklwZ0pkLXlBV05FYi1TSXNyVGR7bGVmdDo1cHg7cmlnaHQ6YXV0b30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYntmaWxsOiMwYjU3ZDB9LlZJcGdKZC15QVdORWItaHZoZ05kIC5WSXBnSmQteUFXTkViLWh2aGdOZC1iZ202c2Z7bWFyZ2luOi00cHggMnB4IDAgMDtwYWRkaW5nOjJweCAwIDA7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjI0cHg7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDpub25lfS5WSXBnSmQteUFXTkViLWh2aGdOZCAuVklwZ0pkLXlBV05FYi1odmhnTmQtYmdtNnNmOmhvdmVye2JhY2tncm91bmQ6I2U4ZWJlY30uVklwZ0pkLXlBV05FYi1odmhnTmQgLlZJcGdKZC15QVdORWItaHZoZ05kLWFYWVRjZXtkaXNwbGF5Om5vbmV9c2VudGluZWx7fQ=="}},"time_used":17,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/messageicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.580Z","timestamp":1785153914580,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/messageicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1899\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1899,"size_decoded":2164,"mime_type":"image/png","magic":"PNG image data, 96 x 96, 8-bit/color RGBA, non-interlaced","md5":"0b1663f8fb03aeb07461773fd8f900f5","sha1":"ccd80c4f220538f56c6a048ac88b6f77a0135db2","sha256":"e155b9412467d1ae3771e6a6c24ca91525a5970cf9804671a76702e6ce292909","sha512":"9fb79aa1dc5e229072d87ee5e7c6f57e75178e7b3280c8bbf83e43ff7f52f90e1957db3b79bcbf6aed988a5979a77839ee38bf61fc7f769ec99b817e09439a67","ssdeep":"","tlshash":"9e4119c72d014a1fa5bd5191e9a200f36065924e1e4592de983af00f7605b62b2e7337","first_seen":"2026-04-01T23:54:14.857542Z","last_seen":"2026-07-27T12:06:15.850616Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":74,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":72,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.tailwindcss.com/3.4.17","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"104.26.2.143","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.714Z","timestamp":1785153914714,"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":"tailwindcss.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 17 Jul 2026 20:38:38 GMT","end":"Thu, 15 Oct 2026 21:38:35 GMT"},"fingerprint":{"sha1":"AF:4F:AD:59:FA:ED:77:04:0D:32:56:48:B0:E5:1B:38:67:6D:7D:02","sha256":"E7:FC:CF:2D:6A:CC:F5:3C:4C:1E:9D:CD:21:8A:72:A3:DB:7C:B1:50:0F:83:D1:DC:E4:AD:25:90:8F:98:37:0F"}}},"request":{"raw":"GET /3.4.17 HTTP/1.1\r\nHost: cdn.tailwindcss.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\nReferer: https://onchainopt.com/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\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/2 200 \r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\ncontent-type: text/javascript\r\ncache-control: max-age=31536000\r\ncontent-encoding: br\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-cache: MISS\r\nx-vercel-id: fra1::iad1::bj55r-1781146628084-40ce7f37f405\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 4007286\r\nlast-modified: Wed, 01 Jul 2026 01:49:34 GMT\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=5oj1H0VI3VEotdHb66VNmBUTcd5SWRZckLibe6IlvnFvP38%2FjEYaKRYLtiMWW4EpLxbl0jFvpq8MdbjTqudfNhqGDZu85%2FBfmQ0Sz2VC9Le3vNtva4ROs%2Fu1d1L9NzjF9tyGeRE%3D\"}]}\r\ncf-ray: a21b82defe690b49-OSL\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":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":407279,"size_decoded":127120,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (52853)","md5":"7a614b9a197e532c00d09a23b0996b5f","sha1":"1ff1738a40f3716e30e9031b181b0955ae578955","sha256":"176e894661aa9cdc9a5cba6c720044cbbf7b8bd80d1c9a142a7c24b1b6c50d15","sha512":"a67bc26f52d938358471be5671ff4b79e11af4e68b486aaf73a35a4c9bf3777aab51101af81563b4e5b7ba4b04dd8971fcfa9ee2c41fb10a0c1ee5604a99abd6","ssdeep":"12288:fpgrZxSAoNbJb0Wie75aUXGuyQZhK4O0s:RCVoNB0Wie75aUWmnO0s","tlshash":"e8844aa57396702647eb51e850ea1042f2beaa38840c44bcf7edd4da39e5e4440fbf79","first_seen":"2025-07-28T16:58:08.903462Z","last_seen":"2026-07-30T07:31:04.937679Z","times_seen":47207,"resource_available":true,"data":"KCgpPT57dmFyIHF2PU9iamVjdC5jcmVhdGU7dmFyIEhpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgJHY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgTHY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIE12PU9iamVjdC5nZXRQcm90b3R5cGVPZixOdj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBkZj1yPT5IaShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaGY9cj0+e2lmKHR5cGVvZiByZXF1aXJlIT0idW5kZWZpbmVkIilyZXR1cm4gcmVxdWlyZShyKTt0aHJvdyBuZXcgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytyKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX07dmFyIFA9KHIsZSk9PigpPT4ociYmKGU9cihyPTApKSxlKTt2YXIgeD0ocixlKT0+KCk9PihlfHxyKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpLEdlPShyLGUpPT57ZGYocik7Zm9yKHZhciB0IGluIGUpSGkocix0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LEJ2PShyLGUsdCk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgaSBvZiBMdihlKSkhTnYuY2FsbChyLGkpJiZpIT09ImRlZmF1bHQiJiZIaShyLGkse2dldDooKT0+ZVtpXSxlbnVtZXJhYmxlOiEodD0kdihlLGkpKXx8dC5lbnVtZXJhYmxlfSk7cmV0dXJuIHJ9LHBlPXI9PkJ2KGRmKEhpKHIhPW51bGw/cXYoTXYocikpOnt9LCJkZWZhdWx0IixyJiZyLl9fZXNNb2R1bGUmJiJkZWZhdWx0ImluIHI/e2dldDooKT0+ci5kZWZhdWx0LGVudW1lcmFibGU6ITB9Ont2YWx1ZTpyLGVudW1lcmFibGU6ITB9KSkscik7dmFyIG0sdT1QKCgpPT57bT17cGxhdGZvcm06IiIsZW52Ont9LHZlcnNpb25zOntub2RlOiIxNC4xNy42In19fSk7dmFyIEZ2LGJlLGZ0PVAoKCk9Pnt1KCk7RnY9MCxiZT17cmVhZEZpbGVTeW5jOnI9PnNlbGZbcl18fCIiLHN0YXRTeW5jOigpPT4oe210aW1lTXM6RnYrK30pLHByb21pc2VzOntyZWFkRmlsZTpyPT5Qcm9taXNlLnJlc29sdmUoc2VsZltyXXx8IiIpfX19KTt2YXIgRnM9eCgob1AsZ2YpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgbWY9Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7aWYoIShlLm1heFNpemUmJmUubWF4U2l6ZT4wKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4U2l6ZWAgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCIpO2lmKHR5cGVvZiBlLm1heEFnZT09Im51bWJlciImJmUubWF4QWdlPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4QWdlYCBtdXN0IGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwIik7dGhpcy5tYXhTaXplPWUubWF4U2l6ZSx0aGlzLm1heEFnZT1lLm1heEFnZXx8MS8wLHRoaXMub25FdmljdGlvbj1lLm9uRXZpY3Rpb24sdGhpcy5jYWNoZT1uZXcgTWFwLHRoaXMub2xkQ2FjaGU9bmV3IE1hcCx0aGlzLl9zaXplPTB9X2VtaXRFdmljdGlvbnMoZSl7aWYodHlwZW9mIHRoaXMub25FdmljdGlvbj09ImZ1bmN0aW9uIilmb3IobGV0W3QsaV1vZiBlKXRoaXMub25FdmljdGlvbih0LGkudmFsdWUpfV9kZWxldGVJZkV4cGlyZWQoZSx0KXtyZXR1cm4gdHlwZW9mIHQuZXhwaXJ5PT0ibnVtYmVyIiYmdC5leHBpcnk8PURhdGUubm93KCk/KHR5cGVvZiB0aGlzLm9uRXZpY3Rpb249PSJmdW5jdGlvbiImJnRoaXMub25FdmljdGlvbihlLHQudmFsdWUpLHRoaXMuZGVsZXRlKGUpKTohMX1fZ2V0T3JEZWxldGVJZkV4cGlyZWQoZSx0KXtpZih0aGlzLl9kZWxldGVJZkV4cGlyZWQoZSx0KT09PSExKXJldHVybiB0LnZhbHVlfV9nZXRJdGVtVmFsdWUoZSx0KXtyZXR1cm4gdC5leHBpcnk/dGhpcy5fZ2V0T3JEZWxldGVJZkV4cGlyZWQoZSx0KTp0LnZhbHVlfV9wZWVrKGUsdCl7bGV0IGk9dC5nZXQoZSk7cmV0dXJuIHRoaXMuX2dldEl0ZW1WYWx1ZShlLGkpfV9zZXQoZSx0KXt0aGlzLmNhY2hlLnNldChlLHQpLHRoaXMuX3NpemUrKyx0aGlzLl9zaXplPj10aGlzLm1heFNpemUmJih0aGlzLl9zaXplPTAsdGhpcy5fZW1pdEV2aWN0aW9ucyh0aGlzLm9sZENhY2hlKSx0aGlzLm9sZENhY2hlPXRoaXMuY2FjaGUsdGhpcy5jYWNoZT1uZXcgTWFwKX1fbW92ZVRvUmVjZW50KGUsdCl7dGhpcy5vbGRDYWNoZS5kZWxldGUoZSksdGhpcy5fc2V0KGUsdCl9Kl9lbnRyaWVzQXNjZW5kaW5nKCl7Zm9yKGxldCBlIG9mIHRoaXMub2xkQ2FjaGUpe2xldFt0LGldPWU7dGhpcy5jYWNoZS5oYXModCl8fHRoaXMuX2RlbGV0ZUlmRXhwaXJlZCh0LGkpPT09ITEmJih5aWVsZCBlKX1mb3IobGV0IGUgb2YgdGhpcy5jYWNoZSl7bGV0W3QsaV09ZTt0aGlzLl9kZWxldGVJZkV4cGlyZWQodCxpKT09PSExJiYoeWllbGQgZSl9fWdldChlKXtpZih0aGlzLmNhY2hlLmhhcyhlKSl7bGV0IHQ9dGhpcy5jYWNoZS5nZXQoZSk7cmV0dXJuIHRoaXMuX2dldEl0ZW1WYWx1ZShlLHQpfWlmKHRoaXMub2xkQ2FjaGUuaGFzKGUpKXtsZXQgdD10aGlzLm9sZENhY2hlLmdldChlKTtpZih0aGlzLl9kZWxldGVJZkV4cGlyZWQoZSx0KT09PSExKXJldHVybiB0aGlzLl9tb3ZlVG9SZWNlbnQoZSx0KSx0LnZhbHVlfX1zZXQoZSx0LHttYXhBZ2U6aT10aGlzLm1heEFnZT09PTEvMD92b2lkIDA6RGF0ZS5ub3coKSt0aGlzLm1heEFnZX09e30pe3RoaXMuY2FjaGUuaGFzKGUpP3RoaXMuY2FjaGUuc2V0KGUse3ZhbHVlOnQsbWF4QWdlOml9KTp0aGlzLl9zZXQoZSx7dmFsdWU6dCxleHBpcnk6aX0pfWhhcyhlKXtyZXR1cm4gdGhpcy5jYWNoZS5oYXMoZSk/IXRoaXMuX2RlbGV0ZUlmRXhwaXJlZChlLHRoaXMuY2FjaGUuZ2V0KGUpKTp0aGlzLm9sZENhY2hlLmhhcyhlKT8hdGhpcy5fZGVsZXRlSWZFeHBpcmVkKGUsdGhpcy5vbGRDYWNoZS5nZXQoZSkpOiExfXBlZWsoZSl7aWYodGhpcy5jYWNoZS5oYXMoZSkpcmV0dXJuIHRoaXMuX3BlZWsoZSx0aGlzLmNhY2hlKTtpZih0aGlzLm9sZENhY2hlLmhhcyhlKSlyZXR1cm4gdGhpcy5fcGVlayhlLHRoaXMub2xkQ2FjaGUpfWRlbGV0ZShlKXtsZXQgdD10aGlzLmNhY2hlLmRlbGV0ZShlKTtyZXR1cm4gdCYmdGhpcy5fc2l6ZS0tLHRoaXMub2xkQ2FjaGUuZGVsZXRlKGUpfHx0fWNsZWFyKCl7dGhpcy5jYWNoZS5jbGVhcigpLHRoaXMub2xkQ2FjaGUuY2xlYXIoKSx0aGlzLl9zaXplPTB9cmVzaXplKGUpe2lmKCEoZSYmZT4wKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4U2l6ZWAgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCIpO2xldCB0PVsuLi50aGlzLl9lbnRyaWVzQXNjZW5kaW5nKCldLGk9dC5sZW5ndGgtZTtpPDA/KHRoaXMuY2FjaGU9bmV3IE1hcCh0KSx0aGlzLm9sZENhY2hlPW5ldyBNYXAsdGhpcy5fc2l6ZT10Lmxlbmd0aCk6KGk+MCYmdGhpcy5fZW1pdEV2aWN0aW9ucyh0LnNsaWNlKDAsaSkpLHRoaXMub2xkQ2FjaGU9bmV3IE1hcCh0LnNsaWNlKGkpKSx0aGlzLmNhY2hlPW5ldyBNYXAsdGhpcy5fc2l6ZT0wKSx0aGlzLm1heFNpemU9ZX0qa2V5cygpe2ZvcihsZXRbZV1vZiB0aGlzKXlpZWxkIGV9KnZhbHVlcygpe2ZvcihsZXRbLGVdb2YgdGhpcyl5aWVsZCBlfSpbU3ltYm9sLml0ZXJhdG9yXSgpe2ZvcihsZXQgZSBvZiB0aGlzLmNhY2hlKXtsZXRbdCxpXT1lO3RoaXMuX2RlbGV0ZUlmRXhwaXJlZCh0LGkpPT09ITEmJih5aWVsZFt0LGkudmFsdWVdKX1mb3IobGV0IGUgb2YgdGhpcy5vbGRDYWNoZSl7bGV0W3QsaV09ZTt0aGlzLmNhY2hlLmhhcyh0KXx8dGhpcy5fZGVsZXRlSWZFeHBpcmVkKHQsaSk9PT0hMSYmKHlpZWxkW3QsaS52YWx1ZV0pfX0qZW50cmllc0Rlc2NlbmRpbmcoKXtsZXQgZT1bLi4udGhpcy5jYWNoZV07Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDstLXQpe2xldCBpPWVbdF0sW24sc109aTt0aGlzLl9kZWxldGVJZkV4cGlyZWQobixzKT09PSExJiYoeWllbGRbbixzLnZhbHVlXSl9ZT1bLi4udGhpcy5vbGRDYWNoZV07Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDstLXQpe2xldCBpPWVbdF0sW24sc109aTt0aGlzLmNhY2hlLmhhcyhuKXx8dGhpcy5fZGVsZXRlSWZFeHBpcmVkKG4scyk9PT0hMSYmKHlpZWxkW24scy52YWx1ZV0pfX0qZW50cmllc0FzY2VuZGluZygpe2ZvcihsZXRbZSx0XW9mIHRoaXMuX2VudHJpZXNBc2NlbmRpbmcoKSl5aWVsZFtlLHQudmFsdWVdfWdldCBzaXplKCl7aWYoIXRoaXMuX3NpemUpcmV0dXJuIHRoaXMub2xkQ2FjaGUuc2l6ZTtsZXQgZT0wO2ZvcihsZXQgdCBvZiB0aGlzLm9sZENhY2hlLmtleXMoKSl0aGlzLmNhY2hlLmhhcyh0KXx8ZSsrO3JldHVybiBNYXRoLm1pbih0aGlzLl9zaXplK2UsdGhpcy5tYXhTaXplKX19O2dmLmV4cG9ydHM9bWZ9KTt2YXIgeWYsYmY9UCgoKT0+e3UoKTt5Zj1yPT5yJiZyLl9oYXNofSk7ZnVuY3Rpb24gV2kocil7cmV0dXJuIHlmKHIse2lnbm9yZVVua25vd246ITB9KX12YXIgd2Y9UCgoKT0+e3UoKTtiZigpfSk7ZnVuY3Rpb24geHQocil7aWYocj1gJHtyfWAscj09PSIwIilyZXR1cm4iMCI7aWYoL15bKy1dPyhcZCt8XGQqXC5cZCspKGVbKy1dP1xkKyk/KCV8XHcrKT8kLy50ZXN0KHIpKXJldHVybiByLnJlcGxhY2UoL15bKy1dPy8sdD0+dD09PSItIj8iIjoiLSIpO2xldCBlPVsidmFyIiwiY2FsYyIsIm1pbiIsIm1heCIsImNsYW1wIl07Zm9yKGxldCB0IG9mIGUpaWYoci5pbmNsdWRlcyhgJHt0fShgKSlyZXR1cm5gY2FsYygke3J9ICogLTEpYH12YXIgR2k9UCgoKT0+e3UoKX0pO3ZhciB2Zix4Zj1QKCgpPT57dSgpO3ZmPVsicHJlZmxpZ2h0IiwiY29udGFpbmVyIiwiYWNjZXNzaWJpbGl0eSIsInBvaW50ZXJFdmVudHMiLCJ2aXNpYmlsaXR5IiwicG9zaXRpb24iLCJpbnNldCIsImlzb2xhdGlvbiIsInpJbmRleCIsIm9yZGVyIiwiZ3JpZENvbHVtbiIsImdyaWRDb2x1bW5TdGFydCIsImdyaWRDb2x1bW5FbmQiLCJncmlkUm93IiwiZ3JpZFJvd1N0YXJ0IiwiZ3JpZFJvd0VuZCIsImZsb2F0IiwiY2xlYXIiLCJtYXJnaW4iLCJib3hTaXppbmciLCJsaW5lQ2xhbXAiLCJkaXNwbGF5IiwiYXNwZWN0UmF0aW8iLCJzaXplIiwiaGVpZ2h0IiwibWF4SGVpZ2h0IiwibWluSGVpZ2h0Iiwid2lkdGgiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwiZmxleCIsImZsZXhTaHJpbmsiLCJmbGV4R3JvdyIsImZsZXhCYXNpcyIsInRhYmxlTGF5b3V0IiwiY2FwdGlvblNpZGUiLCJib3JkZXJDb2xsYXBzZSIsImJvcmRlclNwYWNpbmciLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ0cmFuc2xhdGUiLCJyb3RhdGUiLCJza2V3Iiwic2NhbGUiLCJ0cmFuc2Zvcm0iLCJhbmltYXRpb24iLCJjdXJzb3IiLCJ0b3VjaEFjdGlvbiIsInVzZXJTZWxlY3QiLCJyZXNpemUiLCJzY3JvbGxTbmFwVHlwZSIsInNjcm9sbFNuYXBBbGlnbiIsInNjcm9sbFNuYXBTdG9wIiwic2Nyb2xsTWFyZ2luIiwic2Nyb2xsUGFkZGluZyIsImxpc3RTdHlsZVBvc2l0aW9uIiwibGlzdFN0eWxlVHlwZSIsImxpc3RTdHlsZUltYWdlIiwiYXBwZWFyYW5jZSIsImNvbHVtbnMiLCJicmVha0JlZm9yZSIsImJyZWFrSW5zaWRlIiwiYnJlYWtBZnRlciIsImdyaWRBdXRvQ29sdW1ucyIsImdyaWRBdXRvRmxvdyIsImdyaWRBdXRvUm93cyIsImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJncmlkVGVtcGxhdGVSb3dzIiwiZmxleERpcmVjdGlvbiIsImZsZXhXcmFwIiwicGxhY2VDb250ZW50IiwicGxhY2VJdGVtcyIsImFsaWduQ29udGVudCIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImp1c3RpZnlJdGVtcyIsImdhcCIsInNwYWNlIiwiZGl2aWRlV2lkdGgiLCJkaXZpZGVTdHlsZSIsImRpdmlkZUNvbG9yIiwiZGl2aWRlT3BhY2l0eSIsInBsYWNlU2VsZiIsImFsaWduU2VsZiIsImp1c3RpZnlTZWxmIiwib3ZlcmZsb3ciLCJvdmVyc2Nyb2xsQmVoYXZpb3IiLCJzY3JvbGxCZWhhdmlvciIsInRleHRPdmVyZmxvdyIsImh5cGhlbnMiLCJ3aGl0ZXNwYWNlIiwidGV4dFdyYXAiLCJ3b3JkQnJlYWsiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJXaWR0aCIsImJvcmRlclN0eWxlIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJPcGFjaXR5IiwiYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZE9wYWNpdHkiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJncmFkaWVudENvbG9yU3RvcHMiLCJib3hEZWNvcmF0aW9uQnJlYWsiLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRBdHRhY2htZW50IiwiYmFja2dyb3VuZENsaXAiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZE9yaWdpbiIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsIm9iamVjdEZpdCIsIm9iamVjdFBvc2l0aW9uIiwicGFkZGluZyIsInRleHRBbGlnbiIsInRleHRJbmRlbnQiLCJ2ZXJ0aWNhbEFsaWduIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInRleHRUcmFuc2Zvcm0iLCJmb250U3R5bGUiLCJmb250VmFyaWFudE51bWVyaWMiLCJsaW5lSGVpZ2h0IiwibGV0dGVyU3BhY2luZyIsInRleHRDb2xvciIsInRleHRPcGFjaXR5IiwidGV4dERlY29yYXRpb24iLCJ0ZXh0RGVjb3JhdGlvbkNvbG9yIiwidGV4dERlY29yYXRpb25TdHlsZSIsInRleHREZWNvcmF0aW9uVGhpY2tuZXNzIiwidGV4dFVuZGVybGluZU9mZnNldCIsImZvbnRTbW9vdGhpbmciLCJwbGFjZWhvbGRlckNvbG9yIiwicGxhY2Vob2xkZXJPcGFjaXR5IiwiY2FyZXRDb2xvciIsImFjY2VudENvbG9yIiwib3BhY2l0eSIsImJhY2tncm91bmRCbGVuZE1vZGUiLCJtaXhCbGVuZE1vZGUiLCJib3hTaGFkb3ciLCJib3hTaGFkb3dDb2xvciIsIm91dGxpbmVTdHlsZSIsIm91dGxpbmVXaWR0aCIsIm91dGxpbmVPZmZzZXQiLCJvdXRsaW5lQ29sb3IiLCJyaW5nV2lkdGgiLCJyaW5nQ29sb3IiLCJyaW5nT3BhY2l0eSIsInJpbmdPZmZzZXRXaWR0aCIsInJpbmdPZmZzZXRDb2xvciIsImJsdXIiLCJicmlnaHRuZXNzIiwiY29udHJhc3QiLCJkcm9wU2hhZG93IiwiZ3JheXNjYWxlIiwiaHVlUm90YXRlIiwiaW52ZXJ0Iiwic2F0dXJhdGUiLCJzZXBpYSIsImZpbHRlciIsImJhY2tkcm9wQmx1ciIsImJhY2tkcm9wQnJpZ2h0bmVzcyIsImJhY2tkcm9wQ29udHJhc3QiLCJiYWNrZHJvcEdyYXlzY2FsZSIsImJhY2tkcm9wSHVlUm90YXRlIiwiYmFja2Ryb3BJbnZlcnQiLCJiYWNrZHJvcE9wYWNpdHkiLCJiYWNrZHJvcFNhdHVyYXRlIiwiYmFja2Ryb3BTZXBpYSIsImJhY2tkcm9wRmlsdGVyIiwidHJhbnNpdGlvblByb3BlcnR5IiwidHJhbnNpdGlvbkRlbGF5IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwid2lsbENoYW5nZSIsImNvbnRhaW4iLCJjb250ZW50IiwiZm9yY2VkQ29sb3JBZGp1c3QiXX0pO2Z1bmN0aW9uIGtmKHIsZSl7cmV0dXJuIHI9PT12b2lkIDA/ZTpBcnJheS5pc0FycmF5KHIpP3I6Wy4uLm5ldyBTZXQoZS5maWx0ZXIoaT0+ciE9PSExJiZyW2ldIT09ITEpLmNvbmNhdChPYmplY3Qua2V5cyhyKS5maWx0ZXIoaT0+cltpXSE9PSExKSkpXX12YXIgU2Y9UCgoKT0+e3UoKX0pO3ZhciBBZj17fTtHZShBZix7ZGVmYXVsdDooKT0+UWV9KTt2YXIgUWUsUWk9UCgoKT0+e3UoKTtRZT1uZXcgUHJveHkoe30se2dldDooKT0+U3RyaW5nfSl9KTtmdW5jdGlvbiBqcyhyLGUsdCl7dHlwZW9mIG0hPSJ1bmRlZmluZWQiJiZtLmVudi5KRVNUX1dPUktFUl9JRHx8dCYmQ2YuaGFzKHQpfHwodCYmQ2YuYWRkKHQpLGNvbnNvbGUud2FybigiIiksZS5mb3JFYWNoKGk9PmNvbnNvbGUud2FybihyLCItIixpKSkpfWZ1bmN0aW9uIHpzKHIpe3JldHVybiBRZS5kaW0ocil9dmFyIENmLEcsQmU9UCgoKT0+e3UoKTtRaSgpO0NmPW5ldyBTZXQ7Rz17aW5mbyhyLGUpe2pzKFFlLmJvbGQoUWUuY3lhbigiaW5mbyIpKSwuLi5BcnJheS5pc0FycmF5KHIpP1tyXTpbZSxyXSl9LHdhcm4ocixlKXtbImNvbnRlbnQtcHJvYmxlbXMiXS5pbmNsdWRlcyhyKXx8anMoUWUuYm9sZChRZS55ZWxsb3coIndhcm4iKSksLi4uQXJyYXkuaXNBcnJheShyKT9bcl06W2Uscl0pfSxyaXNrKHIsZSl7anMoUWUuYm9sZChRZS5tYWdlbnRhKCJyaXNrIikpLC4uLkFycmF5LmlzQXJyYXkocik/W3JdOltlLHJdKX19fSk7dmFyIF9mPXt9O0dlKF9mLHtkZWZhdWx0OigpPT5Vc30pO2Z1bmN0aW9uIHFyKHt2ZXJzaW9uOnIsZnJvbTplLHRvOnR9KXtHLndhcm4oYCR7ZX0tY29sb3ItcmVuYW1lZGAsW2BBcyBvZiBUYWlsd2luZCBDU1MgJHtyfSwgXGAke2V9XGAgaGFzIGJlZW4gcmVuYW1lZCB0byBcYCR7dH1cYC5gLCJVcGRhdGUgeW91ciBjb25maWd1cmF0aW9uIGZpbGUgdG8gc2lsZW5jZSB0aGlzIHdhcm5pbmcuIl0pfXZhciBVcyxWcz1QKCgpPT57dSgpO0JlKCk7VXM9e2luaGVyaXQ6ImluaGVyaXQiLGN1cnJlbnQ6ImN1cnJlbnRDb2xvciIsdHJhbnNwYXJlbnQ6InRyYW5zcGFyZW50IixibGFjazoiIzAwMCIsd2hpdGU6IiNmZmYiLHNsYXRlOns1MDoiI2Y4ZmFmYyIsMTAwOiIjZjFmNWY5IiwyMDA6IiNlMmU4ZjAiLDMwMDoiI2NiZDVlMSIsNDAwOiIjOTRhM2I4Iiw1MDA6IiM2NDc0OGIiLDYwMDoiIzQ3NTU2OSIsNzAwOiIjMzM0MTU1Iiw4MDA6IiMxZTI5M2IiLDkwMDoiIzBmMTcyYSIsOTUwOiIjMDIwNjE3In0sZ3JheTp7NTA6IiNmOWZhZmIiLDEwMDoiI2YzZjRmNiIsMjAwOiIjZTVlN2ViIiwzMDA6IiNkMWQ1ZGIiLDQwMDoiIzljYTNhZiIsNTAwOiIjNmI3MjgwIiw2MDA6IiM0YjU1NjMiLDcwMDoiIzM3NDE1MSIsODAwOiIjMWYyOTM3Iiw5MDA6IiMxMTE4MjciLDk1MDoiIzAzMDcxMiJ9LHppbmM6ezUwOiIjZmFmYWZhIiwxMDA6IiNmNGY0ZjUiLDIwMDoiI2U0ZTRlNyIsMzAwOiIjZDRkNGQ4Iiw0MDA6IiNhMWExYWEiLDUwMDoiIzcxNzE3YSIsNjAwOiIjNTI1MjViIiw3MDA6IiMzZjNmNDYiLDgwMDoiIzI3MjcyYSIsOTAwOiIjMTgxODFiIiw5NTA6IiMwOTA5MGIifSxuZXV0cmFsOns1MDoiI2ZhZmFmYSIsMTAwOiIjZjVmNWY1IiwyMDA6IiNlNWU1ZTUiLDMwMDoiI2Q0ZDRkNCIsNDAwOiIjYTNhM2EzIiw1MDA6IiM3MzczNzMiLDYwMDoiIzUyNTI1MiIsNzAwOiIjNDA0MDQwIiw4MDA6IiMyNjI2MjYiLDkwMDoiIzE3MTcxNyIsOTUwOiIjMGEwYTBhIn0sc3RvbmU6ezUwOiIjZmFmYWY5IiwxMDA6IiNmNWY1ZjQiLDIwMDoiI2U3ZTVlNCIsMzAwOiIjZDZkM2QxIiw0MDA6IiNhOGEyOWUiLDUwMDoiIzc4NzE2YyIsNjAwOiIjNTc1MzRlIiw3MDA6IiM0NDQwM2MiLDgwMDoiIzI5MjUyNCIsOTAwOiIjMWMxOTE3Iiw5NTA6IiMwYzBhMDkifSxyZWQ6ezUwOiIjZmVmMmYyIiwxMDA6IiNmZWUyZTIiLDIwMDoiI2ZlY2FjYSIsMzAwOiIjZmNhNWE1Iiw0MDA6IiNmODcxNzEiLDUwMDoiI2VmNDQ0NCIsNjAwOiIjZGMyNjI2Iiw3MDA6IiNiOTFjMWMiLDgwMDoiIzk5MWIxYiIsOTAwOiIjN2YxZDFkIiw5NTA6IiM0NTBhMGEifSxvcmFuZ2U6ezUwOiIjZmZmN2VkIiwxMDA6IiNmZmVkZDUiLDIwMDoiI2ZlZDdhYSIsMzAwOiIjZmRiYTc0Iiw0MDA6IiNmYjkyM2MiLDUwMDoiI2Y5NzMxNiIsNjAwOiIjZWE1ODBjIiw3MDA6IiNjMjQxMGMiLDgwMDoiIzlhMzQxMiIsOTAwOiIjN2MyZDEyIiw5NTA6IiM0MzE0MDcifSxhbWJlcjp7NTA6IiNmZmZiZWIiLDEwMDoiI2ZlZjNjNyIsMjAwOiIjZmRlNjhhIiwzMDA6IiNmY2QzNGQiLDQwMDoiI2ZiYmYyNCIsNTAwOiIjZjU5ZTBiIiw2MDA6IiNkOTc3MDYiLDcwMDoiI2I0NTMwOSIsODAwOiIjOTI0MDBlIiw5MDA6IiM3ODM1MGYiLDk1MDoiIzQ1MWEwMyJ9LHllbGxvdzp7NTA6IiNmZWZjZTgiLDEwMDoiI2ZlZjljMyIsMjAwOiIjZmVmMDhhIiwzMDA6IiNmZGUwNDciLDQwMDoiI2ZhY2MxNSIsNTAwOiIjZWFiMzA4Iiw2MDA6IiNjYThhMDQiLDcwMDoiI2ExNjIwNyIsODAwOiIjODU0ZDBlIiw5MDA6IiM3MTNmMTIiLDk1MDoiIzQyMjAwNiJ9LGxpbWU6ezUwOiIjZjdmZWU3IiwxMDA6IiNlY2ZjY2IiLDIwMDoiI2Q5Zjk5ZCIsMzAwOiIjYmVmMjY0Iiw0MDA6IiNhM2U2MzUiLDUwMDoiIzg0Y2MxNiIsNjAwOiIjNjVhMzBkIiw3MDA6IiM0ZDdjMGYiLDgwMDoiIzNmNjIxMiIsOTAwOiIjMzY1MzE0Iiw5NTA6IiMxYTJlMDUifSxncmVlbjp7NTA6IiNmMGZkZjQiLDEwMDoiI2RjZmNlNyIsMjAwOiIjYmJmN2QwIiwzMDA6IiM4NmVmYWMiLDQwMDoiIzRhZGU4MCIsNTAwOiIjMjJjNTVlIiw2MDA6IiMxNmEzNGEiLDcwMDoiIzE1ODAzZCIsODAwOiIjMTY2NTM0Iiw5MDA6IiMxNDUzMmQiLDk1MDoiIzA1MmUxNiJ9LGVtZXJhbGQ6ezUwOiIjZWNmZGY1IiwxMDA6IiNkMWZhZTUiLDIwMDoiI2E3ZjNkMCIsMzAwOiIjNmVlN2I3Iiw0MDA6IiMzNGQzOTkiLDUwMDoiIzEwYjk4MSIsNjAwOiIjMDU5NjY5Iiw3MDA6IiMwNDc4NTciLDgwMDoiIzA2NWY0NiIsOTAwOiIjMDY0ZTNiIiw5NTA6IiMwMjJjMjIifSx0ZWFsOns1MDoiI2YwZmRmYSIsMTAwOiIjY2NmYmYxIiwyMDA6IiM5OWY2ZTQiLDMwMDoiIzVlZWFkNCIsNDAwOiIjMmRkNGJmIiw1MDA6IiMxNGI4YTYiLDYwMDoiIzBkOTQ4OCIsNzAwOiIjMGY3NjZlIiw4MDA6IiMxMTVlNTkiLDkwMDoiIzEzNGU0YSIsOTUwOiIjMDQyZjJlIn0sY3lhbjp7NTA6IiNlY2ZlZmYiLDEwMDoiI2NmZmFmZSIsMjAwOiIjYTVmM2ZjIiwzMDA6IiM2N2U4ZjkiLDQwMDoiIzIyZDNlZSIsNTAwOiIjMDZiNmQ0Iiw2MDA6IiMwODkxYjIiLDcwMDoiIzBlNzQ5MCIsODAwOiIjMTU1ZTc1Iiw5MDA6IiMxNjRlNjMiLDk1MDoiIzA4MzM0NCJ9LHNreTp7NTA6IiNmMGY5ZmYiLDEwMDoiI2UwZjJmZSIsMjAwOiIjYmFlNmZkIiwzMDA6IiM3ZGQzZmMiLDQwMDoiIzM4YmRmOCIsNTAwOiIjMGVhNWU5Iiw2MDA6IiMwMjg0YzciLDcwMDoiIzAzNjlhMSIsODAwOiIjMDc1OTg1Iiw5MDA6IiMwYzRhNmUiLDk1MDoiIzA4MmY0OSJ9LGJsdWU6ezUwOiIjZWZmNmZmIiwxMDA6IiNkYmVhZmUiLDIwMDoiI2JmZGJmZSIsMzAwOiIjOTNjNWZkIiw0MDA6IiM2MGE1ZmEiLDUwMDoiIzNiODJmNiIsNjAwOiIjMjU2M2ViIiw3MDA6IiMxZDRlZDgiLDgwMDoiIzFlNDBhZiIsOTAwOiIjMWUzYThhIiw5NTA6IiMxNzI1NTQifSxpbmRpZ286ezUwOiIjZWVmMmZmIiwxMDA6IiNlMGU3ZmYiLDIwMDoiI2M3ZDJmZSIsMzAwOiIjYTViNGZjIiw0MDA6IiM4MThjZjgiLDUwMDoiIzYzNjZmMSIsNjAwOiIjNGY0NmU1Iiw3MDA6IiM0MzM4Y2EiLDgwMDoiIzM3MzBhMyIsOTAwOiIjMzEyZTgxIiw5NTA6IiMxZTFiNGIifSx2aW9sZXQ6ezUwOiIjZjVmM2ZmIiwxMDA6IiNlZGU5ZmUiLDIwMDoiI2RkZDZmZSIsMzAwOiIjYzRiNWZkIiw0MDA6IiNhNzhiZmEiLDUwMDoiIzhiNWNmNiIsNjAwOiIjN2MzYWVkIiw3MDA6IiM2ZDI4ZDkiLDgwMDoiIzViMjFiNiIsOTAwOiIjNGMxZDk1Iiw5NTA6IiMyZTEwNjUifSxwdXJwbGU6ezUwOiIjZmFmNWZmIiwxMDA6IiNmM2U4ZmYiLDIwMDoiI2U5ZDVmZiIsMzAwOiIjZDhiNGZlIiw0MDA6IiNjMDg0ZmMiLDUwMDoiI2E4NTVmNyIsNjAwOiIjOTMzM2VhIiw3MDA6IiM3ZTIyY2UiLDgwMDoiIzZiMjFhOCIsOTAwOiIjNTgxYzg3Iiw5NTA6IiMzYjA3NjQifSxmdWNoc2lhOns1MDoiI2ZkZjRmZiIsMTAwOiIjZmFlOGZmIiwyMDA6IiNmNWQwZmUiLDMwMDoiI2YwYWJmYyIsNDAwOiIjZTg3OWY5Iiw1MDA6IiNkOTQ2ZWYiLDYwMDoiI2MwMjZkMyIsNzAwOiIjYTIxY2FmIiw4MDA6IiM4NjE5OGYiLDkwMDoiIzcwMWE3NSIsOTUwOiIjNGEwNDRlIn0scGluazp7NTA6IiNmZGYyZjgiLDEwMDoiI2ZjZTdmMyIsMjAwOiIjZmJjZmU4IiwzMDA6IiNmOWE4ZDQiLDQwMDoiI2Y0NzJiNiIsNTAwOiIjZWM0ODk5Iiw2MDA6IiNkYjI3NzciLDcwMDoiI2JlMTg1ZCIsODAwOiIjOWQxNzRkIiw5MDA6IiM4MzE4NDMiLDk1MDoiIzUwMDcyNCJ9LHJvc2U6ezUwOiIjZmZmMWYyIiwxMDA6IiNmZmU0ZTYiLDIwMDoiI2ZlY2RkMyIsMzAwOiIjZmRhNGFmIiw0MDA6IiNmYjcxODUiLDUwMDoiI2Y0M2Y1ZSIsNjAwOiIjZTExZDQ4Iiw3MDA6IiNiZTEyM2MiLDgwMDoiIzlmMTIzOSIsOTAwOiIjODgxMzM3Iiw5NTA6IiM0YzA1MTkifSxnZXQgbGlnaHRCbHVlKCl7cmV0dXJuIHFyKHt2ZXJzaW9uOiJ2Mi4yIixmcm9tOiJsaWdodEJsdWUiLHRvOiJza3kifSksdGhpcy5za3l9LGdldCB3YXJtR3JheSgpe3JldHVybiBxcih7dmVyc2lvbjoidjMuMCIsZnJvbToid2FybUdyYXkiLHRvOiJzdG9uZSJ9KSx0aGlzLnN0b25lfSxnZXQgdHJ1ZUdyYXkoKXtyZXR1cm4gcXIoe3ZlcnNpb246InYzLjAiLGZyb206InRydWVHcmF5Iix0bzoibmV1dHJhbCJ9KSx0aGlzLm5ldXRyYWx9LGdldCBjb29sR3JheSgpe3JldHVybiBxcih7dmVyc2lvbjoidjMuMCIsZnJvbToiY29vbEdyYXkiLHRvOiJncmF5In0pLHRoaXMuZ3JheX0sZ2V0IGJsdWVHcmF5KCl7cmV0dXJuIHFyKHt2ZXJzaW9uOiJ2My4wIixmcm9tOiJibHVlR3JheSIsdG86InNsYXRlIn0pLHRoaXMuc2xhdGV9fX0pO2Z1bmN0aW9uIEhzKHIsLi4uZSl7Zm9yKGxldCB0IG9mIGUpe2ZvcihsZXQgaSBpbiB0KXI/Lmhhc093blByb3BlcnR5Py4oaSl8fChyW2ldPXRbaV0pO2ZvcihsZXQgaSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpKXI/Lmhhc093blByb3BlcnR5Py4oaSl8fChyW2ldPXRbaV0pfXJldHVybiByfXZhciBFZj1QKCgpPT57dSgpfSk7ZnVuY3Rpb24ga3Qocil7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gcjtsZXQgZT1yLnNwbGl0KCJbIikubGVuZ3RoLTEsdD1yLnNwbGl0KCJdIikubGVuZ3RoLTE7aWYoZSE9PXQpdGhyb3cgbmV3IEVycm9yKGBQYXRoIGlzIGludmFsaWQuIEhhcyB1bmJhbGFuY2VkIGJyYWNrZXRzOiAke3J9YCk7cmV0dXJuIHIuc3BsaXQoL1wuKD8hW15cW10qXF0pfFtcW1xdXS9nKS5maWx0ZXIoQm9vbGVhbil9dmFyIFlpPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiB3ZShyLGUpe3JldHVybiBLaS5mdXR1cmUuaW5jbHVkZXMoZSk/ci5mdXR1cmU9PT0iYWxsInx8KHI/LmZ1dHVyZT8uW2VdPz9PZltlXT8/ITEpOktpLmV4cGVyaW1lbnRhbC5pbmNsdWRlcyhlKT9yLmV4cGVyaW1lbnRhbD09PSJhbGwifHwocj8uZXhwZXJpbWVudGFsPy5bZV0/P09mW2VdPz8hMSk6ITF9ZnVuY3Rpb24gVGYocil7cmV0dXJuIHIuZXhwZXJpbWVudGFsPT09ImFsbCI/S2kuZXhwZXJpbWVudGFsOk9iamVjdC5rZXlzKHI/LmV4cGVyaW1lbnRhbD8/e30pLmZpbHRlcihlPT5LaS5leHBlcmltZW50YWwuaW5jbHVkZXMoZSkmJnIuZXhwZXJpbWVudGFsW2VdKX1mdW5jdGlvbiBSZihyKXtpZihtLmVudi5KRVNUX1dPUktFUl9JRD09PXZvaWQgMCYmVGYocikubGVuZ3RoPjApe2xldCBlPVRmKHIpLm1hcCh0PT5RZS55ZWxsb3codCkpLmpvaW4oIiwgIik7Ry53YXJuKCJleHBlcmltZW50YWwtZmxhZ3MtZW5hYmxlZCIsW2BZb3UgaGF2ZSBlbmFibGVkIGV4cGVyaW1lbnRhbCBmZWF0dXJlczogJHtlfWAsIkV4cGVyaW1lbnRhbCBmZWF0dXJlcyBpbiBUYWlsd2luZCBDU1MgYXJlIG5vdCBjb3ZlcmVkIGJ5IHNlbXZlciwgbWF5IGludHJvZHVjZSBicmVha2luZyBjaGFuZ2VzLCBhbmQgY2FuIGNoYW5nZSBhdCBhbnkgdGltZS4iXSl9fXZhciBPZixLaSxjdD1QKCgpPT57dSgpO1FpKCk7QmUoKTtPZj17b3B0aW1pemVVbml2ZXJzYWxEZWZhdWx0czohMSxnZW5lcmFsaXplZE1vZGlmaWVyczohMCxkaXNhYmxlQ29sb3JPcGFjaXR5VXRpbGl0aWVzQnlEZWZhdWx0OiExLHJlbGF0aXZlQ29udGVudFBhdGhzQnlEZWZhdWx0OiExfSxLaT17ZnV0dXJlOlsiaG92ZXJPbmx5V2hlblN1cHBvcnRlZCIsInJlc3BlY3REZWZhdWx0UmluZ0NvbG9yT3BhY2l0eSIsImRpc2FibGVDb2xvck9wYWNpdHlVdGlsaXRpZXNCeURlZmF1bHQiLCJyZWxhdGl2ZUNvbnRlbnRQYXRoc0J5RGVmYXVsdCJdLGV4cGVyaW1lbnRhbDpbIm9wdGltaXplVW5pdmVyc2FsRGVmYXVsdHMiLCJnZW5lcmFsaXplZE1vZGlmaWVycyJdfX0pO2Z1bmN0aW9uIFBmKHIpeygoKT0+e2lmKHIucHVyZ2V8fCFyLmNvbnRlbnR8fCFBcnJheS5pc0FycmF5KHIuY29udGVudCkmJiEodHlwZW9mIHIuY29udGVudD09Im9iamVjdCImJnIuY29udGVudCE9PW51bGwpKXJldHVybiExO2lmKEFycmF5LmlzQXJyYXkoci5jb250ZW50KSlyZXR1cm4gci5jb250ZW50LmV2ZXJ5KHQ9PnR5cGVvZiB0PT0ic3RyaW5nIj8hMDohKHR5cGVvZiB0Py5yYXchPSJzdHJpbmcifHx0Py5leHRlbnNpb24mJnR5cGVvZiB0Py5leHRlbnNpb24hPSJzdHJpbmciKSk7aWYodHlwZW9mIHIuY29udGVudD09Im9iamVjdCImJnIuY29udGVudCE9PW51bGwpe2lmKE9iamVjdC5rZXlzKHIuY29udGVudCkuc29tZSh0PT4hWyJmaWxlcyIsInJlbGF0aXZlIiwiZXh0cmFjdCIsInRyYW5zZm9ybSJdLmluY2x1ZGVzKHQpKSlyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KHIuY29udGVudC5maWxlcykpe2lmKCFyLmNvbnRlbnQuZmlsZXMuZXZlcnkodD0+dHlwZW9mIHQ9PSJzdHJpbmciPyEwOiEodHlwZW9mIHQ/LnJhdyE9InN0cmluZyJ8fHQ/LmV4dGVuc2lvbiYmdHlwZW9mIHQ/LmV4dGVuc2lvbiE9InN0cmluZyIpKSlyZXR1cm4hMTtpZih0eXBlb2Ygci5jb250ZW50LmV4dHJhY3Q9PSJvYmplY3QiKXtmb3IobGV0IHQgb2YgT2JqZWN0LnZhbHVlcyhyLmNvbnRlbnQuZXh0cmFjdCkpaWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuITF9ZWxzZSBpZighKHIuY29udGVudC5leHRyYWN0PT09dm9pZCAwfHx0eXBlb2Ygci5jb250ZW50LmV4dHJhY3Q9PSJmdW5jdGlvbiIpKXJldHVybiExO2lmKHR5cGVvZiByLmNvbnRlbnQudHJhbnNmb3JtPT0ib2JqZWN0Iil7Zm9yKGxldCB0IG9mIE9iamVjdC52YWx1ZXMoci5jb250ZW50LnRyYW5zZm9ybSkpaWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuITF9ZWxzZSBpZighKHIuY29udGVudC50cmFuc2Zvcm09PT12b2lkIDB8fHR5cGVvZiByLmNvbnRlbnQudHJhbnNmb3JtPT0iZnVuY3Rpb24iKSlyZXR1cm4hMTtpZih0eXBlb2Ygci5jb250ZW50LnJlbGF0aXZlIT0iYm9vbGVhbiImJnR5cGVvZiByLmNvbnRlbnQucmVsYXRpdmUhPSJ1bmRlZmluZWQiKXJldHVybiExfXJldHVybiEwfXJldHVybiExfSkoKXx8Ry53YXJuKCJwdXJnZS1kZXByZWNhdGlvbiIsWyJUaGUgYHB1cmdlYC9gY29udGVudGAgb3B0aW9ucyBoYXZlIGNoYW5nZWQgaW4gVGFpbHdpbmQgQ1NTIHYzLjAuIiwiVXBkYXRlIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlIHRvIGVsaW1pbmF0ZSB0aGlzIHdhcm5pbmcuIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91cGdyYWRlLWd1aWRlI2NvbmZpZ3VyZS1jb250ZW50LXNvdXJjZXMiXSksci5zYWZlbGlzdD0oKCk9PntsZXR7Y29udGVudDp0LHB1cmdlOmksc2FmZWxpc3Q6bn09cjtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uOkFycmF5LmlzQXJyYXkodD8uc2FmZWxpc3QpP3Quc2FmZWxpc3Q6QXJyYXkuaXNBcnJheShpPy5zYWZlbGlzdCk/aS5zYWZlbGlzdDpBcnJheS5pc0FycmF5KGk/Lm9wdGlvbnM/LnNhZmVsaXN0KT9pLm9wdGlvbnMuc2FmZWxpc3Q6W119KSgpLHIuYmxvY2tsaXN0PSgoKT0+e2xldHtibG9ja2xpc3Q6dH09cjtpZihBcnJheS5pc0FycmF5KHQpKXtpZih0LmV2ZXJ5KGk9PnR5cGVvZiBpPT0ic3RyaW5nIikpcmV0dXJuIHQ7Ry53YXJuKCJibG9ja2xpc3QtaW52YWxpZCIsWyJUaGUgYGJsb2NrbGlzdGAgb3B0aW9uIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncy4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRlbnQtY29uZmlndXJhdGlvbiNkaXNjYXJkaW5nLWNsYXNzZXMiXSl9cmV0dXJuW119KSgpLHR5cGVvZiByLnByZWZpeD09ImZ1bmN0aW9uIj8oRy53YXJuKCJwcmVmaXgtZnVuY3Rpb24iLFsiQXMgb2YgVGFpbHdpbmQgQ1NTIHYzLjAsIGBwcmVmaXhgIGNhbm5vdCBiZSBhIGZ1bmN0aW9uLiIsIlVwZGF0ZSBgcHJlZml4YCBpbiB5b3VyIGNvbmZpZ3VyYXRpb24gdG8gYmUgYSBzdHJpbmcgdG8gZWxpbWluYXRlIHRoaXMgd2FybmluZy4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VwZ3JhZGUtZ3VpZGUjcHJlZml4LWNhbm5vdC1iZS1hLWZ1bmN0aW9uIl0pLHIucHJlZml4PSIiKTpyLnByZWZpeD1yLnByZWZpeD8/IiIsci5jb250ZW50PXtyZWxhdGl2ZTooKCk9PntsZXR7Y29udGVudDp0fT1yO3JldHVybiB0Py5yZWxhdGl2ZT90LnJlbGF0aXZlOndlKHIsInJlbGF0aXZlQ29udGVudFBhdGhzQnlEZWZhdWx0Iil9KSgpLGZpbGVzOigoKT0+e2xldHtjb250ZW50OnQscHVyZ2U6aX09cjtyZXR1cm4gQXJyYXkuaXNBcnJheShpKT9pOkFycmF5LmlzQXJyYXkoaT8uY29udGVudCk/aS5jb250ZW50OkFycmF5LmlzQXJyYXkodCk/dDpBcnJheS5pc0FycmF5KHQ/LmNvbnRlbnQpP3QuY29udGVudDpBcnJheS5pc0FycmF5KHQ/LmZpbGVzKT90LmZpbGVzOltdfSkoKSxleHRyYWN0OigoKT0+e2xldCB0PSgoKT0+ci5wdXJnZT8uZXh0cmFjdD9yLnB1cmdlLmV4dHJhY3Q6ci5jb250ZW50Py5leHRyYWN0P3IuY29udGVudC5leHRyYWN0OnIucHVyZ2U/LmV4dHJhY3Q/LkRFRkFVTFQ/ci5wdXJnZS5leHRyYWN0LkRFRkFVTFQ6ci5jb250ZW50Py5leHRyYWN0Py5ERUZBVUxUP3IuY29udGVudC5leHRyYWN0LkRFRkFVTFQ6ci5wdXJnZT8ub3B0aW9ucz8uZXh0cmFjdG9ycz9yLnB1cmdlLm9wdGlvbnMuZXh0cmFjdG9yczpyLmNvbnRlbnQ/Lm9wdGlvbnM/LmV4dHJhY3RvcnM/ci5jb250ZW50Lm9wdGlvbnMuZXh0cmFjdG9yczp7fSkoKSxpPXt9LG49KCgpPT57aWYoci5wdXJnZT8ub3B0aW9ucz8uZGVmYXVsdEV4dHJhY3RvcilyZXR1cm4gci5wdXJnZS5vcHRpb25zLmRlZmF1bHRFeHRyYWN0b3I7aWYoci5jb250ZW50Py5vcHRpb25zPy5kZWZhdWx0RXh0cmFjdG9yKXJldHVybiByLmNvbnRlbnQub3B0aW9ucy5kZWZhdWx0RXh0cmFjdG9yfSkoKTtpZihuIT09dm9pZCAwJiYoaS5ERUZBVUxUPW4pLHR5cGVvZiB0PT0iZnVuY3Rpb24iKWkuREVGQVVMVD10O2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0e2V4dGVuc2lvbnM6cyxleHRyYWN0b3I6YX1vZiB0Pz9bXSlmb3IobGV0IG8gb2YgcylpW29dPWE7ZWxzZSB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsJiZPYmplY3QuYXNzaWduKGksdCk7cmV0dXJuIGl9KSgpLHRyYW5zZm9ybTooKCk9PntsZXQgdD0oKCk9PnIucHVyZ2U/LnRyYW5zZm9ybT9yLnB1cmdlLnRyYW5zZm9ybTpyLmNvbnRlbnQ/LnRyYW5zZm9ybT9yLmNvbnRlbnQudHJhbnNmb3JtOnIucHVyZ2U/LnRyYW5zZm9ybT8uREVGQVVMVD9yLnB1cmdlLnRyYW5zZm9ybS5ERUZBVUxUOnIuY29udGVudD8udHJhbnNmb3JtPy5ERUZBVUxUP3IuY29udGVudC50cmFuc2Zvcm0uREVGQVVMVDp7fSkoKSxpPXt9O3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj9pLkRFRkFVTFQ9dDp0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsJiZPYmplY3QuYXNzaWduKGksdCksaX0pKCl9O2ZvcihsZXQgdCBvZiByLmNvbnRlbnQuZmlsZXMpaWYodHlwZW9mIHQ9PSJzdHJpbmciJiYveyhbXixdKj8pfS9nLnRlc3QodCkpe0cud2FybigiaW52YWxpZC1nbG9iLWJyYWNlcyIsW2BUaGUgZ2xvYiBwYXR0ZXJuICR7enModCl9IGluIHlvdXIgVGFpbHdpbmQgQ1NTIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC5gLGBVcGRhdGUgaXQgdG8gJHt6cyh0LnJlcGxhY2UoL3soW14sXSo/KX0vZywiJDEiKSl9IHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLmBdKTticmVha31yZXR1cm4gcn12YXIgSWY9UCgoKT0+e3UoKTtjdCgpO0JlKCl9KTtmdW5jdGlvbiBrZShyKXtpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocikhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTtsZXQgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocik7cmV0dXJuIGU9PT1udWxsfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsfXZhciBLdD1QKCgpPT57dSgpfSk7ZnVuY3Rpb24gU3Qocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5tYXAoZT0+U3QoZSkpOnR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGw/T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW2UsdF0pPT5bZSxTdCh0KV0pKTpyfXZhciBYaT1QKCgpPT57dSgpfSk7ZnVuY3Rpb24ganQocil7cmV0dXJuIHIucmVwbGFjZSgvXFwsL2csIlxcMmMgIil9dmFyIFppPVAoKCk9Pnt1KCl9KTt2YXIgV3MsRGY9UCgoKT0+e3UoKTtXcz17YWxpY2VibHVlOlsyNDAsMjQ4LDI1NV0sYW50aXF1ZXdoaXRlOlsyNTAsMjM1LDIxNV0sYXF1YTpbMCwyNTUsMjU1XSxhcXVhbWFyaW5lOlsxMjcsMjU1LDIxMl0sYXp1cmU6WzI0MCwyNTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJpc3F1ZTpbMjU1LDIyOCwxOTZdLGJsYWNrOlswLDAsMF0sYmxhbmNoZWRhbG1vbmQ6WzI1NSwyMzUsMjA1XSxibHVlOlswLDAsMjU1XSxibHVldmlvbGV0OlsxMzgsNDMsMjI2XSxicm93bjpbMTY1LDQyLDQyXSxidXJseXdvb2Q6WzIyMiwxODQsMTM1XSxjYWRldGJsdWU6Wzk1LDE1OCwxNjBdLGNoYXJ0cmV1c2U6WzEyNywyNTUsMF0sY2hvY29sYXRlOlsyMTAsMTA1LDMwXSxjb3JhbDpbMjU1LDEyNyw4MF0sY29ybmZsb3dlcmJsdWU6WzEwMCwxNDksMjM3XSxjb3Juc2lsazpbMjU1LDI0OCwyMjBdLGNyaW1zb246WzIyMCwyMCw2MF0sY3lhbjpbMCwyNTUsMjU1XSxkYXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0sZGFya2dvbGRlbnJvZDpbMTg0LDEzNCwxMV0sZGFya2dyYXk6WzE2OSwxNjksMTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtncmV5OlsxNjksMTY5LDE2OV0sZGFya2toYWtpOlsxODksMTgzLDEwN10sZGFya21hZ2VudGE6WzEzOSwwLDEzOV0sZGFya29saXZlZ3JlZW46Wzg1LDEwNyw0N10sZGFya29yYW5nZTpbMjU1LDE0MCwwXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0XSxkYXJrcmVkOlsxMzksMCwwXSxkYXJrc2FsbW9uOlsyMzMsMTUwLDEyMl0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0M10sZGFya3NsYXRlYmx1ZTpbNzIsNjEsMTM5XSxkYXJrc2xhdGVncmF5Ols0Nyw3OSw3OV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzldLGRhcmt0dXJxdW9pc2U6WzAsMjA2LDIwOV0sZGFya3Zpb2xldDpbMTQ4LDAsMjExXSxkZWVwcGluazpbMjU1LDIwLDE0N10sZGVlcHNreWJsdWU6WzAsMTkxLDI1NV0sZGltZ3JheTpbMTA1LDEwNSwxMDVdLGRpbWdyZXk6WzEwNSwxMDUsMTA1XSxkb2RnZXJibHVlOlszMCwxNDQsMjU1XSxmaXJlYnJpY2s6WzE3OCwzNCwzNF0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwXSxmb3Jlc3RncmVlbjpbMzQsMTM5LDM0XSxmdWNoc2lhOlsyNTUsMCwyNTVdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjBdLGdob3N0d2hpdGU6WzI0OCwyNDgsMjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMl0sZ3JheTpbMTI4LDEyOCwxMjhdLGdyZWVuOlswLDEyOCwwXSxncmVlbnllbGxvdzpbMTczLDI1NSw0N10sZ3JleTpbMTI4LDEyOCwxMjhdLGhvbmV5ZGV3OlsyNDAsMjU1LDI0MF0saG90cGluazpbMjU1LDEwNSwxODBdLGluZGlhbnJlZDpbMjA1LDkyLDkyXSxpbmRpZ286Wzc1LDAsMTMwXSxpdm9yeTpbMjU1LDI1NSwyNDBdLGtoYWtpOlsyNDAsMjMwLDE0MF0sbGF2ZW5kZXI6WzIzMCwyMzAsMjUwXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NV0sbGF3bmdyZWVuOlsxMjQsMjUyLDBdLGxlbW9uY2hpZmZvbjpbMjU1LDI1MCwyMDVdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzBdLGxpZ2h0Y29yYWw6WzI0MCwxMjgsMTI4XSxsaWdodGN5YW46WzIyNCwyNTUsMjU1XSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTBdLGxpZ2h0Z3JheTpbMjExLDIxMSwyMTFdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdodGdyZXk6WzIxMSwyMTEsMjExXSxsaWdodHBpbms6WzI1NSwxODIsMTkzXSxsaWdodHNhbG1vbjpbMjU1LDE2MCwxMjJdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzBdLGxpZ2h0c2t5Ymx1ZTpbMTM1LDIwNiwyNTBdLGxpZ2h0c2xhdGVncmF5OlsxMTksMTM2LDE1M10sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzXSxsaWdodHN0ZWVsYmx1ZTpbMTc2LDE5NiwyMjJdLGxpZ2h0eWVsbG93OlsyNTUsMjU1LDIyNF0sbGltZTpbMCwyNTUsMF0sbGltZWdyZWVuOls1MCwyMDUsNTBdLGxpbmVuOlsyNTAsMjQwLDIzMF0sbWFnZW50YTpbMjU1LDAsMjU1XSxtYXJvb246WzEyOCwwLDBdLG1lZGl1bWFxdWFtYXJpbmU6WzEwMiwyMDUsMTcwXSxtZWRpdW1ibHVlOlswLDAsMjA1XSxtZWRpdW1vcmNoaWQ6WzE4Niw4NSwyMTFdLG1lZGl1bXB1cnBsZTpbMTQ3LDExMiwyMTldLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzXSxtZWRpdW1zbGF0ZWJsdWU6WzEyMywxMDQsMjM4XSxtZWRpdW1zcHJpbmdncmVlbjpbMCwyNTAsMTU0XSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDRdLG1lZGl1bXZpb2xldHJlZDpbMTk5LDIxLDEzM10sbWlkbmlnaHRibHVlOlsyNSwyNSwxMTJdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTBdLG1pc3R5cm9zZTpbMjU1LDIyOCwyMjVdLG1vY2Nhc2luOlsyNTUsMjI4LDE4MV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczXSxuYXZ5OlswLDAsMTI4XSxvbGRsYWNlOlsyNTMsMjQ1LDIzMF0sb2xpdmU6WzEyOCwxMjgsMF0sb2xpdmVkcmFiOlsxMDcsMTQyLDM1XSxvcmFuZ2U6WzI1NSwxNjUsMF0sb3JhbmdlcmVkOlsyNTUsNjksMF0sb3JjaGlkOlsyMTgsMTEyLDIxNF0scGFsZWdvbGRlbnJvZDpbMjM4LDIzMiwxNzBdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTJdLHBhbGV0dXJxdW9pc2U6WzE3NSwyMzgsMjM4XSxwYWxldmlvbGV0cmVkOlsyMTksMTEyLDE0N10scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTNdLHBlYWNocHVmZjpbMjU1LDIxOCwxODVdLHBlcnU6WzIwNSwxMzMsNjNdLHBpbms6WzI1NSwxOTIsMjAzXSxwbHVtOlsyMjEsMTYwLDIyMV0scG93ZGVyYmx1ZTpbMTc2LDIyNCwyMzBdLHB1cnBsZTpbMTI4LDAsMTI4XSxyZWJlY2NhcHVycGxlOlsxMDIsNTEsMTUzXSxyZWQ6WzI1NSwwLDBdLHJvc3licm93bjpbMTg4LDE0MywxNDNdLHJveWFsYmx1ZTpbNjUsMTA1LDIyNV0sc2FkZGxlYnJvd246WzEzOSw2OSwxOV0sc2FsbW9uOlsyNTAsMTI4LDExNF0sc2FuZHlicm93bjpbMjQ0LDE2NCw5Nl0sc2VhZ3JlZW46WzQ2LDEzOSw4N10sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4XSxzaWVubmE6WzE2MCw4Miw0NV0sc2lsdmVyOlsxOTIsMTkyLDE5Ml0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzVdLHNsYXRlYmx1ZTpbMTA2LDkwLDIwNV0sc2xhdGVncmF5OlsxMTIsMTI4LDE0NF0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NF0sc25vdzpbMjU1LDI1MCwyNTBdLHNwcmluZ2dyZWVuOlswLDI1NSwxMjddLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MF0sdGFuOlsyMTAsMTgwLDE0MF0sdGVhbDpbMCwxMjgsMTI4XSx0aGlzdGxlOlsyMTYsMTkxLDIxNl0sdG9tYXRvOlsyNTUsOTksNzFdLHR1cnF1b2lzZTpbNjQsMjI0LDIwOF0sdmlvbGV0OlsyMzgsMTMwLDIzOF0sd2hlYXQ6WzI0NSwyMjIsMTc5XSx3aGl0ZTpbMjU1LDI1NSwyNTVdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1XSx5ZWxsb3c6WzI1NSwyNTUsMF0seWVsbG93Z3JlZW46WzE1NCwyMDUsNTBdfX0pO2Z1bmN0aW9uICRyKHIse2xvb3NlOmU9ITF9PXt9KXtpZih0eXBlb2YgciE9InN0cmluZyIpcmV0dXJuIG51bGw7aWYocj1yLnRyaW0oKSxyPT09InRyYW5zcGFyZW50IilyZXR1cm57bW9kZToicmdiIixjb2xvcjpbIjAiLCIwIiwiMCJdLGFscGhhOiIwIn07aWYociBpbiBXcylyZXR1cm57bW9kZToicmdiIixjb2xvcjpXc1tyXS5tYXAocz0+cy50b1N0cmluZygpKX07bGV0IHQ9ci5yZXBsYWNlKHp2LChzLGEsbyxsLGMpPT5bIiMiLGEsYSxvLG8sbCxsLGM/YytjOiIiXS5qb2luKCIiKSkubWF0Y2goanYpO2lmKHQhPT1udWxsKXJldHVybnttb2RlOiJyZ2IiLGNvbG9yOltwYXJzZUludCh0WzFdLDE2KSxwYXJzZUludCh0WzJdLDE2KSxwYXJzZUludCh0WzNdLDE2KV0ubWFwKHM9PnMudG9TdHJpbmcoKSksYWxwaGE6dFs0XT8ocGFyc2VJbnQodFs0XSwxNikvMjU1KS50b1N0cmluZygpOnZvaWQgMH07bGV0IGk9ci5tYXRjaChVdik/P3IubWF0Y2goVnYpO2lmKGk9PT1udWxsKXJldHVybiBudWxsO2xldCBuPVtpWzJdLGlbM10saVs0XV0uZmlsdGVyKEJvb2xlYW4pLm1hcChzPT5zLnRvU3RyaW5nKCkpO3JldHVybiBuLmxlbmd0aD09PTImJm5bMF0uc3RhcnRzV2l0aCgidmFyKCIpP3ttb2RlOmlbMV0sY29sb3I6W25bMF1dLGFscGhhOm5bMV19OiFlJiZuLmxlbmd0aCE9PTN8fG4ubGVuZ3RoPDMmJiFuLnNvbWUocz0+L152YXJcKC4qP1wpJC8udGVzdChzKSk/bnVsbDp7bW9kZTppWzFdLGNvbG9yOm4sYWxwaGE6aVs1XT8udG9TdHJpbmc/LigpfX1mdW5jdGlvbiBHcyh7bW9kZTpyLGNvbG9yOmUsYWxwaGE6dH0pe2xldCBpPXQhPT12b2lkIDA7cmV0dXJuIHI9PT0icmdiYSJ8fHI9PT0iaHNsYSI/YCR7cn0oJHtlLmpvaW4oIiwgIil9JHtpP2AsICR7dH1gOiIifSlgOmAke3J9KCR7ZS5qb2luKCIgIil9JHtpP2AgLyAke3R9YDoiIn0pYH12YXIganYsenYsQXQsSmkscWYsQ3QsVXYsVnYsUXM9UCgoKT0+e3UoKTtEZigpO2p2PS9eIyhbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KT8kL2ksenY9L14jKFthLWZcZF0pKFthLWZcZF0pKFthLWZcZF0pKFthLWZcZF0pPyQvaSxBdD0vKD86XGQrfFxkKlwuXGQrKSU/LyxKaT0vKD86XHMqLFxzKnxccyspLyxxZj0vXHMqWywvXVxzKi8sQ3Q9L3ZhclwoLS0oPzpbXiApXSo/KSg/OiwoPzpbXiApXSo/fHZhclwoLS1bXiApXSo/XCkpKT9cKS8sVXY9bmV3IFJlZ0V4cChgXihyZ2JhPylcXChcXHMqKCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKD86JHtKaS5zb3VyY2V9KCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKT8oPzoke0ppLnNvdXJjZX0oJHtBdC5zb3VyY2V9fCR7Q3Quc291cmNlfSkpPyg/OiR7cWYuc291cmNlfSgke0F0LnNvdXJjZX18JHtDdC5zb3VyY2V9KSk/XFxzKlxcKSRgKSxWdj1uZXcgUmVnRXhwKGBeKGhzbGE/KVxcKFxccyooKD86JHtBdC5zb3VyY2V9KSg/OmRlZ3xyYWR8Z3JhZHx0dXJuKT98JHtDdC5zb3VyY2V9KSg/OiR7Smkuc291cmNlfSgke0F0LnNvdXJjZX18JHtDdC5zb3VyY2V9KSk/KD86JHtKaS5zb3VyY2V9KCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKT8oPzoke3FmLnNvdXJjZX0oJHtBdC5zb3VyY2V9fCR7Q3Quc291cmNlfSkpP1xccypcXCkkYCl9KTtmdW5jdGlvbiBKZShyLGUsdCl7aWYodHlwZW9mIHI9PSJmdW5jdGlvbiIpcmV0dXJuIHIoe29wYWNpdHlWYWx1ZTplfSk7bGV0IGk9JHIocix7bG9vc2U6ITB9KTtyZXR1cm4gaT09PW51bGw/dDpHcyh7Li4uaSxhbHBoYTplfSl9ZnVuY3Rpb24gQWUoe2NvbG9yOnIscHJvcGVydHk6ZSx2YXJpYWJsZTp0fSl7bGV0IGk9W10uY29uY2F0KGUpO2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXJldHVybntbdF06IjEiLC4uLk9iamVjdC5mcm9tRW50cmllcyhpLm1hcChzPT5bcyxyKHtvcGFjaXR5VmFyaWFibGU6dCxvcGFjaXR5VmFsdWU6YHZhcigke3R9LCAxKWB9KV0pKX07bGV0IG49JHIocik7cmV0dXJuIG49PT1udWxsP09iamVjdC5mcm9tRW50cmllcyhpLm1hcChzPT5bcyxyXSkpOm4uYWxwaGEhPT12b2lkIDA/T2JqZWN0LmZyb21FbnRyaWVzKGkubWFwKHM9PltzLHJdKSk6e1t0XToiMSIsLi4uT2JqZWN0LmZyb21FbnRyaWVzKGkubWFwKHM9PltzLEdzKHsuLi5uLGFscGhhOmB2YXIoJHt0fSwgMSlgfSldKSl9fXZhciBMcj1QKCgpPT57dSgpO1FzKCl9KTtmdW5jdGlvbiB2ZShyLGUpe2xldCB0PVtdLGk9W10sbj0wLHM9ITE7Zm9yKGxldCBhPTA7YTxyLmxlbmd0aDthKyspe2xldCBvPXJbYV07dC5sZW5ndGg9PT0wJiZvPT09ZVswXSYmIXMmJihlLmxlbmd0aD09PTF8fHIuc2xpY2UoYSxhK2UubGVuZ3RoKT09PWUpJiYoaS5wdXNoKHIuc2xpY2UobixhKSksbj1hK2UubGVuZ3RoKSxzPXM/ITE6bz09PSJcXCIsbz09PSIoInx8bz09PSJbInx8bz09PSJ7Ij90LnB1c2gobyk6KG89PT0iKSImJnRbdC5sZW5ndGgtMV09PT0iKCJ8fG89PT0iXSImJnRbdC5sZW5ndGgtMV09PT0iWyJ8fG89PT0ifSImJnRbdC5sZW5ndGgtMV09PT0ieyIpJiZ0LnBvcCgpfXJldHVybiBpLnB1c2goci5zbGljZShuKSksaX12YXIgenQ9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIGVuKHIpe3JldHVybiB2ZShyLCIsIikubWFwKHQ9PntsZXQgaT10LnRyaW0oKSxuPXtyYXc6aX0scz1pLnNwbGl0KFd2KSxhPW5ldyBTZXQ7Zm9yKGxldCBvIG9mIHMpJGYubGFzdEluZGV4PTAsIWEuaGFzKCJLRVlXT1JEIikmJkh2LmhhcyhvKT8obi5rZXl3b3JkPW8sYS5hZGQoIktFWVdPUkQiKSk6JGYudGVzdChvKT9hLmhhcygiWCIpP2EuaGFzKCJZIik/YS5oYXMoIkJMVVIiKT9hLmhhcygiU1BSRUFEIil8fChuLnNwcmVhZD1vLGEuYWRkKCJTUFJFQUQiKSk6KG4uYmx1cj1vLGEuYWRkKCJCTFVSIikpOihuLnk9byxhLmFkZCgiWSIpKToobi54PW8sYS5hZGQoIlgiKSk6bi5jb2xvcj8obi51bmtub3dufHwobi51bmtub3duPVtdKSxuLnVua25vd24ucHVzaChvKSk6bi5jb2xvcj1vO3JldHVybiBuLnZhbGlkPW4ueCE9PXZvaWQgMCYmbi55IT09dm9pZCAwLG59KX1mdW5jdGlvbiBMZihyKXtyZXR1cm4gci5tYXAoZT0+ZS52YWxpZD9bZS5rZXl3b3JkLGUueCxlLnksZS5ibHVyLGUuc3ByZWFkLGUuY29sb3JdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgIik6ZS5yYXcpLmpvaW4oIiwgIil9dmFyIEh2LFd2LCRmLFlzPVAoKCk9Pnt1KCk7enQoKTtIdj1uZXcgU2V0KFsiaW5zZXQiLCJpbmhlcml0IiwiaW5pdGlhbCIsInJldmVydCIsInVuc2V0Il0pLFd2PS9cICsoPyFbXihdKlwpKS9nLCRmPS9eLT8oXGQrfFwuXGQrKSguKj8pJC9nfSk7ZnVuY3Rpb24gS3Mocil7cmV0dXJuIEd2LnNvbWUoZT0+bmV3IFJlZ0V4cChgXiR7ZX1cXCguKlxcKWApLnRlc3QocikpfWZ1bmN0aW9uIEsocixlPW51bGwsdD0hMCl7bGV0IGk9ZSYmUXYuaGFzKGUucHJvcGVydHkpO3JldHVybiByLnN0YXJ0c1dpdGgoIi0tIikmJiFpP2B2YXIoJHtyfSlgOnIuaW5jbHVkZXMoInVybCgiKT9yLnNwbGl0KC8odXJsXCguKj9cKSkvZykuZmlsdGVyKEJvb2xlYW4pLm1hcChuPT4vXnVybFwoLio/XCkkLy50ZXN0KG4pP246SyhuLGUsITEpKS5qb2luKCIiKToocj1yLnJlcGxhY2UoLyhbXlxcXSlfKy9nLChuLHMpPT5zKyIgIi5yZXBlYXQobi5sZW5ndGgtMSkpLnJlcGxhY2UoL15fL2csIiAiKS5yZXBsYWNlKC9cXF8vZywiXyIpLHQmJihyPXIudHJpbSgpKSxyPVl2KHIpLHIpfWZ1bmN0aW9uIFllKHIpe3JldHVybiByLmluY2x1ZGVzKCI9IikmJihyPXIucmVwbGFjZSgvKD0uKikvZywoZSx0KT0+e2lmKHRbMV09PT0iJyJ8fHRbMV09PT0nIicpcmV0dXJuIHQ7aWYodC5sZW5ndGg+Mil7bGV0IGk9dFt0Lmxlbmd0aC0xXTtpZih0W3QubGVuZ3RoLTJdPT09IiAiJiYoaT09PSJpInx8aT09PSJJInx8aT09PSJzInx8aT09PSJTIikpcmV0dXJuYD0iJHt0LnNsaWNlKDEsLTIpfSIgJHt0W3QubGVuZ3RoLTFdfWB9cmV0dXJuYD0iJHt0LnNsaWNlKDEpfSJgfSkpLHJ9ZnVuY3Rpb24gWXYocil7bGV0IGU9WyJ0aGVtZSJdLHQ9WyJtaW4tY29udGVudCIsIm1heC1jb250ZW50IiwiZml0LWNvbnRlbnQiLCJzYWZlLWFyZWEtaW5zZXQtdG9wIiwic2FmZS1hcmVhLWluc2V0LXJpZ2h0Iiwic2FmZS1hcmVhLWluc2V0LWJvdHRvbSIsInNhZmUtYXJlYS1pbnNldC1sZWZ0IiwidGl0bGViYXItYXJlYS14IiwidGl0bGViYXItYXJlYS15IiwidGl0bGViYXItYXJlYS13aWR0aCIsInRpdGxlYmFyLWFyZWEtaGVpZ2h0Iiwia2V5Ym9hcmQtaW5zZXQtdG9wIiwia2V5Ym9hcmQtaW5zZXQtcmlnaHQiLCJrZXlib2FyZC1pbnNldC1ib3R0b20iLCJrZXlib2FyZC1pbnNldC1sZWZ0Iiwia2V5Ym9hcmQtaW5zZXQtd2lkdGgiLCJrZXlib2FyZC1pbnNldC1oZWlnaHQiLCJyYWRpYWwtZ3JhZGllbnQiLCJsaW5lYXItZ3JhZGllbnQiLCJjb25pYy1ncmFkaWVudCIsInJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQiLCJyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50IiwicmVwZWF0aW5nLWNvbmljLWdyYWRpZW50IiwiYW5jaG9yLXNpemUiXTtyZXR1cm4gci5yZXBsYWNlKC8oY2FsY3xtaW58bWF4fGNsYW1wKVwoLitcKS9nLGk9PntsZXQgbj0iIjtmdW5jdGlvbiBzKCl7bGV0IGE9bi50cmltRW5kKCk7cmV0dXJuIGFbYS5sZW5ndGgtMV19Zm9yKGxldCBhPTA7YTxpLmxlbmd0aDthKyspe2xldCBvPWZ1bmN0aW9uKGYpe3JldHVybiBmLnNwbGl0KCIiKS5ldmVyeSgoZCxwKT0+aVthK3BdPT09ZCl9LGw9ZnVuY3Rpb24oZil7bGV0IGQ9MS8wO2ZvcihsZXQgaCBvZiBmKXtsZXQgYj1pLmluZGV4T2YoaCxhKTtiIT09LTEmJmI8ZCYmKGQ9Yil9bGV0IHA9aS5zbGljZShhLGQpO3JldHVybiBhKz1wLmxlbmd0aC0xLHB9LGM9aVthXTtpZihvKCJ2YXIiKSluKz1sKFsiKSIsIiwiXSk7ZWxzZSBpZih0LnNvbWUoZj0+byhmKSkpe2xldCBmPXQuZmluZChkPT5vKGQpKTtuKz1mLGErPWYubGVuZ3RoLTF9ZWxzZSBlLnNvbWUoZj0+byhmKSk/bis9bChbIikiXSk6bygiWyIpP24rPWwoWyJdIl0pOlsiKyIsIi0iLCIqIiwiLyJdLmluY2x1ZGVzKGMpJiYhWyIoIiwiKyIsIi0iLCIqIiwiLyIsIiwiXS5pbmNsdWRlcyhzKCkpP24rPWAgJHtjfSBgOm4rPWN9cmV0dXJuIG4ucmVwbGFjZSgvXHMrL2csIiAiKX0pfWZ1bmN0aW9uIFhzKHIpe3JldHVybiByLnN0YXJ0c1dpdGgoInVybCgiKX1mdW5jdGlvbiBacyhyKXtyZXR1cm4haXNOYU4oTnVtYmVyKHIpKXx8S3Mocil9ZnVuY3Rpb24gTXIocil7cmV0dXJuIHIuZW5kc1dpdGgoIiUiKSYmWnMoci5zbGljZSgwLC0xKSl8fEtzKHIpfWZ1bmN0aW9uIE5yKHIpe3JldHVybiByPT09IjAifHxuZXcgUmVnRXhwKGBeWystXT9bMC05XSouP1swLTldKyg/OltlRV1bKy1dP1swLTldKyk/JHtYdn0kYCkudGVzdChyKXx8S3Mocil9ZnVuY3Rpb24gTWYocil7cmV0dXJuIFp2LmhhcyhyKX1mdW5jdGlvbiBOZihyKXtsZXQgZT1lbihLKHIpKTtmb3IobGV0IHQgb2YgZSlpZighdC52YWxpZClyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCZihyKXtsZXQgZT0wO3JldHVybiB2ZShyLCJfIikuZXZlcnkoaT0+KGk9SyhpKSxpLnN0YXJ0c1dpdGgoInZhcigiKT8hMDokcihpLHtsb29zZTohMH0pIT09bnVsbD8oZSsrLCEwKTohMSkpP2U+MDohMX1mdW5jdGlvbiBGZihyKXtsZXQgZT0wO3JldHVybiB2ZShyLCIsIikuZXZlcnkoaT0+KGk9SyhpKSxpLnN0YXJ0c1dpdGgoInZhcigiKT8hMDpYcyhpKXx8ZXgoaSl8fFsiZWxlbWVudCgiLCJpbWFnZSgiLCJjcm9zcy1mYWRlKCIsImltYWdlLXNldCgiXS5zb21lKG49Pmkuc3RhcnRzV2l0aChuKSk/KGUrKywhMCk6ITEpKT9lPjA6ITF9ZnVuY3Rpb24gZXgocil7cj1LKHIpO2ZvcihsZXQgZSBvZiBKdilpZihyLnN0YXJ0c1dpdGgoYCR7ZX0oYCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gamYocil7bGV0IGU9MDtyZXR1cm4gdmUociwiXyIpLmV2ZXJ5KGk9PihpPUsoaSksaS5zdGFydHNXaXRoKCJ2YXIoIik/ITA6dHguaGFzKGkpfHxOcihpKXx8TXIoaSk/KGUrKywhMCk6ITEpKT9lPjA6ITF9ZnVuY3Rpb24gemYocil7bGV0IGU9MDtyZXR1cm4gdmUociwiLCIpLmV2ZXJ5KGk9PihpPUsoaSksaS5zdGFydHNXaXRoKCJ2YXIoIik/ITA6aS5pbmNsdWRlcygiICIpJiYhLyhbJyJdKShbXiInXSspXDEvZy50ZXN0KGkpfHwvXlxkL2cudGVzdChpKT8hMTooZSsrLCEwKSkpP2U+MDohMX1mdW5jdGlvbiBVZihyKXtyZXR1cm4gcnguaGFzKHIpfWZ1bmN0aW9uIFZmKHIpe3JldHVybiBpeC5oYXMocil9ZnVuY3Rpb24gSGYocil7cmV0dXJuIG54LmhhcyhyKX12YXIgR3YsUXYsS3YsWHYsWnYsSnYsdHgscngsaXgsbngsQnI9UCgoKT0+e3UoKTtRcygpO1lzKCk7enQoKTtHdj1bIm1pbiIsIm1heCIsImNsYW1wIiwiY2FsYyJdO1F2PW5ldyBTZXQoWyJzY3JvbGwtdGltZWxpbmUtbmFtZSIsInRpbWVsaW5lLXNjb3BlIiwidmlldy10aW1lbGluZS1uYW1lIiwiZm9udC1wYWxldHRlIiwiYW5jaG9yLW5hbWUiLCJhbmNob3Itc2NvcGUiLCJwb3NpdGlvbi1hbmNob3IiLCJwb3NpdGlvbi10cnktb3B0aW9ucyIsInNjcm9sbC10aW1lbGluZSIsImFuaW1hdGlvbi10aW1lbGluZSIsInZpZXctdGltZWxpbmUiLCJwb3NpdGlvbi10cnkiXSk7S3Y9WyJjbSIsIm1tIiwiUSIsImluIiwicGMiLCJwdCIsInB4IiwiZW0iLCJleCIsImNoIiwicmVtIiwibGgiLCJybGgiLCJ2dyIsInZoIiwidm1pbiIsInZtYXgiLCJ2YiIsInZpIiwic3Z3Iiwic3ZoIiwibHZ3IiwibHZoIiwiZHZ3IiwiZHZoIiwiY3F3IiwiY3FoIiwiY3FpIiwiY3FiIiwiY3FtaW4iLCJjcW1heCJdLFh2PWAoPzoke0t2LmpvaW4oInwiKX0pYDtadj1uZXcgU2V0KFsidGhpbiIsIm1lZGl1bSIsInRoaWNrIl0pO0p2PW5ldyBTZXQoWyJjb25pYy1ncmFkaWVudCIsImxpbmVhci1ncmFkaWVudCIsInJhZGlhbC1ncmFkaWVudCIsInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCIsInJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLCJyZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50Il0pO3R4PW5ldyBTZXQoWyJjZW50ZXIiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiXSk7cng9bmV3IFNldChbInNlcmlmIiwic2Fucy1zZXJpZiIsIm1vbm9zcGFjZSIsImN1cnNpdmUiLCJmYW50YXN5Iiwic3lzdGVtLXVpIiwidWktc2VyaWYiLCJ1aS1zYW5zLXNlcmlmIiwidWktbW9ub3NwYWNlIiwidWktcm91bmRlZCIsIm1hdGgiLCJlbW9qaSIsImZhbmdzb25nIl0pO2l4PW5ldyBTZXQoWyJ4eC1zbWFsbCIsIngtc21hbGwiLCJzbWFsbCIsIm1lZGl1bSIsImxhcmdlIiwieC1sYXJnZSIsInh4LWxhcmdlIiwieHh4LWxhcmdlIl0pO254PW5ldyBTZXQoWyJsYXJnZXIiLCJzbWFsbGVyIl0pfSk7ZnVuY3Rpb24gV2Yocil7bGV0IGU9WyJjb3ZlciIsImNvbnRhaW4iXTtyZXR1cm4gdmUociwiLCIpLmV2ZXJ5KHQ9PntsZXQgaT12ZSh0LCJfIikuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBpLmxlbmd0aD09PTEmJmUuaW5jbHVkZXMoaVswXSk/ITA6aS5sZW5ndGghPT0xJiZpLmxlbmd0aCE9PTI/ITE6aS5ldmVyeShuPT5OcihuKXx8TXIobil8fG49PT0iYXV0byIpfSl9dmFyIEdmPVAoKCk9Pnt1KCk7QnIoKTt6dCgpfSk7ZnVuY3Rpb24gUWYocixlKXtyLndhbGtDbGFzc2VzKHQ9Pnt0LnZhbHVlPWUodC52YWx1ZSksdC5yYXdzJiZ0LnJhd3MudmFsdWUmJih0LnJhd3MudmFsdWU9anQodC5yYXdzLnZhbHVlKSl9KX1mdW5jdGlvbiBZZihyLGUpe2lmKCFfdChyKSlyZXR1cm47bGV0IHQ9ci5zbGljZSgxLC0xKTtpZighIWUodCkpcmV0dXJuIEsodCl9ZnVuY3Rpb24gc3gocixlPXt9LHQpe2xldCBpPWVbcl07aWYoaSE9PXZvaWQgMClyZXR1cm4geHQoaSk7aWYoX3Qocikpe2xldCBuPVlmKHIsdCk7cmV0dXJuIG49PT12b2lkIDA/dm9pZCAwOnh0KG4pfX1mdW5jdGlvbiB0bihyLGU9e30se3ZhbGlkYXRlOnQ9KCk9PiEwfT17fSl7bGV0IGk9ZS52YWx1ZXM/LltyXTtyZXR1cm4gaSE9PXZvaWQgMD9pOmUuc3VwcG9ydHNOZWdhdGl2ZVZhbHVlcyYmci5zdGFydHNXaXRoKCItIik/c3goci5zbGljZSgxKSxlLnZhbHVlcyx0KTpZZihyLHQpfWZ1bmN0aW9uIF90KHIpe3JldHVybiByLnN0YXJ0c1dpdGgoIlsiKSYmci5lbmRzV2l0aCgiXSIpfWZ1bmN0aW9uIEtmKHIpe2xldCBlPXIubGFzdEluZGV4T2YoIi8iKSx0PXIubGFzdEluZGV4T2YoIlsiLGUpLGk9ci5pbmRleE9mKCJdIixlKTtyZXR1cm4gcltlLTFdPT09Il0ifHxyW2UrMV09PT0iWyJ8fHQhPT0tMSYmaSE9PS0xJiZ0PGUmJmU8aSYmKGU9ci5sYXN0SW5kZXhPZigiLyIsdCkpLGU9PT0tMXx8ZT09PXIubGVuZ3RoLTE/W3Isdm9pZCAwXTpfdChyKSYmIXIuaW5jbHVkZXMoIl0vWyIpP1tyLHZvaWQgMF06W3Iuc2xpY2UoMCxlKSxyLnNsaWNlKGUrMSldfWZ1bmN0aW9uIFh0KHIpe2lmKHR5cGVvZiByPT0ic3RyaW5nIiYmci5pbmNsdWRlcygiPGFscGhhLXZhbHVlPiIpKXtsZXQgZT1yO3JldHVybih7b3BhY2l0eVZhbHVlOnQ9MX0pPT5lLnJlcGxhY2UoLzxhbHBoYS12YWx1ZT4vZyx0KX1yZXR1cm4gcn1mdW5jdGlvbiBYZihyKXtyZXR1cm4gSyhyLnNsaWNlKDEsLTEpKX1mdW5jdGlvbiBheChyLGU9e30se3RhaWx3aW5kQ29uZmlnOnQ9e319PXt9KXtpZihlLnZhbHVlcz8uW3JdIT09dm9pZCAwKXJldHVybiBYdChlLnZhbHVlcz8uW3JdKTtsZXRbaSxuXT1LZihyKTtpZihuIT09dm9pZCAwKXtsZXQgcz1lLnZhbHVlcz8uW2ldPz8oX3QoaSk/aS5zbGljZSgxLC0xKTp2b2lkIDApO3JldHVybiBzPT09dm9pZCAwP3ZvaWQgMDoocz1YdChzKSxfdChuKT9KZShzLFhmKG4pKTp0LnRoZW1lPy5vcGFjaXR5Py5bbl09PT12b2lkIDA/dm9pZCAwOkplKHMsdC50aGVtZS5vcGFjaXR5W25dKSl9cmV0dXJuIHRuKHIsZSx7dmFsaWRhdGU6QmZ9KX1mdW5jdGlvbiBveChyLGU9e30pe3JldHVybiBlLnZhbHVlcz8uW3JdfWZ1bmN0aW9uIHFlKHIpe3JldHVybihlLHQpPT50bihlLHQse3ZhbGlkYXRlOnJ9KX1mdW5jdGlvbiBseChyLGUpe2xldCB0PXIuaW5kZXhPZihlKTtyZXR1cm4gdD09PS0xP1t2b2lkIDAscl06W3Iuc2xpY2UoMCx0KSxyLnNsaWNlKHQrMSldfWZ1bmN0aW9uIGVhKHIsZSx0LGkpe2lmKHQudmFsdWVzJiZlIGluIHQudmFsdWVzKWZvcihsZXR7dHlwZTpzfW9mIHI/P1tdKXtsZXQgYT1Kc1tzXShlLHQse3RhaWx3aW5kQ29uZmlnOml9KTtpZihhIT09dm9pZCAwKXJldHVyblthLHMsbnVsbF19aWYoX3QoZSkpe2xldCBzPWUuc2xpY2UoMSwtMSksW2Esb109bHgocywiOiIpO2lmKCEvXltcdy1fXSskL2cudGVzdChhKSlvPXM7ZWxzZSBpZihhIT09dm9pZCAwJiYhWmYuaW5jbHVkZXMoYSkpcmV0dXJuW107aWYoby5sZW5ndGg+MCYmWmYuaW5jbHVkZXMoYSkpcmV0dXJuW3RuKGBbJHtvfV1gLHQpLGEsbnVsbF19bGV0IG49dGEocixlLHQsaSk7Zm9yKGxldCBzIG9mIG4pcmV0dXJuIHM7cmV0dXJuW119ZnVuY3Rpb24qdGEocixlLHQsaSl7bGV0IG49d2UoaSwiZ2VuZXJhbGl6ZWRNb2RpZmllcnMiKSxbcyxhXT1LZihlKTtpZihuJiZ0Lm1vZGlmaWVycyE9bnVsbCYmKHQubW9kaWZpZXJzPT09ImFueSJ8fHR5cGVvZiB0Lm1vZGlmaWVycz09Im9iamVjdCImJihhJiZfdChhKXx8YSBpbiB0Lm1vZGlmaWVycykpfHwocz1lLGE9dm9pZCAwKSxhIT09dm9pZCAwJiZzPT09IiImJihzPSJERUZBVUxUIiksYSE9PXZvaWQgMCYmdHlwZW9mIHQubW9kaWZpZXJzPT0ib2JqZWN0Iil7bGV0IGw9dC5tb2RpZmllcnM/LlthXT8/bnVsbDtsIT09bnVsbD9hPWw6X3QoYSkmJihhPVhmKGEpKX1mb3IobGV0e3R5cGU6bH1vZiByPz9bXSl7bGV0IGM9SnNbbF0ocyx0LHt0YWlsd2luZENvbmZpZzppfSk7YyE9PXZvaWQgMCYmKHlpZWxkW2MsbCxhPz9udWxsXSl9fXZhciBKcyxaZixGcj1QKCgpPT57dSgpO1ppKCk7THIoKTtCcigpO0dpKCk7R2YoKTtjdCgpO0pzPXthbnk6dG4sY29sb3I6YXgsdXJsOnFlKFhzKSxpbWFnZTpxZShGZiksbGVuZ3RoOnFlKE5yKSxwZXJjZW50YWdlOnFlKE1yKSxwb3NpdGlvbjpxZShqZiksbG9va3VwOm94LCJnZW5lcmljLW5hbWUiOnFlKFVmKSwiZmFtaWx5LW5hbWUiOnFlKHpmKSxudW1iZXI6cWUoWnMpLCJsaW5lLXdpZHRoIjpxZShNZiksImFic29sdXRlLXNpemUiOnFlKFZmKSwicmVsYXRpdmUtc2l6ZSI6cWUoSGYpLHNoYWRvdzpxZShOZiksc2l6ZTpxZShXZil9LFpmPU9iamVjdC5rZXlzKEpzKX0pO2Z1bmN0aW9uIFgocil7cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3Ioe30pOnJ9dmFyIHJhPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBadChyKXtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24ganIociwuLi5lKXtsZXQgdD1lLnBvcCgpO2ZvcihsZXQgaSBvZiBlKWZvcihsZXQgbiBpbiBpKXtsZXQgcz10KHJbbl0saVtuXSk7cz09PXZvaWQgMD9rZShyW25dKSYma2UoaVtuXSk/cltuXT1qcih7fSxyW25dLGlbbl0sdCk6cltuXT1pW25dOnJbbl09c31yZXR1cm4gcn1mdW5jdGlvbiB1eChyLC4uLmUpe3JldHVybiBadChyKT9yKC4uLmUpOnJ9ZnVuY3Rpb24gZngocil7cmV0dXJuIHIucmVkdWNlKChlLHtleHRlbmQ6dH0pPT5qcihlLHQsKGksbik9Pmk9PT12b2lkIDA/W25dOkFycmF5LmlzQXJyYXkoaSk/W24sLi4uaV06W24saV0pLHt9KX1mdW5jdGlvbiBjeChyKXtyZXR1cm57Li4uci5yZWR1Y2UoKGUsdCk9PkhzKGUsdCkse30pLGV4dGVuZDpmeChyKX19ZnVuY3Rpb24gSmYocixlKXtpZihBcnJheS5pc0FycmF5KHIpJiZrZShyWzBdKSlyZXR1cm4gci5jb25jYXQoZSk7aWYoQXJyYXkuaXNBcnJheShlKSYma2UoZVswXSkmJmtlKHIpKXJldHVybltyLC4uLmVdO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9ZnVuY3Rpb24gcHgoe2V4dGVuZDpyLC4uLmV9KXtyZXR1cm4ganIoZSxyLCh0LGkpPT4hWnQodCkmJiFpLnNvbWUoWnQpP2pyKHt9LHQsLi4uaSxKZik6KG4scyk9PmpyKHt9LC4uLlt0LC4uLmldLm1hcChhPT51eChhLG4scykpLEpmKSl9ZnVuY3Rpb24qZHgocil7bGV0IGU9a3Qocik7aWYoZS5sZW5ndGg9PT0wfHwoeWllbGQgZSxBcnJheS5pc0FycmF5KHIpKSlyZXR1cm47bGV0IHQ9L14oLio/KVxzKlwvXHMqKFteL10rKSQvLGk9ci5tYXRjaCh0KTtpZihpIT09bnVsbCl7bGV0WyxuLHNdPWksYT1rdChuKTthLmFscGhhPXMseWllbGQgYX19ZnVuY3Rpb24gaHgocil7bGV0IGU9KHQsaSk9Pntmb3IobGV0IG4gb2YgZHgodCkpe2xldCBzPTAsYT1yO2Zvcig7YSE9bnVsbCYmczxuLmxlbmd0aDspYT1hW25bcysrXV0sYT1adChhKSYmKG4uYWxwaGE9PT12b2lkIDB8fHM8PW4ubGVuZ3RoLTEpP2EoZSxpYSk6YTtpZihhIT09dm9pZCAwKXtpZihuLmFscGhhIT09dm9pZCAwKXtsZXQgbz1YdChhKTtyZXR1cm4gSmUobyxuLmFscGhhLFgobykpfXJldHVybiBrZShhKT9TdChhKTphfX1yZXR1cm4gaX07cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx7dGhlbWU6ZSwuLi5pYX0pLE9iamVjdC5rZXlzKHIpLnJlZHVjZSgodCxpKT0+KHRbaV09WnQocltpXSk/cltpXShlLGlhKTpyW2ldLHQpLHt9KX1mdW5jdGlvbiBlYyhyKXtsZXQgZT1bXTtyZXR1cm4gci5mb3JFYWNoKHQ9PntlPVsuLi5lLHRdO2xldCBpPXQ/LnBsdWdpbnM/P1tdO2kubGVuZ3RoIT09MCYmaS5mb3JFYWNoKG49PntuLl9faXNPcHRpb25zRnVuY3Rpb24mJihuPW4oKSksZT1bLi4uZSwuLi5lYyhbbj8uY29uZmlnPz97fV0pXX0pfSksZX1mdW5jdGlvbiBteChyKXtyZXR1cm5bLi4ucl0ucmVkdWNlUmlnaHQoKHQsaSk9Plp0KGkpP2koe2NvcmVQbHVnaW5zOnR9KTprZihpLHQpLHZmKX1mdW5jdGlvbiBneChyKXtyZXR1cm5bLi4ucl0ucmVkdWNlUmlnaHQoKHQsaSk9PlsuLi50LC4uLmldLFtdKX1mdW5jdGlvbiBuYShyKXtsZXQgZT1bLi4uZWMocikse3ByZWZpeDoiIixpbXBvcnRhbnQ6ITEsc2VwYXJhdG9yOiI6In1dO3JldHVybiBQZihIcyh7dGhlbWU6aHgocHgoY3goZS5tYXAodD0+dD8udGhlbWU/P3t9KSkpKSxjb3JlUGx1Z2luczpteChlLm1hcCh0PT50LmNvcmVQbHVnaW5zKSkscGx1Z2luczpneChyLm1hcCh0PT50Py5wbHVnaW5zPz9bXSkpfSwuLi5lKSl9dmFyIGlhLHRjPVAoKCk9Pnt1KCk7R2koKTt4ZigpO1NmKCk7VnMoKTtFZigpO1lpKCk7SWYoKTtLdCgpO1hpKCk7RnIoKTtMcigpO3JhKCk7aWE9e2NvbG9yczpVcyxuZWdhdGl2ZShyKXtyZXR1cm4gT2JqZWN0LmtleXMocikuZmlsdGVyKGU9PnJbZV0hPT0iMCIpLnJlZHVjZSgoZSx0KT0+e2xldCBpPXh0KHJbdF0pO3JldHVybiBpIT09dm9pZCAwJiYoZVtgLSR7dH1gXT1pKSxlfSx7fSl9LGJyZWFrcG9pbnRzKHIpe3JldHVybiBPYmplY3Qua2V5cyhyKS5maWx0ZXIoZT0+dHlwZW9mIHJbZV09PSJzdHJpbmciKS5yZWR1Y2UoKGUsdCk9Pih7Li4uZSxbYHNjcmVlbi0ke3R9YF06clt0XX0pLHt9KX19fSk7dmFyIHJuPXgoKGYzLHJjKT0+e3UoKTtyYy5leHBvcnRzPXtjb250ZW50OltdLHByZXNldHM6W10sZGFya01vZGU6Im1lZGlhIix0aGVtZTp7YWNjZW50Q29sb3I6KHt0aGVtZTpyfSk9Pih7Li4ucigiY29sb3JzIiksYXV0bzoiYXV0byJ9KSxhbmltYXRpb246e25vbmU6Im5vbmUiLHNwaW46InNwaW4gMXMgbGluZWFyIGluZmluaXRlIixwaW5nOiJwaW5nIDFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIGluZmluaXRlIixwdWxzZToicHVsc2UgMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSBpbmZpbml0ZSIsYm91bmNlOiJib3VuY2UgMXMgaW5maW5pdGUifSxhcmlhOntidXN5OididXN5PSJ0cnVlIicsY2hlY2tlZDonY2hlY2tlZD0idHJ1ZSInLGRpc2FibGVkOidkaXNhYmxlZD0idHJ1ZSInLGV4cGFuZGVkOidleHBhbmRlZD0idHJ1ZSInLGhpZGRlbjonaGlkZGVuPSJ0cnVlIicscHJlc3NlZDoncHJlc3NlZD0idHJ1ZSInLHJlYWRvbmx5OidyZWFkb25seT0idHJ1ZSInLHJlcXVpcmVkOidyZXF1aXJlZD0idHJ1ZSInLHNlbGVjdGVkOidzZWxlY3RlZD0idHJ1ZSInfSxhc3BlY3RSYXRpbzp7YXV0bzoiYXV0byIsc3F1YXJlOiIxIC8gMSIsdmlkZW86IjE2IC8gOSJ9LGJhY2tkcm9wQmx1cjooe3RoZW1lOnJ9KT0+cigiYmx1ciIpLGJhY2tkcm9wQnJpZ2h0bmVzczooe3RoZW1lOnJ9KT0+cigiYnJpZ2h0bmVzcyIpLGJhY2tkcm9wQ29udHJhc3Q6KHt0aGVtZTpyfSk9PnIoImNvbnRyYXN0IiksYmFja2Ryb3BHcmF5c2NhbGU6KHt0aGVtZTpyfSk9PnIoImdyYXlzY2FsZSIpLGJhY2tkcm9wSHVlUm90YXRlOih7dGhlbWU6cn0pPT5yKCJodWVSb3RhdGUiKSxiYWNrZHJvcEludmVydDooe3RoZW1lOnJ9KT0+cigiaW52ZXJ0IiksYmFja2Ryb3BPcGFjaXR5Oih7dGhlbWU6cn0pPT5yKCJvcGFjaXR5IiksYmFja2Ryb3BTYXR1cmF0ZTooe3RoZW1lOnJ9KT0+cigic2F0dXJhdGUiKSxiYWNrZHJvcFNlcGlhOih7dGhlbWU6cn0pPT5yKCJzZXBpYSIpLGJhY2tncm91bmRDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIiksYmFja2dyb3VuZEltYWdlOntub25lOiJub25lIiwiZ3JhZGllbnQtdG8tdCI6ImxpbmVhci1ncmFkaWVudCh0byB0b3AsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by10ciI6ImxpbmVhci1ncmFkaWVudCh0byB0b3AgcmlnaHQsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by1yIjoibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIiwiZ3JhZGllbnQtdG8tYnIiOiJsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIiwiZ3JhZGllbnQtdG8tYiI6ImxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by1ibCI6ImxpbmVhci1ncmFkaWVudCh0byBib3R0b20gbGVmdCwgdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKSIsImdyYWRpZW50LXRvLWwiOiJsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKSIsImdyYWRpZW50LXRvLXRsIjoibGluZWFyLWdyYWRpZW50KHRvIHRvcCBsZWZ0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIn0sYmFja2dyb3VuZE9wYWNpdHk6KHt0aGVtZTpyfSk9PnIoIm9wYWNpdHkiKSxiYWNrZ3JvdW5kUG9zaXRpb246e2JvdHRvbToiYm90dG9tIixjZW50ZXI6ImNlbnRlciIsbGVmdDoibGVmdCIsImxlZnQtYm90dG9tIjoibGVmdCBib3R0b20iLCJsZWZ0LXRvcCI6ImxlZnQgdG9wIixyaWdodDoicmlnaHQiLCJyaWdodC1ib3R0b20iOiJyaWdodCBib3R0b20iLCJyaWdodC10b3AiOiJyaWdodCB0b3AiLHRvcDoidG9wIn0sYmFja2dyb3VuZFNpemU6e2F1dG86ImF1dG8iLGNvdmVyOiJjb3ZlciIsY29udGFpbjoiY29udGFpbiJ9LGJsdXI6ezA6IjAiLG5vbmU6IiIsc206IjRweCIsREVGQVVMVDoiOHB4IixtZDoiMTJweCIsbGc6IjE2cHgiLHhsOiIyNHB4IiwiMnhsIjoiNDBweCIsIjN4bCI6IjY0cHgifSxib3JkZXJDb2xvcjooe3RoZW1lOnJ9KT0+KHsuLi5yKCJjb2xvcnMiKSxERUZBVUxUOnIoImNvbG9ycy5ncmF5LjIwMCIsImN1cnJlbnRDb2xvciIpfSksYm9yZGVyT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigib3BhY2l0eSIpLGJvcmRlclJhZGl1czp7bm9uZToiMHB4IixzbToiMC4xMjVyZW0iLERFRkFVTFQ6IjAuMjVyZW0iLG1kOiIwLjM3NXJlbSIsbGc6IjAuNXJlbSIseGw6IjAuNzVyZW0iLCIyeGwiOiIxcmVtIiwiM3hsIjoiMS41cmVtIixmdWxsOiI5OTk5cHgifSxib3JkZXJTcGFjaW5nOih7dGhlbWU6cn0pPT4oey4uLnIoInNwYWNpbmciKX0pLGJvcmRlcldpZHRoOntERUZBVUxUOiIxcHgiLDA6IjBweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LGJveFNoYWRvdzp7c206IjAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpIixERUZBVUxUOiIwIDFweCAzcHggMCByZ2IoMCAwIDAgLyAwLjEpLCAwIDFweCAycHggLTFweCByZ2IoMCAwIDAgLyAwLjEpIixtZDoiMCA0cHggNnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKSwgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKSIsbGc6IjAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKSwgMCA0cHggNnB4IC00cHggcmdiKDAgMCAwIC8gMC4xKSIseGw6IjAgMjBweCAyNXB4IC01cHggcmdiKDAgMCAwIC8gMC4xKSwgMCA4cHggMTBweCAtNnB4IHJnYigwIDAgMCAvIDAuMSkiLCIyeGwiOiIwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjI1KSIsaW5uZXI6Imluc2V0IDAgMnB4IDRweCAwIHJnYigwIDAgMCAvIDAuMDUpIixub25lOiJub25lIn0sYm94U2hhZG93Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGJyaWdodG5lc3M6ezA6IjAiLDUwOiIuNSIsNzU6Ii43NSIsOTA6Ii45Iiw5NToiLjk1IiwxMDA6IjEiLDEwNToiMS4wNSIsMTEwOiIxLjEiLDEyNToiMS4yNSIsMTUwOiIxLjUiLDIwMDoiMiJ9LGNhcmV0Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGNvbG9yczooe2NvbG9yczpyfSk9Pih7aW5oZXJpdDpyLmluaGVyaXQsY3VycmVudDpyLmN1cnJlbnQsdHJhbnNwYXJlbnQ6ci50cmFuc3BhcmVudCxibGFjazpyLmJsYWNrLHdoaXRlOnIud2hpdGUsc2xhdGU6ci5zbGF0ZSxncmF5OnIuZ3JheSx6aW5jOnIuemluYyxuZXV0cmFsOnIubmV1dHJhbCxzdG9uZTpyLnN0b25lLHJlZDpyLnJlZCxvcmFuZ2U6ci5vcmFuZ2UsYW1iZXI6ci5hbWJlcix5ZWxsb3c6ci55ZWxsb3csbGltZTpyLmxpbWUsZ3JlZW46ci5ncmVlbixlbWVyYWxkOnIuZW1lcmFsZCx0ZWFsOnIudGVhbCxjeWFuOnIuY3lhbixza3k6ci5za3ksYmx1ZTpyLmJsdWUsaW5kaWdvOnIuaW5kaWdvLHZpb2xldDpyLnZpb2xldCxwdXJwbGU6ci5wdXJwbGUsZnVjaHNpYTpyLmZ1Y2hzaWEscGluazpyLnBpbmsscm9zZTpyLnJvc2V9KSxjb2x1bW5zOnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwiM3hzIjoiMTZyZW0iLCIyeHMiOiIxOHJlbSIseHM6IjIwcmVtIixzbToiMjRyZW0iLG1kOiIyOHJlbSIsbGc6IjMycmVtIix4bDoiMzZyZW0iLCIyeGwiOiI0MnJlbSIsIjN4bCI6IjQ4cmVtIiwiNHhsIjoiNTZyZW0iLCI1eGwiOiI2NHJlbSIsIjZ4bCI6IjcycmVtIiwiN3hsIjoiODByZW0ifSxjb250YWluZXI6e30sY29udGVudDp7bm9uZToibm9uZSJ9LGNvbnRyYXN0OnswOiIwIiw1MDoiLjUiLDc1OiIuNzUiLDEwMDoiMSIsMTI1OiIxLjI1IiwxNTA6IjEuNSIsMjAwOiIyIn0sY3Vyc29yOnthdXRvOiJhdXRvIixkZWZhdWx0OiJkZWZhdWx0Iixwb2ludGVyOiJwb2ludGVyIix3YWl0OiJ3YWl0Iix0ZXh0OiJ0ZXh0Iixtb3ZlOiJtb3ZlIixoZWxwOiJoZWxwIiwibm90LWFsbG93ZWQiOiJub3QtYWxsb3dlZCIsbm9uZToibm9uZSIsImNvbnRleHQtbWVudSI6ImNvbnRleHQtbWVudSIscHJvZ3Jlc3M6InByb2dyZXNzIixjZWxsOiJjZWxsIixjcm9zc2hhaXI6ImNyb3NzaGFpciIsInZlcnRpY2FsLXRleHQiOiJ2ZXJ0aWNhbC10ZXh0IixhbGlhczoiYWxpYXMiLGNvcHk6ImNvcHkiLCJuby1kcm9wIjoibm8tZHJvcCIsZ3JhYjoiZ3JhYiIsZ3JhYmJpbmc6ImdyYWJiaW5nIiwiYWxsLXNjcm9sbCI6ImFsbC1zY3JvbGwiLCJjb2wtcmVzaXplIjoiY29sLXJlc2l6ZSIsInJvdy1yZXNpemUiOiJyb3ctcmVzaXplIiwibi1yZXNpemUiOiJuLXJlc2l6ZSIsImUtcmVzaXplIjoiZS1yZXNpemUiLCJzLXJlc2l6ZSI6InMtcmVzaXplIiwidy1yZXNpemUiOiJ3LXJlc2l6ZSIsIm5lLXJlc2l6ZSI6Im5lLXJlc2l6ZSIsIm53LXJlc2l6ZSI6Im53LXJlc2l6ZSIsInNlLXJlc2l6ZSI6InNlLXJlc2l6ZSIsInN3LXJlc2l6ZSI6InN3LXJlc2l6ZSIsImV3LXJlc2l6ZSI6ImV3LXJlc2l6ZSIsIm5zLXJlc2l6ZSI6Im5zLXJlc2l6ZSIsIm5lc3ctcmVzaXplIjoibmVzdy1yZXNpemUiLCJud3NlLXJlc2l6ZSI6Im53c2UtcmVzaXplIiwiem9vbS1pbiI6Inpvb20taW4iLCJ6b29tLW91dCI6Inpvb20tb3V0In0sZGl2aWRlQ29sb3I6KHt0aGVtZTpyfSk9PnIoImJvcmRlckNvbG9yIiksZGl2aWRlT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigiYm9yZGVyT3BhY2l0eSIpLGRpdmlkZVdpZHRoOih7dGhlbWU6cn0pPT5yKCJib3JkZXJXaWR0aCIpLGRyb3BTaGFkb3c6e3NtOiIwIDFweCAxcHggcmdiKDAgMCAwIC8gMC4wNSkiLERFRkFVTFQ6WyIwIDFweCAycHggcmdiKDAgMCAwIC8gMC4xKSIsIjAgMXB4IDFweCByZ2IoMCAwIDAgLyAwLjA2KSJdLG1kOlsiMCA0cHggM3B4IHJnYigwIDAgMCAvIDAuMDcpIiwiMCAycHggMnB4IHJnYigwIDAgMCAvIDAuMDYpIl0sbGc6WyIwIDEwcHggOHB4IHJnYigwIDAgMCAvIDAuMDQpIiwiMCA0cHggM3B4IHJnYigwIDAgMCAvIDAuMSkiXSx4bDpbIjAgMjBweCAxM3B4IHJnYigwIDAgMCAvIDAuMDMpIiwiMCA4cHggNXB4IHJnYigwIDAgMCAvIDAuMDgpIl0sIjJ4bCI6IjAgMjVweCAyNXB4IHJnYigwIDAgMCAvIDAuMTUpIixub25lOiIwIDAgIzAwMDAifSxmaWxsOih7dGhlbWU6cn0pPT4oe25vbmU6Im5vbmUiLC4uLnIoImNvbG9ycyIpfSksZmxleDp7MToiMSAxIDAlIixhdXRvOiIxIDEgYXV0byIsaW5pdGlhbDoiMCAxIGF1dG8iLG5vbmU6Im5vbmUifSxmbGV4QmFzaXM6KHt0aGVtZTpyfSk9Pih7YXV0bzoiYXV0byIsLi4ucigic3BhY2luZyIpLCIxLzIiOiI1MCUiLCIxLzMiOiIzMy4zMzMzMzMlIiwiMi8zIjoiNjYuNjY2NjY3JSIsIjEvNCI6IjI1JSIsIjIvNCI6IjUwJSIsIjMvNCI6Ijc1JSIsIjEvNSI6IjIwJSIsIjIvNSI6IjQwJSIsIjMvNSI6IjYwJSIsIjQvNSI6IjgwJSIsIjEvNiI6IjE2LjY2NjY2NyUiLCIyLzYiOiIzMy4zMzMzMzMlIiwiMy82IjoiNTAlIiwiNC82IjoiNjYuNjY2NjY3JSIsIjUvNiI6IjgzLjMzMzMzMyUiLCIxLzEyIjoiOC4zMzMzMzMlIiwiMi8xMiI6IjE2LjY2NjY2NyUiLCIzLzEyIjoiMjUlIiwiNC8xMiI6IjMzLjMzMzMzMyUiLCI1LzEyIjoiNDEuNjY2NjY3JSIsIjYvMTIiOiI1MCUiLCI3LzEyIjoiNTguMzMzMzMzJSIsIjgvMTIiOiI2Ni42NjY2NjclIiwiOS8xMiI6Ijc1JSIsIjEwLzEyIjoiODMuMzMzMzMzJSIsIjExLzEyIjoiOTEuNjY2NjY3JSIsZnVsbDoiMTAwJSJ9KSxmbGV4R3Jvdzp7MDoiMCIsREVGQVVMVDoiMSJ9LGZsZXhTaHJpbms6ezA6IjAiLERFRkFVTFQ6IjEifSxmb250RmFtaWx5OntzYW5zOlsidWktc2Fucy1zZXJpZiIsInN5c3RlbS11aSIsInNhbnMtc2VyaWYiLCciQXBwbGUgQ29sb3IgRW1vamkiJywnIlNlZ29lIFVJIEVtb2ppIicsJyJTZWdvZSBVSSBTeW1ib2wiJywnIk5vdG8gQ29sb3IgRW1vamkiJ10sc2VyaWY6WyJ1aS1zZXJpZiIsIkdlb3JnaWEiLCJDYW1icmlhIiwnIlRpbWVzIE5ldyBSb21hbiInLCJUaW1lcyIsInNlcmlmIl0sbW9ubzpbInVpLW1vbm9zcGFjZSIsIlNGTW9uby1SZWd1bGFyIiwiTWVubG8iLCJNb25hY28iLCJDb25zb2xhcyIsJyJMaWJlcmF0aW9uIE1vbm8iJywnIkNvdXJpZXIgTmV3IicsIm1vbm9zcGFjZSJdfSxmb250U2l6ZTp7eHM6WyIwLjc1cmVtIix7bGluZUhlaWdodDoiMXJlbSJ9XSxzbTpbIjAuODc1cmVtIix7bGluZUhlaWdodDoiMS4yNXJlbSJ9XSxiYXNlOlsiMXJlbSIse2xpbmVIZWlnaHQ6IjEuNXJlbSJ9XSxsZzpbIjEuMTI1cmVtIix7bGluZUhlaWdodDoiMS43NXJlbSJ9XSx4bDpbIjEuMjVyZW0iLHtsaW5lSGVpZ2h0OiIxLjc1cmVtIn1dLCIyeGwiOlsiMS41cmVtIix7bGluZUhlaWdodDoiMnJlbSJ9XSwiM3hsIjpbIjEuODc1cmVtIix7bGluZUhlaWdodDoiMi4yNXJlbSJ9XSwiNHhsIjpbIjIuMjVyZW0iLHtsaW5lSGVpZ2h0OiIyLjVyZW0ifV0sIjV4bCI6WyIzcmVtIix7bGluZUhlaWdodDoiMSJ9XSwiNnhsIjpbIjMuNzVyZW0iLHtsaW5lSGVpZ2h0OiIxIn1dLCI3eGwiOlsiNC41cmVtIix7bGluZUhlaWdodDoiMSJ9XSwiOHhsIjpbIjZyZW0iLHtsaW5lSGVpZ2h0OiIxIn1dLCI5eGwiOlsiOHJlbSIse2xpbmVIZWlnaHQ6IjEifV19LGZvbnRXZWlnaHQ6e3RoaW46IjEwMCIsZXh0cmFsaWdodDoiMjAwIixsaWdodDoiMzAwIixub3JtYWw6IjQwMCIsbWVkaXVtOiI1MDAiLHNlbWlib2xkOiI2MDAiLGJvbGQ6IjcwMCIsZXh0cmFib2xkOiI4MDAiLGJsYWNrOiI5MDAifSxnYXA6KHt0aGVtZTpyfSk9PnIoInNwYWNpbmciKSxncmFkaWVudENvbG9yU3RvcHM6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zOnsiMCUiOiIwJSIsIjUlIjoiNSUiLCIxMCUiOiIxMCUiLCIxNSUiOiIxNSUiLCIyMCUiOiIyMCUiLCIyNSUiOiIyNSUiLCIzMCUiOiIzMCUiLCIzNSUiOiIzNSUiLCI0MCUiOiI0MCUiLCI0NSUiOiI0NSUiLCI1MCUiOiI1MCUiLCI1NSUiOiI1NSUiLCI2MCUiOiI2MCUiLCI2NSUiOiI2NSUiLCI3MCUiOiI3MCUiLCI3NSUiOiI3NSUiLCI4MCUiOiI4MCUiLCI4NSUiOiI4NSUiLCI5MCUiOiI5MCUiLCI5NSUiOiI5NSUiLCIxMDAlIjoiMTAwJSJ9LGdyYXlzY2FsZTp7MDoiMCIsREVGQVVMVDoiMTAwJSJ9LGdyaWRBdXRvQ29sdW1uczp7YXV0bzoiYXV0byIsbWluOiJtaW4tY29udGVudCIsbWF4OiJtYXgtY29udGVudCIsZnI6Im1pbm1heCgwLCAxZnIpIn0sZ3JpZEF1dG9Sb3dzOnthdXRvOiJhdXRvIixtaW46Im1pbi1jb250ZW50IixtYXg6Im1heC1jb250ZW50IixmcjoibWlubWF4KDAsIDFmcikifSxncmlkQ29sdW1uOnthdXRvOiJhdXRvIiwic3Bhbi0xIjoic3BhbiAxIC8gc3BhbiAxIiwic3Bhbi0yIjoic3BhbiAyIC8gc3BhbiAyIiwic3Bhbi0zIjoic3BhbiAzIC8gc3BhbiAzIiwic3Bhbi00Ijoic3BhbiA0IC8gc3BhbiA0Iiwic3Bhbi01Ijoic3BhbiA1IC8gc3BhbiA1Iiwic3Bhbi02Ijoic3BhbiA2IC8gc3BhbiA2Iiwic3Bhbi03Ijoic3BhbiA3IC8gc3BhbiA3Iiwic3Bhbi04Ijoic3BhbiA4IC8gc3BhbiA4Iiwic3Bhbi05Ijoic3BhbiA5IC8gc3BhbiA5Iiwic3Bhbi0xMCI6InNwYW4gMTAgLyBzcGFuIDEwIiwic3Bhbi0xMSI6InNwYW4gMTEgLyBzcGFuIDExIiwic3Bhbi0xMiI6InNwYW4gMTIgLyBzcGFuIDEyIiwic3Bhbi1mdWxsIjoiMSAvIC0xIn0sZ3JpZENvbHVtbkVuZDp7YXV0bzoiYXV0byIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiIsMTM6IjEzIn0sZ3JpZENvbHVtblN0YXJ0OnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwxMzoiMTMifSxncmlkUm93OnthdXRvOiJhdXRvIiwic3Bhbi0xIjoic3BhbiAxIC8gc3BhbiAxIiwic3Bhbi0yIjoic3BhbiAyIC8gc3BhbiAyIiwic3Bhbi0zIjoic3BhbiAzIC8gc3BhbiAzIiwic3Bhbi00Ijoic3BhbiA0IC8gc3BhbiA0Iiwic3Bhbi01Ijoic3BhbiA1IC8gc3BhbiA1Iiwic3Bhbi02Ijoic3BhbiA2IC8gc3BhbiA2Iiwic3Bhbi03Ijoic3BhbiA3IC8gc3BhbiA3Iiwic3Bhbi04Ijoic3BhbiA4IC8gc3BhbiA4Iiwic3Bhbi05Ijoic3BhbiA5IC8gc3BhbiA5Iiwic3Bhbi0xMCI6InNwYW4gMTAgLyBzcGFuIDEwIiwic3Bhbi0xMSI6InNwYW4gMTEgLyBzcGFuIDExIiwic3Bhbi0xMiI6InNwYW4gMTIgLyBzcGFuIDEyIiwic3Bhbi1mdWxsIjoiMSAvIC0xIn0sZ3JpZFJvd0VuZDp7YXV0bzoiYXV0byIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiIsMTM6IjEzIn0sZ3JpZFJvd1N0YXJ0OnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwxMzoiMTMifSxncmlkVGVtcGxhdGVDb2x1bW5zOntub25lOiJub25lIixzdWJncmlkOiJzdWJncmlkIiwxOiJyZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpIiwyOiJyZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpIiwzOiJyZXBlYXQoMywgbWlubWF4KDAsIDFmcikpIiw0OiJyZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpIiw1OiJyZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpIiw2OiJyZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpIiw3OiJyZXBlYXQoNywgbWlubWF4KDAsIDFmcikpIiw4OiJyZXBlYXQoOCwgbWlubWF4KDAsIDFmcikpIiw5OiJyZXBlYXQoOSwgbWlubWF4KDAsIDFmcikpIiwxMDoicmVwZWF0KDEwLCBtaW5tYXgoMCwgMWZyKSkiLDExOiJyZXBlYXQoMTEsIG1pbm1heCgwLCAxZnIpKSIsMTI6InJlcGVhdCgxMiwgbWlubWF4KDAsIDFmcikpIn0sZ3JpZFRlbXBsYXRlUm93czp7bm9uZToibm9uZSIsc3ViZ3JpZDoic3ViZ3JpZCIsMToicmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKSIsMjoicmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKSIsMzoicmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKSIsNDoicmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKSIsNToicmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKSIsNjoicmVwZWF0KDYsIG1pbm1heCgwLCAxZnIpKSIsNzoicmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKSIsODoicmVwZWF0KDgsIG1pbm1heCgwLCAxZnIpKSIsOToicmVwZWF0KDksIG1pbm1heCgwLCAxZnIpKSIsMTA6InJlcGVhdCgxMCwgbWlubWF4KDAsIDFmcikpIiwxMToicmVwZWF0KDExLCBtaW5tYXgoMCwgMWZyKSkiLDEyOiJyZXBlYXQoMTIsIG1pbm1heCgwLCAxZnIpKSJ9LGhlaWdodDooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIiwiMS81IjoiMjAlIiwiMi81IjoiNDAlIiwiMy81IjoiNjAlIiwiNC81IjoiODAlIiwiMS82IjoiMTYuNjY2NjY3JSIsIjIvNiI6IjMzLjMzMzMzMyUiLCIzLzYiOiI1MCUiLCI0LzYiOiI2Ni42NjY2NjclIiwiNS82IjoiODMuMzMzMzMzJSIsZnVsbDoiMTAwJSIsc2NyZWVuOiIxMDB2aCIsc3ZoOiIxMDBzdmgiLGx2aDoiMTAwbHZoIixkdmg6IjEwMGR2aCIsbWluOiJtaW4tY29udGVudCIsbWF4OiJtYXgtY29udGVudCIsZml0OiJmaXQtY29udGVudCJ9KSxodWVSb3RhdGU6ezA6IjBkZWciLDE1OiIxNWRlZyIsMzA6IjMwZGVnIiw2MDoiNjBkZWciLDkwOiI5MGRlZyIsMTgwOiIxODBkZWcifSxpbnNldDooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIixmdWxsOiIxMDAlIn0pLGludmVydDp7MDoiMCIsREVGQVVMVDoiMTAwJSJ9LGtleWZyYW1lczp7c3Bpbjp7dG86e3RyYW5zZm9ybToicm90YXRlKDM2MGRlZykifX0scGluZzp7Ijc1JSwgMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMikiLG9wYWNpdHk6IjAifX0scHVsc2U6eyI1MCUiOntvcGFjaXR5OiIuNSJ9fSxib3VuY2U6eyIwJSwgMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlWSgtMjUlKSIsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImN1YmljLWJlemllcigwLjgsMCwxLDEpIn0sIjUwJSI6e3RyYW5zZm9ybToibm9uZSIsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImN1YmljLWJlemllcigwLDAsMC4yLDEpIn19fSxsZXR0ZXJTcGFjaW5nOnt0aWdodGVyOiItMC4wNWVtIix0aWdodDoiLTAuMDI1ZW0iLG5vcm1hbDoiMGVtIix3aWRlOiIwLjAyNWVtIix3aWRlcjoiMC4wNWVtIix3aWRlc3Q6IjAuMWVtIn0sbGluZUhlaWdodDp7bm9uZToiMSIsdGlnaHQ6IjEuMjUiLHNudWc6IjEuMzc1Iixub3JtYWw6IjEuNSIscmVsYXhlZDoiMS42MjUiLGxvb3NlOiIyIiwzOiIuNzVyZW0iLDQ6IjFyZW0iLDU6IjEuMjVyZW0iLDY6IjEuNXJlbSIsNzoiMS43NXJlbSIsODoiMnJlbSIsOToiMi4yNXJlbSIsMTA6IjIuNXJlbSJ9LGxpc3RTdHlsZVR5cGU6e25vbmU6Im5vbmUiLGRpc2M6ImRpc2MiLGRlY2ltYWw6ImRlY2ltYWwifSxsaXN0U3R5bGVJbWFnZTp7bm9uZToibm9uZSJ9LG1hcmdpbjooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIil9KSxsaW5lQ2xhbXA6ezE6IjEiLDI6IjIiLDM6IjMiLDQ6IjQiLDU6IjUiLDY6IjYifSxtYXhIZWlnaHQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLG5vbmU6Im5vbmUiLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdmgiLHN2aDoiMTAwc3ZoIixsdmg6IjEwMGx2aCIsZHZoOiIxMDBkdmgiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksbWF4V2lkdGg6KHt0aGVtZTpyLGJyZWFrcG9pbnRzOmV9KT0+KHsuLi5yKCJzcGFjaW5nIiksbm9uZToibm9uZSIseHM6IjIwcmVtIixzbToiMjRyZW0iLG1kOiIyOHJlbSIsbGc6IjMycmVtIix4bDoiMzZyZW0iLCIyeGwiOiI0MnJlbSIsIjN4bCI6IjQ4cmVtIiwiNHhsIjoiNTZyZW0iLCI1eGwiOiI2NHJlbSIsIjZ4bCI6IjcycmVtIiwiN3hsIjoiODByZW0iLGZ1bGw6IjEwMCUiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQiLHByb3NlOiI2NWNoIiwuLi5lKHIoInNjcmVlbnMiKSl9KSxtaW5IZWlnaHQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdmgiLHN2aDoiMTAwc3ZoIixsdmg6IjEwMGx2aCIsZHZoOiIxMDBkdmgiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksbWluV2lkdGg6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLGZ1bGw6IjEwMCUiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksb2JqZWN0UG9zaXRpb246e2JvdHRvbToiYm90dG9tIixjZW50ZXI6ImNlbnRlciIsbGVmdDoibGVmdCIsImxlZnQtYm90dG9tIjoibGVmdCBib3R0b20iLCJsZWZ0LXRvcCI6ImxlZnQgdG9wIixyaWdodDoicmlnaHQiLCJyaWdodC1ib3R0b20iOiJyaWdodCBib3R0b20iLCJyaWdodC10b3AiOiJyaWdodCB0b3AiLHRvcDoidG9wIn0sb3BhY2l0eTp7MDoiMCIsNToiMC4wNSIsMTA6IjAuMSIsMTU6IjAuMTUiLDIwOiIwLjIiLDI1OiIwLjI1IiwzMDoiMC4zIiwzNToiMC4zNSIsNDA6IjAuNCIsNDU6IjAuNDUiLDUwOiIwLjUiLDU1OiIwLjU1Iiw2MDoiMC42Iiw2NToiMC42NSIsNzA6IjAuNyIsNzU6IjAuNzUiLDgwOiIwLjgiLDg1OiIwLjg1Iiw5MDoiMC45Iiw5NToiMC45NSIsMTAwOiIxIn0sb3JkZXI6e2ZpcnN0OiItOTk5OSIsbGFzdDoiOTk5OSIsbm9uZToiMCIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiJ9LG91dGxpbmVDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIiksb3V0bGluZU9mZnNldDp7MDoiMHB4IiwxOiIxcHgiLDI6IjJweCIsNDoiNHB4Iiw4OiI4cHgifSxvdXRsaW5lV2lkdGg6ezA6IjBweCIsMToiMXB4IiwyOiIycHgiLDQ6IjRweCIsODoiOHB4In0scGFkZGluZzooe3RoZW1lOnJ9KT0+cigic3BhY2luZyIpLHBsYWNlaG9sZGVyQ29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHBsYWNlaG9sZGVyT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigib3BhY2l0eSIpLHJpbmdDb2xvcjooe3RoZW1lOnJ9KT0+KHtERUZBVUxUOnIoImNvbG9ycy5ibHVlLjUwMCIsIiMzYjgyZjYiKSwuLi5yKCJjb2xvcnMiKX0pLHJpbmdPZmZzZXRDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIikscmluZ09mZnNldFdpZHRoOnswOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHJpbmdPcGFjaXR5Oih7dGhlbWU6cn0pPT4oe0RFRkFVTFQ6IjAuNSIsLi4ucigib3BhY2l0eSIpfSkscmluZ1dpZHRoOntERUZBVUxUOiIzcHgiLDA6IjBweCIsMToiMXB4IiwyOiIycHgiLDQ6IjRweCIsODoiOHB4In0scm90YXRlOnswOiIwZGVnIiwxOiIxZGVnIiwyOiIyZGVnIiwzOiIzZGVnIiw2OiI2ZGVnIiwxMjoiMTJkZWciLDQ1OiI0NWRlZyIsOTA6IjkwZGVnIiwxODA6IjE4MGRlZyJ9LHNhdHVyYXRlOnswOiIwIiw1MDoiLjUiLDEwMDoiMSIsMTUwOiIxLjUiLDIwMDoiMiJ9LHNjYWxlOnswOiIwIiw1MDoiLjUiLDc1OiIuNzUiLDkwOiIuOSIsOTU6Ii45NSIsMTAwOiIxIiwxMDU6IjEuMDUiLDExMDoiMS4xIiwxMjU6IjEuMjUiLDE1MDoiMS41In0sc2NyZWVuczp7c206IjY0MHB4IixtZDoiNzY4cHgiLGxnOiIxMDI0cHgiLHhsOiIxMjgwcHgiLCIyeGwiOiIxNTM2cHgifSxzY3JvbGxNYXJnaW46KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksc2Nyb2xsUGFkZGluZzooe3RoZW1lOnJ9KT0+cigic3BhY2luZyIpLHNlcGlhOnswOiIwIixERUZBVUxUOiIxMDAlIn0sc2tldzp7MDoiMGRlZyIsMToiMWRlZyIsMjoiMmRlZyIsMzoiM2RlZyIsNjoiNmRlZyIsMTI6IjEyZGVnIn0sc3BhY2U6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksc3BhY2luZzp7cHg6IjFweCIsMDoiMHB4IiwuNToiMC4xMjVyZW0iLDE6IjAuMjVyZW0iLDEuNToiMC4zNzVyZW0iLDI6IjAuNXJlbSIsMi41OiIwLjYyNXJlbSIsMzoiMC43NXJlbSIsMy41OiIwLjg3NXJlbSIsNDoiMXJlbSIsNToiMS4yNXJlbSIsNjoiMS41cmVtIiw3OiIxLjc1cmVtIiw4OiIycmVtIiw5OiIyLjI1cmVtIiwxMDoiMi41cmVtIiwxMToiMi43NXJlbSIsMTI6IjNyZW0iLDE0OiIzLjVyZW0iLDE2OiI0cmVtIiwyMDoiNXJlbSIsMjQ6IjZyZW0iLDI4OiI3cmVtIiwzMjoiOHJlbSIsMzY6IjlyZW0iLDQwOiIxMHJlbSIsNDQ6IjExcmVtIiw0ODoiMTJyZW0iLDUyOiIxM3JlbSIsNTY6IjE0cmVtIiw2MDoiMTVyZW0iLDY0OiIxNnJlbSIsNzI6IjE4cmVtIiw4MDoiMjByZW0iLDk2OiIyNHJlbSJ9LHN0cm9rZTooe3RoZW1lOnJ9KT0+KHtub25lOiJub25lIiwuLi5yKCJjb2xvcnMiKX0pLHN0cm9rZVdpZHRoOnswOiIwIiwxOiIxIiwyOiIyIn0sc3VwcG9ydHM6e30sZGF0YTp7fSx0ZXh0Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHRleHREZWNvcmF0aW9uQ29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHRleHREZWNvcmF0aW9uVGhpY2tuZXNzOnthdXRvOiJhdXRvIiwiZnJvbS1mb250IjoiZnJvbS1mb250IiwwOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHRleHRJbmRlbnQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksdGV4dE9wYWNpdHk6KHt0aGVtZTpyfSk9PnIoIm9wYWNpdHkiKSx0ZXh0VW5kZXJsaW5lT2Zmc2V0OnthdXRvOiJhdXRvIiwwOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHRyYW5zZm9ybU9yaWdpbjp7Y2VudGVyOiJjZW50ZXIiLHRvcDoidG9wIiwidG9wLXJpZ2h0IjoidG9wIHJpZ2h0IixyaWdodDoicmlnaHQiLCJib3R0b20tcmlnaHQiOiJib3R0b20gcmlnaHQiLGJvdHRvbToiYm90dG9tIiwiYm90dG9tLWxlZnQiOiJib3R0b20gbGVmdCIsbGVmdDoibGVmdCIsInRvcC1sZWZ0IjoidG9wIGxlZnQifSx0cmFuc2l0aW9uRGVsYXk6ezA6IjBzIiw3NToiNzVtcyIsMTAwOiIxMDBtcyIsMTUwOiIxNTBtcyIsMjAwOiIyMDBtcyIsMzAwOiIzMDBtcyIsNTAwOiI1MDBtcyIsNzAwOiI3MDBtcyIsMWUzOiIxMDAwbXMifSx0cmFuc2l0aW9uRHVyYXRpb246e0RFRkFVTFQ6IjE1MG1zIiwwOiIwcyIsNzU6Ijc1bXMiLDEwMDoiMTAwbXMiLDE1MDoiMTUwbXMiLDIwMDoiMjAwbXMiLDMwMDoiMzAwbXMiLDUwMDoiNTAwbXMiLDcwMDoiNzAwbXMiLDFlMzoiMTAwMG1zIn0sdHJhbnNpdGlvblByb3BlcnR5Ontub25lOiJub25lIixhbGw6ImFsbCIsREVGQVVMVDoiY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXIiLGNvbG9yczoiY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UiLG9wYWNpdHk6Im9wYWNpdHkiLHNoYWRvdzoiYm94LXNoYWRvdyIsdHJhbnNmb3JtOiJ0cmFuc2Zvcm0ifSx0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246e0RFRkFVTFQ6ImN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkiLGxpbmVhcjoibGluZWFyIixpbjoiY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSkiLG91dDoiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLCJpbi1vdXQiOiJjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIn0sdHJhbnNsYXRlOih7dGhlbWU6cn0pPT4oey4uLnIoInNwYWNpbmciKSwiMS8yIjoiNTAlIiwiMS8zIjoiMzMuMzMzMzMzJSIsIjIvMyI6IjY2LjY2NjY2NyUiLCIxLzQiOiIyNSUiLCIyLzQiOiI1MCUiLCIzLzQiOiI3NSUiLGZ1bGw6IjEwMCUifSksc2l6ZTooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIiwiMS81IjoiMjAlIiwiMi81IjoiNDAlIiwiMy81IjoiNjAlIiwiNC81IjoiODAlIiwiMS82IjoiMTYuNjY2NjY3JSIsIjIvNiI6IjMzLjMzMzMzMyUiLCIzLzYiOiI1MCUiLCI0LzYiOiI2Ni42NjY2NjclIiwiNS82IjoiODMuMzMzMzMzJSIsIjEvMTIiOiI4LjMzMzMzMyUiLCIyLzEyIjoiMTYuNjY2NjY3JSIsIjMvMTIiOiIyNSUiLCI0LzEyIjoiMzMuMzMzMzMzJSIsIjUvMTIiOiI0MS42NjY2NjclIiwiNi8xMiI6IjUwJSIsIjcvMTIiOiI1OC4zMzMzMzMlIiwiOC8xMiI6IjY2LjY2NjY2NyUiLCI5LzEyIjoiNzUlIiwiMTAvMTIiOiI4My4zMzMzMzMlIiwiMTEvMTIiOiI5MS42NjY2NjclIixmdWxsOiIxMDAlIixtaW46Im1pbi1jb250ZW50IixtYXg6Im1heC1jb250ZW50IixmaXQ6ImZpdC1jb250ZW50In0pLHdpZHRoOih7dGhlbWU6cn0pPT4oe2F1dG86ImF1dG8iLC4uLnIoInNwYWNpbmciKSwiMS8yIjoiNTAlIiwiMS8zIjoiMzMuMzMzMzMzJSIsIjIvMyI6IjY2LjY2NjY2NyUiLCIxLzQiOiIyNSUiLCIyLzQiOiI1MCUiLCIzLzQiOiI3NSUiLCIxLzUiOiIyMCUiLCIyLzUiOiI0MCUiLCIzLzUiOiI2MCUiLCI0LzUiOiI4MCUiLCIxLzYiOiIxNi42NjY2NjclIiwiMi82IjoiMzMuMzMzMzMzJSIsIjMvNiI6IjUwJSIsIjQvNiI6IjY2LjY2NjY2NyUiLCI1LzYiOiI4My4zMzMzMzMlIiwiMS8xMiI6IjguMzMzMzMzJSIsIjIvMTIiOiIxNi42NjY2NjclIiwiMy8xMiI6IjI1JSIsIjQvMTIiOiIzMy4zMzMzMzMlIiwiNS8xMiI6IjQxLjY2NjY2NyUiLCI2LzEyIjoiNTAlIiwiNy8xMiI6IjU4LjMzMzMzMyUiLCI4LzEyIjoiNjYuNjY2NjY3JSIsIjkvMTIiOiI3NSUiLCIxMC8xMiI6IjgzLjMzMzMzMyUiLCIxMS8xMiI6IjkxLjY2NjY2NyUiLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdnciLHN2dzoiMTAwc3Z3Iixsdnc6IjEwMGx2dyIsZHZ3OiIxMDBkdnciLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksd2lsbENoYW5nZTp7YXV0bzoiYXV0byIsc2Nyb2xsOiJzY3JvbGwtcG9zaXRpb24iLGNvbnRlbnRzOiJjb250ZW50cyIsdHJhbnNmb3JtOiJ0cmFuc2Zvcm0ifSx6SW5kZXg6e2F1dG86ImF1dG8iLDA6IjAiLDEwOiIxMCIsMjA6IjIwIiwzMDoiMzAiLDQwOiI0MCIsNTA6IjUwIn19LHBsdWdpbnM6W119fSk7ZnVuY3Rpb24gbm4ocil7bGV0IGU9KHI/LnByZXNldHM/P1tpYy5kZWZhdWx0XSkuc2xpY2UoKS5yZXZlcnNlKCkuZmxhdE1hcChuPT5ubihuIGluc3RhbmNlb2YgRnVuY3Rpb24/bigpOm4pKSx0PXtyZXNwZWN0RGVmYXVsdFJpbmdDb2xvck9wYWNpdHk6e3RoZW1lOntyaW5nQ29sb3I6KHt0aGVtZTpufSk9Pih7REVGQVVMVDoiIzNiODJmNjdmIiwuLi5uKCJjb2xvcnMiKX0pfX0sZGlzYWJsZUNvbG9yT3BhY2l0eVV0aWxpdGllc0J5RGVmYXVsdDp7Y29yZVBsdWdpbnM6e2JhY2tncm91bmRPcGFjaXR5OiExLGJvcmRlck9wYWNpdHk6ITEsZGl2aWRlT3BhY2l0eTohMSxwbGFjZWhvbGRlck9wYWNpdHk6ITEscmluZ09wYWNpdHk6ITEsdGV4dE9wYWNpdHk6ITF9fX0saT1PYmplY3Qua2V5cyh0KS5maWx0ZXIobj0+d2UocixuKSkubWFwKG49PnRbbl0pO3JldHVybltyLC4uLmksLi4uZV19dmFyIGljLG5jPVAoKCk9Pnt1KCk7aWM9cGUocm4oKSk7Y3QoKX0pO3ZhciBzYz17fTtHZShzYyx7ZGVmYXVsdDooKT0+enJ9KTtmdW5jdGlvbiB6ciguLi5yKXtsZXRbLC4uLmVdPW5uKHJbMF0pO3JldHVybiBuYShbLi4uciwuLi5lXSl9dmFyIHNhPVAoKCk9Pnt1KCk7dGMoKTtuYygpfSk7dmFyIFVyPXt9O0dlKFVyLHtkZWZhdWx0OigpPT5tZX0pO3ZhciBtZSxldD1QKCgpPT57dSgpO21lPXtyZXNvbHZlOnI9PnIsZXh0bmFtZTpyPT4iLiIrci5zcGxpdCgiLiIpLnBvcCgpfX0pO2Z1bmN0aW9uIHNuKHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJnIhPT1udWxsfWZ1bmN0aW9uIGJ4KHIpe3JldHVybiBPYmplY3Qua2V5cyhyKS5sZW5ndGg9PT0wfWZ1bmN0aW9uIGFjKHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyJ8fHIgaW5zdGFuY2VvZiBTdHJpbmd9ZnVuY3Rpb24gYWEocil7cmV0dXJuIHNuKHIpJiZyLmNvbmZpZz09PXZvaWQgMCYmIWJ4KHIpP251bGw6c24ocikmJnIuY29uZmlnIT09dm9pZCAwJiZhYyhyLmNvbmZpZyk/bWUucmVzb2x2ZShyLmNvbmZpZyk6c24ocikmJnIuY29uZmlnIT09dm9pZCAwJiZzbihyLmNvbmZpZyk/bnVsbDphYyhyKT9tZS5yZXNvbHZlKHIpOnd4KCl9ZnVuY3Rpb24gd3goKXtmb3IobGV0IHIgb2YgeXgpdHJ5e2xldCBlPW1lLnJlc29sdmUocik7cmV0dXJuIGJlLmFjY2Vzc1N5bmMoZSksZX1jYXRjaChlKXt9cmV0dXJuIG51bGx9dmFyIHl4LG9jPVAoKCk9Pnt1KCk7ZnQoKTtldCgpO3l4PVsiLi90YWlsd2luZC5jb25maWcuanMiLCIuL3RhaWx3aW5kLmNvbmZpZy5janMiLCIuL3RhaWx3aW5kLmNvbmZpZy5tanMiLCIuL3RhaWx3aW5kLmNvbmZpZy50cyIsIi4vdGFpbHdpbmQuY29uZmlnLmN0cyIsIi4vdGFpbHdpbmQuY29uZmlnLm10cyJdfSk7dmFyIGxjPXt9O0dlKGxjLHtkZWZhdWx0OigpPT5vYX0pO3ZhciBvYSxsYT1QKCgpPT57dSgpO29hPXtwYXJzZTpyPT4oe2hyZWY6cn0pfX0pO3ZhciB1YT14KCgpPT57dSgpfSk7dmFyIGFuPXgoKHYzLGNjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHVjPShRaSgpLEFmKSxmYz11YSgpLEp0PWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0LGksbixzLGEpe3N1cGVyKGUpO3RoaXMubmFtZT0iQ3NzU3ludGF4RXJyb3IiLHRoaXMucmVhc29uPWUscyYmKHRoaXMuZmlsZT1zKSxuJiYodGhpcy5zb3VyY2U9biksYSYmKHRoaXMucGx1Z2luPWEpLHR5cGVvZiB0IT0idW5kZWZpbmVkIiYmdHlwZW9mIGkhPSJ1bmRlZmluZWQiJiYodHlwZW9mIHQ9PSJudW1iZXIiPyh0aGlzLmxpbmU9dCx0aGlzLmNvbHVtbj1pKToodGhpcy5saW5lPXQubGluZSx0aGlzLmNvbHVtbj10LmNvbHVtbix0aGlzLmVuZExpbmU9aS5saW5lLHRoaXMuZW5kQ29sdW1uPWkuY29sdW1uKSksdGhpcy5zZXRNZXNzYWdlKCksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsSnQpfXNldE1lc3NhZ2UoKXt0aGlzLm1lc3NhZ2U9dGhpcy5wbHVnaW4/dGhpcy5wbHVnaW4rIjogIjoiIix0aGlzLm1lc3NhZ2UrPXRoaXMuZmlsZT90aGlzLmZpbGU6Ijxjc3MgaW5wdXQ+Iix0eXBlb2YgdGhpcy5saW5lIT0idW5kZWZpbmVkIiYmKHRoaXMubWVzc2FnZSs9IjoiK3RoaXMubGluZSsiOiIrdGhpcy5jb2x1bW4pLHRoaXMubWVzc2FnZSs9IjogIit0aGlzLnJlYXNvbn1zaG93U291cmNlQ29kZShlKXtpZighdGhpcy5zb3VyY2UpcmV0dXJuIiI7bGV0IHQ9dGhpcy5zb3VyY2U7ZT09bnVsbCYmKGU9dWMuaXNDb2xvclN1cHBvcnRlZCk7bGV0IGk9Zj0+ZixuPWY9PmYscz1mPT5mO2lmKGUpe2xldHtib2xkOmYsZ3JheTpkLHJlZDpwfT11Yy5jcmVhdGVDb2xvcnMoITApO249aD0+ZihwKGgpKSxpPWg9PmQoaCksZmMmJihzPWg9PmZjKGgpKX1sZXQgYT10LnNwbGl0KC9ccj9cbi8pLG89TWF0aC5tYXgodGhpcy5saW5lLTMsMCksbD1NYXRoLm1pbih0aGlzLmxpbmUrMixhLmxlbmd0aCksYz1TdHJpbmcobCkubGVuZ3RoO3JldHVybiBhLnNsaWNlKG8sbCkubWFwKChmLGQpPT57bGV0IHA9bysxK2QsaD0iICIrKCIgIitwKS5zbGljZSgtYykrIiB8ICI7aWYocD09PXRoaXMubGluZSl7aWYoZi5sZW5ndGg+MTYwKXtsZXQgdj0yMCx5PU1hdGgubWF4KDAsdGhpcy5jb2x1bW4tdiksdz1NYXRoLm1heCh0aGlzLmNvbHVtbit2LHRoaXMuZW5kQ29sdW1uK3YpLGs9Zi5zbGljZSh5LHcpLFM9aShoLnJlcGxhY2UoL1xkL2csIiAiKSkrZi5zbGljZSgwLE1hdGgubWluKHRoaXMuY29sdW1uLTEsdi0xKSkucmVwbGFjZSgvW15cdF0vZywiICIpO3JldHVybiBuKCI+IikraShoKStzKGspK2AKIGArUytuKCJeIil9bGV0IGI9aShoLnJlcGxhY2UoL1xkL2csIiAiKSkrZi5zbGljZSgwLHRoaXMuY29sdW1uLTEpLnJlcGxhY2UoL1teXHRdL2csIiAiKTtyZXR1cm4gbigiPiIpK2koaCkrcyhmKStgCiBgK2IrbigiXiIpfXJldHVybiIgIitpKGgpK3MoZil9KS5qb2luKGAKYCl9dG9TdHJpbmcoKXtsZXQgZT10aGlzLnNob3dTb3VyY2VDb2RlKCk7cmV0dXJuIGUmJihlPWAKCmArZStgCmApLHRoaXMubmFtZSsiOiAiK3RoaXMubWVzc2FnZStlfX07Y2MuZXhwb3J0cz1KdDtKdC5kZWZhdWx0PUp0fSk7dmFyIGZhPXgoKHgzLGRjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHBjPXthZnRlcjpgCmAsYmVmb3JlQ2xvc2U6YApgLGJlZm9yZUNvbW1lbnQ6YApgLGJlZm9yZURlY2w6YApgLGJlZm9yZU9wZW46IiAiLGJlZm9yZVJ1bGU6YApgLGNvbG9uOiI6ICIsY29tbWVudExlZnQ6IiAiLGNvbW1lbnRSaWdodDoiICIsZW1wdHlCb2R5OiIiLGluZGVudDoiICAgICIsc2VtaWNvbG9uOiExfTtmdW5jdGlvbiB2eChyKXtyZXR1cm4gclswXS50b1VwcGVyQ2FzZSgpK3Iuc2xpY2UoMSl9dmFyIG9uPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuYnVpbGRlcj1lfWF0cnVsZShlLHQpe2xldCBpPSJAIitlLm5hbWUsbj1lLnBhcmFtcz90aGlzLnJhd1ZhbHVlKGUsInBhcmFtcyIpOiIiO2lmKHR5cGVvZiBlLnJhd3MuYWZ0ZXJOYW1lIT0idW5kZWZpbmVkIj9pKz1lLnJhd3MuYWZ0ZXJOYW1lOm4mJihpKz0iICIpLGUubm9kZXMpdGhpcy5ibG9jayhlLGkrbik7ZWxzZXtsZXQgcz0oZS5yYXdzLmJldHdlZW58fCIiKSsodD8iOyI6IiIpO3RoaXMuYnVpbGRlcihpK24rcyxlKX19YmVmb3JlQWZ0ZXIoZSx0KXtsZXQgaTtlLnR5cGU9PT0iZGVjbCI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZURlY2wiKTplLnR5cGU9PT0iY29tbWVudCI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZUNvbW1lbnQiKTp0PT09ImJlZm9yZSI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZVJ1bGUiKTppPXRoaXMucmF3KGUsbnVsbCwiYmVmb3JlQ2xvc2UiKTtsZXQgbj1lLnBhcmVudCxzPTA7Zm9yKDtuJiZuLnR5cGUhPT0icm9vdCI7KXMrPTEsbj1uLnBhcmVudDtpZihpLmluY2x1ZGVzKGAKYCkpe2xldCBhPXRoaXMucmF3KGUsbnVsbCwiaW5kZW50Iik7aWYoYS5sZW5ndGgpZm9yKGxldCBvPTA7bzxzO28rKylpKz1hfXJldHVybiBpfWJsb2NrKGUsdCl7bGV0IGk9dGhpcy5yYXcoZSwiYmV0d2VlbiIsImJlZm9yZU9wZW4iKTt0aGlzLmJ1aWxkZXIodCtpKyJ7IixlLCJzdGFydCIpO2xldCBuO2Uubm9kZXMmJmUubm9kZXMubGVuZ3RoPyh0aGlzLmJvZHkoZSksbj10aGlzLnJhdyhlLCJhZnRlciIpKTpuPXRoaXMucmF3KGUsImFmdGVyIiwiZW1wdHlCb2R5IiksbiYmdGhpcy5idWlsZGVyKG4pLHRoaXMuYnVpbGRlcigifSIsZSwiZW5kIil9Ym9keShlKXtsZXQgdD1lLm5vZGVzLmxlbmd0aC0xO2Zvcig7dD4wJiZlLm5vZGVzW3RdLnR5cGU9PT0iY29tbWVudCI7KXQtPTE7bGV0IGk9dGhpcy5yYXcoZSwic2VtaWNvbG9uIik7Zm9yKGxldCBuPTA7bjxlLm5vZGVzLmxlbmd0aDtuKyspe2xldCBzPWUubm9kZXNbbl0sYT10aGlzLnJhdyhzLCJiZWZvcmUiKTthJiZ0aGlzLmJ1aWxkZXIoYSksdGhpcy5zdHJpbmdpZnkocyx0IT09bnx8aSl9fWNvbW1lbnQoZSl7bGV0IHQ9dGhpcy5yYXcoZSwibGVmdCIsImNvbW1lbnRMZWZ0IiksaT10aGlzLnJhdyhlLCJyaWdodCIsImNvbW1lbnRSaWdodCIpO3RoaXMuYnVpbGRlcigiLyoiK3QrZS50ZXh0K2krIiovIixlKX1kZWNsKGUsdCl7bGV0IGk9dGhpcy5yYXcoZSwiYmV0d2VlbiIsImNvbG9uIiksbj1lLnByb3AraSt0aGlzLnJhd1ZhbHVlKGUsInZhbHVlIik7ZS5pbXBvcnRhbnQmJihuKz1lLnJhd3MuaW1wb3J0YW50fHwiICFpbXBvcnRhbnQiKSx0JiYobis9IjsiKSx0aGlzLmJ1aWxkZXIobixlKX1kb2N1bWVudChlKXt0aGlzLmJvZHkoZSl9cmF3KGUsdCxpKXtsZXQgbjtpZihpfHwoaT10KSx0JiYobj1lLnJhd3NbdF0sdHlwZW9mIG4hPSJ1bmRlZmluZWQiKSlyZXR1cm4gbjtsZXQgcz1lLnBhcmVudDtpZihpPT09ImJlZm9yZSImJighc3x8cy50eXBlPT09InJvb3QiJiZzLmZpcnN0PT09ZXx8cyYmcy50eXBlPT09ImRvY3VtZW50IikpcmV0dXJuIiI7aWYoIXMpcmV0dXJuIHBjW2ldO2xldCBhPWUucm9vdCgpO2lmKGEucmF3Q2FjaGV8fChhLnJhd0NhY2hlPXt9KSx0eXBlb2YgYS5yYXdDYWNoZVtpXSE9InVuZGVmaW5lZCIpcmV0dXJuIGEucmF3Q2FjaGVbaV07aWYoaT09PSJiZWZvcmUifHxpPT09ImFmdGVyIilyZXR1cm4gdGhpcy5iZWZvcmVBZnRlcihlLGkpO3tsZXQgbz0icmF3Iit2eChpKTt0aGlzW29dP249dGhpc1tvXShhLGUpOmEud2FsayhsPT57aWYobj1sLnJhd3NbdF0sdHlwZW9mIG4hPSJ1bmRlZmluZWQiKXJldHVybiExfSl9cmV0dXJuIHR5cGVvZiBuPT0idW5kZWZpbmVkIiYmKG49cGNbaV0pLGEucmF3Q2FjaGVbaV09bixufXJhd0JlZm9yZUNsb3NlKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkubm9kZXMmJmkubm9kZXMubGVuZ3RoPjAmJnR5cGVvZiBpLnJhd3MuYWZ0ZXIhPSJ1bmRlZmluZWQiKXJldHVybiB0PWkucmF3cy5hZnRlcix0LmluY2x1ZGVzKGAKYCkmJih0PXQucmVwbGFjZSgvW15cbl0rJC8sIiIpKSwhMX0pLHQmJih0PXQucmVwbGFjZSgvXFMvZywiIikpLHR9cmF3QmVmb3JlQ29tbWVudChlLHQpe2xldCBpO3JldHVybiBlLndhbGtDb21tZW50cyhuPT57aWYodHlwZW9mIG4ucmF3cy5iZWZvcmUhPSJ1bmRlZmluZWQiKXJldHVybiBpPW4ucmF3cy5iZWZvcmUsaS5pbmNsdWRlcyhgCmApJiYoaT1pLnJlcGxhY2UoL1teXG5dKyQvLCIiKSksITF9KSx0eXBlb2YgaT09InVuZGVmaW5lZCI/aT10aGlzLnJhdyh0LG51bGwsImJlZm9yZURlY2wiKTppJiYoaT1pLnJlcGxhY2UoL1xTL2csIiIpKSxpfXJhd0JlZm9yZURlY2woZSx0KXtsZXQgaTtyZXR1cm4gZS53YWxrRGVjbHMobj0+e2lmKHR5cGVvZiBuLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIilyZXR1cm4gaT1uLnJhd3MuYmVmb3JlLGkuaW5jbHVkZXMoYApgKSYmKGk9aS5yZXBsYWNlKC9bXlxuXSskLywiIikpLCExfSksdHlwZW9mIGk9PSJ1bmRlZmluZWQiP2k9dGhpcy5yYXcodCxudWxsLCJiZWZvcmVSdWxlIik6aSYmKGk9aS5yZXBsYWNlKC9cUy9nLCIiKSksaX1yYXdCZWZvcmVPcGVuKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkudHlwZSE9PSJkZWNsIiYmKHQ9aS5yYXdzLmJldHdlZW4sdHlwZW9mIHQhPSJ1bmRlZmluZWQiKSlyZXR1cm4hMX0pLHR9cmF3QmVmb3JlUnVsZShlKXtsZXQgdDtyZXR1cm4gZS53YWxrKGk9PntpZihpLm5vZGVzJiYoaS5wYXJlbnQhPT1lfHxlLmZpcnN0IT09aSkmJnR5cGVvZiBpLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIilyZXR1cm4gdD1pLnJhd3MuYmVmb3JlLHQuaW5jbHVkZXMoYApgKSYmKHQ9dC5yZXBsYWNlKC9bXlxuXSskLywiIikpLCExfSksdCYmKHQ9dC5yZXBsYWNlKC9cUy9nLCIiKSksdH1yYXdDb2xvbihlKXtsZXQgdDtyZXR1cm4gZS53YWxrRGVjbHMoaT0+e2lmKHR5cGVvZiBpLnJhd3MuYmV0d2VlbiE9InVuZGVmaW5lZCIpcmV0dXJuIHQ9aS5yYXdzLmJldHdlZW4ucmVwbGFjZSgvW15cczpdL2csIiIpLCExfSksdH1yYXdFbXB0eUJvZHkoZSl7bGV0IHQ7cmV0dXJuIGUud2FsayhpPT57aWYoaS5ub2RlcyYmaS5ub2Rlcy5sZW5ndGg9PT0wJiYodD1pLnJhd3MuYWZ0ZXIsdHlwZW9mIHQhPSJ1bmRlZmluZWQiKSlyZXR1cm4hMX0pLHR9cmF3SW5kZW50KGUpe2lmKGUucmF3cy5pbmRlbnQpcmV0dXJuIGUucmF3cy5pbmRlbnQ7bGV0IHQ7cmV0dXJuIGUud2FsayhpPT57bGV0IG49aS5wYXJlbnQ7aWYobiYmbiE9PWUmJm4ucGFyZW50JiZuLnBhcmVudD09PWUmJnR5cGVvZiBpLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIil7bGV0IHM9aS5yYXdzLmJlZm9yZS5zcGxpdChgCmApO3JldHVybiB0PXNbcy5sZW5ndGgtMV0sdD10LnJlcGxhY2UoL1xTL2csIiIpLCExfX0pLHR9cmF3U2VtaWNvbG9uKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkubm9kZXMmJmkubm9kZXMubGVuZ3RoJiZpLmxhc3QudHlwZT09PSJkZWNsIiYmKHQ9aS5yYXdzLnNlbWljb2xvbix0eXBlb2YgdCE9InVuZGVmaW5lZCIpKXJldHVybiExfSksdH1yYXdWYWx1ZShlLHQpe2xldCBpPWVbdF0sbj1lLnJhd3NbdF07cmV0dXJuIG4mJm4udmFsdWU9PT1pP24ucmF3Oml9cm9vdChlKXt0aGlzLmJvZHkoZSksZS5yYXdzLmFmdGVyJiZ0aGlzLmJ1aWxkZXIoZS5yYXdzLmFmdGVyKX1ydWxlKGUpe3RoaXMuYmxvY2soZSx0aGlzLnJhd1ZhbHVlKGUsInNlbGVjdG9yIikpLGUucmF3cy5vd25TZW1pY29sb24mJnRoaXMuYnVpbGRlcihlLnJhd3Mub3duU2VtaWNvbG9uLGUsImVuZCIpfXN0cmluZ2lmeShlLHQpe2lmKCF0aGlzW2UudHlwZV0pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIEFTVCBub2RlIHR5cGUgIitlLnR5cGUrIi4gTWF5YmUgeW91IG5lZWQgdG8gY2hhbmdlIFBvc3RDU1Mgc3RyaW5naWZpZXIuIik7dGhpc1tlLnR5cGVdKGUsdCl9fTtkYy5leHBvcnRzPW9uO29uLmRlZmF1bHQ9b259KTt2YXIgVnI9eCgoazMsaGMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgeHg9ZmEoKTtmdW5jdGlvbiBjYShyLGUpe25ldyB4eChlKS5zdHJpbmdpZnkocil9aGMuZXhwb3J0cz1jYTtjYS5kZWZhdWx0PWNhfSk7dmFyIGxuPXgoKFMzLHBhKT0+e3UoKTsidXNlIHN0cmljdCI7cGEuZXhwb3J0cy5pc0NsZWFuPVN5bWJvbCgiaXNDbGVhbiIpO3BhLmV4cG9ydHMubXk9U3ltYm9sKCJteSIpfSk7dmFyIEdyPXgoKEEzLG1jKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIGt4PWFuKCksU3g9ZmEoKSxBeD1WcigpLHtpc0NsZWFuOkhyLG15OkN4fT1sbigpO2Z1bmN0aW9uIGRhKHIsZSl7bGV0IHQ9bmV3IHIuY29uc3RydWN0b3I7Zm9yKGxldCBpIGluIHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixpKXx8aT09PSJwcm94eUNhY2hlIiljb250aW51ZTtsZXQgbj1yW2ldLHM9dHlwZW9mIG47aT09PSJwYXJlbnQiJiZzPT09Im9iamVjdCI/ZSYmKHRbaV09ZSk6aT09PSJzb3VyY2UiP3RbaV09bjpBcnJheS5pc0FycmF5KG4pP3RbaV09bi5tYXAoYT0+ZGEoYSx0KSk6KHM9PT0ib2JqZWN0IiYmbiE9PW51bGwmJihuPWRhKG4pKSx0W2ldPW4pfXJldHVybiB0fWZ1bmN0aW9uIFdyKHIsZSl7aWYoZSYmdHlwZW9mIGUub2Zmc2V0IT0idW5kZWZpbmVkIilyZXR1cm4gZS5vZmZzZXQ7bGV0IHQ9MSxpPTEsbj0wO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7cysrKXtpZihpPT09ZS5saW5lJiZ0PT09ZS5jb2x1bW4pe249czticmVha31yW3NdPT09YApgPyh0PTEsaSs9MSk6dCs9MX1yZXR1cm4gbn12YXIgdW49Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7dGhpcy5yYXdzPXt9LHRoaXNbSHJdPSExLHRoaXNbQ3hdPSEwO2ZvcihsZXQgdCBpbiBlKWlmKHQ9PT0ibm9kZXMiKXt0aGlzLm5vZGVzPVtdO2ZvcihsZXQgaSBvZiBlW3RdKXR5cGVvZiBpLmNsb25lPT0iZnVuY3Rpb24iP3RoaXMuYXBwZW5kKGkuY2xvbmUoKSk6dGhpcy5hcHBlbmQoaSl9ZWxzZSB0aGlzW3RdPWVbdF19YWRkVG9FcnJvcihlKXtpZihlLnBvc3Rjc3NOb2RlPXRoaXMsZS5zdGFjayYmdGhpcy5zb3VyY2UmJi9cblxzezR9YXQgLy50ZXN0KGUuc3RhY2spKXtsZXQgdD10aGlzLnNvdXJjZTtlLnN0YWNrPWUuc3RhY2sucmVwbGFjZSgvXG5cc3s0fWF0IC8sYCQmJHt0LmlucHV0LmZyb219OiR7dC5zdGFydC5saW5lfToke3Quc3RhcnQuY29sdW1ufSQmYCl9cmV0dXJuIGV9YWZ0ZXIoZSl7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEFmdGVyKHRoaXMsZSksdGhpc31hc3NpZ24oZT17fSl7Zm9yKGxldCB0IGluIGUpdGhpc1t0XT1lW3RdO3JldHVybiB0aGlzfWJlZm9yZShlKXtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMsZSksdGhpc31jbGVhblJhd3MoZSl7ZGVsZXRlIHRoaXMucmF3cy5iZWZvcmUsZGVsZXRlIHRoaXMucmF3cy5hZnRlcixlfHxkZWxldGUgdGhpcy5yYXdzLmJldHdlZW59Y2xvbmUoZT17fSl7bGV0IHQ9ZGEodGhpcyk7Zm9yKGxldCBpIGluIGUpdFtpXT1lW2ldO3JldHVybiB0fWNsb25lQWZ0ZXIoZT17fSl7bGV0IHQ9dGhpcy5jbG9uZShlKTtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodGhpcyx0KSx0fWNsb25lQmVmb3JlKGU9e30pe2xldCB0PXRoaXMuY2xvbmUoZSk7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLHQpLHR9ZXJyb3IoZSx0PXt9KXtpZih0aGlzLnNvdXJjZSl7bGV0e2VuZDppLHN0YXJ0Om59PXRoaXMucmFuZ2VCeSh0KTtyZXR1cm4gdGhpcy5zb3VyY2UuaW5wdXQuZXJyb3IoZSx7Y29sdW1uOm4uY29sdW1uLGxpbmU6bi5saW5lfSx7Y29sdW1uOmkuY29sdW1uLGxpbmU6aS5saW5lfSx0KX1yZXR1cm4gbmV3IGt4KGUpfWdldFByb3h5UHJvY2Vzc29yKCl7cmV0dXJue2dldChlLHQpe3JldHVybiB0PT09InByb3h5T2YiP2U6dD09PSJyb290Ij8oKT0+ZS5yb290KCkudG9Qcm94eSgpOmVbdF19LHNldChlLHQsaSl7cmV0dXJuIGVbdF09PT1pfHwoZVt0XT1pLCh0PT09InByb3AifHx0PT09InZhbHVlInx8dD09PSJuYW1lInx8dD09PSJwYXJhbXMifHx0PT09ImltcG9ydGFudCJ8fHQ9PT0idGV4dCIpJiZlLm1hcmtEaXJ0eSgpKSwhMH19fW1hcmtDbGVhbigpe3RoaXNbSHJdPSEwfW1hcmtEaXJ0eSgpe2lmKHRoaXNbSHJdKXt0aGlzW0hyXT0hMTtsZXQgZT10aGlzO2Zvcig7ZT1lLnBhcmVudDspZVtIcl09ITF9fW5leHQoKXtpZighdGhpcy5wYXJlbnQpcmV0dXJuO2xldCBlPXRoaXMucGFyZW50LmluZGV4KHRoaXMpO3JldHVybiB0aGlzLnBhcmVudC5ub2Rlc1tlKzFdfXBvc2l0aW9uQnkoZSl7bGV0IHQ9dGhpcy5zb3VyY2Uuc3RhcnQ7aWYoZS5pbmRleCl0PXRoaXMucG9zaXRpb25JbnNpZGUoZS5pbmRleCk7ZWxzZSBpZihlLndvcmQpe2xldCBuPXRoaXMuc291cmNlLmlucHV0LmNzcy5zbGljZShXcih0aGlzLnNvdXJjZS5pbnB1dC5jc3MsdGhpcy5zb3VyY2Uuc3RhcnQpLFdyKHRoaXMuc291cmNlLmlucHV0LmNzcyx0aGlzLnNvdXJjZS5lbmQpKS5pbmRleE9mKGUud29yZCk7biE9PS0xJiYodD10aGlzLnBvc2l0aW9uSW5zaWRlKG4pKX1yZXR1cm4gdH1wb3NpdGlvbkluc2lkZShlKXtsZXQgdD10aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4saT10aGlzLnNvdXJjZS5zdGFydC5saW5lLG49V3IodGhpcy5zb3VyY2UuaW5wdXQuY3NzLHRoaXMuc291cmNlLnN0YXJ0KSxzPW4rZTtmb3IobGV0IGE9bjthPHM7YSsrKXRoaXMuc291cmNlLmlucHV0LmNzc1thXT09PWAKYD8odD0xLGkrPTEpOnQrPTE7cmV0dXJue2NvbHVtbjp0LGxpbmU6aX19cHJldigpe2lmKCF0aGlzLnBhcmVudClyZXR1cm47bGV0IGU9dGhpcy5wYXJlbnQuaW5kZXgodGhpcyk7cmV0dXJuIHRoaXMucGFyZW50Lm5vZGVzW2UtMV19cmFuZ2VCeShlKXtsZXQgdD17Y29sdW1uOnRoaXMuc291cmNlLnN0YXJ0LmNvbHVtbixsaW5lOnRoaXMuc291cmNlLnN0YXJ0LmxpbmV9LGk9dGhpcy5zb3VyY2UuZW5kP3tjb2x1bW46dGhpcy5zb3VyY2UuZW5kLmNvbHVtbisxLGxpbmU6dGhpcy5zb3VyY2UuZW5kLmxpbmV9Ontjb2x1bW46dC5jb2x1bW4rMSxsaW5lOnQubGluZX07aWYoZS53b3JkKXtsZXQgcz10aGlzLnNvdXJjZS5pbnB1dC5jc3Muc2xpY2UoV3IodGhpcy5zb3VyY2UuaW5wdXQuY3NzLHRoaXMuc291cmNlLnN0YXJ0KSxXcih0aGlzLnNvdXJjZS5pbnB1dC5jc3MsdGhpcy5zb3VyY2UuZW5kKSkuaW5kZXhPZihlLndvcmQpO3MhPT0tMSYmKHQ9dGhpcy5wb3NpdGlvbkluc2lkZShzKSxpPXRoaXMucG9zaXRpb25JbnNpZGUocytlLndvcmQubGVuZ3RoKSl9ZWxzZSBlLnN0YXJ0P3Q9e2NvbHVtbjplLnN0YXJ0LmNvbHVtbixsaW5lOmUuc3RhcnQubGluZX06ZS5pbmRleCYmKHQ9dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4KSksZS5lbmQ/aT17Y29sdW1uOmUuZW5kLmNvbHVtbixsaW5lOmUuZW5kLmxpbmV9OnR5cGVvZiBlLmVuZEluZGV4PT0ibnVtYmVyIj9pPXRoaXMucG9zaXRpb25JbnNpZGUoZS5lbmRJbmRleCk6ZS5pbmRleCYmKGk9dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4KzEpKTtyZXR1cm4oaS5saW5lPHQubGluZXx8aS5saW5lPT09dC5saW5lJiZpLmNvbHVtbjw9dC5jb2x1bW4pJiYoaT17Y29sdW1uOnQuY29sdW1uKzEsbGluZTp0LmxpbmV9KSx7ZW5kOmksc3RhcnQ6dH19cmF3KGUsdCl7cmV0dXJuIG5ldyBTeCgpLnJhdyh0aGlzLGUsdCl9cmVtb3ZlKCl7cmV0dXJuIHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLnBhcmVudD12b2lkIDAsdGhpc31yZXBsYWNlV2l0aCguLi5lKXtpZih0aGlzLnBhcmVudCl7bGV0IHQ9dGhpcyxpPSExO2ZvcihsZXQgbiBvZiBlKW49PT10aGlzP2k9ITA6aT8odGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodCxuKSx0PW4pOnRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0LG4pO2l8fHRoaXMucmVtb3ZlKCl9cmV0dXJuIHRoaXN9cm9vdCgpe2xldCBlPXRoaXM7Zm9yKDtlLnBhcmVudCYmZS5wYXJlbnQudHlwZSE9PSJkb2N1bWVudCI7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9dG9KU09OKGUsdCl7bGV0IGk9e30sbj10PT1udWxsO3Q9dHx8bmV3IE1hcDtsZXQgcz0wO2ZvcihsZXQgYSBpbiB0aGlzKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsYSl8fGE9PT0icGFyZW50Inx8YT09PSJwcm94eUNhY2hlIiljb250aW51ZTtsZXQgbz10aGlzW2FdO2lmKEFycmF5LmlzQXJyYXkobykpaVthXT1vLm1hcChsPT50eXBlb2YgbD09Im9iamVjdCImJmwudG9KU09OP2wudG9KU09OKG51bGwsdCk6bCk7ZWxzZSBpZih0eXBlb2Ygbz09Im9iamVjdCImJm8udG9KU09OKWlbYV09by50b0pTT04obnVsbCx0KTtlbHNlIGlmKGE9PT0ic291cmNlIil7bGV0IGw9dC5nZXQoby5pbnB1dCk7bD09bnVsbCYmKGw9cyx0LnNldChvLmlucHV0LHMpLHMrKyksaVthXT17ZW5kOm8uZW5kLGlucHV0SWQ6bCxzdGFydDpvLnN0YXJ0fX1lbHNlIGlbYV09b31yZXR1cm4gbiYmKGkuaW5wdXRzPVsuLi50LmtleXMoKV0ubWFwKGE9PmEudG9KU09OKCkpKSxpfXRvUHJveHkoKXtyZXR1cm4gdGhpcy5wcm94eUNhY2hlfHwodGhpcy5wcm94eUNhY2hlPW5ldyBQcm94eSh0aGlzLHRoaXMuZ2V0UHJveHlQcm9jZXNzb3IoKSkpLHRoaXMucHJveHlDYWNoZX10b1N0cmluZyhlPUF4KXtlLnN0cmluZ2lmeSYmKGU9ZS5zdHJpbmdpZnkpO2xldCB0PSIiO3JldHVybiBlKHRoaXMsaT0+e3QrPWl9KSx0fXdhcm4oZSx0LGkpe2xldCBuPXtub2RlOnRoaXN9O2ZvcihsZXQgcyBpbiBpKW5bc109aVtzXTtyZXR1cm4gZS53YXJuKHQsbil9Z2V0IHByb3h5T2YoKXtyZXR1cm4gdGhpc319O21jLmV4cG9ydHM9dW47dW4uZGVmYXVsdD11bn0pO3ZhciBRcj14KChDMyxnYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBfeD1HcigpLGZuPWNsYXNzIGV4dGVuZHMgX3h7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy50eXBlPSJjb21tZW50In19O2djLmV4cG9ydHM9Zm47Zm4uZGVmYXVsdD1mbn0pO3ZhciBZcj14KChfMyx5Yyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBFeD1HcigpLGNuPWNsYXNzIGV4dGVuZHMgRXh7Y29uc3RydWN0b3IoZSl7ZSYmdHlwZW9mIGUudmFsdWUhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgZS52YWx1ZSE9InN0cmluZyImJihlPXsuLi5lLHZhbHVlOlN0cmluZyhlLnZhbHVlKX0pO3N1cGVyKGUpO3RoaXMudHlwZT0iZGVjbCJ9Z2V0IHZhcmlhYmxlKCl7cmV0dXJuIHRoaXMucHJvcC5zdGFydHNXaXRoKCItLSIpfHx0aGlzLnByb3BbMF09PT0iJCJ9fTt5Yy5leHBvcnRzPWNuO2NuLmRlZmF1bHQ9Y259KTt2YXIgRXQ9eCgoRTMsX2MpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYmM9UXIoKSx3Yz1ZcigpLE94PUdyKCkse2lzQ2xlYW46dmMsbXk6eGN9PWxuKCksaGEsa2MsU2MsbWE7ZnVuY3Rpb24gQWMocil7cmV0dXJuIHIubWFwKGU9PihlLm5vZGVzJiYoZS5ub2Rlcz1BYyhlLm5vZGVzKSksZGVsZXRlIGUuc291cmNlLGUpKX1mdW5jdGlvbiBDYyhyKXtpZihyW3ZjXT0hMSxyLnByb3h5T2Yubm9kZXMpZm9yKGxldCBlIG9mIHIucHJveHlPZi5ub2RlcylDYyhlKX12YXIgRmU9Y2xhc3MgZXh0ZW5kcyBPeHthcHBlbmQoLi4uZSl7Zm9yKGxldCB0IG9mIGUpe2xldCBpPXRoaXMubm9ybWFsaXplKHQsdGhpcy5sYXN0KTtmb3IobGV0IG4gb2YgaSl0aGlzLnByb3h5T2Yubm9kZXMucHVzaChuKX1yZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfWNsZWFuUmF3cyhlKXtpZihzdXBlci5jbGVhblJhd3MoZSksdGhpcy5ub2Rlcylmb3IobGV0IHQgb2YgdGhpcy5ub2Rlcyl0LmNsZWFuUmF3cyhlKX1lYWNoKGUpe2lmKCF0aGlzLnByb3h5T2Yubm9kZXMpcmV0dXJuO2xldCB0PXRoaXMuZ2V0SXRlcmF0b3IoKSxpLG47Zm9yKDt0aGlzLmluZGV4ZXNbdF08dGhpcy5wcm94eU9mLm5vZGVzLmxlbmd0aCYmKGk9dGhpcy5pbmRleGVzW3RdLG49ZSh0aGlzLnByb3h5T2Yubm9kZXNbaV0saSksbiE9PSExKTspdGhpcy5pbmRleGVzW3RdKz0xO3JldHVybiBkZWxldGUgdGhpcy5pbmRleGVzW3RdLG59ZXZlcnkoZSl7cmV0dXJuIHRoaXMubm9kZXMuZXZlcnkoZSl9Z2V0SXRlcmF0b3IoKXt0aGlzLmxhc3RFYWNofHwodGhpcy5sYXN0RWFjaD0wKSx0aGlzLmluZGV4ZXN8fCh0aGlzLmluZGV4ZXM9e30pLHRoaXMubGFzdEVhY2grPTE7bGV0IGU9dGhpcy5sYXN0RWFjaDtyZXR1cm4gdGhpcy5pbmRleGVzW2VdPTAsZX1nZXRQcm94eVByb2Nlc3Nvcigpe3JldHVybntnZXQoZSx0KXtyZXR1cm4gdD09PSJwcm94eU9mIj9lOmVbdF0/dD09PSJlYWNoInx8dHlwZW9mIHQ9PSJzdHJpbmciJiZ0LnN0YXJ0c1dpdGgoIndhbGsiKT8oLi4uaSk9PmVbdF0oLi4uaS5tYXAobj0+dHlwZW9mIG49PSJmdW5jdGlvbiI/KHMsYSk9Pm4ocy50b1Byb3h5KCksYSk6bikpOnQ9PT0iZXZlcnkifHx0PT09InNvbWUiP2k9PmVbdF0oKG4sLi4ucyk9Pmkobi50b1Byb3h5KCksLi4ucykpOnQ9PT0icm9vdCI/KCk9PmUucm9vdCgpLnRvUHJveHkoKTp0PT09Im5vZGVzIj9lLm5vZGVzLm1hcChpPT5pLnRvUHJveHkoKSk6dD09PSJmaXJzdCJ8fHQ9PT0ibGFzdCI/ZVt0XS50b1Byb3h5KCk6ZVt0XTplW3RdfSxzZXQoZSx0LGkpe3JldHVybiBlW3RdPT09aXx8KGVbdF09aSwodD09PSJuYW1lInx8dD09PSJwYXJhbXMifHx0PT09InNlbGVjdG9yIikmJmUubWFya0RpcnR5KCkpLCEwfX19aW5kZXgoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIj9lOihlLnByb3h5T2YmJihlPWUucHJveHlPZiksdGhpcy5wcm94eU9mLm5vZGVzLmluZGV4T2YoZSkpfWluc2VydEFmdGVyKGUsdCl7bGV0IGk9dGhpcy5pbmRleChlKSxuPXRoaXMubm9ybWFsaXplKHQsdGhpcy5wcm94eU9mLm5vZGVzW2ldKS5yZXZlcnNlKCk7aT10aGlzLmluZGV4KGUpO2ZvcihsZXQgYSBvZiBuKXRoaXMucHJveHlPZi5ub2Rlcy5zcGxpY2UoaSsxLDAsYSk7bGV0IHM7Zm9yKGxldCBhIGluIHRoaXMuaW5kZXhlcylzPXRoaXMuaW5kZXhlc1thXSxpPHMmJih0aGlzLmluZGV4ZXNbYV09cytuLmxlbmd0aCk7cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31pbnNlcnRCZWZvcmUoZSx0KXtsZXQgaT10aGlzLmluZGV4KGUpLG49aT09PTA/InByZXBlbmQiOiExLHM9dGhpcy5ub3JtYWxpemUodCx0aGlzLnByb3h5T2Yubm9kZXNbaV0sbikucmV2ZXJzZSgpO2k9dGhpcy5pbmRleChlKTtmb3IobGV0IG8gb2Ygcyl0aGlzLnByb3h5T2Yubm9kZXMuc3BsaWNlKGksMCxvKTtsZXQgYTtmb3IobGV0IG8gaW4gdGhpcy5pbmRleGVzKWE9dGhpcy5pbmRleGVzW29dLGk8PWEmJih0aGlzLmluZGV4ZXNbb109YStzLmxlbmd0aCk7cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31ub3JtYWxpemUoZSx0KXtpZih0eXBlb2YgZT09InN0cmluZyIpZT1BYyhrYyhlKS5ub2Rlcyk7ZWxzZSBpZih0eXBlb2YgZT09InVuZGVmaW5lZCIpZT1bXTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2U9ZS5zbGljZSgwKTtmb3IobGV0IG4gb2YgZSluLnBhcmVudCYmbi5wYXJlbnQucmVtb3ZlQ2hpbGQobiwiaWdub3JlIil9ZWxzZSBpZihlLnR5cGU9PT0icm9vdCImJnRoaXMudHlwZSE9PSJkb2N1bWVudCIpe2U9ZS5ub2Rlcy5zbGljZSgwKTtmb3IobGV0IG4gb2YgZSluLnBhcmVudCYmbi5wYXJlbnQucmVtb3ZlQ2hpbGQobiwiaWdub3JlIil9ZWxzZSBpZihlLnR5cGUpZT1bZV07ZWxzZSBpZihlLnByb3Ape2lmKHR5cGVvZiBlLnZhbHVlPT0idW5kZWZpbmVkIil0aHJvdyBuZXcgRXJyb3IoIlZhbHVlIGZpZWxkIGlzIG1pc3NlZCBpbiBub2RlIGNyZWF0aW9uIik7dHlwZW9mIGUudmFsdWUhPSJzdHJpbmciJiYoZS52YWx1ZT1TdHJpbmcoZS52YWx1ZSkpLGU9W25ldyB3YyhlKV19ZWxzZSBpZihlLnNlbGVjdG9yfHxlLnNlbGVjdG9ycyllPVtuZXcgbWEoZSldO2Vsc2UgaWYoZS5uYW1lKWU9W25ldyBoYShlKV07ZWxzZSBpZihlLnRleHQpZT1bbmV3IGJjKGUpXTtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBub2RlIHR5cGUgaW4gbm9kZSBjcmVhdGlvbiIpO3JldHVybiBlLm1hcChuPT4oblt4Y118fEZlLnJlYnVpbGQobiksbj1uLnByb3h5T2Ysbi5wYXJlbnQmJm4ucGFyZW50LnJlbW92ZUNoaWxkKG4pLG5bdmNdJiZDYyhuKSxuLnJhd3N8fChuLnJhd3M9e30pLHR5cGVvZiBuLnJhd3MuYmVmb3JlPT0idW5kZWZpbmVkIiYmdCYmdHlwZW9mIHQucmF3cy5iZWZvcmUhPSJ1bmRlZmluZWQiJiYobi5yYXdzLmJlZm9yZT10LnJhd3MuYmVmb3JlLnJlcGxhY2UoL1xTL2csIiIpKSxuLnBhcmVudD10aGlzLnByb3h5T2YsbikpfXByZXBlbmQoLi4uZSl7ZT1lLnJldmVyc2UoKTtmb3IobGV0IHQgb2YgZSl7bGV0IGk9dGhpcy5ub3JtYWxpemUodCx0aGlzLmZpcnN0LCJwcmVwZW5kIikucmV2ZXJzZSgpO2ZvcihsZXQgbiBvZiBpKXRoaXMucHJveHlPZi5ub2Rlcy51bnNoaWZ0KG4pO2ZvcihsZXQgbiBpbiB0aGlzLmluZGV4ZXMpdGhpcy5pbmRleGVzW25dPXRoaXMuaW5kZXhlc1tuXStpLmxlbmd0aH1yZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfXB1c2goZSl7cmV0dXJuIGUucGFyZW50PXRoaXMsdGhpcy5wcm94eU9mLm5vZGVzLnB1c2goZSksdGhpc31yZW1vdmVBbGwoKXtmb3IobGV0IGUgb2YgdGhpcy5wcm94eU9mLm5vZGVzKWUucGFyZW50PXZvaWQgMDtyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzPVtdLHRoaXMubWFya0RpcnR5KCksdGhpc31yZW1vdmVDaGlsZChlKXtlPXRoaXMuaW5kZXgoZSksdGhpcy5wcm94eU9mLm5vZGVzW2VdLnBhcmVudD12b2lkIDAsdGhpcy5wcm94eU9mLm5vZGVzLnNwbGljZShlLDEpO2xldCB0O2ZvcihsZXQgaSBpbiB0aGlzLmluZGV4ZXMpdD10aGlzLmluZGV4ZXNbaV0sdD49ZSYmKHRoaXMuaW5kZXhlc1tpXT10LTEpO3JldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9cmVwbGFjZVZhbHVlcyhlLHQsaSl7cmV0dXJuIGl8fChpPXQsdD17fSksdGhpcy53YWxrRGVjbHMobj0+e3QucHJvcHMmJiF0LnByb3BzLmluY2x1ZGVzKG4ucHJvcCl8fHQuZmFzdCYmIW4udmFsdWUuaW5jbHVkZXModC5mYXN0KXx8KG4udmFsdWU9bi52YWx1ZS5yZXBsYWNlKGUsaSkpfSksdGhpcy5tYXJrRGlydHkoKSx0aGlzfXNvbWUoZSl7cmV0dXJuIHRoaXMubm9kZXMuc29tZShlKX13YWxrKGUpe3JldHVybiB0aGlzLmVhY2goKHQsaSk9PntsZXQgbjt0cnl7bj1lKHQsaSl9Y2F0Y2gocyl7dGhyb3cgdC5hZGRUb0Vycm9yKHMpfXJldHVybiBuIT09ITEmJnQud2FsayYmKG49dC53YWxrKGUpKSxufSl9d2Fsa0F0UnVsZXMoZSx0KXtyZXR1cm4gdD9lIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMud2FsaygoaSxuKT0+e2lmKGkudHlwZT09PSJhdHJ1bGUiJiZlLnRlc3QoaS5uYW1lKSlyZXR1cm4gdChpLG4pfSk6dGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImF0cnVsZSImJmkubmFtZT09PWUpcmV0dXJuIHQoaSxuKX0pOih0PWUsdGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImF0cnVsZSIpcmV0dXJuIHQoaSxuKX0pKX13YWxrQ29tbWVudHMoZSl7cmV0dXJuIHRoaXMud2FsaygodCxpKT0+e2lmKHQudHlwZT09PSJjb21tZW50IilyZXR1cm4gZSh0LGkpfSl9d2Fsa0RlY2xzKGUsdCl7cmV0dXJuIHQ/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0iZGVjbCImJmUudGVzdChpLnByb3ApKXJldHVybiB0KGksbil9KTp0aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0iZGVjbCImJmkucHJvcD09PWUpcmV0dXJuIHQoaSxuKX0pOih0PWUsdGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImRlY2wiKXJldHVybiB0KGksbil9KSl9d2Fsa1J1bGVzKGUsdCl7cmV0dXJuIHQ/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0icnVsZSImJmUudGVzdChpLnNlbGVjdG9yKSlyZXR1cm4gdChpLG4pfSk6dGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09InJ1bGUiJiZpLnNlbGVjdG9yPT09ZSlyZXR1cm4gdChpLG4pfSk6KHQ9ZSx0aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0icnVsZSIpcmV0dXJuIHQoaSxuKX0pKX1nZXQgZmlyc3QoKXtpZighIXRoaXMucHJveHlPZi5ub2RlcylyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzWzBdfWdldCBsYXN0KCl7aWYoISF0aGlzLnByb3h5T2Yubm9kZXMpcmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlc1t0aGlzLnByb3h5T2Yubm9kZXMubGVuZ3RoLTFdfX07RmUucmVnaXN0ZXJQYXJzZT1yPT57a2M9cn07RmUucmVnaXN0ZXJSdWxlPXI9PnttYT1yfTtGZS5yZWdpc3RlckF0UnVsZT1yPT57aGE9cn07RmUucmVnaXN0ZXJSb290PXI9PntTYz1yfTtfYy5leHBvcnRzPUZlO0ZlLmRlZmF1bHQ9RmU7RmUucmVidWlsZD1yPT57ci50eXBlPT09ImF0cnVsZSI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsaGEucHJvdG90eXBlKTpyLnR5cGU9PT0icnVsZSI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsbWEucHJvdG90eXBlKTpyLnR5cGU9PT0iZGVjbCI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsd2MucHJvdG90eXBlKTpyLnR5cGU9PT0iY29tbWVudCI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsYmMucHJvdG90eXBlKTpyLnR5cGU9PT0icm9vdCImJk9iamVjdC5zZXRQcm90b3R5cGVPZihyLFNjLnByb3RvdHlwZSksclt4Y109ITAsci5ub2RlcyYmci5ub2Rlcy5mb3JFYWNoKGU9PntGZS5yZWJ1aWxkKGUpfSl9fSk7dmFyIHBuPXgoKE8zLE9jKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIEVjPUV0KCksS3I9Y2xhc3MgZXh0ZW5kcyBFY3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnR5cGU9ImF0cnVsZSJ9YXBwZW5kKC4uLmUpe3JldHVybiB0aGlzLnByb3h5T2Yubm9kZXN8fCh0aGlzLm5vZGVzPVtdKSxzdXBlci5hcHBlbmQoLi4uZSl9cHJlcGVuZCguLi5lKXtyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSksc3VwZXIucHJlcGVuZCguLi5lKX19O09jLmV4cG9ydHM9S3I7S3IuZGVmYXVsdD1LcjtFYy5yZWdpc3RlckF0UnVsZShLcil9KTt2YXIgZG49eCgoVDMsUGMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgVHg9RXQoKSxUYyxSYyxlcj1jbGFzcyBleHRlbmRzIFR4e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHt0eXBlOiJkb2N1bWVudCIsLi4uZX0pO3RoaXMubm9kZXN8fCh0aGlzLm5vZGVzPVtdKX10b1Jlc3VsdChlPXt9KXtyZXR1cm4gbmV3IFRjKG5ldyBSYyx0aGlzLGUpLnN0cmluZ2lmeSgpfX07ZXIucmVnaXN0ZXJMYXp5UmVzdWx0PXI9PntUYz1yfTtlci5yZWdpc3RlclByb2Nlc3Nvcj1yPT57UmM9cn07UGMuZXhwb3J0cz1lcjtlci5kZWZhdWx0PWVyfSk7dmFyIERjPXgoKFIzLEljKT0+e3UoKTt2YXIgUng9InVzZWFuZG9tLTI2VDE5ODM0MFBYNzVweEpBQ0tWRVJZTUlOREJVU0hXT0xGX0dRWmJmZ2hqa2xxdnd5enJpY3QiLFB4PShyLGU9MjEpPT4odD1lKT0+e2xldCBpPSIiLG49dDtmb3IoO24tLTspaSs9cltNYXRoLnJhbmRvbSgpKnIubGVuZ3RofDBdO3JldHVybiBpfSxJeD0ocj0yMSk9PntsZXQgZT0iIix0PXI7Zm9yKDt0LS07KWUrPVJ4W01hdGgucmFuZG9tKCkqNjR8MF07cmV0dXJuIGV9O0ljLmV4cG9ydHM9e25hbm9pZDpJeCxjdXN0b21BbHBoYWJldDpQeH19KTt2YXIgcWM9eCgoKT0+e3UoKX0pO3ZhciBnYT14KChEMywkYyk9Pnt1KCk7JGMuZXhwb3J0cz17fX0pO3ZhciBtbj14KChxMyxCYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhcntuYW5vaWQ6RHh9PURjKCkse2lzQWJzb2x1dGU6eWEscmVzb2x2ZTpiYX09KGV0KCksVXIpLHtTb3VyY2VNYXBDb25zdW1lcjpxeCxTb3VyY2VNYXBHZW5lcmF0b3I6JHh9PXFjKCkse2ZpbGVVUkxUb1BhdGg6TGMscGF0aFRvRmlsZVVSTDpobn09KGxhKCksbGMpLE1jPWFuKCksTHg9Z2EoKSx3YT11YSgpLHZhPVN5bWJvbCgiZnJvbU9mZnNldENhY2hlIiksTXg9Qm9vbGVhbihxeCYmJHgpLE5jPUJvb2xlYW4oYmEmJnlhKSxYcj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQ9e30pe2lmKGU9PT1udWxsfHx0eXBlb2YgZT09InVuZGVmaW5lZCJ8fHR5cGVvZiBlPT0ib2JqZWN0IiYmIWUudG9TdHJpbmcpdGhyb3cgbmV3IEVycm9yKGBQb3N0Q1NTIHJlY2VpdmVkICR7ZX0gaW5zdGVhZCBvZiBDU1Mgc3RyaW5nYCk7aWYodGhpcy5jc3M9ZS50b1N0cmluZygpLHRoaXMuY3NzWzBdPT09Ilx1RkVGRiJ8fHRoaXMuY3NzWzBdPT09Ilx1RkZGRSI/KHRoaXMuaGFzQk9NPSEwLHRoaXMuY3NzPXRoaXMuY3NzLnNsaWNlKDEpKTp0aGlzLmhhc0JPTT0hMSx0LmZyb20mJighTmN8fC9eXHcrOlwvXC8vLnRlc3QodC5mcm9tKXx8eWEodC5mcm9tKT90aGlzLmZpbGU9dC5mcm9tOnRoaXMuZmlsZT1iYSh0LmZyb20pKSxOYyYmTXgpe2xldCBpPW5ldyBMeCh0aGlzLmNzcyx0KTtpZihpLnRleHQpe3RoaXMubWFwPWk7bGV0IG49aS5jb25zdW1lcigpLmZpbGU7IXRoaXMuZmlsZSYmbiYmKHRoaXMuZmlsZT10aGlzLm1hcFJlc29sdmUobikpfX10aGlzLmZpbGV8fCh0aGlzLmlkPSI8aW5wdXQgY3NzICIrRHgoNikrIj4iKSx0aGlzLm1hcCYmKHRoaXMubWFwLmZpbGU9dGhpcy5mcm9tKX1lcnJvcihlLHQsaSxuPXt9KXtsZXQgcyxhLG87aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtsZXQgYz10LGY9aTtpZih0eXBlb2YgYy5vZmZzZXQ9PSJudW1iZXIiKXtsZXQgZD10aGlzLmZyb21PZmZzZXQoYy5vZmZzZXQpO3Q9ZC5saW5lLGk9ZC5jb2x9ZWxzZSB0PWMubGluZSxpPWMuY29sdW1uO2lmKHR5cGVvZiBmLm9mZnNldD09Im51bWJlciIpe2xldCBkPXRoaXMuZnJvbU9mZnNldChmLm9mZnNldCk7YT1kLmxpbmUscz1kLmNvbH1lbHNlIGE9Zi5saW5lLHM9Zi5jb2x1bW59ZWxzZSBpZighaSl7bGV0IGM9dGhpcy5mcm9tT2Zmc2V0KHQpO3Q9Yy5saW5lLGk9Yy5jb2x9bGV0IGw9dGhpcy5vcmlnaW4odCxpLGEscyk7cmV0dXJuIGw/bz1uZXcgTWMoZSxsLmVuZExpbmU9PT12b2lkIDA/bC5saW5lOntjb2x1bW46bC5jb2x1bW4sbGluZTpsLmxpbmV9LGwuZW5kTGluZT09PXZvaWQgMD9sLmNvbHVtbjp7Y29sdW1uOmwuZW5kQ29sdW1uLGxpbmU6bC5lbmRMaW5lfSxsLnNvdXJjZSxsLmZpbGUsbi5wbHVnaW4pOm89bmV3IE1jKGUsYT09PXZvaWQgMD90Ontjb2x1bW46aSxsaW5lOnR9LGE9PT12b2lkIDA/aTp7Y29sdW1uOnMsbGluZTphfSx0aGlzLmNzcyx0aGlzLmZpbGUsbi5wbHVnaW4pLG8uaW5wdXQ9e2NvbHVtbjppLGVuZENvbHVtbjpzLGVuZExpbmU6YSxsaW5lOnQsc291cmNlOnRoaXMuY3NzfSx0aGlzLmZpbGUmJihobiYmKG8uaW5wdXQudXJsPWhuKHRoaXMuZmlsZSkudG9TdHJpbmcoKSksby5pbnB1dC5maWxlPXRoaXMuZmlsZSksb31mcm9tT2Zmc2V0KGUpe2xldCB0LGk7aWYodGhpc1t2YV0paT10aGlzW3ZhXTtlbHNle2xldCBzPXRoaXMuY3NzLnNwbGl0KGAKYCk7aT1uZXcgQXJyYXkocy5sZW5ndGgpO2xldCBhPTA7Zm9yKGxldCBvPTAsbD1zLmxlbmd0aDtvPGw7bysrKWlbb109YSxhKz1zW29dLmxlbmd0aCsxO3RoaXNbdmFdPWl9dD1pW2kubGVuZ3RoLTFdO2xldCBuPTA7aWYoZT49dCluPWkubGVuZ3RoLTE7ZWxzZXtsZXQgcz1pLmxlbmd0aC0yLGE7Zm9yKDtuPHM7KWlmKGE9bisocy1uPj4xKSxlPGlbYV0pcz1hLTE7ZWxzZSBpZihlPj1pW2ErMV0pbj1hKzE7ZWxzZXtuPWE7YnJlYWt9fXJldHVybntjb2w6ZS1pW25dKzEsbGluZTpuKzF9fW1hcFJlc29sdmUoZSl7cmV0dXJuL15cdys6XC9cLy8udGVzdChlKT9lOmJhKHRoaXMubWFwLmNvbnN1bWVyKCkuc291cmNlUm9vdHx8dGhpcy5tYXAucm9vdHx8Ii4iLGUpfW9yaWdpbihlLHQsaSxuKXtpZighdGhpcy5tYXApcmV0dXJuITE7bGV0IHM9dGhpcy5tYXAuY29uc3VtZXIoKSxhPXMub3JpZ2luYWxQb3NpdGlvbkZvcih7Y29sdW1uOnQsbGluZTplfSk7aWYoIWEuc291cmNlKXJldHVybiExO2xldCBvO3R5cGVvZiBpPT0ibnVtYmVyIiYmKG89cy5vcmlnaW5hbFBvc2l0aW9uRm9yKHtjb2x1bW46bixsaW5lOml9KSk7bGV0IGw7eWEoYS5zb3VyY2UpP2w9aG4oYS5zb3VyY2UpOmw9bmV3IFVSTChhLnNvdXJjZSx0aGlzLm1hcC5jb25zdW1lcigpLnNvdXJjZVJvb3R8fGhuKHRoaXMubWFwLm1hcEZpbGUpKTtsZXQgYz17Y29sdW1uOmEuY29sdW1uLGVuZENvbHVtbjpvJiZvLmNvbHVtbixlbmRMaW5lOm8mJm8ubGluZSxsaW5lOmEubGluZSx1cmw6bC50b1N0cmluZygpfTtpZihsLnByb3RvY29sPT09ImZpbGU6IilpZihMYyljLmZpbGU9TGMobCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoImZpbGU6IHByb3RvY29sIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBQb3N0Q1NTIGJ1aWxkIik7bGV0IGY9cy5zb3VyY2VDb250ZW50Rm9yKGEuc291cmNlKTtyZXR1cm4gZiYmKGMuc291cmNlPWYpLGN9dG9KU09OKCl7bGV0IGU9e307Zm9yKGxldCB0IG9mWyJoYXNCT00iLCJjc3MiLCJmaWxlIiwiaWQiXSl0aGlzW3RdIT1udWxsJiYoZVt0XT10aGlzW3RdKTtyZXR1cm4gdGhpcy5tYXAmJihlLm1hcD17Li4udGhpcy5tYXB9LGUubWFwLmNvbnN1bWVyQ2FjaGUmJihlLm1hcC5jb25zdW1lckNhY2hlPXZvaWQgMCkpLGV9Z2V0IGZyb20oKXtyZXR1cm4gdGhpcy5maWxlfHx0aGlzLmlkfX07QmMuZXhwb3J0cz1YcjtYci5kZWZhdWx0PVhyO3dhJiZ3YS5yZWdpc3RlcklucHV0JiZ3YS5yZWdpc3RlcklucHV0KFhyKX0pO3ZhciB0cj14KCgkMyxVYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBGYz1FdCgpLGpjLHpjLFV0PWNsYXNzIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy50eXBlPSJyb290Iix0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9bm9ybWFsaXplKGUsdCxpKXtsZXQgbj1zdXBlci5ub3JtYWxpemUoZSk7aWYodCl7aWYoaT09PSJwcmVwZW5kIil0aGlzLm5vZGVzLmxlbmd0aD4xP3QucmF3cy5iZWZvcmU9dGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZTpkZWxldGUgdC5yYXdzLmJlZm9yZTtlbHNlIGlmKHRoaXMuZmlyc3QhPT10KWZvcihsZXQgcyBvZiBuKXMucmF3cy5iZWZvcmU9dC5yYXdzLmJlZm9yZX1yZXR1cm4gbn1yZW1vdmVDaGlsZChlLHQpe2xldCBpPXRoaXMuaW5kZXgoZSk7cmV0dXJuIXQmJmk9PT0wJiZ0aGlzLm5vZGVzLmxlbmd0aD4xJiYodGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZT10aGlzLm5vZGVzW2ldLnJhd3MuYmVmb3JlKSxzdXBlci5yZW1vdmVDaGlsZChlKX10b1Jlc3VsdChlPXt9KXtyZXR1cm4gbmV3IGpjKG5ldyB6Yyx0aGlzLGUpLnN0cmluZ2lmeSgpfX07VXQucmVnaXN0ZXJMYXp5UmVzdWx0PXI9PntqYz1yfTtVdC5yZWdpc3RlclByb2Nlc3Nvcj1yPT57emM9cn07VWMuZXhwb3J0cz1VdDtVdC5kZWZhdWx0PVV0O0ZjLnJlZ2lzdGVyUm9vdChVdCl9KTt2YXIgeGE9eCgoTDMsVmMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgWnI9e2NvbW1hKHIpe3JldHVybiBaci5zcGxpdChyLFsiLCJdLCEwKX0sc3BhY2Uocil7bGV0IGU9WyIgIixgCmAsIgkiXTtyZXR1cm4gWnIuc3BsaXQocixlKX0sc3BsaXQocixlLHQpe2xldCBpPVtdLG49IiIscz0hMSxhPTAsbz0hMSxsPSIiLGM9ITE7Zm9yKGxldCBmIG9mIHIpYz9jPSExOmY9PT0iXFwiP2M9ITA6bz9mPT09bCYmKG89ITEpOmY9PT0nIid8fGY9PT0iJyI/KG89ITAsbD1mKTpmPT09IigiP2ErPTE6Zj09PSIpIj9hPjAmJihhLT0xKTphPT09MCYmZS5pbmNsdWRlcyhmKSYmKHM9ITApLHM/KG4hPT0iIiYmaS5wdXNoKG4udHJpbSgpKSxuPSIiLHM9ITEpOm4rPWY7cmV0dXJuKHR8fG4hPT0iIikmJmkucHVzaChuLnRyaW0oKSksaX19O1ZjLmV4cG9ydHM9WnI7WnIuZGVmYXVsdD1acn0pO3ZhciBnbj14KChNMyxXYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBIYz1FdCgpLE54PXhhKCksSnI9Y2xhc3MgZXh0ZW5kcyBIY3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnR5cGU9InJ1bGUiLHRoaXMubm9kZXN8fCh0aGlzLm5vZGVzPVtdKX1nZXQgc2VsZWN0b3JzKCl7cmV0dXJuIE54LmNvbW1hKHRoaXMuc2VsZWN0b3IpfXNldCBzZWxlY3RvcnMoZSl7bGV0IHQ9dGhpcy5zZWxlY3Rvcj90aGlzLnNlbGVjdG9yLm1hdGNoKC8sXHMqLyk6bnVsbCxpPXQ/dFswXToiLCIrdGhpcy5yYXcoImJldHdlZW4iLCJiZWZvcmVPcGVuIik7dGhpcy5zZWxlY3Rvcj1lLmpvaW4oaSl9fTtXYy5leHBvcnRzPUpyO0pyLmRlZmF1bHQ9SnI7SGMucmVnaXN0ZXJSdWxlKEpyKX0pO3ZhciBRYz14KChOMyxHYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBCeD1wbigpLEZ4PVFyKCksang9WXIoKSx6eD1tbigpLFV4PWdhKCksVng9dHIoKSxIeD1nbigpO2Z1bmN0aW9uIGVpKHIsZSl7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gci5tYXAobj0+ZWkobikpO2xldHtpbnB1dHM6dCwuLi5pfT1yO2lmKHQpe2U9W107Zm9yKGxldCBuIG9mIHQpe2xldCBzPXsuLi5uLF9fcHJvdG9fXzp6eC5wcm90b3R5cGV9O3MubWFwJiYocy5tYXA9ey4uLnMubWFwLF9fcHJvdG9fXzpVeC5wcm90b3R5cGV9KSxlLnB1c2gocyl9fWlmKGkubm9kZXMmJihpLm5vZGVzPXIubm9kZXMubWFwKG49PmVpKG4sZSkpKSxpLnNvdXJjZSl7bGV0e2lucHV0SWQ6biwuLi5zfT1pLnNvdXJjZTtpLnNvdXJjZT1zLG4hPW51bGwmJihpLnNvdXJjZS5pbnB1dD1lW25dKX1pZihpLnR5cGU9PT0icm9vdCIpcmV0dXJuIG5ldyBWeChpKTtpZihpLnR5cGU9PT0iZGVjbCIpcmV0dXJuIG5ldyBqeChpKTtpZihpLnR5cGU9PT0icnVsZSIpcmV0dXJuIG5ldyBIeChpKTtpZihpLnR5cGU9PT0iY29tbWVudCIpcmV0dXJuIG5ldyBGeChpKTtpZihpLnR5cGU9PT0iYXRydWxlIilyZXR1cm4gbmV3IEJ4KGkpO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBub2RlIHR5cGU6ICIrci50eXBlKX1HYy5leHBvcnRzPWVpO2VpLmRlZmF1bHQ9ZWl9KTt2YXIga2E9eCgoQjMsWWMpPT57dSgpO1ljLmV4cG9ydHM9ZnVuY3Rpb24ocixlKXtyZXR1cm57Z2VuZXJhdGU6KCk9PntsZXQgdD0iIjtyZXR1cm4gcihlLGk9Pnt0Kz1pfSksW3RdfX19fSk7dmFyIGVwPXgoKEYzLEpjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIFNhPSInIi5jaGFyQ29kZUF0KDApLEtjPSciJy5jaGFyQ29kZUF0KDApLHluPSJcXCIuY2hhckNvZGVBdCgwKSxYYz0iLyIuY2hhckNvZGVBdCgwKSxibj1gCmAuY2hhckNvZGVBdCgwKSx0aT0iICIuY2hhckNvZGVBdCgwKSx3bj0iXGYiLmNoYXJDb2RlQXQoMCksdm49IgkiLmNoYXJDb2RlQXQoMCkseG49IlxyIi5jaGFyQ29kZUF0KDApLFd4PSJbIi5jaGFyQ29kZUF0KDApLEd4PSJdIi5jaGFyQ29kZUF0KDApLFF4PSIoIi5jaGFyQ29kZUF0KDApLFl4PSIpIi5jaGFyQ29kZUF0KDApLEt4PSJ7Ii5jaGFyQ29kZUF0KDApLFh4PSJ9Ii5jaGFyQ29kZUF0KDApLFp4PSI7Ii5jaGFyQ29kZUF0KDApLEp4PSIqIi5jaGFyQ29kZUF0KDApLGUxPSI6Ii5jaGFyQ29kZUF0KDApLHQxPSJAIi5jaGFyQ29kZUF0KDApLGtuPS9bXHRcblxmXHIgIiMnKCkvO1tcXFxde31dL2csU249L1tcdFxuXGZcciAhIiMnKCk6O0BbXFxcXXt9XXxcLyg/PVwqKS9nLHIxPS8uW1xyXG4iJygvXFxdLyxaYz0vW1xkYS1mXS9pO0pjLmV4cG9ydHM9ZnVuY3Rpb24oZSx0PXt9KXtsZXQgaT1lLmNzcy52YWx1ZU9mKCksbj10Lmlnbm9yZUVycm9ycyxzLGEsbyxsLGMsZixkLHAsaCxiLHY9aS5sZW5ndGgseT0wLHc9W10saz1bXTtmdW5jdGlvbiBTKCl7cmV0dXJuIHl9ZnVuY3Rpb24gRShSKXt0aHJvdyBlLmVycm9yKCJVbmNsb3NlZCAiK1IseSl9ZnVuY3Rpb24gVCgpe3JldHVybiBrLmxlbmd0aD09PTAmJnk+PXZ9ZnVuY3Rpb24gQihSKXtpZihrLmxlbmd0aClyZXR1cm4gay5wb3AoKTtpZih5Pj12KXJldHVybjtsZXQgRj1SP1IuaWdub3JlVW5jbG9zZWQ6ITE7c3dpdGNoKHM9aS5jaGFyQ29kZUF0KHkpLHMpe2Nhc2UgYm46Y2FzZSB0aTpjYXNlIHZuOmNhc2UgeG46Y2FzZSB3bjp7bD15O2RvIGwrPTEscz1pLmNoYXJDb2RlQXQobCk7d2hpbGUocz09PXRpfHxzPT09Ym58fHM9PT12bnx8cz09PXhufHxzPT09d24pO2Y9WyJzcGFjZSIsaS5zbGljZSh5LGwpXSx5PWwtMTticmVha31jYXNlIFd4OmNhc2UgR3g6Y2FzZSBLeDpjYXNlIFh4OmNhc2UgZTE6Y2FzZSBaeDpjYXNlIFl4OntsZXQgWT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpO2Y9W1ksWSx5XTticmVha31jYXNlIFF4OntpZihiPXcubGVuZ3RoP3cucG9wKClbMV06IiIsaD1pLmNoYXJDb2RlQXQoeSsxKSxiPT09InVybCImJmghPT1TYSYmaCE9PUtjJiZoIT09dGkmJmghPT1ibiYmaCE9PXZuJiZoIT09d24mJmghPT14bil7bD15O2Rve2lmKGQ9ITEsbD1pLmluZGV4T2YoIikiLGwrMSksbD09PS0xKWlmKG58fEYpe2w9eTticmVha31lbHNlIEUoImJyYWNrZXQiKTtmb3IocD1sO2kuY2hhckNvZGVBdChwLTEpPT09eW47KXAtPTEsZD0hZH13aGlsZShkKTtmPVsiYnJhY2tldHMiLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sfWVsc2UgbD1pLmluZGV4T2YoIikiLHkrMSksYT1pLnNsaWNlKHksbCsxKSxsPT09LTF8fHIxLnRlc3QoYSk/Zj1bIigiLCIoIix5XTooZj1bImJyYWNrZXRzIixhLHksbF0seT1sKTticmVha31jYXNlIFNhOmNhc2UgS2M6e2M9cz09PVNhPyInIjonIicsbD15O2Rve2lmKGQ9ITEsbD1pLmluZGV4T2YoYyxsKzEpLGw9PT0tMSlpZihufHxGKXtsPXkrMTticmVha31lbHNlIEUoInN0cmluZyIpO2ZvcihwPWw7aS5jaGFyQ29kZUF0KHAtMSk9PT15bjspcC09MSxkPSFkfXdoaWxlKGQpO2Y9WyJzdHJpbmciLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sO2JyZWFrfWNhc2UgdDE6e2tuLmxhc3RJbmRleD15KzEsa24udGVzdChpKSxrbi5sYXN0SW5kZXg9PT0wP2w9aS5sZW5ndGgtMTpsPWtuLmxhc3RJbmRleC0yLGY9WyJhdC13b3JkIixpLnNsaWNlKHksbCsxKSx5LGxdLHk9bDticmVha31jYXNlIHluOntmb3IobD15LG89ITA7aS5jaGFyQ29kZUF0KGwrMSk9PT15bjspbCs9MSxvPSFvO2lmKHM9aS5jaGFyQ29kZUF0KGwrMSksbyYmcyE9PVhjJiZzIT09dGkmJnMhPT1ibiYmcyE9PXZuJiZzIT09eG4mJnMhPT13biYmKGwrPTEsWmMudGVzdChpLmNoYXJBdChsKSkpKXtmb3IoO1pjLnRlc3QoaS5jaGFyQXQobCsxKSk7KWwrPTE7aS5jaGFyQ29kZUF0KGwrMSk9PT10aSYmKGwrPTEpfWY9WyJ3b3JkIixpLnNsaWNlKHksbCsxKSx5LGxdLHk9bDticmVha31kZWZhdWx0OntzPT09WGMmJmkuY2hhckNvZGVBdCh5KzEpPT09Sng/KGw9aS5pbmRleE9mKCIqLyIseSsyKSsxLGw9PT0wJiYobnx8Rj9sPWkubGVuZ3RoOkUoImNvbW1lbnQiKSksZj1bImNvbW1lbnQiLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sKTooU24ubGFzdEluZGV4PXkrMSxTbi50ZXN0KGkpLFNuLmxhc3RJbmRleD09PTA/bD1pLmxlbmd0aC0xOmw9U24ubGFzdEluZGV4LTIsZj1bIndvcmQiLGkuc2xpY2UoeSxsKzEpLHksbF0sdy5wdXNoKGYpLHk9bCk7YnJlYWt9fXJldHVybiB5KyssZn1mdW5jdGlvbiBOKFIpe2sucHVzaChSKX1yZXR1cm57YmFjazpOLGVuZE9mRmlsZTpULG5leHRUb2tlbjpCLHBvc2l0aW9uOlN9fX0pO3ZhciBzcD14KChqMyxucCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBpMT1wbigpLG4xPVFyKCksczE9WXIoKSxhMT10cigpLHRwPWduKCksbzE9ZXAoKSxycD17ZW1wdHk6ITAsc3BhY2U6ITB9O2Z1bmN0aW9uIGwxKHIpe2ZvcihsZXQgZT1yLmxlbmd0aC0xO2U+PTA7ZS0tKXtsZXQgdD1yW2VdLGk9dFszXXx8dFsyXTtpZihpKXJldHVybiBpfX12YXIgaXA9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5pbnB1dD1lLHRoaXMucm9vdD1uZXcgYTEsdGhpcy5jdXJyZW50PXRoaXMucm9vdCx0aGlzLnNwYWNlcz0iIix0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmNyZWF0ZVRva2VuaXplcigpLHRoaXMucm9vdC5zb3VyY2U9e2lucHV0OmUsc3RhcnQ6e2NvbHVtbjoxLGxpbmU6MSxvZmZzZXQ6MH19fWF0cnVsZShlKXtsZXQgdD1uZXcgaTE7dC5uYW1lPWVbMV0uc2xpY2UoMSksdC5uYW1lPT09IiImJnRoaXMudW5uYW1lZEF0cnVsZSh0LGUpLHRoaXMuaW5pdCh0LGVbMl0pO2xldCBpLG4scyxhPSExLG89ITEsbD1bXSxjPVtdO2Zvcig7IXRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpOyl7aWYoZT10aGlzLnRva2VuaXplci5uZXh0VG9rZW4oKSxpPWVbMF0saT09PSIoInx8aT09PSJbIj9jLnB1c2goaT09PSIoIj8iKSI6Il0iKTppPT09InsiJiZjLmxlbmd0aD4wP2MucHVzaCgifSIpOmk9PT1jW2MubGVuZ3RoLTFdJiZjLnBvcCgpLGMubGVuZ3RoPT09MClpZihpPT09IjsiKXt0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihlWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyssdGhpcy5zZW1pY29sb249ITA7YnJlYWt9ZWxzZSBpZihpPT09InsiKXtvPSEwO2JyZWFrfWVsc2UgaWYoaT09PSJ9Iil7aWYobC5sZW5ndGg+MCl7Zm9yKHM9bC5sZW5ndGgtMSxuPWxbc107biYmblswXT09PSJzcGFjZSI7KW49bFstLXNdO24mJih0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihuWzNdfHxuWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyspfXRoaXMuZW5kKGUpO2JyZWFrfWVsc2UgbC5wdXNoKGUpO2Vsc2UgbC5wdXNoKGUpO2lmKHRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpKXthPSEwO2JyZWFrfX10LnJhd3MuYmV0d2Vlbj10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZChsKSxsLmxlbmd0aD8odC5yYXdzLmFmdGVyTmFtZT10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbVN0YXJ0KGwpLHRoaXMucmF3KHQsInBhcmFtcyIsbCksYSYmKGU9bFtsLmxlbmd0aC0xXSx0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihlWzNdfHxlWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyssdGhpcy5zcGFjZXM9dC5yYXdzLmJldHdlZW4sdC5yYXdzLmJldHdlZW49IiIpKToodC5yYXdzLmFmdGVyTmFtZT0iIix0LnBhcmFtcz0iIiksbyYmKHQubm9kZXM9W10sdGhpcy5jdXJyZW50PXQpfWNoZWNrTWlzc2VkU2VtaWNvbG9uKGUpe2xldCB0PXRoaXMuY29sb24oZSk7aWYodD09PSExKXJldHVybjtsZXQgaT0wLG47Zm9yKGxldCBzPXQtMTtzPj0wJiYobj1lW3NdLCEoblswXSE9PSJzcGFjZSImJihpKz0xLGk9PT0yKSkpO3MtLSk7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiTWlzc2VkIHNlbWljb2xvbiIsblswXT09PSJ3b3JkIj9uWzNdKzE6blsyXSl9Y29sb24oZSl7bGV0IHQ9MCxpLG4scztmb3IobGV0W2Esb11vZiBlLmVudHJpZXMoKSl7aWYobj1vLHM9blswXSxzPT09IigiJiYodCs9MSkscz09PSIpIiYmKHQtPTEpLHQ9PT0wJiZzPT09IjoiKWlmKCFpKXRoaXMuZG91YmxlQ29sb24obik7ZWxzZXtpZihpWzBdPT09IndvcmQiJiZpWzFdPT09InByb2dpZCIpY29udGludWU7cmV0dXJuIGF9aT1ufXJldHVybiExfWNvbW1lbnQoZSl7bGV0IHQ9bmV3IG4xO3RoaXMuaW5pdCh0LGVbMl0pLHQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbM118fGVbMl0pLHQuc291cmNlLmVuZC5vZmZzZXQrKztsZXQgaT1lWzFdLnNsaWNlKDIsLTIpO2lmKC9eXHMqJC8udGVzdChpKSl0LnRleHQ9IiIsdC5yYXdzLmxlZnQ9aSx0LnJhd3MucmlnaHQ9IiI7ZWxzZXtsZXQgbj1pLm1hdGNoKC9eKFxzKikoW15dKlxTKShccyopJC8pO3QudGV4dD1uWzJdLHQucmF3cy5sZWZ0PW5bMV0sdC5yYXdzLnJpZ2h0PW5bM119fWNyZWF0ZVRva2VuaXplcigpe3RoaXMudG9rZW5pemVyPW8xKHRoaXMuaW5wdXQpfWRlY2woZSx0KXtsZXQgaT1uZXcgczE7dGhpcy5pbml0KGksZVswXVsyXSk7bGV0IG49ZVtlLmxlbmd0aC0xXTtmb3IoblswXT09PSI7IiYmKHRoaXMuc2VtaWNvbG9uPSEwLGUucG9wKCkpLGkuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKG5bM118fG5bMl18fGwxKGUpKSxpLnNvdXJjZS5lbmQub2Zmc2V0Kys7ZVswXVswXSE9PSJ3b3JkIjspZS5sZW5ndGg9PT0xJiZ0aGlzLnVua25vd25Xb3JkKGUpLGkucmF3cy5iZWZvcmUrPWUuc2hpZnQoKVsxXTtmb3IoaS5zb3VyY2Uuc3RhcnQ9dGhpcy5nZXRQb3NpdGlvbihlWzBdWzJdKSxpLnByb3A9IiI7ZS5sZW5ndGg7KXtsZXQgYz1lWzBdWzBdO2lmKGM9PT0iOiJ8fGM9PT0ic3BhY2UifHxjPT09ImNvbW1lbnQiKWJyZWFrO2kucHJvcCs9ZS5zaGlmdCgpWzFdfWkucmF3cy5iZXR3ZWVuPSIiO2xldCBzO2Zvcig7ZS5sZW5ndGg7KWlmKHM9ZS5zaGlmdCgpLHNbMF09PT0iOiIpe2kucmF3cy5iZXR3ZWVuKz1zWzFdO2JyZWFrfWVsc2Ugc1swXT09PSJ3b3JkIiYmL1x3Ly50ZXN0KHNbMV0pJiZ0aGlzLnVua25vd25Xb3JkKFtzXSksaS5yYXdzLmJldHdlZW4rPXNbMV07KGkucHJvcFswXT09PSJfInx8aS5wcm9wWzBdPT09IioiKSYmKGkucmF3cy5iZWZvcmUrPWkucHJvcFswXSxpLnByb3A9aS5wcm9wLnNsaWNlKDEpKTtsZXQgYT1bXSxvO2Zvcig7ZS5sZW5ndGgmJihvPWVbMF1bMF0sIShvIT09InNwYWNlIiYmbyE9PSJjb21tZW50IikpOylhLnB1c2goZS5zaGlmdCgpKTt0aGlzLnByZWNoZWNrTWlzc2VkU2VtaWNvbG9uKGUpO2ZvcihsZXQgYz1lLmxlbmd0aC0xO2M+PTA7Yy0tKXtpZihzPWVbY10sc1sxXS50b0xvd2VyQ2FzZSgpPT09IiFpbXBvcnRhbnQiKXtpLmltcG9ydGFudD0hMDtsZXQgZj10aGlzLnN0cmluZ0Zyb20oZSxjKTtmPXRoaXMuc3BhY2VzRnJvbUVuZChlKStmLGYhPT0iICFpbXBvcnRhbnQiJiYoaS5yYXdzLmltcG9ydGFudD1mKTticmVha31lbHNlIGlmKHNbMV0udG9Mb3dlckNhc2UoKT09PSJpbXBvcnRhbnQiKXtsZXQgZj1lLnNsaWNlKDApLGQ9IiI7Zm9yKGxldCBwPWM7cD4wO3AtLSl7bGV0IGg9ZltwXVswXTtpZihkLnRyaW0oKS5zdGFydHNXaXRoKCIhIikmJmghPT0ic3BhY2UiKWJyZWFrO2Q9Zi5wb3AoKVsxXStkfWQudHJpbSgpLnN0YXJ0c1dpdGgoIiEiKSYmKGkuaW1wb3J0YW50PSEwLGkucmF3cy5pbXBvcnRhbnQ9ZCxlPWYpfWlmKHNbMF0hPT0ic3BhY2UiJiZzWzBdIT09ImNvbW1lbnQiKWJyZWFrfWUuc29tZShjPT5jWzBdIT09InNwYWNlIiYmY1swXSE9PSJjb21tZW50IikmJihpLnJhd3MuYmV0d2Vlbis9YS5tYXAoYz0+Y1sxXSkuam9pbigiIiksYT1bXSksdGhpcy5yYXcoaSwidmFsdWUiLGEuY29uY2F0KGUpLHQpLGkudmFsdWUuaW5jbHVkZXMoIjoiKSYmIXQmJnRoaXMuY2hlY2tNaXNzZWRTZW1pY29sb24oZSl9ZG91YmxlQ29sb24oZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiRG91YmxlIGNvbG9uIix7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXStlWzFdLmxlbmd0aH0pfWVtcHR5UnVsZShlKXtsZXQgdD1uZXcgdHA7dGhpcy5pbml0KHQsZVsyXSksdC5zZWxlY3Rvcj0iIix0LnJhd3MuYmV0d2Vlbj0iIix0aGlzLmN1cnJlbnQ9dH1lbmQoZSl7dGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fCIiKSt0aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIix0aGlzLmN1cnJlbnQucGFyZW50Pyh0aGlzLmN1cnJlbnQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbMl0pLHRoaXMuY3VycmVudC5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuY3VycmVudD10aGlzLmN1cnJlbnQucGFyZW50KTp0aGlzLnVuZXhwZWN0ZWRDbG9zZShlKX1lbmRGaWxlKCl7dGhpcy5jdXJyZW50LnBhcmVudCYmdGhpcy51bmNsb3NlZEJsb2NrKCksdGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fCIiKSt0aGlzLnNwYWNlcyx0aGlzLnJvb3Quc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKHRoaXMudG9rZW5pemVyLnBvc2l0aW9uKCkpfWZyZWVTZW1pY29sb24oZSl7aWYodGhpcy5zcGFjZXMrPWVbMV0sdGhpcy5jdXJyZW50Lm5vZGVzKXtsZXQgdD10aGlzLmN1cnJlbnQubm9kZXNbdGhpcy5jdXJyZW50Lm5vZGVzLmxlbmd0aC0xXTt0JiZ0LnR5cGU9PT0icnVsZSImJiF0LnJhd3Mub3duU2VtaWNvbG9uJiYodC5yYXdzLm93blNlbWljb2xvbj10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIil9fWdldFBvc2l0aW9uKGUpe2xldCB0PXRoaXMuaW5wdXQuZnJvbU9mZnNldChlKTtyZXR1cm57Y29sdW1uOnQuY29sLGxpbmU6dC5saW5lLG9mZnNldDplfX1pbml0KGUsdCl7dGhpcy5jdXJyZW50LnB1c2goZSksZS5zb3VyY2U9e2lucHV0OnRoaXMuaW5wdXQsc3RhcnQ6dGhpcy5nZXRQb3NpdGlvbih0KX0sZS5yYXdzLmJlZm9yZT10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIixlLnR5cGUhPT0iY29tbWVudCImJih0aGlzLnNlbWljb2xvbj0hMSl9b3RoZXIoZSl7bGV0IHQ9ITEsaT1udWxsLG49ITEscz1udWxsLGE9W10sbz1lWzFdLnN0YXJ0c1dpdGgoIi0tIiksbD1bXSxjPWU7Zm9yKDtjOyl7aWYoaT1jWzBdLGwucHVzaChjKSxpPT09IigifHxpPT09IlsiKXN8fChzPWMpLGEucHVzaChpPT09IigiPyIpIjoiXSIpO2Vsc2UgaWYobyYmbiYmaT09PSJ7IilzfHwocz1jKSxhLnB1c2goIn0iKTtlbHNlIGlmKGEubGVuZ3RoPT09MClpZihpPT09IjsiKWlmKG4pe3RoaXMuZGVjbChsLG8pO3JldHVybn1lbHNlIGJyZWFrO2Vsc2UgaWYoaT09PSJ7Iil7dGhpcy5ydWxlKGwpO3JldHVybn1lbHNlIGlmKGk9PT0ifSIpe3RoaXMudG9rZW5pemVyLmJhY2sobC5wb3AoKSksdD0hMDticmVha31lbHNlIGk9PT0iOiImJihuPSEwKTtlbHNlIGk9PT1hW2EubGVuZ3RoLTFdJiYoYS5wb3AoKSxhLmxlbmd0aD09PTAmJihzPW51bGwpKTtjPXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpfWlmKHRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpJiYodD0hMCksYS5sZW5ndGg+MCYmdGhpcy51bmNsb3NlZEJyYWNrZXQocyksdCYmbil7aWYoIW8pZm9yKDtsLmxlbmd0aCYmKGM9bFtsLmxlbmd0aC0xXVswXSwhKGMhPT0ic3BhY2UiJiZjIT09ImNvbW1lbnQiKSk7KXRoaXMudG9rZW5pemVyLmJhY2sobC5wb3AoKSk7dGhpcy5kZWNsKGwsbyl9ZWxzZSB0aGlzLnVua25vd25Xb3JkKGwpfXBhcnNlKCl7bGV0IGU7Zm9yKDshdGhpcy50b2tlbml6ZXIuZW5kT2ZGaWxlKCk7KXN3aXRjaChlPXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpLGVbMF0pe2Nhc2Uic3BhY2UiOnRoaXMuc3BhY2VzKz1lWzFdO2JyZWFrO2Nhc2UiOyI6dGhpcy5mcmVlU2VtaWNvbG9uKGUpO2JyZWFrO2Nhc2UifSI6dGhpcy5lbmQoZSk7YnJlYWs7Y2FzZSJjb21tZW50Ijp0aGlzLmNvbW1lbnQoZSk7YnJlYWs7Y2FzZSJhdC13b3JkIjp0aGlzLmF0cnVsZShlKTticmVhaztjYXNlInsiOnRoaXMuZW1wdHlSdWxlKGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5vdGhlcihlKTticmVha310aGlzLmVuZEZpbGUoKX1wcmVjaGVja01pc3NlZFNlbWljb2xvbigpe31yYXcoZSx0LGksbil7bGV0IHMsYSxvPWkubGVuZ3RoLGw9IiIsYz0hMCxmLGQ7Zm9yKGxldCBwPTA7cDxvO3ArPTEpcz1pW3BdLGE9c1swXSxhPT09InNwYWNlIiYmcD09PW8tMSYmIW4/Yz0hMTphPT09ImNvbW1lbnQiPyhkPWlbcC0xXT9pW3AtMV1bMF06ImVtcHR5IixmPWlbcCsxXT9pW3ArMV1bMF06ImVtcHR5IiwhcnBbZF0mJiFycFtmXT9sLnNsaWNlKC0xKT09PSIsIj9jPSExOmwrPXNbMV06Yz0hMSk6bCs9c1sxXTtpZighYyl7bGV0IHA9aS5yZWR1Y2UoKGgsYik9PmgrYlsxXSwiIik7ZS5yYXdzW3RdPXtyYXc6cCx2YWx1ZTpsfX1lW3RdPWx9cnVsZShlKXtlLnBvcCgpO2xldCB0PW5ldyB0cDt0aGlzLmluaXQodCxlWzBdWzJdKSx0LnJhd3MuYmV0d2Vlbj10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZChlKSx0aGlzLnJhdyh0LCJzZWxlY3RvciIsZSksdGhpcy5jdXJyZW50PXR9c3BhY2VzQW5kQ29tbWVudHNGcm9tRW5kKGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVtlLmxlbmd0aC0xXVswXSwhKHQhPT0ic3BhY2UiJiZ0IT09ImNvbW1lbnQiKSk7KWk9ZS5wb3AoKVsxXStpO3JldHVybiBpfXNwYWNlc0FuZENvbW1lbnRzRnJvbVN0YXJ0KGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVswXVswXSwhKHQhPT0ic3BhY2UiJiZ0IT09ImNvbW1lbnQiKSk7KWkrPWUuc2hpZnQoKVsxXTtyZXR1cm4gaX1zcGFjZXNGcm9tRW5kKGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVtlLmxlbmd0aC0xXVswXSx0PT09InNwYWNlIik7KWk9ZS5wb3AoKVsxXStpO3JldHVybiBpfXN0cmluZ0Zyb20oZSx0KXtsZXQgaT0iIjtmb3IobGV0IG49dDtuPGUubGVuZ3RoO24rKylpKz1lW25dWzFdO3JldHVybiBlLnNwbGljZSh0LGUubGVuZ3RoLXQpLGl9dW5jbG9zZWRCbG9jaygpe2xldCBlPXRoaXMuY3VycmVudC5zb3VyY2Uuc3RhcnQ7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5jbG9zZWQgYmxvY2siLGUubGluZSxlLmNvbHVtbil9dW5jbG9zZWRCcmFja2V0KGUpe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoIlVuY2xvc2VkIGJyYWNrZXQiLHtvZmZzZXQ6ZVsyXX0se29mZnNldDplWzJdKzF9KX11bmV4cGVjdGVkQ2xvc2UoZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5leHBlY3RlZCB9Iix7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXSsxfSl9dW5rbm93bldvcmQoZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5rbm93biB3b3JkIix7b2Zmc2V0OmVbMF1bMl19LHtvZmZzZXQ6ZVswXVsyXStlWzBdWzFdLmxlbmd0aH0pfXVubmFtZWRBdHJ1bGUoZSx0KXt0aHJvdyB0aGlzLmlucHV0LmVycm9yKCJBdC1ydWxlIHdpdGhvdXQgbmFtZSIse29mZnNldDp0WzJdfSx7b2Zmc2V0OnRbMl0rdFsxXS5sZW5ndGh9KX19O25wLmV4cG9ydHM9aXB9KTt2YXIgQ249eCgoejMsYXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgdTE9RXQoKSxmMT1tbigpLGMxPXNwKCk7ZnVuY3Rpb24gQW4ocixlKXtsZXQgdD1uZXcgZjEocixlKSxpPW5ldyBjMSh0KTt0cnl7aS5wYXJzZSgpfWNhdGNoKG4pe3Rocm93IG59cmV0dXJuIGkucm9vdH1hcC5leHBvcnRzPUFuO0FuLmRlZmF1bHQ9QW47dTEucmVnaXN0ZXJQYXJzZShBbil9KTt2YXIgQWE9eCgoVTMsb3ApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgX249Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt9KXtpZih0aGlzLnR5cGU9Indhcm5pbmciLHRoaXMudGV4dD1lLHQubm9kZSYmdC5ub2RlLnNvdXJjZSl7bGV0IGk9dC5ub2RlLnJhbmdlQnkodCk7dGhpcy5saW5lPWkuc3RhcnQubGluZSx0aGlzLmNvbHVtbj1pLnN0YXJ0LmNvbHVtbix0aGlzLmVuZExpbmU9aS5lbmQubGluZSx0aGlzLmVuZENvbHVtbj1pLmVuZC5jb2x1bW59Zm9yKGxldCBpIGluIHQpdGhpc1tpXT10W2ldfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubm9kZT90aGlzLm5vZGUuZXJyb3IodGhpcy50ZXh0LHtpbmRleDp0aGlzLmluZGV4LHBsdWdpbjp0aGlzLnBsdWdpbix3b3JkOnRoaXMud29yZH0pLm1lc3NhZ2U6dGhpcy5wbHVnaW4/dGhpcy5wbHVnaW4rIjogIit0aGlzLnRleHQ6dGhpcy50ZXh0fX07b3AuZXhwb3J0cz1fbjtfbi5kZWZhdWx0PV9ufSk7dmFyIE9uPXgoKFYzLGxwKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHAxPUFhKCksRW49Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMucHJvY2Vzc29yPWUsdGhpcy5tZXNzYWdlcz1bXSx0aGlzLnJvb3Q9dCx0aGlzLm9wdHM9aSx0aGlzLmNzcz12b2lkIDAsdGhpcy5tYXA9dm9pZCAwfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzfXdhcm4oZSx0PXt9KXt0LnBsdWdpbnx8dGhpcy5sYXN0UGx1Z2luJiZ0aGlzLmxhc3RQbHVnaW4ucG9zdGNzc1BsdWdpbiYmKHQucGx1Z2luPXRoaXMubGFzdFBsdWdpbi5wb3N0Y3NzUGx1Z2luKTtsZXQgaT1uZXcgcDEoZSx0KTtyZXR1cm4gdGhpcy5tZXNzYWdlcy5wdXNoKGkpLGl9d2FybmluZ3MoKXtyZXR1cm4gdGhpcy5tZXNzYWdlcy5maWx0ZXIoZT0+ZS50eXBlPT09Indhcm5pbmciKX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLmNzc319O2xwLmV4cG9ydHM9RW47RW4uZGVmYXVsdD1Fbn0pO3ZhciBDYT14KChIMyxmcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciB1cD17fTtmcC5leHBvcnRzPWZ1bmN0aW9uKGUpe3VwW2VdfHwodXBbZV09ITAsdHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybihlKSl9fSk7dmFyIE9hPXgoKEczLGhwKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIGQxPUV0KCksaDE9ZG4oKSxtMT1rYSgpLGcxPUNuKCksY3A9T24oKSx5MT10cigpLGIxPVZyKCkse2lzQ2xlYW46dHQsbXk6dzF9PWxuKCksVzM9Q2EoKSx2MT17YXRydWxlOiJBdFJ1bGUiLGNvbW1lbnQ6IkNvbW1lbnQiLGRlY2w6IkRlY2xhcmF0aW9uIixkb2N1bWVudDoiRG9jdW1lbnQiLHJvb3Q6IlJvb3QiLHJ1bGU6IlJ1bGUifSx4MT17QXRSdWxlOiEwLEF0UnVsZUV4aXQ6ITAsQ29tbWVudDohMCxDb21tZW50RXhpdDohMCxEZWNsYXJhdGlvbjohMCxEZWNsYXJhdGlvbkV4aXQ6ITAsRG9jdW1lbnQ6ITAsRG9jdW1lbnRFeGl0OiEwLE9uY2U6ITAsT25jZUV4aXQ6ITAscG9zdGNzc1BsdWdpbjohMCxwcmVwYXJlOiEwLFJvb3Q6ITAsUm9vdEV4aXQ6ITAsUnVsZTohMCxSdWxlRXhpdDohMH0sazE9e09uY2U6ITAscG9zdGNzc1BsdWdpbjohMCxwcmVwYXJlOiEwfSxycj0wO2Z1bmN0aW9uIHJpKHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJnR5cGVvZiByLnRoZW49PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gcHAocil7bGV0IGU9ITEsdD12MVtyLnR5cGVdO3JldHVybiByLnR5cGU9PT0iZGVjbCI/ZT1yLnByb3AudG9Mb3dlckNhc2UoKTpyLnR5cGU9PT0iYXRydWxlIiYmKGU9ci5uYW1lLnRvTG93ZXJDYXNlKCkpLGUmJnIuYXBwZW5kP1t0LHQrIi0iK2UscnIsdCsiRXhpdCIsdCsiRXhpdC0iK2VdOmU/W3QsdCsiLSIrZSx0KyJFeGl0Iix0KyJFeGl0LSIrZV06ci5hcHBlbmQ/W3QscnIsdCsiRXhpdCJdOlt0LHQrIkV4aXQiXX1mdW5jdGlvbiBkcChyKXtsZXQgZTtyZXR1cm4gci50eXBlPT09ImRvY3VtZW50Ij9lPVsiRG9jdW1lbnQiLHJyLCJEb2N1bWVudEV4aXQiXTpyLnR5cGU9PT0icm9vdCI/ZT1bIlJvb3QiLHJyLCJSb290RXhpdCJdOmU9cHAocikse2V2ZW50SW5kZXg6MCxldmVudHM6ZSxpdGVyYXRvcjowLG5vZGU6cix2aXNpdG9ySW5kZXg6MCx2aXNpdG9yczpbXX19ZnVuY3Rpb24gX2Eocil7cmV0dXJuIHJbdHRdPSExLHIubm9kZXMmJnIubm9kZXMuZm9yRWFjaChlPT5fYShlKSkscn12YXIgRWE9e30scHQ9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuc3RyaW5naWZpZWQ9ITEsdGhpcy5wcm9jZXNzZWQ9ITE7bGV0IG47aWYodHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbCYmKHQudHlwZT09PSJyb290Inx8dC50eXBlPT09ImRvY3VtZW50Iikpbj1fYSh0KTtlbHNlIGlmKHQgaW5zdGFuY2VvZiBwdHx8dCBpbnN0YW5jZW9mIGNwKW49X2EodC5yb290KSx0Lm1hcCYmKHR5cGVvZiBpLm1hcD09InVuZGVmaW5lZCImJihpLm1hcD17fSksaS5tYXAuaW5saW5lfHwoaS5tYXAuaW5saW5lPSExKSxpLm1hcC5wcmV2PXQubWFwKTtlbHNle2xldCBzPWcxO2kuc3ludGF4JiYocz1pLnN5bnRheC5wYXJzZSksaS5wYXJzZXImJihzPWkucGFyc2VyKSxzLnBhcnNlJiYocz1zLnBhcnNlKTt0cnl7bj1zKHQsaSl9Y2F0Y2goYSl7dGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5lcnJvcj1hfW4mJiFuW3cxXSYmZDEucmVidWlsZChuKX10aGlzLnJlc3VsdD1uZXcgY3AoZSxuLGkpLHRoaXMuaGVscGVycz17Li4uRWEscG9zdGNzczpFYSxyZXN1bHQ6dGhpcy5yZXN1bHR9LHRoaXMucGx1Z2lucz10aGlzLnByb2Nlc3Nvci5wbHVnaW5zLm1hcChzPT50eXBlb2Ygcz09Im9iamVjdCImJnMucHJlcGFyZT97Li4ucywuLi5zLnByZXBhcmUodGhpcy5yZXN1bHQpfTpzKX1hc3luYygpe3JldHVybiB0aGlzLmVycm9yP1Byb21pc2UucmVqZWN0KHRoaXMuZXJyb3IpOnRoaXMucHJvY2Vzc2VkP1Byb21pc2UucmVzb2x2ZSh0aGlzLnJlc3VsdCk6KHRoaXMucHJvY2Vzc2luZ3x8KHRoaXMucHJvY2Vzc2luZz10aGlzLnJ1bkFzeW5jKCkpLHRoaXMucHJvY2Vzc2luZyl9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS5jYXRjaChlKX1maW5hbGx5KGUpe3JldHVybiB0aGlzLmFzeW5jKCkudGhlbihlLGUpfWdldEFzeW5jRXJyb3IoKXt0aHJvdyBuZXcgRXJyb3IoIlVzZSBwcm9jZXNzKGNzcykudGhlbihjYikgdG8gd29yayB3aXRoIGFzeW5jIHBsdWdpbnMiKX1oYW5kbGVFcnJvcihlLHQpe2xldCBpPXRoaXMucmVzdWx0Lmxhc3RQbHVnaW47dHJ5e3QmJnQuYWRkVG9FcnJvcihlKSx0aGlzLmVycm9yPWUsZS5uYW1lPT09IkNzc1N5bnRheEVycm9yIiYmIWUucGx1Z2luPyhlLnBsdWdpbj1pLnBvc3Rjc3NQbHVnaW4sZS5zZXRNZXNzYWdlKCkpOmkucG9zdGNzc1ZlcnNpb259Y2F0Y2gobil7Y29uc29sZSYmY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcihuKX1yZXR1cm4gZX1wcmVwYXJlVmlzaXRvcnMoKXt0aGlzLmxpc3RlbmVycz17fTtsZXQgZT0odCxpLG4pPT57dGhpcy5saXN0ZW5lcnNbaV18fCh0aGlzLmxpc3RlbmVyc1tpXT1bXSksdGhpcy5saXN0ZW5lcnNbaV0ucHVzaChbdCxuXSl9O2ZvcihsZXQgdCBvZiB0aGlzLnBsdWdpbnMpaWYodHlwZW9mIHQ9PSJvYmplY3QiKWZvcihsZXQgaSBpbiB0KXtpZigheDFbaV0mJi9eW0EtWl0vLnRlc3QoaSkpdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGV2ZW50ICR7aX0gaW4gJHt0LnBvc3Rjc3NQbHVnaW59LiBUcnkgdG8gdXBkYXRlIFBvc3RDU1MgKCR7dGhpcy5wcm9jZXNzb3IudmVyc2lvbn0gbm93KS5gKTtpZighazFbaV0paWYodHlwZW9mIHRbaV09PSJvYmplY3QiKWZvcihsZXQgbiBpbiB0W2ldKW49PT0iKiI/ZSh0LGksdFtpXVtuXSk6ZSh0LGkrIi0iK24udG9Mb3dlckNhc2UoKSx0W2ldW25dKTtlbHNlIHR5cGVvZiB0W2ldPT0iZnVuY3Rpb24iJiZlKHQsaSx0W2ldKX10aGlzLmhhc0xpc3RlbmVyPU9iamVjdC5rZXlzKHRoaXMubGlzdGVuZXJzKS5sZW5ndGg+MH1hc3luYyBydW5Bc3luYygpe3RoaXMucGx1Z2luPTA7Zm9yKGxldCBlPTA7ZTx0aGlzLnBsdWdpbnMubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy5wbHVnaW5zW2VdLGk9dGhpcy5ydW5PblJvb3QodCk7aWYocmkoaSkpdHJ5e2F3YWl0IGl9Y2F0Y2gobil7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuKX19aWYodGhpcy5wcmVwYXJlVmlzaXRvcnMoKSx0aGlzLmhhc0xpc3RlbmVyKXtsZXQgZT10aGlzLnJlc3VsdC5yb290O2Zvcig7IWVbdHRdOyl7ZVt0dF09ITA7bGV0IHQ9W2RwKGUpXTtmb3IoO3QubGVuZ3RoPjA7KXtsZXQgaT10aGlzLnZpc2l0VGljayh0KTtpZihyaShpKSl0cnl7YXdhaXQgaX1jYXRjaChuKXtsZXQgcz10W3QubGVuZ3RoLTFdLm5vZGU7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuLHMpfX19aWYodGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpZm9yKGxldFt0LGldb2YgdGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpe3RoaXMucmVzdWx0Lmxhc3RQbHVnaW49dDt0cnl7aWYoZS50eXBlPT09ImRvY3VtZW50Iil7bGV0IG49ZS5ub2Rlcy5tYXAocz0+aShzLHRoaXMuaGVscGVycykpO2F3YWl0IFByb21pc2UuYWxsKG4pfWVsc2UgYXdhaXQgaShlLHRoaXMuaGVscGVycyl9Y2F0Y2gobil7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuKX19fXJldHVybiB0aGlzLnByb2Nlc3NlZD0hMCx0aGlzLnN0cmluZ2lmeSgpfXJ1bk9uUm9vdChlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPWU7dHJ5e2lmKHR5cGVvZiBlPT0ib2JqZWN0IiYmZS5PbmNlKXtpZih0aGlzLnJlc3VsdC5yb290LnR5cGU9PT0iZG9jdW1lbnQiKXtsZXQgdD10aGlzLnJlc3VsdC5yb290Lm5vZGVzLm1hcChpPT5lLk9uY2UoaSx0aGlzLmhlbHBlcnMpKTtyZXR1cm4gcmkodFswXSk/UHJvbWlzZS5hbGwodCk6dH1yZXR1cm4gZS5PbmNlKHRoaXMucmVzdWx0LnJvb3QsdGhpcy5oZWxwZXJzKX1lbHNlIGlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXJldHVybiBlKHRoaXMucmVzdWx0LnJvb3QsdGhpcy5yZXN1bHQpfWNhdGNoKHQpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3IodCl9fXN0cmluZ2lmeSgpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtpZih0aGlzLnN0cmluZ2lmaWVkKXJldHVybiB0aGlzLnJlc3VsdDt0aGlzLnN0cmluZ2lmaWVkPSEwLHRoaXMuc3luYygpO2xldCBlPXRoaXMucmVzdWx0Lm9wdHMsdD1iMTtlLnN5bnRheCYmKHQ9ZS5zeW50YXguc3RyaW5naWZ5KSxlLnN0cmluZ2lmaWVyJiYodD1lLnN0cmluZ2lmaWVyKSx0LnN0cmluZ2lmeSYmKHQ9dC5zdHJpbmdpZnkpO2xldCBuPW5ldyBtMSh0LHRoaXMucmVzdWx0LnJvb3QsdGhpcy5yZXN1bHQub3B0cykuZ2VuZXJhdGUoKTtyZXR1cm4gdGhpcy5yZXN1bHQuY3NzPW5bMF0sdGhpcy5yZXN1bHQubWFwPW5bMV0sdGhpcy5yZXN1bHR9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtpZih0aGlzLnByb2Nlc3NlZClyZXR1cm4gdGhpcy5yZXN1bHQ7aWYodGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5wcm9jZXNzaW5nKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpO2ZvcihsZXQgZSBvZiB0aGlzLnBsdWdpbnMpe2xldCB0PXRoaXMucnVuT25Sb290KGUpO2lmKHJpKHQpKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpfWlmKHRoaXMucHJlcGFyZVZpc2l0b3JzKCksdGhpcy5oYXNMaXN0ZW5lcil7bGV0IGU9dGhpcy5yZXN1bHQucm9vdDtmb3IoOyFlW3R0XTspZVt0dF09ITAsdGhpcy53YWxrU3luYyhlKTtpZih0aGlzLmxpc3RlbmVycy5PbmNlRXhpdClpZihlLnR5cGU9PT0iZG9jdW1lbnQiKWZvcihsZXQgdCBvZiBlLm5vZGVzKXRoaXMudmlzaXRTeW5jKHRoaXMubGlzdGVuZXJzLk9uY2VFeGl0LHQpO2Vsc2UgdGhpcy52aXNpdFN5bmModGhpcy5saXN0ZW5lcnMuT25jZUV4aXQsZSl9cmV0dXJuIHRoaXMucmVzdWx0fXRoZW4oZSx0KXtyZXR1cm4gdGhpcy5hc3luYygpLnRoZW4oZSx0KX10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc312aXNpdFN5bmMoZSx0KXtmb3IobGV0W2ksbl1vZiBlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPWk7bGV0IHM7dHJ5e3M9bih0LHRoaXMuaGVscGVycyl9Y2F0Y2goYSl7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihhLHQucHJveHlPZil9aWYodC50eXBlIT09InJvb3QiJiZ0LnR5cGUhPT0iZG9jdW1lbnQiJiYhdC5wYXJlbnQpcmV0dXJuITA7aWYocmkocykpdGhyb3cgdGhpcy5nZXRBc3luY0Vycm9yKCl9fXZpc2l0VGljayhlKXtsZXQgdD1lW2UubGVuZ3RoLTFdLHtub2RlOmksdmlzaXRvcnM6bn09dDtpZihpLnR5cGUhPT0icm9vdCImJmkudHlwZSE9PSJkb2N1bWVudCImJiFpLnBhcmVudCl7ZS5wb3AoKTtyZXR1cm59aWYobi5sZW5ndGg+MCYmdC52aXNpdG9ySW5kZXg8bi5sZW5ndGgpe2xldFthLG9dPW5bdC52aXNpdG9ySW5kZXhdO3QudmlzaXRvckluZGV4Kz0xLHQudmlzaXRvckluZGV4PT09bi5sZW5ndGgmJih0LnZpc2l0b3JzPVtdLHQudmlzaXRvckluZGV4PTApLHRoaXMucmVzdWx0Lmxhc3RQbHVnaW49YTt0cnl7cmV0dXJuIG8oaS50b1Byb3h5KCksdGhpcy5oZWxwZXJzKX1jYXRjaChsKXt0aHJvdyB0aGlzLmhhbmRsZUVycm9yKGwsaSl9fWlmKHQuaXRlcmF0b3IhPT0wKXtsZXQgYT10Lml0ZXJhdG9yLG87Zm9yKDtvPWkubm9kZXNbaS5pbmRleGVzW2FdXTspaWYoaS5pbmRleGVzW2FdKz0xLCFvW3R0XSl7b1t0dF09ITAsZS5wdXNoKGRwKG8pKTtyZXR1cm59dC5pdGVyYXRvcj0wLGRlbGV0ZSBpLmluZGV4ZXNbYV19bGV0IHM9dC5ldmVudHM7Zm9yKDt0LmV2ZW50SW5kZXg8cy5sZW5ndGg7KXtsZXQgYT1zW3QuZXZlbnRJbmRleF07aWYodC5ldmVudEluZGV4Kz0xLGE9PT1ycil7aS5ub2RlcyYmaS5ub2Rlcy5sZW5ndGgmJihpW3R0XT0hMCx0Lml0ZXJhdG9yPWkuZ2V0SXRlcmF0b3IoKSk7cmV0dXJufWVsc2UgaWYodGhpcy5saXN0ZW5lcnNbYV0pe3QudmlzaXRvcnM9dGhpcy5saXN0ZW5lcnNbYV07cmV0dXJufX1lLnBvcCgpfXdhbGtTeW5jKGUpe2VbdHRdPSEwO2xldCB0PXBwKGUpO2ZvcihsZXQgaSBvZiB0KWlmKGk9PT1ycillLm5vZGVzJiZlLmVhY2gobj0+e25bdHRdfHx0aGlzLndhbGtTeW5jKG4pfSk7ZWxzZXtsZXQgbj10aGlzLmxpc3RlbmVyc1tpXTtpZihuJiZ0aGlzLnZpc2l0U3luYyhuLGUudG9Qcm94eSgpKSlyZXR1cm59fXdhcm5pbmdzKCl7cmV0dXJuIHRoaXMuc3luYygpLndhcm5pbmdzKCl9Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jb250ZW50fWdldCBjc3MoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jc3N9Z2V0IG1hcCgpe3JldHVybiB0aGlzLnN0cmluZ2lmeSgpLm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm4gdGhpcy5zeW5jKCkubWVzc2FnZXN9Z2V0IG9wdHMoKXtyZXR1cm4gdGhpcy5yZXN1bHQub3B0c31nZXQgcHJvY2Vzc29yKCl7cmV0dXJuIHRoaXMucmVzdWx0LnByb2Nlc3Nvcn1nZXQgcm9vdCgpe3JldHVybiB0aGlzLnN5bmMoKS5yb290fWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkxhenlSZXN1bHQifX07cHQucmVnaXN0ZXJQb3N0Y3NzPXI9PntFYT1yfTtocC5leHBvcnRzPXB0O3B0LmRlZmF1bHQ9cHQ7eTEucmVnaXN0ZXJMYXp5UmVzdWx0KHB0KTtoMS5yZWdpc3RlckxhenlSZXN1bHQocHQpfSk7dmFyIGdwPXgoKFkzLG1wKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIFMxPWthKCksQTE9Q24oKSxDMT1PbigpLF8xPVZyKCksUTM9Q2EoKSxUbj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQsaSl7dD10LnRvU3RyaW5nKCksdGhpcy5zdHJpbmdpZmllZD0hMSx0aGlzLl9wcm9jZXNzb3I9ZSx0aGlzLl9jc3M9dCx0aGlzLl9vcHRzPWksdGhpcy5fbWFwPXZvaWQgMDtsZXQgbixzPV8xO3RoaXMucmVzdWx0PW5ldyBDMSh0aGlzLl9wcm9jZXNzb3Isbix0aGlzLl9vcHRzKSx0aGlzLnJlc3VsdC5jc3M9dDtsZXQgYT10aGlzO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnJlc3VsdCwicm9vdCIse2dldCgpe3JldHVybiBhLnJvb3R9fSk7bGV0IG89bmV3IFMxKHMsbix0aGlzLl9vcHRzLHQpO2lmKG8uaXNNYXAoKSl7bGV0W2wsY109by5nZW5lcmF0ZSgpO2wmJih0aGlzLnJlc3VsdC5jc3M9bCksYyYmKHRoaXMucmVzdWx0Lm1hcD1jKX1lbHNlIG8uY2xlYXJBbm5vdGF0aW9uKCksdGhpcy5yZXN1bHQuY3NzPW8uY3NzfWFzeW5jKCl7cmV0dXJuIHRoaXMuZXJyb3I/UHJvbWlzZS5yZWplY3QodGhpcy5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKHRoaXMucmVzdWx0KX1jYXRjaChlKXtyZXR1cm4gdGhpcy5hc3luYygpLmNhdGNoKGUpfWZpbmFsbHkoZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS50aGVuKGUsZSl9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtyZXR1cm4gdGhpcy5yZXN1bHR9dGhlbihlLHQpe3JldHVybiB0aGlzLmFzeW5jKCkudGhlbihlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX2Nzc313YXJuaW5ncygpe3JldHVybltdfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgY3NzKCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgbWFwKCl7cmV0dXJuIHRoaXMucmVzdWx0Lm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm5bXX1nZXQgb3B0cygpe3JldHVybiB0aGlzLnJlc3VsdC5vcHRzfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7aWYodGhpcy5fcm9vdClyZXR1cm4gdGhpcy5fcm9vdDtsZXQgZSx0PUExO3RyeXtlPXQodGhpcy5fY3NzLHRoaXMuX29wdHMpfWNhdGNoKGkpe3RoaXMuZXJyb3I9aX1pZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7cmV0dXJuIHRoaXMuX3Jvb3Q9ZSxlfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIk5vV29ya1Jlc3VsdCJ9fTttcC5leHBvcnRzPVRuO1RuLmRlZmF1bHQ9VG59KTt2YXIgYnA9eCgoSzMseXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgRTE9ZG4oKSxPMT1PYSgpLFQxPWdwKCksUjE9dHIoKSxpcj1jbGFzc3tjb25zdHJ1Y3RvcihlPVtdKXt0aGlzLnZlcnNpb249IjguNC40OSIsdGhpcy5wbHVnaW5zPXRoaXMubm9ybWFsaXplKGUpfW5vcm1hbGl6ZShlKXtsZXQgdD1bXTtmb3IobGV0IGkgb2YgZSlpZihpLnBvc3Rjc3M9PT0hMD9pPWkoKTppLnBvc3Rjc3MmJihpPWkucG9zdGNzcyksdHlwZW9mIGk9PSJvYmplY3QiJiZBcnJheS5pc0FycmF5KGkucGx1Z2lucykpdD10LmNvbmNhdChpLnBsdWdpbnMpO2Vsc2UgaWYodHlwZW9mIGk9PSJvYmplY3QiJiZpLnBvc3Rjc3NQbHVnaW4pdC5wdXNoKGkpO2Vsc2UgaWYodHlwZW9mIGk9PSJmdW5jdGlvbiIpdC5wdXNoKGkpO2Vsc2UgaWYoISh0eXBlb2YgaT09Im9iamVjdCImJihpLnBhcnNlfHxpLnN0cmluZ2lmeSkpKXRocm93IG5ldyBFcnJvcihpKyIgaXMgbm90IGEgUG9zdENTUyBwbHVnaW4iKTtyZXR1cm4gdH1wcm9jZXNzKGUsdD17fSl7cmV0dXJuIXRoaXMucGx1Z2lucy5sZW5ndGgmJiF0LnBhcnNlciYmIXQuc3RyaW5naWZpZXImJiF0LnN5bnRheD9uZXcgVDEodGhpcyxlLHQpOm5ldyBPMSh0aGlzLGUsdCl9dXNlKGUpe3JldHVybiB0aGlzLnBsdWdpbnM9dGhpcy5wbHVnaW5zLmNvbmNhdCh0aGlzLm5vcm1hbGl6ZShbZV0pKSx0aGlzfX07eXAuZXhwb3J0cz1pcjtpci5kZWZhdWx0PWlyO1IxLnJlZ2lzdGVyUHJvY2Vzc29yKGlyKTtFMS5yZWdpc3RlclByb2Nlc3Nvcihpcil9KTt2YXIgJGU9eCgoWDMsQ3ApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgd3A9cG4oKSx2cD1RcigpLFAxPUV0KCksSTE9YW4oKSx4cD1ZcigpLGtwPWRuKCksRDE9UWMoKSxxMT1tbigpLCQxPU9hKCksTDE9eGEoKSxNMT1HcigpLE4xPUNuKCksVGE9YnAoKSxCMT1PbigpLFNwPXRyKCksQXA9Z24oKSxGMT1WcigpLGoxPUFhKCk7ZnVuY3Rpb24gSiguLi5yKXtyZXR1cm4gci5sZW5ndGg9PT0xJiZBcnJheS5pc0FycmF5KHJbMF0pJiYocj1yWzBdKSxuZXcgVGEocil9Si5wbHVnaW49ZnVuY3Rpb24oZSx0KXtsZXQgaT0hMTtmdW5jdGlvbiBuKC4uLmEpe2NvbnNvbGUmJmNvbnNvbGUud2FybiYmIWkmJihpPSEwLGNvbnNvbGUud2FybihlK2A6IHBvc3Rjc3MucGx1Z2luIHdhcyBkZXByZWNhdGVkLiBNaWdyYXRpb24gZ3VpZGU6Cmh0dHBzOi8vZXZpbG1hcnRpYW5zLmNvbS9jaHJvbmljbGVzL3Bvc3Rjc3MtOC1wbHVnaW4tbWlncmF0aW9uYCksbS5lbnYuTEFORyYmbS5lbnYuTEFORy5zdGFydHNXaXRoKCJjbiIpJiZjb25zb2xlLndhcm4oZStgOiBcdTkxQ0NcdTk3NjIgcG9zdGNzcy5wbHVnaW4gXHU4OEFCXHU1RjAzXHU3NTI4LiBcdThGQzFcdTc5RkJcdTYzMDdcdTUzNTc6Cmh0dHBzOi8vd3d3LnczY3RlY2guY29tL3RvcGljLzIyMjZgKSk7bGV0IG89dCguLi5hKTtyZXR1cm4gby5wb3N0Y3NzUGx1Z2luPWUsby5wb3N0Y3NzVmVyc2lvbj1uZXcgVGEoKS52ZXJzaW9uLG99bGV0IHM7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwb3N0Y3NzIix7Z2V0KCl7cmV0dXJuIHN8fChzPW4oKSksc319KSxuLnByb2Nlc3M9ZnVuY3Rpb24oYSxvLGwpe3JldHVybiBKKFtuKGwpXSkucHJvY2VzcyhhLG8pfSxufTtKLnN0cmluZ2lmeT1GMTtKLnBhcnNlPU4xO0ouZnJvbUpTT049RDE7Si5saXN0PUwxO0ouY29tbWVudD1yPT5uZXcgdnAocik7Si5hdFJ1bGU9cj0+bmV3IHdwKHIpO0ouZGVjbD1yPT5uZXcgeHAocik7Si5ydWxlPXI9Pm5ldyBBcChyKTtKLnJvb3Q9cj0+bmV3IFNwKHIpO0ouZG9jdW1lbnQ9cj0+bmV3IGtwKHIpO0ouQ3NzU3ludGF4RXJyb3I9STE7Si5EZWNsYXJhdGlvbj14cDtKLkNvbnRhaW5lcj1QMTtKLlByb2Nlc3Nvcj1UYTtKLkRvY3VtZW50PWtwO0ouQ29tbWVudD12cDtKLldhcm5pbmc9ajE7Si5BdFJ1bGU9d3A7Si5SZXN1bHQ9QjE7Si5JbnB1dD1xMTtKLlJ1bGU9QXA7Si5Sb290PVNwO0ouTm9kZT1NMTskMS5yZWdpc3RlclBvc3Rjc3MoSik7Q3AuZXhwb3J0cz1KO0ouZGVmYXVsdD1KfSk7dmFyIHJlLGVlLFozLEozLGVJLHRJLHJJLGlJLG5JLHNJLGFJLG9JLGxJLHVJLGZJLGNJLHBJLGRJLGhJLG1JLGdJLHlJLGJJLHdJLHZJLHhJLE90PVAoKCk9Pnt1KCk7cmU9cGUoJGUoKSksZWU9cmUuZGVmYXVsdCxaMz1yZS5kZWZhdWx0LnN0cmluZ2lmeSxKMz1yZS5kZWZhdWx0LmZyb21KU09OLGVJPXJlLmRlZmF1bHQucGx1Z2luLHRJPXJlLmRlZmF1bHQucGFyc2Usckk9cmUuZGVmYXVsdC5saXN0LGlJPXJlLmRlZmF1bHQuZG9jdW1lbnQsbkk9cmUuZGVmYXVsdC5jb21tZW50LHNJPXJlLmRlZmF1bHQuYXRSdWxlLGFJPXJlLmRlZmF1bHQucnVsZSxvST1yZS5kZWZhdWx0LmRlY2wsbEk9cmUuZGVmYXVsdC5yb290LHVJPXJlLmRlZmF1bHQuQ3NzU3ludGF4RXJyb3IsZkk9cmUuZGVmYXVsdC5EZWNsYXJhdGlvbixjST1yZS5kZWZhdWx0LkNvbnRhaW5lcixwST1yZS5kZWZhdWx0LlByb2Nlc3NvcixkST1yZS5kZWZhdWx0LkRvY3VtZW50LGhJPXJlLmRlZmF1bHQuQ29tbWVudCxtST1yZS5kZWZhdWx0Lldhcm5pbmcsZ0k9cmUuZGVmYXVsdC5BdFJ1bGUseUk9cmUuZGVmYXVsdC5SZXN1bHQsYkk9cmUuZGVmYXVsdC5JbnB1dCx3ST1yZS5kZWZhdWx0LlJ1bGUsdkk9cmUuZGVmYXVsdC5Sb290LHhJPXJlLmRlZmF1bHQuTm9kZX0pO3ZhciBSYT14KChTSSxfcCk9Pnt1KCk7X3AuZXhwb3J0cz1mdW5jdGlvbihyLGUsdCxpLG4pe2ZvcihlPWUuc3BsaXQ/ZS5zcGxpdCgiLiIpOmUsaT0wO2k8ZS5sZW5ndGg7aSsrKXI9cj9yW2VbaV1dOm47cmV0dXJuIHI9PT1uP3Q6cn19KTt2YXIgUG49eCgoUm4sRXApPT57dSgpOyJ1c2Ugc3RyaWN0IjtSbi5fX2VzTW9kdWxlPSEwO1JuLmRlZmF1bHQ9VjE7ZnVuY3Rpb24gejEocil7Zm9yKHZhciBlPXIudG9Mb3dlckNhc2UoKSx0PSIiLGk9ITEsbj0wO248NiYmZVtuXSE9PXZvaWQgMDtuKyspe3ZhciBzPWUuY2hhckNvZGVBdChuKSxhPXM+PTk3JiZzPD0xMDJ8fHM+PTQ4JiZzPD01NztpZihpPXM9PT0zMiwhYSlicmVhazt0Kz1lW25dfWlmKHQubGVuZ3RoIT09MCl7dmFyIG89cGFyc2VJbnQodCwxNiksbD1vPj01NTI5NiYmbzw9NTczNDM7cmV0dXJuIGx8fG89PT0wfHxvPjExMTQxMTE/WyJcdUZGRkQiLHQubGVuZ3RoKyhpPzE6MCldOltTdHJpbmcuZnJvbUNvZGVQb2ludChvKSx0Lmxlbmd0aCsoaT8xOjApXX19dmFyIFUxPS9cXC87ZnVuY3Rpb24gVjEocil7dmFyIGU9VTEudGVzdChyKTtpZighZSlyZXR1cm4gcjtmb3IodmFyIHQ9IiIsaT0wO2k8ci5sZW5ndGg7aSsrKXtpZihyW2ldPT09IlxcIil7dmFyIG49ejEoci5zbGljZShpKzEsaSs3KSk7aWYobiE9PXZvaWQgMCl7dCs9blswXSxpKz1uWzFdO2NvbnRpbnVlfWlmKHJbaSsxXT09PSJcXCIpe3QrPSJcXCIsaSsrO2NvbnRpbnVlfXIubGVuZ3RoPT09aSsxJiYodCs9cltpXSk7Y29udGludWV9dCs9cltpXX1yZXR1cm4gdH1FcC5leHBvcnRzPVJuLmRlZmF1bHR9KTt2YXIgVHA9eCgoSW4sT3ApPT57dSgpOyJ1c2Ugc3RyaWN0IjtJbi5fX2VzTW9kdWxlPSEwO0luLmRlZmF1bHQ9SDE7ZnVuY3Rpb24gSDEocil7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyl0W2ktMV09YXJndW1lbnRzW2ldO2Zvcig7dC5sZW5ndGg+MDspe3ZhciBuPXQuc2hpZnQoKTtpZighcltuXSlyZXR1cm47cj1yW25dfXJldHVybiByfU9wLmV4cG9ydHM9SW4uZGVmYXVsdH0pO3ZhciBQcD14KChEbixScCk9Pnt1KCk7InVzZSBzdHJpY3QiO0RuLl9fZXNNb2R1bGU9ITA7RG4uZGVmYXVsdD1XMTtmdW5jdGlvbiBXMShyKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlPjE/ZS0xOjApLGk9MTtpPGU7aSsrKXRbaS0xXT1hcmd1bWVudHNbaV07Zm9yKDt0Lmxlbmd0aD4wOyl7dmFyIG49dC5zaGlmdCgpO3Jbbl18fChyW25dPXt9KSxyPXJbbl19fVJwLmV4cG9ydHM9RG4uZGVmYXVsdH0pO3ZhciBEcD14KChxbixJcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3FuLl9fZXNNb2R1bGU9ITA7cW4uZGVmYXVsdD1HMTtmdW5jdGlvbiBHMShyKXtmb3IodmFyIGU9IiIsdD1yLmluZGV4T2YoIi8qIiksaT0wO3Q+PTA7KXtlPWUrci5zbGljZShpLHQpO3ZhciBuPXIuaW5kZXhPZigiKi8iLHQrMik7aWYobjwwKXJldHVybiBlO2k9bisyLHQ9ci5pbmRleE9mKCIvKiIsaSl9cmV0dXJuIGU9ZStyLnNsaWNlKGkpLGV9SXAuZXhwb3J0cz1xbi5kZWZhdWx0fSk7dmFyIGlpPXgocnQ9Pnt1KCk7InVzZSBzdHJpY3QiO3J0Ll9fZXNNb2R1bGU9ITA7cnQudW5lc2M9cnQuc3RyaXBDb21tZW50cz1ydC5nZXRQcm9wPXJ0LmVuc3VyZU9iamVjdD12b2lkIDA7dmFyIFExPSRuKFBuKCkpO3J0LnVuZXNjPVExLmRlZmF1bHQ7dmFyIFkxPSRuKFRwKCkpO3J0LmdldFByb3A9WTEuZGVmYXVsdDt2YXIgSzE9JG4oUHAoKSk7cnQuZW5zdXJlT2JqZWN0PUsxLmRlZmF1bHQ7dmFyIFgxPSRuKERwKCkpO3J0LnN0cmlwQ29tbWVudHM9WDEuZGVmYXVsdDtmdW5jdGlvbiAkbihyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19fSk7dmFyIGR0PXgoKG5pLExwKT0+e3UoKTsidXNlIHN0cmljdCI7bmkuX19lc01vZHVsZT0hMDtuaS5kZWZhdWx0PXZvaWQgMDt2YXIgcXA9aWkoKTtmdW5jdGlvbiAkcChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIFoxKHIsZSx0KXtyZXR1cm4gZSYmJHAoci5wcm90b3R5cGUsZSksdCYmJHAocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfXZhciBKMT1mdW5jdGlvbiByKGUsdCl7aWYodHlwZW9mIGUhPSJvYmplY3QifHxlPT09bnVsbClyZXR1cm4gZTt2YXIgaT1uZXcgZS5jb25zdHJ1Y3Rvcjtmb3IodmFyIG4gaW4gZSlpZighIWUuaGFzT3duUHJvcGVydHkobikpe3ZhciBzPWVbbl0sYT10eXBlb2YgcztuPT09InBhcmVudCImJmE9PT0ib2JqZWN0Ij90JiYoaVtuXT10KTpzIGluc3RhbmNlb2YgQXJyYXk/aVtuXT1zLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gcihvLGkpfSk6aVtuXT1yKHMsaSl9cmV0dXJuIGl9LGVrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXt0PT09dm9pZCAwJiYodD17fSksT2JqZWN0LmFzc2lnbih0aGlzLHQpLHRoaXMuc3BhY2VzPXRoaXMuc3BhY2VzfHx7fSx0aGlzLnNwYWNlcy5iZWZvcmU9dGhpcy5zcGFjZXMuYmVmb3JlfHwiIix0aGlzLnNwYWNlcy5hZnRlcj10aGlzLnNwYWNlcy5hZnRlcnx8IiJ9dmFyIGU9ci5wcm90b3R5cGU7cmV0dXJuIGUucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLnBhcmVudD12b2lkIDAsdGhpc30sZS5yZXBsYWNlV2l0aD1mdW5jdGlvbigpe2lmKHRoaXMucGFyZW50KXtmb3IodmFyIGkgaW4gYXJndW1lbnRzKXRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLGFyZ3VtZW50c1tpXSk7dGhpcy5yZW1vdmUoKX1yZXR1cm4gdGhpc30sZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50LmF0KHRoaXMucGFyZW50LmluZGV4KHRoaXMpKzEpfSxlLnByZXY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQuYXQodGhpcy5wYXJlbnQuaW5kZXgodGhpcyktMSl9LGUuY2xvbmU9ZnVuY3Rpb24oaSl7aT09PXZvaWQgMCYmKGk9e30pO3ZhciBuPUoxKHRoaXMpO2Zvcih2YXIgcyBpbiBpKW5bc109aVtzXTtyZXR1cm4gbn0sZS5hcHBlbmRUb1Byb3BlcnR5QW5kRXNjYXBlPWZ1bmN0aW9uKGksbixzKXt0aGlzLnJhd3N8fCh0aGlzLnJhd3M9e30pO3ZhciBhPXRoaXNbaV0sbz10aGlzLnJhd3NbaV07dGhpc1tpXT1hK24sb3x8cyE9PW4/dGhpcy5yYXdzW2ldPShvfHxhKStzOmRlbGV0ZSB0aGlzLnJhd3NbaV19LGUuc2V0UHJvcGVydHlBbmRFc2NhcGU9ZnVuY3Rpb24oaSxuLHMpe3RoaXMucmF3c3x8KHRoaXMucmF3cz17fSksdGhpc1tpXT1uLHRoaXMucmF3c1tpXT1zfSxlLnNldFByb3BlcnR5V2l0aG91dEVzY2FwZT1mdW5jdGlvbihpLG4pe3RoaXNbaV09bix0aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3NbaV19LGUuaXNBdFBvc2l0aW9uPWZ1bmN0aW9uKGksbil7aWYodGhpcy5zb3VyY2UmJnRoaXMuc291cmNlLnN0YXJ0JiZ0aGlzLnNvdXJjZS5lbmQpcmV0dXJuISh0aGlzLnNvdXJjZS5zdGFydC5saW5lPml8fHRoaXMuc291cmNlLmVuZC5saW5lPGl8fHRoaXMuc291cmNlLnN0YXJ0LmxpbmU9PT1pJiZ0aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4+bnx8dGhpcy5zb3VyY2UuZW5kLmxpbmU9PT1pJiZ0aGlzLnNvdXJjZS5lbmQuY29sdW1uPG4pfSxlLnN0cmluZ2lmeVByb3BlcnR5PWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLnJhd3MmJnRoaXMucmF3c1tpXXx8dGhpc1tpXX0sZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLnN0cmluZ2lmeVByb3BlcnR5KCJ2YWx1ZSIpKX0sZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblt0aGlzLnJhd1NwYWNlQmVmb3JlLHRoaXMudmFsdWVUb1N0cmluZygpLHRoaXMucmF3U3BhY2VBZnRlcl0uam9pbigiIil9LFoxKHIsW3trZXk6InJhd1NwYWNlQmVmb3JlIixnZXQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnJhd3MmJnRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXMuYmVmb3JlO3JldHVybiBpPT09dm9pZCAwJiYoaT10aGlzLnNwYWNlcyYmdGhpcy5zcGFjZXMuYmVmb3JlKSxpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpeygwLHFwLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIsInNwYWNlcyIpLHRoaXMucmF3cy5zcGFjZXMuYmVmb3JlPWl9fSx7a2V5OiJyYXdTcGFjZUFmdGVyIixnZXQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnJhd3MmJnRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXMuYWZ0ZXI7cmV0dXJuIGk9PT12b2lkIDAmJihpPXRoaXMuc3BhY2VzLmFmdGVyKSxpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpeygwLHFwLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIsInNwYWNlcyIpLHRoaXMucmF3cy5zcGFjZXMuYWZ0ZXI9aX19XSkscn0oKTtuaS5kZWZhdWx0PWVrO0xwLmV4cG9ydHM9bmkuZGVmYXVsdH0pO3ZhciBTZT14KGllPT57dSgpOyJ1c2Ugc3RyaWN0IjtpZS5fX2VzTW9kdWxlPSEwO2llLlVOSVZFUlNBTD1pZS5UQUc9aWUuU1RSSU5HPWllLlNFTEVDVE9SPWllLlJPT1Q9aWUuUFNFVURPPWllLk5FU1RJTkc9aWUuSUQ9aWUuQ09NTUVOVD1pZS5DT01CSU5BVE9SPWllLkNMQVNTPWllLkFUVFJJQlVURT12b2lkIDA7dmFyIHRrPSJ0YWciO2llLlRBRz10azt2YXIgcms9InN0cmluZyI7aWUuU1RSSU5HPXJrO3ZhciBpaz0ic2VsZWN0b3IiO2llLlNFTEVDVE9SPWlrO3ZhciBuaz0icm9vdCI7aWUuUk9PVD1uazt2YXIgc2s9InBzZXVkbyI7aWUuUFNFVURPPXNrO3ZhciBhaz0ibmVzdGluZyI7aWUuTkVTVElORz1hazt2YXIgb2s9ImlkIjtpZS5JRD1vazt2YXIgbGs9ImNvbW1lbnQiO2llLkNPTU1FTlQ9bGs7dmFyIHVrPSJjb21iaW5hdG9yIjtpZS5DT01CSU5BVE9SPXVrO3ZhciBmaz0iY2xhc3MiO2llLkNMQVNTPWZrO3ZhciBjaz0iYXR0cmlidXRlIjtpZS5BVFRSSUJVVEU9Y2s7dmFyIHBrPSJ1bml2ZXJzYWwiO2llLlVOSVZFUlNBTD1wa30pO3ZhciBMbj14KChzaSxGcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3NpLl9fZXNNb2R1bGU9ITA7c2kuZGVmYXVsdD12b2lkIDA7dmFyIGRrPW1rKGR0KCkpLGh0PWhrKFNlKCkpO2Z1bmN0aW9uIE1wKHIpe2lmKHR5cGVvZiBXZWFrTWFwIT0iZnVuY3Rpb24iKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwLHQ9bmV3IFdlYWtNYXA7cmV0dXJuKE1wPWZ1bmN0aW9uKG4pe3JldHVybiBuP3Q6ZX0pKHIpfWZ1bmN0aW9uIGhrKHIsZSl7aWYoIWUmJnImJnIuX19lc01vZHVsZSlyZXR1cm4gcjtpZihyPT09bnVsbHx8dHlwZW9mIHIhPSJvYmplY3QiJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIilyZXR1cm57ZGVmYXVsdDpyfTt2YXIgdD1NcChlKTtpZih0JiZ0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7dmFyIGk9e30sbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBzIGluIHIpaWYocyE9PSJkZWZhdWx0IiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscykpe3ZhciBhPW4/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHMpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGkscyxhKTppW3NdPXJbc119cmV0dXJuIGkuZGVmYXVsdD1yLHQmJnQuc2V0KHIsaSksaX1mdW5jdGlvbiBtayhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24gZ2socixlKXt2YXIgdD10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmcltTeW1ib2wuaXRlcmF0b3JdfHxyWyJAQGl0ZXJhdG9yIl07aWYodClyZXR1cm4odD10LmNhbGwocikpLm5leHQuYmluZCh0KTtpZihBcnJheS5pc0FycmF5KHIpfHwodD15ayhyKSl8fGUmJnImJnR5cGVvZiByLmxlbmd0aD09Im51bWJlciIpe3QmJihyPXQpO3ZhciBpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGk+PXIubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTpyW2krK119fX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiB5ayhyLGUpe2lmKCEhcil7aWYodHlwZW9mIHI9PSJzdHJpbmciKXJldHVybiBOcChyLGUpO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKS5zbGljZSg4LC0xKTtpZih0PT09Ik9iamVjdCImJnIuY29uc3RydWN0b3ImJih0PXIuY29uc3RydWN0b3IubmFtZSksdD09PSJNYXAifHx0PT09IlNldCIpcmV0dXJuIEFycmF5LmZyb20ocik7aWYodD09PSJBcmd1bWVudHMifHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gTnAocixlKX19ZnVuY3Rpb24gTnAocixlKXsoZT09bnVsbHx8ZT5yLmxlbmd0aCkmJihlPXIubGVuZ3RoKTtmb3IodmFyIHQ9MCxpPW5ldyBBcnJheShlKTt0PGU7dCsrKWlbdF09clt0XTtyZXR1cm4gaX1mdW5jdGlvbiBCcChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIGJrKHIsZSx0KXtyZXR1cm4gZSYmQnAoci5wcm90b3R5cGUsZSksdCYmQnAocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfWZ1bmN0aW9uIHdrKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixQYShyLGUpfWZ1bmN0aW9uIFBhKHIsZSl7cmV0dXJuIFBhPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sUGEocixlKX12YXIgdms9ZnVuY3Rpb24ocil7d2soZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4ubm9kZXN8fChuLm5vZGVzPVtdKSxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LmFwcGVuZD1mdW5jdGlvbihuKXtyZXR1cm4gbi5wYXJlbnQ9dGhpcyx0aGlzLm5vZGVzLnB1c2gobiksdGhpc30sdC5wcmVwZW5kPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBhcmVudD10aGlzLHRoaXMubm9kZXMudW5zaGlmdChuKSx0aGlzfSx0LmF0PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLm5vZGVzW25dfSx0LmluZGV4PWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbj09Im51bWJlciI/bjp0aGlzLm5vZGVzLmluZGV4T2Yobil9LHQucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24obil7bj10aGlzLmluZGV4KG4pLHRoaXMuYXQobikucGFyZW50PXZvaWQgMCx0aGlzLm5vZGVzLnNwbGljZShuLDEpO3ZhciBzO2Zvcih2YXIgYSBpbiB0aGlzLmluZGV4ZXMpcz10aGlzLmluZGV4ZXNbYV0scz49biYmKHRoaXMuaW5kZXhlc1thXT1zLTEpO3JldHVybiB0aGlzfSx0LnJlbW92ZUFsbD1mdW5jdGlvbigpe2Zvcih2YXIgbj1nayh0aGlzLm5vZGVzKSxzOyEocz1uKCkpLmRvbmU7KXt2YXIgYT1zLnZhbHVlO2EucGFyZW50PXZvaWQgMH1yZXR1cm4gdGhpcy5ub2Rlcz1bXSx0aGlzfSx0LmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVtb3ZlQWxsKCl9LHQuaW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24obixzKXtzLnBhcmVudD10aGlzO3ZhciBhPXRoaXMuaW5kZXgobik7dGhpcy5ub2Rlcy5zcGxpY2UoYSsxLDAscykscy5wYXJlbnQ9dGhpczt2YXIgbztmb3IodmFyIGwgaW4gdGhpcy5pbmRleGVzKW89dGhpcy5pbmRleGVzW2xdLGE8PW8mJih0aGlzLmluZGV4ZXNbbF09bysxKTtyZXR1cm4gdGhpc30sdC5pbnNlcnRCZWZvcmU9ZnVuY3Rpb24obixzKXtzLnBhcmVudD10aGlzO3ZhciBhPXRoaXMuaW5kZXgobik7dGhpcy5ub2Rlcy5zcGxpY2UoYSwwLHMpLHMucGFyZW50PXRoaXM7dmFyIG87Zm9yKHZhciBsIGluIHRoaXMuaW5kZXhlcylvPXRoaXMuaW5kZXhlc1tsXSxvPD1hJiYodGhpcy5pbmRleGVzW2xdPW8rMSk7cmV0dXJuIHRoaXN9LHQuX2ZpbmRDaGlsZEF0UG9zaXRpb249ZnVuY3Rpb24obixzKXt2YXIgYT12b2lkIDA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihvKXtpZihvLmF0UG9zaXRpb24pe3ZhciBsPW8uYXRQb3NpdGlvbihuLHMpO2lmKGwpcmV0dXJuIGE9bCwhMX1lbHNlIGlmKG8uaXNBdFBvc2l0aW9uKG4scykpcmV0dXJuIGE9bywhMX0pLGF9LHQuYXRQb3NpdGlvbj1mdW5jdGlvbihuLHMpe2lmKHRoaXMuaXNBdFBvc2l0aW9uKG4scykpcmV0dXJuIHRoaXMuX2ZpbmRDaGlsZEF0UG9zaXRpb24obixzKXx8dGhpc30sdC5faW5mZXJFbmRQb3NpdGlvbj1mdW5jdGlvbigpe3RoaXMubGFzdCYmdGhpcy5sYXN0LnNvdXJjZSYmdGhpcy5sYXN0LnNvdXJjZS5lbmQmJih0aGlzLnNvdXJjZT10aGlzLnNvdXJjZXx8e30sdGhpcy5zb3VyY2UuZW5kPXRoaXMuc291cmNlLmVuZHx8e30sT2JqZWN0LmFzc2lnbih0aGlzLnNvdXJjZS5lbmQsdGhpcy5sYXN0LnNvdXJjZS5lbmQpKX0sdC5lYWNoPWZ1bmN0aW9uKG4pe3RoaXMubGFzdEVhY2h8fCh0aGlzLmxhc3RFYWNoPTApLHRoaXMuaW5kZXhlc3x8KHRoaXMuaW5kZXhlcz17fSksdGhpcy5sYXN0RWFjaCsrO3ZhciBzPXRoaXMubGFzdEVhY2g7aWYodGhpcy5pbmRleGVzW3NdPTAsISF0aGlzLmxlbmd0aCl7Zm9yKHZhciBhLG87dGhpcy5pbmRleGVzW3NdPHRoaXMubGVuZ3RoJiYoYT10aGlzLmluZGV4ZXNbc10sbz1uKHRoaXMuYXQoYSksYSksbyE9PSExKTspdGhpcy5pbmRleGVzW3NdKz0xO2lmKGRlbGV0ZSB0aGlzLmluZGV4ZXNbc10sbz09PSExKXJldHVybiExfX0sdC53YWxrPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24ocyxhKXt2YXIgbz1uKHMsYSk7aWYobyE9PSExJiZzLmxlbmd0aCYmKG89cy53YWxrKG4pKSxvPT09ITEpcmV0dXJuITF9KX0sdC53YWxrQXR0cmlidXRlcz1mdW5jdGlvbihuKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oYSl7aWYoYS50eXBlPT09aHQuQVRUUklCVVRFKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtDbGFzc2VzPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5DTEFTUylyZXR1cm4gbi5jYWxsKHMsYSl9KX0sdC53YWxrQ29tYmluYXRvcnM9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LkNPTUJJTkFUT1IpcmV0dXJuIG4uY2FsbChzLGEpfSl9LHQud2Fsa0NvbW1lbnRzPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5DT01NRU5UKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtJZHM9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LklEKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtOZXN0aW5nPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5ORVNUSU5HKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtQc2V1ZG9zPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5QU0VVRE8pcmV0dXJuIG4uY2FsbChzLGEpfSl9LHQud2Fsa1RhZ3M9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LlRBRylyZXR1cm4gbi5jYWxsKHMsYSl9KX0sdC53YWxrVW5pdmVyc2Fscz1mdW5jdGlvbihuKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oYSl7aWYoYS50eXBlPT09aHQuVU5JVkVSU0FMKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LnNwbGl0PWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXMsYT1bXTtyZXR1cm4gdGhpcy5yZWR1Y2UoZnVuY3Rpb24obyxsLGMpe3ZhciBmPW4uY2FsbChzLGwpO3JldHVybiBhLnB1c2gobCksZj8oby5wdXNoKGEpLGE9W10pOmM9PT1zLmxlbmd0aC0xJiZvLnB1c2goYSksb30sW10pfSx0Lm1hcD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5tYXAobil9LHQucmVkdWNlPWZ1bmN0aW9uKG4scyl7cmV0dXJuIHRoaXMubm9kZXMucmVkdWNlKG4scyl9LHQuZXZlcnk9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMubm9kZXMuZXZlcnkobil9LHQuc29tZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5zb21lKG4pfSx0LmZpbHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5maWx0ZXIobil9LHQuc29ydD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5zb3J0KG4pfSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKFN0cmluZykuam9pbigiIil9LGJrKGUsW3trZXk6ImZpcnN0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdCgwKX19LHtrZXk6Imxhc3QiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0KHRoaXMubGVuZ3RoLTEpfX0se2tleToibGVuZ3RoIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2Rlcy5sZW5ndGh9fV0pLGV9KGRrLmRlZmF1bHQpO3NpLmRlZmF1bHQ9dms7RnAuZXhwb3J0cz1zaS5kZWZhdWx0fSk7dmFyIERhPXgoKGFpLHpwKT0+e3UoKTsidXNlIHN0cmljdCI7YWkuX19lc01vZHVsZT0hMDthaS5kZWZhdWx0PXZvaWQgMDt2YXIgeGs9U2soTG4oKSksa2s9U2UoKTtmdW5jdGlvbiBTayhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24ganAocixlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIGk9ZVt0XTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGkua2V5LGkpfX1mdW5jdGlvbiBBayhyLGUsdCl7cmV0dXJuIGUmJmpwKHIucHJvdG90eXBlLGUpLHQmJmpwKHIsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSkscn1mdW5jdGlvbiBDayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsSWEocixlKX1mdW5jdGlvbiBJYShyLGUpe3JldHVybiBJYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LElhKHIsZSl9dmFyIF9rPWZ1bmN0aW9uKHIpe0NrKGUscik7ZnVuY3Rpb24gZShpKXt2YXIgbjtyZXR1cm4gbj1yLmNhbGwodGhpcyxpKXx8dGhpcyxuLnR5cGU9a2suUk9PVCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5yZWR1Y2UoZnVuY3Rpb24ocyxhKXtyZXR1cm4gcy5wdXNoKFN0cmluZyhhKSksc30sW10pLmpvaW4oIiwiKTtyZXR1cm4gdGhpcy50cmFpbGluZ0NvbW1hP24rIiwiOm59LHQuZXJyb3I9ZnVuY3Rpb24obixzKXtyZXR1cm4gdGhpcy5fZXJyb3I/dGhpcy5fZXJyb3IobixzKTpuZXcgRXJyb3Iobil9LEFrKGUsW3trZXk6ImVycm9yR2VuZXJhdG9yIixzZXQ6ZnVuY3Rpb24obil7dGhpcy5fZXJyb3I9bn19XSksZX0oeGsuZGVmYXVsdCk7YWkuZGVmYXVsdD1fazt6cC5leHBvcnRzPWFpLmRlZmF1bHR9KTt2YXIgJGE9eCgob2ksVXApPT57dSgpOyJ1c2Ugc3RyaWN0IjtvaS5fX2VzTW9kdWxlPSEwO29pLmRlZmF1bHQ9dm9pZCAwO3ZhciBFaz1UayhMbigpKSxPaz1TZSgpO2Z1bmN0aW9uIFRrKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBSayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscWEocixlKX1mdW5jdGlvbiBxYShyLGUpe3JldHVybiBxYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LHFhKHIsZSl9dmFyIFBrPWZ1bmN0aW9uKHIpe1JrKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9T2suU0VMRUNUT1IsaX1yZXR1cm4gZX0oRWsuZGVmYXVsdCk7b2kuZGVmYXVsdD1QaztVcC5leHBvcnRzPW9pLmRlZmF1bHR9KTt2YXIgTW49eCgoX0ksVnApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgSWs9e30sRGs9SWsuaGFzT3duUHJvcGVydHkscWs9ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgaT17fTtmb3IodmFyIG4gaW4gdClpW25dPURrLmNhbGwoZSxuKT9lW25dOnRbbl07cmV0dXJuIGl9LCRrPS9bIC0sXC5cLzotQFxbLVxeYFx7LX5dLyxMaz0vWyAtLFwuXC86LUBcW1xdXF5gXHstfl0vLE1rPS8oXnxcXCspPyhcXFtBLUYwLTldezEsNn0pXHgyMCg/IVthLWZBLUYwLTlceDIwXSkvZyxMYT1mdW5jdGlvbiByKGUsdCl7dD1xayh0LHIub3B0aW9ucyksdC5xdW90ZXMhPSJzaW5nbGUiJiZ0LnF1b3RlcyE9ImRvdWJsZSImJih0LnF1b3Rlcz0ic2luZ2xlIik7Zm9yKHZhciBpPXQucXVvdGVzPT0iZG91YmxlIj8nIic6IiciLG49dC5pc0lkZW50aWZpZXIscz1lLmNoYXJBdCgwKSxhPSIiLG89MCxsPWUubGVuZ3RoO288bDspe3ZhciBjPWUuY2hhckF0KG8rKyksZj1jLmNoYXJDb2RlQXQoKSxkPXZvaWQgMDtpZihmPDMyfHxmPjEyNil7aWYoZj49NTUyOTYmJmY8PTU2MzE5JiZvPGwpe3ZhciBwPWUuY2hhckNvZGVBdChvKyspOyhwJjY0NTEyKT09NTYzMjA/Zj0oKGYmMTAyMyk8PDEwKSsocCYxMDIzKSs2NTUzNjpvLS19ZD0iXFwiK2YudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIiAifWVsc2UgdC5lc2NhcGVFdmVyeXRoaW5nPyRrLnRlc3QoYyk/ZD0iXFwiK2M6ZD0iXFwiK2YudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIiAiOi9bXHRcblxmXHJceDBCXS8udGVzdChjKT9kPSJcXCIrZi50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiICI6Yz09IlxcInx8IW4mJihjPT0nIicmJmk9PWN8fGM9PSInIiYmaT09Yyl8fG4mJkxrLnRlc3QoYyk/ZD0iXFwiK2M6ZD1jO2ErPWR9cmV0dXJuIG4mJigvXi1bLVxkXS8udGVzdChhKT9hPSJcXC0iK2Euc2xpY2UoMSk6L1xkLy50ZXN0KHMpJiYoYT0iXFwzIitzKyIgIithLnNsaWNlKDEpKSksYT1hLnJlcGxhY2UoTWssZnVuY3Rpb24oaCxiLHYpe3JldHVybiBiJiZiLmxlbmd0aCUyP2g6KGJ8fCIiKSt2fSksIW4mJnQud3JhcD9pK2EraTphfTtMYS5vcHRpb25zPXtlc2NhcGVFdmVyeXRoaW5nOiExLGlzSWRlbnRpZmllcjohMSxxdW90ZXM6InNpbmdsZSIsd3JhcDohMX07TGEudmVyc2lvbj0iMy4wLjAiO1ZwLmV4cG9ydHM9TGF9KTt2YXIgTmE9eCgobGksR3ApPT57dSgpOyJ1c2Ugc3RyaWN0IjtsaS5fX2VzTW9kdWxlPSEwO2xpLmRlZmF1bHQ9dm9pZCAwO3ZhciBOaz1IcChNbigpKSxCaz1paSgpLEZrPUhwKGR0KCkpLGprPVNlKCk7ZnVuY3Rpb24gSHAocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFdwKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gemsocixlLHQpe3JldHVybiBlJiZXcChyLnByb3RvdHlwZSxlKSx0JiZXcChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gVWsocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLE1hKHIsZSl9ZnVuY3Rpb24gTWEocixlKXtyZXR1cm4gTWE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxNYShyLGUpfXZhciBWaz1mdW5jdGlvbihyKXtVayhlLHIpO2Z1bmN0aW9uIGUoaSl7dmFyIG47cmV0dXJuIG49ci5jYWxsKHRoaXMsaSl8fHRoaXMsbi50eXBlPWprLkNMQVNTLG4uX2NvbnN0cnVjdGVkPSEwLG59dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQudmFsdWVUb1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIuIityLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nLmNhbGwodGhpcyl9LHprKGUsW3trZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbihuKXtpZih0aGlzLl9jb25zdHJ1Y3RlZCl7dmFyIHM9KDAsTmsuZGVmYXVsdCkobix7aXNJZGVudGlmaWVyOiEwfSk7cyE9PW4/KCgwLEJrLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIpLHRoaXMucmF3cy52YWx1ZT1zKTp0aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3MudmFsdWV9dGhpcy5fdmFsdWU9bn19XSksZX0oRmsuZGVmYXVsdCk7bGkuZGVmYXVsdD1WaztHcC5leHBvcnRzPWxpLmRlZmF1bHR9KTt2YXIgRmE9eCgodWksUXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt1aS5fX2VzTW9kdWxlPSEwO3VpLmRlZmF1bHQ9dm9pZCAwO3ZhciBIaz1HayhkdCgpKSxXaz1TZSgpO2Z1bmN0aW9uIEdrKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBRayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsQmEocixlKX1mdW5jdGlvbiBCYShyLGUpe3JldHVybiBCYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LEJhKHIsZSl9dmFyIFlrPWZ1bmN0aW9uKHIpe1FrKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9V2suQ09NTUVOVCxpfXJldHVybiBlfShIay5kZWZhdWx0KTt1aS5kZWZhdWx0PVlrO1FwLmV4cG9ydHM9dWkuZGVmYXVsdH0pO3ZhciB6YT14KChmaSxZcCk9Pnt1KCk7InVzZSBzdHJpY3QiO2ZpLl9fZXNNb2R1bGU9ITA7ZmkuZGVmYXVsdD12b2lkIDA7dmFyIEtrPVprKGR0KCkpLFhrPVNlKCk7ZnVuY3Rpb24gWmsocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIEprKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixqYShyLGUpfWZ1bmN0aW9uIGphKHIsZSl7cmV0dXJuIGphPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0samEocixlKX12YXIgZVM9ZnVuY3Rpb24ocil7SmsoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4udHlwZT1Yay5JRCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnZhbHVlVG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIyIrci5wcm90b3R5cGUudmFsdWVUb1N0cmluZy5jYWxsKHRoaXMpfSxlfShLay5kZWZhdWx0KTtmaS5kZWZhdWx0PWVTO1lwLmV4cG9ydHM9ZmkuZGVmYXVsdH0pO3ZhciBObj14KChjaSxacCk9Pnt1KCk7InVzZSBzdHJpY3QiO2NpLl9fZXNNb2R1bGU9ITA7Y2kuZGVmYXVsdD12b2lkIDA7dmFyIHRTPUtwKE1uKCkpLHJTPWlpKCksaVM9S3AoZHQoKSk7ZnVuY3Rpb24gS3Aocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFhwKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gblMocixlLHQpe3JldHVybiBlJiZYcChyLnByb3RvdHlwZSxlKSx0JiZYcChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gc1MocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFVhKHIsZSl9ZnVuY3Rpb24gVWEocixlKXtyZXR1cm4gVWE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxVYShyLGUpfXZhciBhUz1mdW5jdGlvbihyKXtzUyhlLHIpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQucXVhbGlmaWVkTmFtZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2U/dGhpcy5uYW1lc3BhY2VTdHJpbmcrInwiK246bn0sdC52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVhbGlmaWVkTmFtZShyLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nLmNhbGwodGhpcykpfSxuUyhlLFt7a2V5OiJuYW1lc3BhY2UiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9uYW1lc3BhY2V9LHNldDpmdW5jdGlvbihuKXtpZihuPT09ITB8fG49PT0iKiJ8fG49PT0iJiIpe3RoaXMuX25hbWVzcGFjZT1uLHRoaXMucmF3cyYmZGVsZXRlIHRoaXMucmF3cy5uYW1lc3BhY2U7cmV0dXJufXZhciBzPSgwLHRTLmRlZmF1bHQpKG4se2lzSWRlbnRpZmllcjohMH0pO3RoaXMuX25hbWVzcGFjZT1uLHMhPT1uPygoMCxyUy5lbnN1cmVPYmplY3QpKHRoaXMsInJhd3MiKSx0aGlzLnJhd3MubmFtZXNwYWNlPXMpOnRoaXMucmF3cyYmZGVsZXRlIHRoaXMucmF3cy5uYW1lc3BhY2V9fSx7a2V5OiJucyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWVzcGFjZX0sc2V0OmZ1bmN0aW9uKG4pe3RoaXMubmFtZXNwYWNlPW59fSx7a2V5OiJuYW1lc3BhY2VTdHJpbmciLGdldDpmdW5jdGlvbigpe2lmKHRoaXMubmFtZXNwYWNlKXt2YXIgbj10aGlzLnN0cmluZ2lmeVByb3BlcnR5KCJuYW1lc3BhY2UiKTtyZXR1cm4gbj09PSEwPyIiOm59ZWxzZSByZXR1cm4iIn19XSksZX0oaVMuZGVmYXVsdCk7Y2kuZGVmYXVsdD1hUztacC5leHBvcnRzPWNpLmRlZmF1bHR9KTt2YXIgSGE9eCgocGksSnApPT57dSgpOyJ1c2Ugc3RyaWN0IjtwaS5fX2VzTW9kdWxlPSEwO3BpLmRlZmF1bHQ9dm9pZCAwO3ZhciBvUz11UyhObigpKSxsUz1TZSgpO2Z1bmN0aW9uIHVTKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBmUyhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsVmEocixlKX1mdW5jdGlvbiBWYShyLGUpe3JldHVybiBWYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LFZhKHIsZSl9dmFyIGNTPWZ1bmN0aW9uKHIpe2ZTKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9bFMuVEFHLGl9cmV0dXJuIGV9KG9TLmRlZmF1bHQpO3BpLmRlZmF1bHQ9Y1M7SnAuZXhwb3J0cz1waS5kZWZhdWx0fSk7dmFyIEdhPXgoKGRpLGVkKT0+e3UoKTsidXNlIHN0cmljdCI7ZGkuX19lc01vZHVsZT0hMDtkaS5kZWZhdWx0PXZvaWQgMDt2YXIgcFM9aFMoZHQoKSksZFM9U2UoKTtmdW5jdGlvbiBoUyhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24gbVMocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFdhKHIsZSl9ZnVuY3Rpb24gV2EocixlKXtyZXR1cm4gV2E9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxXYShyLGUpfXZhciBnUz1mdW5jdGlvbihyKXttUyhlLHIpO2Z1bmN0aW9uIGUodCl7dmFyIGk7cmV0dXJuIGk9ci5jYWxsKHRoaXMsdCl8fHRoaXMsaS50eXBlPWRTLlNUUklORyxpfXJldHVybiBlfShwUy5kZWZhdWx0KTtkaS5kZWZhdWx0PWdTO2VkLmV4cG9ydHM9ZGkuZGVmYXVsdH0pO3ZhciBZYT14KChoaSx0ZCk9Pnt1KCk7InVzZSBzdHJpY3QiO2hpLl9fZXNNb2R1bGU9ITA7aGkuZGVmYXVsdD12b2lkIDA7dmFyIHlTPXdTKExuKCkpLGJTPVNlKCk7ZnVuY3Rpb24gd1Mocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIHZTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixRYShyLGUpfWZ1bmN0aW9uIFFhKHIsZSl7cmV0dXJuIFFhPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sUWEocixlKX12YXIgeFM9ZnVuY3Rpb24ocil7dlMoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4udHlwZT1iUy5QU0VVRE8sbn12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBuPXRoaXMubGVuZ3RoPyIoIit0aGlzLm1hcChTdHJpbmcpLmpvaW4oIiwiKSsiKSI6IiI7cmV0dXJuW3RoaXMucmF3U3BhY2VCZWZvcmUsdGhpcy5zdHJpbmdpZnlQcm9wZXJ0eSgidmFsdWUiKSxuLHRoaXMucmF3U3BhY2VBZnRlcl0uam9pbigiIil9LGV9KHlTLmRlZmF1bHQpO2hpLmRlZmF1bHQ9eFM7dGQuZXhwb3J0cz1oaS5kZWZhdWx0fSk7dmFyIEJuPXt9O0dlKEJuLHtkZXByZWNhdGU6KCk9PmtTfSk7ZnVuY3Rpb24ga1Mocil7cmV0dXJuIHJ9dmFyIEZuPVAoKCk9Pnt1KCl9KTt2YXIgaWQ9eCgoRUkscmQpPT57dSgpO3JkLmV4cG9ydHM9KEZuKCksQm4pLmRlcHJlY2F0ZX0pO3ZhciB0bz14KHlpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt5aS5fX2VzTW9kdWxlPSEwO3lpLmRlZmF1bHQ9dm9pZCAwO3lpLnVuZXNjYXBlVmFsdWU9SmE7dmFyIG1pPVhhKE1uKCkpLFNTPVhhKFBuKCkpLEFTPVhhKE5uKCkpLENTPVNlKCksS2E7ZnVuY3Rpb24gWGEocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIG5kKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gX1MocixlLHQpe3JldHVybiBlJiZuZChyLnByb3RvdHlwZSxlKSx0JiZuZChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gRVMocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFphKHIsZSl9ZnVuY3Rpb24gWmEocixlKXtyZXR1cm4gWmE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxaYShyLGUpfXZhciBnaT1pZCgpLE9TPS9eKCd8IikoW15dKilcMSQvLFRTPWdpKGZ1bmN0aW9uKCl7fSwiQXNzaWduaW5nIGFuIGF0dHJpYnV0ZSBhIHZhbHVlIGNvbnRhaW5pbmcgY2hhcmFjdGVycyB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgZXNjYXBlZCBpcyBkZXByZWNhdGVkLiBDYWxsIGF0dHJpYnV0ZS5zZXRWYWx1ZSgpIGluc3RlYWQuIiksUlM9Z2koZnVuY3Rpb24oKXt9LCJBc3NpZ25pbmcgYXR0ci5xdW90ZWQgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIGVmZmVjdC4gQXNzaWduIHRvIGF0dHIucXVvdGVNYXJrIGluc3RlYWQuIiksUFM9Z2koZnVuY3Rpb24oKXt9LCJDb25zdHJ1Y3RpbmcgYW4gQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggYSB2YWx1ZSB3aXRob3V0IHNwZWNpZnlpbmcgcXVvdGVNYXJrIGlzIGRlcHJlY2F0ZWQuIE5vdGU6IFRoZSB2YWx1ZSBzaG91bGQgYmUgdW5lc2NhcGVkIG5vdy4iKTtmdW5jdGlvbiBKYShyKXt2YXIgZT0hMSx0PW51bGwsaT1yLG49aS5tYXRjaChPUyk7cmV0dXJuIG4mJih0PW5bMV0saT1uWzJdKSxpPSgwLFNTLmRlZmF1bHQpKGkpLGkhPT1yJiYoZT0hMCkse2RlcHJlY2F0ZWRVc2FnZTplLHVuZXNjYXBlZDppLHF1b3RlTWFyazp0fX1mdW5jdGlvbiBJUyhyKXtpZihyLnF1b3RlTWFyayE9PXZvaWQgMHx8ci52YWx1ZT09PXZvaWQgMClyZXR1cm4gcjtQUygpO3ZhciBlPUphKHIudmFsdWUpLHQ9ZS5xdW90ZU1hcmssaT1lLnVuZXNjYXBlZDtyZXR1cm4gci5yYXdzfHwoci5yYXdzPXt9KSxyLnJhd3MudmFsdWU9PT12b2lkIDAmJihyLnJhd3MudmFsdWU9ci52YWx1ZSksci52YWx1ZT1pLHIucXVvdGVNYXJrPXQscn12YXIgam49ZnVuY3Rpb24ocil7RVMoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBpPT09dm9pZCAwJiYoaT17fSksbj1yLmNhbGwodGhpcyxJUyhpKSl8fHRoaXMsbi50eXBlPUNTLkFUVFJJQlVURSxuLnJhd3M9bi5yYXdzfHx7fSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5yYXdzLCJ1bnF1b3RlZCIse2dldDpnaShmdW5jdGlvbigpe3JldHVybiBuLnZhbHVlfSwiYXR0ci5yYXdzLnVucXVvdGVkIGlzIGRlcHJlY2F0ZWQuIENhbGwgYXR0ci52YWx1ZSBpbnN0ZWFkLiIpLHNldDpnaShmdW5jdGlvbigpe3JldHVybiBuLnZhbHVlfSwiU2V0dGluZyBhdHRyLnJhd3MudW5xdW90ZWQgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIGVmZmVjdC4gYXR0ci52YWx1ZSBpcyB1bmVzY2FwZWQgYnkgZGVmYXVsdCBub3cuIil9KSxuLl9jb25zdHJ1Y3RlZD0hMCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LmdldFF1b3RlZFZhbHVlPWZ1bmN0aW9uKG4pe249PT12b2lkIDAmJihuPXt9KTt2YXIgcz10aGlzLl9kZXRlcm1pbmVRdW90ZU1hcmsobiksYT1lb1tzXSxvPSgwLG1pLmRlZmF1bHQpKHRoaXMuX3ZhbHVlLGEpO3JldHVybiBvfSx0Ll9kZXRlcm1pbmVRdW90ZU1hcms9ZnVuY3Rpb24obil7cmV0dXJuIG4uc21hcnQ/dGhpcy5zbWFydFF1b3RlTWFyayhuKTp0aGlzLnByZWZlcnJlZFF1b3RlTWFyayhuKX0sdC5zZXRWYWx1ZT1mdW5jdGlvbihuLHMpe3M9PT12b2lkIDAmJihzPXt9KSx0aGlzLl92YWx1ZT1uLHRoaXMuX3F1b3RlTWFyaz10aGlzLl9kZXRlcm1pbmVRdW90ZU1hcmsocyksdGhpcy5fc3luY1Jhd1ZhbHVlKCl9LHQuc21hcnRRdW90ZU1hcms9ZnVuY3Rpb24obil7dmFyIHM9dGhpcy52YWx1ZSxhPXMucmVwbGFjZSgvW14nXS9nLCIiKS5sZW5ndGgsbz1zLnJlcGxhY2UoL1teIl0vZywiIikubGVuZ3RoO2lmKGErbz09PTApe3ZhciBsPSgwLG1pLmRlZmF1bHQpKHMse2lzSWRlbnRpZmllcjohMH0pO2lmKGw9PT1zKXJldHVybiBlLk5PX1FVT1RFO3ZhciBjPXRoaXMucHJlZmVycmVkUXVvdGVNYXJrKG4pO2lmKGM9PT1lLk5PX1FVT1RFKXt2YXIgZj10aGlzLnF1b3RlTWFya3x8bi5xdW90ZU1hcmt8fGUuRE9VQkxFX1FVT1RFLGQ9ZW9bZl0scD0oMCxtaS5kZWZhdWx0KShzLGQpO2lmKHAubGVuZ3RoPGwubGVuZ3RoKXJldHVybiBmfXJldHVybiBjfWVsc2UgcmV0dXJuIG89PT1hP3RoaXMucHJlZmVycmVkUXVvdGVNYXJrKG4pOm88YT9lLkRPVUJMRV9RVU9URTplLlNJTkdMRV9RVU9URX0sdC5wcmVmZXJyZWRRdW90ZU1hcms9ZnVuY3Rpb24obil7dmFyIHM9bi5wcmVmZXJDdXJyZW50UXVvdGVNYXJrP3RoaXMucXVvdGVNYXJrOm4ucXVvdGVNYXJrO3JldHVybiBzPT09dm9pZCAwJiYocz1uLnByZWZlckN1cnJlbnRRdW90ZU1hcms/bi5xdW90ZU1hcms6dGhpcy5xdW90ZU1hcmspLHM9PT12b2lkIDAmJihzPWUuRE9VQkxFX1FVT1RFKSxzfSx0Ll9zeW5jUmF3VmFsdWU9ZnVuY3Rpb24oKXt2YXIgbj0oMCxtaS5kZWZhdWx0KSh0aGlzLl92YWx1ZSxlb1t0aGlzLnF1b3RlTWFya10pO249PT10aGlzLl92YWx1ZT90aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3MudmFsdWU6dGhpcy5yYXdzLnZhbHVlPW59LHQuX2hhbmRsZUVzY2FwZXM9ZnVuY3Rpb24obixzKXtpZih0aGlzLl9jb25zdHJ1Y3RlZCl7dmFyIGE9KDAsbWkuZGVmYXVsdCkocyx7aXNJZGVudGlmaWVyOiEwfSk7YSE9PXM/dGhpcy5yYXdzW25dPWE6ZGVsZXRlIHRoaXMucmF3c1tuXX19LHQuX3NwYWNlc0Zvcj1mdW5jdGlvbihuKXt2YXIgcz17YmVmb3JlOiIiLGFmdGVyOiIifSxhPXRoaXMuc3BhY2VzW25dfHx7fSxvPXRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXNbbl18fHt9O3JldHVybiBPYmplY3QuYXNzaWduKHMsYSxvKX0sdC5fc3RyaW5nRm9yPWZ1bmN0aW9uKG4scyxhKXtzPT09dm9pZCAwJiYocz1uKSxhPT09dm9pZCAwJiYoYT1zZCk7dmFyIG89dGhpcy5fc3BhY2VzRm9yKHMpO3JldHVybiBhKHRoaXMuc3RyaW5naWZ5UHJvcGVydHkobiksbyl9LHQub2Zmc2V0T2Y9ZnVuY3Rpb24obil7dmFyIHM9MSxhPXRoaXMuX3NwYWNlc0ZvcigiYXR0cmlidXRlIik7aWYocys9YS5iZWZvcmUubGVuZ3RoLG49PT0ibmFtZXNwYWNlInx8bj09PSJucyIpcmV0dXJuIHRoaXMubmFtZXNwYWNlP3M6LTE7aWYobj09PSJhdHRyaWJ1dGVOUyJ8fChzKz10aGlzLm5hbWVzcGFjZVN0cmluZy5sZW5ndGgsdGhpcy5uYW1lc3BhY2UmJihzKz0xKSxuPT09ImF0dHJpYnV0ZSIpKXJldHVybiBzO3MrPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoImF0dHJpYnV0ZSIpLmxlbmd0aCxzKz1hLmFmdGVyLmxlbmd0aDt2YXIgbz10aGlzLl9zcGFjZXNGb3IoIm9wZXJhdG9yIik7cys9by5iZWZvcmUubGVuZ3RoO3ZhciBsPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoIm9wZXJhdG9yIik7aWYobj09PSJvcGVyYXRvciIpcmV0dXJuIGw/czotMTtzKz1sLmxlbmd0aCxzKz1vLmFmdGVyLmxlbmd0aDt2YXIgYz10aGlzLl9zcGFjZXNGb3IoInZhbHVlIik7cys9Yy5iZWZvcmUubGVuZ3RoO3ZhciBmPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoInZhbHVlIik7aWYobj09PSJ2YWx1ZSIpcmV0dXJuIGY/czotMTtzKz1mLmxlbmd0aCxzKz1jLmFmdGVyLmxlbmd0aDt2YXIgZD10aGlzLl9zcGFjZXNGb3IoImluc2Vuc2l0aXZlIik7cmV0dXJuIHMrPWQuYmVmb3JlLmxlbmd0aCxuPT09Imluc2Vuc2l0aXZlIiYmdGhpcy5pbnNlbnNpdGl2ZT9zOi0xfSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxzPVt0aGlzLnJhd1NwYWNlQmVmb3JlLCJbIl07cmV0dXJuIHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoInF1YWxpZmllZEF0dHJpYnV0ZSIsImF0dHJpYnV0ZSIpKSx0aGlzLm9wZXJhdG9yJiYodGhpcy52YWx1ZXx8dGhpcy52YWx1ZT09PSIiKSYmKHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoIm9wZXJhdG9yIikpLHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoInZhbHVlIikpLHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoImluc2Vuc2l0aXZlRmxhZyIsImluc2Vuc2l0aXZlIixmdW5jdGlvbihhLG8pe3JldHVybiBhLmxlbmd0aD4wJiYhbi5xdW90ZWQmJm8uYmVmb3JlLmxlbmd0aD09PTAmJiEobi5zcGFjZXMudmFsdWUmJm4uc3BhY2VzLnZhbHVlLmFmdGVyKSYmKG8uYmVmb3JlPSIgIiksc2QoYSxvKX0pKSkscy5wdXNoKCJdIikscy5wdXNoKHRoaXMucmF3U3BhY2VBZnRlcikscy5qb2luKCIiKX0sX1MoZSxbe2tleToicXVvdGVkIixnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLnF1b3RlTWFyaztyZXR1cm4gbj09PSInInx8bj09PSciJ30sc2V0OmZ1bmN0aW9uKG4pe1JTKCl9fSx7a2V5OiJxdW90ZU1hcmsiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9xdW90ZU1hcmt9LHNldDpmdW5jdGlvbihuKXtpZighdGhpcy5fY29uc3RydWN0ZWQpe3RoaXMuX3F1b3RlTWFyaz1uO3JldHVybn10aGlzLl9xdW90ZU1hcmshPT1uJiYodGhpcy5fcXVvdGVNYXJrPW4sdGhpcy5fc3luY1Jhd1ZhbHVlKCkpfX0se2tleToicXVhbGlmaWVkQXR0cmlidXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWFsaWZpZWROYW1lKHRoaXMucmF3cy5hdHRyaWJ1dGV8fHRoaXMuYXR0cmlidXRlKX19LHtrZXk6Imluc2Vuc2l0aXZlRmxhZyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZW5zaXRpdmU/ImkiOiIifX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKG4pe2lmKHRoaXMuX2NvbnN0cnVjdGVkKXt2YXIgcz1KYShuKSxhPXMuZGVwcmVjYXRlZFVzYWdlLG89cy51bmVzY2FwZWQsbD1zLnF1b3RlTWFyaztpZihhJiZUUygpLG89PT10aGlzLl92YWx1ZSYmbD09PXRoaXMuX3F1b3RlTWFyaylyZXR1cm47dGhpcy5fdmFsdWU9byx0aGlzLl9xdW90ZU1hcms9bCx0aGlzLl9zeW5jUmF3VmFsdWUoKX1lbHNlIHRoaXMuX3ZhbHVlPW59fSx7a2V5OiJpbnNlbnNpdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc2Vuc2l0aXZlfSxzZXQ6ZnVuY3Rpb24obil7bnx8KHRoaXMuX2luc2Vuc2l0aXZlPSExLHRoaXMucmF3cyYmKHRoaXMucmF3cy5pbnNlbnNpdGl2ZUZsYWc9PT0iSSJ8fHRoaXMucmF3cy5pbnNlbnNpdGl2ZUZsYWc9PT0iaSIpJiYodGhpcy5yYXdzLmluc2Vuc2l0aXZlRmxhZz12b2lkIDApKSx0aGlzLl9pbnNlbnNpdGl2ZT1ufX0se2tleToiYXR0cmlidXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXR0cmlidXRlfSxzZXQ6ZnVuY3Rpb24obil7dGhpcy5faGFuZGxlRXNjYXBlcygiYXR0cmlidXRlIixuKSx0aGlzLl9hdHRyaWJ1dGU9bn19XSksZX0oQVMuZGVmYXVsdCk7eWkuZGVmYXVsdD1qbjtqbi5OT19RVU9URT1udWxsO2puLlNJTkdMRV9RVU9URT0iJyI7am4uRE9VQkxFX1FVT1RFPSciJzt2YXIgZW89KEthPXsiJyI6e3F1b3Rlczoic2luZ2xlIix3cmFwOiEwfSwnIic6e3F1b3RlczoiZG91YmxlIix3cmFwOiEwfX0sS2FbbnVsbF09e2lzSWRlbnRpZmllcjohMH0sS2EpO2Z1bmN0aW9uIHNkKHIsZSl7cmV0dXJuIiIrZS5iZWZvcmUrcitlLmFmdGVyfX0pO3ZhciBpbz14KChiaSxhZCk9Pnt1KCk7InVzZSBzdHJpY3QiO2JpLl9fZXNNb2R1bGU9ITA7YmkuZGVmYXVsdD12b2lkIDA7dmFyIERTPSRTKE5uKCkpLHFTPVNlKCk7ZnVuY3Rpb24gJFMocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIExTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixybyhyLGUpfWZ1bmN0aW9uIHJvKHIsZSl7cmV0dXJuIHJvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0scm8ocixlKX12YXIgTVM9ZnVuY3Rpb24ocil7TFMoZSxyKTtmdW5jdGlvbiBlKHQpe3ZhciBpO3JldHVybiBpPXIuY2FsbCh0aGlzLHQpfHx0aGlzLGkudHlwZT1xUy5VTklWRVJTQUwsaS52YWx1ZT0iKiIsaX1yZXR1cm4gZX0oRFMuZGVmYXVsdCk7YmkuZGVmYXVsdD1NUzthZC5leHBvcnRzPWJpLmRlZmF1bHR9KTt2YXIgc289eCgod2ksb2QpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt3aS5fX2VzTW9kdWxlPSEwO3dpLmRlZmF1bHQ9dm9pZCAwO3ZhciBOUz1GUyhkdCgpKSxCUz1TZSgpO2Z1bmN0aW9uIEZTKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBqUyhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsbm8ocixlKX1mdW5jdGlvbiBubyhyLGUpe3JldHVybiBubz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LG5vKHIsZSl9dmFyIHpTPWZ1bmN0aW9uKHIpe2pTKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9QlMuQ09NQklOQVRPUixpfXJldHVybiBlfShOUy5kZWZhdWx0KTt3aS5kZWZhdWx0PXpTO29kLmV4cG9ydHM9d2kuZGVmYXVsdH0pO3ZhciBvbz14KCh2aSxsZCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZpLl9fZXNNb2R1bGU9ITA7dmkuZGVmYXVsdD12b2lkIDA7dmFyIFVTPUhTKGR0KCkpLFZTPVNlKCk7ZnVuY3Rpb24gSFMocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFdTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixhbyhyLGUpfWZ1bmN0aW9uIGFvKHIsZSl7cmV0dXJuIGFvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sYW8ocixlKX12YXIgR1M9ZnVuY3Rpb24ocil7V1MoZSxyKTtmdW5jdGlvbiBlKHQpe3ZhciBpO3JldHVybiBpPXIuY2FsbCh0aGlzLHQpfHx0aGlzLGkudHlwZT1WUy5ORVNUSU5HLGkudmFsdWU9IiYiLGl9cmV0dXJuIGV9KFVTLmRlZmF1bHQpO3ZpLmRlZmF1bHQ9R1M7bGQuZXhwb3J0cz12aS5kZWZhdWx0fSk7dmFyIGZkPXgoKHpuLHVkKT0+e3UoKTsidXNlIHN0cmljdCI7em4uX19lc01vZHVsZT0hMDt6bi5kZWZhdWx0PVFTO2Z1bmN0aW9uIFFTKHIpe3JldHVybiByLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSl9dWQuZXhwb3J0cz16bi5kZWZhdWx0fSk7dmFyIGxvPXgoTT0+e3UoKTsidXNlIHN0cmljdCI7TS5fX2VzTW9kdWxlPSEwO00ud29yZD1NLnRpbGRlPU0udGFiPU0uc3RyPU0uc3BhY2U9TS5zbGFzaD1NLnNpbmdsZVF1b3RlPU0uc2VtaWNvbG9uPU0ucGx1cz1NLnBpcGU9TS5vcGVuU3F1YXJlPU0ub3BlblBhcmVudGhlc2lzPU0ubmV3bGluZT1NLmdyZWF0ZXJUaGFuPU0uZmVlZD1NLmVxdWFscz1NLmRvdWJsZVF1b3RlPU0uZG9sbGFyPU0uY3I9TS5jb21tZW50PU0uY29tbWE9TS5jb21iaW5hdG9yPU0uY29sb249TS5jbG9zZVNxdWFyZT1NLmNsb3NlUGFyZW50aGVzaXM9TS5jYXJldD1NLmJhbmc9TS5iYWNrc2xhc2g9TS5hdD1NLmFzdGVyaXNrPU0uYW1wZXJzYW5kPXZvaWQgMDt2YXIgWVM9Mzg7TS5hbXBlcnNhbmQ9WVM7dmFyIEtTPTQyO00uYXN0ZXJpc2s9S1M7dmFyIFhTPTY0O00uYXQ9WFM7dmFyIFpTPTQ0O00uY29tbWE9WlM7dmFyIEpTPTU4O00uY29sb249SlM7dmFyIGVBPTU5O00uc2VtaWNvbG9uPWVBO3ZhciB0QT00MDtNLm9wZW5QYXJlbnRoZXNpcz10QTt2YXIgckE9NDE7TS5jbG9zZVBhcmVudGhlc2lzPXJBO3ZhciBpQT05MTtNLm9wZW5TcXVhcmU9aUE7dmFyIG5BPTkzO00uY2xvc2VTcXVhcmU9bkE7dmFyIHNBPTM2O00uZG9sbGFyPXNBO3ZhciBhQT0xMjY7TS50aWxkZT1hQTt2YXIgb0E9OTQ7TS5jYXJldD1vQTt2YXIgbEE9NDM7TS5wbHVzPWxBO3ZhciB1QT02MTtNLmVxdWFscz11QTt2YXIgZkE9MTI0O00ucGlwZT1mQTt2YXIgY0E9NjI7TS5ncmVhdGVyVGhhbj1jQTt2YXIgcEE9MzI7TS5zcGFjZT1wQTt2YXIgY2Q9Mzk7TS5zaW5nbGVRdW90ZT1jZDt2YXIgZEE9MzQ7TS5kb3VibGVRdW90ZT1kQTt2YXIgaEE9NDc7TS5zbGFzaD1oQTt2YXIgbUE9MzM7TS5iYW5nPW1BO3ZhciBnQT05MjtNLmJhY2tzbGFzaD1nQTt2YXIgeUE9MTM7TS5jcj15QTt2YXIgYkE9MTI7TS5mZWVkPWJBO3ZhciB3QT0xMDtNLm5ld2xpbmU9d0E7dmFyIHZBPTk7TS50YWI9dkE7dmFyIHhBPWNkO00uc3RyPXhBO3ZhciBrQT0tMTtNLmNvbW1lbnQ9a0E7dmFyIFNBPS0yO00ud29yZD1TQTt2YXIgQUE9LTM7TS5jb21iaW5hdG9yPUFBfSk7dmFyIGhkPXgoeGk9Pnt1KCk7InVzZSBzdHJpY3QiO3hpLl9fZXNNb2R1bGU9ITA7eGkuRklFTERTPXZvaWQgMDt4aS5kZWZhdWx0PVBBO3ZhciBEPUNBKGxvKCkpLG5yLHRlO2Z1bmN0aW9uIHBkKHIpe2lmKHR5cGVvZiBXZWFrTWFwIT0iZnVuY3Rpb24iKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwLHQ9bmV3IFdlYWtNYXA7cmV0dXJuKHBkPWZ1bmN0aW9uKG4pe3JldHVybiBuP3Q6ZX0pKHIpfWZ1bmN0aW9uIENBKHIsZSl7aWYoIWUmJnImJnIuX19lc01vZHVsZSlyZXR1cm4gcjtpZihyPT09bnVsbHx8dHlwZW9mIHIhPSJvYmplY3QiJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIilyZXR1cm57ZGVmYXVsdDpyfTt2YXIgdD1wZChlKTtpZih0JiZ0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7dmFyIGk9e30sbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBzIGluIHIpaWYocyE9PSJkZWZhdWx0IiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscykpe3ZhciBhPW4/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHMpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGkscyxhKTppW3NdPXJbc119cmV0dXJuIGkuZGVmYXVsdD1yLHQmJnQuc2V0KHIsaSksaX12YXIgX0E9KG5yPXt9LG5yW0QudGFiXT0hMCxucltELm5ld2xpbmVdPSEwLG5yW0QuY3JdPSEwLG5yW0QuZmVlZF09ITAsbnIpLEVBPSh0ZT17fSx0ZVtELnNwYWNlXT0hMCx0ZVtELnRhYl09ITAsdGVbRC5uZXdsaW5lXT0hMCx0ZVtELmNyXT0hMCx0ZVtELmZlZWRdPSEwLHRlW0QuYW1wZXJzYW5kXT0hMCx0ZVtELmFzdGVyaXNrXT0hMCx0ZVtELmJhbmddPSEwLHRlW0QuY29tbWFdPSEwLHRlW0QuY29sb25dPSEwLHRlW0Quc2VtaWNvbG9uXT0hMCx0ZVtELm9wZW5QYXJlbnRoZXNpc109ITAsdGVbRC5jbG9zZVBhcmVudGhlc2lzXT0hMCx0ZVtELm9wZW5TcXVhcmVdPSEwLHRlW0QuY2xvc2VTcXVhcmVdPSEwLHRlW0Quc2luZ2xlUXVvdGVdPSEwLHRlW0QuZG91YmxlUXVvdGVdPSEwLHRlW0QucGx1c109ITAsdGVbRC5waXBlXT0hMCx0ZVtELnRpbGRlXT0hMCx0ZVtELmdyZWF0ZXJUaGFuXT0hMCx0ZVtELmVxdWFsc109ITAsdGVbRC5kb2xsYXJdPSEwLHRlW0QuY2FyZXRdPSEwLHRlW0Quc2xhc2hdPSEwLHRlKSx1bz17fSxkZD0iMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRiI7Zm9yKFVuPTA7VW48ZGQubGVuZ3RoO1VuKyspdW9bZGQuY2hhckNvZGVBdChVbildPSEwO3ZhciBVbjtmdW5jdGlvbiBPQShyLGUpe3ZhciB0PWUsaTtkb3tpZihpPXIuY2hhckNvZGVBdCh0KSxFQVtpXSlyZXR1cm4gdC0xO2k9PT1ELmJhY2tzbGFzaD90PVRBKHIsdCkrMTp0Kyt9d2hpbGUodDxyLmxlbmd0aCk7cmV0dXJuIHQtMX1mdW5jdGlvbiBUQShyLGUpe3ZhciB0PWUsaT1yLmNoYXJDb2RlQXQodCsxKTtpZighX0FbaV0paWYodW9baV0pe3ZhciBuPTA7ZG8gdCsrLG4rKyxpPXIuY2hhckNvZGVBdCh0KzEpO3doaWxlKHVvW2ldJiZuPDYpO248NiYmaT09PUQuc3BhY2UmJnQrK31lbHNlIHQrKztyZXR1cm4gdH12YXIgUkE9e1RZUEU6MCxTVEFSVF9MSU5FOjEsU1RBUlRfQ09MOjIsRU5EX0xJTkU6MyxFTkRfQ09MOjQsU1RBUlRfUE9TOjUsRU5EX1BPUzo2fTt4aS5GSUVMRFM9UkE7ZnVuY3Rpb24gUEEocil7dmFyIGU9W10sdD1yLmNzcy52YWx1ZU9mKCksaT10LG49aS5sZW5ndGgscz0tMSxhPTEsbz0wLGw9MCxjLGYsZCxwLGgsYix2LHksdyxrLFMsRSxUO2Z1bmN0aW9uIEIoTixSKXtpZihyLnNhZmUpdCs9Uix3PXQubGVuZ3RoLTE7ZWxzZSB0aHJvdyByLmVycm9yKCJVbmNsb3NlZCAiK04sYSxvLXMsbyl9Zm9yKDtvPG47KXtzd2l0Y2goYz10LmNoYXJDb2RlQXQobyksYz09PUQubmV3bGluZSYmKHM9byxhKz0xKSxjKXtjYXNlIEQuc3BhY2U6Y2FzZSBELnRhYjpjYXNlIEQubmV3bGluZTpjYXNlIEQuY3I6Y2FzZSBELmZlZWQ6dz1vO2RvIHcrPTEsYz10LmNoYXJDb2RlQXQodyksYz09PUQubmV3bGluZSYmKHM9dyxhKz0xKTt3aGlsZShjPT09RC5zcGFjZXx8Yz09PUQubmV3bGluZXx8Yz09PUQudGFifHxjPT09RC5jcnx8Yz09PUQuZmVlZCk7VD1ELnNwYWNlLHA9YSxkPXctcy0xLGw9dzticmVhaztjYXNlIEQucGx1czpjYXNlIEQuZ3JlYXRlclRoYW46Y2FzZSBELnRpbGRlOmNhc2UgRC5waXBlOnc9bztkbyB3Kz0xLGM9dC5jaGFyQ29kZUF0KHcpO3doaWxlKGM9PT1ELnBsdXN8fGM9PT1ELmdyZWF0ZXJUaGFufHxjPT09RC50aWxkZXx8Yz09PUQucGlwZSk7VD1ELmNvbWJpbmF0b3IscD1hLGQ9by1zLGw9dzticmVhaztjYXNlIEQuYXN0ZXJpc2s6Y2FzZSBELmFtcGVyc2FuZDpjYXNlIEQuYmFuZzpjYXNlIEQuY29tbWE6Y2FzZSBELmVxdWFsczpjYXNlIEQuZG9sbGFyOmNhc2UgRC5jYXJldDpjYXNlIEQub3BlblNxdWFyZTpjYXNlIEQuY2xvc2VTcXVhcmU6Y2FzZSBELmNvbG9uOmNhc2UgRC5zZW1pY29sb246Y2FzZSBELm9wZW5QYXJlbnRoZXNpczpjYXNlIEQuY2xvc2VQYXJlbnRoZXNpczp3PW8sVD1jLHA9YSxkPW8tcyxsPXcrMTticmVhaztjYXNlIEQuc2luZ2xlUXVvdGU6Y2FzZSBELmRvdWJsZVF1b3RlOkU9Yz09PUQuc2luZ2xlUXVvdGU/IiciOiciJyx3PW87ZG8gZm9yKGg9ITEsdz10LmluZGV4T2YoRSx3KzEpLHc9PT0tMSYmQigicXVvdGUiLEUpLGI9dzt0LmNoYXJDb2RlQXQoYi0xKT09PUQuYmFja3NsYXNoOyliLT0xLGg9IWg7d2hpbGUoaCk7VD1ELnN0cixwPWEsZD1vLXMsbD13KzE7YnJlYWs7ZGVmYXVsdDpjPT09RC5zbGFzaCYmdC5jaGFyQ29kZUF0KG8rMSk9PT1ELmFzdGVyaXNrPyh3PXQuaW5kZXhPZigiKi8iLG8rMikrMSx3PT09MCYmQigiY29tbWVudCIsIiovIiksZj10LnNsaWNlKG8sdysxKSx5PWYuc3BsaXQoYApgKSx2PXkubGVuZ3RoLTEsdj4wPyhrPWErdixTPXcteVt2XS5sZW5ndGgpOihrPWEsUz1zKSxUPUQuY29tbWVudCxhPWsscD1rLGQ9dy1TKTpjPT09RC5zbGFzaD8odz1vLFQ9YyxwPWEsZD1vLXMsbD13KzEpOih3PU9BKHQsbyksVD1ELndvcmQscD1hLGQ9dy1zKSxsPXcrMTticmVha31lLnB1c2goW1QsYSxvLXMscCxkLG8sbF0pLFMmJihzPVMsUz1udWxsKSxvPWx9cmV0dXJuIGV9fSk7dmFyIGtkPXgoKGtpLHhkKT0+e3UoKTsidXNlIHN0cmljdCI7a2kuX19lc01vZHVsZT0hMDtraS5kZWZhdWx0PXZvaWQgMDt2YXIgSUE9amUoRGEoKSksZm89amUoJGEoKSksREE9amUoTmEoKSksbWQ9amUoRmEoKSkscUE9amUoemEoKSksJEE9amUoSGEoKSksY289amUoR2EoKSksTEE9amUoWWEoKSksZ2Q9Vm4odG8oKSksTUE9amUoaW8oKSkscG89amUoc28oKSksTkE9amUob28oKSksQkE9amUoZmQoKSksTz1WbihoZCgpKSxxPVZuKGxvKCkpLEZBPVZuKFNlKCkpLHVlPWlpKCksVnQsaG87ZnVuY3Rpb24geWQocil7aWYodHlwZW9mIFdlYWtNYXAhPSJmdW5jdGlvbiIpcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcDtyZXR1cm4oeWQ9ZnVuY3Rpb24obil7cmV0dXJuIG4/dDplfSkocil9ZnVuY3Rpb24gVm4ocixlKXtpZighZSYmciYmci5fX2VzTW9kdWxlKXJldHVybiByO2lmKHI9PT1udWxsfHx0eXBlb2YgciE9Im9iamVjdCImJnR5cGVvZiByIT0iZnVuY3Rpb24iKXJldHVybntkZWZhdWx0OnJ9O3ZhciB0PXlkKGUpO2lmKHQmJnQuaGFzKHIpKXJldHVybiB0LmdldChyKTt2YXIgaT17fSxuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIHMgaW4gcilpZihzIT09ImRlZmF1bHQiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixzKSl7dmFyIGE9bj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIscyk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkoaSxzLGEpOmlbc109cltzXX1yZXR1cm4gaS5kZWZhdWx0PXIsdCYmdC5zZXQocixpKSxpfWZ1bmN0aW9uIGplKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBiZChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIGpBKHIsZSx0KXtyZXR1cm4gZSYmYmQoci5wcm90b3R5cGUsZSksdCYmYmQocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfXZhciBtbz0oVnQ9e30sVnRbcS5zcGFjZV09ITAsVnRbcS5jcl09ITAsVnRbcS5mZWVkXT0hMCxWdFtxLm5ld2xpbmVdPSEwLFZ0W3EudGFiXT0hMCxWdCksekE9T2JqZWN0LmFzc2lnbih7fSxtbywoaG89e30saG9bcS5jb21tZW50XT0hMCxobykpO2Z1bmN0aW9uIHdkKHIpe3JldHVybntsaW5lOnJbTy5GSUVMRFMuU1RBUlRfTElORV0sY29sdW1uOnJbTy5GSUVMRFMuU1RBUlRfQ09MXX19ZnVuY3Rpb24gdmQocil7cmV0dXJue2xpbmU6cltPLkZJRUxEUy5FTkRfTElORV0sY29sdW1uOnJbTy5GSUVMRFMuRU5EX0NPTF19fWZ1bmN0aW9uIEh0KHIsZSx0LGkpe3JldHVybntzdGFydDp7bGluZTpyLGNvbHVtbjplfSxlbmQ6e2xpbmU6dCxjb2x1bW46aX19fWZ1bmN0aW9uIHNyKHIpe3JldHVybiBIdChyW08uRklFTERTLlNUQVJUX0xJTkVdLHJbTy5GSUVMRFMuU1RBUlRfQ09MXSxyW08uRklFTERTLkVORF9MSU5FXSxyW08uRklFTERTLkVORF9DT0xdKX1mdW5jdGlvbiBnbyhyLGUpe2lmKCEhcilyZXR1cm4gSHQocltPLkZJRUxEUy5TVEFSVF9MSU5FXSxyW08uRklFTERTLlNUQVJUX0NPTF0sZVtPLkZJRUxEUy5FTkRfTElORV0sZVtPLkZJRUxEUy5FTkRfQ09MXSl9ZnVuY3Rpb24gYXIocixlKXt2YXIgdD1yW2VdO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gdC5pbmRleE9mKCJcXCIpIT09LTEmJigoMCx1ZS5lbnN1cmVPYmplY3QpKHIsInJhd3MiKSxyW2VdPSgwLHVlLnVuZXNjKSh0KSxyLnJhd3NbZV09PT12b2lkIDAmJihyLnJhd3NbZV09dCkpLHJ9ZnVuY3Rpb24geW8ocixlKXtmb3IodmFyIHQ9LTEsaT1bXTsodD1yLmluZGV4T2YoZSx0KzEpKSE9PS0xOylpLnB1c2godCk7cmV0dXJuIGl9ZnVuY3Rpb24gVUEoKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGFyZ3VtZW50cyk7cmV0dXJuIHIuZmlsdGVyKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9PT1yLmluZGV4T2YoZSl9KX12YXIgVkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsaSl7aT09PXZvaWQgMCYmKGk9e30pLHRoaXMucnVsZT10LHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHtsb3NzeTohMSxzYWZlOiExfSxpKSx0aGlzLnBvc2l0aW9uPTAsdGhpcy5jc3M9dHlwZW9mIHRoaXMucnVsZT09InN0cmluZyI/dGhpcy5ydWxlOnRoaXMucnVsZS5zZWxlY3Rvcix0aGlzLnRva2Vucz0oMCxPLmRlZmF1bHQpKHtjc3M6dGhpcy5jc3MsZXJyb3I6dGhpcy5fZXJyb3JHZW5lcmF0b3IoKSxzYWZlOnRoaXMub3B0aW9ucy5zYWZlfSk7dmFyIG49Z28odGhpcy50b2tlbnNbMF0sdGhpcy50b2tlbnNbdGhpcy50b2tlbnMubGVuZ3RoLTFdKTt0aGlzLnJvb3Q9bmV3IElBLmRlZmF1bHQoe3NvdXJjZTpufSksdGhpcy5yb290LmVycm9yR2VuZXJhdG9yPXRoaXMuX2Vycm9yR2VuZXJhdG9yKCk7dmFyIHM9bmV3IGZvLmRlZmF1bHQoe3NvdXJjZTp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MX19LHNvdXJjZUluZGV4OjB9KTt0aGlzLnJvb3QuYXBwZW5kKHMpLHRoaXMuY3VycmVudD1zLHRoaXMubG9vcCgpfXZhciBlPXIucHJvdG90eXBlO3JldHVybiBlLl9lcnJvckdlbmVyYXRvcj1mdW5jdGlvbigpe3ZhciBpPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKG4scyl7cmV0dXJuIHR5cGVvZiBpLnJ1bGU9PSJzdHJpbmciP25ldyBFcnJvcihuKTppLnJ1bGUuZXJyb3IobixzKX19LGUuYXR0cmlidXRlPWZ1bmN0aW9uKCl7dmFyIGk9W10sbj10aGlzLmN1cnJUb2tlbjtmb3IodGhpcy5wb3NpdGlvbisrO3RoaXMucG9zaXRpb248dGhpcy50b2tlbnMubGVuZ3RoJiZ0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXSE9PXEuY2xvc2VTcXVhcmU7KWkucHVzaCh0aGlzLmN1cnJUb2tlbiksdGhpcy5wb3NpdGlvbisrO2lmKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdIT09cS5jbG9zZVNxdWFyZSlyZXR1cm4gdGhpcy5leHBlY3RlZCgiY2xvc2luZyBzcXVhcmUgYnJhY2tldCIsdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSk7dmFyIHM9aS5sZW5ndGgsYT17c291cmNlOkh0KG5bMV0sblsyXSx0aGlzLmN1cnJUb2tlblszXSx0aGlzLmN1cnJUb2tlbls0XSksc291cmNlSW5kZXg6bltPLkZJRUxEUy5TVEFSVF9QT1NdfTtpZihzPT09MSYmIX5bcS53b3JkXS5pbmRleE9mKGlbMF1bTy5GSUVMRFMuVFlQRV0pKXJldHVybiB0aGlzLmV4cGVjdGVkKCJhdHRyaWJ1dGUiLGlbMF1bTy5GSUVMRFMuU1RBUlRfUE9TXSk7Zm9yKHZhciBvPTAsbD0iIixjPSIiLGY9bnVsbCxkPSExO288czspe3ZhciBwPWlbb10saD10aGlzLmNvbnRlbnQocCksYj1pW28rMV07c3dpdGNoKHBbTy5GSUVMRFMuVFlQRV0pe2Nhc2UgcS5zcGFjZTppZihkPSEwLHRoaXMub3B0aW9ucy5sb3NzeSlicmVhaztpZihmKXsoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInNwYWNlcyIsZik7dmFyIHY9YS5zcGFjZXNbZl0uYWZ0ZXJ8fCIiO2Euc3BhY2VzW2ZdLmFmdGVyPXYraDt2YXIgeT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwic3BhY2VzIixmLCJhZnRlciIpfHxudWxsO3kmJihhLnJhd3Muc3BhY2VzW2ZdLmFmdGVyPXkraCl9ZWxzZSBsPWwraCxjPWMraDticmVhaztjYXNlIHEuYXN0ZXJpc2s6aWYoYltPLkZJRUxEUy5UWVBFXT09PXEuZXF1YWxzKWEub3BlcmF0b3I9aCxmPSJvcGVyYXRvciI7ZWxzZSBpZigoIWEubmFtZXNwYWNlfHxmPT09Im5hbWVzcGFjZSImJiFkKSYmYil7bCYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwic3BhY2VzIiwiYXR0cmlidXRlIiksYS5zcGFjZXMuYXR0cmlidXRlLmJlZm9yZT1sLGw9IiIpLGMmJigoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiLCJzcGFjZXMiLCJhdHRyaWJ1dGUiKSxhLnJhd3Muc3BhY2VzLmF0dHJpYnV0ZS5iZWZvcmU9bCxjPSIiKSxhLm5hbWVzcGFjZT0oYS5uYW1lc3BhY2V8fCIiKStoO3ZhciB3PSgwLHVlLmdldFByb3ApKGEsInJhd3MiLCJuYW1lc3BhY2UiKXx8bnVsbDt3JiYoYS5yYXdzLm5hbWVzcGFjZSs9aCksZj0ibmFtZXNwYWNlIn1kPSExO2JyZWFrO2Nhc2UgcS5kb2xsYXI6aWYoZj09PSJ2YWx1ZSIpe3ZhciBrPSgwLHVlLmdldFByb3ApKGEsInJhd3MiLCJ2YWx1ZSIpO2EudmFsdWUrPSIkIixrJiYoYS5yYXdzLnZhbHVlPWsrIiQiKTticmVha31jYXNlIHEuY2FyZXQ6YltPLkZJRUxEUy5UWVBFXT09PXEuZXF1YWxzJiYoYS5vcGVyYXRvcj1oLGY9Im9wZXJhdG9yIiksZD0hMTticmVhaztjYXNlIHEuY29tYmluYXRvcjppZihoPT09In4iJiZiW08uRklFTERTLlRZUEVdPT09cS5lcXVhbHMmJihhLm9wZXJhdG9yPWgsZj0ib3BlcmF0b3IiKSxoIT09InwiKXtkPSExO2JyZWFrfWJbTy5GSUVMRFMuVFlQRV09PT1xLmVxdWFscz8oYS5vcGVyYXRvcj1oLGY9Im9wZXJhdG9yIik6IWEubmFtZXNwYWNlJiYhYS5hdHRyaWJ1dGUmJihhLm5hbWVzcGFjZT0hMCksZD0hMTticmVhaztjYXNlIHEud29yZDppZihiJiZ0aGlzLmNvbnRlbnQoYik9PT0ifCImJmlbbysyXSYmaVtvKzJdW08uRklFTERTLlRZUEVdIT09cS5lcXVhbHMmJiFhLm9wZXJhdG9yJiYhYS5uYW1lc3BhY2UpYS5uYW1lc3BhY2U9aCxmPSJuYW1lc3BhY2UiO2Vsc2UgaWYoIWEuYXR0cmlidXRlfHxmPT09ImF0dHJpYnV0ZSImJiFkKXtsJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJzcGFjZXMiLCJhdHRyaWJ1dGUiKSxhLnNwYWNlcy5hdHRyaWJ1dGUuYmVmb3JlPWwsbD0iIiksYyYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwicmF3cyIsInNwYWNlcyIsImF0dHJpYnV0ZSIpLGEucmF3cy5zcGFjZXMuYXR0cmlidXRlLmJlZm9yZT1jLGM9IiIpLGEuYXR0cmlidXRlPShhLmF0dHJpYnV0ZXx8IiIpK2g7dmFyIFM9KDAsdWUuZ2V0UHJvcCkoYSwicmF3cyIsImF0dHJpYnV0ZSIpfHxudWxsO1MmJihhLnJhd3MuYXR0cmlidXRlKz1oKSxmPSJhdHRyaWJ1dGUifWVsc2UgaWYoIWEudmFsdWUmJmEudmFsdWUhPT0iInx8Zj09PSJ2YWx1ZSImJiEoZHx8YS5xdW90ZU1hcmspKXt2YXIgRT0oMCx1ZS51bmVzYykoaCksVD0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwidmFsdWUiKXx8IiIsQj1hLnZhbHVlfHwiIjthLnZhbHVlPUIrRSxhLnF1b3RlTWFyaz1udWxsLChFIT09aHx8VCkmJigoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3MudmFsdWU9KFR8fEIpK2gpLGY9InZhbHVlIn1lbHNle3ZhciBOPWg9PT0iaSJ8fGg9PT0iSSI7KGEudmFsdWV8fGEudmFsdWU9PT0iIikmJihhLnF1b3RlTWFya3x8ZCk/KGEuaW5zZW5zaXRpdmU9TiwoIU58fGg9PT0iSSIpJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJyYXdzIiksYS5yYXdzLmluc2Vuc2l0aXZlRmxhZz1oKSxmPSJpbnNlbnNpdGl2ZSIsbCYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwic3BhY2VzIiwiaW5zZW5zaXRpdmUiKSxhLnNwYWNlcy5pbnNlbnNpdGl2ZS5iZWZvcmU9bCxsPSIiKSxjJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJyYXdzIiwic3BhY2VzIiwiaW5zZW5zaXRpdmUiKSxhLnJhd3Muc3BhY2VzLmluc2Vuc2l0aXZlLmJlZm9yZT1jLGM9IiIpKTooYS52YWx1ZXx8YS52YWx1ZT09PSIiKSYmKGY9InZhbHVlIixhLnZhbHVlKz1oLGEucmF3cy52YWx1ZSYmKGEucmF3cy52YWx1ZSs9aCkpfWQ9ITE7YnJlYWs7Y2FzZSBxLnN0cjppZighYS5hdHRyaWJ1dGV8fCFhLm9wZXJhdG9yKXJldHVybiB0aGlzLmVycm9yKCJFeHBlY3RlZCBhbiBhdHRyaWJ1dGUgZm9sbG93ZWQgYnkgYW4gb3BlcmF0b3IgcHJlY2VkaW5nIHRoZSBzdHJpbmcuIix7aW5kZXg6cFtPLkZJRUxEUy5TVEFSVF9QT1NdfSk7dmFyIFI9KDAsZ2QudW5lc2NhcGVWYWx1ZSkoaCksRj1SLnVuZXNjYXBlZCxZPVIucXVvdGVNYXJrO2EudmFsdWU9RixhLnF1b3RlTWFyaz1ZLGY9InZhbHVlIiwoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3MudmFsdWU9aCxkPSExO2JyZWFrO2Nhc2UgcS5lcXVhbHM6aWYoIWEuYXR0cmlidXRlKXJldHVybiB0aGlzLmV4cGVjdGVkKCJhdHRyaWJ1dGUiLHBbTy5GSUVMRFMuU1RBUlRfUE9TXSxoKTtpZihhLnZhbHVlKXJldHVybiB0aGlzLmVycm9yKCdVbmV4cGVjdGVkICI9IiBmb3VuZDsgYW4gb3BlcmF0b3Igd2FzIGFscmVhZHkgZGVmaW5lZC4nLHtpbmRleDpwW08uRklFTERTLlNUQVJUX1BPU119KTthLm9wZXJhdG9yPWEub3BlcmF0b3I/YS5vcGVyYXRvcitoOmgsZj0ib3BlcmF0b3IiLGQ9ITE7YnJlYWs7Y2FzZSBxLmNvbW1lbnQ6aWYoZilpZihkfHxiJiZiW08uRklFTERTLlRZUEVdPT09cS5zcGFjZXx8Zj09PSJpbnNlbnNpdGl2ZSIpe3ZhciBfPSgwLHVlLmdldFByb3ApKGEsInNwYWNlcyIsZiwiYWZ0ZXIiKXx8IiIsUT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwic3BhY2VzIixmLCJhZnRlciIpfHxfOygwLHVlLmVuc3VyZU9iamVjdCkoYSwicmF3cyIsInNwYWNlcyIsZiksYS5yYXdzLnNwYWNlc1tmXS5hZnRlcj1RK2h9ZWxzZXt2YXIgVT1hW2ZdfHwiIixsZT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIixmKXx8VTsoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3NbZl09bGUraH1lbHNlIGM9YytoO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMuZXJyb3IoJ1VuZXhwZWN0ZWQgIicraCsnIiBmb3VuZC4nLHtpbmRleDpwW08uRklFTERTLlNUQVJUX1BPU119KX1vKyt9YXIoYSwiYXR0cmlidXRlIiksYXIoYSwibmFtZXNwYWNlIiksdGhpcy5uZXdOb2RlKG5ldyBnZC5kZWZhdWx0KGEpKSx0aGlzLnBvc2l0aW9uKyt9LGUucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2Vucz1mdW5jdGlvbihpKXtpPDAmJihpPXRoaXMudG9rZW5zLmxlbmd0aCk7dmFyIG49dGhpcy5wb3NpdGlvbixzPVtdLGE9IiIsbz12b2lkIDA7ZG8gaWYobW9bdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV1dKXRoaXMub3B0aW9ucy5sb3NzeXx8KGErPXRoaXMuY29udGVudCgpKTtlbHNlIGlmKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb21tZW50KXt2YXIgbD17fTthJiYobC5iZWZvcmU9YSxhPSIiKSxvPW5ldyBtZC5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IodGhpcy5jdXJyVG9rZW4pLHNvdXJjZUluZGV4OnRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX1BPU10sc3BhY2VzOmx9KSxzLnB1c2gobyl9d2hpbGUoKyt0aGlzLnBvc2l0aW9uPGkpO2lmKGEpe2lmKG8pby5zcGFjZXMuYWZ0ZXI9YTtlbHNlIGlmKCF0aGlzLm9wdGlvbnMubG9zc3kpe3ZhciBjPXRoaXMudG9rZW5zW25dLGY9dGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbi0xXTtzLnB1c2gobmV3IGNvLmRlZmF1bHQoe3ZhbHVlOiIiLHNvdXJjZTpIdChjW08uRklFTERTLlNUQVJUX0xJTkVdLGNbTy5GSUVMRFMuU1RBUlRfQ09MXSxmW08uRklFTERTLkVORF9MSU5FXSxmW08uRklFTERTLkVORF9DT0xdKSxzb3VyY2VJbmRleDpjW08uRklFTERTLlNUQVJUX1BPU10sc3BhY2VzOntiZWZvcmU6YSxhZnRlcjoiIn19KSl9fXJldHVybiBzfSxlLmNvbnZlcnRXaGl0ZXNwYWNlTm9kZXNUb1NwYWNlPWZ1bmN0aW9uKGksbil7dmFyIHM9dGhpcztuPT09dm9pZCAwJiYobj0hMSk7dmFyIGE9IiIsbz0iIjtpLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGY9cy5sb3NzeVNwYWNlKGMuc3BhY2VzLmJlZm9yZSxuKSxkPXMubG9zc3lTcGFjZShjLnJhd1NwYWNlQmVmb3JlLG4pO2ErPWYrcy5sb3NzeVNwYWNlKGMuc3BhY2VzLmFmdGVyLG4mJmYubGVuZ3RoPT09MCksbys9ZitjLnZhbHVlK3MubG9zc3lTcGFjZShjLnJhd1NwYWNlQWZ0ZXIsbiYmZC5sZW5ndGg9PT0wKX0pLG89PT1hJiYobz12b2lkIDApO3ZhciBsPXtzcGFjZTphLHJhd1NwYWNlOm99O3JldHVybiBsfSxlLmlzTmFtZWRDb21iaW5hdG9yPWZ1bmN0aW9uKGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT10aGlzLnBvc2l0aW9uKSx0aGlzLnRva2Vuc1tpKzBdJiZ0aGlzLnRva2Vuc1tpKzBdW08uRklFTERTLlRZUEVdPT09cS5zbGFzaCYmdGhpcy50b2tlbnNbaSsxXSYmdGhpcy50b2tlbnNbaSsxXVtPLkZJRUxEUy5UWVBFXT09PXEud29yZCYmdGhpcy50b2tlbnNbaSsyXSYmdGhpcy50b2tlbnNbaSsyXVtPLkZJRUxEUy5UWVBFXT09PXEuc2xhc2h9LGUubmFtZWRDb21iaW5hdG9yPWZ1bmN0aW9uKCl7aWYodGhpcy5pc05hbWVkQ29tYmluYXRvcigpKXt2YXIgaT10aGlzLmNvbnRlbnQodGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXSksbj0oMCx1ZS51bmVzYykoaSkudG9Mb3dlckNhc2UoKSxzPXt9O24hPT1pJiYocy52YWx1ZT0iLyIraSsiLyIpO3ZhciBhPW5ldyBwby5kZWZhdWx0KHt2YWx1ZToiLyIrbisiLyIsc291cmNlOkh0KHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX0xJTkVdLHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX0NPTF0sdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisyXVtPLkZJRUxEUy5FTkRfTElORV0sdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisyXVtPLkZJRUxEUy5FTkRfQ09MXSksc291cmNlSW5kZXg6dGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSxyYXdzOnN9KTtyZXR1cm4gdGhpcy5wb3NpdGlvbj10aGlzLnBvc2l0aW9uKzMsYX1lbHNlIHRoaXMudW5leHBlY3RlZCgpfSxlLmNvbWJpbmF0b3I9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKHRoaXMuY29udGVudCgpPT09InwiKXJldHVybiB0aGlzLm5hbWVzcGFjZSgpO3ZhciBuPXRoaXMubG9jYXRlTmV4dE1lYW5pbmdmdWxUb2tlbih0aGlzLnBvc2l0aW9uKTtpZihuPDB8fHRoaXMudG9rZW5zW25dW08uRklFTERTLlRZUEVdPT09cS5jb21tYXx8dGhpcy50b2tlbnNbbl1bTy5GSUVMRFMuVFlQRV09PT1xLmNsb3NlUGFyZW50aGVzaXMpe3ZhciBzPXRoaXMucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2VucyhuKTtpZihzLmxlbmd0aD4wKXt2YXIgYT10aGlzLmN1cnJlbnQubGFzdDtpZihhKXt2YXIgbz10aGlzLmNvbnZlcnRXaGl0ZXNwYWNlTm9kZXNUb1NwYWNlKHMpLGw9by5zcGFjZSxjPW8ucmF3U3BhY2U7YyE9PXZvaWQgMCYmKGEucmF3U3BhY2VBZnRlcis9YyksYS5zcGFjZXMuYWZ0ZXIrPWx9ZWxzZSBzLmZvckVhY2goZnVuY3Rpb24oVCl7cmV0dXJuIGkubmV3Tm9kZShUKX0pfXJldHVybn12YXIgZj10aGlzLmN1cnJUb2tlbixkPXZvaWQgMDtuPnRoaXMucG9zaXRpb24mJihkPXRoaXMucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2VucyhuKSk7dmFyIHA7aWYodGhpcy5pc05hbWVkQ29tYmluYXRvcigpP3A9dGhpcy5uYW1lZENvbWJpbmF0b3IoKTp0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEuY29tYmluYXRvcj8ocD1uZXcgcG8uZGVmYXVsdCh7dmFsdWU6dGhpcy5jb250ZW50KCksc291cmNlOnNyKHRoaXMuY3VyclRva2VuKSxzb3VyY2VJbmRleDp0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdfSksdGhpcy5wb3NpdGlvbisrKTptb1t0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXV18fGR8fHRoaXMudW5leHBlY3RlZCgpLHApe2lmKGQpe3ZhciBoPXRoaXMuY29udmVydFdoaXRlc3BhY2VOb2Rlc1RvU3BhY2UoZCksYj1oLnNwYWNlLHY9aC5yYXdTcGFjZTtwLnNwYWNlcy5iZWZvcmU9YixwLnJhd1NwYWNlQmVmb3JlPXZ9fWVsc2V7dmFyIHk9dGhpcy5jb252ZXJ0V2hpdGVzcGFjZU5vZGVzVG9TcGFjZShkLCEwKSx3PXkuc3BhY2Usaz15LnJhd1NwYWNlO2t8fChrPXcpO3ZhciBTPXt9LEU9e3NwYWNlczp7fX07dy5lbmRzV2l0aCgiICIpJiZrLmVuZHNXaXRoKCIgIik/KFMuYmVmb3JlPXcuc2xpY2UoMCx3Lmxlbmd0aC0xKSxFLnNwYWNlcy5iZWZvcmU9ay5zbGljZSgwLGsubGVuZ3RoLTEpKTp3LnN0YXJ0c1dpdGgoIiAiKSYmay5zdGFydHNXaXRoKCIgIik/KFMuYWZ0ZXI9dy5zbGljZSgxKSxFLnNwYWNlcy5hZnRlcj1rLnNsaWNlKDEpKTpFLnZhbHVlPWsscD1uZXcgcG8uZGVmYXVsdCh7dmFsdWU6IiAiLHNvdXJjZTpnbyhmLHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24tMV0pLHNvdXJjZUluZGV4OmZbTy5GSUVMRFMuU1RBUlRfUE9TXSxzcGFjZXM6UyxyYXdzOkV9KX1yZXR1cm4gdGhpcy5jdXJyVG9rZW4mJnRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5zcGFjZSYmKHAuc3BhY2VzLmFmdGVyPXRoaXMub3B0aW9uYWxTcGFjZSh0aGlzLmNvbnRlbnQoKSksdGhpcy5wb3NpdGlvbisrKSx0aGlzLm5ld05vZGUocCl9LGUuY29tbWE9ZnVuY3Rpb24oKXtpZih0aGlzLnBvc2l0aW9uPT09dGhpcy50b2tlbnMubGVuZ3RoLTEpe3RoaXMucm9vdC50cmFpbGluZ0NvbW1hPSEwLHRoaXMucG9zaXRpb24rKztyZXR1cm59dGhpcy5jdXJyZW50Ll9pbmZlckVuZFBvc2l0aW9uKCk7dmFyIGk9bmV3IGZvLmRlZmF1bHQoe3NvdXJjZTp7c3RhcnQ6d2QodGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXSl9LHNvdXJjZUluZGV4OnRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24rMV1bTy5GSUVMRFMuU1RBUlRfUE9TXX0pO3RoaXMuY3VycmVudC5wYXJlbnQuYXBwZW5kKGkpLHRoaXMuY3VycmVudD1pLHRoaXMucG9zaXRpb24rK30sZS5jb21tZW50PWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyVG9rZW47dGhpcy5uZXdOb2RlKG5ldyBtZC5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IoaSksc291cmNlSW5kZXg6aVtPLkZJRUxEUy5TVEFSVF9QT1NdfSkpLHRoaXMucG9zaXRpb24rK30sZS5lcnJvcj1mdW5jdGlvbihpLG4pe3Rocm93IHRoaXMucm9vdC5lcnJvcihpLG4pfSxlLm1pc3NpbmdCYWNrc2xhc2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcigiRXhwZWN0ZWQgYSBiYWNrc2xhc2ggcHJlY2VkaW5nIHRoZSBzZW1pY29sb24uIix7aW5kZXg6dGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXX0pfSxlLm1pc3NpbmdQYXJlbnRoZXNpcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV4cGVjdGVkKCJvcGVuaW5nIHBhcmVudGhlc2lzIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5taXNzaW5nU3F1YXJlQnJhY2tldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV4cGVjdGVkKCJvcGVuaW5nIHNxdWFyZSBicmFja2V0Iix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS51bmV4cGVjdGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3IoIlVuZXhwZWN0ZWQgJyIrdGhpcy5jb250ZW50KCkrIicuIEVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyB3aXRoIFxcIG1heSBoZWxwLiIsdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSl9LGUudW5leHBlY3RlZFBpcGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcigiVW5leHBlY3RlZCAnfCcuIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5uYW1lc3BhY2U9ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnByZXZUb2tlbiYmdGhpcy5jb250ZW50KHRoaXMucHJldlRva2VuKXx8ITA7aWYodGhpcy5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLndvcmQpcmV0dXJuIHRoaXMucG9zaXRpb24rKyx0aGlzLndvcmQoaSk7aWYodGhpcy5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLmFzdGVyaXNrKXJldHVybiB0aGlzLnBvc2l0aW9uKyssdGhpcy51bml2ZXJzYWwoaSk7dGhpcy51bmV4cGVjdGVkUGlwZSgpfSxlLm5lc3Rpbmc9ZnVuY3Rpb24oKXtpZih0aGlzLm5leHRUb2tlbil7dmFyIGk9dGhpcy5jb250ZW50KHRoaXMubmV4dFRva2VuKTtpZihpPT09InwiKXt0aGlzLnBvc2l0aW9uKys7cmV0dXJufX12YXIgbj10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IE5BLmRlZmF1bHQoe3ZhbHVlOnRoaXMuY29udGVudCgpLHNvdXJjZTpzcihuKSxzb3VyY2VJbmRleDpuW08uRklFTERTLlNUQVJUX1BPU119KSksdGhpcy5wb3NpdGlvbisrfSxlLnBhcmVudGhlc2VzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyZW50Lmxhc3Qsbj0xO2lmKHRoaXMucG9zaXRpb24rKyxpJiZpLnR5cGU9PT1GQS5QU0VVRE8pe3ZhciBzPW5ldyBmby5kZWZhdWx0KHtzb3VyY2U6e3N0YXJ0OndkKHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb25dKX0sc291cmNlSW5kZXg6dGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbl1bTy5GSUVMRFMuU1RBUlRfUE9TXX0pLGE9dGhpcy5jdXJyZW50O2ZvcihpLmFwcGVuZChzKSx0aGlzLmN1cnJlbnQ9czt0aGlzLnBvc2l0aW9uPHRoaXMudG9rZW5zLmxlbmd0aCYmbjspdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmbisrLHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzJiZuLS0sbj90aGlzLnBhcnNlKCk6KHRoaXMuY3VycmVudC5zb3VyY2UuZW5kPXZkKHRoaXMuY3VyclRva2VuKSx0aGlzLmN1cnJlbnQucGFyZW50LnNvdXJjZS5lbmQ9dmQodGhpcy5jdXJyVG9rZW4pLHRoaXMucG9zaXRpb24rKyk7dGhpcy5jdXJyZW50PWF9ZWxzZXtmb3IodmFyIG89dGhpcy5jdXJyVG9rZW4sbD0iKCIsYzt0aGlzLnBvc2l0aW9uPHRoaXMudG9rZW5zLmxlbmd0aCYmbjspdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmbisrLHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzJiZuLS0sYz10aGlzLmN1cnJUb2tlbixsKz10aGlzLnBhcnNlUGFyZW50aGVzaXNUb2tlbih0aGlzLmN1cnJUb2tlbiksdGhpcy5wb3NpdGlvbisrO2k/aS5hcHBlbmRUb1Byb3BlcnR5QW5kRXNjYXBlKCJ2YWx1ZSIsbCxsKTp0aGlzLm5ld05vZGUobmV3IGNvLmRlZmF1bHQoe3ZhbHVlOmwsc291cmNlOkh0KG9bTy5GSUVMRFMuU1RBUlRfTElORV0sb1tPLkZJRUxEUy5TVEFSVF9DT0xdLGNbTy5GSUVMRFMuRU5EX0xJTkVdLGNbTy5GSUVMRFMuRU5EX0NPTF0pLHNvdXJjZUluZGV4Om9bTy5GSUVMRFMuU1RBUlRfUE9TXX0pKX1pZihuKXJldHVybiB0aGlzLmV4cGVjdGVkKCJjbG9zaW5nIHBhcmVudGhlc2lzIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5wc2V1ZG89ZnVuY3Rpb24oKXtmb3IodmFyIGk9dGhpcyxuPSIiLHM9dGhpcy5jdXJyVG9rZW47dGhpcy5jdXJyVG9rZW4mJnRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb2xvbjspbis9dGhpcy5jb250ZW50KCksdGhpcy5wb3NpdGlvbisrO2lmKCF0aGlzLmN1cnJUb2tlbilyZXR1cm4gdGhpcy5leHBlY3RlZChbInBzZXVkby1jbGFzcyIsInBzZXVkby1lbGVtZW50Il0sdGhpcy5wb3NpdGlvbi0xKTtpZih0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEud29yZCl0aGlzLnNwbGl0V29yZCghMSxmdW5jdGlvbihhLG8pe24rPWEsaS5uZXdOb2RlKG5ldyBMQS5kZWZhdWx0KHt2YWx1ZTpuLHNvdXJjZTpnbyhzLGkuY3VyclRva2VuKSxzb3VyY2VJbmRleDpzW08uRklFTERTLlNUQVJUX1BPU119KSksbz4xJiZpLm5leHRUb2tlbiYmaS5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmaS5lcnJvcigiTWlzcGxhY2VkIHBhcmVudGhlc2lzLiIse2luZGV4OmkubmV4dFRva2VuW08uRklFTERTLlNUQVJUX1BPU119KX0pO2Vsc2UgcmV0dXJuIHRoaXMuZXhwZWN0ZWQoWyJwc2V1ZG8tY2xhc3MiLCJwc2V1ZG8tZWxlbWVudCJdLHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX1BPU10pfSxlLnNwYWNlPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb250ZW50KCk7dGhpcy5wb3NpdGlvbj09PTB8fHRoaXMucHJldlRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb21tYXx8dGhpcy5wcmV2VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpc3x8dGhpcy5jdXJyZW50Lm5vZGVzLmV2ZXJ5KGZ1bmN0aW9uKG4pe3JldHVybiBuLnR5cGU9PT0iY29tbWVudCJ9KT8odGhpcy5zcGFjZXM9dGhpcy5vcHRpb25hbFNwYWNlKGkpLHRoaXMucG9zaXRpb24rKyk6dGhpcy5wb3NpdGlvbj09PXRoaXMudG9rZW5zLmxlbmd0aC0xfHx0aGlzLm5leHRUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEuY29tbWF8fHRoaXMubmV4dFRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzPyh0aGlzLmN1cnJlbnQubGFzdC5zcGFjZXMuYWZ0ZXI9dGhpcy5vcHRpb25hbFNwYWNlKGkpLHRoaXMucG9zaXRpb24rKyk6dGhpcy5jb21iaW5hdG9yKCl9LGUuc3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyVG9rZW47dGhpcy5uZXdOb2RlKG5ldyBjby5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IoaSksc291cmNlSW5kZXg6aVtPLkZJRUxEUy5TVEFSVF9QT1NdfSkpLHRoaXMucG9zaXRpb24rK30sZS51bml2ZXJzYWw9ZnVuY3Rpb24oaSl7dmFyIG49dGhpcy5uZXh0VG9rZW47aWYobiYmdGhpcy5jb250ZW50KG4pPT09InwiKXJldHVybiB0aGlzLnBvc2l0aW9uKyssdGhpcy5uYW1lc3BhY2UoKTt2YXIgcz10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IE1BLmRlZmF1bHQoe3ZhbHVlOnRoaXMuY29udGVudCgpLHNvdXJjZTpzcihzKSxzb3VyY2VJbmRleDpzW08uRklFTERTLlNUQVJUX1BPU119KSxpKSx0aGlzLnBvc2l0aW9uKyt9LGUuc3BsaXRXb3JkPWZ1bmN0aW9uKGksbil7Zm9yKHZhciBzPXRoaXMsYT10aGlzLm5leHRUb2tlbixvPXRoaXMuY29udGVudCgpO2EmJn5bcS5kb2xsYXIscS5jYXJldCxxLmVxdWFscyxxLndvcmRdLmluZGV4T2YoYVtPLkZJRUxEUy5UWVBFXSk7KXt0aGlzLnBvc2l0aW9uKys7dmFyIGw9dGhpcy5jb250ZW50KCk7aWYobys9bCxsLmxhc3RJbmRleE9mKCJcXCIpPT09bC5sZW5ndGgtMSl7dmFyIGM9dGhpcy5uZXh0VG9rZW47YyYmY1tPLkZJRUxEUy5UWVBFXT09PXEuc3BhY2UmJihvKz10aGlzLnJlcXVpcmVkU3BhY2UodGhpcy5jb250ZW50KGMpKSx0aGlzLnBvc2l0aW9uKyspfWE9dGhpcy5uZXh0VG9rZW59dmFyIGY9eW8obywiLiIpLmZpbHRlcihmdW5jdGlvbihiKXt2YXIgdj1vW2ItMV09PT0iXFwiLHk9L15cZCtcLlxkKyUkLy50ZXN0KG8pO3JldHVybiF2JiYheX0pLGQ9eW8obywiIyIpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gb1tiLTFdIT09IlxcIn0pLHA9eW8obywiI3siKTtwLmxlbmd0aCYmKGQ9ZC5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIX5wLmluZGV4T2YoYil9KSk7dmFyIGg9KDAsQkEuZGVmYXVsdCkoVUEoWzBdLmNvbmNhdChmLGQpKSk7aC5mb3JFYWNoKGZ1bmN0aW9uKGIsdil7dmFyIHk9aFt2KzFdfHxvLmxlbmd0aCx3PW8uc2xpY2UoYix5KTtpZih2PT09MCYmbilyZXR1cm4gbi5jYWxsKHMsdyxoLmxlbmd0aCk7dmFyIGssUz1zLmN1cnJUb2tlbixFPVNbTy5GSUVMRFMuU1RBUlRfUE9TXStoW3ZdLFQ9SHQoU1sxXSxTWzJdK2IsU1szXSxTWzJdKyh5LTEpKTtpZih+Zi5pbmRleE9mKGIpKXt2YXIgQj17dmFsdWU6dy5zbGljZSgxKSxzb3VyY2U6VCxzb3VyY2VJbmRleDpFfTtrPW5ldyBEQS5kZWZhdWx0KGFyKEIsInZhbHVlIikpfWVsc2UgaWYofmQuaW5kZXhPZihiKSl7dmFyIE49e3ZhbHVlOncuc2xpY2UoMSksc291cmNlOlQsc291cmNlSW5kZXg6RX07az1uZXcgcUEuZGVmYXVsdChhcihOLCJ2YWx1ZSIpKX1lbHNle3ZhciBSPXt2YWx1ZTp3LHNvdXJjZTpULHNvdXJjZUluZGV4OkV9O2FyKFIsInZhbHVlIiksaz1uZXcgJEEuZGVmYXVsdChSKX1zLm5ld05vZGUoayxpKSxpPW51bGx9KSx0aGlzLnBvc2l0aW9uKyt9LGUud29yZD1mdW5jdGlvbihpKXt2YXIgbj10aGlzLm5leHRUb2tlbjtyZXR1cm4gbiYmdGhpcy5jb250ZW50KG4pPT09InwiPyh0aGlzLnBvc2l0aW9uKyssdGhpcy5uYW1lc3BhY2UoKSk6dGhpcy5zcGxpdFdvcmQoaSl9LGUubG9vcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5wb3NpdGlvbjx0aGlzLnRva2Vucy5sZW5ndGg7KXRoaXMucGFyc2UoITApO3JldHVybiB0aGlzLmN1cnJlbnQuX2luZmVyRW5kUG9zaXRpb24oKSx0aGlzLnJvb3R9LGUucGFyc2U9ZnVuY3Rpb24oaSl7c3dpdGNoKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdKXtjYXNlIHEuc3BhY2U6dGhpcy5zcGFjZSgpO2JyZWFrO2Nhc2UgcS5jb21tZW50OnRoaXMuY29tbWVudCgpO2JyZWFrO2Nhc2UgcS5vcGVuUGFyZW50aGVzaXM6dGhpcy5wYXJlbnRoZXNlcygpO2JyZWFrO2Nhc2UgcS5jbG9zZVBhcmVudGhlc2lzOmkmJnRoaXMubWlzc2luZ1BhcmVudGhlc2lzKCk7YnJlYWs7Y2FzZSBxLm9wZW5TcXVhcmU6dGhpcy5hdHRyaWJ1dGUoKTticmVhaztjYXNlIHEuZG9sbGFyOmNhc2UgcS5jYXJldDpjYXNlIHEuZXF1YWxzOmNhc2UgcS53b3JkOnRoaXMud29yZCgpO2JyZWFrO2Nhc2UgcS5jb2xvbjp0aGlzLnBzZXVkbygpO2JyZWFrO2Nhc2UgcS5jb21tYTp0aGlzLmNvbW1hKCk7YnJlYWs7Y2FzZSBxLmFzdGVyaXNrOnRoaXMudW5pdmVyc2FsKCk7YnJlYWs7Y2FzZSBxLmFtcGVyc2FuZDp0aGlzLm5lc3RpbmcoKTticmVhaztjYXNlIHEuc2xhc2g6Y2FzZSBxLmNvbWJpbmF0b3I6dGhpcy5jb21iaW5hdG9yKCk7YnJlYWs7Y2FzZSBxLnN0cjp0aGlzLnN0cmluZygpO2JyZWFrO2Nhc2UgcS5jbG9zZVNxdWFyZTp0aGlzLm1pc3NpbmdTcXVhcmVCcmFja2V0KCk7Y2FzZSBxLnNlbWljb2xvbjp0aGlzLm1pc3NpbmdCYWNrc2xhc2goKTtkZWZhdWx0OnRoaXMudW5leHBlY3RlZCgpfX0sZS5leHBlY3RlZD1mdW5jdGlvbihpLG4scyl7aWYoQXJyYXkuaXNBcnJheShpKSl7dmFyIGE9aS5wb3AoKTtpPWkuam9pbigiLCAiKSsiIG9yICIrYX12YXIgbz0vXlthZWlvdV0vLnRlc3QoaVswXSk/ImFuIjoiYSI7cmV0dXJuIHM/dGhpcy5lcnJvcigiRXhwZWN0ZWQgIitvKyIgIitpKycsIGZvdW5kICInK3MrJyIgaW5zdGVhZC4nLHtpbmRleDpufSk6dGhpcy5lcnJvcigiRXhwZWN0ZWQgIitvKyIgIitpKyIuIix7aW5kZXg6bn0pfSxlLnJlcXVpcmVkU3BhY2U9ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMub3B0aW9ucy5sb3NzeT8iICI6aX0sZS5vcHRpb25hbFNwYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLm9wdGlvbnMubG9zc3k/IiI6aX0sZS5sb3NzeVNwYWNlPWZ1bmN0aW9uKGksbil7cmV0dXJuIHRoaXMub3B0aW9ucy5sb3NzeT9uPyIgIjoiIjppfSxlLnBhcnNlUGFyZW50aGVzaXNUb2tlbj1mdW5jdGlvbihpKXt2YXIgbj10aGlzLmNvbnRlbnQoaSk7cmV0dXJuIGlbTy5GSUVMRFMuVFlQRV09PT1xLnNwYWNlP3RoaXMucmVxdWlyZWRTcGFjZShuKTpufSxlLm5ld05vZGU9ZnVuY3Rpb24oaSxuKXtyZXR1cm4gbiYmKC9eICskLy50ZXN0KG4pJiYodGhpcy5vcHRpb25zLmxvc3N5fHwodGhpcy5zcGFjZXM9KHRoaXMuc3BhY2VzfHwiIikrbiksbj0hMCksaS5uYW1lc3BhY2U9bixhcihpLCJuYW1lc3BhY2UiKSksdGhpcy5zcGFjZXMmJihpLnNwYWNlcy5iZWZvcmU9dGhpcy5zcGFjZXMsdGhpcy5zcGFjZXM9IiIpLHRoaXMuY3VycmVudC5hcHBlbmQoaSl9LGUuY29udGVudD1mdW5jdGlvbihpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9dGhpcy5jdXJyVG9rZW4pLHRoaXMuY3NzLnNsaWNlKGlbTy5GSUVMRFMuU1RBUlRfUE9TXSxpW08uRklFTERTLkVORF9QT1NdKX0sZS5sb2NhdGVOZXh0TWVhbmluZ2Z1bFRva2VuPWZ1bmN0aW9uKGkpe2k9PT12b2lkIDAmJihpPXRoaXMucG9zaXRpb24rMSk7Zm9yKHZhciBuPWk7bjx0aGlzLnRva2Vucy5sZW5ndGg7KWlmKHpBW3RoaXMudG9rZW5zW25dW08uRklFTERTLlRZUEVdXSl7bisrO2NvbnRpbnVlfWVsc2UgcmV0dXJuIG47cmV0dXJuLTF9LGpBKHIsW3trZXk6ImN1cnJUb2tlbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb25dfX0se2tleToibmV4dFRva2VuIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXX19LHtrZXk6InByZXZUb2tlbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24tMV19fV0pLHJ9KCk7a2kuZGVmYXVsdD1WQTt4ZC5leHBvcnRzPWtpLmRlZmF1bHR9KTt2YXIgQWQ9eCgoU2ksU2QpPT57dSgpOyJ1c2Ugc3RyaWN0IjtTaS5fX2VzTW9kdWxlPSEwO1NpLmRlZmF1bHQ9dm9pZCAwO3ZhciBIQT1XQShrZCgpKTtmdW5jdGlvbiBXQShyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19dmFyIEdBPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LGkpe3RoaXMuZnVuYz10fHxmdW5jdGlvbigpe30sdGhpcy5mdW5jUmVzPW51bGwsdGhpcy5vcHRpb25zPWl9dmFyIGU9ci5wcm90b3R5cGU7cmV0dXJuIGUuX3Nob3VsZFVwZGF0ZVNlbGVjdG9yPWZ1bmN0aW9uKGksbil7bj09PXZvaWQgMCYmKG49e30pO3ZhciBzPU9iamVjdC5hc3NpZ24oe30sdGhpcy5vcHRpb25zLG4pO3JldHVybiBzLnVwZGF0ZVNlbGVjdG9yPT09ITE/ITE6dHlwZW9mIGkhPSJzdHJpbmcifSxlLl9pc0xvc3N5PWZ1bmN0aW9uKGkpe2k9PT12b2lkIDAmJihpPXt9KTt2YXIgbj1PYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucyxpKTtyZXR1cm4gbi5sb3NzbGVzcz09PSExfSxlLl9yb290PWZ1bmN0aW9uKGksbil7bj09PXZvaWQgMCYmKG49e30pO3ZhciBzPW5ldyBIQS5kZWZhdWx0KGksdGhpcy5fcGFyc2VPcHRpb25zKG4pKTtyZXR1cm4gcy5yb290fSxlLl9wYXJzZU9wdGlvbnM9ZnVuY3Rpb24oaSl7cmV0dXJue2xvc3N5OnRoaXMuX2lzTG9zc3koaSl9fSxlLl9ydW49ZnVuY3Rpb24oaSxuKXt2YXIgcz10aGlzO3JldHVybiBuPT09dm9pZCAwJiYobj17fSksbmV3IFByb21pc2UoZnVuY3Rpb24oYSxvKXt0cnl7dmFyIGw9cy5fcm9vdChpLG4pO1Byb21pc2UucmVzb2x2ZShzLmZ1bmMobCkpLnRoZW4oZnVuY3Rpb24oYyl7dmFyIGY9dm9pZCAwO3JldHVybiBzLl9zaG91bGRVcGRhdGVTZWxlY3RvcihpLG4pJiYoZj1sLnRvU3RyaW5nKCksaS5zZWxlY3Rvcj1mKSx7dHJhbnNmb3JtOmMscm9vdDpsLHN0cmluZzpmfX0pLnRoZW4oYSxvKX1jYXRjaChjKXtvKGMpO3JldHVybn19KX0sZS5fcnVuU3luYz1mdW5jdGlvbihpLG4pe249PT12b2lkIDAmJihuPXt9KTt2YXIgcz10aGlzLl9yb290KGksbiksYT10aGlzLmZ1bmMocyk7aWYoYSYmdHlwZW9mIGEudGhlbj09ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdG9yIHByb2Nlc3NvciByZXR1cm5lZCBhIHByb21pc2UgdG8gYSBzeW5jaHJvbm91cyBjYWxsLiIpO3ZhciBvPXZvaWQgMDtyZXR1cm4gbi51cGRhdGVTZWxlY3RvciYmdHlwZW9mIGkhPSJzdHJpbmciJiYobz1zLnRvU3RyaW5nKCksaS5zZWxlY3Rvcj1vKSx7dHJhbnNmb3JtOmEscm9vdDpzLHN0cmluZzpvfX0sZS5hc3Q9ZnVuY3Rpb24oaSxuKXtyZXR1cm4gdGhpcy5fcnVuKGksbikudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5yb290fSl9LGUuYXN0U3luYz1mdW5jdGlvbihpLG4pe3JldHVybiB0aGlzLl9ydW5TeW5jKGksbikucm9vdH0sZS50cmFuc2Zvcm09ZnVuY3Rpb24oaSxuKXtyZXR1cm4gdGhpcy5fcnVuKGksbikudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy50cmFuc2Zvcm19KX0sZS50cmFuc2Zvcm1TeW5jPWZ1bmN0aW9uKGksbil7cmV0dXJuIHRoaXMuX3J1blN5bmMoaSxuKS50cmFuc2Zvcm19LGUucHJvY2Vzcz1mdW5jdGlvbihpLG4pe3JldHVybiB0aGlzLl9ydW4oaSxuKS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLnN0cmluZ3x8cy5yb290LnRvU3RyaW5nKCl9KX0sZS5wcm9jZXNzU3luYz1mdW5jdGlvbihpLG4pe3ZhciBzPXRoaXMuX3J1blN5bmMoaSxuKTtyZXR1cm4gcy5zdHJpbmd8fHMucm9vdC50b1N0cmluZygpfSxyfSgpO1NpLmRlZmF1bHQ9R0E7U2QuZXhwb3J0cz1TaS5kZWZhdWx0fSk7dmFyIENkPXgobmU9Pnt1KCk7InVzZSBzdHJpY3QiO25lLl9fZXNNb2R1bGU9ITA7bmUudW5pdmVyc2FsPW5lLnRhZz1uZS5zdHJpbmc9bmUuc2VsZWN0b3I9bmUucm9vdD1uZS5wc2V1ZG89bmUubmVzdGluZz1uZS5pZD1uZS5jb21tZW50PW5lLmNvbWJpbmF0b3I9bmUuY2xhc3NOYW1lPW5lLmF0dHJpYnV0ZT12b2lkIDA7dmFyIFFBPXplKHRvKCkpLFlBPXplKE5hKCkpLEtBPXplKHNvKCkpLFhBPXplKEZhKCkpLFpBPXplKHphKCkpLEpBPXplKG9vKCkpLGVDPXplKFlhKCkpLHRDPXplKERhKCkpLHJDPXplKCRhKCkpLGlDPXplKEdhKCkpLG5DPXplKEhhKCkpLHNDPXplKGlvKCkpO2Z1bmN0aW9uIHplKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX12YXIgYUM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBRQS5kZWZhdWx0KGUpfTtuZS5hdHRyaWJ1dGU9YUM7dmFyIG9DPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgWUEuZGVmYXVsdChlKX07bmUuY2xhc3NOYW1lPW9DO3ZhciBsQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IEtBLmRlZmF1bHQoZSl9O25lLmNvbWJpbmF0b3I9bEM7dmFyIHVDPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgWEEuZGVmYXVsdChlKX07bmUuY29tbWVudD11Qzt2YXIgZkM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBaQS5kZWZhdWx0KGUpfTtuZS5pZD1mQzt2YXIgY0M9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBKQS5kZWZhdWx0KGUpfTtuZS5uZXN0aW5nPWNDO3ZhciBwQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGVDLmRlZmF1bHQoZSl9O25lLnBzZXVkbz1wQzt2YXIgZEM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0Qy5kZWZhdWx0KGUpfTtuZS5yb290PWRDO3ZhciBoQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHJDLmRlZmF1bHQoZSl9O25lLnNlbGVjdG9yPWhDO3ZhciBtQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGlDLmRlZmF1bHQoZSl9O25lLnN0cmluZz1tQzt2YXIgZ0M9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBuQy5kZWZhdWx0KGUpfTtuZS50YWc9Z0M7dmFyIHlDPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgc0MuZGVmYXVsdChlKX07bmUudW5pdmVyc2FsPXlDfSk7dmFyIFRkPXgoWj0+e3UoKTsidXNlIHN0cmljdCI7Wi5fX2VzTW9kdWxlPSEwO1ouaXNDb21tZW50PVouaXNDb21iaW5hdG9yPVouaXNDbGFzc05hbWU9Wi5pc0F0dHJpYnV0ZT12b2lkIDA7Wi5pc0NvbnRhaW5lcj1UQztaLmlzSWRlbnRpZmllcj12b2lkIDA7Wi5pc05hbWVzcGFjZT1SQztaLmlzTmVzdGluZz12b2lkIDA7Wi5pc05vZGU9Ym87Wi5pc1BzZXVkbz12b2lkIDA7Wi5pc1BzZXVkb0NsYXNzPU9DO1ouaXNQc2V1ZG9FbGVtZW50PU9kO1ouaXNVbml2ZXJzYWw9Wi5pc1RhZz1aLmlzU3RyaW5nPVouaXNTZWxlY3Rvcj1aLmlzUm9vdD12b2lkIDA7dmFyIGZlPVNlKCksT2UsYkM9KE9lPXt9LE9lW2ZlLkFUVFJJQlVURV09ITAsT2VbZmUuQ0xBU1NdPSEwLE9lW2ZlLkNPTUJJTkFUT1JdPSEwLE9lW2ZlLkNPTU1FTlRdPSEwLE9lW2ZlLklEXT0hMCxPZVtmZS5ORVNUSU5HXT0hMCxPZVtmZS5QU0VVRE9dPSEwLE9lW2ZlLlJPT1RdPSEwLE9lW2ZlLlNFTEVDVE9SXT0hMCxPZVtmZS5TVFJJTkddPSEwLE9lW2ZlLlRBR109ITAsT2VbZmUuVU5JVkVSU0FMXT0hMCxPZSk7ZnVuY3Rpb24gYm8ocil7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmYkNbci50eXBlXX1mdW5jdGlvbiBVZShyLGUpe3JldHVybiBibyhlKSYmZS50eXBlPT09cn12YXIgX2Q9VWUuYmluZChudWxsLGZlLkFUVFJJQlVURSk7Wi5pc0F0dHJpYnV0ZT1fZDt2YXIgd0M9VWUuYmluZChudWxsLGZlLkNMQVNTKTtaLmlzQ2xhc3NOYW1lPXdDO3ZhciB2Qz1VZS5iaW5kKG51bGwsZmUuQ09NQklOQVRPUik7Wi5pc0NvbWJpbmF0b3I9dkM7dmFyIHhDPVVlLmJpbmQobnVsbCxmZS5DT01NRU5UKTtaLmlzQ29tbWVudD14Qzt2YXIga0M9VWUuYmluZChudWxsLGZlLklEKTtaLmlzSWRlbnRpZmllcj1rQzt2YXIgU0M9VWUuYmluZChudWxsLGZlLk5FU1RJTkcpO1ouaXNOZXN0aW5nPVNDO3ZhciB3bz1VZS5iaW5kKG51bGwsZmUuUFNFVURPKTtaLmlzUHNldWRvPXdvO3ZhciBBQz1VZS5iaW5kKG51bGwsZmUuUk9PVCk7Wi5pc1Jvb3Q9QUM7dmFyIENDPVVlLmJpbmQobnVsbCxmZS5TRUxFQ1RPUik7Wi5pc1NlbGVjdG9yPUNDO3ZhciBfQz1VZS5iaW5kKG51bGwsZmUuU1RSSU5HKTtaLmlzU3RyaW5nPV9DO3ZhciBFZD1VZS5iaW5kKG51bGwsZmUuVEFHKTtaLmlzVGFnPUVkO3ZhciBFQz1VZS5iaW5kKG51bGwsZmUuVU5JVkVSU0FMKTtaLmlzVW5pdmVyc2FsPUVDO2Z1bmN0aW9uIE9kKHIpe3JldHVybiB3byhyKSYmci52YWx1ZSYmKHIudmFsdWUuc3RhcnRzV2l0aCgiOjoiKXx8ci52YWx1ZS50b0xvd2VyQ2FzZSgpPT09IjpiZWZvcmUifHxyLnZhbHVlLnRvTG93ZXJDYXNlKCk9PT0iOmFmdGVyInx8ci52YWx1ZS50b0xvd2VyQ2FzZSgpPT09IjpmaXJzdC1sZXR0ZXIifHxyLnZhbHVlLnRvTG93ZXJDYXNlKCk9PT0iOmZpcnN0LWxpbmUiKX1mdW5jdGlvbiBPQyhyKXtyZXR1cm4gd28ocikmJiFPZChyKX1mdW5jdGlvbiBUQyhyKXtyZXR1cm4hIShibyhyKSYmci53YWxrKX1mdW5jdGlvbiBSQyhyKXtyZXR1cm4gX2Qocil8fEVkKHIpfX0pO3ZhciBSZD14KEtlPT57dSgpOyJ1c2Ugc3RyaWN0IjtLZS5fX2VzTW9kdWxlPSEwO3ZhciB2bz1TZSgpO09iamVjdC5rZXlzKHZvKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3I9PT0iZGVmYXVsdCJ8fHI9PT0iX19lc01vZHVsZSJ8fHIgaW4gS2UmJktlW3JdPT09dm9bcl18fChLZVtyXT12b1tyXSl9KTt2YXIgeG89Q2QoKTtPYmplY3Qua2V5cyh4bykuZm9yRWFjaChmdW5jdGlvbihyKXtyPT09ImRlZmF1bHQifHxyPT09Il9fZXNNb2R1bGUifHxyIGluIEtlJiZLZVtyXT09PXhvW3JdfHwoS2Vbcl09eG9bcl0pfSk7dmFyIGtvPVRkKCk7T2JqZWN0LmtleXMoa28pLmZvckVhY2goZnVuY3Rpb24ocil7cj09PSJkZWZhdWx0Inx8cj09PSJfX2VzTW9kdWxlInx8ciBpbiBLZSYmS2Vbcl09PT1rb1tyXXx8KEtlW3JdPWtvW3JdKX0pfSk7dmFyIGl0PXgoKEFpLElkKT0+e3UoKTsidXNlIHN0cmljdCI7QWkuX19lc01vZHVsZT0hMDtBaS5kZWZhdWx0PXZvaWQgMDt2YXIgUEM9cUMoQWQoKSksSUM9REMoUmQoKSk7ZnVuY3Rpb24gUGQocil7aWYodHlwZW9mIFdlYWtNYXAhPSJmdW5jdGlvbiIpcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcDtyZXR1cm4oUGQ9ZnVuY3Rpb24obil7cmV0dXJuIG4/dDplfSkocil9ZnVuY3Rpb24gREMocixlKXtpZighZSYmciYmci5fX2VzTW9kdWxlKXJldHVybiByO2lmKHI9PT1udWxsfHx0eXBlb2YgciE9Im9iamVjdCImJnR5cGVvZiByIT0iZnVuY3Rpb24iKXJldHVybntkZWZhdWx0OnJ9O3ZhciB0PVBkKGUpO2lmKHQmJnQuaGFzKHIpKXJldHVybiB0LmdldChyKTt2YXIgaT17fSxuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIHMgaW4gcilpZihzIT09ImRlZmF1bHQiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixzKSl7dmFyIGE9bj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIscyk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkoaSxzLGEpOmlbc109cltzXX1yZXR1cm4gaS5kZWZhdWx0PXIsdCYmdC5zZXQocixpKSxpfWZ1bmN0aW9uIHFDKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX12YXIgU289ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQQy5kZWZhdWx0KGUpfTtPYmplY3QuYXNzaWduKFNvLElDKTtkZWxldGUgU28uX19lc01vZHVsZTt2YXIgJEM9U287QWkuZGVmYXVsdD0kQztJZC5leHBvcnRzPUFpLmRlZmF1bHR9KTtmdW5jdGlvbiBtdChyKXtyZXR1cm5bImZvbnRTaXplIiwib3V0bGluZSJdLmluY2x1ZGVzKHIpP2U9Pih0eXBlb2YgZT09ImZ1bmN0aW9uIiYmKGU9ZSh7fSkpLEFycmF5LmlzQXJyYXkoZSkmJihlPWVbMF0pLGUpOnI9PT0iZm9udEZhbWlseSI/ZT0+e3R5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHt9KSk7bGV0IHQ9QXJyYXkuaXNBcnJheShlKSYma2UoZVsxXSk/ZVswXTplO3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Quam9pbigiLCAiKTp0fTpbImJveFNoYWRvdyIsInRyYW5zaXRpb25Qcm9wZXJ0eSIsInRyYW5zaXRpb25EdXJhdGlvbiIsInRyYW5zaXRpb25EZWxheSIsInRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiY3Vyc29yIiwiYW5pbWF0aW9uIl0uaW5jbHVkZXMocik/ZT0+KHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHt9KSksQXJyYXkuaXNBcnJheShlKSYmKGU9ZS5qb2luKCIsICIpKSxlKTpbImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJncmlkVGVtcGxhdGVSb3dzIiwib2JqZWN0UG9zaXRpb24iXS5pbmNsdWRlcyhyKT9lPT4odHlwZW9mIGU9PSJmdW5jdGlvbiImJihlPWUoe30pKSx0eXBlb2YgZT09InN0cmluZyImJihlPWVlLmxpc3QuY29tbWEoZSkuam9pbigiICIpKSxlKTooZSx0PXt9KT0+KHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHQpKSxlKX12YXIgQ2k9UCgoKT0+e3UoKTtPdCgpO0t0KCl9KTt2YXIgQmQ9eCgoTUksT28pPT57dSgpO3ZhcntBdFJ1bGU6TEMsUnVsZTpEZH09JGUoKSxxZD1pdCgpO2Z1bmN0aW9uIEFvKHIsZSl7bGV0IHQ7dHJ5e3FkKGk9Pnt0PWl9KS5wcm9jZXNzU3luYyhyKX1jYXRjaChpKXt0aHJvdyByLmluY2x1ZGVzKCI6Iik/ZT9lLmVycm9yKCJNaXNzZWQgc2VtaWNvbG9uIik6aTplP2UuZXJyb3IoaS5tZXNzYWdlKTppfXJldHVybiB0LmF0KDApfWZ1bmN0aW9uICRkKHIsZSl7bGV0IHQ9ITE7cmV0dXJuIHIuZWFjaChpPT57aWYoaS50eXBlPT09Im5lc3RpbmciKXtsZXQgbj1lLmNsb25lKHt9KTtpLnZhbHVlIT09IiYiP2kucmVwbGFjZVdpdGgoQW8oaS52YWx1ZS5yZXBsYWNlKCImIixuLnRvU3RyaW5nKCkpKSk6aS5yZXBsYWNlV2l0aChuKSx0PSEwfWVsc2Uibm9kZXMiaW4gaSYmaS5ub2RlcyYmJGQoaSxlKSYmKHQ9ITApfSksdH1mdW5jdGlvbiBMZChyLGUpe2xldCB0PVtdO3JldHVybiByLnNlbGVjdG9ycy5mb3JFYWNoKGk9PntsZXQgbj1BbyhpLHIpO2Uuc2VsZWN0b3JzLmZvckVhY2gocz0+e2lmKCFzKXJldHVybjtsZXQgYT1BbyhzLGUpOyRkKGEsbil8fChhLnByZXBlbmQocWQuY29tYmluYXRvcih7dmFsdWU6IiAifSkpLGEucHJlcGVuZChuLmNsb25lKHt9KSkpLHQucHVzaChhLnRvU3RyaW5nKCkpfSl9KSx0fWZ1bmN0aW9uIEhuKHIsZSl7bGV0IHQ9ci5wcmV2KCk7Zm9yKGUuYWZ0ZXIocik7dCYmdC50eXBlPT09ImNvbW1lbnQiOyl7bGV0IGk9dC5wcmV2KCk7ZS5hZnRlcih0KSx0PWl9cmV0dXJuIHJ9ZnVuY3Rpb24gTUMocil7cmV0dXJuIGZ1bmN0aW9uIGUodCxpLG4scz1uKXtsZXQgYT1bXTtpZihpLmVhY2gobz0+e28udHlwZT09PSJydWxlIiYmbj9zJiYoby5zZWxlY3RvcnM9TGQodCxvKSk6by50eXBlPT09ImF0cnVsZSImJm8ubm9kZXM/cltvLm5hbWVdP2UodCxvLHMpOmlbX29dIT09ITEmJmEucHVzaChvKTphLnB1c2gobyl9KSxuJiZhLmxlbmd0aCl7bGV0IG89dC5jbG9uZSh7bm9kZXM6W119KTtmb3IobGV0IGwgb2YgYSlvLmFwcGVuZChsKTtpLnByZXBlbmQobyl9fX1mdW5jdGlvbiBDbyhyLGUsdCl7bGV0IGk9bmV3IERkKHtub2RlczpbXSxzZWxlY3RvcjpyfSk7cmV0dXJuIGkuYXBwZW5kKGUpLHQuYWZ0ZXIoaSksaX1mdW5jdGlvbiBNZChyLGUpe2xldCB0PXt9O2ZvcihsZXQgaSBvZiByKXRbaV09ITA7aWYoZSlmb3IobGV0IGkgb2YgZSl0W2kucmVwbGFjZSgvXkAvLCIiKV09ITA7cmV0dXJuIHR9ZnVuY3Rpb24gTkMocil7cj1yLnRyaW0oKTtsZXQgZT1yLm1hdGNoKC9eXCgoLiopXCkkLyk7aWYoIWUpcmV0dXJue3NlbGVjdG9yOnIsdHlwZToiYmFzaWMifTtsZXQgdD1lWzFdLm1hdGNoKC9eKHdpdGgoPzpvdXQpPyk6KC4rKSQvKTtpZih0KXtsZXQgaT10WzFdPT09IndpdGgiLG49T2JqZWN0LmZyb21FbnRyaWVzKHRbMl0udHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoYT0+W2EsITBdKSk7aWYoaSYmbi5hbGwpcmV0dXJue3R5cGU6Im5vb3AifTtsZXQgcz1hPT4hIW5bYV07cmV0dXJuIG4uYWxsP3M9KCk9PiEwOmkmJihzPWE9PmE9PT0iYWxsIj8hMTohblthXSkse2VzY2FwZXM6cyx0eXBlOiJ3aXRocnVsZXMifX1yZXR1cm57dHlwZToidW5rbm93biJ9fWZ1bmN0aW9uIEJDKHIpe2xldCBlPVtdLHQ9ci5wYXJlbnQ7Zm9yKDt0JiZ0IGluc3RhbmNlb2YgTEM7KWUucHVzaCh0KSx0PXQucGFyZW50O3JldHVybiBlfWZ1bmN0aW9uIEZDKHIpe2xldCBlPXJbTmRdO2lmKCFlKXIuYWZ0ZXIoci5ub2Rlcyk7ZWxzZXtsZXQgdD1yLm5vZGVzLGksbj0tMSxzLGEsbyxsPUJDKHIpO2lmKGwuZm9yRWFjaCgoYyxmKT0+e2lmKGUoYy5uYW1lKSlpPWMsbj1mLGE9bztlbHNle2xldCBkPW87bz1jLmNsb25lKHtub2RlczpbXX0pLGQmJm8uYXBwZW5kKGQpLHM9c3x8b319KSxpP2E/KHMuYXBwZW5kKHQpLGkuYWZ0ZXIoYSkpOmkuYWZ0ZXIodCk6ci5hZnRlcih0KSxyLm5leHQoKSYmaSl7bGV0IGM7bC5zbGljZSgwLG4rMSkuZm9yRWFjaCgoZixkLHApPT57bGV0IGg9YztjPWYuY2xvbmUoe25vZGVzOltdfSksaCYmYy5hcHBlbmQoaCk7bGV0IGI9W10seT0ocFtkLTFdfHxyKS5uZXh0KCk7Zm9yKDt5OyliLnB1c2goeSkseT15Lm5leHQoKTtjLmFwcGVuZChiKX0pLGMmJihhfHx0W3QubGVuZ3RoLTFdKS5hZnRlcihjKX19ci5yZW1vdmUoKX12YXIgX289U3ltYm9sKCJyb290UnVsZU1lcmdlU2VsIiksTmQ9U3ltYm9sKCJyb290UnVsZUVzY2FwZXMiKTtmdW5jdGlvbiBqQyhyKXtsZXR7cGFyYW1zOmV9PXIse2VzY2FwZXM6dCxzZWxlY3RvcjppLHR5cGU6bn09TkMoZSk7aWYobj09PSJ1bmtub3duIil0aHJvdyByLmVycm9yKGBVbmtub3duIEAke3IubmFtZX0gcGFyYW1ldGVyICR7SlNPTi5zdHJpbmdpZnkoZSl9YCk7aWYobj09PSJiYXNpYyImJmkpe2xldCBzPW5ldyBEZCh7bm9kZXM6ci5ub2RlcyxzZWxlY3RvcjppfSk7ci5yZW1vdmVBbGwoKSxyLmFwcGVuZChzKX1yW05kXT10LHJbX29dPXQ/IXQoImFsbCIpOm49PT0ibm9vcCJ9dmFyIEVvPVN5bWJvbCgiaGFzUm9vdFJ1bGUiKTtPby5leHBvcnRzPShyPXt9KT0+e2xldCBlPU1kKFsibWVkaWEiLCJzdXBwb3J0cyIsImxheWVyIiwiY29udGFpbmVyIiwic3RhcnRpbmctc3R5bGUiXSxyLmJ1YmJsZSksdD1NQyhlKSxpPU1kKFsiZG9jdW1lbnQiLCJmb250LWZhY2UiLCJrZXlmcmFtZXMiLCItd2Via2l0LWtleWZyYW1lcyIsIi1tb3ota2V5ZnJhbWVzIl0sci51bndyYXApLG49KHIucm9vdFJ1bGVOYW1lfHwiYXQtcm9vdCIpLnJlcGxhY2UoL15ALywiIikscz1yLnByZXNlcnZlRW1wdHk7cmV0dXJue09uY2UoYSl7YS53YWxrQXRSdWxlcyhuLG89PntqQyhvKSxhW0VvXT0hMH0pfSxwb3N0Y3NzUGx1Z2luOiJwb3N0Y3NzLW5lc3RlZCIsUm9vdEV4aXQoYSl7YVtFb10mJihhLndhbGtBdFJ1bGVzKG4sRkMpLGFbRW9dPSExKX0sUnVsZShhKXtsZXQgbz0hMSxsPWEsYz0hMSxmPVtdO2EuZWFjaChkPT57ZC50eXBlPT09InJ1bGUiPyhmLmxlbmd0aCYmKGw9Q28oYS5zZWxlY3RvcixmLGwpLGY9W10pLGM9ITAsbz0hMCxkLnNlbGVjdG9ycz1MZChhLGQpLGw9SG4oZCxsKSk6ZC50eXBlPT09ImF0cnVsZSI/KGYubGVuZ3RoJiYobD1DbyhhLnNlbGVjdG9yLGYsbCksZj1bXSksZC5uYW1lPT09bj8obz0hMCx0KGEsZCwhMCxkW19vXSksbD1IbihkLGwpKTplW2QubmFtZV0/KGM9ITAsbz0hMCx0KGEsZCwhMCksbD1IbihkLGwpKTppW2QubmFtZV0/KGM9ITAsbz0hMCx0KGEsZCwhMSksbD1IbihkLGwpKTpjJiZmLnB1c2goZCkpOmQudHlwZT09PSJkZWNsIiYmYyYmZi5wdXNoKGQpfSksZi5sZW5ndGgmJihsPUNvKGEuc2VsZWN0b3IsZixsKSksbyYmcyE9PSEwJiYoYS5yYXdzLnNlbWljb2xvbj0hMCxhLm5vZGVzLmxlbmd0aD09PTAmJmEucmVtb3ZlKCkpfX19O09vLmV4cG9ydHMucG9zdGNzcz0hMH0pO3ZhciBVZD14KChOSSx6ZCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBGZD0vLShcd3wkKS9nLGpkPShyLGUpPT5lLnRvVXBwZXJDYXNlKCksekM9cj0+KHI9ci50b0xvd2VyQ2FzZSgpLHI9PT0iZmxvYXQiPyJjc3NGbG9hdCI6ci5zdGFydHNXaXRoKCItbXMtIik/ci5zdWJzdHIoMSkucmVwbGFjZShGZCxqZCk6ci5yZXBsYWNlKEZkLGpkKSk7emQuZXhwb3J0cz16Q30pO3ZhciBQbz14KChCSSxWZCk9Pnt1KCk7dmFyIFVDPVVkKCksVkM9e2JveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH07ZnVuY3Rpb24gVG8ocil7cmV0dXJuIHR5cGVvZiByLm5vZGVzPT0idW5kZWZpbmVkIj8hMDpSbyhyKX1mdW5jdGlvbiBSbyhyKXtsZXQgZSx0PXt9O3JldHVybiByLmVhY2goaT0+e2lmKGkudHlwZT09PSJhdHJ1bGUiKWU9IkAiK2kubmFtZSxpLnBhcmFtcyYmKGUrPSIgIitpLnBhcmFtcyksdHlwZW9mIHRbZV09PSJ1bmRlZmluZWQiP3RbZV09VG8oaSk6QXJyYXkuaXNBcnJheSh0W2VdKT90W2VdLnB1c2goVG8oaSkpOnRbZV09W3RbZV0sVG8oaSldO2Vsc2UgaWYoaS50eXBlPT09InJ1bGUiKXtsZXQgbj1SbyhpKTtpZih0W2kuc2VsZWN0b3JdKWZvcihsZXQgcyBpbiBuKXRbaS5zZWxlY3Rvcl1bc109bltzXTtlbHNlIHRbaS5zZWxlY3Rvcl09bn1lbHNlIGlmKGkudHlwZT09PSJkZWNsIil7aS5wcm9wWzBdPT09Ii0iJiZpLnByb3BbMV09PT0iLSJ8fGkucGFyZW50JiZpLnBhcmVudC5zZWxlY3Rvcj09PSI6ZXhwb3J0Ij9lPWkucHJvcDplPVVDKGkucHJvcCk7bGV0IG49aS52YWx1ZTshaXNOYU4oaS52YWx1ZSkmJlZDW2VdJiYobj1wYXJzZUZsb2F0KGkudmFsdWUpKSxpLmltcG9ydGFudCYmKG4rPSIgIWltcG9ydGFudCIpLHR5cGVvZiB0W2VdPT0idW5kZWZpbmVkIj90W2VdPW46QXJyYXkuaXNBcnJheSh0W2VdKT90W2VdLnB1c2gobik6dFtlXT1bdFtlXSxuXX19KSx0fVZkLmV4cG9ydHM9Um99KTt2YXIgV249eCgoRkksUWQpPT57dSgpO3ZhciBfaT0kZSgpLEhkPS9ccyohaW1wb3J0YW50XHMqJC9pLEhDPXsiYm94LWZsZXgiOiEwLCJib3gtZmxleC1ncm91cCI6ITAsImNvbHVtbi1jb3VudCI6ITAsZmxleDohMCwiZmxleC1ncm93IjohMCwiZmxleC1wb3NpdGl2ZSI6ITAsImZsZXgtc2hyaW5rIjohMCwiZmxleC1uZWdhdGl2ZSI6ITAsImZvbnQtd2VpZ2h0IjohMCwibGluZS1jbGFtcCI6ITAsImxpbmUtaGVpZ2h0IjohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsInRhYi1zaXplIjohMCx3aWRvd3M6ITAsInotaW5kZXgiOiEwLHpvb206ITAsImZpbGwtb3BhY2l0eSI6ITAsInN0cm9rZS1kYXNob2Zmc2V0IjohMCwic3Ryb2tlLW9wYWNpdHkiOiEwLCJzdHJva2Utd2lkdGgiOiEwfTtmdW5jdGlvbiBXQyhyKXtyZXR1cm4gci5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnJlcGxhY2UoL15tcy0vLCItbXMtIikudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBXZChyLGUsdCl7dD09PSExfHx0PT09bnVsbHx8KGUuc3RhcnRzV2l0aCgiLS0iKXx8KGU9V0MoZSkpLHR5cGVvZiB0PT0ibnVtYmVyIiYmKHQ9PT0wfHxIQ1tlXT90PXQudG9TdHJpbmcoKTp0Kz0icHgiKSxlPT09ImNzcy1mbG9hdCImJihlPSJmbG9hdCIpLEhkLnRlc3QodCk/KHQ9dC5yZXBsYWNlKEhkLCIiKSxyLnB1c2goX2kuZGVjbCh7cHJvcDplLHZhbHVlOnQsaW1wb3J0YW50OiEwfSkpKTpyLnB1c2goX2kuZGVjbCh7cHJvcDplLHZhbHVlOnR9KSkpfWZ1bmN0aW9uIEdkKHIsZSx0KXtsZXQgaT1faS5hdFJ1bGUoe25hbWU6ZVsxXSxwYXJhbXM6ZVszXXx8IiJ9KTt0eXBlb2YgdD09Im9iamVjdCImJihpLm5vZGVzPVtdLElvKHQsaSkpLHIucHVzaChpKX1mdW5jdGlvbiBJbyhyLGUpe2xldCB0LGksbjtmb3IodCBpbiByKWlmKGk9clt0XSwhKGk9PT1udWxsfHx0eXBlb2YgaT09InVuZGVmaW5lZCIpKWlmKHRbMF09PT0iQCIpe2xldCBzPXQubWF0Y2goL0AoXFMrKShccysoW1xXXHddKilccyopPy8pO2lmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBhIG9mIGkpR2QoZSxzLGEpO2Vsc2UgR2QoZSxzLGkpfWVsc2UgaWYoQXJyYXkuaXNBcnJheShpKSlmb3IobGV0IHMgb2YgaSlXZChlLHQscyk7ZWxzZSB0eXBlb2YgaT09Im9iamVjdCI/KG49X2kucnVsZSh7c2VsZWN0b3I6dH0pLElvKGksbiksZS5wdXNoKG4pKTpXZChlLHQsaSl9UWQuZXhwb3J0cz1mdW5jdGlvbihyKXtsZXQgZT1faS5yb290KCk7cmV0dXJuIElvKHIsZSksZX19KTt2YXIgRG89eCgoakksWWQpPT57dSgpO3ZhciBHQz1QbygpO1lkLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUud2FybiYmZS53YXJuaW5ncygpLmZvckVhY2godD0+e2xldCBpPXQucGx1Z2lufHwiUG9zdENTUyI7Y29uc29sZS53YXJuKGkrIjogIit0LnRleHQpfSksR0MoZS5yb290KX19KTt2YXIgWGQ9eCgoekksS2QpPT57dSgpO3ZhciBRQz0kZSgpLFlDPURvKCksS0M9V24oKTtLZC5leHBvcnRzPWZ1bmN0aW9uKGUpe2xldCB0PVFDKGUpO3JldHVybiBhc3luYyBpPT57bGV0IG49YXdhaXQgdC5wcm9jZXNzKGkse3BhcnNlcjpLQyxmcm9tOnZvaWQgMH0pO3JldHVybiBZQyhuKX19fSk7dmFyIEpkPXgoKFVJLFpkKT0+e3UoKTt2YXIgWEM9JGUoKSxaQz1EbygpLEpDPVduKCk7WmQuZXhwb3J0cz1mdW5jdGlvbihyKXtsZXQgZT1YQyhyKTtyZXR1cm4gdD0+e2xldCBpPWUucHJvY2Vzcyh0LHtwYXJzZXI6SkMsZnJvbTp2b2lkIDB9KTtyZXR1cm4gWkMoaSl9fX0pO3ZhciB0aD14KChWSSxlaCk9Pnt1KCk7dmFyIGVfPVBvKCksdF89V24oKSxyXz1YZCgpLGlfPUpkKCk7ZWguZXhwb3J0cz17b2JqZWN0aWZ5OmVfLHBhcnNlOnRfLGFzeW5jOnJfLHN5bmM6aV99fSk7dmFyIG9yLHJoLEhJLFdJLEdJLFFJLGloPVAoKCk9Pnt1KCk7b3I9cGUodGgoKSkscmg9b3IuZGVmYXVsdCxIST1vci5kZWZhdWx0Lm9iamVjdGlmeSxXST1vci5kZWZhdWx0LnBhcnNlLEdJPW9yLmRlZmF1bHQuYXN5bmMsUUk9b3IuZGVmYXVsdC5zeW5jfSk7ZnVuY3Rpb24gbHIocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5mbGF0TWFwKGU9PmVlKFsoMCxuaC5kZWZhdWx0KSh7YnViYmxlOlsic2NyZWVuIl19KV0pLnByb2Nlc3MoZSx7cGFyc2VyOnJofSkucm9vdC5ub2Rlcyk6bHIoW3JdKX12YXIgbmgscW89UCgoKT0+e3UoKTtPdCgpO25oPXBlKEJkKCkpO2loKCl9KTtmdW5jdGlvbiB1cihyLGUsdD0hMSl7aWYocj09PSIiKXJldHVybiBlO2xldCBpPXR5cGVvZiBlPT0ic3RyaW5nIj8oMCxzaC5kZWZhdWx0KSgpLmFzdFN5bmMoZSk6ZTtyZXR1cm4gaS53YWxrQ2xhc3NlcyhuPT57bGV0IHM9bi52YWx1ZSxhPXQmJnMuc3RhcnRzV2l0aCgiLSIpO24udmFsdWU9YT9gLSR7cn0ke3Muc2xpY2UoMSl9YDpgJHtyfSR7c31gfSksdHlwZW9mIGU9PSJzdHJpbmciP2kudG9TdHJpbmcoKTppfXZhciBzaCxHbj1QKCgpPT57dSgpO3NoPXBlKGl0KCkpfSk7ZnVuY3Rpb24gVGUocil7bGV0IGU9YWguZGVmYXVsdC5jbGFzc05hbWUoKTtyZXR1cm4gZS52YWx1ZT1yLGp0KGU/LnJhd3M/LnZhbHVlPz9lLnZhbHVlKX12YXIgYWgsZnI9UCgoKT0+e3UoKTthaD1wZShpdCgpKTtaaSgpfSk7ZnVuY3Rpb24gJG8ocil7cmV0dXJuIGp0KGAuJHtUZShyKX1gKX1mdW5jdGlvbiBRbihyLGUpe3JldHVybiAkbyhFaShyLGUpKX1mdW5jdGlvbiBFaShyLGUpe3JldHVybiBlPT09IkRFRkFVTFQiP3I6ZT09PSItInx8ZT09PSItREVGQVVMVCI/YC0ke3J9YDplLnN0YXJ0c1dpdGgoIi0iKT9gLSR7cn0ke2V9YDplLnN0YXJ0c1dpdGgoIi8iKT9gJHtyfSR7ZX1gOmAke3J9LSR7ZX1gfXZhciBMbz1QKCgpPT57dSgpO2ZyKCk7WmkoKX0pO2Z1bmN0aW9uIEwocixlPVtbcixbcl1dXSx7ZmlsdGVyRGVmYXVsdDp0PSExLC4uLml9PXt9KXtsZXQgbj1tdChyKTtyZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnMsdGhlbWU6YX0pe2ZvcihsZXQgbyBvZiBlKXtsZXQgbD1BcnJheS5pc0FycmF5KG9bMF0pP286W29dO3MobC5yZWR1Y2UoKGMsW2YsZF0pPT5PYmplY3QuYXNzaWduKGMse1tmXTpwPT5kLnJlZHVjZSgoaCxiKT0+QXJyYXkuaXNBcnJheShiKT9PYmplY3QuYXNzaWduKGgse1tiWzBdXTpiWzFdfSk6T2JqZWN0LmFzc2lnbihoLHtbYl06bihwKX0pLHt9KX0pLHt9KSx7Li4uaSx2YWx1ZXM6dD9PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYShyKT8/e30pLmZpbHRlcigoW2NdKT0+YyE9PSJERUZBVUxUIikpOmEocil9KX19fXZhciBvaD1QKCgpPT57dSgpO0NpKCl9KTtmdW5jdGlvbiBUdChyKXtyZXR1cm4gcj1BcnJheS5pc0FycmF5KHIpP3I6W3JdLHIubWFwKGU9PntsZXQgdD1lLnZhbHVlcy5tYXAoaT0+aS5yYXchPT12b2lkIDA/aS5yYXc6W2kubWluJiZgKG1pbi13aWR0aDogJHtpLm1pbn0pYCxpLm1heCYmYChtYXgtd2lkdGg6ICR7aS5tYXh9KWBdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgYW5kICIpKTtyZXR1cm4gZS5ub3Q/YG5vdCBhbGwgYW5kICR7dH1gOnR9KS5qb2luKCIsICIpfXZhciBZbj1QKCgpPT57dSgpfSk7ZnVuY3Rpb24gTW8ocil7cmV0dXJuIHIuc3BsaXQoZl8pLm1hcCh0PT57bGV0IGk9dC50cmltKCksbj17dmFsdWU6aX0scz1pLnNwbGl0KGNfKSxhPW5ldyBTZXQ7Zm9yKGxldCBvIG9mIHMpIWEuaGFzKCJESVJFQ1RJT05TIikmJm5fLmhhcyhvKT8obi5kaXJlY3Rpb249byxhLmFkZCgiRElSRUNUSU9OUyIpKTohYS5oYXMoIlBMQVlfU1RBVEVTIikmJnNfLmhhcyhvKT8obi5wbGF5U3RhdGU9byxhLmFkZCgiUExBWV9TVEFURVMiKSk6IWEuaGFzKCJGSUxMX01PREVTIikmJmFfLmhhcyhvKT8obi5maWxsTW9kZT1vLGEuYWRkKCJGSUxMX01PREVTIikpOiFhLmhhcygiSVRFUkFUSU9OX0NPVU5UUyIpJiYob18uaGFzKG8pfHxwXy50ZXN0KG8pKT8obi5pdGVyYXRpb25Db3VudD1vLGEuYWRkKCJJVEVSQVRJT05fQ09VTlRTIikpOiFhLmhhcygiVElNSU5HX0ZVTkNUSU9OIikmJmxfLmhhcyhvKXx8IWEuaGFzKCJUSU1JTkdfRlVOQ1RJT04iKSYmdV8uc29tZShsPT5vLnN0YXJ0c1dpdGgoYCR7bH0oYCkpPyhuLnRpbWluZ0Z1bmN0aW9uPW8sYS5hZGQoIlRJTUlOR19GVU5DVElPTiIpKTohYS5oYXMoIkRVUkFUSU9OIikmJmxoLnRlc3Qobyk/KG4uZHVyYXRpb249byxhLmFkZCgiRFVSQVRJT04iKSk6IWEuaGFzKCJERUxBWSIpJiZsaC50ZXN0KG8pPyhuLmRlbGF5PW8sYS5hZGQoIkRFTEFZIikpOmEuaGFzKCJOQU1FIik/KG4udW5rbm93bnx8KG4udW5rbm93bj1bXSksbi51bmtub3duLnB1c2gobykpOihuLm5hbWU9byxhLmFkZCgiTkFNRSIpKTtyZXR1cm4gbn0pfXZhciBuXyxzXyxhXyxvXyxsXyx1XyxmXyxjXyxsaCxwXyx1aD1QKCgpPT57dSgpO25fPW5ldyBTZXQoWyJub3JtYWwiLCJyZXZlcnNlIiwiYWx0ZXJuYXRlIiwiYWx0ZXJuYXRlLXJldmVyc2UiXSksc189bmV3IFNldChbInJ1bm5pbmciLCJwYXVzZWQiXSksYV89bmV3IFNldChbIm5vbmUiLCJmb3J3YXJkcyIsImJhY2t3YXJkcyIsImJvdGgiXSksb189bmV3IFNldChbImluZmluaXRlIl0pLGxfPW5ldyBTZXQoWyJsaW5lYXIiLCJlYXNlIiwiZWFzZS1pbiIsImVhc2Utb3V0IiwiZWFzZS1pbi1vdXQiLCJzdGVwLXN0YXJ0Iiwic3RlcC1lbmQiXSksdV89WyJjdWJpYy1iZXppZXIiLCJzdGVwcyJdLGZfPS9cLCg/IVteKF0qXCkpL2csY189L1wgKyg/IVteKF0qXCkpL2csbGg9L14oLT9bXGQuXSttP3MpJC8scF89L14oXGQrKSQvfSk7dmFyIGZoLHhlLGNoPVAoKCk9Pnt1KCk7Zmg9cj0+T2JqZWN0LmFzc2lnbih7fSwuLi5PYmplY3QuZW50cmllcyhyPz97fSkuZmxhdE1hcCgoW2UsdF0pPT50eXBlb2YgdD09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZmgodCkpLm1hcCgoW2ksbl0pPT4oe1tlKyhpPT09IkRFRkFVTFQiPyIiOmAtJHtpfWApXTpufSkpOlt7W2Ake2V9YF06dH1dKSkseGU9Zmh9KTt2YXIgZGgscGg9UCgoKT0+e2RoPSIzLjQuMTcifSk7ZnVuY3Rpb24gUnQocixlPSEwKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyKT9yLm1hcCh0PT57aWYoZSYmQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoIlRoZSB0dXBsZSBzeW50YXggaXMgbm90IHN1cHBvcnRlZCBmb3IgYHNjcmVlbnNgLiIpO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm57bmFtZTp0LnRvU3RyaW5nKCksbm90OiExLHZhbHVlczpbe21pbjp0LG1heDp2b2lkIDB9XX07bGV0W2ksbl09dDtyZXR1cm4gaT1pLnRvU3RyaW5nKCksdHlwZW9mIG49PSJzdHJpbmciP3tuYW1lOmksbm90OiExLHZhbHVlczpbe21pbjpuLG1heDp2b2lkIDB9XX06QXJyYXkuaXNBcnJheShuKT97bmFtZTppLG5vdDohMSx2YWx1ZXM6bi5tYXAocz0+bWgocykpfTp7bmFtZTppLG5vdDohMSx2YWx1ZXM6W21oKG4pXX19KTpSdChPYmplY3QuZW50cmllcyhyPz97fSksITEpfWZ1bmN0aW9uIEtuKHIpe3JldHVybiByLnZhbHVlcy5sZW5ndGghPT0xP3tyZXN1bHQ6ITEscmVhc29uOiJtdWx0aXBsZS12YWx1ZXMifTpyLnZhbHVlc1swXS5yYXchPT12b2lkIDA/e3Jlc3VsdDohMSxyZWFzb246InJhdy12YWx1ZXMifTpyLnZhbHVlc1swXS5taW4hPT12b2lkIDAmJnIudmFsdWVzWzBdLm1heCE9PXZvaWQgMD97cmVzdWx0OiExLHJlYXNvbjoibWluLWFuZC1tYXgifTp7cmVzdWx0OiEwLHJlYXNvbjpudWxsfX1mdW5jdGlvbiBoaChyLGUsdCl7bGV0IGk9WG4oZSxyKSxuPVhuKHQscikscz1LbihpKSxhPUtuKG4pO2lmKHMucmVhc29uPT09Im11bHRpcGxlLXZhbHVlcyJ8fGEucmVhc29uPT09Im11bHRpcGxlLXZhbHVlcyIpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gc29ydCBhIHNjcmVlbiB3aXRoIG11bHRpcGxlIHZhbHVlcy4gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiBQbGVhc2Ugb3BlbiBhIGJ1ZyByZXBvcnQuIik7aWYocy5yZWFzb249PT0icmF3LXZhbHVlcyJ8fGEucmVhc29uPT09InJhdy12YWx1ZXMiKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGVkIHRvIHNvcnQgYSBzY3JlZW4gd2l0aCByYXcgdmFsdWVzLiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uIFBsZWFzZSBvcGVuIGEgYnVnIHJlcG9ydC4iKTtpZihzLnJlYXNvbj09PSJtaW4tYW5kLW1heCJ8fGEucmVhc29uPT09Im1pbi1hbmQtbWF4Iil0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBzb3J0IGEgc2NyZWVuIHdpdGggYm90aCBtaW4gYW5kIG1heCB2YWx1ZXMuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gUGxlYXNlIG9wZW4gYSBidWcgcmVwb3J0LiIpO2xldHttaW46byxtYXg6bH09aS52YWx1ZXNbMF0se21pbjpjLG1heDpmfT1uLnZhbHVlc1swXTtlLm5vdCYmKFtvLGxdPVtsLG9dKSx0Lm5vdCYmKFtjLGZdPVtmLGNdKSxvPW89PT12b2lkIDA/bzpwYXJzZUZsb2F0KG8pLGw9bD09PXZvaWQgMD9sOnBhcnNlRmxvYXQobCksYz1jPT09dm9pZCAwP2M6cGFyc2VGbG9hdChjKSxmPWY9PT12b2lkIDA/ZjpwYXJzZUZsb2F0KGYpO2xldFtkLHBdPXI9PT0ibWluIj9bbyxjXTpbZixsXTtyZXR1cm4gZC1wfWZ1bmN0aW9uIFhuKHIsZSl7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0Ij9yOntuYW1lOiJhcmJpdHJhcnktc2NyZWVuIix2YWx1ZXM6W3tbZV06cn1dfX1mdW5jdGlvbiBtaCh7Im1pbi13aWR0aCI6cixtaW46ZT1yLG1heDp0LHJhdzppfT17fSl7cmV0dXJue21pbjplLG1heDp0LHJhdzppfX12YXIgWm49UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIEpuKHIsZSl7ci53YWxrRGVjbHModD0+e2lmKGUuaW5jbHVkZXModC5wcm9wKSl7dC5yZW1vdmUoKTtyZXR1cm59Zm9yKGxldCBpIG9mIGUpdC52YWx1ZS5pbmNsdWRlcyhgLyB2YXIoJHtpfSlgKT90LnZhbHVlPXQudmFsdWUucmVwbGFjZShgLyB2YXIoJHtpfSlgLCIiKTp0LnZhbHVlLmluY2x1ZGVzKGAvIHZhcigke2l9LCAxKWApJiYodC52YWx1ZT10LnZhbHVlLnJlcGxhY2UoYC8gdmFyKCR7aX0sIDEpYCwiIikpfSl9dmFyIGdoPVAoKCk9Pnt1KCl9KTt2YXIgc2UsWGUsbnQsZ2UseWgsYmg9UCgoKT0+e3UoKTtmdCgpO2V0KCk7T3QoKTtvaCgpO1luKCk7ZnIoKTt1aCgpO2NoKCk7THIoKTtyYSgpO0t0KCk7Q2koKTtwaCgpO0JlKCk7Wm4oKTtZcygpO2doKCk7Y3QoKTtCcigpO09pKCk7c2U9e2NoaWxkVmFyaWFudDooe2FkZFZhcmlhbnQ6cn0pPT57cigiKiIsIiYgPiAqIil9LHBzZXVkb0VsZW1lbnRWYXJpYW50czooe2FkZFZhcmlhbnQ6cn0pPT57cigiZmlyc3QtbGV0dGVyIiwiJjo6Zmlyc3QtbGV0dGVyIikscigiZmlyc3QtbGluZSIsIiY6OmZpcnN0LWxpbmUiKSxyKCJtYXJrZXIiLFsoe2NvbnRhaW5lcjplfSk9PihKbihlLFsiLS10dy10ZXh0LW9wYWNpdHkiXSksIiYgKjo6bWFya2VyIiksKHtjb250YWluZXI6ZX0pPT4oSm4oZSxbIi0tdHctdGV4dC1vcGFjaXR5Il0pLCImOjptYXJrZXIiKV0pLHIoInNlbGVjdGlvbiIsWyImICo6OnNlbGVjdGlvbiIsIiY6OnNlbGVjdGlvbiJdKSxyKCJmaWxlIiwiJjo6ZmlsZS1zZWxlY3Rvci1idXR0b24iKSxyKCJwbGFjZWhvbGRlciIsIiY6OnBsYWNlaG9sZGVyIikscigiYmFja2Ryb3AiLCImOjpiYWNrZHJvcCIpLHIoImJlZm9yZSIsKHtjb250YWluZXI6ZX0pPT4oZS53YWxrUnVsZXModD0+e2xldCBpPSExO3Qud2Fsa0RlY2xzKCJjb250ZW50IiwoKT0+e2k9ITB9KSxpfHx0LnByZXBlbmQoZWUuZGVjbCh7cHJvcDoiY29udGVudCIsdmFsdWU6InZhcigtLXR3LWNvbnRlbnQpIn0pKX0pLCImOjpiZWZvcmUiKSkscigiYWZ0ZXIiLCh7Y29udGFpbmVyOmV9KT0+KGUud2Fsa1J1bGVzKHQ9PntsZXQgaT0hMTt0LndhbGtEZWNscygiY29udGVudCIsKCk9PntpPSEwfSksaXx8dC5wcmVwZW5kKGVlLmRlY2woe3Byb3A6ImNvbnRlbnQiLHZhbHVlOiJ2YXIoLS10dy1jb250ZW50KSJ9KSl9KSwiJjo6YWZ0ZXIiKSl9LHBzZXVkb0NsYXNzVmFyaWFudHM6KHthZGRWYXJpYW50OnIsbWF0Y2hWYXJpYW50OmUsY29uZmlnOnQscHJlZml4Oml9KT0+e2xldCBuPVtbImZpcnN0IiwiJjpmaXJzdC1jaGlsZCJdLFsibGFzdCIsIiY6bGFzdC1jaGlsZCJdLFsib25seSIsIiY6b25seS1jaGlsZCJdLFsib2RkIiwiJjpudGgtY2hpbGQob2RkKSJdLFsiZXZlbiIsIiY6bnRoLWNoaWxkKGV2ZW4pIl0sImZpcnN0LW9mLXR5cGUiLCJsYXN0LW9mLXR5cGUiLCJvbmx5LW9mLXR5cGUiLFsidmlzaXRlZCIsKHtjb250YWluZXI6YX0pPT4oSm4oYSxbIi0tdHctdGV4dC1vcGFjaXR5IiwiLS10dy1ib3JkZXItb3BhY2l0eSIsIi0tdHctYmctb3BhY2l0eSJdKSwiJjp2aXNpdGVkIildLCJ0YXJnZXQiLFsib3BlbiIsIiZbb3Blbl0iXSwiZGVmYXVsdCIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwicGxhY2Vob2xkZXItc2hvd24iLCJhdXRvZmlsbCIsIm9wdGlvbmFsIiwicmVxdWlyZWQiLCJ2YWxpZCIsImludmFsaWQiLCJpbi1yYW5nZSIsIm91dC1vZi1yYW5nZSIsInJlYWQtb25seSIsImVtcHR5IiwiZm9jdXMtd2l0aGluIixbImhvdmVyIix3ZSh0KCksImhvdmVyT25seVdoZW5TdXBwb3J0ZWQiKT8iQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkgeyAmOmhvdmVyIH0iOiImOmhvdmVyIl0sImZvY3VzIiwiZm9jdXMtdmlzaWJsZSIsImFjdGl2ZSIsImVuYWJsZWQiLCJkaXNhYmxlZCJdLm1hcChhPT5BcnJheS5pc0FycmF5KGEpP2E6W2EsYCY6JHthfWBdKTtmb3IobGV0W2Esb11vZiBuKXIoYSxsPT50eXBlb2Ygbz09ImZ1bmN0aW9uIj9vKGwpOm8pO2xldCBzPXtncm91cDooYSx7bW9kaWZpZXI6b30pPT5vP1tgOm1lcmdlKCR7aSgiLmdyb3VwIil9XFwvJHtUZShvKX0pYCwiICYiXTpbYDptZXJnZSgke2koIi5ncm91cCIpfSlgLCIgJiJdLHBlZXI6KGEse21vZGlmaWVyOm99KT0+bz9bYDptZXJnZSgke2koIi5wZWVyIil9XFwvJHtUZShvKX0pYCwiIH4gJiJdOltgOm1lcmdlKCR7aSgiLnBlZXIiKX0pYCwiIH4gJiJdfTtmb3IobGV0W2Esb11vZiBPYmplY3QuZW50cmllcyhzKSllKGEsKGw9IiIsYyk9PntsZXQgZj1LKHR5cGVvZiBsPT0iZnVuY3Rpb24iP2woYyk6bCk7Zi5pbmNsdWRlcygiJiIpfHwoZj0iJiIrZik7bGV0W2QscF09bygiIixjKSxoPW51bGwsYj1udWxsLHY9MDtmb3IobGV0IHk9MDt5PGYubGVuZ3RoOysreSl7bGV0IHc9Zlt5XTt3PT09IiYiP2g9eTp3PT09IicifHx3PT09JyInP3YrPTE6aCE9PW51bGwmJnc9PT0iICImJiF2JiYoYj15KX1yZXR1cm4gaCE9PW51bGwmJmI9PT1udWxsJiYoYj1mLmxlbmd0aCksZi5zbGljZSgwLGgpK2QrZi5zbGljZShoKzEsYikrcCtmLnNsaWNlKGIpfSx7dmFsdWVzOk9iamVjdC5mcm9tRW50cmllcyhuKSxbUHRdOntyZXNwZWN0UHJlZml4OiExfX0pfSxkaXJlY3Rpb25WYXJpYW50czooe2FkZFZhcmlhbnQ6cn0pPT57cigibHRyIiwnJjp3aGVyZShbZGlyPSJsdHIiXSwgW2Rpcj0ibHRyIl0gKiknKSxyKCJydGwiLCcmOndoZXJlKFtkaXI9InJ0bCJdLCBbZGlyPSJydGwiXSAqKScpfSxyZWR1Y2VkTW90aW9uVmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoIm1vdGlvbi1zYWZlIiwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSIpLHIoIm1vdGlvbi1yZWR1Y2UiLCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKX0sZGFya1ZhcmlhbnRzOih7Y29uZmlnOnIsYWRkVmFyaWFudDplfSk9PntsZXRbdCxpPSIuZGFyayJdPVtdLmNvbmNhdChyKCJkYXJrTW9kZSIsIm1lZGlhIikpO2lmKHQ9PT0hMSYmKHQ9Im1lZGlhIixHLndhcm4oImRhcmttb2RlLWZhbHNlIixbIlRoZSBgZGFya01vZGVgIG9wdGlvbiBpbiB5b3VyIFRhaWx3aW5kIENTUyBjb25maWd1cmF0aW9uIGlzIHNldCB0byBgZmFsc2VgLCB3aGljaCBub3cgYmVoYXZlcyB0aGUgc2FtZSBhcyBgbWVkaWFgLiIsIkNoYW5nZSBgZGFya01vZGVgIHRvIGBtZWRpYWAgb3IgcmVtb3ZlIGl0IGVudGlyZWx5LiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdXBncmFkZS1ndWlkZSNyZW1vdmUtZGFyay1tb2RlLWNvbmZpZ3VyYXRpb24iXSkpLHQ9PT0idmFyaWFudCIpe2xldCBuO2lmKEFycmF5LmlzQXJyYXkoaSl8fHR5cGVvZiBpPT0iZnVuY3Rpb24iP249aTp0eXBlb2YgaT09InN0cmluZyImJihuPVtpXSksQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IHMgb2YgbilzPT09Ii5kYXJrIj8odD0hMSxHLndhcm4oImRhcmttb2RlLXZhcmlhbnQtd2l0aG91dC1zZWxlY3RvciIsWyJXaGVuIHVzaW5nIGB2YXJpYW50YCBmb3IgYGRhcmtNb2RlYCwgeW91IG11c3QgcHJvdmlkZSBhIHNlbGVjdG9yLiIsJ0V4YW1wbGU6IGBkYXJrTW9kZTogWyJ2YXJpYW50IiwgIi55b3VyLXNlbGVjdG9yICYiXWAnXSkpOnMuaW5jbHVkZXMoIiYiKXx8KHQ9ITEsRy53YXJuKCJkYXJrbW9kZS12YXJpYW50LXdpdGhvdXQtYW1wZXJzYW5kIixbIldoZW4gdXNpbmcgYHZhcmlhbnRgIGZvciBgZGFya01vZGVgLCB5b3VyIHNlbGVjdG9yIG11c3QgY29udGFpbiBgJmAuIiwnRXhhbXBsZSBgZGFya01vZGU6IFsidmFyaWFudCIsICIueW91ci1zZWxlY3RvciAmIl1gJ10pKTtpPW59dD09PSJzZWxlY3RvciI/ZSgiZGFyayIsYCY6d2hlcmUoJHtpfSwgJHtpfSAqKWApOnQ9PT0ibWVkaWEiP2UoImRhcmsiLCJAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpOnQ9PT0idmFyaWFudCI/ZSgiZGFyayIsaSk6dD09PSJjbGFzcyImJmUoImRhcmsiLGAmOmlzKCR7aX0gKilgKX0scHJpbnRWYXJpYW50Oih7YWRkVmFyaWFudDpyfSk9PntyKCJwcmludCIsIkBtZWRpYSBwcmludCIpfSxzY3JlZW5WYXJpYW50czooe3RoZW1lOnIsYWRkVmFyaWFudDplLG1hdGNoVmFyaWFudDp0fSk9PntsZXQgaT1yKCJzY3JlZW5zIik/P3t9LG49T2JqZWN0LnZhbHVlcyhpKS5ldmVyeSh3PT50eXBlb2Ygdz09InN0cmluZyIpLHM9UnQocigic2NyZWVucyIpKSxhPW5ldyBTZXQoW10pO2Z1bmN0aW9uIG8odyl7cmV0dXJuIHcubWF0Y2goLyhcRCspJC8pPy5bMV0/PyIobm9uZSkifWZ1bmN0aW9uIGwodyl7dyE9PXZvaWQgMCYmYS5hZGQobyh3KSl9ZnVuY3Rpb24gYyh3KXtyZXR1cm4gbCh3KSxhLnNpemU9PT0xfWZvcihsZXQgdyBvZiBzKWZvcihsZXQgayBvZiB3LnZhbHVlcylsKGsubWluKSxsKGsubWF4KTtsZXQgZj1hLnNpemU8PTE7ZnVuY3Rpb24gZCh3KXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHMuZmlsdGVyKGs9PktuKGspLnJlc3VsdCkubWFwKGs9PntsZXR7bWluOlMsbWF4OkV9PWsudmFsdWVzWzBdO2lmKHc9PT0ibWluIiYmUyE9PXZvaWQgMClyZXR1cm4gaztpZih3PT09Im1pbiImJkUhPT12b2lkIDApcmV0dXJuey4uLmssbm90OiFrLm5vdH07aWYodz09PSJtYXgiJiZFIT09dm9pZCAwKXJldHVybiBrO2lmKHc9PT0ibWF4IiYmUyE9PXZvaWQgMClyZXR1cm57Li4uayxub3Q6IWsubm90fX0pLm1hcChrPT5bay5uYW1lLGtdKSl9ZnVuY3Rpb24gcCh3KXtyZXR1cm4oayxTKT0+aGgodyxrLnZhbHVlLFMudmFsdWUpfWxldCBoPXAoIm1heCIpLGI9cCgibWluIik7ZnVuY3Rpb24gdih3KXtyZXR1cm4gaz0+e2lmKG4paWYoZil7aWYodHlwZW9mIGs9PSJzdHJpbmciJiYhYyhrKSlyZXR1cm4gRy53YXJuKCJtaW5tYXgtaGF2ZS1taXhlZC11bml0cyIsWyJUaGUgYG1pbi0qYCBhbmQgYG1heC0qYCB2YXJpYW50cyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIGEgYHNjcmVlbnNgIGNvbmZpZ3VyYXRpb24gY29udGFpbmluZyBtaXhlZCB1bml0cy4iXSksW119ZWxzZSByZXR1cm4gRy53YXJuKCJtaXhlZC1zY3JlZW4tdW5pdHMiLFsiVGhlIGBtaW4tKmAgYW5kIGBtYXgtKmAgdmFyaWFudHMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIGBzY3JlZW5zYCBjb25maWd1cmF0aW9uIGNvbnRhaW5pbmcgbWl4ZWQgdW5pdHMuIl0pLFtdO2Vsc2UgcmV0dXJuIEcud2FybigiY29tcGxleC1zY3JlZW4tY29uZmlnIixbIlRoZSBgbWluLSpgIGFuZCBgbWF4LSpgIHZhcmlhbnRzIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggYSBgc2NyZWVuc2AgY29uZmlndXJhdGlvbiBjb250YWluaW5nIG9iamVjdHMuIl0pLFtdO3JldHVybltgQG1lZGlhICR7VHQoWG4oayx3KSl9YF19fXQoIm1heCIsdigibWF4Iikse3NvcnQ6aCx2YWx1ZXM6bj9kKCJtYXgiKTp7fX0pO2xldCB5PSJtaW4tc2NyZWVucyI7Zm9yKGxldCB3IG9mIHMpZSh3Lm5hbWUsYEBtZWRpYSAke1R0KHcpfWAse2lkOnksc29ydDpuJiZmP2I6dm9pZCAwLHZhbHVlOnd9KTt0KCJtaW4iLHYoIm1pbiIpLHtpZDp5LHNvcnQ6Yn0pfSxzdXBwb3J0c1ZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIsdGhlbWU6ZX0pPT57cigic3VwcG9ydHMiLCh0PSIiKT0+e2xldCBpPUsodCksbj0vXlx3KlxzKlwoLy50ZXN0KGkpO3JldHVybiBpPW4/aS5yZXBsYWNlKC9cYihhbmR8b3J8bm90KVxiL2csIiAkMSAiKTppLG4/YEBzdXBwb3J0cyAke2l9YDooaS5pbmNsdWRlcygiOiIpfHwoaT1gJHtpfTogdmFyKC0tdHcpYCksaS5zdGFydHNXaXRoKCIoIikmJmkuZW5kc1dpdGgoIikiKXx8KGk9YCgke2l9KWApLGBAc3VwcG9ydHMgJHtpfWApfSx7dmFsdWVzOmUoInN1cHBvcnRzIik/P3t9fSl9LGhhc1ZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIscHJlZml4OmV9KT0+e3IoImhhcyIsdD0+YCY6aGFzKCR7Syh0KX0pYCx7dmFsdWVzOnt9LFtQdF06e3Jlc3BlY3RQcmVmaXg6ITF9fSkscigiZ3JvdXAtaGFzIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoJHtlKCIuZ3JvdXAiKX1cXC8ke2l9KTpoYXMoJHtLKHQpfSkgJmA6YDptZXJnZSgke2UoIi5ncm91cCIpfSk6aGFzKCR7Syh0KX0pICZgLHt2YWx1ZXM6e30sW1B0XTp7cmVzcGVjdFByZWZpeDohMX19KSxyKCJwZWVyLWhhcyIsKHQse21vZGlmaWVyOml9KT0+aT9gOm1lcmdlKCR7ZSgiLnBlZXIiKX1cXC8ke2l9KTpoYXMoJHtLKHQpfSkgfiAmYDpgOm1lcmdlKCR7ZSgiLnBlZXIiKX0pOmhhcygke0sodCl9KSB+ICZgLHt2YWx1ZXM6e30sW1B0XTp7cmVzcGVjdFByZWZpeDohMX19KX0sYXJpYVZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIsdGhlbWU6ZX0pPT57cigiYXJpYSIsdD0+YCZbYXJpYS0ke1llKEsodCkpfV1gLHt2YWx1ZXM6ZSgiYXJpYSIpPz97fX0pLHIoImdyb3VwLWFyaWEiLCh0LHttb2RpZmllcjppfSk9Pmk/YDptZXJnZSguZ3JvdXBcXC8ke2l9KVthcmlhLSR7WWUoSyh0KSl9XSAmYDpgOm1lcmdlKC5ncm91cClbYXJpYS0ke1llKEsodCkpfV0gJmAse3ZhbHVlczplKCJhcmlhIik/P3t9fSkscigicGVlci1hcmlhIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoLnBlZXJcXC8ke2l9KVthcmlhLSR7WWUoSyh0KSl9XSB+ICZgOmA6bWVyZ2UoLnBlZXIpW2FyaWEtJHtZZShLKHQpKX1dIH4gJmAse3ZhbHVlczplKCJhcmlhIik/P3t9fSl9LGRhdGFWYXJpYW50czooe21hdGNoVmFyaWFudDpyLHRoZW1lOmV9KT0+e3IoImRhdGEiLHQ9PmAmW2RhdGEtJHtZZShLKHQpKX1dYCx7dmFsdWVzOmUoImRhdGEiKT8/e319KSxyKCJncm91cC1kYXRhIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoLmdyb3VwXFwvJHtpfSlbZGF0YS0ke1llKEsodCkpfV0gJmA6YDptZXJnZSguZ3JvdXApW2RhdGEtJHtZZShLKHQpKX1dICZgLHt2YWx1ZXM6ZSgiZGF0YSIpPz97fX0pLHIoInBlZXItZGF0YSIsKHQse21vZGlmaWVyOml9KT0+aT9gOm1lcmdlKC5wZWVyXFwvJHtpfSlbZGF0YS0ke1llKEsodCkpfV0gfiAmYDpgOm1lcmdlKC5wZWVyKVtkYXRhLSR7WWUoSyh0KSl9XSB+ICZgLHt2YWx1ZXM6ZSgiZGF0YSIpPz97fX0pfSxvcmllbnRhdGlvblZhcmlhbnRzOih7YWRkVmFyaWFudDpyfSk9PntyKCJwb3J0cmFpdCIsIkBtZWRpYSAob3JpZW50YXRpb246IHBvcnRyYWl0KSIpLHIoImxhbmRzY2FwZSIsIkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkiKX0scHJlZmVyc0NvbnRyYXN0VmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoImNvbnRyYXN0LW1vcmUiLCJAbWVkaWEgKHByZWZlcnMtY29udHJhc3Q6IG1vcmUpIikscigiY29udHJhc3QtbGVzcyIsIkBtZWRpYSAocHJlZmVycy1jb250cmFzdDogbGVzcykiKX0sZm9yY2VkQ29sb3JzVmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoImZvcmNlZC1jb2xvcnMiLCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkiKX19LFhlPVsidHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSIsInJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSIsInNrZXdYKHZhcigtLXR3LXNrZXcteCkpIiwic2tld1kodmFyKC0tdHctc2tldy15KSkiLCJzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIiwic2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKSJdLmpvaW4oIiAiKSxudD1bInZhcigtLXR3LWJsdXIpIiwidmFyKC0tdHctYnJpZ2h0bmVzcykiLCJ2YXIoLS10dy1jb250cmFzdCkiLCJ2YXIoLS10dy1ncmF5c2NhbGUpIiwidmFyKC0tdHctaHVlLXJvdGF0ZSkiLCJ2YXIoLS10dy1pbnZlcnQpIiwidmFyKC0tdHctc2F0dXJhdGUpIiwidmFyKC0tdHctc2VwaWEpIiwidmFyKC0tdHctZHJvcC1zaGFkb3cpIl0uam9pbigiICIpLGdlPVsidmFyKC0tdHctYmFja2Ryb3AtYmx1cikiLCJ2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzKSIsInZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSIsInZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSkiLCJ2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlKSIsInZhcigtLXR3LWJhY2tkcm9wLWludmVydCkiLCJ2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5KSIsInZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlKSIsInZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKSJdLmpvaW4oIiAiKSx5aD17cHJlZmxpZ2h0Oih7YWRkQmFzZTpyfSk9PntsZXQgZT1lZS5wYXJzZShgKiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItd2lkdGg6MDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnRoZW1lKCdib3JkZXJDb2xvci5ERUZBVUxUJywgY3VycmVudENvbG9yKX06OmFmdGVyLDo6YmVmb3Jley0tdHctY29udGVudDonJ306aG9zdCxodG1se2xpbmUtaGVpZ2h0OjEuNTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbW96LXRhYi1zaXplOjQ7dGFiLXNpemU6NDtmb250LWZhbWlseTp0aGVtZSgnZm9udEZhbWlseS5zYW5zJywgdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmLCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiU2Vnb2UgVUkgRW1vamkiLCAiU2Vnb2UgVUkgU3ltYm9sIiwgIk5vdG8gQ29sb3IgRW1vamkiKTtmb250LWZlYXR1cmUtc2V0dGluZ3M6dGhlbWUoJ2ZvbnRGYW1pbHkuc2Fuc1sxXS5mb250RmVhdHVyZVNldHRpbmdzJywgbm9ybWFsKTtmb250LXZhcmlhdGlvbi1zZXR0aW5nczp0aGVtZSgnZm9udEZhbWlseS5zYW5zWzFdLmZvbnRWYXJpYXRpb25TZXR0aW5ncycsIG5vcm1hbCk7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fWJvZHl7bWFyZ2luOjA7bGluZS1oZWlnaHQ6aW5oZXJpdH1ocntoZWlnaHQ6MDtjb2xvcjppbmhlcml0O2JvcmRlci10b3Atd2lkdGg6MXB4fWFiYnI6d2hlcmUoW3RpdGxlXSl7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHByZSxzYW1we2ZvbnQtZmFtaWx5OnRoZW1lKCdmb250RmFtaWx5Lm1vbm8nLCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZSk7Zm9udC1mZWF0dXJlLXNldHRpbmdzOnRoZW1lKCdmb250RmFtaWx5Lm1vbm9bMV0uZm9udEZlYXR1cmVTZXR0aW5ncycsIG5vcm1hbCk7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6dGhlbWUoJ2ZvbnRGYW1pbHkubW9ub1sxXS5mb250VmFyaWF0aW9uU2V0dGluZ3MnLCBub3JtYWwpO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LWZlYXR1cmUtc2V0dGluZ3M6aW5oZXJpdDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtsZXR0ZXItc3BhY2luZzppbmhlcml0O2NvbG9yOmluaGVyaXQ7bWFyZ2luOjA7cGFkZGluZzowfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1idXR0b24saW5wdXQ6d2hlcmUoW3R5cGU9YnV0dG9uXSksaW5wdXQ6d2hlcmUoW3R5cGU9cmVzZXRdKSxpbnB1dDp3aGVyZShbdHlwZT1zdWJtaXRdKXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lfTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOmF1dG99Oi1tb3otdWktaW52YWxpZHtib3gtc2hhZG93Om5vbmV9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31bdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH1zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfWJsb2NrcXVvdGUsZGQsZGwsZmlndXJlLGgxLGgyLGgzLGg0LGg1LGg2LGhyLHAscHJle21hcmdpbjowfWZpZWxkc2V0e21hcmdpbjowO3BhZGRpbmc6MH1sZWdlbmR7cGFkZGluZzowfW1lbnUsb2wsdWx7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MH1kaWFsb2d7cGFkZGluZzowfXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1pbnB1dDo6cGxhY2Vob2xkZXIsdGV4dGFyZWE6OnBsYWNlaG9sZGVye29wYWNpdHk6MTtjb2xvcjp0aGVtZSgnY29sb3JzLmdyYXkuNCcsICM5Y2EzYWYpfVtyb2xlPWJ1dHRvbl0sYnV0dG9ue2N1cnNvcjpwb2ludGVyfTpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH1hdWRpbyxjYW52YXMsZW1iZWQsaWZyYW1lLGltZyxvYmplY3Qsc3ZnLHZpZGVve2Rpc3BsYXk6YmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfWltZyx2aWRlb3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b31baGlkZGVuXTp3aGVyZSg6bm90KFtoaWRkZW49dW50aWwtZm91bmRdKSl7ZGlzcGxheTpub25lfWApO3IoW2VlLmNvbW1lbnQoe3RleHQ6YCEgdGFpbHdpbmRjc3MgdiR7ZGh9IHwgTUlUIExpY2Vuc2UgfCBodHRwczovL3RhaWx3aW5kY3NzLmNvbWB9KSwuLi5lLm5vZGVzXSl9LGNvbnRhaW5lcjooKCk9PntmdW5jdGlvbiByKHQ9W10pe3JldHVybiB0LmZsYXRNYXAoaT0+aS52YWx1ZXMubWFwKG49Pm4ubWluKSkuZmlsdGVyKGk9PmkhPT12b2lkIDApfWZ1bmN0aW9uIGUodCxpLG4pe2lmKHR5cGVvZiBuPT0idW5kZWZpbmVkIilyZXR1cm5bXTtpZighKHR5cGVvZiBuPT0ib2JqZWN0IiYmbiE9PW51bGwpKXJldHVyblt7c2NyZWVuOiJERUZBVUxUIixtaW5XaWR0aDowLHBhZGRpbmc6bn1dO2xldCBzPVtdO24uREVGQVVMVCYmcy5wdXNoKHtzY3JlZW46IkRFRkFVTFQiLG1pbldpZHRoOjAscGFkZGluZzpuLkRFRkFVTFR9KTtmb3IobGV0IGEgb2YgdClmb3IobGV0IG8gb2YgaSlmb3IobGV0e21pbjpsfW9mIG8udmFsdWVzKWw9PT1hJiZzLnB1c2goe21pbldpZHRoOmEscGFkZGluZzpuW28ubmFtZV19KTtyZXR1cm4gc31yZXR1cm4gZnVuY3Rpb24oe2FkZENvbXBvbmVudHM6dCx0aGVtZTppfSl7bGV0IG49UnQoaSgiY29udGFpbmVyLnNjcmVlbnMiLGkoInNjcmVlbnMiKSkpLHM9cihuKSxhPWUocyxuLGkoImNvbnRhaW5lci5wYWRkaW5nIikpLG89Yz0+e2xldCBmPWEuZmluZChkPT5kLm1pbldpZHRoPT09Yyk7cmV0dXJuIGY/e3BhZGRpbmdSaWdodDpmLnBhZGRpbmcscGFkZGluZ0xlZnQ6Zi5wYWRkaW5nfTp7fX0sbD1BcnJheS5mcm9tKG5ldyBTZXQocy5zbGljZSgpLnNvcnQoKGMsZik9PnBhcnNlSW50KGMpLXBhcnNlSW50KGYpKSkpLm1hcChjPT4oe1tgQG1lZGlhIChtaW4td2lkdGg6ICR7Y30pYF06eyIuY29udGFpbmVyIjp7Im1heC13aWR0aCI6YywuLi5vKGMpfX19KSk7dChbeyIuY29udGFpbmVyIjpPYmplY3QuYXNzaWduKHt3aWR0aDoiMTAwJSJ9LGkoImNvbnRhaW5lci5jZW50ZXIiLCExKT97bWFyZ2luUmlnaHQ6ImF1dG8iLG1hcmdpbkxlZnQ6ImF1dG8ifTp7fSxvKDApKX0sLi4ubF0pfX0pKCksYWNjZXNzaWJpbGl0eTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnNyLW9ubHkiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxcHgiLGhlaWdodDoiMXB4IixwYWRkaW5nOiIwIixtYXJnaW46Ii0xcHgiLG92ZXJmbG93OiJoaWRkZW4iLGNsaXA6InJlY3QoMCwgMCwgMCwgMCkiLHdoaXRlU3BhY2U6Im5vd3JhcCIsYm9yZGVyV2lkdGg6IjAifSwiLm5vdC1zci1vbmx5Ijp7cG9zaXRpb246InN0YXRpYyIsd2lkdGg6ImF1dG8iLGhlaWdodDoiYXV0byIscGFkZGluZzoiMCIsbWFyZ2luOiIwIixvdmVyZmxvdzoidmlzaWJsZSIsY2xpcDoiYXV0byIsd2hpdGVTcGFjZToibm9ybWFsIn19KX0scG9pbnRlckV2ZW50czooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnBvaW50ZXItZXZlbnRzLW5vbmUiOnsicG9pbnRlci1ldmVudHMiOiJub25lIn0sIi5wb2ludGVyLWV2ZW50cy1hdXRvIjp7InBvaW50ZXItZXZlbnRzIjoiYXV0byJ9fSl9LHZpc2liaWxpdHk6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii52aXNpYmxlIjp7dmlzaWJpbGl0eToidmlzaWJsZSJ9LCIuaW52aXNpYmxlIjp7dmlzaWJpbGl0eToiaGlkZGVuIn0sIi5jb2xsYXBzZSI6e3Zpc2liaWxpdHk6ImNvbGxhcHNlIn19KX0scG9zaXRpb246KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zdGF0aWMiOntwb3NpdGlvbjoic3RhdGljIn0sIi5maXhlZCI6e3Bvc2l0aW9uOiJmaXhlZCJ9LCIuYWJzb2x1dGUiOntwb3NpdGlvbjoiYWJzb2x1dGUifSwiLnJlbGF0aXZlIjp7cG9zaXRpb246InJlbGF0aXZlIn0sIi5zdGlja3kiOntwb3NpdGlvbjoic3RpY2t5In19KX0saW5zZXQ6TCgiaW5zZXQiLFtbImluc2V0IixbImluc2V0Il1dLFtbImluc2V0LXgiLFsibGVmdCIsInJpZ2h0Il1dLFsiaW5zZXQteSIsWyJ0b3AiLCJib3R0b20iXV1dLFtbInN0YXJ0IixbImluc2V0LWlubGluZS1zdGFydCJdXSxbImVuZCIsWyJpbnNldC1pbmxpbmUtZW5kIl1dLFsidG9wIixbInRvcCJdXSxbInJpZ2h0IixbInJpZ2h0Il1dLFsiYm90dG9tIixbImJvdHRvbSJdXSxbImxlZnQiLFsibGVmdCJdXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksaXNvbGF0aW9uOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaXNvbGF0ZSI6e2lzb2xhdGlvbjoiaXNvbGF0ZSJ9LCIuaXNvbGF0aW9uLWF1dG8iOntpc29sYXRpb246ImF1dG8ifX0pfSx6SW5kZXg6TCgiekluZGV4IixbWyJ6IixbInpJbmRleCJdXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxvcmRlcjpMKCJvcmRlciIsdm9pZCAwLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZENvbHVtbjpMKCJncmlkQ29sdW1uIixbWyJjb2wiLFsiZ3JpZENvbHVtbiJdXV0pLGdyaWRDb2x1bW5TdGFydDpMKCJncmlkQ29sdW1uU3RhcnQiLFtbImNvbC1zdGFydCIsWyJncmlkQ29sdW1uU3RhcnQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZENvbHVtbkVuZDpMKCJncmlkQ29sdW1uRW5kIixbWyJjb2wtZW5kIixbImdyaWRDb2x1bW5FbmQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZFJvdzpMKCJncmlkUm93IixbWyJyb3ciLFsiZ3JpZFJvdyJdXV0pLGdyaWRSb3dTdGFydDpMKCJncmlkUm93U3RhcnQiLFtbInJvdy1zdGFydCIsWyJncmlkUm93U3RhcnQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZFJvd0VuZDpMKCJncmlkUm93RW5kIixbWyJyb3ctZW5kIixbImdyaWRSb3dFbmQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZmxvYXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5mbG9hdC1zdGFydCI6e2Zsb2F0OiJpbmxpbmUtc3RhcnQifSwiLmZsb2F0LWVuZCI6e2Zsb2F0OiJpbmxpbmUtZW5kIn0sIi5mbG9hdC1yaWdodCI6e2Zsb2F0OiJyaWdodCJ9LCIuZmxvYXQtbGVmdCI6e2Zsb2F0OiJsZWZ0In0sIi5mbG9hdC1ub25lIjp7ZmxvYXQ6Im5vbmUifX0pfSxjbGVhcjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmNsZWFyLXN0YXJ0Ijp7Y2xlYXI6ImlubGluZS1zdGFydCJ9LCIuY2xlYXItZW5kIjp7Y2xlYXI6ImlubGluZS1lbmQifSwiLmNsZWFyLWxlZnQiOntjbGVhcjoibGVmdCJ9LCIuY2xlYXItcmlnaHQiOntjbGVhcjoicmlnaHQifSwiLmNsZWFyLWJvdGgiOntjbGVhcjoiYm90aCJ9LCIuY2xlYXItbm9uZSI6e2NsZWFyOiJub25lIn19KX0sbWFyZ2luOkwoIm1hcmdpbiIsW1sibSIsWyJtYXJnaW4iXV0sW1sibXgiLFsibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiXV0sWyJteSIsWyJtYXJnaW4tdG9wIiwibWFyZ2luLWJvdHRvbSJdXV0sW1sibXMiLFsibWFyZ2luLWlubGluZS1zdGFydCJdXSxbIm1lIixbIm1hcmdpbi1pbmxpbmUtZW5kIl1dLFsibXQiLFsibWFyZ2luLXRvcCJdXSxbIm1yIixbIm1hcmdpbi1yaWdodCJdXSxbIm1iIixbIm1hcmdpbi1ib3R0b20iXV0sWyJtbCIsWyJtYXJnaW4tbGVmdCJdXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksYm94U2l6aW5nOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYm94LWJvcmRlciI6eyJib3gtc2l6aW5nIjoiYm9yZGVyLWJveCJ9LCIuYm94LWNvbnRlbnQiOnsiYm94LXNpemluZyI6ImNvbnRlbnQtYm94In19KX0sbGluZUNsYW1wOih7bWF0Y2hVdGlsaXRpZXM6cixhZGRVdGlsaXRpZXM6ZSx0aGVtZTp0fSk9PntyKHsibGluZS1jbGFtcCI6aT0+KHtvdmVyZmxvdzoiaGlkZGVuIixkaXNwbGF5OiItd2Via2l0LWJveCIsIi13ZWJraXQtYm94LW9yaWVudCI6InZlcnRpY2FsIiwiLXdlYmtpdC1saW5lLWNsYW1wIjpgJHtpfWB9KX0se3ZhbHVlczp0KCJsaW5lQ2xhbXAiKX0pLGUoeyIubGluZS1jbGFtcC1ub25lIjp7b3ZlcmZsb3c6InZpc2libGUiLGRpc3BsYXk6ImJsb2NrIiwiLXdlYmtpdC1ib3gtb3JpZW50IjoiaG9yaXpvbnRhbCIsIi13ZWJraXQtbGluZS1jbGFtcCI6Im5vbmUifX0pfSxkaXNwbGF5Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYmxvY2siOntkaXNwbGF5OiJibG9jayJ9LCIuaW5saW5lLWJsb2NrIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sIi5pbmxpbmUiOntkaXNwbGF5OiJpbmxpbmUifSwiLmZsZXgiOntkaXNwbGF5OiJmbGV4In0sIi5pbmxpbmUtZmxleCI6e2Rpc3BsYXk6ImlubGluZS1mbGV4In0sIi50YWJsZSI6e2Rpc3BsYXk6InRhYmxlIn0sIi5pbmxpbmUtdGFibGUiOntkaXNwbGF5OiJpbmxpbmUtdGFibGUifSwiLnRhYmxlLWNhcHRpb24iOntkaXNwbGF5OiJ0YWJsZS1jYXB0aW9uIn0sIi50YWJsZS1jZWxsIjp7ZGlzcGxheToidGFibGUtY2VsbCJ9LCIudGFibGUtY29sdW1uIjp7ZGlzcGxheToidGFibGUtY29sdW1uIn0sIi50YWJsZS1jb2x1bW4tZ3JvdXAiOntkaXNwbGF5OiJ0YWJsZS1jb2x1bW4tZ3JvdXAifSwiLnRhYmxlLWZvb3Rlci1ncm91cCI6e2Rpc3BsYXk6InRhYmxlLWZvb3Rlci1ncm91cCJ9LCIudGFibGUtaGVhZGVyLWdyb3VwIjp7ZGlzcGxheToidGFibGUtaGVhZGVyLWdyb3VwIn0sIi50YWJsZS1yb3ctZ3JvdXAiOntkaXNwbGF5OiJ0YWJsZS1yb3ctZ3JvdXAifSwiLnRhYmxlLXJvdyI6e2Rpc3BsYXk6InRhYmxlLXJvdyJ9LCIuZmxvdy1yb290Ijp7ZGlzcGxheToiZmxvdy1yb290In0sIi5ncmlkIjp7ZGlzcGxheToiZ3JpZCJ9LCIuaW5saW5lLWdyaWQiOntkaXNwbGF5OiJpbmxpbmUtZ3JpZCJ9LCIuY29udGVudHMiOntkaXNwbGF5OiJjb250ZW50cyJ9LCIubGlzdC1pdGVtIjp7ZGlzcGxheToibGlzdC1pdGVtIn0sIi5oaWRkZW4iOntkaXNwbGF5OiJub25lIn19KX0sYXNwZWN0UmF0aW86TCgiYXNwZWN0UmF0aW8iLFtbImFzcGVjdCIsWyJhc3BlY3QtcmF0aW8iXV1dKSxzaXplOkwoInNpemUiLFtbInNpemUiLFsid2lkdGgiLCJoZWlnaHQiXV1dKSxoZWlnaHQ6TCgiaGVpZ2h0IixbWyJoIixbImhlaWdodCJdXV0pLG1heEhlaWdodDpMKCJtYXhIZWlnaHQiLFtbIm1heC1oIixbIm1heEhlaWdodCJdXV0pLG1pbkhlaWdodDpMKCJtaW5IZWlnaHQiLFtbIm1pbi1oIixbIm1pbkhlaWdodCJdXV0pLHdpZHRoOkwoIndpZHRoIixbWyJ3IixbIndpZHRoIl1dXSksbWluV2lkdGg6TCgibWluV2lkdGgiLFtbIm1pbi13IixbIm1pbldpZHRoIl1dXSksbWF4V2lkdGg6TCgibWF4V2lkdGgiLFtbIm1heC13IixbIm1heFdpZHRoIl1dXSksZmxleDpMKCJmbGV4IiksZmxleFNocmluazpMKCJmbGV4U2hyaW5rIixbWyJmbGV4LXNocmluayIsWyJmbGV4LXNocmluayJdXSxbInNocmluayIsWyJmbGV4LXNocmluayJdXV0pLGZsZXhHcm93OkwoImZsZXhHcm93IixbWyJmbGV4LWdyb3ciLFsiZmxleC1ncm93Il1dLFsiZ3JvdyIsWyJmbGV4LWdyb3ciXV1dKSxmbGV4QmFzaXM6TCgiZmxleEJhc2lzIixbWyJiYXNpcyIsWyJmbGV4LWJhc2lzIl1dXSksdGFibGVMYXlvdXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii50YWJsZS1hdXRvIjp7InRhYmxlLWxheW91dCI6ImF1dG8ifSwiLnRhYmxlLWZpeGVkIjp7InRhYmxlLWxheW91dCI6ImZpeGVkIn19KX0sY2FwdGlvblNpZGU6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5jYXB0aW9uLXRvcCI6eyJjYXB0aW9uLXNpZGUiOiJ0b3AifSwiLmNhcHRpb24tYm90dG9tIjp7ImNhcHRpb24tc2lkZSI6ImJvdHRvbSJ9fSl9LGJvcmRlckNvbGxhcHNlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYm9yZGVyLWNvbGxhcHNlIjp7ImJvcmRlci1jb2xsYXBzZSI6ImNvbGxhcHNlIn0sIi5ib3JkZXItc2VwYXJhdGUiOnsiYm9yZGVyLWNvbGxhcHNlIjoic2VwYXJhdGUifX0pfSxib3JkZXJTcGFjaW5nOih7YWRkRGVmYXVsdHM6cixtYXRjaFV0aWxpdGllczplLHRoZW1lOnR9KT0+e3IoImJvcmRlci1zcGFjaW5nIix7Ii0tdHctYm9yZGVyLXNwYWNpbmcteCI6MCwiLS10dy1ib3JkZXItc3BhY2luZy15IjowfSksZSh7ImJvcmRlci1zcGFjaW5nIjppPT4oeyItLXR3LWJvcmRlci1zcGFjaW5nLXgiOmksIi0tdHctYm9yZGVyLXNwYWNpbmcteSI6aSwiQGRlZmF1bHRzIGJvcmRlci1zcGFjaW5nIjp7fSwiYm9yZGVyLXNwYWNpbmciOiJ2YXIoLS10dy1ib3JkZXItc3BhY2luZy14KSB2YXIoLS10dy1ib3JkZXItc3BhY2luZy15KSJ9KSwiYm9yZGVyLXNwYWNpbmcteCI6aT0+KHsiLS10dy1ib3JkZXItc3BhY2luZy14IjppLCJAZGVmYXVsdHMgYm9yZGVyLXNwYWNpbmciOnt9LCJib3JkZXItc3BhY2luZyI6InZhcigtLXR3LWJvcmRlci1zcGFjaW5nLXgpIHZhcigtLXR3LWJvcmRlci1zcGFjaW5nLXkpIn0pLCJib3JkZXItc3BhY2luZy15IjppPT4oeyItLXR3LWJvcmRlci1zcGFjaW5nLXkiOmksIkBkZWZhdWx0cyBib3JkZXItc3BhY2luZyI6e30sImJvcmRlci1zcGFjaW5nIjoidmFyKC0tdHctYm9yZGVyLXNwYWNpbmcteCkgdmFyKC0tdHctYm9yZGVyLXNwYWNpbmcteSkifSl9LHt2YWx1ZXM6dCgiYm9yZGVyU3BhY2luZyIpfSl9LHRyYW5zZm9ybU9yaWdpbjpMKCJ0cmFuc2Zvcm1PcmlnaW4iLFtbIm9yaWdpbiIsWyJ0cmFuc2Zvcm1PcmlnaW4iXV1dKSx0cmFuc2xhdGU6TCgidHJhbnNsYXRlIixbW1sidHJhbnNsYXRlLXgiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy10cmFuc2xhdGUteCIsWyJ0cmFuc2Zvcm0iLFhlXV1dLFsidHJhbnNsYXRlLXkiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy10cmFuc2xhdGUteSIsWyJ0cmFuc2Zvcm0iLFhlXV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxyb3RhdGU6TCgicm90YXRlIixbWyJyb3RhdGUiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1yb3RhdGUiLFsidHJhbnNmb3JtIixYZV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxza2V3OkwoInNrZXciLFtbWyJza2V3LXgiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1za2V3LXgiLFsidHJhbnNmb3JtIixYZV1dXSxbInNrZXcteSIsW1siQGRlZmF1bHRzIHRyYW5zZm9ybSIse31dLCItLXR3LXNrZXcteSIsWyJ0cmFuc2Zvcm0iLFhlXV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxzY2FsZTpMKCJzY2FsZSIsW1sic2NhbGUiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1zY2FsZS14IiwiLS10dy1zY2FsZS15IixbInRyYW5zZm9ybSIsWGVdXV0sW1sic2NhbGUteCIsW1siQGRlZmF1bHRzIHRyYW5zZm9ybSIse31dLCItLXR3LXNjYWxlLXgiLFsidHJhbnNmb3JtIixYZV1dXSxbInNjYWxlLXkiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1zY2FsZS15IixbInRyYW5zZm9ybSIsWGVdXV1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHRyYW5zZm9ybTooe2FkZERlZmF1bHRzOnIsYWRkVXRpbGl0aWVzOmV9KT0+e3IoInRyYW5zZm9ybSIseyItLXR3LXRyYW5zbGF0ZS14IjoiMCIsIi0tdHctdHJhbnNsYXRlLXkiOiIwIiwiLS10dy1yb3RhdGUiOiIwIiwiLS10dy1za2V3LXgiOiIwIiwiLS10dy1za2V3LXkiOiIwIiwiLS10dy1zY2FsZS14IjoiMSIsIi0tdHctc2NhbGUteSI6IjEifSksZSh7Ii50cmFuc2Zvcm0iOnsiQGRlZmF1bHRzIHRyYW5zZm9ybSI6e30sdHJhbnNmb3JtOlhlfSwiLnRyYW5zZm9ybS1jcHUiOnt0cmFuc2Zvcm06WGV9LCIudHJhbnNmb3JtLWdwdSI6e3RyYW5zZm9ybTpYZS5yZXBsYWNlKCJ0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIiwidHJhbnNsYXRlM2QodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSksIDApIil9LCIudHJhbnNmb3JtLW5vbmUiOnt0cmFuc2Zvcm06Im5vbmUifX0pfSxhbmltYXRpb246KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29uZmlnOnR9KT0+e2xldCBpPXM9PlRlKHQoInByZWZpeCIpK3MpLG49T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGUoImtleWZyYW1lcyIpPz97fSkubWFwKChbcyxhXSk9PltzLHtbYEBrZXlmcmFtZXMgJHtpKHMpfWBdOmF9XSkpO3Ioe2FuaW1hdGU6cz0+e2xldCBhPU1vKHMpO3JldHVyblsuLi5hLmZsYXRNYXAobz0+bltvLm5hbWVdKSx7YW5pbWF0aW9uOmEubWFwKCh7bmFtZTpvLHZhbHVlOmx9KT0+bz09PXZvaWQgMHx8bltvXT09PXZvaWQgMD9sOmwucmVwbGFjZShvLGkobykpKS5qb2luKCIsICIpfV19fSx7dmFsdWVzOmUoImFuaW1hdGlvbiIpfSl9LGN1cnNvcjpMKCJjdXJzb3IiKSx0b3VjaEFjdGlvbjooe2FkZERlZmF1bHRzOnIsYWRkVXRpbGl0aWVzOmV9KT0+e3IoInRvdWNoLWFjdGlvbiIseyItLXR3LXBhbi14IjoiICIsIi0tdHctcGFuLXkiOiIgIiwiLS10dy1waW5jaC16b29tIjoiICJ9KTtsZXQgdD0idmFyKC0tdHctcGFuLXgpIHZhcigtLXR3LXBhbi15KSB2YXIoLS10dy1waW5jaC16b29tKSI7ZSh7Ii50b3VjaC1hdXRvIjp7InRvdWNoLWFjdGlvbiI6ImF1dG8ifSwiLnRvdWNoLW5vbmUiOnsidG91Y2gtYWN0aW9uIjoibm9uZSJ9LCIudG91Y2gtcGFuLXgiOnsiQGRlZmF1bHRzIHRvdWNoLWFjdGlvbiI6e30sIi0tdHctcGFuLXgiOiJwYW4teCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4tbGVmdCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teCI6InBhbi1sZWZ0IiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBhbi1yaWdodCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teCI6InBhbi1yaWdodCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4teSI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi15IiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBhbi11cCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi11cCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4tZG93biI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi1kb3duIiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBpbmNoLXpvb20iOnsiQGRlZmF1bHRzIHRvdWNoLWFjdGlvbiI6e30sIi0tdHctcGluY2gtem9vbSI6InBpbmNoLXpvb20iLCJ0b3VjaC1hY3Rpb24iOnR9LCIudG91Y2gtbWFuaXB1bGF0aW9uIjp7InRvdWNoLWFjdGlvbiI6Im1hbmlwdWxhdGlvbiJ9fSl9LHVzZXJTZWxlY3Q6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zZWxlY3Qtbm9uZSI6eyJ1c2VyLXNlbGVjdCI6Im5vbmUifSwiLnNlbGVjdC10ZXh0Ijp7InVzZXItc2VsZWN0IjoidGV4dCJ9LCIuc2VsZWN0LWFsbCI6eyJ1c2VyLXNlbGVjdCI6ImFsbCJ9LCIuc2VsZWN0LWF1dG8iOnsidXNlci1zZWxlY3QiOiJhdXRvIn19KX0scmVzaXplOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIucmVzaXplLW5vbmUiOntyZXNpemU6Im5vbmUifSwiLnJlc2l6ZS15Ijp7cmVzaXplOiJ2ZXJ0aWNhbCJ9LCIucmVzaXplLXgiOntyZXNpemU6Imhvcml6b250YWwifSwiLnJlc2l6ZSI6e3Jlc2l6ZToiYm90aCJ9fSl9LHNjcm9sbFNuYXBUeXBlOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57cigic2Nyb2xsLXNuYXAtdHlwZSIseyItLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3MiOiJwcm94aW1pdHkifSksZSh7Ii5zbmFwLW5vbmUiOnsic2Nyb2xsLXNuYXAtdHlwZSI6Im5vbmUifSwiLnNuYXAteCI6eyJAZGVmYXVsdHMgc2Nyb2xsLXNuYXAtdHlwZSI6e30sInNjcm9sbC1zbmFwLXR5cGUiOiJ4IHZhcigtLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3MpIn0sIi5zbmFwLXkiOnsiQGRlZmF1bHRzIHNjcm9sbC1zbmFwLXR5cGUiOnt9LCJzY3JvbGwtc25hcC10eXBlIjoieSB2YXIoLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzKSJ9LCIuc25hcC1ib3RoIjp7IkBkZWZhdWx0cyBzY3JvbGwtc25hcC10eXBlIjp7fSwic2Nyb2xsLXNuYXAtdHlwZSI6ImJvdGggdmFyKC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzcykifSwiLnNuYXAtbWFuZGF0b3J5Ijp7Ii0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzcyI6Im1hbmRhdG9yeSJ9LCIuc25hcC1wcm94aW1pdHkiOnsiLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzIjoicHJveGltaXR5In19KX0sc2Nyb2xsU25hcEFsaWduOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuc25hcC1zdGFydCI6eyJzY3JvbGwtc25hcC1hbGlnbiI6InN0YXJ0In0sIi5zbmFwLWVuZCI6eyJzY3JvbGwtc25hcC1hbGlnbiI6ImVuZCJ9LCIuc25hcC1jZW50ZXIiOnsic2Nyb2xsLXNuYXAtYWxpZ24iOiJjZW50ZXIifSwiLnNuYXAtYWxpZ24tbm9uZSI6eyJzY3JvbGwtc25hcC1hbGlnbiI6Im5vbmUifX0pfSxzY3JvbGxTbmFwU3RvcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnNuYXAtbm9ybWFsIjp7InNjcm9sbC1zbmFwLXN0b3AiOiJub3JtYWwifSwiLnNuYXAtYWx3YXlzIjp7InNjcm9sbC1zbmFwLXN0b3AiOiJhbHdheXMifX0pfSxzY3JvbGxNYXJnaW46TCgic2Nyb2xsTWFyZ2luIixbWyJzY3JvbGwtbSIsWyJzY3JvbGwtbWFyZ2luIl1dLFtbInNjcm9sbC1teCIsWyJzY3JvbGwtbWFyZ2luLWxlZnQiLCJzY3JvbGwtbWFyZ2luLXJpZ2h0Il1dLFsic2Nyb2xsLW15IixbInNjcm9sbC1tYXJnaW4tdG9wIiwic2Nyb2xsLW1hcmdpbi1ib3R0b20iXV1dLFtbInNjcm9sbC1tcyIsWyJzY3JvbGwtbWFyZ2luLWlubGluZS1zdGFydCJdXSxbInNjcm9sbC1tZSIsWyJzY3JvbGwtbWFyZ2luLWlubGluZS1lbmQiXV0sWyJzY3JvbGwtbXQiLFsic2Nyb2xsLW1hcmdpbi10b3AiXV0sWyJzY3JvbGwtbXIiLFsic2Nyb2xsLW1hcmdpbi1yaWdodCJdXSxbInNjcm9sbC1tYiIsWyJzY3JvbGwtbWFyZ2luLWJvdHRvbSJdXSxbInNjcm9sbC1tbCIsWyJzY3JvbGwtbWFyZ2luLWxlZnQiXV1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHNjcm9sbFBhZGRpbmc6TCgic2Nyb2xsUGFkZGluZyIsW1sic2Nyb2xsLXAiLFsic2Nyb2xsLXBhZGRpbmciXV0sW1sic2Nyb2xsLXB4IixbInNjcm9sbC1wYWRkaW5nLWxlZnQiLCJzY3JvbGwtcGFkZGluZy1yaWdodCJdXSxbInNjcm9sbC1weSIsWyJzY3JvbGwtcGFkZGluZy10b3AiLCJzY3JvbGwtcGFkZGluZy1ib3R0b20iXV1dLFtbInNjcm9sbC1wcyIsWyJzY3JvbGwtcGFkZGluZy1pbmxpbmUtc3RhcnQiXV0sWyJzY3JvbGwtcGUiLFsic2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCJdXSxbInNjcm9sbC1wdCIsWyJzY3JvbGwtcGFkZGluZy10b3AiXV0sWyJzY3JvbGwtcHIiLFsic2Nyb2xsLXBhZGRpbmctcmlnaHQiXV0sWyJzY3JvbGwtcGIiLFsic2Nyb2xsLXBhZGRpbmctYm90dG9tIl1dLFsic2Nyb2xsLXBsIixbInNjcm9sbC1wYWRkaW5nLWxlZnQiXV1dXSksbGlzdFN0eWxlUG9zaXRpb246KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5saXN0LWluc2lkZSI6eyJsaXN0LXN0eWxlLXBvc2l0aW9uIjoiaW5zaWRlIn0sIi5saXN0LW91dHNpZGUiOnsibGlzdC1zdHlsZS1wb3NpdGlvbiI6Im91dHNpZGUifX0pfSxsaXN0U3R5bGVUeXBlOkwoImxpc3RTdHlsZVR5cGUiLFtbImxpc3QiLFsibGlzdFN0eWxlVHlwZSJdXV0pLGxpc3RTdHlsZUltYWdlOkwoImxpc3RTdHlsZUltYWdlIixbWyJsaXN0LWltYWdlIixbImxpc3RTdHlsZUltYWdlIl1dXSksYXBwZWFyYW5jZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmFwcGVhcmFuY2Utbm9uZSI6e2FwcGVhcmFuY2U6Im5vbmUifSwiLmFwcGVhcmFuY2UtYXV0byI6e2FwcGVhcmFuY2U6ImF1dG8ifX0pfSxjb2x1bW5zOkwoImNvbHVtbnMiLFtbImNvbHVtbnMiLFsiY29sdW1ucyJdXV0pLGJyZWFrQmVmb3JlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstYmVmb3JlLWF1dG8iOnsiYnJlYWstYmVmb3JlIjoiYXV0byJ9LCIuYnJlYWstYmVmb3JlLWF2b2lkIjp7ImJyZWFrLWJlZm9yZSI6ImF2b2lkIn0sIi5icmVhay1iZWZvcmUtYWxsIjp7ImJyZWFrLWJlZm9yZSI6ImFsbCJ9LCIuYnJlYWstYmVmb3JlLWF2b2lkLXBhZ2UiOnsiYnJlYWstYmVmb3JlIjoiYXZvaWQtcGFnZSJ9LCIuYnJlYWstYmVmb3JlLXBhZ2UiOnsiYnJlYWstYmVmb3JlIjoicGFnZSJ9LCIuYnJlYWstYmVmb3JlLWxlZnQiOnsiYnJlYWstYmVmb3JlIjoibGVmdCJ9LCIuYnJlYWstYmVmb3JlLXJpZ2h0Ijp7ImJyZWFrLWJlZm9yZSI6InJpZ2h0In0sIi5icmVhay1iZWZvcmUtY29sdW1uIjp7ImJyZWFrLWJlZm9yZSI6ImNvbHVtbiJ9fSl9LGJyZWFrSW5zaWRlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstaW5zaWRlLWF1dG8iOnsiYnJlYWstaW5zaWRlIjoiYXV0byJ9LCIuYnJlYWstaW5zaWRlLWF2b2lkIjp7ImJyZWFrLWluc2lkZSI6ImF2b2lkIn0sIi5icmVhay1pbnNpZGUtYXZvaWQtcGFnZSI6eyJicmVhay1pbnNpZGUiOiJhdm9pZC1wYWdlIn0sIi5icmVhay1pbnNpZGUtYXZvaWQtY29sdW1uIjp7ImJyZWFrLWluc2lkZSI6ImF2b2lkLWNvbHVtbiJ9fSl9LGJyZWFrQWZ0ZXI6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5icmVhay1hZnRlci1hdXRvIjp7ImJyZWFrLWFmdGVyIjoiYXV0byJ9LCIuYnJlYWstYWZ0ZXItYXZvaWQiOnsiYnJlYWstYWZ0ZXIiOiJhdm9pZCJ9LCIuYnJlYWstYWZ0ZXItYWxsIjp7ImJyZWFrLWFmdGVyIjoiYWxsIn0sIi5icmVhay1hZnRlci1hdm9pZC1wYWdlIjp7ImJyZWFrLWFmdGVyIjoiYXZvaWQtcGFnZSJ9LCIuYnJlYWstYWZ0ZXItcGFnZSI6eyJicmVhay1hZnRlciI6InBhZ2UifSwiLmJyZWFrLWFmdGVyLWxlZnQiOnsiYnJlYWstYWZ0ZXIiOiJsZWZ0In0sIi5icmVhay1hZnRlci1yaWdodCI6eyJicmVhay1hZnRlciI6InJpZ2h0In0sIi5icmVhay1hZnRlci1jb2x1bW4iOnsiYnJlYWstYWZ0ZXIiOiJjb2x1bW4ifX0pfSxncmlkQXV0b0NvbHVtbnM6TCgiZ3JpZEF1dG9Db2x1bW5zIixbWyJhdXRvLWNvbHMiLFsiZ3JpZEF1dG9Db2x1bW5zIl1dXSksZ3JpZEF1dG9GbG93Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuZ3JpZC1mbG93LXJvdyI6e2dyaWRBdXRvRmxvdzoicm93In0sIi5ncmlkLWZsb3ctY29sIjp7Z3JpZEF1dG9GbG93OiJjb2x1bW4ifSwiLmdyaWQtZmxvdy1kZW5zZSI6e2dyaWRBdXRvRmxvdzoiZGVuc2UifSwiLmdyaWQtZmxvdy1yb3ctZGVuc2UiOntncmlkQXV0b0Zsb3c6InJvdyBkZW5zZSJ9LCIuZ3JpZC1mbG93LWNvbC1kZW5zZSI6e2dyaWRBdXRvRmxvdzoiY29sdW1uIGRlbnNlIn19KX0sZ3JpZEF1dG9Sb3dzOkwoImdyaWRBdXRvUm93cyIsW1siYXV0by1yb3dzIixbImdyaWRBdXRvUm93cyJdXV0pLGdyaWRUZW1wbGF0ZUNvbHVtbnM6TCgiZ3JpZFRlbXBsYXRlQ29sdW1ucyIsW1siZ3JpZC1jb2xzIixbImdyaWRUZW1wbGF0ZUNvbHVtbnMiXV1dKSxncmlkVGVtcGxhdGVSb3dzOkwoImdyaWRUZW1wbGF0ZVJvd3MiLFtbImdyaWQtcm93cyIsWyJncmlkVGVtcGxhdGVSb3dzIl1dXSksZmxleERpcmVjdGlvbjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmZsZXgtcm93Ijp7ImZsZXgtZGlyZWN0aW9uIjoicm93In0sIi5mbGV4LXJvdy1yZXZlcnNlIjp7ImZsZXgtZGlyZWN0aW9uIjoicm93LXJldmVyc2UifSwiLmZsZXgtY29sIjp7ImZsZXgtZGlyZWN0aW9uIjoiY29sdW1uIn0sIi5mbGV4LWNvbC1yZXZlcnNlIjp7ImZsZXgtZGlyZWN0aW9uIjoiY29sdW1uLXJldmVyc2UifX0pfSxmbGV4V3JhcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmZsZXgtd3JhcCI6eyJmbGV4LXdyYXAiOiJ3cmFwIn0sIi5mbGV4LXdyYXAtcmV2ZXJzZSI6eyJmbGV4LXdyYXAiOiJ3cmFwLXJldmVyc2UifSwiLmZsZXgtbm93cmFwIjp7ImZsZXgtd3JhcCI6Im5vd3JhcCJ9fSl9LHBsYWNlQ29udGVudDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnBsYWNlLWNvbnRlbnQtY2VudGVyIjp7InBsYWNlLWNvbnRlbnQiOiJjZW50ZXIifSwiLnBsYWNlLWNvbnRlbnQtc3RhcnQiOnsicGxhY2UtY29udGVudCI6InN0YXJ0In0sIi5wbGFjZS1jb250ZW50LWVuZCI6eyJwbGFjZS1jb250ZW50IjoiZW5kIn0sIi5wbGFjZS1jb250ZW50LWJldHdlZW4iOnsicGxhY2UtY29udGVudCI6InNwYWNlLWJldHdlZW4ifSwiLnBsYWNlLWNvbnRlbnQtYXJvdW5kIjp7InBsYWNlLWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLnBsYWNlLWNvbnRlbnQtZXZlbmx5Ijp7InBsYWNlLWNvbnRlbnQiOiJzcGFjZS1ldmVubHkifSwiLnBsYWNlLWNvbnRlbnQtYmFzZWxpbmUiOnsicGxhY2UtY29udGVudCI6ImJhc2VsaW5lIn0sIi5wbGFjZS1jb250ZW50LXN0cmV0Y2giOnsicGxhY2UtY29udGVudCI6InN0cmV0Y2gifX0pfSxwbGFjZUl0ZW1zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIucGxhY2UtaXRlbXMtc3RhcnQiOnsicGxhY2UtaXRlbXMiOiJzdGFydCJ9LCIucGxhY2UtaXRlbXMtZW5kIjp7InBsYWNlLWl0ZW1zIjoiZW5kIn0sIi5wbGFjZS1pdGVtcy1jZW50ZXIiOnsicGxhY2UtaXRlbXMiOiJjZW50ZXIifSwiLnBsYWNlLWl0ZW1zLWJhc2VsaW5lIjp7InBsYWNlLWl0ZW1zIjoiYmFzZWxpbmUifSwiLnBsYWNlLWl0ZW1zLXN0cmV0Y2giOnsicGxhY2UtaXRlbXMiOiJzdHJldGNoIn19KX0sYWxpZ25Db250ZW50Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuY29udGVudC1ub3JtYWwiOnsiYWxpZ24tY29udGVudCI6Im5vcm1hbCJ9LCIuY29udGVudC1jZW50ZXIiOnsiYWxpZ24tY29udGVudCI6ImNlbnRlciJ9LCIuY29udGVudC1zdGFydCI6eyJhbGlnbi1jb250ZW50IjoiZmxleC1zdGFydCJ9LCIuY29udGVudC1lbmQiOnsiYWxpZ24tY29udGVudCI6ImZsZXgtZW5kIn0sIi5jb250ZW50LWJldHdlZW4iOnsiYWxpZ24tY29udGVudCI6InNwYWNlLWJldHdlZW4ifSwiLmNvbnRlbnQtYXJvdW5kIjp7ImFsaWduLWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLmNvbnRlbnQtZXZlbmx5Ijp7ImFsaWduLWNvbnRlbnQiOiJzcGFjZS1ldmVubHkifSwiLmNvbnRlbnQtYmFzZWxpbmUiOnsiYWxpZ24tY29udGVudCI6ImJhc2VsaW5lIn0sIi5jb250ZW50LXN0cmV0Y2giOnsiYWxpZ24tY29udGVudCI6InN0cmV0Y2gifX0pfSxhbGlnbkl0ZW1zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaXRlbXMtc3RhcnQiOnsiYWxpZ24taXRlbXMiOiJmbGV4LXN0YXJ0In0sIi5pdGVtcy1lbmQiOnsiYWxpZ24taXRlbXMiOiJmbGV4LWVuZCJ9LCIuaXRlbXMtY2VudGVyIjp7ImFsaWduLWl0ZW1zIjoiY2VudGVyIn0sIi5pdGVtcy1iYXNlbGluZSI6eyJhbGlnbi1pdGVtcyI6ImJhc2VsaW5lIn0sIi5pdGVtcy1zdHJldGNoIjp7ImFsaWduLWl0ZW1zIjoic3RyZXRjaCJ9fSl9LGp1c3RpZnlDb250ZW50Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuanVzdGlmeS1ub3JtYWwiOnsianVzdGlmeS1jb250ZW50Ijoibm9ybWFsIn0sIi5qdXN0aWZ5LXN0YXJ0Ijp7Imp1c3RpZnktY29udGVudCI6ImZsZXgtc3RhcnQifSwiLmp1c3RpZnktZW5kIjp7Imp1c3RpZnktY29udGVudCI6ImZsZXgtZW5kIn0sIi5qdXN0aWZ5LWNlbnRlciI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJjZW50ZXIifSwiLmp1c3RpZnktYmV0d2VlbiI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJzcGFjZS1iZXR3ZWVuIn0sIi5qdXN0aWZ5LWFyb3VuZCI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLmp1c3RpZnktZXZlbmx5Ijp7Imp1c3RpZnktY29udGVudCI6InNwYWNlLWV2ZW5seSJ9LCIuanVzdGlmeS1zdHJldGNoIjp7Imp1c3RpZnktY29udGVudCI6InN0cmV0Y2gifX0pfSxqdXN0aWZ5SXRlbXM6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5qdXN0aWZ5LWl0ZW1zLXN0YXJ0Ijp7Imp1c3RpZnktaXRlbXMiOiJzdGFydCJ9LCIuanVzdGlmeS1pdGVtcy1lbmQiOnsianVzdGlmeS1pdGVtcyI6ImVuZCJ9LCIuanVzdGlmeS1pdGVtcy1jZW50ZXIiOnsianVzdGlmeS1pdGVtcyI6ImNlbnRlciJ9LCIuanVzdGlmeS1pdGVtcy1zdHJldGNoIjp7Imp1c3RpZnktaXRlbXMiOiJzdHJldGNoIn19KX0sZ2FwOkwoImdhcCIsW1siZ2FwIixbImdhcCJdXSxbWyJnYXAteCIsWyJjb2x1bW5HYXAiXV0sWyJnYXAteSIsWyJyb3dHYXAiXV1dXSksc3BhY2U6KHttYXRjaFV0aWxpdGllczpyLGFkZFV0aWxpdGllczplLHRoZW1lOnR9KT0+e3IoeyJzcGFjZS14IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyItLXR3LXNwYWNlLXgtcmV2ZXJzZSI6IjAiLCJtYXJnaW4tcmlnaHQiOmBjYWxjKCR7aX0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKWAsIm1hcmdpbi1sZWZ0IjpgY2FsYygke2l9ICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpYH19KSwic3BhY2UteSI6aT0+KGk9aT09PSIwIj8iMHB4IjppLHsiJiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiLS10dy1zcGFjZS15LXJldmVyc2UiOiIwIiwibWFyZ2luLXRvcCI6YGNhbGMoJHtpfSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKWAsIm1hcmdpbi1ib3R0b20iOmBjYWxjKCR7aX0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKWB9fSl9LHt2YWx1ZXM6dCgic3BhY2UiKSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZSh7Ii5zcGFjZS15LXJldmVyc2UgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIjp7Ii0tdHctc3BhY2UteS1yZXZlcnNlIjoiMSJ9LCIuc3BhY2UteC1yZXZlcnNlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyItLXR3LXNwYWNlLXgtcmV2ZXJzZSI6IjEifX0pfSxkaXZpZGVXaWR0aDooe21hdGNoVXRpbGl0aWVzOnIsYWRkVXRpbGl0aWVzOmUsdGhlbWU6dH0pPT57cih7ImRpdmlkZS14IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteC1yZXZlcnNlIjoiMCIsImJvcmRlci1yaWdodC13aWR0aCI6YGNhbGMoJHtpfSAqIHZhcigtLXR3LWRpdmlkZS14LXJldmVyc2UpKWAsImJvcmRlci1sZWZ0LXdpZHRoIjpgY2FsYygke2l9ICogY2FsYygxIC0gdmFyKC0tdHctZGl2aWRlLXgtcmV2ZXJzZSkpKWB9fSksImRpdmlkZS15IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteS1yZXZlcnNlIjoiMCIsImJvcmRlci10b3Atd2lkdGgiOmBjYWxjKCR7aX0gKiBjYWxjKDEgLSB2YXIoLS10dy1kaXZpZGUteS1yZXZlcnNlKSkpYCwiYm9yZGVyLWJvdHRvbS13aWR0aCI6YGNhbGMoJHtpfSAqIHZhcigtLXR3LWRpdmlkZS15LXJldmVyc2UpKWB9fSl9LHt2YWx1ZXM6dCgiZGl2aWRlV2lkdGgiKSx0eXBlOlsibGluZS13aWR0aCIsImxlbmd0aCIsImFueSJdfSksZSh7Ii5kaXZpZGUteS1yZXZlcnNlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteS1yZXZlcnNlIjoiMSJ9LCIuZGl2aWRlLXgtcmV2ZXJzZSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiQGRlZmF1bHRzIGJvcmRlci13aWR0aCI6e30sIi0tdHctZGl2aWRlLXgtcmV2ZXJzZSI6IjEifX0pfSxkaXZpZGVTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRpdmlkZS1zb2xpZCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiYm9yZGVyLXN0eWxlIjoic29saWQifSwiLmRpdmlkZS1kYXNoZWQgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIjp7ImJvcmRlci1zdHlsZSI6ImRhc2hlZCJ9LCIuZGl2aWRlLWRvdHRlZCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiYm9yZGVyLXN0eWxlIjoiZG90dGVkIn0sIi5kaXZpZGUtZG91YmxlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJib3JkZXItc3R5bGUiOiJkb3VibGUifSwiLmRpdmlkZS1ub25lID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJib3JkZXItc3R5bGUiOiJub25lIn19KX0sZGl2aWRlQ29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7ZGl2aWRlOmk9PnQoImRpdmlkZU9wYWNpdHkiKT97WyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSJdOkFlKHtjb2xvcjppLHByb3BlcnR5OiJib3JkZXItY29sb3IiLHZhcmlhYmxlOiItLXR3LWRpdmlkZS1vcGFjaXR5In0pfTp7WyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSJdOnsiYm9yZGVyLWNvbG9yIjpYKGkpfX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiZGl2aWRlQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LGRpdmlkZU9wYWNpdHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJkaXZpZGUtb3BhY2l0eSI6dD0+KHtbIiYgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIl06eyItLXR3LWRpdmlkZS1vcGFjaXR5Ijp0fX0pfSx7dmFsdWVzOmUoImRpdmlkZU9wYWNpdHkiKX0pfSxwbGFjZVNlbGY6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5wbGFjZS1zZWxmLWF1dG8iOnsicGxhY2Utc2VsZiI6ImF1dG8ifSwiLnBsYWNlLXNlbGYtc3RhcnQiOnsicGxhY2Utc2VsZiI6InN0YXJ0In0sIi5wbGFjZS1zZWxmLWVuZCI6eyJwbGFjZS1zZWxmIjoiZW5kIn0sIi5wbGFjZS1zZWxmLWNlbnRlciI6eyJwbGFjZS1zZWxmIjoiY2VudGVyIn0sIi5wbGFjZS1zZWxmLXN0cmV0Y2giOnsicGxhY2Utc2VsZiI6InN0cmV0Y2gifX0pfSxhbGlnblNlbGY6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zZWxmLWF1dG8iOnsiYWxpZ24tc2VsZiI6ImF1dG8ifSwiLnNlbGYtc3RhcnQiOnsiYWxpZ24tc2VsZiI6ImZsZXgtc3RhcnQifSwiLnNlbGYtZW5kIjp7ImFsaWduLXNlbGYiOiJmbGV4LWVuZCJ9LCIuc2VsZi1jZW50ZXIiOnsiYWxpZ24tc2VsZiI6ImNlbnRlciJ9LCIuc2VsZi1zdHJldGNoIjp7ImFsaWduLXNlbGYiOiJzdHJldGNoIn0sIi5zZWxmLWJhc2VsaW5lIjp7ImFsaWduLXNlbGYiOiJiYXNlbGluZSJ9fSl9LGp1c3RpZnlTZWxmOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuanVzdGlmeS1zZWxmLWF1dG8iOnsianVzdGlmeS1zZWxmIjoiYXV0byJ9LCIuanVzdGlmeS1zZWxmLXN0YXJ0Ijp7Imp1c3RpZnktc2VsZiI6InN0YXJ0In0sIi5qdXN0aWZ5LXNlbGYtZW5kIjp7Imp1c3RpZnktc2VsZiI6ImVuZCJ9LCIuanVzdGlmeS1zZWxmLWNlbnRlciI6eyJqdXN0aWZ5LXNlbGYiOiJjZW50ZXIifSwiLmp1c3RpZnktc2VsZi1zdHJldGNoIjp7Imp1c3RpZnktc2VsZiI6InN0cmV0Y2gifX0pfSxvdmVyZmxvdzooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLm92ZXJmbG93LWF1dG8iOntvdmVyZmxvdzoiYXV0byJ9LCIub3ZlcmZsb3ctaGlkZGVuIjp7b3ZlcmZsb3c6ImhpZGRlbiJ9LCIub3ZlcmZsb3ctY2xpcCI6e292ZXJmbG93OiJjbGlwIn0sIi5vdmVyZmxvdy12aXNpYmxlIjp7b3ZlcmZsb3c6InZpc2libGUifSwiLm92ZXJmbG93LXNjcm9sbCI6e292ZXJmbG93OiJzY3JvbGwifSwiLm92ZXJmbG93LXgtYXV0byI6eyJvdmVyZmxvdy14IjoiYXV0byJ9LCIub3ZlcmZsb3cteS1hdXRvIjp7Im92ZXJmbG93LXkiOiJhdXRvIn0sIi5vdmVyZmxvdy14LWhpZGRlbiI6eyJvdmVyZmxvdy14IjoiaGlkZGVuIn0sIi5vdmVyZmxvdy15LWhpZGRlbiI6eyJvdmVyZmxvdy15IjoiaGlkZGVuIn0sIi5vdmVyZmxvdy14LWNsaXAiOnsib3ZlcmZsb3cteCI6ImNsaXAifSwiLm92ZXJmbG93LXktY2xpcCI6eyJvdmVyZmxvdy15IjoiY2xpcCJ9LCIub3ZlcmZsb3cteC12aXNpYmxlIjp7Im92ZXJmbG93LXgiOiJ2aXNpYmxlIn0sIi5vdmVyZmxvdy15LXZpc2libGUiOnsib3ZlcmZsb3cteSI6InZpc2libGUifSwiLm92ZXJmbG93LXgtc2Nyb2xsIjp7Im92ZXJmbG93LXgiOiJzY3JvbGwifSwiLm92ZXJmbG93LXktc2Nyb2xsIjp7Im92ZXJmbG93LXkiOiJzY3JvbGwifX0pfSxvdmVyc2Nyb2xsQmVoYXZpb3I6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5vdmVyc2Nyb2xsLWF1dG8iOnsib3ZlcnNjcm9sbC1iZWhhdmlvciI6ImF1dG8ifSwiLm92ZXJzY3JvbGwtY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yIjoiY29udGFpbiJ9LCIub3ZlcnNjcm9sbC1ub25lIjp7Im92ZXJzY3JvbGwtYmVoYXZpb3IiOiJub25lIn0sIi5vdmVyc2Nyb2xsLXktYXV0byI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJhdXRvIn0sIi5vdmVyc2Nyb2xsLXktY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJjb250YWluIn0sIi5vdmVyc2Nyb2xsLXktbm9uZSI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJub25lIn0sIi5vdmVyc2Nyb2xsLXgtYXV0byI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJhdXRvIn0sIi5vdmVyc2Nyb2xsLXgtY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJjb250YWluIn0sIi5vdmVyc2Nyb2xsLXgtbm9uZSI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJub25lIn19KX0sc2Nyb2xsQmVoYXZpb3I6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zY3JvbGwtYXV0byI6eyJzY3JvbGwtYmVoYXZpb3IiOiJhdXRvIn0sIi5zY3JvbGwtc21vb3RoIjp7InNjcm9sbC1iZWhhdmlvciI6InNtb290aCJ9fSl9LHRleHRPdmVyZmxvdzooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnRydW5jYXRlIjp7b3ZlcmZsb3c6ImhpZGRlbiIsInRleHQtb3ZlcmZsb3ciOiJlbGxpcHNpcyIsIndoaXRlLXNwYWNlIjoibm93cmFwIn0sIi5vdmVyZmxvdy1lbGxpcHNpcyI6eyJ0ZXh0LW92ZXJmbG93IjoiZWxsaXBzaXMifSwiLnRleHQtZWxsaXBzaXMiOnsidGV4dC1vdmVyZmxvdyI6ImVsbGlwc2lzIn0sIi50ZXh0LWNsaXAiOnsidGV4dC1vdmVyZmxvdyI6ImNsaXAifX0pfSxoeXBoZW5zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaHlwaGVucy1ub25lIjp7aHlwaGVuczoibm9uZSJ9LCIuaHlwaGVucy1tYW51YWwiOntoeXBoZW5zOiJtYW51YWwifSwiLmh5cGhlbnMtYXV0byI6e2h5cGhlbnM6ImF1dG8ifX0pfSx3aGl0ZXNwYWNlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIud2hpdGVzcGFjZS1ub3JtYWwiOnsid2hpdGUtc3BhY2UiOiJub3JtYWwifSwiLndoaXRlc3BhY2Utbm93cmFwIjp7IndoaXRlLXNwYWNlIjoibm93cmFwIn0sIi53aGl0ZXNwYWNlLXByZSI6eyJ3aGl0ZS1zcGFjZSI6InByZSJ9LCIud2hpdGVzcGFjZS1wcmUtbGluZSI6eyJ3aGl0ZS1zcGFjZSI6InByZS1saW5lIn0sIi53aGl0ZXNwYWNlLXByZS13cmFwIjp7IndoaXRlLXNwYWNlIjoicHJlLXdyYXAifSwiLndoaXRlc3BhY2UtYnJlYWstc3BhY2VzIjp7IndoaXRlLXNwYWNlIjoiYnJlYWstc3BhY2VzIn19KX0sdGV4dFdyYXA6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii50ZXh0LXdyYXAiOnsidGV4dC13cmFwIjoid3JhcCJ9LCIudGV4dC1ub3dyYXAiOnsidGV4dC13cmFwIjoibm93cmFwIn0sIi50ZXh0LWJhbGFuY2UiOnsidGV4dC13cmFwIjoiYmFsYW5jZSJ9LCIudGV4dC1wcmV0dHkiOnsidGV4dC13cmFwIjoicHJldHR5In19KX0sd29yZEJyZWFrOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstbm9ybWFsIjp7Im92ZXJmbG93LXdyYXAiOiJub3JtYWwiLCJ3b3JkLWJyZWFrIjoibm9ybWFsIn0sIi5icmVhay13b3JkcyI6eyJvdmVyZmxvdy13cmFwIjoiYnJlYWstd29yZCJ9LCIuYnJlYWstYWxsIjp7IndvcmQtYnJlYWsiOiJicmVhay1hbGwifSwiLmJyZWFrLWtlZXAiOnsid29yZC1icmVhayI6ImtlZXAtYWxsIn19KX0sYm9yZGVyUmFkaXVzOkwoImJvcmRlclJhZGl1cyIsW1sicm91bmRlZCIsWyJib3JkZXItcmFkaXVzIl1dLFtbInJvdW5kZWQtcyIsWyJib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzIiwiYm9yZGVyLWVuZC1zdGFydC1yYWRpdXMiXV0sWyJyb3VuZGVkLWUiLFsiYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXMiLCJib3JkZXItZW5kLWVuZC1yYWRpdXMiXV0sWyJyb3VuZGVkLXQiLFsiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIl1dLFsicm91bmRlZC1yIixbImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiXV0sWyJyb3VuZGVkLWIiLFsiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiLCJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIl1dLFsicm91bmRlZC1sIixbImJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIl1dXSxbWyJyb3VuZGVkLXNzIixbImJvcmRlci1zdGFydC1zdGFydC1yYWRpdXMiXV0sWyJyb3VuZGVkLXNlIixbImJvcmRlci1zdGFydC1lbmQtcmFkaXVzIl1dLFsicm91bmRlZC1lZSIsWyJib3JkZXItZW5kLWVuZC1yYWRpdXMiXV0sWyJyb3VuZGVkLWVzIixbImJvcmRlci1lbmQtc3RhcnQtcmFkaXVzIl1dLFsicm91bmRlZC10bCIsWyJib3JkZXItdG9wLWxlZnQtcmFkaXVzIl1dLFsicm91bmRlZC10ciIsWyJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyJdXSxbInJvdW5kZWQtYnIiLFsiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiXV0sWyJyb3VuZGVkLWJsIixbImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiXV1dXSksYm9yZGVyV2lkdGg6TCgiYm9yZGVyV2lkdGgiLFtbImJvcmRlciIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItd2lkdGgiXV0sW1siYm9yZGVyLXgiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLWxlZnQtd2lkdGgiLCJib3JkZXItcmlnaHQtd2lkdGgiXV0sWyJib3JkZXIteSIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItdG9wLXdpZHRoIiwiYm9yZGVyLWJvdHRvbS13aWR0aCJdXV0sW1siYm9yZGVyLXMiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLWlubGluZS1zdGFydC13aWR0aCJdXSxbImJvcmRlci1lIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1pbmxpbmUtZW5kLXdpZHRoIl1dLFsiYm9yZGVyLXQiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLXRvcC13aWR0aCJdXSxbImJvcmRlci1yIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1yaWdodC13aWR0aCJdXSxbImJvcmRlci1iIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1ib3R0b20td2lkdGgiXV0sWyJib3JkZXItbCIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItbGVmdC13aWR0aCJdXV1dLHt0eXBlOlsibGluZS13aWR0aCIsImxlbmd0aCJdfSksYm9yZGVyU3R5bGU6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5ib3JkZXItc29saWQiOnsiYm9yZGVyLXN0eWxlIjoic29saWQifSwiLmJvcmRlci1kYXNoZWQiOnsiYm9yZGVyLXN0eWxlIjoiZGFzaGVkIn0sIi5ib3JkZXItZG90dGVkIjp7ImJvcmRlci1zdHlsZSI6ImRvdHRlZCJ9LCIuYm9yZGVyLWRvdWJsZSI6eyJib3JkZXItc3R5bGUiOiJkb3VibGUifSwiLmJvcmRlci1oaWRkZW4iOnsiYm9yZGVyLXN0eWxlIjoiaGlkZGVuIn0sIi5ib3JkZXItbm9uZSI6eyJib3JkZXItc3R5bGUiOiJub25lIn19KX0sYm9yZGVyQ29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7Ym9yZGVyOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1jb2xvciI6WChpKX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiYm9yZGVyQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSkscih7ImJvcmRlci14IjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6WyJib3JkZXItbGVmdC1jb2xvciIsImJvcmRlci1yaWdodC1jb2xvciJdLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWxlZnQtY29sb3IiOlgoaSksImJvcmRlci1yaWdodC1jb2xvciI6WChpKX0sImJvcmRlci15IjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6WyJib3JkZXItdG9wLWNvbG9yIiwiYm9yZGVyLWJvdHRvbS1jb2xvciJdLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLXRvcC1jb2xvciI6WChpKSwiYm9yZGVyLWJvdHRvbS1jb2xvciI6WChpKX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiYm9yZGVyQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSkscih7ImJvcmRlci1zIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3IiLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWlubGluZS1zdGFydC1jb2xvciI6WChpKX0sImJvcmRlci1lIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1pbmxpbmUtZW5kLWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1pbmxpbmUtZW5kLWNvbG9yIjpYKGkpfSwiYm9yZGVyLXQiOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLXRvcC1jb2xvciIsdmFyaWFibGU6Ii0tdHctYm9yZGVyLW9wYWNpdHkifSk6eyJib3JkZXItdG9wLWNvbG9yIjpYKGkpfSwiYm9yZGVyLXIiOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLXJpZ2h0LWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1yaWdodC1jb2xvciI6WChpKX0sImJvcmRlci1iIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1ib3R0b20tY29sb3IiLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWJvdHRvbS1jb2xvciI6WChpKX0sImJvcmRlci1sIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1sZWZ0LWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1sZWZ0LWNvbG9yIjpYKGkpfX0se3ZhbHVlczooKHtERUZBVUxUOmksLi4ubn0pPT5uKSh4ZShlKCJib3JkZXJDb2xvciIpKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYm9yZGVyT3BhY2l0eTpMKCJib3JkZXJPcGFjaXR5IixbWyJib3JkZXItb3BhY2l0eSIsWyItLXR3LWJvcmRlci1vcGFjaXR5Il1dXSksYmFja2dyb3VuZENvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe2JnOmk9PnQoImJhY2tncm91bmRPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJhY2tncm91bmQtY29sb3IiLHZhcmlhYmxlOiItLXR3LWJnLW9wYWNpdHkifSk6eyJiYWNrZ3JvdW5kLWNvbG9yIjpYKGkpfX0se3ZhbHVlczp4ZShlKCJiYWNrZ3JvdW5kQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYmFja2dyb3VuZE9wYWNpdHk6TCgiYmFja2dyb3VuZE9wYWNpdHkiLFtbImJnLW9wYWNpdHkiLFsiLS10dy1iZy1vcGFjaXR5Il1dXSksYmFja2dyb3VuZEltYWdlOkwoImJhY2tncm91bmRJbWFnZSIsW1siYmciLFsiYmFja2dyb3VuZC1pbWFnZSJdXV0se3R5cGU6WyJsb29rdXAiLCJpbWFnZSIsInVybCJdfSksZ3JhZGllbnRDb2xvclN0b3BzOigoKT0+e2Z1bmN0aW9uIHIoZSl7cmV0dXJuIEplKGUsMCwicmdiKDI1NSAyNTUgMjU1IC8gMCkiKX1yZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOmUsdGhlbWU6dCxhZGREZWZhdWx0czppfSl7aSgiZ3JhZGllbnQtY29sb3Itc3RvcHMiLHsiLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uIjoiICIsIi0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uIjoiICIsIi0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24iOiIgIn0pO2xldCBuPXt2YWx1ZXM6eGUodCgiZ3JhZGllbnRDb2xvclN0b3BzIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSxzPXt2YWx1ZXM6dCgiZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMiKSx0eXBlOlsibGVuZ3RoIiwicGVyY2VudGFnZSJdfTtlKHtmcm9tOmE9PntsZXQgbz1yKGEpO3JldHVybnsiQGRlZmF1bHRzIGdyYWRpZW50LWNvbG9yLXN0b3BzIjp7fSwiLS10dy1ncmFkaWVudC1mcm9tIjpgJHtYKGEpfSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKWAsIi0tdHctZ3JhZGllbnQtdG8iOmAke299IHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKWAsIi0tdHctZ3JhZGllbnQtc3RvcHMiOiJ2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIn19fSxuKSxlKHtmcm9tOmE9Pih7Ii0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiI6YX0pfSxzKSxlKHt2aWE6YT0+e2xldCBvPXIoYSk7cmV0dXJueyJAZGVmYXVsdHMgZ3JhZGllbnQtY29sb3Itc3RvcHMiOnt9LCItLXR3LWdyYWRpZW50LXRvIjpgJHtvfSAgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pYCwiLS10dy1ncmFkaWVudC1zdG9wcyI6YHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCAke1goYSl9IHZhcigtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKWB9fX0sbiksZSh7dmlhOmE9Pih7Ii0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uIjphfSl9LHMpLGUoe3RvOmE9Pih7IkBkZWZhdWx0cyBncmFkaWVudC1jb2xvci1zdG9wcyI6e30sIi0tdHctZ3JhZGllbnQtdG8iOmAke1goYSl9IHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKWB9KX0sbiksZSh7dG86YT0+KHsiLS10dy1ncmFkaWVudC10by1wb3NpdGlvbiI6YX0pfSxzKX19KSgpLGJveERlY29yYXRpb25CcmVhazooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRlY29yYXRpb24tc2xpY2UiOnsiYm94LWRlY29yYXRpb24tYnJlYWsiOiJzbGljZSJ9LCIuZGVjb3JhdGlvbi1jbG9uZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6ImNsb25lIn0sIi5ib3gtZGVjb3JhdGlvbi1zbGljZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6InNsaWNlIn0sIi5ib3gtZGVjb3JhdGlvbi1jbG9uZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6ImNsb25lIn19KX0sYmFja2dyb3VuZFNpemU6TCgiYmFja2dyb3VuZFNpemUiLFtbImJnIixbImJhY2tncm91bmQtc2l6ZSJdXV0se3R5cGU6WyJsb29rdXAiLCJsZW5ndGgiLCJwZXJjZW50YWdlIiwic2l6ZSJdfSksYmFja2dyb3VuZEF0dGFjaG1lbnQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5iZy1maXhlZCI6eyJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiJmaXhlZCJ9LCIuYmctbG9jYWwiOnsiYmFja2dyb3VuZC1hdHRhY2htZW50IjoibG9jYWwifSwiLmJnLXNjcm9sbCI6eyJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiJzY3JvbGwifX0pfSxiYWNrZ3JvdW5kQ2xpcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLWNsaXAtYm9yZGVyIjp7ImJhY2tncm91bmQtY2xpcCI6ImJvcmRlci1ib3gifSwiLmJnLWNsaXAtcGFkZGluZyI6eyJiYWNrZ3JvdW5kLWNsaXAiOiJwYWRkaW5nLWJveCJ9LCIuYmctY2xpcC1jb250ZW50Ijp7ImJhY2tncm91bmQtY2xpcCI6ImNvbnRlbnQtYm94In0sIi5iZy1jbGlwLXRleHQiOnsiYmFja2dyb3VuZC1jbGlwIjoidGV4dCJ9fSl9LGJhY2tncm91bmRQb3NpdGlvbjpMKCJiYWNrZ3JvdW5kUG9zaXRpb24iLFtbImJnIixbImJhY2tncm91bmQtcG9zaXRpb24iXV1dLHt0eXBlOlsibG9va3VwIixbInBvc2l0aW9uIix7cHJlZmVyT25Db25mbGljdDohMH1dXX0pLGJhY2tncm91bmRSZXBlYXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5iZy1yZXBlYXQiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQifSwiLmJnLW5vLXJlcGVhdCI6eyJiYWNrZ3JvdW5kLXJlcGVhdCI6Im5vLXJlcGVhdCJ9LCIuYmctcmVwZWF0LXgiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQteCJ9LCIuYmctcmVwZWF0LXkiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQteSJ9LCIuYmctcmVwZWF0LXJvdW5kIjp7ImJhY2tncm91bmQtcmVwZWF0Ijoicm91bmQifSwiLmJnLXJlcGVhdC1zcGFjZSI6eyJiYWNrZ3JvdW5kLXJlcGVhdCI6InNwYWNlIn19KX0sYmFja2dyb3VuZE9yaWdpbjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLW9yaWdpbi1ib3JkZXIiOnsiYmFja2dyb3VuZC1vcmlnaW4iOiJib3JkZXItYm94In0sIi5iZy1vcmlnaW4tcGFkZGluZyI6eyJiYWNrZ3JvdW5kLW9yaWdpbiI6InBhZGRpbmctYm94In0sIi5iZy1vcmlnaW4tY29udGVudCI6eyJiYWNrZ3JvdW5kLW9yaWdpbiI6ImNvbnRlbnQtYm94In19KX0sZmlsbDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ZmlsbDp0PT4oe2ZpbGw6WCh0KX0pfSx7dmFsdWVzOnhlKGUoImZpbGwiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sc3Ryb2tlOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtzdHJva2U6dD0+KHtzdHJva2U6WCh0KX0pfSx7dmFsdWVzOnhlKGUoInN0cm9rZSIpKSx0eXBlOlsiY29sb3IiLCJ1cmwiLCJhbnkiXX0pfSxzdHJva2VXaWR0aDpMKCJzdHJva2VXaWR0aCIsW1sic3Ryb2tlIixbInN0cm9rZS13aWR0aCJdXV0se3R5cGU6WyJsZW5ndGgiLCJudW1iZXIiLCJwZXJjZW50YWdlIl19KSxvYmplY3RGaXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5vYmplY3QtY29udGFpbiI6eyJvYmplY3QtZml0IjoiY29udGFpbiJ9LCIub2JqZWN0LWNvdmVyIjp7Im9iamVjdC1maXQiOiJjb3ZlciJ9LCIub2JqZWN0LWZpbGwiOnsib2JqZWN0LWZpdCI6ImZpbGwifSwiLm9iamVjdC1ub25lIjp7Im9iamVjdC1maXQiOiJub25lIn0sIi5vYmplY3Qtc2NhbGUtZG93biI6eyJvYmplY3QtZml0Ijoic2NhbGUtZG93biJ9fSl9LG9iamVjdFBvc2l0aW9uOkwoIm9iamVjdFBvc2l0aW9uIixbWyJvYmplY3QiLFsib2JqZWN0LXBvc2l0aW9uIl1dXSkscGFkZGluZzpMKCJwYWRkaW5nIixbWyJwIixbInBhZGRpbmciXV0sW1sicHgiLFsicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCJdXSxbInB5IixbInBhZGRpbmctdG9wIiwicGFkZGluZy1ib3R0b20iXV1dLFtbInBzIixbInBhZGRpbmctaW5saW5lLXN0YXJ0Il1dLFsicGUiLFsicGFkZGluZy1pbmxpbmUtZW5kIl1dLFsicHQiLFsicGFkZGluZy10b3AiXV0sWyJwciIsWyJwYWRkaW5nLXJpZ2h0Il1dLFsicGIiLFsicGFkZGluZy1ib3R0b20iXV0sWyJwbCIsWyJwYWRkaW5nLWxlZnQiXV1dXSksdGV4dEFsaWduOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIudGV4dC1sZWZ0Ijp7InRleHQtYWxpZ24iOiJsZWZ0In0sIi50ZXh0LWNlbnRlciI6eyJ0ZXh0LWFsaWduIjoiY2VudGVyIn0sIi50ZXh0LXJpZ2h0Ijp7InRleHQtYWxpZ24iOiJyaWdodCJ9LCIudGV4dC1qdXN0aWZ5Ijp7InRleHQtYWxpZ24iOiJqdXN0aWZ5In0sIi50ZXh0LXN0YXJ0Ijp7InRleHQtYWxpZ24iOiJzdGFydCJ9LCIudGV4dC1lbmQiOnsidGV4dC1hbGlnbiI6ImVuZCJ9fSl9LHRleHRJbmRlbnQ6TCgidGV4dEluZGVudCIsW1siaW5kZW50IixbInRleHQtaW5kZW50Il1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHZlcnRpY2FsQWxpZ246KHthZGRVdGlsaXRpZXM6cixtYXRjaFV0aWxpdGllczplfSk9PntyKHsiLmFsaWduLWJhc2VsaW5lIjp7InZlcnRpY2FsLWFsaWduIjoiYmFzZWxpbmUifSwiLmFsaWduLXRvcCI6eyJ2ZXJ0aWNhbC1hbGlnbiI6InRvcCJ9LCIuYWxpZ24tbWlkZGxlIjp7InZlcnRpY2FsLWFsaWduIjoibWlkZGxlIn0sIi5hbGlnbi1ib3R0b20iOnsidmVydGljYWwtYWxpZ24iOiJib3R0b20ifSwiLmFsaWduLXRleHQtdG9wIjp7InZlcnRpY2FsLWFsaWduIjoidGV4dC10b3AifSwiLmFsaWduLXRleHQtYm90dG9tIjp7InZlcnRpY2FsLWFsaWduIjoidGV4dC1ib3R0b20ifSwiLmFsaWduLXN1YiI6eyJ2ZXJ0aWNhbC1hbGlnbiI6InN1YiJ9LCIuYWxpZ24tc3VwZXIiOnsidmVydGljYWwtYWxpZ24iOiJzdXBlciJ9fSksZSh7YWxpZ246dD0+KHsidmVydGljYWwtYWxpZ24iOnR9KX0pfSxmb250RmFtaWx5Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtmb250OnQ9PntsZXRbaSxuPXt9XT1BcnJheS5pc0FycmF5KHQpJiZrZSh0WzFdKT90Olt0XSx7Zm9udEZlYXR1cmVTZXR0aW5nczpzLGZvbnRWYXJpYXRpb25TZXR0aW5nczphfT1uO3JldHVybnsiZm9udC1mYW1pbHkiOkFycmF5LmlzQXJyYXkoaSk/aS5qb2luKCIsICIpOmksLi4ucz09PXZvaWQgMD97fTp7ImZvbnQtZmVhdHVyZS1zZXR0aW5ncyI6c30sLi4uYT09PXZvaWQgMD97fTp7ImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIjphfX19fSx7dmFsdWVzOmUoImZvbnRGYW1pbHkiKSx0eXBlOlsibG9va3VwIiwiZ2VuZXJpYy1uYW1lIiwiZmFtaWx5LW5hbWUiXX0pfSxmb250U2l6ZTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7dGV4dDoodCx7bW9kaWZpZXI6aX0pPT57bGV0W24sc109QXJyYXkuaXNBcnJheSh0KT90Olt0XTtpZihpKXJldHVybnsiZm9udC1zaXplIjpuLCJsaW5lLWhlaWdodCI6aX07bGV0e2xpbmVIZWlnaHQ6YSxsZXR0ZXJTcGFjaW5nOm8sZm9udFdlaWdodDpsfT1rZShzKT9zOntsaW5lSGVpZ2h0OnN9O3JldHVybnsiZm9udC1zaXplIjpuLC4uLmE9PT12b2lkIDA/e306eyJsaW5lLWhlaWdodCI6YX0sLi4ubz09PXZvaWQgMD97fTp7ImxldHRlci1zcGFjaW5nIjpvfSwuLi5sPT09dm9pZCAwP3t9OnsiZm9udC13ZWlnaHQiOmx9fX19LHt2YWx1ZXM6ZSgiZm9udFNpemUiKSxtb2RpZmllcnM6ZSgibGluZUhlaWdodCIpLHR5cGU6WyJhYnNvbHV0ZS1zaXplIiwicmVsYXRpdmUtc2l6ZSIsImxlbmd0aCIsInBlcmNlbnRhZ2UiXX0pfSxmb250V2VpZ2h0OkwoImZvbnRXZWlnaHQiLFtbImZvbnQiLFsiZm9udFdlaWdodCJdXV0se3R5cGU6WyJsb29rdXAiLCJudW1iZXIiLCJhbnkiXX0pLHRleHRUcmFuc2Zvcm06KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii51cHBlcmNhc2UiOnsidGV4dC10cmFuc2Zvcm0iOiJ1cHBlcmNhc2UifSwiLmxvd2VyY2FzZSI6eyJ0ZXh0LXRyYW5zZm9ybSI6Imxvd2VyY2FzZSJ9LCIuY2FwaXRhbGl6ZSI6eyJ0ZXh0LXRyYW5zZm9ybSI6ImNhcGl0YWxpemUifSwiLm5vcm1hbC1jYXNlIjp7InRleHQtdHJhbnNmb3JtIjoibm9uZSJ9fSl9LGZvbnRTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLml0YWxpYyI6eyJmb250LXN0eWxlIjoiaXRhbGljIn0sIi5ub3QtaXRhbGljIjp7ImZvbnQtc3R5bGUiOiJub3JtYWwifX0pfSxmb250VmFyaWFudE51bWVyaWM6KHthZGREZWZhdWx0czpyLGFkZFV0aWxpdGllczplfSk9PntsZXQgdD0idmFyKC0tdHctb3JkaW5hbCkgdmFyKC0tdHctc2xhc2hlZC16ZXJvKSB2YXIoLS10dy1udW1lcmljLWZpZ3VyZSkgdmFyKC0tdHctbnVtZXJpYy1zcGFjaW5nKSB2YXIoLS10dy1udW1lcmljLWZyYWN0aW9uKSI7cigiZm9udC12YXJpYW50LW51bWVyaWMiLHsiLS10dy1vcmRpbmFsIjoiICIsIi0tdHctc2xhc2hlZC16ZXJvIjoiICIsIi0tdHctbnVtZXJpYy1maWd1cmUiOiIgIiwiLS10dy1udW1lcmljLXNwYWNpbmciOiIgIiwiLS10dy1udW1lcmljLWZyYWN0aW9uIjoiICJ9KSxlKHsiLm5vcm1hbC1udW1zIjp7ImZvbnQtdmFyaWFudC1udW1lcmljIjoibm9ybWFsIn0sIi5vcmRpbmFsIjp7IkBkZWZhdWx0cyBmb250LXZhcmlhbnQtbnVtZXJpYyI6e30sIi0tdHctb3JkaW5hbCI6Im9yZGluYWwiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5zbGFzaGVkLXplcm8iOnsiQGRlZmF1bHRzIGZvbnQtdmFyaWFudC1udW1lcmljIjp7fSwiLS10dy1zbGFzaGVkLXplcm8iOiJzbGFzaGVkLXplcm8iLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5saW5pbmctbnVtcyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZmlndXJlIjoibGluaW5nLW51bXMiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5vbGRzdHlsZS1udW1zIjp7IkBkZWZhdWx0cyBmb250LXZhcmlhbnQtbnVtZXJpYyI6e30sIi0tdHctbnVtZXJpYy1maWd1cmUiOiJvbGRzdHlsZS1udW1zIiwiZm9udC12YXJpYW50LW51bWVyaWMiOnR9LCIucHJvcG9ydGlvbmFsLW51bXMiOnsiQGRlZmF1bHRzIGZvbnQtdmFyaWFudC1udW1lcmljIjp7fSwiLS10dy1udW1lcmljLXNwYWNpbmciOiJwcm9wb3J0aW9uYWwtbnVtcyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fSwiLnRhYnVsYXItbnVtcyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtc3BhY2luZyI6InRhYnVsYXItbnVtcyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fSwiLmRpYWdvbmFsLWZyYWN0aW9ucyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZnJhY3Rpb24iOiJkaWFnb25hbC1mcmFjdGlvbnMiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5zdGFja2VkLWZyYWN0aW9ucyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZnJhY3Rpb24iOiJzdGFja2VkLWZyYWN0aW9ucyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fX0pfSxsaW5lSGVpZ2h0OkwoImxpbmVIZWlnaHQiLFtbImxlYWRpbmciLFsibGluZUhlaWdodCJdXV0pLGxldHRlclNwYWNpbmc6TCgibGV0dGVyU3BhY2luZyIsW1sidHJhY2tpbmciLFsibGV0dGVyU3BhY2luZyJdXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSx0ZXh0Q29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7dGV4dDppPT50KCJ0ZXh0T3BhY2l0eSIpP0FlKHtjb2xvcjppLHByb3BlcnR5OiJjb2xvciIsdmFyaWFibGU6Ii0tdHctdGV4dC1vcGFjaXR5In0pOntjb2xvcjpYKGkpfX0se3ZhbHVlczp4ZShlKCJ0ZXh0Q29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sdGV4dE9wYWNpdHk6TCgidGV4dE9wYWNpdHkiLFtbInRleHQtb3BhY2l0eSIsWyItLXR3LXRleHQtb3BhY2l0eSJdXV0pLHRleHREZWNvcmF0aW9uOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIudW5kZXJsaW5lIjp7InRleHQtZGVjb3JhdGlvbi1saW5lIjoidW5kZXJsaW5lIn0sIi5vdmVybGluZSI6eyJ0ZXh0LWRlY29yYXRpb24tbGluZSI6Im92ZXJsaW5lIn0sIi5saW5lLXRocm91Z2giOnsidGV4dC1kZWNvcmF0aW9uLWxpbmUiOiJsaW5lLXRocm91Z2gifSwiLm5vLXVuZGVybGluZSI6eyJ0ZXh0LWRlY29yYXRpb24tbGluZSI6Im5vbmUifX0pfSx0ZXh0RGVjb3JhdGlvbkNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtkZWNvcmF0aW9uOnQ9Pih7InRleHQtZGVjb3JhdGlvbi1jb2xvciI6WCh0KX0pfSx7dmFsdWVzOnhlKGUoInRleHREZWNvcmF0aW9uQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sdGV4dERlY29yYXRpb25TdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRlY29yYXRpb24tc29saWQiOnsidGV4dC1kZWNvcmF0aW9uLXN0eWxlIjoic29saWQifSwiLmRlY29yYXRpb24tZG91YmxlIjp7InRleHQtZGVjb3JhdGlvbi1zdHlsZSI6ImRvdWJsZSJ9LCIuZGVjb3JhdGlvbi1kb3R0ZWQiOnsidGV4dC1kZWNvcmF0aW9uLXN0eWxlIjoiZG90dGVkIn0sIi5kZWNvcmF0aW9uLWRhc2hlZCI6eyJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiOiJkYXNoZWQifSwiLmRlY29yYXRpb24td2F2eSI6eyJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiOiJ3YXZ5In19KX0sdGV4dERlY29yYXRpb25UaGlja25lc3M6TCgidGV4dERlY29yYXRpb25UaGlja25lc3MiLFtbImRlY29yYXRpb24iLFsidGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyJdXV0se3R5cGU6WyJsZW5ndGgiLCJwZXJjZW50YWdlIl19KSx0ZXh0VW5kZXJsaW5lT2Zmc2V0OkwoInRleHRVbmRlcmxpbmVPZmZzZXQiLFtbInVuZGVybGluZS1vZmZzZXQiLFsidGV4dC11bmRlcmxpbmUtb2Zmc2V0Il1dXSx7dHlwZTpbImxlbmd0aCIsInBlcmNlbnRhZ2UiLCJhbnkiXX0pLGZvbnRTbW9vdGhpbmc6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5hbnRpYWxpYXNlZCI6eyItd2Via2l0LWZvbnQtc21vb3RoaW5nIjoiYW50aWFsaWFzZWQiLCItbW96LW9zeC1mb250LXNtb290aGluZyI6ImdyYXlzY2FsZSJ9LCIuc3VicGl4ZWwtYW50aWFsaWFzZWQiOnsiLXdlYmtpdC1mb250LXNtb290aGluZyI6ImF1dG8iLCItbW96LW9zeC1mb250LXNtb290aGluZyI6ImF1dG8ifX0pfSxwbGFjZWhvbGRlckNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe3BsYWNlaG9sZGVyOmk9PnQoInBsYWNlaG9sZGVyT3BhY2l0eSIpP3siJjo6cGxhY2Vob2xkZXIiOkFlKHtjb2xvcjppLHByb3BlcnR5OiJjb2xvciIsdmFyaWFibGU6Ii0tdHctcGxhY2Vob2xkZXItb3BhY2l0eSJ9KX06eyImOjpwbGFjZWhvbGRlciI6e2NvbG9yOlgoaSl9fX0se3ZhbHVlczp4ZShlKCJwbGFjZWhvbGRlckNvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LHBsYWNlaG9sZGVyT3BhY2l0eTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7InBsYWNlaG9sZGVyLW9wYWNpdHkiOnQ9Pih7WyImOjpwbGFjZWhvbGRlciJdOnsiLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5Ijp0fX0pfSx7dmFsdWVzOmUoInBsYWNlaG9sZGVyT3BhY2l0eSIpfSl9LGNhcmV0Q29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2NhcmV0OnQ9Pih7ImNhcmV0LWNvbG9yIjpYKHQpfSl9LHt2YWx1ZXM6eGUoZSgiY2FyZXRDb2xvciIpKSx0eXBlOlsiY29sb3IiLCJhbnkiXX0pfSxhY2NlbnRDb2xvcjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7YWNjZW50OnQ9Pih7ImFjY2VudC1jb2xvciI6WCh0KX0pfSx7dmFsdWVzOnhlKGUoImFjY2VudENvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LG9wYWNpdHk6TCgib3BhY2l0eSIsW1sib3BhY2l0eSIsWyJvcGFjaXR5Il1dXSksYmFja2dyb3VuZEJsZW5kTW9kZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLWJsZW5kLW5vcm1hbCI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJub3JtYWwifSwiLmJnLWJsZW5kLW11bHRpcGx5Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Im11bHRpcGx5In0sIi5iZy1ibGVuZC1zY3JlZW4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoic2NyZWVuIn0sIi5iZy1ibGVuZC1vdmVybGF5Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Im92ZXJsYXkifSwiLmJnLWJsZW5kLWRhcmtlbiI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJkYXJrZW4ifSwiLmJnLWJsZW5kLWxpZ2h0ZW4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoibGlnaHRlbiJ9LCIuYmctYmxlbmQtY29sb3ItZG9kZ2UiOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiY29sb3ItZG9kZ2UifSwiLmJnLWJsZW5kLWNvbG9yLWJ1cm4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiY29sb3ItYnVybiJ9LCIuYmctYmxlbmQtaGFyZC1saWdodCI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJoYXJkLWxpZ2h0In0sIi5iZy1ibGVuZC1zb2Z0LWxpZ2h0Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6InNvZnQtbGlnaHQifSwiLmJnLWJsZW5kLWRpZmZlcmVuY2UiOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiZGlmZmVyZW5jZSJ9LCIuYmctYmxlbmQtZXhjbHVzaW9uIjp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6ImV4Y2x1c2lvbiJ9LCIuYmctYmxlbmQtaHVlIjp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Imh1ZSJ9LCIuYmctYmxlbmQtc2F0dXJhdGlvbiI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJzYXR1cmF0aW9uIn0sIi5iZy1ibGVuZC1jb2xvciI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJjb2xvciJ9LCIuYmctYmxlbmQtbHVtaW5vc2l0eSI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJsdW1pbm9zaXR5In19KX0sbWl4QmxlbmRNb2RlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIubWl4LWJsZW5kLW5vcm1hbCI6eyJtaXgtYmxlbmQtbW9kZSI6Im5vcm1hbCJ9LCIubWl4LWJsZW5kLW11bHRpcGx5Ijp7Im1peC1ibGVuZC1tb2RlIjoibXVsdGlwbHkifSwiLm1peC1ibGVuZC1zY3JlZW4iOnsibWl4LWJsZW5kLW1vZGUiOiJzY3JlZW4ifSwiLm1peC1ibGVuZC1vdmVybGF5Ijp7Im1peC1ibGVuZC1tb2RlIjoib3ZlcmxheSJ9LCIubWl4LWJsZW5kLWRhcmtlbiI6eyJtaXgtYmxlbmQtbW9kZSI6ImRhcmtlbiJ9LCIubWl4LWJsZW5kLWxpZ2h0ZW4iOnsibWl4LWJsZW5kLW1vZGUiOiJsaWdodGVuIn0sIi5taXgtYmxlbmQtY29sb3ItZG9kZ2UiOnsibWl4LWJsZW5kLW1vZGUiOiJjb2xvci1kb2RnZSJ9LCIubWl4LWJsZW5kLWNvbG9yLWJ1cm4iOnsibWl4LWJsZW5kLW1vZGUiOiJjb2xvci1idXJuIn0sIi5taXgtYmxlbmQtaGFyZC1saWdodCI6eyJtaXgtYmxlbmQtbW9kZSI6ImhhcmQtbGlnaHQifSwiLm1peC1ibGVuZC1zb2Z0LWxpZ2h0Ijp7Im1peC1ibGVuZC1tb2RlIjoic29mdC1saWdodCJ9LCIubWl4LWJsZW5kLWRpZmZlcmVuY2UiOnsibWl4LWJsZW5kLW1vZGUiOiJkaWZmZXJlbmNlIn0sIi5taXgtYmxlbmQtZXhjbHVzaW9uIjp7Im1peC1ibGVuZC1tb2RlIjoiZXhjbHVzaW9uIn0sIi5taXgtYmxlbmQtaHVlIjp7Im1peC1ibGVuZC1tb2RlIjoiaHVlIn0sIi5taXgtYmxlbmQtc2F0dXJhdGlvbiI6eyJtaXgtYmxlbmQtbW9kZSI6InNhdHVyYXRpb24ifSwiLm1peC1ibGVuZC1jb2xvciI6eyJtaXgtYmxlbmQtbW9kZSI6ImNvbG9yIn0sIi5taXgtYmxlbmQtbHVtaW5vc2l0eSI6eyJtaXgtYmxlbmQtbW9kZSI6Imx1bWlub3NpdHkifSwiLm1peC1ibGVuZC1wbHVzLWRhcmtlciI6eyJtaXgtYmxlbmQtbW9kZSI6InBsdXMtZGFya2VyIn0sIi5taXgtYmxlbmQtcGx1cy1saWdodGVyIjp7Im1peC1ibGVuZC1tb2RlIjoicGx1cy1saWdodGVyIn19KX0sYm94U2hhZG93OigoKT0+e2xldCByPW10KCJib3hTaGFkb3ciKSxlPVsidmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApIiwidmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCkiLCJ2YXIoLS10dy1zaGFkb3cpIl0uam9pbigiLCAiKTtyZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnQsYWRkRGVmYXVsdHM6aSx0aGVtZTpufSl7aSgiYm94LXNoYWRvdyIseyItLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctcmluZy1zaGFkb3ciOiIwIDAgIzAwMDAiLCItLXR3LXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctc2hhZG93LWNvbG9yZWQiOiIwIDAgIzAwMDAifSksdCh7c2hhZG93OnM9PntzPXIocyk7bGV0IGE9ZW4ocyk7Zm9yKGxldCBvIG9mIGEpIW8udmFsaWR8fChvLmNvbG9yPSJ2YXIoLS10dy1zaGFkb3ctY29sb3IpIik7cmV0dXJueyJAZGVmYXVsdHMgYm94LXNoYWRvdyI6e30sIi0tdHctc2hhZG93IjpzPT09Im5vbmUiPyIwIDAgIzAwMDAiOnMsIi0tdHctc2hhZG93LWNvbG9yZWQiOnM9PT0ibm9uZSI/IjAgMCAjMDAwMCI6TGYoYSksImJveC1zaGFkb3ciOmV9fX0se3ZhbHVlczpuKCJib3hTaGFkb3ciKSx0eXBlOlsic2hhZG93Il19KX19KSgpLGJveFNoYWRvd0NvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtzaGFkb3c6dD0+KHsiLS10dy1zaGFkb3ctY29sb3IiOlgodCksIi0tdHctc2hhZG93IjoidmFyKC0tdHctc2hhZG93LWNvbG9yZWQpIn0pfSx7dmFsdWVzOnhlKGUoImJveFNoYWRvd0NvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LG91dGxpbmVTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLm91dGxpbmUtbm9uZSI6e291dGxpbmU6IjJweCBzb2xpZCB0cmFuc3BhcmVudCIsIm91dGxpbmUtb2Zmc2V0IjoiMnB4In0sIi5vdXRsaW5lIjp7Im91dGxpbmUtc3R5bGUiOiJzb2xpZCJ9LCIub3V0bGluZS1kYXNoZWQiOnsib3V0bGluZS1zdHlsZSI6ImRhc2hlZCJ9LCIub3V0bGluZS1kb3R0ZWQiOnsib3V0bGluZS1zdHlsZSI6ImRvdHRlZCJ9LCIub3V0bGluZS1kb3VibGUiOnsib3V0bGluZS1zdHlsZSI6ImRvdWJsZSJ9fSl9LG91dGxpbmVXaWR0aDpMKCJvdXRsaW5lV2lkdGgiLFtbIm91dGxpbmUiLFsib3V0bGluZS13aWR0aCJdXV0se3R5cGU6WyJsZW5ndGgiLCJudW1iZXIiLCJwZXJjZW50YWdlIl19KSxvdXRsaW5lT2Zmc2V0OkwoIm91dGxpbmVPZmZzZXQiLFtbIm91dGxpbmUtb2Zmc2V0IixbIm91dGxpbmUtb2Zmc2V0Il1dXSx7dHlwZTpbImxlbmd0aCIsIm51bWJlciIsInBlcmNlbnRhZ2UiLCJhbnkiXSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksb3V0bGluZUNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtvdXRsaW5lOnQ9Pih7Im91dGxpbmUtY29sb3IiOlgodCl9KX0se3ZhbHVlczp4ZShlKCJvdXRsaW5lQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0scmluZ1dpZHRoOih7bWF0Y2hVdGlsaXRpZXM6cixhZGREZWZhdWx0czplLGFkZFV0aWxpdGllczp0LHRoZW1lOmksY29uZmlnOm59KT0+e2xldCBzPSgoKT0+e2lmKHdlKG4oKSwicmVzcGVjdERlZmF1bHRSaW5nQ29sb3JPcGFjaXR5IikpcmV0dXJuIGkoInJpbmdDb2xvci5ERUZBVUxUIik7bGV0IGE9aSgicmluZ09wYWNpdHkuREVGQVVMVCIsIjAuNSIpO3JldHVybiBpKCJyaW5nQ29sb3IiKT8uREVGQVVMVD9KZShpKCJyaW5nQ29sb3IiKT8uREVGQVVMVCxhLGByZ2IoMTQ3IDE5NyAyNTMgLyAke2F9KWApOmByZ2IoMTQ3IDE5NyAyNTMgLyAke2F9KWB9KSgpO2UoInJpbmctd2lkdGgiLHsiLS10dy1yaW5nLWluc2V0IjoiICIsIi0tdHctcmluZy1vZmZzZXQtd2lkdGgiOmkoInJpbmdPZmZzZXRXaWR0aC5ERUZBVUxUIiwiMHB4IiksIi0tdHctcmluZy1vZmZzZXQtY29sb3IiOmkoInJpbmdPZmZzZXRDb2xvci5ERUZBVUxUIiwiI2ZmZiIpLCItLXR3LXJpbmctY29sb3IiOnMsIi0tdHctcmluZy1vZmZzZXQtc2hhZG93IjoiMCAwICMwMDAwIiwiLS10dy1yaW5nLXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctc2hhZG93IjoiMCAwICMwMDAwIiwiLS10dy1zaGFkb3ctY29sb3JlZCI6IjAgMCAjMDAwMCJ9KSxyKHtyaW5nOmE9Pih7IkBkZWZhdWx0cyByaW5nLXdpZHRoIjp7fSwiLS10dy1yaW5nLW9mZnNldC1zaGFkb3ciOiJ2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpIiwiLS10dy1yaW5nLXNoYWRvdyI6YHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoJHthfSArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcilgLCJib3gtc2hhZG93IjpbInZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdykiLCJ2YXIoLS10dy1yaW5nLXNoYWRvdykiLCJ2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCkiXS5qb2luKCIsICIpfSl9LHt2YWx1ZXM6aSgicmluZ1dpZHRoIiksdHlwZToibGVuZ3RoIn0pLHQoeyIucmluZy1pbnNldCI6eyJAZGVmYXVsdHMgcmluZy13aWR0aCI6e30sIi0tdHctcmluZy1pbnNldCI6Imluc2V0In19KX0scmluZ0NvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe3Jpbmc6aT0+dCgicmluZ09wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiLS10dy1yaW5nLWNvbG9yIix2YXJpYWJsZToiLS10dy1yaW5nLW9wYWNpdHkifSk6eyItLXR3LXJpbmctY29sb3IiOlgoaSl9fSx7dmFsdWVzOk9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh4ZShlKCJyaW5nQ29sb3IiKSkpLmZpbHRlcigoW2ldKT0+aSE9PSJERUZBVUxUIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LHJpbmdPcGFjaXR5OnI9PntsZXR7Y29uZmlnOmV9PXI7cmV0dXJuIEwoInJpbmdPcGFjaXR5IixbWyJyaW5nLW9wYWNpdHkiLFsiLS10dy1yaW5nLW9wYWNpdHkiXV1dLHtmaWx0ZXJEZWZhdWx0OiF3ZShlKCksInJlc3BlY3REZWZhdWx0UmluZ0NvbG9yT3BhY2l0eSIpfSkocil9LHJpbmdPZmZzZXRXaWR0aDpMKCJyaW5nT2Zmc2V0V2lkdGgiLFtbInJpbmctb2Zmc2V0IixbIi0tdHctcmluZy1vZmZzZXQtd2lkdGgiXV1dLHt0eXBlOiJsZW5ndGgifSkscmluZ09mZnNldENvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsicmluZy1vZmZzZXQiOnQ9Pih7Ii0tdHctcmluZy1vZmZzZXQtY29sb3IiOlgodCl9KX0se3ZhbHVlczp4ZShlKCJyaW5nT2Zmc2V0Q29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYmx1cjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Ymx1cjp0PT4oeyItLXR3LWJsdXIiOnQudHJpbSgpPT09IiI/IiAiOmBibHVyKCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiYmx1ciIpfSl9LGJyaWdodG5lc3M6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2JyaWdodG5lc3M6dD0+KHsiLS10dy1icmlnaHRuZXNzIjpgYnJpZ2h0bmVzcygke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImJyaWdodG5lc3MiKX0pfSxjb250cmFzdDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Y29udHJhc3Q6dD0+KHsiLS10dy1jb250cmFzdCI6YGNvbnRyYXN0KCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiY29udHJhc3QiKX0pfSxkcm9wU2hhZG93Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiZHJvcC1zaGFkb3ciOnQ9Pih7Ii0tdHctZHJvcC1zaGFkb3ciOkFycmF5LmlzQXJyYXkodCk/dC5tYXAoaT0+YGRyb3Atc2hhZG93KCR7aX0pYCkuam9pbigiICIpOmBkcm9wLXNoYWRvdygke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImRyb3BTaGFkb3ciKX0pfSxncmF5c2NhbGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2dyYXlzY2FsZTp0PT4oeyItLXR3LWdyYXlzY2FsZSI6YGdyYXlzY2FsZSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImdyYXlzY2FsZSIpfSl9LGh1ZVJvdGF0ZTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Imh1ZS1yb3RhdGUiOnQ9Pih7Ii0tdHctaHVlLXJvdGF0ZSI6YGh1ZS1yb3RhdGUoJHt0fSlgLCJAZGVmYXVsdHMgZmlsdGVyIjp7fSxmaWx0ZXI6bnR9KX0se3ZhbHVlczplKCJodWVSb3RhdGUiKSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSl9LGludmVydDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7aW52ZXJ0OnQ9Pih7Ii0tdHctaW52ZXJ0IjpgaW52ZXJ0KCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiaW52ZXJ0Iil9KX0sc2F0dXJhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe3NhdHVyYXRlOnQ9Pih7Ii0tdHctc2F0dXJhdGUiOmBzYXR1cmF0ZSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoInNhdHVyYXRlIil9KX0sc2VwaWE6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe3NlcGlhOnQ9Pih7Ii0tdHctc2VwaWEiOmBzZXBpYSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoInNlcGlhIil9KX0sZmlsdGVyOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57cigiZmlsdGVyIix7Ii0tdHctYmx1ciI6IiAiLCItLXR3LWJyaWdodG5lc3MiOiIgIiwiLS10dy1jb250cmFzdCI6IiAiLCItLXR3LWdyYXlzY2FsZSI6IiAiLCItLXR3LWh1ZS1yb3RhdGUiOiIgIiwiLS10dy1pbnZlcnQiOiIgIiwiLS10dy1zYXR1cmF0ZSI6IiAiLCItLXR3LXNlcGlhIjoiICIsIi0tdHctZHJvcC1zaGFkb3ciOiIgIn0pLGUoeyIuZmlsdGVyIjp7IkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0sIi5maWx0ZXItbm9uZSI6e2ZpbHRlcjoibm9uZSJ9fSl9LGJhY2tkcm9wQmx1cjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ImJhY2tkcm9wLWJsdXIiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtYmx1ciI6dC50cmltKCk9PT0iIj8iICI6YGJsdXIoJHt0fSlgLCJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSl9LHt2YWx1ZXM6ZSgiYmFja2Ryb3BCbHVyIil9KX0sYmFja2Ryb3BCcmlnaHRuZXNzOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3AtYnJpZ2h0bmVzcyI6dD0+KHsiLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzIjpgYnJpZ2h0bmVzcygke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcEJyaWdodG5lc3MiKX0pfSxiYWNrZHJvcENvbnRyYXN0Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3AtY29udHJhc3QiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtY29udHJhc3QiOmBjb250cmFzdCgke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcENvbnRyYXN0Iil9KX0sYmFja2Ryb3BHcmF5c2NhbGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1ncmF5c2NhbGUiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtZ3JheXNjYWxlIjpgZ3JheXNjYWxlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wR3JheXNjYWxlIil9KX0sYmFja2Ryb3BIdWVSb3RhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1odWUtcm90YXRlIjp0PT4oeyItLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUiOmBodWUtcm90YXRlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wSHVlUm90YXRlIiksc3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pfSxiYWNrZHJvcEludmVydDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ImJhY2tkcm9wLWludmVydCI6dD0+KHsiLS10dy1iYWNrZHJvcC1pbnZlcnQiOmBpbnZlcnQoJHt0fSlgLCJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSl9LHt2YWx1ZXM6ZSgiYmFja2Ryb3BJbnZlcnQiKX0pfSxiYWNrZHJvcE9wYWNpdHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1vcGFjaXR5Ijp0PT4oeyItLXR3LWJhY2tkcm9wLW9wYWNpdHkiOmBvcGFjaXR5KCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wT3BhY2l0eSIpfSl9LGJhY2tkcm9wU2F0dXJhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1zYXR1cmF0ZSI6dD0+KHsiLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSI6YHNhdHVyYXRlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wU2F0dXJhdGUiKX0pfSxiYWNrZHJvcFNlcGlhOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3Atc2VwaWEiOnQ9Pih7Ii0tdHctYmFja2Ryb3Atc2VwaWEiOmBzZXBpYSgke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcFNlcGlhIil9KX0sYmFja2Ryb3BGaWx0ZXI6KHthZGREZWZhdWx0czpyLGFkZFV0aWxpdGllczplfSk9PntyKCJiYWNrZHJvcC1maWx0ZXIiLHsiLS10dy1iYWNrZHJvcC1ibHVyIjoiICIsIi0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcyI6IiAiLCItLXR3LWJhY2tkcm9wLWNvbnRyYXN0IjoiICIsIi0tdHctYmFja2Ryb3AtZ3JheXNjYWxlIjoiICIsIi0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSI6IiAiLCItLXR3LWJhY2tkcm9wLWludmVydCI6IiAiLCItLXR3LWJhY2tkcm9wLW9wYWNpdHkiOiIgIiwiLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSI6IiAiLCItLXR3LWJhY2tkcm9wLXNlcGlhIjoiICJ9KSxlKHsiLmJhY2tkcm9wLWZpbHRlciI6eyJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSwiLmJhY2tkcm9wLWZpbHRlci1ub25lIjp7Ii13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjoibm9uZSIsImJhY2tkcm9wLWZpbHRlciI6Im5vbmUifX0pfSx0cmFuc2l0aW9uUHJvcGVydHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e2xldCB0PWUoInRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbi5ERUZBVUxUIiksaT1lKCJ0cmFuc2l0aW9uRHVyYXRpb24uREVGQVVMVCIpO3Ioe3RyYW5zaXRpb246bj0+KHsidHJhbnNpdGlvbi1wcm9wZXJ0eSI6biwuLi5uPT09Im5vbmUiP3t9OnsidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24iOnQsInRyYW5zaXRpb24tZHVyYXRpb24iOml9fSl9LHt2YWx1ZXM6ZSgidHJhbnNpdGlvblByb3BlcnR5Iil9KX0sdHJhbnNpdGlvbkRlbGF5OkwoInRyYW5zaXRpb25EZWxheSIsW1siZGVsYXkiLFsidHJhbnNpdGlvbkRlbGF5Il1dXSksdHJhbnNpdGlvbkR1cmF0aW9uOkwoInRyYW5zaXRpb25EdXJhdGlvbiIsW1siZHVyYXRpb24iLFsidHJhbnNpdGlvbkR1cmF0aW9uIl1dXSx7ZmlsdGVyRGVmYXVsdDohMH0pLHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpMKCJ0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLFtbImVhc2UiLFsidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIl1dXSx7ZmlsdGVyRGVmYXVsdDohMH0pLHdpbGxDaGFuZ2U6TCgid2lsbENoYW5nZSIsW1sid2lsbC1jaGFuZ2UiLFsid2lsbC1jaGFuZ2UiXV1dKSxjb250YWluOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57bGV0IHQ9InZhcigtLXR3LWNvbnRhaW4tc2l6ZSkgdmFyKC0tdHctY29udGFpbi1sYXlvdXQpIHZhcigtLXR3LWNvbnRhaW4tcGFpbnQpIHZhcigtLXR3LWNvbnRhaW4tc3R5bGUpIjtyKCJjb250YWluIix7Ii0tdHctY29udGFpbi1zaXplIjoiICIsIi0tdHctY29udGFpbi1sYXlvdXQiOiIgIiwiLS10dy1jb250YWluLXBhaW50IjoiICIsIi0tdHctY29udGFpbi1zdHlsZSI6IiAifSksZSh7Ii5jb250YWluLW5vbmUiOntjb250YWluOiJub25lIn0sIi5jb250YWluLWNvbnRlbnQiOntjb250YWluOiJjb250ZW50In0sIi5jb250YWluLXN0cmljdCI6e2NvbnRhaW46InN0cmljdCJ9LCIuY29udGFpbi1zaXplIjp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXNpemUiOiJzaXplIixjb250YWluOnR9LCIuY29udGFpbi1pbmxpbmUtc2l6ZSI6eyJAZGVmYXVsdHMgY29udGFpbiI6e30sIi0tdHctY29udGFpbi1zaXplIjoiaW5saW5lLXNpemUiLGNvbnRhaW46dH0sIi5jb250YWluLWxheW91dCI6eyJAZGVmYXVsdHMgY29udGFpbiI6e30sIi0tdHctY29udGFpbi1sYXlvdXQiOiJsYXlvdXQiLGNvbnRhaW46dH0sIi5jb250YWluLXBhaW50Ijp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXBhaW50IjoicGFpbnQiLGNvbnRhaW46dH0sIi5jb250YWluLXN0eWxlIjp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXN0eWxlIjoic3R5bGUiLGNvbnRhaW46dH19KX0sY29udGVudDpMKCJjb250ZW50IixbWyJjb250ZW50IixbIi0tdHctY29udGVudCIsWyJjb250ZW50IiwidmFyKC0tdHctY29udGVudCkiXV1dXSksZm9yY2VkQ29sb3JBZGp1c3Q6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5mb3JjZWQtY29sb3ItYWRqdXN0LWF1dG8iOnsiZm9yY2VkLWNvbG9yLWFkanVzdCI6ImF1dG8ifSwiLmZvcmNlZC1jb2xvci1hZGp1c3Qtbm9uZSI6eyJmb3JjZWQtY29sb3ItYWRqdXN0Ijoibm9uZSJ9fSl9fX0pO2Z1bmN0aW9uIGhfKHIpe2lmKHI9PT12b2lkIDApcmV0dXJuITE7aWYocj09PSJ0cnVlInx8cj09PSIxIilyZXR1cm4hMDtpZihyPT09ImZhbHNlInx8cj09PSIwIilyZXR1cm4hMTtpZihyPT09IioiKXJldHVybiEwO2xldCBlPXIuc3BsaXQoIiwiKS5tYXAodD0+dC5zcGxpdCgiOiIpWzBdKTtyZXR1cm4gZS5pbmNsdWRlcygiLXRhaWx3aW5kY3NzIik/ITE6ISFlLmluY2x1ZGVzKCJ0YWlsd2luZGNzcyIpfXZhciBaZSx3aCx2aCxlcyxObyxndCxUaSxJdD1QKCgpPT57dSgpO1plPXR5cGVvZiBtIT0idW5kZWZpbmVkIj97Tk9ERV9FTlY6InByb2R1Y3Rpb24iLERFQlVHOmhfKG0uZW52LkRFQlVHKX06e05PREVfRU5WOiJwcm9kdWN0aW9uIixERUJVRzohMX0sd2g9bmV3IE1hcCx2aD1uZXcgTWFwLGVzPW5ldyBNYXAsTm89bmV3IE1hcCxndD1uZXcgU3RyaW5nKCIqIiksVGk9U3ltYm9sKCJfX05PTkVfXyIpfSk7ZnVuY3Rpb24gY3Iocil7bGV0IGU9W10sdD0hMTtmb3IobGV0IGk9MDtpPHIubGVuZ3RoO2krKyl7bGV0IG49cltpXTtpZihuPT09IjoiJiYhdCYmZS5sZW5ndGg9PT0wKXJldHVybiExO2lmKG1fLmhhcyhuKSYmcltpLTFdIT09IlxcIiYmKHQ9IXQpLCF0JiZyW2ktMV0hPT0iXFwiKXtpZih4aC5oYXMobikpZS5wdXNoKG4pO2Vsc2UgaWYoa2guaGFzKG4pKXtsZXQgcz1raC5nZXQobik7aWYoZS5sZW5ndGg8PTB8fGUucG9wKCkhPT1zKXJldHVybiExfX19cmV0dXJuIShlLmxlbmd0aD4wKX12YXIgeGgsa2gsbV8sQm89UCgoKT0+e3UoKTt4aD1uZXcgTWFwKFtbInsiLCJ9Il0sWyJbIiwiXSJdLFsiKCIsIikiXV0pLGtoPW5ldyBNYXAoQXJyYXkuZnJvbSh4aC5lbnRyaWVzKCkpLm1hcCgoW3IsZV0pPT5bZSxyXSkpLG1fPW5ldyBTZXQoWyciJywiJyIsImAiXSl9KTtmdW5jdGlvbiBwcihyKXtsZXRbZV09U2gocik7cmV0dXJuIGUuZm9yRWFjaCgoW3QsaV0pPT50LnJlbW92ZUNoaWxkKGkpKSxyLm5vZGVzLnB1c2goLi4uZS5tYXAoKFssdF0pPT50KSkscn1mdW5jdGlvbiBTaChyKXtsZXQgZT1bXSx0PW51bGw7Zm9yKGxldCBpIG9mIHIubm9kZXMpaWYoaS50eXBlPT09ImNvbWJpbmF0b3IiKWU9ZS5maWx0ZXIoKFssbl0pPT5qbyhuKS5pbmNsdWRlcygianVtcGFibGUiKSksdD1udWxsO2Vsc2UgaWYoaS50eXBlPT09InBzZXVkbyIpe2dfKGkpPyh0PWksZS5wdXNoKFtyLGksbnVsbF0pKTp0JiZ5XyhpLHQpP2UucHVzaChbcixpLHRdKTp0PW51bGw7Zm9yKGxldCBuIG9mIGkubm9kZXM/P1tdKXtsZXRbcyxhXT1TaChuKTt0PWF8fHQsZS5wdXNoKC4uLnMpfX1yZXR1cm5bZSx0XX1mdW5jdGlvbiBBaChyKXtyZXR1cm4gci52YWx1ZS5zdGFydHNXaXRoKCI6OiIpfHxGb1tyLnZhbHVlXSE9PXZvaWQgMH1mdW5jdGlvbiBnXyhyKXtyZXR1cm4gQWgocikmJmpvKHIpLmluY2x1ZGVzKCJ0ZXJtaW5hbCIpfWZ1bmN0aW9uIHlfKHIsZSl7cmV0dXJuIHIudHlwZSE9PSJwc2V1ZG8ifHxBaChyKT8hMTpqbyhlKS5pbmNsdWRlcygiYWN0aW9uYWJsZSIpfWZ1bmN0aW9uIGpvKHIpe3JldHVybiBGb1tyLnZhbHVlXT8/Rm8uX19kZWZhdWx0X199dmFyIEZvLHRzPVAoKCk9Pnt1KCk7Rm89eyI6OmFmdGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpiYWNrZHJvcCI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjo6YmVmb3JlIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpjdWUiOlsidGVybWluYWwiXSwiOjpjdWUtcmVnaW9uIjpbInRlcm1pbmFsIl0sIjo6Zmlyc3QtbGV0dGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpmaXJzdC1saW5lIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpncmFtbWFyLWVycm9yIjpbInRlcm1pbmFsIl0sIjo6bWFya2VyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpwYXJ0IjpbInRlcm1pbmFsIiwiYWN0aW9uYWJsZSJdLCI6OnBsYWNlaG9sZGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpzZWxlY3Rpb24iOlsidGVybWluYWwiLCJqdW1wYWJsZSJdLCI6OnNsb3R0ZWQiOlsidGVybWluYWwiXSwiOjpzcGVsbGluZy1lcnJvciI6WyJ0ZXJtaW5hbCJdLCI6OnRhcmdldC10ZXh0IjpbInRlcm1pbmFsIl0sIjo6ZmlsZS1zZWxlY3Rvci1idXR0b24iOlsidGVybWluYWwiLCJhY3Rpb25hYmxlIl0sIjo6ZGVlcCI6WyJhY3Rpb25hYmxlIl0sIjo6di1kZWVwIjpbImFjdGlvbmFibGUiXSwiOjpuZy1kZWVwIjpbImFjdGlvbmFibGUiXSwiOmFmdGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOmJlZm9yZSI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjpmaXJzdC1sZXR0ZXIiOlsidGVybWluYWwiLCJqdW1wYWJsZSJdLCI6Zmlyc3QtbGluZSI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjp3aGVyZSI6W10sIjppcyI6W10sIjpoYXMiOltdLF9fZGVmYXVsdF9fOlsidGVybWluYWwiLCJhY3Rpb25hYmxlIl19fSk7ZnVuY3Rpb24gZHIocix7Y29udGV4dDplLGNhbmRpZGF0ZTp0fSl7bGV0IGk9ZT8udGFpbHdpbmRDb25maWcucHJlZml4Pz8iIixuPXIubWFwKGE9PntsZXQgbz0oMCxzdC5kZWZhdWx0KSgpLmFzdFN5bmMoYS5mb3JtYXQpO3JldHVybnsuLi5hLGFzdDphLnJlc3BlY3RQcmVmaXg/dXIoaSxvKTpvfX0pLHM9c3QuZGVmYXVsdC5yb290KHtub2Rlczpbc3QuZGVmYXVsdC5zZWxlY3Rvcih7bm9kZXM6W3N0LmRlZmF1bHQuY2xhc3NOYW1lKHt2YWx1ZTpUZSh0KX0pXX0pXX0pO2ZvcihsZXR7YXN0OmF9b2YgbilbcyxhXT13XyhzLGEpLGEud2Fsa05lc3Rpbmcobz0+by5yZXBsYWNlV2l0aCguLi5zLm5vZGVzWzBdLm5vZGVzKSkscz1hO3JldHVybiBzfWZ1bmN0aW9uIF9oKHIpe2xldCBlPVtdO2Zvcig7ci5wcmV2KCkmJnIucHJldigpLnR5cGUhPT0iY29tYmluYXRvciI7KXI9ci5wcmV2KCk7Zm9yKDtyJiZyLnR5cGUhPT0iY29tYmluYXRvciI7KWUucHVzaChyKSxyPXIubmV4dCgpO3JldHVybiBlfWZ1bmN0aW9uIGJfKHIpe3JldHVybiByLnNvcnQoKGUsdCk9PmUudHlwZT09PSJ0YWciJiZ0LnR5cGU9PT0iY2xhc3MiPy0xOmUudHlwZT09PSJjbGFzcyImJnQudHlwZT09PSJ0YWciPzE6ZS50eXBlPT09ImNsYXNzIiYmdC50eXBlPT09InBzZXVkbyImJnQudmFsdWUuc3RhcnRzV2l0aCgiOjoiKT8tMTplLnR5cGU9PT0icHNldWRvIiYmZS52YWx1ZS5zdGFydHNXaXRoKCI6OiIpJiZ0LnR5cGU9PT0iY2xhc3MiPzE6ci5pbmRleChlKS1yLmluZGV4KHQpKSxyfWZ1bmN0aW9uIFVvKHIsZSl7bGV0IHQ9ITE7ci53YWxrKGk9PntpZihpLnR5cGU9PT0iY2xhc3MiJiZpLnZhbHVlPT09ZSlyZXR1cm4gdD0hMCwhMX0pLHR8fHIucmVtb3ZlKCl9ZnVuY3Rpb24gcnMocixlLHtjb250ZXh0OnQsY2FuZGlkYXRlOmksYmFzZTpufSl7bGV0IHM9dD8udGFpbHdpbmRDb25maWc/LnNlcGFyYXRvcj8/IjoiO249bj8/dmUoaSxzKS5wb3AoKTtsZXQgYT0oMCxzdC5kZWZhdWx0KSgpLmFzdFN5bmMocik7aWYoYS53YWxrQ2xhc3NlcyhmPT57Zi5yYXdzJiZmLnZhbHVlLmluY2x1ZGVzKG4pJiYoZi5yYXdzLnZhbHVlPVRlKCgwLENoLmRlZmF1bHQpKGYucmF3cy52YWx1ZSkpKX0pLGEuZWFjaChmPT5VbyhmLG4pKSxhLmxlbmd0aD09PTApcmV0dXJuIG51bGw7bGV0IG89QXJyYXkuaXNBcnJheShlKT9kcihlLHtjb250ZXh0OnQsY2FuZGlkYXRlOml9KTplO2lmKG89PT1udWxsKXJldHVybiBhLnRvU3RyaW5nKCk7bGV0IGw9c3QuZGVmYXVsdC5jb21tZW50KHt2YWx1ZToiLypfX3NpbXBsZV9fKi8ifSksYz1zdC5kZWZhdWx0LmNvbW1lbnQoe3ZhbHVlOiIvKl9fc2ltcGxlX18qLyJ9KTtyZXR1cm4gYS53YWxrQ2xhc3NlcyhmPT57aWYoZi52YWx1ZSE9PW4pcmV0dXJuO2xldCBkPWYucGFyZW50LHA9by5ub2Rlc1swXS5ub2RlcztpZihkLm5vZGVzLmxlbmd0aD09PTEpe2YucmVwbGFjZVdpdGgoLi4ucCk7cmV0dXJufWxldCBoPV9oKGYpO2QuaW5zZXJ0QmVmb3JlKGhbMF0sbCksZC5pbnNlcnRBZnRlcihoW2gubGVuZ3RoLTFdLGMpO2ZvcihsZXQgdiBvZiBwKWQuaW5zZXJ0QmVmb3JlKGhbMF0sdi5jbG9uZSgpKTtmLnJlbW92ZSgpLGg9X2gobCk7bGV0IGI9ZC5pbmRleChsKTtkLm5vZGVzLnNwbGljZShiLGgubGVuZ3RoLC4uLmJfKHN0LmRlZmF1bHQuc2VsZWN0b3Ioe25vZGVzOmh9KSkubm9kZXMpLGwucmVtb3ZlKCksYy5yZW1vdmUoKX0pLGEud2Fsa1BzZXVkb3MoZj0+e2YudmFsdWU9PT16byYmZi5yZXBsYWNlV2l0aChmLm5vZGVzKX0pLGEuZWFjaChmPT5wcihmKSksYS50b1N0cmluZygpfWZ1bmN0aW9uIHdfKHIsZSl7bGV0IHQ9W107cmV0dXJuIHIud2Fsa1BzZXVkb3MoaT0+e2kudmFsdWU9PT16byYmdC5wdXNoKHtwc2V1ZG86aSx2YWx1ZTppLm5vZGVzWzBdLnRvU3RyaW5nKCl9KX0pLGUud2Fsa1BzZXVkb3MoaT0+e2lmKGkudmFsdWUhPT16bylyZXR1cm47bGV0IG49aS5ub2Rlc1swXS50b1N0cmluZygpLHM9dC5maW5kKGM9PmMudmFsdWU9PT1uKTtpZighcylyZXR1cm47bGV0IGE9W10sbz1pLm5leHQoKTtmb3IoO28mJm8udHlwZSE9PSJjb21iaW5hdG9yIjspYS5wdXNoKG8pLG89by5uZXh0KCk7bGV0IGw9bztzLnBzZXVkby5wYXJlbnQuaW5zZXJ0QWZ0ZXIocy5wc2V1ZG8sc3QuZGVmYXVsdC5zZWxlY3Rvcih7bm9kZXM6YS5tYXAoYz0+Yy5jbG9uZSgpKX0pKSxpLnJlbW92ZSgpLGEuZm9yRWFjaChjPT5jLnJlbW92ZSgpKSxsJiZsLnR5cGU9PT0iY29tYmluYXRvciImJmwucmVtb3ZlKCl9KSxbcixlXX12YXIgc3QsQ2gsem8sVm89UCgoKT0+e3UoKTtzdD1wZShpdCgpKSxDaD1wZShQbigpKTtmcigpO0duKCk7dHMoKTt6dCgpO3pvPSI6bWVyZ2UifSk7ZnVuY3Rpb24gaXMocixlKXtsZXQgdD0oMCxIby5kZWZhdWx0KSgpLmFzdFN5bmMocik7cmV0dXJuIHQuZWFjaChpPT57aS5ub2Rlcy5zb21lKHM9PnMudHlwZT09PSJjb21iaW5hdG9yIikmJihpLm5vZGVzPVtIby5kZWZhdWx0LnBzZXVkbyh7dmFsdWU6IjppcyIsbm9kZXM6W2kuY2xvbmUoKV19KV0pLHByKGkpfSksYCR7ZX0gJHt0LnRvU3RyaW5nKCl9YH12YXIgSG8sV289UCgoKT0+e3UoKTtIbz1wZShpdCgpKTt0cygpfSk7ZnVuY3Rpb24gR28ocil7cmV0dXJuIHZfLnRyYW5zZm9ybVN5bmMocil9ZnVuY3Rpb24qeF8ocil7bGV0IGU9MS8wO2Zvcig7ZT49MDspe2xldCB0LGk9ITE7aWYoZT09PTEvMCYmci5lbmRzV2l0aCgiXSIpKXtsZXQgYT1yLmluZGV4T2YoIlsiKTtyW2EtMV09PT0iLSI/dD1hLTE6clthLTFdPT09Ii8iPyh0PWEtMSxpPSEwKTp0PS0xfWVsc2UgZT09PTEvMCYmci5pbmNsdWRlcygiLyIpPyh0PXIubGFzdEluZGV4T2YoIi8iKSxpPSEwKTp0PXIubGFzdEluZGV4T2YoIi0iLGUpO2lmKHQ8MClicmVhaztsZXQgbj1yLnNsaWNlKDAsdCkscz1yLnNsaWNlKGk/dDp0KzEpO2U9dC0xLCEobj09PSIifHxzPT09Ii8iKSYmKHlpZWxkW24sc10pfX1mdW5jdGlvbiBrXyhyLGUpe2lmKHIubGVuZ3RoPT09MHx8ZS50YWlsd2luZENvbmZpZy5wcmVmaXg9PT0iIilyZXR1cm4gcjtmb3IobGV0IHQgb2Ygcil7bGV0W2ldPXQ7aWYoaS5vcHRpb25zLnJlc3BlY3RQcmVmaXgpe2xldCBuPWVlLnJvb3Qoe25vZGVzOlt0WzFdLmNsb25lKCldfSkscz10WzFdLnJhd3MudGFpbHdpbmQuY2xhc3NDYW5kaWRhdGU7bi53YWxrUnVsZXMoYT0+e2xldCBvPXMuc3RhcnRzV2l0aCgiLSIpO2Euc2VsZWN0b3I9dXIoZS50YWlsd2luZENvbmZpZy5wcmVmaXgsYS5zZWxlY3RvcixvKX0pLHRbMV09bi5ub2Rlc1swXX19cmV0dXJuIHJ9ZnVuY3Rpb24gU18ocixlKXtpZihyLmxlbmd0aD09PTApcmV0dXJuIHI7bGV0IHQ9W107ZnVuY3Rpb24gaShuKXtyZXR1cm4gbi5wYXJlbnQmJm4ucGFyZW50LnR5cGU9PT0iYXRydWxlIiYmbi5wYXJlbnQubmFtZT09PSJrZXlmcmFtZXMifWZvcihsZXRbbixzXW9mIHIpe2xldCBhPWVlLnJvb3Qoe25vZGVzOltzLmNsb25lKCldfSk7YS53YWxrUnVsZXMobz0+e2lmKGkobykpcmV0dXJuO2xldCBsPSgwLG5zLmRlZmF1bHQpKCkuYXN0U3luYyhvLnNlbGVjdG9yKTtsLmVhY2goYz0+VW8oYyxlKSksUWYobCxjPT5jPT09ZT9gISR7Y31gOmMpLG8uc2VsZWN0b3I9bC50b1N0cmluZygpLG8ud2Fsa0RlY2xzKGM9PmMuaW1wb3J0YW50PSEwKX0pLHQucHVzaChbey4uLm4saW1wb3J0YW50OiEwfSxhLm5vZGVzWzBdXSl9cmV0dXJuIHR9ZnVuY3Rpb24gQV8ocixlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gZTtsZXQgaT17bW9kaWZpZXI6bnVsbCx2YWx1ZTpUaX07e2xldFtuLC4uLnNdPXZlKHIsIi8iKTtpZihzLmxlbmd0aD4xJiYobj1uKyIvIitzLnNsaWNlKDAsLTEpLmpvaW4oIi8iKSxzPXMuc2xpY2UoLTEpKSxzLmxlbmd0aCYmIXQudmFyaWFudE1hcC5oYXMocikmJihyPW4saS5tb2RpZmllcj1zWzBdLCF3ZSh0LnRhaWx3aW5kQ29uZmlnLCJnZW5lcmFsaXplZE1vZGlmaWVycyIpKSlyZXR1cm5bXX1pZihyLmVuZHNXaXRoKCJdIikmJiFyLnN0YXJ0c1dpdGgoIlsiKSl7bGV0IG49LyguKSgtPylcWyguKilcXS9nLmV4ZWMocik7aWYobil7bGV0WyxzLGEsb109bjtpZihzPT09IkAiJiZhPT09Ii0iKXJldHVybltdO2lmKHMhPT0iQCImJmE9PT0iIilyZXR1cm5bXTtyPXIucmVwbGFjZShgJHthfVske299XWAsIiIpLGkudmFsdWU9b319aWYoS28ocikmJiF0LnZhcmlhbnRNYXAuaGFzKHIpKXtsZXQgbj10Lm9mZnNldHMucmVjb3JkVmFyaWFudChyKSxzPUsoci5zbGljZSgxLC0xKSksYT12ZShzLCIsIik7aWYoYS5sZW5ndGg+MSlyZXR1cm5bXTtpZighYS5ldmVyeShscykpcmV0dXJuW107bGV0IG89YS5tYXAoKGwsYyk9Plt0Lm9mZnNldHMuYXBwbHlQYXJhbGxlbE9mZnNldChuLGMpLFJpKGwudHJpbSgpKV0pO3QudmFyaWFudE1hcC5zZXQocixvKX1pZih0LnZhcmlhbnRNYXAuaGFzKHIpKXtsZXQgbj1LbyhyKSxzPXQudmFyaWFudE9wdGlvbnMuZ2V0KHIpPy5bUHRdPz97fSxhPXQudmFyaWFudE1hcC5nZXQocikuc2xpY2UoKSxvPVtdLGw9KCgpPT4hKG58fHMucmVzcGVjdFByZWZpeD09PSExKSkoKTtmb3IobGV0W2MsZl1vZiBlKXtpZihjLmxheWVyPT09InVzZXIiKWNvbnRpbnVlO2xldCBkPWVlLnJvb3Qoe25vZGVzOltmLmNsb25lKCldfSk7Zm9yKGxldFtwLGgsYl1vZiBhKXtsZXQgdz1mdW5jdGlvbigpe3YucmF3cy5uZWVkZWRCYWNrdXB8fCh2LnJhd3MubmVlZGVkQmFja3VwPSEwLHYud2Fsa1J1bGVzKFQ9PlQucmF3cy5vcmlnaW5hbFNlbGVjdG9yPVQuc2VsZWN0b3IpKX0saz1mdW5jdGlvbihUKXtyZXR1cm4gdygpLHYuZWFjaChCPT57Qi50eXBlPT09InJ1bGUiJiYoQi5zZWxlY3RvcnM9Qi5zZWxlY3RvcnMubWFwKE49PlQoe2dldCBjbGFzc05hbWUoKXtyZXR1cm4gR28oTil9LHNlbGVjdG9yOk59KSkpfSksdn0sdj0oYj8/ZCkuY2xvbmUoKSx5PVtdLFM9aCh7Z2V0IGNvbnRhaW5lcigpe3JldHVybiB3KCksdn0sc2VwYXJhdG9yOnQudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLG1vZGlmeVNlbGVjdG9yczprLHdyYXAoVCl7bGV0IEI9di5ub2Rlczt2LnJlbW92ZUFsbCgpLFQuYXBwZW5kKEIpLHYuYXBwZW5kKFQpfSxmb3JtYXQoVCl7eS5wdXNoKHtmb3JtYXQ6VCxyZXNwZWN0UHJlZml4Omx9KX0sYXJnczppfSk7aWYoQXJyYXkuaXNBcnJheShTKSl7Zm9yKGxldFtULEJdb2YgUy5lbnRyaWVzKCkpYS5wdXNoKFt0Lm9mZnNldHMuYXBwbHlQYXJhbGxlbE9mZnNldChwLFQpLEIsdi5jbG9uZSgpXSk7Y29udGludWV9aWYodHlwZW9mIFM9PSJzdHJpbmciJiZ5LnB1c2goe2Zvcm1hdDpTLHJlc3BlY3RQcmVmaXg6bH0pLFM9PT1udWxsKWNvbnRpbnVlO3YucmF3cy5uZWVkZWRCYWNrdXAmJihkZWxldGUgdi5yYXdzLm5lZWRlZEJhY2t1cCx2LndhbGtSdWxlcyhUPT57bGV0IEI9VC5yYXdzLm9yaWdpbmFsU2VsZWN0b3I7aWYoIUJ8fChkZWxldGUgVC5yYXdzLm9yaWdpbmFsU2VsZWN0b3IsQj09PVQuc2VsZWN0b3IpKXJldHVybjtsZXQgTj1ULnNlbGVjdG9yLFI9KDAsbnMuZGVmYXVsdCkoRj0+e0Yud2Fsa0NsYXNzZXMoWT0+e1kudmFsdWU9YCR7cn0ke3QudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yfSR7WS52YWx1ZX1gfSl9KS5wcm9jZXNzU3luYyhCKTt5LnB1c2goe2Zvcm1hdDpOLnJlcGxhY2UoUiwiJiIpLHJlc3BlY3RQcmVmaXg6bH0pLFQuc2VsZWN0b3I9Qn0pKSx2Lm5vZGVzWzBdLnJhd3MudGFpbHdpbmQ9ey4uLnYubm9kZXNbMF0ucmF3cy50YWlsd2luZCxwYXJlbnRMYXllcjpjLmxheWVyfTtsZXQgRT1bey4uLmMsc29ydDp0Lm9mZnNldHMuYXBwbHlWYXJpYW50T2Zmc2V0KGMuc29ydCxwLE9iamVjdC5hc3NpZ24oaSx0LnZhcmlhbnRPcHRpb25zLmdldChyKSkpLGNvbGxlY3RlZEZvcm1hdHM6KGMuY29sbGVjdGVkRm9ybWF0cz8/W10pLmNvbmNhdCh5KX0sdi5ub2Rlc1swXV07by5wdXNoKEUpfX1yZXR1cm4gb31yZXR1cm5bXX1mdW5jdGlvbiBRbyhyLGUsdD17fSl7cmV0dXJuIWtlKHIpJiYhQXJyYXkuaXNBcnJheShyKT9bW3JdLHRdOkFycmF5LmlzQXJyYXkocik/UW8oclswXSxlLHJbMV0pOihlLmhhcyhyKXx8ZS5zZXQocixscihyKSksW2UuZ2V0KHIpLHRdKX1mdW5jdGlvbiBfXyhyKXtyZXR1cm4gQ18udGVzdChyKX1mdW5jdGlvbiBFXyhyKXtpZighci5pbmNsdWRlcygiOi8vIikpcmV0dXJuITE7dHJ5e2xldCBlPW5ldyBVUkwocik7cmV0dXJuIGUuc2NoZW1lIT09IiImJmUuaG9zdCE9PSIifWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBFaChyKXtsZXQgZT0hMDtyZXR1cm4gci53YWxrRGVjbHModD0+e2lmKCFPaCh0LnByb3AsdC52YWx1ZSkpcmV0dXJuIGU9ITEsITF9KSxlfWZ1bmN0aW9uIE9oKHIsZSl7aWYoRV8oYCR7cn06JHtlfWApKXJldHVybiExO3RyeXtyZXR1cm4gZWUucGFyc2UoYGF7JHtyfToke2V9fWApLnRvUmVzdWx0KCksITB9Y2F0Y2godCl7cmV0dXJuITF9fWZ1bmN0aW9uIE9fKHIsZSl7bGV0Wyx0LGldPXIubWF0Y2goL15cWyhbYS16QS1aMC05LV9dKyk6KFxTKylcXSQvKT8/W107aWYoaT09PXZvaWQgMHx8IV9fKHQpfHwhY3IoaSkpcmV0dXJuIG51bGw7bGV0IG49SyhpLHtwcm9wZXJ0eTp0fSk7cmV0dXJuIE9oKHQsbik/W1t7c29ydDplLm9mZnNldHMuYXJiaXRyYXJ5UHJvcGVydHkociksbGF5ZXI6InV0aWxpdGllcyIsb3B0aW9uczp7cmVzcGVjdEltcG9ydGFudDohMH19LCgpPT4oe1skbyhyKV06e1t0XTpufX0pXV06bnVsbH1mdW5jdGlvbipUXyhyLGUpe2UuY2FuZGlkYXRlUnVsZU1hcC5oYXMocikmJih5aWVsZFtlLmNhbmRpZGF0ZVJ1bGVNYXAuZ2V0KHIpLCJERUZBVUxUIl0pLHlpZWxkKmZ1bmN0aW9uKihvKXtvIT09bnVsbCYmKHlpZWxkW28sIkRFRkFVTFQiXSl9KE9fKHIsZSkpO2xldCB0PXIsaT0hMSxuPWUudGFpbHdpbmRDb25maWcucHJlZml4LHM9bi5sZW5ndGgsYT10LnN0YXJ0c1dpdGgobil8fHQuc3RhcnRzV2l0aChgLSR7bn1gKTt0W3NdPT09Ii0iJiZhJiYoaT0hMCx0PW4rdC5zbGljZShzKzEpKSxpJiZlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHQpJiYoeWllbGRbZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh0KSwiLURFRkFVTFQiXSk7Zm9yKGxldFtvLGxdb2YgeF8odCkpZS5jYW5kaWRhdGVSdWxlTWFwLmhhcyhvKSYmKHlpZWxkW2UuY2FuZGlkYXRlUnVsZU1hcC5nZXQobyksaT9gLSR7bH1gOmxdKX1mdW5jdGlvbiBSXyhyLGUpe3JldHVybiByPT09Z3Q/W2d0XTp2ZShyLGUpfWZ1bmN0aW9uKlBfKHIsZSl7Zm9yKGxldCB0IG9mIHIpdFsxXS5yYXdzLnRhaWx3aW5kPXsuLi50WzFdLnJhd3MudGFpbHdpbmQsY2xhc3NDYW5kaWRhdGU6ZSxwcmVzZXJ2ZVNvdXJjZTp0WzBdLm9wdGlvbnM/LnByZXNlcnZlU291cmNlPz8hMX0seWllbGQgdH1mdW5jdGlvbipZbyhyLGUpe2xldCB0PWUudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLFtpLC4uLm5dPVJfKHIsdCkucmV2ZXJzZSgpLHM9ITE7aS5zdGFydHNXaXRoKCIhIikmJihzPSEwLGk9aS5zbGljZSgxKSk7Zm9yKGxldCBhIG9mIFRfKGksZSkpe2xldCBvPVtdLGw9bmV3IE1hcCxbYyxmXT1hLGQ9Yy5sZW5ndGg9PT0xO2ZvcihsZXRbcCxoXW9mIGMpe2xldCBiPVtdO2lmKHR5cGVvZiBoPT0iZnVuY3Rpb24iKWZvcihsZXQgdiBvZltdLmNvbmNhdChoKGYse2lzT25seVBsdWdpbjpkfSkpKXtsZXRbeSx3XT1Rbyh2LGUucG9zdENzc05vZGVDYWNoZSk7Zm9yKGxldCBrIG9mIHkpYi5wdXNoKFt7Li4ucCxvcHRpb25zOnsuLi5wLm9wdGlvbnMsLi4ud319LGtdKX1lbHNlIGlmKGY9PT0iREVGQVVMVCJ8fGY9PT0iLURFRkFVTFQiKXtsZXQgdj1oLFt5LHddPVFvKHYsZS5wb3N0Q3NzTm9kZUNhY2hlKTtmb3IobGV0IGsgb2YgeSliLnB1c2goW3suLi5wLG9wdGlvbnM6ey4uLnAub3B0aW9ucywuLi53fX0sa10pfWlmKGIubGVuZ3RoPjApe2xldCB2PUFycmF5LmZyb20odGEocC5vcHRpb25zPy50eXBlcz8/W10sZixwLm9wdGlvbnM/P3t9LGUudGFpbHdpbmRDb25maWcpKS5tYXAoKFt5LHddKT0+dyk7di5sZW5ndGg+MCYmbC5zZXQoYix2KSxvLnB1c2goYil9fWlmKEtvKGYpKXtpZihvLmxlbmd0aD4xKXtsZXQgYj1mdW5jdGlvbih5KXtyZXR1cm4geS5sZW5ndGg9PT0xP3lbMF06eS5maW5kKHc9PntsZXQgaz1sLmdldCh3KTtyZXR1cm4gdy5zb21lKChbe29wdGlvbnM6U30sRV0pPT5FaChFKT9TLnR5cGVzLnNvbWUoKHt0eXBlOlQscHJlZmVyT25Db25mbGljdDpCfSk9PmsuaW5jbHVkZXMoVCkmJkIpOiExKX0pfSxbcCxoXT1vLnJlZHVjZSgoeSx3KT0+KHcuc29tZSgoW3tvcHRpb25zOlN9XSk9PlMudHlwZXMuc29tZSgoe3R5cGU6RX0pPT5FPT09ImFueSIpKT95WzBdLnB1c2godyk6eVsxXS5wdXNoKHcpLHkpLFtbXSxbXV0pLHY9YihoKT8/YihwKTtpZih2KW89W3ZdO2Vsc2V7bGV0IHk9by5tYXAoaz0+bmV3IFNldChbLi4ubC5nZXQoayk/P1tdXSkpO2ZvcihsZXQgayBvZiB5KWZvcihsZXQgUyBvZiBrKXtsZXQgRT0hMTtmb3IobGV0IFQgb2YgeSlrIT09VCYmVC5oYXMoUykmJihULmRlbGV0ZShTKSxFPSEwKTtFJiZrLmRlbGV0ZShTKX1sZXQgdz1bXTtmb3IobGV0W2ssU11vZiB5LmVudHJpZXMoKSlmb3IobGV0IEUgb2YgUyl7bGV0IFQ9b1trXS5tYXAoKFssQl0pPT5CKS5mbGF0KCkubWFwKEI9PkIudG9TdHJpbmcoKS5zcGxpdChgCmApLnNsaWNlKDEsLTEpLm1hcChOPT5OLnRyaW0oKSkubWFwKE49PmAgICAgICAke059YCkuam9pbihgCmApKS5qb2luKGAKCmApO3cucHVzaChgICBVc2UgXGAke3IucmVwbGFjZSgiWyIsYFske0V9OmApfVxgIGZvciBcYCR7VC50cmltKCl9XGBgKTticmVha31HLndhcm4oW2BUaGUgY2xhc3MgXGAke3J9XGAgaXMgYW1iaWd1b3VzIGFuZCBtYXRjaGVzIG11bHRpcGxlIHV0aWxpdGllcy5gLC4uLncsYElmIHRoaXMgaXMgY29udGVudCBhbmQgbm90IGEgY2xhc3MsIHJlcGxhY2UgaXQgd2l0aCBcYCR7ci5yZXBsYWNlKCJbIiwiJmxzcWI7IikucmVwbGFjZSgiXSIsIiZyc3FiOyIpfVxgIHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLmBdKTtjb250aW51ZX19bz1vLm1hcChwPT5wLmZpbHRlcihoPT5FaChoWzFdKSkpfW89by5mbGF0KCksbz1BcnJheS5mcm9tKFBfKG8saSkpLG89a18obyxlKSxzJiYobz1TXyhvLGkpKTtmb3IobGV0IHAgb2YgbilvPUFfKHAsbyxlKTtmb3IobGV0IHAgb2YgbylwWzFdLnJhd3MudGFpbHdpbmQ9ey4uLnBbMV0ucmF3cy50YWlsd2luZCxjYW5kaWRhdGU6cn0scD1JXyhwLHtjb250ZXh0OmUsY2FuZGlkYXRlOnJ9KSxwIT09bnVsbCYmKHlpZWxkIHApfX1mdW5jdGlvbiBJXyhyLHtjb250ZXh0OmUsY2FuZGlkYXRlOnR9KXtpZighclswXS5jb2xsZWN0ZWRGb3JtYXRzKXJldHVybiByO2xldCBpPSEwLG47dHJ5e249ZHIoclswXS5jb2xsZWN0ZWRGb3JtYXRzLHtjb250ZXh0OmUsY2FuZGlkYXRlOnR9KX1jYXRjaHtyZXR1cm4gbnVsbH1sZXQgcz1lZS5yb290KHtub2RlczpbclsxXS5jbG9uZSgpXX0pO3JldHVybiBzLndhbGtSdWxlcyhhPT57aWYoIXNzKGEpKXRyeXtsZXQgbz1ycyhhLnNlbGVjdG9yLG4se2NhbmRpZGF0ZTp0LGNvbnRleHQ6ZX0pO2lmKG89PT1udWxsKXthLnJlbW92ZSgpO3JldHVybn1hLnNlbGVjdG9yPW99Y2F0Y2h7cmV0dXJuIGk9ITEsITF9fSksIWl8fHMubm9kZXMubGVuZ3RoPT09MD9udWxsOihyWzFdPXMubm9kZXNbMF0scil9ZnVuY3Rpb24gc3Mocil7cmV0dXJuIHIucGFyZW50JiZyLnBhcmVudC50eXBlPT09ImF0cnVsZSImJnIucGFyZW50Lm5hbWU9PT0ia2V5ZnJhbWVzIn1mdW5jdGlvbiBEXyhyKXtpZihyPT09ITApcmV0dXJuIGU9PntzcyhlKXx8ZS53YWxrRGVjbHModD0+e3QucGFyZW50LnR5cGU9PT0icnVsZSImJiFzcyh0LnBhcmVudCkmJih0LmltcG9ydGFudD0hMCl9KX07aWYodHlwZW9mIHI9PSJzdHJpbmciKXJldHVybiBlPT57c3MoZSl8fChlLnNlbGVjdG9ycz1lLnNlbGVjdG9ycy5tYXAodD0+aXModCxyKSkpfX1mdW5jdGlvbiBhcyhyLGUsdD0hMSl7bGV0IGk9W10sbj1EXyhlLnRhaWx3aW5kQ29uZmlnLmltcG9ydGFudCk7Zm9yKGxldCBzIG9mIHIpe2lmKGUubm90Q2xhc3NDYWNoZS5oYXMocykpY29udGludWU7aWYoZS5jYW5kaWRhdGVSdWxlQ2FjaGUuaGFzKHMpKXtpPWkuY29uY2F0KEFycmF5LmZyb20oZS5jYW5kaWRhdGVSdWxlQ2FjaGUuZ2V0KHMpKSk7Y29udGludWV9bGV0IGE9QXJyYXkuZnJvbShZbyhzLGUpKTtpZihhLmxlbmd0aD09PTApe2Uubm90Q2xhc3NDYWNoZS5hZGQocyk7Y29udGludWV9ZS5jbGFzc0NhY2hlLnNldChzLGEpO2xldCBvPWUuY2FuZGlkYXRlUnVsZUNhY2hlLmdldChzKT8/bmV3IFNldDtlLmNhbmRpZGF0ZVJ1bGVDYWNoZS5zZXQocyxvKTtmb3IobGV0IGwgb2YgYSl7bGV0W3tzb3J0OmMsb3B0aW9uczpmfSxkXT1sO2lmKGYucmVzcGVjdEltcG9ydGFudCYmbil7bGV0IGg9ZWUucm9vdCh7bm9kZXM6W2QuY2xvbmUoKV19KTtoLndhbGtSdWxlcyhuKSxkPWgubm9kZXNbMF19bGV0IHA9W2MsdD9kLmNsb25lKCk6ZF07by5hZGQocCksZS5ydWxlQ2FjaGUuYWRkKHApLGkucHVzaChwKX19cmV0dXJuIGl9ZnVuY3Rpb24gS28ocil7cmV0dXJuIHIuc3RhcnRzV2l0aCgiWyIpJiZyLmVuZHNXaXRoKCJdIil9dmFyIG5zLHZfLENfLG9zPVAoKCk9Pnt1KCk7T3QoKTtucz1wZShpdCgpKTtxbygpO0t0KCk7R24oKTtGcigpO0JlKCk7SXQoKTtWbygpO0xvKCk7QnIoKTtPaSgpO0JvKCk7enQoKTtjdCgpO1dvKCk7dl89KDAsbnMuZGVmYXVsdCkocj0+ci5maXJzdC5maWx0ZXIoKHt0eXBlOmV9KT0+ZT09PSJjbGFzcyIpLnBvcCgpLnZhbHVlKTtDXz0vXlthLXpfLV0vfSk7dmFyIFRoLFJoPVAoKCk9Pnt1KCk7VGg9e319KTtmdW5jdGlvbiBxXyhyKXt0cnl7cmV0dXJuIFRoLmNyZWF0ZUhhc2goIm1kNSIpLnVwZGF0ZShyLCJ1dGYtOCIpLmRpZ2VzdCgiYmluYXJ5Iil9Y2F0Y2goZSl7cmV0dXJuIiJ9fWZ1bmN0aW9uIFBoKHIsZSl7bGV0IHQ9ZS50b1N0cmluZygpO2lmKCF0LmluY2x1ZGVzKCJAdGFpbHdpbmQiKSlyZXR1cm4hMTtsZXQgaT1Oby5nZXQociksbj1xXyh0KSxzPWkhPT1uO3JldHVybiBOby5zZXQocixuKSxzfXZhciBJaD1QKCgpPT57dSgpO1JoKCk7SXQoKX0pO2Z1bmN0aW9uIHVzKHIpe3JldHVybihyPjBuKS0ocjwwbil9dmFyIERoPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBxaChyLGUpe2xldCB0PTBuLGk9MG47Zm9yKGxldFtuLHNdb2YgZSlyJm4mJih0PXR8bixpPWl8cyk7cmV0dXJuIHImfnR8aX12YXIgJGg9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIExoKHIpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHIpZT1lPz90LGU9ZT50P2U6dDtyZXR1cm4gZX1mdW5jdGlvbiAkXyhyLGUpe2xldCB0PXIubGVuZ3RoLGk9ZS5sZW5ndGgsbj10PGk/dDppO2ZvcihsZXQgcz0wO3M8bjtzKyspe2xldCBhPXIuY2hhckNvZGVBdChzKS1lLmNoYXJDb2RlQXQocyk7aWYoYSE9PTApcmV0dXJuIGF9cmV0dXJuIHQtaX12YXIgWG8sTWg9UCgoKT0+e3UoKTtEaCgpOyRoKCk7WG89Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9mZnNldHM9e2RlZmF1bHRzOjBuLGJhc2U6MG4sY29tcG9uZW50czowbix1dGlsaXRpZXM6MG4sdmFyaWFudHM6MG4sdXNlcjowbn0sdGhpcy5sYXllclBvc2l0aW9ucz17ZGVmYXVsdHM6MG4sYmFzZToxbixjb21wb25lbnRzOjJuLHV0aWxpdGllczozbix1c2VyOjRuLHZhcmlhbnRzOjVufSx0aGlzLnJlc2VydmVkVmFyaWFudEJpdHM9MG4sdGhpcy52YXJpYW50T2Zmc2V0cz1uZXcgTWFwfWNyZWF0ZShlKXtyZXR1cm57bGF5ZXI6ZSxwYXJlbnRMYXllcjplLGFyYml0cmFyeTowbix2YXJpYW50czowbixwYXJhbGxlbEluZGV4OjBuLGluZGV4OnRoaXMub2Zmc2V0c1tlXSsrLHByb3BlcnR5T2Zmc2V0OjBuLHByb3BlcnR5OiIiLG9wdGlvbnM6W119fWFyYml0cmFyeVByb3BlcnR5KGUpe3JldHVybnsuLi50aGlzLmNyZWF0ZSgidXRpbGl0aWVzIiksYXJiaXRyYXJ5OjFuLHByb3BlcnR5OmV9fWZvclZhcmlhbnQoZSx0PTApe2xldCBpPXRoaXMudmFyaWFudE9mZnNldHMuZ2V0KGUpO2lmKGk9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBvZmZzZXQgZm9yIHVua25vd24gdmFyaWFudCAke2V9YCk7cmV0dXJuey4uLnRoaXMuY3JlYXRlKCJ2YXJpYW50cyIpLHZhcmlhbnRzOmk8PEJpZ0ludCh0KX19YXBwbHlWYXJpYW50T2Zmc2V0KGUsdCxpKXtyZXR1cm4gaS52YXJpYW50PXQudmFyaWFudHMsey4uLmUsbGF5ZXI6InZhcmlhbnRzIixwYXJlbnRMYXllcjplLmxheWVyPT09InZhcmlhbnRzIj9lLnBhcmVudExheWVyOmUubGF5ZXIsdmFyaWFudHM6ZS52YXJpYW50c3x0LnZhcmlhbnRzLG9wdGlvbnM6aS5zb3J0P1tdLmNvbmNhdChpLGUub3B0aW9ucyk6ZS5vcHRpb25zLHBhcmFsbGVsSW5kZXg6TGgoW2UucGFyYWxsZWxJbmRleCx0LnBhcmFsbGVsSW5kZXhdKX19YXBwbHlQYXJhbGxlbE9mZnNldChlLHQpe3JldHVybnsuLi5lLHBhcmFsbGVsSW5kZXg6QmlnSW50KHQpfX1yZWNvcmRWYXJpYW50cyhlLHQpe2ZvcihsZXQgaSBvZiBlKXRoaXMucmVjb3JkVmFyaWFudChpLHQoaSkpfXJlY29yZFZhcmlhbnQoZSx0PTEpe3JldHVybiB0aGlzLnZhcmlhbnRPZmZzZXRzLnNldChlLDFuPDx0aGlzLnJlc2VydmVkVmFyaWFudEJpdHMpLHRoaXMucmVzZXJ2ZWRWYXJpYW50Qml0cys9QmlnSW50KHQpLHsuLi50aGlzLmNyZWF0ZSgidmFyaWFudHMiKSx2YXJpYW50czp0aGlzLnZhcmlhbnRPZmZzZXRzLmdldChlKX19Y29tcGFyZShlLHQpe2lmKGUubGF5ZXIhPT10LmxheWVyKXJldHVybiB0aGlzLmxheWVyUG9zaXRpb25zW2UubGF5ZXJdLXRoaXMubGF5ZXJQb3NpdGlvbnNbdC5sYXllcl07aWYoZS5wYXJlbnRMYXllciE9PXQucGFyZW50TGF5ZXIpcmV0dXJuIHRoaXMubGF5ZXJQb3NpdGlvbnNbZS5wYXJlbnRMYXllcl0tdGhpcy5sYXllclBvc2l0aW9uc1t0LnBhcmVudExheWVyXTtmb3IobGV0IGkgb2YgZS5vcHRpb25zKWZvcihsZXQgbiBvZiB0Lm9wdGlvbnMpe2lmKGkuaWQhPT1uLmlkfHwhaS5zb3J0fHwhbi5zb3J0KWNvbnRpbnVlO2xldCBzPUxoKFtpLnZhcmlhbnQsbi52YXJpYW50XSk/PzBuLGE9fihzfHMtMW4pLG89ZS52YXJpYW50cyZhLGw9dC52YXJpYW50cyZhO2lmKG8hPT1sKWNvbnRpbnVlO2xldCBjPWkuc29ydCh7dmFsdWU6aS52YWx1ZSxtb2RpZmllcjppLm1vZGlmaWVyfSx7dmFsdWU6bi52YWx1ZSxtb2RpZmllcjpuLm1vZGlmaWVyfSk7aWYoYyE9PTApcmV0dXJuIGN9cmV0dXJuIGUudmFyaWFudHMhPT10LnZhcmlhbnRzP2UudmFyaWFudHMtdC52YXJpYW50czplLnBhcmFsbGVsSW5kZXghPT10LnBhcmFsbGVsSW5kZXg/ZS5wYXJhbGxlbEluZGV4LXQucGFyYWxsZWxJbmRleDplLmFyYml0cmFyeSE9PXQuYXJiaXRyYXJ5P2UuYXJiaXRyYXJ5LXQuYXJiaXRyYXJ5OmUucHJvcGVydHlPZmZzZXQhPT10LnByb3BlcnR5T2Zmc2V0P2UucHJvcGVydHlPZmZzZXQtdC5wcm9wZXJ0eU9mZnNldDplLmluZGV4LXQuaW5kZXh9cmVjYWxjdWxhdGVWYXJpYW50T2Zmc2V0cygpe2xldCBlPUFycmF5LmZyb20odGhpcy52YXJpYW50T2Zmc2V0cy5lbnRyaWVzKCkpLmZpbHRlcigoW25dKT0+bi5zdGFydHNXaXRoKCJbIikpLnNvcnQoKFtuXSxbc10pPT4kXyhuLHMpKSx0PWUubWFwKChbLG5dKT0+bikuc29ydCgobixzKT0+dXMobi1zKSk7cmV0dXJuIGUubWFwKChbLG5dLHMpPT5bbix0W3NdXSkuZmlsdGVyKChbbixzXSk9Pm4hPT1zKX1yZW1hcEFyYml0cmFyeVZhcmlhbnRPZmZzZXRzKGUpe2xldCB0PXRoaXMucmVjYWxjdWxhdGVWYXJpYW50T2Zmc2V0cygpO3JldHVybiB0Lmxlbmd0aD09PTA/ZTplLm1hcChpPT57bGV0W24sc109aTtyZXR1cm4gbj17Li4ubix2YXJpYW50czpxaChuLnZhcmlhbnRzLHQpfSxbbixzXX0pfXNvcnRBcmJpdHJhcnlQcm9wZXJ0aWVzKGUpe2xldCB0PW5ldyBTZXQ7Zm9yKGxldFthXW9mIGUpYS5hcmJpdHJhcnk9PT0xbiYmdC5hZGQoYS5wcm9wZXJ0eSk7aWYodC5zaXplPT09MClyZXR1cm4gZTtsZXQgaT1BcnJheS5mcm9tKHQpLnNvcnQoKSxuPW5ldyBNYXAscz0xbjtmb3IobGV0IGEgb2YgaSluLnNldChhLHMrKyk7cmV0dXJuIGUubWFwKGE9PntsZXRbbyxsXT1hO3JldHVybiBvPXsuLi5vLHByb3BlcnR5T2Zmc2V0Om4uZ2V0KG8ucHJvcGVydHkpPz8wbn0sW28sbF19KX1zb3J0KGUpe3JldHVybiBlPXRoaXMucmVtYXBBcmJpdHJhcnlWYXJpYW50T2Zmc2V0cyhlKSxlPXRoaXMuc29ydEFyYml0cmFyeVByb3BlcnRpZXMoZSksZS5zb3J0KChbdF0sW2ldKT0+dXModGhpcy5jb21wYXJlKHQsaSkpKX19fSk7ZnVuY3Rpb24gdGwocixlKXtsZXQgdD1yLnRhaWx3aW5kQ29uZmlnLnByZWZpeDtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0K2V9ZnVuY3Rpb24gQmgoe3R5cGU6cj0iYW55IiwuLi5lfSl7bGV0IHQ9W10uY29uY2F0KHIpO3JldHVybnsuLi5lLHR5cGVzOnQubWFwKGk9PkFycmF5LmlzQXJyYXkoaSk/e3R5cGU6aVswXSwuLi5pWzFdfTp7dHlwZTppLHByZWZlck9uQ29uZmxpY3Q6ITF9KX19ZnVuY3Rpb24gTF8ocil7bGV0IGU9W10sdD0iIixpPTA7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspe2xldCBzPXJbbl07aWYocz09PSJcXCIpdCs9IlxcIityWysrbl07ZWxzZSBpZihzPT09InsiKSsraSxlLnB1c2godC50cmltKCkpLHQ9IiI7ZWxzZSBpZihzPT09In0iKXtpZigtLWk8MCl0aHJvdyBuZXcgRXJyb3IoIllvdXIgeyBhbmQgfSBhcmUgdW5iYWxhbmNlZC4iKTtlLnB1c2godC50cmltKCkpLHQ9IiJ9ZWxzZSB0Kz1zfXJldHVybiB0Lmxlbmd0aD4wJiZlLnB1c2godC50cmltKCkpLGU9ZS5maWx0ZXIobj0+biE9PSIiKSxlfWZ1bmN0aW9uIE1fKHIsZSx7YmVmb3JlOnQ9W119PXt9KXtpZih0PVtdLmNvbmNhdCh0KSx0Lmxlbmd0aDw9MCl7ci5wdXNoKGUpO3JldHVybn1sZXQgaT1yLmxlbmd0aC0xO2ZvcihsZXQgbiBvZiB0KXtsZXQgcz1yLmluZGV4T2Yobik7cyE9PS0xJiYoaT1NYXRoLm1pbihpLHMpKX1yLnNwbGljZShpLDAsZSl9ZnVuY3Rpb24gRmgocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5mbGF0TWFwKGU9PiFBcnJheS5pc0FycmF5KGUpJiYha2UoZSk/ZTpscihlKSk6RmgoW3JdKX1mdW5jdGlvbiBOXyhyLGUpe3JldHVybigwLFpvLmRlZmF1bHQpKGk9PntsZXQgbj1bXTtyZXR1cm4gZSYmZShpKSxpLndhbGtDbGFzc2VzKHM9PntuLnB1c2gocy52YWx1ZSl9KSxufSkudHJhbnNmb3JtU3luYyhyKX1mdW5jdGlvbiBCXyhyKXtyLndhbGtQc2V1ZG9zKGU9PntlLnZhbHVlPT09Ijpub3QiJiZlLnJlbW92ZSgpfSl9ZnVuY3Rpb24gRl8ocixlPXtjb250YWluc05vbk9uRGVtYW5kYWJsZTohMX0sdD0wKXtsZXQgaT1bXSxuPVtdO3IudHlwZT09PSJydWxlIj9uLnB1c2goLi4uci5zZWxlY3RvcnMpOnIudHlwZT09PSJhdHJ1bGUiJiZyLndhbGtSdWxlcyhzPT5uLnB1c2goLi4ucy5zZWxlY3RvcnMpKTtmb3IobGV0IHMgb2Ygbil7bGV0IGE9Tl8ocyxCXyk7YS5sZW5ndGg9PT0wJiYoZS5jb250YWluc05vbk9uRGVtYW5kYWJsZT0hMCk7Zm9yKGxldCBvIG9mIGEpaS5wdXNoKG8pfXJldHVybiB0PT09MD9bZS5jb250YWluc05vbk9uRGVtYW5kYWJsZXx8aS5sZW5ndGg9PT0wLGldOml9ZnVuY3Rpb24gZnMocil7cmV0dXJuIEZoKHIpLmZsYXRNYXAoZT0+e2xldCB0PW5ldyBNYXAsW2ksbl09Rl8oZSk7cmV0dXJuIGkmJm4udW5zaGlmdChndCksbi5tYXAocz0+KHQuaGFzKGUpfHx0LnNldChlLGUpLFtzLHQuZ2V0KGUpXSkpfSl9ZnVuY3Rpb24gbHMocil7cmV0dXJuIHIuc3RhcnRzV2l0aCgiQCIpfHxyLmluY2x1ZGVzKCImIil9ZnVuY3Rpb24gUmkocil7cj1yLnJlcGxhY2UoL1xuKy9nLCIiKS5yZXBsYWNlKC9cc3sxLH0vZywiICIpLnRyaW0oKTtsZXQgZT1MXyhyKS5tYXAodD0+e2lmKCF0LnN0YXJ0c1dpdGgoIkAiKSlyZXR1cm4oe2Zvcm1hdDpzfSk9PnModCk7bGV0WyxpLG5dPS9AKFxTKikoIC4rfFsoe10uKik/L2cuZXhlYyh0KTtyZXR1cm4oe3dyYXA6c30pPT5zKGVlLmF0UnVsZSh7bmFtZTppLHBhcmFtczpuPy50cmltKCk/PyIifSkpfSkucmV2ZXJzZSgpO3JldHVybiB0PT57Zm9yKGxldCBpIG9mIGUpaSh0KX19ZnVuY3Rpb24gal8ocixlLHt2YXJpYW50TGlzdDp0LHZhcmlhbnRNYXA6aSxvZmZzZXRzOm4sY2xhc3NMaXN0OnN9KXtmdW5jdGlvbiBhKHAsaCl7cmV0dXJuIHA/KDAsTmguZGVmYXVsdCkocixwLGgpOnJ9ZnVuY3Rpb24gbyhwKXtyZXR1cm4gdXIoci5wcmVmaXgscCl9ZnVuY3Rpb24gbChwLGgpe3JldHVybiBwPT09Z3Q/Z3Q6aC5yZXNwZWN0UHJlZml4P2UudGFpbHdpbmRDb25maWcucHJlZml4K3A6cH1mdW5jdGlvbiBjKHAsaCxiPXt9KXtsZXQgdj1rdChwKSx5PWEoWyJ0aGVtZSIsLi4udl0saCk7cmV0dXJuIG10KHZbMF0pKHksYil9bGV0IGY9MCxkPXtwb3N0Y3NzOmVlLHByZWZpeDpvLGU6VGUsY29uZmlnOmEsdGhlbWU6Yyxjb3JlUGx1Z2luczpwPT5BcnJheS5pc0FycmF5KHIuY29yZVBsdWdpbnMpP3IuY29yZVBsdWdpbnMuaW5jbHVkZXMocCk6YShbImNvcmVQbHVnaW5zIixwXSwhMCksdmFyaWFudHM6KCk9PltdLGFkZEJhc2UocCl7Zm9yKGxldFtoLGJdb2YgZnMocCkpe2xldCB2PWwoaCx7fSkseT1uLmNyZWF0ZSgiYmFzZSIpO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModil8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodixbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh2KS5wdXNoKFt7c29ydDp5LGxheWVyOiJiYXNlIn0sYl0pfX0sYWRkRGVmYXVsdHMocCxoKXtsZXQgYj17W2BAZGVmYXVsdHMgJHtwfWBdOmh9O2ZvcihsZXRbdix5XW9mIGZzKGIpKXtsZXQgdz1sKHYse30pO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKFt7c29ydDpuLmNyZWF0ZSgiZGVmYXVsdHMiKSxsYXllcjoiZGVmYXVsdHMifSx5XSl9fSxhZGRDb21wb25lbnRzKHAsaCl7aD1PYmplY3QuYXNzaWduKHt9LHtwcmVzZXJ2ZVNvdXJjZTohMSxyZXNwZWN0UHJlZml4OiEwLHJlc3BlY3RJbXBvcnRhbnQ6ITF9LEFycmF5LmlzQXJyYXkoaCk/e306aCk7Zm9yKGxldFt2LHldb2YgZnMocCkpe2xldCB3PWwodixoKTtzLmFkZCh3KSxlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHcpfHxlLmNhbmRpZGF0ZVJ1bGVNYXAuc2V0KHcsW10pLGUuY2FuZGlkYXRlUnVsZU1hcC5nZXQodykucHVzaChbe3NvcnQ6bi5jcmVhdGUoImNvbXBvbmVudHMiKSxsYXllcjoiY29tcG9uZW50cyIsb3B0aW9uczpofSx5XSl9fSxhZGRVdGlsaXRpZXMocCxoKXtoPU9iamVjdC5hc3NpZ24oe30se3ByZXNlcnZlU291cmNlOiExLHJlc3BlY3RQcmVmaXg6ITAscmVzcGVjdEltcG9ydGFudDohMH0sQXJyYXkuaXNBcnJheShoKT97fTpoKTtmb3IobGV0W3YseV1vZiBmcyhwKSl7bGV0IHc9bCh2LGgpO3MuYWRkKHcpLGUuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKFt7c29ydDpuLmNyZWF0ZSgidXRpbGl0aWVzIiksbGF5ZXI6InV0aWxpdGllcyIsb3B0aW9uczpofSx5XSl9fSxtYXRjaFV0aWxpdGllczpmdW5jdGlvbihwLGgpe2g9Qmgoey4uLntyZXNwZWN0UHJlZml4OiEwLHJlc3BlY3RJbXBvcnRhbnQ6ITAsbW9kaWZpZXJzOiExfSwuLi5ofSk7bGV0IHY9bi5jcmVhdGUoInV0aWxpdGllcyIpO2ZvcihsZXQgeSBpbiBwKXtsZXQgUz1mdW5jdGlvbihULHtpc09ubHlQbHVnaW46Qn0pe2xldFtOLFIsRl09ZWEoaC50eXBlcyxULGgscik7aWYoTj09PXZvaWQgMClyZXR1cm5bXTtpZighaC50eXBlcy5zb21lKCh7dHlwZTpVfSk9PlU9PT1SKSlpZihCKUcud2FybihbYFVubmVjZXNzYXJ5IHR5cGVoaW50IFxgJHtSfVxgIGluIFxgJHt5fS0ke1R9XGAuYCxgWW91IGNhbiBzYWZlbHkgdXBkYXRlIGl0IHRvIFxgJHt5fS0ke1QucmVwbGFjZShSKyI6IiwiIil9XGAuYF0pO2Vsc2UgcmV0dXJuW107aWYoIWNyKE4pKXJldHVybltdO2xldCBZPXtnZXQgbW9kaWZpZXIoKXtyZXR1cm4gaC5tb2RpZmllcnN8fEcud2FybihgbW9kaWZpZXItdXNlZC13aXRob3V0LW9wdGlvbnMtZm9yLSR7eX1gLFsiWW91ciBwbHVnaW4gbXVzdCBzZXQgYG1vZGlmaWVyczogdHJ1ZWAgaW4gaXRzIG9wdGlvbnMgdG8gc3VwcG9ydCBtb2RpZmllcnMuIl0pLEZ9fSxfPXdlKHIsImdlbmVyYWxpemVkTW9kaWZpZXJzIik7cmV0dXJuW10uY29uY2F0KF8/ayhOLFkpOmsoTikpLmZpbHRlcihCb29sZWFuKS5tYXAoVT0+KHtbUW4oeSxUKV06VX0pKX0sdz1sKHksaCksaz1wW3ldO3MuYWRkKFt3LGhdKTtsZXQgRT1be3NvcnQ6dixsYXllcjoidXRpbGl0aWVzIixvcHRpb25zOmh9LFNdO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKEUpfX0sbWF0Y2hDb21wb25lbnRzOmZ1bmN0aW9uKHAsaCl7aD1CaCh7Li4ue3Jlc3BlY3RQcmVmaXg6ITAscmVzcGVjdEltcG9ydGFudDohMSxtb2RpZmllcnM6ITF9LC4uLmh9KTtsZXQgdj1uLmNyZWF0ZSgiY29tcG9uZW50cyIpO2ZvcihsZXQgeSBpbiBwKXtsZXQgUz1mdW5jdGlvbihULHtpc09ubHlQbHVnaW46Qn0pe2xldFtOLFIsRl09ZWEoaC50eXBlcyxULGgscik7aWYoTj09PXZvaWQgMClyZXR1cm5bXTtpZighaC50eXBlcy5zb21lKCh7dHlwZTpVfSk9PlU9PT1SKSlpZihCKUcud2FybihbYFVubmVjZXNzYXJ5IHR5cGVoaW50IFxgJHtSfVxgIGluIFxgJHt5fS0ke1R9XGAuYCxgWW91IGNhbiBzYWZlbHkgdXBkYXRlIGl0IHRvIFxgJHt5fS0ke1QucmVwbGFjZShSKyI6IiwiIil9XGAuYF0pO2Vsc2UgcmV0dXJuW107aWYoIWNyKE4pKXJldHVybltdO2xldCBZPXtnZXQgbW9kaWZpZXIoKXtyZXR1cm4gaC5tb2RpZmllcnN8fEcud2FybihgbW9kaWZpZXItdXNlZC13aXRob3V0LW9wdGlvbnMtZm9yLSR7eX1gLFsiWW91ciBwbHVnaW4gbXVzdCBzZXQgYG1vZGlmaWVyczogdHJ1ZWAgaW4gaXRzIG9wdGlvbnMgdG8gc3VwcG9ydCBtb2RpZmllcnMuIl0pLEZ9fSxfPXdlKHIsImdlbmVyYWxpemVkTW9kaWZpZXJzIik7cmV0dXJuW10uY29uY2F0KF8/ayhOLFkpOmsoTikpLmZpbHRlcihCb29sZWFuKS5tYXAoVT0+KHtbUW4oeSxUKV06VX0pKX0sdz1sKHksaCksaz1wW3ldO3MuYWRkKFt3LGhdKTtsZXQgRT1be3NvcnQ6dixsYXllcjoiY29tcG9uZW50cyIsb3B0aW9uczpofSxTXTtlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHcpfHxlLmNhbmRpZGF0ZVJ1bGVNYXAuc2V0KHcsW10pLGUuY2FuZGlkYXRlUnVsZU1hcC5nZXQodykucHVzaChFKX19LGFkZFZhcmlhbnQocCxoLGI9e30pe2g9W10uY29uY2F0KGgpLm1hcCh2PT57aWYodHlwZW9mIHYhPSJzdHJpbmciKXJldHVybih5PXt9KT0+e2xldHthcmdzOncsbW9kaWZ5U2VsZWN0b3JzOmssY29udGFpbmVyOlMsc2VwYXJhdG9yOkUsd3JhcDpULGZvcm1hdDpCfT15LE49dihPYmplY3QuYXNzaWduKHttb2RpZnlTZWxlY3RvcnM6ayxjb250YWluZXI6UyxzZXBhcmF0b3I6RX0sYi50eXBlPT09Sm8uTWF0Y2hWYXJpYW50JiZ7YXJnczp3LHdyYXA6VCxmb3JtYXQ6Qn0pKTtpZih0eXBlb2YgTj09InN0cmluZyImJiFscyhOKSl0aHJvdyBuZXcgRXJyb3IoYFlvdXIgY3VzdG9tIHZhcmlhbnQgXGAke3B9XGAgaGFzIGFuIGludmFsaWQgZm9ybWF0IHN0cmluZy4gTWFrZSBzdXJlIGl0J3MgYW4gYXQtcnVsZSBvciBjb250YWlucyBhIFxgJlxgIHBsYWNlaG9sZGVyLmApO3JldHVybiBBcnJheS5pc0FycmF5KE4pP04uZmlsdGVyKFI9PnR5cGVvZiBSPT0ic3RyaW5nIikubWFwKFI9PlJpKFIpKTpOJiZ0eXBlb2YgTj09InN0cmluZyImJlJpKE4pKHkpfTtpZighbHModikpdGhyb3cgbmV3IEVycm9yKGBZb3VyIGN1c3RvbSB2YXJpYW50IFxgJHtwfVxgIGhhcyBhbiBpbnZhbGlkIGZvcm1hdCBzdHJpbmcuIE1ha2Ugc3VyZSBpdCdzIGFuIGF0LXJ1bGUgb3IgY29udGFpbnMgYSBcYCZcYCBwbGFjZWhvbGRlci5gKTtyZXR1cm4gUmkodil9KSxNXyh0LHAsYiksaS5zZXQocCxoKSxlLnZhcmlhbnRPcHRpb25zLnNldChwLGIpfSxtYXRjaFZhcmlhbnQocCxoLGIpe2xldCB2PWI/LmlkPz8rK2YseT1wPT09IkAiLHc9d2UociwiZ2VuZXJhbGl6ZWRNb2RpZmllcnMiKTtmb3IobGV0W1MsRV1vZiBPYmplY3QuZW50cmllcyhiPy52YWx1ZXM/P3t9KSlTIT09IkRFRkFVTFQiJiZkLmFkZFZhcmlhbnQoeT9gJHtwfSR7U31gOmAke3B9LSR7U31gLCh7YXJnczpULGNvbnRhaW5lcjpCfSk9PmgoRSx3P3ttb2RpZmllcjpUPy5tb2RpZmllcixjb250YWluZXI6Qn06e2NvbnRhaW5lcjpCfSksey4uLmIsdmFsdWU6RSxpZDp2LHR5cGU6Sm8uTWF0Y2hWYXJpYW50LHZhcmlhbnRJbmZvOmVsLkJhc2V9KTtsZXQgaz0iREVGQVVMVCJpbihiPy52YWx1ZXM/P3t9KTtkLmFkZFZhcmlhbnQocCwoe2FyZ3M6Uyxjb250YWluZXI6RX0pPT5TPy52YWx1ZT09PVRpJiYhaz9udWxsOmgoUz8udmFsdWU9PT1UaT9iLnZhbHVlcy5ERUZBVUxUOlM/LnZhbHVlPz8odHlwZW9mIFM9PSJzdHJpbmciP1M6IiIpLHc/e21vZGlmaWVyOlM/Lm1vZGlmaWVyLGNvbnRhaW5lcjpFfTp7Y29udGFpbmVyOkV9KSx7Li4uYixpZDp2LHR5cGU6Sm8uTWF0Y2hWYXJpYW50LHZhcmlhbnRJbmZvOmVsLkR5bmFtaWN9KX19O3JldHVybiBkfWZ1bmN0aW9uIGNzKHIpe3JldHVybiBybC5oYXMocil8fHJsLnNldChyLG5ldyBNYXApLHJsLmdldChyKX1mdW5jdGlvbiBqaChyLGUpe2xldCB0PSExLGk9bmV3IE1hcDtmb3IobGV0IG4gb2Ygcil7aWYoIW4pY29udGludWU7bGV0IHM9b2EucGFyc2UobiksYT1zLmhhc2g/cy5ocmVmLnJlcGxhY2Uocy5oYXNoLCIiKTpzLmhyZWY7YT1zLnNlYXJjaD9hLnJlcGxhY2Uocy5zZWFyY2gsIiIpOmE7bGV0IG89YmUuc3RhdFN5bmMoZGVjb2RlVVJJQ29tcG9uZW50KGEpLHt0aHJvd0lmTm9FbnRyeTohMX0pPy5tdGltZU1zOyFvfHwoKCFlLmhhcyhuKXx8bz5lLmdldChuKSkmJih0PSEwKSxpLnNldChuLG8pKX1yZXR1cm5bdCxpXX1mdW5jdGlvbiB6aChyKXtyLndhbGtBdFJ1bGVzKGU9PntbInJlc3BvbnNpdmUiLCJ2YXJpYW50cyJdLmluY2x1ZGVzKGUubmFtZSkmJih6aChlKSxlLmJlZm9yZShlLm5vZGVzKSxlLnJlbW92ZSgpKX0pfWZ1bmN0aW9uIHpfKHIpe2xldCBlPVtdO3JldHVybiByLmVhY2godD0+e3QudHlwZT09PSJhdHJ1bGUiJiZbInJlc3BvbnNpdmUiLCJ2YXJpYW50cyJdLmluY2x1ZGVzKHQubmFtZSkmJih0Lm5hbWU9ImxheWVyIix0LnBhcmFtcz0idXRpbGl0aWVzIil9KSxyLndhbGtBdFJ1bGVzKCJsYXllciIsdD0+e2lmKHpoKHQpLHQucGFyYW1zPT09ImJhc2UiKXtmb3IobGV0IGkgb2YgdC5ub2RlcyllLnB1c2goZnVuY3Rpb24oe2FkZEJhc2U6bn0pe24oaSx7cmVzcGVjdFByZWZpeDohMX0pfSk7dC5yZW1vdmUoKX1lbHNlIGlmKHQucGFyYW1zPT09ImNvbXBvbmVudHMiKXtmb3IobGV0IGkgb2YgdC5ub2RlcyllLnB1c2goZnVuY3Rpb24oe2FkZENvbXBvbmVudHM6bn0pe24oaSx7cmVzcGVjdFByZWZpeDohMSxwcmVzZXJ2ZVNvdXJjZTohMH0pfSk7dC5yZW1vdmUoKX1lbHNlIGlmKHQucGFyYW1zPT09InV0aWxpdGllcyIpe2ZvcihsZXQgaSBvZiB0Lm5vZGVzKWUucHVzaChmdW5jdGlvbih7YWRkVXRpbGl0aWVzOm59KXtuKGkse3Jlc3BlY3RQcmVmaXg6ITEscHJlc2VydmVTb3VyY2U6ITB9KX0pO3QucmVtb3ZlKCl9fSksZX1mdW5jdGlvbiBVXyhyLGUpe2xldCB0PU9iamVjdC5lbnRyaWVzKHsuLi5zZSwuLi55aH0pLm1hcCgoW2wsY10pPT5yLnRhaWx3aW5kQ29uZmlnLmNvcmVQbHVnaW5zLmluY2x1ZGVzKGwpP2M6bnVsbCkuZmlsdGVyKEJvb2xlYW4pLGk9ci50YWlsd2luZENvbmZpZy5wbHVnaW5zLm1hcChsPT4obC5fX2lzT3B0aW9uc0Z1bmN0aW9uJiYobD1sKCkpLHR5cGVvZiBsPT0iZnVuY3Rpb24iP2w6bC5oYW5kbGVyKSksbj16XyhlKSxzPVtzZS5jaGlsZFZhcmlhbnQsc2UucHNldWRvRWxlbWVudFZhcmlhbnRzLHNlLnBzZXVkb0NsYXNzVmFyaWFudHMsc2UuaGFzVmFyaWFudHMsc2UuYXJpYVZhcmlhbnRzLHNlLmRhdGFWYXJpYW50c10sYT1bc2Uuc3VwcG9ydHNWYXJpYW50cyxzZS5yZWR1Y2VkTW90aW9uVmFyaWFudHMsc2UucHJlZmVyc0NvbnRyYXN0VmFyaWFudHMsc2Uuc2NyZWVuVmFyaWFudHMsc2Uub3JpZW50YXRpb25WYXJpYW50cyxzZS5kaXJlY3Rpb25WYXJpYW50cyxzZS5kYXJrVmFyaWFudHMsc2UuZm9yY2VkQ29sb3JzVmFyaWFudHMsc2UucHJpbnRWYXJpYW50XTtyZXR1cm4oci50YWlsd2luZENvbmZpZy5kYXJrTW9kZT09PSJjbGFzcyJ8fEFycmF5LmlzQXJyYXkoci50YWlsd2luZENvbmZpZy5kYXJrTW9kZSkmJnIudGFpbHdpbmRDb25maWcuZGFya01vZGVbMF09PT0iY2xhc3MiKSYmKGE9W3NlLnN1cHBvcnRzVmFyaWFudHMsc2UucmVkdWNlZE1vdGlvblZhcmlhbnRzLHNlLnByZWZlcnNDb250cmFzdFZhcmlhbnRzLHNlLmRhcmtWYXJpYW50cyxzZS5zY3JlZW5WYXJpYW50cyxzZS5vcmllbnRhdGlvblZhcmlhbnRzLHNlLmRpcmVjdGlvblZhcmlhbnRzLHNlLmZvcmNlZENvbG9yc1ZhcmlhbnRzLHNlLnByaW50VmFyaWFudF0pLFsuLi50LC4uLnMsLi4uaSwuLi5hLC4uLm5dfWZ1bmN0aW9uIFZfKHIsZSl7bGV0IHQ9W10saT1uZXcgTWFwO2UudmFyaWFudE1hcD1pO2xldCBuPW5ldyBYbztlLm9mZnNldHM9bjtsZXQgcz1uZXcgU2V0LGE9al8oZS50YWlsd2luZENvbmZpZyxlLHt2YXJpYW50TGlzdDp0LHZhcmlhbnRNYXA6aSxvZmZzZXRzOm4sY2xhc3NMaXN0OnN9KTtmb3IobGV0IGYgb2YgcilpZihBcnJheS5pc0FycmF5KGYpKWZvcihsZXQgZCBvZiBmKWQoYSk7ZWxzZSBmPy4oYSk7bi5yZWNvcmRWYXJpYW50cyh0LGY9PmkuZ2V0KGYpLmxlbmd0aCk7Zm9yKGxldFtmLGRdb2YgaS5lbnRyaWVzKCkpZS52YXJpYW50TWFwLnNldChmLGQubWFwKChwLGgpPT5bbi5mb3JWYXJpYW50KGYsaCkscF0pKTtsZXQgbz0oZS50YWlsd2luZENvbmZpZy5zYWZlbGlzdD8/W10pLmZpbHRlcihCb29sZWFuKTtpZihvLmxlbmd0aD4wKXtsZXQgZj1bXTtmb3IobGV0IGQgb2Ygbyl7aWYodHlwZW9mIGQ9PSJzdHJpbmciKXtlLmNoYW5nZWRDb250ZW50LnB1c2goe2NvbnRlbnQ6ZCxleHRlbnNpb246Imh0bWwifSk7Y29udGludWV9aWYoZCBpbnN0YW5jZW9mIFJlZ0V4cCl7Ry53YXJuKCJyb290LXJlZ2V4IixbIlJlZ3VsYXIgZXhwcmVzc2lvbnMgaW4gYHNhZmVsaXN0YCB3b3JrIGRpZmZlcmVudGx5IGluIFRhaWx3aW5kIENTUyB2My4wLiIsIlVwZGF0ZSB5b3VyIGBzYWZlbGlzdGAgY29uZmlndXJhdGlvbiB0byBlbGltaW5hdGUgdGhpcyB3YXJuaW5nLiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudC1jb25maWd1cmF0aW9uI3NhZmVsaXN0aW5nLWNsYXNzZXMiXSk7Y29udGludWV9Zi5wdXNoKGQpfWlmKGYubGVuZ3RoPjApe2xldCBkPW5ldyBNYXAscD1lLnRhaWx3aW5kQ29uZmlnLnByZWZpeC5sZW5ndGgsaD1mLnNvbWUoYj0+Yi5wYXR0ZXJuLnNvdXJjZS5pbmNsdWRlcygiISIpKTtmb3IobGV0IGIgb2Ygcyl7bGV0IHY9QXJyYXkuaXNBcnJheShiKT8oKCk9PntsZXRbeSx3XT1iLFM9T2JqZWN0LmtleXModz8udmFsdWVzPz97fSkubWFwKEU9PkVpKHksRSkpO3JldHVybiB3Py5zdXBwb3J0c05lZ2F0aXZlVmFsdWVzJiYoUz1bLi4uUywuLi5TLm1hcChFPT4iLSIrRSldLFM9Wy4uLlMsLi4uUy5tYXAoRT0+RS5zbGljZSgwLHApKyItIitFLnNsaWNlKHApKV0pLHcudHlwZXMuc29tZSgoe3R5cGU6RX0pPT5FPT09ImNvbG9yIikmJihTPVsuLi5TLC4uLlMuZmxhdE1hcChFPT5PYmplY3Qua2V5cyhlLnRhaWx3aW5kQ29uZmlnLnRoZW1lLm9wYWNpdHkpLm1hcChUPT5gJHtFfS8ke1R9YCkpXSksaCYmdz8ucmVzcGVjdEltcG9ydGFudCYmKFM9Wy4uLlMsLi4uUy5tYXAoRT0+IiEiK0UpXSksU30pKCk6W2JdO2ZvcihsZXQgeSBvZiB2KWZvcihsZXR7cGF0dGVybjp3LHZhcmlhbnRzOms9W119b2YgZilpZih3Lmxhc3RJbmRleD0wLGQuaGFzKHcpfHxkLnNldCh3LDApLCEhdy50ZXN0KHkpKXtkLnNldCh3LGQuZ2V0KHcpKzEpLGUuY2hhbmdlZENvbnRlbnQucHVzaCh7Y29udGVudDp5LGV4dGVuc2lvbjoiaHRtbCJ9KTtmb3IobGV0IFMgb2YgayllLmNoYW5nZWRDb250ZW50LnB1c2goe2NvbnRlbnQ6UytlLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcit5LGV4dGVuc2lvbjoiaHRtbCJ9KX19Zm9yKGxldFtiLHZdb2YgZC5lbnRyaWVzKCkpdj09PTAmJkcud2FybihbYFRoZSBzYWZlbGlzdCBwYXR0ZXJuIFxgJHtifVxgIGRvZXNuJ3QgbWF0Y2ggYW55IFRhaWx3aW5kIENTUyBjbGFzc2VzLmAsIkZpeCB0aGlzIHBhdHRlcm4gb3IgcmVtb3ZlIGl0IGZyb20geW91ciBgc2FmZWxpc3RgIGNvbmZpZ3VyYXRpb24uIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50LWNvbmZpZ3VyYXRpb24jc2FmZWxpc3RpbmctY2xhc3NlcyJdKX19bGV0IGw9W10uY29uY2F0KGUudGFpbHdpbmRDb25maWcuZGFya01vZGU/PyJtZWRpYSIpWzFdPz8iZGFyayIsYz1bdGwoZSxsKSx0bChlLCJncm91cCIpLHRsKGUsInBlZXIiKV07ZS5nZXRDbGFzc09yZGVyPWZ1bmN0aW9uKGQpe2xldCBwPVsuLi5kXS5zb3J0KCh5LHcpPT55PT09dz8wOnk8dz8tMToxKSxoPW5ldyBNYXAocC5tYXAoeT0+W3ksbnVsbF0pKSxiPWFzKG5ldyBTZXQocCksZSwhMCk7Yj1lLm9mZnNldHMuc29ydChiKTtsZXQgdj1CaWdJbnQoYy5sZW5ndGgpO2ZvcihsZXRbLHldb2YgYil7bGV0IHc9eS5yYXdzLnRhaWx3aW5kLmNhbmRpZGF0ZTtoLnNldCh3LGguZ2V0KHcpPz92KyspfXJldHVybiBkLm1hcCh5PT57bGV0IHc9aC5nZXQoeSk/P251bGwsaz1jLmluZGV4T2YoeSk7cmV0dXJuIHc9PT1udWxsJiZrIT09LTEmJih3PUJpZ0ludChrKSksW3ksd119KX0sZS5nZXRDbGFzc0xpc3Q9ZnVuY3Rpb24oZD17fSl7bGV0IHA9W107Zm9yKGxldCBoIG9mIHMpaWYoQXJyYXkuaXNBcnJheShoKSl7bGV0W2Isdl09aCx5PVtdLHc9T2JqZWN0LmtleXModj8ubW9kaWZpZXJzPz97fSk7dj8udHlwZXM/LnNvbWUoKHt0eXBlOkV9KT0+RT09PSJjb2xvciIpJiZ3LnB1c2goLi4uT2JqZWN0LmtleXMoZS50YWlsd2luZENvbmZpZy50aGVtZS5vcGFjaXR5Pz97fSkpO2xldCBrPXttb2RpZmllcnM6d30sUz1kLmluY2x1ZGVNZXRhZGF0YSYmdy5sZW5ndGg+MDtmb3IobGV0W0UsVF1vZiBPYmplY3QuZW50cmllcyh2Py52YWx1ZXM/P3t9KSl7aWYoVD09bnVsbCljb250aW51ZTtsZXQgQj1FaShiLEUpO2lmKHAucHVzaChTP1tCLGtdOkIpLHY/LnN1cHBvcnRzTmVnYXRpdmVWYWx1ZXMmJnh0KFQpKXtsZXQgTj1FaShiLGAtJHtFfWApO3kucHVzaChTP1tOLGtdOk4pfX1wLnB1c2goLi4ueSl9ZWxzZSBwLnB1c2goaCk7cmV0dXJuIHB9LGUuZ2V0VmFyaWFudHM9ZnVuY3Rpb24oKXtsZXQgZD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNykudG9VcHBlckNhc2UoKSxwPVtdO2ZvcihsZXRbaCxiXW9mIGUudmFyaWFudE9wdGlvbnMuZW50cmllcygpKWIudmFyaWFudEluZm8hPT1lbC5CYXNlJiZwLnB1c2goe25hbWU6aCxpc0FyYml0cmFyeTpiLnR5cGU9PT1TeW1ib2wuZm9yKCJNQVRDSF9WQVJJQU5UIiksdmFsdWVzOk9iamVjdC5rZXlzKGIudmFsdWVzPz97fSksaGFzRGFzaDpoIT09IkAiLHNlbGVjdG9ycyh7bW9kaWZpZXI6dix2YWx1ZTp5fT17fSl7bGV0IHc9YFRBSUxXSU5EUExBQ0VIT0xERVIke2R9YCxrPWVlLnJ1bGUoe3NlbGVjdG9yOmAuJHt3fWB9KSxTPWVlLnJvb3Qoe25vZGVzOltrLmNsb25lKCldfSksRT1TLnRvU3RyaW5nKCksVD0oZS52YXJpYW50TWFwLmdldChoKT8/W10pLmZsYXRNYXAoKFtsZSxBXSk9PkEpLEI9W107Zm9yKGxldCBsZSBvZiBUKXtsZXQgQT1bXSxDPXthcmdzOnttb2RpZmllcjp2LHZhbHVlOmIudmFsdWVzPy5beV0/P3l9LHNlcGFyYXRvcjplLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcixtb2RpZnlTZWxlY3RvcnMoVil7cmV0dXJuIFMuZWFjaChFZT0+e0VlLnR5cGU9PT0icnVsZSImJihFZS5zZWxlY3RvcnM9RWUuc2VsZWN0b3JzLm1hcChJZT0+Vih7Z2V0IGNsYXNzTmFtZSgpe3JldHVybiBHbyhJZSl9LHNlbGVjdG9yOkllfSkpKX0pLFN9LGZvcm1hdChWKXtBLnB1c2goVil9LHdyYXAoVil7QS5wdXNoKGBAJHtWLm5hbWV9ICR7Vi5wYXJhbXN9IHsgJiB9YCl9LGNvbnRhaW5lcjpTfSxoZT1sZShDKTtpZihBLmxlbmd0aD4wJiZCLnB1c2goQSksQXJyYXkuaXNBcnJheShoZSkpZm9yKGxldCBWIG9mIGhlKUE9W10sVihDKSxCLnB1c2goQSl9bGV0IE49W10sUj1TLnRvU3RyaW5nKCk7RSE9PVImJihTLndhbGtSdWxlcyhsZT0+e2xldCBBPWxlLnNlbGVjdG9yLEM9KDAsWm8uZGVmYXVsdCkoaGU9PntoZS53YWxrQ2xhc3NlcyhWPT57Vi52YWx1ZT1gJHtofSR7ZS50YWlsd2luZENvbmZpZy5zZXBhcmF0b3J9JHtWLnZhbHVlfWB9KX0pLnByb2Nlc3NTeW5jKEEpO04ucHVzaChBLnJlcGxhY2UoQywiJiIpLnJlcGxhY2UodywiJiIpKX0pLFMud2Fsa0F0UnVsZXMobGU9PntOLnB1c2goYEAke2xlLm5hbWV9ICgke2xlLnBhcmFtc30pIHsgJiB9YCl9KSk7bGV0IEY9ISh5IGluKGIudmFsdWVzPz97fSkpLFk9YltQdF0/P3t9LF89KCgpPT4hKEZ8fFkucmVzcGVjdFByZWZpeD09PSExKSkoKTtCPUIubWFwKGxlPT5sZS5tYXAoQT0+KHtmb3JtYXQ6QSxyZXNwZWN0UHJlZml4Ol99KSkpLE49Ti5tYXAobGU9Pih7Zm9ybWF0OmxlLHJlc3BlY3RQcmVmaXg6X30pKTtsZXQgUT17Y2FuZGlkYXRlOncsY29udGV4dDplfSxVPUIubWFwKGxlPT5ycyhgLiR7d31gLGRyKGxlLFEpLFEpLnJlcGxhY2UoYC4ke3d9YCwiJiIpLnJlcGxhY2UoInsgJiB9IiwiIikudHJpbSgpKTtyZXR1cm4gTi5sZW5ndGg+MCYmVS5wdXNoKGRyKE4sUSkudG9TdHJpbmcoKS5yZXBsYWNlKGAuJHt3fWAsIiYiKSksVX19KTtyZXR1cm4gcH19ZnVuY3Rpb24gVWgocixlKXshci5jbGFzc0NhY2hlLmhhcyhlKXx8KHIubm90Q2xhc3NDYWNoZS5hZGQoZSksci5jbGFzc0NhY2hlLmRlbGV0ZShlKSxyLmFwcGx5Q2xhc3NDYWNoZS5kZWxldGUoZSksci5jYW5kaWRhdGVSdWxlTWFwLmRlbGV0ZShlKSxyLmNhbmRpZGF0ZVJ1bGVDYWNoZS5kZWxldGUoZSksci5zdHlsZXNoZWV0Q2FjaGU9bnVsbCl9ZnVuY3Rpb24gSF8ocixlKXtsZXQgdD1lLnJhd3MudGFpbHdpbmQuY2FuZGlkYXRlO2lmKCEhdCl7Zm9yKGxldCBpIG9mIHIucnVsZUNhY2hlKWlbMV0ucmF3cy50YWlsd2luZC5jYW5kaWRhdGU9PT10JiZyLnJ1bGVDYWNoZS5kZWxldGUoaSk7VWgocix0KX19ZnVuY3Rpb24gaWwocixlPVtdLHQ9ZWUucm9vdCgpKXtsZXQgaT17ZGlzcG9zYWJsZXM6W10scnVsZUNhY2hlOm5ldyBTZXQsY2FuZGlkYXRlUnVsZUNhY2hlOm5ldyBNYXAsY2xhc3NDYWNoZTpuZXcgTWFwLGFwcGx5Q2xhc3NDYWNoZTpuZXcgTWFwLG5vdENsYXNzQ2FjaGU6bmV3IFNldChyLmJsb2NrbGlzdD8/W10pLHBvc3RDc3NOb2RlQ2FjaGU6bmV3IE1hcCxjYW5kaWRhdGVSdWxlTWFwOm5ldyBNYXAsdGFpbHdpbmRDb25maWc6cixjaGFuZ2VkQ29udGVudDplLHZhcmlhbnRNYXA6bmV3IE1hcCxzdHlsZXNoZWV0Q2FjaGU6bnVsbCx2YXJpYW50T3B0aW9uczpuZXcgTWFwLG1hcmtJbnZhbGlkVXRpbGl0eUNhbmRpZGF0ZTpzPT5VaChpLHMpLG1hcmtJbnZhbGlkVXRpbGl0eU5vZGU6cz0+SF8oaSxzKX0sbj1VXyhpLHQpO3JldHVybiBWXyhuLGkpLGl9ZnVuY3Rpb24gVmgocixlLHQsaSxuLHMpe2xldCBhPWUub3B0cy5mcm9tLG89aSE9PW51bGw7WmUuREVCVUcmJmNvbnNvbGUubG9nKCJTb3VyY2UgcGF0aDoiLGEpO2xldCBsO2lmKG8mJmhyLmhhcyhhKSlsPWhyLmdldChhKTtlbHNlIGlmKFBpLmhhcyhuKSl7bGV0IHA9UGkuZ2V0KG4pO0R0LmdldChwKS5hZGQoYSksaHIuc2V0KGEscCksbD1wfWxldCBjPVBoKGEscik7aWYobCl7bGV0W3AsaF09amgoWy4uLnNdLGNzKGwpKTtpZighcCYmIWMpcmV0dXJuW2wsITEsaF19aWYoaHIuaGFzKGEpKXtsZXQgcD1oci5nZXQoYSk7aWYoRHQuaGFzKHApJiYoRHQuZ2V0KHApLmRlbGV0ZShhKSxEdC5nZXQocCkuc2l6ZT09PTApKXtEdC5kZWxldGUocCk7Zm9yKGxldFtoLGJdb2YgUGkpYj09PXAmJlBpLmRlbGV0ZShoKTtmb3IobGV0IGggb2YgcC5kaXNwb3NhYmxlcy5zcGxpY2UoMCkpaChwKX19WmUuREVCVUcmJmNvbnNvbGUubG9nKCJTZXR0aW5nIHVwIG5ldyBjb250ZXh0Li4uIik7bGV0IGY9aWwodCxbXSxyKTtPYmplY3QuYXNzaWduKGYse3VzZXJDb25maWdQYXRoOml9KTtsZXRbLGRdPWpoKFsuLi5zXSxjcyhmKSk7cmV0dXJuIFBpLnNldChuLGYpLGhyLnNldChhLGYpLER0LmhhcyhmKXx8RHQuc2V0KGYsbmV3IFNldCksRHQuZ2V0KGYpLmFkZChhKSxbZiwhMCxkXX12YXIgTmgsWm8sUHQsSm8sZWwscmwsaHIsUGksRHQsT2k9UCgoKT0+e3UoKTtmdCgpO2xhKCk7T3QoKTtOaD1wZShSYSgpKSxabz1wZShpdCgpKTtDaSgpO3FvKCk7R24oKTtLdCgpO2ZyKCk7TG8oKTtGcigpO2JoKCk7SXQoKTtJdCgpO1lpKCk7QmUoKTtHaSgpO0JvKCk7b3MoKTtJaCgpO01oKCk7Y3QoKTtWbygpO1B0PVN5bWJvbCgpLEpvPXtBZGRWYXJpYW50OlN5bWJvbC5mb3IoIkFERF9WQVJJQU5UIiksTWF0Y2hWYXJpYW50OlN5bWJvbC5mb3IoIk1BVENIX1ZBUklBTlQiKX0sZWw9e0Jhc2U6MTw8MCxEeW5hbWljOjE8PDF9O3JsPW5ldyBXZWFrTWFwO2hyPXdoLFBpPXZoLER0PWVzfSk7ZnVuY3Rpb24gbmwocil7cmV0dXJuIHIuaWdub3JlP1tdOnIuZ2xvYj9tLmVudi5ST0xMVVBfV0FUQ0g9PT0idHJ1ZSI/W3t0eXBlOiJkZXBlbmRlbmN5IixmaWxlOnIuYmFzZX1dOlt7dHlwZToiZGlyLWRlcGVuZGVuY3kiLGRpcjpyLmJhc2UsZ2xvYjpyLmdsb2J9XTpbe3R5cGU6ImRlcGVuZGVuY3kiLGZpbGU6ci5iYXNlfV19dmFyIEhoPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBXaChyLGUpe3JldHVybntoYW5kbGVyOnIsY29uZmlnOmV9fXZhciBHaCxRaD1QKCgpPT57dSgpO1doLndpdGhPcHRpb25zPWZ1bmN0aW9uKHIsZT0oKT0+KHt9KSl7bGV0IHQ9ZnVuY3Rpb24oaSl7cmV0dXJue19fb3B0aW9uczppLGhhbmRsZXI6cihpKSxjb25maWc6ZShpKX19O3JldHVybiB0Ll9faXNPcHRpb25zRnVuY3Rpb249ITAsdC5fX3BsdWdpbkZ1bmN0aW9uPXIsdC5fX2NvbmZpZ0Z1bmN0aW9uPWUsdH07R2g9V2h9KTt2YXIgc2w9e307R2Uoc2wse2RlZmF1bHQ6KCk9PldffSk7dmFyIFdfLGFsPVAoKCk9Pnt1KCk7UWgoKTtXXz1HaH0pO3ZhciBLaD14KCh6NCxZaCk9Pnt1KCk7dmFyIEdfPShhbCgpLHNsKS5kZWZhdWx0LFFfPXtvdmVyZmxvdzoiaGlkZGVuIixkaXNwbGF5OiItd2Via2l0LWJveCIsIi13ZWJraXQtYm94LW9yaWVudCI6InZlcnRpY2FsIn0sWV89R18oZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnIsYWRkVXRpbGl0aWVzOmUsdGhlbWU6dCx2YXJpYW50czppfSl7bGV0IG49dCgibGluZUNsYW1wIik7cih7ImxpbmUtY2xhbXAiOnM9Pih7Li4uUV8sIi13ZWJraXQtbGluZS1jbGFtcCI6YCR7c31gfSl9LHt2YWx1ZXM6bn0pLGUoW3siLmxpbmUtY2xhbXAtbm9uZSI6eyItd2Via2l0LWxpbmUtY2xhbXAiOiJ1bnNldCJ9fV0saSgibGluZUNsYW1wIikpfSx7dGhlbWU6e2xpbmVDbGFtcDp7MToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiJ9fSx2YXJpYW50czp7bGluZUNsYW1wOlsicmVzcG9uc2l2ZSJdfX0pO1loLmV4cG9ydHM9WV99KTtmdW5jdGlvbiBvbChyKXtyLmNvbnRlbnQuZmlsZXMubGVuZ3RoPT09MCYmRy53YXJuKCJjb250ZW50LXByb2JsZW1zIixbIlRoZSBgY29udGVudGAgb3B0aW9uIGluIHlvdXIgVGFpbHdpbmQgQ1NTIGNvbmZpZ3VyYXRpb24gaXMgbWlzc2luZyBvciBlbXB0eS4iLCJDb25maWd1cmUgeW91ciBjb250ZW50IHNvdXJjZXMgb3IgeW91ciBnZW5lcmF0ZWQgQ1NTIHdpbGwgYmUgbWlzc2luZyBzdHlsZXMuIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50LWNvbmZpZ3VyYXRpb24iXSk7dHJ5e2xldCBlPUtoKCk7ci5wbHVnaW5zLmluY2x1ZGVzKGUpJiYoRy53YXJuKCJsaW5lLWNsYW1wLWluLWNvcmUiLFsiQXMgb2YgVGFpbHdpbmQgQ1NTIHYzLjMsIHRoZSBgQHRhaWx3aW5kY3NzL2xpbmUtY2xhbXBgIHBsdWdpbiBpcyBub3cgaW5jbHVkZWQgYnkgZGVmYXVsdC4iLCJSZW1vdmUgaXQgZnJvbSB0aGUgYHBsdWdpbnNgIGFycmF5IGluIHlvdXIgY29uZmlndXJhdGlvbiB0byBlbGltaW5hdGUgdGhpcyB3YXJuaW5nLiJdKSxyLnBsdWdpbnM9ci5wbHVnaW5zLmZpbHRlcih0PT50IT09ZSkpfWNhdGNoe31yZXR1cm4gcn12YXIgWGg9UCgoKT0+e3UoKTtCZSgpfSk7dmFyIFpoLEpoPVAoKCk9Pnt1KCk7Wmg9KCk9PiExfSk7dmFyIHBzLGVtPVAoKCk9Pnt1KCk7cHM9e3N5bmM6cj0+W10uY29uY2F0KHIpLGdlbmVyYXRlVGFza3M6cj0+W3tkeW5hbWljOiExLGJhc2U6Ii4iLG5lZ2F0aXZlOltdLHBvc2l0aXZlOltdLmNvbmNhdChyKSxwYXR0ZXJuczpbXS5jb25jYXQocil9XSxlc2NhcGVQYXRoOnI9PnJ9fSk7dmFyIGxsLHRtPVAoKCk9Pnt1KCk7bGw9cj0+cn0pO3ZhciBybSxpbT1QKCgpPT57dSgpO3JtPSgpPT4iIn0pO2Z1bmN0aW9uIG5tKHIpe2xldCBlPXIsdD1ybShyKTtyZXR1cm4gdCE9PSIuIiYmKGU9ci5zdWJzdHIodC5sZW5ndGgpLGUuY2hhckF0KDApPT09Ii8iJiYoZT1lLnN1YnN0cigxKSkpLGUuc3Vic3RyKDAsMik9PT0iLi8iP2U9ZS5zdWJzdHIoMik6ZS5jaGFyQXQoMCk9PT0iLyImJihlPWUuc3Vic3RyKDEpKSx7YmFzZTp0LGdsb2I6ZX19dmFyIHNtPVAoKCk9Pnt1KCk7aW0oKX0pO3ZhciBkcz14KFZlPT57dSgpOyJ1c2Ugc3RyaWN0IjtWZS5pc0ludGVnZXI9cj0+dHlwZW9mIHI9PSJudW1iZXIiP051bWJlci5pc0ludGVnZXIocik6dHlwZW9mIHI9PSJzdHJpbmciJiZyLnRyaW0oKSE9PSIiP051bWJlci5pc0ludGVnZXIoTnVtYmVyKHIpKTohMTtWZS5maW5kPShyLGUpPT5yLm5vZGVzLmZpbmQodD0+dC50eXBlPT09ZSk7VmUuZXhjZWVkc0xpbWl0PShyLGUsdD0xLGkpPT5pPT09ITF8fCFWZS5pc0ludGVnZXIocil8fCFWZS5pc0ludGVnZXIoZSk/ITE6KE51bWJlcihlKS1OdW1iZXIocikpL051bWJlcih0KT49aTtWZS5lc2NhcGVOb2RlPShyLGU9MCx0KT0+e2xldCBpPXIubm9kZXNbZV07IWl8fCh0JiZpLnR5cGU9PT10fHxpLnR5cGU9PT0ib3BlbiJ8fGkudHlwZT09PSJjbG9zZSIpJiZpLmVzY2FwZWQhPT0hMCYmKGkudmFsdWU9IlxcIitpLnZhbHVlLGkuZXNjYXBlZD0hMCl9O1ZlLmVuY2xvc2VCcmFjZT1yPT5yLnR5cGUhPT0iYnJhY2UiPyExOnIuY29tbWFzPj4wK3IucmFuZ2VzPj4wPT0wPyhyLmludmFsaWQ9ITAsITApOiExO1ZlLmlzSW52YWxpZEJyYWNlPXI9PnIudHlwZSE9PSJicmFjZSI/ITE6ci5pbnZhbGlkPT09ITB8fHIuZG9sbGFyPyEwOnIuY29tbWFzPj4wK3IucmFuZ2VzPj4wPT0wfHxyLm9wZW4hPT0hMHx8ci5jbG9zZSE9PSEwPyhyLmludmFsaWQ9ITAsITApOiExO1ZlLmlzT3Blbk9yQ2xvc2U9cj0+ci50eXBlPT09Im9wZW4ifHxyLnR5cGU9PT0iY2xvc2UiPyEwOnIub3Blbj09PSEwfHxyLmNsb3NlPT09ITA7VmUucmVkdWNlPXI9PnIucmVkdWNlKChlLHQpPT4odC50eXBlPT09InRleHQiJiZlLnB1c2godC52YWx1ZSksdC50eXBlPT09InJhbmdlIiYmKHQudHlwZT0idGV4dCIpLGUpLFtdKTtWZS5mbGF0dGVuPSguLi5yKT0+e2xldCBlPVtdLHQ9aT0+e2ZvcihsZXQgbj0wO248aS5sZW5ndGg7bisrKXtsZXQgcz1pW25dO2lmKEFycmF5LmlzQXJyYXkocykpe3Qocyk7Y29udGludWV9cyE9PXZvaWQgMCYmZS5wdXNoKHMpfXJldHVybiBlfTtyZXR1cm4gdChyKSxlfX0pO3ZhciBocz14KChaNCxvbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBhbT1kcygpO29tLmV4cG9ydHM9KHIsZT17fSk9PntsZXQgdD0oaSxuPXt9KT0+e2xldCBzPWUuZXNjYXBlSW52YWxpZCYmYW0uaXNJbnZhbGlkQnJhY2UobiksYT1pLmludmFsaWQ9PT0hMCYmZS5lc2NhcGVJbnZhbGlkPT09ITAsbz0iIjtpZihpLnZhbHVlKXJldHVybihzfHxhKSYmYW0uaXNPcGVuT3JDbG9zZShpKT8iXFwiK2kudmFsdWU6aS52YWx1ZTtpZihpLnZhbHVlKXJldHVybiBpLnZhbHVlO2lmKGkubm9kZXMpZm9yKGxldCBsIG9mIGkubm9kZXMpbys9dChsKTtyZXR1cm4gb307cmV0dXJuIHQocil9fSk7dmFyIHVtPXgoKEo0LGxtKT0+e3UoKTsidXNlIHN0cmljdCI7bG0uZXhwb3J0cz1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIiP3Itcj09MDp0eXBlb2Ygcj09InN0cmluZyImJnIudHJpbSgpIT09IiI/TnVtYmVyLmlzRmluaXRlP051bWJlci5pc0Zpbml0ZSgrcik6aXNGaW5pdGUoK3IpOiExfX0pO3ZhciBibT14KChlNix5bSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBmbT11bSgpLFd0PShyLGUsdCk9PntpZihmbShyKT09PSExKXRocm93IG5ldyBUeXBlRXJyb3IoInRvUmVnZXhSYW5nZTogZXhwZWN0ZWQgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIGJlIGEgbnVtYmVyIik7aWYoZT09PXZvaWQgMHx8cj09PWUpcmV0dXJuIFN0cmluZyhyKTtpZihmbShlKT09PSExKXRocm93IG5ldyBUeXBlRXJyb3IoInRvUmVnZXhSYW5nZTogZXhwZWN0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCB0byBiZSBhIG51bWJlci4iKTtsZXQgaT17cmVsYXhaZXJvczohMCwuLi50fTt0eXBlb2YgaS5zdHJpY3RaZXJvcz09ImJvb2xlYW4iJiYoaS5yZWxheFplcm9zPWkuc3RyaWN0WmVyb3M9PT0hMSk7bGV0IG49U3RyaW5nKGkucmVsYXhaZXJvcykscz1TdHJpbmcoaS5zaG9ydGhhbmQpLGE9U3RyaW5nKGkuY2FwdHVyZSksbz1TdHJpbmcoaS53cmFwKSxsPXIrIjoiK2UrIj0iK24rcythK287aWYoV3QuY2FjaGUuaGFzT3duUHJvcGVydHkobCkpcmV0dXJuIFd0LmNhY2hlW2xdLnJlc3VsdDtsZXQgYz1NYXRoLm1pbihyLGUpLGY9TWF0aC5tYXgocixlKTtpZihNYXRoLmFicyhjLWYpPT09MSl7bGV0IHY9cisifCIrZTtyZXR1cm4gaS5jYXB0dXJlP2AoJHt2fSlgOmkud3JhcD09PSExP3Y6YCg/OiR7dn0pYH1sZXQgZD1nbShyKXx8Z20oZSkscD17bWluOnIsbWF4OmUsYTpjLGI6Zn0saD1bXSxiPVtdO2lmKGQmJihwLmlzUGFkZGVkPWQscC5tYXhMZW49U3RyaW5nKHAubWF4KS5sZW5ndGgpLGM8MCl7bGV0IHY9ZjwwP01hdGguYWJzKGYpOjE7Yj1jbSh2LE1hdGguYWJzKGMpLHAsaSksYz1wLmE9MH1yZXR1cm4gZj49MCYmKGg9Y20oYyxmLHAsaSkpLHAubmVnYXRpdmVzPWIscC5wb3NpdGl2ZXM9aCxwLnJlc3VsdD1LXyhiLGgsaSksaS5jYXB0dXJlPT09ITA/cC5yZXN1bHQ9YCgke3AucmVzdWx0fSlgOmkud3JhcCE9PSExJiZoLmxlbmd0aCtiLmxlbmd0aD4xJiYocC5yZXN1bHQ9YCg/OiR7cC5yZXN1bHR9KWApLFd0LmNhY2hlW2xdPXAscC5yZXN1bHR9O2Z1bmN0aW9uIEtfKHIsZSx0KXtsZXQgaT11bChyLGUsIi0iLCExLHQpfHxbXSxuPXVsKGUsciwiIiwhMSx0KXx8W10scz11bChyLGUsIi0/IiwhMCx0KXx8W107cmV0dXJuIGkuY29uY2F0KHMpLmNvbmNhdChuKS5qb2luKCJ8Iil9ZnVuY3Rpb24gWF8ocixlKXtsZXQgdD0xLGk9MSxuPWRtKHIsdCkscz1uZXcgU2V0KFtlXSk7Zm9yKDtyPD1uJiZuPD1lOylzLmFkZChuKSx0Kz0xLG49ZG0ocix0KTtmb3Iobj1obShlKzEsaSktMTtyPG4mJm48PWU7KXMuYWRkKG4pLGkrPTEsbj1obShlKzEsaSktMTtyZXR1cm4gcz1bLi4uc10scy5zb3J0KGVFKSxzfWZ1bmN0aW9uIFpfKHIsZSx0KXtpZihyPT09ZSlyZXR1cm57cGF0dGVybjpyLGNvdW50OltdLGRpZ2l0czowfTtsZXQgaT1KXyhyLGUpLG49aS5sZW5ndGgscz0iIixhPTA7Zm9yKGxldCBvPTA7bzxuO28rKyl7bGV0W2wsY109aVtvXTtsPT09Yz9zKz1sOmwhPT0iMCJ8fGMhPT0iOSI/cys9dEUobCxjLHQpOmErK31yZXR1cm4gYSYmKHMrPXQuc2hvcnRoYW5kPT09ITA/IlxcZCI6IlswLTldIikse3BhdHRlcm46cyxjb3VudDpbYV0sZGlnaXRzOm59fWZ1bmN0aW9uIGNtKHIsZSx0LGkpe2xldCBuPVhfKHIsZSkscz1bXSxhPXIsbztmb3IobGV0IGw9MDtsPG4ubGVuZ3RoO2wrKyl7bGV0IGM9bltsXSxmPVpfKFN0cmluZyhhKSxTdHJpbmcoYyksaSksZD0iIjtpZighdC5pc1BhZGRlZCYmbyYmby5wYXR0ZXJuPT09Zi5wYXR0ZXJuKXtvLmNvdW50Lmxlbmd0aD4xJiZvLmNvdW50LnBvcCgpLG8uY291bnQucHVzaChmLmNvdW50WzBdKSxvLnN0cmluZz1vLnBhdHRlcm4rbW0oby5jb3VudCksYT1jKzE7Y29udGludWV9dC5pc1BhZGRlZCYmKGQ9ckUoYyx0LGkpKSxmLnN0cmluZz1kK2YucGF0dGVybittbShmLmNvdW50KSxzLnB1c2goZiksYT1jKzEsbz1mfXJldHVybiBzfWZ1bmN0aW9uIHVsKHIsZSx0LGksbil7bGV0IHM9W107Zm9yKGxldCBhIG9mIHIpe2xldHtzdHJpbmc6b309YTshaSYmIXBtKGUsInN0cmluZyIsbykmJnMucHVzaCh0K28pLGkmJnBtKGUsInN0cmluZyIsbykmJnMucHVzaCh0K28pfXJldHVybiBzfWZ1bmN0aW9uIEpfKHIsZSl7bGV0IHQ9W107Zm9yKGxldCBpPTA7aTxyLmxlbmd0aDtpKyspdC5wdXNoKFtyW2ldLGVbaV1dKTtyZXR1cm4gdH1mdW5jdGlvbiBlRShyLGUpe3JldHVybiByPmU/MTplPnI/LTE6MH1mdW5jdGlvbiBwbShyLGUsdCl7cmV0dXJuIHIuc29tZShpPT5pW2VdPT09dCl9ZnVuY3Rpb24gZG0ocixlKXtyZXR1cm4gTnVtYmVyKFN0cmluZyhyKS5zbGljZSgwLC1lKSsiOSIucmVwZWF0KGUpKX1mdW5jdGlvbiBobShyLGUpe3JldHVybiByLXIlTWF0aC5wb3coMTAsZSl9ZnVuY3Rpb24gbW0ocil7bGV0W2U9MCx0PSIiXT1yO3JldHVybiB0fHxlPjE/YHske2UrKHQ/IiwiK3Q6IiIpfX1gOiIifWZ1bmN0aW9uIHRFKHIsZSx0KXtyZXR1cm5gWyR7cn0ke2Utcj09MT8iIjoiLSJ9JHtlfV1gfWZ1bmN0aW9uIGdtKHIpe3JldHVybi9eLT8oMCspXGQvLnRlc3Qocil9ZnVuY3Rpb24gckUocixlLHQpe2lmKCFlLmlzUGFkZGVkKXJldHVybiByO2xldCBpPU1hdGguYWJzKGUubWF4TGVuLVN0cmluZyhyKS5sZW5ndGgpLG49dC5yZWxheFplcm9zIT09ITE7c3dpdGNoKGkpe2Nhc2UgMDpyZXR1cm4iIjtjYXNlIDE6cmV0dXJuIG4/IjA/IjoiMCI7Y2FzZSAyOnJldHVybiBuPyIwezAsMn0iOiIwMCI7ZGVmYXVsdDpyZXR1cm4gbj9gMHswLCR7aX19YDpgMHske2l9fWB9fVd0LmNhY2hlPXt9O1d0LmNsZWFyQ2FjaGU9KCk9Pld0LmNhY2hlPXt9O3ltLmV4cG9ydHM9V3R9KTt2YXIgcGw9eCgodDYsQ20pPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgaUU9KEZuKCksQm4pLHdtPWJtKCksdm09cj0+ciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkociksbkU9cj0+ZT0+cj09PSEwP051bWJlcihlKTpTdHJpbmcoZSksZmw9cj0+dHlwZW9mIHI9PSJudW1iZXIifHx0eXBlb2Ygcj09InN0cmluZyImJnIhPT0iIixJaT1yPT5OdW1iZXIuaXNJbnRlZ2VyKCtyKSxjbD1yPT57bGV0IGU9YCR7cn1gLHQ9LTE7aWYoZVswXT09PSItIiYmKGU9ZS5zbGljZSgxKSksZT09PSIwIilyZXR1cm4hMTtmb3IoO2VbKyt0XT09PSIwIjspO3JldHVybiB0PjB9LHNFPShyLGUsdCk9PnR5cGVvZiByPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJzdHJpbmciPyEwOnQuc3RyaW5naWZ5PT09ITAsYUU9KHIsZSx0KT0+e2lmKGU+MCl7bGV0IGk9clswXT09PSItIj8iLSI6IiI7aSYmKHI9ci5zbGljZSgxKSkscj1pK3IucGFkU3RhcnQoaT9lLTE6ZSwiMCIpfXJldHVybiB0PT09ITE/U3RyaW5nKHIpOnJ9LG1zPShyLGUpPT57bGV0IHQ9clswXT09PSItIj8iLSI6IiI7Zm9yKHQmJihyPXIuc2xpY2UoMSksZS0tKTtyLmxlbmd0aDxlOylyPSIwIityO3JldHVybiB0PyItIityOnJ9LG9FPShyLGUsdCk9PntyLm5lZ2F0aXZlcy5zb3J0KChvLGwpPT5vPGw/LTE6bz5sPzE6MCksci5wb3NpdGl2ZXMuc29ydCgobyxsKT0+bzxsPy0xOm8+bD8xOjApO2xldCBpPWUuY2FwdHVyZT8iIjoiPzoiLG49IiIscz0iIixhO3JldHVybiByLnBvc2l0aXZlcy5sZW5ndGgmJihuPXIucG9zaXRpdmVzLm1hcChvPT5tcyhTdHJpbmcobyksdCkpLmpvaW4oInwiKSksci5uZWdhdGl2ZXMubGVuZ3RoJiYocz1gLSgke2l9JHtyLm5lZ2F0aXZlcy5tYXAobz0+bXMoU3RyaW5nKG8pLHQpKS5qb2luKCJ8Iil9KWApLG4mJnM/YT1gJHtufXwke3N9YDphPW58fHMsZS53cmFwP2AoJHtpfSR7YX0pYDphfSx4bT0ocixlLHQsaSk9PntpZih0KXJldHVybiB3bShyLGUse3dyYXA6ITEsLi4uaX0pO2xldCBuPVN0cmluZy5mcm9tQ2hhckNvZGUocik7aWYocj09PWUpcmV0dXJuIG47bGV0IHM9U3RyaW5nLmZyb21DaGFyQ29kZShlKTtyZXR1cm5gWyR7bn0tJHtzfV1gfSxrbT0ocixlLHQpPT57aWYoQXJyYXkuaXNBcnJheShyKSl7bGV0IGk9dC53cmFwPT09ITAsbj10LmNhcHR1cmU/IiI6Ij86IjtyZXR1cm4gaT9gKCR7bn0ke3Iuam9pbigifCIpfSlgOnIuam9pbigifCIpfXJldHVybiB3bShyLGUsdCl9LFNtPSguLi5yKT0+bmV3IFJhbmdlRXJyb3IoIkludmFsaWQgcmFuZ2UgYXJndW1lbnRzOiAiK2lFLmluc3BlY3QoLi4ucikpLEFtPShyLGUsdCk9PntpZih0LnN0cmljdFJhbmdlcz09PSEwKXRocm93IFNtKFtyLGVdKTtyZXR1cm5bXX0sbEU9KHIsZSk9PntpZihlLnN0cmljdFJhbmdlcz09PSEwKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHN0ZXAgIiR7cn0iIHRvIGJlIGEgbnVtYmVyYCk7cmV0dXJuW119LHVFPShyLGUsdD0xLGk9e30pPT57bGV0IG49TnVtYmVyKHIpLHM9TnVtYmVyKGUpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHwhTnVtYmVyLmlzSW50ZWdlcihzKSl7aWYoaS5zdHJpY3RSYW5nZXM9PT0hMCl0aHJvdyBTbShbcixlXSk7cmV0dXJuW119bj09PTAmJihuPTApLHM9PT0wJiYocz0wKTtsZXQgYT1uPnMsbz1TdHJpbmcociksbD1TdHJpbmcoZSksYz1TdHJpbmcodCk7dD1NYXRoLm1heChNYXRoLmFicyh0KSwxKTtsZXQgZj1jbChvKXx8Y2wobCl8fGNsKGMpLGQ9Zj9NYXRoLm1heChvLmxlbmd0aCxsLmxlbmd0aCxjLmxlbmd0aCk6MCxwPWY9PT0hMSYmc0UocixlLGkpPT09ITEsaD1pLnRyYW5zZm9ybXx8bkUocCk7aWYoaS50b1JlZ2V4JiZ0PT09MSlyZXR1cm4geG0obXMocixkKSxtcyhlLGQpLCEwLGkpO2xldCBiPXtuZWdhdGl2ZXM6W10scG9zaXRpdmVzOltdfSx2PWs9PmJbazwwPyJuZWdhdGl2ZXMiOiJwb3NpdGl2ZXMiXS5wdXNoKE1hdGguYWJzKGspKSx5PVtdLHc9MDtmb3IoO2E/bj49czpuPD1zOylpLnRvUmVnZXg9PT0hMCYmdD4xP3Yobik6eS5wdXNoKGFFKGgobix3KSxkLHApKSxuPWE/bi10Om4rdCx3Kys7cmV0dXJuIGkudG9SZWdleD09PSEwP3Q+MT9vRShiLGksZCk6a20oeSxudWxsLHt3cmFwOiExLC4uLml9KTp5fSxmRT0ocixlLHQ9MSxpPXt9KT0+e2lmKCFJaShyKSYmci5sZW5ndGg+MXx8IUlpKGUpJiZlLmxlbmd0aD4xKXJldHVybiBBbShyLGUsaSk7bGV0IG49aS50cmFuc2Zvcm18fChwPT5TdHJpbmcuZnJvbUNoYXJDb2RlKHApKSxzPWAke3J9YC5jaGFyQ29kZUF0KDApLGE9YCR7ZX1gLmNoYXJDb2RlQXQoMCksbz1zPmEsbD1NYXRoLm1pbihzLGEpLGM9TWF0aC5tYXgocyxhKTtpZihpLnRvUmVnZXgmJnQ9PT0xKXJldHVybiB4bShsLGMsITEsaSk7bGV0IGY9W10sZD0wO2Zvcig7bz9zPj1hOnM8PWE7KWYucHVzaChuKHMsZCkpLHM9bz9zLXQ6cyt0LGQrKztyZXR1cm4gaS50b1JlZ2V4PT09ITA/a20oZixudWxsLHt3cmFwOiExLG9wdGlvbnM6aX0pOmZ9LGdzPShyLGUsdCxpPXt9KT0+e2lmKGU9PW51bGwmJmZsKHIpKXJldHVybltyXTtpZighZmwocil8fCFmbChlKSlyZXR1cm4gQW0ocixlLGkpO2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiBncyhyLGUsMSx7dHJhbnNmb3JtOnR9KTtpZih2bSh0KSlyZXR1cm4gZ3MocixlLDAsdCk7bGV0IG49ey4uLml9O3JldHVybiBuLmNhcHR1cmU9PT0hMCYmKG4ud3JhcD0hMCksdD10fHxuLnN0ZXB8fDEsSWkodCk/SWkocikmJklpKGUpP3VFKHIsZSx0LG4pOmZFKHIsZSxNYXRoLm1heChNYXRoLmFicyh0KSwxKSxuKTp0IT1udWxsJiYhdm0odCk/bEUodCxuKTpncyhyLGUsMSx0KX07Q20uZXhwb3J0cz1nc30pO3ZhciBPbT14KChyNixFbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBjRT1wbCgpLF9tPWRzKCkscEU9KHIsZT17fSk9PntsZXQgdD0oaSxuPXt9KT0+e2xldCBzPV9tLmlzSW52YWxpZEJyYWNlKG4pLGE9aS5pbnZhbGlkPT09ITAmJmUuZXNjYXBlSW52YWxpZD09PSEwLG89cz09PSEwfHxhPT09ITAsbD1lLmVzY2FwZUludmFsaWQ9PT0hMD8iXFwiOiIiLGM9IiI7aWYoaS5pc09wZW49PT0hMClyZXR1cm4gbCtpLnZhbHVlO2lmKGkuaXNDbG9zZT09PSEwKXJldHVybiBjb25zb2xlLmxvZygibm9kZS5pc0Nsb3NlIixsLGkudmFsdWUpLGwraS52YWx1ZTtpZihpLnR5cGU9PT0ib3BlbiIpcmV0dXJuIG8/bCtpLnZhbHVlOiIoIjtpZihpLnR5cGU9PT0iY2xvc2UiKXJldHVybiBvP2wraS52YWx1ZToiKSI7aWYoaS50eXBlPT09ImNvbW1hIilyZXR1cm4gaS5wcmV2LnR5cGU9PT0iY29tbWEiPyIiOm8/aS52YWx1ZToifCI7aWYoaS52YWx1ZSlyZXR1cm4gaS52YWx1ZTtpZihpLm5vZGVzJiZpLnJhbmdlcz4wKXtsZXQgZj1fbS5yZWR1Y2UoaS5ub2RlcyksZD1jRSguLi5mLHsuLi5lLHdyYXA6ITEsdG9SZWdleDohMCxzdHJpY3RaZXJvczohMH0pO2lmKGQubGVuZ3RoIT09MClyZXR1cm4gZi5sZW5ndGg+MSYmZC5sZW5ndGg+MT9gKCR7ZH0pYDpkfWlmKGkubm9kZXMpZm9yKGxldCBmIG9mIGkubm9kZXMpYys9dChmLGkpO3JldHVybiBjfTtyZXR1cm4gdChyKX07RW0uZXhwb3J0cz1wRX0pO3ZhciBQbT14KChpNixSbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBkRT1wbCgpLFRtPWhzKCksbXI9ZHMoKSxHdD0ocj0iIixlPSIiLHQ9ITEpPT57bGV0IGk9W107aWYocj1bXS5jb25jYXQociksZT1bXS5jb25jYXQoZSksIWUubGVuZ3RoKXJldHVybiByO2lmKCFyLmxlbmd0aClyZXR1cm4gdD9tci5mbGF0dGVuKGUpLm1hcChuPT5geyR7bn19YCk6ZTtmb3IobGV0IG4gb2YgcilpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgcyBvZiBuKWkucHVzaChHdChzLGUsdCkpO2Vsc2UgZm9yKGxldCBzIG9mIGUpdD09PSEwJiZ0eXBlb2Ygcz09InN0cmluZyImJihzPWB7JHtzfX1gKSxpLnB1c2goQXJyYXkuaXNBcnJheShzKT9HdChuLHMsdCk6bitzKTtyZXR1cm4gbXIuZmxhdHRlbihpKX0saEU9KHIsZT17fSk9PntsZXQgdD1lLnJhbmdlTGltaXQ9PT12b2lkIDA/MWUzOmUucmFuZ2VMaW1pdCxpPShuLHM9e30pPT57bi5xdWV1ZT1bXTtsZXQgYT1zLG89cy5xdWV1ZTtmb3IoO2EudHlwZSE9PSJicmFjZSImJmEudHlwZSE9PSJyb290IiYmYS5wYXJlbnQ7KWE9YS5wYXJlbnQsbz1hLnF1ZXVlO2lmKG4uaW52YWxpZHx8bi5kb2xsYXIpe28ucHVzaChHdChvLnBvcCgpLFRtKG4sZSkpKTtyZXR1cm59aWYobi50eXBlPT09ImJyYWNlIiYmbi5pbnZhbGlkIT09ITAmJm4ubm9kZXMubGVuZ3RoPT09Mil7by5wdXNoKEd0KG8ucG9wKCksWyJ7fSJdKSk7cmV0dXJufWlmKG4ubm9kZXMmJm4ucmFuZ2VzPjApe2xldCBkPW1yLnJlZHVjZShuLm5vZGVzKTtpZihtci5leGNlZWRzTGltaXQoLi4uZCxlLnN0ZXAsdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImV4cGFuZGVkIGFycmF5IGxlbmd0aCBleGNlZWRzIHJhbmdlIGxpbWl0LiBVc2Ugb3B0aW9ucy5yYW5nZUxpbWl0IHRvIGluY3JlYXNlIG9yIGRpc2FibGUgdGhlIGxpbWl0LiIpO2xldCBwPWRFKC4uLmQsZSk7cC5sZW5ndGg9PT0wJiYocD1UbShuLGUpKSxvLnB1c2goR3Qoby5wb3AoKSxwKSksbi5ub2Rlcz1bXTtyZXR1cm59bGV0IGw9bXIuZW5jbG9zZUJyYWNlKG4pLGM9bi5xdWV1ZSxmPW47Zm9yKDtmLnR5cGUhPT0iYnJhY2UiJiZmLnR5cGUhPT0icm9vdCImJmYucGFyZW50OylmPWYucGFyZW50LGM9Zi5xdWV1ZTtmb3IobGV0IGQ9MDtkPG4ubm9kZXMubGVuZ3RoO2QrKyl7bGV0IHA9bi5ub2Rlc1tkXTtpZihwLnR5cGU9PT0iY29tbWEiJiZuLnR5cGU9PT0iYnJhY2UiKXtkPT09MSYmYy5wdXNoKCIiKSxjLnB1c2goIiIpO2NvbnRpbnVlfWlmKHAudHlwZT09PSJjbG9zZSIpe28ucHVzaChHdChvLnBvcCgpLGMsbCkpO2NvbnRpbnVlfWlmKHAudmFsdWUmJnAudHlwZSE9PSJvcGVuIil7Yy5wdXNoKEd0KGMucG9wKCkscC52YWx1ZSkpO2NvbnRpbnVlfXAubm9kZXMmJmkocCxuKX1yZXR1cm4gY307cmV0dXJuIG1yLmZsYXR0ZW4oaShyKSl9O1JtLmV4cG9ydHM9aEV9KTt2YXIgRG09eCgobjYsSW0pPT57dSgpOyJ1c2Ugc3RyaWN0IjtJbS5leHBvcnRzPXtNQVhfTEVOR1RIOjFlNCxDSEFSXzA6IjAiLENIQVJfOToiOSIsQ0hBUl9VUFBFUkNBU0VfQToiQSIsQ0hBUl9MT1dFUkNBU0VfQToiYSIsQ0hBUl9VUFBFUkNBU0VfWjoiWiIsQ0hBUl9MT1dFUkNBU0VfWjoieiIsQ0hBUl9MRUZUX1BBUkVOVEhFU0VTOiIoIixDSEFSX1JJR0hUX1BBUkVOVEhFU0VTOiIpIixDSEFSX0FTVEVSSVNLOiIqIixDSEFSX0FNUEVSU0FORDoiJiIsQ0hBUl9BVDoiQCIsQ0hBUl9CQUNLU0xBU0g6IlxcIixDSEFSX0JBQ0tUSUNLOiJgIixDSEFSX0NBUlJJQUdFX1JFVFVSTjoiXHIiLENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6Il4iLENIQVJfQ09MT046IjoiLENIQVJfQ09NTUE6IiwiLENIQVJfRE9MTEFSOiIkIixDSEFSX0RPVDoiLiIsQ0hBUl9ET1VCTEVfUVVPVEU6JyInLENIQVJfRVFVQUw6Ij0iLENIQVJfRVhDTEFNQVRJT05fTUFSSzoiISIsQ0hBUl9GT1JNX0ZFRUQ6IlxmIixDSEFSX0ZPUldBUkRfU0xBU0g6Ii8iLENIQVJfSEFTSDoiIyIsQ0hBUl9IWVBIRU5fTUlOVVM6Ii0iLENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOiI8IixDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6InsiLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDoiWyIsQ0hBUl9MSU5FX0ZFRUQ6YApgLENIQVJfTk9fQlJFQUtfU1BBQ0U6Ilx4QTAiLENIQVJfUEVSQ0VOVDoiJSIsQ0hBUl9QTFVTOiIrIixDSEFSX1FVRVNUSU9OX01BUks6Ij8iLENIQVJfUklHSFRfQU5HTEVfQlJBQ0tFVDoiPiIsQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRToifSIsQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDoiXSIsQ0hBUl9TRU1JQ09MT046IjsiLENIQVJfU0lOR0xFX1FVT1RFOiInIixDSEFSX1NQQUNFOiIgIixDSEFSX1RBQjoiCSIsQ0hBUl9VTkRFUlNDT1JFOiJfIixDSEFSX1ZFUlRJQ0FMX0xJTkU6InwiLENIQVJfWkVST19XSURUSF9OT0JSRUFLX1NQQUNFOiJcdUZFRkYifX0pO3ZhciBObT14KChzNixNbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBtRT1ocygpLHtNQVhfTEVOR1RIOnFtLENIQVJfQkFDS1NMQVNIOmRsLENIQVJfQkFDS1RJQ0s6Z0UsQ0hBUl9DT01NQTp5RSxDSEFSX0RPVDpiRSxDSEFSX0xFRlRfUEFSRU5USEVTRVM6d0UsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzp2RSxDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6eEUsQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRTprRSxDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6JG0sQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDpMbSxDSEFSX0RPVUJMRV9RVU9URTpTRSxDSEFSX1NJTkdMRV9RVU9URTpBRSxDSEFSX05PX0JSRUFLX1NQQUNFOkNFLENIQVJfWkVST19XSURUSF9OT0JSRUFLX1NQQUNFOl9FfT1EbSgpLEVFPShyLGU9e30pPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7bGV0IHQ9ZXx8e30saT10eXBlb2YgdC5tYXhMZW5ndGg9PSJudW1iZXIiP01hdGgubWluKHFtLHQubWF4TGVuZ3RoKTpxbTtpZihyLmxlbmd0aD5pKXRocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoICgke3IubGVuZ3RofSksIGV4Y2VlZHMgbWF4IGNoYXJhY3RlcnMgKCR7aX0pYCk7bGV0IG49e3R5cGU6InJvb3QiLGlucHV0OnIsbm9kZXM6W119LHM9W25dLGE9bixvPW4sbD0wLGM9ci5sZW5ndGgsZj0wLGQ9MCxwLGg9KCk9PnJbZisrXSxiPXY9PntpZih2LnR5cGU9PT0idGV4dCImJm8udHlwZT09PSJkb3QiJiYoby50eXBlPSJ0ZXh0IiksbyYmby50eXBlPT09InRleHQiJiZ2LnR5cGU9PT0idGV4dCIpe28udmFsdWUrPXYudmFsdWU7cmV0dXJufXJldHVybiBhLm5vZGVzLnB1c2godiksdi5wYXJlbnQ9YSx2LnByZXY9byxvPXYsdn07Zm9yKGIoe3R5cGU6ImJvcyJ9KTtmPGM7KWlmKGE9c1tzLmxlbmd0aC0xXSxwPWgoKSwhKHA9PT1fRXx8cD09PUNFKSl7aWYocD09PWRsKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTooZS5rZWVwRXNjYXBpbmc/cDoiIikraCgpfSk7Y29udGludWV9aWYocD09PUxtKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiXFwiK3B9KTtjb250aW51ZX1pZihwPT09JG0pe2wrKztsZXQgdjtmb3IoO2Y8YyYmKHY9aCgpKTspe2lmKHArPXYsdj09PSRtKXtsKys7Y29udGludWV9aWYodj09PWRsKXtwKz1oKCk7Y29udGludWV9aWYodj09PUxtJiYobC0tLGw9PT0wKSlicmVha31iKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXdFKXthPWIoe3R5cGU6InBhcmVuIixub2RlczpbXX0pLHMucHVzaChhKSxiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXZFKXtpZihhLnR5cGUhPT0icGFyZW4iKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9YT1zLnBvcCgpLGIoe3R5cGU6InRleHQiLHZhbHVlOnB9KSxhPXNbcy5sZW5ndGgtMV07Y29udGludWV9aWYocD09PVNFfHxwPT09QUV8fHA9PT1nRSl7bGV0IHY9cCx5O2ZvcihlLmtlZXBRdW90ZXMhPT0hMCYmKHA9IiIpO2Y8YyYmKHk9aCgpKTspe2lmKHk9PT1kbCl7cCs9eStoKCk7Y29udGludWV9aWYoeT09PXYpe2Uua2VlcFF1b3Rlcz09PSEwJiYocCs9eSk7YnJlYWt9cCs9eX1iKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXhFKXtkKys7bGV0IHY9by52YWx1ZSYmby52YWx1ZS5zbGljZSgtMSk9PT0iJCJ8fGEuZG9sbGFyPT09ITA7YT1iKHt0eXBlOiJicmFjZSIsb3BlbjohMCxjbG9zZTohMSxkb2xsYXI6dixkZXB0aDpkLGNvbW1hczowLHJhbmdlczowLG5vZGVzOltdfSkscy5wdXNoKGEpLGIoe3R5cGU6Im9wZW4iLHZhbHVlOnB9KTtjb250aW51ZX1pZihwPT09a0Upe2lmKGEudHlwZSE9PSJicmFjZSIpe2Ioe3R5cGU6InRleHQiLHZhbHVlOnB9KTtjb250aW51ZX1sZXQgdj0iY2xvc2UiO2E9cy5wb3AoKSxhLmNsb3NlPSEwLGIoe3R5cGU6dix2YWx1ZTpwfSksZC0tLGE9c1tzLmxlbmd0aC0xXTtjb250aW51ZX1pZihwPT09eUUmJmQ+MCl7aWYoYS5yYW5nZXM+MCl7YS5yYW5nZXM9MDtsZXQgdj1hLm5vZGVzLnNoaWZ0KCk7YS5ub2Rlcz1bdix7dHlwZToidGV4dCIsdmFsdWU6bUUoYSl9XX1iKHt0eXBlOiJjb21tYSIsdmFsdWU6cH0pLGEuY29tbWFzKys7Y29udGludWV9aWYocD09PWJFJiZkPjAmJmEuY29tbWFzPT09MCl7bGV0IHY9YS5ub2RlcztpZihkPT09MHx8di5sZW5ndGg9PT0wKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYoby50eXBlPT09ImRvdCIpe2lmKGEucmFuZ2U9W10sby52YWx1ZSs9cCxvLnR5cGU9InJhbmdlIixhLm5vZGVzLmxlbmd0aCE9PTMmJmEubm9kZXMubGVuZ3RoIT09NSl7YS5pbnZhbGlkPSEwLGEucmFuZ2VzPTAsby50eXBlPSJ0ZXh0Ijtjb250aW51ZX1hLnJhbmdlcysrLGEuYXJncz1bXTtjb250aW51ZX1pZihvLnR5cGU9PT0icmFuZ2UiKXt2LnBvcCgpO2xldCB5PXZbdi5sZW5ndGgtMV07eS52YWx1ZSs9by52YWx1ZStwLG89eSxhLnJhbmdlcy0tO2NvbnRpbnVlfWIoe3R5cGU6ImRvdCIsdmFsdWU6cH0pO2NvbnRpbnVlfWIoe3R5cGU6InRleHQiLHZhbHVlOnB9KX1kbyBpZihhPXMucG9wKCksYS50eXBlIT09InJvb3QiKXthLm5vZGVzLmZvckVhY2godz0+e3cubm9kZXN8fCh3LnR5cGU9PT0ib3BlbiImJih3LmlzT3Blbj0hMCksdy50eXBlPT09ImNsb3NlIiYmKHcuaXNDbG9zZT0hMCksdy5ub2Rlc3x8KHcudHlwZT0idGV4dCIpLHcuaW52YWxpZD0hMCl9KTtsZXQgdj1zW3MubGVuZ3RoLTFdLHk9di5ub2Rlcy5pbmRleE9mKGEpO3Yubm9kZXMuc3BsaWNlKHksMSwuLi5hLm5vZGVzKX13aGlsZShzLmxlbmd0aD4wKTtyZXR1cm4gYih7dHlwZToiZW9zIn0pLG59O01tLmV4cG9ydHM9RUV9KTt2YXIgam09eCgoYTYsRm0pPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgQm09aHMoKSxPRT1PbSgpLFRFPVBtKCksUkU9Tm0oKSxMZT0ocixlPXt9KT0+e2xldCB0PVtdO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKGxldCBpIG9mIHIpe2xldCBuPUxlLmNyZWF0ZShpLGUpO0FycmF5LmlzQXJyYXkobik/dC5wdXNoKC4uLm4pOnQucHVzaChuKX1lbHNlIHQ9W10uY29uY2F0KExlLmNyZWF0ZShyLGUpKTtyZXR1cm4gZSYmZS5leHBhbmQ9PT0hMCYmZS5ub2R1cGVzPT09ITAmJih0PVsuLi5uZXcgU2V0KHQpXSksdH07TGUucGFyc2U9KHIsZT17fSk9PlJFKHIsZSk7TGUuc3RyaW5naWZ5PShyLGU9e30pPT50eXBlb2Ygcj09InN0cmluZyI/Qm0oTGUucGFyc2UocixlKSxlKTpCbShyLGUpO0xlLmNvbXBpbGU9KHIsZT17fSk9Pih0eXBlb2Ygcj09InN0cmluZyImJihyPUxlLnBhcnNlKHIsZSkpLE9FKHIsZSkpO0xlLmV4cGFuZD0ocixlPXt9KT0+e3R5cGVvZiByPT0ic3RyaW5nIiYmKHI9TGUucGFyc2UocixlKSk7bGV0IHQ9VEUocixlKTtyZXR1cm4gZS5ub2VtcHR5PT09ITAmJih0PXQuZmlsdGVyKEJvb2xlYW4pKSxlLm5vZHVwZXM9PT0hMCYmKHQ9Wy4uLm5ldyBTZXQodCldKSx0fTtMZS5jcmVhdGU9KHIsZT17fSk9PnI9PT0iInx8ci5sZW5ndGg8Mz9bcl06ZS5leHBhbmQhPT0hMD9MZS5jb21waWxlKHIsZSk6TGUuZXhwYW5kKHIsZSk7Rm0uZXhwb3J0cz1MZX0pO3ZhciBEaT14KChvNixXbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBQRT0oZXQoKSxVciksYXQ9IlxcXFwvIix6bT1gW14ke2F0fV1gLHl0PSJcXC4iLElFPSJcXCsiLERFPSJcXD8iLHlzPSJcXC8iLHFFPSIoPz0uKSIsVW09IlteL10iLGhsPWAoPzoke3lzfXwkKWAsVm09YCg/Ol58JHt5c30pYCxtbD1gJHt5dH17MSwyfSR7aGx9YCwkRT1gKD8hJHt5dH0pYCxMRT1gKD8hJHtWbX0ke21sfSlgLE1FPWAoPyEke3l0fXswLDF9JHtobH0pYCxORT1gKD8hJHttbH0pYCxCRT1gW14uJHt5c31dYCxGRT1gJHtVbX0qP2AsSG09e0RPVF9MSVRFUkFMOnl0LFBMVVNfTElURVJBTDpJRSxRTUFSS19MSVRFUkFMOkRFLFNMQVNIX0xJVEVSQUw6eXMsT05FX0NIQVI6cUUsUU1BUks6VW0sRU5EX0FOQ0hPUjpobCxET1RTX1NMQVNIOm1sLE5PX0RPVDokRSxOT19ET1RTOkxFLE5PX0RPVF9TTEFTSDpNRSxOT19ET1RTX1NMQVNIOk5FLFFNQVJLX05PX0RPVDpCRSxTVEFSOkZFLFNUQVJUX0FOQ0hPUjpWbX0sakU9ey4uLkhtLFNMQVNIX0xJVEVSQUw6YFske2F0fV1gLFFNQVJLOnptLFNUQVI6YCR7em19Kj9gLERPVFNfU0xBU0g6YCR7eXR9ezEsMn0oPzpbJHthdH1dfCQpYCxOT19ET1Q6YCg/ISR7eXR9KWAsTk9fRE9UUzpgKD8hKD86XnxbJHthdH1dKSR7eXR9ezEsMn0oPzpbJHthdH1dfCQpKWAsTk9fRE9UX1NMQVNIOmAoPyEke3l0fXswLDF9KD86WyR7YXR9XXwkKSlgLE5PX0RPVFNfU0xBU0g6YCg/ISR7eXR9ezEsMn0oPzpbJHthdH1dfCQpKWAsUU1BUktfTk9fRE9UOmBbXi4ke2F0fV1gLFNUQVJUX0FOQ0hPUjpgKD86XnxbJHthdH1dKWAsRU5EX0FOQ0hPUjpgKD86WyR7YXR9XXwkKWB9LHpFPXthbG51bToiYS16QS1aMC05IixhbHBoYToiYS16QS1aIixhc2NpaToiXFx4MDAtXFx4N0YiLGJsYW5rOiIgXFx0IixjbnRybDoiXFx4MDAtXFx4MUZcXHg3RiIsZGlnaXQ6IjAtOSIsZ3JhcGg6IlxceDIxLVxceDdFIixsb3dlcjoiYS16IixwcmludDoiXFx4MjAtXFx4N0UgIixwdW5jdDoiXFwtIVwiIyQlJicoKVxcKissLi86Ozw9Pj9AW1xcXV5fYHt8fX4iLHNwYWNlOiIgXFx0XFxyXFxuXFx2XFxmIix1cHBlcjoiQS1aIix3b3JkOiJBLVphLXowLTlfIix4ZGlnaXQ6IkEtRmEtZjAtOSJ9O1dtLmV4cG9ydHM9e01BWF9MRU5HVEg6MTAyNCo2NCxQT1NJWF9SRUdFWF9TT1VSQ0U6ekUsUkVHRVhfQkFDS1NMQVNIOi9cXCg/IVsqKz9eJHt9KHwpW1xdXSkvZyxSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzovXlteQCFbXF0uLCQqKz9ee30oKXxcXC9dKy8sUkVHRVhfU1BFQ0lBTF9DSEFSUzovWy0qKz8uXiR7fSh8KVtcXV0vLFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjovKFxcPykoKFxXKShcMyopKS9nLFJFR0VYX1NQRUNJQUxfQ0hBUlNfR0xPQkFMOi8oWy0qKz8uXiR7fSh8KVtcXV0pL2csUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSDovKD86XFsuKj9bXlxcXVxdfFxcKD89LikpL2csUkVQTEFDRU1FTlRTOnsiKioqIjoiKiIsIioqLyoqIjoiKioiLCIqKi8qKi8qKiI6IioqIn0sQ0hBUl8wOjQ4LENIQVJfOTo1NyxDSEFSX1VQUEVSQ0FTRV9BOjY1LENIQVJfTE9XRVJDQVNFX0E6OTcsQ0hBUl9VUFBFUkNBU0VfWjo5MCxDSEFSX0xPV0VSQ0FTRV9aOjEyMixDSEFSX0xFRlRfUEFSRU5USEVTRVM6NDAsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzo0MSxDSEFSX0FTVEVSSVNLOjQyLENIQVJfQU1QRVJTQU5EOjM4LENIQVJfQVQ6NjQsQ0hBUl9CQUNLV0FSRF9TTEFTSDo5MixDSEFSX0NBUlJJQUdFX1JFVFVSTjoxMyxDSEFSX0NJUkNVTUZMRVhfQUNDRU5UOjk0LENIQVJfQ09MT046NTgsQ0hBUl9DT01NQTo0NCxDSEFSX0RPVDo0NixDSEFSX0RPVUJMRV9RVU9URTozNCxDSEFSX0VRVUFMOjYxLENIQVJfRVhDTEFNQVRJT05fTUFSSzozMyxDSEFSX0ZPUk1fRkVFRDoxMixDSEFSX0ZPUldBUkRfU0xBU0g6NDcsQ0hBUl9HUkFWRV9BQ0NFTlQ6OTYsQ0hBUl9IQVNIOjM1LENIQVJfSFlQSEVOX01JTlVTOjQ1LENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOjYwLENIQVJfTEVGVF9DVVJMWV9CUkFDRToxMjMsQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUOjkxLENIQVJfTElORV9GRUVEOjEwLENIQVJfTk9fQlJFQUtfU1BBQ0U6MTYwLENIQVJfUEVSQ0VOVDozNyxDSEFSX1BMVVM6NDMsQ0hBUl9RVUVTVElPTl9NQVJLOjYzLENIQVJfUklHSFRfQU5HTEVfQlJBQ0tFVDo2MixDSEFSX1JJR0hUX0NVUkxZX0JSQUNFOjEyNSxDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUOjkzLENIQVJfU0VNSUNPTE9OOjU5LENIQVJfU0lOR0xFX1FVT1RFOjM5LENIQVJfU1BBQ0U6MzIsQ0hBUl9UQUI6OSxDSEFSX1VOREVSU0NPUkU6OTUsQ0hBUl9WRVJUSUNBTF9MSU5FOjEyNCxDSEFSX1pFUk9fV0lEVEhfTk9CUkVBS19TUEFDRTo2NTI3OSxTRVA6UEUuc2VwLGV4dGdsb2JDaGFycyhyKXtyZXR1cm57IiEiOnt0eXBlOiJuZWdhdGUiLG9wZW46Iig/Oig/ISg/OiIsY2xvc2U6YCkpJHtyLlNUQVJ9KWB9LCI/Ijp7dHlwZToicW1hcmsiLG9wZW46Iig/OiIsY2xvc2U6Iik/In0sIisiOnt0eXBlOiJwbHVzIixvcGVuOiIoPzoiLGNsb3NlOiIpKyJ9LCIqIjp7dHlwZToic3RhciIsb3BlbjoiKD86IixjbG9zZToiKSoifSwiQCI6e3R5cGU6ImF0IixvcGVuOiIoPzoiLGNsb3NlOiIpIn19fSxnbG9iQ2hhcnMocil7cmV0dXJuIHI9PT0hMD9qRTpIbX19fSk7dmFyIHFpPXgoUmU9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBVRT0oZXQoKSxVciksVkU9bS5wbGF0Zm9ybT09PSJ3aW4zMiIse1JFR0VYX0JBQ0tTTEFTSDpIRSxSRUdFWF9SRU1PVkVfQkFDS1NMQVNIOldFLFJFR0VYX1NQRUNJQUxfQ0hBUlM6R0UsUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUw6UUV9PURpKCk7UmUuaXNPYmplY3Q9cj0+ciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkocik7UmUuaGFzUmVnZXhDaGFycz1yPT5HRS50ZXN0KHIpO1JlLmlzUmVnZXhDaGFyPXI9PnIubGVuZ3RoPT09MSYmUmUuaGFzUmVnZXhDaGFycyhyKTtSZS5lc2NhcGVSZWdleD1yPT5yLnJlcGxhY2UoUUUsIlxcJDEiKTtSZS50b1Bvc2l4U2xhc2hlcz1yPT5yLnJlcGxhY2UoSEUsIi8iKTtSZS5yZW1vdmVCYWNrc2xhc2hlcz1yPT5yLnJlcGxhY2UoV0UsZT0+ZT09PSJcXCI/IiI6ZSk7UmUuc3VwcG9ydHNMb29rYmVoaW5kcz0oKT0+e2xldCByPW0udmVyc2lvbi5zbGljZSgxKS5zcGxpdCgiLiIpLm1hcChOdW1iZXIpO3JldHVybiByLmxlbmd0aD09PTMmJnJbMF0+PTl8fHJbMF09PT04JiZyWzFdPj0xMH07UmUuaXNXaW5kb3dzPXI9PnImJnR5cGVvZiByLndpbmRvd3M9PSJib29sZWFuIj9yLndpbmRvd3M6VkU9PT0hMHx8VUUuc2VwPT09IlxcIjtSZS5lc2NhcGVMYXN0PShyLGUsdCk9PntsZXQgaT1yLmxhc3RJbmRleE9mKGUsdCk7cmV0dXJuIGk9PT0tMT9yOnJbaS0xXT09PSJcXCI/UmUuZXNjYXBlTGFzdChyLGUsaS0xKTpgJHtyLnNsaWNlKDAsaSl9XFwke3Iuc2xpY2UoaSl9YH07UmUucmVtb3ZlUHJlZml4PShyLGU9e30pPT57bGV0IHQ9cjtyZXR1cm4gdC5zdGFydHNXaXRoKCIuLyIpJiYodD10LnNsaWNlKDIpLGUucHJlZml4PSIuLyIpLHR9O1JlLndyYXBPdXRwdXQ9KHIsZT17fSx0PXt9KT0+e2xldCBpPXQuY29udGFpbnM/IiI6Il4iLG49dC5jb250YWlucz8iIjoiJCIscz1gJHtpfSg/OiR7cn0pJHtufWA7cmV0dXJuIGUubmVnYXRlZD09PSEwJiYocz1gKD86Xig/ISR7c30pLiokKWApLHN9fSk7dmFyIGVnPXgoKHU2LEptKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIEdtPXFpKCkse0NIQVJfQVNURVJJU0s6Z2wsQ0hBUl9BVDpZRSxDSEFSX0JBQ0tXQVJEX1NMQVNIOiRpLENIQVJfQ09NTUE6S0UsQ0hBUl9ET1Q6eWwsQ0hBUl9FWENMQU1BVElPTl9NQVJLOmJsLENIQVJfRk9SV0FSRF9TTEFTSDpRbSxDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6d2wsQ0hBUl9MRUZUX1BBUkVOVEhFU0VTOnZsLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDpYRSxDSEFSX1BMVVM6WkUsQ0hBUl9RVUVTVElPTl9NQVJLOlltLENIQVJfUklHSFRfQ1VSTFlfQlJBQ0U6SkUsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzpLbSxDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUOmUyfT1EaSgpLFhtPXI9PnI9PT1RbXx8cj09PSRpLFptPXI9PntyLmlzUHJlZml4IT09ITAmJihyLmRlcHRoPXIuaXNHbG9ic3Rhcj8xLzA6MSl9LHQyPShyLGUpPT57bGV0IHQ9ZXx8e30saT1yLmxlbmd0aC0xLG49dC5wYXJ0cz09PSEwfHx0LnNjYW5Ub0VuZD09PSEwLHM9W10sYT1bXSxvPVtdLGw9cixjPS0xLGY9MCxkPTAscD0hMSxoPSExLGI9ITEsdj0hMSx5PSExLHc9ITEsaz0hMSxTPSExLEU9ITEsVD0hMSxCPTAsTixSLEY9e3ZhbHVlOiIiLGRlcHRoOjAsaXNHbG9iOiExfSxZPSgpPT5jPj1pLF89KCk9PmwuY2hhckNvZGVBdChjKzEpLFE9KCk9PihOPVIsbC5jaGFyQ29kZUF0KCsrYykpO2Zvcig7YzxpOyl7Uj1RKCk7bGV0IGhlO2lmKFI9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFI9USgpLFI9PT13bCYmKHc9ITApO2NvbnRpbnVlfWlmKHc9PT0hMHx8Uj09PXdsKXtmb3IoQisrO1koKSE9PSEwJiYoUj1RKCkpOyl7aWYoUj09PSRpKXtrPUYuYmFja3NsYXNoZXM9ITAsUSgpO2NvbnRpbnVlfWlmKFI9PT13bCl7QisrO2NvbnRpbnVlfWlmKHchPT0hMCYmUj09PXlsJiYoUj1RKCkpPT09eWwpe2lmKHA9Ri5pc0JyYWNlPSEwLGI9Ri5pc0dsb2I9ITAsVD0hMCxuPT09ITApY29udGludWU7YnJlYWt9aWYodyE9PSEwJiZSPT09S0Upe2lmKHA9Ri5pc0JyYWNlPSEwLGI9Ri5pc0dsb2I9ITAsVD0hMCxuPT09ITApY29udGludWU7YnJlYWt9aWYoUj09PUpFJiYoQi0tLEI9PT0wKSl7dz0hMSxwPUYuaXNCcmFjZT0hMCxUPSEwO2JyZWFrfX1pZihuPT09ITApY29udGludWU7YnJlYWt9aWYoUj09PVFtKXtpZihzLnB1c2goYyksYS5wdXNoKEYpLEY9e3ZhbHVlOiIiLGRlcHRoOjAsaXNHbG9iOiExfSxUPT09ITApY29udGludWU7aWYoTj09PXlsJiZjPT09ZisxKXtmKz0yO2NvbnRpbnVlfWQ9YysxO2NvbnRpbnVlfWlmKHQubm9leHQhPT0hMCYmKFI9PT1aRXx8Uj09PVlFfHxSPT09Z2x8fFI9PT1ZbXx8Uj09PWJsKT09PSEwJiZfKCk9PT12bCl7aWYoYj1GLmlzR2xvYj0hMCx2PUYuaXNFeHRnbG9iPSEwLFQ9ITAsUj09PWJsJiZjPT09ZiYmKEU9ITApLG49PT0hMCl7Zm9yKDtZKCkhPT0hMCYmKFI9USgpKTspe2lmKFI9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFI9USgpO2NvbnRpbnVlfWlmKFI9PT1LbSl7Yj1GLmlzR2xvYj0hMCxUPSEwO2JyZWFrfX1jb250aW51ZX1icmVha31pZihSPT09Z2wpe2lmKE49PT1nbCYmKHk9Ri5pc0dsb2JzdGFyPSEwKSxiPUYuaXNHbG9iPSEwLFQ9ITAsbj09PSEwKWNvbnRpbnVlO2JyZWFrfWlmKFI9PT1ZbSl7aWYoYj1GLmlzR2xvYj0hMCxUPSEwLG49PT0hMCljb250aW51ZTticmVha31pZihSPT09WEUpe2Zvcig7WSgpIT09ITAmJihoZT1RKCkpOyl7aWYoaGU9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFEoKTtjb250aW51ZX1pZihoZT09PWUyKXtoPUYuaXNCcmFja2V0PSEwLGI9Ri5pc0dsb2I9ITAsVD0hMDticmVha319aWYobj09PSEwKWNvbnRpbnVlO2JyZWFrfWlmKHQubm9uZWdhdGUhPT0hMCYmUj09PWJsJiZjPT09Zil7Uz1GLm5lZ2F0ZWQ9ITAsZisrO2NvbnRpbnVlfWlmKHQubm9wYXJlbiE9PSEwJiZSPT09dmwpe2lmKGI9Ri5pc0dsb2I9ITAsbj09PSEwKXtmb3IoO1koKSE9PSEwJiYoUj1RKCkpOyl7aWYoUj09PXZsKXtrPUYuYmFja3NsYXNoZXM9ITAsUj1RKCk7Y29udGludWV9aWYoUj09PUttKXtUPSEwO2JyZWFrfX1jb250aW51ZX1icmVha31pZihiPT09ITApe2lmKFQ9ITAsbj09PSEwKWNvbnRpbnVlO2JyZWFrfX10Lm5vZXh0PT09ITAmJih2PSExLGI9ITEpO2xldCBVPWwsbGU9IiIsQT0iIjtmPjAmJihsZT1sLnNsaWNlKDAsZiksbD1sLnNsaWNlKGYpLGQtPWYpLFUmJmI9PT0hMCYmZD4wPyhVPWwuc2xpY2UoMCxkKSxBPWwuc2xpY2UoZCkpOmI9PT0hMD8oVT0iIixBPWwpOlU9bCxVJiZVIT09IiImJlUhPT0iLyImJlUhPT1sJiZYbShVLmNoYXJDb2RlQXQoVS5sZW5ndGgtMSkpJiYoVT1VLnNsaWNlKDAsLTEpKSx0LnVuZXNjYXBlPT09ITAmJihBJiYoQT1HbS5yZW1vdmVCYWNrc2xhc2hlcyhBKSksVSYmaz09PSEwJiYoVT1HbS5yZW1vdmVCYWNrc2xhc2hlcyhVKSkpO2xldCBDPXtwcmVmaXg6bGUsaW5wdXQ6cixzdGFydDpmLGJhc2U6VSxnbG9iOkEsaXNCcmFjZTpwLGlzQnJhY2tldDpoLGlzR2xvYjpiLGlzRXh0Z2xvYjp2LGlzR2xvYnN0YXI6eSxuZWdhdGVkOlMsbmVnYXRlZEV4dGdsb2I6RX07aWYodC50b2tlbnM9PT0hMCYmKEMubWF4RGVwdGg9MCxYbShSKXx8YS5wdXNoKEYpLEMudG9rZW5zPWEpLHQucGFydHM9PT0hMHx8dC50b2tlbnM9PT0hMCl7bGV0IGhlO2ZvcihsZXQgVj0wO1Y8cy5sZW5ndGg7VisrKXtsZXQgRWU9aGU/aGUrMTpmLEllPXNbVl0sRGU9ci5zbGljZShFZSxJZSk7dC50b2tlbnMmJihWPT09MCYmZiE9PTA/KGFbVl0uaXNQcmVmaXg9ITAsYVtWXS52YWx1ZT1sZSk6YVtWXS52YWx1ZT1EZSxabShhW1ZdKSxDLm1heERlcHRoKz1hW1ZdLmRlcHRoKSwoViE9PTB8fERlIT09IiIpJiZvLnB1c2goRGUpLGhlPUllfWlmKGhlJiZoZSsxPHIubGVuZ3RoKXtsZXQgVj1yLnNsaWNlKGhlKzEpO28ucHVzaChWKSx0LnRva2VucyYmKGFbYS5sZW5ndGgtMV0udmFsdWU9VixabShhW2EubGVuZ3RoLTFdKSxDLm1heERlcHRoKz1hW2EubGVuZ3RoLTFdLmRlcHRoKX1DLnNsYXNoZXM9cyxDLnBhcnRzPW99cmV0dXJuIEN9O0ptLmV4cG9ydHM9dDJ9KTt2YXIgaWc9eCgoZjYscmcpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYnM9RGkoKSxNZT1xaSgpLHtNQVhfTEVOR1RIOndzLFBPU0lYX1JFR0VYX1NPVVJDRTpyMixSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzppMixSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUY6bjIsUkVQTEFDRU1FTlRTOnRnfT1icyxzMj0ocixlKT0+e2lmKHR5cGVvZiBlLmV4cGFuZFJhbmdlPT0iZnVuY3Rpb24iKXJldHVybiBlLmV4cGFuZFJhbmdlKC4uLnIsZSk7ci5zb3J0KCk7bGV0IHQ9YFske3Iuam9pbigiLSIpfV1gO3RyeXtuZXcgUmVnRXhwKHQpfWNhdGNoKGkpe3JldHVybiByLm1hcChuPT5NZS5lc2NhcGVSZWdleChuKSkuam9pbigiLi4iKX1yZXR1cm4gdH0sZ3I9KHIsZSk9PmBNaXNzaW5nICR7cn06ICIke2V9IiAtIHVzZSAiXFxcXCR7ZX0iIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2AseGw9KHIsZSk9PntpZih0eXBlb2YgciE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTtyPXRnW3JdfHxyO2xldCB0PXsuLi5lfSxpPXR5cGVvZiB0Lm1heExlbmd0aD09Im51bWJlciI/TWF0aC5taW4od3MsdC5tYXhMZW5ndGgpOndzLG49ci5sZW5ndGg7aWYobj5pKXRocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoOiAke259LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7aX1gKTtsZXQgcz17dHlwZToiYm9zIix2YWx1ZToiIixvdXRwdXQ6dC5wcmVwZW5kfHwiIn0sYT1bc10sbz10LmNhcHR1cmU/IiI6Ij86IixsPU1lLmlzV2luZG93cyhlKSxjPWJzLmdsb2JDaGFycyhsKSxmPWJzLmV4dGdsb2JDaGFycyhjKSx7RE9UX0xJVEVSQUw6ZCxQTFVTX0xJVEVSQUw6cCxTTEFTSF9MSVRFUkFMOmgsT05FX0NIQVI6YixET1RTX1NMQVNIOnYsTk9fRE9UOnksTk9fRE9UX1NMQVNIOncsTk9fRE9UU19TTEFTSDprLFFNQVJLOlMsUU1BUktfTk9fRE9UOkUsU1RBUjpULFNUQVJUX0FOQ0hPUjpCfT1jLE49JD0+YCgke299KD86KD8hJHtCfSR7JC5kb3Q/djpkfSkuKSo/KWAsUj10LmRvdD8iIjp5LEY9dC5kb3Q/UzpFLFk9dC5iYXNoPT09ITA/Tih0KTpUO3QuY2FwdHVyZSYmKFk9YCgke1l9KWApLHR5cGVvZiB0Lm5vZXh0PT0iYm9vbGVhbiImJih0Lm5vZXh0Z2xvYj10Lm5vZXh0KTtsZXQgXz17aW5wdXQ6cixpbmRleDotMSxzdGFydDowLGRvdDp0LmRvdD09PSEwLGNvbnN1bWVkOiIiLG91dHB1dDoiIixwcmVmaXg6IiIsYmFja3RyYWNrOiExLG5lZ2F0ZWQ6ITEsYnJhY2tldHM6MCxicmFjZXM6MCxwYXJlbnM6MCxxdW90ZXM6MCxnbG9ic3RhcjohMSx0b2tlbnM6YX07cj1NZS5yZW1vdmVQcmVmaXgocixfKSxuPXIubGVuZ3RoO2xldCBRPVtdLFU9W10sbGU9W10sQT1zLEMsaGU9KCk9Pl8uaW5kZXg9PT1uLTEsVj1fLnBlZWs9KCQ9MSk9PnJbXy5pbmRleCskXSxFZT1fLmFkdmFuY2U9KCk9PnJbKytfLmluZGV4XXx8IiIsSWU9KCk9PnIuc2xpY2UoXy5pbmRleCsxKSxEZT0oJD0iIixhZT0wKT0+e18uY29uc3VtZWQrPSQsXy5pbmRleCs9YWV9LGppPSQ9PntfLm91dHB1dCs9JC5vdXRwdXQhPW51bGw/JC5vdXRwdXQ6JC52YWx1ZSxEZSgkLnZhbHVlKX0sSXY9KCk9PntsZXQgJD0xO2Zvcig7VigpPT09IiEiJiYoVigyKSE9PSIoInx8VigzKT09PSI/Iik7KUVlKCksXy5zdGFydCsrLCQrKztyZXR1cm4gJCUyPT0wPyExOihfLm5lZ2F0ZWQ9ITAsXy5zdGFydCsrLCEwKX0semk9JD0+e19bJF0rKyxsZS5wdXNoKCQpfSxGdD0kPT57X1skXS0tLGxlLnBvcCgpfSxXPSQ9PntpZihBLnR5cGU9PT0iZ2xvYnN0YXIiKXtsZXQgYWU9Xy5icmFjZXM+MCYmKCQudHlwZT09PSJjb21tYSJ8fCQudHlwZT09PSJicmFjZSIpLEk9JC5leHRnbG9iPT09ITB8fFEubGVuZ3RoJiYoJC50eXBlPT09InBpcGUifHwkLnR5cGU9PT0icGFyZW4iKTskLnR5cGUhPT0ic2xhc2giJiYkLnR5cGUhPT0icGFyZW4iJiYhYWUmJiFJJiYoXy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtQS5vdXRwdXQubGVuZ3RoKSxBLnR5cGU9InN0YXIiLEEudmFsdWU9IioiLEEub3V0cHV0PVksXy5vdXRwdXQrPUEub3V0cHV0KX1pZihRLmxlbmd0aCYmJC50eXBlIT09InBhcmVuIiYmKFFbUS5sZW5ndGgtMV0uaW5uZXIrPSQudmFsdWUpLCgkLnZhbHVlfHwkLm91dHB1dCkmJmppKCQpLEEmJkEudHlwZT09PSJ0ZXh0IiYmJC50eXBlPT09InRleHQiKXtBLnZhbHVlKz0kLnZhbHVlLEEub3V0cHV0PShBLm91dHB1dHx8IiIpKyQudmFsdWU7cmV0dXJufSQucHJldj1BLGEucHVzaCgkKSxBPSR9LFVpPSgkLGFlKT0+e2xldCBJPXsuLi5mW2FlXSxjb25kaXRpb25zOjEsaW5uZXI6IiJ9O0kucHJldj1BLEkucGFyZW5zPV8ucGFyZW5zLEkub3V0cHV0PV8ub3V0cHV0O2xldCBIPSh0LmNhcHR1cmU/IigiOiIiKStJLm9wZW47emkoInBhcmVucyIpLFcoe3R5cGU6JCx2YWx1ZTphZSxvdXRwdXQ6Xy5vdXRwdXQ/IiI6Yn0pLFcoe3R5cGU6InBhcmVuIixleHRnbG9iOiEwLHZhbHVlOkVlKCksb3V0cHV0Okh9KSxRLnB1c2goSSl9LER2PSQ9PntsZXQgYWU9JC5jbG9zZSsodC5jYXB0dXJlPyIpIjoiIiksSTtpZigkLnR5cGU9PT0ibmVnYXRlIil7bGV0IEg9WTtpZigkLmlubmVyJiYkLmlubmVyLmxlbmd0aD4xJiYkLmlubmVyLmluY2x1ZGVzKCIvIikmJihIPU4odCkpLChIIT09WXx8aGUoKXx8L15cKSskLy50ZXN0KEllKCkpKSYmKGFlPSQuY2xvc2U9YCkkKSkke0h9YCksJC5pbm5lci5pbmNsdWRlcygiKiIpJiYoST1JZSgpKSYmL15cLlteXFwvLl0rJC8udGVzdChJKSl7bGV0IGNlPXhsKEksey4uLmUsZmFzdHBhdGhzOiExfSkub3V0cHV0O2FlPSQuY2xvc2U9YCkke2NlfSkke0h9KWB9JC5wcmV2LnR5cGU9PT0iYm9zIiYmKF8ubmVnYXRlZEV4dGdsb2I9ITApfVcoe3R5cGU6InBhcmVuIixleHRnbG9iOiEwLHZhbHVlOkMsb3V0cHV0OmFlfSksRnQoInBhcmVucyIpfTtpZih0LmZhc3RwYXRocyE9PSExJiYhLyheWyohXXxbLygpW1xde30iXSkvLnRlc3Qocikpe2xldCAkPSExLGFlPXIucmVwbGFjZShuMiwoSSxILGNlLENlLHllLEJzKT0+Q2U9PT0iXFwiPygkPSEwLEkpOkNlPT09Ij8iP0g/SCtDZSsoeWU/Uy5yZXBlYXQoeWUubGVuZ3RoKToiIik6QnM9PT0wP0YrKHllP1MucmVwZWF0KHllLmxlbmd0aCk6IiIpOlMucmVwZWF0KGNlLmxlbmd0aCk6Q2U9PT0iLiI/ZC5yZXBlYXQoY2UubGVuZ3RoKTpDZT09PSIqIj9IP0grQ2UrKHllP1k6IiIpOlk6SD9JOmBcXCR7SX1gKTtyZXR1cm4gJD09PSEwJiYodC51bmVzY2FwZT09PSEwP2FlPWFlLnJlcGxhY2UoL1xcL2csIiIpOmFlPWFlLnJlcGxhY2UoL1xcKy9nLEk9PkkubGVuZ3RoJTI9PTA/IlxcXFwiOkk/IlxcIjoiIikpLGFlPT09ciYmdC5jb250YWlucz09PSEwPyhfLm91dHB1dD1yLF8pOihfLm91dHB1dD1NZS53cmFwT3V0cHV0KGFlLF8sZSksXyl9Zm9yKDshaGUoKTspe2lmKEM9RWUoKSxDPT09IlwwIiljb250aW51ZTtpZihDPT09IlxcIil7bGV0IEk9VigpO2lmKEk9PT0iLyImJnQuYmFzaCE9PSEwfHxJPT09Ii4ifHxJPT09IjsiKWNvbnRpbnVlO2lmKCFJKXtDKz0iXFwiLFcoe3R5cGU6InRleHQiLHZhbHVlOkN9KTtjb250aW51ZX1sZXQgSD0vXlxcKy8uZXhlYyhJZSgpKSxjZT0wO2lmKEgmJkhbMF0ubGVuZ3RoPjImJihjZT1IWzBdLmxlbmd0aCxfLmluZGV4Kz1jZSxjZSUyIT0wJiYoQys9IlxcIikpLHQudW5lc2NhcGU9PT0hMD9DPUVlKCk6Qys9RWUoKSxfLmJyYWNrZXRzPT09MCl7Vyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfX1pZihfLmJyYWNrZXRzPjAmJihDIT09Il0ifHxBLnZhbHVlPT09IlsifHxBLnZhbHVlPT09IlteIikpe2lmKHQucG9zaXghPT0hMSYmQz09PSI6Iil7bGV0IEk9QS52YWx1ZS5zbGljZSgxKTtpZihJLmluY2x1ZGVzKCJbIikmJihBLnBvc2l4PSEwLEkuaW5jbHVkZXMoIjoiKSkpe2xldCBIPUEudmFsdWUubGFzdEluZGV4T2YoIlsiKSxjZT1BLnZhbHVlLnNsaWNlKDAsSCksQ2U9QS52YWx1ZS5zbGljZShIKzIpLHllPXIyW0NlXTtpZih5ZSl7QS52YWx1ZT1jZSt5ZSxfLmJhY2t0cmFjaz0hMCxFZSgpLCFzLm91dHB1dCYmYS5pbmRleE9mKEEpPT09MSYmKHMub3V0cHV0PWIpO2NvbnRpbnVlfX19KEM9PT0iWyImJlYoKSE9PSI6Inx8Qz09PSItIiYmVigpPT09Il0iKSYmKEM9YFxcJHtDfWApLEM9PT0iXSImJihBLnZhbHVlPT09IlsifHxBLnZhbHVlPT09IlteIikmJihDPWBcXCR7Q31gKSx0LnBvc2l4PT09ITAmJkM9PT0iISImJkEudmFsdWU9PT0iWyImJihDPSJeIiksQS52YWx1ZSs9QyxqaSh7dmFsdWU6Q30pO2NvbnRpbnVlfWlmKF8ucXVvdGVzPT09MSYmQyE9PSciJyl7Qz1NZS5lc2NhcGVSZWdleChDKSxBLnZhbHVlKz1DLGppKHt2YWx1ZTpDfSk7Y29udGludWV9aWYoQz09PSciJyl7Xy5xdW90ZXM9Xy5xdW90ZXM9PT0xPzA6MSx0LmtlZXBRdW90ZXM9PT0hMCYmVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iKCIpe3ppKCJwYXJlbnMiKSxXKHt0eXBlOiJwYXJlbiIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iKSIpe2lmKF8ucGFyZW5zPT09MCYmdC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigib3BlbmluZyIsIigiKSk7bGV0IEk9UVtRLmxlbmd0aC0xXTtpZihJJiZfLnBhcmVucz09PUkucGFyZW5zKzEpe0R2KFEucG9wKCkpO2NvbnRpbnVlfVcoe3R5cGU6InBhcmVuIix2YWx1ZTpDLG91dHB1dDpfLnBhcmVucz8iKSI6IlxcKSJ9KSxGdCgicGFyZW5zIik7Y29udGludWV9aWYoQz09PSJbIil7aWYodC5ub2JyYWNrZXQ9PT0hMHx8IUllKCkuaW5jbHVkZXMoIl0iKSl7aWYodC5ub2JyYWNrZXQhPT0hMCYmdC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigiY2xvc2luZyIsIl0iKSk7Qz1gXFwke0N9YH1lbHNlIHppKCJicmFja2V0cyIpO1coe3R5cGU6ImJyYWNrZXQiLHZhbHVlOkN9KTtjb250aW51ZX1pZihDPT09Il0iKXtpZih0Lm5vYnJhY2tldD09PSEwfHxBJiZBLnR5cGU9PT0iYnJhY2tldCImJkEudmFsdWUubGVuZ3RoPT09MSl7Vyh7dHlwZToidGV4dCIsdmFsdWU6QyxvdXRwdXQ6YFxcJHtDfWB9KTtjb250aW51ZX1pZihfLmJyYWNrZXRzPT09MCl7aWYodC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigib3BlbmluZyIsIlsiKSk7Vyh7dHlwZToidGV4dCIsdmFsdWU6QyxvdXRwdXQ6YFxcJHtDfWB9KTtjb250aW51ZX1GdCgiYnJhY2tldHMiKTtsZXQgST1BLnZhbHVlLnNsaWNlKDEpO2lmKEEucG9zaXghPT0hMCYmSVswXT09PSJeIiYmIUkuaW5jbHVkZXMoIi8iKSYmKEM9YC8ke0N9YCksQS52YWx1ZSs9QyxqaSh7dmFsdWU6Q30pLHQubGl0ZXJhbEJyYWNrZXRzPT09ITF8fE1lLmhhc1JlZ2V4Q2hhcnMoSSkpY29udGludWU7bGV0IEg9TWUuZXNjYXBlUmVnZXgoQS52YWx1ZSk7aWYoXy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtQS52YWx1ZS5sZW5ndGgpLHQubGl0ZXJhbEJyYWNrZXRzPT09ITApe18ub3V0cHV0Kz1ILEEudmFsdWU9SDtjb250aW51ZX1BLnZhbHVlPWAoJHtvfSR7SH18JHtBLnZhbHVlfSlgLF8ub3V0cHV0Kz1BLnZhbHVlO2NvbnRpbnVlfWlmKEM9PT0ieyImJnQubm9icmFjZSE9PSEwKXt6aSgiYnJhY2VzIik7bGV0IEk9e3R5cGU6ImJyYWNlIix2YWx1ZTpDLG91dHB1dDoiKCIsb3V0cHV0SW5kZXg6Xy5vdXRwdXQubGVuZ3RoLHRva2Vuc0luZGV4Ol8udG9rZW5zLmxlbmd0aH07VS5wdXNoKEkpLFcoSSk7Y29udGludWV9aWYoQz09PSJ9Iil7bGV0IEk9VVtVLmxlbmd0aC0xXTtpZih0Lm5vYnJhY2U9PT0hMHx8IUkpe1coe3R5cGU6InRleHQiLHZhbHVlOkMsb3V0cHV0OkN9KTtjb250aW51ZX1sZXQgSD0iKSI7aWYoSS5kb3RzPT09ITApe2xldCBjZT1hLnNsaWNlKCksQ2U9W107Zm9yKGxldCB5ZT1jZS5sZW5ndGgtMTt5ZT49MCYmKGEucG9wKCksY2VbeWVdLnR5cGUhPT0iYnJhY2UiKTt5ZS0tKWNlW3llXS50eXBlIT09ImRvdHMiJiZDZS51bnNoaWZ0KGNlW3llXS52YWx1ZSk7SD1zMihDZSx0KSxfLmJhY2t0cmFjaz0hMH1pZihJLmNvbW1hIT09ITAmJkkuZG90cyE9PSEwKXtsZXQgY2U9Xy5vdXRwdXQuc2xpY2UoMCxJLm91dHB1dEluZGV4KSxDZT1fLnRva2Vucy5zbGljZShJLnRva2Vuc0luZGV4KTtJLnZhbHVlPUkub3V0cHV0PSJcXHsiLEM9SD0iXFx9IixfLm91dHB1dD1jZTtmb3IobGV0IHllIG9mIENlKV8ub3V0cHV0Kz15ZS5vdXRwdXR8fHllLnZhbHVlfVcoe3R5cGU6ImJyYWNlIix2YWx1ZTpDLG91dHB1dDpIfSksRnQoImJyYWNlcyIpLFUucG9wKCk7Y29udGludWV9aWYoQz09PSJ8Iil7US5sZW5ndGg+MCYmUVtRLmxlbmd0aC0xXS5jb25kaXRpb25zKyssVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iLCIpe2xldCBJPUMsSD1VW1UubGVuZ3RoLTFdO0gmJmxlW2xlLmxlbmd0aC0xXT09PSJicmFjZXMiJiYoSC5jb21tYT0hMCxJPSJ8IiksVyh7dHlwZToiY29tbWEiLHZhbHVlOkMsb3V0cHV0Okl9KTtjb250aW51ZX1pZihDPT09Ii8iKXtpZihBLnR5cGU9PT0iZG90IiYmXy5pbmRleD09PV8uc3RhcnQrMSl7Xy5zdGFydD1fLmluZGV4KzEsXy5jb25zdW1lZD0iIixfLm91dHB1dD0iIixhLnBvcCgpLEE9cztjb250aW51ZX1XKHt0eXBlOiJzbGFzaCIsdmFsdWU6QyxvdXRwdXQ6aH0pO2NvbnRpbnVlfWlmKEM9PT0iLiIpe2lmKF8uYnJhY2VzPjAmJkEudHlwZT09PSJkb3QiKXtBLnZhbHVlPT09Ii4iJiYoQS5vdXRwdXQ9ZCk7bGV0IEk9VVtVLmxlbmd0aC0xXTtBLnR5cGU9ImRvdHMiLEEub3V0cHV0Kz1DLEEudmFsdWUrPUMsSS5kb3RzPSEwO2NvbnRpbnVlfWlmKF8uYnJhY2VzK18ucGFyZW5zPT09MCYmQS50eXBlIT09ImJvcyImJkEudHlwZSE9PSJzbGFzaCIpe1coe3R5cGU6InRleHQiLHZhbHVlOkMsb3V0cHV0OmR9KTtjb250aW51ZX1XKHt0eXBlOiJkb3QiLHZhbHVlOkMsb3V0cHV0OmR9KTtjb250aW51ZX1pZihDPT09Ij8iKXtpZighKEEmJkEudmFsdWU9PT0iKCIpJiZ0Lm5vZXh0Z2xvYiE9PSEwJiZWKCk9PT0iKCImJlYoMikhPT0iPyIpe1VpKCJxbWFyayIsQyk7Y29udGludWV9aWYoQSYmQS50eXBlPT09InBhcmVuIil7bGV0IEg9VigpLGNlPUM7aWYoSD09PSI8IiYmIU1lLnN1cHBvcnRzTG9va2JlaGluZHMoKSl0aHJvdyBuZXcgRXJyb3IoIk5vZGUuanMgdjEwIG9yIGhpZ2hlciBpcyByZXF1aXJlZCBmb3IgcmVnZXggbG9va2JlaGluZHMiKTsoQS52YWx1ZT09PSIoIiYmIS9bIT08Ol0vLnRlc3QoSCl8fEg9PT0iPCImJiEvPChbIT1dfFx3Kz4pLy50ZXN0KEllKCkpKSYmKGNlPWBcXCR7Q31gKSxXKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpDLG91dHB1dDpjZX0pO2NvbnRpbnVlfWlmKHQuZG90IT09ITAmJihBLnR5cGU9PT0ic2xhc2gifHxBLnR5cGU9PT0iYm9zIikpe1coe3R5cGU6InFtYXJrIix2YWx1ZTpDLG91dHB1dDpFfSk7Y29udGludWV9Vyh7dHlwZToicW1hcmsiLHZhbHVlOkMsb3V0cHV0OlN9KTtjb250aW51ZX1pZihDPT09IiEiKXtpZih0Lm5vZXh0Z2xvYiE9PSEwJiZWKCk9PT0iKCImJihWKDIpIT09Ij8ifHwhL1shPTw6XS8udGVzdChWKDMpKSkpe1VpKCJuZWdhdGUiLEMpO2NvbnRpbnVlfWlmKHQubm9uZWdhdGUhPT0hMCYmXy5pbmRleD09PTApe0l2KCk7Y29udGludWV9fWlmKEM9PT0iKyIpe2lmKHQubm9leHRnbG9iIT09ITAmJlYoKT09PSIoIiYmVigyKSE9PSI/Iil7VWkoInBsdXMiLEMpO2NvbnRpbnVlfWlmKEEmJkEudmFsdWU9PT0iKCJ8fHQucmVnZXg9PT0hMSl7Vyh7dHlwZToicGx1cyIsdmFsdWU6QyxvdXRwdXQ6cH0pO2NvbnRpbnVlfWlmKEEmJihBLnR5cGU9PT0iYnJhY2tldCJ8fEEudHlwZT09PSJwYXJlbiJ8fEEudHlwZT09PSJicmFjZSIpfHxfLnBhcmVucz4wKXtXKHt0eXBlOiJwbHVzIix2YWx1ZTpDfSk7Y29udGludWV9Vyh7dHlwZToicGx1cyIsdmFsdWU6cH0pO2NvbnRpbnVlfWlmKEM9PT0iQCIpe2lmKHQubm9leHRnbG9iIT09ITAmJlYoKT09PSIoIiYmVigyKSE9PSI/Iil7Vyh7dHlwZToiYXQiLGV4dGdsb2I6ITAsdmFsdWU6QyxvdXRwdXQ6IiJ9KTtjb250aW51ZX1XKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpDfSk7Y29udGludWV9aWYoQyE9PSIqIil7KEM9PT0iJCJ8fEM9PT0iXiIpJiYoQz1gXFwke0N9YCk7bGV0IEk9aTIuZXhlYyhJZSgpKTtJJiYoQys9SVswXSxfLmluZGV4Kz1JWzBdLmxlbmd0aCksVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEEmJihBLnR5cGU9PT0iZ2xvYnN0YXIifHxBLnN0YXI9PT0hMCkpe0EudHlwZT0ic3RhciIsQS5zdGFyPSEwLEEudmFsdWUrPUMsQS5vdXRwdXQ9WSxfLmJhY2t0cmFjaz0hMCxfLmdsb2JzdGFyPSEwLERlKEMpO2NvbnRpbnVlfWxldCAkPUllKCk7aWYodC5ub2V4dGdsb2IhPT0hMCYmL15cKFteP10vLnRlc3QoJCkpe1VpKCJzdGFyIixDKTtjb250aW51ZX1pZihBLnR5cGU9PT0ic3RhciIpe2lmKHQubm9nbG9ic3Rhcj09PSEwKXtEZShDKTtjb250aW51ZX1sZXQgST1BLnByZXYsSD1JLnByZXYsY2U9SS50eXBlPT09InNsYXNoInx8SS50eXBlPT09ImJvcyIsQ2U9SCYmKEgudHlwZT09PSJzdGFyInx8SC50eXBlPT09Imdsb2JzdGFyIik7aWYodC5iYXNoPT09ITAmJighY2V8fCRbMF0mJiRbMF0hPT0iLyIpKXtXKHt0eXBlOiJzdGFyIix2YWx1ZTpDLG91dHB1dDoiIn0pO2NvbnRpbnVlfWxldCB5ZT1fLmJyYWNlcz4wJiYoSS50eXBlPT09ImNvbW1hInx8SS50eXBlPT09ImJyYWNlIiksQnM9US5sZW5ndGgmJihJLnR5cGU9PT0icGlwZSJ8fEkudHlwZT09PSJwYXJlbiIpO2lmKCFjZSYmSS50eXBlIT09InBhcmVuIiYmIXllJiYhQnMpe1coe3R5cGU6InN0YXIiLHZhbHVlOkMsb3V0cHV0OiIifSk7Y29udGludWV9Zm9yKDskLnNsaWNlKDAsMyk9PT0iLyoqIjspe2xldCBWaT1yW18uaW5kZXgrNF07aWYoVmkmJlZpIT09Ii8iKWJyZWFrOyQ9JC5zbGljZSgzKSxEZSgiLyoqIiwzKX1pZihJLnR5cGU9PT0iYm9zIiYmaGUoKSl7QS50eXBlPSJnbG9ic3RhciIsQS52YWx1ZSs9QyxBLm91dHB1dD1OKHQpLF8ub3V0cHV0PUEub3V0cHV0LF8uZ2xvYnN0YXI9ITAsRGUoQyk7Y29udGludWV9aWYoSS50eXBlPT09InNsYXNoIiYmSS5wcmV2LnR5cGUhPT0iYm9zIiYmIUNlJiZoZSgpKXtfLm91dHB1dD1fLm91dHB1dC5zbGljZSgwLC0oSS5vdXRwdXQrQS5vdXRwdXQpLmxlbmd0aCksSS5vdXRwdXQ9YCg/OiR7SS5vdXRwdXR9YCxBLnR5cGU9Imdsb2JzdGFyIixBLm91dHB1dD1OKHQpKyh0LnN0cmljdFNsYXNoZXM/IikiOiJ8JCkiKSxBLnZhbHVlKz1DLF8uZ2xvYnN0YXI9ITAsXy5vdXRwdXQrPUkub3V0cHV0K0Eub3V0cHV0LERlKEMpO2NvbnRpbnVlfWlmKEkudHlwZT09PSJzbGFzaCImJkkucHJldi50eXBlIT09ImJvcyImJiRbMF09PT0iLyIpe2xldCBWaT0kWzFdIT09dm9pZCAwPyJ8JCI6IiI7Xy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtKEkub3V0cHV0K0Eub3V0cHV0KS5sZW5ndGgpLEkub3V0cHV0PWAoPzoke0kub3V0cHV0fWAsQS50eXBlPSJnbG9ic3RhciIsQS5vdXRwdXQ9YCR7Tih0KX0ke2h9fCR7aH0ke1ZpfSlgLEEudmFsdWUrPUMsXy5vdXRwdXQrPUkub3V0cHV0K0Eub3V0cHV0LF8uZ2xvYnN0YXI9ITAsRGUoQytFZSgpKSxXKHt0eXBlOiJzbGFzaCIsdmFsdWU6Ii8iLG91dHB1dDoiIn0pO2NvbnRpbnVlfWlmKEkudHlwZT09PSJib3MiJiYkWzBdPT09Ii8iKXtBLnR5cGU9Imdsb2JzdGFyIixBLnZhbHVlKz1DLEEub3V0cHV0PWAoPzpefCR7aH18JHtOKHQpfSR7aH0pYCxfLm91dHB1dD1BLm91dHB1dCxfLmdsb2JzdGFyPSEwLERlKEMrRWUoKSksVyh7dHlwZToic2xhc2giLHZhbHVlOiIvIixvdXRwdXQ6IiJ9KTtjb250aW51ZX1fLm91dHB1dD1fLm91dHB1dC5zbGljZSgwLC1BLm91dHB1dC5sZW5ndGgpLEEudHlwZT0iZ2xvYnN0YXIiLEEub3V0cHV0PU4odCksQS52YWx1ZSs9QyxfLm91dHB1dCs9QS5vdXRwdXQsXy5nbG9ic3Rhcj0hMCxEZShDKTtjb250aW51ZX1sZXQgYWU9e3R5cGU6InN0YXIiLHZhbHVlOkMsb3V0cHV0Oll9O2lmKHQuYmFzaD09PSEwKXthZS5vdXRwdXQ9Ii4qPyIsKEEudHlwZT09PSJib3MifHxBLnR5cGU9PT0ic2xhc2giKSYmKGFlLm91dHB1dD1SK2FlLm91dHB1dCksVyhhZSk7Y29udGludWV9aWYoQSYmKEEudHlwZT09PSJicmFja2V0Inx8QS50eXBlPT09InBhcmVuIikmJnQucmVnZXg9PT0hMCl7YWUub3V0cHV0PUMsVyhhZSk7Y29udGludWV9KF8uaW5kZXg9PT1fLnN0YXJ0fHxBLnR5cGU9PT0ic2xhc2gifHxBLnR5cGU9PT0iZG90IikmJihBLnR5cGU9PT0iZG90Ij8oXy5vdXRwdXQrPXcsQS5vdXRwdXQrPXcpOnQuZG90PT09ITA/KF8ub3V0cHV0Kz1rLEEub3V0cHV0Kz1rKTooXy5vdXRwdXQrPVIsQS5vdXRwdXQrPVIpLFYoKSE9PSIqIiYmKF8ub3V0cHV0Kz1iLEEub3V0cHV0Kz1iKSksVyhhZSl9Zm9yKDtfLmJyYWNrZXRzPjA7KXtpZih0LnN0cmljdEJyYWNrZXRzPT09ITApdGhyb3cgbmV3IFN5bnRheEVycm9yKGdyKCJjbG9zaW5nIiwiXSIpKTtfLm91dHB1dD1NZS5lc2NhcGVMYXN0KF8ub3V0cHV0LCJbIiksRnQoImJyYWNrZXRzIil9Zm9yKDtfLnBhcmVucz4wOyl7aWYodC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigiY2xvc2luZyIsIikiKSk7Xy5vdXRwdXQ9TWUuZXNjYXBlTGFzdChfLm91dHB1dCwiKCIpLEZ0KCJwYXJlbnMiKX1mb3IoO18uYnJhY2VzPjA7KXtpZih0LnN0cmljdEJyYWNrZXRzPT09ITApdGhyb3cgbmV3IFN5bnRheEVycm9yKGdyKCJjbG9zaW5nIiwifSIpKTtfLm91dHB1dD1NZS5lc2NhcGVMYXN0KF8ub3V0cHV0LCJ7IiksRnQoImJyYWNlcyIpfWlmKHQuc3RyaWN0U2xhc2hlcyE9PSEwJiYoQS50eXBlPT09InN0YXIifHxBLnR5cGU9PT0iYnJhY2tldCIpJiZXKHt0eXBlOiJtYXliZV9zbGFzaCIsdmFsdWU6IiIsb3V0cHV0OmAke2h9P2B9KSxfLmJhY2t0cmFjaz09PSEwKXtfLm91dHB1dD0iIjtmb3IobGV0ICQgb2YgXy50b2tlbnMpXy5vdXRwdXQrPSQub3V0cHV0IT1udWxsPyQub3V0cHV0OiQudmFsdWUsJC5zdWZmaXgmJihfLm91dHB1dCs9JC5zdWZmaXgpfXJldHVybiBffTt4bC5mYXN0cGF0aHM9KHIsZSk9PntsZXQgdD17Li4uZX0saT10eXBlb2YgdC5tYXhMZW5ndGg9PSJudW1iZXIiP01hdGgubWluKHdzLHQubWF4TGVuZ3RoKTp3cyxuPXIubGVuZ3RoO2lmKG4+aSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtufSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke2l9YCk7cj10Z1tyXXx8cjtsZXQgcz1NZS5pc1dpbmRvd3MoZSkse0RPVF9MSVRFUkFMOmEsU0xBU0hfTElURVJBTDpvLE9ORV9DSEFSOmwsRE9UU19TTEFTSDpjLE5PX0RPVDpmLE5PX0RPVFM6ZCxOT19ET1RTX1NMQVNIOnAsU1RBUjpoLFNUQVJUX0FOQ0hPUjpifT1icy5nbG9iQ2hhcnMocyksdj10LmRvdD9kOmYseT10LmRvdD9wOmYsdz10LmNhcHR1cmU/IiI6Ij86IixrPXtuZWdhdGVkOiExLHByZWZpeDoiIn0sUz10LmJhc2g9PT0hMD8iLio/IjpoO3QuY2FwdHVyZSYmKFM9YCgke1N9KWApO2xldCBFPVI9PlIubm9nbG9ic3Rhcj09PSEwP1M6YCgke3d9KD86KD8hJHtifSR7Ui5kb3Q/YzphfSkuKSo/KWAsVD1SPT57c3dpdGNoKFIpe2Nhc2UiKiI6cmV0dXJuYCR7dn0ke2x9JHtTfWA7Y2FzZSIuKiI6cmV0dXJuYCR7YX0ke2x9JHtTfWA7Y2FzZSIqLioiOnJldHVybmAke3Z9JHtTfSR7YX0ke2x9JHtTfWA7Y2FzZSIqLyoiOnJldHVybmAke3Z9JHtTfSR7b30ke2x9JHt5fSR7U31gO2Nhc2UiKioiOnJldHVybiB2K0UodCk7Y2FzZSIqKi8qIjpyZXR1cm5gKD86JHt2fSR7RSh0KX0ke299KT8ke3l9JHtsfSR7U31gO2Nhc2UiKiovKi4qIjpyZXR1cm5gKD86JHt2fSR7RSh0KX0ke299KT8ke3l9JHtTfSR7YX0ke2x9JHtTfWA7Y2FzZSIqKi8uKiI6cmV0dXJuYCg/OiR7dn0ke0UodCl9JHtvfSk/JHthfSR7bH0ke1N9YDtkZWZhdWx0OntsZXQgRj0vXiguKj8pXC4oXHcrKSQvLmV4ZWMoUik7aWYoIUYpcmV0dXJuO2xldCBZPVQoRlsxXSk7cmV0dXJuIFk/WSthK0ZbMl06dm9pZCAwfX19LEI9TWUucmVtb3ZlUHJlZml4KHIsayksTj1UKEIpO3JldHVybiBOJiZ0LnN0cmljdFNsYXNoZXMhPT0hMCYmKE4rPWAke299P2ApLE59O3JnLmV4cG9ydHM9eGx9KTt2YXIgc2c9eCgoYzYsbmcpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYTI9KGV0KCksVXIpLG8yPWVnKCksa2w9aWcoKSxTbD1xaSgpLGwyPURpKCksdTI9cj0+ciYmdHlwZW9mIHI9PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShyKSxkZT0ocixlLHQ9ITEpPT57aWYoQXJyYXkuaXNBcnJheShyKSl7bGV0IGY9ci5tYXAocD0+ZGUocCxlLHQpKTtyZXR1cm4gcD0+e2ZvcihsZXQgaCBvZiBmKXtsZXQgYj1oKHApO2lmKGIpcmV0dXJuIGJ9cmV0dXJuITF9fWxldCBpPXUyKHIpJiZyLnRva2VucyYmci5pbnB1dDtpZihyPT09IiJ8fHR5cGVvZiByIT0ic3RyaW5nIiYmIWkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgcGF0dGVybiB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgbj1lfHx7fSxzPVNsLmlzV2luZG93cyhlKSxhPWk/ZGUuY29tcGlsZVJlKHIsZSk6ZGUubWFrZVJlKHIsZSwhMSwhMCksbz1hLnN0YXRlO2RlbGV0ZSBhLnN0YXRlO2xldCBsPSgpPT4hMTtpZihuLmlnbm9yZSl7bGV0IGY9ey4uLmUsaWdub3JlOm51bGwsb25NYXRjaDpudWxsLG9uUmVzdWx0Om51bGx9O2w9ZGUobi5pZ25vcmUsZix0KX1sZXQgYz0oZixkPSExKT0+e2xldHtpc01hdGNoOnAsbWF0Y2g6aCxvdXRwdXQ6Yn09ZGUudGVzdChmLGEsZSx7Z2xvYjpyLHBvc2l4OnN9KSx2PXtnbG9iOnIsc3RhdGU6byxyZWdleDphLHBvc2l4OnMsaW5wdXQ6ZixvdXRwdXQ6YixtYXRjaDpoLGlzTWF0Y2g6cH07cmV0dXJuIHR5cGVvZiBuLm9uUmVzdWx0PT0iZnVuY3Rpb24iJiZuLm9uUmVzdWx0KHYpLHA9PT0hMT8odi5pc01hdGNoPSExLGQ/djohMSk6bChmKT8odHlwZW9mIG4ub25JZ25vcmU9PSJmdW5jdGlvbiImJm4ub25JZ25vcmUodiksdi5pc01hdGNoPSExLGQ/djohMSk6KHR5cGVvZiBuLm9uTWF0Y2g9PSJmdW5jdGlvbiImJm4ub25NYXRjaCh2KSxkP3Y6ITApfTtyZXR1cm4gdCYmKGMuc3RhdGU9byksY307ZGUudGVzdD0ocixlLHQse2dsb2I6aSxwb3NpeDpufT17fSk9PntpZih0eXBlb2YgciE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgaW5wdXQgdG8gYmUgYSBzdHJpbmciKTtpZihyPT09IiIpcmV0dXJue2lzTWF0Y2g6ITEsb3V0cHV0OiIifTtsZXQgcz10fHx7fSxhPXMuZm9ybWF0fHwobj9TbC50b1Bvc2l4U2xhc2hlczpudWxsKSxvPXI9PT1pLGw9byYmYT9hKHIpOnI7cmV0dXJuIG89PT0hMSYmKGw9YT9hKHIpOnIsbz1sPT09aSksKG89PT0hMXx8cy5jYXB0dXJlPT09ITApJiYocy5tYXRjaEJhc2U9PT0hMHx8cy5iYXNlbmFtZT09PSEwP289ZGUubWF0Y2hCYXNlKHIsZSx0LG4pOm89ZS5leGVjKGwpKSx7aXNNYXRjaDpCb29sZWFuKG8pLG1hdGNoOm8sb3V0cHV0Omx9fTtkZS5tYXRjaEJhc2U9KHIsZSx0LGk9U2wuaXNXaW5kb3dzKHQpKT0+KGUgaW5zdGFuY2VvZiBSZWdFeHA/ZTpkZS5tYWtlUmUoZSx0KSkudGVzdChhMi5iYXNlbmFtZShyKSk7ZGUuaXNNYXRjaD0ocixlLHQpPT5kZShlLHQpKHIpO2RlLnBhcnNlPShyLGUpPT5BcnJheS5pc0FycmF5KHIpP3IubWFwKHQ9PmRlLnBhcnNlKHQsZSkpOmtsKHIsey4uLmUsZmFzdHBhdGhzOiExfSk7ZGUuc2Nhbj0ocixlKT0+bzIocixlKTtkZS5jb21waWxlUmU9KHIsZSx0PSExLGk9ITEpPT57aWYodD09PSEwKXJldHVybiByLm91dHB1dDtsZXQgbj1lfHx7fSxzPW4uY29udGFpbnM/IiI6Il4iLGE9bi5jb250YWlucz8iIjoiJCIsbz1gJHtzfSg/OiR7ci5vdXRwdXR9KSR7YX1gO3ImJnIubmVnYXRlZD09PSEwJiYobz1gXig/ISR7b30pLiokYCk7bGV0IGw9ZGUudG9SZWdleChvLGUpO3JldHVybiBpPT09ITAmJihsLnN0YXRlPXIpLGx9O2RlLm1ha2VSZT0ocixlPXt9LHQ9ITEsaT0hMSk9PntpZighcnx8dHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBuPXtuZWdhdGVkOiExLGZhc3RwYXRoczohMH07cmV0dXJuIGUuZmFzdHBhdGhzIT09ITEmJihyWzBdPT09Ii4ifHxyWzBdPT09IioiKSYmKG4ub3V0cHV0PWtsLmZhc3RwYXRocyhyLGUpKSxuLm91dHB1dHx8KG49a2wocixlKSksZGUuY29tcGlsZVJlKG4sZSx0LGkpfTtkZS50b1JlZ2V4PShyLGUpPT57dHJ5e2xldCB0PWV8fHt9O3JldHVybiBuZXcgUmVnRXhwKHIsdC5mbGFnc3x8KHQubm9jYXNlPyJpIjoiIikpfWNhdGNoKHQpe2lmKGUmJmUuZGVidWc9PT0hMCl0aHJvdyB0O3JldHVybi8kXi99fTtkZS5jb25zdGFudHM9bDI7bmcuZXhwb3J0cz1kZX0pO3ZhciBvZz14KChwNixhZyk9Pnt1KCk7InVzZSBzdHJpY3QiO2FnLmV4cG9ydHM9c2coKX0pO3ZhciBkZz14KChkNixwZyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBsZz0oRm4oKSxCbiksdWc9am0oKSxvdD1vZygpLEFsPXFpKCksZmc9cj0+cj09PSIifHxyPT09Ii4vIixjZz1yPT57bGV0IGU9ci5pbmRleE9mKCJ7Iik7cmV0dXJuIGU+LTEmJnIuaW5kZXhPZigifSIsZSk+LTF9LG9lPShyLGUsdCk9PntlPVtdLmNvbmNhdChlKSxyPVtdLmNvbmNhdChyKTtsZXQgaT1uZXcgU2V0LG49bmV3IFNldCxzPW5ldyBTZXQsYT0wLG89Zj0+e3MuYWRkKGYub3V0cHV0KSx0JiZ0Lm9uUmVzdWx0JiZ0Lm9uUmVzdWx0KGYpfTtmb3IobGV0IGY9MDtmPGUubGVuZ3RoO2YrKyl7bGV0IGQ9b3QoU3RyaW5nKGVbZl0pLHsuLi50LG9uUmVzdWx0Om99LCEwKSxwPWQuc3RhdGUubmVnYXRlZHx8ZC5zdGF0ZS5uZWdhdGVkRXh0Z2xvYjtwJiZhKys7Zm9yKGxldCBoIG9mIHIpe2xldCBiPWQoaCwhMCk7IShwPyFiLmlzTWF0Y2g6Yi5pc01hdGNoKXx8KHA/aS5hZGQoYi5vdXRwdXQpOihpLmRlbGV0ZShiLm91dHB1dCksbi5hZGQoYi5vdXRwdXQpKSl9fWxldCBjPShhPT09ZS5sZW5ndGg/Wy4uLnNdOlsuLi5uXSkuZmlsdGVyKGY9PiFpLmhhcyhmKSk7aWYodCYmYy5sZW5ndGg9PT0wKXtpZih0LmZhaWxnbG9iPT09ITApdGhyb3cgbmV3IEVycm9yKGBObyBtYXRjaGVzIGZvdW5kIGZvciAiJHtlLmpvaW4oIiwgIil9ImApO2lmKHQubm9udWxsPT09ITB8fHQubnVsbGdsb2I9PT0hMClyZXR1cm4gdC51bmVzY2FwZT9lLm1hcChmPT5mLnJlcGxhY2UoL1xcL2csIiIpKTplfXJldHVybiBjfTtvZS5tYXRjaD1vZTtvZS5tYXRjaGVyPShyLGUpPT5vdChyLGUpO29lLmlzTWF0Y2g9KHIsZSx0KT0+b3QoZSx0KShyKTtvZS5hbnk9b2UuaXNNYXRjaDtvZS5ub3Q9KHIsZSx0PXt9KT0+e2U9W10uY29uY2F0KGUpLm1hcChTdHJpbmcpO2xldCBpPW5ldyBTZXQsbj1bXSxzPW89Pnt0Lm9uUmVzdWx0JiZ0Lm9uUmVzdWx0KG8pLG4ucHVzaChvLm91dHB1dCl9LGE9bmV3IFNldChvZShyLGUsey4uLnQsb25SZXN1bHQ6c30pKTtmb3IobGV0IG8gb2YgbilhLmhhcyhvKXx8aS5hZGQobyk7cmV0dXJuWy4uLmldfTtvZS5jb250YWlucz0ocixlLHQpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgc3RyaW5nOiAiJHtsZy5pbnNwZWN0KHIpfSJgKTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLnNvbWUoaT0+b2UuY29udGFpbnMocixpLHQpKTtpZih0eXBlb2YgZT09InN0cmluZyIpe2lmKGZnKHIpfHxmZyhlKSlyZXR1cm4hMTtpZihyLmluY2x1ZGVzKGUpfHxyLnN0YXJ0c1dpdGgoIi4vIikmJnIuc2xpY2UoMikuaW5jbHVkZXMoZSkpcmV0dXJuITB9cmV0dXJuIG9lLmlzTWF0Y2gocixlLHsuLi50LGNvbnRhaW5zOiEwfSl9O29lLm1hdGNoS2V5cz0ocixlLHQpPT57aWYoIUFsLmlzT2JqZWN0KHIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHRoZSBmaXJzdCBhcmd1bWVudCB0byBiZSBhbiBvYmplY3QiKTtsZXQgaT1vZShPYmplY3Qua2V5cyhyKSxlLHQpLG49e307Zm9yKGxldCBzIG9mIGkpbltzXT1yW3NdO3JldHVybiBufTtvZS5zb21lPShyLGUsdCk9PntsZXQgaT1bXS5jb25jYXQocik7Zm9yKGxldCBuIG9mW10uY29uY2F0KGUpKXtsZXQgcz1vdChTdHJpbmcobiksdCk7aWYoaS5zb21lKGE9PnMoYSkpKXJldHVybiEwfXJldHVybiExfTtvZS5ldmVyeT0ocixlLHQpPT57bGV0IGk9W10uY29uY2F0KHIpO2ZvcihsZXQgbiBvZltdLmNvbmNhdChlKSl7bGV0IHM9b3QoU3RyaW5nKG4pLHQpO2lmKCFpLmV2ZXJ5KGE9PnMoYSkpKXJldHVybiExfXJldHVybiEwfTtvZS5hbGw9KHIsZSx0KT0+e2lmKHR5cGVvZiByIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIHN0cmluZzogIiR7bGcuaW5zcGVjdChyKX0iYCk7cmV0dXJuW10uY29uY2F0KGUpLmV2ZXJ5KGk9Pm90KGksdCkocikpfTtvZS5jYXB0dXJlPShyLGUsdCk9PntsZXQgaT1BbC5pc1dpbmRvd3ModCkscz1vdC5tYWtlUmUoU3RyaW5nKHIpLHsuLi50LGNhcHR1cmU6ITB9KS5leGVjKGk/QWwudG9Qb3NpeFNsYXNoZXMoZSk6ZSk7aWYocylyZXR1cm4gcy5zbGljZSgxKS5tYXAoYT0+YT09PXZvaWQgMD8iIjphKX07b2UubWFrZVJlPSguLi5yKT0+b3QubWFrZVJlKC4uLnIpO29lLnNjYW49KC4uLnIpPT5vdC5zY2FuKC4uLnIpO29lLnBhcnNlPShyLGUpPT57bGV0IHQ9W107Zm9yKGxldCBpIG9mW10uY29uY2F0KHJ8fFtdKSlmb3IobGV0IG4gb2YgdWcoU3RyaW5nKGkpLGUpKXQucHVzaChvdC5wYXJzZShuLGUpKTtyZXR1cm4gdH07b2UuYnJhY2VzPShyLGUpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIGUmJmUubm9icmFjZT09PSEwfHwhY2cocik/W3JdOnVnKHIsZSl9O29lLmJyYWNlRXhwYW5kPShyLGUpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIG9lLmJyYWNlcyhyLHsuLi5lLGV4cGFuZDohMH0pfTtvZS5oYXNCcmFjZXM9Y2c7cGcuZXhwb3J0cz1vZX0pO2Z1bmN0aW9uIG1nKHIsZSl7bGV0IHQ9ZS5jb250ZW50LmZpbGVzO3Q9dC5maWx0ZXIobz0+dHlwZW9mIG89PSJzdHJpbmciKSx0PXQubWFwKGxsKTtsZXQgaT1wcy5nZW5lcmF0ZVRhc2tzKHQpLG49W10scz1bXTtmb3IobGV0IG8gb2YgaSluLnB1c2goLi4uby5wb3NpdGl2ZS5tYXAobD0+Z2cobCwhMSkpKSxzLnB1c2goLi4uby5uZWdhdGl2ZS5tYXAobD0+Z2cobCwhMCkpKTtsZXQgYT1bLi4ubiwuLi5zXTtyZXR1cm4gYT1jMihyLGEpLGE9YS5mbGF0TWFwKHAyKSxhPWEubWFwKGYyKSxhfWZ1bmN0aW9uIGdnKHIsZSl7bGV0IHQ9e29yaWdpbmFsOnIsYmFzZTpyLGlnbm9yZTplLHBhdHRlcm46cixnbG9iOm51bGx9O3JldHVybiBaaChyKSYmT2JqZWN0LmFzc2lnbih0LG5tKHIpKSx0fWZ1bmN0aW9uIGYyKHIpe2xldCBlPWxsKHIuYmFzZSk7cmV0dXJuIGU9cHMuZXNjYXBlUGF0aChlKSxyLnBhdHRlcm49ci5nbG9iP2Ake2V9LyR7ci5nbG9ifWA6ZSxyLnBhdHRlcm49ci5pZ25vcmU/YCEke3IucGF0dGVybn1gOnIucGF0dGVybixyfWZ1bmN0aW9uIGMyKHIsZSl7bGV0IHQ9W107cmV0dXJuIHIudXNlckNvbmZpZ1BhdGgmJnIudGFpbHdpbmRDb25maWcuY29udGVudC5yZWxhdGl2ZSYmKHQ9W21lLmRpcm5hbWUoci51c2VyQ29uZmlnUGF0aCldKSxlLm1hcChpPT4oaS5iYXNlPW1lLnJlc29sdmUoLi4udCxpLmJhc2UpLGkpKX1mdW5jdGlvbiBwMihyKXtsZXQgZT1bcl07dHJ5e2xldCB0PWJlLnJlYWxwYXRoU3luYyhyLmJhc2UpO3QhPT1yLmJhc2UmJmUucHVzaCh7Li4ucixiYXNlOnR9KX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24geWcocixlLHQpe2xldCBpPXIudGFpbHdpbmRDb25maWcuY29udGVudC5maWxlcy5maWx0ZXIoYT0+dHlwZW9mIGEucmF3PT0ic3RyaW5nIikubWFwKCh7cmF3OmEsZXh0ZW5zaW9uOm89Imh0bWwifSk9Pih7Y29udGVudDphLGV4dGVuc2lvbjpvfSkpLFtuLHNdPWgyKGUsdCk7Zm9yKGxldCBhIG9mIG4pe2xldCBvPW1lLmV4dG5hbWUoYSkuc2xpY2UoMSk7aS5wdXNoKHtmaWxlOmEsZXh0ZW5zaW9uOm99KX1yZXR1cm5baSxzXX1mdW5jdGlvbiBkMihyKXtpZighci5zb21lKHM9PnMuaW5jbHVkZXMoIioqIikmJiF3Zy50ZXN0KHMpKSlyZXR1cm4oKT0+e307bGV0IHQ9W10saT1bXTtmb3IobGV0IHMgb2Ygcil7bGV0IGE9aGcuZGVmYXVsdC5tYXRjaGVyKHMpO3dnLnRlc3QocykmJmkucHVzaChhKSx0LnB1c2goYSl9bGV0IG49ITE7cmV0dXJuIHM9PntpZihufHxpLnNvbWUoZj0+ZihzKSkpcmV0dXJuO2xldCBhPXQuZmluZEluZGV4KGY9PmYocykpO2lmKGE9PT0tMSlyZXR1cm47bGV0IG89clthXSxsPW1lLnJlbGF0aXZlKG0uY3dkKCksbyk7bFswXSE9PSIuIiYmKGw9YC4vJHtsfWApO2xldCBjPWJnLmZpbmQoZj0+cy5pbmNsdWRlcyhmKSk7YyYmKG49ITAsRy53YXJuKCJicm9hZC1jb250ZW50LWdsb2ItcGF0dGVybiIsW2BZb3VyIFxgY29udGVudFxgIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgYSBwYXR0ZXJuIHdoaWNoIGxvb2tzIGxpa2UgaXQncyBhY2NpZGVudGFsbHkgbWF0Y2hpbmcgYWxsIG9mIFxgJHtjfVxgIGFuZCBjYW4gY2F1c2Ugc2VyaW91cyBwZXJmb3JtYW5jZSBpc3N1ZXMuYCxgUGF0dGVybjogXGAke2x9XGBgLCJTZWUgb3VyIGRvY3VtZW50YXRpb24gZm9yIHJlY29tbWVuZGF0aW9uczoiLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRlbnQtY29uZmlndXJhdGlvbiNwYXR0ZXJuLXJlY29tbWVuZGF0aW9ucyJdKSl9fWZ1bmN0aW9uIGgyKHIsZSl7bGV0IHQ9ci5tYXAobz0+by5wYXR0ZXJuKSxpPW5ldyBNYXAsbj1kMih0KSxzPW5ldyBTZXQ7WmUuREVCVUcmJmNvbnNvbGUudGltZSgiRmluZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IGE9cHMuc3luYyh0LHthYnNvbHV0ZTohMH0pO2ZvcihsZXQgbyBvZiBhKXtuKG8pO2xldCBsPWUuZ2V0KG8pfHwtMS8wLGM9YmUuc3RhdFN5bmMobykubXRpbWVNcztjPmwmJihzLmFkZChvKSxpLnNldChvLGMpKX1yZXR1cm4gWmUuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiRmluZGluZyBjaGFuZ2VkIGZpbGVzIiksW3MsaV19dmFyIGhnLGJnLHdnLHZnPVAoKCk9Pnt1KCk7ZnQoKTtldCgpO0poKCk7ZW0oKTt0bSgpO3NtKCk7SXQoKTtCZSgpO2hnPXBlKGRnKCkpO2JnPVsibm9kZV9tb2R1bGVzIl0sd2c9bmV3IFJlZ0V4cChgKCR7YmcubWFwKHI9PlN0cmluZy5yYXdgXGIke3J9XGJgKS5qb2luKCJ8Iil9KWApfSk7ZnVuY3Rpb24geGcoKXt9dmFyIGtnPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBiMihyLGUpe2ZvcihsZXQgdCBvZiBlKXtsZXQgaT1gJHtyfSR7dH1gO2lmKGJlLmV4aXN0c1N5bmMoaSkmJmJlLnN0YXRTeW5jKGkpLmlzRmlsZSgpKXJldHVybiBpfWZvcihsZXQgdCBvZiBlKXtsZXQgaT1gJHtyfS9pbmRleCR7dH1gO2lmKGJlLmV4aXN0c1N5bmMoaSkpcmV0dXJuIGl9cmV0dXJuIG51bGx9ZnVuY3Rpb24qU2cocixlLHQsaT1tZS5leHRuYW1lKHIpKXtsZXQgbj1iMihtZS5yZXNvbHZlKGUsciksbTIuaW5jbHVkZXMoaSk/ZzI6eTIpO2lmKG49PT1udWxsfHx0LmhhcyhuKSlyZXR1cm47dC5hZGQobikseWllbGQgbixlPW1lLmRpcm5hbWUobiksaT1tZS5leHRuYW1lKG4pO2xldCBzPWJlLnJlYWRGaWxlU3luYyhuLCJ1dGYtOCIpO2ZvcihsZXQgYSBvZlsuLi5zLm1hdGNoQWxsKC9pbXBvcnRbXHNcU10qP1snIl0oLnszLH0/KVsnIl0vZ2kpLC4uLnMubWF0Y2hBbGwoL2ltcG9ydFtcc1xTXSpmcm9tW1xzXFNdKj9bJyJdKC57Myx9PylbJyJdL2dpKSwuLi5zLm1hdGNoQWxsKC9yZXF1aXJlXChbJyJgXSguKylbJyJgXVwpL2dpKV0pIWFbMV0uc3RhcnRzV2l0aCgiLiIpfHwoeWllbGQqU2coYVsxXSxlLHQsaSkpfWZ1bmN0aW9uIENsKHIpe3JldHVybiByPT09bnVsbD9uZXcgU2V0Om5ldyBTZXQoU2cocixtZS5kaXJuYW1lKHIpLG5ldyBTZXQpKX12YXIgbTIsZzIseTIsQWc9UCgoKT0+e3UoKTtmdCgpO2V0KCk7bTI9WyIuanMiLCIuY2pzIiwiLm1qcyJdLGcyPVsiIiwiLmpzIiwiLmNqcyIsIi5tanMiLCIudHMiLCIuY3RzIiwiLm10cyIsIi5qc3giLCIudHN4Il0seTI9WyIiLCIudHMiLCIuY3RzIiwiLm10cyIsIi50c3giLCIuanMiLCIuY2pzIiwiLm1qcyIsIi5qc3giXX0pO2Z1bmN0aW9uIHcyKHIsZSl7aWYoX2wuaGFzKHIpKXJldHVybiBfbC5nZXQocik7bGV0IHQ9bWcocixlKTtyZXR1cm4gX2wuc2V0KHIsdCkuZ2V0KHIpfWZ1bmN0aW9uIHYyKHIpe2xldCBlPWFhKHIpO2lmKGUhPT1udWxsKXtsZXRbaSxuLHMsYV09X2cuZ2V0KGUpfHxbXSxvPUNsKGUpLGw9ITEsYz1uZXcgTWFwO2ZvcihsZXQgcCBvZiBvKXtsZXQgaD1iZS5zdGF0U3luYyhwKS5tdGltZU1zO2Muc2V0KHAsaCksKCFhfHwhYS5oYXMocCl8fGg+YS5nZXQocCkpJiYobD0hMCl9aWYoIWwpcmV0dXJuW2ksZSxuLHNdO2ZvcihsZXQgcCBvZiBvKWRlbGV0ZSBoZi5jYWNoZVtwXTtsZXQgZj1vbCh6cih4ZyhlKSkpLGQ9V2koZik7cmV0dXJuIF9nLnNldChlLFtmLGQsbyxjXSksW2YsZSxkLG9dfWxldCB0PXpyKHI/LmNvbmZpZz8/cj8/e30pO3JldHVybiB0PW9sKHQpLFt0LG51bGwsV2kodCksW11dfWZ1bmN0aW9uIEVsKHIpe3JldHVybih7dGFpbHdpbmREaXJlY3RpdmVzOmUscmVnaXN0ZXJEZXBlbmRlbmN5OnR9KT0+KGksbik9PntsZXRbcyxhLG8sbF09djIociksYz1uZXcgU2V0KGwpO2lmKGUuc2l6ZT4wKXtjLmFkZChuLm9wdHMuZnJvbSk7Zm9yKGxldCBiIG9mIG4ubWVzc2FnZXMpYi50eXBlPT09ImRlcGVuZGVuY3kiJiZjLmFkZChiLmZpbGUpfWxldFtmLCxkXT1WaChpLG4scyxhLG8sYykscD1jcyhmKSxoPXcyKGYscyk7aWYoZS5zaXplPjApe2ZvcihsZXQgeSBvZiBoKWZvcihsZXQgdyBvZiBubCh5KSl0KHcpO2xldFtiLHZdPXlnKGYsaCxwKTtmb3IobGV0IHkgb2YgYilmLmNoYW5nZWRDb250ZW50LnB1c2goeSk7Zm9yKGxldFt5LHddb2Ygdi5lbnRyaWVzKCkpZC5zZXQoeSx3KX1mb3IobGV0IGIgb2YgbCl0KHt0eXBlOiJkZXBlbmRlbmN5IixmaWxlOmJ9KTtmb3IobGV0W2Isdl1vZiBkLmVudHJpZXMoKSlwLnNldChiLHYpO3JldHVybiBmfX12YXIgQ2csX2csX2wsRWc9UCgoKT0+e3UoKTtmdCgpO0NnPXBlKEZzKCkpO3dmKCk7c2EoKTtvYygpO09pKCk7SGgoKTtYaCgpO3ZnKCk7a2coKTtBZygpO19nPW5ldyBDZy5kZWZhdWx0KHttYXhTaXplOjEwMH0pLF9sPW5ldyBXZWFrTWFwfSk7ZnVuY3Rpb24gT2wocil7bGV0IGU9bmV3IFNldCx0PW5ldyBTZXQsaT1uZXcgU2V0O2lmKHIud2Fsa0F0UnVsZXMobj0+e24ubmFtZT09PSJhcHBseSImJmkuYWRkKG4pLG4ubmFtZT09PSJpbXBvcnQiJiYobi5wYXJhbXM9PT0nInRhaWx3aW5kY3NzL2Jhc2UiJ3x8bi5wYXJhbXM9PT0iJ3RhaWx3aW5kY3NzL2Jhc2UnIj8obi5uYW1lPSJ0YWlsd2luZCIsbi5wYXJhbXM9ImJhc2UiKTpuLnBhcmFtcz09PScidGFpbHdpbmRjc3MvY29tcG9uZW50cyInfHxuLnBhcmFtcz09PSIndGFpbHdpbmRjc3MvY29tcG9uZW50cyciPyhuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0iY29tcG9uZW50cyIpOm4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy91dGlsaXRpZXMiJ3x8bi5wYXJhbXM9PT0iJ3RhaWx3aW5kY3NzL3V0aWxpdGllcyciPyhuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0idXRpbGl0aWVzIik6KG4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy9zY3JlZW5zIid8fG4ucGFyYW1zPT09Iid0YWlsd2luZGNzcy9zY3JlZW5zJyJ8fG4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy92YXJpYW50cyInfHxuLnBhcmFtcz09PSIndGFpbHdpbmRjc3MvdmFyaWFudHMnIikmJihuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0idmFyaWFudHMiKSksbi5uYW1lPT09InRhaWx3aW5kIiYmKG4ucGFyYW1zPT09InNjcmVlbnMiJiYobi5wYXJhbXM9InZhcmlhbnRzIiksZS5hZGQobi5wYXJhbXMpKSxbImxheWVyIiwicmVzcG9uc2l2ZSIsInZhcmlhbnRzIl0uaW5jbHVkZXMobi5uYW1lKSYmKFsicmVzcG9uc2l2ZSIsInZhcmlhbnRzIl0uaW5jbHVkZXMobi5uYW1lKSYmRy53YXJuKGAke24ubmFtZX0tYXQtcnVsZS1kZXByZWNhdGVkYCxbYFRoZSBcYEAke24ubmFtZX1cYCBkaXJlY3RpdmUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBUYWlsd2luZCBDU1MgdjMuMC5gLCJVc2UgYEBsYXllciB1dGlsaXRpZXNgIG9yIGBAbGF5ZXIgY29tcG9uZW50c2AgaW5zdGVhZC4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VwZ3JhZGUtZ3VpZGUjcmVwbGFjZS12YXJpYW50cy13aXRoLWxheWVyIl0pLHQuYWRkKG4pKX0pLCFlLmhhcygiYmFzZSIpfHwhZS5oYXMoImNvbXBvbmVudHMiKXx8IWUuaGFzKCJ1dGlsaXRpZXMiKSl7Zm9yKGxldCBuIG9mIHQpaWYobi5uYW1lPT09ImxheWVyIiYmWyJiYXNlIiwiY29tcG9uZW50cyIsInV0aWxpdGllcyJdLmluY2x1ZGVzKG4ucGFyYW1zKSl7aWYoIWUuaGFzKG4ucGFyYW1zKSl0aHJvdyBuLmVycm9yKGBcYEBsYXllciAke24ucGFyYW1zfVxgIGlzIHVzZWQgYnV0IG5vIG1hdGNoaW5nIFxgQHRhaWx3aW5kICR7bi5wYXJhbXN9XGAgZGlyZWN0aXZlIGlzIHByZXNlbnQuYCl9ZWxzZSBpZihuLm5hbWU9PT0icmVzcG9uc2l2ZSIpe2lmKCFlLmhhcygidXRpbGl0aWVzIikpdGhyb3cgbi5lcnJvcigiYEByZXNwb25zaXZlYCBpcyB1c2VkIGJ1dCBgQHRhaWx3aW5kIHV0aWxpdGllc2AgaXMgbWlzc2luZy4iKX1lbHNlIGlmKG4ubmFtZT09PSJ2YXJpYW50cyImJiFlLmhhcygidXRpbGl0aWVzIikpdGhyb3cgbi5lcnJvcigiYEB2YXJpYW50c2AgaXMgdXNlZCBidXQgYEB0YWlsd2luZCB1dGlsaXRpZXNgIGlzIG1pc3NpbmcuIil9cmV0dXJue3RhaWx3aW5kRGlyZWN0aXZlczplLGFwcGx5RGlyZWN0aXZlczppfX12YXIgT2c9UCgoKT0+e3UoKTtCZSgpfSk7ZnVuY3Rpb24gUXQocixlPXZvaWQgMCx0PXZvaWQgMCl7cmV0dXJuIHIubWFwKGk9PntsZXQgbj1pLmNsb25lKCk7cmV0dXJuIHQhPT12b2lkIDAmJihuLnJhd3MudGFpbHdpbmQ9ey4uLm4ucmF3cy50YWlsd2luZCwuLi50fSksZSE9PXZvaWQgMCYmVGcobixzPT57aWYocy5yYXdzLnRhaWx3aW5kPy5wcmVzZXJ2ZVNvdXJjZT09PSEwJiZzLnNvdXJjZSlyZXR1cm4hMTtzLnNvdXJjZT1lfSksbn0pfWZ1bmN0aW9uIFRnKHIsZSl7ZShyKSE9PSExJiZyLmVhY2g/Lih0PT5UZyh0LGUpKX12YXIgUmc9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIFRsKHIpe3JldHVybiByPUFycmF5LmlzQXJyYXkocik/cjpbcl0scj1yLm1hcChlPT5lIGluc3RhbmNlb2YgUmVnRXhwP2Uuc291cmNlOmUpLHIuam9pbigiIil9ZnVuY3Rpb24gTmUocil7cmV0dXJuIG5ldyBSZWdFeHAoVGwociksImciKX1mdW5jdGlvbiBxdChyKXtyZXR1cm5gKD86JHtyLm1hcChUbCkuam9pbigifCIpfSlgfWZ1bmN0aW9uIFJsKHIpe3JldHVybmAoPzoke1RsKHIpfSk/YH1mdW5jdGlvbiBJZyhyKXtyZXR1cm4gciYmeDIudGVzdChyKT9yLnJlcGxhY2UoUGcsIlxcJCYiKTpyfHwiIn12YXIgUGcseDIsRGc9UCgoKT0+e3UoKTtQZz0vW1xcXiQuKis/KClbXF17fXxdL2cseDI9UmVnRXhwKFBnLnNvdXJjZSl9KTtmdW5jdGlvbiBxZyhyKXtsZXQgZT1BcnJheS5mcm9tKGsyKHIpKTtyZXR1cm4gdD0+e2xldCBpPVtdO2ZvcihsZXQgbiBvZiBlKWZvcihsZXQgcyBvZiB0Lm1hdGNoKG4pPz9bXSlpLnB1c2goQzIocykpO2ZvcihsZXQgbiBvZiBpLnNsaWNlKCkpe2xldCBzPXZlKG4sIi4iKTtmb3IobGV0IGE9MDthPHMubGVuZ3RoO2ErKyl7bGV0IG89c1thXTtpZihhPj1zLmxlbmd0aC0xKXtpLnB1c2gobyk7Y29udGludWV9bGV0IGw9TnVtYmVyKHNbYSsxXSk7aXNOYU4obCk/aS5wdXNoKG8pOmErK319cmV0dXJuIGl9fWZ1bmN0aW9uKmsyKHIpe2xldCBlPXIudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLHQ9ci50YWlsd2luZENvbmZpZy5wcmVmaXghPT0iIj9SbChOZShbLy0/LyxJZyhyLnRhaWx3aW5kQ29uZmlnLnByZWZpeCldKSk6IiIsaT1xdChbL1xbW15cczonImBdKzpbXlxzXFtcXV0rXF0vLC9cW1teXHM6JyJgXF1dKzpbXlxzXSs/XFtbXlxzXStcXVteXHNdKz9cXS8sTmUoW3F0KFsvLT8oPzpcdyspLywvQCg/Olx3KykvXSksUmwocXQoW05lKFtxdChbLy0oPzpcdystKSpcWydbXlxzXSsnXF0vLC8tKD86XHcrLSkqXFsiW15cc10rIlxdLywvLSg/Olx3Ky0pKlxbYFteXHNdK2BcXS8sLy0oPzpcdystKSpcWyg/OlteXHNcW1xdXStcW1teXHNcW1xdXStcXSkqW15cczpcW1xdXStcXS9dKSwvKD8hW3soW11dKS8sLyg/OlwvW15ccyciYFxcPjwkXSopPy9dKSxOZShbcXQoWy8tKD86XHcrLSkqXFsnW15cc10rJ1xdLywvLSg/Olx3Ky0pKlxbIlteXHNdKyJcXS8sLy0oPzpcdystKSpcW2BbXlxzXStgXF0vLC8tKD86XHcrLSkqXFsoPzpbXlxzXFtcXV0rXFtbXlxzXFtcXV0rXF0pKlteXHNcW1xdXStcXS9dKSwvKD8hW3soW11dKS8sLyg/OlwvW15ccyciYFxcJF0qKT8vXSksL1stXC9dW15ccyciYFxcJD17PjxdKi9dKSldKV0pLG49W3F0KFtOZShbL0BcW1teXHMiJ2BdK1xdKFwvW15ccyInYF0rKT8vLGVdKSxOZShbLyhbXlxzIidgXFtcXF0rLSk/XFtbXlxzIidgXStcXVwvW1x3Xy1dKy8sZV0pLE5lKFsvKFteXHMiJ2BcW1xcXSstKT9cW1teXHMiJ2BdK1xdLyxlXSksTmUoWy9bXlxzIidgXFtcXF0rLyxlXSldKSxxdChbTmUoWy8oW15ccyInYFxbXFxdKy0pP1xbW15cc2BdK1xdXC9bXHdfLV0rLyxlXSksTmUoWy8oW15ccyInYFxbXFxdKy0pP1xbW15cc2BdK1xdLyxlXSksTmUoWy9bXlxzYFxbXFxdKy8sZV0pXSldO2ZvcihsZXQgcyBvZiBuKXlpZWxkIE5lKFsiKCg/PSgoIixzLCIpKykpXFwyKT8iLC8hPy8sdCxpXSk7eWllbGQvW148PiInYFxzLigpe31bXF0jPSUkXVtePD4iJ2Bccygpe31bXF0jPSUkXSpbXjw+IidgXHMuKCl7fVtcXSM9JTokXS9nfWZ1bmN0aW9uIEMyKHIpe2lmKCFyLmluY2x1ZGVzKCItWyIpKXJldHVybiByO2xldCBlPTAsdD1bXSxpPXIubWF0Y2hBbGwoUzIpO2k9QXJyYXkuZnJvbShpKS5mbGF0TWFwKG49PntsZXRbLC4uLnNdPW47cmV0dXJuIHMubWFwKChhLG8pPT5PYmplY3QuYXNzaWduKFtdLG4se2luZGV4Om4uaW5kZXgrbywwOmF9KSl9KTtmb3IobGV0IG4gb2YgaSl7bGV0IHM9blswXSxhPXRbdC5sZW5ndGgtMV07aWYocz09PWE/dC5wb3AoKToocz09PSInInx8cz09PSciJ3x8cz09PSJgIikmJnQucHVzaChzKSwhYSl7aWYocz09PSJbIil7ZSsrO2NvbnRpbnVlfWVsc2UgaWYocz09PSJdIil7ZS0tO2NvbnRpbnVlfWlmKGU8MClyZXR1cm4gci5zdWJzdHJpbmcoMCxuLmluZGV4LTEpO2lmKGU9PT0wJiYhQTIudGVzdChzKSlyZXR1cm4gci5zdWJzdHJpbmcoMCxuLmluZGV4KX19cmV0dXJuIHJ9dmFyIFMyLEEyLCRnPVAoKCk9Pnt1KCk7RGcoKTt6dCgpO1MyPS8oW1xbXF0nImBdKShbXlxbXF0nImBdKT8vZyxBMj0vW14iJ2Bcczw+XF1dKy99KTtmdW5jdGlvbiBfMihyLGUpe2xldCB0PXIudGFpbHdpbmRDb25maWcuY29udGVudC5leHRyYWN0O3JldHVybiB0W2VdfHx0LkRFRkFVTFR8fE1nW2VdfHxNZy5ERUZBVUxUKHIpfWZ1bmN0aW9uIEUyKHIsZSl7bGV0IHQ9ci5jb250ZW50LnRyYW5zZm9ybTtyZXR1cm4gdFtlXXx8dC5ERUZBVUxUfHxOZ1tlXXx8TmcuREVGQVVMVH1mdW5jdGlvbiBPMihyLGUsdCxpKXtMaS5oYXMoZSl8fExpLnNldChlLG5ldyBMZy5kZWZhdWx0KHttYXhTaXplOjI1ZTN9KSk7Zm9yKGxldCBuIG9mIHIuc3BsaXQoYApgKSlpZihuPW4udHJpbSgpLCFpLmhhcyhuKSlpZihpLmFkZChuKSxMaS5nZXQoZSkuaGFzKG4pKWZvcihsZXQgcyBvZiBMaS5nZXQoZSkuZ2V0KG4pKXQuYWRkKHMpO2Vsc2V7bGV0IHM9ZShuKS5maWx0ZXIobz0+byE9PSIhKiIpLGE9bmV3IFNldChzKTtmb3IobGV0IG8gb2YgYSl0LmFkZChvKTtMaS5nZXQoZSkuc2V0KG4sYSl9fWZ1bmN0aW9uIFQyKHIsZSl7bGV0IHQ9ZS5vZmZzZXRzLnNvcnQociksaT17YmFzZTpuZXcgU2V0LGRlZmF1bHRzOm5ldyBTZXQsY29tcG9uZW50czpuZXcgU2V0LHV0aWxpdGllczpuZXcgU2V0LHZhcmlhbnRzOm5ldyBTZXR9O2ZvcihsZXRbbixzXW9mIHQpaVtuLmxheWVyXS5hZGQocyk7cmV0dXJuIGl9ZnVuY3Rpb24gUGwocil7cmV0dXJuIGFzeW5jIGU9PntsZXQgdD17YmFzZTpudWxsLGNvbXBvbmVudHM6bnVsbCx1dGlsaXRpZXM6bnVsbCx2YXJpYW50czpudWxsfTtpZihlLndhbGtBdFJ1bGVzKHk9Pnt5Lm5hbWU9PT0idGFpbHdpbmQiJiZPYmplY3Qua2V5cyh0KS5pbmNsdWRlcyh5LnBhcmFtcykmJih0W3kucGFyYW1zXT15KX0pLE9iamVjdC52YWx1ZXModCkuZXZlcnkoeT0+eT09PW51bGwpKXJldHVybiBlO2xldCBpPW5ldyBTZXQoWy4uLnIuY2FuZGlkYXRlcz8/W10sZ3RdKSxuPW5ldyBTZXQ7YnQuREVCVUcmJmNvbnNvbGUudGltZSgiUmVhZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IHM9W107Zm9yKGxldCB5IG9mIHIuY2hhbmdlZENvbnRlbnQpe2xldCB3PUUyKHIudGFpbHdpbmRDb25maWcseS5leHRlbnNpb24pLGs9XzIocix5LmV4dGVuc2lvbik7cy5wdXNoKFt5LHt0cmFuc2Zvcm1lcjp3LGV4dHJhY3RvcjprfV0pfWxldCBhPTUwMDtmb3IobGV0IHk9MDt5PHMubGVuZ3RoO3krPWEpe2xldCB3PXMuc2xpY2UoeSx5K2EpO2F3YWl0IFByb21pc2UuYWxsKHcubWFwKGFzeW5jKFt7ZmlsZTprLGNvbnRlbnQ6U30se3RyYW5zZm9ybWVyOkUsZXh0cmFjdG9yOlR9XSk9PntTPWs/YXdhaXQgYmUucHJvbWlzZXMucmVhZEZpbGUoaywidXRmOCIpOlMsTzIoRShTKSxULGksbil9KSl9YnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiUmVhZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IG89ci5jbGFzc0NhY2hlLnNpemU7YnQuREVCVUcmJmNvbnNvbGUudGltZSgiR2VuZXJhdGUgcnVsZXMiKSxidC5ERUJVRyYmY29uc29sZS50aW1lKCJTb3J0aW5nIGNhbmRpZGF0ZXMiKTtsZXQgbD1uZXcgU2V0KFsuLi5pXS5zb3J0KCh5LHcpPT55PT09dz8wOnk8dz8tMToxKSk7YnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiU29ydGluZyBjYW5kaWRhdGVzIiksYXMobCxyKSxidC5ERUJVRyYmY29uc29sZS50aW1lRW5kKCJHZW5lcmF0ZSBydWxlcyIpLGJ0LkRFQlVHJiZjb25zb2xlLnRpbWUoIkJ1aWxkIHN0eWxlc2hlZXQiKSwoci5zdHlsZXNoZWV0Q2FjaGU9PT1udWxsfHxyLmNsYXNzQ2FjaGUuc2l6ZSE9PW8pJiYoci5zdHlsZXNoZWV0Q2FjaGU9VDIoWy4uLnIucnVsZUNhY2hlXSxyKSksYnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiQnVpbGQgc3R5bGVzaGVldCIpO2xldHtkZWZhdWx0czpjLGJhc2U6Zixjb21wb25lbnRzOmQsdXRpbGl0aWVzOnAsdmFyaWFudHM6aH09ci5zdHlsZXNoZWV0Q2FjaGU7dC5iYXNlJiYodC5iYXNlLmJlZm9yZShRdChbLi4uYywuLi5mXSx0LmJhc2Uuc291cmNlLHtsYXllcjoiYmFzZSJ9KSksdC5iYXNlLnJlbW92ZSgpKSx0LmNvbXBvbmVudHMmJih0LmNvbXBvbmVudHMuYmVmb3JlKFF0KFsuLi5kXSx0LmNvbXBvbmVudHMuc291cmNlLHtsYXllcjoiY29tcG9uZW50cyJ9KSksdC5jb21wb25lbnRzLnJlbW92ZSgpKSx0LnV0aWxpdGllcyYmKHQudXRpbGl0aWVzLmJlZm9yZShRdChbLi4ucF0sdC51dGlsaXRpZXMuc291cmNlLHtsYXllcjoidXRpbGl0aWVzIn0pKSx0LnV0aWxpdGllcy5yZW1vdmUoKSk7bGV0IGI9QXJyYXkuZnJvbShoKS5maWx0ZXIoeT0+e2xldCB3PXkucmF3cy50YWlsd2luZD8ucGFyZW50TGF5ZXI7cmV0dXJuIHc9PT0iY29tcG9uZW50cyI/dC5jb21wb25lbnRzIT09bnVsbDp3PT09InV0aWxpdGllcyI/dC51dGlsaXRpZXMhPT1udWxsOiEwfSk7dC52YXJpYW50cz8odC52YXJpYW50cy5iZWZvcmUoUXQoYix0LnZhcmlhbnRzLnNvdXJjZSx7bGF5ZXI6InZhcmlhbnRzIn0pKSx0LnZhcmlhbnRzLnJlbW92ZSgpKTpiLmxlbmd0aD4wJiZlLmFwcGVuZChRdChiLGUuc291cmNlLHtsYXllcjoidmFyaWFudHMifSkpLGUuc291cmNlLmVuZD1lLnNvdXJjZS5lbmQ/P2Uuc291cmNlLnN0YXJ0O2xldCB2PWIuc29tZSh5PT55LnJhd3MudGFpbHdpbmQ/LnBhcmVudExheWVyPT09InV0aWxpdGllcyIpO3QudXRpbGl0aWVzJiZwLnNpemU9PT0wJiYhdiYmRy53YXJuKCJjb250ZW50LXByb2JsZW1zIixbIk5vIHV0aWxpdHkgY2xhc3NlcyB3ZXJlIGRldGVjdGVkIGluIHlvdXIgc291cmNlIGZpbGVzLiBJZiB0aGlzIGlzIHVuZXhwZWN0ZWQsIGRvdWJsZS1jaGVjayB0aGUgYGNvbnRlbnRgIG9wdGlvbiBpbiB5b3VyIFRhaWx3aW5kIENTUyBjb25maWd1cmF0aW9uLiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudC1jb25maWd1cmF0aW9uIl0pLGJ0LkRFQlVHJiYoY29uc29sZS5sb2coIlBvdGVudGlhbCBjbGFzc2VzOiAiLGkuc2l6ZSksY29uc29sZS5sb2coIkFjdGl2ZSBjb250ZXh0czogIixlcy5zaXplKSksci5jaGFuZ2VkQ29udGVudD1bXSxlLndhbGtBdFJ1bGVzKCJsYXllciIseT0+e09iamVjdC5rZXlzKHQpLmluY2x1ZGVzKHkucGFyYW1zKSYmeS5yZW1vdmUoKX0pfX12YXIgTGcsYnQsTWcsTmcsTGksQmc9UCgoKT0+e3UoKTtmdCgpO0xnPXBlKEZzKCkpO0l0KCk7b3MoKTtCZSgpO1JnKCk7JGcoKTtidD1aZSxNZz17REVGQVVMVDpxZ30sTmc9e0RFRkFVTFQ6cj0+cixzdmVsdGU6cj0+ci5yZXBsYWNlKC8oPzpefFxzKWNsYXNzOi9nLCIgIil9O0xpPW5ldyBXZWFrTWFwfSk7ZnVuY3Rpb24geHMocil7bGV0IGU9bmV3IE1hcDtlZS5yb290KHtub2Rlczpbci5jbG9uZSgpXX0pLndhbGtSdWxlcyhzPT57KDAsdnMuZGVmYXVsdCkoYT0+e2Eud2Fsa0NsYXNzZXMobz0+e2xldCBsPW8ucGFyZW50LnRvU3RyaW5nKCksYz1lLmdldChsKTtjfHxlLnNldChsLGM9bmV3IFNldCksYy5hZGQoby52YWx1ZSl9KX0pLnByb2Nlc3NTeW5jKHMuc2VsZWN0b3IpfSk7bGV0IGk9QXJyYXkuZnJvbShlLnZhbHVlcygpLHM9PkFycmF5LmZyb20ocykpLG49aS5mbGF0KCk7cmV0dXJuIE9iamVjdC5hc3NpZ24obix7Z3JvdXBzOml9KX1mdW5jdGlvbiBJbChyKXtyZXR1cm4gUjIuYXN0U3luYyhyKX1mdW5jdGlvbiBGZyhyLGUpe2xldCB0PW5ldyBTZXQ7Zm9yKGxldCBpIG9mIHIpdC5hZGQoaS5zcGxpdChlKS5wb3AoKSk7cmV0dXJuIEFycmF5LmZyb20odCl9ZnVuY3Rpb24gamcocixlKXtsZXQgdD1yLnRhaWx3aW5kQ29uZmlnLnByZWZpeDtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0K2V9ZnVuY3Rpb24qemcocil7Zm9yKHlpZWxkIHI7ci5wYXJlbnQ7KXlpZWxkIHIucGFyZW50LHI9ci5wYXJlbnR9ZnVuY3Rpb24gUDIocixlPXt9KXtsZXQgdD1yLm5vZGVzO3Iubm9kZXM9W107bGV0IGk9ci5jbG9uZShlKTtyZXR1cm4gci5ub2Rlcz10LGl9ZnVuY3Rpb24gSTIocil7Zm9yKGxldCBlIG9mIHpnKHIpKWlmKHIhPT1lKXtpZihlLnR5cGU9PT0icm9vdCIpYnJlYWs7cj1QMihlLHtub2Rlczpbcl19KX1yZXR1cm4gcn1mdW5jdGlvbiBEMihyLGUpe2xldCB0PW5ldyBNYXA7cmV0dXJuIHIud2Fsa1J1bGVzKGk9Pntmb3IobGV0IGEgb2YgemcoaSkpaWYoYS5yYXdzLnRhaWx3aW5kPy5sYXllciE9PXZvaWQgMClyZXR1cm47bGV0IG49STIoaSkscz1lLm9mZnNldHMuY3JlYXRlKCJ1c2VyIik7Zm9yKGxldCBhIG9mIHhzKGkpKXtsZXQgbz10LmdldChhKXx8W107dC5zZXQoYSxvKSxvLnB1c2goW3tsYXllcjoidXNlciIsc29ydDpzLGltcG9ydGFudDohMX0sbl0pfX0pLHR9ZnVuY3Rpb24gcTIocixlKXtmb3IobGV0IHQgb2Ygcil7aWYoZS5ub3RDbGFzc0NhY2hlLmhhcyh0KXx8ZS5hcHBseUNsYXNzQ2FjaGUuaGFzKHQpKWNvbnRpbnVlO2lmKGUuY2xhc3NDYWNoZS5oYXModCkpe2UuYXBwbHlDbGFzc0NhY2hlLnNldCh0LGUuY2xhc3NDYWNoZS5nZXQodCkubWFwKChbbixzXSk9PltuLHMuY2xvbmUoKV0pKTtjb250aW51ZX1sZXQgaT1BcnJheS5mcm9tKFlvKHQsZSkpO2lmKGkubGVuZ3RoPT09MCl7ZS5ub3RDbGFzc0NhY2hlLmFkZCh0KTtjb250aW51ZX1lLmFwcGx5Q2xhc3NDYWNoZS5zZXQodCxpKX1yZXR1cm4gZS5hcHBseUNsYXNzQ2FjaGV9ZnVuY3Rpb24gJDIocil7bGV0IGU9bnVsbDtyZXR1cm57Z2V0OnQ9PihlPWV8fHIoKSxlLmdldCh0KSksaGFzOnQ9PihlPWV8fHIoKSxlLmhhcyh0KSl9fWZ1bmN0aW9uIEwyKHIpe3JldHVybntnZXQ6ZT0+ci5mbGF0TWFwKHQ9PnQuZ2V0KGUpfHxbXSksaGFzOmU9PnIuc29tZSh0PT50LmhhcyhlKSl9fWZ1bmN0aW9uIFVnKHIpe2xldCBlPXIuc3BsaXQoL1tcc1x0XG5dKy9nKTtyZXR1cm4gZVtlLmxlbmd0aC0xXT09PSIhaW1wb3J0YW50Ij9bZS5zbGljZSgwLC0xKSwhMF06W2UsITFdfWZ1bmN0aW9uIFZnKHIsZSx0KXtsZXQgaT1uZXcgU2V0LG49W107aWYoci53YWxrQXRSdWxlcygiYXBwbHkiLGw9PntsZXRbY109VWcobC5wYXJhbXMpO2ZvcihsZXQgZiBvZiBjKWkuYWRkKGYpO24ucHVzaChsKX0pLG4ubGVuZ3RoPT09MClyZXR1cm47bGV0IHM9TDIoW3QscTIoaSxlKV0pO2Z1bmN0aW9uIGEobCxjLGYpe2xldCBkPUlsKGwpLHA9SWwoYyksYj1JbChgLiR7VGUoZil9YCkubm9kZXNbMF0ubm9kZXNbMF07cmV0dXJuIGQuZWFjaCh2PT57bGV0IHk9bmV3IFNldDtwLmVhY2godz0+e2xldCBrPSExO3c9dy5jbG9uZSgpLHcud2Fsa0NsYXNzZXMoUz0+e1MudmFsdWU9PT1iLnZhbHVlJiYoa3x8KFMucmVwbGFjZVdpdGgoLi4udi5ub2Rlcy5tYXAoRT0+RS5jbG9uZSgpKSkseS5hZGQodyksaz0hMCkpfSl9KTtmb3IobGV0IHcgb2YgeSl7bGV0IGs9W1tdXTtmb3IobGV0IFMgb2Ygdy5ub2RlcylTLnR5cGU9PT0iY29tYmluYXRvciI/KGsucHVzaChTKSxrLnB1c2goW10pKTprW2subGVuZ3RoLTFdLnB1c2goUyk7dy5ub2Rlcz1bXTtmb3IobGV0IFMgb2YgaylBcnJheS5pc0FycmF5KFMpJiZTLnNvcnQoKEUsVCk9PkUudHlwZT09PSJ0YWciJiZULnR5cGU9PT0iY2xhc3MiPy0xOkUudHlwZT09PSJjbGFzcyImJlQudHlwZT09PSJ0YWciPzE6RS50eXBlPT09ImNsYXNzIiYmVC50eXBlPT09InBzZXVkbyImJlQudmFsdWUuc3RhcnRzV2l0aCgiOjoiKT8tMTpFLnR5cGU9PT0icHNldWRvIiYmRS52YWx1ZS5zdGFydHNXaXRoKCI6OiIpJiZULnR5cGU9PT0iY2xhc3MiPzE6MCksdy5ub2Rlcz13Lm5vZGVzLmNvbmNhdChTKX12LnJlcGxhY2VXaXRoKC4uLnkpfSksZC50b1N0cmluZygpfWxldCBvPW5ldyBNYXA7Zm9yKGxldCBsIG9mIG4pe2xldFtjXT1vLmdldChsLnBhcmVudCl8fFtbXSxsLnNvdXJjZV07by5zZXQobC5wYXJlbnQsW2MsbC5zb3VyY2VdKTtsZXRbZixkXT1VZyhsLnBhcmFtcyk7aWYobC5wYXJlbnQudHlwZT09PSJhdHJ1bGUiKXtpZihsLnBhcmVudC5uYW1lPT09InNjcmVlbiIpe2xldCBwPWwucGFyZW50LnBhcmFtczt0aHJvdyBsLmVycm9yKGBAYXBwbHkgaXMgbm90IHN1cHBvcnRlZCB3aXRoaW4gbmVzdGVkIGF0LXJ1bGVzIGxpa2UgQHNjcmVlbi4gV2Ugc3VnZ2VzdCB5b3Ugd3JpdGUgdGhpcyBhcyBAYXBwbHkgJHtmLm1hcChoPT5gJHtwfToke2h9YCkuam9pbigiICIpfSBpbnN0ZWFkLmApfXRocm93IGwuZXJyb3IoYEBhcHBseSBpcyBub3Qgc3VwcG9ydGVkIHdpdGhpbiBuZXN0ZWQgYXQtcnVsZXMgbGlrZSBAJHtsLnBhcmVudC5uYW1lfS4gWW91IGNhbiBmaXggdGhpcyBieSB1bi1uZXN0aW5nIEAke2wucGFyZW50Lm5hbWV9LmApfWZvcihsZXQgcCBvZiBmKXtpZihbamcoZSwiZ3JvdXAiKSxqZyhlLCJwZWVyIildLmluY2x1ZGVzKHApKXRocm93IGwuZXJyb3IoYEBhcHBseSBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgJyR7cH0nIHV0aWxpdHlgKTtpZighcy5oYXMocCkpdGhyb3cgbC5lcnJvcihgVGhlIFxgJHtwfVxgIGNsYXNzIGRvZXMgbm90IGV4aXN0LiBJZiBcYCR7cH1cYCBpcyBhIGN1c3RvbSBjbGFzcywgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQgd2l0aGluIGEgXGBAbGF5ZXJcYCBkaXJlY3RpdmUuYCk7bGV0IGg9cy5nZXQocCk7Zm9yKGxldFssYl1vZiBoKWIudHlwZSE9PSJhdHJ1bGUiJiZiLndhbGtSdWxlcygoKT0+e3Rocm93IGwuZXJyb3IoW2BUaGUgXGAke3B9XGAgY2xhc3MgY2Fubm90IGJlIHVzZWQgd2l0aCBcYEBhcHBseVxgIGJlY2F1c2UgXGBAYXBwbHlcYCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBuZXN0ZWQgQ1NTLmAsIlJld3JpdGUgdGhlIHNlbGVjdG9yIHdpdGhvdXQgbmVzdGluZyBvciBjb25maWd1cmUgdGhlIGB0YWlsd2luZGNzcy9uZXN0aW5nYCBwbHVnaW46IiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91c2luZy13aXRoLXByZXByb2Nlc3NvcnMjbmVzdGluZyJdLmpvaW4oYApgKSl9KTtjLnB1c2goW3AsZCxoXSl9fWZvcihsZXRbbCxbYyxmXV1vZiBvKXtsZXQgZD1bXTtmb3IobGV0W2gsYix2XW9mIGMpe2xldCB5PVtoLC4uLkZnKFtoXSxlLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcildO2ZvcihsZXRbdyxrXW9mIHYpe2xldCBTPXhzKGwpLEU9eHMoayk7aWYoRT1FLmdyb3Vwcy5maWx0ZXIoUj0+Ui5zb21lKEY9PnkuaW5jbHVkZXMoRikpKS5mbGF0KCksRT1FLmNvbmNhdChGZyhFLGUudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yKSksUy5zb21lKFI9PkUuaW5jbHVkZXMoUikpKXRocm93IGsuZXJyb3IoYFlvdSBjYW5ub3QgXGBAYXBwbHlcYCB0aGUgXGAke2h9XGAgdXRpbGl0eSBoZXJlIGJlY2F1c2UgaXQgY3JlYXRlcyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuYCk7bGV0IEI9ZWUucm9vdCh7bm9kZXM6W2suY2xvbmUoKV19KTtCLndhbGsoUj0+e1Iuc291cmNlPWZ9KSwoay50eXBlIT09ImF0cnVsZSJ8fGsudHlwZT09PSJhdHJ1bGUiJiZrLm5hbWUhPT0ia2V5ZnJhbWVzIikmJkIud2Fsa1J1bGVzKFI9PntpZigheHMoUikuc29tZShVPT5VPT09aCkpe1IucmVtb3ZlKCk7cmV0dXJufWxldCBGPXR5cGVvZiBlLnRhaWx3aW5kQ29uZmlnLmltcG9ydGFudD09InN0cmluZyI/ZS50YWlsd2luZENvbmZpZy5pbXBvcnRhbnQ6bnVsbCxfPWwucmF3cy50YWlsd2luZCE9PXZvaWQgMCYmRiYmbC5zZWxlY3Rvci5pbmRleE9mKEYpPT09MD9sLnNlbGVjdG9yLnNsaWNlKEYubGVuZ3RoKTpsLnNlbGVjdG9yO189PT0iIiYmKF89bC5zZWxlY3RvciksUi5zZWxlY3Rvcj1hKF8sUi5zZWxlY3RvcixoKSxGJiZfIT09bC5zZWxlY3RvciYmKFIuc2VsZWN0b3I9aXMoUi5zZWxlY3RvcixGKSksUi53YWxrRGVjbHMoVT0+e1UuaW1wb3J0YW50PXcuaW1wb3J0YW50fHxifSk7bGV0IFE9KDAsdnMuZGVmYXVsdCkoKS5hc3RTeW5jKFIuc2VsZWN0b3IpO1EuZWFjaChVPT5wcihVKSksUi5zZWxlY3Rvcj1RLnRvU3RyaW5nKCl9KSwhIUIubm9kZXNbMF0mJmQucHVzaChbdy5zb3J0LEIubm9kZXNbMF1dKX19bGV0IHA9ZS5vZmZzZXRzLnNvcnQoZCkubWFwKGg9PmhbMV0pO2wuYWZ0ZXIocCl9Zm9yKGxldCBsIG9mIG4pbC5wYXJlbnQubm9kZXMubGVuZ3RoPjE/bC5yZW1vdmUoKTpsLnBhcmVudC5yZW1vdmUoKTtWZyhyLGUsdCl9ZnVuY3Rpb24gRGwocil7cmV0dXJuIGU9PntsZXQgdD0kMigoKT0+RDIoZSxyKSk7VmcoZSxyLHQpfX12YXIgdnMsUjIsSGc9UCgoKT0+e3UoKTtPdCgpO3ZzPXBlKGl0KCkpO29zKCk7ZnIoKTtXbygpO3RzKCk7UjI9KDAsdnMuZGVmYXVsdCkoKX0pO3ZhciBXZz14KChucSxrcyk9Pnt1KCk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoaSxuLHMpe2lmKCFpKXJldHVybiBudWxsO3IuY2FzZVNlbnNpdGl2ZXx8KGk9aS50b0xvd2VyQ2FzZSgpKTt2YXIgYT1yLnRocmVzaG9sZD09PW51bGw/bnVsbDpyLnRocmVzaG9sZCppLmxlbmd0aCxvPXIudGhyZXNob2xkQWJzb2x1dGUsbDthIT09bnVsbCYmbyE9PW51bGw/bD1NYXRoLm1pbihhLG8pOmEhPT1udWxsP2w9YTpvIT09bnVsbD9sPW86bD1udWxsO3ZhciBjLGYsZCxwLGgsYj1uLmxlbmd0aDtmb3IoaD0wO2g8YjtoKyspaWYoZj1uW2hdLHMmJihmPWZbc10pLCEhZiYmKHIuY2FzZVNlbnNpdGl2ZT9kPWY6ZD1mLnRvTG93ZXJDYXNlKCkscD10KGksZCxsKSwobD09PW51bGx8fHA8bCkmJihsPXAscyYmci5yZXR1cm5XaW5uaW5nT2JqZWN0P2M9bltoXTpjPWYsci5yZXR1cm5GaXJzdE1hdGNoKSkpcmV0dXJuIGM7cmV0dXJuIGN8fHIubnVsbFJlc3VsdFZhbHVlfXIudGhyZXNob2xkPS40LHIudGhyZXNob2xkQWJzb2x1dGU9MjAsci5jYXNlU2Vuc2l0aXZlPSExLHIubnVsbFJlc3VsdFZhbHVlPW51bGwsci5yZXR1cm5XaW5uaW5nT2JqZWN0PW51bGwsci5yZXR1cm5GaXJzdE1hdGNoPSExLHR5cGVvZiBrcyE9InVuZGVmaW5lZCImJmtzLmV4cG9ydHM/a3MuZXhwb3J0cz1yOndpbmRvdy5kaWRZb3VNZWFuPXI7dmFyIGU9TWF0aC5wb3coMiwzMiktMTtmdW5jdGlvbiB0KGksbixzKXtzPXN8fHM9PT0wP3M6ZTt2YXIgYT1pLmxlbmd0aCxvPW4ubGVuZ3RoO2lmKGE9PT0wKXJldHVybiBNYXRoLm1pbihzKzEsbyk7aWYobz09PTApcmV0dXJuIE1hdGgubWluKHMrMSxhKTtpZihNYXRoLmFicyhhLW8pPnMpcmV0dXJuIHMrMTt2YXIgbD1bXSxjLGYsZCxwLGg7Zm9yKGM9MDtjPD1vO2MrKylsW2NdPVtjXTtmb3IoZj0wO2Y8PWE7ZisrKWxbMF1bZl09Zjtmb3IoYz0xO2M8PW87YysrKXtmb3IoZD1lLHA9MSxjPnMmJihwPWMtcyksaD1vKzEsaD5zK2MmJihoPXMrYyksZj0xO2Y8PWE7ZisrKWY8cHx8Zj5oP2xbY11bZl09cysxOm4uY2hhckF0KGMtMSk9PT1pLmNoYXJBdChmLTEpP2xbY11bZl09bFtjLTFdW2YtMV06bFtjXVtmXT1NYXRoLm1pbihsW2MtMV1bZi0xXSsxLE1hdGgubWluKGxbY11bZi0xXSsxLGxbYy0xXVtmXSsxKSksbFtjXVtmXTxkJiYoZD1sW2NdW2ZdKTtpZihkPnMpcmV0dXJuIHMrMX1yZXR1cm4gbFtvXVthXX19KSgpfSk7dmFyIFFnPXgoKHNxLEdnKT0+e3UoKTt2YXIgcWw9IigiLmNoYXJDb2RlQXQoMCksJGw9IikiLmNoYXJDb2RlQXQoMCksU3M9IiciLmNoYXJDb2RlQXQoMCksTGw9JyInLmNoYXJDb2RlQXQoMCksTWw9IlxcIi5jaGFyQ29kZUF0KDApLHlyPSIvIi5jaGFyQ29kZUF0KDApLE5sPSIsIi5jaGFyQ29kZUF0KDApLEJsPSI6Ii5jaGFyQ29kZUF0KDApLEFzPSIqIi5jaGFyQ29kZUF0KDApLE0yPSJ1Ii5jaGFyQ29kZUF0KDApLE4yPSJVIi5jaGFyQ29kZUF0KDApLEIyPSIrIi5jaGFyQ29kZUF0KDApLEYyPS9eW2EtZjAtOT8tXSskL2k7R2cuZXhwb3J0cz1mdW5jdGlvbihyKXtmb3IodmFyIGU9W10sdD1yLGksbixzLGEsbyxsLGMsZixkPTAscD10LmNoYXJDb2RlQXQoZCksaD10Lmxlbmd0aCxiPVt7bm9kZXM6ZX1dLHY9MCx5LHc9IiIsaz0iIixTPSIiO2Q8aDspaWYocDw9MzIpe2k9ZDtkbyBpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKHA8PTMyKTthPXQuc2xpY2UoZCxpKSxzPWVbZS5sZW5ndGgtMV0scD09PSRsJiZ2P1M9YTpzJiZzLnR5cGU9PT0iZGl2Ij8ocy5hZnRlcj1hLHMuc291cmNlRW5kSW5kZXgrPWEubGVuZ3RoKTpwPT09Tmx8fHA9PT1CbHx8cD09PXlyJiZ0LmNoYXJDb2RlQXQoaSsxKSE9PUFzJiYoIXl8fHkmJnkudHlwZT09PSJmdW5jdGlvbiImJiExKT9rPWE6ZS5wdXNoKHt0eXBlOiJzcGFjZSIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppLHZhbHVlOmF9KSxkPWl9ZWxzZSBpZihwPT09U3N8fHA9PT1MbCl7aT1kLG49cD09PVNzPyInIjonIicsYT17dHlwZToic3RyaW5nIixzb3VyY2VJbmRleDpkLHF1b3RlOm59O2RvIGlmKG89ITEsaT10LmluZGV4T2YobixpKzEpLH5pKWZvcihsPWk7dC5jaGFyQ29kZUF0KGwtMSk9PT1NbDspbC09MSxvPSFvO2Vsc2UgdCs9bixpPXQubGVuZ3RoLTEsYS51bmNsb3NlZD0hMDt3aGlsZShvKTthLnZhbHVlPXQuc2xpY2UoZCsxLGkpLGEuc291cmNlRW5kSW5kZXg9YS51bmNsb3NlZD9pOmkrMSxlLnB1c2goYSksZD1pKzEscD10LmNoYXJDb2RlQXQoZCl9ZWxzZSBpZihwPT09eXImJnQuY2hhckNvZGVBdChkKzEpPT09QXMpaT10LmluZGV4T2YoIiovIixkKSxhPXt0eXBlOiJjb21tZW50Iixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmkrMn0saT09PS0xJiYoYS51bmNsb3NlZD0hMCxpPXQubGVuZ3RoLGEuc291cmNlRW5kSW5kZXg9aSksYS52YWx1ZT10LnNsaWNlKGQrMixpKSxlLnB1c2goYSksZD1pKzIscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZigocD09PXlyfHxwPT09QXMpJiZ5JiZ5LnR5cGU9PT0iZnVuY3Rpb24iKWE9dFtkXSxlLnB1c2goe3R5cGU6IndvcmQiLHNvdXJjZUluZGV4OmQtay5sZW5ndGgsc291cmNlRW5kSW5kZXg6ZCthLmxlbmd0aCx2YWx1ZTphfSksZCs9MSxwPXQuY2hhckNvZGVBdChkKTtlbHNlIGlmKHA9PT15cnx8cD09PU5sfHxwPT09QmwpYT10W2RdLGUucHVzaCh7dHlwZToiZGl2Iixzb3VyY2VJbmRleDpkLWsubGVuZ3RoLHNvdXJjZUVuZEluZGV4OmQrYS5sZW5ndGgsdmFsdWU6YSxiZWZvcmU6ayxhZnRlcjoiIn0pLGs9IiIsZCs9MSxwPXQuY2hhckNvZGVBdChkKTtlbHNlIGlmKHFsPT09cCl7aT1kO2RvIGkrPTEscD10LmNoYXJDb2RlQXQoaSk7d2hpbGUocDw9MzIpO2lmKGY9ZCxhPXt0eXBlOiJmdW5jdGlvbiIsc291cmNlSW5kZXg6ZC13Lmxlbmd0aCx2YWx1ZTp3LGJlZm9yZTp0LnNsaWNlKGYrMSxpKX0sZD1pLHc9PT0idXJsIiYmcCE9PVNzJiZwIT09TGwpe2ktPTE7ZG8gaWYobz0hMSxpPXQuaW5kZXhPZigiKSIsaSsxKSx+aSlmb3IobD1pO3QuY2hhckNvZGVBdChsLTEpPT09TWw7KWwtPTEsbz0hbztlbHNlIHQrPSIpIixpPXQubGVuZ3RoLTEsYS51bmNsb3NlZD0hMDt3aGlsZShvKTtjPWk7ZG8gYy09MSxwPXQuY2hhckNvZGVBdChjKTt3aGlsZShwPD0zMik7ZjxjPyhkIT09YysxP2Eubm9kZXM9W3t0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmMrMSx2YWx1ZTp0LnNsaWNlKGQsYysxKX1dOmEubm9kZXM9W10sYS51bmNsb3NlZCYmYysxIT09aT8oYS5hZnRlcj0iIixhLm5vZGVzLnB1c2goe3R5cGU6InNwYWNlIixzb3VyY2VJbmRleDpjKzEsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTp0LnNsaWNlKGMrMSxpKX0pKTooYS5hZnRlcj10LnNsaWNlKGMrMSxpKSxhLnNvdXJjZUVuZEluZGV4PWkpKTooYS5hZnRlcj0iIixhLm5vZGVzPVtdKSxkPWkrMSxhLnNvdXJjZUVuZEluZGV4PWEudW5jbG9zZWQ/aTpkLHA9dC5jaGFyQ29kZUF0KGQpLGUucHVzaChhKX1lbHNlIHYrPTEsYS5hZnRlcj0iIixhLnNvdXJjZUVuZEluZGV4PWQrMSxlLnB1c2goYSksYi5wdXNoKGEpLGU9YS5ub2Rlcz1bXSx5PWE7dz0iIn1lbHNlIGlmKCRsPT09cCYmdilkKz0xLHA9dC5jaGFyQ29kZUF0KGQpLHkuYWZ0ZXI9Uyx5LnNvdXJjZUVuZEluZGV4Kz1TLmxlbmd0aCxTPSIiLHYtPTEsYltiLmxlbmd0aC0xXS5zb3VyY2VFbmRJbmRleD1kLGIucG9wKCkseT1iW3ZdLGU9eS5ub2RlcztlbHNle2k9ZDtkbyBwPT09TWwmJihpKz0xKSxpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKGk8aCYmIShwPD0zMnx8cD09PVNzfHxwPT09TGx8fHA9PT1ObHx8cD09PUJsfHxwPT09eXJ8fHA9PT1xbHx8cD09PUFzJiZ5JiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiYhMHx8cD09PXlyJiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiYhMHx8cD09PSRsJiZ2KSk7YT10LnNsaWNlKGQsaSkscWw9PT1wP3c9YTooTTI9PT1hLmNoYXJDb2RlQXQoMCl8fE4yPT09YS5jaGFyQ29kZUF0KDApKSYmQjI9PT1hLmNoYXJDb2RlQXQoMSkmJkYyLnRlc3QoYS5zbGljZSgyKSk/ZS5wdXNoKHt0eXBlOiJ1bmljb2RlLXJhbmdlIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6YX0pOmUucHVzaCh7dHlwZToid29yZCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppLHZhbHVlOmF9KSxkPWl9Zm9yKGQ9Yi5sZW5ndGgtMTtkO2QtPTEpYltkXS51bmNsb3NlZD0hMCxiW2RdLnNvdXJjZUVuZEluZGV4PXQubGVuZ3RoO3JldHVybiBiWzBdLm5vZGVzfX0pO3ZhciBLZz14KChhcSxZZyk9Pnt1KCk7WWcuZXhwb3J0cz1mdW5jdGlvbiByKGUsdCxpKXt2YXIgbixzLGEsbztmb3Iobj0wLHM9ZS5sZW5ndGg7bjxzO24rPTEpYT1lW25dLGl8fChvPXQoYSxuLGUpKSxvIT09ITEmJmEudHlwZT09PSJmdW5jdGlvbiImJkFycmF5LmlzQXJyYXkoYS5ub2RlcykmJnIoYS5ub2Rlcyx0LGkpLGkmJnQoYSxuLGUpfX0pO3ZhciBleT14KChvcSxKZyk9Pnt1KCk7ZnVuY3Rpb24gWGcocixlKXt2YXIgdD1yLnR5cGUsaT1yLnZhbHVlLG4scztyZXR1cm4gZSYmKHM9ZShyKSkhPT12b2lkIDA/czp0PT09IndvcmQifHx0PT09InNwYWNlIj9pOnQ9PT0ic3RyaW5nIj8obj1yLnF1b3RlfHwiIixuK2krKHIudW5jbG9zZWQ/IiI6bikpOnQ9PT0iY29tbWVudCI/Ii8qIitpKyhyLnVuY2xvc2VkPyIiOiIqLyIpOnQ9PT0iZGl2Ij8oci5iZWZvcmV8fCIiKStpKyhyLmFmdGVyfHwiIik6QXJyYXkuaXNBcnJheShyLm5vZGVzKT8obj1aZyhyLm5vZGVzLGUpLHQhPT0iZnVuY3Rpb24iP246aSsiKCIrKHIuYmVmb3JlfHwiIikrbisoci5hZnRlcnx8IiIpKyhyLnVuY2xvc2VkPyIiOiIpIikpOml9ZnVuY3Rpb24gWmcocixlKXt2YXIgdCxpO2lmKEFycmF5LmlzQXJyYXkocikpe2Zvcih0PSIiLGk9ci5sZW5ndGgtMTt+aTtpLT0xKXQ9WGcocltpXSxlKSt0O3JldHVybiB0fXJldHVybiBYZyhyLGUpfUpnLmV4cG9ydHM9Wmd9KTt2YXIgcnk9eCgobHEsdHkpPT57dSgpO3ZhciBDcz0iLSIuY2hhckNvZGVBdCgwKSxfcz0iKyIuY2hhckNvZGVBdCgwKSxGbD0iLiIuY2hhckNvZGVBdCgwKSxqMj0iZSIuY2hhckNvZGVBdCgwKSx6Mj0iRSIuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBVMihyKXt2YXIgZT1yLmNoYXJDb2RlQXQoMCksdDtpZihlPT09X3N8fGU9PT1Dcyl7aWYodD1yLmNoYXJDb2RlQXQoMSksdD49NDgmJnQ8PTU3KXJldHVybiEwO3ZhciBpPXIuY2hhckNvZGVBdCgyKTtyZXR1cm4gdD09PUZsJiZpPj00OCYmaTw9NTd9cmV0dXJuIGU9PT1GbD8odD1yLmNoYXJDb2RlQXQoMSksdD49NDgmJnQ8PTU3KTplPj00OCYmZTw9NTd9dHkuZXhwb3J0cz1mdW5jdGlvbihyKXt2YXIgZT0wLHQ9ci5sZW5ndGgsaSxuLHM7aWYodD09PTB8fCFVMihyKSlyZXR1cm4hMTtmb3IoaT1yLmNoYXJDb2RlQXQoZSksKGk9PT1fc3x8aT09PUNzKSYmZSsrO2U8dCYmKGk9ci5jaGFyQ29kZUF0KGUpLCEoaTw0OHx8aT41NykpOyllKz0xO2lmKGk9ci5jaGFyQ29kZUF0KGUpLG49ci5jaGFyQ29kZUF0KGUrMSksaT09PUZsJiZuPj00OCYmbjw9NTcpZm9yKGUrPTI7ZTx0JiYoaT1yLmNoYXJDb2RlQXQoZSksIShpPDQ4fHxpPjU3KSk7KWUrPTE7aWYoaT1yLmNoYXJDb2RlQXQoZSksbj1yLmNoYXJDb2RlQXQoZSsxKSxzPXIuY2hhckNvZGVBdChlKzIpLChpPT09ajJ8fGk9PT16MikmJihuPj00OCYmbjw9NTd8fChuPT09X3N8fG49PT1DcykmJnM+PTQ4JiZzPD01NykpZm9yKGUrPW49PT1fc3x8bj09PUNzPzM6MjtlPHQmJihpPXIuY2hhckNvZGVBdChlKSwhKGk8NDh8fGk+NTcpKTspZSs9MTtyZXR1cm57bnVtYmVyOnIuc2xpY2UoMCxlKSx1bml0OnIuc2xpY2UoZSl9fX0pO3ZhciBheT14KCh1cSxzeSk9Pnt1KCk7dmFyIFYyPVFnKCksaXk9S2coKSxueT1leSgpO2Z1bmN0aW9uICR0KHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgJHQ/KHRoaXMubm9kZXM9VjIociksdGhpcyk6bmV3ICR0KHIpfSR0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5pc0FycmF5KHRoaXMubm9kZXMpP255KHRoaXMubm9kZXMpOiIifTskdC5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihyLGUpe3JldHVybiBpeSh0aGlzLm5vZGVzLHIsZSksdGhpc307JHQudW5pdD1yeSgpOyR0LndhbGs9aXk7JHQuc3RyaW5naWZ5PW55O3N5LmV4cG9ydHM9JHR9KTtmdW5jdGlvbiB6bChyKXtyZXR1cm4gdHlwZW9mIHI9PSJvYmplY3QiJiZyIT09bnVsbH1mdW5jdGlvbiBIMihyLGUpe2xldCB0PWt0KGUpO2RvIGlmKHQucG9wKCksKDAsTWkuZGVmYXVsdCkocix0KSE9PXZvaWQgMClicmVhazt3aGlsZSh0Lmxlbmd0aCk7cmV0dXJuIHQubGVuZ3RoP3Q6dm9pZCAwfWZ1bmN0aW9uIGJyKHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyI/cjpyLnJlZHVjZSgoZSx0LGkpPT50LmluY2x1ZGVzKCIuIik/YCR7ZX1bJHt0fV1gOmk9PT0wP3Q6YCR7ZX0uJHt0fWAsIiIpfWZ1bmN0aW9uIGx5KHIpe3JldHVybiByLm1hcChlPT5gJyR7ZX0nYCkuam9pbigiLCAiKX1mdW5jdGlvbiB1eShyKXtyZXR1cm4gbHkoT2JqZWN0LmtleXMocikpfWZ1bmN0aW9uIFVsKHIsZSx0LGk9e30pe2xldCBuPUFycmF5LmlzQXJyYXkoZSk/YnIoZSk6ZS5yZXBsYWNlKC9eWyciXSt8WyciXSskL2csIiIpLHM9QXJyYXkuaXNBcnJheShlKT9lOmt0KG4pLGE9KDAsTWkuZGVmYXVsdCkoci50aGVtZSxzLHQpO2lmKGE9PT12b2lkIDApe2xldCBsPWAnJHtufScgZG9lcyBub3QgZXhpc3QgaW4geW91ciB0aGVtZSBjb25maWcuYCxjPXMuc2xpY2UoMCwtMSksZj0oMCxNaS5kZWZhdWx0KShyLnRoZW1lLGMpO2lmKHpsKGYpKXtsZXQgZD1PYmplY3Qua2V5cyhmKS5maWx0ZXIoaD0+VWwocixbLi4uYyxoXSkuaXNWYWxpZCkscD0oMCxveS5kZWZhdWx0KShzW3MubGVuZ3RoLTFdLGQpO3A/bCs9YCBEaWQgeW91IG1lYW4gJyR7YnIoWy4uLmMscF0pfSc/YDpkLmxlbmd0aD4wJiYobCs9YCAnJHticihjKX0nIGhhcyB0aGUgZm9sbG93aW5nIHZhbGlkIGtleXM6ICR7bHkoZCl9YCl9ZWxzZXtsZXQgZD1IMihyLnRoZW1lLG4pO2lmKGQpe2xldCBwPSgwLE1pLmRlZmF1bHQpKHIudGhlbWUsZCk7emwocCk/bCs9YCAnJHticihkKX0nIGhhcyB0aGUgZm9sbG93aW5nIGtleXM6ICR7dXkocCl9YDpsKz1gICcke2JyKGQpfScgaXMgbm90IGFuIG9iamVjdC5gfWVsc2UgbCs9YCBZb3VyIHRoZW1lIGhhcyB0aGUgZm9sbG93aW5nIHRvcC1sZXZlbCBrZXlzOiAke3V5KHIudGhlbWUpfWB9cmV0dXJue2lzVmFsaWQ6ITEsZXJyb3I6bH19aWYoISh0eXBlb2YgYT09InN0cmluZyJ8fHR5cGVvZiBhPT0ibnVtYmVyInx8dHlwZW9mIGE9PSJmdW5jdGlvbiJ8fGEgaW5zdGFuY2VvZiBTdHJpbmd8fGEgaW5zdGFuY2VvZiBOdW1iZXJ8fEFycmF5LmlzQXJyYXkoYSkpKXtsZXQgbD1gJyR7bn0nIHdhcyBmb3VuZCBidXQgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHN0cmluZy5gO2lmKHpsKGEpKXtsZXQgYz1PYmplY3Qua2V5cyhhKS5maWx0ZXIoZj0+VWwocixbLi4ucyxmXSkuaXNWYWxpZCk7Yy5sZW5ndGgmJihsKz1gIERpZCB5b3UgbWVhbiBzb21ldGhpbmcgbGlrZSAnJHticihbLi4ucyxjWzBdXSl9Jz9gKX1yZXR1cm57aXNWYWxpZDohMSxlcnJvcjpsfX1sZXRbb109cztyZXR1cm57aXNWYWxpZDohMCx2YWx1ZTptdChvKShhLGkpfX1mdW5jdGlvbiBXMihyLGUsdCl7ZT1lLm1hcChuPT5meShyLG4sdCkpO2xldCBpPVsiIl07Zm9yKGxldCBuIG9mIGUpbi50eXBlPT09ImRpdiImJm4udmFsdWU9PT0iLCI/aS5wdXNoKCIiKTppW2kubGVuZ3RoLTFdKz1qbC5kZWZhdWx0LnN0cmluZ2lmeShuKTtyZXR1cm4gaX1mdW5jdGlvbiBmeShyLGUsdCl7aWYoZS50eXBlPT09ImZ1bmN0aW9uIiYmdFtlLnZhbHVlXSE9PXZvaWQgMCl7bGV0IGk9VzIocixlLm5vZGVzLHQpO2UudHlwZT0id29yZCIsZS52YWx1ZT10W2UudmFsdWVdKHIsLi4uaSl9cmV0dXJuIGV9ZnVuY3Rpb24gRzIocixlLHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5zb21lKG49PmUuaW5jbHVkZXMoYCR7bn0oYCkpPygwLGpsLmRlZmF1bHQpKGUpLndhbGsobj0+e2Z5KHIsbix0KX0pLnRvU3RyaW5nKCk6ZX1mdW5jdGlvbipZMihyKXtyPXIucmVwbGFjZSgvXlsnIl0rfFsnIl0rJC9nLCIiKTtsZXQgZT1yLm1hdGNoKC9eKFteXHNdKykoPyFbXlxbXSpcXSkoPzpccypcL1xzKihbXlwvXHNdKykpJC8pLHQ7eWllbGRbcix2b2lkIDBdLGUmJihyPWVbMV0sdD1lWzJdLHlpZWxkW3IsdF0pfWZ1bmN0aW9uIEsyKHIsZSx0KXtsZXQgaT1BcnJheS5mcm9tKFkyKGUpKS5tYXAoKFtuLHNdKT0+T2JqZWN0LmFzc2lnbihVbChyLG4sdCx7b3BhY2l0eVZhbHVlOnN9KSx7cmVzb2x2ZWRQYXRoOm4sYWxwaGE6c30pKTtyZXR1cm4gaS5maW5kKG49Pm4uaXNWYWxpZCk/P2lbMF19ZnVuY3Rpb24gY3kocil7bGV0IGU9ci50YWlsd2luZENvbmZpZyx0PXt0aGVtZTooaSxuLC4uLnMpPT57bGV0e2lzVmFsaWQ6YSx2YWx1ZTpvLGVycm9yOmwsYWxwaGE6Y309SzIoZSxuLHMubGVuZ3RoP3M6dm9pZCAwKTtpZighYSl7bGV0IHA9aS5wYXJlbnQsaD1wPy5yYXdzLnRhaWx3aW5kPy5jYW5kaWRhdGU7aWYocCYmaCE9PXZvaWQgMCl7ci5tYXJrSW52YWxpZFV0aWxpdHlOb2RlKHApLHAucmVtb3ZlKCksRy53YXJuKCJpbnZhbGlkLXRoZW1lLWtleS1pbi1jbGFzcyIsW2BUaGUgdXRpbGl0eSBcYCR7aH1cYCBjb250YWlucyBhbiBpbnZhbGlkIHRoZW1lIHZhbHVlIGFuZCB3YXMgbm90IGdlbmVyYXRlZC5gXSk7cmV0dXJufXRocm93IGkuZXJyb3IobCl9bGV0IGY9WHQobyksZD1mIT09dm9pZCAwJiZ0eXBlb2YgZj09ImZ1bmN0aW9uIjtyZXR1cm4oYyE9PXZvaWQgMHx8ZCkmJihjPT09dm9pZCAwJiYoYz0xKSxvPUplKGYsYyxmKSksb30sc2NyZWVuOihpLG4pPT57bj1uLnJlcGxhY2UoL15bJyJdKy9nLCIiKS5yZXBsYWNlKC9bJyJdKyQvZywiIik7bGV0IGE9UnQoZS50aGVtZS5zY3JlZW5zKS5maW5kKCh7bmFtZTpvfSk9Pm89PT1uKTtpZighYSl0aHJvdyBpLmVycm9yKGBUaGUgJyR7bn0nIHNjcmVlbiBkb2VzIG5vdCBleGlzdCBpbiB5b3VyIHRoZW1lLmApO3JldHVybiBUdChhKX19O3JldHVybiBpPT57aS53YWxrKG49PntsZXQgcz1RMltuLnR5cGVdO3MhPT12b2lkIDAmJihuW3NdPUcyKG4sbltzXSx0KSl9KX19dmFyIE1pLG95LGpsLFEyLHB5PVAoKCk9Pnt1KCk7TWk9cGUoUmEoKSksb3k9cGUoV2coKSk7Q2koKTtqbD1wZShheSgpKTtabigpO1luKCk7WWkoKTtMcigpO0ZyKCk7QmUoKTtRMj17YXRydWxlOiJwYXJhbXMiLGRlY2w6InZhbHVlIn19KTtmdW5jdGlvbiBkeSh7dGFpbHdpbmRDb25maWc6e3RoZW1lOnJ9fSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2Uud2Fsa0F0UnVsZXMoInNjcmVlbiIsdD0+e2xldCBpPXQucGFyYW1zLHM9UnQoci5zY3JlZW5zKS5maW5kKCh7bmFtZTphfSk9PmE9PT1pKTtpZighcyl0aHJvdyB0LmVycm9yKGBObyBcYCR7aX1cYCBzY3JlZW4gZm91bmQuYCk7dC5uYW1lPSJtZWRpYSIsdC5wYXJhbXM9VHQocyl9KX19dmFyIGh5PVAoKCk9Pnt1KCk7Wm4oKTtZbigpfSk7ZnVuY3Rpb24gWDIocil7bGV0IGU9ci5maWx0ZXIobz0+by50eXBlIT09InBzZXVkbyJ8fG8ubm9kZXMubGVuZ3RoPjA/ITA6by52YWx1ZS5zdGFydHNXaXRoKCI6OiIpfHxbIjpiZWZvcmUiLCI6YWZ0ZXIiLCI6Zmlyc3QtbGluZSIsIjpmaXJzdC1sZXR0ZXIiXS5pbmNsdWRlcyhvLnZhbHVlKSkucmV2ZXJzZSgpLHQ9bmV3IFNldChbInRhZyIsImNsYXNzIiwiaWQiLCJhdHRyaWJ1dGUiXSksaT1lLmZpbmRJbmRleChvPT50LmhhcyhvLnR5cGUpKTtpZihpPT09LTEpcmV0dXJuIGUucmV2ZXJzZSgpLmpvaW4oIiIpLnRyaW0oKTtsZXQgbj1lW2ldLHM9bXlbbi50eXBlXT9teVtuLnR5cGVdKG4pOm47ZT1lLnNsaWNlKDAsaSk7bGV0IGE9ZS5maW5kSW5kZXgobz0+by50eXBlPT09ImNvbWJpbmF0b3IiJiZvLnZhbHVlPT09Ij4iKTtyZXR1cm4gYSE9PS0xJiYoZS5zcGxpY2UoMCxhKSxlLnVuc2hpZnQoRXMuZGVmYXVsdC51bml2ZXJzYWwoKSkpLFtzLC4uLmUucmV2ZXJzZSgpXS5qb2luKCIiKS50cmltKCl9ZnVuY3Rpb24gSjIocil7cmV0dXJuIFZsLmhhcyhyKXx8Vmwuc2V0KHIsWjIudHJhbnNmb3JtU3luYyhyKSksVmwuZ2V0KHIpfWZ1bmN0aW9uIEhsKHt0YWlsd2luZENvbmZpZzpyfSl7cmV0dXJuIGU9PntsZXQgdD1uZXcgTWFwLGk9bmV3IFNldDtpZihlLndhbGtBdFJ1bGVzKCJkZWZhdWx0cyIsbj0+e2lmKG4ubm9kZXMmJm4ubm9kZXMubGVuZ3RoPjApe2kuYWRkKG4pO3JldHVybn1sZXQgcz1uLnBhcmFtczt0LmhhcyhzKXx8dC5zZXQocyxuZXcgU2V0KSx0LmdldChzKS5hZGQobi5wYXJlbnQpLG4ucmVtb3ZlKCl9KSx3ZShyLCJvcHRpbWl6ZVVuaXZlcnNhbERlZmF1bHRzIikpZm9yKGxldCBuIG9mIGkpe2xldCBzPW5ldyBNYXAsYT10LmdldChuLnBhcmFtcyk/P1tdO2ZvcihsZXQgbyBvZiBhKWZvcihsZXQgbCBvZiBKMihvLnNlbGVjdG9yKSl7bGV0IGM9bC5pbmNsdWRlcygiOi0iKXx8bC5pbmNsdWRlcygiOjotIil8fGwuaW5jbHVkZXMoIjpoYXMiKT9sOiJfX0RFRkFVTFRfXyIsZj1zLmdldChjKT8/bmV3IFNldDtzLnNldChjLGYpLGYuYWRkKGwpfWlmKHMuc2l6ZT09PTApe24ucmVtb3ZlKCk7Y29udGludWV9Zm9yKGxldFssb11vZiBzKXtsZXQgbD1lZS5ydWxlKHtzb3VyY2U6bi5zb3VyY2V9KTtsLnNlbGVjdG9ycz1bLi4ub10sbC5hcHBlbmQobi5ub2Rlcy5tYXAoYz0+Yy5jbG9uZSgpKSksbi5iZWZvcmUobCl9bi5yZW1vdmUoKX1lbHNlIGlmKGkuc2l6ZSl7bGV0IG49ZWUucnVsZSh7c2VsZWN0b3JzOlsiKiIsIjo6YmVmb3JlIiwiOjphZnRlciJdfSk7Zm9yKGxldCBhIG9mIGkpbi5hcHBlbmQoYS5ub2Rlcyksbi5wYXJlbnR8fGEuYmVmb3JlKG4pLG4uc291cmNlfHwobi5zb3VyY2U9YS5zb3VyY2UpLGEucmVtb3ZlKCk7bGV0IHM9bi5jbG9uZSh7c2VsZWN0b3JzOlsiOjpiYWNrZHJvcCJdfSk7bi5hZnRlcihzKX19fXZhciBFcyxteSxaMixWbCxneT1QKCgpPT57dSgpO090KCk7RXM9cGUoaXQoKSk7Y3QoKTtteT17aWQocil7cmV0dXJuIEVzLmRlZmF1bHQuYXR0cmlidXRlKHthdHRyaWJ1dGU6ImlkIixvcGVyYXRvcjoiPSIsdmFsdWU6ci52YWx1ZSxxdW90ZU1hcms6JyInfSl9fTtaMj0oMCxFcy5kZWZhdWx0KShyPT5yLm1hcChlPT57bGV0IHQ9ZS5zcGxpdChpPT5pLnR5cGU9PT0iY29tYmluYXRvciImJmkudmFsdWU9PT0iICIpLnBvcCgpO3JldHVybiBYMih0KX0pKSxWbD1uZXcgTWFwfSk7ZnVuY3Rpb24gV2woKXtmdW5jdGlvbiByKGUpe2xldCB0PW51bGw7ZS5lYWNoKGk9PntpZighZU8uaGFzKGkudHlwZSkpe3Q9bnVsbDtyZXR1cm59aWYodD09PW51bGwpe3Q9aTtyZXR1cm59bGV0IG49eXlbaS50eXBlXTtpLnR5cGU9PT0iYXRydWxlIiYmaS5uYW1lPT09ImZvbnQtZmFjZSI/dD1pOm4uZXZlcnkocz0+KGlbc10/PyIiKS5yZXBsYWNlKC9ccysvZywiICIpPT09KHRbc10/PyIiKS5yZXBsYWNlKC9ccysvZywiICIpKT8oaS5ub2RlcyYmdC5hcHBlbmQoaS5ub2RlcyksaS5yZW1vdmUoKSk6dD1pfSksZS5lYWNoKGk9PntpLnR5cGU9PT0iYXRydWxlIiYmcihpKX0pfXJldHVybiBlPT57cihlKX19dmFyIHl5LGVPLGJ5PVAoKCk9Pnt1KCk7eXk9e2F0cnVsZTpbIm5hbWUiLCJwYXJhbXMiXSxydWxlOlsic2VsZWN0b3IiXX0sZU89bmV3IFNldChPYmplY3Qua2V5cyh5eSkpfSk7ZnVuY3Rpb24gR2woKXtyZXR1cm4gcj0+e3Iud2Fsa1J1bGVzKGU9PntsZXQgdD1uZXcgTWFwLGk9bmV3IFNldChbXSksbj1uZXcgTWFwO2Uud2Fsa0RlY2xzKHM9PntpZihzLnBhcmVudD09PWUpe2lmKHQuaGFzKHMucHJvcCkpe2lmKHQuZ2V0KHMucHJvcCkudmFsdWU9PT1zLnZhbHVlKXtpLmFkZCh0LmdldChzLnByb3ApKSx0LnNldChzLnByb3Ascyk7cmV0dXJufW4uaGFzKHMucHJvcCl8fG4uc2V0KHMucHJvcCxuZXcgU2V0KSxuLmdldChzLnByb3ApLmFkZCh0LmdldChzLnByb3ApKSxuLmdldChzLnByb3ApLmFkZChzKX10LnNldChzLnByb3Ascyl9fSk7Zm9yKGxldCBzIG9mIGkpcy5yZW1vdmUoKTtmb3IobGV0IHMgb2Ygbi52YWx1ZXMoKSl7bGV0IGE9bmV3IE1hcDtmb3IobGV0IG8gb2Ygcyl7bGV0IGw9ck8oby52YWx1ZSk7bCE9PW51bGwmJihhLmhhcyhsKXx8YS5zZXQobCxuZXcgU2V0KSxhLmdldChsKS5hZGQobykpfWZvcihsZXQgbyBvZiBhLnZhbHVlcygpKXtsZXQgbD1BcnJheS5mcm9tKG8pLnNsaWNlKDAsLTEpO2ZvcihsZXQgYyBvZiBsKWMucmVtb3ZlKCl9fX0pfX1mdW5jdGlvbiByTyhyKXtsZXQgZT0vXi0/XGQqLj9cZCsoW1x3JV0rKT8kL2cuZXhlYyhyKTtyZXR1cm4gZT9lWzFdPz90TzpudWxsfXZhciB0Tyx3eT1QKCgpPT57dSgpO3RPPVN5bWJvbCgidW5pdGxlc3MtbnVtYmVyIil9KTtmdW5jdGlvbiBpTyhyKXtpZighci53YWxrQXRSdWxlcylyZXR1cm47bGV0IGU9bmV3IFNldDtpZihyLndhbGtBdFJ1bGVzKCJhcHBseSIsdD0+e2UuYWRkKHQucGFyZW50KX0pLGUuc2l6ZSE9PTApZm9yKGxldCB0IG9mIGUpe2xldCBpPVtdLG49W107Zm9yKGxldCBzIG9mIHQubm9kZXMpcy50eXBlPT09ImF0cnVsZSImJnMubmFtZT09PSJhcHBseSI/KG4ubGVuZ3RoPjAmJihpLnB1c2gobiksbj1bXSksaS5wdXNoKFtzXSkpOm4ucHVzaChzKTtpZihuLmxlbmd0aD4wJiZpLnB1c2gobiksaS5sZW5ndGghPT0xKXtmb3IobGV0IHMgb2ZbLi4uaV0ucmV2ZXJzZSgpKXtsZXQgYT10LmNsb25lKHtub2RlczpbXX0pO2EuYXBwZW5kKHMpLHQuYWZ0ZXIoYSl9dC5yZW1vdmUoKX19fWZ1bmN0aW9uIE9zKCl7cmV0dXJuIHI9PntpTyhyKX19dmFyIHZ5PVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBUcyhyKXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24oZSx0KXtsZXR7dGFpbHdpbmREaXJlY3RpdmVzOmksYXBwbHlEaXJlY3RpdmVzOm59PU9sKGUpO09zKCkoZSx0KTtsZXQgcz1yKHt0YWlsd2luZERpcmVjdGl2ZXM6aSxhcHBseURpcmVjdGl2ZXM6bixyZWdpc3RlckRlcGVuZGVuY3koYSl7dC5tZXNzYWdlcy5wdXNoKHtwbHVnaW46InRhaWx3aW5kY3NzIixwYXJlbnQ6dC5vcHRzLmZyb20sLi4uYX0pfSxjcmVhdGVDb250ZXh0KGEsbyl7cmV0dXJuIGlsKGEsbyxlKX19KShlLHQpO2lmKHMudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yPT09Ii0iKXRocm93IG5ldyBFcnJvcigiVGhlICctJyBjaGFyYWN0ZXIgY2Fubm90IGJlIHVzZWQgYXMgYSBjdXN0b20gc2VwYXJhdG9yIGluIEpJVCBtb2RlIGR1ZSB0byBwYXJzaW5nIGFtYmlndWl0eS4gUGxlYXNlIHVzZSBhbm90aGVyIGNoYXJhY3RlciBsaWtlICdfJyBpbnN0ZWFkLiIpO1JmKHMudGFpbHdpbmRDb25maWcpLGF3YWl0IFBsKHMpKGUsdCksT3MoKShlLHQpLERsKHMpKGUsdCksY3kocykoZSx0KSxkeShzKShlLHQpLEhsKHMpKGUsdCksV2wocykoZSx0KSxHbChzKShlLHQpfX12YXIgeHk9UCgoKT0+e3UoKTtPZygpO0JnKCk7SGcoKTtweSgpO2h5KCk7Z3koKTtieSgpO3d5KCk7dnkoKTtPaSgpO2N0KCl9KTtmdW5jdGlvbiBreShyLGUpe2xldCB0PW51bGwsaT1udWxsO3JldHVybiByLndhbGtBdFJ1bGVzKCJjb25maWciLG49PntpZihpPW4uc291cmNlPy5pbnB1dC5maWxlPz9lLm9wdHMuZnJvbT8/bnVsbCxpPT09bnVsbCl0aHJvdyBuLmVycm9yKCJUaGUgYEBjb25maWdgIGRpcmVjdGl2ZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IHNldHRpbmcgYGZyb21gIGluIHlvdXIgUG9zdENTUyBjb25maWcuIik7aWYodCl0aHJvdyBuLmVycm9yKCJPbmx5IG9uZSBgQGNvbmZpZ2AgZGlyZWN0aXZlIGlzIGFsbG93ZWQgcGVyIGZpbGUuIik7bGV0IHM9bi5wYXJhbXMubWF0Y2goLyhbJyJdKSguKj8pXDEvKTtpZighcyl0aHJvdyBuLmVycm9yKCJBIHBhdGggaXMgcmVxdWlyZWQgd2hlbiB1c2luZyB0aGUgYEBjb25maWdgIGRpcmVjdGl2ZS4iKTtsZXQgYT1zWzJdO2lmKG1lLmlzQWJzb2x1dGUoYSkpdGhyb3cgbi5lcnJvcigiVGhlIGBAY29uZmlnYCBkaXJlY3RpdmUgY2Fubm90IGJlIHVzZWQgd2l0aCBhbiBhYnNvbHV0ZSBwYXRoLiIpO2lmKHQ9bWUucmVzb2x2ZShtZS5kaXJuYW1lKGkpLGEpLCFiZS5leGlzdHNTeW5jKHQpKXRocm93IG4uZXJyb3IoYFRoZSBjb25maWcgZmlsZSBhdCAiJHthfSIgZG9lcyBub3QgZXhpc3QuIE1ha2Ugc3VyZSB0aGUgcGF0aCBpcyBjb3JyZWN0IGFuZCB0aGUgZmlsZSBleGlzdHMuYCk7bi5yZW1vdmUoKX0pLHR8fG51bGx9dmFyIFN5PVAoKCk9Pnt1KCk7ZnQoKTtldCgpfSk7dmFyIEF5PXgoKFdxLFFsKT0+e3UoKTtFZygpO3h5KCk7SXQoKTtTeSgpO1FsLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJue3Bvc3Rjc3NQbHVnaW46InRhaWx3aW5kY3NzIixwbHVnaW5zOltaZS5ERUJVRyYmZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUubG9nKGAKYCksY29uc29sZS50aW1lKCJKSVQgVE9UQUwiKSx0fSxhc3luYyBmdW5jdGlvbih0LGkpe2U9a3kodCxpKT8/ZTtsZXQgbj1FbChlKTtpZih0LnR5cGU9PT0iZG9jdW1lbnQiKXtsZXQgcz10Lm5vZGVzLmZpbHRlcihhPT5hLnR5cGU9PT0icm9vdCIpO2ZvcihsZXQgYSBvZiBzKWEudHlwZT09PSJyb290IiYmYXdhaXQgVHMobikoYSxpKTtyZXR1cm59YXdhaXQgVHMobikodCxpKX0sWmUuREVCVUcmJmZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLnRpbWVFbmQoIkpJVCBUT1RBTCIpLGNvbnNvbGUubG9nKGAKYCksdH1dLmZpbHRlcihCb29sZWFuKX19O1FsLmV4cG9ydHMucG9zdGNzcz0hMH0pO3ZhciBfeT14KChHcSxDeSk9Pnt1KCk7Q3kuZXhwb3J0cz1BeSgpfSk7dmFyIFlsPXgoKFFxLEV5KT0+e3UoKTtFeS5leHBvcnRzPSgpPT5bImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTE0IiwiY2hyb21lIDExMyIsImNocm9tZSAxMDkiLCJlZGdlIDExNCIsImZpcmVmb3ggMTE0IiwiaW9zX3NhZiAxNi41IiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi4xIiwib3BlcmEgOTkiLCJzYWZhcmkgMTYuNSIsInNhbXN1bmcgMjEiXX0pO3ZhciBScz17fTtHZShScyx7YWdlbnRzOigpPT5uTyxmZWF0dXJlOigpPT5zT30pO2Z1bmN0aW9uIHNPKCl7cmV0dXJue3N0YXR1czoiY3IiLHRpdGxlOiJDU1MgRmVhdHVyZSBRdWVyaWVzIixzdGF0czp7aWU6eyI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoibiIsIjEwIjoibiIsIjExIjoibiIsIjUuNSI6Im4ifSxlZGdlOnsiMTIiOiJ5IiwiMTMiOiJ5IiwiMTQiOiJ5IiwiMTUiOiJ5IiwiMTYiOiJ5IiwiMTciOiJ5IiwiMTgiOiJ5IiwiNzkiOiJ5IiwiODAiOiJ5IiwiODEiOiJ5IiwiODMiOiJ5IiwiODQiOiJ5IiwiODUiOiJ5IiwiODYiOiJ5IiwiODciOiJ5IiwiODgiOiJ5IiwiODkiOiJ5IiwiOTAiOiJ5IiwiOTEiOiJ5IiwiOTIiOiJ5IiwiOTMiOiJ5IiwiOTQiOiJ5IiwiOTUiOiJ5IiwiOTYiOiJ5IiwiOTciOiJ5IiwiOTgiOiJ5IiwiOTkiOiJ5IiwiMTAwIjoieSIsIjEwMSI6InkiLCIxMDIiOiJ5IiwiMTAzIjoieSIsIjEwNCI6InkiLCIxMDUiOiJ5IiwiMTA2IjoieSIsIjEwNyI6InkiLCIxMDgiOiJ5IiwiMTA5IjoieSIsIjExMCI6InkiLCIxMTEiOiJ5IiwiMTEyIjoieSIsIjExMyI6InkiLCIxMTQiOiJ5In0sZmlyZWZveDp7IjIiOiJuIiwiMyI6Im4iLCI0IjoibiIsIjUiOiJuIiwiNiI6Im4iLCI3IjoibiIsIjgiOiJuIiwiOSI6Im4iLCIxMCI6Im4iLCIxMSI6Im4iLCIxMiI6Im4iLCIxMyI6Im4iLCIxNCI6Im4iLCIxNSI6Im4iLCIxNiI6Im4iLCIxNyI6Im4iLCIxOCI6Im4iLCIxOSI6Im4iLCIyMCI6Im4iLCIyMSI6Im4iLCIyMiI6InkiLCIyMyI6InkiLCIyNCI6InkiLCIyNSI6InkiLCIyNiI6InkiLCIyNyI6InkiLCIyOCI6InkiLCIyOSI6InkiLCIzMCI6InkiLCIzMSI6InkiLCIzMiI6InkiLCIzMyI6InkiLCIzNCI6InkiLCIzNSI6InkiLCIzNiI6InkiLCIzNyI6InkiLCIzOCI6InkiLCIzOSI6InkiLCI0MCI6InkiLCI0MSI6InkiLCI0MiI6InkiLCI0MyI6InkiLCI0NCI6InkiLCI0NSI6InkiLCI0NiI6InkiLCI0NyI6InkiLCI0OCI6InkiLCI0OSI6InkiLCI1MCI6InkiLCI1MSI6InkiLCI1MiI6InkiLCI1MyI6InkiLCI1NCI6InkiLCI1NSI6InkiLCI1NiI6InkiLCI1NyI6InkiLCI1OCI6InkiLCI1OSI6InkiLCI2MCI6InkiLCI2MSI6InkiLCI2MiI6InkiLCI2MyI6InkiLCI2NCI6InkiLCI2NSI6InkiLCI2NiI6InkiLCI2NyI6InkiLCI2OCI6InkiLCI2OSI6InkiLCI3MCI6InkiLCI3MSI6InkiLCI3MiI6InkiLCI3MyI6InkiLCI3NCI6InkiLCI3NSI6InkiLCI3NiI6InkiLCI3NyI6InkiLCI3OCI6InkiLCI3OSI6InkiLCI4MCI6InkiLCI4MSI6InkiLCI4MiI6InkiLCI4MyI6InkiLCI4NCI6InkiLCI4NSI6InkiLCI4NiI6InkiLCI4NyI6InkiLCI4OCI6InkiLCI4OSI6InkiLCI5MCI6InkiLCI5MSI6InkiLCI5MiI6InkiLCI5MyI6InkiLCI5NCI6InkiLCI5NSI6InkiLCI5NiI6InkiLCI5NyI6InkiLCI5OCI6InkiLCI5OSI6InkiLCIxMDAiOiJ5IiwiMTAxIjoieSIsIjEwMiI6InkiLCIxMDMiOiJ5IiwiMTA0IjoieSIsIjEwNSI6InkiLCIxMDYiOiJ5IiwiMTA3IjoieSIsIjEwOCI6InkiLCIxMDkiOiJ5IiwiMTEwIjoieSIsIjExMSI6InkiLCIxMTIiOiJ5IiwiMTEzIjoieSIsIjExNCI6InkiLCIxMTUiOiJ5IiwiMTE2IjoieSIsIjExNyI6InkiLCIzLjUiOiJuIiwiMy42IjoibiJ9LGNocm9tZTp7IjQiOiJuIiwiNSI6Im4iLCI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoibiIsIjEwIjoibiIsIjExIjoibiIsIjEyIjoibiIsIjEzIjoibiIsIjE0IjoibiIsIjE1IjoibiIsIjE2IjoibiIsIjE3IjoibiIsIjE4IjoibiIsIjE5IjoibiIsIjIwIjoibiIsIjIxIjoibiIsIjIyIjoibiIsIjIzIjoibiIsIjI0IjoibiIsIjI1IjoibiIsIjI2IjoibiIsIjI3IjoibiIsIjI4IjoieSIsIjI5IjoieSIsIjMwIjoieSIsIjMxIjoieSIsIjMyIjoieSIsIjMzIjoieSIsIjM0IjoieSIsIjM1IjoieSIsIjM2IjoieSIsIjM3IjoieSIsIjM4IjoieSIsIjM5IjoieSIsIjQwIjoieSIsIjQxIjoieSIsIjQyIjoieSIsIjQzIjoieSIsIjQ0IjoieSIsIjQ1IjoieSIsIjQ2IjoieSIsIjQ3IjoieSIsIjQ4IjoieSIsIjQ5IjoieSIsIjUwIjoieSIsIjUxIjoieSIsIjUyIjoieSIsIjUzIjoieSIsIjU0IjoieSIsIjU1IjoieSIsIjU2IjoieSIsIjU3IjoieSIsIjU4IjoieSIsIjU5IjoieSIsIjYwIjoieSIsIjYxIjoieSIsIjYyIjoieSIsIjYzIjoieSIsIjY0IjoieSIsIjY1IjoieSIsIjY2IjoieSIsIjY3IjoieSIsIjY4IjoieSIsIjY5IjoieSIsIjcwIjoieSIsIjcxIjoieSIsIjcyIjoieSIsIjczIjoieSIsIjc0IjoieSIsIjc1IjoieSIsIjc2IjoieSIsIjc3IjoieSIsIjc4IjoieSIsIjc5IjoieSIsIjgwIjoieSIsIjgxIjoieSIsIjgzIjoieSIsIjg0IjoieSIsIjg1IjoieSIsIjg2IjoieSIsIjg3IjoieSIsIjg4IjoieSIsIjg5IjoieSIsIjkwIjoieSIsIjkxIjoieSIsIjkyIjoieSIsIjkzIjoieSIsIjk0IjoieSIsIjk1IjoieSIsIjk2IjoieSIsIjk3IjoieSIsIjk4IjoieSIsIjk5IjoieSIsIjEwMCI6InkiLCIxMDEiOiJ5IiwiMTAyIjoieSIsIjEwMyI6InkiLCIxMDQiOiJ5IiwiMTA1IjoieSIsIjEwNiI6InkiLCIxMDciOiJ5IiwiMTA4IjoieSIsIjEwOSI6InkiLCIxMTAiOiJ5IiwiMTExIjoieSIsIjExMiI6InkiLCIxMTMiOiJ5IiwiMTE0IjoieSIsIjExNSI6InkiLCIxMTYiOiJ5IiwiMTE3IjoieSJ9LHNhZmFyaTp7IjQiOiJuIiwiNSI6Im4iLCI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoieSIsIjEwIjoieSIsIjExIjoieSIsIjEyIjoieSIsIjEzIjoieSIsIjE0IjoieSIsIjE1IjoieSIsIjE3IjoieSIsIjkuMSI6InkiLCIxMC4xIjoieSIsIjExLjEiOiJ5IiwiMTIuMSI6InkiLCIxMy4xIjoieSIsIjE0LjEiOiJ5IiwiMTUuMSI6InkiLCIxNS4yLTE1LjMiOiJ5IiwiMTUuNCI6InkiLCIxNS41IjoieSIsIjE1LjYiOiJ5IiwiMTYuMCI6InkiLCIxNi4xIjoieSIsIjE2LjIiOiJ5IiwiMTYuMyI6InkiLCIxNi40IjoieSIsIjE2LjUiOiJ5IiwiMTYuNiI6InkiLFRQOiJ5IiwiMy4xIjoibiIsIjMuMiI6Im4iLCI1LjEiOiJuIiwiNi4xIjoibiIsIjcuMSI6Im4ifSxvcGVyYTp7IjkiOiJuIiwiMTEiOiJuIiwiMTIiOiJuIiwiMTUiOiJ5IiwiMTYiOiJ5IiwiMTciOiJ5IiwiMTgiOiJ5IiwiMTkiOiJ5IiwiMjAiOiJ5IiwiMjEiOiJ5IiwiMjIiOiJ5IiwiMjMiOiJ5IiwiMjQiOiJ5IiwiMjUiOiJ5IiwiMjYiOiJ5IiwiMjciOiJ5IiwiMjgiOiJ5IiwiMjkiOiJ5IiwiMzAiOiJ5IiwiMzEiOiJ5IiwiMzIiOiJ5IiwiMzMiOiJ5IiwiMzQiOiJ5IiwiMzUiOiJ5IiwiMzYiOiJ5IiwiMzciOiJ5IiwiMzgiOiJ5IiwiMzkiOiJ5IiwiNDAiOiJ5IiwiNDEiOiJ5IiwiNDIiOiJ5IiwiNDMiOiJ5IiwiNDQiOiJ5IiwiNDUiOiJ5IiwiNDYiOiJ5IiwiNDciOiJ5IiwiNDgiOiJ5IiwiNDkiOiJ5IiwiNTAiOiJ5IiwiNTEiOiJ5IiwiNTIiOiJ5IiwiNTMiOiJ5IiwiNTQiOiJ5IiwiNTUiOiJ5IiwiNTYiOiJ5IiwiNTciOiJ5IiwiNTgiOiJ5IiwiNjAiOiJ5IiwiNjIiOiJ5IiwiNjMiOiJ5IiwiNjQiOiJ5IiwiNjUiOiJ5IiwiNjYiOiJ5IiwiNjciOiJ5IiwiNjgiOiJ5IiwiNjkiOiJ5IiwiNzAiOiJ5IiwiNzEiOiJ5IiwiNzIiOiJ5IiwiNzMiOiJ5IiwiNzQiOiJ5IiwiNzUiOiJ5IiwiNzYiOiJ5IiwiNzciOiJ5IiwiNzgiOiJ5IiwiNzkiOiJ5IiwiODAiOiJ5IiwiODEiOiJ5IiwiODIiOiJ5IiwiODMiOiJ5IiwiODQiOiJ5IiwiODUiOiJ5IiwiODYiOiJ5IiwiODciOiJ5IiwiODgiOiJ5IiwiODkiOiJ5IiwiOTAiOiJ5IiwiOTEiOiJ5IiwiOTIiOiJ5IiwiOTMiOiJ5IiwiOTQiOiJ5IiwiOTUiOiJ5IiwiOTYiOiJ5IiwiOTciOiJ5IiwiOTgiOiJ5IiwiOTkiOiJ5IiwiMTAwIjoieSIsIjEyLjEiOiJ5IiwiOS41LTkuNiI6Im4iLCIxMC4wLTEwLjEiOiJuIiwiMTAuNSI6Im4iLCIxMC42IjoibiIsIjExLjEiOiJuIiwiMTEuNSI6Im4iLCIxMS42IjoibiJ9LGlvc19zYWY6eyI4IjoibiIsIjE3IjoieSIsIjkuMC05LjIiOiJ5IiwiOS4zIjoieSIsIjEwLjAtMTAuMiI6InkiLCIxMC4zIjoieSIsIjExLjAtMTEuMiI6InkiLCIxMS4zLTExLjQiOiJ5IiwiMTIuMC0xMi4xIjoieSIsIjEyLjItMTIuNSI6InkiLCIxMy4wLTEzLjEiOiJ5IiwiMTMuMiI6InkiLCIxMy4zIjoieSIsIjEzLjQtMTMuNyI6InkiLCIxNC4wLTE0LjQiOiJ5IiwiMTQuNS0xNC44IjoieSIsIjE1LjAtMTUuMSI6InkiLCIxNS4yLTE1LjMiOiJ5IiwiMTUuNCI6InkiLCIxNS41IjoieSIsIjE1LjYiOiJ5IiwiMTYuMCI6InkiLCIxNi4xIjoieSIsIjE2LjIiOiJ5IiwiMTYuMyI6InkiLCIxNi40IjoieSIsIjE2LjUiOiJ5IiwiMTYuNiI6InkiLCIzLjIiOiJuIiwiNC4wLTQuMSI6Im4iLCI0LjItNC4zIjoibiIsIjUuMC01LjEiOiJuIiwiNi4wLTYuMSI6Im4iLCI3LjAtNy4xIjoibiIsIjguMS04LjQiOiJuIn0sb3BfbWluaTp7YWxsOiJ5In0sYW5kcm9pZDp7IjMiOiJuIiwiNCI6Im4iLCIxMTQiOiJ5IiwiNC40IjoieSIsIjQuNC4zLTQuNC40IjoieSIsIjIuMSI6Im4iLCIyLjIiOiJuIiwiMi4zIjoibiIsIjQuMSI6Im4iLCI0LjItNC4zIjoibiJ9LGJiOnsiNyI6Im4iLCIxMCI6Im4ifSxvcF9tb2I6eyIxMCI6Im4iLCIxMSI6Im4iLCIxMiI6Im4iLCI3MyI6InkiLCIxMS4xIjoibiIsIjExLjUiOiJuIiwiMTIuMSI6Im4ifSxhbmRfY2hyOnsiMTE0IjoieSJ9LGFuZF9mZjp7IjExNSI6InkifSxpZV9tb2I6eyIxMCI6Im4iLCIxMSI6Im4ifSxhbmRfdWM6eyIxNS41IjoieSJ9LHNhbXN1bmc6eyI0IjoieSIsIjIwIjoieSIsIjIxIjoieSIsIjUuMC01LjQiOiJ5IiwiNi4yLTYuNCI6InkiLCI3LjItNy40IjoieSIsIjguMiI6InkiLCI5LjIiOiJ5IiwiMTAuMSI6InkiLCIxMS4xLTExLjIiOiJ5IiwiMTIuMCI6InkiLCIxMy4wIjoieSIsIjE0LjAiOiJ5IiwiMTUuMCI6InkiLCIxNi4wIjoieSIsIjE3LjAiOiJ5IiwiMTguMCI6InkiLCIxOS4wIjoieSJ9LGFuZF9xcTp7IjEzLjEiOiJ5In0sYmFpZHU6eyIxMy4xOCI6InkifSxrYWlvczp7IjIuNSI6InkiLCIzLjAtMy4xIjoieSJ9fX19dmFyIG5PLFBzPVAoKCk9Pnt1KCk7bk89e2llOntwcmVmaXg6Im1zIn0sZWRnZTp7cHJlZml4OiJ3ZWJraXQiLHByZWZpeF9leGNlcHRpb25zOnsiMTIiOiJtcyIsIjEzIjoibXMiLCIxNCI6Im1zIiwiMTUiOiJtcyIsIjE2IjoibXMiLCIxNyI6Im1zIiwiMTgiOiJtcyJ9fSxmaXJlZm94OntwcmVmaXg6Im1veiJ9LGNocm9tZTp7cHJlZml4OiJ3ZWJraXQifSxzYWZhcmk6e3ByZWZpeDoid2Via2l0In0sb3BlcmE6e3ByZWZpeDoid2Via2l0IixwcmVmaXhfZXhjZXB0aW9uczp7IjkiOiJvIiwiMTEiOiJvIiwiMTIiOiJvIiwiOS41LTkuNiI6Im8iLCIxMC4wLTEwLjEiOiJvIiwiMTAuNSI6Im8iLCIxMC42IjoibyIsIjExLjEiOiJvIiwiMTEuNSI6Im8iLCIxMS42IjoibyIsIjEyLjEiOiJvIn19LGlvc19zYWY6e3ByZWZpeDoid2Via2l0In0sb3BfbWluaTp7cHJlZml4OiJvIn0sYW5kcm9pZDp7cHJlZml4OiJ3ZWJraXQifSxiYjp7cHJlZml4OiJ3ZWJraXQifSxvcF9tb2I6e3ByZWZpeDoibyIscHJlZml4X2V4Y2VwdGlvbnM6eyI3MyI6IndlYmtpdCJ9fSxhbmRfY2hyOntwcmVmaXg6IndlYmtpdCJ9LGFuZF9mZjp7cHJlZml4OiJtb3oifSxpZV9tb2I6e3ByZWZpeDoibXMifSxhbmRfdWM6e3ByZWZpeDoid2Via2l0IixwcmVmaXhfZXhjZXB0aW9uczp7IjE1LjUiOiJ3ZWJraXQifX0sc2Ftc3VuZzp7cHJlZml4OiJ3ZWJraXQifSxhbmRfcXE6e3ByZWZpeDoid2Via2l0In0sYmFpZHU6e3ByZWZpeDoid2Via2l0In0sa2Fpb3M6e3ByZWZpeDoibW96In19fSk7dmFyIE95PXgoKCk9Pnt1KCl9KTt2YXIgX2U9eCgoWHEsTHQpPT57dSgpO3ZhcntsaXN0OktsfT0kZSgpO0x0LmV4cG9ydHMuZXJyb3I9ZnVuY3Rpb24ocil7bGV0IGU9bmV3IEVycm9yKHIpO3Rocm93IGUuYXV0b3ByZWZpeGVyPSEwLGV9O0x0LmV4cG9ydHMudW5pcT1mdW5jdGlvbihyKXtyZXR1cm5bLi4ubmV3IFNldChyKV19O0x0LmV4cG9ydHMucmVtb3ZlTm90ZT1mdW5jdGlvbihyKXtyZXR1cm4gci5pbmNsdWRlcygiICIpP3Iuc3BsaXQoIiAiKVswXTpyfTtMdC5leHBvcnRzLmVzY2FwZVJlZ2V4cD1mdW5jdGlvbihyKXtyZXR1cm4gci5yZXBsYWNlKC9bJCgpKistLj9bXFxcXV57fH1dL2csIlxcJCYiKX07THQuZXhwb3J0cy5yZWdleHA9ZnVuY3Rpb24ocixlPSEwKXtyZXR1cm4gZSYmKHI9dGhpcy5lc2NhcGVSZWdleHAocikpLG5ldyBSZWdFeHAoYChefFtcXHMsKF0pKCR7cn0oJHxbXFxzKCxdKSlgLCJnaSIpfTtMdC5leHBvcnRzLmVkaXRMaXN0PWZ1bmN0aW9uKHIsZSl7bGV0IHQ9S2wuY29tbWEociksaT1lKHQsW10pO2lmKHQ9PT1pKXJldHVybiByO2xldCBuPXIubWF0Y2goLyxccyovKTtyZXR1cm4gbj1uP25bMF06IiwgIixpLmpvaW4obil9O0x0LmV4cG9ydHMuc3BsaXRTZWxlY3Rvcj1mdW5jdGlvbihyKXtyZXR1cm4gS2wuY29tbWEocikubWFwKGU9PktsLnNwYWNlKGUpLm1hcCh0PT50LnNwbGl0KC8oPz1cLnwjKS9nKSkpfX0pO3ZhciBNdD14KChacSxQeSk9Pnt1KCk7dmFyIGFPPVlsKCksVHk9KFBzKCksUnMpLmFnZW50cyxvTz1fZSgpLFJ5PWNsYXNze3N0YXRpYyBwcmVmaXhlcygpe2lmKHRoaXMucHJlZml4ZXNDYWNoZSlyZXR1cm4gdGhpcy5wcmVmaXhlc0NhY2hlO3RoaXMucHJlZml4ZXNDYWNoZT1bXTtmb3IobGV0IGUgaW4gVHkpdGhpcy5wcmVmaXhlc0NhY2hlLnB1c2goYC0ke1R5W2VdLnByZWZpeH0tYCk7cmV0dXJuIHRoaXMucHJlZml4ZXNDYWNoZT1vTy51bmlxKHRoaXMucHJlZml4ZXNDYWNoZSkuc29ydCgoZSx0KT0+dC5sZW5ndGgtZS5sZW5ndGgpLHRoaXMucHJlZml4ZXNDYWNoZX1zdGF0aWMgd2l0aFByZWZpeChlKXtyZXR1cm4gdGhpcy5wcmVmaXhlc1JlZ2V4cHx8KHRoaXMucHJlZml4ZXNSZWdleHA9bmV3IFJlZ0V4cCh0aGlzLnByZWZpeGVzKCkuam9pbigifCIpKSksdGhpcy5wcmVmaXhlc1JlZ2V4cC50ZXN0KGUpfWNvbnN0cnVjdG9yKGUsdCxpLG4pe3RoaXMuZGF0YT1lLHRoaXMub3B0aW9ucz1pfHx7fSx0aGlzLmJyb3dzZXJzbGlzdE9wdHM9bnx8e30sdGhpcy5zZWxlY3RlZD10aGlzLnBhcnNlKHQpfXBhcnNlKGUpe2xldCB0PXt9O2ZvcihsZXQgaSBpbiB0aGlzLmJyb3dzZXJzbGlzdE9wdHMpdFtpXT10aGlzLmJyb3dzZXJzbGlzdE9wdHNbaV07cmV0dXJuIHQucGF0aD10aGlzLm9wdGlvbnMuZnJvbSxhTyhlLHQpfXByZWZpeChlKXtsZXRbdCxpXT1lLnNwbGl0KCIgIiksbj10aGlzLmRhdGFbdF0scz1uLnByZWZpeF9leGNlcHRpb25zJiZuLnByZWZpeF9leGNlcHRpb25zW2ldO3JldHVybiBzfHwocz1uLnByZWZpeCksYC0ke3N9LWB9aXNTZWxlY3RlZChlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhlKX19O1B5LmV4cG9ydHM9Unl9KTt2YXIgTmk9eCgoSnEsSXkpPT57dSgpO0l5LmV4cG9ydHM9e3ByZWZpeChyKXtsZXQgZT1yLm1hdGNoKC9eKC1cdystKS8pO3JldHVybiBlP2VbMF06IiJ9LHVucHJlZml4ZWQocil7cmV0dXJuIHIucmVwbGFjZSgvXi1cdystLywiIil9fX0pO3ZhciB3cj14KChlJCxxeSk9Pnt1KCk7dmFyIGxPPU10KCksRHk9TmkoKSx1Tz1fZSgpO2Z1bmN0aW9uIFhsKHIsZSl7bGV0IHQ9bmV3IHIuY29uc3RydWN0b3I7Zm9yKGxldCBpIG9mIE9iamVjdC5rZXlzKHJ8fHt9KSl7bGV0IG49cltpXTtpPT09InBhcmVudCImJnR5cGVvZiBuPT0ib2JqZWN0Ij9lJiYodFtpXT1lKTppPT09InNvdXJjZSJ8fGk9PT1udWxsP3RbaV09bjpBcnJheS5pc0FycmF5KG4pP3RbaV09bi5tYXAocz0+WGwocyx0KSk6aSE9PSJfYXV0b3ByZWZpeGVyUHJlZml4IiYmaSE9PSJfYXV0b3ByZWZpeGVyVmFsdWVzIiYmaSE9PSJwcm94eUNhY2hlIiYmKHR5cGVvZiBuPT0ib2JqZWN0IiYmbiE9PW51bGwmJihuPVhsKG4sdCkpLHRbaV09bil9cmV0dXJuIHR9dmFyIElzPWNsYXNze3N0YXRpYyBoYWNrKGUpe3JldHVybiB0aGlzLmhhY2tzfHwodGhpcy5oYWNrcz17fSksZS5uYW1lcy5tYXAodD0+KHRoaXMuaGFja3NbdF09ZSx0aGlzLmhhY2tzW3RdKSl9c3RhdGljIGxvYWQoZSx0LGkpe2xldCBuPXRoaXMuaGFja3MmJnRoaXMuaGFja3NbZV07cmV0dXJuIG4/bmV3IG4oZSx0LGkpOm5ldyB0aGlzKGUsdCxpKX1zdGF0aWMgY2xvbmUoZSx0KXtsZXQgaT1YbChlKTtmb3IobGV0IG4gaW4gdClpW25dPXRbbl07cmV0dXJuIGl9Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMucHJlZml4ZXM9dCx0aGlzLm5hbWU9ZSx0aGlzLmFsbD1pfXBhcmVudFByZWZpeChlKXtsZXQgdDtyZXR1cm4gdHlwZW9mIGUuX2F1dG9wcmVmaXhlclByZWZpeCE9InVuZGVmaW5lZCI/dD1lLl9hdXRvcHJlZml4ZXJQcmVmaXg6ZS50eXBlPT09ImRlY2wiJiZlLnByb3BbMF09PT0iLSI/dD1EeS5wcmVmaXgoZS5wcm9wKTplLnR5cGU9PT0icm9vdCI/dD0hMTplLnR5cGU9PT0icnVsZSImJmUuc2VsZWN0b3IuaW5jbHVkZXMoIjotIikmJi86KC1cdystKS8udGVzdChlLnNlbGVjdG9yKT90PWUuc2VsZWN0b3IubWF0Y2goLzooLVx3Ky0pLylbMV06ZS50eXBlPT09ImF0cnVsZSImJmUubmFtZVswXT09PSItIj90PUR5LnByZWZpeChlLm5hbWUpOnQ9dGhpcy5wYXJlbnRQcmVmaXgoZS5wYXJlbnQpLGxPLnByZWZpeGVzKCkuaW5jbHVkZXModCl8fCh0PSExKSxlLl9hdXRvcHJlZml4ZXJQcmVmaXg9dCxlLl9hdXRvcHJlZml4ZXJQcmVmaXh9cHJvY2VzcyhlLHQpe2lmKCF0aGlzLmNoZWNrKGUpKXJldHVybjtsZXQgaT10aGlzLnBhcmVudFByZWZpeChlKSxuPXRoaXMucHJlZml4ZXMuZmlsdGVyKGE9PiFpfHxpPT09dU8ucmVtb3ZlTm90ZShhKSkscz1bXTtmb3IobGV0IGEgb2Ygbil0aGlzLmFkZChlLGEscy5jb25jYXQoW2FdKSx0KSYmcy5wdXNoKGEpO3JldHVybiBzfWNsb25lKGUsdCl7cmV0dXJuIElzLmNsb25lKGUsdCl9fTtxeS5leHBvcnRzPUlzfSk7dmFyIGo9eCgodCQsTXkpPT57dSgpO3ZhciBmTz13cigpLGNPPU10KCksJHk9X2UoKSxMeT1jbGFzcyBleHRlbmRzIGZPe2NoZWNrKCl7cmV0dXJuITB9cHJlZml4ZWQoZSx0KXtyZXR1cm4gdCtlfW5vcm1hbGl6ZShlKXtyZXR1cm4gZX1vdGhlclByZWZpeGVzKGUsdCl7Zm9yKGxldCBpIG9mIGNPLnByZWZpeGVzKCkpaWYoaSE9PXQmJmUuaW5jbHVkZXMoaSkpcmV0dXJuITA7cmV0dXJuITF9c2V0KGUsdCl7cmV0dXJuIGUucHJvcD10aGlzLnByZWZpeGVkKGUucHJvcCx0KSxlfW5lZWRDYXNjYWRlKGUpe3JldHVybiBlLl9hdXRvcHJlZml4ZXJDYXNjYWRlfHwoZS5fYXV0b3ByZWZpeGVyQ2FzY2FkZT10aGlzLmFsbC5vcHRpb25zLmNhc2NhZGUhPT0hMSYmZS5yYXcoImJlZm9yZSIpLmluY2x1ZGVzKGAKYCkpLGUuX2F1dG9wcmVmaXhlckNhc2NhZGV9bWF4UHJlZml4ZWQoZSx0KXtpZih0Ll9hdXRvcHJlZml4ZXJNYXgpcmV0dXJuIHQuX2F1dG9wcmVmaXhlck1heDtsZXQgaT0wO2ZvcihsZXQgbiBvZiBlKW49JHkucmVtb3ZlTm90ZShuKSxuLmxlbmd0aD5pJiYoaT1uLmxlbmd0aCk7cmV0dXJuIHQuX2F1dG9wcmVmaXhlck1heD1pLHQuX2F1dG9wcmVmaXhlck1heH1jYWxjQmVmb3JlKGUsdCxpPSIiKXtsZXQgcz10aGlzLm1heFByZWZpeGVkKGUsdCktJHkucmVtb3ZlTm90ZShpKS5sZW5ndGgsYT10LnJhdygiYmVmb3JlIik7cmV0dXJuIHM+MCYmKGErPUFycmF5KHMpLmZpbGwoIiAiKS5qb2luKCIiKSksYX1yZXN0b3JlQmVmb3JlKGUpe2xldCB0PWUucmF3KCJiZWZvcmUiKS5zcGxpdChgCmApLGk9dFt0Lmxlbmd0aC0xXTt0aGlzLmFsbC5ncm91cChlKS51cChuPT57bGV0IHM9bi5yYXcoImJlZm9yZSIpLnNwbGl0KGAKYCksYT1zW3MubGVuZ3RoLTFdO2EubGVuZ3RoPGkubGVuZ3RoJiYoaT1hKX0pLHRbdC5sZW5ndGgtMV09aSxlLnJhd3MuYmVmb3JlPXQuam9pbihgCmApfWluc2VydChlLHQsaSl7bGV0IG49dGhpcy5zZXQodGhpcy5jbG9uZShlKSx0KTtpZighKCFufHxlLnBhcmVudC5zb21lKGE9PmEucHJvcD09PW4ucHJvcCYmYS52YWx1ZT09PW4udmFsdWUpKSlyZXR1cm4gdGhpcy5uZWVkQ2FzY2FkZShlKSYmKG4ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9aXNBbHJlYWR5KGUsdCl7bGV0IGk9dGhpcy5hbGwuZ3JvdXAoZSkudXAobj0+bi5wcm9wPT09dCk7cmV0dXJuIGl8fChpPXRoaXMuYWxsLmdyb3VwKGUpLmRvd24obj0+bi5wcm9wPT09dCkpLGl9YWRkKGUsdCxpLG4pe2xldCBzPXRoaXMucHJlZml4ZWQoZS5wcm9wLHQpO2lmKCEodGhpcy5pc0FscmVhZHkoZSxzKXx8dGhpcy5vdGhlclByZWZpeGVzKGUudmFsdWUsdCkpKXJldHVybiB0aGlzLmluc2VydChlLHQsaSxuKX1wcm9jZXNzKGUsdCl7aWYoIXRoaXMubmVlZENhc2NhZGUoZSkpe3N1cGVyLnByb2Nlc3MoZSx0KTtyZXR1cm59bGV0IGk9c3VwZXIucHJvY2VzcyhlLHQpOyFpfHwhaS5sZW5ndGh8fCh0aGlzLnJlc3RvcmVCZWZvcmUoZSksZS5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlKSl9b2xkKGUsdCl7cmV0dXJuW3RoaXMucHJlZml4ZWQoZSx0KV19fTtNeS5leHBvcnRzPUx5fSk7dmFyIEJ5PXgoKHIkLE55KT0+e3UoKTtOeS5leHBvcnRzPWZ1bmN0aW9uIHIoZSl7cmV0dXJue211bDp0PT5uZXcgcihlKnQpLGRpdjp0PT5uZXcgcihlL3QpLHNpbXBsaWZ5OigpPT5uZXcgcihlKSx0b1N0cmluZzooKT0+ZS50b1N0cmluZygpfX19KTt2YXIgenk9eCgoaSQsankpPT57dSgpO3ZhciBwTz1CeSgpLGRPPXdyKCksWmw9X2UoKSxoTz0vKG1pbnxtYXgpLXJlc29sdXRpb25ccyo6XHMqXGQqXC4/XGQrKGRwcHh8ZHBjbXxkcGl8eCkvZ2ksbU89LyhtaW58bWF4KS1yZXNvbHV0aW9uKFxzKjpccyopKFxkKlwuP1xkKykoZHBweHxkcGNtfGRwaXx4KS9pLEZ5PWNsYXNzIGV4dGVuZHMgZE97cHJlZml4TmFtZShlLHQpe3JldHVybiBlPT09Ii1tb3otIj90KyItLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW8iOmUrdCsiLWRldmljZS1waXhlbC1yYXRpbyJ9cHJlZml4UXVlcnkoZSx0LGksbixzKXtyZXR1cm4gbj1uZXcgcE8obikscz09PSJkcGkiP249bi5kaXYoOTYpOnM9PT0iZHBjbSImJihuPW4ubXVsKDIuNTQpLmRpdig5NikpLG49bi5zaW1wbGlmeSgpLGU9PT0iLW8tIiYmKG49bi5uKyIvIituLmQpLHRoaXMucHJlZml4TmFtZShlLHQpK2krbn1jbGVhbihlKXtpZighdGhpcy5iYWQpe3RoaXMuYmFkPVtdO2ZvcihsZXQgdCBvZiB0aGlzLnByZWZpeGVzKXRoaXMuYmFkLnB1c2godGhpcy5wcmVmaXhOYW1lKHQsIm1pbiIpKSx0aGlzLmJhZC5wdXNoKHRoaXMucHJlZml4TmFtZSh0LCJtYXgiKSl9ZS5wYXJhbXM9WmwuZWRpdExpc3QoZS5wYXJhbXMsdD0+dC5maWx0ZXIoaT0+dGhpcy5iYWQuZXZlcnkobj0+IWkuaW5jbHVkZXMobikpKSl9cHJvY2VzcyhlKXtsZXQgdD10aGlzLnBhcmVudFByZWZpeChlKSxpPXQ/W3RdOnRoaXMucHJlZml4ZXM7ZS5wYXJhbXM9WmwuZWRpdExpc3QoZS5wYXJhbXMsKG4scyk9Pntmb3IobGV0IGEgb2Ygbil7aWYoIWEuaW5jbHVkZXMoIm1pbi1yZXNvbHV0aW9uIikmJiFhLmluY2x1ZGVzKCJtYXgtcmVzb2x1dGlvbiIpKXtzLnB1c2goYSk7Y29udGludWV9Zm9yKGxldCBvIG9mIGkpe2xldCBsPWEucmVwbGFjZShoTyxjPT57bGV0IGY9Yy5tYXRjaChtTyk7cmV0dXJuIHRoaXMucHJlZml4UXVlcnkobyxmWzFdLGZbMl0sZlszXSxmWzRdKX0pO3MucHVzaChsKX1zLnB1c2goYSl9cmV0dXJuIFpsLnVuaXEocyl9KX19O2p5LmV4cG9ydHM9Rnl9KTt2YXIgVnk9eCgobiQsVXkpPT57dSgpO3ZhciBKbD0iKCIuY2hhckNvZGVBdCgwKSxldT0iKSIuY2hhckNvZGVBdCgwKSxEcz0iJyIuY2hhckNvZGVBdCgwKSx0dT0nIicuY2hhckNvZGVBdCgwKSxydT0iXFwiLmNoYXJDb2RlQXQoMCksdnI9Ii8iLmNoYXJDb2RlQXQoMCksaXU9IiwiLmNoYXJDb2RlQXQoMCksbnU9IjoiLmNoYXJDb2RlQXQoMCkscXM9IioiLmNoYXJDb2RlQXQoMCksZ089InUiLmNoYXJDb2RlQXQoMCkseU89IlUiLmNoYXJDb2RlQXQoMCksYk89IisiLmNoYXJDb2RlQXQoMCksd089L15bYS1mMC05Py1dKyQvaTtVeS5leHBvcnRzPWZ1bmN0aW9uKHIpe2Zvcih2YXIgZT1bXSx0PXIsaSxuLHMsYSxvLGwsYyxmLGQ9MCxwPXQuY2hhckNvZGVBdChkKSxoPXQubGVuZ3RoLGI9W3tub2RlczplfV0sdj0wLHksdz0iIixrPSIiLFM9IiI7ZDxoOylpZihwPD0zMil7aT1kO2RvIGkrPTEscD10LmNoYXJDb2RlQXQoaSk7d2hpbGUocDw9MzIpO2E9dC5zbGljZShkLGkpLHM9ZVtlLmxlbmd0aC0xXSxwPT09ZXUmJnY/Uz1hOnMmJnMudHlwZT09PSJkaXYiPyhzLmFmdGVyPWEscy5zb3VyY2VFbmRJbmRleCs9YS5sZW5ndGgpOnA9PT1pdXx8cD09PW51fHxwPT09dnImJnQuY2hhckNvZGVBdChpKzEpIT09cXMmJigheXx8eSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZSE9PSJjYWxjIik/az1hOmUucHVzaCh7dHlwZToic3BhY2UiLHNvdXJjZUluZGV4OmQsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTphfSksZD1pfWVsc2UgaWYocD09PURzfHxwPT09dHUpe2k9ZCxuPXA9PT1Ecz8iJyI6JyInLGE9e3R5cGU6InN0cmluZyIsc291cmNlSW5kZXg6ZCxxdW90ZTpufTtkbyBpZihvPSExLGk9dC5pbmRleE9mKG4saSsxKSx+aSlmb3IobD1pO3QuY2hhckNvZGVBdChsLTEpPT09cnU7KWwtPTEsbz0hbztlbHNlIHQrPW4saT10Lmxlbmd0aC0xLGEudW5jbG9zZWQ9ITA7d2hpbGUobyk7YS52YWx1ZT10LnNsaWNlKGQrMSxpKSxhLnNvdXJjZUVuZEluZGV4PWEudW5jbG9zZWQ/aTppKzEsZS5wdXNoKGEpLGQ9aSsxLHA9dC5jaGFyQ29kZUF0KGQpfWVsc2UgaWYocD09PXZyJiZ0LmNoYXJDb2RlQXQoZCsxKT09PXFzKWk9dC5pbmRleE9mKCIqLyIsZCksYT17dHlwZToiY29tbWVudCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppKzJ9LGk9PT0tMSYmKGEudW5jbG9zZWQ9ITAsaT10Lmxlbmd0aCxhLnNvdXJjZUVuZEluZGV4PWkpLGEudmFsdWU9dC5zbGljZShkKzIsaSksZS5wdXNoKGEpLGQ9aSsyLHA9dC5jaGFyQ29kZUF0KGQpO2Vsc2UgaWYoKHA9PT12cnx8cD09PXFzKSYmeSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJjYWxjIilhPXRbZF0sZS5wdXNoKHt0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLWsubGVuZ3RoLHNvdXJjZUVuZEluZGV4OmQrYS5sZW5ndGgsdmFsdWU6YX0pLGQrPTEscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZihwPT09dnJ8fHA9PT1pdXx8cD09PW51KWE9dFtkXSxlLnB1c2goe3R5cGU6ImRpdiIsc291cmNlSW5kZXg6ZC1rLmxlbmd0aCxzb3VyY2VFbmRJbmRleDpkK2EubGVuZ3RoLHZhbHVlOmEsYmVmb3JlOmssYWZ0ZXI6IiJ9KSxrPSIiLGQrPTEscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZihKbD09PXApe2k9ZDtkbyBpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKHA8PTMyKTtpZihmPWQsYT17dHlwZToiZnVuY3Rpb24iLHNvdXJjZUluZGV4OmQtdy5sZW5ndGgsdmFsdWU6dyxiZWZvcmU6dC5zbGljZShmKzEsaSl9LGQ9aSx3PT09InVybCImJnAhPT1EcyYmcCE9PXR1KXtpLT0xO2RvIGlmKG89ITEsaT10LmluZGV4T2YoIikiLGkrMSksfmkpZm9yKGw9aTt0LmNoYXJDb2RlQXQobC0xKT09PXJ1OylsLT0xLG89IW87ZWxzZSB0Kz0iKSIsaT10Lmxlbmd0aC0xLGEudW5jbG9zZWQ9ITA7d2hpbGUobyk7Yz1pO2RvIGMtPTEscD10LmNoYXJDb2RlQXQoYyk7d2hpbGUocDw9MzIpO2Y8Yz8oZCE9PWMrMT9hLm5vZGVzPVt7dHlwZToid29yZCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDpjKzEsdmFsdWU6dC5zbGljZShkLGMrMSl9XTphLm5vZGVzPVtdLGEudW5jbG9zZWQmJmMrMSE9PWk/KGEuYWZ0ZXI9IiIsYS5ub2Rlcy5wdXNoKHt0eXBlOiJzcGFjZSIsc291cmNlSW5kZXg6YysxLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6dC5zbGljZShjKzEsaSl9KSk6KGEuYWZ0ZXI9dC5zbGljZShjKzEsaSksYS5zb3VyY2VFbmRJbmRleD1pKSk6KGEuYWZ0ZXI9IiIsYS5ub2Rlcz1bXSksZD1pKzEsYS5zb3VyY2VFbmRJbmRleD1hLnVuY2xvc2VkP2k6ZCxwPXQuY2hhckNvZGVBdChkKSxlLnB1c2goYSl9ZWxzZSB2Kz0xLGEuYWZ0ZXI9IiIsYS5zb3VyY2VFbmRJbmRleD1kKzEsZS5wdXNoKGEpLGIucHVzaChhKSxlPWEubm9kZXM9W10seT1hO3c9IiJ9ZWxzZSBpZihldT09PXAmJnYpZCs9MSxwPXQuY2hhckNvZGVBdChkKSx5LmFmdGVyPVMseS5zb3VyY2VFbmRJbmRleCs9Uy5sZW5ndGgsUz0iIix2LT0xLGJbYi5sZW5ndGgtMV0uc291cmNlRW5kSW5kZXg9ZCxiLnBvcCgpLHk9Ylt2XSxlPXkubm9kZXM7ZWxzZXtpPWQ7ZG8gcD09PXJ1JiYoaSs9MSksaSs9MSxwPXQuY2hhckNvZGVBdChpKTt3aGlsZShpPGgmJiEocDw9MzJ8fHA9PT1Ec3x8cD09PXR1fHxwPT09aXV8fHA9PT1udXx8cD09PXZyfHxwPT09Smx8fHA9PT1xcyYmeSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJjYWxjInx8cD09PXZyJiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiZ5LnZhbHVlPT09ImNhbGMifHxwPT09ZXUmJnYpKTthPXQuc2xpY2UoZCxpKSxKbD09PXA/dz1hOihnTz09PWEuY2hhckNvZGVBdCgwKXx8eU89PT1hLmNoYXJDb2RlQXQoMCkpJiZiTz09PWEuY2hhckNvZGVBdCgxKSYmd08udGVzdChhLnNsaWNlKDIpKT9lLnB1c2goe3R5cGU6InVuaWNvZGUtcmFuZ2UiLHNvdXJjZUluZGV4OmQsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTphfSk6ZS5wdXNoKHt0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6YX0pLGQ9aX1mb3IoZD1iLmxlbmd0aC0xO2Q7ZC09MSliW2RdLnVuY2xvc2VkPSEwLGJbZF0uc291cmNlRW5kSW5kZXg9dC5sZW5ndGg7cmV0dXJuIGJbMF0ubm9kZXN9fSk7dmFyIFd5PXgoKHMkLEh5KT0+e3UoKTtIeS5leHBvcnRzPWZ1bmN0aW9uIHIoZSx0LGkpe3ZhciBuLHMsYSxvO2ZvcihuPTAscz1lLmxlbmd0aDtuPHM7bis9MSlhPWVbbl0saXx8KG89dChhLG4sZSkpLG8hPT0hMSYmYS50eXBlPT09ImZ1bmN0aW9uIiYmQXJyYXkuaXNBcnJheShhLm5vZGVzKSYmcihhLm5vZGVzLHQsaSksaSYmdChhLG4sZSl9fSk7dmFyIEt5PXgoKGEkLFl5KT0+e3UoKTtmdW5jdGlvbiBHeShyLGUpe3ZhciB0PXIudHlwZSxpPXIudmFsdWUsbixzO3JldHVybiBlJiYocz1lKHIpKSE9PXZvaWQgMD9zOnQ9PT0id29yZCJ8fHQ9PT0ic3BhY2UiP2k6dD09PSJzdHJpbmciPyhuPXIucXVvdGV8fCIiLG4raSsoci51bmNsb3NlZD8iIjpuKSk6dD09PSJjb21tZW50Ij8iLyoiK2krKHIudW5jbG9zZWQ/IiI6IiovIik6dD09PSJkaXYiPyhyLmJlZm9yZXx8IiIpK2krKHIuYWZ0ZXJ8fCIiKTpBcnJheS5pc0FycmF5KHIubm9kZXMpPyhuPVF5KHIubm9kZXMsZSksdCE9PSJmdW5jdGlvbiI/bjppKyIoIisoci5iZWZvcmV8fCIiKStuKyhyLmFmdGVyfHwiIikrKHIudW5jbG9zZWQ/IiI6IikiKSk6aX1mdW5jdGlvbiBReShyLGUpe3ZhciB0LGk7aWYoQXJyYXkuaXNBcnJheShyKSl7Zm9yKHQ9IiIsaT1yLmxlbmd0aC0xO35pO2ktPTEpdD1HeShyW2ldLGUpK3Q7cmV0dXJuIHR9cmV0dXJuIEd5KHIsZSl9WXkuZXhwb3J0cz1ReX0pO3ZhciBaeT14KChvJCxYeSk9Pnt1KCk7dmFyICRzPSItIi5jaGFyQ29kZUF0KDApLExzPSIrIi5jaGFyQ29kZUF0KDApLHN1PSIuIi5jaGFyQ29kZUF0KDApLHZPPSJlIi5jaGFyQ29kZUF0KDApLHhPPSJFIi5jaGFyQ29kZUF0KDApO2Z1bmN0aW9uIGtPKHIpe3ZhciBlPXIuY2hhckNvZGVBdCgwKSx0O2lmKGU9PT1Mc3x8ZT09PSRzKXtpZih0PXIuY2hhckNvZGVBdCgxKSx0Pj00OCYmdDw9NTcpcmV0dXJuITA7dmFyIGk9ci5jaGFyQ29kZUF0KDIpO3JldHVybiB0PT09c3UmJmk+PTQ4JiZpPD01N31yZXR1cm4gZT09PXN1Pyh0PXIuY2hhckNvZGVBdCgxKSx0Pj00OCYmdDw9NTcpOmU+PTQ4JiZlPD01N31YeS5leHBvcnRzPWZ1bmN0aW9uKHIpe3ZhciBlPTAsdD1yLmxlbmd0aCxpLG4scztpZih0PT09MHx8IWtPKHIpKXJldHVybiExO2ZvcihpPXIuY2hhckNvZGVBdChlKSwoaT09PUxzfHxpPT09JHMpJiZlKys7ZTx0JiYoaT1yLmNoYXJDb2RlQXQoZSksIShpPDQ4fHxpPjU3KSk7KWUrPTE7aWYoaT1yLmNoYXJDb2RlQXQoZSksbj1yLmNoYXJDb2RlQXQoZSsxKSxpPT09c3UmJm4+PTQ4JiZuPD01Nylmb3IoZSs9MjtlPHQmJihpPXIuY2hhckNvZGVBdChlKSwhKGk8NDh8fGk+NTcpKTspZSs9MTtpZihpPXIuY2hhckNvZGVBdChlKSxuPXIuY2hhckNvZGVBdChlKzEpLHM9ci5jaGFyQ29kZUF0KGUrMiksKGk9PT12T3x8aT09PXhPKSYmKG4+PTQ4JiZuPD01N3x8KG49PT1Mc3x8bj09PSRzKSYmcz49NDgmJnM8PTU3KSlmb3IoZSs9bj09PUxzfHxuPT09JHM/MzoyO2U8dCYmKGk9ci5jaGFyQ29kZUF0KGUpLCEoaTw0OHx8aT41NykpOyllKz0xO3JldHVybntudW1iZXI6ci5zbGljZSgwLGUpLHVuaXQ6ci5zbGljZShlKX19fSk7dmFyIE1zPXgoKGwkLHRiKT0+e3UoKTt2YXIgU089VnkoKSxKeT1XeSgpLGViPUt5KCk7ZnVuY3Rpb24gTnQocil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBOdD8odGhpcy5ub2Rlcz1TTyhyKSx0aGlzKTpuZXcgTnQocil9TnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5ub2Rlcyk/ZWIodGhpcy5ub2Rlcyk6IiJ9O050LnByb3RvdHlwZS53YWxrPWZ1bmN0aW9uKHIsZSl7cmV0dXJuIEp5KHRoaXMubm9kZXMscixlKSx0aGlzfTtOdC51bml0PVp5KCk7TnQud2Fsaz1KeTtOdC5zdHJpbmdpZnk9ZWI7dGIuZXhwb3J0cz1OdH0pO3ZhciBhYj14KCh1JCxzYik9Pnt1KCk7dmFye2xpc3Q6QU99PSRlKCkscmI9TXMoKSxDTz1NdCgpLGliPU5pKCksbmI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcm9wcz1bInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9uLXByb3BlcnR5Il0sdGhpcy5wcmVmaXhlcz1lfWFkZChlLHQpe2xldCBpLG4scz10aGlzLnByZWZpeGVzLmFkZFtlLnByb3BdLGE9dGhpcy5ydWxlVmVuZG9yUHJlZml4ZXMoZSksbz1hfHxzJiZzLnByZWZpeGVzfHxbXSxsPXRoaXMucGFyc2UoZS52YWx1ZSksYz1sLm1hcChoPT50aGlzLmZpbmRQcm9wKGgpKSxmPVtdO2lmKGMuc29tZShoPT5oWzBdPT09Ii0iKSlyZXR1cm47Zm9yKGxldCBoIG9mIGwpe2lmKG49dGhpcy5maW5kUHJvcChoKSxuWzBdPT09Ii0iKWNvbnRpbnVlO2xldCBiPXRoaXMucHJlZml4ZXMuYWRkW25dO2lmKCEoIWJ8fCFiLnByZWZpeGVzKSlmb3IoaSBvZiBiLnByZWZpeGVzKXtpZihhJiYhYS5zb21lKHk9PmkuaW5jbHVkZXMoeSkpKWNvbnRpbnVlO2xldCB2PXRoaXMucHJlZml4ZXMucHJlZml4ZWQobixpKTt2IT09Ii1tcy10cmFuc2Zvcm0iJiYhYy5pbmNsdWRlcyh2KSYmKHRoaXMuZGlzYWJsZWQobixpKXx8Zi5wdXNoKHRoaXMuY2xvbmUobix2LGgpKSl9fWw9bC5jb25jYXQoZik7bGV0IGQ9dGhpcy5zdHJpbmdpZnkobCkscD10aGlzLnN0cmluZ2lmeSh0aGlzLmNsZWFuRnJvbVVucHJlZml4ZWQobCwiLXdlYmtpdC0iKSk7aWYoby5pbmNsdWRlcygiLXdlYmtpdC0iKSYmdGhpcy5jbG9uZUJlZm9yZShlLGAtd2Via2l0LSR7ZS5wcm9wfWAscCksdGhpcy5jbG9uZUJlZm9yZShlLGUucHJvcCxwKSxvLmluY2x1ZGVzKCItby0iKSl7bGV0IGg9dGhpcy5zdHJpbmdpZnkodGhpcy5jbGVhbkZyb21VbnByZWZpeGVkKGwsIi1vLSIpKTt0aGlzLmNsb25lQmVmb3JlKGUsYC1vLSR7ZS5wcm9wfWAsaCl9Zm9yKGkgb2YgbylpZihpIT09Ii13ZWJraXQtIiYmaSE9PSItby0iKXtsZXQgaD10aGlzLnN0cmluZ2lmeSh0aGlzLmNsZWFuT3RoZXJQcmVmaXhlcyhsLGkpKTt0aGlzLmNsb25lQmVmb3JlKGUsaStlLnByb3AsaCl9ZCE9PWUudmFsdWUmJiF0aGlzLmFscmVhZHkoZSxlLnByb3AsZCkmJih0aGlzLmNoZWNrRm9yV2FybmluZyh0LGUpLGUuY2xvbmVCZWZvcmUoKSxlLnZhbHVlPWQpfWZpbmRQcm9wKGUpe2xldCB0PWVbMF0udmFsdWU7aWYoL15cZC8udGVzdCh0KSl7Zm9yKGxldFtpLG5db2YgZS5lbnRyaWVzKCkpaWYoaSE9PTAmJm4udHlwZT09PSJ3b3JkIilyZXR1cm4gbi52YWx1ZX1yZXR1cm4gdH1hbHJlYWR5KGUsdCxpKXtyZXR1cm4gZS5wYXJlbnQuc29tZShuPT5uLnByb3A9PT10JiZuLnZhbHVlPT09aSl9Y2xvbmVCZWZvcmUoZSx0LGkpe3RoaXMuYWxyZWFkeShlLHQsaSl8fGUuY2xvbmVCZWZvcmUoe3Byb3A6dCx2YWx1ZTppfSl9Y2hlY2tGb3JXYXJuaW5nKGUsdCl7aWYodC5wcm9wIT09InRyYW5zaXRpb24tcHJvcGVydHkiKXJldHVybjtsZXQgaT0hMSxuPSExO3QucGFyZW50LmVhY2gocz0+e2lmKHMudHlwZSE9PSJkZWNsInx8cy5wcm9wLmluZGV4T2YoInRyYW5zaXRpb24tIikhPT0wKXJldHVybjtsZXQgYT1BTy5jb21tYShzLnZhbHVlKTtpZihzLnByb3A9PT0idHJhbnNpdGlvbi1wcm9wZXJ0eSIpe2EuZm9yRWFjaChvPT57bGV0IGw9dGhpcy5wcmVmaXhlcy5hZGRbb107bCYmbC5wcmVmaXhlcyYmbC5wcmVmaXhlcy5sZW5ndGg+MCYmKGk9ITApfSk7cmV0dXJufXJldHVybiBuPW58fGEubGVuZ3RoPjEsITF9KSxpJiZuJiZ0Lndhcm4oZSwiUmVwbGFjZSB0cmFuc2l0aW9uLXByb3BlcnR5IHRvIHRyYW5zaXRpb24sIGJlY2F1c2UgQXV0b3ByZWZpeGVyIGNvdWxkIG5vdCBzdXBwb3J0IGFueSBjYXNlcyBvZiB0cmFuc2l0aW9uLXByb3BlcnR5IGFuZCBvdGhlciB0cmFuc2l0aW9uLSoiKX1yZW1vdmUoZSl7bGV0IHQ9dGhpcy5wYXJzZShlLnZhbHVlKTt0PXQuZmlsdGVyKGE9PntsZXQgbz10aGlzLnByZWZpeGVzLnJlbW92ZVt0aGlzLmZpbmRQcm9wKGEpXTtyZXR1cm4hb3x8IW8ucmVtb3ZlfSk7bGV0IGk9dGhpcy5zdHJpbmdpZnkodCk7aWYoZS52YWx1ZT09PWkpcmV0dXJuO2lmKHQubGVuZ3RoPT09MCl7ZS5yZW1vdmUoKTtyZXR1cm59bGV0IG49ZS5wYXJlbnQuc29tZShhPT5hLnByb3A9PT1lLnByb3AmJmEudmFsdWU9PT1pKSxzPWUucGFyZW50LnNvbWUoYT0+YSE9PWUmJmEucHJvcD09PWUucHJvcCYmYS52YWx1ZS5sZW5ndGg+aS5sZW5ndGgpO2lmKG58fHMpe2UucmVtb3ZlKCk7cmV0dXJufWUudmFsdWU9aX1wYXJzZShlKXtsZXQgdD1yYihlKSxpPVtdLG49W107Zm9yKGxldCBzIG9mIHQubm9kZXMpbi5wdXNoKHMpLHMudHlwZT09PSJkaXYiJiZzLnZhbHVlPT09IiwiJiYoaS5wdXNoKG4pLG49W10pO3JldHVybiBpLnB1c2gobiksaS5maWx0ZXIocz0+cy5sZW5ndGg+MCl9c3RyaW5naWZ5KGUpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgdD1bXTtmb3IobGV0IGkgb2YgZSlpW2kubGVuZ3RoLTFdLnR5cGUhPT0iZGl2IiYmaS5wdXNoKHRoaXMuZGl2KGUpKSx0PXQuY29uY2F0KGkpO3JldHVybiB0WzBdLnR5cGU9PT0iZGl2IiYmKHQ9dC5zbGljZSgxKSksdFt0Lmxlbmd0aC0xXS50eXBlPT09ImRpdiImJih0PXQuc2xpY2UoMCwtMisxfHx2b2lkIDApKSxyYi5zdHJpbmdpZnkoe25vZGVzOnR9KX1jbG9uZShlLHQsaSl7bGV0IG49W10scz0hMTtmb3IobGV0IGEgb2YgaSkhcyYmYS50eXBlPT09IndvcmQiJiZhLnZhbHVlPT09ZT8obi5wdXNoKHt0eXBlOiJ3b3JkIix2YWx1ZTp0fSkscz0hMCk6bi5wdXNoKGEpO3JldHVybiBufWRpdihlKXtmb3IobGV0IHQgb2YgZSlmb3IobGV0IGkgb2YgdClpZihpLnR5cGU9PT0iZGl2IiYmaS52YWx1ZT09PSIsIilyZXR1cm4gaTtyZXR1cm57dHlwZToiZGl2Iix2YWx1ZToiLCIsYWZ0ZXI6IiAifX1jbGVhbk90aGVyUHJlZml4ZXMoZSx0KXtyZXR1cm4gZS5maWx0ZXIoaT0+e2xldCBuPWliLnByZWZpeCh0aGlzLmZpbmRQcm9wKGkpKTtyZXR1cm4gbj09PSIifHxuPT09dH0pfWNsZWFuRnJvbVVucHJlZml4ZWQoZSx0KXtsZXQgaT1lLm1hcChzPT50aGlzLmZpbmRQcm9wKHMpKS5maWx0ZXIocz0+cy5zbGljZSgwLHQubGVuZ3RoKT09PXQpLm1hcChzPT50aGlzLnByZWZpeGVzLnVucHJlZml4ZWQocykpLG49W107Zm9yKGxldCBzIG9mIGUpe2xldCBhPXRoaXMuZmluZFByb3Aocyksbz1pYi5wcmVmaXgoYSk7IWkuaW5jbHVkZXMoYSkmJihvPT09dHx8bz09PSIiKSYmbi5wdXNoKHMpfXJldHVybiBufWRpc2FibGVkKGUsdCl7bGV0IGk9WyJvcmRlciIsImp1c3RpZnktY29udGVudCIsImFsaWduLXNlbGYiLCJhbGlnbi1jb250ZW50Il07aWYoZS5pbmNsdWRlcygiZmxleCIpfHxpLmluY2x1ZGVzKGUpKXtpZih0aGlzLnByZWZpeGVzLm9wdGlvbnMuZmxleGJveD09PSExKXJldHVybiEwO2lmKHRoaXMucHJlZml4ZXMub3B0aW9ucy5mbGV4Ym94PT09Im5vLTIwMDkiKXJldHVybiB0LmluY2x1ZGVzKCIyMDA5Iil9fXJ1bGVWZW5kb3JQcmVmaXhlcyhlKXtsZXR7cGFyZW50OnR9PWU7aWYodC50eXBlIT09InJ1bGUiKXJldHVybiExO2lmKCF0LnNlbGVjdG9yLmluY2x1ZGVzKCI6LSIpKXJldHVybiExO2xldCBpPUNPLnByZWZpeGVzKCkuZmlsdGVyKG49PnQuc2VsZWN0b3IuaW5jbHVkZXMoIjoiK24pKTtyZXR1cm4gaS5sZW5ndGg+MD9pOiExfX07c2IuZXhwb3J0cz1uYn0pO3ZhciB4cj14KChmJCxsYik9Pnt1KCk7dmFyIF9PPV9lKCksb2I9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGksbil7dGhpcy51bnByZWZpeGVkPWUsdGhpcy5wcmVmaXhlZD10LHRoaXMuc3RyaW5nPWl8fHQsdGhpcy5yZWdleHA9bnx8X08ucmVnZXhwKHQpfWNoZWNrKGUpe3JldHVybiBlLmluY2x1ZGVzKHRoaXMuc3RyaW5nKT8hIWUubWF0Y2godGhpcy5yZWdleHApOiExfX07bGIuZXhwb3J0cz1vYn0pO3ZhciBIZT14KChjJCxmYik9Pnt1KCk7dmFyIEVPPXdyKCksT089eHIoKSxUTz1OaSgpLFJPPV9lKCksdWI9Y2xhc3MgZXh0ZW5kcyBFT3tzdGF0aWMgc2F2ZShlLHQpe2xldCBpPXQucHJvcCxuPVtdO2ZvcihsZXQgcyBpbiB0Ll9hdXRvcHJlZml4ZXJWYWx1ZXMpe2xldCBhPXQuX2F1dG9wcmVmaXhlclZhbHVlc1tzXTtpZihhPT09dC52YWx1ZSljb250aW51ZTtsZXQgbyxsPVRPLnByZWZpeChpKTtpZihsPT09Ii1waWUtIiljb250aW51ZTtpZihsPT09cyl7bz10LnZhbHVlPWEsbi5wdXNoKG8pO2NvbnRpbnVlfWxldCBjPWUucHJlZml4ZWQoaSxzKSxmPXQucGFyZW50O2lmKCFmLmV2ZXJ5KGI9PmIucHJvcCE9PWMpKXtuLnB1c2gobyk7Y29udGludWV9bGV0IGQ9YS5yZXBsYWNlKC9ccysvLCIgIik7aWYoZi5zb21lKGI9PmIucHJvcD09PXQucHJvcCYmYi52YWx1ZS5yZXBsYWNlKC9ccysvLCIgIik9PT1kKSl7bi5wdXNoKG8pO2NvbnRpbnVlfWxldCBoPXRoaXMuY2xvbmUodCx7dmFsdWU6YX0pO289dC5wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsaCksbi5wdXNoKG8pfXJldHVybiBufWNoZWNrKGUpe2xldCB0PWUudmFsdWU7cmV0dXJuIHQuaW5jbHVkZXModGhpcy5uYW1lKT8hIXQubWF0Y2godGhpcy5yZWdleHAoKSk6ITF9cmVnZXhwKCl7cmV0dXJuIHRoaXMucmVnZXhwQ2FjaGV8fCh0aGlzLnJlZ2V4cENhY2hlPVJPLnJlZ2V4cCh0aGlzLm5hbWUpKX1yZXBsYWNlKGUsdCl7cmV0dXJuIGUucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLGAkMSR7dH0kMmApfXZhbHVlKGUpe3JldHVybiBlLnJhd3MudmFsdWUmJmUucmF3cy52YWx1ZS52YWx1ZT09PWUudmFsdWU/ZS5yYXdzLnZhbHVlLnJhdzplLnZhbHVlfWFkZChlLHQpe2UuX2F1dG9wcmVmaXhlclZhbHVlc3x8KGUuX2F1dG9wcmVmaXhlclZhbHVlcz17fSk7bGV0IGk9ZS5fYXV0b3ByZWZpeGVyVmFsdWVzW3RdfHx0aGlzLnZhbHVlKGUpLG47ZG8gaWYobj1pLGk9dGhpcy5yZXBsYWNlKGksdCksaT09PSExKXJldHVybjt3aGlsZShpIT09bik7ZS5fYXV0b3ByZWZpeGVyVmFsdWVzW3RdPWl9b2xkKGUpe3JldHVybiBuZXcgT08odGhpcy5uYW1lLGUrdGhpcy5uYW1lKX19O2ZiLmV4cG9ydHM9dWJ9KTt2YXIgQnQ9eCgocCQsY2IpPT57dSgpO2NiLmV4cG9ydHM9e319KTt2YXIgb3U9eCgoZCQsaGIpPT57dSgpO3ZhciBwYj1NcygpLFBPPUhlKCksSU89QnQoKS5pbnNlcnRBcmVhcyxETz0vKF58W14tXSlsaW5lYXItZ3JhZGllbnRcKFxzKih0b3B8bGVmdHxyaWdodHxib3R0b20pL2kscU89LyhefFteLV0pcmFkaWFsLWdyYWRpZW50XChccypcZCsoXHcqfCUpXHMrXGQrKFx3KnwlKVxzKiwvaSwkTz0vKCFccyopP2F1dG9wcmVmaXhlcjpccyppZ25vcmVccytuZXh0L2ksTE89LyghXHMqKT9hdXRvcHJlZml4ZXJccypncmlkOlxzKihvbnxvZmZ8KG5vLSk/YXV0b3BsYWNlKS9pLE1PPVsid2lkdGgiLCJoZWlnaHQiLCJtaW4td2lkdGgiLCJtYXgtd2lkdGgiLCJtaW4taGVpZ2h0IiwibWF4LWhlaWdodCIsImlubGluZS1zaXplIiwibWluLWlubGluZS1zaXplIiwibWF4LWlubGluZS1zaXplIiwiYmxvY2stc2l6ZSIsIm1pbi1ibG9jay1zaXplIiwibWF4LWJsb2NrLXNpemUiXTtmdW5jdGlvbiBhdShyKXtyZXR1cm4gci5wYXJlbnQuc29tZShlPT5lLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZSJ8fGUucHJvcD09PSJncmlkLXRlbXBsYXRlLWFyZWFzIil9ZnVuY3Rpb24gTk8ocil7bGV0IGU9ci5wYXJlbnQuc29tZShpPT5pLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1yb3dzIiksdD1yLnBhcmVudC5zb21lKGk9PmkucHJvcD09PSJncmlkLXRlbXBsYXRlLWNvbHVtbnMiKTtyZXR1cm4gZSYmdH12YXIgZGI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcmVmaXhlcz1lfWFkZChlLHQpe2xldCBpPXRoaXMucHJlZml4ZXMuYWRkWyJAcmVzb2x1dGlvbiJdLG49dGhpcy5wcmVmaXhlcy5hZGRbIkBrZXlmcmFtZXMiXSxzPXRoaXMucHJlZml4ZXMuYWRkWyJAdmlld3BvcnQiXSxhPXRoaXMucHJlZml4ZXMuYWRkWyJAc3VwcG9ydHMiXTtlLndhbGtBdFJ1bGVzKGY9PntpZihmLm5hbWU9PT0ia2V5ZnJhbWVzIil7aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gbiYmbi5wcm9jZXNzKGYpfWVsc2UgaWYoZi5uYW1lPT09InZpZXdwb3J0Iil7aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gcyYmcy5wcm9jZXNzKGYpfWVsc2UgaWYoZi5uYW1lPT09InN1cHBvcnRzIil7aWYodGhpcy5wcmVmaXhlcy5vcHRpb25zLnN1cHBvcnRzIT09ITEmJiF0aGlzLmRpc2FibGVkKGYsdCkpcmV0dXJuIGEucHJvY2VzcyhmKX1lbHNlIGlmKGYubmFtZT09PSJtZWRpYSImJmYucGFyYW1zLmluY2x1ZGVzKCItcmVzb2x1dGlvbiIpJiYhdGhpcy5kaXNhYmxlZChmLHQpKXJldHVybiBpJiZpLnByb2Nlc3MoZil9KSxlLndhbGtSdWxlcyhmPT57aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gdGhpcy5wcmVmaXhlcy5hZGQuc2VsZWN0b3JzLm1hcChkPT5kLnByb2Nlc3MoZix0KSl9KTtmdW5jdGlvbiBvKGYpe3JldHVybiBmLnBhcmVudC5ub2Rlcy5zb21lKGQ9PntpZihkLnR5cGUhPT0iZGVjbCIpcmV0dXJuITE7bGV0IHA9ZC5wcm9wPT09ImRpc3BsYXkiJiYvKGlubGluZS0pP2dyaWQvLnRlc3QoZC52YWx1ZSksaD1kLnByb3Auc3RhcnRzV2l0aCgiZ3JpZC10ZW1wbGF0ZSIpLGI9L15ncmlkLShbQS16XSstKT9nYXAvLnRlc3QoZC5wcm9wKTtyZXR1cm4gcHx8aHx8Yn0pfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGYucGFyZW50LnNvbWUoZD0+ZC5wcm9wPT09ImRpc3BsYXkiJiYvKGlubGluZS0pP2ZsZXgvLnRlc3QoZC52YWx1ZSkpfWxldCBjPXRoaXMuZ3JpZFN0YXR1cyhlLHQpJiZ0aGlzLnByZWZpeGVzLmFkZFsiZ3JpZC1hcmVhIl0mJnRoaXMucHJlZml4ZXMuYWRkWyJncmlkLWFyZWEiXS5wcmVmaXhlcztyZXR1cm4gZS53YWxrRGVjbHMoZj0+e2lmKHRoaXMuZGlzYWJsZWREZWNsKGYsdCkpcmV0dXJuO2xldCBkPWYucGFyZW50LHA9Zi5wcm9wLGg9Zi52YWx1ZTtpZihwPT09ImdyaWQtcm93LXNwYW4iKXt0Lndhcm4oImdyaWQtcm93LXNwYW4gaXMgbm90IHBhcnQgb2YgZmluYWwgR3JpZCBMYXlvdXQuIFVzZSBncmlkLXJvdy4iLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImdyaWQtY29sdW1uLXNwYW4iKXt0Lndhcm4oImdyaWQtY29sdW1uLXNwYW4gaXMgbm90IHBhcnQgb2YgZmluYWwgR3JpZCBMYXlvdXQuIFVzZSBncmlkLWNvbHVtbi4iLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImRpc3BsYXkiJiZoPT09ImJveCIpe3Qud2FybigiWW91IHNob3VsZCB3cml0ZSBkaXNwbGF5OiBmbGV4IGJ5IGZpbmFsIHNwZWMgaW5zdGVhZCBvZiBkaXNwbGF5OiBib3giLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09InRleHQtZW1waGFzaXMtcG9zaXRpb24iKShoPT09InVuZGVyInx8aD09PSJvdmVyIikmJnQud2FybigiWW91IHNob3VsZCB1c2UgMiB2YWx1ZXMgZm9yIHRleHQtZW1waGFzaXMtcG9zaXRpb24gRm9yIGV4YW1wbGUsIGB1bmRlciBsZWZ0YCBpbnN0ZWFkIG9mIGp1c3QgYHVuZGVyYC4iLHtub2RlOmZ9KTtlbHNlIGlmKC9eKGFsaWdufGp1c3RpZnl8cGxhY2UpLShpdGVtc3xjb250ZW50KSQvLnRlc3QocCkmJmwoZikpKGg9PT0ic3RhcnQifHxoPT09ImVuZCIpJiZ0Lndhcm4oYCR7aH0gdmFsdWUgaGFzIG1peGVkIHN1cHBvcnQsIGNvbnNpZGVyIHVzaW5nIGZsZXgtJHtofSBpbnN0ZWFkYCx7bm9kZTpmfSk7ZWxzZSBpZihwPT09InRleHQtZGVjb3JhdGlvbi1za2lwIiYmaD09PSJpbmsiKXQud2FybigiUmVwbGFjZSB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIHRvIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bywgYmVjYXVzZSBzcGVjIGhhZCBiZWVuIGNoYW5nZWQiLHtub2RlOmZ9KTtlbHNle2lmKGMmJnRoaXMuZ3JpZFN0YXR1cyhmLHQpKWlmKGYudmFsdWU9PT0ic3ViZ3JpZCImJnQud2FybigiSUUgZG9lcyBub3Qgc3VwcG9ydCBzdWJncmlkIix7bm9kZTpmfSksL14oYWxpZ258anVzdGlmeXxwbGFjZSktaXRlbXMkLy50ZXN0KHApJiZvKGYpKXtsZXQgdj1wLnJlcGxhY2UoIi1pdGVtcyIsIi1zZWxmIik7dC53YXJuKGBJRSBkb2VzIG5vdCBzdXBwb3J0ICR7cH0gb24gZ3JpZCBjb250YWluZXJzLiBUcnkgdXNpbmcgJHt2fSBvbiBjaGlsZCBlbGVtZW50cyBpbnN0ZWFkOiAke2YucGFyZW50LnNlbGVjdG9yfSA+ICogeyAke3Z9OiAke2YudmFsdWV9IH1gLHtub2RlOmZ9KX1lbHNlIGlmKC9eKGFsaWdufGp1c3RpZnl8cGxhY2UpLWNvbnRlbnQkLy50ZXN0KHApJiZvKGYpKXQud2FybihgSUUgZG9lcyBub3Qgc3VwcG9ydCAke2YucHJvcH0gb24gZ3JpZCBjb250YWluZXJzYCx7bm9kZTpmfSk7ZWxzZSBpZihwPT09ImRpc3BsYXkiJiZmLnZhbHVlPT09ImNvbnRlbnRzIil7dC53YXJuKCJQbGVhc2UgZG8gbm90IHVzZSBkaXNwbGF5OiBjb250ZW50czsgaWYgeW91IGhhdmUgZ3JpZCBzZXR0aW5nIGVuYWJsZWQiLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihmLnByb3A9PT0iZ3JpZC1nYXAiKXtsZXQgdj10aGlzLmdyaWRTdGF0dXMoZix0KTt2PT09ImF1dG9wbGFjZSImJiFOTyhmKSYmIWF1KGYpP3Qud2FybigiZ3JpZC1nYXAgb25seSB3b3JrcyBpZiBncmlkLXRlbXBsYXRlKC1hcmVhcykgaXMgYmVpbmcgdXNlZCBvciBib3RoIHJvd3MgYW5kIGNvbHVtbnMgaGF2ZSBiZWVuIGRlY2xhcmVkIGFuZCBjZWxscyBoYXZlIG5vdCBiZWVuIG1hbnVhbGx5IHBsYWNlZCBpbnNpZGUgdGhlIGV4cGxpY2l0IGdyaWQiLHtub2RlOmZ9KToodj09PSEwfHx2PT09Im5vLWF1dG9wbGFjZSIpJiYhYXUoZikmJnQud2FybigiZ3JpZC1nYXAgb25seSB3b3JrcyBpZiBncmlkLXRlbXBsYXRlKC1hcmVhcykgaXMgYmVpbmcgdXNlZCIse25vZGU6Zn0pfWVsc2UgaWYocD09PSJncmlkLWF1dG8tY29sdW1ucyIpe3Qud2FybigiZ3JpZC1hdXRvLWNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zn0pO3JldHVybn1lbHNlIGlmKHA9PT0iZ3JpZC1hdXRvLXJvd3MiKXt0Lndhcm4oImdyaWQtYXV0by1yb3dzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgSUUiLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImdyaWQtYXV0by1mbG93Iil7bGV0IHY9ZC5zb21lKHc9PncucHJvcD09PSJncmlkLXRlbXBsYXRlLXJvd3MiKSx5PWQuc29tZSh3PT53LnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIik7YXUoZik/dC53YXJuKCJncmlkLWF1dG8tZmxvdyBpcyBub3Qgc3VwcG9ydGVkIGJ5IElFIix7bm9kZTpmfSk6aC5pbmNsdWRlcygiZGVuc2UiKT90Lndhcm4oImdyaWQtYXV0by1mbG93OiBkZW5zZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IElFIix7bm9kZTpmfSk6IXYmJiF5JiZ0Lndhcm4oImdyaWQtYXV0by1mbG93IHdvcmtzIG9ubHkgaWYgZ3JpZC10ZW1wbGF0ZS1yb3dzIGFuZCBncmlkLXRlbXBsYXRlLWNvbHVtbnMgYXJlIHByZXNlbnQgaW4gdGhlIHNhbWUgcnVsZSIse25vZGU6Zn0pO3JldHVybn1lbHNlIGlmKGguaW5jbHVkZXMoImF1dG8tZml0Iikpe3Qud2FybigiYXV0by1maXQgdmFsdWUgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zix3b3JkOiJhdXRvLWZpdCJ9KTtyZXR1cm59ZWxzZSBpZihoLmluY2x1ZGVzKCJhdXRvLWZpbGwiKSl7dC53YXJuKCJhdXRvLWZpbGwgdmFsdWUgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zix3b3JkOiJhdXRvLWZpbGwifSk7cmV0dXJufWVsc2UgcC5zdGFydHNXaXRoKCJncmlkLXRlbXBsYXRlIikmJmguaW5jbHVkZXMoIlsiKSYmdC53YXJuKCJBdXRvcHJlZml4ZXIgY3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgbGluZSBuYW1lcy4gVHJ5IHVzaW5nIGdyaWQtdGVtcGxhdGUtYXJlYXMgaW5zdGVhZC4iLHtub2RlOmYsd29yZDoiWyJ9KTtpZihoLmluY2x1ZGVzKCJyYWRpYWwtZ3JhZGllbnQiKSlpZihxTy50ZXN0KGYudmFsdWUpKXQud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIE5ldyBzeW50YXggaXMgbGlrZSBgY2xvc2VzdC1zaWRlIGF0IDAgMGAgaW5zdGVhZCBvZiBgMCAwLCBjbG9zZXN0LXNpZGVgLiIse25vZGU6Zn0pO2Vsc2V7bGV0IHY9cGIoaCk7Zm9yKGxldCB5IG9mIHYubm9kZXMpaWYoeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJyYWRpYWwtZ3JhZGllbnQiKWZvcihsZXQgdyBvZiB5Lm5vZGVzKXcudHlwZT09PSJ3b3JkIiYmKHcudmFsdWU9PT0iY292ZXIiP3Qud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIFJlcGxhY2UgYGNvdmVyYCB0byBgZmFydGhlc3QtY29ybmVyYC4iLHtub2RlOmZ9KTp3LnZhbHVlPT09ImNvbnRhaW4iJiZ0Lndhcm4oIkdyYWRpZW50IGhhcyBvdXRkYXRlZCBkaXJlY3Rpb24gc3ludGF4LiBSZXBsYWNlIGBjb250YWluYCB0byBgY2xvc2VzdC1zaWRlYC4iLHtub2RlOmZ9KSl9aC5pbmNsdWRlcygibGluZWFyLWdyYWRpZW50IikmJkRPLnRlc3QoaCkmJnQud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIE5ldyBzeW50YXggaXMgbGlrZSBgdG8gbGVmdGAgaW5zdGVhZCBvZiBgcmlnaHRgLiIse25vZGU6Zn0pfU1PLmluY2x1ZGVzKGYucHJvcCkmJihmLnZhbHVlLmluY2x1ZGVzKCItZmlsbC1hdmFpbGFibGUiKXx8KGYudmFsdWUuaW5jbHVkZXMoImZpbGwtYXZhaWxhYmxlIik/dC53YXJuKCJSZXBsYWNlIGZpbGwtYXZhaWxhYmxlIHRvIHN0cmV0Y2gsIGJlY2F1c2Ugc3BlYyBoYWQgYmVlbiBjaGFuZ2VkIix7bm9kZTpmfSk6Zi52YWx1ZS5pbmNsdWRlcygiZmlsbCIpJiZwYihoKS5ub2Rlcy5zb21lKHk9PnkudHlwZT09PSJ3b3JkIiYmeS52YWx1ZT09PSJmaWxsIikmJnQud2FybigiUmVwbGFjZSBmaWxsIHRvIHN0cmV0Y2gsIGJlY2F1c2Ugc3BlYyBoYWQgYmVlbiBjaGFuZ2VkIix7bm9kZTpmfSkpKTtsZXQgYjtpZihmLnByb3A9PT0idHJhbnNpdGlvbiJ8fGYucHJvcD09PSJ0cmFuc2l0aW9uLXByb3BlcnR5IilyZXR1cm4gdGhpcy5wcmVmaXhlcy50cmFuc2l0aW9uLmFkZChmLHQpO2lmKGYucHJvcD09PSJhbGlnbi1zZWxmIil7aWYodGhpcy5kaXNwbGF5VHlwZShmKSE9PSJncmlkIiYmdGhpcy5wcmVmaXhlcy5vcHRpb25zLmZsZXhib3ghPT0hMSYmKGI9dGhpcy5wcmVmaXhlcy5hZGRbImFsaWduLXNlbGYiXSxiJiZiLnByZWZpeGVzJiZiLnByb2Nlc3MoZikpLHRoaXMuZ3JpZFN0YXR1cyhmLHQpIT09ITEmJihiPXRoaXMucHJlZml4ZXMuYWRkWyJncmlkLXJvdy1hbGlnbiJdLGImJmIucHJlZml4ZXMpKXJldHVybiBiLnByb2Nlc3MoZix0KX1lbHNlIGlmKGYucHJvcD09PSJqdXN0aWZ5LXNlbGYiKXtpZih0aGlzLmdyaWRTdGF0dXMoZix0KSE9PSExJiYoYj10aGlzLnByZWZpeGVzLmFkZFsiZ3JpZC1jb2x1bW4tYWxpZ24iXSxiJiZiLnByZWZpeGVzKSlyZXR1cm4gYi5wcm9jZXNzKGYsdCl9ZWxzZSBpZihmLnByb3A9PT0icGxhY2Utc2VsZiIpe2lmKGI9dGhpcy5wcmVmaXhlcy5hZGRbInBsYWNlLXNlbGYiXSxiJiZiLnByZWZpeGVzJiZ0aGlzLmdyaWRTdGF0dXMoZix0KSE9PSExKXJldHVybiBiLnByb2Nlc3MoZix0KX1lbHNlIGlmKGI9dGhpcy5wcmVmaXhlcy5hZGRbZi5wcm9wXSxiJiZiLnByZWZpeGVzKXJldHVybiBiLnByb2Nlc3MoZix0KX0pLHRoaXMuZ3JpZFN0YXR1cyhlLHQpJiZJTyhlLHRoaXMuZGlzYWJsZWQpLGUud2Fsa0RlY2xzKGY9PntpZih0aGlzLmRpc2FibGVkVmFsdWUoZix0KSlyZXR1cm47bGV0IGQ9dGhpcy5wcmVmaXhlcy51bnByZWZpeGVkKGYucHJvcCkscD10aGlzLnByZWZpeGVzLnZhbHVlcygiYWRkIixkKTtpZihBcnJheS5pc0FycmF5KHApKWZvcihsZXQgaCBvZiBwKWgucHJvY2VzcyYmaC5wcm9jZXNzKGYsdCk7UE8uc2F2ZSh0aGlzLnByZWZpeGVzLGYpfSl9cmVtb3ZlKGUsdCl7bGV0IGk9dGhpcy5wcmVmaXhlcy5yZW1vdmVbIkByZXNvbHV0aW9uIl07ZS53YWxrQXRSdWxlcygobixzKT0+e3RoaXMucHJlZml4ZXMucmVtb3ZlW2BAJHtuLm5hbWV9YF0/dGhpcy5kaXNhYmxlZChuLHQpfHxuLnBhcmVudC5yZW1vdmVDaGlsZChzKTpuLm5hbWU9PT0ibWVkaWEiJiZuLnBhcmFtcy5pbmNsdWRlcygiLXJlc29sdXRpb24iKSYmaSYmaS5jbGVhbihuKX0pO2ZvcihsZXQgbiBvZiB0aGlzLnByZWZpeGVzLnJlbW92ZS5zZWxlY3RvcnMpZS53YWxrUnVsZXMoKHMsYSk9PntuLmNoZWNrKHMpJiYodGhpcy5kaXNhYmxlZChzLHQpfHxzLnBhcmVudC5yZW1vdmVDaGlsZChhKSl9KTtyZXR1cm4gZS53YWxrRGVjbHMoKG4scyk9PntpZih0aGlzLmRpc2FibGVkKG4sdCkpcmV0dXJuO2xldCBhPW4ucGFyZW50LG89dGhpcy5wcmVmaXhlcy51bnByZWZpeGVkKG4ucHJvcCk7aWYoKG4ucHJvcD09PSJ0cmFuc2l0aW9uInx8bi5wcm9wPT09InRyYW5zaXRpb24tcHJvcGVydHkiKSYmdGhpcy5wcmVmaXhlcy50cmFuc2l0aW9uLnJlbW92ZShuKSx0aGlzLnByZWZpeGVzLnJlbW92ZVtuLnByb3BdJiZ0aGlzLnByZWZpeGVzLnJlbW92ZVtuLnByb3BdLnJlbW92ZSl7bGV0IGw9dGhpcy5wcmVmaXhlcy5ncm91cChuKS5kb3duKGM9PnRoaXMucHJlZml4ZXMubm9ybWFsaXplKGMucHJvcCk9PT1vKTtpZihvPT09ImZsZXgtZmxvdyImJihsPSEwKSxuLnByb3A9PT0iLXdlYmtpdC1ib3gtb3JpZW50Iil7bGV0IGM9eyJmbGV4LWRpcmVjdGlvbiI6ITAsImZsZXgtZmxvdyI6ITB9O2lmKCFuLnBhcmVudC5zb21lKGY9PmNbZi5wcm9wXSkpcmV0dXJufWlmKGwmJiF0aGlzLndpdGhIYWNrVmFsdWUobikpe24ucmF3KCJiZWZvcmUiKS5pbmNsdWRlcyhgCmApJiZ0aGlzLnJlZHVjZVNwYWNlcyhuKSxhLnJlbW92ZUNoaWxkKHMpO3JldHVybn19Zm9yKGxldCBsIG9mIHRoaXMucHJlZml4ZXMudmFsdWVzKCJyZW1vdmUiLG8pKXtpZighbC5jaGVja3x8IWwuY2hlY2sobi52YWx1ZSkpY29udGludWU7aWYobz1sLnVucHJlZml4ZWQsdGhpcy5wcmVmaXhlcy5ncm91cChuKS5kb3duKGY9PmYudmFsdWUuaW5jbHVkZXMobykpKXthLnJlbW92ZUNoaWxkKHMpO3JldHVybn19fSl9d2l0aEhhY2tWYWx1ZShlKXtyZXR1cm4gZS5wcm9wPT09Ii13ZWJraXQtYmFja2dyb3VuZC1jbGlwIiYmZS52YWx1ZT09PSJ0ZXh0In1kaXNhYmxlZFZhbHVlKGUsdCl7cmV0dXJuIHRoaXMuZ3JpZFN0YXR1cyhlLHQpPT09ITEmJmUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImRpc3BsYXkiJiZlLnZhbHVlLmluY2x1ZGVzKCJncmlkIil8fHRoaXMucHJlZml4ZXMub3B0aW9ucy5mbGV4Ym94PT09ITEmJmUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImRpc3BsYXkiJiZlLnZhbHVlLmluY2x1ZGVzKCJmbGV4Iil8fGUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImNvbnRlbnQiPyEwOnRoaXMuZGlzYWJsZWQoZSx0KX1kaXNhYmxlZERlY2woZSx0KXtpZih0aGlzLmdyaWRTdGF0dXMoZSx0KT09PSExJiZlLnR5cGU9PT0iZGVjbCImJihlLnByb3AuaW5jbHVkZXMoImdyaWQiKXx8ZS5wcm9wPT09Imp1c3RpZnktaXRlbXMiKSlyZXR1cm4hMDtpZih0aGlzLnByZWZpeGVzLm9wdGlvbnMuZmxleGJveD09PSExJiZlLnR5cGU9PT0iZGVjbCIpe2xldCBpPVsib3JkZXIiLCJqdXN0aWZ5LWNvbnRlbnQiLCJhbGlnbi1pdGVtcyIsImFsaWduLWNvbnRlbnQiXTtpZihlLnByb3AuaW5jbHVkZXMoImZsZXgiKXx8aS5pbmNsdWRlcyhlLnByb3ApKXJldHVybiEwfXJldHVybiB0aGlzLmRpc2FibGVkKGUsdCl9ZGlzYWJsZWQoZSx0KXtpZighZSlyZXR1cm4hMTtpZihlLl9hdXRvcHJlZml4ZXJEaXNhYmxlZCE9PXZvaWQgMClyZXR1cm4gZS5fYXV0b3ByZWZpeGVyRGlzYWJsZWQ7aWYoZS5wYXJlbnQpe2xldCBuPWUucHJldigpO2lmKG4mJm4udHlwZT09PSJjb21tZW50IiYmJE8udGVzdChuLnRleHQpKXJldHVybiBlLl9hdXRvcHJlZml4ZXJEaXNhYmxlZD0hMCxlLl9hdXRvcHJlZml4ZXJTZWxmRGlzYWJsZWQ9ITAsITB9bGV0IGk9bnVsbDtpZihlLm5vZGVzKXtsZXQgbjtlLmVhY2gocz0+e3MudHlwZT09PSJjb21tZW50IiYmLyghXHMqKT9hdXRvcHJlZml4ZXI6XHMqKG9mZnxvbikvaS50ZXN0KHMudGV4dCkmJih0eXBlb2YgbiE9InVuZGVmaW5lZCI/dC53YXJuKCJTZWNvbmQgQXV0b3ByZWZpeGVyIGNvbnRyb2wgY29tbWVudCB3YXMgaWdub3JlZC4gQXV0b3ByZWZpeGVyIGFwcGxpZXMgY29udHJvbCBjb21tZW50IHRvIHdob2xlIGJsb2NrLCBub3QgdG8gbmV4dCBydWxlcy4iLHtub2RlOnN9KTpuPS9vbi9pLnRlc3Qocy50ZXh0KSl9KSxuIT09dm9pZCAwJiYoaT0hbil9aWYoIWUubm9kZXN8fGk9PT1udWxsKWlmKGUucGFyZW50KXtsZXQgbj10aGlzLmRpc2FibGVkKGUucGFyZW50LHQpO2UucGFyZW50Ll9hdXRvcHJlZml4ZXJTZWxmRGlzYWJsZWQ9PT0hMD9pPSExOmk9bn1lbHNlIGk9ITE7cmV0dXJuIGUuX2F1dG9wcmVmaXhlckRpc2FibGVkPWksaX1yZWR1Y2VTcGFjZXMoZSl7bGV0IHQ9ITE7aWYodGhpcy5wcmVmaXhlcy5ncm91cChlKS51cCgoKT0+KHQ9ITAsITApKSx0KXJldHVybjtsZXQgaT1lLnJhdygiYmVmb3JlIikuc3BsaXQoYApgKSxuPWlbaS5sZW5ndGgtMV0ubGVuZ3RoLHM9ITE7dGhpcy5wcmVmaXhlcy5ncm91cChlKS5kb3duKGE9PntpPWEucmF3KCJiZWZvcmUiKS5zcGxpdChgCmApO2xldCBvPWkubGVuZ3RoLTE7aVtvXS5sZW5ndGg+biYmKHM9PT0hMSYmKHM9aVtvXS5sZW5ndGgtbiksaVtvXT1pW29dLnNsaWNlKDAsLXMpLGEucmF3cy5iZWZvcmU9aS5qb2luKGAKYCkpfSl9ZGlzcGxheVR5cGUoZSl7Zm9yKGxldCB0IG9mIGUucGFyZW50Lm5vZGVzKWlmKHQucHJvcD09PSJkaXNwbGF5Iil7aWYodC52YWx1ZS5pbmNsdWRlcygiZmxleCIpKXJldHVybiJmbGV4IjtpZih0LnZhbHVlLmluY2x1ZGVzKCJncmlkIikpcmV0dXJuImdyaWQifXJldHVybiExfWdyaWRTdGF0dXMoZSx0KXtpZighZSlyZXR1cm4hMTtpZihlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzIT09dm9pZCAwKXJldHVybiBlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzO2xldCBpPW51bGw7aWYoZS5ub2Rlcyl7bGV0IG47ZS5lYWNoKHM9PntpZihzLnR5cGU9PT0iY29tbWVudCImJkxPLnRlc3Qocy50ZXh0KSl7bGV0IGE9LzpccyphdXRvcGxhY2UvaS50ZXN0KHMudGV4dCksbz0vbm8tYXV0b3BsYWNlL2kudGVzdChzLnRleHQpO3R5cGVvZiBuIT0idW5kZWZpbmVkIj90Lndhcm4oIlNlY29uZCBBdXRvcHJlZml4ZXIgZ3JpZCBjb250cm9sIGNvbW1lbnQgd2FzIGlnbm9yZWQuIEF1dG9wcmVmaXhlciBhcHBsaWVzIGNvbnRyb2wgY29tbWVudHMgdG8gdGhlIHdob2xlIGJsb2NrLCBub3QgdG8gdGhlIG5leHQgcnVsZXMuIix7bm9kZTpzfSk6YT9uPSJhdXRvcGxhY2UiOm8/bj0hMDpuPS9vbi9pLnRlc3Qocy50ZXh0KX19KSxuIT09dm9pZCAwJiYoaT1uKX1pZihlLnR5cGU9PT0iYXRydWxlIiYmZS5uYW1lPT09InN1cHBvcnRzIil7bGV0IG49ZS5wYXJhbXM7bi5pbmNsdWRlcygiZ3JpZCIpJiZuLmluY2x1ZGVzKCJhdXRvIikmJihpPSExKX1pZighZS5ub2Rlc3x8aT09PW51bGwpaWYoZS5wYXJlbnQpe2xldCBuPXRoaXMuZ3JpZFN0YXR1cyhlLnBhcmVudCx0KTtlLnBhcmVudC5fYXV0b3ByZWZpeGVyU2VsZkRpc2FibGVkPT09ITA/aT0hMTppPW59ZWxzZSB0eXBlb2YgdGhpcy5wcmVmaXhlcy5vcHRpb25zLmdyaWQhPSJ1bmRlZmluZWQiP2k9dGhpcy5wcmVmaXhlcy5vcHRpb25zLmdyaWQ6dHlwZW9mIG0uZW52LkFVVE9QUkVGSVhFUl9HUklEIT0idW5kZWZpbmVkIj9tLmVudi5BVVRPUFJFRklYRVJfR1JJRD09PSJhdXRvcGxhY2UiP2k9ImF1dG9wbGFjZSI6aT0hMDppPSExO3JldHVybiBlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzPWksaX19O2hiLmV4cG9ydHM9ZGJ9KTt2YXIgZ2I9eCgoaCQsbWIpPT57dSgpO21iLmV4cG9ydHM9e0E6e0E6eyIyIjoiSyBFIEYgRyBBIEIgSkMifSxCOnsiMSI6IkMgTCBNIEggTiBEIE8gUCBRIFIgUyBUIFUgViBXIFggWSBaIGEgYiBjIGQgZSBmIGcgaCBpIGogbiBvIHAgcSByIHMgdCB1IHYgdyB4IHkgeiBJIn0sQzp7IjEiOiIyIDMgNCA1IDYgNyA4IDkgQUIgQkIgQ0IgREIgRUIgRkIgR0IgSEIgSUIgSkIgS0IgTEIgTUIgTkIgT0IgUEIgUUIgUkIgU0IgVEIgVUIgVkIgV0IgWEIgWUIgWkIgYUIgYkIgY0IgMEIgZEIgMUIgZUIgZkIgZ0IgaEIgaUIgakIga0IgbEIgbUIgbkIgb0IgbSBwQiBxQiByQiBzQiB0QiBQIFEgUiAyQiBTIFQgVSBWIFcgWCBZIFogYSBiIGMgZCBlIGYgZyBoIGkgaiBuIG8gcCBxIHIgcyB0IHUgdiB3IHggeSB6IEkgdUIgM0IgNEIiLCIyIjoiMCAxIEtDIHpCIEogSyBFIEYgRyBBIEIgQyBMIE0gSCBOIEQgTyBrIGwgTEMgTUMifSxEOnsiMSI6IjggOSBBQiBCQiBDQiBEQiBFQiBGQiBHQiBIQiBJQiBKQiBLQiBMQiBNQiBOQiBPQiBQQiBRQiBSQiBTQiBUQiBVQiBWQiBXQiBYQiBZQiBaQiBhQiBiQiBjQiAwQiBkQiAxQiBlQiBmQiBnQiBoQiBpQiBqQiBrQiBsQiBtQiBuQiBvQiBtIHBCIHFCIHJCIHNCIHRCIFAgUSBSIFMgVCBVIFYgVyBYIFkgWiBhIGIgYyBkIGUgZiBnIGggaSBqIG4gbyBwIHEgciBzIHQgdSB2IHcgeCB5IHogSSB1QiAzQiA0QiIsIjIiOiIwIDEgMiAzIDQgNSA2IDcgSiBLIEUgRiBHIEEgQiBDIEwgTSBIIE4gRCBPIGsgbCJ9LEU6eyIxIjoiRyBBIEIgQyBMIE0gSCBEIFJDIDZCIHZCIHdCIDdCIFNDIFRDIDhCIDlCIHhCIEFDIHlCIEJDIENDIERDIEVDIEZDIEdDIFVDIiwiMiI6IjAgSiBLIEUgRiBOQyA1QiBPQyBQQyBRQyJ9LEY6eyIxIjoiMSAyIDMgNCA1IDYgNyA4IDkgSCBOIEQgTyBrIGwgQUIgQkIgQ0IgREIgRUIgRkIgR0IgSEIgSUIgSkIgS0IgTEIgTUIgTkIgT0IgUEIgUUIgUkIgU0IgVEIgVUIgVkIgV0IgWEIgWUIgWkIgYUIgYkIgY0IgZEIgZUIgZkIgZ0IgaEIgaUIgakIga0IgbEIgbUIgbkIgb0IgbSBwQiBxQiByQiBzQiB0QiBQIFEgUiAyQiBTIFQgVSBWIFcgWCBZIFogYSBiIGMgZCBlIGYgZyBoIGkgaiB3QiIsIjIiOiJHIEIgQyBWQyBXQyBYQyBZQyB2QiBIQyBaQyJ9LEc6eyIxIjoiRCBmQyBnQyBoQyBpQyBqQyBrQyBsQyBtQyBuQyBvQyBwQyBxQyByQyBzQyB0QyA4QiA5QiB4QiBBQyB5QiBCQyBDQyBEQyBFQyBGQyBHQyIsIjIiOiJGIDVCIGFDIElDIGJDIGNDIGRDIGVDIn0sSDp7IjEiOiJ1QyJ9LEk6eyIxIjoiSSB6QyAwQyIsIjIiOiJ6QiBKIHZDIHdDIHhDIHlDIElDIn0sSjp7IjIiOiJFIEEifSxLOnsiMSI6Im0iLCIyIjoiQSBCIEMgdkIgSEMgd0IifSxMOnsiMSI6IkkifSxNOnsiMSI6InVCIn0sTjp7IjIiOiJBIEIifSxPOnsiMSI6InhCIn0sUDp7IjEiOiJKIGsgbCAxQyAyQyAzQyA0QyA1QyA2QiA2QyA3QyA4QyA5QyBBRCB5QiBCRCBDRCBERCJ9LFE6eyIxIjoiN0IifSxSOnsiMSI6IkVEIn0sUzp7IjEiOiJGRCBHRCJ9fSxCOjQsQzoiQ1NTIEZlYXR1cmUgUXVlcmllcyJ9fSk7dmFyIHZiPXgoKG0kLHdiKT0+e3UoKTtmdW5jdGlvbiB5YihyKXtyZXR1cm4gcltyLmxlbmd0aC0xXX12YXIgYmI9e3BhcnNlKHIpe2xldCBlPVsiIl0sdD1bZV07Zm9yKGxldCBpIG9mIHIpe2lmKGk9PT0iKCIpe2U9WyIiXSx5Yih0KS5wdXNoKGUpLHQucHVzaChlKTtjb250aW51ZX1pZihpPT09IikiKXt0LnBvcCgpLGU9eWIodCksZS5wdXNoKCIiKTtjb250aW51ZX1lW2UubGVuZ3RoLTFdKz1pfXJldHVybiB0WzBdfSxzdHJpbmdpZnkocil7bGV0IGU9IiI7Zm9yKGxldCB0IG9mIHIpe2lmKHR5cGVvZiB0PT0ib2JqZWN0Iil7ZSs9YCgke2JiLnN0cmluZ2lmeSh0KX0pYDtjb250aW51ZX1lKz10fXJldHVybiBlfX07d2IuZXhwb3J0cz1iYn0pO3ZhciBDYj14KChnJCxBYik9Pnt1KCk7dmFyIEJPPWdiKCkse2ZlYXR1cmU6Rk99PShQcygpLFJzKSx7cGFyc2U6ak99PSRlKCksek89TXQoKSxsdT12YigpLFVPPUhlKCksVk89X2UoKSx4Yj1GTyhCTyksa2I9W107Zm9yKGxldCByIGluIHhiLnN0YXRzKXtsZXQgZT14Yi5zdGF0c1tyXTtmb3IobGV0IHQgaW4gZSl7bGV0IGk9ZVt0XTsveS8udGVzdChpKSYma2IucHVzaChyKyIgIit0KX19dmFyIFNiPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5QcmVmaXhlcz1lLHRoaXMuYWxsPXR9cHJlZml4ZXIoKXtpZih0aGlzLnByZWZpeGVyQ2FjaGUpcmV0dXJuIHRoaXMucHJlZml4ZXJDYWNoZTtsZXQgZT10aGlzLmFsbC5icm93c2Vycy5zZWxlY3RlZC5maWx0ZXIoaT0+a2IuaW5jbHVkZXMoaSkpLHQ9bmV3IHpPKHRoaXMuYWxsLmJyb3dzZXJzLmRhdGEsZSx0aGlzLmFsbC5vcHRpb25zKTtyZXR1cm4gdGhpcy5wcmVmaXhlckNhY2hlPW5ldyB0aGlzLlByZWZpeGVzKHRoaXMuYWxsLmRhdGEsdCx0aGlzLmFsbC5vcHRpb25zKSx0aGlzLnByZWZpeGVyQ2FjaGV9cGFyc2UoZSl7bGV0IHQ9ZS5zcGxpdCgiOiIpLGk9dFswXSxuPXRbMV07cmV0dXJuIG58fChuPSIiKSxbaS50cmltKCksbi50cmltKCldfXZpcnR1YWwoZSl7bGV0W3QsaV09dGhpcy5wYXJzZShlKSxuPWpPKCJhe30iKS5maXJzdDtyZXR1cm4gbi5hcHBlbmQoe3Byb3A6dCx2YWx1ZTppLHJhd3M6e2JlZm9yZToiIn19KSxufXByZWZpeGVkKGUpe2xldCB0PXRoaXMudmlydHVhbChlKTtpZih0aGlzLmRpc2FibGVkKHQuZmlyc3QpKXJldHVybiB0Lm5vZGVzO2xldCBpPXt3YXJuOigpPT5udWxsfSxuPXRoaXMucHJlZml4ZXIoKS5hZGRbdC5maXJzdC5wcm9wXTtuJiZuLnByb2Nlc3MmJm4ucHJvY2Vzcyh0LmZpcnN0LGkpO2ZvcihsZXQgcyBvZiB0Lm5vZGVzKXtmb3IobGV0IGEgb2YgdGhpcy5wcmVmaXhlcigpLnZhbHVlcygiYWRkIix0LmZpcnN0LnByb3ApKWEucHJvY2VzcyhzKTtVTy5zYXZlKHRoaXMuYWxsLHMpfXJldHVybiB0Lm5vZGVzfWlzTm90KGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyImJi9ub3RccyovaS50ZXN0KGUpfWlzT3IoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIiYmL1xzKm9yXHMqL2kudGVzdChlKX1pc1Byb3AoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmZS5sZW5ndGg9PT0xJiZ0eXBlb2YgZVswXT09InN0cmluZyJ9aXNIYWNrKGUsdCl7cmV0dXJuIW5ldyBSZWdFeHAoYChcXCh8XFxzKSR7Vk8uZXNjYXBlUmVnZXhwKHQpfTpgKS50ZXN0KGUpfXRvUmVtb3ZlKGUsdCl7bGV0W2ksbl09dGhpcy5wYXJzZShlKSxzPXRoaXMuYWxsLnVucHJlZml4ZWQoaSksYT10aGlzLmFsbC5jbGVhbmVyKCk7aWYoYS5yZW1vdmVbaV0mJmEucmVtb3ZlW2ldLnJlbW92ZSYmIXRoaXMuaXNIYWNrKHQscykpcmV0dXJuITA7Zm9yKGxldCBvIG9mIGEudmFsdWVzKCJyZW1vdmUiLHMpKWlmKG8uY2hlY2sobikpcmV0dXJuITA7cmV0dXJuITF9cmVtb3ZlKGUsdCl7bGV0IGk9MDtmb3IoO2k8ZS5sZW5ndGg7KXtpZighdGhpcy5pc05vdChlW2ktMV0pJiZ0aGlzLmlzUHJvcChlW2ldKSYmdGhpcy5pc09yKGVbaSsxXSkpe2lmKHRoaXMudG9SZW1vdmUoZVtpXVswXSx0KSl7ZS5zcGxpY2UoaSwyKTtjb250aW51ZX1pKz0yO2NvbnRpbnVlfXR5cGVvZiBlW2ldPT0ib2JqZWN0IiYmKGVbaV09dGhpcy5yZW1vdmUoZVtpXSx0KSksaSs9MX1yZXR1cm4gZX1jbGVhbkJyYWNrZXRzKGUpe3JldHVybiBlLm1hcCh0PT50eXBlb2YgdCE9Im9iamVjdCI/dDp0Lmxlbmd0aD09PTEmJnR5cGVvZiB0WzBdPT0ib2JqZWN0Ij90aGlzLmNsZWFuQnJhY2tldHModFswXSk6dGhpcy5jbGVhbkJyYWNrZXRzKHQpKX1jb252ZXJ0KGUpe2xldCB0PVsiIl07Zm9yKGxldCBpIG9mIGUpdC5wdXNoKFtgJHtpLnByb3B9OiAke2kudmFsdWV9YF0pLHQucHVzaCgiIG9yICIpO3JldHVybiB0W3QubGVuZ3RoLTFdPSIiLHR9bm9ybWFsaXplKGUpe2lmKHR5cGVvZiBlIT0ib2JqZWN0IilyZXR1cm4gZTtpZihlPWUuZmlsdGVyKHQ9PnQhPT0iIiksdHlwZW9mIGVbMF09PSJzdHJpbmciKXtsZXQgdD1lWzBdLnRyaW0oKTtpZih0LmluY2x1ZGVzKCI6Iil8fHQ9PT0ic2VsZWN0b3IifHx0PT09Im5vdCBzZWxlY3RvciIpcmV0dXJuW2x1LnN0cmluZ2lmeShlKV19cmV0dXJuIGUubWFwKHQ9PnRoaXMubm9ybWFsaXplKHQpKX1hZGQoZSx0KXtyZXR1cm4gZS5tYXAoaT0+e2lmKHRoaXMuaXNQcm9wKGkpKXtsZXQgbj10aGlzLnByZWZpeGVkKGlbMF0pO3JldHVybiBuLmxlbmd0aD4xP3RoaXMuY29udmVydChuKTppfXJldHVybiB0eXBlb2YgaT09Im9iamVjdCI/dGhpcy5hZGQoaSx0KTppfSl9cHJvY2VzcyhlKXtsZXQgdD1sdS5wYXJzZShlLnBhcmFtcyk7dD10aGlzLm5vcm1hbGl6ZSh0KSx0PXRoaXMucmVtb3ZlKHQsZS5wYXJhbXMpLHQ9dGhpcy5hZGQodCxlLnBhcmFtcyksdD10aGlzLmNsZWFuQnJhY2tldHModCksZS5wYXJhbXM9bHUuc3RyaW5naWZ5KHQpfWRpc2FibGVkKGUpe2lmKCF0aGlzLmFsbC5vcHRpb25zLmdyaWQmJihlLnByb3A9PT0iZGlzcGxheSImJmUudmFsdWUuaW5jbHVkZXMoImdyaWQiKXx8ZS5wcm9wLmluY2x1ZGVzKCJncmlkIil8fGUucHJvcD09PSJqdXN0aWZ5LWl0ZW1zIikpcmV0dXJuITA7aWYodGhpcy5hbGwub3B0aW9ucy5mbGV4Ym94PT09ITEpe2lmKGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZS5pbmNsdWRlcygiZmxleCIpKXJldHVybiEwO2xldCB0PVsib3JkZXIiLCJqdXN0aWZ5LWNvbnRlbnQiLCJhbGlnbi1pdGVtcyIsImFsaWduLWNvbnRlbnQiXTtpZihlLnByb3AuaW5jbHVkZXMoImZsZXgiKXx8dC5pbmNsdWRlcyhlLnByb3ApKXJldHVybiEwfXJldHVybiExfX07QWIuZXhwb3J0cz1TYn0pO3ZhciBPYj14KCh5JCxFYik9Pnt1KCk7dmFyIF9iPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5wcmVmaXg9dCx0aGlzLnByZWZpeGVkPWUucHJlZml4ZWQodGhpcy5wcmVmaXgpLHRoaXMucmVnZXhwPWUucmVnZXhwKHRoaXMucHJlZml4KSx0aGlzLnByZWZpeGVkcz1lLnBvc3NpYmxlKCkubWFwKGk9PltlLnByZWZpeGVkKGkpLGUucmVnZXhwKGkpXSksdGhpcy51bnByZWZpeGVkPWUubmFtZSx0aGlzLm5hbWVSZWdleHA9ZS5yZWdleHAoKX1pc0hhY2soZSl7bGV0IHQ9ZS5wYXJlbnQuaW5kZXgoZSkrMSxpPWUucGFyZW50Lm5vZGVzO2Zvcig7dDxpLmxlbmd0aDspe2xldCBuPWlbdF0uc2VsZWN0b3I7aWYoIW4pcmV0dXJuITA7aWYobi5pbmNsdWRlcyh0aGlzLnVucHJlZml4ZWQpJiZuLm1hdGNoKHRoaXMubmFtZVJlZ2V4cCkpcmV0dXJuITE7bGV0IHM9ITE7Zm9yKGxldFthLG9db2YgdGhpcy5wcmVmaXhlZHMpaWYobi5pbmNsdWRlcyhhKSYmbi5tYXRjaChvKSl7cz0hMDticmVha31pZighcylyZXR1cm4hMDt0Kz0xfXJldHVybiEwfWNoZWNrKGUpe3JldHVybiEoIWUuc2VsZWN0b3IuaW5jbHVkZXModGhpcy5wcmVmaXhlZCl8fCFlLnNlbGVjdG9yLm1hdGNoKHRoaXMucmVnZXhwKXx8dGhpcy5pc0hhY2soZSkpfX07RWIuZXhwb3J0cz1fYn0pO3ZhciBrcj14KChiJCxSYik9Pnt1KCk7dmFye2xpc3Q6SE99PSRlKCksV089T2IoKSxHTz13cigpLFFPPU10KCksWU89X2UoKSxUYj1jbGFzcyBleHRlbmRzIEdPe2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSk7dGhpcy5yZWdleHBDYWNoZT1uZXcgTWFwfWNoZWNrKGUpe3JldHVybiBlLnNlbGVjdG9yLmluY2x1ZGVzKHRoaXMubmFtZSk/ISFlLnNlbGVjdG9yLm1hdGNoKHRoaXMucmVnZXhwKCkpOiExfXByZWZpeGVkKGUpe3JldHVybiB0aGlzLm5hbWUucmVwbGFjZSgvXihcVyopLyxgJDEke2V9YCl9cmVnZXhwKGUpe2lmKCF0aGlzLnJlZ2V4cENhY2hlLmhhcyhlKSl7bGV0IHQ9ZT90aGlzLnByZWZpeGVkKGUpOnRoaXMubmFtZTt0aGlzLnJlZ2V4cENhY2hlLnNldChlLG5ldyBSZWdFeHAoYChefFteOiInPV0pJHtZTy5lc2NhcGVSZWdleHAodCl9YCwiZ2kiKSl9cmV0dXJuIHRoaXMucmVnZXhwQ2FjaGUuZ2V0KGUpfXBvc3NpYmxlKCl7cmV0dXJuIFFPLnByZWZpeGVzKCl9cHJlZml4ZWRzKGUpe2lmKGUuX2F1dG9wcmVmaXhlclByZWZpeGVkcyl7aWYoZS5fYXV0b3ByZWZpeGVyUHJlZml4ZWRzW3RoaXMubmFtZV0pcmV0dXJuIGUuX2F1dG9wcmVmaXhlclByZWZpeGVkc31lbHNlIGUuX2F1dG9wcmVmaXhlclByZWZpeGVkcz17fTtsZXQgdD17fTtpZihlLnNlbGVjdG9yLmluY2x1ZGVzKCIsIikpe2xldCBuPUhPLmNvbW1hKGUuc2VsZWN0b3IpLmZpbHRlcihzPT5zLmluY2x1ZGVzKHRoaXMubmFtZSkpO2ZvcihsZXQgcyBvZiB0aGlzLnBvc3NpYmxlKCkpdFtzXT1uLm1hcChhPT50aGlzLnJlcGxhY2UoYSxzKSkuam9pbigiLCAiKX1lbHNlIGZvcihsZXQgaSBvZiB0aGlzLnBvc3NpYmxlKCkpdFtpXT10aGlzLnJlcGxhY2UoZS5zZWxlY3RvcixpKTtyZXR1cm4gZS5fYXV0b3ByZWZpeGVyUHJlZml4ZWRzW3RoaXMubmFtZV09dCxlLl9hdXRvcHJlZml4ZXJQcmVmaXhlZHN9YWxyZWFkeShlLHQsaSl7bGV0IG49ZS5wYXJlbnQuaW5kZXgoZSktMTtmb3IoO24+PTA7KXtsZXQgcz1lLnBhcmVudC5ub2Rlc1tuXTtpZihzLnR5cGUhPT0icnVsZSIpcmV0dXJuITE7bGV0IGE9ITE7Zm9yKGxldCBvIGluIHRbdGhpcy5uYW1lXSl7bGV0IGw9dFt0aGlzLm5hbWVdW29dO2lmKHMuc2VsZWN0b3I9PT1sKXtpZihpPT09bylyZXR1cm4hMDthPSEwO2JyZWFrfX1pZighYSlyZXR1cm4hMTtuLT0xfXJldHVybiExfXJlcGxhY2UoZSx0KXtyZXR1cm4gZS5yZXBsYWNlKHRoaXMucmVnZXhwKCksYCQxJHt0aGlzLnByZWZpeGVkKHQpfWApfWFkZChlLHQpe2xldCBpPXRoaXMucHJlZml4ZWRzKGUpO2lmKHRoaXMuYWxyZWFkeShlLGksdCkpcmV0dXJuO2xldCBuPXRoaXMuY2xvbmUoZSx7c2VsZWN0b3I6aVt0aGlzLm5hbWVdW3RdfSk7ZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9b2xkKGUpe3JldHVybiBuZXcgV08odGhpcyxlKX19O1JiLmV4cG9ydHM9VGJ9KTt2YXIgRGI9eCgodyQsSWIpPT57dSgpO3ZhciBLTz13cigpLFBiPWNsYXNzIGV4dGVuZHMgS097YWRkKGUsdCl7bGV0IGk9dCtlLm5hbWU7aWYoZS5wYXJlbnQuc29tZShhPT5hLm5hbWU9PT1pJiZhLnBhcmFtcz09PWUucGFyYW1zKSlyZXR1cm47bGV0IHM9dGhpcy5jbG9uZShlLHtuYW1lOml9KTtyZXR1cm4gZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUscyl9cHJvY2VzcyhlKXtsZXQgdD10aGlzLnBhcmVudFByZWZpeChlKTtmb3IobGV0IGkgb2YgdGhpcy5wcmVmaXhlcykoIXR8fHQ9PT1pKSYmdGhpcy5hZGQoZSxpKX19O0liLmV4cG9ydHM9UGJ9KTt2YXIgJGI9eCgodiQscWIpPT57dSgpO3ZhciBYTz1rcigpLHV1PWNsYXNzIGV4dGVuZHMgWE97cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLXdlYmtpdC0iPyI6LXdlYmtpdC1mdWxsLXNjcmVlbiI6ZT09PSItbW96LSI/IjotbW96LWZ1bGwtc2NyZWVuIjpgOiR7ZX1mdWxsc2NyZWVuYH19O3V1Lm5hbWVzPVsiOmZ1bGxzY3JlZW4iXTtxYi5leHBvcnRzPXV1fSk7dmFyIE1iPXgoKHgkLExiKT0+e3UoKTt2YXIgWk89a3IoKSxmdT1jbGFzcyBleHRlbmRzIFpPe3Bvc3NpYmxlKCl7cmV0dXJuIHN1cGVyLnBvc3NpYmxlKCkuY29uY2F0KFsiLW1vei0gb2xkIiwiLW1zLSBvbGQiXSl9cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLXdlYmtpdC0iPyI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiOmU9PT0iLW1zLSI/Ijo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIjplPT09Ii1tcy0gb2xkIj8iOi1tcy1pbnB1dC1wbGFjZWhvbGRlciI6ZT09PSItbW96LSBvbGQiPyI6LW1vei1wbGFjZWhvbGRlciI6YDo6JHtlfXBsYWNlaG9sZGVyYH19O2Z1Lm5hbWVzPVsiOjpwbGFjZWhvbGRlciJdO0xiLmV4cG9ydHM9ZnV9KTt2YXIgQmI9eCgoayQsTmIpPT57dSgpO3ZhciBKTz1rcigpLGN1PWNsYXNzIGV4dGVuZHMgSk97cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLW1zLSI/IjotbXMtaW5wdXQtcGxhY2Vob2xkZXIiOmA6JHtlfXBsYWNlaG9sZGVyLXNob3duYH19O2N1Lm5hbWVzPVsiOnBsYWNlaG9sZGVyLXNob3duIl07TmIuZXhwb3J0cz1jdX0pO3ZhciBqYj14KChTJCxGYik9Pnt1KCk7dmFyIGVUPWtyKCksdFQ9X2UoKSxwdT1jbGFzcyBleHRlbmRzIGVUe2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSk7dGhpcy5wcmVmaXhlcyYmKHRoaXMucHJlZml4ZXM9dFQudW5pcSh0aGlzLnByZWZpeGVzLm1hcChuPT4iLXdlYmtpdC0iKSkpfXByZWZpeGVkKGUpe3JldHVybiBlPT09Ii13ZWJraXQtIj8iOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiI6YDo6JHtlfWZpbGUtc2VsZWN0b3ItYnV0dG9uYH19O3B1Lm5hbWVzPVsiOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiJdO0ZiLmV4cG9ydHM9cHV9KTt2YXIgUGU9eCgoQSQsemIpPT57dSgpO3piLmV4cG9ydHM9ZnVuY3Rpb24ocil7bGV0IGU7cmV0dXJuIHI9PT0iLXdlYmtpdC0gMjAwOSJ8fHI9PT0iLW1vei0iP2U9MjAwOTpyPT09Ii1tcy0iP2U9MjAxMjpyPT09Ii13ZWJraXQtIiYmKGU9ImZpbmFsIikscj09PSItd2Via2l0LSAyMDA5IiYmKHI9Ii13ZWJraXQtIiksW2Uscl19fSk7dmFyIFdiPXgoKEMkLEhiKT0+e3UoKTt2YXIgVWI9JGUoKS5saXN0LFZiPVBlKCksclQ9aigpLFNyPWNsYXNzIGV4dGVuZHMgclR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1WYih0KSxpPT09MjAwOT90KyJib3gtZmxleCI6c3VwZXIucHJlZml4ZWQoZSx0KX1ub3JtYWxpemUoKXtyZXR1cm4iZmxleCJ9c2V0KGUsdCl7bGV0IGk9VmIodClbMF07aWYoaT09PTIwMDkpcmV0dXJuIGUudmFsdWU9VWIuc3BhY2UoZS52YWx1ZSlbMF0sZS52YWx1ZT1Tci5vbGRWYWx1ZXNbZS52YWx1ZV18fGUudmFsdWUsc3VwZXIuc2V0KGUsdCk7aWYoaT09PTIwMTIpe2xldCBuPVViLnNwYWNlKGUudmFsdWUpO24ubGVuZ3RoPT09MyYmblsyXT09PSIwIiYmKGUudmFsdWU9bi5zbGljZSgwLDIpLmNvbmNhdCgiMHB4Iikuam9pbigiICIpKX1yZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtTci5uYW1lcz1bImZsZXgiLCJib3gtZmxleCJdO1NyLm9sZFZhbHVlcz17YXV0bzoiMSIsbm9uZToiMCJ9O0hiLmV4cG9ydHM9U3J9KTt2YXIgWWI9eCgoXyQsUWIpPT57dSgpO3ZhciBHYj1QZSgpLGlUPWooKSxkdT1jbGFzcyBleHRlbmRzIGlUe3ByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09R2IodCksaT09PTIwMDk/dCsiYm94LW9yZGluYWwtZ3JvdXAiOmk9PT0yMDEyP3QrImZsZXgtb3JkZXIiOnN1cGVyLnByZWZpeGVkKGUsdCl9bm9ybWFsaXplKCl7cmV0dXJuIm9yZGVyIn1zZXQoZSx0KXtyZXR1cm4gR2IodClbMF09PT0yMDA5JiYvXGQvLnRlc3QoZS52YWx1ZSk/KGUudmFsdWU9KHBhcnNlSW50KGUudmFsdWUpKzEpLnRvU3RyaW5nKCksc3VwZXIuc2V0KGUsdCkpOnN1cGVyLnNldChlLHQpfX07ZHUubmFtZXM9WyJvcmRlciIsImZsZXgtb3JkZXIiLCJib3gtb3JkaW5hbC1ncm91cCJdO1FiLmV4cG9ydHM9ZHV9KTt2YXIgWGI9eCgoRSQsS2IpPT57dSgpO3ZhciBuVD1qKCksaHU9Y2xhc3MgZXh0ZW5kcyBuVHtjaGVjayhlKXtsZXQgdD1lLnZhbHVlO3JldHVybiF0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImFscGhhKCIpJiYhdC5pbmNsdWRlcygiRFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQiKSYmIXQuaW5jbHVkZXMoImRhdGE6aW1hZ2Uvc3ZnK3htbCIpfX07aHUubmFtZXM9WyJmaWx0ZXIiXTtLYi5leHBvcnRzPWh1fSk7dmFyIEpiPXgoKE8kLFpiKT0+e3UoKTt2YXIgc1Q9aigpLG11PWNsYXNzIGV4dGVuZHMgc1R7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9dGhpcy5jbG9uZShlKSxhPWUucHJvcC5yZXBsYWNlKC9lbmQkLywic3RhcnQiKSxvPXQrZS5wcm9wLnJlcGxhY2UoL2VuZCQvLCJzcGFuIik7aWYoIWUucGFyZW50LnNvbWUobD0+bC5wcm9wPT09bykpe2lmKHMucHJvcD1vLGUudmFsdWUuaW5jbHVkZXMoInNwYW4iKSlzLnZhbHVlPWUudmFsdWUucmVwbGFjZSgvc3BhblxzL2ksIiIpO2Vsc2V7bGV0IGw7aWYoZS5wYXJlbnQud2Fsa0RlY2xzKGEsYz0+e2w9Y30pLGwpe2xldCBjPU51bWJlcihlLnZhbHVlKS1OdW1iZXIobC52YWx1ZSkrIiI7cy52YWx1ZT1jfWVsc2UgZS53YXJuKG4sYENhbiBub3QgcHJlZml4ICR7ZS5wcm9wfSAoJHthfSBpcyBub3QgZm91bmQpYCl9ZS5jbG9uZUJlZm9yZShzKX19fTttdS5uYW1lcz1bImdyaWQtcm93LWVuZCIsImdyaWQtY29sdW1uLWVuZCJdO1piLmV4cG9ydHM9bXV9KTt2YXIgdHc9eCgoVCQsZXcpPT57dSgpO3ZhciBhVD1qKCksZ3U9Y2xhc3MgZXh0ZW5kcyBhVHtjaGVjayhlKXtyZXR1cm4hZS52YWx1ZS5zcGxpdCgvXHMrLykuc29tZSh0PT57bGV0IGk9dC50b0xvd2VyQ2FzZSgpO3JldHVybiBpPT09InJldmVyc2UifHxpPT09ImFsdGVybmF0ZS1yZXZlcnNlIn0pfX07Z3UubmFtZXM9WyJhbmltYXRpb24iLCJhbmltYXRpb24tZGlyZWN0aW9uIl07ZXcuZXhwb3J0cz1ndX0pO3ZhciBpdz14KChSJCxydyk9Pnt1KCk7dmFyIG9UPVBlKCksbFQ9aigpLHl1PWNsYXNzIGV4dGVuZHMgbFR7aW5zZXJ0KGUsdCxpKXtsZXQgbjtpZihbbix0XT1vVCh0KSxuIT09MjAwOSlyZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKTtsZXQgcz1lLnZhbHVlLnNwbGl0KC9ccysvKS5maWx0ZXIoZD0+ZCE9PSJ3cmFwIiYmZCE9PSJub3dyYXAiJiYid3JhcC1yZXZlcnNlIik7aWYocy5sZW5ndGg9PT0wfHxlLnBhcmVudC5zb21lKGQ9PmQucHJvcD09PXQrImJveC1vcmllbnQifHxkLnByb3A9PT10KyJib3gtZGlyZWN0aW9uIikpcmV0dXJuO2xldCBvPXNbMF0sbD1vLmluY2x1ZGVzKCJyb3ciKT8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixjPW8uaW5jbHVkZXMoInJldmVyc2UiKT8icmV2ZXJzZSI6Im5vcm1hbCIsZj10aGlzLmNsb25lKGUpO3JldHVybiBmLnByb3A9dCsiYm94LW9yaWVudCIsZi52YWx1ZT1sLHRoaXMubmVlZENhc2NhZGUoZSkmJihmLnJhd3MuYmVmb3JlPXRoaXMuY2FsY0JlZm9yZShpLGUsdCkpLGUucGFyZW50Lmluc2VydEJlZm9yZShlLGYpLGY9dGhpcy5jbG9uZShlKSxmLnByb3A9dCsiYm94LWRpcmVjdGlvbiIsZi52YWx1ZT1jLHRoaXMubmVlZENhc2NhZGUoZSkmJihmLnJhd3MuYmVmb3JlPXRoaXMuY2FsY0JlZm9yZShpLGUsdCkpLGUucGFyZW50Lmluc2VydEJlZm9yZShlLGYpfX07eXUubmFtZXM9WyJmbGV4LWZsb3ciLCJib3gtZGlyZWN0aW9uIiwiYm94LW9yaWVudCJdO3J3LmV4cG9ydHM9eXV9KTt2YXIgc3c9eCgoUCQsbncpPT57dSgpO3ZhciB1VD1QZSgpLGZUPWooKSxidT1jbGFzcyBleHRlbmRzIGZUe25vcm1hbGl6ZSgpe3JldHVybiJmbGV4In1wcmVmaXhlZChlLHQpe2xldCBpO3JldHVybltpLHRdPXVUKHQpLGk9PT0yMDA5P3QrImJveC1mbGV4IjppPT09MjAxMj90KyJmbGV4LXBvc2l0aXZlIjpzdXBlci5wcmVmaXhlZChlLHQpfX07YnUubmFtZXM9WyJmbGV4LWdyb3ciLCJmbGV4LXBvc2l0aXZlIl07bncuZXhwb3J0cz1idX0pO3ZhciBvdz14KChJJCxhdyk9Pnt1KCk7dmFyIGNUPVBlKCkscFQ9aigpLHd1PWNsYXNzIGV4dGVuZHMgcFR7c2V0KGUsdCl7aWYoY1QodClbMF0hPT0yMDA5KXJldHVybiBzdXBlci5zZXQoZSx0KX19O3d1Lm5hbWVzPVsiZmxleC13cmFwIl07YXcuZXhwb3J0cz13dX0pO3ZhciB1dz14KChEJCxsdyk9Pnt1KCk7dmFyIGRUPWooKSxBcj1CdCgpLHZ1PWNsYXNzIGV4dGVuZHMgZFR7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9QXIucGFyc2UoZSksW2Esb109QXIudHJhbnNsYXRlKHMsMCwyKSxbbCxjXT1Bci50cmFuc2xhdGUocywxLDMpO1tbImdyaWQtcm93IixhXSxbImdyaWQtcm93LXNwYW4iLG9dLFsiZ3JpZC1jb2x1bW4iLGxdLFsiZ3JpZC1jb2x1bW4tc3BhbiIsY11dLmZvckVhY2goKFtmLGRdKT0+e0FyLmluc2VydERlY2woZSxmLGQpfSksQXIud2FyblRlbXBsYXRlU2VsZWN0b3JOb3RGb3VuZChlLG4pLEFyLndhcm5JZkdyaWRSb3dDb2x1bW5FeGlzdHMoZSxuKX19O3Z1Lm5hbWVzPVsiZ3JpZC1hcmVhIl07bHcuZXhwb3J0cz12dX0pO3ZhciBjdz14KChxJCxmdyk9Pnt1KCk7dmFyIGhUPWooKSxCaT1CdCgpLHh1PWNsYXNzIGV4dGVuZHMgaFR7aW5zZXJ0KGUsdCxpKXtpZih0IT09Ii1tcy0iKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2lmKGUucGFyZW50LnNvbWUoYT0+YS5wcm9wPT09Ii1tcy1ncmlkLXJvdy1hbGlnbiIpKXJldHVybjtsZXRbW24sc11dPUJpLnBhcnNlKGUpO3M/KEJpLmluc2VydERlY2woZSwiZ3JpZC1yb3ctYWxpZ24iLG4pLEJpLmluc2VydERlY2woZSwiZ3JpZC1jb2x1bW4tYWxpZ24iLHMpKTooQmkuaW5zZXJ0RGVjbChlLCJncmlkLXJvdy1hbGlnbiIsbiksQmkuaW5zZXJ0RGVjbChlLCJncmlkLWNvbHVtbi1hbGlnbiIsbikpfX07eHUubmFtZXM9WyJwbGFjZS1zZWxmIl07ZncuZXhwb3J0cz14dX0pO3ZhciBkdz14KCgkJCxwdyk9Pnt1KCk7dmFyIG1UPWooKSxrdT1jbGFzcyBleHRlbmRzIG1Ue2NoZWNrKGUpe2xldCB0PWUudmFsdWU7cmV0dXJuIXQuaW5jbHVkZXMoIi8iKXx8dC5pbmNsdWRlcygic3BhbiIpfW5vcm1hbGl6ZShlKXtyZXR1cm4gZS5yZXBsYWNlKCItc3RhcnQiLCIiKX1wcmVmaXhlZChlLHQpe2xldCBpPXN1cGVyLnByZWZpeGVkKGUsdCk7cmV0dXJuIHQ9PT0iLW1zLSImJihpPWkucmVwbGFjZSgiLXN0YXJ0IiwiIikpLGl9fTtrdS5uYW1lcz1bImdyaWQtcm93LXN0YXJ0IiwiZ3JpZC1jb2x1bW4tc3RhcnQiXTtwdy5leHBvcnRzPWt1fSk7dmFyIGd3PXgoKEwkLG13KT0+e3UoKTt2YXIgaHc9UGUoKSxnVD1qKCksQ3I9Y2xhc3MgZXh0ZW5kcyBnVHtjaGVjayhlKXtyZXR1cm4gZS5wYXJlbnQmJiFlLnBhcmVudC5zb21lKHQ9PnQucHJvcCYmdC5wcm9wLnN0YXJ0c1dpdGgoImdyaWQtIikpfXByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09aHcodCksaT09PTIwMTI/dCsiZmxleC1pdGVtLWFsaWduIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJhbGlnbi1zZWxmIn1zZXQoZSx0KXtsZXQgaT1odyh0KVswXTtpZihpPT09MjAxMilyZXR1cm4gZS52YWx1ZT1Dci5vbGRWYWx1ZXNbZS52YWx1ZV18fGUudmFsdWUsc3VwZXIuc2V0KGUsdCk7aWYoaT09PSJmaW5hbCIpcmV0dXJuIHN1cGVyLnNldChlLHQpfX07Q3IubmFtZXM9WyJhbGlnbi1zZWxmIiwiZmxleC1pdGVtLWFsaWduIl07Q3Iub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQifTttdy5leHBvcnRzPUNyfSk7dmFyIGJ3PXgoKE0kLHl3KT0+e3UoKTt2YXIgeVQ9aigpLGJUPV9lKCksU3U9Y2xhc3MgZXh0ZW5kcyB5VHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSx0LGkpO3RoaXMucHJlZml4ZXMmJih0aGlzLnByZWZpeGVzPWJULnVuaXEodGhpcy5wcmVmaXhlcy5tYXAobj0+bj09PSItbXMtIj8iLXdlYmtpdC0iOm4pKSl9fTtTdS5uYW1lcz1bImFwcGVhcmFuY2UiXTt5dy5leHBvcnRzPVN1fSk7dmFyIHh3PXgoKE4kLHZ3KT0+e3UoKTt2YXIgd3c9UGUoKSx3VD1qKCksQXU9Y2xhc3MgZXh0ZW5kcyB3VHtub3JtYWxpemUoKXtyZXR1cm4iZmxleC1iYXNpcyJ9cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT13dyh0KSxpPT09MjAxMj90KyJmbGV4LXByZWZlcnJlZC1zaXplIjpzdXBlci5wcmVmaXhlZChlLHQpfXNldChlLHQpe2xldCBpO2lmKFtpLHRdPXd3KHQpLGk9PT0yMDEyfHxpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtBdS5uYW1lcz1bImZsZXgtYmFzaXMiLCJmbGV4LXByZWZlcnJlZC1zaXplIl07dncuZXhwb3J0cz1BdX0pO3ZhciBTdz14KChCJCxrdyk9Pnt1KCk7dmFyIHZUPWooKSxDdT1jbGFzcyBleHRlbmRzIHZUe25vcm1hbGl6ZSgpe3JldHVybiB0aGlzLm5hbWUucmVwbGFjZSgiYm94LWltYWdlIiwiYm9yZGVyIil9cHJlZml4ZWQoZSx0KXtsZXQgaT1zdXBlci5wcmVmaXhlZChlLHQpO3JldHVybiB0PT09Ii13ZWJraXQtIiYmKGk9aS5yZXBsYWNlKCJib3JkZXIiLCJib3gtaW1hZ2UiKSksaX19O0N1Lm5hbWVzPVsibWFzay1ib3JkZXIiLCJtYXNrLWJvcmRlci1zb3VyY2UiLCJtYXNrLWJvcmRlci1zbGljZSIsIm1hc2stYm9yZGVyLXdpZHRoIiwibWFzay1ib3JkZXItb3V0c2V0IiwibWFzay1ib3JkZXItcmVwZWF0IiwibWFzay1ib3gtaW1hZ2UiLCJtYXNrLWJveC1pbWFnZS1zb3VyY2UiLCJtYXNrLWJveC1pbWFnZS1zbGljZSIsIm1hc2stYm94LWltYWdlLXdpZHRoIiwibWFzay1ib3gtaW1hZ2Utb3V0c2V0IiwibWFzay1ib3gtaW1hZ2UtcmVwZWF0Il07a3cuZXhwb3J0cz1DdX0pO3ZhciBDdz14KChGJCxBdyk9Pnt1KCk7dmFyIHhUPWooKSxsdD1jbGFzcyBleHRlbmRzIHhUe2luc2VydChlLHQsaSl7bGV0IG49ZS5wcm9wPT09Im1hc2stY29tcG9zaXRlIixzO24/cz1lLnZhbHVlLnNwbGl0KCIsIik6cz1lLnZhbHVlLm1hdGNoKGx0LnJlZ2V4cCl8fFtdLHM9cy5tYXAoYz0+Yy50cmltKCkpLmZpbHRlcihjPT5jKTtsZXQgYT1zLmxlbmd0aCxvO2lmKGEmJihvPXRoaXMuY2xvbmUoZSksby52YWx1ZT1zLm1hcChjPT5sdC5vbGRWYWx1ZXNbY118fGMpLmpvaW4oIiwgIikscy5pbmNsdWRlcygiaW50ZXJzZWN0IikmJihvLnZhbHVlKz0iLCB4b3IiKSxvLnByb3A9dCsibWFzay1jb21wb3NpdGUiKSxuKXJldHVybiBhPyh0aGlzLm5lZWRDYXNjYWRlKGUpJiYoby5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxvKSk6dm9pZCAwO2xldCBsPXRoaXMuY2xvbmUoZSk7cmV0dXJuIGwucHJvcD10K2wucHJvcCxhJiYobC52YWx1ZT1sLnZhbHVlLnJlcGxhY2UobHQucmVnZXhwLCIiKSksdGhpcy5uZWVkQ2FzY2FkZShlKSYmKGwucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbCksYT8odGhpcy5uZWVkQ2FzY2FkZShlKSYmKG8ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbykpOmV9fTtsdC5uYW1lcz1bIm1hc2siLCJtYXNrLWNvbXBvc2l0ZSJdO2x0Lm9sZFZhbHVlcz17YWRkOiJzb3VyY2Utb3ZlciIsc3VidHJhY3Q6InNvdXJjZS1vdXQiLGludGVyc2VjdDoic291cmNlLWluIixleGNsdWRlOiJ4b3IifTtsdC5yZWdleHA9bmV3IFJlZ0V4cChgXFxzKygke09iamVjdC5rZXlzKGx0Lm9sZFZhbHVlcykuam9pbigifCIpfSlcXGIoPyFcXCkpXFxzKig/PVssXSlgLCJpZyIpO0F3LmV4cG9ydHM9bHR9KTt2YXIgT3c9eCgoaiQsRXcpPT57dSgpO3ZhciBfdz1QZSgpLGtUPWooKSxfcj1jbGFzcyBleHRlbmRzIGtUe3ByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09X3codCksaT09PTIwMDk/dCsiYm94LWFsaWduIjppPT09MjAxMj90KyJmbGV4LWFsaWduIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJhbGlnbi1pdGVtcyJ9c2V0KGUsdCl7bGV0IGk9X3codClbMF07cmV0dXJuKGk9PT0yMDA5fHxpPT09MjAxMikmJihlLnZhbHVlPV9yLm9sZFZhbHVlc1tlLnZhbHVlXXx8ZS52YWx1ZSksc3VwZXIuc2V0KGUsdCl9fTtfci5uYW1lcz1bImFsaWduLWl0ZW1zIiwiZmxleC1hbGlnbiIsImJveC1hbGlnbiJdO19yLm9sZFZhbHVlcz17ImZsZXgtZW5kIjoiZW5kIiwiZmxleC1zdGFydCI6InN0YXJ0In07RXcuZXhwb3J0cz1fcn0pO3ZhciBSdz14KCh6JCxUdyk9Pnt1KCk7dmFyIFNUPWooKSxfdT1jbGFzcyBleHRlbmRzIFNUe3NldChlLHQpe3JldHVybiB0PT09Ii1tcy0iJiZlLnZhbHVlPT09ImNvbnRhaW4iJiYoZS52YWx1ZT0iZWxlbWVudCIpLHN1cGVyLnNldChlLHQpfWluc2VydChlLHQsaSl7aWYoIShlLnZhbHVlPT09ImFsbCImJnQ9PT0iLW1zLSIpKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpfX07X3UubmFtZXM9WyJ1c2VyLXNlbGVjdCJdO1R3LmV4cG9ydHM9X3V9KTt2YXIgRHc9eCgoVSQsSXcpPT57dSgpO3ZhciBQdz1QZSgpLEFUPWooKSxFdT1jbGFzcyBleHRlbmRzIEFUe25vcm1hbGl6ZSgpe3JldHVybiJmbGV4LXNocmluayJ9cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1Qdyh0KSxpPT09MjAxMj90KyJmbGV4LW5lZ2F0aXZlIjpzdXBlci5wcmVmaXhlZChlLHQpfXNldChlLHQpe2xldCBpO2lmKFtpLHRdPVB3KHQpLGk9PT0yMDEyfHxpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtFdS5uYW1lcz1bImZsZXgtc2hyaW5rIiwiZmxleC1uZWdhdGl2ZSJdO0l3LmV4cG9ydHM9RXV9KTt2YXIgJHc9eCgoViQscXcpPT57dSgpO3ZhciBDVD1qKCksT3U9Y2xhc3MgZXh0ZW5kcyBDVHtwcmVmaXhlZChlLHQpe3JldHVybmAke3R9Y29sdW1uLSR7ZX1gfW5vcm1hbGl6ZShlKXtyZXR1cm4gZS5pbmNsdWRlcygiaW5zaWRlIik/ImJyZWFrLWluc2lkZSI6ZS5pbmNsdWRlcygiYmVmb3JlIik/ImJyZWFrLWJlZm9yZSI6ImJyZWFrLWFmdGVyIn1zZXQoZSx0KXtyZXR1cm4oZS5wcm9wPT09ImJyZWFrLWluc2lkZSImJmUudmFsdWU9PT0iYXZvaWQtY29sdW1uInx8ZS52YWx1ZT09PSJhdm9pZC1wYWdlIikmJihlLnZhbHVlPSJhdm9pZCIpLHN1cGVyLnNldChlLHQpfWluc2VydChlLHQsaSl7aWYoZS5wcm9wIT09ImJyZWFrLWluc2lkZSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7aWYoISgvcmVnaW9uL2kudGVzdChlLnZhbHVlKXx8L3BhZ2UvaS50ZXN0KGUudmFsdWUpKSlyZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKX19O091Lm5hbWVzPVsiYnJlYWstaW5zaWRlIiwicGFnZS1icmVhay1pbnNpZGUiLCJjb2x1bW4tYnJlYWstaW5zaWRlIiwiYnJlYWstYmVmb3JlIiwicGFnZS1icmVhay1iZWZvcmUiLCJjb2x1bW4tYnJlYWstYmVmb3JlIiwiYnJlYWstYWZ0ZXIiLCJwYWdlLWJyZWFrLWFmdGVyIiwiY29sdW1uLWJyZWFrLWFmdGVyIl07cXcuZXhwb3J0cz1PdX0pO3ZhciBNdz14KChIJCxMdyk9Pnt1KCk7dmFyIF9UPWooKSxUdT1jbGFzcyBleHRlbmRzIF9Ue3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQrInByaW50LWNvbG9yLWFkanVzdCJ9bm9ybWFsaXplKCl7cmV0dXJuImNvbG9yLWFkanVzdCJ9fTtUdS5uYW1lcz1bImNvbG9yLWFkanVzdCIsInByaW50LWNvbG9yLWFkanVzdCJdO0x3LmV4cG9ydHM9VHV9KTt2YXIgQnc9eCgoVyQsTncpPT57dSgpO3ZhciBFVD1qKCksRXI9Y2xhc3MgZXh0ZW5kcyBFVHtpbnNlcnQoZSx0LGkpe2lmKHQ9PT0iLW1zLSIpe2xldCBuPXRoaXMuc2V0KHRoaXMuY2xvbmUoZSksdCk7dGhpcy5uZWVkQ2FzY2FkZShlKSYmKG4ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSk7bGV0IHM9Imx0ciI7cmV0dXJuIGUucGFyZW50Lm5vZGVzLmZvckVhY2goYT0+e2EucHJvcD09PSJkaXJlY3Rpb24iJiYoYS52YWx1ZT09PSJydGwifHxhLnZhbHVlPT09Imx0ciIpJiYocz1hLnZhbHVlKX0pLG4udmFsdWU9RXIubXNWYWx1ZXNbc11bZS52YWx1ZV18fGUudmFsdWUsZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9cmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSl9fTtFci5uYW1lcz1bIndyaXRpbmctbW9kZSJdO0VyLm1zVmFsdWVzPXtsdHI6eyJob3Jpem9udGFsLXRiIjoibHItdGIiLCJ2ZXJ0aWNhbC1ybCI6InRiLXJsIiwidmVydGljYWwtbHIiOiJ0Yi1sciJ9LHJ0bDp7Imhvcml6b250YWwtdGIiOiJybC10YiIsInZlcnRpY2FsLXJsIjoiYnQtcmwiLCJ2ZXJ0aWNhbC1sciI6ImJ0LWxyIn19O053LmV4cG9ydHM9RXJ9KTt2YXIganc9eCgoRyQsRncpPT57dSgpO3ZhciBPVD1qKCksUnU9Y2xhc3MgZXh0ZW5kcyBPVHtzZXQoZSx0KXtyZXR1cm4gZS52YWx1ZT1lLnZhbHVlLnJlcGxhY2UoL1xzK2ZpbGwoXHMpLywiJDEiKSxzdXBlci5zZXQoZSx0KX19O1J1Lm5hbWVzPVsiYm9yZGVyLWltYWdlIl07RncuZXhwb3J0cz1SdX0pO3ZhciBWdz14KChRJCxVdyk9Pnt1KCk7dmFyIHp3PVBlKCksVFQ9aigpLE9yPWNsYXNzIGV4dGVuZHMgVFR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT16dyh0KSxpPT09MjAxMj90KyJmbGV4LWxpbmUtcGFjayI6c3VwZXIucHJlZml4ZWQoZSx0KX1ub3JtYWxpemUoKXtyZXR1cm4iYWxpZ24tY29udGVudCJ9c2V0KGUsdCl7bGV0IGk9encodClbMF07aWYoaT09PTIwMTIpcmV0dXJuIGUudmFsdWU9T3Iub2xkVmFsdWVzW2UudmFsdWVdfHxlLnZhbHVlLHN1cGVyLnNldChlLHQpO2lmKGk9PT0iZmluYWwiKXJldHVybiBzdXBlci5zZXQoZSx0KX19O09yLm5hbWVzPVsiYWxpZ24tY29udGVudCIsImZsZXgtbGluZS1wYWNrIl07T3Iub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQiLCJzcGFjZS1iZXR3ZWVuIjoianVzdGlmeSIsInNwYWNlLWFyb3VuZCI6ImRpc3RyaWJ1dGUifTtVdy5leHBvcnRzPU9yfSk7dmFyIFd3PXgoKFkkLEh3KT0+e3UoKTt2YXIgUlQ9aigpLFdlPWNsYXNzIGV4dGVuZHMgUlR7cHJlZml4ZWQoZSx0KXtyZXR1cm4gdD09PSItbW96LSI/dCsoV2UudG9Nb3ppbGxhW2VdfHxlKTpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZShlKXtyZXR1cm4gV2UudG9Ob3JtYWxbZV18fGV9fTtXZS5uYW1lcz1bImJvcmRlci1yYWRpdXMiXTtXZS50b01vemlsbGE9e307V2UudG9Ob3JtYWw9e307Zm9yKGxldCByIG9mWyJ0b3AiLCJib3R0b20iXSlmb3IobGV0IGUgb2ZbImxlZnQiLCJyaWdodCJdKXtsZXQgdD1gYm9yZGVyLSR7cn0tJHtlfS1yYWRpdXNgLGk9YGJvcmRlci1yYWRpdXMtJHtyfSR7ZX1gO1dlLm5hbWVzLnB1c2godCksV2UubmFtZXMucHVzaChpKSxXZS50b01vemlsbGFbdF09aSxXZS50b05vcm1hbFtpXT10fUh3LmV4cG9ydHM9V2V9KTt2YXIgUXc9eCgoSyQsR3cpPT57dSgpO3ZhciBQVD1qKCksUHU9Y2xhc3MgZXh0ZW5kcyBQVHtwcmVmaXhlZChlLHQpe3JldHVybiBlLmluY2x1ZGVzKCItc3RhcnQiKT90K2UucmVwbGFjZSgiLWJsb2NrLXN0YXJ0IiwiLWJlZm9yZSIpOnQrZS5yZXBsYWNlKCItYmxvY2stZW5kIiwiLWFmdGVyIil9bm9ybWFsaXplKGUpe3JldHVybiBlLmluY2x1ZGVzKCItYmVmb3JlIik/ZS5yZXBsYWNlKCItYmVmb3JlIiwiLWJsb2NrLXN0YXJ0Iik6ZS5yZXBsYWNlKCItYWZ0ZXIiLCItYmxvY2stZW5kIil9fTtQdS5uYW1lcz1bImJvcmRlci1ibG9jay1zdGFydCIsImJvcmRlci1ibG9jay1lbmQiLCJtYXJnaW4tYmxvY2stc3RhcnQiLCJtYXJnaW4tYmxvY2stZW5kIiwicGFkZGluZy1ibG9jay1zdGFydCIsInBhZGRpbmctYmxvY2stZW5kIiwiYm9yZGVyLWJlZm9yZSIsImJvcmRlci1hZnRlciIsIm1hcmdpbi1iZWZvcmUiLCJtYXJnaW4tYWZ0ZXIiLCJwYWRkaW5nLWJlZm9yZSIsInBhZGRpbmctYWZ0ZXIiXTtHdy5leHBvcnRzPVB1fSk7dmFyIEt3PXgoKFgkLFl3KT0+e3UoKTt2YXIgSVQ9aigpLHtwYXJzZVRlbXBsYXRlOkRULHdhcm5NaXNzZWRBcmVhczpxVCxnZXRHcmlkR2FwOiRULHdhcm5HcmlkR2FwOkxULGluaGVyaXRHcmlkR2FwOk1UfT1CdCgpLEl1PWNsYXNzIGV4dGVuZHMgSVR7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7aWYoZS5wYXJlbnQuc29tZShoPT5oLnByb3A9PT0iLW1zLWdyaWQtcm93cyIpKXJldHVybjtsZXQgcz0kVChlKSxhPU1UKGUscykse3Jvd3M6byxjb2x1bW5zOmwsYXJlYXM6Y309RFQoe2RlY2w6ZSxnYXA6YXx8c30pLGY9T2JqZWN0LmtleXMoYykubGVuZ3RoPjAsZD1Cb29sZWFuKG8pLHA9Qm9vbGVhbihsKTtyZXR1cm4gTFQoe2dhcDpzLGhhc0NvbHVtbnM6cCxkZWNsOmUscmVzdWx0Om59KSxxVChjLGUsbiksKGQmJnB8fGYpJiZlLmNsb25lQmVmb3JlKHtwcm9wOiItbXMtZ3JpZC1yb3dzIix2YWx1ZTpvLHJhd3M6e319KSxwJiZlLmNsb25lQmVmb3JlKHtwcm9wOiItbXMtZ3JpZC1jb2x1bW5zIix2YWx1ZTpsLHJhd3M6e319KSxlfX07SXUubmFtZXM9WyJncmlkLXRlbXBsYXRlIl07WXcuZXhwb3J0cz1JdX0pO3ZhciBadz14KChaJCxYdyk9Pnt1KCk7dmFyIE5UPWooKSxEdT1jbGFzcyBleHRlbmRzIE5Ue3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQrZS5yZXBsYWNlKCItaW5saW5lIiwiIil9bm9ybWFsaXplKGUpe3JldHVybiBlLnJlcGxhY2UoLyhtYXJnaW58cGFkZGluZ3xib3JkZXIpLShzdGFydHxlbmQpLywiJDEtaW5saW5lLSQyIil9fTtEdS5uYW1lcz1bImJvcmRlci1pbmxpbmUtc3RhcnQiLCJib3JkZXItaW5saW5lLWVuZCIsIm1hcmdpbi1pbmxpbmUtc3RhcnQiLCJtYXJnaW4taW5saW5lLWVuZCIsInBhZGRpbmctaW5saW5lLXN0YXJ0IiwicGFkZGluZy1pbmxpbmUtZW5kIiwiYm9yZGVyLXN0YXJ0IiwiYm9yZGVyLWVuZCIsIm1hcmdpbi1zdGFydCIsIm1hcmdpbi1lbmQiLCJwYWRkaW5nLXN0YXJ0IiwicGFkZGluZy1lbmQiXTtYdy5leHBvcnRzPUR1fSk7dmFyIGUwPXgoKEokLEp3KT0+e3UoKTt2YXIgQlQ9aigpLHF1PWNsYXNzIGV4dGVuZHMgQlR7Y2hlY2soZSl7cmV0dXJuIWUudmFsdWUuaW5jbHVkZXMoImZsZXgtIikmJmUudmFsdWUhPT0iYmFzZWxpbmUifXByZWZpeGVkKGUsdCl7cmV0dXJuIHQrImdyaWQtcm93LWFsaWduIn1ub3JtYWxpemUoKXtyZXR1cm4iYWxpZ24tc2VsZiJ9fTtxdS5uYW1lcz1bImdyaWQtcm93LWFsaWduIl07SncuZXhwb3J0cz1xdX0pO3ZhciByMD14KChlTCx0MCk9Pnt1KCk7dmFyIEZUPWooKSxUcj1jbGFzcyBleHRlbmRzIEZUe2tleWZyYW1lUGFyZW50cyhlKXtsZXR7cGFyZW50OnR9PWU7Zm9yKDt0Oyl7aWYodC50eXBlPT09ImF0cnVsZSImJnQubmFtZT09PSJrZXlmcmFtZXMiKXJldHVybiEwOyh7cGFyZW50OnR9PXQpfXJldHVybiExfWNvbnRhaW4zZChlKXtpZihlLnByb3A9PT0idHJhbnNmb3JtLW9yaWdpbiIpcmV0dXJuITE7Zm9yKGxldCB0IG9mIFRyLmZ1bmN0aW9uczNkKWlmKGUudmFsdWUuaW5jbHVkZXMoYCR7dH0oYCkpcmV0dXJuITA7cmV0dXJuITF9c2V0KGUsdCl7cmV0dXJuIGU9c3VwZXIuc2V0KGUsdCksdD09PSItbXMtIiYmKGUudmFsdWU9ZS52YWx1ZS5yZXBsYWNlKC9yb3RhdGV6L2dpLCJyb3RhdGUiKSksZX1pbnNlcnQoZSx0LGkpe2lmKHQ9PT0iLW1zLSIpe2lmKCF0aGlzLmNvbnRhaW4zZChlKSYmIXRoaXMua2V5ZnJhbWVQYXJlbnRzKGUpKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpfWVsc2UgaWYodD09PSItby0iKXtpZighdGhpcy5jb250YWluM2QoZSkpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSl9ZWxzZSByZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKX19O1RyLm5hbWVzPVsidHJhbnNmb3JtIiwidHJhbnNmb3JtLW9yaWdpbiJdO1RyLmZ1bmN0aW9uczNkPVsibWF0cml4M2QiLCJ0cmFuc2xhdGUzZCIsInRyYW5zbGF0ZVoiLCJzY2FsZTNkIiwic2NhbGVaIiwicm90YXRlM2QiLCJyb3RhdGVYIiwicm90YXRlWSIsInBlcnNwZWN0aXZlIl07dDAuZXhwb3J0cz1Ucn0pO3ZhciBzMD14KCh0TCxuMCk9Pnt1KCk7dmFyIGkwPVBlKCksalQ9aigpLCR1PWNsYXNzIGV4dGVuZHMgalR7bm9ybWFsaXplKCl7cmV0dXJuImZsZXgtZGlyZWN0aW9uIn1pbnNlcnQoZSx0LGkpe2xldCBuO2lmKFtuLHRdPWkwKHQpLG4hPT0yMDA5KXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2lmKGUucGFyZW50LnNvbWUoZj0+Zi5wcm9wPT09dCsiYm94LW9yaWVudCJ8fGYucHJvcD09PXQrImJveC1kaXJlY3Rpb24iKSlyZXR1cm47bGV0IGE9ZS52YWx1ZSxvLGw7YT09PSJpbmhlcml0Inx8YT09PSJpbml0aWFsInx8YT09PSJ1bnNldCI/KG89YSxsPWEpOihvPWEuaW5jbHVkZXMoInJvdyIpPyJob3Jpem9udGFsIjoidmVydGljYWwiLGw9YS5pbmNsdWRlcygicmV2ZXJzZSIpPyJyZXZlcnNlIjoibm9ybWFsIik7bGV0IGM9dGhpcy5jbG9uZShlKTtyZXR1cm4gYy5wcm9wPXQrImJveC1vcmllbnQiLGMudmFsdWU9byx0aGlzLm5lZWRDYXNjYWRlKGUpJiYoYy5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxjKSxjPXRoaXMuY2xvbmUoZSksYy5wcm9wPXQrImJveC1kaXJlY3Rpb24iLGMudmFsdWU9bCx0aGlzLm5lZWRDYXNjYWRlKGUpJiYoYy5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxjKX1vbGQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1pMCh0KSxpPT09MjAwOT9bdCsiYm94LW9yaWVudCIsdCsiYm94LWRpcmVjdGlvbiJdOnN1cGVyLm9sZChlLHQpfX07JHUubmFtZXM9WyJmbGV4LWRpcmVjdGlvbiIsImJveC1kaXJlY3Rpb24iLCJib3gtb3JpZW50Il07bjAuZXhwb3J0cz0kdX0pO3ZhciBvMD14KChyTCxhMCk9Pnt1KCk7dmFyIHpUPWooKSxMdT1jbGFzcyBleHRlbmRzIHpUe2NoZWNrKGUpe3JldHVybiBlLnZhbHVlPT09InBpeGVsYXRlZCJ9cHJlZml4ZWQoZSx0KXtyZXR1cm4gdD09PSItbXMtIj8iLW1zLWludGVycG9sYXRpb24tbW9kZSI6c3VwZXIucHJlZml4ZWQoZSx0KX1zZXQoZSx0KXtyZXR1cm4gdCE9PSItbXMtIj9zdXBlci5zZXQoZSx0KTooZS5wcm9wPSItbXMtaW50ZXJwb2xhdGlvbi1tb2RlIixlLnZhbHVlPSJuZWFyZXN0LW5laWdoYm9yIixlKX1ub3JtYWxpemUoKXtyZXR1cm4iaW1hZ2UtcmVuZGVyaW5nIn1wcm9jZXNzKGUsdCl7cmV0dXJuIHN1cGVyLnByb2Nlc3MoZSx0KX19O0x1Lm5hbWVzPVsiaW1hZ2UtcmVuZGVyaW5nIiwiaW50ZXJwb2xhdGlvbi1tb2RlIl07YTAuZXhwb3J0cz1MdX0pO3ZhciB1MD14KChpTCxsMCk9Pnt1KCk7dmFyIFVUPWooKSxWVD1fZSgpLE11PWNsYXNzIGV4dGVuZHMgVVR7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKGUsdCxpKTt0aGlzLnByZWZpeGVzJiYodGhpcy5wcmVmaXhlcz1WVC51bmlxKHRoaXMucHJlZml4ZXMubWFwKG49Pm49PT0iLW1zLSI/Ii13ZWJraXQtIjpuKSkpfX07TXUubmFtZXM9WyJiYWNrZHJvcC1maWx0ZXIiXTtsMC5leHBvcnRzPU11fSk7dmFyIGMwPXgoKG5MLGYwKT0+e3UoKTt2YXIgSFQ9aigpLFdUPV9lKCksTnU9Y2xhc3MgZXh0ZW5kcyBIVHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSx0LGkpO3RoaXMucHJlZml4ZXMmJih0aGlzLnByZWZpeGVzPVdULnVuaXEodGhpcy5wcmVmaXhlcy5tYXAobj0+bj09PSItbXMtIj8iLXdlYmtpdC0iOm4pKSl9Y2hlY2soZSl7cmV0dXJuIGUudmFsdWUudG9Mb3dlckNhc2UoKT09PSJ0ZXh0In19O051Lm5hbWVzPVsiYmFja2dyb3VuZC1jbGlwIl07ZjAuZXhwb3J0cz1OdX0pO3ZhciBkMD14KChzTCxwMCk9Pnt1KCk7dmFyIEdUPWooKSxRVD1bIm5vbmUiLCJ1bmRlcmxpbmUiLCJvdmVybGluZSIsImxpbmUtdGhyb3VnaCIsImJsaW5rIiwiaW5oZXJpdCIsImluaXRpYWwiLCJ1bnNldCJdLEJ1PWNsYXNzIGV4dGVuZHMgR1R7Y2hlY2soZSl7cmV0dXJuIGUudmFsdWUuc3BsaXQoL1xzKy8pLnNvbWUodD0+IVFULmluY2x1ZGVzKHQpKX19O0J1Lm5hbWVzPVsidGV4dC1kZWNvcmF0aW9uIl07cDAuZXhwb3J0cz1CdX0pO3ZhciBnMD14KChhTCxtMCk9Pnt1KCk7dmFyIGgwPVBlKCksWVQ9aigpLFJyPWNsYXNzIGV4dGVuZHMgWVR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1oMCh0KSxpPT09MjAwOT90KyJib3gtcGFjayI6aT09PTIwMTI/dCsiZmxleC1wYWNrIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJqdXN0aWZ5LWNvbnRlbnQifXNldChlLHQpe2xldCBpPWgwKHQpWzBdO2lmKGk9PT0yMDA5fHxpPT09MjAxMil7bGV0IG49UnIub2xkVmFsdWVzW2UudmFsdWVdfHxlLnZhbHVlO2lmKGUudmFsdWU9bixpIT09MjAwOXx8biE9PSJkaXN0cmlidXRlIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9ZWxzZSBpZihpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtSci5uYW1lcz1bImp1c3RpZnktY29udGVudCIsImZsZXgtcGFjayIsImJveC1wYWNrIl07UnIub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQiLCJzcGFjZS1iZXR3ZWVuIjoianVzdGlmeSIsInNwYWNlLWFyb3VuZCI6ImRpc3RyaWJ1dGUifTttMC5leHBvcnRzPVJyfSk7dmFyIGIwPXgoKG9MLHkwKT0+e3UoKTt2YXIgS1Q9aigpLEZ1PWNsYXNzIGV4dGVuZHMgS1R7c2V0KGUsdCl7bGV0IGk9ZS52YWx1ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09Ii13ZWJraXQtIiYmIWkuaW5jbHVkZXMoIiAiKSYmaSE9PSJjb250YWluIiYmaSE9PSJjb3ZlciImJihlLnZhbHVlPWUudmFsdWUrIiAiK2UudmFsdWUpLHN1cGVyLnNldChlLHQpfX07RnUubmFtZXM9WyJiYWNrZ3JvdW5kLXNpemUiXTt5MC5leHBvcnRzPUZ1fSk7dmFyIHYwPXgoKGxMLHcwKT0+e3UoKTt2YXIgWFQ9aigpLGp1PUJ0KCksenU9Y2xhc3MgZXh0ZW5kcyBYVHtpbnNlcnQoZSx0LGkpe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IG49anUucGFyc2UoZSksW3MsYV09anUudHJhbnNsYXRlKG4sMCwxKTtuWzBdJiZuWzBdLmluY2x1ZGVzKCJzcGFuIikmJihhPW5bMF0uam9pbigiIikucmVwbGFjZSgvXEQvZywiIikpLFtbZS5wcm9wLHNdLFtgJHtlLnByb3B9LXNwYW5gLGFdXS5mb3JFYWNoKChbbCxjXSk9PntqdS5pbnNlcnREZWNsKGUsbCxjKX0pfX07enUubmFtZXM9WyJncmlkLXJvdyIsImdyaWQtY29sdW1uIl07dzAuZXhwb3J0cz16dX0pO3ZhciBTMD14KCh1TCxrMCk9Pnt1KCk7dmFyIFpUPWooKSx7cHJlZml4VHJhY2tQcm9wOngwLHByZWZpeFRyYWNrVmFsdWU6SlQsYXV0b3BsYWNlR3JpZEl0ZW1zOmVSLGdldEdyaWRHYXA6dFIsaW5oZXJpdEdyaWRHYXA6clJ9PUJ0KCksaVI9b3UoKSxVdT1jbGFzcyBleHRlbmRzIFpUe3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQ9PT0iLW1zLSI/eDAoe3Byb3A6ZSxwcmVmaXg6dH0pOnN1cGVyLnByZWZpeGVkKGUsdCl9bm9ybWFsaXplKGUpe3JldHVybiBlLnJlcGxhY2UoL15ncmlkLShyb3dzfGNvbHVtbnMpLywiZ3JpZC10ZW1wbGF0ZS0kMSIpfWluc2VydChlLHQsaSxuKXtpZih0IT09Ii1tcy0iKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2xldHtwYXJlbnQ6cyxwcm9wOmEsdmFsdWU6b309ZSxsPWEuaW5jbHVkZXMoInJvd3MiKSxjPWEuaW5jbHVkZXMoImNvbHVtbnMiKSxmPXMuc29tZShrPT5rLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZSJ8fGsucHJvcD09PSJncmlkLXRlbXBsYXRlLWFyZWFzIik7aWYoZiYmbClyZXR1cm4hMTtsZXQgZD1uZXcgaVIoe29wdGlvbnM6e319KSxwPWQuZ3JpZFN0YXR1cyhzLG4pLGg9dFIoZSk7aD1yUihlLGgpfHxoO2xldCBiPWw/aC5yb3c6aC5jb2x1bW47KHA9PT0ibm8tYXV0b3BsYWNlInx8cD09PSEwKSYmIWYmJihiPW51bGwpO2xldCB2PUpUKHt2YWx1ZTpvLGdhcDpifSk7ZS5jbG9uZUJlZm9yZSh7cHJvcDp4MCh7cHJvcDphLHByZWZpeDp0fSksdmFsdWU6dn0pO2xldCB5PXMubm9kZXMuZmluZChrPT5rLnByb3A9PT0iZ3JpZC1hdXRvLWZsb3ciKSx3PSJyb3ciO2lmKHkmJiFkLmRpc2FibGVkKHksbikmJih3PXkudmFsdWUudHJpbSgpKSxwPT09ImF1dG9wbGFjZSIpe2xldCBrPXMubm9kZXMuZmluZChFPT5FLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1yb3dzIik7aWYoIWsmJmYpcmV0dXJuO2lmKCFrJiYhZil7ZS53YXJuKG4sIkF1dG9wbGFjZW1lbnQgZG9lcyBub3Qgd29yayB3aXRob3V0IGdyaWQtdGVtcGxhdGUtcm93cyBwcm9wZXJ0eSIpO3JldHVybn0hcy5ub2Rlcy5maW5kKEU9PkUucHJvcD09PSJncmlkLXRlbXBsYXRlLWNvbHVtbnMiKSYmIWYmJmUud2FybihuLCJBdXRvcGxhY2VtZW50IGRvZXMgbm90IHdvcmsgd2l0aG91dCBncmlkLXRlbXBsYXRlLWNvbHVtbnMgcHJvcGVydHkiKSxjJiYhZiYmZVIoZSxuLGgsdyl9fX07VXUubmFtZXM9WyJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLXJvd3MiLCJncmlkLWNvbHVtbnMiXTtrMC5leHBvcnRzPVV1fSk7dmFyIEMwPXgoKGZMLEEwKT0+e3UoKTt2YXIgblI9aigpLFZ1PWNsYXNzIGV4dGVuZHMgblJ7Y2hlY2soZSl7cmV0dXJuIWUudmFsdWUuaW5jbHVkZXMoImZsZXgtIikmJmUudmFsdWUhPT0iYmFzZWxpbmUifXByZWZpeGVkKGUsdCl7cmV0dXJuIHQrImdyaWQtY29sdW1uLWFsaWduIn1ub3JtYWxpemUoKXtyZXR1cm4ianVzdGlmeS1zZWxmIn19O1Z1Lm5hbWVzPVsiZ3JpZC1jb2x1bW4tYWxpZ24iXTtBMC5leHBvcnRzPVZ1fSk7dmFyIEUwPXgoKGNMLF8wKT0+e3UoKTt2YXIgc1I9aigpLEh1PWNsYXNzIGV4dGVuZHMgc1J7cHJlZml4ZWQoZSx0KXtyZXR1cm4gdCsic2Nyb2xsLWNoYWluaW5nIn1ub3JtYWxpemUoKXtyZXR1cm4ib3ZlcnNjcm9sbC1iZWhhdmlvciJ9c2V0KGUsdCl7cmV0dXJuIGUudmFsdWU9PT0iYXV0byI/ZS52YWx1ZT0iY2hhaW5lZCI6KGUudmFsdWU9PT0ibm9uZSJ8fGUudmFsdWU9PT0iY29udGFpbiIpJiYoZS52YWx1ZT0ibm9uZSIpLHN1cGVyLnNldChlLHQpfX07SHUubmFtZXM9WyJvdmVyc2Nyb2xsLWJlaGF2aW9yIiwic2Nyb2xsLWNoYWluaW5nIl07XzAuZXhwb3J0cz1IdX0pO3ZhciBSMD14KChwTCxUMCk9Pnt1KCk7dmFyIGFSPWooKSx7cGFyc2VHcmlkQXJlYXM6b1Isd2Fybk1pc3NlZEFyZWFzOmxSLHByZWZpeFRyYWNrUHJvcDp1UixwcmVmaXhUcmFja1ZhbHVlOk8wLGdldEdyaWRHYXA6ZlIsd2FybkdyaWRHYXA6Y1IsaW5oZXJpdEdyaWRHYXA6cFJ9PUJ0KCk7ZnVuY3Rpb24gZFIocil7cmV0dXJuIHIudHJpbSgpLnNsaWNlKDEsLTEpLnNwbGl0KC9bIiddXHMqWyInXT8vZyl9dmFyIFd1PWNsYXNzIGV4dGVuZHMgYVJ7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9ITEsYT0hMSxvPWUucGFyZW50LGw9ZlIoZSk7bD1wUihlLGwpfHxsLG8ud2Fsa0RlY2xzKC8tbXMtZ3JpZC1yb3dzLyxkPT5kLnJlbW92ZSgpKSxvLndhbGtEZWNscygvZ3JpZC10ZW1wbGF0ZS0ocm93c3xjb2x1bW5zKS8sZD0+e2lmKGQucHJvcD09PSJncmlkLXRlbXBsYXRlLXJvd3MiKXthPSEwO2xldHtwcm9wOnAsdmFsdWU6aH09ZDtkLmNsb25lQmVmb3JlKHtwcm9wOnVSKHtwcm9wOnAscHJlZml4OnR9KSx2YWx1ZTpPMCh7dmFsdWU6aCxnYXA6bC5yb3d9KX0pfWVsc2Ugcz0hMH0pO2xldCBjPWRSKGUudmFsdWUpO3MmJiFhJiZsLnJvdyYmYy5sZW5ndGg+MSYmZS5jbG9uZUJlZm9yZSh7cHJvcDoiLW1zLWdyaWQtcm93cyIsdmFsdWU6TzAoe3ZhbHVlOmByZXBlYXQoJHtjLmxlbmd0aH0sIGF1dG8pYCxnYXA6bC5yb3d9KSxyYXdzOnt9fSksY1Ioe2dhcDpsLGhhc0NvbHVtbnM6cyxkZWNsOmUscmVzdWx0Om59KTtsZXQgZj1vUih7cm93czpjLGdhcDpsfSk7cmV0dXJuIGxSKGYsZSxuKSxlfX07V3UubmFtZXM9WyJncmlkLXRlbXBsYXRlLWFyZWFzIl07VDAuZXhwb3J0cz1XdX0pO3ZhciBJMD14KChkTCxQMCk9Pnt1KCk7dmFyIGhSPWooKSxHdT1jbGFzcyBleHRlbmRzIGhSe3NldChlLHQpe3JldHVybiB0PT09Ii13ZWJraXQtIiYmKGUudmFsdWU9ZS52YWx1ZS5yZXBsYWNlKC9ccyoocmlnaHR8bGVmdClccyovaSwiIikpLHN1cGVyLnNldChlLHQpfX07R3UubmFtZXM9WyJ0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uIl07UDAuZXhwb3J0cz1HdX0pO3ZhciBxMD14KChoTCxEMCk9Pnt1KCk7dmFyIG1SPWooKSxRdT1jbGFzcyBleHRlbmRzIG1Se3NldChlLHQpe3JldHVybiBlLnByb3A9PT0idGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rIiYmZS52YWx1ZT09PSJhdXRvIj8oZS5wcm9wPXQrInRleHQtZGVjb3JhdGlvbi1za2lwIixlLnZhbHVlPSJpbmsiLGUpOnN1cGVyLnNldChlLHQpfX07UXUubmFtZXM9WyJ0ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsiLCJ0ZXh0LWRlY29yYXRpb24tc2tpcCJdO0QwLmV4cG9ydHM9UXV9KTt2YXIgRjA9eCgobUwsQjApPT57dSgpOyJ1c2Ugc3RyaWN0IjtCMC5leHBvcnRzPXt3cmFwOiQwLGxpbWl0OkwwLHZhbGlkYXRlOk0wLHRlc3Q6WXUsY3Vycnk6Z1IsbmFtZTpOMH07ZnVuY3Rpb24gJDAocixlLHQpe3ZhciBpPWUtcjtyZXR1cm4oKHQtciklaStpKSVpK3J9ZnVuY3Rpb24gTDAocixlLHQpe3JldHVybiBNYXRoLm1heChyLE1hdGgubWluKGUsdCkpfWZ1bmN0aW9uIE0wKHIsZSx0LGksbil7aWYoIVl1KHIsZSx0LGksbikpdGhyb3cgbmV3IEVycm9yKHQrIiBpcyBvdXRzaWRlIG9mIHJhbmdlIFsiK3IrIiwiK2UrIikiKTtyZXR1cm4gdH1mdW5jdGlvbiBZdShyLGUsdCxpLG4pe3JldHVybiEodDxyfHx0PmV8fG4mJnQ9PT1lfHxpJiZ0PT09cil9ZnVuY3Rpb24gTjAocixlLHQsaSl7cmV0dXJuKHQ/IigiOiJbIikrcisiLCIrZSsoaT8iKSI6Il0iKX1mdW5jdGlvbiBnUihyLGUsdCxpKXt2YXIgbj1OMC5iaW5kKG51bGwscixlLHQsaSk7cmV0dXJue3dyYXA6JDAuYmluZChudWxsLHIsZSksbGltaXQ6TDAuYmluZChudWxsLHIsZSksdmFsaWRhdGU6ZnVuY3Rpb24ocyl7cmV0dXJuIE0wKHIsZSxzLHQsaSl9LHRlc3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIFl1KHIsZSxzLHQsaSl9LHRvU3RyaW5nOm4sbmFtZTpufX19KTt2YXIgVTA9eCgoZ0wsejApPT57dSgpO3ZhciBLdT1NcygpLHlSPUYwKCksYlI9eHIoKSx3Uj1IZSgpLHZSPV9lKCksajA9L3RvcHxsZWZ0fHJpZ2h0fGJvdHRvbS9naSx3dD1jbGFzcyBleHRlbmRzIHdSe3JlcGxhY2UoZSx0KXtsZXQgaT1LdShlKTtmb3IobGV0IG4gb2YgaS5ub2RlcylpZihuLnR5cGU9PT0iZnVuY3Rpb24iJiZuLnZhbHVlPT09dGhpcy5uYW1lKWlmKG4ubm9kZXM9dGhpcy5uZXdEaXJlY3Rpb24obi5ub2Rlcyksbi5ub2Rlcz10aGlzLm5vcm1hbGl6ZShuLm5vZGVzKSx0PT09Ii13ZWJraXQtIG9sZCIpe2lmKCF0aGlzLm9sZFdlYmtpdChuKSlyZXR1cm4hMX1lbHNlIG4ubm9kZXM9dGhpcy5jb252ZXJ0RGlyZWN0aW9uKG4ubm9kZXMpLG4udmFsdWU9dCtuLnZhbHVlO3JldHVybiBpLnRvU3RyaW5nKCl9cmVwbGFjZUZpcnN0KGUsLi4udCl7cmV0dXJuIHQubWFwKG49Pm49PT0iICI/e3R5cGU6InNwYWNlIix2YWx1ZTpufTp7dHlwZToid29yZCIsdmFsdWU6bn0pLmNvbmNhdChlLnNsaWNlKDEpKX1ub3JtYWxpemVVbml0KGUsdCl7cmV0dXJuYCR7cGFyc2VGbG9hdChlKS90KjM2MH1kZWdgfW5vcm1hbGl6ZShlKXtpZighZVswXSlyZXR1cm4gZTtpZigvLT9cZCsoLlxkKyk/Z3JhZC8udGVzdChlWzBdLnZhbHVlKSllWzBdLnZhbHVlPXRoaXMubm9ybWFsaXplVW5pdChlWzBdLnZhbHVlLDQwMCk7ZWxzZSBpZigvLT9cZCsoLlxkKyk/cmFkLy50ZXN0KGVbMF0udmFsdWUpKWVbMF0udmFsdWU9dGhpcy5ub3JtYWxpemVVbml0KGVbMF0udmFsdWUsMipNYXRoLlBJKTtlbHNlIGlmKC8tP1xkKyguXGQrKT90dXJuLy50ZXN0KGVbMF0udmFsdWUpKWVbMF0udmFsdWU9dGhpcy5ub3JtYWxpemVVbml0KGVbMF0udmFsdWUsMSk7ZWxzZSBpZihlWzBdLnZhbHVlLmluY2x1ZGVzKCJkZWciKSl7bGV0IHQ9cGFyc2VGbG9hdChlWzBdLnZhbHVlKTt0PXlSLndyYXAoMCwzNjAsdCksZVswXS52YWx1ZT1gJHt0fWRlZ2B9cmV0dXJuIGVbMF0udmFsdWU9PT0iMGRlZyI/ZT10aGlzLnJlcGxhY2VGaXJzdChlLCJ0byIsIiAiLCJ0b3AiKTplWzBdLnZhbHVlPT09IjkwZGVnIj9lPXRoaXMucmVwbGFjZUZpcnN0KGUsInRvIiwiICIsInJpZ2h0Iik6ZVswXS52YWx1ZT09PSIxODBkZWciP2U9dGhpcy5yZXBsYWNlRmlyc3QoZSwidG8iLCIgIiwiYm90dG9tIik6ZVswXS52YWx1ZT09PSIyNzBkZWciJiYoZT10aGlzLnJlcGxhY2VGaXJzdChlLCJ0byIsIiAiLCJsZWZ0IikpLGV9bmV3RGlyZWN0aW9uKGUpe2lmKGVbMF0udmFsdWU9PT0idG8ifHwoajAubGFzdEluZGV4PTAsIWowLnRlc3QoZVswXS52YWx1ZSkpKXJldHVybiBlO2UudW5zaGlmdCh7dHlwZToid29yZCIsdmFsdWU6InRvIn0se3R5cGU6InNwYWNlIix2YWx1ZToiICJ9KTtmb3IobGV0IHQ9Mjt0PGUubGVuZ3RoJiZlW3RdLnR5cGUhPT0iZGl2Ijt0KyspZVt0XS50eXBlPT09IndvcmQiJiYoZVt0XS52YWx1ZT10aGlzLnJldmVydERpcmVjdGlvbihlW3RdLnZhbHVlKSk7cmV0dXJuIGV9aXNSYWRpYWwoZSl7bGV0IHQ9ImJlZm9yZSI7Zm9yKGxldCBpIG9mIGUpaWYodD09PSJiZWZvcmUiJiZpLnR5cGU9PT0ic3BhY2UiKXQ9ImF0IjtlbHNlIGlmKHQ9PT0iYXQiJiZpLnZhbHVlPT09ImF0Iil0PSJhZnRlciI7ZWxzZXtpZih0PT09ImFmdGVyIiYmaS50eXBlPT09InNwYWNlIilyZXR1cm4hMDtpZihpLnR5cGU9PT0iZGl2IilicmVhazt0PSJiZWZvcmUifXJldHVybiExfWNvbnZlcnREaXJlY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RoPjAmJihlWzBdLnZhbHVlPT09InRvIj90aGlzLmZpeERpcmVjdGlvbihlKTplWzBdLnZhbHVlLmluY2x1ZGVzKCJkZWciKT90aGlzLmZpeEFuZ2xlKGUpOnRoaXMuaXNSYWRpYWwoZSkmJnRoaXMuZml4UmFkaWFsKGUpKSxlfWZpeERpcmVjdGlvbihlKXtlLnNwbGljZSgwLDIpO2ZvcihsZXQgdCBvZiBlKXtpZih0LnR5cGU9PT0iZGl2IilicmVhazt0LnR5cGU9PT0id29yZCImJih0LnZhbHVlPXRoaXMucmV2ZXJ0RGlyZWN0aW9uKHQudmFsdWUpKX19Zml4QW5nbGUoZSl7bGV0IHQ9ZVswXS52YWx1ZTt0PXBhcnNlRmxvYXQodCksdD1NYXRoLmFicyg0NTAtdCklMzYwLHQ9dGhpcy5yb3VuZEZsb2F0KHQsMyksZVswXS52YWx1ZT1gJHt0fWRlZ2B9Zml4UmFkaWFsKGUpe2xldCB0PVtdLGk9W10sbixzLGEsbyxsO2ZvcihvPTA7bzxlLmxlbmd0aC0yO28rKylpZihuPWVbb10scz1lW28rMV0sYT1lW28rMl0sbi50eXBlPT09InNwYWNlIiYmcy52YWx1ZT09PSJhdCImJmEudHlwZT09PSJzcGFjZSIpe2w9byszO2JyZWFrfWVsc2UgdC5wdXNoKG4pO2xldCBjO2ZvcihvPWw7bzxlLmxlbmd0aDtvKyspaWYoZVtvXS50eXBlPT09ImRpdiIpe2M9ZVtvXTticmVha31lbHNlIGkucHVzaChlW29dKTtlLnNwbGljZSgwLG8sLi4uaSxjLC4uLnQpfXJldmVydERpcmVjdGlvbihlKXtyZXR1cm4gd3QuZGlyZWN0aW9uc1tlLnRvTG93ZXJDYXNlKCldfHxlfXJvdW5kRmxvYXQoZSx0KXtyZXR1cm4gcGFyc2VGbG9hdChlLnRvRml4ZWQodCkpfW9sZFdlYmtpdChlKXtsZXR7bm9kZXM6dH09ZSxpPUt1LnN0cmluZ2lmeShlLm5vZGVzKTtpZih0aGlzLm5hbWUhPT0ibGluZWFyLWdyYWRpZW50Inx8dFswXSYmdFswXS52YWx1ZS5pbmNsdWRlcygiZGVnIil8fGkuaW5jbHVkZXMoInB4Iil8fGkuaW5jbHVkZXMoIi1jb3JuZXIiKXx8aS5pbmNsdWRlcygiLXNpZGUiKSlyZXR1cm4hMTtsZXQgbj1bW11dO2ZvcihsZXQgcyBvZiB0KW5bbi5sZW5ndGgtMV0ucHVzaChzKSxzLnR5cGU9PT0iZGl2IiYmcy52YWx1ZT09PSIsIiYmbi5wdXNoKFtdKTt0aGlzLm9sZERpcmVjdGlvbihuKSx0aGlzLmNvbG9yU3RvcHMobiksZS5ub2Rlcz1bXTtmb3IobGV0IHMgb2YgbillLm5vZGVzPWUubm9kZXMuY29uY2F0KHMpO3JldHVybiBlLm5vZGVzLnVuc2hpZnQoe3R5cGU6IndvcmQiLHZhbHVlOiJsaW5lYXIifSx0aGlzLmNsb25lRGl2KGUubm9kZXMpKSxlLnZhbHVlPSItd2Via2l0LWdyYWRpZW50IiwhMH1vbGREaXJlY3Rpb24oZSl7bGV0IHQ9dGhpcy5jbG9uZURpdihlWzBdKTtpZihlWzBdWzBdLnZhbHVlIT09InRvIilyZXR1cm4gZS51bnNoaWZ0KFt7dHlwZToid29yZCIsdmFsdWU6d3Qub2xkRGlyZWN0aW9ucy5ib3R0b219LHRdKTt7bGV0IGk9W107Zm9yKGxldCBzIG9mIGVbMF0uc2xpY2UoMikpcy50eXBlPT09IndvcmQiJiZpLnB1c2gocy52YWx1ZS50b0xvd2VyQ2FzZSgpKTtpPWkuam9pbigiICIpO2xldCBuPXd0Lm9sZERpcmVjdGlvbnNbaV18fGk7cmV0dXJuIGVbMF09W3t0eXBlOiJ3b3JkIix2YWx1ZTpufSx0XSxlWzBdfX1jbG9uZURpdihlKXtmb3IobGV0IHQgb2YgZSlpZih0LnR5cGU9PT0iZGl2IiYmdC52YWx1ZT09PSIsIilyZXR1cm4gdDtyZXR1cm57dHlwZToiZGl2Iix2YWx1ZToiLCIsYWZ0ZXI6IiAifX1jb2xvclN0b3BzKGUpe2xldCB0PVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtsZXQgbixzPWVbaV0sYTtpZihpPT09MCljb250aW51ZTtsZXQgbz1LdS5zdHJpbmdpZnkoc1swXSk7c1sxXSYmc1sxXS50eXBlPT09IndvcmQiP249c1sxXS52YWx1ZTpzWzJdJiZzWzJdLnR5cGU9PT0id29yZCImJihuPXNbMl0udmFsdWUpO2xldCBsO2k9PT0xJiYoIW58fG49PT0iMCUiKT9sPWBmcm9tKCR7b30pYDppPT09ZS5sZW5ndGgtMSYmKCFufHxuPT09IjEwMCUiKT9sPWB0bygke299KWA6bj9sPWBjb2xvci1zdG9wKCR7bn0sICR7b30pYDpsPWBjb2xvci1zdG9wKCR7b30pYDtsZXQgYz1zW3MubGVuZ3RoLTFdO2VbaV09W3t0eXBlOiJ3b3JkIix2YWx1ZTpsfV0sYy50eXBlPT09ImRpdiImJmMudmFsdWU9PT0iLCImJihhPWVbaV0ucHVzaChjKSksdC5wdXNoKGEpfXJldHVybiB0fW9sZChlKXtpZihlPT09Ii13ZWJraXQtIil7bGV0IHQ9dGhpcy5uYW1lPT09ImxpbmVhci1ncmFkaWVudCI/ImxpbmVhciI6InJhZGlhbCIsaT0iLWdyYWRpZW50IixuPXZSLnJlZ2V4cChgLXdlYmtpdC0oJHt0fS1ncmFkaWVudHxncmFkaWVudFxcKFxccyoke3R9KWAsITEpO3JldHVybiBuZXcgYlIodGhpcy5uYW1lLGUrdGhpcy5uYW1lLGksbil9ZWxzZSByZXR1cm4gc3VwZXIub2xkKGUpfWFkZChlLHQpe2xldCBpPWUucHJvcDtpZihpLmluY2x1ZGVzKCJtYXNrIikpe2lmKHQ9PT0iLXdlYmtpdC0ifHx0PT09Ii13ZWJraXQtIG9sZCIpcmV0dXJuIHN1cGVyLmFkZChlLHQpfWVsc2UgaWYoaT09PSJsaXN0LXN0eWxlInx8aT09PSJsaXN0LXN0eWxlLWltYWdlInx8aT09PSJjb250ZW50Iil7aWYodD09PSItd2Via2l0LSJ8fHQ9PT0iLXdlYmtpdC0gb2xkIilyZXR1cm4gc3VwZXIuYWRkKGUsdCl9ZWxzZSByZXR1cm4gc3VwZXIuYWRkKGUsdCl9fTt3dC5uYW1lcz1bImxpbmVhci1ncmFkaWVudCIsInJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLCJyYWRpYWwtZ3JhZGllbnQiLCJyZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50Il07d3QuZGlyZWN0aW9ucz17dG9wOiJib3R0b20iLGxlZnQ6InJpZ2h0Iixib3R0b206InRvcCIscmlnaHQ6ImxlZnQifTt3dC5vbGREaXJlY3Rpb25zPXt0b3A6ImxlZnQgYm90dG9tLCBsZWZ0IHRvcCIsbGVmdDoicmlnaHQgdG9wLCBsZWZ0IHRvcCIsYm90dG9tOiJsZWZ0IHRvcCwgbGVmdCBib3R0b20iLHJpZ2h0OiJsZWZ0IHRvcCwgcmlnaHQgdG9wIiwidG9wIHJpZ2h0IjoibGVmdCBib3R0b20sIHJpZ2h0IHRvcCIsInRvcCBsZWZ0IjoicmlnaHQgYm90dG9tLCBsZWZ0IHRvcCIsInJpZ2h0IHRvcCI6ImxlZnQgYm90dG9tLCByaWdodCB0b3AiLCJyaWdodCBib3R0b20iOiJsZWZ0IHRvcCwgcmlnaHQgYm90dG9tIiwiYm90dG9tIHJpZ2h0IjoibGVmdCB0b3AsIHJpZ2h0IGJvdHRvbSIsImJvdHRvbSBsZWZ0IjoicmlnaHQgdG9wLCBsZWZ0IGJvdHRvbSIsImxlZnQgdG9wIjoicmlnaHQgYm90dG9tLCBsZWZ0IHRvcCIsImxlZnQgYm90dG9tIjoicmlnaHQgdG9wLCBsZWZ0IGJvdHRvbSJ9O3owLmV4cG9ydHM9d3R9KTt2YXIgVzA9eCgoeUwsSDApPT57dSgpO3ZhciB4Uj14cigpLGtSPUhlKCk7ZnVuY3Rpb24gVjAocil7cmV0dXJuIG5ldyBSZWdFeHAoYChefFtcXHMsKF0pKCR7cn0oJHxbXFxzKSxdKSlgLCJnaSIpfXZhciBYdT1jbGFzcyBleHRlbmRzIGtSe3JlZ2V4cCgpe3JldHVybiB0aGlzLnJlZ2V4cENhY2hlfHwodGhpcy5yZWdleHBDYWNoZT1WMCh0aGlzLm5hbWUpKSx0aGlzLnJlZ2V4cENhY2hlfWlzU3RyZXRjaCgpe3JldHVybiB0aGlzLm5hbWU9PT0ic3RyZXRjaCJ8fHRoaXMubmFtZT09PSJmaWxsInx8dGhpcy5uYW1lPT09ImZpbGwtYXZhaWxhYmxlIn1yZXBsYWNlKGUsdCl7cmV0dXJuIHQ9PT0iLW1vei0iJiZ0aGlzLmlzU3RyZXRjaCgpP2UucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLCIkMS1tb3otYXZhaWxhYmxlJDMiKTp0PT09Ii13ZWJraXQtIiYmdGhpcy5pc1N0cmV0Y2goKT9lLnJlcGxhY2UodGhpcy5yZWdleHAoKSwiJDEtd2Via2l0LWZpbGwtYXZhaWxhYmxlJDMiKTpzdXBlci5yZXBsYWNlKGUsdCl9b2xkKGUpe2xldCB0PWUrdGhpcy5uYW1lO3JldHVybiB0aGlzLmlzU3RyZXRjaCgpJiYoZT09PSItbW96LSI/dD0iLW1vei1hdmFpbGFibGUiOmU9PT0iLXdlYmtpdC0iJiYodD0iLXdlYmtpdC1maWxsLWF2YWlsYWJsZSIpKSxuZXcgeFIodGhpcy5uYW1lLHQsdCxWMCh0KSl9YWRkKGUsdCl7aWYoIShlLnByb3AuaW5jbHVkZXMoImdyaWQiKSYmdCE9PSItd2Via2l0LSIpKXJldHVybiBzdXBlci5hZGQoZSx0KX19O1h1Lm5hbWVzPVsibWF4LWNvbnRlbnQiLCJtaW4tY29udGVudCIsImZpdC1jb250ZW50IiwiZmlsbCIsImZpbGwtYXZhaWxhYmxlIiwic3RyZXRjaCJdO0gwLmV4cG9ydHM9WHV9KTt2YXIgWTA9eCgoYkwsUTApPT57dSgpO3ZhciBHMD14cigpLFNSPUhlKCksWnU9Y2xhc3MgZXh0ZW5kcyBTUntyZXBsYWNlKGUsdCl7cmV0dXJuIHQ9PT0iLXdlYmtpdC0iP2UucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLCIkMS13ZWJraXQtb3B0aW1pemUtY29udHJhc3QiKTp0PT09Ii1tb3otIj9lLnJlcGxhY2UodGhpcy5yZWdleHAoKSwiJDEtbW96LWNyaXNwLWVkZ2VzIik6c3VwZXIucmVwbGFjZShlLHQpfW9sZChlKXtyZXR1cm4gZT09PSItd2Via2l0LSI/bmV3IEcwKHRoaXMubmFtZSwiLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdCIpOmU9PT0iLW1vei0iP25ldyBHMCh0aGlzLm5hbWUsIi1tb3otY3Jpc3AtZWRnZXMiKTpzdXBlci5vbGQoZSl9fTtadS5uYW1lcz1bInBpeGVsYXRlZCJdO1EwLmV4cG9ydHM9WnV9KTt2YXIgWDA9eCgod0wsSzApPT57dSgpO3ZhciBBUj1IZSgpLEp1PWNsYXNzIGV4dGVuZHMgQVJ7cmVwbGFjZShlLHQpe2xldCBpPXN1cGVyLnJlcGxhY2UoZSx0KTtyZXR1cm4gdD09PSItd2Via2l0LSImJihpPWkucmVwbGFjZSgvKCJbXiJdKyJ8J1teJ10rJykoXHMrXGQrXHcpL2dpLCJ1cmwoJDEpJDIiKSksaX19O0p1Lm5hbWVzPVsiaW1hZ2Utc2V0Il07SzAuZXhwb3J0cz1KdX0pO3ZhciBKMD14KCh2TCxaMCk9Pnt1KCk7dmFyIENSPSRlKCkubGlzdCxfUj1IZSgpLGVmPWNsYXNzIGV4dGVuZHMgX1J7cmVwbGFjZShlLHQpe3JldHVybiBDUi5zcGFjZShlKS5tYXAoaT0+e2lmKGkuc2xpY2UoMCwrdGhpcy5uYW1lLmxlbmd0aCsxKSE9PXRoaXMubmFtZSsiKCIpcmV0dXJuIGk7bGV0IG49aS5sYXN0SW5kZXhPZigiKSIpLHM9aS5zbGljZShuKzEpLGE9aS5zbGljZSh0aGlzLm5hbWUubGVuZ3RoKzEsbik7aWYodD09PSItd2Via2l0LSIpe2xldCBvPWEubWF0Y2goL1xkKi4/XGQrJT8vKTtvPyhhPWEuc2xpY2Uob1swXS5sZW5ndGgpLnRyaW0oKSxhKz1gLCAke29bMF19YCk6YSs9IiwgMC41In1yZXR1cm4gdCt0aGlzLm5hbWUrIigiK2ErIikiK3N9KS5qb2luKCIgIil9fTtlZi5uYW1lcz1bImNyb3NzLWZhZGUiXTtaMC5leHBvcnRzPWVmfSk7dmFyIHR2PXgoKHhMLGV2KT0+e3UoKTt2YXIgRVI9UGUoKSxPUj14cigpLFRSPUhlKCksdGY9Y2xhc3MgZXh0ZW5kcyBUUntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7ZT09PSJkaXNwbGF5LWZsZXgiJiYodGhpcy5uYW1lPSJmbGV4Iil9Y2hlY2soZSl7cmV0dXJuIGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZT09PXRoaXMubmFtZX1wcmVmaXhlZChlKXtsZXQgdCxpO3JldHVyblt0LGVdPUVSKGUpLHQ9PT0yMDA5P3RoaXMubmFtZT09PSJmbGV4Ij9pPSJib3giOmk9ImlubGluZS1ib3giOnQ9PT0yMDEyP3RoaXMubmFtZT09PSJmbGV4Ij9pPSJmbGV4Ym94IjppPSJpbmxpbmUtZmxleGJveCI6dD09PSJmaW5hbCImJihpPXRoaXMubmFtZSksZStpfXJlcGxhY2UoZSx0KXtyZXR1cm4gdGhpcy5wcmVmaXhlZCh0KX1vbGQoZSl7bGV0IHQ9dGhpcy5wcmVmaXhlZChlKTtpZighIXQpcmV0dXJuIG5ldyBPUih0aGlzLm5hbWUsdCl9fTt0Zi5uYW1lcz1bImRpc3BsYXktZmxleCIsImlubGluZS1mbGV4Il07ZXYuZXhwb3J0cz10Zn0pO3ZhciBpdj14KChrTCxydik9Pnt1KCk7dmFyIFJSPUhlKCkscmY9Y2xhc3MgZXh0ZW5kcyBSUntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7ZT09PSJkaXNwbGF5LWdyaWQiJiYodGhpcy5uYW1lPSJncmlkIil9Y2hlY2soZSl7cmV0dXJuIGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZT09PXRoaXMubmFtZX19O3JmLm5hbWVzPVsiZGlzcGxheS1ncmlkIiwiaW5saW5lLWdyaWQiXTtydi5leHBvcnRzPXJmfSk7dmFyIHN2PXgoKFNMLG52KT0+e3UoKTt2YXIgUFI9SGUoKSxuZj1jbGFzcyBleHRlbmRzIFBSe2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTtlPT09ImZpbHRlci1mdW5jdGlvbiImJih0aGlzLm5hbWU9ImZpbHRlciIpfX07bmYubmFtZXM9WyJmaWx0ZXIiLCJmaWx0ZXItZnVuY3Rpb24iXTtudi5leHBvcnRzPW5mfSk7dmFyIHV2PXgoKEFMLGx2KT0+e3UoKTt2YXIgYXY9TmkoKSx6PWooKSxvdj16eSgpLElSPWFiKCksRFI9b3UoKSxxUj1DYigpLHNmPU10KCksUHI9a3IoKSwkUj1EYigpLHV0PUhlKCksSXI9X2UoKSxMUj0kYigpLE1SPU1iKCksTlI9QmIoKSxCUj1qYigpLEZSPVdiKCksalI9WWIoKSx6Uj1YYigpLFVSPUpiKCksVlI9dHcoKSxIUj1pdygpLFdSPXN3KCksR1I9b3coKSxRUj11dygpLFlSPWN3KCksS1I9ZHcoKSxYUj1ndygpLFpSPWJ3KCksSlI9eHcoKSxlNT1TdygpLHQ1PUN3KCkscjU9T3coKSxpNT1SdygpLG41PUR3KCksczU9JHcoKSxhNT1NdygpLG81PUJ3KCksbDU9ancoKSx1NT1WdygpLGY1PVd3KCksYzU9UXcoKSxwNT1LdygpLGQ1PVp3KCksaDU9ZTAoKSxtNT1yMCgpLGc1PXMwKCkseTU9bzAoKSxiNT11MCgpLHc1PWMwKCksdjU9ZDAoKSx4NT1nMCgpLGs1PWIwKCksUzU9djAoKSxBNT1TMCgpLEM1PUMwKCksXzU9RTAoKSxFNT1SMCgpLE81PUkwKCksVDU9cTAoKSxSNT1VMCgpLFA1PVcwKCksSTU9WTAoKSxENT1YMCgpLHE1PUowKCksJDU9dHYoKSxMNT1pdigpLE01PXN2KCk7UHIuaGFjayhMUik7UHIuaGFjayhNUik7UHIuaGFjayhOUik7UHIuaGFjayhCUik7ei5oYWNrKEZSKTt6LmhhY2soalIpO3ouaGFjayh6Uik7ei5oYWNrKFVSKTt6LmhhY2soVlIpO3ouaGFjayhIUik7ei5oYWNrKFdSKTt6LmhhY2soR1IpO3ouaGFjayhRUik7ei5oYWNrKFlSKTt6LmhhY2soS1IpO3ouaGFjayhYUik7ei5oYWNrKFpSKTt6LmhhY2soSlIpO3ouaGFjayhlNSk7ei5oYWNrKHQ1KTt6LmhhY2socjUpO3ouaGFjayhpNSk7ei5oYWNrKG41KTt6LmhhY2soczUpO3ouaGFjayhhNSk7ei5oYWNrKG81KTt6LmhhY2sobDUpO3ouaGFjayh1NSk7ei5oYWNrKGY1KTt6LmhhY2soYzUpO3ouaGFjayhwNSk7ei5oYWNrKGQ1KTt6LmhhY2soaDUpO3ouaGFjayhtNSk7ei5oYWNrKGc1KTt6LmhhY2soeTUpO3ouaGFjayhiNSk7ei5oYWNrKHc1KTt6LmhhY2sodjUpO3ouaGFjayh4NSk7ei5oYWNrKGs1KTt6LmhhY2soUzUpO3ouaGFjayhBNSk7ei5oYWNrKEM1KTt6LmhhY2soXzUpO3ouaGFjayhFNSk7ei5oYWNrKE81KTt6LmhhY2soVDUpO3V0LmhhY2soUjUpO3V0LmhhY2soUDUpO3V0LmhhY2soSTUpO3V0LmhhY2soRDUpO3V0LmhhY2socTUpO3V0LmhhY2soJDUpO3V0LmhhY2soTDUpO3V0LmhhY2soTTUpO3ZhciBhZj1uZXcgTWFwLEZpPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxpPXt9KXt0aGlzLmRhdGE9ZSx0aGlzLmJyb3dzZXJzPXQsdGhpcy5vcHRpb25zPWksW3RoaXMuYWRkLHRoaXMucmVtb3ZlXT10aGlzLnByZXByb2Nlc3ModGhpcy5zZWxlY3QodGhpcy5kYXRhKSksdGhpcy50cmFuc2l0aW9uPW5ldyBJUih0aGlzKSx0aGlzLnByb2Nlc3Nvcj1uZXcgRFIodGhpcyl9Y2xlYW5lcigpe2lmKHRoaXMuY2xlYW5lckNhY2hlKXJldHVybiB0aGlzLmNsZWFuZXJDYWNoZTtpZih0aGlzLmJyb3dzZXJzLnNlbGVjdGVkLmxlbmd0aCl7bGV0IGU9bmV3IHNmKHRoaXMuYnJvd3NlcnMuZGF0YSxbXSk7dGhpcy5jbGVhbmVyQ2FjaGU9bmV3IEZpKHRoaXMuZGF0YSxlLHRoaXMub3B0aW9ucyl9ZWxzZSByZXR1cm4gdGhpcztyZXR1cm4gdGhpcy5jbGVhbmVyQ2FjaGV9c2VsZWN0KGUpe2xldCB0PXthZGQ6e30scmVtb3ZlOnt9fTtmb3IobGV0IGkgaW4gZSl7bGV0IG49ZVtpXSxzPW4uYnJvd3NlcnMubWFwKGw9PntsZXQgYz1sLnNwbGl0KCIgIik7cmV0dXJue2Jyb3dzZXI6YCR7Y1swXX0gJHtjWzFdfWAsbm90ZTpjWzJdfX0pLGE9cy5maWx0ZXIobD0+bC5ub3RlKS5tYXAobD0+YCR7dGhpcy5icm93c2Vycy5wcmVmaXgobC5icm93c2VyKX0gJHtsLm5vdGV9YCk7YT1Jci51bmlxKGEpLHM9cy5maWx0ZXIobD0+dGhpcy5icm93c2Vycy5pc1NlbGVjdGVkKGwuYnJvd3NlcikpLm1hcChsPT57bGV0IGM9dGhpcy5icm93c2Vycy5wcmVmaXgobC5icm93c2VyKTtyZXR1cm4gbC5ub3RlP2Ake2N9ICR7bC5ub3RlfWA6Y30pLHM9dGhpcy5zb3J0KElyLnVuaXEocykpLHRoaXMub3B0aW9ucy5mbGV4Ym94PT09Im5vLTIwMDkiJiYocz1zLmZpbHRlcihsPT4hbC5pbmNsdWRlcygiMjAwOSIpKSk7bGV0IG89bi5icm93c2Vycy5tYXAobD0+dGhpcy5icm93c2Vycy5wcmVmaXgobCkpO24ubWlzdGFrZXMmJihvPW8uY29uY2F0KG4ubWlzdGFrZXMpKSxvPW8uY29uY2F0KGEpLG89SXIudW5pcShvKSxzLmxlbmd0aD8odC5hZGRbaV09cyxzLmxlbmd0aDxvLmxlbmd0aCYmKHQucmVtb3ZlW2ldPW8uZmlsdGVyKGw9PiFzLmluY2x1ZGVzKGwpKSkpOnQucmVtb3ZlW2ldPW99cmV0dXJuIHR9c29ydChlKXtyZXR1cm4gZS5zb3J0KCh0LGkpPT57bGV0IG49SXIucmVtb3ZlTm90ZSh0KS5sZW5ndGgscz1Jci5yZW1vdmVOb3RlKGkpLmxlbmd0aDtyZXR1cm4gbj09PXM/aS5sZW5ndGgtdC5sZW5ndGg6cy1ufSl9cHJlcHJvY2VzcyhlKXtsZXQgdD17c2VsZWN0b3JzOltdLCJAc3VwcG9ydHMiOm5ldyBxUihGaSx0aGlzKX07Zm9yKGxldCBuIGluIGUuYWRkKXtsZXQgcz1lLmFkZFtuXTtpZihuPT09IkBrZXlmcmFtZXMifHxuPT09IkB2aWV3cG9ydCIpdFtuXT1uZXcgJFIobixzLHRoaXMpO2Vsc2UgaWYobj09PSJAcmVzb2x1dGlvbiIpdFtuXT1uZXcgb3YobixzLHRoaXMpO2Vsc2UgaWYodGhpcy5kYXRhW25dLnNlbGVjdG9yKXQuc2VsZWN0b3JzLnB1c2goUHIubG9hZChuLHMsdGhpcykpO2Vsc2V7bGV0IGE9dGhpcy5kYXRhW25dLnByb3BzO2lmKGEpe2xldCBvPXV0LmxvYWQobixzLHRoaXMpO2ZvcihsZXQgbCBvZiBhKXRbbF18fCh0W2xdPXt2YWx1ZXM6W119KSx0W2xdLnZhbHVlcy5wdXNoKG8pfWVsc2V7bGV0IG89dFtuXSYmdFtuXS52YWx1ZXN8fFtdO3Rbbl09ei5sb2FkKG4scyx0aGlzKSx0W25dLnZhbHVlcz1vfX19bGV0IGk9e3NlbGVjdG9yczpbXX07Zm9yKGxldCBuIGluIGUucmVtb3ZlKXtsZXQgcz1lLnJlbW92ZVtuXTtpZih0aGlzLmRhdGFbbl0uc2VsZWN0b3Ipe2xldCBhPVByLmxvYWQobixzKTtmb3IobGV0IG8gb2YgcylpLnNlbGVjdG9ycy5wdXNoKGEub2xkKG8pKX1lbHNlIGlmKG49PT0iQGtleWZyYW1lcyJ8fG49PT0iQHZpZXdwb3J0Iilmb3IobGV0IGEgb2Ygcyl7bGV0IG89YEAke2F9JHtuLnNsaWNlKDEpfWA7aVtvXT17cmVtb3ZlOiEwfX1lbHNlIGlmKG49PT0iQHJlc29sdXRpb24iKWlbbl09bmV3IG92KG4scyx0aGlzKTtlbHNle2xldCBhPXRoaXMuZGF0YVtuXS5wcm9wcztpZihhKXtsZXQgbz11dC5sb2FkKG4sW10sdGhpcyk7Zm9yKGxldCBsIG9mIHMpe2xldCBjPW8ub2xkKGwpO2lmKGMpZm9yKGxldCBmIG9mIGEpaVtmXXx8KGlbZl09e30pLGlbZl0udmFsdWVzfHwoaVtmXS52YWx1ZXM9W10pLGlbZl0udmFsdWVzLnB1c2goYyl9fWVsc2UgZm9yKGxldCBvIG9mIHMpe2xldCBsPXRoaXMuZGVjbChuKS5vbGQobixvKTtpZihuPT09ImFsaWduLXNlbGYiKXtsZXQgYz10W25dJiZ0W25dLnByZWZpeGVzO2lmKGMpe2lmKG89PT0iLXdlYmtpdC0gMjAwOSImJmMuaW5jbHVkZXMoIi13ZWJraXQtIikpY29udGludWU7aWYobz09PSItd2Via2l0LSImJmMuaW5jbHVkZXMoIi13ZWJraXQtIDIwMDkiKSljb250aW51ZX19Zm9yKGxldCBjIG9mIGwpaVtjXXx8KGlbY109e30pLGlbY10ucmVtb3ZlPSEwfX19cmV0dXJuW3QsaV19ZGVjbChlKXtyZXR1cm4gYWYuaGFzKGUpfHxhZi5zZXQoZSx6LmxvYWQoZSkpLGFmLmdldChlKX11bnByZWZpeGVkKGUpe2xldCB0PXRoaXMubm9ybWFsaXplKGF2LnVucHJlZml4ZWQoZSkpO3JldHVybiB0PT09ImZsZXgtZGlyZWN0aW9uIiYmKHQ9ImZsZXgtZmxvdyIpLHR9bm9ybWFsaXplKGUpe3JldHVybiB0aGlzLmRlY2woZSkubm9ybWFsaXplKGUpfXByZWZpeGVkKGUsdCl7cmV0dXJuIGU9YXYudW5wcmVmaXhlZChlKSx0aGlzLmRlY2woZSkucHJlZml4ZWQoZSx0KX12YWx1ZXMoZSx0KXtsZXQgaT10aGlzW2VdLG49aVsiKiJdJiZpWyIqIl0udmFsdWVzLHM9aVt0XSYmaVt0XS52YWx1ZXM7cmV0dXJuIG4mJnM/SXIudW5pcShuLmNvbmNhdChzKSk6bnx8c3x8W119Z3JvdXAoZSl7bGV0IHQ9ZS5wYXJlbnQsaT10LmluZGV4KGUpLHtsZW5ndGg6bn09dC5ub2RlcyxzPXRoaXMudW5wcmVmaXhlZChlLnByb3ApLGE9KG8sbCk9Pntmb3IoaSs9bztpPj0wJiZpPG47KXtsZXQgYz10Lm5vZGVzW2ldO2lmKGMudHlwZT09PSJkZWNsIil7aWYobz09PS0xJiZjLnByb3A9PT1zJiYhc2Yud2l0aFByZWZpeChjLnZhbHVlKXx8dGhpcy51bnByZWZpeGVkKGMucHJvcCkhPT1zKWJyZWFrO2lmKGwoYyk9PT0hMClyZXR1cm4hMDtpZihvPT09MSYmYy5wcm9wPT09cyYmIXNmLndpdGhQcmVmaXgoYy52YWx1ZSkpYnJlYWt9aSs9b31yZXR1cm4hMX07cmV0dXJue3VwKG8pe3JldHVybiBhKC0xLG8pfSxkb3duKG8pe3JldHVybiBhKDEsbyl9fX19O2x2LmV4cG9ydHM9Rml9KTt2YXIgY3Y9eCgoQ0wsZnYpPT57dSgpO2Z2LmV4cG9ydHM9eyJiYWNrZHJvcC1maWx0ZXIiOntmZWF0dXJlOiJjc3MtYmFja2Ryb3AtZmlsdGVyIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSIsInNhZmFyaSAxNi41Il19LGVsZW1lbnQ6e3Byb3BzOlsiYmFja2dyb3VuZCIsImJhY2tncm91bmQtaW1hZ2UiLCJib3JkZXItaW1hZ2UiLCJtYXNrIiwibGlzdC1zdHlsZSIsImxpc3Qtc3R5bGUtaW1hZ2UiLCJjb250ZW50IiwibWFzay1pbWFnZSJdLGZlYXR1cmU6ImNzcy1lbGVtZW50LWZ1bmN0aW9uIixicm93c2VyczpbImZpcmVmb3ggMTE0Il19LCJ1c2VyLXNlbGVjdCI6e21pc3Rha2VzOlsiLWtodG1sLSJdLGZlYXR1cmU6InVzZXItc2VsZWN0LW5vbmUiLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Iiwic2FmYXJpIDE2LjUiXX0sImJhY2tncm91bmQtY2xpcCI6e2ZlYXR1cmU6ImJhY2tncm91bmQtY2xpcC10ZXh0Iixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSxoeXBoZW5zOntmZWF0dXJlOiJjc3MtaHlwaGVucyIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiLCJzYWZhcmkgMTYuNSJdfSxmaWxsOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwiZmlsbC1hdmFpbGFibGUiOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSxzdHJldGNoOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImZpcmVmb3ggMTE0Il19LCJmaXQtY29udGVudCI6e3Byb3BzOlsid2lkdGgiLCJtaW4td2lkdGgiLCJtYXgtd2lkdGgiLCJoZWlnaHQiLCJtaW4taGVpZ2h0IiwibWF4LWhlaWdodCIsImlubGluZS1zaXplIiwibWluLWlubGluZS1zaXplIiwibWF4LWlubGluZS1zaXplIiwiYmxvY2stc2l6ZSIsIm1pbi1ibG9jay1zaXplIiwibWF4LWJsb2NrLXNpemUiLCJncmlkIiwiZ3JpZC10ZW1wbGF0ZSIsImdyaWQtdGVtcGxhdGUtcm93cyIsImdyaWQtdGVtcGxhdGUtY29sdW1ucyIsImdyaWQtYXV0by1jb2x1bW5zIiwiZ3JpZC1hdXRvLXJvd3MiXSxmZWF0dXJlOiJpbnRyaW5zaWMtd2lkdGgiLGJyb3dzZXJzOlsiZmlyZWZveCAxMTQiXX0sInRleHQtZGVjb3JhdGlvbi1zdHlsZSI6e2ZlYXR1cmU6InRleHQtZGVjb3JhdGlvbiIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sInRleHQtZGVjb3JhdGlvbi1jb2xvciI6e2ZlYXR1cmU6InRleHQtZGVjb3JhdGlvbiIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sInRleHQtZGVjb3JhdGlvbi1saW5lIjp7ZmVhdHVyZToidGV4dC1kZWNvcmF0aW9uIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSJdfSwidGV4dC1kZWNvcmF0aW9uIjp7ZmVhdHVyZToidGV4dC1kZWNvcmF0aW9uIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSJdfSwidGV4dC1kZWNvcmF0aW9uLXNraXAiOntmZWF0dXJlOiJ0ZXh0LWRlY29yYXRpb24iLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Il19LCJ0ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsiOntmZWF0dXJlOiJ0ZXh0LWRlY29yYXRpb24iLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Il19LCJ0ZXh0LXNpemUtYWRqdXN0Ijp7ZmVhdHVyZToidGV4dC1zaXplLWFkanVzdCIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sIm1hc2stY2xpcCI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stY29tcG9zaXRlIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1pbWFnZSI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stb3JpZ2luIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1yZXBlYXQiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlci1yZXBlYXQiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlci1zb3VyY2UiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LG1hc2s6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stcG9zaXRpb24iOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLXNpemUiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlciI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stYm9yZGVyLW91dHNldCI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stYm9yZGVyLXdpZHRoIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1ib3JkZXItc2xpY2UiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJjbGlwLXBhdGgiOntmZWF0dXJlOiJjc3MtY2xpcC1wYXRoIixicm93c2VyczpbInNhbXN1bmcgMjEiXX0sImJveC1kZWNvcmF0aW9uLWJyZWFrIjp7ZmVhdHVyZToiY3NzLWJveGRlY29yYXRpb25icmVhayIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiLCJvcGVyYSA5OSIsInNhZmFyaSAxNi41Iiwic2Ftc3VuZyAyMSJdfSxhcHBlYXJhbmNlOntmZWF0dXJlOiJjc3MtYXBwZWFyYW5jZSIsYnJvd3NlcnM6WyJzYW1zdW5nIDIxIl19LCJpbWFnZS1zZXQiOntwcm9wczpbImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kLWltYWdlIiwiYm9yZGVyLWltYWdlIiwiY3Vyc29yIiwibWFzayIsIm1hc2staW1hZ2UiLCJsaXN0LXN0eWxlIiwibGlzdC1zdHlsZS1pbWFnZSIsImNvbnRlbnQiXSxmZWF0dXJlOiJjc3MtaW1hZ2Utc2V0Iixicm93c2VyczpbImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsInNhbXN1bmcgMjEiXX0sImNyb3NzLWZhZGUiOntwcm9wczpbImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kLWltYWdlIiwiYm9yZGVyLWltYWdlIiwibWFzayIsImxpc3Qtc3R5bGUiLCJsaXN0LXN0eWxlLWltYWdlIiwiY29udGVudCIsIm1hc2staW1hZ2UiXSxmZWF0dXJlOiJjc3MtY3Jvc3MtZmFkZSIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0saXNvbGF0ZTp7cHJvcHM6WyJ1bmljb2RlLWJpZGkiXSxmZWF0dXJlOiJjc3MtdW5pY29kZS1iaWRpIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSIsInNhZmFyaSAxNi41Il19LCJjb2xvci1hZGp1c3QiOntmZWF0dXJlOiJjc3MtY29sb3ItYWRqdXN0Iixicm93c2VyczpbImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiXX19fSk7dmFyIGR2PXgoKF9MLHB2KT0+e3UoKTtwdi5leHBvcnRzPXt9fSk7dmFyIHl2PXgoKEVMLGd2KT0+e3UoKTt2YXIgTjU9WWwoKSx7YWdlbnRzOkI1fT0oUHMoKSxScyksb2Y9T3koKSxGNT1NdCgpLGo1PXV2KCksejU9Y3YoKSxVNT1kdigpLGh2PXticm93c2VyczpCNSxwcmVmaXhlczp6NX0sbXY9YAogIFJlcGxhY2UgQXV0b3ByZWZpeGVyIFxgYnJvd3NlcnNcYCBvcHRpb24gdG8gQnJvd3NlcnNsaXN0IGNvbmZpZy4KICBVc2UgXGBicm93c2Vyc2xpc3RcYCBrZXkgaW4gXGBwYWNrYWdlLmpzb25cYCBvciBcYC5icm93c2Vyc2xpc3RyY1xgIGZpbGUuCgogIFVzaW5nIFxgYnJvd3NlcnNcYCBvcHRpb24gY2FuIGNhdXNlIGVycm9ycy4gQnJvd3NlcnNsaXN0IGNvbmZpZyBjYW4KICBiZSB1c2VkIGZvciBCYWJlbCwgQXV0b3ByZWZpeGVyLCBwb3N0Y3NzLW5vcm1hbGl6ZSBhbmQgb3RoZXIgdG9vbHMuCgogIElmIHlvdSByZWFsbHkgbmVlZCB0byB1c2Ugb3B0aW9uLCByZW5hbWUgaXQgdG8gXGBvdmVycmlkZUJyb3dzZXJzbGlzdFxgLgoKICBMZWFybiBtb3JlIGF0OgogIGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2Vyc2xpc3QvYnJvd3NlcnNsaXN0I3JlYWRtZQogIGh0dHBzOi8vdHdpdHRlci5jb20vYnJvd3NlcnNsaXN0CgpgO2Z1bmN0aW9uIFY1KHIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHIpPT09IltvYmplY3QgT2JqZWN0XSJ9dmFyIGxmPW5ldyBNYXA7ZnVuY3Rpb24gSDUocixlKXtlLmJyb3dzZXJzLnNlbGVjdGVkLmxlbmd0aCE9PTAmJihlLmFkZC5zZWxlY3RvcnMubGVuZ3RoPjB8fE9iamVjdC5rZXlzKGUuYWRkKS5sZW5ndGg+Mnx8ci53YXJuKGBBdXRvcHJlZml4ZXIgdGFyZ2V0IGJyb3dzZXJzIGRvIG5vdCBuZWVkIGFueSBwcmVmaXhlcy5Zb3UgZG8gbm90IG5lZWQgQXV0b3ByZWZpeGVyIGFueW1vcmUuCkNoZWNrIHlvdXIgQnJvd3NlcnNsaXN0IGNvbmZpZyB0byBiZSBzdXJlIHRoYXQgeW91ciB0YXJnZXRzIGFyZSBzZXQgdXAgY29ycmVjdGx5LgoKICBMZWFybiBtb3JlIGF0OgogIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0Y3NzL2F1dG9wcmVmaXhlciNyZWFkbWUKICBodHRwczovL2dpdGh1Yi5jb20vYnJvd3NlcnNsaXN0L2Jyb3dzZXJzbGlzdCNyZWFkbWUKCmApKX1ndi5leHBvcnRzPURyO2Z1bmN0aW9uIERyKC4uLnIpe2xldCBlO2lmKHIubGVuZ3RoPT09MSYmVjUoclswXSk/KGU9clswXSxyPXZvaWQgMCk6ci5sZW5ndGg9PT0wfHxyLmxlbmd0aD09PTEmJiFyWzBdP3I9dm9pZCAwOnIubGVuZ3RoPD0yJiYoQXJyYXkuaXNBcnJheShyWzBdKXx8IXJbMF0pPyhlPXJbMV0scj1yWzBdKTp0eXBlb2YgcltyLmxlbmd0aC0xXT09Im9iamVjdCImJihlPXIucG9wKCkpLGV8fChlPXt9KSxlLmJyb3dzZXIpdGhyb3cgbmV3IEVycm9yKCJDaGFuZ2UgYGJyb3dzZXJgIG9wdGlvbiB0byBgb3ZlcnJpZGVCcm93c2Vyc2xpc3RgIGluIEF1dG9wcmVmaXhlciIpO2lmKGUuYnJvd3NlcnNsaXN0KXRocm93IG5ldyBFcnJvcigiQ2hhbmdlIGBicm93c2Vyc2xpc3RgIG9wdGlvbiB0byBgb3ZlcnJpZGVCcm93c2Vyc2xpc3RgIGluIEF1dG9wcmVmaXhlciIpO2Uub3ZlcnJpZGVCcm93c2Vyc2xpc3Q/cj1lLm92ZXJyaWRlQnJvd3NlcnNsaXN0OmUuYnJvd3NlcnMmJih0eXBlb2YgY29uc29sZSE9InVuZGVmaW5lZCImJmNvbnNvbGUud2FybiYmKG9mLnJlZD9jb25zb2xlLndhcm4ob2YucmVkKG12LnJlcGxhY2UoL2BbXmBdK2AvZyxuPT5vZi55ZWxsb3cobi5zbGljZSgxLC0xKSkpKSk6Y29uc29sZS53YXJuKG12KSkscj1lLmJyb3dzZXJzKTtsZXQgdD17aWdub3JlVW5rbm93blZlcnNpb25zOmUuaWdub3JlVW5rbm93blZlcnNpb25zLHN0YXRzOmUuc3RhdHMsZW52OmUuZW52fTtmdW5jdGlvbiBpKG4pe2xldCBzPWh2LGE9bmV3IEY1KHMuYnJvd3NlcnMscixuLHQpLG89YS5zZWxlY3RlZC5qb2luKCIsICIpK0pTT04uc3RyaW5naWZ5KGUpO3JldHVybiBsZi5oYXMobyl8fGxmLnNldChvLG5ldyBqNShzLnByZWZpeGVzLGEsZSkpLGxmLmdldChvKX1yZXR1cm57cG9zdGNzc1BsdWdpbjoiYXV0b3ByZWZpeGVyIixwcmVwYXJlKG4pe2xldCBzPWkoe2Zyb206bi5vcHRzLmZyb20sZW52OmUuZW52fSk7cmV0dXJue09uY2VFeGl0KGEpe0g1KG4scyksZS5yZW1vdmUhPT0hMSYmcy5wcm9jZXNzb3IucmVtb3ZlKGEsbiksZS5hZGQhPT0hMSYmcy5wcm9jZXNzb3IuYWRkKGEsbil9fX0saW5mbyhuKXtyZXR1cm4gbj1ufHx7fSxuLmZyb209bi5mcm9tfHxtLmN3ZCgpLFU1KGkobikpfSxvcHRpb25zOmUsYnJvd3NlcnM6cn19RHIucG9zdGNzcz0hMDtEci5kYXRhPWh2O0RyLmRlZmF1bHRzPU41LmRlZmF1bHRzO0RyLmluZm89KCk9PkRyKCkuaW5mbygpfSk7dmFyIGJ2PXt9O0dlKGJ2LHtkZWZhdWx0OigpPT5XNX0pO3ZhciBXNSx3dj1QKCgpPT57dSgpO1c1PVtdfSk7dmFyIHh2PXt9O0dlKHh2LHtkZWZhdWx0OigpPT5HNX0pO3ZhciB2dixHNSxrdj1QKCgpPT57dSgpO1hpKCk7dnY9cGUocm4oKSksRzU9U3QodnYuZGVmYXVsdC50aGVtZSl9KTt2YXIgQXY9e307R2UoQXYse2RlZmF1bHQ6KCk9PlE1fSk7dmFyIFN2LFE1LEN2PVAoKCk9Pnt1KCk7WGkoKTtTdj1wZShybigpKSxRNT1TdChTdi5kZWZhdWx0KX0pO3UoKTsidXNlIHN0cmljdCI7dmFyIFk1PXZ0KF95KCkpLEs1PXZ0KCRlKCkpLFg1PXZ0KHl2KCkpLFo1PXZ0KCh3digpLGJ2KSksSjU9dnQoKGt2KCkseHYpKSxlUD12dCgoQ3YoKSxBdikpLHRQPXZ0KChWcygpLF9mKSksclA9dnQoKGFsKCksc2wpKSxpUD12dCgoc2EoKSxzYykpO2Z1bmN0aW9uIHZ0KHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1jb25zb2xlLndhcm4oImNkbi50YWlsd2luZGNzcy5jb20gc2hvdWxkIG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24uIFRvIHVzZSBUYWlsd2luZCBDU1MgaW4gcHJvZHVjdGlvbiwgaW5zdGFsbCBpdCBhcyBhIFBvc3RDU1MgcGx1Z2luIG9yIHVzZSB0aGUgVGFpbHdpbmQgQ0xJOiBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2luc3RhbGxhdGlvbiIpO3ZhciBOcz0idGFpbHdpbmQiLHVmPSJ0ZXh0L3RhaWx3aW5kY3NzIixfdj0iL3RlbXBsYXRlLmh0bWwiLFl0LEV2PSEwLE92PTAsZmY9bmV3IFNldCxjZixUdj0iIixSdj0ocj0hMSk9Pih7Z2V0KGUsdCl7cmV0dXJuKCFyfHx0PT09ImNvbmZpZyIpJiZ0eXBlb2YgZVt0XT09Im9iamVjdCImJmVbdF0hPT1udWxsP25ldyBQcm94eShlW3RdLFJ2KCkpOmVbdF19LHNldChlLHQsaSl7cmV0dXJuIGVbdF09aSwoIXJ8fHQ9PT0iY29uZmlnIikmJnBmKCEwKSwhMH19KTt3aW5kb3dbTnNdPW5ldyBQcm94eSh7Y29uZmlnOnt9LGRlZmF1bHRUaGVtZTpKNS5kZWZhdWx0LGRlZmF1bHRDb25maWc6ZVAuZGVmYXVsdCxjb2xvcnM6dFAuZGVmYXVsdCxwbHVnaW46clAuZGVmYXVsdCxyZXNvbHZlQ29uZmlnOmlQLmRlZmF1bHR9LFJ2KCEwKSk7ZnVuY3Rpb24gUHYocil7Y2Yub2JzZXJ2ZShyLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInR5cGUiXSxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITAsY2hpbGRMaXN0OiEwfSl9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoYXN5bmMgcj0+e2xldCBlPSExO2lmKCFjZil7Y2Y9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoYXN5bmMoKT0+YXdhaXQgcGYoITApKTtmb3IobGV0IHQgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgc3R5bGVbdHlwZT0iJHt1Zn0iXWApKVB2KHQpfWZvcihsZXQgdCBvZiByKWZvcihsZXQgaSBvZiB0LmFkZGVkTm9kZXMpaS5ub2RlVHlwZT09PTEmJmkudGFnTmFtZT09PSJTVFlMRSImJmkuZ2V0QXR0cmlidXRlKCJ0eXBlIik9PT11ZiYmKFB2KGkpLGU9ITApO2F3YWl0IHBmKGUpfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiY2xhc3MiXSxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pO2FzeW5jIGZ1bmN0aW9uIHBmKHI9ITEpe3ImJihPdisrLGZmLmNsZWFyKCkpO2xldCBlPSIiO2ZvcihsZXQgaSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBzdHlsZVt0eXBlPSIke3VmfSJdYCkpZSs9aS50ZXh0Q29udGVudDtsZXQgdD1uZXcgU2V0O2ZvcihsZXQgaSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbY2xhc3NdIikpZm9yKGxldCBuIG9mIGkuY2xhc3NMaXN0KWZmLmhhcyhuKXx8dC5hZGQobik7aWYoZG9jdW1lbnQuYm9keSYmKEV2fHx0LnNpemU+MHx8ZSE9PVR2fHwhWXR8fCFZdC5pc0Nvbm5lY3RlZCkpe2ZvcihsZXQgbiBvZiB0KWZmLmFkZChuKTtFdj0hMSxUdj1lLHNlbGZbX3ZdPUFycmF5LmZyb20odCkuam9pbigiICIpO2xldHtjc3M6aX09YXdhaXQoMCxLNS5kZWZhdWx0KShbKDAsWTUuZGVmYXVsdCkoey4uLndpbmRvd1tOc10uY29uZmlnLF9oYXNoOk92LGNvbnRlbnQ6e2ZpbGVzOltfdl0sZXh0cmFjdDp7aHRtbDpuPT5uLnNwbGl0KCIgIil9fSxwbHVnaW5zOlsuLi5aNS5kZWZhdWx0LC4uLkFycmF5LmlzQXJyYXkod2luZG93W05zXS5jb25maWcucGx1Z2lucyk/d2luZG93W05zXS5jb25maWcucGx1Z2luczpbXV19KSwoMCxYNS5kZWZhdWx0KSh7cmVtb3ZlOiExfSldKS5wcm9jZXNzKGBAdGFpbHdpbmQgYmFzZTtAdGFpbHdpbmQgY29tcG9uZW50cztAdGFpbHdpbmQgdXRpbGl0aWVzOyR7ZX1gKTsoIVl0fHwhWXQuaXNDb25uZWN0ZWQpJiYoWXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxkb2N1bWVudC5oZWFkLmFwcGVuZChZdCkpLFl0LnRleHRDb250ZW50PWl9fX0pKCk7Ci8qIQogKiBmaWxsLXJhbmdlIDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9maWxsLXJhbmdlPgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgSm9uIFNjaGxpbmtlcnQuCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCi8qIQogKiBpcy1udW1iZXIgPGh0dHBzOi8vZ2l0aHViLmNvbS9qb25zY2hsaW5rZXJ0L2lzLW51bWJlcj4KICoKICogQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEpvbiBTY2hsaW5rZXJ0LgogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLwovKiEKICogdG8tcmVnZXgtcmFuZ2UgPGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb21hdGNoL3RvLXJlZ2V4LXJhbmdlPgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTUtcHJlc2VudCwgSm9uIFNjaGxpbmtlcnQuCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCi8qISBodHRwczovL210aHMuYmUvY3NzZXNjIHYzLjAuMCBieSBAbWF0aGlhcyAqLwo="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/translate_static/img/loading.gif","fqdn":"translate.googleapis.com","domain":"translate.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":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.532Z","timestamp":1785153915532,"http_version":"HTTP/3","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 /translate_static/img/loading.gif HTTP/1.1\r\nHost: translate.googleapis.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://onchainopt.com/\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/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 702\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 21:36:56 GMT\r\nexpires: Sat, 24 Jul 2027 21:36:56 GMT\r\ncache-control: public, max-age=31536000\r\nage: 224899\r\nlast-modified: Thu, 03 Oct 2019 10:15:00 GMT\r\ncontent-type: image/gif\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":702,"size_decoded":1361,"mime_type":"image/gif","magic":"GIF image data, version 89a, 16 x 16","md5":"eefaa072b284a305c12c06608333abc2","sha1":"58272721ccc1efda26eaa22354022c7c793edbb6","sha256":"fb6b7bcc1ab09f27db17bcbdf5239ce1d52af34f1fc5125b3fc8528a07848d21","sha512":"c5ccfdcd9ce76de85f043a1733c9f0b620e15babbaf2a5639684c7b2bb8e5a66473c9a83f14cb48d9cb6c6a1c6b36f2c5a28e25abaf131fb85ec5eedecbae4ac","ssdeep":"","tlshash":"5d01dd13f3d50473f66d0075a20cc57f010635daaadad7089a48117cfe1983c5239b82","first_seen":"2023-04-05T11:18:23Z","last_seen":"2026-07-30T06:08:30.87469Z","times_seen":18444,"resource_available":false,"data":"R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/h1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDQuMAAh/hVNYWRlIGJ5IEFqYXhMb2FkLmluZm8AIfkECQoAAAAsAAAAABAAEAAAAzMIutz+MMpJaxNjCDoIGZwHTphmCUWxMcK6FJnBti5gxMJx0C1bGDndpgc5GAwHSmvnSAAAIfkECQoAAAAsAAAAABAAEAAAAzQIutz+TowhIBuEDLuw5opEcUJRVGAxGSBgTEVbGqh8HLV13+1hGAeAINcY4oZDGbIlJCoSACH5BAkKAAAALAAAAAAQABAAAAM2CLoyIyvKQciQzJRWLwaFYxwO9BlO8UlCYZircBzwCsyzvRzGqCsCWe0X/AGDww8yqWQan78EACH5BAkKAAAALAAAAAAQABAAAAMzCLpiJSvKMoaR7JxWX4WLpgmFIQwEMUSHYRwRqkaCsNEfA2JSXfM9HzA4LBqPyKRyOUwAACH5BAkKAAAALAAAAAAQABAAAAMyCLpyJytK52QU8BjzTIEMJnbDYFxiVJSFhLkeaFlCKc/KQBADHuk8H8MmLBqPyKRSkgAAIfkECQoAAAAsAAAAABAAEAAAAzMIuiDCkDkX43TnvNqeMBnHHOAhLkK2ncpXrKIxDAYLFHNhu7A195UBgTCwCYm7n20pSgAAIfkECQoAAAAsAAAAABAAEAAAAzIIutz+8AkR2ZxVXZoB7tpxcJVgiN1hnN00loVBRsUwFJBgm7YBDQTCQBCbMYDC1s6RAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P4wykmrZULUnCnXHggIwyCOx3EOBDEwqcqwrlAYwmEYB1bapQIgdWIYgp5bEZAAADsAAAAAAAAAAAAK"}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/chaticon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.589Z","timestamp":1785153914589,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/chaticon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2987\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":2987,"size_decoded":3252,"mime_type":"image/png","magic":"PNG image data, 121 x 120, 8-bit/color RGBA, non-interlaced","md5":"995aaf098bc720a5d9a546cf0b8828cc","sha1":"c3fa0687afa02deceaaab7120745ae52e7ff4e0e","sha256":"ad7b8d3d87b2f41c2a6639e6b973c27d4a79d4390a66ec4da7f223a112b955e7","sha512":"9c2013b562653d362e580333ebc945009b7dedfc97dcfa219c841e0a3684b370a14d5fd5207a74f3e7e484ee05b68aa17b6ed4c0f9bec285620c57071ac45ef9","ssdeep":"","tlshash":"7d514cfbaabb4c9fcbc2133f19552c5023c178db930e549b210dd0a86a3e6a167d5275","first_seen":"2026-04-01T23:54:14.873903Z","last_seen":"2026-07-27T12:06:15.809159Z","times_seen":12,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAHkAAAB4CAYAAADWpl3sAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAtASURBVHgB7Z1NbBRHFsdfdc9gIxxsiIxREGaykVhpsVmzSi5Zs7EvURArAadFycVcWLGXOAEkcsIoKyXShtjZlcIRc1iugITPeJXcVlo7sbTS7mGZOCECTPB4YycmZrryXk83nv6Yj+qu/pqpn9QaT3tm7Ol/v1evXlW9AlAoFAqFQqFQKBQKhUKhUCgUCoUiXTBIObvHfyyAtjFiaKzADW0f0/gQcOjhAD34z/fYr8PnJXxewsciA1YCZnwBnM9r5fL8/akdRWhjUidyz/hyT2cuN1QG/RjjxnE8VYDQsCKKP8ugfOvh5e03oc1Ijci7z30/QsICN8aqLVQ2ZPH4tW/qzLh2/6PnZqENSFxkU1zOLuI/MgJxw2Cec31q6fLWa9DCJCYyiWuANont5hAkDrlzbaJVxY5d5N3jy4Wynr+aiOU2hN3Uyj+902qBmgYx0nf2h7dR4Ll0Ckzw44aev9v37uo4tBCxWDJFzHk9fyO94vrROlYducjkng19yx20kgJkDlZEoUezLnSk7rp3fHmI3HM2BSa4eYP2nl9NQXAYnMgsmQQGPX8nyj5vjJS4BqNLf+mahwwSicgtJrBNZoWWLrLVRZprMYFtSlp541DW2mipbbIdZLWowEQPfb+eieVMfb8cSAQvwGSag6ztWxn072AwsEeDAy9osBd/3rtTg248370Vf9+56dj+v85h5UeArx8b+Mjh62UO3ywbsHCPF/7zoOMGJsBHISNIc9e7zq1dxBTlBKQIEnUAxTwyoMOrL+nmzxKhtnkWj1uMsVlIMVJErrjp/F1ICSToyZdzcGRQd1hnhKBhAw1hXkuj4FKuQO/ZNcxF8zFIELLaPx7Owenf5eMSthZFPKagYuFFSAGhr0bvu6tjjMFVSAhRcfmTRbS7z81Hvv4V8NUFgPIKwNMV4HjYsFw3Rix4dPSbj1rXQWDbBgE6+yuPzTGNx6WkxQ4t8q6za3eTCLaaFZeE4w+vg1H6DGDlc4eQQTFvgO5h0J7/PbCeYWB0I9RnAo9PUOwSJEAokZOy4iMDOXj/2BYzOvbjmbCPbgNHYaOGkeB9bwF7/mjlBvCniMcECh37mHU4kc+u3olzZIms928nt8AbB/x7fiSuce9T4N9ekWKxojBy5ST4vvfqWfc0xOzCA4scd0RNEfNfT3b4Wq8p7lcfmNabhLh+aH1v1hO7iMcJFDqWFGngjmNZ33IRYuI0tr03znR6BCZByyhu+Z+DYCRkvbUwHlyHp/8aNv8/Hwp4zHHOY7mGgS05roCL2t7Th/Oe89TWlv97BiPkRUg75Mb1gzO1rJra6UsQIYFE7h1fHWI6zEGEUPv7ZxT4Dy97219yzeXFDyFraP0XQEcX7sM0Cn0KIiJQ7lrTYIRDtJB7dqchTff87zdjiZijwMAbk68tQG7/lUoffJMxXpm1OhpFNytQm8wZew0ihAIsj8Dolstzw5kV2IZ/NwNP6Xs88TQzJPIkREAwkYGPQES87+OiTYEXjmai/W0G8/t8edRPaLJo6UILi0wzL6MaLz73et4TZLWawDZ1hB5HoaVOCRYWmRajQQRQP/j861sc51pVYJs6Qk+i0CMgCWGRDc6lW/Hencxsh6tpdYFtbKHB28e/yiVda2GRGdcKIBmyYHeiIyt9YBnQ93yKvQYXBTykjAsIi8w1uZZ88pWcJ9AyU5QZj6JFMZM79664Tx9Haz4OIYl1LZQbctPn/NrhDCY6ZGD874LfzT0Z1m0nKjJZsMdNYzvczlAz5aKAR6hoOzGRyYrd0bTpptukHa5FDU/2dhhrFm+TGS+CBM4rN10TGhN3RdskcGBrFo+uDQidWyUr9gRbix+AwoJy9N96grDA1iwsslbOhx7o/i0mPqohK6bxV8UmMq1ZWOR1WA9tye6IWlmxD/7WfAwCICxyaWoHiVyEgFD60jPDo836xM3iY81DQdKdQaPrf0BAKPlRDbnpdo+oa0KzTnH82YVwciTYUKNmzEJAXnW3x49vg6I2PnPEhF12IJE3NsqBShce2KN5XLXxaAbCQPOccwdnIH94BXK/uu6ecRH5+6PGtGSnyy6gyy6AAIFEpnaZV1b0CTHonu0hoS1mtIqhe9j6+SjofW+JvD30+yNHgssOnPHSONwCQd4YcLnq78JZMUEzIR2IWnLI98eB4b1OvwYBAov8xNiYrhQjbZ7+HS5LXv0SFI3xuU4jIEBgkStdKS60rueAy10bXjek8MHHXRdEsl+hBij0cm6q2ddS0FWN2W1K0YqHVEPtsneKUDwi35/aWkR7bMqau93LS5+ovrEQ675TeJsi9FAj5rInmmmb+3e6RFYJEDGSsmSCrJkx/kmj17kXivOyctUi+Czmi09k4uFHz03gQHOx3muojJID1R6LkbTIBDf4CVCkEmkiL011zRsc3gFF6pA6x+vRx11TvEa0TVXtHEjKLLnbKqroE+f7s4D0iXxLl7eP8Uq1OgdUxrAapssR2Xjw92fpUcqFi6ZKw74/LjzpV4Exfam1NW02yhuj+Uop5Gd9OapT6fzLknLEaIk+qw/ie39cdAQXOZIpuZTyJKGrLXpx2XC+qPmCZwrCaxRNjxtENu/aFpo27KDn3zx2uevOhgXOFFX4VAEsQpNEOrmehH54edsJYPySXU7Y8ce7lDU3A1X9czEvUnYilhUUlCzhHE4tfe+amL/tICgaw7zXSagLENsymaWPu6Z/06850p9a9zAoGuNznWZBgLjXQjm6VjTdRtEYlkGRN9sSKjGsrLkuZnvsjKyLouUaYxXZChac1txzGBS10XZ5JhbOgiBJLF11pD21F86Aogbk6bxNmnAp5SREpn6zctlNQEXTfVz1LAgSu8iWy3Zas3+9ybZH23fBfWoWApBUpQHHCgyzELiyZgdmJXxvvjpQNd1ERLZczmz1OWXNTnyseDpotfskC8M47kplzZvItGLz8yAhfK3ZWyK47aCBG5lWTCRa4glxTBcyK7y3udvW+t+TasXmZ0KCWJkbZz4b+83t6rbJTdMGJS5C7zyT6H53hLWmh7Y6KDw71ybFU6upsU8F9YtfhJAk7a7tfrNj/wXzC++/Au0CLYSvsRHJKEggcZEJKwhzuG2KtvWX2qN4m/aLD33bYVkbhCXurqtB130HXGtvaXOOGnsrtQSUH9D7PdH0TRRY2mKFtInsaZ+JVhWaAi19/6fu00U8DsncVSYV7trG+mLUDhWrz5v7KbWg69a8c7eKEMG2QakSmbDaIa/Q2LWi6jwtPsszko06UycyUUtoszrP4IyazitIKkUmagqNAudeWWj7zJgIqRWZqBLaM6eJ2mkSW1l1Y1ItMkFC43EIXP1o83e2VWPiRIldm9SLbINCU61nyowV3b+jfK8SuzaZEZlAoaeh4r59J7NVi+3TPWlbMiUyYbnvMahh1QSJTVG4ErxCJOuT48Cy6mnMko3hI20bX/C8Bl0368ShOxRdo4oCawuVheYrn5kjXCKjXOZn0QK9jn2VoVD6mYqomQvXb4NRSm9h9lSlNcNQT+y676P6WLbY1aLTDBU6qI3Xu82RorqfQzcRCk7FTu2bqBG5X2IMscsxfnzKunml0jIi21jl+8egUvxb+uahTf8ftteoY+VmBs85eV6JLIq1zyEdtHN7ARLCbeXk5tmeP/mNPh0SXefUDC0tcjUoONUvKUBlKJPqRdNzEUunQQNaF0yjZCTEF1WfJ+MmkjILxI+2EbkWVqn/gvW0UPWrknUU6bHRyJDVTNDxGgjWo7Z4MYrBCUVE0I1DgSAeFP3f5fVZtoJGRZYhK8djgma+VIlbtM4lFhwqFAqFQqFQKBQKhUKhUCgU2eRnPnihFkRrHHYAAAAASUVORK5CYII="}},"time_used":85,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":58,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_68x28dp.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://onchainopt.com/","date":"2026-07-27T12:05:15.529Z","timestamp":1785153915529,"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 /images/branding/googlelogo/1x/googlelogo_color_68x28dp.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://onchainopt.com/\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/3 200 \r\naccept-ranges: bytes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 1597\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:18 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:18 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 30 Jun 2023 18:58:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 428097\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":1597,"size_decoded":2271,"mime_type":"image/png","magic":"PNG image data, 68 x 28, 8-bit/color RGBA, non-interlaced","md5":"c4a931d597decd2553aac6634b766cf2","sha1":"6ec84fb4a2745b4b71520241be77db1fd1013830","sha256":"f56402b127698db4b4dc611a97a6f081d04c4691c60522c5912d189e37c94a9e","sha512":"4932e0f7f38085a7c52539bdd5c7f470740e560a4471bea30d12ef9e3efe77f6bbfac28d26c62a245c43d98ebf74c824b2b414843080a27edf1563a5f874ac84","ssdeep":"","tlshash":"7c310afff39e8cec419e764069ba5965a362cd68233e928f14499592e4d007710f5f41","first_seen":"2023-04-05T08:27:37Z","last_seen":"2026-07-30T06:08:30.839679Z","times_seen":18811,"resource_available":false,"data":"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"}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.google.com/images/cleardot.gif","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":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.531Z","timestamp":1785153915531,"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 /images/cleardot.gif 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: 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://onchainopt.com/\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/3 200 \r\naccept-ranges: bytes\r\ncontent-type: image/gif\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 43\r\ndate: Mon, 27 Jul 2026 12:05:15 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\nlast-modified: Tue, 22 Oct 2019 18:30:00 GMT\r\nx-content-type-options: nosniff\r\nserver: sffe\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":null,"data":{"size":43,"size_decoded":717,"mime_type":"image/gif","magic":"GIF image data, version 89a, 1 x 1","md5":"fc94fb0c3ed8a8f909dbc7630a0987ff","sha1":"56d45f8a17f5078a20af9962c992ca4678450765","sha256":"2dfe28cbdb83f01c940de6a88ab86200154fd772d568035ac568664e52068363","sha512":"c87bf81fd70cf6434ca3a6c05ad6e9bd3f1d96f77dddad8d45ee043b126b2cb07a5cf23b4137b9d8462cd8a9adf2b463ab6de2b38c93db72d2d511ca60e3b57e","ssdeep":"","tlshash":"cb900003cac8c022c2a2c0300a0c03002bbaa8300228030ec0bc30fcec2a3a38c02000","first_seen":"2023-04-05T02:54:04Z","last_seen":"2026-07-30T07:16:06.455308Z","times_seen":81475,"resource_available":true,"data":"R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="}},"time_used":42,"timings":{"blocked":-1,"dns":2,"connect":23,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/js/iziToast.min.js","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.564Z","timestamp":1785153914564,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/global/js/iziToast.min.js HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 4784\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":18481,"size_decoded":5021,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (18398)","md5":"a05a127c793145cec6b721f14fced3e5","sha1":"5d753b1c803de12f4d2217ab0d143d4dcf047010","sha256":"ac860be79a4cfe434ea68f002638f79371d9a85a3b045a1aaf10dc98df551497","sha512":"ee5a4c561a267f7a96635cb529a5e670aebe766289fe358e6b394585db4b76d5df215cad4b358a07425deaada36d4f4e42c06c2c44d9c192f03ac1afeb9bdc64","ssdeep":"384:ShKmhCPzlc5gVCPBpcG/0CEvXArKKpQi8VREgO3MrnHzxJBkHI4505P:+K5PzlcN8DXArhpQzRHO3M7TxfGIYUP","tlshash":"6a82c894722032374aa329a960ff534a3772156ca9c641a4243fcdad5b34f8939f77f8","first_seen":"2023-03-07T01:10:25Z","last_seen":"2026-07-30T04:47:09.860347Z","times_seen":3346,"resource_available":true,"data":"LyoKKiBpemlUb2FzdCB8IHYxLjQuMAoqIGh0dHA6Ly9peml0b2FzdC5tYXJjZWxvZG9sY2UuY29tCiogYnkgTWFyY2VsbyBEb2xjZS4KKi8KIWZ1bmN0aW9uKHQsZSl7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZSh0KSk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWUodCk6dC5pemlUb2FzdD1lKHQpfSgidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6d2luZG93fHx0aGlzLndpbmRvd3x8dGhpcy5nbG9iYWwsZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPXt9LG49Iml6aVRvYXN0IixvPShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IiksISEvTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSksaT0vQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYvR29vZ2xlIEluYy8udGVzdChuYXZpZ2F0b3IudmVuZG9yKSxzPSJ1bmRlZmluZWQiIT10eXBlb2YgSW5zdGFsbFRyaWdnZXIsYT0ib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPVsiYm90dG9tUmlnaHQiLCJib3R0b21MZWZ0IiwiYm90dG9tQ2VudGVyIiwidG9wUmlnaHQiLCJ0b3BMZWZ0IiwidG9wQ2VudGVyIiwiY2VudGVyIl0sbD17aW5mbzp7Y29sb3I6ImJsdWUiLGljb246Imljby1pbmZvIn0sc3VjY2Vzczp7Y29sb3I6ImdyZWVuIixpY29uOiJpY28tc3VjY2VzcyJ9LHdhcm5pbmc6e2NvbG9yOiJvcmFuZ2UiLGljb246Imljby13YXJuaW5nIn0sZXJyb3I6e2NvbG9yOiJyZWQiLGljb246Imljby1lcnJvciJ9LHF1ZXN0aW9uOntjb2xvcjoieWVsbG93IixpY29uOiJpY28tcXVlc3Rpb24ifX0sZD01NjgsYz17fTtlLmNoaWxkcmVuPXt9O3ZhciB1PXtpZDpudWxsLCJjbGFzcyI6IiIsdGl0bGU6IiIsdGl0bGVDb2xvcjoiIix0aXRsZVNpemU6IiIsdGl0bGVMaW5lSGVpZ2h0OiIiLG1lc3NhZ2U6IiIsbWVzc2FnZUNvbG9yOiIiLG1lc3NhZ2VTaXplOiIiLG1lc3NhZ2VMaW5lSGVpZ2h0OiIiLGJhY2tncm91bmRDb2xvcjoiIix0aGVtZToibGlnaHQiLGNvbG9yOiIiLGljb246IiIsaWNvblRleHQ6IiIsaWNvbkNvbG9yOiIiLGljb25Vcmw6bnVsbCxpbWFnZToiIixpbWFnZVdpZHRoOjUwLG1heFdpZHRoOm51bGwsemluZGV4Om51bGwsbGF5b3V0OjEsYmFsbG9vbjohMSxjbG9zZTohMCxjbG9zZU9uRXNjYXBlOiExLGNsb3NlT25DbGljazohMSxkaXNwbGF5TW9kZTowLHBvc2l0aW9uOiJib3R0b21SaWdodCIsdGFyZ2V0OiIiLHRhcmdldEZpcnN0OiEwLHRpbWVvdXQ6NWUzLHJ0bDohMSxhbmltYXRlSW5zaWRlOiEwLGRyYWc6ITAscGF1c2VPbkhvdmVyOiEwLHJlc2V0T25Ib3ZlcjohMSxwcm9ncmVzc0JhcjohMCxwcm9ncmVzc0JhckNvbG9yOiIiLHByb2dyZXNzQmFyRWFzaW5nOiJsaW5lYXIiLG92ZXJsYXk6ITEsb3ZlcmxheUNsb3NlOiExLG92ZXJsYXlDb2xvcjoicmdiYSgwLCAwLCAwLCAwLjYpIix0cmFuc2l0aW9uSW46ImZhZGVJblVwIix0cmFuc2l0aW9uT3V0OiJmYWRlT3V0Iix0cmFuc2l0aW9uSW5Nb2JpbGU6ImZhZGVJblVwIix0cmFuc2l0aW9uT3V0TW9iaWxlOiJmYWRlT3V0RG93biIsYnV0dG9uczp7fSxpbnB1dHM6e30sb25PcGVuaW5nOmZ1bmN0aW9uKCl7fSxvbk9wZW5lZDpmdW5jdGlvbigpe30sb25DbG9zaW5nOmZ1bmN0aW9uKCl7fSxvbkNsb3NlZDpmdW5jdGlvbigpe319O2lmKCJyZW1vdmUiaW4gRWxlbWVudC5wcm90b3R5cGV8fChFbGVtZW50LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX0pLCJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQpe3ZhciBwPWZ1bmN0aW9uKHQsZSl7ZT1lfHx7YnViYmxlczohMSxjYW5jZWxhYmxlOiExLGRldGFpbDp2b2lkIDB9O3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJDdXN0b21FdmVudCIpO3JldHVybiBuLmluaXRDdXN0b21FdmVudCh0LGUuYnViYmxlcyxlLmNhbmNlbGFibGUsZS5kZXRhaWwpLG59O3AucHJvdG90eXBlPXdpbmRvdy5FdmVudC5wcm90b3R5cGUsd2luZG93LkN1c3RvbUV2ZW50PXB9dmFyIG09ZnVuY3Rpb24odCxlLG4pe2lmKCJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKWZvcih2YXIgbyBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pJiZlLmNhbGwobix0W29dLG8sdCk7ZWxzZSBpZih0KWZvcih2YXIgaT0wLHM9dC5sZW5ndGg7cz5pO2krKyllLmNhbGwobix0W2ldLGksdCl9LGc9ZnVuY3Rpb24odCxlKXt2YXIgbj17fTtyZXR1cm4gbSh0LGZ1bmN0aW9uKGUsbyl7bltvXT10W29dfSksbShlLGZ1bmN0aW9uKHQsbyl7bltvXT1lW29dfSksbn0sZj1mdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3Iobi5pbm5lckhUTUw9dDtuLmZpcnN0Q2hpbGQ7KWUuYXBwZW5kQ2hpbGQobi5maXJzdENoaWxkKTtyZXR1cm4gZX0sdj1mdW5jdGlvbih0KXt2YXIgZT1idG9hKGVuY29kZVVSSUNvbXBvbmVudCh0KSk7cmV0dXJuIGUucmVwbGFjZSgvPS9nLCIiKX0seT1mdW5jdGlvbih0KXtyZXR1cm4iIyI9PXQuc3Vic3RyaW5nKDAsMSl8fCJyZ2IiPT10LnN1YnN0cmluZygwLDMpfHwiaHNsIj09dC5zdWJzdHJpbmcoMCwzKX0saD1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIGJ0b2EoYXRvYih0KSk9PXR9Y2F0Y2goZSl7cmV0dXJuITF9fSxiPWZ1bmN0aW9uKCl7cmV0dXJue21vdmU6ZnVuY3Rpb24odCxlLG8sYSl7dmFyIHIsbD0uMyxkPTE4MDswIT09YSYmKHQuY2xhc3NMaXN0LmFkZChuKyItZHJhZ2dlZCIpLHQuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKCIrYSsicHgpIixhPjA/KHI9KGQtYSkvZCxsPnImJmUuaGlkZShnKG8se3RyYW5zaXRpb25PdXQ6ImZhZGVPdXRSaWdodCIsdHJhbnNpdGlvbk91dE1vYmlsZToiZmFkZU91dFJpZ2h0In0pLHQsImRyYWciKSk6KHI9KGQrYSkvZCxsPnImJmUuaGlkZShnKG8se3RyYW5zaXRpb25PdXQ6ImZhZGVPdXRMZWZ0Iix0cmFuc2l0aW9uT3V0TW9iaWxlOiJmYWRlT3V0TGVmdCJ9KSx0LCJkcmFnIikpLHQuc3R5bGUub3BhY2l0eT1yLGw+ciYmKChpfHxzKSYmKHQuc3R5bGUubGVmdD1hKyJweCIpLHQucGFyZW50Tm9kZS5zdHlsZS5vcGFjaXR5PWwsdGhpcy5zdG9wTW92aW5nKHQsbnVsbCkpKX0sc3RhcnRNb3Zpbmc6ZnVuY3Rpb24odCxlLG4sbyl7bz1vfHx3aW5kb3cuZXZlbnQ7dmFyIGk9YT9vLnRvdWNoZXNbMF0uY2xpZW50WDpvLmNsaWVudFgscz10LnN0eWxlLnRyYW5zZm9ybS5yZXBsYWNlKCJweCkiLCIiKTtzPXMucmVwbGFjZSgidHJhbnNsYXRlWCgiLCIiKTt2YXIgcj1pLXM7bi50cmFuc2l0aW9uSW4mJnQuY2xhc3NMaXN0LnJlbW92ZShuLnRyYW5zaXRpb25Jbiksbi50cmFuc2l0aW9uSW5Nb2JpbGUmJnQuY2xhc3NMaXN0LnJlbW92ZShuLnRyYW5zaXRpb25Jbk1vYmlsZSksdC5zdHlsZS50cmFuc2l0aW9uPSIiLGE/ZG9jdW1lbnQub250b3VjaG1vdmU9ZnVuY3Rpb24obyl7by5wcmV2ZW50RGVmYXVsdCgpLG89b3x8d2luZG93LmV2ZW50O3ZhciBpPW8udG91Y2hlc1swXS5jbGllbnRYLHM9aS1yO2IubW92ZSh0LGUsbixzKX06ZG9jdW1lbnQub25tb3VzZW1vdmU9ZnVuY3Rpb24obyl7by5wcmV2ZW50RGVmYXVsdCgpLG89b3x8d2luZG93LmV2ZW50O3ZhciBpPW8uY2xpZW50WCxzPWktcjtiLm1vdmUodCxlLG4scyl9fSxzdG9wTW92aW5nOmZ1bmN0aW9uKHQsZSl7YT9kb2N1bWVudC5vbnRvdWNobW92ZT1mdW5jdGlvbigpe306ZG9jdW1lbnQub25tb3VzZW1vdmU9ZnVuY3Rpb24oKXt9LHQuc3R5bGUub3BhY2l0eT0iIix0LnN0eWxlLnRyYW5zZm9ybT0iIix0LmNsYXNzTGlzdC5jb250YWlucyhuKyItZHJhZ2dlZCIpJiYodC5jbGFzc0xpc3QucmVtb3ZlKG4rIi1kcmFnZ2VkIiksdC5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gMC40cyBlYXNlLCBvcGFjaXR5IDAuNHMgZWFzZSIsc2V0VGltZW91dChmdW5jdGlvbigpe3Quc3R5bGUudHJhbnNpdGlvbj0iIn0sNDAwKSl9fX0oKTtyZXR1cm4gZS5zZXRTZXR0aW5nPWZ1bmN0aW9uKHQsbixvKXtlLmNoaWxkcmVuW3RdW25dPW99LGUuZ2V0U2V0dGluZz1mdW5jdGlvbih0LG4pe3JldHVybiBlLmNoaWxkcmVuW3RdW25dfSxlLmRlc3Ryb3k9ZnVuY3Rpb24oKXttKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK24rIi1vdmVybGF5IiksZnVuY3Rpb24odCxlKXt0LnJlbW92ZSgpfSksbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuIituKyItd3JhcHBlciIpLGZ1bmN0aW9uKHQsZSl7dC5yZW1vdmUoKX0pLG0oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLiIrbiksZnVuY3Rpb24odCxlKXt0LnJlbW92ZSgpfSksdGhpcy5jaGlsZHJlbj17fSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKG4rIi1vcGVuZWQiLHt9LCExKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKG4rIi1vcGVuaW5nIix7fSwhMSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuKyItY2xvc2luZyIse30sITEpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobisiLWNsb3NlZCIse30sITEpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix7fSwhMSksYz17fX0sZS5zZXR0aW5ncz1mdW5jdGlvbih0KXtlLmRlc3Ryb3koKSxjPXQsdT1nKHUsdHx8e30pfSxtKGwsZnVuY3Rpb24odCxuKXtlW25dPWZ1bmN0aW9uKGUpe3ZhciBuPWcoYyxlfHx7fSk7bj1nKHQsbnx8e30pLHRoaXMuc2hvdyhuKX19KSxlLnByb2dyZXNzPWZ1bmN0aW9uKHQsZSxvKXt2YXIgaT10aGlzLHM9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtaXppVG9hc3QtcmVmIiksYT1nKHRoaXMuY2hpbGRyZW5bc10sdHx8e30pLHI9ZS5xdWVyeVNlbGVjdG9yKCIuIituKyItcHJvZ3Jlc3NiYXIgZGl2Iik7cmV0dXJue3N0YXJ0OmZ1bmN0aW9uKCl7InVuZGVmaW5lZCI9PXR5cGVvZiBhLnRpbWUuUkVNQUlOSU5HJiYoZS5jbGFzc0xpc3QucmVtb3ZlKG4rIi1yZXNldGVkIiksbnVsbCE9PXImJihyLnN0eWxlLnRyYW5zaXRpb249IndpZHRoICIrYS50aW1lb3V0KyJtcyAiK2EucHJvZ3Jlc3NCYXJFYXNpbmcsci5zdHlsZS53aWR0aD0iMCUiKSxhLnRpbWUuU1RBUlQ9KG5ldyBEYXRlKS5nZXRUaW1lKCksYS50aW1lLkVORD1hLnRpbWUuU1RBUlQrYS50aW1lb3V0LGEudGltZS5USU1FUj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEudGltZS5USU1FUiksZS5jbGFzc0xpc3QuY29udGFpbnMobisiLWNsb3NpbmciKXx8KGkuaGlkZShhLGUsInRpbWVvdXQiKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmby5hcHBseShpKSl9LGEudGltZW91dCksaS5zZXRTZXR0aW5nKHMsInRpbWUiLGEudGltZSkpfSxwYXVzZTpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS50aW1lLlNUQVJUJiYhZS5jbGFzc0xpc3QuY29udGFpbnMobisiLXBhdXNlZCIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMobisiLXJlc2V0ZWQiKSl7aWYoZS5jbGFzc0xpc3QuYWRkKG4rIi1wYXVzZWQiKSxhLnRpbWUuUkVNQUlOSU5HPWEudGltZS5FTkQtKG5ldyBEYXRlKS5nZXRUaW1lKCksY2xlYXJUaW1lb3V0KGEudGltZS5USU1FUiksaS5zZXRTZXR0aW5nKHMsInRpbWUiLGEudGltZSksbnVsbCE9PXIpe3ZhciB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHIpLGw9dC5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpO3Iuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSIsci5zdHlsZS53aWR0aD1sfSJmdW5jdGlvbiI9PXR5cGVvZiBvJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7by5hcHBseShpKX0sMTApfX0scmVzdW1lOmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnRpbWUuUkVNQUlOSU5HPyhlLmNsYXNzTGlzdC5yZW1vdmUobisiLXBhdXNlZCIpLG51bGwhPT1yJiYoci5zdHlsZS50cmFuc2l0aW9uPSJ3aWR0aCAiK2EudGltZS5SRU1BSU5JTkcrIm1zICIrYS5wcm9ncmVzc0JhckVhc2luZyxyLnN0eWxlLndpZHRoPSIwJSIpLGEudGltZS5FTkQ9KG5ldyBEYXRlKS5nZXRUaW1lKCkrYS50aW1lLlJFTUFJTklORyxhLnRpbWUuVElNRVI9c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFyVGltZW91dChhLnRpbWUuVElNRVIpLGUuY2xhc3NMaXN0LmNvbnRhaW5zKG4rIi1jbG9zaW5nIil8fChpLmhpZGUoYSxlLCJ0aW1lb3V0IiksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8uYXBwbHkoaSkpfSxhLnRpbWUuUkVNQUlOSU5HKSxpLnNldFNldHRpbmcocywidGltZSIsYS50aW1lKSk6dGhpcy5zdGFydCgpfSxyZXNldDpmdW5jdGlvbigpe2NsZWFyVGltZW91dChhLnRpbWUuVElNRVIpLGRlbGV0ZSBhLnRpbWUuUkVNQUlOSU5HLGkuc2V0U2V0dGluZyhzLCJ0aW1lIixhLnRpbWUpLGUuY2xhc3NMaXN0LmFkZChuKyItcmVzZXRlZCIpLGUuY2xhc3NMaXN0LnJlbW92ZShuKyItcGF1c2VkIiksbnVsbCE9PXImJihyLnN0eWxlLnRyYW5zaXRpb249Im5vbmUiLHIuc3R5bGUud2lkdGg9IjEwMCUiKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmc2V0VGltZW91dChmdW5jdGlvbigpe28uYXBwbHkoaSl9LDEwKX19fSxlLmhpZGU9ZnVuY3Rpb24odCxlLGkpeyJvYmplY3QiIT10eXBlb2YgZSYmKGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlKSk7dmFyIHM9dGhpcyxhPWcodGhpcy5jaGlsZHJlbltlLmdldEF0dHJpYnV0ZSgiZGF0YS1pemlUb2FzdC1yZWYiKV0sdHx8e30pO2EuY2xvc2VkQnk9aXx8bnVsbCxkZWxldGUgYS50aW1lLlJFTUFJTklORyxlLmNsYXNzTGlzdC5hZGQobisiLWNsb3NpbmciKSxmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iK24rIi1vdmVybGF5Iik7aWYobnVsbCE9PXQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWl6aVRvYXN0LXJlZiIpO2U9ZS5zcGxpdCgiLCIpO3ZhciBvPWUuaW5kZXhPZihTdHJpbmcoYS5yZWYpKTstMSE9PW8mJmUuc3BsaWNlKG8sMSksdC5zZXRBdHRyaWJ1dGUoImRhdGEtaXppVG9hc3QtcmVmIixlLmpvaW4oKSksMD09PWUubGVuZ3RoJiYodC5jbGFzc0xpc3QucmVtb3ZlKCJmYWRlSW4iKSx0LmNsYXNzTGlzdC5hZGQoImZhZGVPdXQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZW1vdmUoKX0sNzAwKSl9fSgpLGEudHJhbnNpdGlvbkluJiZlLmNsYXNzTGlzdC5yZW1vdmUoYS50cmFuc2l0aW9uSW4pLGEudHJhbnNpdGlvbkluTW9iaWxlJiZlLmNsYXNzTGlzdC5yZW1vdmUoYS50cmFuc2l0aW9uSW5Nb2JpbGUpLG98fHdpbmRvdy5pbm5lcldpZHRoPD1kP2EudHJhbnNpdGlvbk91dE1vYmlsZSYmZS5jbGFzc0xpc3QuYWRkKGEudHJhbnNpdGlvbk91dE1vYmlsZSk6YS50cmFuc2l0aW9uT3V0JiZlLmNsYXNzTGlzdC5hZGQoYS50cmFuc2l0aW9uT3V0KTt2YXIgcj1lLnBhcmVudE5vZGUub2Zmc2V0SGVpZ2h0O2UucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQ9cisicHgiLGUuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsKCFvfHx3aW5kb3cuaW5uZXJXaWR0aD5kKSYmKGUucGFyZW50Tm9kZS5zdHlsZS50cmFuc2l0aW9uRGVsYXk9IjAuMnMiKTt0cnl7dmFyIGw9bmV3IEN1c3RvbUV2ZW50KG4rIi1jbG9zaW5nIix7ZGV0YWlsOmEsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwfSk7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChsKX1jYXRjaChjKXtjb25zb2xlLndhcm4oYyl9c2V0VGltZW91dChmdW5jdGlvbigpe2UucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQ9IjBweCIsZS5wYXJlbnROb2RlLnN0eWxlLm92ZXJmbG93PSIiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtkZWxldGUgcy5jaGlsZHJlblthLnJlZl0sZS5wYXJlbnROb2RlLnJlbW92ZSgpO3RyeXt2YXIgdD1uZXcgQ3VzdG9tRXZlbnQobisiLWNsb3NlZCIse2RldGFpbDphLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMH0pO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQodCl9Y2F0Y2gobyl7Y29uc29sZS53YXJuKG8pfSJ1bmRlZmluZWQiIT10eXBlb2YgYS5vbkNsb3NlZCYmYS5vbkNsb3NlZC5hcHBseShudWxsLFthLGUsaV0pfSwxZTMpfSwyMDApLCJ1bmRlZmluZWQiIT10eXBlb2YgYS5vbkNsb3NpbmcmJmEub25DbG9zaW5nLmFwcGx5KG51bGwsW2EsZSxpXSl9LGUuc2hvdz1mdW5jdGlvbih0KXt2YXIgaT10aGlzLHM9ZyhjLHR8fHt9KTtpZihzPWcodSxzKSxzLnRpbWU9e30sbnVsbD09PXMuaWQmJihzLmlkPXYocy50aXRsZStzLm1lc3NhZ2Urcy5jb2xvcikpLDE9PT1zLmRpc3BsYXlNb2RlfHwib25jZSI9PXMuZGlzcGxheU1vZGUpdHJ5e2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK24rIiMiK3MuaWQpLmxlbmd0aD4wKXJldHVybiExfWNhdGNoKGwpe2NvbnNvbGUud2FybigiWyIrbisiXSBDb3VsZCBub3QgZmluZCBhbiBlbGVtZW50IHdpdGggdGhpcyBzZWxlY3RvcjogIyIrcy5pZCsiLiBUcnkgdG8gc2V0IGFuIHZhbGlkIGlkLiIpfWlmKDI9PT1zLmRpc3BsYXlNb2RlfHwicmVwbGFjZSI9PXMuZGlzcGxheU1vZGUpdHJ5e20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLiIrbisiIyIrcy5pZCksZnVuY3Rpb24odCxlKXtpLmhpZGUocyx0LCJyZXBsYWNlZCIpfSl9Y2F0Y2gobCl7Y29uc29sZS53YXJuKCJbIituKyJdIENvdWxkIG5vdCBmaW5kIGFuIGVsZW1lbnQgd2l0aCB0aGlzIHNlbGVjdG9yOiAjIitzLmlkKyIuIFRyeSB0byBzZXQgYW4gdmFsaWQgaWQuIil9cy5yZWY9KG5ldyBEYXRlKS5nZXRUaW1lKCkrTWF0aC5mbG9vcigxZTcqTWF0aC5yYW5kb20oKSsxKSxlLmNoaWxkcmVuW3MucmVmXT1zO3ZhciBwPXtib2R5OmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKSxvdmVybGF5OmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRvYXN0OmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRvYXN0Qm9keTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0b2FzdFRleHRzOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRvYXN0Q2Fwc3VsZTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxjb3Zlcjpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxidXR0b25zOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGlucHV0czpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpY29uOnMuaWNvblVybD9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIiksd3JhcHBlcjpudWxsfTtwLnRvYXN0LnNldEF0dHJpYnV0ZSgiZGF0YS1pemlUb2FzdC1yZWYiLHMucmVmKSxwLnRvYXN0LmFwcGVuZENoaWxkKHAudG9hc3RCb2R5KSxwLnRvYXN0Q2Fwc3VsZS5hcHBlbmRDaGlsZChwLnRvYXN0KSxmdW5jdGlvbigpe2lmKHAudG9hc3QuY2xhc3NMaXN0LmFkZChuKSxwLnRvYXN0LmNsYXNzTGlzdC5hZGQobisiLW9wZW5pbmciKSxwLnRvYXN0Q2Fwc3VsZS5jbGFzc0xpc3QuYWRkKG4rIi1jYXBzdWxlIikscC50b2FzdEJvZHkuY2xhc3NMaXN0LmFkZChuKyItYm9keSIpLHAudG9hc3RUZXh0cy5jbGFzc0xpc3QuYWRkKG4rIi10ZXh0cyIpLG98fHdpbmRvdy5pbm5lcldpZHRoPD1kP3MudHJhbnNpdGlvbkluTW9iaWxlJiZwLnRvYXN0LmNsYXNzTGlzdC5hZGQocy50cmFuc2l0aW9uSW5Nb2JpbGUpOnMudHJhbnNpdGlvbkluJiZwLnRvYXN0LmNsYXNzTGlzdC5hZGQocy50cmFuc2l0aW9uSW4pLHNbImNsYXNzIl0pe3ZhciB0PXNbImNsYXNzIl0uc3BsaXQoIiAiKTttKHQsZnVuY3Rpb24odCxlKXtwLnRvYXN0LmNsYXNzTGlzdC5hZGQodCl9KX1zLmlkJiYocC50b2FzdC5pZD1zLmlkKSxzLnJ0bCYmKHAudG9hc3QuY2xhc3NMaXN0LmFkZChuKyItcnRsIikscC50b2FzdC5zZXRBdHRyaWJ1dGUoImRpciIsInJ0bCIpKSxzLmxheW91dD4xJiZwLnRvYXN0LmNsYXNzTGlzdC5hZGQobisiLWxheW91dCIrcy5sYXlvdXQpLHMuYmFsbG9vbiYmcC50b2FzdC5jbGFzc0xpc3QuYWRkKG4rIi1iYWxsb29uIikscy5tYXhXaWR0aCYmKGlzTmFOKHMubWF4V2lkdGgpP3AudG9hc3Quc3R5bGUubWF4V2lkdGg9cy5tYXhXaWR0aDpwLnRvYXN0LnN0eWxlLm1heFdpZHRoPXMubWF4V2lkdGgrInB4IiksIiI9PT1zLnRoZW1lJiYibGlnaHQiPT09cy50aGVtZXx8cC50b2FzdC5jbGFzc0xpc3QuYWRkKG4rIi10aGVtZS0iK3MudGhlbWUpLHMuY29sb3ImJih5KHMuY29sb3IpP3AudG9hc3Quc3R5bGUuYmFja2dyb3VuZD1zLmNvbG9yOnAudG9hc3QuY2xhc3NMaXN0LmFkZChuKyItY29sb3ItIitzLmNvbG9yKSkscy5iYWNrZ3JvdW5kQ29sb3ImJihwLnRvYXN0LnN0eWxlLmJhY2tncm91bmQ9cy5iYWNrZ3JvdW5kQ29sb3Iscy5iYWxsb29uJiYocC50b2FzdC5zdHlsZS5ib3JkZXJDb2xvcj1zLmJhY2tncm91bmRDb2xvcikpfSgpLGZ1bmN0aW9uKCl7cy5pbWFnZSYmKHAuY292ZXIuY2xhc3NMaXN0LmFkZChuKyItY292ZXIiKSxwLmNvdmVyLnN0eWxlLndpZHRoPXMuaW1hZ2VXaWR0aCsicHgiLGgocy5pbWFnZS5yZXBsYWNlKC8gL2csIiIpKT9wLmNvdmVyLnN0eWxlLmJhY2tncm91bmRJbWFnZT0idXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwiK3MuaW1hZ2UucmVwbGFjZSgvIC9nLCIiKSsiKSI6cC5jb3Zlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9InVybCgiK3MuaW1hZ2UrIikiLHMucnRsP3AudG9hc3RCb2R5LnN0eWxlLm1hcmdpblJpZ2h0PXMuaW1hZ2VXaWR0aCsxMCsicHgiOnAudG9hc3RCb2R5LnN0eWxlLm1hcmdpbkxlZnQ9cy5pbWFnZVdpZHRoKzEwKyJweCIscC50b2FzdC5hcHBlbmRDaGlsZChwLmNvdmVyKSl9KCksZnVuY3Rpb24oKXtzLmNsb3NlPyhwLmJ1dHRvbkNsb3NlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpLHAuYnV0dG9uQ2xvc2UudHlwZT0iYnV0dG9uIixwLmJ1dHRvbkNsb3NlLmNsYXNzTGlzdC5hZGQobisiLWNsb3NlIikscC5idXR0b25DbG9zZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dC50YXJnZXQ7aS5oaWRlKHMscC50b2FzdCwiYnV0dG9uIil9KSxwLnRvYXN0LmFwcGVuZENoaWxkKHAuYnV0dG9uQ2xvc2UpKTpzLnJ0bD9wLnRvYXN0LnN0eWxlLnBhZGRpbmdMZWZ0PSIxOHB4IjpwLnRvYXN0LnN0eWxlLnBhZGRpbmdSaWdodD0iMThweCJ9KCksZnVuY3Rpb24oKXtzLnByb2dyZXNzQmFyJiYocC5wcm9ncmVzc0Jhcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxwLnByb2dyZXNzQmFyRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHAucHJvZ3Jlc3NCYXIuY2xhc3NMaXN0LmFkZChuKyItcHJvZ3Jlc3NiYXIiKSxwLnByb2dyZXNzQmFyRGl2LnN0eWxlLmJhY2tncm91bmQ9cy5wcm9ncmVzc0JhckNvbG9yLHAucHJvZ3Jlc3NCYXIuYXBwZW5kQ2hpbGQocC5wcm9ncmVzc0JhckRpdikscC50b2FzdC5hcHBlbmRDaGlsZChwLnByb2dyZXNzQmFyKSkscy50aW1lb3V0JiYocy5wYXVzZU9uSG92ZXImJiFzLnJlc2V0T25Ib3ZlciYmKHAudG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZnVuY3Rpb24odCl7aS5wcm9ncmVzcyhzLHAudG9hc3QpLnBhdXNlKCl9KSxwLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKHQpe2kucHJvZ3Jlc3MocyxwLnRvYXN0KS5yZXN1bWUoKX0pKSxzLnJlc2V0T25Ib3ZlciYmKHAudG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZnVuY3Rpb24odCl7aS5wcm9ncmVzcyhzLHAudG9hc3QpLnJlc2V0KCl9KSxwLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKHQpe2kucHJvZ3Jlc3MocyxwLnRvYXN0KS5zdGFydCgpfSkpKX0oKSxmdW5jdGlvbigpe3MuaWNvblVybD8ocC5pY29uLnNldEF0dHJpYnV0ZSgiY2xhc3MiLG4rIi1pY29uIikscC5pY29uLnNldEF0dHJpYnV0ZSgic3JjIixzLmljb25VcmwpKTpzLmljb24mJihwLmljb24uc2V0QXR0cmlidXRlKCJjbGFzcyIsbisiLWljb24gIitzLmljb24pLHMuaWNvblRleHQmJnAuaWNvbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzLmljb25UZXh0KSkscy5pY29uQ29sb3ImJihwLmljb24uc3R5bGUuY29sb3I9cy5pY29uQ29sb3IpKSwocy5pY29ufHxzLmljb25VcmwpJiYocy5ydGw/cC50b2FzdEJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0PSIzM3B4IjpwLnRvYXN0Qm9keS5zdHlsZS5wYWRkaW5nTGVmdD0iMzNweCIscC50b2FzdEJvZHkuYXBwZW5kQ2hpbGQocC5pY29uKSl9KCksZnVuY3Rpb24oKXtzLnRpdGxlLmxlbmd0aD4wJiYocC5zdHJvbmc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Ryb25nIikscC5zdHJvbmcuY2xhc3NMaXN0LmFkZChuKyItdGl0bGUiKSxwLnN0cm9uZy5hcHBlbmRDaGlsZChmKHMudGl0bGUpKSxwLnRvYXN0VGV4dHMuYXBwZW5kQ2hpbGQocC5zdHJvbmcpLHMudGl0bGVDb2xvciYmKHAuc3Ryb25nLnN0eWxlLmNvbG9yPXMudGl0bGVDb2xvcikscy50aXRsZVNpemUmJihpc05hTihzLnRpdGxlU2l6ZSk/cC5zdHJvbmcuc3R5bGUuZm9udFNpemU9cy50aXRsZVNpemU6cC5zdHJvbmcuc3R5bGUuZm9udFNpemU9cy50aXRsZVNpemUrInB4Iikscy50aXRsZUxpbmVIZWlnaHQmJihpc05hTihzLnRpdGxlU2l6ZSk/cC5zdHJvbmcuc3R5bGUubGluZUhlaWdodD1zLnRpdGxlTGluZUhlaWdodDpwLnN0cm9uZy5zdHlsZS5saW5lSGVpZ2h0PXMudGl0bGVMaW5lSGVpZ2h0KyJweCIpKSxzLm1lc3NhZ2UubGVuZ3RoPjAmJihwLnA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpLHAucC5jbGFzc0xpc3QuYWRkKG4rIi1tZXNzYWdlIikscC5wLmFwcGVuZENoaWxkKGYocy5tZXNzYWdlKSkscC50b2FzdFRleHRzLmFwcGVuZENoaWxkKHAucCkscy5tZXNzYWdlQ29sb3ImJihwLnAuc3R5bGUuY29sb3I9cy5tZXNzYWdlQ29sb3IpLHMubWVzc2FnZVNpemUmJihpc05hTihzLnRpdGxlU2l6ZSk/cC5wLnN0eWxlLmZvbnRTaXplPXMubWVzc2FnZVNpemU6cC5wLnN0eWxlLmZvbnRTaXplPXMubWVzc2FnZVNpemUrInB4Iikscy5tZXNzYWdlTGluZUhlaWdodCYmKGlzTmFOKHMudGl0bGVTaXplKT9wLnAuc3R5bGUubGluZUhlaWdodD1zLm1lc3NhZ2VMaW5lSGVpZ2h0OnAucC5zdHlsZS5saW5lSGVpZ2h0PXMubWVzc2FnZUxpbmVIZWlnaHQrInB4IikpLHMudGl0bGUubGVuZ3RoPjAmJnMubWVzc2FnZS5sZW5ndGg+MCYmKHMucnRsP3Auc3Ryb25nLnN0eWxlLm1hcmdpbkxlZnQ9IjEwcHgiOjI9PT1zLmxheW91dHx8cy5ydGx8fChwLnN0cm9uZy5zdHlsZS5tYXJnaW5SaWdodD0iMTBweCIpKX0oKSxwLnRvYXN0Qm9keS5hcHBlbmRDaGlsZChwLnRvYXN0VGV4dHMpO3ZhciBMOyFmdW5jdGlvbigpe3MuaW5wdXRzLmxlbmd0aD4wJiYocC5pbnB1dHMuY2xhc3NMaXN0LmFkZChuKyItaW5wdXRzIiksbShzLmlucHV0cyxmdW5jdGlvbih0LGUpe3AuaW5wdXRzLmFwcGVuZENoaWxkKGYodFswXSkpLEw9cC5pbnB1dHMuY2hpbGROb2RlcyxMW2VdLmNsYXNzTGlzdC5hZGQobisiLWlucHV0cy1jaGlsZCIpLHRbM10mJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtMW2VdLmZvY3VzKCl9LDMwMCksTFtlXS5hZGRFdmVudExpc3RlbmVyKHRbMV0sZnVuY3Rpb24oZSl7dmFyIG49dFsyXTtyZXR1cm4gbihpLHAudG9hc3QsdGhpcyxlKX0pfSkscC50b2FzdEJvZHkuYXBwZW5kQ2hpbGQocC5pbnB1dHMpKX0oKSxmdW5jdGlvbigpe3MuYnV0dG9ucy5sZW5ndGg+MCYmKHAuYnV0dG9ucy5jbGFzc0xpc3QuYWRkKG4rIi1idXR0b25zIiksbShzLmJ1dHRvbnMsZnVuY3Rpb24odCxlKXtwLmJ1dHRvbnMuYXBwZW5kQ2hpbGQoZih0WzBdKSk7dmFyIG89cC5idXR0b25zLmNoaWxkTm9kZXM7b1tlXS5jbGFzc0xpc3QuYWRkKG4rIi1idXR0b25zLWNoaWxkIiksdFsyXSYmc2V0VGltZW91dChmdW5jdGlvbigpe29bZV0uZm9jdXMoKX0sMzAwKSxvW2VdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49dFsxXTtyZXR1cm4gbihpLHAudG9hc3QsdGhpcyxlLEwpfSl9KSkscC50b2FzdEJvZHkuYXBwZW5kQ2hpbGQocC5idXR0b25zKX0oKSxzLm1lc3NhZ2UubGVuZ3RoPjAmJihzLmlucHV0cy5sZW5ndGg+MHx8cy5idXR0b25zLmxlbmd0aD4wKSYmKHAucC5zdHlsZS5tYXJnaW5Cb3R0b209IjAiKSwocy5pbnB1dHMubGVuZ3RoPjB8fHMuYnV0dG9ucy5sZW5ndGg+MCkmJihzLnJ0bD9wLnRvYXN0VGV4dHMuc3R5bGUubWFyZ2luTGVmdD0iMTBweCI6cC50b2FzdFRleHRzLnN0eWxlLm1hcmdpblJpZ2h0PSIxMHB4IixzLmlucHV0cy5sZW5ndGg+MCYmcy5idXR0b25zLmxlbmd0aD4wJiYocy5ydGw/cC5pbnB1dHMuc3R5bGUubWFyZ2luTGVmdD0iOHB4IjpwLmlucHV0cy5zdHlsZS5tYXJnaW5SaWdodD0iOHB4IikpLGZ1bmN0aW9uKCl7cC50b2FzdENhcHN1bGUuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9cC50b2FzdC5vZmZzZXRIZWlnaHQsZT1wLnRvYXN0LmN1cnJlbnRTdHlsZXx8d2luZG93LmdldENvbXB1dGVkU3R5bGUocC50b2FzdCksbj1lLm1hcmdpblRvcDtuPW4uc3BsaXQoInB4Iiksbj1wYXJzZUludChuWzBdKTt2YXIgbz1lLm1hcmdpbkJvdHRvbTtvPW8uc3BsaXQoInB4Iiksbz1wYXJzZUludChvWzBdKSxwLnRvYXN0Q2Fwc3VsZS5zdHlsZS52aXNpYmlsaXR5PSIiLHAudG9hc3RDYXBzdWxlLnN0eWxlLmhlaWdodD10K28rbisicHgiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtwLnRvYXN0Q2Fwc3VsZS5zdHlsZS5oZWlnaHQ9ImF1dG8iLHMudGFyZ2V0JiYocC50b2FzdENhcHN1bGUuc3R5bGUub3ZlcmZsb3c9InZpc2libGUiKX0sNTAwKSxzLnRpbWVvdXQmJmkucHJvZ3Jlc3MocyxwLnRvYXN0KS5zdGFydCgpfSwxMDApfSgpLGZ1bmN0aW9uKCl7dmFyIHQ9cy5wb3NpdGlvbjtpZihzLnRhcmdldClwLndyYXBwZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzLnRhcmdldCkscC53cmFwcGVyLmNsYXNzTGlzdC5hZGQobisiLXRhcmdldCIpLHMudGFyZ2V0Rmlyc3Q/cC53cmFwcGVyLmluc2VydEJlZm9yZShwLnRvYXN0Q2Fwc3VsZSxwLndyYXBwZXIuZmlyc3RDaGlsZCk6cC53cmFwcGVyLmFwcGVuZENoaWxkKHAudG9hc3RDYXBzdWxlKTtlbHNle2lmKC0xPT1yLmluZGV4T2Yocy5wb3NpdGlvbikpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJbIituKyJdIEluY29ycmVjdCBwb3NpdGlvbi5cbkl0IGNhbiBiZSDigLogIityKTt0PW98fHdpbmRvdy5pbm5lcldpZHRoPD1kPyJib3R0b21MZWZ0Ij09cy5wb3NpdGlvbnx8ImJvdHRvbVJpZ2h0Ij09cy5wb3NpdGlvbnx8ImJvdHRvbUNlbnRlciI9PXMucG9zaXRpb24/bisiLXdyYXBwZXItYm90dG9tQ2VudGVyIjoidG9wTGVmdCI9PXMucG9zaXRpb258fCJ0b3BSaWdodCI9PXMucG9zaXRpb258fCJ0b3BDZW50ZXIiPT1zLnBvc2l0aW9uP24rIi13cmFwcGVyLXRvcENlbnRlciI6bisiLXdyYXBwZXItY2VudGVyIjpuKyItd3JhcHBlci0iK3QscC53cmFwcGVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iK24rIi13cmFwcGVyLiIrdCkscC53cmFwcGVyfHwocC53cmFwcGVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHAud3JhcHBlci5jbGFzc0xpc3QuYWRkKG4rIi13cmFwcGVyIikscC53cmFwcGVyLmNsYXNzTGlzdC5hZGQodCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwLndyYXBwZXIpKSwidG9wTGVmdCI9PXMucG9zaXRpb258fCJ0b3BDZW50ZXIiPT1zLnBvc2l0aW9ufHwidG9wUmlnaHQiPT1zLnBvc2l0aW9uP3Aud3JhcHBlci5pbnNlcnRCZWZvcmUocC50b2FzdENhcHN1bGUscC53cmFwcGVyLmZpcnN0Q2hpbGQpOnAud3JhcHBlci5hcHBlbmRDaGlsZChwLnRvYXN0Q2Fwc3VsZSl9aXNOYU4ocy56aW5kZXgpP2NvbnNvbGUud2FybigiWyIrbisiXSBJbnZhbGlkIHpJbmRleC4iKTpwLndyYXBwZXIuc3R5bGUuekluZGV4PXMuemluZGV4fSgpLGZ1bmN0aW9uKCl7cy5vdmVybGF5JiYobnVsbCE9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iK24rIi1vdmVybGF5LmZhZGVJbiIpPyhwLm92ZXJsYXk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLiIrbisiLW92ZXJsYXkiKSxwLm92ZXJsYXkuc2V0QXR0cmlidXRlKCJkYXRhLWl6aVRvYXN0LXJlZiIscC5vdmVybGF5LmdldEF0dHJpYnV0ZSgiZGF0YS1pemlUb2FzdC1yZWYiKSsiLCIrcy5yZWYpLGlzTmFOKHMuemluZGV4KXx8bnVsbD09PXMuemluZGV4fHwocC5vdmVybGF5LnN0eWxlLnpJbmRleD1zLnppbmRleC0xKSk6KHAub3ZlcmxheS5jbGFzc0xpc3QuYWRkKG4rIi1vdmVybGF5IikscC5vdmVybGF5LmNsYXNzTGlzdC5hZGQoImZhZGVJbiIpLHAub3ZlcmxheS5zdHlsZS5iYWNrZ3JvdW5kPXMub3ZlcmxheUNvbG9yLHAub3ZlcmxheS5zZXRBdHRyaWJ1dGUoImRhdGEtaXppVG9hc3QtcmVmIixzLnJlZiksaXNOYU4ocy56aW5kZXgpfHxudWxsPT09cy56aW5kZXh8fChwLm92ZXJsYXkuc3R5bGUuekluZGV4PXMuemluZGV4LTEpLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKS5hcHBlbmRDaGlsZChwLm92ZXJsYXkpKSxzLm92ZXJsYXlDbG9zZT8ocC5vdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix7fSkscC5vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpLmhpZGUocyxwLnRvYXN0LCJvdmVybGF5Iil9KSk6cC5vdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix7fSkpfSgpLGZ1bmN0aW9uKCl7aWYocy5hbmltYXRlSW5zaWRlKXtwLnRvYXN0LmNsYXNzTGlzdC5hZGQobisiLWFuaW1hdGVJbnNpZGUiKTt2YXIgdD1bMjAwLDEwMCwzMDBdOyJib3VuY2VJbkxlZnQiIT1zLnRyYW5zaXRpb25JbiYmImJvdW5jZUluUmlnaHQiIT1zLnRyYW5zaXRpb25Jbnx8KHQ9WzQwMCwyMDAsNDAwXSkscy50aXRsZS5sZW5ndGg+MCYmc2V0VGltZW91dChmdW5jdGlvbigpe3Auc3Ryb25nLmNsYXNzTGlzdC5hZGQoInNsaWRlSW4iKX0sdFswXSkscy5tZXNzYWdlLmxlbmd0aD4wJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cC5wLmNsYXNzTGlzdC5hZGQoInNsaWRlSW4iKX0sdFsxXSksKHMuaWNvbnx8cy5pY29uVXJsKSYmc2V0VGltZW91dChmdW5jdGlvbigpe3AuaWNvbi5jbGFzc0xpc3QuYWRkKCJyZXZlYWxJbiIpfSx0WzJdKTt2YXIgZT0xNTA7cy5idXR0b25zLmxlbmd0aD4wJiZwLmJ1dHRvbnMmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXttKHAuYnV0dG9ucy5jaGlsZE5vZGVzLGZ1bmN0aW9uKHQsbil7c2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmFkZCgicmV2ZWFsSW4iKX0sZSksZSs9MTUwfSl9LHMuaW5wdXRzLmxlbmd0aD4wPzE1MDowKSxzLmlucHV0cy5sZW5ndGg+MCYmcC5pbnB1dHMmJihlPTE1MCxtKHAuaW5wdXRzLmNoaWxkTm9kZXMsZnVuY3Rpb24odCxuKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5jbGFzc0xpc3QuYWRkKCJyZXZlYWxJbiIpfSxlKSxlKz0xNTB9KSl9fSgpLHMub25PcGVuaW5nLmFwcGx5KG51bGwsW3MscC50b2FzdF0pO3RyeXt2YXIgQz1uZXcgQ3VzdG9tRXZlbnQobisiLW9wZW5pbmciLHtkZXRhaWw6cyxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KEMpfWNhdGNoKHcpe2NvbnNvbGUud2Fybih3KX1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cC50b2FzdC5jbGFzc0xpc3QucmVtb3ZlKG4rIi1vcGVuaW5nIikscC50b2FzdC5jbGFzc0xpc3QuYWRkKG4rIi1vcGVuZWQiKTt0cnl7dmFyIHQ9bmV3IEN1c3RvbUV2ZW50KG4rIi1vcGVuZWQiLHtkZXRhaWw6cyxidWJibGVzOiEwLGNhbmNlbGFibGU6ITB9KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHQpfWNhdGNoKGUpe2NvbnNvbGUud2FybihlKX1zLm9uT3BlbmVkLmFwcGx5KG51bGwsW3MscC50b2FzdF0pfSwxZTMpLHMuZHJhZyYmKGE/KHAudG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24odCl7Yi5zdGFydE1vdmluZyh0aGlzLGkscyx0KX0sITEpLHAudG9hc3QuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKHQpe2Iuc3RvcE1vdmluZyh0aGlzLHQpfSwhMSkpOihwLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLGIuc3RhcnRNb3ZpbmcodGhpcyxpLHMsdCl9LCExKSxwLnRvYXN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSxiLnN0b3BNb3ZpbmcodGhpcyx0KX0sITEpKSkscy5jbG9zZU9uRXNjYXBlJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsZnVuY3Rpb24odCl7dD10fHx3aW5kb3cuZXZlbnQsMjc9PXQua2V5Q29kZSYmaS5oaWRlKHMscC50b2FzdCwiZXNjIil9KSxzLmNsb3NlT25DbGljayYmcC50b2FzdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7aS5oaWRlKHMscC50b2FzdCwidG9hc3QiKX0pLGkudG9hc3Q9cC50b2FzdH0sZX0pOw=="}},"time_used":48,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":23,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/js/bootstrap.bundle.min.js","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.369Z","timestamp":1785153914369,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/global/js/bootstrap.bundle.min.js HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 22158\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":78080,"size_decoded":22396,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (65299)","md5":"dfd824922bdcd8afddd7a123029bba09","sha1":"093df67442d6d55091d9278701071d241a3d02ad","sha256":"286fc75be1e7b08b6e8f8c70b4b6f69bf77fcd9bec929694d122b44ecbb4858d","sha512":"71ed1ae8aa3845ee9467b730d2affdd05f33e929e210d1f13c13bde9dced6beea3e7dc232cb21efaa50f7be917b7f1e328c78ce06208de5dce0a3308012965ad","ssdeep":"1536:pppbTNR2t4NEdiK5J2w8gGzjJVPOW7tI+r9ixR2nwZ7:T36WJr9ixF","tlshash":"5e73c5493254b8730ade45a68037470bf3265994b14b802cb5bcadde2a3dd8672b7f7c","first_seen":"2023-03-07T12:08:04Z","last_seen":"2026-07-29T06:17:04.839294Z","times_seen":2662,"resource_available":true,"data":"LyohCiAgKiBCb290c3RyYXAgdjUuMS4zIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKQogICogQ29weXJpZ2h0IDIwMTEtMjAyMSBUaGUgQm9vdHN0cmFwIEF1dGhvcnMgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ncmFwaHMvY29udHJpYnV0b3JzKQogICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpCiAgKi8KIWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuYm9vdHN0cmFwPWUoKX0odGhpcywoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y29uc3QgdD0idHJhbnNpdGlvbmVuZCIsZT10PT57bGV0IGU9dC5nZXRBdHRyaWJ1dGUoImRhdGEtYnMtdGFyZ2V0Iik7aWYoIWV8fCIjIj09PWUpe2xldCBpPXQuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYoIWl8fCFpLmluY2x1ZGVzKCIjIikmJiFpLnN0YXJ0c1dpdGgoIi4iKSlyZXR1cm4gbnVsbDtpLmluY2x1ZGVzKCIjIikmJiFpLnN0YXJ0c1dpdGgoIiMiKSYmKGk9YCMke2kuc3BsaXQoIiMiKVsxXX1gKSxlPWkmJiIjIiE9PWk/aS50cmltKCk6bnVsbH1yZXR1cm4gZX0saT10PT57Y29uc3QgaT1lKHQpO3JldHVybiBpJiZkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGkpP2k6bnVsbH0sbj10PT57Y29uc3QgaT1lKHQpO3JldHVybiBpP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoaSk6bnVsbH0scz1lPT57ZS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCh0KSl9LG89dD0+ISghdHx8Im9iamVjdCIhPXR5cGVvZiB0KSYmKHZvaWQgMCE9PXQuanF1ZXJ5JiYodD10WzBdKSx2b2lkIDAhPT10Lm5vZGVUeXBlKSxyPXQ9Pm8odCk/dC5qcXVlcnk/dFswXTp0OiJzdHJpbmciPT10eXBlb2YgdCYmdC5sZW5ndGg+MD9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpOm51bGwsYT0odCxlLGkpPT57T2JqZWN0LmtleXMoaSkuZm9yRWFjaCgobj0+e2NvbnN0IHM9aVtuXSxyPWVbbl0sYT1yJiZvKHIpPyJlbGVtZW50IjpudWxsPT0obD1yKT9gJHtsfWA6e30udG9TdHJpbmcuY2FsbChsKS5tYXRjaCgvXHMoW2Etel0rKS9pKVsxXS50b0xvd2VyQ2FzZSgpO3ZhciBsO2lmKCFuZXcgUmVnRXhwKHMpLnRlc3QoYSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0LnRvVXBwZXJDYXNlKCl9OiBPcHRpb24gIiR7bn0iIHByb3ZpZGVkIHR5cGUgIiR7YX0iIGJ1dCBleHBlY3RlZCB0eXBlICIke3N9Ii5gKX0pKX0sbD10PT4hKCFvKHQpfHwwPT09dC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCkmJiJ2aXNpYmxlIj09PWdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZSgidmlzaWJpbGl0eSIpLGM9dD0+IXR8fHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERXx8ISF0LmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKXx8KHZvaWQgMCE9PXQuZGlzYWJsZWQ/dC5kaXNhYmxlZDp0Lmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSYmImZhbHNlIiE9PXQuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKSxoPXQ9PntpZighZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmF0dGFjaFNoYWRvdylyZXR1cm4gbnVsbDtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5nZXRSb290Tm9kZSl7Y29uc3QgZT10LmdldFJvb3ROb2RlKCk7cmV0dXJuIGUgaW5zdGFuY2VvZiBTaGFkb3dSb290P2U6bnVsbH1yZXR1cm4gdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/dDp0LnBhcmVudE5vZGU/aCh0LnBhcmVudE5vZGUpOm51bGx9LGQ9KCk9Pnt9LHU9dD0+e3Qub2Zmc2V0SGVpZ2h0fSxmPSgpPT57Y29uc3R7alF1ZXJ5OnR9PXdpbmRvdztyZXR1cm4gdCYmIWRvY3VtZW50LmJvZHkuaGFzQXR0cmlidXRlKCJkYXRhLWJzLW5vLWpxdWVyeSIpP3Q6bnVsbH0scD1bXSxtPSgpPT4icnRsIj09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXIsZz10PT57dmFyIGU7ZT0oKT0+e2NvbnN0IGU9ZigpO2lmKGUpe2NvbnN0IGk9dC5OQU1FLG49ZS5mbltpXTtlLmZuW2ldPXQualF1ZXJ5SW50ZXJmYWNlLGUuZm5baV0uQ29uc3RydWN0b3I9dCxlLmZuW2ldLm5vQ29uZmxpY3Q9KCk9PihlLmZuW2ldPW4sdC5qUXVlcnlJbnRlcmZhY2UpfX0sImxvYWRpbmciPT09ZG9jdW1lbnQucmVhZHlTdGF0ZT8ocC5sZW5ndGh8fGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCgoKT0+e3AuZm9yRWFjaCgodD0+dCgpKSl9KSkscC5wdXNoKGUpKTplKCl9LF89dD0+eyJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0KCl9LGI9KGUsaSxuPSEwKT0+e2lmKCFuKXJldHVybiB2b2lkIF8oZSk7Y29uc3Qgbz0odD0+e2lmKCF0KXJldHVybiAwO2xldHt0cmFuc2l0aW9uRHVyYXRpb246ZSx0cmFuc2l0aW9uRGVsYXk6aX09d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7Y29uc3Qgbj1OdW1iZXIucGFyc2VGbG9hdChlKSxzPU51bWJlci5wYXJzZUZsb2F0KGkpO3JldHVybiBufHxzPyhlPWUuc3BsaXQoIiwiKVswXSxpPWkuc3BsaXQoIiwiKVswXSwxZTMqKE51bWJlci5wYXJzZUZsb2F0KGUpK051bWJlci5wYXJzZUZsb2F0KGkpKSk6MH0pKGkpKzU7bGV0IHI9ITE7Y29uc3QgYT0oe3RhcmdldDpufSk9PntuPT09aSYmKHI9ITAsaS5yZW1vdmVFdmVudExpc3RlbmVyKHQsYSksXyhlKSl9O2kuYWRkRXZlbnRMaXN0ZW5lcih0LGEpLHNldFRpbWVvdXQoKCgpPT57cnx8cyhpKX0pLG8pfSx2PSh0LGUsaSxuKT0+e2xldCBzPXQuaW5kZXhPZihlKTtpZigtMT09PXMpcmV0dXJuIHRbIWkmJm4/dC5sZW5ndGgtMTowXTtjb25zdCBvPXQubGVuZ3RoO3JldHVybiBzKz1pPzE6LTEsbiYmKHM9KHMrbyklbyksdFtNYXRoLm1heCgwLE1hdGgubWluKHMsby0xKSldfSx5PS9bXi5dKig/PVwuLiopXC58LiovLHc9L1wuLiovLEU9Lzo6XGQrJC8sQT17fTtsZXQgVD0xO2NvbnN0IE89e21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSxDPS9eKG1vdXNlZW50ZXJ8bW91c2VsZWF2ZSkvaSxrPW5ldyBTZXQoWyJjbGljayIsImRibGNsaWNrIiwibW91c2V1cCIsIm1vdXNlZG93biIsImNvbnRleHRtZW51IiwibW91c2V3aGVlbCIsIkRPTU1vdXNlU2Nyb2xsIiwibW91c2VvdmVyIiwibW91c2VvdXQiLCJtb3VzZW1vdmUiLCJzZWxlY3RzdGFydCIsInNlbGVjdGVuZCIsImtleWRvd24iLCJrZXlwcmVzcyIsImtleXVwIiwib3JpZW50YXRpb25jaGFuZ2UiLCJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIiwidG91Y2hlbmQiLCJ0b3VjaGNhbmNlbCIsInBvaW50ZXJkb3duIiwicG9pbnRlcm1vdmUiLCJwb2ludGVydXAiLCJwb2ludGVybGVhdmUiLCJwb2ludGVyY2FuY2VsIiwiZ2VzdHVyZXN0YXJ0IiwiZ2VzdHVyZWNoYW5nZSIsImdlc3R1cmVlbmQiLCJmb2N1cyIsImJsdXIiLCJjaGFuZ2UiLCJyZXNldCIsInNlbGVjdCIsInN1Ym1pdCIsImZvY3VzaW4iLCJmb2N1c291dCIsImxvYWQiLCJ1bmxvYWQiLCJiZWZvcmV1bmxvYWQiLCJyZXNpemUiLCJtb3ZlIiwiRE9NQ29udGVudExvYWRlZCIsInJlYWR5c3RhdGVjaGFuZ2UiLCJlcnJvciIsImFib3J0Iiwic2Nyb2xsIl0pO2Z1bmN0aW9uIEwodCxlKXtyZXR1cm4gZSYmYCR7ZX06OiR7VCsrfWB8fHQudWlkRXZlbnR8fFQrK31mdW5jdGlvbiB4KHQpe2NvbnN0IGU9TCh0KTtyZXR1cm4gdC51aWRFdmVudD1lLEFbZV09QVtlXXx8e30sQVtlXX1mdW5jdGlvbiBEKHQsZSxpPW51bGwpe2NvbnN0IG49T2JqZWN0LmtleXModCk7Zm9yKGxldCBzPTAsbz1uLmxlbmd0aDtzPG87cysrKXtjb25zdCBvPXRbbltzXV07aWYoby5vcmlnaW5hbEhhbmRsZXI9PT1lJiZvLmRlbGVnYXRpb25TZWxlY3Rvcj09PWkpcmV0dXJuIG99cmV0dXJuIG51bGx9ZnVuY3Rpb24gUyh0LGUsaSl7Y29uc3Qgbj0ic3RyaW5nIj09dHlwZW9mIGUscz1uP2k6ZTtsZXQgbz1QKHQpO3JldHVybiBrLmhhcyhvKXx8KG89dCksW24scyxvXX1mdW5jdGlvbiBOKHQsZSxpLG4scyl7aWYoInN0cmluZyIhPXR5cGVvZiBlfHwhdClyZXR1cm47aWYoaXx8KGk9bixuPW51bGwpLEMudGVzdChlKSl7Y29uc3QgdD10PT5mdW5jdGlvbihlKXtpZighZS5yZWxhdGVkVGFyZ2V0fHxlLnJlbGF0ZWRUYXJnZXQhPT1lLmRlbGVnYXRlVGFyZ2V0JiYhZS5kZWxlZ2F0ZVRhcmdldC5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpKXJldHVybiB0LmNhbGwodGhpcyxlKX07bj9uPXQobik6aT10KGkpfWNvbnN0W28scixhXT1TKGUsaSxuKSxsPXgodCksYz1sW2FdfHwobFthXT17fSksaD1EKGMscixvP2k6bnVsbCk7aWYoaClyZXR1cm4gdm9pZChoLm9uZU9mZj1oLm9uZU9mZiYmcyk7Y29uc3QgZD1MKHIsZS5yZXBsYWNlKHksIiIpKSx1PW8/ZnVuY3Rpb24odCxlLGkpe3JldHVybiBmdW5jdGlvbiBuKHMpe2NvbnN0IG89dC5xdWVyeVNlbGVjdG9yQWxsKGUpO2ZvcihsZXR7dGFyZ2V0OnJ9PXM7ciYmciE9PXRoaXM7cj1yLnBhcmVudE5vZGUpZm9yKGxldCBhPW8ubGVuZ3RoO2EtLTspaWYob1thXT09PXIpcmV0dXJuIHMuZGVsZWdhdGVUYXJnZXQ9cixuLm9uZU9mZiYmai5vZmYodCxzLnR5cGUsZSxpKSxpLmFwcGx5KHIsW3NdKTtyZXR1cm4gbnVsbH19KHQsaSxuKTpmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbiBpKG4pe3JldHVybiBuLmRlbGVnYXRlVGFyZ2V0PXQsaS5vbmVPZmYmJmoub2ZmKHQsbi50eXBlLGUpLGUuYXBwbHkodCxbbl0pfX0odCxpKTt1LmRlbGVnYXRpb25TZWxlY3Rvcj1vP2k6bnVsbCx1Lm9yaWdpbmFsSGFuZGxlcj1yLHUub25lT2ZmPXMsdS51aWRFdmVudD1kLGNbZF09dSx0LmFkZEV2ZW50TGlzdGVuZXIoYSx1LG8pfWZ1bmN0aW9uIEkodCxlLGksbixzKXtjb25zdCBvPUQoZVtpXSxuLHMpO28mJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoaSxvLEJvb2xlYW4ocykpLGRlbGV0ZSBlW2ldW28udWlkRXZlbnRdKX1mdW5jdGlvbiBQKHQpe3JldHVybiB0PXQucmVwbGFjZSh3LCIiKSxPW3RdfHx0fWNvbnN0IGo9e29uKHQsZSxpLG4pe04odCxlLGksbiwhMSl9LG9uZSh0LGUsaSxuKXtOKHQsZSxpLG4sITApfSxvZmYodCxlLGksbil7aWYoInN0cmluZyIhPXR5cGVvZiBlfHwhdClyZXR1cm47Y29uc3RbcyxvLHJdPVMoZSxpLG4pLGE9ciE9PWUsbD14KHQpLGM9ZS5zdGFydHNXaXRoKCIuIik7aWYodm9pZCAwIT09byl7aWYoIWx8fCFsW3JdKXJldHVybjtyZXR1cm4gdm9pZCBJKHQsbCxyLG8scz9pOm51bGwpfWMmJk9iamVjdC5rZXlzKGwpLmZvckVhY2goKGk9PnshZnVuY3Rpb24odCxlLGksbil7Y29uc3Qgcz1lW2ldfHx7fTtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChvPT57aWYoby5pbmNsdWRlcyhuKSl7Y29uc3Qgbj1zW29dO0kodCxlLGksbi5vcmlnaW5hbEhhbmRsZXIsbi5kZWxlZ2F0aW9uU2VsZWN0b3IpfX0pKX0odCxsLGksZS5zbGljZSgxKSl9KSk7Y29uc3QgaD1sW3JdfHx7fTtPYmplY3Qua2V5cyhoKS5mb3JFYWNoKChpPT57Y29uc3Qgbj1pLnJlcGxhY2UoRSwiIik7aWYoIWF8fGUuaW5jbHVkZXMobikpe2NvbnN0IGU9aFtpXTtJKHQsbCxyLGUub3JpZ2luYWxIYW5kbGVyLGUuZGVsZWdhdGlvblNlbGVjdG9yKX19KSl9LHRyaWdnZXIodCxlLGkpe2lmKCJzdHJpbmciIT10eXBlb2YgZXx8IXQpcmV0dXJuIG51bGw7Y29uc3Qgbj1mKCkscz1QKGUpLG89ZSE9PXMscj1rLmhhcyhzKTtsZXQgYSxsPSEwLGM9ITAsaD0hMSxkPW51bGw7cmV0dXJuIG8mJm4mJihhPW4uRXZlbnQoZSxpKSxuKHQpLnRyaWdnZXIoYSksbD0hYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpLGM9IWEuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSxoPWEuaXNEZWZhdWx0UHJldmVudGVkKCkpLHI/KGQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKSxkLmluaXRFdmVudChzLGwsITApKTpkPW5ldyBDdXN0b21FdmVudChlLHtidWJibGVzOmwsY2FuY2VsYWJsZTohMH0pLHZvaWQgMCE9PWkmJk9iamVjdC5rZXlzKGkpLmZvckVhY2goKHQ9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx0LHtnZXQ6KCk9PmlbdF19KX0pKSxoJiZkLnByZXZlbnREZWZhdWx0KCksYyYmdC5kaXNwYXRjaEV2ZW50KGQpLGQuZGVmYXVsdFByZXZlbnRlZCYmdm9pZCAwIT09YSYmYS5wcmV2ZW50RGVmYXVsdCgpLGR9fSxNPW5ldyBNYXAsSD17c2V0KHQsZSxpKXtNLmhhcyh0KXx8TS5zZXQodCxuZXcgTWFwKTtjb25zdCBuPU0uZ2V0KHQpO24uaGFzKGUpfHwwPT09bi5zaXplP24uc2V0KGUsaSk6Y29uc29sZS5lcnJvcihgQm9vdHN0cmFwIGRvZXNuJ3QgYWxsb3cgbW9yZSB0aGFuIG9uZSBpbnN0YW5jZSBwZXIgZWxlbWVudC4gQm91bmQgaW5zdGFuY2U6ICR7QXJyYXkuZnJvbShuLmtleXMoKSlbMF19LmApfSxnZXQ6KHQsZSk9Pk0uaGFzKHQpJiZNLmdldCh0KS5nZXQoZSl8fG51bGwscmVtb3ZlKHQsZSl7aWYoIU0uaGFzKHQpKXJldHVybjtjb25zdCBpPU0uZ2V0KHQpO2kuZGVsZXRlKGUpLDA9PT1pLnNpemUmJk0uZGVsZXRlKHQpfX07Y2xhc3MgQntjb25zdHJ1Y3Rvcih0KXsodD1yKHQpKSYmKHRoaXMuX2VsZW1lbnQ9dCxILnNldCh0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVksdGhpcykpfWRpc3Bvc2UoKXtILnJlbW92ZSh0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVkpLGoub2ZmKHRoaXMuX2VsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5FVkVOVF9LRVkpLE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpLmZvckVhY2goKHQ9Pnt0aGlzW3RdPW51bGx9KSl9X3F1ZXVlQ2FsbGJhY2sodCxlLGk9ITApe2IodCxlLGkpfXN0YXRpYyBnZXRJbnN0YW5jZSh0KXtyZXR1cm4gSC5nZXQocih0KSx0aGlzLkRBVEFfS0VZKX1zdGF0aWMgZ2V0T3JDcmVhdGVJbnN0YW5jZSh0LGU9e30pe3JldHVybiB0aGlzLmdldEluc3RhbmNlKHQpfHxuZXcgdGhpcyh0LCJvYmplY3QiPT10eXBlb2YgZT9lOm51bGwpfXN0YXRpYyBnZXQgVkVSU0lPTigpe3JldHVybiI1LjEuMyJ9c3RhdGljIGdldCBOQU1FKCl7dGhyb3cgbmV3IEVycm9yKCdZb3UgaGF2ZSB0byBpbXBsZW1lbnQgdGhlIHN0YXRpYyBtZXRob2QgIk5BTUUiLCBmb3IgZWFjaCBjb21wb25lbnQhJyl9c3RhdGljIGdldCBEQVRBX0tFWSgpe3JldHVybmBicy4ke3RoaXMuTkFNRX1gfXN0YXRpYyBnZXQgRVZFTlRfS0VZKCl7cmV0dXJuYC4ke3RoaXMuREFUQV9LRVl9YH19Y29uc3QgUj0odCxlPSJoaWRlIik9Pntjb25zdCBpPWBjbGljay5kaXNtaXNzJHt0LkVWRU5UX0tFWX1gLHM9dC5OQU1FO2oub24oZG9jdW1lbnQsaSxgW2RhdGEtYnMtZGlzbWlzcz0iJHtzfSJdYCwoZnVuY3Rpb24oaSl7aWYoWyJBIiwiQVJFQSJdLmluY2x1ZGVzKHRoaXMudGFnTmFtZSkmJmkucHJldmVudERlZmF1bHQoKSxjKHRoaXMpKXJldHVybjtjb25zdCBvPW4odGhpcyl8fHRoaXMuY2xvc2VzdChgLiR7c31gKTt0LmdldE9yQ3JlYXRlSW5zdGFuY2UobylbZV0oKX0pKX07Y2xhc3MgVyBleHRlbmRzIEJ7c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuImFsZXJ0In1jbG9zZSgpe2lmKGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LCJjbG9zZS5icy5hbGVydCIpLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO3RoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpO2NvbnN0IHQ9dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImZhZGUiKTt0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+dGhpcy5fZGVzdHJveUVsZW1lbnQoKSksdGhpcy5fZWxlbWVudCx0KX1fZGVzdHJveUVsZW1lbnQoKXt0aGlzLl9lbGVtZW50LnJlbW92ZSgpLGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LCJjbG9zZWQuYnMuYWxlcnQiKSx0aGlzLmRpc3Bvc2UoKX1zdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Y29uc3QgZT1XLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcyk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZih2b2lkIDA9PT1lW3RdfHx0LnN0YXJ0c1dpdGgoIl8iKXx8ImNvbnN0cnVjdG9yIj09PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkICIke3R9ImApO2VbdF0odGhpcyl9fSkpfX1SKFcsImNsb3NlIiksZyhXKTtjb25zdCAkPSdbZGF0YS1icy10b2dnbGU9ImJ1dHRvbiJdJztjbGFzcyB6IGV4dGVuZHMgQntzdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm4iYnV0dG9uIn10b2dnbGUoKXt0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIix0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIpKX1zdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Y29uc3QgZT16LmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcyk7InRvZ2dsZSI9PT10JiZlW3RdKCl9KSl9fWZ1bmN0aW9uIHEodCl7cmV0dXJuInRydWUiPT09dHx8ImZhbHNlIiE9PXQmJih0PT09TnVtYmVyKHQpLnRvU3RyaW5nKCk/TnVtYmVyKHQpOiIiPT09dHx8Im51bGwiPT09dD9udWxsOnQpfWZ1bmN0aW9uIEYodCl7cmV0dXJuIHQucmVwbGFjZSgvW0EtWl0vZywodD0+YC0ke3QudG9Mb3dlckNhc2UoKX1gKSl9ai5vbihkb2N1bWVudCwiY2xpY2suYnMuYnV0dG9uLmRhdGEtYXBpIiwkLCh0PT57dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9dC50YXJnZXQuY2xvc2VzdCgkKTt6LmdldE9yQ3JlYXRlSW5zdGFuY2UoZSkudG9nZ2xlKCl9KSksZyh6KTtjb25zdCBVPXtzZXREYXRhQXR0cmlidXRlKHQsZSxpKXt0LnNldEF0dHJpYnV0ZShgZGF0YS1icy0ke0YoZSl9YCxpKX0scmVtb3ZlRGF0YUF0dHJpYnV0ZSh0LGUpe3QucmVtb3ZlQXR0cmlidXRlKGBkYXRhLWJzLSR7RihlKX1gKX0sZ2V0RGF0YUF0dHJpYnV0ZXModCl7aWYoIXQpcmV0dXJue307Y29uc3QgZT17fTtyZXR1cm4gT2JqZWN0LmtleXModC5kYXRhc2V0KS5maWx0ZXIoKHQ9PnQuc3RhcnRzV2l0aCgiYnMiKSkpLmZvckVhY2goKGk9PntsZXQgbj1pLnJlcGxhY2UoL15icy8sIiIpO249bi5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKStuLnNsaWNlKDEsbi5sZW5ndGgpLGVbbl09cSh0LmRhdGFzZXRbaV0pfSkpLGV9LGdldERhdGFBdHRyaWJ1dGU6KHQsZSk9PnEodC5nZXRBdHRyaWJ1dGUoYGRhdGEtYnMtJHtGKGUpfWApKSxvZmZzZXQodCl7Y29uc3QgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt0b3A6ZS50b3Ard2luZG93LnBhZ2VZT2Zmc2V0LGxlZnQ6ZS5sZWZ0K3dpbmRvdy5wYWdlWE9mZnNldH19LHBvc2l0aW9uOnQ9Pih7dG9wOnQub2Zmc2V0VG9wLGxlZnQ6dC5vZmZzZXRMZWZ0fSl9LFY9e2ZpbmQ6KHQsZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpPT5bXS5jb25jYXQoLi4uRWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvckFsbC5jYWxsKGUsdCkpLGZpbmRPbmU6KHQsZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpPT5FbGVtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yLmNhbGwoZSx0KSxjaGlsZHJlbjoodCxlKT0+W10uY29uY2F0KC4uLnQuY2hpbGRyZW4pLmZpbHRlcigodD0+dC5tYXRjaGVzKGUpKSkscGFyZW50cyh0LGUpe2NvbnN0IGk9W107bGV0IG49dC5wYXJlbnROb2RlO2Zvcig7biYmbi5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiYzIT09bi5ub2RlVHlwZTspbi5tYXRjaGVzKGUpJiZpLnB1c2gobiksbj1uLnBhcmVudE5vZGU7cmV0dXJuIGl9LHByZXYodCxlKXtsZXQgaT10LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7Zm9yKDtpOyl7aWYoaS5tYXRjaGVzKGUpKXJldHVybltpXTtpPWkucHJldmlvdXNFbGVtZW50U2libGluZ31yZXR1cm5bXX0sbmV4dCh0LGUpe2xldCBpPXQubmV4dEVsZW1lbnRTaWJsaW5nO2Zvcig7aTspe2lmKGkubWF0Y2hlcyhlKSlyZXR1cm5baV07aT1pLm5leHRFbGVtZW50U2libGluZ31yZXR1cm5bXX0sZm9jdXNhYmxlQ2hpbGRyZW4odCl7Y29uc3QgZT1bImEiLCJidXR0b24iLCJpbnB1dCIsInRleHRhcmVhIiwic2VsZWN0IiwiZGV0YWlscyIsIlt0YWJpbmRleF0iLCdbY29udGVudGVkaXRhYmxlPSJ0cnVlIl0nXS5tYXAoKHQ9PmAke3R9Om5vdChbdGFiaW5kZXhePSItIl0pYCkpLmpvaW4oIiwgIik7cmV0dXJuIHRoaXMuZmluZChlLHQpLmZpbHRlcigodD0+IWModCkmJmwodCkpKX19LEs9ImNhcm91c2VsIixYPXtpbnRlcnZhbDo1ZTMsa2V5Ym9hcmQ6ITAsc2xpZGU6ITEscGF1c2U6ImhvdmVyIix3cmFwOiEwLHRvdWNoOiEwfSxZPXtpbnRlcnZhbDoiKG51bWJlcnxib29sZWFuKSIsa2V5Ym9hcmQ6ImJvb2xlYW4iLHNsaWRlOiIoYm9vbGVhbnxzdHJpbmcpIixwYXVzZToiKHN0cmluZ3xib29sZWFuKSIsd3JhcDoiYm9vbGVhbiIsdG91Y2g6ImJvb2xlYW4ifSxRPSJuZXh0IixHPSJwcmV2IixaPSJsZWZ0IixKPSJyaWdodCIsdHQ9e0Fycm93TGVmdDpKLEFycm93UmlnaHQ6Wn0sZXQ9InNsaWQuYnMuY2Fyb3VzZWwiLGl0PSJhY3RpdmUiLG50PSIuYWN0aXZlLmNhcm91c2VsLWl0ZW0iO2NsYXNzIHN0IGV4dGVuZHMgQntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMuX2l0ZW1zPW51bGwsdGhpcy5faW50ZXJ2YWw9bnVsbCx0aGlzLl9hY3RpdmVFbGVtZW50PW51bGwsdGhpcy5faXNQYXVzZWQ9ITEsdGhpcy5faXNTbGlkaW5nPSExLHRoaXMudG91Y2hUaW1lb3V0PW51bGwsdGhpcy50b3VjaFN0YXJ0WD0wLHRoaXMudG91Y2hEZWx0YVg9MCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PVYuZmluZE9uZSgiLmNhcm91c2VsLWluZGljYXRvcnMiLHRoaXMuX2VsZW1lbnQpLHRoaXMuX3RvdWNoU3VwcG9ydGVkPSJvbnRvdWNoc3RhcnQiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MCx0aGlzLl9wb2ludGVyRXZlbnQ9Qm9vbGVhbih3aW5kb3cuUG9pbnRlckV2ZW50KSx0aGlzLl9hZGRFdmVudExpc3RlbmVycygpfXN0YXRpYyBnZXQgRGVmYXVsdCgpe3JldHVybiBYfXN0YXRpYyBnZXQgTkFNRSgpe3JldHVybiBLfW5leHQoKXt0aGlzLl9zbGlkZShRKX1uZXh0V2hlblZpc2libGUoKXshZG9jdW1lbnQuaGlkZGVuJiZsKHRoaXMuX2VsZW1lbnQpJiZ0aGlzLm5leHQoKX1wcmV2KCl7dGhpcy5fc2xpZGUoRyl9cGF1c2UodCl7dHx8KHRoaXMuX2lzUGF1c2VkPSEwKSxWLmZpbmRPbmUoIi5jYXJvdXNlbC1pdGVtLW5leHQsIC5jYXJvdXNlbC1pdGVtLXByZXYiLHRoaXMuX2VsZW1lbnQpJiYocyh0aGlzLl9lbGVtZW50KSx0aGlzLmN5Y2xlKCEwKSksY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbH1jeWNsZSh0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITEpLHRoaXMuX2ludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbCksdGhpcy5fY29uZmlnJiZ0aGlzLl9jb25maWcuaW50ZXJ2YWwmJiF0aGlzLl9pc1BhdXNlZCYmKHRoaXMuX3VwZGF0ZUludGVydmFsKCksdGhpcy5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT90aGlzLm5leHRXaGVuVmlzaWJsZTp0aGlzLm5leHQpLmJpbmQodGhpcyksdGhpcy5fY29uZmlnLmludGVydmFsKSl9dG8odCl7dGhpcy5fYWN0aXZlRWxlbWVudD1WLmZpbmRPbmUobnQsdGhpcy5fZWxlbWVudCk7Y29uc3QgZT10aGlzLl9nZXRJdGVtSW5kZXgodGhpcy5fYWN0aXZlRWxlbWVudCk7aWYodD50aGlzLl9pdGVtcy5sZW5ndGgtMXx8dDwwKXJldHVybjtpZih0aGlzLl9pc1NsaWRpbmcpcmV0dXJuIHZvaWQgai5vbmUodGhpcy5fZWxlbWVudCxldCwoKCk9PnRoaXMudG8odCkpKTtpZihlPT09dClyZXR1cm4gdGhpcy5wYXVzZSgpLHZvaWQgdGhpcy5jeWNsZSgpO2NvbnN0IGk9dD5lP1E6Rzt0aGlzLl9zbGlkZShpLHRoaXMuX2l0ZW1zW3RdKX1fZ2V0Q29uZmlnKHQpe3JldHVybiB0PXsuLi5YLC4uLlUuZ2V0RGF0YUF0dHJpYnV0ZXModGhpcy5fZWxlbWVudCksLi4uIm9iamVjdCI9PXR5cGVvZiB0P3Q6e319LGEoSyx0LFkpLHR9X2hhbmRsZVN3aXBlKCl7Y29uc3QgdD1NYXRoLmFicyh0aGlzLnRvdWNoRGVsdGFYKTtpZih0PD00MClyZXR1cm47Y29uc3QgZT10L3RoaXMudG91Y2hEZWx0YVg7dGhpcy50b3VjaERlbHRhWD0wLGUmJnRoaXMuX3NsaWRlKGU+MD9KOlopfV9hZGRFdmVudExpc3RlbmVycygpe3RoaXMuX2NvbmZpZy5rZXlib2FyZCYmai5vbih0aGlzLl9lbGVtZW50LCJrZXlkb3duLmJzLmNhcm91c2VsIiwodD0+dGhpcy5fa2V5ZG93bih0KSkpLCJob3ZlciI9PT10aGlzLl9jb25maWcucGF1c2UmJihqLm9uKHRoaXMuX2VsZW1lbnQsIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLCh0PT50aGlzLnBhdXNlKHQpKSksai5vbih0aGlzLl9lbGVtZW50LCJtb3VzZWxlYXZlLmJzLmNhcm91c2VsIiwodD0+dGhpcy5jeWNsZSh0KSkpKSx0aGlzLl9jb25maWcudG91Y2gmJnRoaXMuX3RvdWNoU3VwcG9ydGVkJiZ0aGlzLl9hZGRUb3VjaEV2ZW50TGlzdGVuZXJzKCl9X2FkZFRvdWNoRXZlbnRMaXN0ZW5lcnMoKXtjb25zdCB0PXQ9PnRoaXMuX3BvaW50ZXJFdmVudCYmKCJwZW4iPT09dC5wb2ludGVyVHlwZXx8InRvdWNoIj09PXQucG9pbnRlclR5cGUpLGU9ZT0+e3QoZSk/dGhpcy50b3VjaFN0YXJ0WD1lLmNsaWVudFg6dGhpcy5fcG9pbnRlckV2ZW50fHwodGhpcy50b3VjaFN0YXJ0WD1lLnRvdWNoZXNbMF0uY2xpZW50WCl9LGk9dD0+e3RoaXMudG91Y2hEZWx0YVg9dC50b3VjaGVzJiZ0LnRvdWNoZXMubGVuZ3RoPjE/MDp0LnRvdWNoZXNbMF0uY2xpZW50WC10aGlzLnRvdWNoU3RhcnRYfSxuPWU9Pnt0KGUpJiYodGhpcy50b3VjaERlbHRhWD1lLmNsaWVudFgtdGhpcy50b3VjaFN0YXJ0WCksdGhpcy5faGFuZGxlU3dpcGUoKSwiaG92ZXIiPT09dGhpcy5fY29uZmlnLnBhdXNlJiYodGhpcy5wYXVzZSgpLHRoaXMudG91Y2hUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVvdXQpLHRoaXMudG91Y2hUaW1lb3V0PXNldFRpbWVvdXQoKHQ9PnRoaXMuY3ljbGUodCkpLDUwMCt0aGlzLl9jb25maWcuaW50ZXJ2YWwpKX07Vi5maW5kKCIuY2Fyb3VzZWwtaXRlbSBpbWciLHRoaXMuX2VsZW1lbnQpLmZvckVhY2goKHQ9PntqLm9uKHQsImRyYWdzdGFydC5icy5jYXJvdXNlbCIsKHQ9PnQucHJldmVudERlZmF1bHQoKSkpfSkpLHRoaXMuX3BvaW50ZXJFdmVudD8oai5vbih0aGlzLl9lbGVtZW50LCJwb2ludGVyZG93bi5icy5jYXJvdXNlbCIsKHQ9PmUodCkpKSxqLm9uKHRoaXMuX2VsZW1lbnQsInBvaW50ZXJ1cC5icy5jYXJvdXNlbCIsKHQ9Pm4odCkpKSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoInBvaW50ZXItZXZlbnQiKSk6KGoub24odGhpcy5fZWxlbWVudCwidG91Y2hzdGFydC5icy5jYXJvdXNlbCIsKHQ9PmUodCkpKSxqLm9uKHRoaXMuX2VsZW1lbnQsInRvdWNobW92ZS5icy5jYXJvdXNlbCIsKHQ9PmkodCkpKSxqLm9uKHRoaXMuX2VsZW1lbnQsInRvdWNoZW5kLmJzLmNhcm91c2VsIiwodD0+bih0KSkpKX1fa2V5ZG93bih0KXtpZigvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpKXJldHVybjtjb25zdCBlPXR0W3Qua2V5XTtlJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX3NsaWRlKGUpKX1fZ2V0SXRlbUluZGV4KHQpe3JldHVybiB0aGlzLl9pdGVtcz10JiZ0LnBhcmVudE5vZGU/Vi5maW5kKCIuY2Fyb3VzZWwtaXRlbSIsdC5wYXJlbnROb2RlKTpbXSx0aGlzLl9pdGVtcy5pbmRleE9mKHQpfV9nZXRJdGVtQnlPcmRlcih0LGUpe2NvbnN0IGk9dD09PVE7cmV0dXJuIHYodGhpcy5faXRlbXMsZSxpLHRoaXMuX2NvbmZpZy53cmFwKX1fdHJpZ2dlclNsaWRlRXZlbnQodCxlKXtjb25zdCBpPXRoaXMuX2dldEl0ZW1JbmRleCh0KSxuPXRoaXMuX2dldEl0ZW1JbmRleChWLmZpbmRPbmUobnQsdGhpcy5fZWxlbWVudCkpO3JldHVybiBqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwic2xpZGUuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OnQsZGlyZWN0aW9uOmUsZnJvbTpuLHRvOml9KX1fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudCh0KXtpZih0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCl7Y29uc3QgZT1WLmZpbmRPbmUoIi5hY3RpdmUiLHRoaXMuX2luZGljYXRvcnNFbGVtZW50KTtlLmNsYXNzTGlzdC5yZW1vdmUoaXQpLGUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWN1cnJlbnQiKTtjb25zdCBpPVYuZmluZCgiW2RhdGEtYnMtdGFyZ2V0XSIsdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpO2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKWlmKE51bWJlci5wYXJzZUludChpW2VdLmdldEF0dHJpYnV0ZSgiZGF0YS1icy1zbGlkZS10byIpLDEwKT09PXRoaXMuX2dldEl0ZW1JbmRleCh0KSl7aVtlXS5jbGFzc0xpc3QuYWRkKGl0KSxpW2VdLnNldEF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50IiwidHJ1ZSIpO2JyZWFrfX19X3VwZGF0ZUludGVydmFsKCl7Y29uc3QgdD10aGlzLl9hY3RpdmVFbGVtZW50fHxWLmZpbmRPbmUobnQsdGhpcy5fZWxlbWVudCk7aWYoIXQpcmV0dXJuO2NvbnN0IGU9TnVtYmVyLnBhcnNlSW50KHQuZ2V0QXR0cmlidXRlKCJkYXRhLWJzLWludGVydmFsIiksMTApO2U/KHRoaXMuX2NvbmZpZy5kZWZhdWx0SW50ZXJ2YWw9dGhpcy5fY29uZmlnLmRlZmF1bHRJbnRlcnZhbHx8dGhpcy5fY29uZmlnLmludGVydmFsLHRoaXMuX2NvbmZpZy5pbnRlcnZhbD1lKTp0aGlzLl9jb25maWcuaW50ZXJ2YWw9dGhpcy5fY29uZmlnLmRlZmF1bHRJbnRlcnZhbHx8dGhpcy5fY29uZmlnLmludGVydmFsfV9zbGlkZSh0LGUpe2NvbnN0IGk9dGhpcy5fZGlyZWN0aW9uVG9PcmRlcih0KSxuPVYuZmluZE9uZShudCx0aGlzLl9lbGVtZW50KSxzPXRoaXMuX2dldEl0ZW1JbmRleChuKSxvPWV8fHRoaXMuX2dldEl0ZW1CeU9yZGVyKGksbikscj10aGlzLl9nZXRJdGVtSW5kZXgobyksYT1Cb29sZWFuKHRoaXMuX2ludGVydmFsKSxsPWk9PT1RLGM9bD8iY2Fyb3VzZWwtaXRlbS1zdGFydCI6ImNhcm91c2VsLWl0ZW0tZW5kIixoPWw/ImNhcm91c2VsLWl0ZW0tbmV4dCI6ImNhcm91c2VsLWl0ZW0tcHJldiIsZD10aGlzLl9vcmRlclRvRGlyZWN0aW9uKGkpO2lmKG8mJm8uY2xhc3NMaXN0LmNvbnRhaW5zKGl0KSlyZXR1cm4gdm9pZCh0aGlzLl9pc1NsaWRpbmc9ITEpO2lmKHRoaXMuX2lzU2xpZGluZylyZXR1cm47aWYodGhpcy5fdHJpZ2dlclNsaWRlRXZlbnQobyxkKS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtpZighbnx8IW8pcmV0dXJuO3RoaXMuX2lzU2xpZGluZz0hMCxhJiZ0aGlzLnBhdXNlKCksdGhpcy5fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudChvKSx0aGlzLl9hY3RpdmVFbGVtZW50PW87Y29uc3QgZj0oKT0+e2oudHJpZ2dlcih0aGlzLl9lbGVtZW50LGV0LHtyZWxhdGVkVGFyZ2V0Om8sZGlyZWN0aW9uOmQsZnJvbTpzLHRvOnJ9KX07aWYodGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInNsaWRlIikpe28uY2xhc3NMaXN0LmFkZChoKSx1KG8pLG4uY2xhc3NMaXN0LmFkZChjKSxvLmNsYXNzTGlzdC5hZGQoYyk7Y29uc3QgdD0oKT0+e28uY2xhc3NMaXN0LnJlbW92ZShjLGgpLG8uY2xhc3NMaXN0LmFkZChpdCksbi5jbGFzc0xpc3QucmVtb3ZlKGl0LGgsYyksdGhpcy5faXNTbGlkaW5nPSExLHNldFRpbWVvdXQoZiwwKX07dGhpcy5fcXVldWVDYWxsYmFjayh0LG4sITApfWVsc2Ugbi5jbGFzc0xpc3QucmVtb3ZlKGl0KSxvLmNsYXNzTGlzdC5hZGQoaXQpLHRoaXMuX2lzU2xpZGluZz0hMSxmKCk7YSYmdGhpcy5jeWNsZSgpfV9kaXJlY3Rpb25Ub09yZGVyKHQpe3JldHVybltKLFpdLmluY2x1ZGVzKHQpP20oKT90PT09Wj9HOlE6dD09PVo/UTpHOnR9X29yZGVyVG9EaXJlY3Rpb24odCl7cmV0dXJuW1EsR10uaW5jbHVkZXModCk/bSgpP3Q9PT1HP1o6Sjp0PT09Rz9KOlo6dH1zdGF0aWMgY2Fyb3VzZWxJbnRlcmZhY2UodCxlKXtjb25zdCBpPXN0LmdldE9yQ3JlYXRlSW5zdGFuY2UodCxlKTtsZXR7X2NvbmZpZzpufT1pOyJvYmplY3QiPT10eXBlb2YgZSYmKG49ey4uLm4sLi4uZX0pO2NvbnN0IHM9InN0cmluZyI9PXR5cGVvZiBlP2U6bi5zbGlkZTtpZigibnVtYmVyIj09dHlwZW9mIGUpaS50byhlKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2Ygcyl7aWYodm9pZCAwPT09aVtzXSl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgIiR7c30iYCk7aVtzXSgpfWVsc2Ugbi5pbnRlcnZhbCYmbi5yaWRlJiYoaS5wYXVzZSgpLGkuY3ljbGUoKSl9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe3N0LmNhcm91c2VsSW50ZXJmYWNlKHRoaXMsdCl9KSl9c3RhdGljIGRhdGFBcGlDbGlja0hhbmRsZXIodCl7Y29uc3QgZT1uKHRoaXMpO2lmKCFlfHwhZS5jbGFzc0xpc3QuY29udGFpbnMoImNhcm91c2VsIikpcmV0dXJuO2NvbnN0IGk9ey4uLlUuZ2V0RGF0YUF0dHJpYnV0ZXMoZSksLi4uVS5nZXREYXRhQXR0cmlidXRlcyh0aGlzKX0scz10aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1icy1zbGlkZS10byIpO3MmJihpLmludGVydmFsPSExKSxzdC5jYXJvdXNlbEludGVyZmFjZShlLGkpLHMmJnN0LmdldEluc3RhbmNlKGUpLnRvKHMpLHQucHJldmVudERlZmF1bHQoKX19ai5vbihkb2N1bWVudCwiY2xpY2suYnMuY2Fyb3VzZWwuZGF0YS1hcGkiLCJbZGF0YS1icy1zbGlkZV0sIFtkYXRhLWJzLXNsaWRlLXRvXSIsc3QuZGF0YUFwaUNsaWNrSGFuZGxlciksai5vbih3aW5kb3csImxvYWQuYnMuY2Fyb3VzZWwuZGF0YS1hcGkiLCgoKT0+e2NvbnN0IHQ9Vi5maW5kKCdbZGF0YS1icy1yaWRlPSJjYXJvdXNlbCJdJyk7Zm9yKGxldCBlPTAsaT10Lmxlbmd0aDtlPGk7ZSsrKXN0LmNhcm91c2VsSW50ZXJmYWNlKHRbZV0sc3QuZ2V0SW5zdGFuY2UodFtlXSkpfSkpLGcoc3QpO2NvbnN0IG90PSJjb2xsYXBzZSIscnQ9e3RvZ2dsZTohMCxwYXJlbnQ6bnVsbH0sYXQ9e3RvZ2dsZToiYm9vbGVhbiIscGFyZW50OiIobnVsbHxlbGVtZW50KSJ9LGx0PSJzaG93IixjdD0iY29sbGFwc2UiLGh0PSJjb2xsYXBzaW5nIixkdD0iY29sbGFwc2VkIix1dD0iOnNjb3BlIC5jb2xsYXBzZSAuY29sbGFwc2UiLGZ0PSdbZGF0YS1icy10b2dnbGU9ImNvbGxhcHNlIl0nO2NsYXNzIHB0IGV4dGVuZHMgQntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3RyaWdnZXJBcnJheT1bXTtjb25zdCBuPVYuZmluZChmdCk7Zm9yKGxldCB0PTAsZT1uLmxlbmd0aDt0PGU7dCsrKXtjb25zdCBlPW5bdF0scz1pKGUpLG89Vi5maW5kKHMpLmZpbHRlcigodD0+dD09PXRoaXMuX2VsZW1lbnQpKTtudWxsIT09cyYmby5sZW5ndGgmJih0aGlzLl9zZWxlY3Rvcj1zLHRoaXMuX3RyaWdnZXJBcnJheS5wdXNoKGUpKX10aGlzLl9pbml0aWFsaXplQ2hpbGRyZW4oKSx0aGlzLl9jb25maWcucGFyZW50fHx0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fdHJpZ2dlckFycmF5LHRoaXMuX2lzU2hvd24oKSksdGhpcy5fY29uZmlnLnRvZ2dsZSYmdGhpcy50b2dnbGUoKX1zdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gcnR9c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuIG90fXRvZ2dsZSgpe3RoaXMuX2lzU2hvd24oKT90aGlzLmhpZGUoKTp0aGlzLnNob3coKX1zaG93KCl7aWYodGhpcy5faXNUcmFuc2l0aW9uaW5nfHx0aGlzLl9pc1Nob3duKCkpcmV0dXJuO2xldCB0LGU9W107aWYodGhpcy5fY29uZmlnLnBhcmVudCl7Y29uc3QgdD1WLmZpbmQodXQsdGhpcy5fY29uZmlnLnBhcmVudCk7ZT1WLmZpbmQoIi5jb2xsYXBzZS5zaG93LCAuY29sbGFwc2UuY29sbGFwc2luZyIsdGhpcy5fY29uZmlnLnBhcmVudCkuZmlsdGVyKChlPT4hdC5pbmNsdWRlcyhlKSkpfWNvbnN0IGk9Vi5maW5kT25lKHRoaXMuX3NlbGVjdG9yKTtpZihlLmxlbmd0aCl7Y29uc3Qgbj1lLmZpbmQoKHQ9PmkhPT10KSk7aWYodD1uP3B0LmdldEluc3RhbmNlKG4pOm51bGwsdCYmdC5faXNUcmFuc2l0aW9uaW5nKXJldHVybn1pZihqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwic2hvdy5icy5jb2xsYXBzZSIpLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO2UuZm9yRWFjaCgoZT0+e2khPT1lJiZwdC5nZXRPckNyZWF0ZUluc3RhbmNlKGUse3RvZ2dsZTohMX0pLmhpZGUoKSx0fHxILnNldChlLCJicy5jb2xsYXBzZSIsbnVsbCl9KSk7Y29uc3Qgbj10aGlzLl9nZXREaW1lbnNpb24oKTt0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY3QpLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChodCksdGhpcy5fZWxlbWVudC5zdHlsZVtuXT0wLHRoaXMuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0aGlzLl90cmlnZ2VyQXJyYXksITApLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMDtjb25zdCBzPWBzY3JvbGwke25bMF0udG9VcHBlckNhc2UoKStuLnNsaWNlKDEpfWA7dGhpcy5fcXVldWVDYWxsYmFjaygoKCk9Pnt0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITEsdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGh0KSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoY3QsbHQpLHRoaXMuX2VsZW1lbnQuc3R5bGVbbl09IiIsai50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsInNob3duLmJzLmNvbGxhcHNlIil9KSx0aGlzLl9lbGVtZW50LCEwKSx0aGlzLl9lbGVtZW50LnN0eWxlW25dPWAke3RoaXMuX2VsZW1lbnRbc119cHhgfWhpZGUoKXtpZih0aGlzLl9pc1RyYW5zaXRpb25pbmd8fCF0aGlzLl9pc1Nob3duKCkpcmV0dXJuO2lmKGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LCJoaWRlLmJzLmNvbGxhcHNlIikuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3QgdD10aGlzLl9nZXREaW1lbnNpb24oKTt0aGlzLl9lbGVtZW50LnN0eWxlW3RdPWAke3RoaXMuX2VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbdF19cHhgLHUodGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKGh0KSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY3QsbHQpO2NvbnN0IGU9dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aDtmb3IobGV0IHQ9MDt0PGU7dCsrKXtjb25zdCBlPXRoaXMuX3RyaWdnZXJBcnJheVt0XSxpPW4oZSk7aSYmIXRoaXMuX2lzU2hvd24oaSkmJnRoaXMuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhbZV0sITEpfXRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMCx0aGlzLl9lbGVtZW50LnN0eWxlW3RdPSIiLHRoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57dGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShodCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKGN0KSxqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwiaGlkZGVuLmJzLmNvbGxhcHNlIil9KSx0aGlzLl9lbGVtZW50LCEwKX1faXNTaG93bih0PXRoaXMuX2VsZW1lbnQpe3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucyhsdCl9X2dldENvbmZpZyh0KXtyZXR1cm4odD17Li4ucnQsLi4uVS5nZXREYXRhQXR0cmlidXRlcyh0aGlzLl9lbGVtZW50KSwuLi50fSkudG9nZ2xlPUJvb2xlYW4odC50b2dnbGUpLHQucGFyZW50PXIodC5wYXJlbnQpLGEob3QsdCxhdCksdH1fZ2V0RGltZW5zaW9uKCl7cmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZS1ob3Jpem9udGFsIik/IndpZHRoIjoiaGVpZ2h0In1faW5pdGlhbGl6ZUNoaWxkcmVuKCl7aWYoIXRoaXMuX2NvbmZpZy5wYXJlbnQpcmV0dXJuO2NvbnN0IHQ9Vi5maW5kKHV0LHRoaXMuX2NvbmZpZy5wYXJlbnQpO1YuZmluZChmdCx0aGlzLl9jb25maWcucGFyZW50KS5maWx0ZXIoKGU9PiF0LmluY2x1ZGVzKGUpKSkuZm9yRWFjaCgodD0+e2NvbnN0IGU9bih0KTtlJiZ0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MoW3RdLHRoaXMuX2lzU2hvd24oZSkpfSkpfV9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModCxlKXt0Lmxlbmd0aCYmdC5mb3JFYWNoKCh0PT57ZT90LmNsYXNzTGlzdC5yZW1vdmUoZHQpOnQuY2xhc3NMaXN0LmFkZChkdCksdC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGUpfSkpfXN0YXRpYyBqUXVlcnlJbnRlcmZhY2UodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtjb25zdCBlPXt9OyJzdHJpbmciPT10eXBlb2YgdCYmL3Nob3d8aGlkZS8udGVzdCh0KSYmKGUudG9nZ2xlPSExKTtjb25zdCBpPXB0LmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcyxlKTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKHZvaWQgMD09PWlbdF0pdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkICIke3R9ImApO2lbdF0oKX19KSl9fWoub24oZG9jdW1lbnQsImNsaWNrLmJzLmNvbGxhcHNlLmRhdGEtYXBpIixmdCwoZnVuY3Rpb24odCl7KCJBIj09PXQudGFyZ2V0LnRhZ05hbWV8fHQuZGVsZWdhdGVUYXJnZXQmJiJBIj09PXQuZGVsZWdhdGVUYXJnZXQudGFnTmFtZSkmJnQucHJldmVudERlZmF1bHQoKTtjb25zdCBlPWkodGhpcyk7Vi5maW5kKGUpLmZvckVhY2goKHQ9PntwdC5nZXRPckNyZWF0ZUluc3RhbmNlKHQse3RvZ2dsZTohMX0pLnRvZ2dsZSgpfSkpfSkpLGcocHQpO3ZhciBtdD0idG9wIixndD0iYm90dG9tIixfdD0icmlnaHQiLGJ0PSJsZWZ0Iix2dD0iYXV0byIseXQ9W210LGd0LF90LGJ0XSx3dD0ic3RhcnQiLEV0PSJlbmQiLEF0PSJjbGlwcGluZ1BhcmVudHMiLFR0PSJ2aWV3cG9ydCIsT3Q9InBvcHBlciIsQ3Q9InJlZmVyZW5jZSIsa3Q9eXQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0LmNvbmNhdChbZSsiLSIrd3QsZSsiLSIrRXRdKX0pLFtdKSxMdD1bXS5jb25jYXQoeXQsW3Z0XSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0LmNvbmNhdChbZSxlKyItIit3dCxlKyItIitFdF0pfSksW10pLHh0PSJiZWZvcmVSZWFkIixEdD0icmVhZCIsU3Q9ImFmdGVyUmVhZCIsTnQ9ImJlZm9yZU1haW4iLEl0PSJtYWluIixQdD0iYWZ0ZXJNYWluIixqdD0iYmVmb3JlV3JpdGUiLE10PSJ3cml0ZSIsSHQ9ImFmdGVyV3JpdGUiLEJ0PVt4dCxEdCxTdCxOdCxJdCxQdCxqdCxNdCxIdF07ZnVuY3Rpb24gUnQodCl7cmV0dXJuIHQ/KHQubm9kZU5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpOm51bGx9ZnVuY3Rpb24gV3QodCl7aWYobnVsbD09dClyZXR1cm4gd2luZG93O2lmKCJbb2JqZWN0IFdpbmRvd10iIT09dC50b1N0cmluZygpKXt2YXIgZT10Lm93bmVyRG9jdW1lbnQ7cmV0dXJuIGUmJmUuZGVmYXVsdFZpZXd8fHdpbmRvd31yZXR1cm4gdH1mdW5jdGlvbiAkdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFd0KHQpLkVsZW1lbnR8fHQgaW5zdGFuY2VvZiBFbGVtZW50fWZ1bmN0aW9uIHp0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgV3QodCkuSFRNTEVsZW1lbnR8fHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH1mdW5jdGlvbiBxdCh0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFNoYWRvd1Jvb3QmJih0IGluc3RhbmNlb2YgV3QodCkuU2hhZG93Um9vdHx8dCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpfWNvbnN0IEZ0PXtuYW1lOiJhcHBseVN0eWxlcyIsZW5hYmxlZDohMCxwaGFzZToid3JpdGUiLGZuOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGU7T2JqZWN0LmtleXMoZS5lbGVtZW50cykuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9ZS5zdHlsZXNbdF18fHt9LG49ZS5hdHRyaWJ1dGVzW3RdfHx7fSxzPWUuZWxlbWVudHNbdF07enQocykmJlJ0KHMpJiYoT2JqZWN0LmFzc2lnbihzLnN0eWxlLGkpLE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW5bdF07ITE9PT1lP3MucmVtb3ZlQXR0cmlidXRlKHQpOnMuc2V0QXR0cmlidXRlKHQsITA9PT1lPyIiOmUpfSkpKX0pKX0sZWZmZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGUsaT17cG9wcGVyOntwb3NpdGlvbjplLm9wdGlvbnMuc3RyYXRlZ3ksbGVmdDoiMCIsdG9wOiIwIixtYXJnaW46IjAifSxhcnJvdzp7cG9zaXRpb246ImFic29sdXRlIn0scmVmZXJlbmNlOnt9fTtyZXR1cm4gT2JqZWN0LmFzc2lnbihlLmVsZW1lbnRzLnBvcHBlci5zdHlsZSxpLnBvcHBlciksZS5zdHlsZXM9aSxlLmVsZW1lbnRzLmFycm93JiZPYmplY3QuYXNzaWduKGUuZWxlbWVudHMuYXJyb3cuc3R5bGUsaS5hcnJvdyksZnVuY3Rpb24oKXtPYmplY3Qua2V5cyhlLmVsZW1lbnRzKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbj1lLmVsZW1lbnRzW3RdLHM9ZS5hdHRyaWJ1dGVzW3RdfHx7fSxvPU9iamVjdC5rZXlzKGUuc3R5bGVzLmhhc093blByb3BlcnR5KHQpP2Uuc3R5bGVzW3RdOmlbdF0pLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlXT0iIix0fSkse30pO3p0KG4pJiZSdChuKSYmKE9iamVjdC5hc3NpZ24obi5zdHlsZSxvKSxPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtuLnJlbW92ZUF0dHJpYnV0ZSh0KX0pKSl9KSl9fSxyZXF1aXJlczpbImNvbXB1dGVTdHlsZXMiXX07ZnVuY3Rpb24gVXQodCl7cmV0dXJuIHQuc3BsaXQoIi0iKVswXX1mdW5jdGlvbiBWdCh0LGUpe3ZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3dpZHRoOmkud2lkdGgvMSxoZWlnaHQ6aS5oZWlnaHQvMSx0b3A6aS50b3AvMSxyaWdodDppLnJpZ2h0LzEsYm90dG9tOmkuYm90dG9tLzEsbGVmdDppLmxlZnQvMSx4OmkubGVmdC8xLHk6aS50b3AvMX19ZnVuY3Rpb24gS3QodCl7dmFyIGU9VnQodCksaT10Lm9mZnNldFdpZHRoLG49dC5vZmZzZXRIZWlnaHQ7cmV0dXJuIE1hdGguYWJzKGUud2lkdGgtaSk8PTEmJihpPWUud2lkdGgpLE1hdGguYWJzKGUuaGVpZ2h0LW4pPD0xJiYobj1lLmhlaWdodCkse3g6dC5vZmZzZXRMZWZ0LHk6dC5vZmZzZXRUb3Asd2lkdGg6aSxoZWlnaHQ6bn19ZnVuY3Rpb24gWHQodCxlKXt2YXIgaT1lLmdldFJvb3ROb2RlJiZlLmdldFJvb3ROb2RlKCk7aWYodC5jb250YWlucyhlKSlyZXR1cm4hMDtpZihpJiZxdChpKSl7dmFyIG49ZTtkb3tpZihuJiZ0LmlzU2FtZU5vZGUobikpcmV0dXJuITA7bj1uLnBhcmVudE5vZGV8fG4uaG9zdH13aGlsZShuKX1yZXR1cm4hMX1mdW5jdGlvbiBZdCh0KXtyZXR1cm4gV3QodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0KX1mdW5jdGlvbiBRdCh0KXtyZXR1cm5bInRhYmxlIiwidGQiLCJ0aCJdLmluZGV4T2YoUnQodCkpPj0wfWZ1bmN0aW9uIEd0KHQpe3JldHVybigoJHQodCk/dC5vd25lckRvY3VtZW50OnQuZG9jdW1lbnQpfHx3aW5kb3cuZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBadCh0KXtyZXR1cm4iaHRtbCI9PT1SdCh0KT90OnQuYXNzaWduZWRTbG90fHx0LnBhcmVudE5vZGV8fChxdCh0KT90Lmhvc3Q6bnVsbCl8fEd0KHQpfWZ1bmN0aW9uIEp0KHQpe3JldHVybiB6dCh0KSYmImZpeGVkIiE9PVl0KHQpLnBvc2l0aW9uP3Qub2Zmc2V0UGFyZW50Om51bGx9ZnVuY3Rpb24gdGUodCl7Zm9yKHZhciBlPVd0KHQpLGk9SnQodCk7aSYmUXQoaSkmJiJzdGF0aWMiPT09WXQoaSkucG9zaXRpb247KWk9SnQoaSk7cmV0dXJuIGkmJigiaHRtbCI9PT1SdChpKXx8ImJvZHkiPT09UnQoaSkmJiJzdGF0aWMiPT09WXQoaSkucG9zaXRpb24pP2U6aXx8ZnVuY3Rpb24odCl7dmFyIGU9LTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiZmlyZWZveCIpO2lmKC0xIT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJUcmlkZW50IikmJnp0KHQpJiYiZml4ZWQiPT09WXQodCkucG9zaXRpb24pcmV0dXJuIG51bGw7Zm9yKHZhciBpPVp0KHQpO3p0KGkpJiZbImh0bWwiLCJib2R5Il0uaW5kZXhPZihSdChpKSk8MDspe3ZhciBuPVl0KGkpO2lmKCJub25lIiE9PW4udHJhbnNmb3JtfHwibm9uZSIhPT1uLnBlcnNwZWN0aXZlfHwicGFpbnQiPT09bi5jb250YWlufHwtMSE9PVsidHJhbnNmb3JtIiwicGVyc3BlY3RpdmUiXS5pbmRleE9mKG4ud2lsbENoYW5nZSl8fGUmJiJmaWx0ZXIiPT09bi53aWxsQ2hhbmdlfHxlJiZuLmZpbHRlciYmIm5vbmUiIT09bi5maWx0ZXIpcmV0dXJuIGk7aT1pLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9KHQpfHxlfWZ1bmN0aW9uIGVlKHQpe3JldHVyblsidG9wIiwiYm90dG9tIl0uaW5kZXhPZih0KT49MD8ieCI6InkifXZhciBpZT1NYXRoLm1heCxuZT1NYXRoLm1pbixzZT1NYXRoLnJvdW5kO2Z1bmN0aW9uIG9lKHQsZSxpKXtyZXR1cm4gaWUodCxuZShlLGkpKX1mdW5jdGlvbiByZSh0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx7dG9wOjAscmlnaHQ6MCxib3R0b206MCxsZWZ0OjB9LHQpfWZ1bmN0aW9uIGFlKHQsZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLGkpe3JldHVybiBlW2ldPXQsZX0pLHt9KX1jb25zdCBsZT17bmFtZToiYXJyb3ciLGVuYWJsZWQ6ITAscGhhc2U6Im1haW4iLGZuOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dC5zdGF0ZSxuPXQubmFtZSxzPXQub3B0aW9ucyxvPWkuZWxlbWVudHMuYXJyb3cscj1pLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyxhPVV0KGkucGxhY2VtZW50KSxsPWVlKGEpLGM9W2J0LF90XS5pbmRleE9mKGEpPj0wPyJoZWlnaHQiOiJ3aWR0aCI7aWYobyYmcil7dmFyIGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcmUoIm51bWJlciIhPXR5cGVvZih0PSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoT2JqZWN0LmFzc2lnbih7fSxlLnJlY3RzLHtwbGFjZW1lbnQ6ZS5wbGFjZW1lbnR9KSk6dCk/dDphZSh0LHl0KSl9KHMucGFkZGluZyxpKSxkPUt0KG8pLHU9InkiPT09bD9tdDpidCxmPSJ5Ij09PWw/Z3Q6X3QscD1pLnJlY3RzLnJlZmVyZW5jZVtjXStpLnJlY3RzLnJlZmVyZW5jZVtsXS1yW2xdLWkucmVjdHMucG9wcGVyW2NdLG09cltsXS1pLnJlY3RzLnJlZmVyZW5jZVtsXSxnPXRlKG8pLF89Zz8ieSI9PT1sP2cuY2xpZW50SGVpZ2h0fHwwOmcuY2xpZW50V2lkdGh8fDA6MCxiPXAvMi1tLzIsdj1oW3VdLHk9Xy1kW2NdLWhbZl0sdz1fLzItZFtjXS8yK2IsRT1vZSh2LHcseSksQT1sO2kubW9kaWZpZXJzRGF0YVtuXT0oKGU9e30pW0FdPUUsZS5jZW50ZXJPZmZzZXQ9RS13LGUpfX0sZWZmZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGUsaT10Lm9wdGlvbnMuZWxlbWVudCxuPXZvaWQgMD09PWk/IltkYXRhLXBvcHBlci1hcnJvd10iOmk7bnVsbCE9biYmKCJzdHJpbmciIT10eXBlb2Ygbnx8KG49ZS5lbGVtZW50cy5wb3BwZXIucXVlcnlTZWxlY3RvcihuKSkpJiZYdChlLmVsZW1lbnRzLnBvcHBlcixuKSYmKGUuZWxlbWVudHMuYXJyb3c9bil9LHJlcXVpcmVzOlsicG9wcGVyT2Zmc2V0cyJdLHJlcXVpcmVzSWZFeGlzdHM6WyJwcmV2ZW50T3ZlcmZsb3ciXX07ZnVuY3Rpb24gY2UodCl7cmV0dXJuIHQuc3BsaXQoIi0iKVsxXX12YXIgaGU9e3RvcDoiYXV0byIscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byIsbGVmdDoiYXV0byJ9O2Z1bmN0aW9uIGRlKHQpe3ZhciBlLGk9dC5wb3BwZXIsbj10LnBvcHBlclJlY3Qscz10LnBsYWNlbWVudCxvPXQudmFyaWF0aW9uLHI9dC5vZmZzZXRzLGE9dC5wb3NpdGlvbixsPXQuZ3B1QWNjZWxlcmF0aW9uLGM9dC5hZGFwdGl2ZSxoPXQucm91bmRPZmZzZXRzLGQ9ITA9PT1oP2Z1bmN0aW9uKHQpe3ZhciBlPXQueCxpPXQueSxuPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO3JldHVybnt4OnNlKHNlKGUqbikvbil8fDAseTpzZShzZShpKm4pL24pfHwwfX0ocik6ImZ1bmN0aW9uIj09dHlwZW9mIGg/aChyKTpyLHU9ZC54LGY9dm9pZCAwPT09dT8wOnUscD1kLnksbT12b2lkIDA9PT1wPzA6cCxnPXIuaGFzT3duUHJvcGVydHkoIngiKSxfPXIuaGFzT3duUHJvcGVydHkoInkiKSxiPWJ0LHY9bXQseT13aW5kb3c7aWYoYyl7dmFyIHc9dGUoaSksRT0iY2xpZW50SGVpZ2h0IixBPSJjbGllbnRXaWR0aCI7dz09PVd0KGkpJiYic3RhdGljIiE9PVl0KHc9R3QoaSkpLnBvc2l0aW9uJiYiYWJzb2x1dGUiPT09YSYmKEU9InNjcm9sbEhlaWdodCIsQT0ic2Nyb2xsV2lkdGgiKSx3PXcscyE9PW10JiYocyE9PWJ0JiZzIT09X3R8fG8hPT1FdCl8fCh2PWd0LG0tPXdbRV0tbi5oZWlnaHQsbSo9bD8xOi0xKSxzIT09YnQmJihzIT09bXQmJnMhPT1ndHx8byE9PUV0KXx8KGI9X3QsZi09d1tBXS1uLndpZHRoLGYqPWw/MTotMSl9dmFyIFQsTz1PYmplY3QuYXNzaWduKHtwb3NpdGlvbjphfSxjJiZoZSk7cmV0dXJuIGw/T2JqZWN0LmFzc2lnbih7fSxPLCgoVD17fSlbdl09Xz8iMCI6IiIsVFtiXT1nPyIwIjoiIixULnRyYW5zZm9ybT0oeS5kZXZpY2VQaXhlbFJhdGlvfHwxKTw9MT8idHJhbnNsYXRlKCIrZisicHgsICIrbSsicHgpIjoidHJhbnNsYXRlM2QoIitmKyJweCwgIittKyJweCwgMCkiLFQpKTpPYmplY3QuYXNzaWduKHt9LE8sKChlPXt9KVt2XT1fP20rInB4IjoiIixlW2JdPWc/ZisicHgiOiIiLGUudHJhbnNmb3JtPSIiLGUpKX1jb25zdCB1ZT17bmFtZToiY29tcHV0ZVN0eWxlcyIsZW5hYmxlZDohMCxwaGFzZToiYmVmb3JlV3JpdGUiLGZuOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGUsaT10Lm9wdGlvbnMsbj1pLmdwdUFjY2VsZXJhdGlvbixzPXZvaWQgMD09PW58fG4sbz1pLmFkYXB0aXZlLHI9dm9pZCAwPT09b3x8byxhPWkucm91bmRPZmZzZXRzLGw9dm9pZCAwPT09YXx8YSxjPXtwbGFjZW1lbnQ6VXQoZS5wbGFjZW1lbnQpLHZhcmlhdGlvbjpjZShlLnBsYWNlbWVudCkscG9wcGVyOmUuZWxlbWVudHMucG9wcGVyLHBvcHBlclJlY3Q6ZS5yZWN0cy5wb3BwZXIsZ3B1QWNjZWxlcmF0aW9uOnN9O251bGwhPWUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzJiYoZS5zdHlsZXMucG9wcGVyPU9iamVjdC5hc3NpZ24oe30sZS5zdHlsZXMucG9wcGVyLGRlKE9iamVjdC5hc3NpZ24oe30sYyx7b2Zmc2V0czplLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyxwb3NpdGlvbjplLm9wdGlvbnMuc3RyYXRlZ3ksYWRhcHRpdmU6cixyb3VuZE9mZnNldHM6bH0pKSkpLG51bGwhPWUubW9kaWZpZXJzRGF0YS5hcnJvdyYmKGUuc3R5bGVzLmFycm93PU9iamVjdC5hc3NpZ24oe30sZS5zdHlsZXMuYXJyb3csZGUoT2JqZWN0LmFzc2lnbih7fSxjLHtvZmZzZXRzOmUubW9kaWZpZXJzRGF0YS5hcnJvdyxwb3NpdGlvbjoiYWJzb2x1dGUiLGFkYXB0aXZlOiExLHJvdW5kT2Zmc2V0czpsfSkpKSksZS5hdHRyaWJ1dGVzLnBvcHBlcj1PYmplY3QuYXNzaWduKHt9LGUuYXR0cmlidXRlcy5wb3BwZXIseyJkYXRhLXBvcHBlci1wbGFjZW1lbnQiOmUucGxhY2VtZW50fSl9LGRhdGE6e319O3ZhciBmZT17cGFzc2l2ZTohMH07Y29uc3QgcGU9e25hbWU6ImV2ZW50TGlzdGVuZXJzIixlbmFibGVkOiEwLHBoYXNlOiJ3cml0ZSIsZm46ZnVuY3Rpb24oKXt9LGVmZmVjdDpmdW5jdGlvbih0KXt2YXIgZT10LnN0YXRlLGk9dC5pbnN0YW5jZSxuPXQub3B0aW9ucyxzPW4uc2Nyb2xsLG89dm9pZCAwPT09c3x8cyxyPW4ucmVzaXplLGE9dm9pZCAwPT09cnx8cixsPVd0KGUuZWxlbWVudHMucG9wcGVyKSxjPVtdLmNvbmNhdChlLnNjcm9sbFBhcmVudHMucmVmZXJlbmNlLGUuc2Nyb2xsUGFyZW50cy5wb3BwZXIpO3JldHVybiBvJiZjLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixpLnVwZGF0ZSxmZSl9KSksYSYmbC5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGkudXBkYXRlLGZlKSxmdW5jdGlvbigpe28mJmMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLGkudXBkYXRlLGZlKX0pKSxhJiZsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsaS51cGRhdGUsZmUpfX0sZGF0YTp7fX07dmFyIG1lPXtsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQiLGJvdHRvbToidG9wIix0b3A6ImJvdHRvbSJ9O2Z1bmN0aW9uIGdlKHQpe3JldHVybiB0LnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLChmdW5jdGlvbih0KXtyZXR1cm4gbWVbdF19KSl9dmFyIF9lPXtzdGFydDoiZW5kIixlbmQ6InN0YXJ0In07ZnVuY3Rpb24gYmUodCl7cmV0dXJuIHQucmVwbGFjZSgvc3RhcnR8ZW5kL2csKGZ1bmN0aW9uKHQpe3JldHVybiBfZVt0XX0pKX1mdW5jdGlvbiB2ZSh0KXt2YXIgZT1XdCh0KTtyZXR1cm57c2Nyb2xsTGVmdDplLnBhZ2VYT2Zmc2V0LHNjcm9sbFRvcDplLnBhZ2VZT2Zmc2V0fX1mdW5jdGlvbiB5ZSh0KXtyZXR1cm4gVnQoR3QodCkpLmxlZnQrdmUodCkuc2Nyb2xsTGVmdH1mdW5jdGlvbiB3ZSh0KXt2YXIgZT1ZdCh0KSxpPWUub3ZlcmZsb3csbj1lLm92ZXJmbG93WCxzPWUub3ZlcmZsb3dZO3JldHVybi9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbi8udGVzdChpK3Mrbil9ZnVuY3Rpb24gRWUodCl7cmV0dXJuWyJodG1sIiwiYm9keSIsIiNkb2N1bWVudCJdLmluZGV4T2YoUnQodCkpPj0wP3Qub3duZXJEb2N1bWVudC5ib2R5Onp0KHQpJiZ3ZSh0KT90OkVlKFp0KHQpKX1mdW5jdGlvbiBBZSh0LGUpe3ZhciBpO3ZvaWQgMD09PWUmJihlPVtdKTt2YXIgbj1FZSh0KSxzPW49PT0obnVsbD09KGk9dC5vd25lckRvY3VtZW50KT92b2lkIDA6aS5ib2R5KSxvPVd0KG4pLHI9cz9bb10uY29uY2F0KG8udmlzdWFsVmlld3BvcnR8fFtdLHdlKG4pP246W10pOm4sYT1lLmNvbmNhdChyKTtyZXR1cm4gcz9hOmEuY29uY2F0KEFlKFp0KHIpKSl9ZnVuY3Rpb24gVGUodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sdCx7bGVmdDp0LngsdG9wOnQueSxyaWdodDp0LngrdC53aWR0aCxib3R0b206dC55K3QuaGVpZ2h0fSl9ZnVuY3Rpb24gT2UodCxlKXtyZXR1cm4gZT09PVR0P1RlKGZ1bmN0aW9uKHQpe3ZhciBlPVd0KHQpLGk9R3QodCksbj1lLnZpc3VhbFZpZXdwb3J0LHM9aS5jbGllbnRXaWR0aCxvPWkuY2xpZW50SGVpZ2h0LHI9MCxhPTA7cmV0dXJuIG4mJihzPW4ud2lkdGgsbz1uLmhlaWdodCwvXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfHwocj1uLm9mZnNldExlZnQsYT1uLm9mZnNldFRvcCkpLHt3aWR0aDpzLGhlaWdodDpvLHg6cit5ZSh0KSx5OmF9fSh0KSk6enQoZSk/ZnVuY3Rpb24odCl7dmFyIGU9VnQodCk7cmV0dXJuIGUudG9wPWUudG9wK3QuY2xpZW50VG9wLGUubGVmdD1lLmxlZnQrdC5jbGllbnRMZWZ0LGUuYm90dG9tPWUudG9wK3QuY2xpZW50SGVpZ2h0LGUucmlnaHQ9ZS5sZWZ0K3QuY2xpZW50V2lkdGgsZS53aWR0aD10LmNsaWVudFdpZHRoLGUuaGVpZ2h0PXQuY2xpZW50SGVpZ2h0LGUueD1lLmxlZnQsZS55PWUudG9wLGV9KGUpOlRlKGZ1bmN0aW9uKHQpe3ZhciBlLGk9R3QodCksbj12ZSh0KSxzPW51bGw9PShlPXQub3duZXJEb2N1bWVudCk/dm9pZCAwOmUuYm9keSxvPWllKGkuc2Nyb2xsV2lkdGgsaS5jbGllbnRXaWR0aCxzP3Muc2Nyb2xsV2lkdGg6MCxzP3MuY2xpZW50V2lkdGg6MCkscj1pZShpLnNjcm9sbEhlaWdodCxpLmNsaWVudEhlaWdodCxzP3Muc2Nyb2xsSGVpZ2h0OjAscz9zLmNsaWVudEhlaWdodDowKSxhPS1uLnNjcm9sbExlZnQreWUodCksbD0tbi5zY3JvbGxUb3A7cmV0dXJuInJ0bCI9PT1ZdChzfHxpKS5kaXJlY3Rpb24mJihhKz1pZShpLmNsaWVudFdpZHRoLHM/cy5jbGllbnRXaWR0aDowKS1vKSx7d2lkdGg6byxoZWlnaHQ6cix4OmEseTpsfX0oR3QodCkpKX1mdW5jdGlvbiBDZSh0KXt2YXIgZSxpPXQucmVmZXJlbmNlLG49dC5lbGVtZW50LHM9dC5wbGFjZW1lbnQsbz1zP1V0KHMpOm51bGwscj1zP2NlKHMpOm51bGwsYT1pLngraS53aWR0aC8yLW4ud2lkdGgvMixsPWkueStpLmhlaWdodC8yLW4uaGVpZ2h0LzI7c3dpdGNoKG8pe2Nhc2UgbXQ6ZT17eDphLHk6aS55LW4uaGVpZ2h0fTticmVhaztjYXNlIGd0OmU9e3g6YSx5OmkueStpLmhlaWdodH07YnJlYWs7Y2FzZSBfdDplPXt4OmkueCtpLndpZHRoLHk6bH07YnJlYWs7Y2FzZSBidDplPXt4OmkueC1uLndpZHRoLHk6bH07YnJlYWs7ZGVmYXVsdDplPXt4OmkueCx5OmkueX19dmFyIGM9bz9lZShvKTpudWxsO2lmKG51bGwhPWMpe3ZhciBoPSJ5Ij09PWM/ImhlaWdodCI6IndpZHRoIjtzd2l0Y2gocil7Y2FzZSB3dDplW2NdPWVbY10tKGlbaF0vMi1uW2hdLzIpO2JyZWFrO2Nhc2UgRXQ6ZVtjXT1lW2NdKyhpW2hdLzItbltoXS8yKX19cmV0dXJuIGV9ZnVuY3Rpb24ga2UodCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIGk9ZSxuPWkucGxhY2VtZW50LHM9dm9pZCAwPT09bj90LnBsYWNlbWVudDpuLG89aS5ib3VuZGFyeSxyPXZvaWQgMD09PW8/QXQ6byxhPWkucm9vdEJvdW5kYXJ5LGw9dm9pZCAwPT09YT9UdDphLGM9aS5lbGVtZW50Q29udGV4dCxoPXZvaWQgMD09PWM/T3Q6YyxkPWkuYWx0Qm91bmRhcnksdT12b2lkIDAhPT1kJiZkLGY9aS5wYWRkaW5nLHA9dm9pZCAwPT09Zj8wOmYsbT1yZSgibnVtYmVyIiE9dHlwZW9mIHA/cDphZShwLHl0KSksZz1oPT09T3Q/Q3Q6T3QsXz10LnJlY3RzLnBvcHBlcixiPXQuZWxlbWVudHNbdT9nOmhdLHY9ZnVuY3Rpb24odCxlLGkpe3ZhciBuPSJjbGlwcGluZ1BhcmVudHMiPT09ZT9mdW5jdGlvbih0KXt2YXIgZT1BZShadCh0KSksaT1bImFic29sdXRlIiwiZml4ZWQiXS5pbmRleE9mKFl0KHQpLnBvc2l0aW9uKT49MCYmenQodCk/dGUodCk6dDtyZXR1cm4gJHQoaSk/ZS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiAkdCh0KSYmWHQodCxpKSYmImJvZHkiIT09UnQodCl9KSk6W119KHQpOltdLmNvbmNhdChlKSxzPVtdLmNvbmNhdChuLFtpXSksbz1zWzBdLHI9cy5yZWR1Y2UoKGZ1bmN0aW9uKGUsaSl7dmFyIG49T2UodCxpKTtyZXR1cm4gZS50b3A9aWUobi50b3AsZS50b3ApLGUucmlnaHQ9bmUobi5yaWdodCxlLnJpZ2h0KSxlLmJvdHRvbT1uZShuLmJvdHRvbSxlLmJvdHRvbSksZS5sZWZ0PWllKG4ubGVmdCxlLmxlZnQpLGV9KSxPZSh0LG8pKTtyZXR1cm4gci53aWR0aD1yLnJpZ2h0LXIubGVmdCxyLmhlaWdodD1yLmJvdHRvbS1yLnRvcCxyLng9ci5sZWZ0LHIueT1yLnRvcCxyfSgkdChiKT9iOmIuY29udGV4dEVsZW1lbnR8fEd0KHQuZWxlbWVudHMucG9wcGVyKSxyLGwpLHk9VnQodC5lbGVtZW50cy5yZWZlcmVuY2UpLHc9Q2Uoe3JlZmVyZW5jZTp5LGVsZW1lbnQ6XyxzdHJhdGVneToiYWJzb2x1dGUiLHBsYWNlbWVudDpzfSksRT1UZShPYmplY3QuYXNzaWduKHt9LF8sdykpLEE9aD09PU90P0U6eSxUPXt0b3A6di50b3AtQS50b3ArbS50b3AsYm90dG9tOkEuYm90dG9tLXYuYm90dG9tK20uYm90dG9tLGxlZnQ6di5sZWZ0LUEubGVmdCttLmxlZnQscmlnaHQ6QS5yaWdodC12LnJpZ2h0K20ucmlnaHR9LE89dC5tb2RpZmllcnNEYXRhLm9mZnNldDtpZihoPT09T3QmJk8pe3ZhciBDPU9bc107T2JqZWN0LmtleXMoVCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9W190LGd0XS5pbmRleE9mKHQpPj0wPzE6LTEsaT1bbXQsZ3RdLmluZGV4T2YodCk+PTA/InkiOiJ4IjtUW3RdKz1DW2ldKmV9KSl9cmV0dXJuIFR9ZnVuY3Rpb24gTGUodCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIGk9ZSxuPWkucGxhY2VtZW50LHM9aS5ib3VuZGFyeSxvPWkucm9vdEJvdW5kYXJ5LHI9aS5wYWRkaW5nLGE9aS5mbGlwVmFyaWF0aW9ucyxsPWkuYWxsb3dlZEF1dG9QbGFjZW1lbnRzLGM9dm9pZCAwPT09bD9MdDpsLGg9Y2UobiksZD1oP2E/a3Q6a3QuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gY2UodCk9PT1ofSkpOnl0LHU9ZC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBjLmluZGV4T2YodCk+PTB9KSk7MD09PXUubGVuZ3RoJiYodT1kKTt2YXIgZj11LnJlZHVjZSgoZnVuY3Rpb24oZSxpKXtyZXR1cm4gZVtpXT1rZSh0LHtwbGFjZW1lbnQ6aSxib3VuZGFyeTpzLHJvb3RCb3VuZGFyeTpvLHBhZGRpbmc6cn0pW1V0KGkpXSxlfSkse30pO3JldHVybiBPYmplY3Qua2V5cyhmKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBmW3RdLWZbZV19KSl9Y29uc3QgeGU9e25hbWU6ImZsaXAiLGVuYWJsZWQ6ITAscGhhc2U6Im1haW4iLGZuOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGUsaT10Lm9wdGlvbnMsbj10Lm5hbWU7aWYoIWUubW9kaWZpZXJzRGF0YVtuXS5fc2tpcCl7Zm9yKHZhciBzPWkubWFpbkF4aXMsbz12b2lkIDA9PT1zfHxzLHI9aS5hbHRBeGlzLGE9dm9pZCAwPT09cnx8cixsPWkuZmFsbGJhY2tQbGFjZW1lbnRzLGM9aS5wYWRkaW5nLGg9aS5ib3VuZGFyeSxkPWkucm9vdEJvdW5kYXJ5LHU9aS5hbHRCb3VuZGFyeSxmPWkuZmxpcFZhcmlhdGlvbnMscD12b2lkIDA9PT1mfHxmLG09aS5hbGxvd2VkQXV0b1BsYWNlbWVudHMsZz1lLm9wdGlvbnMucGxhY2VtZW50LF89VXQoZyksYj1sfHwoXyE9PWcmJnA/ZnVuY3Rpb24odCl7aWYoVXQodCk9PT12dClyZXR1cm5bXTt2YXIgZT1nZSh0KTtyZXR1cm5bYmUodCksZSxiZShlKV19KGcpOltnZShnKV0pLHY9W2ddLmNvbmNhdChiKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIHQuY29uY2F0KFV0KGkpPT09dnQ/TGUoZSx7cGxhY2VtZW50OmksYm91bmRhcnk6aCxyb290Qm91bmRhcnk6ZCxwYWRkaW5nOmMsZmxpcFZhcmlhdGlvbnM6cCxhbGxvd2VkQXV0b1BsYWNlbWVudHM6bX0pOmkpfSksW10pLHk9ZS5yZWN0cy5yZWZlcmVuY2Usdz1lLnJlY3RzLnBvcHBlcixFPW5ldyBNYXAsQT0hMCxUPXZbMF0sTz0wO088di5sZW5ndGg7TysrKXt2YXIgQz12W09dLGs9VXQoQyksTD1jZShDKT09PXd0LHg9W210LGd0XS5pbmRleE9mKGspPj0wLEQ9eD8id2lkdGgiOiJoZWlnaHQiLFM9a2UoZSx7cGxhY2VtZW50OkMsYm91bmRhcnk6aCxyb290Qm91bmRhcnk6ZCxhbHRCb3VuZGFyeTp1LHBhZGRpbmc6Y30pLE49eD9MP190OmJ0Okw/Z3Q6bXQ7eVtEXT53W0RdJiYoTj1nZShOKSk7dmFyIEk9Z2UoTiksUD1bXTtpZihvJiZQLnB1c2goU1trXTw9MCksYSYmUC5wdXNoKFNbTl08PTAsU1tJXTw9MCksUC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkpe1Q9QyxBPSExO2JyZWFrfUUuc2V0KEMsUCl9aWYoQSlmb3IodmFyIGo9ZnVuY3Rpb24odCl7dmFyIGU9di5maW5kKChmdW5jdGlvbihlKXt2YXIgaT1FLmdldChlKTtpZihpKXJldHVybiBpLnNsaWNlKDAsdCkuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpfSkpO2lmKGUpcmV0dXJuIFQ9ZSwiYnJlYWsifSxNPXA/MzoxO00+MCYmImJyZWFrIiE9PWooTSk7TS0tKTtlLnBsYWNlbWVudCE9PVQmJihlLm1vZGlmaWVyc0RhdGFbbl0uX3NraXA9ITAsZS5wbGFjZW1lbnQ9VCxlLnJlc2V0PSEwKX19LHJlcXVpcmVzSWZFeGlzdHM6WyJvZmZzZXQiXSxkYXRhOntfc2tpcDohMX19O2Z1bmN0aW9uIERlKHQsZSxpKXtyZXR1cm4gdm9pZCAwPT09aSYmKGk9e3g6MCx5OjB9KSx7dG9wOnQudG9wLWUuaGVpZ2h0LWkueSxyaWdodDp0LnJpZ2h0LWUud2lkdGgraS54LGJvdHRvbTp0LmJvdHRvbS1lLmhlaWdodCtpLnksbGVmdDp0LmxlZnQtZS53aWR0aC1pLnh9fWZ1bmN0aW9uIFNlKHQpe3JldHVyblttdCxfdCxndCxidF0uc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV0+PTB9KSl9Y29uc3QgTmU9e25hbWU6ImhpZGUiLGVuYWJsZWQ6ITAscGhhc2U6Im1haW4iLHJlcXVpcmVzSWZFeGlzdHM6WyJwcmV2ZW50T3ZlcmZsb3ciXSxmbjpmdW5jdGlvbih0KXt2YXIgZT10LnN0YXRlLGk9dC5uYW1lLG49ZS5yZWN0cy5yZWZlcmVuY2Uscz1lLnJlY3RzLnBvcHBlcixvPWUubW9kaWZpZXJzRGF0YS5wcmV2ZW50T3ZlcmZsb3cscj1rZShlLHtlbGVtZW50Q29udGV4dDoicmVmZXJlbmNlIn0pLGE9a2UoZSx7YWx0Qm91bmRhcnk6ITB9KSxsPURlKHIsbiksYz1EZShhLHMsbyksaD1TZShsKSxkPVNlKGMpO2UubW9kaWZpZXJzRGF0YVtpXT17cmVmZXJlbmNlQ2xpcHBpbmdPZmZzZXRzOmwscG9wcGVyRXNjYXBlT2Zmc2V0czpjLGlzUmVmZXJlbmNlSGlkZGVuOmgsaGFzUG9wcGVyRXNjYXBlZDpkfSxlLmF0dHJpYnV0ZXMucG9wcGVyPU9iamVjdC5hc3NpZ24oe30sZS5hdHRyaWJ1dGVzLnBvcHBlcix7ImRhdGEtcG9wcGVyLXJlZmVyZW5jZS1oaWRkZW4iOmgsImRhdGEtcG9wcGVyLWVzY2FwZWQiOmR9KX19LEllPXtuYW1lOiJvZmZzZXQiLGVuYWJsZWQ6ITAscGhhc2U6Im1haW4iLHJlcXVpcmVzOlsicG9wcGVyT2Zmc2V0cyJdLGZuOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGUsaT10Lm9wdGlvbnMsbj10Lm5hbWUscz1pLm9mZnNldCxvPXZvaWQgMD09PXM/WzAsMF06cyxyPUx0LnJlZHVjZSgoZnVuY3Rpb24odCxpKXtyZXR1cm4gdFtpXT1mdW5jdGlvbih0LGUsaSl7dmFyIG49VXQodCkscz1bYnQsbXRdLmluZGV4T2Yobik+PTA/LTE6MSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBpP2koT2JqZWN0LmFzc2lnbih7fSxlLHtwbGFjZW1lbnQ6dH0pKTppLHI9b1swXSxhPW9bMV07cmV0dXJuIHI9cnx8MCxhPShhfHwwKSpzLFtidCxfdF0uaW5kZXhPZihuKT49MD97eDphLHk6cn06e3g6cix5OmF9fShpLGUucmVjdHMsbyksdH0pLHt9KSxhPXJbZS5wbGFjZW1lbnRdLGw9YS54LGM9YS55O251bGwhPWUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzJiYoZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMueCs9bCxlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy55Kz1jKSxlLm1vZGlmaWVyc0RhdGFbbl09cn19LFBlPXtuYW1lOiJwb3BwZXJPZmZzZXRzIixlbmFibGVkOiEwLHBoYXNlOiJyZWFkIixmbjpmdW5jdGlvbih0KXt2YXIgZT10LnN0YXRlLGk9dC5uYW1lO2UubW9kaWZpZXJzRGF0YVtpXT1DZSh7cmVmZXJlbmNlOmUucmVjdHMucmVmZXJlbmNlLGVsZW1lbnQ6ZS5yZWN0cy5wb3BwZXIsc3RyYXRlZ3k6ImFic29sdXRlIixwbGFjZW1lbnQ6ZS5wbGFjZW1lbnR9KX0sZGF0YTp7fX0samU9e25hbWU6InByZXZlbnRPdmVyZmxvdyIsZW5hYmxlZDohMCxwaGFzZToibWFpbiIsZm46ZnVuY3Rpb24odCl7dmFyIGU9dC5zdGF0ZSxpPXQub3B0aW9ucyxuPXQubmFtZSxzPWkubWFpbkF4aXMsbz12b2lkIDA9PT1zfHxzLHI9aS5hbHRBeGlzLGE9dm9pZCAwIT09ciYmcixsPWkuYm91bmRhcnksYz1pLnJvb3RCb3VuZGFyeSxoPWkuYWx0Qm91bmRhcnksZD1pLnBhZGRpbmcsdT1pLnRldGhlcixmPXZvaWQgMD09PXV8fHUscD1pLnRldGhlck9mZnNldCxtPXZvaWQgMD09PXA/MDpwLGc9a2UoZSx7Ym91bmRhcnk6bCxyb290Qm91bmRhcnk6YyxwYWRkaW5nOmQsYWx0Qm91bmRhcnk6aH0pLF89VXQoZS5wbGFjZW1lbnQpLGI9Y2UoZS5wbGFjZW1lbnQpLHY9IWIseT1lZShfKSx3PSJ4Ij09PXk/InkiOiJ4IixFPWUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLEE9ZS5yZWN0cy5yZWZlcmVuY2UsVD1lLnJlY3RzLnBvcHBlcixPPSJmdW5jdGlvbiI9PXR5cGVvZiBtP20oT2JqZWN0LmFzc2lnbih7fSxlLnJlY3RzLHtwbGFjZW1lbnQ6ZS5wbGFjZW1lbnR9KSk6bSxDPXt4OjAseTowfTtpZihFKXtpZihvfHxhKXt2YXIgaz0ieSI9PT15P210OmJ0LEw9InkiPT09eT9ndDpfdCx4PSJ5Ij09PXk/ImhlaWdodCI6IndpZHRoIixEPUVbeV0sUz1FW3ldK2dba10sTj1FW3ldLWdbTF0sST1mPy1UW3hdLzI6MCxQPWI9PT13dD9BW3hdOlRbeF0saj1iPT09d3Q/LVRbeF06LUFbeF0sTT1lLmVsZW1lbnRzLmFycm93LEg9ZiYmTT9LdChNKTp7d2lkdGg6MCxoZWlnaHQ6MH0sQj1lLm1vZGlmaWVyc0RhdGFbImFycm93I3BlcnNpc3RlbnQiXT9lLm1vZGlmaWVyc0RhdGFbImFycm93I3BlcnNpc3RlbnQiXS5wYWRkaW5nOnt0b3A6MCxyaWdodDowLGJvdHRvbTowLGxlZnQ6MH0sUj1CW2tdLFc9QltMXSwkPW9lKDAsQVt4XSxIW3hdKSx6PXY/QVt4XS8yLUktJC1SLU86UC0kLVItTyxxPXY/LUFbeF0vMitJKyQrVytPOmorJCtXK08sRj1lLmVsZW1lbnRzLmFycm93JiZ0ZShlLmVsZW1lbnRzLmFycm93KSxVPUY/InkiPT09eT9GLmNsaWVudFRvcHx8MDpGLmNsaWVudExlZnR8fDA6MCxWPWUubW9kaWZpZXJzRGF0YS5vZmZzZXQ/ZS5tb2RpZmllcnNEYXRhLm9mZnNldFtlLnBsYWNlbWVudF1beV06MCxLPUVbeV0rei1WLVUsWD1FW3ldK3EtVjtpZihvKXt2YXIgWT1vZShmP25lKFMsSyk6UyxELGY/aWUoTixYKTpOKTtFW3ldPVksQ1t5XT1ZLUR9aWYoYSl7dmFyIFE9IngiPT09eT9tdDpidCxHPSJ4Ij09PXk/Z3Q6X3QsWj1FW3ddLEo9WitnW1FdLHR0PVotZ1tHXSxldD1vZShmP25lKEosSyk6SixaLGY/aWUodHQsWCk6dHQpO0Vbd109ZXQsQ1t3XT1ldC1afX1lLm1vZGlmaWVyc0RhdGFbbl09Q319LHJlcXVpcmVzSWZFeGlzdHM6WyJvZmZzZXQiXX07ZnVuY3Rpb24gTWUodCxlLGkpe3ZvaWQgMD09PWkmJihpPSExKTt2YXIgbj16dChlKTt6dChlKSYmZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlLndpZHRoLHQub2Zmc2V0V2lkdGgsZS5oZWlnaHQsdC5vZmZzZXRIZWlnaHR9KGUpO3ZhciBzLG8scj1HdChlKSxhPVZ0KHQpLGw9e3Njcm9sbExlZnQ6MCxzY3JvbGxUb3A6MH0sYz17eDowLHk6MH07cmV0dXJuKG58fCFuJiYhaSkmJigoImJvZHkiIT09UnQoZSl8fHdlKHIpKSYmKGw9KHM9ZSkhPT1XdChzKSYmenQocyk/e3Njcm9sbExlZnQ6KG89cykuc2Nyb2xsTGVmdCxzY3JvbGxUb3A6by5zY3JvbGxUb3B9OnZlKHMpKSx6dChlKT8oKGM9VnQoZSkpLngrPWUuY2xpZW50TGVmdCxjLnkrPWUuY2xpZW50VG9wKTpyJiYoYy54PXllKHIpKSkse3g6YS5sZWZ0K2wuc2Nyb2xsTGVmdC1jLngseTphLnRvcCtsLnNjcm9sbFRvcC1jLnksd2lkdGg6YS53aWR0aCxoZWlnaHQ6YS5oZWlnaHR9fWZ1bmN0aW9uIEhlKHQpe3ZhciBlPW5ldyBNYXAsaT1uZXcgU2V0LG49W107ZnVuY3Rpb24gcyh0KXtpLmFkZCh0Lm5hbWUpLFtdLmNvbmNhdCh0LnJlcXVpcmVzfHxbXSx0LnJlcXVpcmVzSWZFeGlzdHN8fFtdKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighaS5oYXModCkpe3ZhciBuPWUuZ2V0KHQpO24mJnMobil9fSkpLG4ucHVzaCh0KX1yZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlLnNldCh0Lm5hbWUsdCl9KSksdC5mb3JFYWNoKChmdW5jdGlvbih0KXtpLmhhcyh0Lm5hbWUpfHxzKHQpfSkpLG59dmFyIEJlPXtwbGFjZW1lbnQ6ImJvdHRvbSIsbW9kaWZpZXJzOltdLHN0cmF0ZWd5OiJhYnNvbHV0ZSJ9O2Z1bmN0aW9uIFJlKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksaT0wO2k8dDtpKyspZVtpXT1hcmd1bWVudHNbaV07cmV0dXJuIWUuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuISh0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QpfSkpfWZ1bmN0aW9uIFdlKHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgZT10LGk9ZS5kZWZhdWx0TW9kaWZpZXJzLG49dm9pZCAwPT09aT9bXTppLHM9ZS5kZWZhdWx0T3B0aW9ucyxvPXZvaWQgMD09PXM/QmU6cztyZXR1cm4gZnVuY3Rpb24odCxlLGkpe3ZvaWQgMD09PWkmJihpPW8pO3ZhciBzLHIsYT17cGxhY2VtZW50OiJib3R0b20iLG9yZGVyZWRNb2RpZmllcnM6W10sb3B0aW9uczpPYmplY3QuYXNzaWduKHt9LEJlLG8pLG1vZGlmaWVyc0RhdGE6e30sZWxlbWVudHM6e3JlZmVyZW5jZTp0LHBvcHBlcjplfSxhdHRyaWJ1dGVzOnt9LHN0eWxlczp7fX0sbD1bXSxjPSExLGg9e3N0YXRlOmEsc2V0T3B0aW9uczpmdW5jdGlvbihpKXt2YXIgcz0iZnVuY3Rpb24iPT10eXBlb2YgaT9pKGEub3B0aW9ucyk6aTtkKCksYS5vcHRpb25zPU9iamVjdC5hc3NpZ24oe30sbyxhLm9wdGlvbnMscyksYS5zY3JvbGxQYXJlbnRzPXtyZWZlcmVuY2U6JHQodCk/QWUodCk6dC5jb250ZXh0RWxlbWVudD9BZSh0LmNvbnRleHRFbGVtZW50KTpbXSxwb3BwZXI6QWUoZSl9O3ZhciByLGMsdT1mdW5jdGlvbih0KXt2YXIgZT1IZSh0KTtyZXR1cm4gQnQucmVkdWNlKChmdW5jdGlvbih0LGkpe3JldHVybiB0LmNvbmNhdChlLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQucGhhc2U9PT1pfSkpKX0pLFtdKX0oKHI9W10uY29uY2F0KG4sYS5vcHRpb25zLm1vZGlmaWVycyksYz1yLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgaT10W2UubmFtZV07cmV0dXJuIHRbZS5uYW1lXT1pP09iamVjdC5hc3NpZ24oe30saSxlLHtvcHRpb25zOk9iamVjdC5hc3NpZ24oe30saS5vcHRpb25zLGUub3B0aW9ucyksZGF0YTpPYmplY3QuYXNzaWduKHt9LGkuZGF0YSxlLmRhdGEpfSk6ZSx0fSkse30pLE9iamVjdC5rZXlzKGMpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGNbdF19KSkpKTtyZXR1cm4gYS5vcmRlcmVkTW9kaWZpZXJzPXUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5lbmFibGVkfSkpLGEub3JkZXJlZE1vZGlmaWVycy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10Lm5hbWUsaT10Lm9wdGlvbnMsbj12b2lkIDA9PT1pP3t9Omkscz10LmVmZmVjdDtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcyl7dmFyIG89cyh7c3RhdGU6YSxuYW1lOmUsaW5zdGFuY2U6aCxvcHRpb25zOm59KTtsLnB1c2gob3x8ZnVuY3Rpb24oKXt9KX19KSksaC51cGRhdGUoKX0sZm9yY2VVcGRhdGU6ZnVuY3Rpb24oKXtpZighYyl7dmFyIHQ9YS5lbGVtZW50cyxlPXQucmVmZXJlbmNlLGk9dC5wb3BwZXI7aWYoUmUoZSxpKSl7YS5yZWN0cz17cmVmZXJlbmNlOk1lKGUsdGUoaSksImZpeGVkIj09PWEub3B0aW9ucy5zdHJhdGVneSkscG9wcGVyOkt0KGkpfSxhLnJlc2V0PSExLGEucGxhY2VtZW50PWEub3B0aW9ucy5wbGFjZW1lbnQsYS5vcmRlcmVkTW9kaWZpZXJzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBhLm1vZGlmaWVyc0RhdGFbdC5uYW1lXT1PYmplY3QuYXNzaWduKHt9LHQuZGF0YSl9KSk7Zm9yKHZhciBuPTA7bjxhLm9yZGVyZWRNb2RpZmllcnMubGVuZ3RoO24rKylpZighMCE9PWEucmVzZXQpe3ZhciBzPWEub3JkZXJlZE1vZGlmaWVyc1tuXSxvPXMuZm4scj1zLm9wdGlvbnMsbD12b2lkIDA9PT1yP3t9OnIsZD1zLm5hbWU7ImZ1bmN0aW9uIj09dHlwZW9mIG8mJihhPW8oe3N0YXRlOmEsb3B0aW9uczpsLG5hbWU6ZCxpbnN0YW5jZTpofSl8fGEpfWVsc2UgYS5yZXNldD0hMSxuPS0xfX19LHVwZGF0ZToocz1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7aC5mb3JjZVVwZGF0ZSgpLHQoYSl9KSl9LGZ1bmN0aW9uKCl7cmV0dXJuIHJ8fChyPW5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtQcm9taXNlLnJlc29sdmUoKS50aGVuKChmdW5jdGlvbigpe3I9dm9pZCAwLHQocygpKX0pKX0pKSkscn0pLGRlc3Ryb3k6ZnVuY3Rpb24oKXtkKCksYz0hMH19O2lmKCFSZSh0LGUpKXJldHVybiBoO2Z1bmN0aW9uIGQoKXtsLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KCl9KSksbD1bXX1yZXR1cm4gaC5zZXRPcHRpb25zKGkpLnRoZW4oKGZ1bmN0aW9uKHQpeyFjJiZpLm9uRmlyc3RVcGRhdGUmJmkub25GaXJzdFVwZGF0ZSh0KX0pKSxofX12YXIgJGU9V2UoKSx6ZT1XZSh7ZGVmYXVsdE1vZGlmaWVyczpbcGUsUGUsdWUsRnRdfSkscWU9V2Uoe2RlZmF1bHRNb2RpZmllcnM6W3BlLFBlLHVlLEZ0LEllLHhlLGplLGxlLE5lXX0pO2NvbnN0IEZlPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLHBvcHBlckdlbmVyYXRvcjpXZSxkZXRlY3RPdmVyZmxvdzprZSxjcmVhdGVQb3BwZXJCYXNlOiRlLGNyZWF0ZVBvcHBlcjpxZSxjcmVhdGVQb3BwZXJMaXRlOnplLHRvcDptdCxib3R0b206Z3QscmlnaHQ6X3QsbGVmdDpidCxhdXRvOnZ0LGJhc2VQbGFjZW1lbnRzOnl0LHN0YXJ0Ond0LGVuZDpFdCxjbGlwcGluZ1BhcmVudHM6QXQsdmlld3BvcnQ6VHQscG9wcGVyOk90LHJlZmVyZW5jZTpDdCx2YXJpYXRpb25QbGFjZW1lbnRzOmt0LHBsYWNlbWVudHM6THQsYmVmb3JlUmVhZDp4dCxyZWFkOkR0LGFmdGVyUmVhZDpTdCxiZWZvcmVNYWluOk50LG1haW46SXQsYWZ0ZXJNYWluOlB0LGJlZm9yZVdyaXRlOmp0LHdyaXRlOk10LGFmdGVyV3JpdGU6SHQsbW9kaWZpZXJQaGFzZXM6QnQsYXBwbHlTdHlsZXM6RnQsYXJyb3c6bGUsY29tcHV0ZVN0eWxlczp1ZSxldmVudExpc3RlbmVyczpwZSxmbGlwOnhlLGhpZGU6TmUsb2Zmc2V0OkllLHBvcHBlck9mZnNldHM6UGUscHJldmVudE92ZXJmbG93OmplfSksVWU9ImRyb3Bkb3duIixWZT0iRXNjYXBlIixLZT0iU3BhY2UiLFhlPSJBcnJvd1VwIixZZT0iQXJyb3dEb3duIixRZT1uZXcgUmVnRXhwKCJBcnJvd1VwfEFycm93RG93bnxFc2NhcGUiKSxHZT0iY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLFplPSJrZXlkb3duLmJzLmRyb3Bkb3duLmRhdGEtYXBpIixKZT0ic2hvdyIsdGk9J1tkYXRhLWJzLXRvZ2dsZT0iZHJvcGRvd24iXScsZWk9Ii5kcm9wZG93bi1tZW51IixpaT1tKCk/InRvcC1lbmQiOiJ0b3Atc3RhcnQiLG5pPW0oKT8idG9wLXN0YXJ0IjoidG9wLWVuZCIsc2k9bSgpPyJib3R0b20tZW5kIjoiYm90dG9tLXN0YXJ0IixvaT1tKCk/ImJvdHRvbS1zdGFydCI6ImJvdHRvbS1lbmQiLHJpPW0oKT8ibGVmdC1zdGFydCI6InJpZ2h0LXN0YXJ0IixhaT1tKCk/InJpZ2h0LXN0YXJ0IjoibGVmdC1zdGFydCIsbGk9e29mZnNldDpbMCwyXSxib3VuZGFyeToiY2xpcHBpbmdQYXJlbnRzIixyZWZlcmVuY2U6InRvZ2dsZSIsZGlzcGxheToiZHluYW1pYyIscG9wcGVyQ29uZmlnOm51bGwsYXV0b0Nsb3NlOiEwfSxjaT17b2Zmc2V0OiIoYXJyYXl8c3RyaW5nfGZ1bmN0aW9uKSIsYm91bmRhcnk6IihzdHJpbmd8ZWxlbWVudCkiLHJlZmVyZW5jZToiKHN0cmluZ3xlbGVtZW50fG9iamVjdCkiLGRpc3BsYXk6InN0cmluZyIscG9wcGVyQ29uZmlnOiIobnVsbHxvYmplY3R8ZnVuY3Rpb24pIixhdXRvQ2xvc2U6Iihib29sZWFufHN0cmluZykifTtjbGFzcyBoaSBleHRlbmRzIEJ7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0KSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX21lbnU9dGhpcy5fZ2V0TWVudUVsZW1lbnQoKSx0aGlzLl9pbk5hdmJhcj10aGlzLl9kZXRlY3ROYXZiYXIoKX1zdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gbGl9c3RhdGljIGdldCBEZWZhdWx0VHlwZSgpe3JldHVybiBjaX1zdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm4gVWV9dG9nZ2xlKCl7cmV0dXJuIHRoaXMuX2lzU2hvd24oKT90aGlzLmhpZGUoKTp0aGlzLnNob3coKX1zaG93KCl7aWYoYyh0aGlzLl9lbGVtZW50KXx8dGhpcy5faXNTaG93bih0aGlzLl9tZW51KSlyZXR1cm47Y29uc3QgdD17cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fTtpZihqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwic2hvdy5icy5kcm9wZG93biIsdCkuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3QgZT1oaS5nZXRQYXJlbnRGcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTt0aGlzLl9pbk5hdmJhcj9VLnNldERhdGFBdHRyaWJ1dGUodGhpcy5fbWVudSwicG9wcGVyIiwibm9uZSIpOnRoaXMuX2NyZWF0ZVBvcHBlcihlKSwib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWUuY2xvc2VzdCgiLm5hdmJhci1uYXYiKSYmW10uY29uY2F0KC4uLmRvY3VtZW50LmJvZHkuY2hpbGRyZW4pLmZvckVhY2goKHQ9Pmoub24odCwibW91c2VvdmVyIixkKSkpLHRoaXMuX2VsZW1lbnQuZm9jdXMoKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsITApLHRoaXMuX21lbnUuY2xhc3NMaXN0LmFkZChKZSksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKEplKSxqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwic2hvd24uYnMuZHJvcGRvd24iLHQpfWhpZGUoKXtpZihjKHRoaXMuX2VsZW1lbnQpfHwhdGhpcy5faXNTaG93bih0aGlzLl9tZW51KSlyZXR1cm47Y29uc3QgdD17cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fTt0aGlzLl9jb21wbGV0ZUhpZGUodCl9ZGlzcG9zZSgpe3RoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLmRlc3Ryb3koKSxzdXBlci5kaXNwb3NlKCl9dXBkYXRlKCl7dGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksdGhpcy5fcG9wcGVyJiZ0aGlzLl9wb3BwZXIudXBkYXRlKCl9X2NvbXBsZXRlSGlkZSh0KXtqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwiaGlkZS5icy5kcm9wZG93biIsdCkuZGVmYXVsdFByZXZlbnRlZHx8KCJvbnRvdWNoc3RhcnQiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZbXS5jb25jYXQoLi4uZG9jdW1lbnQuYm9keS5jaGlsZHJlbikuZm9yRWFjaCgodD0+ai5vZmYodCwibW91c2VvdmVyIixkKSkpLHRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9tZW51LmNsYXNzTGlzdC5yZW1vdmUoSmUpLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShKZSksdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLFUucmVtb3ZlRGF0YUF0dHJpYnV0ZSh0aGlzLl9tZW51LCJwb3BwZXIiKSxqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwiaGlkZGVuLmJzLmRyb3Bkb3duIix0KSl9X2dldENvbmZpZyh0KXtpZih0PXsuLi50aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsLi4uVS5nZXREYXRhQXR0cmlidXRlcyh0aGlzLl9lbGVtZW50KSwuLi50fSxhKFVlLHQsdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0VHlwZSksIm9iamVjdCI9PXR5cGVvZiB0LnJlZmVyZW5jZSYmIW8odC5yZWZlcmVuY2UpJiYiZnVuY3Rpb24iIT10eXBlb2YgdC5yZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXRocm93IG5ldyBUeXBlRXJyb3IoYCR7VWUudG9VcHBlckNhc2UoKX06IE9wdGlvbiAicmVmZXJlbmNlIiBwcm92aWRlZCB0eXBlICJvYmplY3QiIHdpdGhvdXQgYSByZXF1aXJlZCAiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiBtZXRob2QuYCk7cmV0dXJuIHR9X2NyZWF0ZVBvcHBlcih0KXtpZih2b2lkIDA9PT1GZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJCb290c3RyYXAncyBkcm9wZG93bnMgcmVxdWlyZSBQb3BwZXIgKGh0dHBzOi8vcG9wcGVyLmpzLm9yZykiKTtsZXQgZT10aGlzLl9lbGVtZW50OyJwYXJlbnQiPT09dGhpcy5fY29uZmlnLnJlZmVyZW5jZT9lPXQ6byh0aGlzLl9jb25maWcucmVmZXJlbmNlKT9lPXIodGhpcy5fY29uZmlnLnJlZmVyZW5jZSk6Im9iamVjdCI9PXR5cGVvZiB0aGlzLl9jb25maWcucmVmZXJlbmNlJiYoZT10aGlzLl9jb25maWcucmVmZXJlbmNlKTtjb25zdCBpPXRoaXMuX2dldFBvcHBlckNvbmZpZygpLG49aS5tb2RpZmllcnMuZmluZCgodD0+ImFwcGx5U3R5bGVzIj09PXQubmFtZSYmITE9PT10LmVuYWJsZWQpKTt0aGlzLl9wb3BwZXI9cWUoZSx0aGlzLl9tZW51LGkpLG4mJlUuc2V0RGF0YUF0dHJpYnV0ZSh0aGlzLl9tZW51LCJwb3BwZXIiLCJzdGF0aWMiKX1faXNTaG93bih0PXRoaXMuX2VsZW1lbnQpe3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucyhKZSl9X2dldE1lbnVFbGVtZW50KCl7cmV0dXJuIFYubmV4dCh0aGlzLl9lbGVtZW50LGVpKVswXX1fZ2V0UGxhY2VtZW50KCl7Y29uc3QgdD10aGlzLl9lbGVtZW50LnBhcmVudE5vZGU7aWYodC5jbGFzc0xpc3QuY29udGFpbnMoImRyb3BlbmQiKSlyZXR1cm4gcmk7aWYodC5jbGFzc0xpc3QuY29udGFpbnMoImRyb3BzdGFydCIpKXJldHVybiBhaTtjb25zdCBlPSJlbmQiPT09Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9tZW51KS5nZXRQcm9wZXJ0eVZhbHVlKCItLWJzLXBvc2l0aW9uIikudHJpbSgpO3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucygiZHJvcHVwIik/ZT9uaTppaTplP29pOnNpfV9kZXRlY3ROYXZiYXIoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2VsZW1lbnQuY2xvc2VzdCgiLm5hdmJhciIpfV9nZXRPZmZzZXQoKXtjb25zdHtvZmZzZXQ6dH09dGhpcy5fY29uZmlnO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90LnNwbGl0KCIsIikubWFwKCh0PT5OdW1iZXIucGFyc2VJbnQodCwxMCkpKToiZnVuY3Rpb24iPT10eXBlb2YgdD9lPT50KGUsdGhpcy5fZWxlbWVudCk6dH1fZ2V0UG9wcGVyQ29uZmlnKCl7Y29uc3QgdD17cGxhY2VtZW50OnRoaXMuX2dldFBsYWNlbWVudCgpLG1vZGlmaWVyczpbe25hbWU6InByZXZlbnRPdmVyZmxvdyIsb3B0aW9uczp7Ym91bmRhcnk6dGhpcy5fY29uZmlnLmJvdW5kYXJ5fX0se25hbWU6Im9mZnNldCIsb3B0aW9uczp7b2Zmc2V0OnRoaXMuX2dldE9mZnNldCgpfX1dfTtyZXR1cm4ic3RhdGljIj09PXRoaXMuX2NvbmZpZy5kaXNwbGF5JiYodC5tb2RpZmllcnM9W3tuYW1lOiJhcHBseVN0eWxlcyIsZW5hYmxlZDohMX1dKSx7Li4udCwuLi4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fY29uZmlnLnBvcHBlckNvbmZpZz90aGlzLl9jb25maWcucG9wcGVyQ29uZmlnKHQpOnRoaXMuX2NvbmZpZy5wb3BwZXJDb25maWd9fV9zZWxlY3RNZW51SXRlbSh7a2V5OnQsdGFyZ2V0OmV9KXtjb25zdCBpPVYuZmluZCgiLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06bm90KC5kaXNhYmxlZCk6bm90KDpkaXNhYmxlZCkiLHRoaXMuX21lbnUpLmZpbHRlcihsKTtpLmxlbmd0aCYmdihpLGUsdD09PVllLCFpLmluY2x1ZGVzKGUpKS5mb2N1cygpfXN0YXRpYyBqUXVlcnlJbnRlcmZhY2UodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtjb25zdCBlPWhpLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcyx0KTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKHZvaWQgMD09PWVbdF0pdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkICIke3R9ImApO2VbdF0oKX19KSl9c3RhdGljIGNsZWFyTWVudXModCl7aWYodCYmKDI9PT10LmJ1dHRvbnx8ImtleXVwIj09PXQudHlwZSYmIlRhYiIhPT10LmtleSkpcmV0dXJuO2NvbnN0IGU9Vi5maW5kKHRpKTtmb3IobGV0IGk9MCxuPWUubGVuZ3RoO2k8bjtpKyspe2NvbnN0IG49aGkuZ2V0SW5zdGFuY2UoZVtpXSk7aWYoIW58fCExPT09bi5fY29uZmlnLmF1dG9DbG9zZSljb250aW51ZTtpZighbi5faXNTaG93bigpKWNvbnRpbnVlO2NvbnN0IHM9e3JlbGF0ZWRUYXJnZXQ6bi5fZWxlbWVudH07aWYodCl7Y29uc3QgZT10LmNvbXBvc2VkUGF0aCgpLGk9ZS5pbmNsdWRlcyhuLl9tZW51KTtpZihlLmluY2x1ZGVzKG4uX2VsZW1lbnQpfHwiaW5zaWRlIj09PW4uX2NvbmZpZy5hdXRvQ2xvc2UmJiFpfHwib3V0c2lkZSI9PT1uLl9jb25maWcuYXV0b0Nsb3NlJiZpKWNvbnRpbnVlO2lmKG4uX21lbnUuY29udGFpbnModC50YXJnZXQpJiYoImtleXVwIj09PXQudHlwZSYmIlRhYiI9PT10LmtleXx8L2lucHV0fHNlbGVjdHxvcHRpb258dGV4dGFyZWF8Zm9ybS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSkpKWNvbnRpbnVlOyJjbGljayI9PT10LnR5cGUmJihzLmNsaWNrRXZlbnQ9dCl9bi5fY29tcGxldGVIaWRlKHMpfX1zdGF0aWMgZ2V0UGFyZW50RnJvbUVsZW1lbnQodCl7cmV0dXJuIG4odCl8fHQucGFyZW50Tm9kZX1zdGF0aWMgZGF0YUFwaUtleWRvd25IYW5kbGVyKHQpe2lmKC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSk/dC5rZXk9PT1LZXx8dC5rZXkhPT1WZSYmKHQua2V5IT09WWUmJnQua2V5IT09WGV8fHQudGFyZ2V0LmNsb3Nlc3QoZWkpKTohUWUudGVzdCh0LmtleSkpcmV0dXJuO2NvbnN0IGU9dGhpcy5jbGFzc0xpc3QuY29udGFpbnMoSmUpO2lmKCFlJiZ0LmtleT09PVZlKXJldHVybjtpZih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxjKHRoaXMpKXJldHVybjtjb25zdCBpPXRoaXMubWF0Y2hlcyh0aSk/dGhpczpWLnByZXYodGhpcyx0aSlbMF0sbj1oaS5nZXRPckNyZWF0ZUluc3RhbmNlKGkpO2lmKHQua2V5IT09VmUpcmV0dXJuIHQua2V5PT09WGV8fHQua2V5PT09WWU/KGV8fG4uc2hvdygpLHZvaWQgbi5fc2VsZWN0TWVudUl0ZW0odCkpOnZvaWQoZSYmdC5rZXkhPT1LZXx8aGkuY2xlYXJNZW51cygpKTtuLmhpZGUoKX19ai5vbihkb2N1bWVudCxaZSx0aSxoaS5kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLGoub24oZG9jdW1lbnQsWmUsZWksaGkuZGF0YUFwaUtleWRvd25IYW5kbGVyKSxqLm9uKGRvY3VtZW50LEdlLGhpLmNsZWFyTWVudXMpLGoub24oZG9jdW1lbnQsImtleXVwLmJzLmRyb3Bkb3duLmRhdGEtYXBpIixoaS5jbGVhck1lbnVzKSxqLm9uKGRvY3VtZW50LEdlLHRpLChmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksaGkuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzKS50b2dnbGUoKX0pKSxnKGhpKTtjb25zdCBkaT0iLmZpeGVkLXRvcCwgLmZpeGVkLWJvdHRvbSwgLmlzLWZpeGVkLCAuc3RpY2t5LXRvcCIsdWk9Ii5zdGlja3ktdG9wIjtjbGFzcyBmaXtjb25zdHJ1Y3Rvcigpe3RoaXMuX2VsZW1lbnQ9ZG9jdW1lbnQuYm9keX1nZXRXaWR0aCgpe2NvbnN0IHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO3JldHVybiBNYXRoLmFicyh3aW5kb3cuaW5uZXJXaWR0aC10KX1oaWRlKCl7Y29uc3QgdD10aGlzLmdldFdpZHRoKCk7dGhpcy5fZGlzYWJsZU92ZXJGbG93KCksdGhpcy5fc2V0RWxlbWVudEF0dHJpYnV0ZXModGhpcy5fZWxlbWVudCwicGFkZGluZ1JpZ2h0IiwoZT0+ZSt0KSksdGhpcy5fc2V0RWxlbWVudEF0dHJpYnV0ZXMoZGksInBhZGRpbmdSaWdodCIsKGU9PmUrdCkpLHRoaXMuX3NldEVsZW1lbnRBdHRyaWJ1dGVzKHVpLCJtYXJnaW5SaWdodCIsKGU9PmUtdCkpfV9kaXNhYmxlT3ZlckZsb3coKXt0aGlzLl9zYXZlSW5pdGlhbEF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50LCJvdmVyZmxvdyIpLHRoaXMuX2VsZW1lbnQuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiJ9X3NldEVsZW1lbnRBdHRyaWJ1dGVzKHQsZSxpKXtjb25zdCBuPXRoaXMuZ2V0V2lkdGgoKTt0aGlzLl9hcHBseU1hbmlwdWxhdGlvbkNhbGxiYWNrKHQsKHQ9PntpZih0IT09dGhpcy5fZWxlbWVudCYmd2luZG93LmlubmVyV2lkdGg+dC5jbGllbnRXaWR0aCtuKXJldHVybjt0aGlzLl9zYXZlSW5pdGlhbEF0dHJpYnV0ZSh0LGUpO2NvbnN0IHM9d2luZG93LmdldENvbXB1dGVkU3R5bGUodClbZV07dC5zdHlsZVtlXT1gJHtpKE51bWJlci5wYXJzZUZsb2F0KHMpKX1weGB9KSl9cmVzZXQoKXt0aGlzLl9yZXNldEVsZW1lbnRBdHRyaWJ1dGVzKHRoaXMuX2VsZW1lbnQsIm92ZXJmbG93IiksdGhpcy5fcmVzZXRFbGVtZW50QXR0cmlidXRlcyh0aGlzLl9lbGVtZW50LCJwYWRkaW5nUmlnaHQiKSx0aGlzLl9yZXNldEVsZW1lbnRBdHRyaWJ1dGVzKGRpLCJwYWRkaW5nUmlnaHQiKSx0aGlzLl9yZXNldEVsZW1lbnRBdHRyaWJ1dGVzKHVpLCJtYXJnaW5SaWdodCIpfV9zYXZlSW5pdGlhbEF0dHJpYnV0ZSh0LGUpe2NvbnN0IGk9dC5zdHlsZVtlXTtpJiZVLnNldERhdGFBdHRyaWJ1dGUodCxlLGkpfV9yZXNldEVsZW1lbnRBdHRyaWJ1dGVzKHQsZSl7dGhpcy5fYXBwbHlNYW5pcHVsYXRpb25DYWxsYmFjayh0LCh0PT57Y29uc3QgaT1VLmdldERhdGFBdHRyaWJ1dGUodCxlKTt2b2lkIDA9PT1pP3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoZSk6KFUucmVtb3ZlRGF0YUF0dHJpYnV0ZSh0LGUpLHQuc3R5bGVbZV09aSl9KSl9X2FwcGx5TWFuaXB1bGF0aW9uQ2FsbGJhY2sodCxlKXtvKHQpP2UodCk6Vi5maW5kKHQsdGhpcy5fZWxlbWVudCkuZm9yRWFjaChlKX1pc092ZXJmbG93aW5nKCl7cmV0dXJuIHRoaXMuZ2V0V2lkdGgoKT4wfX1jb25zdCBwaT17Y2xhc3NOYW1lOiJtb2RhbC1iYWNrZHJvcCIsaXNWaXNpYmxlOiEwLGlzQW5pbWF0ZWQ6ITEscm9vdEVsZW1lbnQ6ImJvZHkiLGNsaWNrQ2FsbGJhY2s6bnVsbH0sbWk9e2NsYXNzTmFtZToic3RyaW5nIixpc1Zpc2libGU6ImJvb2xlYW4iLGlzQW5pbWF0ZWQ6ImJvb2xlYW4iLHJvb3RFbGVtZW50OiIoZWxlbWVudHxzdHJpbmcpIixjbGlja0NhbGxiYWNrOiIoZnVuY3Rpb258bnVsbCkifSxnaT0ic2hvdyIsX2k9Im1vdXNlZG93bi5icy5iYWNrZHJvcCI7Y2xhc3MgYml7Y29uc3RydWN0b3IodCl7dGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyh0KSx0aGlzLl9pc0FwcGVuZGVkPSExLHRoaXMuX2VsZW1lbnQ9bnVsbH1zaG93KHQpe3RoaXMuX2NvbmZpZy5pc1Zpc2libGU/KHRoaXMuX2FwcGVuZCgpLHRoaXMuX2NvbmZpZy5pc0FuaW1hdGVkJiZ1KHRoaXMuX2dldEVsZW1lbnQoKSksdGhpcy5fZ2V0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoZ2kpLHRoaXMuX2VtdWxhdGVBbmltYXRpb24oKCgpPT57Xyh0KX0pKSk6Xyh0KX1oaWRlKHQpe3RoaXMuX2NvbmZpZy5pc1Zpc2libGU/KHRoaXMuX2dldEVsZW1lbnQoKS5jbGFzc0xpc3QucmVtb3ZlKGdpKSx0aGlzLl9lbXVsYXRlQW5pbWF0aW9uKCgoKT0+e3RoaXMuZGlzcG9zZSgpLF8odCl9KSkpOl8odCl9X2dldEVsZW1lbnQoKXtpZighdGhpcy5fZWxlbWVudCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT10aGlzLl9jb25maWcuY2xhc3NOYW1lLHRoaXMuX2NvbmZpZy5pc0FuaW1hdGVkJiZ0LmNsYXNzTGlzdC5hZGQoImZhZGUiKSx0aGlzLl9lbGVtZW50PXR9cmV0dXJuIHRoaXMuX2VsZW1lbnR9X2dldENvbmZpZyh0KXtyZXR1cm4odD17Li4ucGksLi4uIm9iamVjdCI9PXR5cGVvZiB0P3Q6e319KS5yb290RWxlbWVudD1yKHQucm9vdEVsZW1lbnQpLGEoImJhY2tkcm9wIix0LG1pKSx0fV9hcHBlbmQoKXt0aGlzLl9pc0FwcGVuZGVkfHwodGhpcy5fY29uZmlnLnJvb3RFbGVtZW50LmFwcGVuZCh0aGlzLl9nZXRFbGVtZW50KCkpLGoub24odGhpcy5fZ2V0RWxlbWVudCgpLF9pLCgoKT0+e18odGhpcy5fY29uZmlnLmNsaWNrQ2FsbGJhY2spfSkpLHRoaXMuX2lzQXBwZW5kZWQ9ITApfWRpc3Bvc2UoKXt0aGlzLl9pc0FwcGVuZGVkJiYoai5vZmYodGhpcy5fZWxlbWVudCxfaSksdGhpcy5fZWxlbWVudC5yZW1vdmUoKSx0aGlzLl9pc0FwcGVuZGVkPSExKX1fZW11bGF0ZUFuaW1hdGlvbih0KXtiKHQsdGhpcy5fZ2V0RWxlbWVudCgpLHRoaXMuX2NvbmZpZy5pc0FuaW1hdGVkKX19Y29uc3Qgdmk9e3RyYXBFbGVtZW50Om51bGwsYXV0b2ZvY3VzOiEwfSx5aT17dHJhcEVsZW1lbnQ6ImVsZW1lbnQiLGF1dG9mb2N1czoiYm9vbGVhbiJ9LHdpPSIuYnMuZm9jdXN0cmFwIixFaT0iYmFja3dhcmQiO2NsYXNzIEFpe2NvbnN0cnVjdG9yKHQpe3RoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcodCksdGhpcy5faXNBY3RpdmU9ITEsdGhpcy5fbGFzdFRhYk5hdkRpcmVjdGlvbj1udWxsfWFjdGl2YXRlKCl7Y29uc3R7dHJhcEVsZW1lbnQ6dCxhdXRvZm9jdXM6ZX09dGhpcy5fY29uZmlnO3RoaXMuX2lzQWN0aXZlfHwoZSYmdC5mb2N1cygpLGoub2ZmKGRvY3VtZW50LHdpKSxqLm9uKGRvY3VtZW50LCJmb2N1c2luLmJzLmZvY3VzdHJhcCIsKHQ9PnRoaXMuX2hhbmRsZUZvY3VzaW4odCkpKSxqLm9uKGRvY3VtZW50LCJrZXlkb3duLnRhYi5icy5mb2N1c3RyYXAiLCh0PT50aGlzLl9oYW5kbGVLZXlkb3duKHQpKSksdGhpcy5faXNBY3RpdmU9ITApfWRlYWN0aXZhdGUoKXt0aGlzLl9pc0FjdGl2ZSYmKHRoaXMuX2lzQWN0aXZlPSExLGoub2ZmKGRvY3VtZW50LHdpKSl9X2hhbmRsZUZvY3VzaW4odCl7Y29uc3R7dGFyZ2V0OmV9PXQse3RyYXBFbGVtZW50Oml9PXRoaXMuX2NvbmZpZztpZihlPT09ZG9jdW1lbnR8fGU9PT1pfHxpLmNvbnRhaW5zKGUpKXJldHVybjtjb25zdCBuPVYuZm9jdXNhYmxlQ2hpbGRyZW4oaSk7MD09PW4ubGVuZ3RoP2kuZm9jdXMoKTp0aGlzLl9sYXN0VGFiTmF2RGlyZWN0aW9uPT09RWk/bltuLmxlbmd0aC0xXS5mb2N1cygpOm5bMF0uZm9jdXMoKX1faGFuZGxlS2V5ZG93bih0KXsiVGFiIj09PXQua2V5JiYodGhpcy5fbGFzdFRhYk5hdkRpcmVjdGlvbj10LnNoaWZ0S2V5P0VpOiJmb3J3YXJkIil9X2dldENvbmZpZyh0KXtyZXR1cm4gdD17Li4udmksLi4uIm9iamVjdCI9PXR5cGVvZiB0P3Q6e319LGEoImZvY3VzdHJhcCIsdCx5aSksdH19Y29uc3QgVGk9Im1vZGFsIixPaT0iRXNjYXBlIixDaT17YmFja2Ryb3A6ITAsa2V5Ym9hcmQ6ITAsZm9jdXM6ITB9LGtpPXtiYWNrZHJvcDoiKGJvb2xlYW58c3RyaW5nKSIsa2V5Ym9hcmQ6ImJvb2xlYW4iLGZvY3VzOiJib29sZWFuIn0sTGk9ImhpZGRlbi5icy5tb2RhbCIseGk9InNob3cuYnMubW9kYWwiLERpPSJyZXNpemUuYnMubW9kYWwiLFNpPSJjbGljay5kaXNtaXNzLmJzLm1vZGFsIixOaT0ia2V5ZG93bi5kaXNtaXNzLmJzLm1vZGFsIixJaT0ibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiLFBpPSJtb2RhbC1vcGVuIixqaT0ic2hvdyIsTWk9Im1vZGFsLXN0YXRpYyI7Y2xhc3MgSGkgZXh0ZW5kcyBCe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCksdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9kaWFsb2c9Vi5maW5kT25lKCIubW9kYWwtZGlhbG9nIix0aGlzLl9lbGVtZW50KSx0aGlzLl9iYWNrZHJvcD10aGlzLl9pbml0aWFsaXplQmFja0Ryb3AoKSx0aGlzLl9mb2N1c3RyYXA9dGhpcy5faW5pdGlhbGl6ZUZvY3VzVHJhcCgpLHRoaXMuX2lzU2hvd249ITEsdGhpcy5faWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITEsdGhpcy5fc2Nyb2xsQmFyPW5ldyBmaX1zdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gQ2l9c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuIFRpfXRvZ2dsZSh0KXtyZXR1cm4gdGhpcy5faXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3codCl9c2hvdyh0KXt0aGlzLl9pc1Nob3dufHx0aGlzLl9pc1RyYW5zaXRpb25pbmd8fGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LHhpLHtyZWxhdGVkVGFyZ2V0OnR9KS5kZWZhdWx0UHJldmVudGVkfHwodGhpcy5faXNTaG93bj0hMCx0aGlzLl9pc0FuaW1hdGVkKCkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApLHRoaXMuX3Njcm9sbEJhci5oaWRlKCksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFBpKSx0aGlzLl9hZGp1c3REaWFsb2coKSx0aGlzLl9zZXRFc2NhcGVFdmVudCgpLHRoaXMuX3NldFJlc2l6ZUV2ZW50KCksai5vbih0aGlzLl9kaWFsb2csSWksKCgpPT57ai5vbmUodGhpcy5fZWxlbWVudCwibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsIiwodD0+e3QudGFyZ2V0PT09dGhpcy5fZWxlbWVudCYmKHRoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITApfSkpfSkpLHRoaXMuX3Nob3dCYWNrZHJvcCgoKCk9PnRoaXMuX3Nob3dFbGVtZW50KHQpKSkpfWhpZGUoKXtpZighdGhpcy5faXNTaG93bnx8dGhpcy5faXNUcmFuc2l0aW9uaW5nKXJldHVybjtpZihqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwiaGlkZS5icy5tb2RhbCIpLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO3RoaXMuX2lzU2hvd249ITE7Y29uc3QgdD10aGlzLl9pc0FuaW1hdGVkKCk7dCYmKHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMCksdGhpcy5fc2V0RXNjYXBlRXZlbnQoKSx0aGlzLl9zZXRSZXNpemVFdmVudCgpLHRoaXMuX2ZvY3VzdHJhcC5kZWFjdGl2YXRlKCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGppKSxqLm9mZih0aGlzLl9lbGVtZW50LFNpKSxqLm9mZih0aGlzLl9kaWFsb2csSWkpLHRoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT50aGlzLl9oaWRlTW9kYWwoKSksdGhpcy5fZWxlbWVudCx0KX1kaXNwb3NlKCl7W3dpbmRvdyx0aGlzLl9kaWFsb2ddLmZvckVhY2goKHQ9Pmoub2ZmKHQsIi5icy5tb2RhbCIpKSksdGhpcy5fYmFja2Ryb3AuZGlzcG9zZSgpLHRoaXMuX2ZvY3VzdHJhcC5kZWFjdGl2YXRlKCksc3VwZXIuZGlzcG9zZSgpfWhhbmRsZVVwZGF0ZSgpe3RoaXMuX2FkanVzdERpYWxvZygpfV9pbml0aWFsaXplQmFja0Ryb3AoKXtyZXR1cm4gbmV3IGJpKHtpc1Zpc2libGU6Qm9vbGVhbih0aGlzLl9jb25maWcuYmFja2Ryb3ApLGlzQW5pbWF0ZWQ6dGhpcy5faXNBbmltYXRlZCgpfSl9X2luaXRpYWxpemVGb2N1c1RyYXAoKXtyZXR1cm4gbmV3IEFpKHt0cmFwRWxlbWVudDp0aGlzLl9lbGVtZW50fSl9X2dldENvbmZpZyh0KXtyZXR1cm4gdD17Li4uQ2ksLi4uVS5nZXREYXRhQXR0cmlidXRlcyh0aGlzLl9lbGVtZW50KSwuLi4ib2JqZWN0Ij09dHlwZW9mIHQ/dDp7fX0sYShUaSx0LGtpKSx0fV9zaG93RWxlbWVudCh0KXtjb25zdCBlPXRoaXMuX2lzQW5pbWF0ZWQoKSxpPVYuZmluZE9uZSgiLm1vZGFsLWJvZHkiLHRoaXMuX2RpYWxvZyk7dGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERXx8ZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiksdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbW9kYWwiLCEwKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgicm9sZSIsImRpYWxvZyIpLHRoaXMuX2VsZW1lbnQuc2Nyb2xsVG9wPTAsaSYmKGkuc2Nyb2xsVG9wPTApLGUmJnUodGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKGppKSx0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+e3RoaXMuX2NvbmZpZy5mb2N1cyYmdGhpcy5fZm9jdXN0cmFwLmFjdGl2YXRlKCksdGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LCJzaG93bi5icy5tb2RhbCIse3JlbGF0ZWRUYXJnZXQ6dH0pfSksdGhpcy5fZGlhbG9nLGUpfV9zZXRFc2NhcGVFdmVudCgpe3RoaXMuX2lzU2hvd24/ai5vbih0aGlzLl9lbGVtZW50LE5pLCh0PT57dGhpcy5fY29uZmlnLmtleWJvYXJkJiZ0LmtleT09PU9pPyh0LnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWRlKCkpOnRoaXMuX2NvbmZpZy5rZXlib2FyZHx8dC5rZXkhPT1PaXx8dGhpcy5fdHJpZ2dlckJhY2tkcm9wVHJhbnNpdGlvbigpfSkpOmoub2ZmKHRoaXMuX2VsZW1lbnQsTmkpfV9zZXRSZXNpemVFdmVudCgpe3RoaXMuX2lzU2hvd24/ai5vbih3aW5kb3csRGksKCgpPT50aGlzLl9hZGp1c3REaWFsb2coKSkpOmoub2ZmKHdpbmRvdyxEaSl9X2hpZGVNb2RhbCgpe3RoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMCksdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbW9kYWwiKSx0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgicm9sZSIpLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9iYWNrZHJvcC5oaWRlKCgoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShQaSksdGhpcy5fcmVzZXRBZGp1c3RtZW50cygpLHRoaXMuX3Njcm9sbEJhci5yZXNldCgpLGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LExpKX0pKX1fc2hvd0JhY2tkcm9wKHQpe2oub24odGhpcy5fZWxlbWVudCxTaSwodD0+e3RoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s/dGhpcy5faWdub3JlQmFja2Ryb3BDbGljaz0hMTp0LnRhcmdldD09PXQuY3VycmVudFRhcmdldCYmKCEwPT09dGhpcy5fY29uZmlnLmJhY2tkcm9wP3RoaXMuaGlkZSgpOiJzdGF0aWMiPT09dGhpcy5fY29uZmlnLmJhY2tkcm9wJiZ0aGlzLl90cmlnZ2VyQmFja2Ryb3BUcmFuc2l0aW9uKCkpfSkpLHRoaXMuX2JhY2tkcm9wLnNob3codCl9X2lzQW5pbWF0ZWQoKXtyZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImZhZGUiKX1fdHJpZ2dlckJhY2tkcm9wVHJhbnNpdGlvbigpe2lmKGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LCJoaWRlUHJldmVudGVkLmJzLm1vZGFsIikuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3R7Y2xhc3NMaXN0OnQsc2Nyb2xsSGVpZ2h0OmUsc3R5bGU6aX09dGhpcy5fZWxlbWVudCxuPWU+ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDshbiYmImhpZGRlbiI9PT1pLm92ZXJmbG93WXx8dC5jb250YWlucyhNaSl8fChufHwoaS5vdmVyZmxvd1k9ImhpZGRlbiIpLHQuYWRkKE1pKSx0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+e3QucmVtb3ZlKE1pKSxufHx0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+e2kub3ZlcmZsb3dZPSIifSksdGhpcy5fZGlhbG9nKX0pLHRoaXMuX2RpYWxvZyksdGhpcy5fZWxlbWVudC5mb2N1cygpKX1fYWRqdXN0RGlhbG9nKCl7Y29uc3QgdD10aGlzLl9lbGVtZW50LnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGU9dGhpcy5fc2Nyb2xsQmFyLmdldFdpZHRoKCksaT1lPjA7KCFpJiZ0JiYhbSgpfHxpJiYhdCYmbSgpKSYmKHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQ9YCR7ZX1weGApLChpJiYhdCYmIW0oKXx8IWkmJnQmJm0oKSkmJih0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodD1gJHtlfXB4YCl9X3Jlc2V0QWRqdXN0bWVudHMoKXt0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0PSIiLHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0PSIifXN0YXRpYyBqUXVlcnlJbnRlcmZhY2UodCxlKXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGk9SGkuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLHQpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYodm9pZCAwPT09aVt0XSl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgIiR7dH0iYCk7aVt0XShlKX19KSl9fWoub24oZG9jdW1lbnQsImNsaWNrLmJzLm1vZGFsLmRhdGEtYXBpIiwnW2RhdGEtYnMtdG9nZ2xlPSJtb2RhbCJdJywoZnVuY3Rpb24odCl7Y29uc3QgZT1uKHRoaXMpO1siQSIsIkFSRUEiXS5pbmNsdWRlcyh0aGlzLnRhZ05hbWUpJiZ0LnByZXZlbnREZWZhdWx0KCksai5vbmUoZSx4aSwodD0+e3QuZGVmYXVsdFByZXZlbnRlZHx8ai5vbmUoZSxMaSwoKCk9PntsKHRoaXMpJiZ0aGlzLmZvY3VzKCl9KSl9KSk7Y29uc3QgaT1WLmZpbmRPbmUoIi5tb2RhbC5zaG93Iik7aSYmSGkuZ2V0SW5zdGFuY2UoaSkuaGlkZSgpLEhpLmdldE9yQ3JlYXRlSW5zdGFuY2UoZSkudG9nZ2xlKHRoaXMpfSkpLFIoSGkpLGcoSGkpO2NvbnN0IEJpPSJvZmZjYW52YXMiLFJpPXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxzY3JvbGw6ITF9LFdpPXtiYWNrZHJvcDoiYm9vbGVhbiIsa2V5Ym9hcmQ6ImJvb2xlYW4iLHNjcm9sbDoiYm9vbGVhbiJ9LCRpPSJzaG93Iix6aT0iLm9mZmNhbnZhcy5zaG93IixxaT0iaGlkZGVuLmJzLm9mZmNhbnZhcyI7Y2xhc3MgRmkgZXh0ZW5kcyBCe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCksdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9pc1Nob3duPSExLHRoaXMuX2JhY2tkcm9wPXRoaXMuX2luaXRpYWxpemVCYWNrRHJvcCgpLHRoaXMuX2ZvY3VzdHJhcD10aGlzLl9pbml0aWFsaXplRm9jdXNUcmFwKCksdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX1zdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm4gQml9c3RhdGljIGdldCBEZWZhdWx0KCl7cmV0dXJuIFJpfXRvZ2dsZSh0KXtyZXR1cm4gdGhpcy5faXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3codCl9c2hvdyh0KXt0aGlzLl9pc1Nob3dufHxqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwic2hvdy5icy5vZmZjYW52YXMiLHtyZWxhdGVkVGFyZ2V0OnR9KS5kZWZhdWx0UHJldmVudGVkfHwodGhpcy5faXNTaG93bj0hMCx0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiLHRoaXMuX2JhY2tkcm9wLnNob3coKSx0aGlzLl9jb25maWcuc2Nyb2xsfHwobmV3IGZpKS5oaWRlKCksdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiksdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbW9kYWwiLCEwKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgicm9sZSIsImRpYWxvZyIpLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgkaSksdGhpcy5fcXVldWVDYWxsYmFjaygoKCk9Pnt0aGlzLl9jb25maWcuc2Nyb2xsfHx0aGlzLl9mb2N1c3RyYXAuYWN0aXZhdGUoKSxqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwic2hvd24uYnMub2ZmY2FudmFzIix7cmVsYXRlZFRhcmdldDp0fSl9KSx0aGlzLl9lbGVtZW50LCEwKSl9aGlkZSgpe3RoaXMuX2lzU2hvd24mJihqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwiaGlkZS5icy5vZmZjYW52YXMiKS5kZWZhdWx0UHJldmVudGVkfHwodGhpcy5fZm9jdXN0cmFwLmRlYWN0aXZhdGUoKSx0aGlzLl9lbGVtZW50LmJsdXIoKSx0aGlzLl9pc1Nob3duPSExLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgkaSksdGhpcy5fYmFja2Ryb3AuaGlkZSgpLHRoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMCksdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbW9kYWwiKSx0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgicm9sZSIpLHRoaXMuX2VsZW1lbnQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIix0aGlzLl9jb25maWcuc2Nyb2xsfHwobmV3IGZpKS5yZXNldCgpLGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LHFpKX0pLHRoaXMuX2VsZW1lbnQsITApKSl9ZGlzcG9zZSgpe3RoaXMuX2JhY2tkcm9wLmRpc3Bvc2UoKSx0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpLHN1cGVyLmRpc3Bvc2UoKX1fZ2V0Q29uZmlnKHQpe3JldHVybiB0PXsuLi5SaSwuLi5VLmdldERhdGFBdHRyaWJ1dGVzKHRoaXMuX2VsZW1lbnQpLC4uLiJvYmplY3QiPT10eXBlb2YgdD90Ont9fSxhKEJpLHQsV2kpLHR9X2luaXRpYWxpemVCYWNrRHJvcCgpe3JldHVybiBuZXcgYmkoe2NsYXNzTmFtZToib2ZmY2FudmFzLWJhY2tkcm9wIixpc1Zpc2libGU6dGhpcy5fY29uZmlnLmJhY2tkcm9wLGlzQW5pbWF0ZWQ6ITAscm9vdEVsZW1lbnQ6dGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLGNsaWNrQ2FsbGJhY2s6KCk9PnRoaXMuaGlkZSgpfSl9X2luaXRpYWxpemVGb2N1c1RyYXAoKXtyZXR1cm4gbmV3IEFpKHt0cmFwRWxlbWVudDp0aGlzLl9lbGVtZW50fSl9X2FkZEV2ZW50TGlzdGVuZXJzKCl7ai5vbih0aGlzLl9lbGVtZW50LCJrZXlkb3duLmRpc21pc3MuYnMub2ZmY2FudmFzIiwodD0+e3RoaXMuX2NvbmZpZy5rZXlib2FyZCYmIkVzY2FwZSI9PT10LmtleSYmdGhpcy5oaWRlKCl9KSl9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9RmkuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLHQpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYodm9pZCAwPT09ZVt0XXx8dC5zdGFydHNXaXRoKCJfIil8fCJjb25zdHJ1Y3RvciI9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCAiJHt0fSJgKTtlW3RdKHRoaXMpfX0pKX19ai5vbihkb2N1bWVudCwiY2xpY2suYnMub2ZmY2FudmFzLmRhdGEtYXBpIiwnW2RhdGEtYnMtdG9nZ2xlPSJvZmZjYW52YXMiXScsKGZ1bmN0aW9uKHQpe2NvbnN0IGU9bih0aGlzKTtpZihbIkEiLCJBUkVBIl0uaW5jbHVkZXModGhpcy50YWdOYW1lKSYmdC5wcmV2ZW50RGVmYXVsdCgpLGModGhpcykpcmV0dXJuO2oub25lKGUscWksKCgpPT57bCh0aGlzKSYmdGhpcy5mb2N1cygpfSkpO2NvbnN0IGk9Vi5maW5kT25lKHppKTtpJiZpIT09ZSYmRmkuZ2V0SW5zdGFuY2UoaSkuaGlkZSgpLEZpLmdldE9yQ3JlYXRlSW5zdGFuY2UoZSkudG9nZ2xlKHRoaXMpfSkpLGoub24od2luZG93LCJsb2FkLmJzLm9mZmNhbnZhcy5kYXRhLWFwaSIsKCgpPT5WLmZpbmQoemkpLmZvckVhY2goKHQ9PkZpLmdldE9yQ3JlYXRlSW5zdGFuY2UodCkuc2hvdygpKSkpKSxSKEZpKSxnKEZpKTtjb25zdCBVaT1uZXcgU2V0KFsiYmFja2dyb3VuZCIsImNpdGUiLCJocmVmIiwiaXRlbXR5cGUiLCJsb25nZGVzYyIsInBvc3RlciIsInNyYyIsInhsaW5rOmhyZWYiXSksVmk9L14oPzooPzpodHRwcz98bWFpbHRvfGZ0cHx0ZWx8ZmlsZXxzbXMpOnxbXiMmLzo/XSooPzpbIy8/XXwkKSkvaSxLaT0vXmRhdGE6KD86aW1hZ2VcLyg/OmJtcHxnaWZ8anBlZ3xqcGd8cG5nfHRpZmZ8d2VicCl8dmlkZW9cLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtKXxhdWRpb1wvKD86bXAzfG9nYXxvZ2d8b3B1cykpO2Jhc2U2NCxbXGQrL2Etel0rPSokL2ksWGk9KHQsZSk9Pntjb25zdCBpPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihlLmluY2x1ZGVzKGkpKXJldHVybiFVaS5oYXMoaSl8fEJvb2xlYW4oVmkudGVzdCh0Lm5vZGVWYWx1ZSl8fEtpLnRlc3QodC5ub2RlVmFsdWUpKTtjb25zdCBuPWUuZmlsdGVyKCh0PT50IGluc3RhbmNlb2YgUmVnRXhwKSk7Zm9yKGxldCB0PTAsZT1uLmxlbmd0aDt0PGU7dCsrKWlmKG5bdF0udGVzdChpKSlyZXR1cm4hMDtyZXR1cm4hMX07ZnVuY3Rpb24gWWkodCxlLGkpe2lmKCF0Lmxlbmd0aClyZXR1cm4gdDtpZihpJiYiZnVuY3Rpb24iPT10eXBlb2YgaSlyZXR1cm4gaSh0KTtjb25zdCBuPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKHQsInRleHQvaHRtbCIpLHM9W10uY29uY2F0KC4uLm4uYm9keS5xdWVyeVNlbGVjdG9yQWxsKCIqIikpO2ZvcihsZXQgdD0wLGk9cy5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1zW3RdLG49aS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCFPYmplY3Qua2V5cyhlKS5pbmNsdWRlcyhuKSl7aS5yZW1vdmUoKTtjb250aW51ZX1jb25zdCBvPVtdLmNvbmNhdCguLi5pLmF0dHJpYnV0ZXMpLHI9W10uY29uY2F0KGVbIioiXXx8W10sZVtuXXx8W10pO28uZm9yRWFjaCgodD0+e1hpKHQscil8fGkucmVtb3ZlQXR0cmlidXRlKHQubm9kZU5hbWUpfSkpfXJldHVybiBuLmJvZHkuaW5uZXJIVE1MfWNvbnN0IFFpPSJ0b29sdGlwIixHaT1uZXcgU2V0KFsic2FuaXRpemUiLCJhbGxvd0xpc3QiLCJzYW5pdGl6ZUZuIl0pLFppPXthbmltYXRpb246ImJvb2xlYW4iLHRlbXBsYXRlOiJzdHJpbmciLHRpdGxlOiIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pIix0cmlnZ2VyOiJzdHJpbmciLGRlbGF5OiIobnVtYmVyfG9iamVjdCkiLGh0bWw6ImJvb2xlYW4iLHNlbGVjdG9yOiIoc3RyaW5nfGJvb2xlYW4pIixwbGFjZW1lbnQ6IihzdHJpbmd8ZnVuY3Rpb24pIixvZmZzZXQ6IihhcnJheXxzdHJpbmd8ZnVuY3Rpb24pIixjb250YWluZXI6IihzdHJpbmd8ZWxlbWVudHxib29sZWFuKSIsZmFsbGJhY2tQbGFjZW1lbnRzOiJhcnJheSIsYm91bmRhcnk6IihzdHJpbmd8ZWxlbWVudCkiLGN1c3RvbUNsYXNzOiIoc3RyaW5nfGZ1bmN0aW9uKSIsc2FuaXRpemU6ImJvb2xlYW4iLHNhbml0aXplRm46IihudWxsfGZ1bmN0aW9uKSIsYWxsb3dMaXN0OiJvYmplY3QiLHBvcHBlckNvbmZpZzoiKG51bGx8b2JqZWN0fGZ1bmN0aW9uKSJ9LEppPXtBVVRPOiJhdXRvIixUT1A6InRvcCIsUklHSFQ6bSgpPyJsZWZ0IjoicmlnaHQiLEJPVFRPTToiYm90dG9tIixMRUZUOm0oKT8icmlnaHQiOiJsZWZ0In0sdG49e2FuaW1hdGlvbjohMCx0ZW1wbGF0ZTonPGRpdiBjbGFzcz0idG9vbHRpcCIgcm9sZT0idG9vbHRpcCI+PGRpdiBjbGFzcz0idG9vbHRpcC1hcnJvdyI+PC9kaXY+PGRpdiBjbGFzcz0idG9vbHRpcC1pbm5lciI+PC9kaXY+PC9kaXY+Jyx0cmlnZ2VyOiJob3ZlciBmb2N1cyIsdGl0bGU6IiIsZGVsYXk6MCxodG1sOiExLHNlbGVjdG9yOiExLHBsYWNlbWVudDoidG9wIixvZmZzZXQ6WzAsMF0sY29udGFpbmVyOiExLGZhbGxiYWNrUGxhY2VtZW50czpbInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCJdLGJvdW5kYXJ5OiJjbGlwcGluZ1BhcmVudHMiLGN1c3RvbUNsYXNzOiIiLHNhbml0aXplOiEwLHNhbml0aXplRm46bnVsbCxhbGxvd0xpc3Q6eyIqIjpbImNsYXNzIiwiZGlyIiwiaWQiLCJsYW5nIiwicm9sZSIsL15hcmlhLVtcdy1dKiQvaV0sYTpbInRhcmdldCIsImhyZWYiLCJ0aXRsZSIsInJlbCJdLGFyZWE6W10sYjpbXSxicjpbXSxjb2w6W10sY29kZTpbXSxkaXY6W10sZW06W10saHI6W10saDE6W10saDI6W10saDM6W10saDQ6W10saDU6W10saDY6W10saTpbXSxpbWc6WyJzcmMiLCJzcmNzZXQiLCJhbHQiLCJ0aXRsZSIsIndpZHRoIiwiaGVpZ2h0Il0sbGk6W10sb2w6W10scDpbXSxwcmU6W10sczpbXSxzbWFsbDpbXSxzcGFuOltdLHN1YjpbXSxzdXA6W10sc3Ryb25nOltdLHU6W10sdWw6W119LHBvcHBlckNvbmZpZzpudWxsfSxlbj17SElERToiaGlkZS5icy50b29sdGlwIixISURERU46ImhpZGRlbi5icy50b29sdGlwIixTSE9XOiJzaG93LmJzLnRvb2x0aXAiLFNIT1dOOiJzaG93bi5icy50b29sdGlwIixJTlNFUlRFRDoiaW5zZXJ0ZWQuYnMudG9vbHRpcCIsQ0xJQ0s6ImNsaWNrLmJzLnRvb2x0aXAiLEZPQ1VTSU46ImZvY3VzaW4uYnMudG9vbHRpcCIsRk9DVVNPVVQ6ImZvY3Vzb3V0LmJzLnRvb2x0aXAiLE1PVVNFRU5URVI6Im1vdXNlZW50ZXIuYnMudG9vbHRpcCIsTU9VU0VMRUFWRToibW91c2VsZWF2ZS5icy50b29sdGlwIn0sbm49ImZhZGUiLHNuPSJzaG93Iixvbj0ic2hvdyIscm49Im91dCIsYW49Ii50b29sdGlwLWlubmVyIixsbj0iLm1vZGFsIixjbj0iaGlkZS5icy5tb2RhbCIsaG49ImhvdmVyIixkbj0iZm9jdXMiO2NsYXNzIHVuIGV4dGVuZHMgQntjb25zdHJ1Y3Rvcih0LGUpe2lmKHZvaWQgMD09PUZlKXRocm93IG5ldyBUeXBlRXJyb3IoIkJvb3RzdHJhcCdzIHRvb2x0aXBzIHJlcXVpcmUgUG9wcGVyIChodHRwczovL3BvcHBlci5qcy5vcmcpIik7c3VwZXIodCksdGhpcy5faXNFbmFibGVkPSEwLHRoaXMuX3RpbWVvdXQ9MCx0aGlzLl9ob3ZlclN0YXRlPSIiLHRoaXMuX2FjdGl2ZVRyaWdnZXI9e30sdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLnRpcD1udWxsLHRoaXMuX3NldExpc3RlbmVycygpfXN0YXRpYyBnZXQgRGVmYXVsdCgpe3JldHVybiB0bn1zdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm4gUWl9c3RhdGljIGdldCBFdmVudCgpe3JldHVybiBlbn1zdGF0aWMgZ2V0IERlZmF1bHRUeXBlKCl7cmV0dXJuIFppfWVuYWJsZSgpe3RoaXMuX2lzRW5hYmxlZD0hMH1kaXNhYmxlKCl7dGhpcy5faXNFbmFibGVkPSExfXRvZ2dsZUVuYWJsZWQoKXt0aGlzLl9pc0VuYWJsZWQ9IXRoaXMuX2lzRW5hYmxlZH10b2dnbGUodCl7aWYodGhpcy5faXNFbmFibGVkKWlmKHQpe2NvbnN0IGU9dGhpcy5faW5pdGlhbGl6ZU9uRGVsZWdhdGVkVGFyZ2V0KHQpO2UuX2FjdGl2ZVRyaWdnZXIuY2xpY2s9IWUuX2FjdGl2ZVRyaWdnZXIuY2xpY2ssZS5faXNXaXRoQWN0aXZlVHJpZ2dlcigpP2UuX2VudGVyKG51bGwsZSk6ZS5fbGVhdmUobnVsbCxlKX1lbHNle2lmKHRoaXMuZ2V0VGlwRWxlbWVudCgpLmNsYXNzTGlzdC5jb250YWlucyhzbikpcmV0dXJuIHZvaWQgdGhpcy5fbGVhdmUobnVsbCx0aGlzKTt0aGlzLl9lbnRlcihudWxsLHRoaXMpfX1kaXNwb3NlKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLGoub2ZmKHRoaXMuX2VsZW1lbnQuY2xvc2VzdChsbiksY24sdGhpcy5faGlkZU1vZGFsSGFuZGxlciksdGhpcy50aXAmJnRoaXMudGlwLnJlbW92ZSgpLHRoaXMuX2Rpc3Bvc2VQb3BwZXIoKSxzdXBlci5kaXNwb3NlKCl9c2hvdygpe2lmKCJub25lIj09PXRoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheSl0aHJvdyBuZXcgRXJyb3IoIlBsZWFzZSB1c2Ugc2hvdyBvbiB2aXNpYmxlIGVsZW1lbnRzIik7aWYoIXRoaXMuaXNXaXRoQ29udGVudCgpfHwhdGhpcy5faXNFbmFibGVkKXJldHVybjtjb25zdCB0PWoudHJpZ2dlcih0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuRXZlbnQuU0hPVyksZT1oKHRoaXMuX2VsZW1lbnQpLGk9bnVsbD09PWU/dGhpcy5fZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb250YWlucyh0aGlzLl9lbGVtZW50KTplLmNvbnRhaW5zKHRoaXMuX2VsZW1lbnQpO2lmKHQuZGVmYXVsdFByZXZlbnRlZHx8IWkpcmV0dXJuOyJ0b29sdGlwIj09PXRoaXMuY29uc3RydWN0b3IuTkFNRSYmdGhpcy50aXAmJnRoaXMuZ2V0VGl0bGUoKSE9PXRoaXMudGlwLnF1ZXJ5U2VsZWN0b3IoYW4pLmlubmVySFRNTCYmKHRoaXMuX2Rpc3Bvc2VQb3BwZXIoKSx0aGlzLnRpcC5yZW1vdmUoKSx0aGlzLnRpcD1udWxsKTtjb25zdCBuPXRoaXMuZ2V0VGlwRWxlbWVudCgpLHM9KHQ9Pntkb3t0Kz1NYXRoLmZsb29yKDFlNipNYXRoLnJhbmRvbSgpKX13aGlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KSk7cmV0dXJuIHR9KSh0aGlzLmNvbnN0cnVjdG9yLk5BTUUpO24uc2V0QXR0cmlidXRlKCJpZCIscyksdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtZGVzY3JpYmVkYnkiLHMpLHRoaXMuX2NvbmZpZy5hbmltYXRpb24mJm4uY2xhc3NMaXN0LmFkZChubik7Y29uc3Qgbz0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fY29uZmlnLnBsYWNlbWVudD90aGlzLl9jb25maWcucGxhY2VtZW50LmNhbGwodGhpcyxuLHRoaXMuX2VsZW1lbnQpOnRoaXMuX2NvbmZpZy5wbGFjZW1lbnQscj10aGlzLl9nZXRBdHRhY2htZW50KG8pO3RoaXMuX2FkZEF0dGFjaG1lbnRDbGFzcyhyKTtjb25zdHtjb250YWluZXI6YX09dGhpcy5fY29uZmlnO0guc2V0KG4sdGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSx0aGlzKSx0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zKHRoaXMudGlwKXx8KGEuYXBwZW5kKG4pLGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuRXZlbnQuSU5TRVJURUQpKSx0aGlzLl9wb3BwZXI/dGhpcy5fcG9wcGVyLnVwZGF0ZSgpOnRoaXMuX3BvcHBlcj1xZSh0aGlzLl9lbGVtZW50LG4sdGhpcy5fZ2V0UG9wcGVyQ29uZmlnKHIpKSxuLmNsYXNzTGlzdC5hZGQoc24pO2NvbnN0IGw9dGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24odGhpcy5fY29uZmlnLmN1c3RvbUNsYXNzKTtsJiZuLmNsYXNzTGlzdC5hZGQoLi4ubC5zcGxpdCgiICIpKSwib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmW10uY29uY2F0KC4uLmRvY3VtZW50LmJvZHkuY2hpbGRyZW4pLmZvckVhY2goKHQ9PntqLm9uKHQsIm1vdXNlb3ZlciIsZCl9KSk7Y29uc3QgYz10aGlzLnRpcC5jbGFzc0xpc3QuY29udGFpbnMobm4pO3RoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57Y29uc3QgdD10aGlzLl9ob3ZlclN0YXRlO3RoaXMuX2hvdmVyU3RhdGU9bnVsbCxqLnRyaWdnZXIodGhpcy5fZWxlbWVudCx0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LlNIT1dOKSx0PT09cm4mJnRoaXMuX2xlYXZlKG51bGwsdGhpcyl9KSx0aGlzLnRpcCxjKX1oaWRlKCl7aWYoIXRoaXMuX3BvcHBlcilyZXR1cm47Y29uc3QgdD10aGlzLmdldFRpcEVsZW1lbnQoKTtpZihqLnRyaWdnZXIodGhpcy5fZWxlbWVudCx0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LkhJREUpLmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuO3QuY2xhc3NMaXN0LnJlbW92ZShzbiksIm9udG91Y2hzdGFydCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJltdLmNvbmNhdCguLi5kb2N1bWVudC5ib2R5LmNoaWxkcmVuKS5mb3JFYWNoKCh0PT5qLm9mZih0LCJtb3VzZW92ZXIiLGQpKSksdGhpcy5fYWN0aXZlVHJpZ2dlci5jbGljaz0hMSx0aGlzLl9hY3RpdmVUcmlnZ2VyLmZvY3VzPSExLHRoaXMuX2FjdGl2ZVRyaWdnZXIuaG92ZXI9ITE7Y29uc3QgZT10aGlzLnRpcC5jbGFzc0xpc3QuY29udGFpbnMobm4pO3RoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57dGhpcy5faXNXaXRoQWN0aXZlVHJpZ2dlcigpfHwodGhpcy5faG92ZXJTdGF0ZSE9PW9uJiZ0LnJlbW92ZSgpLHRoaXMuX2NsZWFuVGlwQ2xhc3MoKSx0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIpLGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuRXZlbnQuSElEREVOKSx0aGlzLl9kaXNwb3NlUG9wcGVyKCkpfSksdGhpcy50aXAsZSksdGhpcy5faG92ZXJTdGF0ZT0iIn11cGRhdGUoKXtudWxsIT09dGhpcy5fcG9wcGVyJiZ0aGlzLl9wb3BwZXIudXBkYXRlKCl9aXNXaXRoQ29udGVudCgpe3JldHVybiBCb29sZWFuKHRoaXMuZ2V0VGl0bGUoKSl9Z2V0VGlwRWxlbWVudCgpe2lmKHRoaXMudGlwKXJldHVybiB0aGlzLnRpcDtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaW5uZXJIVE1MPXRoaXMuX2NvbmZpZy50ZW1wbGF0ZTtjb25zdCBlPXQuY2hpbGRyZW5bMF07cmV0dXJuIHRoaXMuc2V0Q29udGVudChlKSxlLmNsYXNzTGlzdC5yZW1vdmUobm4sc24pLHRoaXMudGlwPWUsdGhpcy50aXB9c2V0Q29udGVudCh0KXt0aGlzLl9zYW5pdGl6ZUFuZFNldENvbnRlbnQodCx0aGlzLmdldFRpdGxlKCksYW4pfV9zYW5pdGl6ZUFuZFNldENvbnRlbnQodCxlLGkpe2NvbnN0IG49Vi5maW5kT25lKGksdCk7ZXx8IW4/dGhpcy5zZXRFbGVtZW50Q29udGVudChuLGUpOm4ucmVtb3ZlKCl9c2V0RWxlbWVudENvbnRlbnQodCxlKXtpZihudWxsIT09dClyZXR1cm4gbyhlKT8oZT1yKGUpLHZvaWQodGhpcy5fY29uZmlnLmh0bWw/ZS5wYXJlbnROb2RlIT09dCYmKHQuaW5uZXJIVE1MPSIiLHQuYXBwZW5kKGUpKTp0LnRleHRDb250ZW50PWUudGV4dENvbnRlbnQpKTp2b2lkKHRoaXMuX2NvbmZpZy5odG1sPyh0aGlzLl9jb25maWcuc2FuaXRpemUmJihlPVlpKGUsdGhpcy5fY29uZmlnLmFsbG93TGlzdCx0aGlzLl9jb25maWcuc2FuaXRpemVGbikpLHQuaW5uZXJIVE1MPWUpOnQudGV4dENvbnRlbnQ9ZSl9Z2V0VGl0bGUoKXtjb25zdCB0PXRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWJzLW9yaWdpbmFsLXRpdGxlIil8fHRoaXMuX2NvbmZpZy50aXRsZTtyZXR1cm4gdGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24odCl9dXBkYXRlQXR0YWNobWVudCh0KXtyZXR1cm4icmlnaHQiPT09dD8iZW5kIjoibGVmdCI9PT10PyJzdGFydCI6dH1faW5pdGlhbGl6ZU9uRGVsZWdhdGVkVGFyZ2V0KHQsZSl7cmV0dXJuIGV8fHRoaXMuY29uc3RydWN0b3IuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0LmRlbGVnYXRlVGFyZ2V0LHRoaXMuX2dldERlbGVnYXRlQ29uZmlnKCkpfV9nZXRPZmZzZXQoKXtjb25zdHtvZmZzZXQ6dH09dGhpcy5fY29uZmlnO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90LnNwbGl0KCIsIikubWFwKCh0PT5OdW1iZXIucGFyc2VJbnQodCwxMCkpKToiZnVuY3Rpb24iPT10eXBlb2YgdD9lPT50KGUsdGhpcy5fZWxlbWVudCk6dH1fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dC5jYWxsKHRoaXMuX2VsZW1lbnQpOnR9X2dldFBvcHBlckNvbmZpZyh0KXtjb25zdCBlPXtwbGFjZW1lbnQ6dCxtb2RpZmllcnM6W3tuYW1lOiJmbGlwIixvcHRpb25zOntmYWxsYmFja1BsYWNlbWVudHM6dGhpcy5fY29uZmlnLmZhbGxiYWNrUGxhY2VtZW50c319LHtuYW1lOiJvZmZzZXQiLG9wdGlvbnM6e29mZnNldDp0aGlzLl9nZXRPZmZzZXQoKX19LHtuYW1lOiJwcmV2ZW50T3ZlcmZsb3ciLG9wdGlvbnM6e2JvdW5kYXJ5OnRoaXMuX2NvbmZpZy5ib3VuZGFyeX19LHtuYW1lOiJhcnJvdyIsb3B0aW9uczp7ZWxlbWVudDpgLiR7dGhpcy5jb25zdHJ1Y3Rvci5OQU1FfS1hcnJvd2B9fSx7bmFtZToib25DaGFuZ2UiLGVuYWJsZWQ6ITAscGhhc2U6ImFmdGVyV3JpdGUiLGZuOnQ9PnRoaXMuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZSh0KX1dLG9uRmlyc3RVcGRhdGU6dD0+e3Qub3B0aW9ucy5wbGFjZW1lbnQhPT10LnBsYWNlbWVudCYmdGhpcy5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlKHQpfX07cmV0dXJuey4uLmUsLi4uImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX2NvbmZpZy5wb3BwZXJDb25maWc/dGhpcy5fY29uZmlnLnBvcHBlckNvbmZpZyhlKTp0aGlzLl9jb25maWcucG9wcGVyQ29uZmlnfX1fYWRkQXR0YWNobWVudENsYXNzKHQpe3RoaXMuZ2V0VGlwRWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoYCR7dGhpcy5fZ2V0QmFzaWNDbGFzc1ByZWZpeCgpfS0ke3RoaXMudXBkYXRlQXR0YWNobWVudCh0KX1gKX1fZ2V0QXR0YWNobWVudCh0KXtyZXR1cm4gSmlbdC50b1VwcGVyQ2FzZSgpXX1fc2V0TGlzdGVuZXJzKCl7dGhpcy5fY29uZmlnLnRyaWdnZXIuc3BsaXQoIiAiKS5mb3JFYWNoKCh0PT57aWYoImNsaWNrIj09PXQpai5vbih0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuRXZlbnQuQ0xJQ0ssdGhpcy5fY29uZmlnLnNlbGVjdG9yLCh0PT50aGlzLnRvZ2dsZSh0KSkpO2Vsc2UgaWYoIm1hbnVhbCIhPT10KXtjb25zdCBlPXQ9PT1obj90aGlzLmNvbnN0cnVjdG9yLkV2ZW50Lk1PVVNFRU5URVI6dGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5GT0NVU0lOLGk9dD09PWhuP3RoaXMuY29uc3RydWN0b3IuRXZlbnQuTU9VU0VMRUFWRTp0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LkZPQ1VTT1VUO2oub24odGhpcy5fZWxlbWVudCxlLHRoaXMuX2NvbmZpZy5zZWxlY3RvciwodD0+dGhpcy5fZW50ZXIodCkpKSxqLm9uKHRoaXMuX2VsZW1lbnQsaSx0aGlzLl9jb25maWcuc2VsZWN0b3IsKHQ9PnRoaXMuX2xlYXZlKHQpKSl9fSkpLHRoaXMuX2hpZGVNb2RhbEhhbmRsZXI9KCk9Pnt0aGlzLl9lbGVtZW50JiZ0aGlzLmhpZGUoKX0sai5vbih0aGlzLl9lbGVtZW50LmNsb3Nlc3QobG4pLGNuLHRoaXMuX2hpZGVNb2RhbEhhbmRsZXIpLHRoaXMuX2NvbmZpZy5zZWxlY3Rvcj90aGlzLl9jb25maWc9ey4uLnRoaXMuX2NvbmZpZyx0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifTp0aGlzLl9maXhUaXRsZSgpfV9maXhUaXRsZSgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudC5nZXRBdHRyaWJ1dGUoInRpdGxlIiksZT10eXBlb2YgdGhpcy5fZWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtYnMtb3JpZ2luYWwtdGl0bGUiKTsodHx8InN0cmluZyIhPT1lKSYmKHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLWJzLW9yaWdpbmFsLXRpdGxlIix0fHwiIiksIXR8fHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIil8fHRoaXMuX2VsZW1lbnQudGV4dENvbnRlbnR8fHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0KSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgidGl0bGUiLCIiKSl9X2VudGVyKHQsZSl7ZT10aGlzLl9pbml0aWFsaXplT25EZWxlZ2F0ZWRUYXJnZXQodCxlKSx0JiYoZS5fYWN0aXZlVHJpZ2dlclsiZm9jdXNpbiI9PT10LnR5cGU/ZG46aG5dPSEwKSxlLmdldFRpcEVsZW1lbnQoKS5jbGFzc0xpc3QuY29udGFpbnMoc24pfHxlLl9ob3ZlclN0YXRlPT09b24/ZS5faG92ZXJTdGF0ZT1vbjooY2xlYXJUaW1lb3V0KGUuX3RpbWVvdXQpLGUuX2hvdmVyU3RhdGU9b24sZS5fY29uZmlnLmRlbGF5JiZlLl9jb25maWcuZGVsYXkuc2hvdz9lLl90aW1lb3V0PXNldFRpbWVvdXQoKCgpPT57ZS5faG92ZXJTdGF0ZT09PW9uJiZlLnNob3coKX0pLGUuX2NvbmZpZy5kZWxheS5zaG93KTplLnNob3coKSl9X2xlYXZlKHQsZSl7ZT10aGlzLl9pbml0aWFsaXplT25EZWxlZ2F0ZWRUYXJnZXQodCxlKSx0JiYoZS5fYWN0aXZlVHJpZ2dlclsiZm9jdXNvdXQiPT09dC50eXBlP2RuOmhuXT1lLl9lbGVtZW50LmNvbnRhaW5zKHQucmVsYXRlZFRhcmdldCkpLGUuX2lzV2l0aEFjdGl2ZVRyaWdnZXIoKXx8KGNsZWFyVGltZW91dChlLl90aW1lb3V0KSxlLl9ob3ZlclN0YXRlPXJuLGUuX2NvbmZpZy5kZWxheSYmZS5fY29uZmlnLmRlbGF5LmhpZGU/ZS5fdGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e2UuX2hvdmVyU3RhdGU9PT1ybiYmZS5oaWRlKCl9KSxlLl9jb25maWcuZGVsYXkuaGlkZSk6ZS5oaWRlKCkpfV9pc1dpdGhBY3RpdmVUcmlnZ2VyKCl7Zm9yKGNvbnN0IHQgaW4gdGhpcy5fYWN0aXZlVHJpZ2dlcilpZih0aGlzLl9hY3RpdmVUcmlnZ2VyW3RdKXJldHVybiEwO3JldHVybiExfV9nZXRDb25maWcodCl7Y29uc3QgZT1VLmdldERhdGFBdHRyaWJ1dGVzKHRoaXMuX2VsZW1lbnQpO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT57R2kuaGFzKHQpJiZkZWxldGUgZVt0XX0pKSwodD17Li4udGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0LC4uLmUsLi4uIm9iamVjdCI9PXR5cGVvZiB0JiZ0P3Q6e319KS5jb250YWluZXI9ITE9PT10LmNvbnRhaW5lcj9kb2N1bWVudC5ib2R5OnIodC5jb250YWluZXIpLCJudW1iZXIiPT10eXBlb2YgdC5kZWxheSYmKHQuZGVsYXk9e3Nob3c6dC5kZWxheSxoaWRlOnQuZGVsYXl9KSwibnVtYmVyIj09dHlwZW9mIHQudGl0bGUmJih0LnRpdGxlPXQudGl0bGUudG9TdHJpbmcoKSksIm51bWJlciI9PXR5cGVvZiB0LmNvbnRlbnQmJih0LmNvbnRlbnQ9dC5jb250ZW50LnRvU3RyaW5nKCkpLGEoUWksdCx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRUeXBlKSx0LnNhbml0aXplJiYodC50ZW1wbGF0ZT1ZaSh0LnRlbXBsYXRlLHQuYWxsb3dMaXN0LHQuc2FuaXRpemVGbikpLHR9X2dldERlbGVnYXRlQ29uZmlnKCl7Y29uc3QgdD17fTtmb3IoY29uc3QgZSBpbiB0aGlzLl9jb25maWcpdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0W2VdIT09dGhpcy5fY29uZmlnW2VdJiYodFtlXT10aGlzLl9jb25maWdbZV0pO3JldHVybiB0fV9jbGVhblRpcENsYXNzKCl7Y29uc3QgdD10aGlzLmdldFRpcEVsZW1lbnQoKSxlPW5ldyBSZWdFeHAoYChefFxccykke3RoaXMuX2dldEJhc2ljQ2xhc3NQcmVmaXgoKX1cXFMrYCwiZyIpLGk9dC5nZXRBdHRyaWJ1dGUoImNsYXNzIikubWF0Y2goZSk7bnVsbCE9PWkmJmkubGVuZ3RoPjAmJmkubWFwKCh0PT50LnRyaW0oKSkpLmZvckVhY2goKGU9PnQuY2xhc3NMaXN0LnJlbW92ZShlKSkpfV9nZXRCYXNpY0NsYXNzUHJlZml4KCl7cmV0dXJuImJzLXRvb2x0aXAifV9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2UodCl7Y29uc3R7c3RhdGU6ZX09dDtlJiYodGhpcy50aXA9ZS5lbGVtZW50cy5wb3BwZXIsdGhpcy5fY2xlYW5UaXBDbGFzcygpLHRoaXMuX2FkZEF0dGFjaG1lbnRDbGFzcyh0aGlzLl9nZXRBdHRhY2htZW50KGUucGxhY2VtZW50KSkpfV9kaXNwb3NlUG9wcGVyKCl7dGhpcy5fcG9wcGVyJiYodGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCl9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9dW4uZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLHQpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYodm9pZCAwPT09ZVt0XSl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgIiR7dH0iYCk7ZVt0XSgpfX0pKX19Zyh1bik7Y29uc3QgZm49ey4uLnVuLkRlZmF1bHQscGxhY2VtZW50OiJyaWdodCIsb2Zmc2V0OlswLDhdLHRyaWdnZXI6ImNsaWNrIixjb250ZW50OiIiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJwb3BvdmVyIiByb2xlPSJ0b29sdGlwIj48ZGl2IGNsYXNzPSJwb3BvdmVyLWFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItaGVhZGVyIj48L2gzPjxkaXYgY2xhc3M9InBvcG92ZXItYm9keSI+PC9kaXY+PC9kaXY+J30scG49ey4uLnVuLkRlZmF1bHRUeXBlLGNvbnRlbnQ6IihzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbikifSxtbj17SElERToiaGlkZS5icy5wb3BvdmVyIixISURERU46ImhpZGRlbi5icy5wb3BvdmVyIixTSE9XOiJzaG93LmJzLnBvcG92ZXIiLFNIT1dOOiJzaG93bi5icy5wb3BvdmVyIixJTlNFUlRFRDoiaW5zZXJ0ZWQuYnMucG9wb3ZlciIsQ0xJQ0s6ImNsaWNrLmJzLnBvcG92ZXIiLEZPQ1VTSU46ImZvY3VzaW4uYnMucG9wb3ZlciIsRk9DVVNPVVQ6ImZvY3Vzb3V0LmJzLnBvcG92ZXIiLE1PVVNFRU5URVI6Im1vdXNlZW50ZXIuYnMucG9wb3ZlciIsTU9VU0VMRUFWRToibW91c2VsZWF2ZS5icy5wb3BvdmVyIn07Y2xhc3MgZ24gZXh0ZW5kcyB1bntzdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gZm59c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuInBvcG92ZXIifXN0YXRpYyBnZXQgRXZlbnQoKXtyZXR1cm4gbW59c3RhdGljIGdldCBEZWZhdWx0VHlwZSgpe3JldHVybiBwbn1pc1dpdGhDb250ZW50KCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKXx8dGhpcy5fZ2V0Q29udGVudCgpfXNldENvbnRlbnQodCl7dGhpcy5fc2FuaXRpemVBbmRTZXRDb250ZW50KHQsdGhpcy5nZXRUaXRsZSgpLCIucG9wb3Zlci1oZWFkZXIiKSx0aGlzLl9zYW5pdGl6ZUFuZFNldENvbnRlbnQodCx0aGlzLl9nZXRDb250ZW50KCksIi5wb3BvdmVyLWJvZHkiKX1fZ2V0Q29udGVudCgpe3JldHVybiB0aGlzLl9yZXNvbHZlUG9zc2libGVGdW5jdGlvbih0aGlzLl9jb25maWcuY29udGVudCl9X2dldEJhc2ljQ2xhc3NQcmVmaXgoKXtyZXR1cm4iYnMtcG9wb3ZlciJ9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9Z24uZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLHQpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYodm9pZCAwPT09ZVt0XSl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgIiR7dH0iYCk7ZVt0XSgpfX0pKX19Zyhnbik7Y29uc3QgX249InNjcm9sbHNweSIsYm49e29mZnNldDoxMCxtZXRob2Q6ImF1dG8iLHRhcmdldDoiIn0sdm49e29mZnNldDoibnVtYmVyIixtZXRob2Q6InN0cmluZyIsdGFyZ2V0OiIoc3RyaW5nfGVsZW1lbnQpIn0seW49ImFjdGl2ZSIsd249Ii5uYXYtbGluaywgLmxpc3QtZ3JvdXAtaXRlbSwgLmRyb3Bkb3duLWl0ZW0iLEVuPSJwb3NpdGlvbiI7Y2xhc3MgQW4gZXh0ZW5kcyBCe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCksdGhpcy5fc2Nyb2xsRWxlbWVudD0iQk9EWSI9PT10aGlzLl9lbGVtZW50LnRhZ05hbWU/d2luZG93OnRoaXMuX2VsZW1lbnQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9vZmZzZXRzPVtdLHRoaXMuX3RhcmdldHM9W10sdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PTAsai5vbih0aGlzLl9zY3JvbGxFbGVtZW50LCJzY3JvbGwuYnMuc2Nyb2xsc3B5IiwoKCk9PnRoaXMuX3Byb2Nlc3MoKSkpLHRoaXMucmVmcmVzaCgpLHRoaXMuX3Byb2Nlc3MoKX1zdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gYm59c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuIF9ufXJlZnJlc2goKXtjb25zdCB0PXRoaXMuX3Njcm9sbEVsZW1lbnQ9PT10aGlzLl9zY3JvbGxFbGVtZW50LndpbmRvdz8ib2Zmc2V0IjpFbixlPSJhdXRvIj09PXRoaXMuX2NvbmZpZy5tZXRob2Q/dDp0aGlzLl9jb25maWcubWV0aG9kLG49ZT09PUVuP3RoaXMuX2dldFNjcm9sbFRvcCgpOjA7dGhpcy5fb2Zmc2V0cz1bXSx0aGlzLl90YXJnZXRzPVtdLHRoaXMuX3Njcm9sbEhlaWdodD10aGlzLl9nZXRTY3JvbGxIZWlnaHQoKSxWLmZpbmQod24sdGhpcy5fY29uZmlnLnRhcmdldCkubWFwKCh0PT57Y29uc3Qgcz1pKHQpLG89cz9WLmZpbmRPbmUocyk6bnVsbDtpZihvKXtjb25zdCB0PW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYodC53aWR0aHx8dC5oZWlnaHQpcmV0dXJuW1VbZV0obykudG9wK24sc119cmV0dXJuIG51bGx9KSkuZmlsdGVyKCh0PT50KSkuc29ydCgoKHQsZSk9PnRbMF0tZVswXSkpLmZvckVhY2goKHQ9Pnt0aGlzLl9vZmZzZXRzLnB1c2godFswXSksdGhpcy5fdGFyZ2V0cy5wdXNoKHRbMV0pfSkpfWRpc3Bvc2UoKXtqLm9mZih0aGlzLl9zY3JvbGxFbGVtZW50LCIuYnMuc2Nyb2xsc3B5Iiksc3VwZXIuZGlzcG9zZSgpfV9nZXRDb25maWcodCl7cmV0dXJuKHQ9ey4uLmJuLC4uLlUuZ2V0RGF0YUF0dHJpYnV0ZXModGhpcy5fZWxlbWVudCksLi4uIm9iamVjdCI9PXR5cGVvZiB0JiZ0P3Q6e319KS50YXJnZXQ9cih0LnRhcmdldCl8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxhKF9uLHQsdm4pLHR9X2dldFNjcm9sbFRvcCgpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50PT09d2luZG93P3RoaXMuX3Njcm9sbEVsZW1lbnQucGFnZVlPZmZzZXQ6dGhpcy5fc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3B9X2dldFNjcm9sbEhlaWdodCgpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbEhlaWdodHx8TWF0aC5tYXgoZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCl9X2dldE9mZnNldEhlaWdodCgpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50PT09d2luZG93P3dpbmRvdy5pbm5lckhlaWdodDp0aGlzLl9zY3JvbGxFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH1fcHJvY2Vzcygpe2NvbnN0IHQ9dGhpcy5fZ2V0U2Nyb2xsVG9wKCkrdGhpcy5fY29uZmlnLm9mZnNldCxlPXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLGk9dGhpcy5fY29uZmlnLm9mZnNldCtlLXRoaXMuX2dldE9mZnNldEhlaWdodCgpO2lmKHRoaXMuX3Njcm9sbEhlaWdodCE9PWUmJnRoaXMucmVmcmVzaCgpLHQ+PWkpe2NvbnN0IHQ9dGhpcy5fdGFyZ2V0c1t0aGlzLl90YXJnZXRzLmxlbmd0aC0xXTt0aGlzLl9hY3RpdmVUYXJnZXQhPT10JiZ0aGlzLl9hY3RpdmF0ZSh0KX1lbHNle2lmKHRoaXMuX2FjdGl2ZVRhcmdldCYmdDx0aGlzLl9vZmZzZXRzWzBdJiZ0aGlzLl9vZmZzZXRzWzBdPjApcmV0dXJuIHRoaXMuX2FjdGl2ZVRhcmdldD1udWxsLHZvaWQgdGhpcy5fY2xlYXIoKTtmb3IobGV0IGU9dGhpcy5fb2Zmc2V0cy5sZW5ndGg7ZS0tOyl0aGlzLl9hY3RpdmVUYXJnZXQhPT10aGlzLl90YXJnZXRzW2VdJiZ0Pj10aGlzLl9vZmZzZXRzW2VdJiYodm9pZCAwPT09dGhpcy5fb2Zmc2V0c1tlKzFdfHx0PHRoaXMuX29mZnNldHNbZSsxXSkmJnRoaXMuX2FjdGl2YXRlKHRoaXMuX3RhcmdldHNbZV0pfX1fYWN0aXZhdGUodCl7dGhpcy5fYWN0aXZlVGFyZ2V0PXQsdGhpcy5fY2xlYXIoKTtjb25zdCBlPXduLnNwbGl0KCIsIikubWFwKChlPT5gJHtlfVtkYXRhLWJzLXRhcmdldD0iJHt0fSJdLCR7ZX1baHJlZj0iJHt0fSJdYCkpLGk9Vi5maW5kT25lKGUuam9pbigiLCIpLHRoaXMuX2NvbmZpZy50YXJnZXQpO2kuY2xhc3NMaXN0LmFkZCh5biksaS5jbGFzc0xpc3QuY29udGFpbnMoImRyb3Bkb3duLWl0ZW0iKT9WLmZpbmRPbmUoIi5kcm9wZG93bi10b2dnbGUiLGkuY2xvc2VzdCgiLmRyb3Bkb3duIikpLmNsYXNzTGlzdC5hZGQoeW4pOlYucGFyZW50cyhpLCIubmF2LCAubGlzdC1ncm91cCIpLmZvckVhY2goKHQ9PntWLnByZXYodCwiLm5hdi1saW5rLCAubGlzdC1ncm91cC1pdGVtIikuZm9yRWFjaCgodD0+dC5jbGFzc0xpc3QuYWRkKHluKSkpLFYucHJldih0LCIubmF2LWl0ZW0iKS5mb3JFYWNoKCh0PT57Vi5jaGlsZHJlbih0LCIubmF2LWxpbmsiKS5mb3JFYWNoKCh0PT50LmNsYXNzTGlzdC5hZGQoeW4pKSl9KSl9KSksai50cmlnZ2VyKHRoaXMuX3Njcm9sbEVsZW1lbnQsImFjdGl2YXRlLmJzLnNjcm9sbHNweSIse3JlbGF0ZWRUYXJnZXQ6dH0pfV9jbGVhcigpe1YuZmluZCh3bix0aGlzLl9jb25maWcudGFyZ2V0KS5maWx0ZXIoKHQ9PnQuY2xhc3NMaXN0LmNvbnRhaW5zKHluKSkpLmZvckVhY2goKHQ9PnQuY2xhc3NMaXN0LnJlbW92ZSh5bikpKX1zdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Y29uc3QgZT1Bbi5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsdCk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZih2b2lkIDA9PT1lW3RdKXRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCAiJHt0fSJgKTtlW3RdKCl9fSkpfX1qLm9uKHdpbmRvdywibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLCgoKT0+e1YuZmluZCgnW2RhdGEtYnMtc3B5PSJzY3JvbGwiXScpLmZvckVhY2goKHQ9Pm5ldyBBbih0KSkpfSkpLGcoQW4pO2NvbnN0IFRuPSJhY3RpdmUiLE9uPSJmYWRlIixDbj0ic2hvdyIsa249Ii5hY3RpdmUiLExuPSI6c2NvcGUgPiBsaSA+IC5hY3RpdmUiO2NsYXNzIHhuIGV4dGVuZHMgQntzdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm4idGFiIn1zaG93KCl7aWYodGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoVG4pKXJldHVybjtsZXQgdDtjb25zdCBlPW4odGhpcy5fZWxlbWVudCksaT10aGlzLl9lbGVtZW50LmNsb3Nlc3QoIi5uYXYsIC5saXN0LWdyb3VwIik7aWYoaSl7Y29uc3QgZT0iVUwiPT09aS5ub2RlTmFtZXx8Ik9MIj09PWkubm9kZU5hbWU/TG46a247dD1WLmZpbmQoZSxpKSx0PXRbdC5sZW5ndGgtMV19Y29uc3Qgcz10P2oudHJpZ2dlcih0LCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH0pOm51bGw7aWYoai50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsInNob3cuYnMudGFiIix7cmVsYXRlZFRhcmdldDp0fSkuZGVmYXVsdFByZXZlbnRlZHx8bnVsbCE9PXMmJnMuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47dGhpcy5fYWN0aXZhdGUodGhpcy5fZWxlbWVudCxpKTtjb25zdCBvPSgpPT57ai50cmlnZ2VyKHQsImhpZGRlbi5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OnRoaXMuX2VsZW1lbnR9KSxqLnRyaWdnZXIodGhpcy5fZWxlbWVudCwic2hvd24uYnMudGFiIix7cmVsYXRlZFRhcmdldDp0fSl9O2U/dGhpcy5fYWN0aXZhdGUoZSxlLnBhcmVudE5vZGUsbyk6bygpfV9hY3RpdmF0ZSh0LGUsaSl7Y29uc3Qgbj0oIWV8fCJVTCIhPT1lLm5vZGVOYW1lJiYiT0wiIT09ZS5ub2RlTmFtZT9WLmNoaWxkcmVuKGUsa24pOlYuZmluZChMbixlKSlbMF0scz1pJiZuJiZuLmNsYXNzTGlzdC5jb250YWlucyhPbiksbz0oKT0+dGhpcy5fdHJhbnNpdGlvbkNvbXBsZXRlKHQsbixpKTtuJiZzPyhuLmNsYXNzTGlzdC5yZW1vdmUoQ24pLHRoaXMuX3F1ZXVlQ2FsbGJhY2sobyx0LCEwKSk6bygpfV90cmFuc2l0aW9uQ29tcGxldGUodCxlLGkpe2lmKGUpe2UuY2xhc3NMaXN0LnJlbW92ZShUbik7Y29uc3QgdD1WLmZpbmRPbmUoIjpzY29wZSA+IC5kcm9wZG93bi1tZW51IC5hY3RpdmUiLGUucGFyZW50Tm9kZSk7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKFRuKSwidGFiIj09PWUuZ2V0QXR0cmlidXRlKCJyb2xlIikmJmUuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwhMSl9dC5jbGFzc0xpc3QuYWRkKFRuKSwidGFiIj09PXQuZ2V0QXR0cmlidXRlKCJyb2xlIikmJnQuc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIiwhMCksdSh0KSx0LmNsYXNzTGlzdC5jb250YWlucyhPbikmJnQuY2xhc3NMaXN0LmFkZChDbik7bGV0IG49dC5wYXJlbnROb2RlO2lmKG4mJiJMSSI9PT1uLm5vZGVOYW1lJiYobj1uLnBhcmVudE5vZGUpLG4mJm4uY2xhc3NMaXN0LmNvbnRhaW5zKCJkcm9wZG93bi1tZW51Iikpe2NvbnN0IGU9dC5jbG9zZXN0KCIuZHJvcGRvd24iKTtlJiZWLmZpbmQoIi5kcm9wZG93bi10b2dnbGUiLGUpLmZvckVhY2goKHQ9PnQuY2xhc3NMaXN0LmFkZChUbikpKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsITApfWkmJmkoKX1zdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Y29uc3QgZT14bi5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYodm9pZCAwPT09ZVt0XSl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgIiR7dH0iYCk7ZVt0XSgpfX0pKX19ai5vbihkb2N1bWVudCwiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtYnMtdG9nZ2xlPSJ0YWIiXSwgW2RhdGEtYnMtdG9nZ2xlPSJwaWxsIl0sIFtkYXRhLWJzLXRvZ2dsZT0ibGlzdCJdJywoZnVuY3Rpb24odCl7WyJBIiwiQVJFQSJdLmluY2x1ZGVzKHRoaXMudGFnTmFtZSkmJnQucHJldmVudERlZmF1bHQoKSxjKHRoaXMpfHx4bi5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpLnNob3coKX0pKSxnKHhuKTtjb25zdCBEbj0idG9hc3QiLFNuPSJoaWRlIixObj0ic2hvdyIsSW49InNob3dpbmciLFBuPXthbmltYXRpb246ImJvb2xlYW4iLGF1dG9oaWRlOiJib29sZWFuIixkZWxheToibnVtYmVyIn0sam49e2FuaW1hdGlvbjohMCxhdXRvaGlkZTohMCxkZWxheTo1ZTN9O2NsYXNzIE1uIGV4dGVuZHMgQntjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQpLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fdGltZW91dD1udWxsLHRoaXMuX2hhc01vdXNlSW50ZXJhY3Rpb249ITEsdGhpcy5faGFzS2V5Ym9hcmRJbnRlcmFjdGlvbj0hMSx0aGlzLl9zZXRMaXN0ZW5lcnMoKX1zdGF0aWMgZ2V0IERlZmF1bHRUeXBlKCl7cmV0dXJuIFBufXN0YXRpYyBnZXQgRGVmYXVsdCgpe3JldHVybiBqbn1zdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm4gRG59c2hvdygpe2oudHJpZ2dlcih0aGlzLl9lbGVtZW50LCJzaG93LmJzLnRvYXN0IikuZGVmYXVsdFByZXZlbnRlZHx8KHRoaXMuX2NsZWFyVGltZW91dCgpLHRoaXMuX2NvbmZpZy5hbmltYXRpb24mJnRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZmFkZSIpLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShTbiksdSh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoTm4pLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChJbiksdGhpcy5fcXVldWVDYWxsYmFjaygoKCk9Pnt0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoSW4pLGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LCJzaG93bi5icy50b2FzdCIpLHRoaXMuX21heWJlU2NoZWR1bGVIaWRlKCl9KSx0aGlzLl9lbGVtZW50LHRoaXMuX2NvbmZpZy5hbmltYXRpb24pKX1oaWRlKCl7dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoTm4pJiYoai50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsImhpZGUuYnMudG9hc3QiKS5kZWZhdWx0UHJldmVudGVkfHwodGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKEluKSx0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+e3RoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChTbiksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEluKSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoTm4pLGoudHJpZ2dlcih0aGlzLl9lbGVtZW50LCJoaWRkZW4uYnMudG9hc3QiKX0pLHRoaXMuX2VsZW1lbnQsdGhpcy5fY29uZmlnLmFuaW1hdGlvbikpKX1kaXNwb3NlKCl7dGhpcy5fY2xlYXJUaW1lb3V0KCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoTm4pJiZ0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoTm4pLHN1cGVyLmRpc3Bvc2UoKX1fZ2V0Q29uZmlnKHQpe3JldHVybiB0PXsuLi5qbiwuLi5VLmdldERhdGFBdHRyaWJ1dGVzKHRoaXMuX2VsZW1lbnQpLC4uLiJvYmplY3QiPT10eXBlb2YgdCYmdD90Ont9fSxhKERuLHQsdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0VHlwZSksdH1fbWF5YmVTY2hlZHVsZUhpZGUoKXt0aGlzLl9jb25maWcuYXV0b2hpZGUmJih0aGlzLl9oYXNNb3VzZUludGVyYWN0aW9ufHx0aGlzLl9oYXNLZXlib2FyZEludGVyYWN0aW9ufHwodGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KCgoKT0+e3RoaXMuaGlkZSgpfSksdGhpcy5fY29uZmlnLmRlbGF5KSkpfV9vbkludGVyYWN0aW9uKHQsZSl7c3dpdGNoKHQudHlwZSl7Y2FzZSJtb3VzZW92ZXIiOmNhc2UibW91c2VvdXQiOnRoaXMuX2hhc01vdXNlSW50ZXJhY3Rpb249ZTticmVhaztjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOnRoaXMuX2hhc0tleWJvYXJkSW50ZXJhY3Rpb249ZX1pZihlKXJldHVybiB2b2lkIHRoaXMuX2NsZWFyVGltZW91dCgpO2NvbnN0IGk9dC5yZWxhdGVkVGFyZ2V0O3RoaXMuX2VsZW1lbnQ9PT1pfHx0aGlzLl9lbGVtZW50LmNvbnRhaW5zKGkpfHx0aGlzLl9tYXliZVNjaGVkdWxlSGlkZSgpfV9zZXRMaXN0ZW5lcnMoKXtqLm9uKHRoaXMuX2VsZW1lbnQsIm1vdXNlb3Zlci5icy50b2FzdCIsKHQ9PnRoaXMuX29uSW50ZXJhY3Rpb24odCwhMCkpKSxqLm9uKHRoaXMuX2VsZW1lbnQsIm1vdXNlb3V0LmJzLnRvYXN0IiwodD0+dGhpcy5fb25JbnRlcmFjdGlvbih0LCExKSkpLGoub24odGhpcy5fZWxlbWVudCwiZm9jdXNpbi5icy50b2FzdCIsKHQ9PnRoaXMuX29uSW50ZXJhY3Rpb24odCwhMCkpKSxqLm9uKHRoaXMuX2VsZW1lbnQsImZvY3Vzb3V0LmJzLnRvYXN0IiwodD0+dGhpcy5fb25JbnRlcmFjdGlvbih0LCExKSkpfV9jbGVhclRpbWVvdXQoKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCksdGhpcy5fdGltZW91dD1udWxsfXN0YXRpYyBqUXVlcnlJbnRlcmZhY2UodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtjb25zdCBlPU1uLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcyx0KTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKHZvaWQgMD09PWVbdF0pdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkICIke3R9ImApO2VbdF0odGhpcyl9fSkpfX1yZXR1cm4gUihNbiksZyhNbikse0FsZXJ0OlcsQnV0dG9uOnosQ2Fyb3VzZWw6c3QsQ29sbGFwc2U6cHQsRHJvcGRvd246aGksTW9kYWw6SGksT2ZmY2FudmFzOkZpLFBvcG92ZXI6Z24sU2Nyb2xsU3B5OkFuLFRhYjp4bixUb2FzdDpNbixUb29sdGlwOnVufX0pKTs="}},"time_used":47,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":23,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1723056068_image-2024-08-07-194034420png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.602Z","timestamp":1785153914602,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1723056068_image-2024-08-07-194034420png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1867\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1867,"size_decoded":2028,"mime_type":"image/png","magic":"PNG image data, 50 x 50, 8-bit/color RGBA, non-interlaced","md5":"5301d93865cbfe3cc115ebdeddacbbd8","sha1":"08c3d602e7429d0534ace7efdb7c6c3257e52d3a","sha256":"7fa285cc127b49a49057fba146aabda0dddd48d3bfe8a2b82b8a76de2fbdb21a","sha512":"e2771f05a3a5ff487f8e8d39ab7f4637cd42a4c6d8c4edde0ef6c06c50561340e226cbec7b0e3d0bb8ee60d4c106d6def942770dc5a5da0bf5eeb85a636ee6bc","ssdeep":"","tlshash":"3e31c64d9291cc7fead6e0e4412ec5fee978046e5e34cc2a14c34528ea50f2d6563443","first_seen":"2026-04-01T23:54:14.870205Z","last_seen":"2026-07-27T12:06:15.820804Z","times_seen":12,"resource_available":false,"data":"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"}},"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":"onchainopt.com/icons/homeicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.606Z","timestamp":1785153914606,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/homeicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1953\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1953,"size_decoded":2218,"mime_type":"image/png","magic":"PNG image data, 97 x 96, 8-bit/color RGBA, non-interlaced","md5":"8ca3d49105b2c82a3efeb4cd2ceaa347","sha1":"6be0e5360ebe5d646581e016396c3b02ff376a03","sha256":"946bc4ad3cb2b1394127cb16eaa2b72f9302371ba3d999684a78bf5e6e99682e","sha512":"bb2ae681a78c2cf8076d738703c95ac7b40409594105421282ec51c1e712cc58bbbc39bc21477c0193e311c9b44dfcc2728ee35b9f7b6dde83b0985e2738dc54","ssdeep":"","tlshash":"bc410ad7f523a476cbaaf838c55ebd3aceb9424817f8479b2ec700364541c541e6ab11","first_seen":"2026-04-01T23:54:14.760005Z","last_seen":"2026-07-27T12:06:15.848158Z","times_seen":12,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAGEAAABgCAYAAAANWhwGAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAc2SURBVHgB7Z07cxNXFMfPkWTjVHE+AUpHh+kyQcZWOqqYT4DVpQOKzMgyM7pisC2SIuYTyHRJhamSDhmUmXQxHV1Ely5OxcPSPTlnJXsc0O7eXe3jyr6/hrV3V1j7v+dxX2cBHA6Hw+EYgTDDKKUW330YriEWrmqCMiIsyu/5Sx0CFA5pjg7aSvXBcmZShLpSZTymOxphHWn04APYgzls2SxGEWaMxv3WHa3pZz5c5Ra0YHDLEmlYv16pvv+91/0DLGRmLEFcz9sBdbjlr0FMiGAf5/GebVYxE5ZQv69WB0P6lVvMVzAFHDOugIa15RvfHPVedl+BJVhtCdL63x9TkwDuQvJYEyusFaHRUEsa6SkfliE9+mwetfZD1YUcKYCFeMEX6U8wFYDwAEjX+IFW+bhGiPtgRpkDxfONzeZPkCNWWYKknnBMHT5cNbmeEI6IsPXDltr95LMaah2QmmBuSX12T9U83JM1gfkk9eRWccXoBm79OMSbj3bUb5NOc+A9rFyvPoMCfcFtbcngExc5aN+tLK/wvQcHkCG5W0Kc1FMD3pvU+v3Y2FR32b01DTp2J2RqFbmKIKkn+2RxP2XDW/oFwlvb2+oQIlKvcy+7SE850zKxCg+tWewdc7HjkosIsVJPoscL8wW+VR3BFLDwij+rGeGWLltFLU2ryFyEGKln4mmkWAUU6XmUvwGhoHa2mk8gBTIVwQu+pI3NW1LNz0pQm7b1+xHDKlLp4GUiQpKpZ9LEscykrSJ1EaT1D0Er48xEOl486tluZ5eve/MSAxCruGN6Dz+43UtsFUlYaWoiZJF6Jk1eHbxUOmsxRj0l9ay2t5XpcEMq5NXBS9QS8kw9kyZLq0hMBAlwhNSJ0BmyYgQziHEqa5xQeBCp9vaDFkQgERGiBt+0U8+kSbuDN5UINqeeSZNmBy+2CBubrdsa9a7NqWcapNHBiyWCTIJECb55p55JE8cqgoJ25Jm1eqPZiSCApJ7XzpMAgljzwhxe48TiseEt4rafe+57ApEsod5oNQG1MrrY0tQzaSKmshMtwliE8X/WMbjU+tQzaUbuSRon3ja4vNvealXP/sK4x1y5sSKDXIFB2Es95/DmwwfqNVwger3uEfeY9yvL1TfcrKWfFPScysuV5Ve93ovTZ2RkCWFWMMupZ9IYzuD12Rq+PPnBLDBjcEpW1Fh1AoyQoM2jq9XRynBfyt7U7phQEcYXl30vQGrFmfM9z0gyQkO8JR7C96IzfQ0TSwgaiu63OQCA4xPEIhD8U9iz7ipcBKKrfqc0GOfJF5KFEuz6WQO7q8XvedBTjg1E8HdFRDxQ5fBF3BIP6/i66uLYGsJFQH8RfnSxwAB8E3aFlQuCzxUBwVmP99g5EdImYJS5QCOBnAgW4ESwACeCBTgRLMCJYAFOBAtwIliAE8ECnAgW4ESwACeCBTgRUoaQPvc7h27sKBuClolS0YlgDU4EC3AiWEAJZgxvS9b7wSoW5y5rkL1l4eBwcEiXSoe2FiOcGRHGdTCa745pFQpFPtTG9xJfD8ckS/qlVOduWjvz42K9CKe7gYgf/pSM1vrovfpmU+VV22gSVscE2Ywo6/ohysY9M0TYv2S3EViAtSKIBQwLkXbDRIbEKs6sCc0Ley2BLSBCkajYENFTvx00WWGlCN6OoHSrQJ4iyxHpA+VaiNDOwIx6Pei0rO9Ewn1+gqGr24B0mT9wBQJERYQ1sYa8ArV1ImzcV2vsIsp+52Xd/0IJq1H3wrHv3w2s4jLwhFeQA9a5Ixbg24DT3gaMOJsR2w+V7Djt+l5AnrUkT8CCajaBvvxjY0wo+52QHfJT7QZF9K05EaVAYdLYJ0JAyxkQTVVkPGhHKUL6mZgfMzWAV5yH6fdE08gFTCKvVNWNolqAE8ECnAgW4ESwACeCBTgRLMCJYAFOBAtwIljAVCLIygdwBBOwGf9k6NykrELf79S7QX6DXrNAQynf58MDhqdDMCZlFfq+56KVprxw6GP/+Qs8MxgZOqmDgM8IfJebrNY3mx3b3/KaNWdqhq8HXHZaFyRUhEtzsPd2AEFvZlrnSXkRo8vj9eHTjWEEzKolAUqpOJ9zMtfMM3DTvZOT6PLbAa2FDo3rwmmlNLMaeGFTgxkgPvTRVsto2WMQ9U21x5+W83oj3GtvqdrJT0bZ0ULJm3vtQ46wW9yHBAipTZcFfRjC/2b4jESQKUV5v1lgTbe0QUhk/ai41zy/B2q893G9cON+ghQblKqPuXwBosdJFbv1GhRgDTLGe24FrO3sfPq2lEivc3n5svv38tfVX1g6KU6YUUeNnrS3H3wHCdJ70X1dWZGqmYmvcZ2IuEDxJDtbk98TGrt0/6hgLXCAm3619CSyKHg7Kq8M3DL9iy1OhbykFbETthQ/tggneBVxS7CU1JIRdhX/aKBXWdba9lZ/F3DFdNNJEN7frwf/wnyx6/pODofD4YjKfxDYXKgbE1ZeAAAAAElFTkSuQmCC"}},"time_used":97,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":88,"receive":9,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/marketicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.607Z","timestamp":1785153914607,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/marketicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1188\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1188,"size_decoded":1453,"mime_type":"image/png","magic":"PNG image data, 97 x 96, 8-bit/color RGBA, non-interlaced","md5":"a3f25f08c23e0a4fd032419705361bbb","sha1":"eb1ae30c15cf36c789889d3adce01398fe200da5","sha256":"278f56f16cc612a6f276858a36ab23c3dc3a5ee3b97f2245fe07235022760766","sha512":"0e3597fc213c3f17beee6e4ba315c76fc0271ec3e7e99bca252461e279c4585f51f30a60b6e926cdea5a512a68341d508d454aa8cdeb84048eb8891a024cebe2","ssdeep":"","tlshash":"3221aa1b96b1932adbcfe8bc05196d78b859f40d066237ca154c718f6bf0d604b95a07","first_seen":"2026-04-01T23:54:14.839766Z","last_seen":"2026-07-27T12:06:15.849834Z","times_seen":12,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAGEAAABgCAYAAAANWhwGAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQ5SURBVHgB7d1RThNBGAfw71tLwqM3sN6AAxitJxBPQH3zTXwwKcXYqdHN8iSegPUEwgksyrv1BNYb+AgU5nNmJYpNZ3cq3fSD/n8JkNDtztI/OzPbnekQAQAAAAAAAACoxHRNGGNuH5/aZ8TcEqY1Frpd9Ry33U+33TDhZN825CAzZkQKXYsQOt1XPUl4M+aFLyVisvR1n5RRH0Kn29tzR9mm+cmzt/0npMgtUmxru/fOBfCU5mvt3v1W8+jL4QEpofZM6HRNm1j2qC7MD7M3ZkAKJKQUszyjOon0SAmVZ0LHmCaN5TvVbYXvaugxNUghPqM1CTxWdDuJH8dUJb5Kk0TeBXtVp9Ry33NaMJXVkQtgLfQYC+/H1uVZanIX2IfgBgk1SQG1bUIQ0w+azU9S7vqFcAMhBAUQggIIQQGEoABCUAAhKIAQFEAICiAEBRCCAghBAYSgAEJQACEogBAUQAgKIAQFVN7o16wYE0vVwzFX3W1Vt23UrVWEEKHz0rRY5JFlah+PJWo87LF/3nZv5H4MaIX7ZUNrEEIJ/19/MpaeiGz6ITgsM++i6b7aNJa2CyRfXeHn084OtAkBFwF8cq/7Js1H2+/P73fyAYQQ4Kqdj2Xjn/6H35/f7+TvEcIUxWBkKkbn1aG1td3fuPwLhDAN1z1Y2P5TxSGECV1jfBXULN1I5EflV9nTXbX0omv+VHXoHU2wp64dCI9VHyXCj9O0P6QKnY5pSkO+hgYj3/rd3hT7wZkwqWyQsMhBmprKALwsM6PYwcgIYRZJMuvg4nqumH0/9/SMN0RsUyIu37k4kGQoK3KodQrrokWHcDF7Zs/1c1tF0xLp95aWaFxcxudVl/DLKKo68v1aOZOvdPW+s7+E/z7ZT152lSEUAZDNrzyR+xK/PwTxV2kIvgqybHepBpbsblHFQcWZ4N5BnOcZcBn7Rn2sZxrrIgVDuHi3r001co32+rR3FZdNsHd0clbVCHNOcn5IVZhb7tvU+t+fDScnRTn7tMTCXVQJXzmK8MFOamI/pCN3XdM7FOhZnSuZxrpIwepIONwWcEJRl+5/n8DBMyZhWvrqCG9bKIAQFEAICiAEBRCCAghBAYSgAEJQACEogBAUQAgKIAQFEIICCEEBhKAAQlDg/0KwdrYbMSJ3aF5uYNnhECyNgvtm3tjaMusUwU+6o5IBA3w+5S5dVdmRY5auS9nhe8yWBqHVFfwNeknko7t3TJVEqh4ezlw22bwYUnlDyg6eCX5oN/npnzVyf9TwopylLru8TWCuef2ZZBdlVyzncvR5MLp3/8Fdd1RzncVYEHmfpf0dQtnVa+ocfTncn/8ByYcsfV25Vs6ylB21sFFxQA8e+plcLbqCYgEK5p3sbT96gvYylD3Tci5+MlzS4EdWZF1Y4hecs/zNtT6D1Qbtxn7oBsoGAAAAAAAAAFi4X3WPAAwmYWiUAAAAAElFTkSuQmCC"}},"time_used":88,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":88,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/transactionicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.608Z","timestamp":1785153914608,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/transactionicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1909\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1909,"size_decoded":2174,"mime_type":"image/png","magic":"PNG image data, 97 x 96, 8-bit/color RGBA, non-interlaced","md5":"8b587fdefc027c76d7343f9e3cece916","sha1":"46371eb07bb48a510739bb3391e083690e5a1075","sha256":"489a3d1737e59954f0cc050f822fad909d8f9d8c8bbcee0d04bf956afff05993","sha512":"e57d5054b0d4429ad52d585a9e42f2e004f120e4f99b6b56a60171e101b99b789143ce91b1c1500be59c18335629a10c00b53a4a63ec53a0bd3bb1b45f43a1e4","ssdeep":"","tlshash":"1b41eae48cc27aee441ad7f246316e70ae75250c090ab60acceb503c715a7ed133e009","first_seen":"2026-04-01T23:54:14.735594Z","last_seen":"2026-07-27T12:06:15.823925Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":27,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/logoIcon/favicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.222Z","timestamp":1785153915222,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/logoIcon/favicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:15 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 455\r\ndate: Mon, 27 Jul 2026 12:05:15 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":455,"size_decoded":719,"mime_type":"image/png","magic":"PNG image data, 128 x 128, 8-bit/color RGBA, non-interlaced","md5":"013a96287cde3d7f12fa85fed005bd43","sha1":"a85b2dedec2dfaa028d65ac06a1ea631b2c5556d","sha256":"4950760c3f41715c3aca376d77e8c1c2006508c984954e7182cfe7d4fa90cb3c","sha512":"7de5fcede75df94a8a2a99419d132b6d1224724c1acc38aa733e8262fb1825f3479227387de2560e86c9e4af97f90748c07075739ce70d8edf023bd5ea7549c4","ssdeep":"","tlshash":"34f00b8682828d7fd35edc7003121eb09c338bcb128a414970a6dcad29fc6424447bcf","first_seen":"2026-07-27T07:44:27.070784Z","last_seen":"2026-07-27T12:06:15.845829Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABeUlEQVR4nO3csQ0CUQwFQR8iogQS+oEe6eLa46gBCekLdqaCF6wcejuOY+g6rR7AWgKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngLjz6gFf9XhcZ+Y+M8/Z99fqOb/g3y7AZWZuq0f8ks2jyLZ/uwB8SABxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEEPcGAgoLJIGckOcAAAAASUVORK5CYII="}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.google.com/translate_a/element.js?cb=googleTranslateElementInit","fqdn":"translate.google.com","domain":"google.com","tld":"com"},"ip":{"addr":"142.250.178.110","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.561Z","timestamp":1785153914561,"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.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:37:35 GMT","end":"Mon, 21 Sep 2026 08:37:34 GMT"},"fingerprint":{"sha1":"2F:20:3B:91:88:65:20:CD:06:9D:0C:58:4D:17:6F:FC:9D:EC:41:83","sha256":"0C:7B:D3:23:E9:5B:D6:6B:F2:5C:71:91:4D:41:CE:E6:D7:1F:A2:F2:63:BA:25:70:1D:00:F3:C0:72:21:51:6D"}}},"request":{"raw":"GET /translate_a/element.js?cb=googleTranslateElementInit HTTP/1.1\r\nHost: translate.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://onchainopt.com/\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: text/javascript; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\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 12:05:14 GMT\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups\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":75426,"size_decoded":27151,"mime_type":"text/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2543)","md5":"2fc67798de4c87e1253acea26b5ad2e9","sha1":"eb5c974ed70955e1bf183c1b0767a9aa6ff24924","sha256":"294ece50287362a6e681056db67d8c154b84a59678c737a636f5ce6877dee26f","sha512":"cc74a664bf9cd79ececc5ad699aa8e556af95469c4ef172511527182387ed95b5c21bfc367993c9679f7508c81812fd92df96464de92401d316ea97f86137469","ssdeep":"1536:XWjLpxIZnZzYOwRUSfl26KKZkXtmqR6Y06ECiVwNWF0:XDD4U6KKZgtBgtCi70","tlshash":"fa73b88cb6a5b4658363f4b5412f000eb23b58adf8484cadb288d8e1adf5949453bf7d","first_seen":"2026-07-27T12:02:34.990769Z","last_seen":"2026-07-27T13:00:41.444148Z","times_seen":115,"resource_available":true,"data":"CiAgICAvLyBnby9tc3Mtc2V0dXAjNy1sb2FkLXRoZS1qcy1vci1jc3MtZnJvbS15b3VyLWluaXRpYWwtcGFnZQogICAgaWYoIXdpbmRvd1snX0R1bXBFeGNlcHRpb24nXSkgewogICAgICBjb25zdCBfRHVtcEV4Y2VwdGlvbiA9IHdpbmRvd1snX0R1bXBFeGNlcHRpb24nXSB8fCBmdW5jdGlvbihlKSB7CiAgICAgICAgdGhyb3cgZTsKICAgICAgfTsKICAgICAgd2luZG93WydfRHVtcEV4Y2VwdGlvbiddID0gX0R1bXBFeGNlcHRpb247CiAgICB9CiAgInVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF90cj10aGlzLmRlZmF1bHRfdHJ8fHt9OyhmdW5jdGlvbihfKXt2YXIgd2luZG93PXRoaXM7CnRyeXsKXy5fRl90b2dnbGVzX2luaXRpYWxpemU9ZnVuY3Rpb24oYSl7KHR5cGVvZiBnbG9iYWxUaGlzIT09InVuZGVmaW5lZCI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZiE9PSJ1bmRlZmluZWQiP3NlbGY6dGhpcykuX0ZfdG9nZ2xlc19kZWZhdWx0X3RyPWF8fFtdfTsoMCxfLl9GX3RvZ2dsZXNfaW5pdGlhbGl6ZSkoWzB4NzAwODAwNCwgMHgwLCBdKTsKLyoKCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgR29vZ2xlIExMQwogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKKi8KLyoKCiBDb3B5cmlnaHQgMjAwNSwgMjAwNyBCb2IgSXBwb2xpdG8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiBDb3B5cmlnaHQgVGhlIENsb3N1cmUgTGlicmFyeSBBdXRob3JzLgogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAoqLwp2YXIgYWEsY2EsZmEsamEscmEseGEsQmEsRGEsRmEsR2EsSWEsWWEsYmIsZmIsZ2IsamIsa2IsbmIscGIscWIsc2IsdWIsdmIsQWIsQmIsRmIsSWIsSmIsTWIsTmIsT2IsUWIsU2IseixSYixVYixZYixaYixhYyxiYzthYT1mdW5jdGlvbihhLGIpe2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsYWEpO2Vsc2V7dmFyIGM9RXJyb3IoKS5zdGFjaztjJiYodGhpcy5zdGFjaz1jKX1hJiYodGhpcy5tZXNzYWdlPVN0cmluZyhhKSk7YiE9PXZvaWQgMCYmKHRoaXMuY2F1c2U9Yil9O2NhPWZ1bmN0aW9uKGEsYil7YT1hLnNwbGl0KCIlcyIpO2Zvcih2YXIgYz0iIixkPWEubGVuZ3RoLTEsZT0wO2U8ZDtlKyspYys9YVtlXSsoZTxiLmxlbmd0aD9iW2VdOiIlcyIpO2FhLmNhbGwodGhpcyxjK2FbZF0pfTtmYT1mdW5jdGlvbihhKXtpZihfLmRhKWEoXy5kYSk7ZWxzZXt2YXIgYjsoKGI9ZWEpIT1udWxsP2I6ZWE9W10pLnB1c2goYSl9fTsKamE9ZnVuY3Rpb24oKXshXy5kYSYmXy5oYSYmXy5pYSgpO3JldHVybiBfLmRhfTtfLmlhPWZ1bmN0aW9uKCl7Xy5kYT1fLmhhKCk7dmFyIGE7KGE9ZWEpPT1udWxsfHxhLmZvckVhY2goZmEpO2VhPXZvaWQgMH07Xy5sYT1mdW5jdGlvbihhKXtfLmRhJiZrYShhKX07Xy5tYT1mdW5jdGlvbigpe18uZGEmJl8uZGEubWQoKX07Xy5vYT1mdW5jdGlvbihhLGIpe2IuaGFzT3duUHJvcGVydHkoImRpc3BsYXlOYW1lIil8fChiLmRpc3BsYXlOYW1lPWEudG9TdHJpbmcoKSk7YltuYV09YX07Xy5wYT1mdW5jdGlvbihhKXthJiZ0eXBlb2YgYS5kaXNwb3NlPT0iZnVuY3Rpb24iJiZhLmRpc3Bvc2UoKX07cmE9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz1hcmd1bWVudHMubGVuZ3RoO2I8YzsrK2Ipe3ZhciBkPWFyZ3VtZW50c1tiXTtfLnFhKGQpP3JhLmFwcGx5KG51bGwsZCk6Xy5wYShkKX19O18udT1mdW5jdGlvbigpe3RoaXMucWE9dGhpcy5xYTt0aGlzLlc9dGhpcy5XfTsKXy50YT1mdW5jdGlvbihhLGIpe3JldHVybiBzYShhLGIpPj0wfTtfLnVhPWZ1bmN0aW9uKGEsYil7Xy50YShhLGIpfHxhLnB1c2goYil9O18udmE9ZnVuY3Rpb24oYSxiKXtiPXNhKGEsYik7dmFyIGM7KGM9Yj49MCkmJkFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChhLGIsMSk7cmV0dXJuIGN9O18ud2E9ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGg7aWYoYj4wKXtmb3IodmFyIGM9QXJyYXkoYiksZD0wO2Q8YjtkKyspY1tkXT1hW2RdO3JldHVybiBjfXJldHVybltdfTt4YT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTtpZihfLnFhKGQpKXt2YXIgZT1hLmxlbmd0aHx8MCxmPWQubGVuZ3RofHwwO2EubGVuZ3RoPWUrZjtmb3IodmFyIGc9MDtnPGY7ZysrKWFbZStnXT1kW2ddfWVsc2UgYS5wdXNoKGQpfX07CkJhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9MCxkPXt9O2M8YS5sZW5ndGg7KXt2YXIgZT1hW2MrK10sZj1fLnlhKGUpPyJvIisoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsemEpJiZlW3phXXx8KGVbemFdPSsrQWEpKToodHlwZW9mIGUpLmNoYXJBdCgwKStlO09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGYpfHwoZFtmXT0hMCxhW2IrK109ZSl9YS5sZW5ndGg9Yn07Xy5DYT1mdW5jdGlvbihhLGIpe3RoaXMud2lkdGg9YTt0aGlzLmhlaWdodD1ifTtEYT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYyBpbiBhKWlmKGIuY2FsbCh2b2lkIDAsYVtjXSxjLGEpKXJldHVybiEwO3JldHVybiExfTsKRmE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZCxlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7ZD1hcmd1bWVudHNbZV07Zm9yKGMgaW4gZClhW2NdPWRbY107Zm9yKHZhciBmPTA7ZjxFYS5sZW5ndGg7ZisrKWM9RWFbZl0sT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsYykmJihhW2NdPWRbY10pfX07R2E9ZnVuY3Rpb24oYSl7cmV0dXJue3ZhbHVlT2Y6YX0udmFsdWVPZigpfTtJYT1mdW5jdGlvbigpe3ZhciBhPW51bGw7aWYoIUhhKXJldHVybiBhO3RyeXt2YXIgYj1mdW5jdGlvbihjKXtyZXR1cm4gY307YT1IYS5jcmVhdGVQb2xpY3koImdvb2cjaHRtbCIse2NyZWF0ZUhUTUw6YixjcmVhdGVTY3JpcHQ6YixjcmVhdGVTY3JpcHRVUkw6Yn0pfWNhdGNoKGMpe31yZXR1cm4gYX07Xy5LYT1mdW5jdGlvbigpe0phPT09dm9pZCAwJiYoSmE9SWEoKSk7cmV0dXJuIEphfTsKXy5NYT1mdW5jdGlvbihhKXt2YXIgYj1fLkthKCk7YT1iP2IuY3JlYXRlU2NyaXB0VVJMKGEpOmE7cmV0dXJuIG5ldyBfLkxhKGEpfTtfLk5hPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLkxhKXJldHVybiBhLmc7dGhyb3cgRXJyb3IoInQiKTt9O18uT2E9ZnVuY3Rpb24oYSxiKXtiPWI9PT12b2lkIDA/ZG9jdW1lbnQ6Yjt2YXIgYyxkO2I9KGQ9KGM9YikucXVlcnlTZWxlY3Rvcik9PW51bGw/dm9pZCAwOmQuY2FsbChjLGErIltub25jZV0iKTtyZXR1cm4gYj09bnVsbD8iIjpiLm5vbmNlfHxiLmdldEF0dHJpYnV0ZSgibm9uY2UiKXx8IiJ9O18uUWE9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5LYSgpO2E9Yj9iLmNyZWF0ZVNjcmlwdChhKTphO3JldHVybiBuZXcgXy5QYShhKX07Xy5SYT1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5QYSlyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJ0Iik7fTsKXy5TYT1mdW5jdGlvbihhLGIpe2Euc3JjPV8uTmEoYik7KGI9Xy5PYSgic2NyaXB0IixhLm93bmVyRG9jdW1lbnQpKSYmYS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixiKX07Xy5UYT1mdW5jdGlvbigpe3ZhciBhPV8udi5uYXZpZ2F0b3I7cmV0dXJuIGEmJihhPWEudXNlckFnZW50KT9hOiIifTtfLnc9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uVGEoKS5pbmRleE9mKGEpIT0tMX07Xy5XYT1mdW5jdGlvbigpe3JldHVybiBfLlVhPyEhXy5WYSYmXy5WYS5icmFuZHMubGVuZ3RoPjA6ITF9O18uWGE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5XYSgpPyExOl8udygiT3BlcmEiKX07WWE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5VYT8hIV8uVmEmJiEhXy5WYS5wbGF0Zm9ybTohMX07Xy5aYT1mdW5jdGlvbigpe3JldHVybiBfLncoImlQaG9uZSIpJiYhXy53KCJpUG9kIikmJiFfLncoImlQYWQiKX07Xy4kYT1mdW5jdGlvbigpe3JldHVybiBfLlphKCl8fF8udygiaVBhZCIpfHxfLncoImlQb2QiKX07Cl8uYWI9ZnVuY3Rpb24oKXtyZXR1cm4gWWEoKT9fLlZhLnBsYXRmb3JtPT09Im1hY09TIjpfLncoIk1hY2ludG9zaCIpfTtiYj1mdW5jdGlvbigpe3RoaXMuaWQ9ImIifTtfLmRiPWZ1bmN0aW9uKGEsYil7Y2IuY2FsbCh0aGlzLGE/YS50eXBlOiIiKTt0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PW51bGw7dGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPXRoaXMub2Zmc2V0WT10aGlzLm9mZnNldFg9MDt0aGlzLmtleT0iIjt0aGlzLmNoYXJDb2RlPXRoaXMua2V5Q29kZT0wO3RoaXMubWV0YUtleT10aGlzLnNoaWZ0S2V5PXRoaXMuYWx0S2V5PXRoaXMuY3RybEtleT0hMTt0aGlzLnN0YXRlPW51bGw7dGhpcy5wb2ludGVySWQ9MDt0aGlzLnBvaW50ZXJUeXBlPSIiO3RoaXMudGltZVN0YW1wPTA7dGhpcy5nPW51bGw7YSYmdGhpcy5pbml0KGEsYil9OwpmYj1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMubGlzdGVuZXI9YTt0aGlzLnByb3h5PW51bGw7dGhpcy5zcmM9Yjt0aGlzLnR5cGU9Yzt0aGlzLmNhcHR1cmU9ISFkO3RoaXMuVmM9ZTt0aGlzLmtleT0rK2ViO3RoaXMub2M9dGhpcy5IYz0hMX07Z2I9ZnVuY3Rpb24oYSl7dGhpcy5zcmM9YTt0aGlzLmc9e307dGhpcy5oPTB9O18uaGI9ZnVuY3Rpb24oKXtfLnUuY2FsbCh0aGlzKTt0aGlzLlFhPW5ldyBnYih0aGlzKTt0aGlzLldnPXRoaXM7dGhpcy5mZD1udWxsfTtqYj1mdW5jdGlvbihhKXtfLmhiLmNhbGwodGhpcyk7dGhpcy5nPWF8fHdpbmRvdzt0aGlzLmg9Xy54KHRoaXMuZywicmVzaXplIix0aGlzLmwsITEsdGhpcyk7dGhpcy5qPV8uaWIodGhpcy5nfHx3aW5kb3cpfTsKa2I9ZnVuY3Rpb24oYSl7Xy5oYi5jYWxsKHRoaXMpO3RoaXMuaD1hP2EuZy5kZWZhdWx0Vmlldzp3aW5kb3c7dGhpcy5vPXRoaXMuaC5kZXZpY2VQaXhlbFJhdGlvPj0xLjU/MjoxO3RoaXMuaj0oMCxfLnkpKHRoaXMuQSx0aGlzKTt0aGlzLmw9bnVsbDsodGhpcy5nPXRoaXMuaC5tYXRjaE1lZGlhP3RoaXMuaC5tYXRjaE1lZGlhKCIobWluLXJlc29sdXRpb246IDEuNWRwcHgpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpIik6bnVsbCkmJnR5cGVvZiB0aGlzLmcuYWRkTGlzdGVuZXIhPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdGhpcy5nLmFkZEV2ZW50TGlzdGVuZXIhPT0iZnVuY3Rpb24iJiYodGhpcy5nPW51bGwpfTsKbmI9ZnVuY3Rpb24oYSxiKXtfLnUuY2FsbCh0aGlzKTt0aGlzLm89YTtpZihiKXtpZih0aGlzLmwpdGhyb3cgRXJyb3IoIngiKTt0aGlzLmw9Yjt0aGlzLmg9Xy5sYihiKTt0aGlzLmc9bmV3IGpiKF8ubWIoYikpO3RoaXMuZy5uZCh0aGlzLm8uaCgpKTt0aGlzLmo9bmV3IGtiKHRoaXMuaCk7dGhpcy5qLnN0YXJ0KCl9fTtwYj1mdW5jdGlvbihhKXthPWEuSGQuY2hhckNvZGVBdChhLkJiKyspO3JldHVybiBvYlthXX07cWI9ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPTA7ZG97dmFyIGQ9cGIoYSk7Ynw9KGQmMzEpPDxjO2MrPTV9d2hpbGUoZCYzMik7cmV0dXJuIGI8MD9iKzQyOTQ5NjcyOTY6Yn07Xy5yYj1mdW5jdGlvbihhKXtfLnYuc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGE7fSwwKX07c2I9ZnVuY3Rpb24oYSxiKXt0aGlzLmc9YTt0aGlzLmg9Yn07CnViPWZ1bmN0aW9uKGEsYil7Xy51LmNhbGwodGhpcyk7dGhpcy5sPWE7dGhpcy5BPWI7dGhpcy5qPXRiP251bGw6W107dGhpcy5oPXRiP251bGw6W107dGhpcy5vPXRiP251bGw6W107dGhpcy5CPSExfTt2Yj1mdW5jdGlvbigpe3RoaXMuTz10aGlzLnFhPW51bGx9O0FiPWZ1bmN0aW9uKCl7Zm9yKHZhciBhO2E9d2IucmVtb3ZlKCk7KXt0cnl7YS5nLmNhbGwoYS5zY29wZSl9Y2F0Y2goYil7Xy5yYihiKX14Yih5YixhKX16Yj0hMX07QmI9ZnVuY3Rpb24oKXt0aGlzLkI9W107dGhpcy5vPXRoaXMuaD0hMTt0aGlzLmw9dm9pZCAwO3RoaXMuRz10aGlzLlc9dGhpcy5EPSExO3RoaXMuQz0wO3RoaXMuaj1udWxsO3RoaXMuQT0wfTtfLkNiPWZ1bmN0aW9uKGEpe3JldHVybiBhP2RlY29kZVVSSShhKTphfTsKXy5FYj1mdW5jdGlvbihhLGIpe2lmKGEpe2E9YS5zcGxpdCgiJiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLmluZGV4T2YoIj0iKSxlPW51bGw7aWYoZD49MCl7dmFyIGY9YVtjXS5zdWJzdHJpbmcoMCxkKTtlPWFbY10uc3Vic3RyaW5nKGQrMSl9ZWxzZSBmPWFbY107YihmLGU/Xy5EYihlKToiIil9fX07RmI9ZnVuY3Rpb24oYSxiLGMpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspRmIoYSxTdHJpbmcoYltkXSksYyk7ZWxzZSBiIT1udWxsJiZjLnB1c2goYSsoYj09PSIiPyIiOiI9IitfLkdiKGIpKSl9O18uSGI9ZnVuY3Rpb24oYSl7Xy51LmNhbGwodGhpcyk7dGhpcy5oPWE7dGhpcy5nPXt9fTtJYj1mdW5jdGlvbigpe307SmI9ZnVuY3Rpb24oKXt9O18uTGI9ZnVuY3Rpb24oYSl7YT1fLktiKGEpO3JldHVybiBfLk1hKGEpfTsKXy5LYj1mdW5jdGlvbihhKXtyZXR1cm4gYT09PW51bGw/Im51bGwiOmE9PT12b2lkIDA/InVuZGVmaW5lZCI6YX07TWI9dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj1mdW5jdGlvbigpe307Yi5wcm90b3R5cGU9YTtyZXR1cm4gbmV3IGJ9O05iPXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz09ImZ1bmN0aW9uIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwpPYj1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoImEiKTt9O18uUGI9T2IodGhpcyk7UWI9IkludDggVWludDggVWludDhDbGFtcGVkIEludDE2IFVpbnQxNiBJbnQzMiBVaW50MzIgRmxvYXQzMiBGbG9hdDY0Ii5zcGxpdCgiICIpO18uUGIuQmlnSW50NjRBcnJheSYmKFFiLnB1c2goIkJpZ0ludDY0IiksUWIucHVzaCgiQmlnVWludDY0IikpO1NiPWZ1bmN0aW9uKGEsYil7aWYoYilmb3IodmFyIGM9MDtjPFFiLmxlbmd0aDtjKyspUmIoUWJbY10rIkFycmF5LnByb3RvdHlwZS4iK2EsYil9Owp6PWZ1bmN0aW9uKGEsYil7YiYmUmIoYSxiKX07UmI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1fLlBiO2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmYiE9bnVsbCYmTmIoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKXy5UYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtmdW5jdGlvbiBjKCl7fW5ldyBjO1JlZmxlY3QuY29uc3RydWN0KGMsW10sZnVuY3Rpb24oKXt9KTtyZXR1cm4gbmV3IGMgaW5zdGFuY2VvZiBjfWlmKHR5cGVvZiBSZWZsZWN0IT0idW5kZWZpbmVkIiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe2lmKGEoKSlyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3Q7dmFyIGI9UmVmbGVjdC5jb25zdHJ1Y3Q7cmV0dXJuIGZ1bmN0aW9uKGMsZCxlKXtjPWIoYyxkKTtlJiZSZWZsZWN0LnNldFByb3RvdHlwZU9mKGMsZS5wcm90b3R5cGUpO3JldHVybiBjfX1yZXR1cm4gZnVuY3Rpb24oYyxkLGUpe2U9PT12b2lkIDAmJihlPWMpO2U9TWIoZS5wcm90b3R5cGV8fE9iamVjdC5wcm90b3R5cGUpO3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjLGUsZCl8fGV9fSgpOwppZih0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT0iZnVuY3Rpb24iKVViPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBWYjthOnt2YXIgV2I9e2E6ITB9LFhiPXt9O3RyeXtYYi5fX3Byb3RvX189V2I7VmI9WGIuYTticmVhayBhfWNhdGNoKGEpe31WYj0hMX1VYj1WYj9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoImJgIithKTtyZXR1cm4gYX06bnVsbH1ZYj1VYjsKXy5CPWZ1bmN0aW9uKGEsYil7YS5wcm90b3R5cGU9TWIoYi5wcm90b3R5cGUpO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7aWYoWWIpWWIoYSxiKTtlbHNlIGZvcih2YXIgYyBpbiBiKWlmKGMhPSJwcm90b3R5cGUiKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKXt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGIsYyk7ZCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYyxkKX1lbHNlIGFbY109YltjXTthLmVhPWIucHJvdG90eXBlfTtaYj1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07Cl8uQz1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07aWYoYilyZXR1cm4gYi5jYWxsKGEpO2lmKHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciIpcmV0dXJue25leHQ6WmIoYSl9O3Rocm93IEVycm9yKCJjYCIrU3RyaW5nKGEpKTt9O18uJGI9ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPV8uQyhhKTtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTthPWN9cmV0dXJuIGF9O2FjPWZ1bmN0aW9uKGEsYil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGIpfTsKYmM9dHlwZW9mIE9iamVjdC5hc3NpZ249PSJmdW5jdGlvbiI/T2JqZWN0LmFzc2lnbjpmdW5jdGlvbihhLGIpe2lmKGE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiZCIpO2E9T2JqZWN0KGEpO2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBkPWFyZ3VtZW50c1tjXTtpZihkKWZvcih2YXIgZSBpbiBkKWFjKGQsZSkmJihhW2VdPWRbZV0pfXJldHVybiBhfTt6KCJPYmplY3QuYXNzaWduIixmdW5jdGlvbihhKXtyZXR1cm4gYXx8YmN9KTtfLmNjPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZWAiK2EpO307Xy5GPWZ1bmN0aW9uKCl7dGhpcy5HPSExO3RoaXMuQT1udWxsO3RoaXMuaj12b2lkIDA7dGhpcy5nPTE7dGhpcy5vPXRoaXMuQz0wO3RoaXMuVz10aGlzLmw9bnVsbH07Xy5GLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGEpe3RoaXMuaj1hfTsKXy5GLnByb3RvdHlwZS5nZXROZXh0QWRkcmVzc0pzYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O18uRi5wcm90b3R5cGUuZ2V0WWllbGRSZXN1bHRKc2M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfTtfLkYucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmw9e3JldHVybjphfTt0aGlzLmc9dGhpcy5vfTtfLkYucHJvdG90eXBlWyJyZXR1cm4iXT1fLkYucHJvdG90eXBlLnJldHVybjtfLkYucHJvdG90eXBlLlI9ZnVuY3Rpb24oYSl7dGhpcy5sPXt4YTphfTt0aGlzLmc9dGhpcy5vfTtfLkYucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1fLkYucHJvdG90eXBlLlI7Xy5GLnByb3RvdHlwZS5oPWZ1bmN0aW9uKGEsYil7dGhpcy5nPWI7cmV0dXJue3ZhbHVlOmF9fTtfLkYucHJvdG90eXBlLnlpZWxkPV8uRi5wcm90b3R5cGUuaDsKXy5GLnByb3RvdHlwZS5UPWZ1bmN0aW9uKGEsYil7YT1fLkMoYSk7dmFyIGM9YS5uZXh0KCk7Xy5jYyhjKTtpZihjLmRvbmUpdGhpcy5qPWMudmFsdWUsdGhpcy5nPWI7ZWxzZSByZXR1cm4gdGhpcy5BPWEsdGhpcy5oKGMudmFsdWUsYil9O18uRi5wcm90b3R5cGUueWllbGRBbGw9Xy5GLnByb3RvdHlwZS5UO18uRi5wcm90b3R5cGUueGE9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9O18uRi5wcm90b3R5cGUuanVtcFRvPV8uRi5wcm90b3R5cGUueGE7Xy5GLnByb3RvdHlwZS5CPWZ1bmN0aW9uKCl7dGhpcy5nPTB9O18uRi5wcm90b3R5cGUuanVtcFRvRW5kPV8uRi5wcm90b3R5cGUuQjtfLkYucHJvdG90eXBlLkY9ZnVuY3Rpb24oYSxiKXt0aGlzLkM9YTtiIT12b2lkIDAmJih0aGlzLm89Yil9O18uRi5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPV8uRi5wcm90b3R5cGUuRjtfLkYucHJvdG90eXBlLlA9ZnVuY3Rpb24oYSl7dGhpcy5DPTA7dGhpcy5vPWF8fDB9OwpfLkYucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1fLkYucHJvdG90eXBlLlA7Xy5GLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGEsYil7dGhpcy5nPWE7dGhpcy5DPWJ8fDB9O18uRi5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1fLkYucHJvdG90eXBlLks7Xy5GLnByb3RvdHlwZS5EPWZ1bmN0aW9uKGEpe3RoaXMuQz1hfHwwO2E9dGhpcy5sLmJmO3RoaXMubD1udWxsO3JldHVybiBhfTtfLkYucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1fLkYucHJvdG90eXBlLkQ7Xy5GLnByb3RvdHlwZS5MPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuV1tjXT10aGlzLmw6dGhpcy5XPVt0aGlzLmxdO3RoaXMuQz1hfHwwO3RoaXMubz1ifHwwfTtfLkYucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPV8uRi5wcm90b3R5cGUuTDsKXy5GLnByb3RvdHlwZS5xYT1mdW5jdGlvbihhLGIpe2I9dGhpcy5XLnNwbGljZShifHwwKVswXTsoYj10aGlzLmw9dGhpcy5sfHxiKT9iLkNmP3RoaXMuZz10aGlzLkN8fHRoaXMubzpiLnhhIT12b2lkIDAmJnRoaXMubzxiLnhhPyh0aGlzLmc9Yi54YSx0aGlzLmw9bnVsbCk6dGhpcy5nPXRoaXMubzp0aGlzLmc9YX07Xy5GLnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1fLkYucHJvdG90eXBlLnFhO18uRi5wcm90b3R5cGUuTz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IGRjKGEpfTtfLkYucHJvdG90eXBlLmZvckluPV8uRi5wcm90b3R5cGUuTzt2YXIgZGM9ZnVuY3Rpb24oYSl7dGhpcy5qPWE7dGhpcy5nPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMuZy5wdXNoKGIpO3RoaXMuZy5yZXZlcnNlKCl9O2RjLnByb3RvdHlwZS5oPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmcubGVuZ3RoPjA7KXt2YXIgYT10aGlzLmcucG9wKCk7aWYoYSBpbiB0aGlzLmopcmV0dXJuIGF9cmV0dXJuIG51bGx9OwpkYy5wcm90b3R5cGUuZ2V0TmV4dD1kYy5wcm90b3R5cGUuaDtfLmVjPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPU51bWJlcih0aGlzKSxiPVtdLGM9YTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWJbYy1hXT1hcmd1bWVudHNbY107cmV0dXJuIGJ9O3ooImdsb2JhbFRoaXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxfLlBifSk7eigiUmVmbGVjdCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTp7fX0pO3ooIlJlZmxlY3QuY29uc3RydWN0IixmdW5jdGlvbigpe3JldHVybiBfLlRifSk7eigiUmVmbGVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpZYj9mdW5jdGlvbihiLGMpe3RyeXtyZXR1cm4gWWIoYixjKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19Om51bGx9KTsKeigiU3ltYm9sIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO3ZhciBiPWZ1bmN0aW9uKGYsZyl7dGhpcy5nPWY7TmIodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pfTtiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O3ZhciBjPSJqc2NvbXBfc3ltYm9sXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCkrIl8iLGQ9MCxlPWZ1bmN0aW9uKGYpe2lmKHRoaXMgaW5zdGFuY2VvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoImciKTtyZXR1cm4gbmV3IGIoYysoZnx8IiIpKyJfIitkKyssZil9O3JldHVybiBlfSk7eigiU3ltYm9sLml0ZXJhdG9yIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO2E9U3ltYm9sKCJoIik7TmIoQXJyYXkucHJvdG90eXBlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBmYyhaYih0aGlzKSl9fSk7cmV0dXJuIGF9KTsKdmFyIGZjPWZ1bmN0aW9uKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfTsKeigiUHJvbWlzZSIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe3RoaXMuZz1udWxsfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBlP2c6bmV3IGUoZnVuY3Rpb24oaCl7aChnKX0pfWlmKGEpcmV0dXJuIGE7Yi5wcm90b3R5cGUuaD1mdW5jdGlvbihnKXtpZih0aGlzLmc9PW51bGwpe3RoaXMuZz1bXTt2YXIgaD10aGlzO3RoaXMuaihmdW5jdGlvbigpe2gubygpfSl9dGhpcy5nLnB1c2goZyl9O3ZhciBkPV8uUGIuc2V0VGltZW91dDtiLnByb3RvdHlwZS5qPWZ1bmN0aW9uKGcpe2QoZywwKX07Yi5wcm90b3R5cGUubz1mdW5jdGlvbigpe2Zvcig7dGhpcy5nJiZ0aGlzLmcubGVuZ3RoOyl7dmFyIGc9dGhpcy5nO3RoaXMuZz1bXTtmb3IodmFyIGg9MDtoPGcubGVuZ3RoOysraCl7dmFyIGs9Z1toXTtnW2hdPW51bGw7dHJ5e2soKX1jYXRjaChsKXt0aGlzLmwobCl9fX10aGlzLmc9bnVsbH07Yi5wcm90b3R5cGUubD1mdW5jdGlvbihnKXt0aGlzLmooZnVuY3Rpb24oKXt0aHJvdyBnOwp9KX07dmFyIGU9ZnVuY3Rpb24oZyl7dGhpcy5nPTA7dGhpcy5qPXZvaWQgMDt0aGlzLmg9W107dGhpcy5CPSExO3ZhciBoPXRoaXMubCgpO3RyeXtnKGgucmVzb2x2ZSxoLnJlamVjdCl9Y2F0Y2goayl7aC5yZWplY3Qoayl9fTtlLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhsKXtyZXR1cm4gZnVuY3Rpb24obil7a3x8KGs9ITAsbC5jYWxsKGgsbikpfX12YXIgaD10aGlzLGs9ITE7cmV0dXJue3Jlc29sdmU6Zyh0aGlzLkkpLHJlamVjdDpnKHRoaXMubyl9fTtlLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGcpe2lmKGc9PT10aGlzKXRoaXMubyhuZXcgVHlwZUVycm9yKCJpIikpO2Vsc2UgaWYoZyBpbnN0YW5jZW9mIGUpdGhpcy5LKGcpO2Vsc2V7YTpzd2l0Y2godHlwZW9mIGcpe2Nhc2UgIm9iamVjdCI6dmFyIGg9ZyE9bnVsbDticmVhayBhO2Nhc2UgImZ1bmN0aW9uIjpoPSEwO2JyZWFrIGE7ZGVmYXVsdDpoPSExfWg/dGhpcy5HKGcpOnRoaXMuQShnKX19O2UucHJvdG90eXBlLkc9CmZ1bmN0aW9uKGcpe3ZhciBoPXZvaWQgMDt0cnl7aD1nLnRoZW59Y2F0Y2goayl7dGhpcy5vKGspO3JldHVybn10eXBlb2YgaD09ImZ1bmN0aW9uIj90aGlzLkwoaCxnKTp0aGlzLkEoZyl9O2UucHJvdG90eXBlLm89ZnVuY3Rpb24oZyl7dGhpcy5DKDIsZyl9O2UucHJvdG90eXBlLkE9ZnVuY3Rpb24oZyl7dGhpcy5DKDEsZyl9O2UucHJvdG90eXBlLkM9ZnVuY3Rpb24oZyxoKXtpZih0aGlzLmchPTApdGhyb3cgRXJyb3IoImpgIitnKyJgIitoKyJgIit0aGlzLmcpO3RoaXMuZz1nO3RoaXMuaj1oO3RoaXMuZz09PTImJnRoaXMuVygpO3RoaXMuRCgpfTtlLnByb3RvdHlwZS5XPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcztkKGZ1bmN0aW9uKCl7aWYoZy5GKCkpe3ZhciBoPV8uUGIuY29uc29sZTt0eXBlb2YgaCE9PSJ1bmRlZmluZWQiJiZoLmVycm9yKGcuail9fSwxKX07ZS5wcm90b3R5cGUuRj1mdW5jdGlvbigpe2lmKHRoaXMuQilyZXR1cm4hMTt2YXIgZz1fLlBiLkN1c3RvbUV2ZW50LApoPV8uUGIuRXZlbnQsaz1fLlBiLmRpc3BhdGNoRXZlbnQ7aWYodHlwZW9mIGs9PT0idW5kZWZpbmVkIilyZXR1cm4hMDt0eXBlb2YgZz09PSJmdW5jdGlvbiI/Zz1uZXcgZygidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOnR5cGVvZiBoPT09ImZ1bmN0aW9uIj9nPW5ldyBoKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6KGc9Xy5QYi5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxnLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxnKSk7Zy5wcm9taXNlPXRoaXM7Zy5yZWFzb249dGhpcy5qO3JldHVybiBrKGcpfTtlLnByb3RvdHlwZS5EPWZ1bmN0aW9uKCl7aWYodGhpcy5oIT1udWxsKXtmb3IodmFyIGc9MDtnPHRoaXMuaC5sZW5ndGg7KytnKWYuaCh0aGlzLmhbZ10pO3RoaXMuaD1udWxsfX07dmFyIGY9bmV3IGI7ZS5wcm90b3R5cGUuSz1mdW5jdGlvbihnKXt2YXIgaD10aGlzLmwoKTtnLkljKGgucmVzb2x2ZSwKaC5yZWplY3QpfTtlLnByb3RvdHlwZS5MPWZ1bmN0aW9uKGcsaCl7dmFyIGs9dGhpcy5sKCk7dHJ5e2cuY2FsbChoLGsucmVzb2x2ZSxrLnJlamVjdCl9Y2F0Y2gobCl7ay5yZWplY3QobCl9fTtlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gayhwLHIpe3JldHVybiB0eXBlb2YgcD09ImZ1bmN0aW9uIj9mdW5jdGlvbih0KXt0cnl7bChwKHQpKX1jYXRjaChBKXtuKEEpfX06cn12YXIgbCxuLHE9bmV3IGUoZnVuY3Rpb24ocCxyKXtsPXA7bj1yfSk7dGhpcy5JYyhrKGcsbCksayhoLG4pKTtyZXR1cm4gcX07ZS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsZyl9O2UucHJvdG90eXBlLkljPWZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gaygpe3N3aXRjaChsLmcpe2Nhc2UgMTpnKGwuaik7YnJlYWs7Y2FzZSAyOmgobC5qKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJrYCIrbC5nKTt9fXZhciBsPXRoaXM7dGhpcy5oPT0KbnVsbD9mLmgoayk6dGhpcy5oLnB1c2goayk7dGhpcy5CPSEwfTtlLnJlc29sdmU9YztlLnJlamVjdD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtrKGcpfSl9O2UucmFjZT1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IGUoZnVuY3Rpb24oaCxrKXtmb3IodmFyIGw9Xy5DKGcpLG49bC5uZXh0KCk7IW4uZG9uZTtuPWwubmV4dCgpKWMobi52YWx1ZSkuSWMoaCxrKX0pfTtlLmFsbD1mdW5jdGlvbihnKXt2YXIgaD1fLkMoZyksaz1oLm5leHQoKTtyZXR1cm4gay5kb25lP2MoW10pOm5ldyBlKGZ1bmN0aW9uKGwsbil7ZnVuY3Rpb24gcSh0KXtyZXR1cm4gZnVuY3Rpb24oQSl7cFt0XT1BO3ItLTtyPT0wJiZsKHApfX12YXIgcD1bXSxyPTA7ZG8gcC5wdXNoKHZvaWQgMCkscisrLGMoay52YWx1ZSkuSWMocShwLmxlbmd0aC0xKSxuKSxrPWgubmV4dCgpO3doaWxlKCFrLmRvbmUpfSl9O3JldHVybiBlfSk7CnZhciBoYz1mdW5jdGlvbihhLGIsYyl7aWYoYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJsYCIrYyk7aWYoYiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtYCIrYyk7cmV0dXJuIGErIiJ9O3ooIlN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3ZhciBkPWhjKHRoaXMsYiwic3RhcnRzV2l0aCIpLGU9ZC5sZW5ndGgsZj1iLmxlbmd0aDtjPU1hdGgubWF4KDAsTWF0aC5taW4oY3wwLGQubGVuZ3RoKSk7Zm9yKHZhciBnPTA7ZzxmJiZjPGU7KWlmKGRbYysrXSE9YltnKytdKXJldHVybiExO3JldHVybiBnPj1mfX0pO3ooIk9iamVjdC5zZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oYSl7cmV0dXJuIGF8fFlifSk7eigiU3ltYm9sLmRpc3Bvc2UiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6U3ltYm9sKCJuIil9KTsKeigiV2Vha01hcCIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBjKGspe3ZhciBsPXR5cGVvZiBrO3JldHVybiBsPT09Im9iamVjdCImJmshPT1udWxsfHxsPT09ImZ1bmN0aW9uIn1mdW5jdGlvbiBkKGspe2lmKCFhYyhrLGYpKXt2YXIgbD1uZXcgYjtOYihrLGYse3ZhbHVlOmx9KX19ZnVuY3Rpb24gZShrKXt2YXIgbD1PYmplY3Rba107bCYmKE9iamVjdFtrXT1mdW5jdGlvbihuKXtpZihuIGluc3RhbmNlb2YgYilyZXR1cm4gbjtPYmplY3QuaXNFeHRlbnNpYmxlKG4pJiZkKG4pO3JldHVybiBsKG4pfSl9aWYoZnVuY3Rpb24oKXtpZighYXx8IU9iamVjdC5zZWFsKXJldHVybiExO3RyeXt2YXIgaz1PYmplY3Quc2VhbCh7fSksbD1PYmplY3Quc2VhbCh7fSksbj1uZXcgYShbW2ssMl0sW2wsM11dKTtpZihuLmdldChrKSE9Mnx8bi5nZXQobCkhPTMpcmV0dXJuITE7bi5kZWxldGUoayk7bi5zZXQobCw0KTtyZXR1cm4hbi5oYXMoaykmJm4uZ2V0KGwpPT00fWNhdGNoKHEpe3JldHVybiExfX0oKSlyZXR1cm4gYTsKdmFyIGY9IiRqc2NvbXBfaGlkZGVuXyIrTWF0aC5yYW5kb20oKTtlKCJmcmVlemUiKTtlKCJwcmV2ZW50RXh0ZW5zaW9ucyIpO2UoInNlYWwiKTt2YXIgZz0wLGg9ZnVuY3Rpb24oayl7dGhpcy5nPShnKz1NYXRoLnJhbmRvbSgpKzEpLnRvU3RyaW5nKCk7aWYoayl7az1fLkMoayk7Zm9yKHZhciBsOyEobD1rLm5leHQoKSkuZG9uZTspbD1sLnZhbHVlLHRoaXMuc2V0KGxbMF0sbFsxXSl9fTtoLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oayxsKXtpZighYyhrKSl0aHJvdyBFcnJvcigibyIpO2Qoayk7aWYoIWFjKGssZikpdGhyb3cgRXJyb3IoInBgIitrKTtrW2ZdW3RoaXMuZ109bDtyZXR1cm4gdGhpc307aC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGspe3JldHVybiBjKGspJiZhYyhrLGYpP2tbZl1bdGhpcy5nXTp2b2lkIDB9O2gucHJvdG90eXBlLmhhcz1mdW5jdGlvbihrKXtyZXR1cm4gYyhrKSYmYWMoayxmKSYmYWMoa1tmXSx0aGlzLmcpfTtoLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oayl7cmV0dXJuIGMoaykmJgphYyhrLGYpJiZhYyhrW2ZdLHRoaXMuZyk/ZGVsZXRlIGtbZl1bdGhpcy5nXTohMX07cmV0dXJuIGh9KTsKeigiTWFwIixmdW5jdGlvbihhKXtpZihmdW5jdGlvbigpe2lmKCFhfHx0eXBlb2YgYSE9ImZ1bmN0aW9uInx8IWEucHJvdG90eXBlLmVudHJpZXN8fHR5cGVvZiBPYmplY3Quc2VhbCE9ImZ1bmN0aW9uIilyZXR1cm4hMTt0cnl7dmFyIGg9T2JqZWN0LnNlYWwoe3g6NH0pLGs9bmV3IGEoXy5DKFtbaCwicyJdXSkpO2lmKGsuZ2V0KGgpIT0icyJ8fGsuc2l6ZSE9MXx8ay5nZXQoe3g6NH0pfHxrLnNldCh7eDo0fSwidCIpIT1rfHxrLnNpemUhPTIpcmV0dXJuITE7dmFyIGw9ay5lbnRyaWVzKCksbj1sLm5leHQoKTtpZihuLmRvbmV8fG4udmFsdWVbMF0hPWh8fG4udmFsdWVbMV0hPSJzIilyZXR1cm4hMTtuPWwubmV4dCgpO3JldHVybiBuLmRvbmV8fG4udmFsdWVbMF0ueCE9NHx8bi52YWx1ZVsxXSE9InQifHwhbC5uZXh0KCkuZG9uZT8hMTohMH1jYXRjaChxKXtyZXR1cm4hMX19KCkpcmV0dXJuIGE7dmFyIGI9bmV3IFdlYWtNYXAsYz1mdW5jdGlvbihoKXt0aGlzWzBdPXt9O3RoaXNbMV09CmYoKTt0aGlzLnNpemU9MDtpZihoKXtoPV8uQyhoKTtmb3IodmFyIGs7IShrPWgubmV4dCgpKS5kb25lOylrPWsudmFsdWUsdGhpcy5zZXQoa1swXSxrWzFdKX19O2MucHJvdG90eXBlLnNldD1mdW5jdGlvbihoLGspe2g9aD09PTA/MDpoO3ZhciBsPWQodGhpcyxoKTtsLmxpc3R8fChsLmxpc3Q9dGhpc1swXVtsLmlkXT1bXSk7bC5lbnRyeT9sLmVudHJ5LnZhbHVlPWs6KGwuZW50cnk9e25leHQ6dGhpc1sxXSxiYjp0aGlzWzFdLmJiLGhlYWQ6dGhpc1sxXSxrZXk6aCx2YWx1ZTprfSxsLmxpc3QucHVzaChsLmVudHJ5KSx0aGlzWzFdLmJiLm5leHQ9bC5lbnRyeSx0aGlzWzFdLmJiPWwuZW50cnksdGhpcy5zaXplKyspO3JldHVybiB0aGlzfTtjLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oaCl7aD1kKHRoaXMsaCk7cmV0dXJuIGguZW50cnkmJmgubGlzdD8oaC5saXN0LnNwbGljZShoLmluZGV4LDEpLGgubGlzdC5sZW5ndGh8fGRlbGV0ZSB0aGlzWzBdW2guaWRdLGguZW50cnkuYmIubmV4dD0KaC5lbnRyeS5uZXh0LGguZW50cnkubmV4dC5iYj1oLmVudHJ5LmJiLGguZW50cnkuaGVhZD1udWxsLHRoaXMuc2l6ZS0tLCEwKTohMX07Yy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzWzBdPXt9O3RoaXNbMV09dGhpc1sxXS5iYj1mKCk7dGhpcy5zaXplPTB9O2MucHJvdG90eXBlLmhhcz1mdW5jdGlvbihoKXtyZXR1cm4hIWQodGhpcyxoKS5lbnRyeX07Yy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGgpe3JldHVybihoPWQodGhpcyxoKS5lbnRyeSkmJmgudmFsdWV9O2MucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGZ1bmN0aW9uKGgpe3JldHVybltoLmtleSxoLnZhbHVlXX0pfTtjLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm4gaC5rZXl9KX07Yy5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm4gaC52YWx1ZX0pfTtjLnByb3RvdHlwZS5mb3JFYWNoPQpmdW5jdGlvbihoLGspe2Zvcih2YXIgbD10aGlzLmVudHJpZXMoKSxuOyEobj1sLm5leHQoKSkuZG9uZTspbj1uLnZhbHVlLGguY2FsbChrLG5bMV0sblswXSx0aGlzKX07Yy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1jLnByb3RvdHlwZS5lbnRyaWVzO3ZhciBkPWZ1bmN0aW9uKGgsayl7dmFyIGw9ayYmdHlwZW9mIGs7bD09Im9iamVjdCJ8fGw9PSJmdW5jdGlvbiI/Yi5oYXMoayk/bD1iLmdldChrKToobD0iIisgKytnLGIuc2V0KGssbCkpOmw9InBfIitrO3ZhciBuPWhbMF1bbF07aWYobiYmYWMoaFswXSxsKSlmb3IoaD0wO2g8bi5sZW5ndGg7aCsrKXt2YXIgcT1uW2hdO2lmKGshPT1rJiZxLmtleSE9PXEua2V5fHxrPT09cS5rZXkpcmV0dXJue2lkOmwsbGlzdDpuLGluZGV4OmgsZW50cnk6cX19cmV0dXJue2lkOmwsbGlzdDpuLGluZGV4Oi0xLGVudHJ5OnZvaWQgMH19LGU9ZnVuY3Rpb24oaCxrKXt2YXIgbD1oWzFdO3JldHVybiBmYyhmdW5jdGlvbigpe2lmKGwpe2Zvcig7bC5oZWFkIT0KaFsxXTspbD1sLmJiO2Zvcig7bC5uZXh0IT1sLmhlYWQ7KXJldHVybiBsPWwubmV4dCx7ZG9uZTohMSx2YWx1ZTprKGwpfTtsPW51bGx9cmV0dXJue2RvbmU6ITAsdmFsdWU6dm9pZCAwfX0pfSxmPWZ1bmN0aW9uKCl7dmFyIGg9e307cmV0dXJuIGguYmI9aC5uZXh0PWguaGVhZD1ofSxnPTA7cmV0dXJuIGN9KTsKeigiU2V0IixmdW5jdGlvbihhKXtpZihmdW5jdGlvbigpe2lmKCFhfHx0eXBlb2YgYSE9ImZ1bmN0aW9uInx8IWEucHJvdG90eXBlLmVudHJpZXN8fHR5cGVvZiBPYmplY3Quc2VhbCE9ImZ1bmN0aW9uIilyZXR1cm4hMTt0cnl7dmFyIGM9T2JqZWN0LnNlYWwoe3g6NH0pLGQ9bmV3IGEoXy5DKFtjXSkpO2lmKCFkLmhhcyhjKXx8ZC5zaXplIT0xfHxkLmFkZChjKSE9ZHx8ZC5zaXplIT0xfHxkLmFkZCh7eDo0fSkhPWR8fGQuc2l6ZSE9MilyZXR1cm4hMTt2YXIgZT1kLmVudHJpZXMoKSxmPWUubmV4dCgpO2lmKGYuZG9uZXx8Zi52YWx1ZVswXSE9Y3x8Zi52YWx1ZVsxXSE9YylyZXR1cm4hMTtmPWUubmV4dCgpO3JldHVybiBmLmRvbmV8fGYudmFsdWVbMF09PWN8fGYudmFsdWVbMF0ueCE9NHx8Zi52YWx1ZVsxXSE9Zi52YWx1ZVswXT8hMTplLm5leHQoKS5kb25lfWNhdGNoKGcpe3JldHVybiExfX0oKSlyZXR1cm4gYTt2YXIgYj1mdW5jdGlvbihjKXt0aGlzLmc9bmV3IE1hcDtpZihjKXtjPQpfLkMoYyk7Zm9yKHZhciBkOyEoZD1jLm5leHQoKSkuZG9uZTspdGhpcy5hZGQoZC52YWx1ZSl9dGhpcy5zaXplPXRoaXMuZy5zaXplfTtiLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYyl7Yz1jPT09MD8wOmM7dGhpcy5nLnNldChjLGMpO3RoaXMuc2l6ZT10aGlzLmcuc2l6ZTtyZXR1cm4gdGhpc307Yi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGMpe2M9dGhpcy5nLmRlbGV0ZShjKTt0aGlzLnNpemU9dGhpcy5nLnNpemU7cmV0dXJuIGN9O2IucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5nLmNsZWFyKCk7dGhpcy5zaXplPTB9O2IucHJvdG90eXBlLmhhcz1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5nLmhhcyhjKX07Yi5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcuZW50cmllcygpfTtiLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLnZhbHVlcygpfTtiLnByb3RvdHlwZS5rZXlzPWIucHJvdG90eXBlLnZhbHVlczsKYi5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1iLnByb3RvdHlwZS52YWx1ZXM7Yi5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihjLGQpe3ZhciBlPXRoaXM7dGhpcy5nLmZvckVhY2goZnVuY3Rpb24oZil7cmV0dXJuIGMuY2FsbChkLGYsZixlKX0pfTtyZXR1cm4gYn0pO3ZhciBpYz1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBTdHJpbmcmJihhKz0iIik7dmFyIGM9MCxkPSExLGU9e25leHQ6ZnVuY3Rpb24oKXtpZighZCYmYzxhLmxlbmd0aCl7dmFyIGY9YysrO3JldHVybnt2YWx1ZTpiKGYsYVtmXSksZG9uZTohMX19ZD0hMDtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fX07ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBlfTt6KCJBcnJheS5wcm90b3R5cGUuZW50cmllcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiBpYyh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuW2IsY119KX19KTsKeigiQXJyYXkucHJvdG90eXBlLmtleXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4gaWModGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYn0pfX0pO3ooIlN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGgiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD1oYyh0aGlzLGIsImVuZHNXaXRoIik7Yz09PXZvaWQgMCYmKGM9ZC5sZW5ndGgpO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGU9Yi5sZW5ndGg7ZT4wJiZjPjA7KWlmKGRbLS1jXSE9YlstLWVdKXJldHVybiExO3JldHVybiBlPD0wfX0pO3ooIk51bWJlci5pc0Zpbml0ZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGIhPT0ibnVtYmVyIj8hMTohaXNOYU4oYikmJmIhPT1JbmZpbml0eSYmYiE9PS1JbmZpbml0eX19KTsKeigiQXJyYXkucHJvdG90eXBlLmZpbmQiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXthOnt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7Zm9yKHZhciBlPWQubGVuZ3RoLGY9MDtmPGU7ZisrKXt2YXIgZz1kW2ZdO2lmKGIuY2FsbChjLGcsZixkKSl7Yj1nO2JyZWFrIGF9fWI9dm9pZCAwfXJldHVybiBifX0pO3ooIk9iamVjdC5lbnRyaWVzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYilhYyhiLGQpJiZjLnB1c2goW2QsYltkXV0pO3JldHVybiBjfX0pOwp6KCJBcnJheS5mcm9tIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyxkKXtjPWMhPW51bGw/YzpmdW5jdGlvbihoKXtyZXR1cm4gaH07dmFyIGU9W10sZj10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07aWYodHlwZW9mIGY9PSJmdW5jdGlvbiIpe2I9Zi5jYWxsKGIpO2Zvcih2YXIgZz0wOyEoZj1iLm5leHQoKSkuZG9uZTspZS5wdXNoKGMuY2FsbChkLGYudmFsdWUsZysrKSl9ZWxzZSBmb3IoZj1iLmxlbmd0aCxnPTA7ZzxmO2crKyllLnB1c2goYy5jYWxsKGQsYltnXSxnKSk7cmV0dXJuIGV9fSk7eigiQXJyYXkucHJvdG90eXBlLnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybiBpYyh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGN9KX19KTsKeigiT2JqZWN0LnZhbHVlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXt2YXIgYz1bXSxkO2ZvcihkIGluIGIpYWMoYixkKSYmYy5wdXNoKGJbZF0pO3JldHVybiBjfX0pO3ooIk9iamVjdC5pcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBiPT09Yz9iIT09MHx8MS9iPT09MS9jOmIhPT1iJiZjIT09Y319KTt6KCJBcnJheS5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzO2QgaW5zdGFuY2VvZiBTdHJpbmcmJihkPVN0cmluZyhkKSk7dmFyIGU9ZC5sZW5ndGg7Yz1jfHwwO2ZvcihjPDAmJihjPU1hdGgubWF4KGMrZSwwKSk7YzxlO2MrKyl7dmFyIGY9ZFtjXTtpZihmPT09Ynx8T2JqZWN0LmlzKGYsYikpcmV0dXJuITB9cmV0dXJuITF9fSk7CnooIlN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYixjKXtyZXR1cm4gaGModGhpcyxiLCJpbmNsdWRlcyIpLmluZGV4T2YoYixjfHwwKSE9PS0xfX0pO3ooIk51bWJlci5NQVhfU0FGRV9JTlRFR0VSIixmdW5jdGlvbigpe3JldHVybiA5MDA3MTk5MjU0NzQwOTkxfSk7eigiTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIiLGZ1bmN0aW9uKCl7cmV0dXJuLTkwMDcxOTkyNTQ3NDA5OTF9KTt6KCJOdW1iZXIuaXNJbnRlZ2VyIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoYik/Yj09PU1hdGguZmxvb3IoYik6ITF9fSk7eigiTnVtYmVyLmlzU2FmZUludGVnZXIiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoYikmJk1hdGguYWJzKGIpPD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUn19KTsKeigiT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbigpe3JldHVybltdfX0pO3ooIk1hdGgudHJ1bmMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7Yj1OdW1iZXIoYik7aWYoaXNOYU4oYil8fGI9PT1JbmZpbml0eXx8Yj09PS1JbmZpbml0eXx8Yj09PTApcmV0dXJuIGI7dmFyIGM9TWF0aC5mbG9vcihNYXRoLmFicyhiKSk7cmV0dXJuIGI8MD8tYzpjfX0pO3ooIk51bWJlci5pc05hTiIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGI9PT0ibnVtYmVyIiYmaXNOYU4oYil9fSk7CnooIlN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe2lmKGIgaW5zdGFuY2VvZiBSZWdFeHAmJiFiLmdsb2JhbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJxIik7cmV0dXJuIGIgaW5zdGFuY2VvZiBSZWdFeHA/dGhpcy5yZXBsYWNlKGIsYyk6dGhpcy5yZXBsYWNlKG5ldyBSZWdFeHAoU3RyaW5nKGIpLnJlcGxhY2UoLyhbLSgpXFtcXXt9Kz8qLiRcXnwsOiM8IVxcXSkvZywiXFwkMSIpLnJlcGxhY2UoL1x4MDgvZywiXFx4MDgiKSwiZyIpLGMpfX0pOwp6KCJBcnJheS5wcm90b3R5cGUuZmxhdCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiKXtiPWI9PT12b2lkIDA/MTpiO3ZhciBjPVtdO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodGhpcyxmdW5jdGlvbihkKXtBcnJheS5pc0FycmF5KGQpJiZiPjA/KGQ9QXJyYXkucHJvdG90eXBlLmZsYXQuY2FsbChkLGItMSksYy5wdXNoLmFwcGx5KGMsZCkpOmMucHVzaChkKX0pO3JldHVybiBjfX0pO3ooIlByb21pc2UucHJvdG90eXBlLmZpbmFsbHkiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGIoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBjfSl9LGZ1bmN0aW9uKGMpe3JldHVybiBQcm9taXNlLnJlc29sdmUoYigpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgYzt9KX0pfX0pOwp6KCJBcnJheS5wcm90b3R5cGUuZmlsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMsZCl7dmFyIGU9dGhpcy5sZW5ndGh8fDA7YzwwJiYoYz1NYXRoLm1heCgwLGUrYykpO2lmKGQ9PW51bGx8fGQ+ZSlkPWU7ZD1OdW1iZXIoZCk7ZDwwJiYoZD1NYXRoLm1heCgwLGUrZCkpO2ZvcihjPU51bWJlcihjfHwwKTtjPGQ7YysrKXRoaXNbY109YjtyZXR1cm4gdGhpc319KTtTYigiZmlsbCIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpBcnJheS5wcm90b3R5cGUuZmlsbH0pO18uX0R1bXBFeGNlcHRpb249d2luZG93Ll9EdW1wRXhjZXB0aW9ufHxmdW5jdGlvbihhKXt0aHJvdyBhO307d2luZG93Ll9EdW1wRXhjZXB0aW9uPV8uX0R1bXBFeGNlcHRpb247dmFyIGpjLGxjLG1jLG5jLHphLEFhLHBjLHFjO2pjPWpjfHx7fTtfLnY9dGhpc3x8c2VsZjtsYz1mdW5jdGlvbihhLGIpe3ZhciBjPV8ua2MoIldJWl9nbG9iYWxfZGF0YS5veE4zbmIiKTthPWMmJmNbYV07cmV0dXJuIGEhPW51bGw/YTpifTttYz1fLnYuX0ZfdG9nZ2xlc19kZWZhdWx0X3RyfHxbXTtuYz1mdW5jdGlvbigpe307bmMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O18ua2M9ZnVuY3Rpb24oYSxiKXthPWEuc3BsaXQoIi4iKTtiPWJ8fF8udjtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihiPWJbYVtjXV0sYj09bnVsbClyZXR1cm4gbnVsbDtyZXR1cm4gYn07Xy5vYz1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm4gYiE9Im9iamVjdCI/YjphP0FycmF5LmlzQXJyYXkoYSk/ImFycmF5IjpiOiJudWxsIn07Xy5xYT1mdW5jdGlvbihhKXt2YXIgYj1fLm9jKGEpO3JldHVybiBiPT0iYXJyYXkifHxiPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIn07Cl8ueWE9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7cmV0dXJuIGI9PSJvYmplY3QiJiZhIT1udWxsfHxiPT0iZnVuY3Rpb24ifTt6YT0iY2xvc3VyZV91aWRfIisoTWF0aC5yYW5kb20oKSoxRTk+Pj4wKTtBYT0wO3BjPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5jYWxsLmFwcGx5KGEuYmluZCxhcmd1bWVudHMpfTtxYz1mdW5jdGlvbihhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZihhcmd1bWVudHMubGVuZ3RoPjIpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsZCk7cmV0dXJuIGEuYXBwbHkoYixlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX07Cl8ueT1mdW5jdGlvbihhLGIsYyl7Xy55PUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kJiZGdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoIm5hdGl2ZSBjb2RlIikhPS0xP3BjOnFjO3JldHVybiBfLnkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtfLnJjPWZ1bmN0aW9uKGEsYil7YT1hLnNwbGl0KCIuIik7Zm9yKHZhciBjPV8udixkO2EubGVuZ3RoJiYoZD1hLnNoaWZ0KCkpOylhLmxlbmd0aHx8Yj09PXZvaWQgMD9jW2RdJiZjW2RdIT09T2JqZWN0LnByb3RvdHlwZVtkXT9jPWNbZF06Yz1jW2RdPXt9OmNbZF09Yn07Cl8uRz1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5lYT1iLnByb3RvdHlwZTthLnByb3RvdHlwZT1uZXcgYzthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2EuTWs9ZnVuY3Rpb24oZCxlLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2VdLmFwcGx5KGQsZyl9fTtfLkcoYWEsRXJyb3IpO2FhLnByb3RvdHlwZS5uYW1lPSJDdXN0b21FcnJvciI7dmFyIHNjO18uRyhjYSxhYSk7Y2EucHJvdG90eXBlLm5hbWU9IkFzc2VydGlvbkVycm9yIjt2YXIgZWE7dmFyIHRjPWZ1bmN0aW9uKGEsYil7dGhpcy5oPWE7dGhpcy5nPWJ8fG51bGx9O3RjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9O3ZhciB1Yz1uZXcgdGMoIm43M3F3ZiIsIm43M3F3ZiIpO3ZhciBuYT1TeW1ib2woInMiKTtfLnUucHJvdG90eXBlLnFhPSExO18udS5wcm90b3R5cGUucWI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xYX07Xy51LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5xYXx8KHRoaXMucWE9ITAsdGhpcy5NKCkpfTtfLnUucHJvdG90eXBlW1N5bWJvbC5kaXNwb3NlXT1mdW5jdGlvbigpe3RoaXMuZGlzcG9zZSgpfTtfLnUucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtpZih0aGlzLlcpZm9yKDt0aGlzLlcubGVuZ3RoOyl0aGlzLlcuc2hpZnQoKSgpfTt2YXIgc2Esd2M7c2E9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiB0eXBlb2YgYiE9PSJzdHJpbmcifHxiLmxlbmd0aCE9MT8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTtfLnZjPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoP2Z1bmN0aW9uKGEsYil7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGIsdm9pZCAwKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9YS5sZW5ndGgsZD10eXBlb2YgYT09PSJzdHJpbmciP2Euc3BsaXQoIiIpOmEsZT0wO2U8YztlKyspZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKX07CndjPUFycmF5LnByb3RvdHlwZS5yZWR1Y2U/ZnVuY3Rpb24oYSxiLGMpe0FycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jOygwLF8udmMpKGEsZnVuY3Rpb24oZSxmKXtkPWIuY2FsbCh2b2lkIDAsZCxlLGYsYSl9KX07Xy54Yz1BcnJheS5wcm90b3R5cGUuc29tZT9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPXR5cGVvZiBhPT09InN0cmluZyI/YS5zcGxpdCgiIik6YSxlPTA7ZTxjO2UrKylpZihlIGluIGQmJmIuY2FsbCh2b2lkIDAsZFtlXSxlLGEpKXJldHVybiEwO3JldHVybiExfTtfLnljPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PWI/ITA6YSYmYj9hLndpZHRoPT1iLndpZHRoJiZhLmhlaWdodD09Yi5oZWlnaHQ6ITF9O18uQ2EucHJvdG90eXBlLmFzcGVjdFJhdGlvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2lkdGgvdGhpcy5oZWlnaHR9O18uQ2EucHJvdG90eXBlLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLkNhLnByb3RvdHlwZS5mbG9vcj1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5DYS5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O3ZhciBFYTtFYT0iY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mIi5zcGxpdCgiICIpO18uemM9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWIuY2FsbChjLGFbZF0sZCxhKX07Xy5BYz1TdHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHJpbSgpfTpmdW5jdGlvbihhKXtyZXR1cm4vXltcc1x4YTBdKihbXHNcU10qPylbXHNceGEwXSokLy5leGVjKGEpWzFdfTt2YXIgQmM9Z2xvYmFsVGhpcy50cnVzdGVkVHlwZXMsSGE9QmMsSmE7Xy5MYT1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5MYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nKyIifTtfLkNjPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBVUkw9PT0iZnVuY3Rpb24ifSk7Xy5EYz1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5EYy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nKyIifTtfLkVjPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfLkRjKEJjP0JjLmVtcHR5SFRNTDoiIil9KTtfLlBhPWZ1bmN0aW9uKGEpe3RoaXMuZz1hfTtfLlBhLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcrIiJ9O18uR2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYSkpfTtfLkRiPWZ1bmN0aW9uKGEpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYS5yZXBsYWNlKC9cKy9nLCIgIikpfTt2YXIgRmM9ISEobWNbMF0+PjI1JjEpLEdjPSEhKG1jWzBdPj4yMCYxKSxIYz0hIShtY1swXT4+MjcmMSksSWM9ISEobWNbMF0mODE5MiksSmM9ISEobWNbMF0+PjE5JjEpLEtjPSEhKG1jWzBdPj4xNyYxKSxMYz0hIShtY1swXT4+MTgmMSk7dmFyIHRiLE5jLE9jO18uVWE9RmM/SGM6bGMoNjEwNDAxMzAxLCExKTtfLk1jPUZjP0djfHwhSWM6bGMoNzQ4NDAyMTQ3LCEwKTt0Yj1GYz9KYzpsYyg5MTk0NDQ4MjQsITEpO05jPUZjP0tjOmxjKDkyODg3NTM5OCwhMSk7T2M9RmM/TGM6bGMoNjgzNzQ5MjAxLCExKTt2YXIgUGM7UGM9Xy52Lm5hdmlnYXRvcjtfLlZhPVBjP1BjLnVzZXJBZ2VudERhdGF8fG51bGw6bnVsbDtfLlFjPWZ1bmN0aW9uKGEpe18uUWNbIiAiXShhKTtyZXR1cm4gYX07Xy5RY1siICJdPWZ1bmN0aW9uKCl7fTt2YXIgZWQ7Xy5SYz1fLlhhKCk7Xy5TYz1fLldhKCk/ITE6Xy53KCJUcmlkZW50Iil8fF8udygiTVNJRSIpO18uVGM9Xy53KCJFZGdlIik7Xy5VYz1fLncoIkdlY2tvIikmJiEoXy5UYSgpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikhPS0xJiYhXy53KCJFZGdlIikpJiYhKF8udygiVHJpZGVudCIpfHxfLncoIk1TSUUiKSkmJiFfLncoIkVkZ2UiKTtfLlZjPV8uVGEoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIndlYmtpdCIpIT0tMSYmIV8udygiRWRnZSIpO18uV2M9Xy5WYyYmXy53KCJNb2JpbGUiKTtfLlljPV8uYWIoKTtfLlpjPVlhKCk/Xy5WYS5wbGF0Zm9ybT09PSJXaW5kb3dzIjpfLncoIldpbmRvd3MiKTtfLiRjPVlhKCk/Xy5WYS5wbGF0Zm9ybT09PSJBbmRyb2lkIjpfLncoIkFuZHJvaWQiKTtfLmFkPV8uWmEoKTtfLmJkPV8udygiaVBhZCIpO18uY2Q9Xy53KCJpUG9kIik7Xy5kZD1fLiRhKCk7CmE6e3ZhciBmZD0iIixnZD1mdW5jdGlvbigpe3ZhciBhPV8uVGEoKTtpZihfLlVjKXJldHVybi9ydjooW15cKTtdKykoXCl8OykvLmV4ZWMoYSk7aWYoXy5UYylyZXR1cm4vRWRnZVwvKFtcZFwuXSspLy5leGVjKGEpO2lmKF8uU2MpcmV0dXJuL1xiKD86TVNJRXxydilbOiBdKFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKF8uVmMpcmV0dXJuL1dlYktpdFwvKFxTKykvLmV4ZWMoYSk7aWYoXy5SYylyZXR1cm4vKD86VmVyc2lvbilbIFwvXT8oXFMrKS8uZXhlYyhhKX0oKTtnZCYmKGZkPWdkP2dkWzFdOiIiKTtpZihfLlNjKXt2YXIgaGQsaWQ9Xy52LmRvY3VtZW50O2hkPWlkP2lkLmRvY3VtZW50TW9kZTp2b2lkIDA7aWYoaGQhPW51bGwmJmhkPnBhcnNlRmxvYXQoZmQpKXtlZD1TdHJpbmcoaGQpO2JyZWFrIGF9fWVkPWZkfV8uamQ9ZWQ7dmFyIGtkPSJBUlRJQ0xFIFNFQ1RJT04gTkFWIEFTSURFIEgxIEgyIEgzIEg0IEg1IEg2IEhFQURFUiBGT09URVIgQUREUkVTUyBQIEhSIFBSRSBCTE9DS1FVT1RFIE9MIFVMIExIIExJIERMIERUIEREIEZJR1VSRSBGSUdDQVBUSU9OIE1BSU4gRElWIEVNIFNUUk9ORyBTTUFMTCBTIENJVEUgUSBERk4gQUJCUiBSVUJZIFJCIFJUIFJUQyBSUCBEQVRBIFRJTUUgQ09ERSBWQVIgU0FNUCBLQkQgU1VCIFNVUCBJIEIgVSBNQVJLIEJESSBCRE8gU1BBTiBCUiBXQlIgTk9CUiBJTlMgREVMIFBJQ1RVUkUgUEFSQU0gVFJBQ0sgTUFQIFRBQkxFIENBUFRJT04gQ09MR1JPVVAgQ09MIFRCT0RZIFRIRUFEIFRGT09UIFRSIFREIFRIIFNFTEVDVCBEQVRBTElTVCBPUFRHUk9VUCBPUFRJT04gT1VUUFVUIFBST0dSRVNTIE1FVEVSIEZJRUxEU0VUIExFR0VORCBERVRBSUxTIFNVTU1BUlkgTUVOVSBESUFMT0cgU0xPVCBDQU5WQVMgRk9OVCBDRU5URVIgQUNST05ZTSBCQVNFRk9OVCBCSUcgRElSIEhHUk9VUCBTVFJJS0UgVFQiLnNwbGl0KCIgIiksCmxkPVtbIkEiLG5ldyBNYXAoW1siaHJlZiIse3VhOjd9XV0pXSxbIkFSRUEiLG5ldyBNYXAoW1siaHJlZiIse3VhOjd9XV0pXSxbIkxJTksiLG5ldyBNYXAoW1siaHJlZiIse3VhOjUsY29uZGl0aW9uczpuZXcgTWFwKFtbInJlbCIsbmV3IFNldCgiYWx0ZXJuYXRlIGF1dGhvciBib29rbWFyayBjYW5vbmljYWwgY2l0ZSBoZWxwIGljb24gbGljZW5zZSBuZXh0IHByZWZldGNoIGRucy1wcmVmZXRjaCBwcmVyZW5kZXIgcHJlY29ubmVjdCBwcmVsb2FkIHByZXYgc2VhcmNoIHN1YnJlc291cmNlIi5zcGxpdCgiICIpKV1dKX1dXSldLFsiU09VUkNFIixuZXcgTWFwKFtbInNyYyIse3VhOjV9XSxbInNyY3NldCIse3VhOjZ9XV0pXSxbIklNRyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV0sWyJzcmNzZXQiLHt1YTo2fV1dKV0sWyJWSURFTyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV1dKV0sWyJBVURJTyIsbmV3IE1hcChbWyJzcmMiLHt1YTo1fV1dKV1dLG1kPSJ0aXRsZSBhcmlhLWF0b21pYyBhcmlhLWF1dG9jb21wbGV0ZSBhcmlhLWJ1c3kgYXJpYS1jaGVja2VkIGFyaWEtY3VycmVudCBhcmlhLWRpc2FibGVkIGFyaWEtZHJvcGVmZmVjdCBhcmlhLWV4cGFuZGVkIGFyaWEtaGFzcG9wdXAgYXJpYS1oaWRkZW4gYXJpYS1pbnZhbGlkIGFyaWEtbGFiZWwgYXJpYS1sZXZlbCBhcmlhLWxpdmUgYXJpYS1tdWx0aWxpbmUgYXJpYS1tdWx0aXNlbGVjdGFibGUgYXJpYS1vcmllbnRhdGlvbiBhcmlhLXBvc2luc2V0IGFyaWEtcHJlc3NlZCBhcmlhLXJlYWRvbmx5IGFyaWEtcmVsZXZhbnQgYXJpYS1yZXF1aXJlZCBhcmlhLXNlbGVjdGVkIGFyaWEtc2V0c2l6ZSBhcmlhLXNvcnQgYXJpYS12YWx1ZW1heCBhcmlhLXZhbHVlbWluIGFyaWEtdmFsdWVub3cgYXJpYS12YWx1ZXRleHQgYWx0IGFsaWduIGF1dG9jYXBpdGFsaXplIGF1dG9jb21wbGV0ZSBhdXRvY29ycmVjdCBhdXRvZm9jdXMgYXV0b3BsYXkgYmdjb2xvciBib3JkZXIgY2VsbHBhZGRpbmcgY2VsbHNwYWNpbmcgY2hlY2tlZCBjaXRlIGNvbG9yIGNvbHMgY29sc3BhbiBjb250cm9scyBjb250cm9sc2xpc3QgY29vcmRzIGNyb3Nzb3JpZ2luIGRhdGV0aW1lIGRpc2FibGVkIGRvd25sb2FkIGRyYWdnYWJsZSBlbmN0eXBlIGZhY2UgZm9ybWVuY3R5cGUgZnJhbWVib3JkZXIgaGVpZ2h0IGhyZWZsYW5nIGhpZGRlbiBpbmVydCBpc21hcCBsYWJlbCBsYW5nIGxvb3AgbWF4IG1heGxlbmd0aCBtZWRpYSBtaW5sZW5ndGggbWluIG11bHRpcGxlIG11dGVkIG5vbmNlIG9wZW4gcGxheXNpbmxpbmUgcGxhY2Vob2xkZXIgcHJlbG9hZCByZWwgcmVxdWlyZWQgcmV2ZXJzZWQgcm9sZSByb3dzIHJvd3NwYW4gc2VsZWN0ZWQgc2hhcGUgc2l6ZSBzaXplcyBzbG90IHNwYW4gc3BlbGxjaGVjayBzdGFydCBzdGVwIHN1bW1hcnkgdHJhbnNsYXRlIHR5cGUgdXNlbWFwIHZhbGlnbiB2YWx1ZSB3aWR0aCB3cmFwIGl0ZW1zY29wZSBpdGVtdHlwZSBpdGVtaWQgaXRlbXByb3AgaXRlbXJlZiIuc3BsaXQoIiAiKSwKbmQ9W1siZGlyIix7dWE6Myxjb25kaXRpb25zOkdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXAoW1siZGlyIixuZXcgU2V0KFsiYXV0byIsImx0ciIsInJ0bCJdKV1dKX0pfV0sWyJhc3luYyIse3VhOjMsY29uZGl0aW9uczpHYShmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwKFtbImFzeW5jIixuZXcgU2V0KFsiYXN5bmMiXSldXSl9KX1dLFsibG9hZGluZyIse3VhOjMsY29uZGl0aW9uczpHYShmdW5jdGlvbigpe3JldHVybiBuZXcgTWFwKFtbImxvYWRpbmciLG5ldyBTZXQoWyJlYWdlciIsImxhenkiXSldXSl9KX1dLFsicG9zdGVyIix7dWE6NX1dLFsidGFyZ2V0Iix7dWE6Myxjb25kaXRpb25zOkdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXAoW1sidGFyZ2V0IixuZXcgU2V0KFsiX3NlbGYiLCJfYmxhbmsiXSldXSl9KX1dXSxvZD1uZXcgZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5ldyBTZXQoWyJkYXRhLSIsImFyaWEtIl0pLGU9bmV3IE1hcChsZCk7dGhpcy5qPWE7dGhpcy5nPQplO3RoaXMubD1iO3RoaXMubz1jO3RoaXMuaD1kfShuZXcgU2V0KEdhKGZ1bmN0aW9uKCl7cmV0dXJuIGtkLmNvbmNhdCgiU1RZTEUgVElUTEUgSU5QVVQgVEVYVEFSRUEgQlVUVE9OIExBQkVMIi5zcGxpdCgiICIpKX0pKSxuZXcgU2V0KEdhKGZ1bmN0aW9uKCl7cmV0dXJuIG1kLmNvbmNhdChbImNsYXNzIiwiaWQiLCJ0YWJpbmRleCIsImNvbnRlbnRlZGl0YWJsZSIsIm5hbWUiXSl9KSksbmV3IE1hcChHYShmdW5jdGlvbigpe3JldHVybiBuZC5jb25jYXQoW1sic3R5bGUiLHt1YToxfV1dKX0pKSk7dmFyIHBkPWZ1bmN0aW9uKCl7dGhpcy5nPW9kfTtwZC5wcm90b3R5cGUuY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGEpfTtfLnFkPUdhKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBwZH0pO3ZhciB2ZCx1ZCx4ZDtfLmxiPWZ1bmN0aW9uKGEpe3JldHVybiBhP25ldyBfLnJkKF8uc2QoYSkpOnNjfHwoc2M9bmV3IF8ucmQpfTtfLnRkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiPT09InN0cmluZyI/YS5nZXRFbGVtZW50QnlJZChiKTpifTt2ZD1mdW5jdGlvbihhLGIpe18uemMoYixmdW5jdGlvbihjLGQpe2Q9PSJzdHlsZSI/YS5zdHlsZS5jc3NUZXh0PWM6ZD09ImNsYXNzIj9hLmNsYXNzTmFtZT1jOmQ9PSJmb3IiP2EuaHRtbEZvcj1jOnVkLmhhc093blByb3BlcnR5KGQpP2Euc2V0QXR0cmlidXRlKHVkW2RdLGMpOmQubGFzdEluZGV4T2YoImFyaWEtIiwwKT09MHx8ZC5sYXN0SW5kZXhPZigiZGF0YS0iLDApPT0wP2Euc2V0QXR0cmlidXRlKGQsYyk6YVtkXT1jfSl9Owp1ZD17Y2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNvbHNwYW46ImNvbFNwYW4iLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciIsaGVpZ2h0OiJoZWlnaHQiLG1heGxlbmd0aDoibWF4TGVuZ3RoIixub25jZToibm9uY2UiLHJvbGU6InJvbGUiLHJvd3NwYW46InJvd1NwYW4iLHR5cGU6InR5cGUiLHVzZW1hcDoidXNlTWFwIix2YWxpZ246InZBbGlnbiIsd2lkdGg6IndpZHRoIn07Xy5pYj1mdW5jdGlvbihhKXthPWEuZG9jdW1lbnQ7YT1hLmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0Ij9hLmRvY3VtZW50RWxlbWVudDphLmJvZHk7cmV0dXJuIG5ldyBfLkNhKGEuY2xpZW50V2lkdGgsYS5jbGllbnRIZWlnaHQpfTtfLm1iPWZ1bmN0aW9uKGEpe3JldHVybiBhP2EuZGVmYXVsdFZpZXc6d2luZG93fTsKXy55ZD1mdW5jdGlvbihhLGIpe3ZhciBjPWJbMV0sZD1fLndkKGEsU3RyaW5nKGJbMF0pKTtjJiYodHlwZW9mIGM9PT0ic3RyaW5nIj9kLmNsYXNzTmFtZT1jOkFycmF5LmlzQXJyYXkoYyk/ZC5jbGFzc05hbWU9Yy5qb2luKCIgIik6dmQoZCxjKSk7Yi5sZW5ndGg+MiYmeGQoYSxkLGIsMik7cmV0dXJuIGR9Owp4ZD1mdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBlKGgpe2gmJmIuYXBwZW5kQ2hpbGQodHlwZW9mIGg9PT0ic3RyaW5nIj9hLmNyZWF0ZVRleHROb2RlKGgpOmgpfWZvcig7ZDxjLmxlbmd0aDtkKyspe3ZhciBmPWNbZF07aWYoIV8ucWEoZil8fF8ueWEoZikmJmYubm9kZVR5cGU+MCllKGYpO2Vsc2V7YTp7aWYoZiYmdHlwZW9mIGYubGVuZ3RoPT0ibnVtYmVyIil7aWYoXy55YShmKSl7dmFyIGc9dHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uInx8dHlwZW9mIGYuaXRlbT09InN0cmluZyI7YnJlYWsgYX1pZih0eXBlb2YgZj09PSJmdW5jdGlvbiIpe2c9dHlwZW9mIGYuaXRlbT09ImZ1bmN0aW9uIjticmVhayBhfX1nPSExfV8udmMoZz9fLndhKGYpOmYsZSl9fX07Xy53ZD1mdW5jdGlvbihhLGIpe2I9U3RyaW5nKGIpO2EuY29udGVudFR5cGU9PT0iYXBwbGljYXRpb24veGh0bWwreG1sIiYmKGI9Yi50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGIpfTsKXy56ZD1mdW5jdGlvbihhKXtmb3IodmFyIGI7Yj1hLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYil9O18uQWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEucGFyZW50Tm9kZT9hLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk6bnVsbH07Xy5CZD1mdW5jdGlvbihhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihhLmNvbnRhaW5zJiZiLm5vZGVUeXBlPT0xKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKHR5cGVvZiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIT0idW5kZWZpbmVkIilyZXR1cm4gYT09Ynx8ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYj09YX07Xy5zZD1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH07Cl8uQ2Q9ZnVuY3Rpb24oYSxiKXtpZigidGV4dENvbnRlbnQiaW4gYSlhLnRleHRDb250ZW50PWI7ZWxzZSBpZihhLm5vZGVUeXBlPT0zKWEuZGF0YT1TdHJpbmcoYik7ZWxzZSBpZihhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5ub2RlVHlwZT09Myl7Zm9yKDthLmxhc3RDaGlsZCE9YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEubGFzdENoaWxkKTthLmZpcnN0Q2hpbGQuZGF0YT1TdHJpbmcoYil9ZWxzZSBfLnpkKGEpLGEuYXBwZW5kQ2hpbGQoXy5zZChhKS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoYikpKX07Xy5yZD1mdW5jdGlvbihhKXt0aGlzLmc9YXx8Xy52LmRvY3VtZW50fHxkb2N1bWVudH07Xy5tPV8ucmQucHJvdG90eXBlO18ubS5IPWZ1bmN0aW9uKGEpe3JldHVybiBfLnRkKHRoaXMuZyxhKX07Xy5tLmRqPV8ucmQucHJvdG90eXBlLkg7Xy5tLmdldEVsZW1lbnRzQnlUYWdOYW1lPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGJ8fHRoaXMuZykuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU3RyaW5nKGEpKX07Cl8ubS5TPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy55ZCh0aGlzLmcsYXJndW1lbnRzKX07Xy5tLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ud2QodGhpcy5nLGEpfTtfLm0uY3JlYXRlVGV4dE5vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZy5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoYSkpfTtfLm0uYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oYSxiKXthLmFwcGVuZENoaWxkKGIpfTtfLm0uYXBwZW5kPWZ1bmN0aW9uKGEsYil7eGQoXy5zZChhKSxhLGFyZ3VtZW50cywxKX07Xy5tLmNhbkhhdmVDaGlsZHJlbj1mdW5jdGlvbihhKXtpZihhLm5vZGVUeXBlIT0xKXJldHVybiExO3N3aXRjaChhLnRhZ05hbWUpe2Nhc2UgIkFQUExFVCI6Y2FzZSAiQVJFQSI6Y2FzZSAiQkFTRSI6Y2FzZSAiQlIiOmNhc2UgIkNPTCI6Y2FzZSAiQ09NTUFORCI6Y2FzZSAiRU1CRUQiOmNhc2UgIkZSQU1FIjpjYXNlICJIUiI6Y2FzZSAiSU1HIjpjYXNlICJJTlBVVCI6Y2FzZSAiSUZSQU1FIjpjYXNlICJJU0lOREVYIjpjYXNlICJLRVlHRU4iOmNhc2UgIkxJTksiOmNhc2UgIk5PRlJBTUVTIjpjYXNlICJOT1NDUklQVCI6Y2FzZSAiTUVUQSI6Y2FzZSAiT0JKRUNUIjpjYXNlICJQQVJBTSI6Y2FzZSAiU0NSSVBUIjpjYXNlICJTT1VSQ0UiOmNhc2UgIlNUWUxFIjpjYXNlICJUUkFDSyI6Y2FzZSAiV0JSIjpyZXR1cm4hMX1yZXR1cm4hMH07Cl8ubS5pZT1fLnpkO18ubS5yZW1vdmVOb2RlPV8uQWQ7Xy5tLmNvbnRhaW5zPV8uQmQ7Xy5tLlNiPV8uQ2Q7YmIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWR9O3ZhciBjYj1mdW5jdGlvbihhLGIpe3RoaXMudHlwZT1hIGluc3RhbmNlb2YgYmI/U3RyaW5nKGEpOmE7dGhpcy5jdXJyZW50VGFyZ2V0PXRoaXMudGFyZ2V0PWI7dGhpcy5kZWZhdWx0UHJldmVudGVkPXRoaXMuaD0hMX07Y2IucHJvdG90eXBlLnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3RoaXMuaD0hMH07Y2IucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwfTt2YXIgRGQ9ZnVuY3Rpb24oKXtpZighXy52LmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIGE9ITEsYj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXthPSEwfX0pO3RyeXt2YXIgYz1mdW5jdGlvbigpe307Xy52LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYik7Xy52LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYil9Y2F0Y2goZCl7fXJldHVybiBhfSgpO18uRyhfLmRiLGNiKTsKXy5kYi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMudHlwZT1hLnR5cGUsZD1hLmNoYW5nZWRUb3VjaGVzJiZhLmNoYW5nZWRUb3VjaGVzLmxlbmd0aD9hLmNoYW5nZWRUb3VjaGVzWzBdOm51bGw7dGhpcy50YXJnZXQ9YS50YXJnZXR8fGEuc3JjRWxlbWVudDt0aGlzLmN1cnJlbnRUYXJnZXQ9YjtiPWEucmVsYXRlZFRhcmdldDtifHwoYz09Im1vdXNlb3ZlciI/Yj1hLmZyb21FbGVtZW50OmM9PSJtb3VzZW91dCImJihiPWEudG9FbGVtZW50KSk7dGhpcy5yZWxhdGVkVGFyZ2V0PWI7ZD8odGhpcy5jbGllbnRYPWQuY2xpZW50WCE9PXZvaWQgMD9kLmNsaWVudFg6ZC5wYWdlWCx0aGlzLmNsaWVudFk9ZC5jbGllbnRZIT09dm9pZCAwP2QuY2xpZW50WTpkLnBhZ2VZLHRoaXMuc2NyZWVuWD1kLnNjcmVlblh8fDAsdGhpcy5zY3JlZW5ZPWQuc2NyZWVuWXx8MCk6KHRoaXMub2Zmc2V0WD1fLlZjfHxhLm9mZnNldFghPT12b2lkIDA/YS5vZmZzZXRYOmEubGF5ZXJYLAp0aGlzLm9mZnNldFk9Xy5WY3x8YS5vZmZzZXRZIT09dm9pZCAwP2Eub2Zmc2V0WTphLmxheWVyWSx0aGlzLmNsaWVudFg9YS5jbGllbnRYIT09dm9pZCAwP2EuY2xpZW50WDphLnBhZ2VYLHRoaXMuY2xpZW50WT1hLmNsaWVudFkhPT12b2lkIDA/YS5jbGllbnRZOmEucGFnZVksdGhpcy5zY3JlZW5YPWEuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9YS5zY3JlZW5ZfHwwKTt0aGlzLmJ1dHRvbj1hLmJ1dHRvbjt0aGlzLmtleUNvZGU9YS5rZXlDb2RlfHwwO3RoaXMua2V5PWEua2V5fHwiIjt0aGlzLmNoYXJDb2RlPWEuY2hhckNvZGV8fChjPT0ia2V5cHJlc3MiP2Eua2V5Q29kZTowKTt0aGlzLmN0cmxLZXk9YS5jdHJsS2V5O3RoaXMuYWx0S2V5PWEuYWx0S2V5O3RoaXMuc2hpZnRLZXk9YS5zaGlmdEtleTt0aGlzLm1ldGFLZXk9YS5tZXRhS2V5O3RoaXMucG9pbnRlcklkPWEucG9pbnRlcklkfHwwO3RoaXMucG9pbnRlclR5cGU9YS5wb2ludGVyVHlwZTt0aGlzLnN0YXRlPWEuc3RhdGU7CnRoaXMudGltZVN0YW1wPWEudGltZVN0YW1wO3RoaXMuZz1hO2EuZGVmYXVsdFByZXZlbnRlZCYmXy5kYi5lYS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpfTtfLmRiLnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb249ZnVuY3Rpb24oKXtfLmRiLmVhLnN0b3BQcm9wYWdhdGlvbi5jYWxsKHRoaXMpO3RoaXMuZy5zdG9wUHJvcGFnYXRpb24/dGhpcy5nLnN0b3BQcm9wYWdhdGlvbigpOnRoaXMuZy5jYW5jZWxCdWJibGU9ITB9O18uZGIucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7Xy5kYi5lYS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZzthLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExfTt2YXIgRWQ9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKyhNYXRoLnJhbmRvbSgpKjFFNnwwKSxGZD1mdW5jdGlvbihhKXtyZXR1cm4hKCFhfHwhYVtFZF0pfTt2YXIgZWI9MDt2YXIgR2Q9ZnVuY3Rpb24oYSl7YS5vYz0hMDthLmxpc3RlbmVyPW51bGw7YS5wcm94eT1udWxsO2Euc3JjPW51bGw7YS5WYz1udWxsfTtnYi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS50b1N0cmluZygpO2E9dGhpcy5nW2ZdO2F8fChhPXRoaXMuZ1tmXT1bXSx0aGlzLmgrKyk7dmFyIGc9SGQoYSxiLGQsZSk7Zz4tMT8oYj1hW2ddLGN8fChiLkhjPSExKSk6KGI9bmV3IGZiKGIsdGhpcy5zcmMsZiwhIWQsZSksYi5IYz1jLGEucHVzaChiKSk7cmV0dXJuIGJ9O2diLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSxiLGMsZCl7YT1hLnRvU3RyaW5nKCk7aWYoIShhIGluIHRoaXMuZykpcmV0dXJuITE7dmFyIGU9dGhpcy5nW2FdO2I9SGQoZSxiLGMsZCk7cmV0dXJuIGI+LTE/KEdkKGVbYl0pLEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChlLGIsMSksZS5sZW5ndGg9PTAmJihkZWxldGUgdGhpcy5nW2FdLHRoaXMuaC0tKSwhMCk6ITF9Owp2YXIgSWQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnR5cGU7YyBpbiBhLmcmJl8udmEoYS5nW2NdLGIpJiYoR2QoYiksYS5nW2NdLmxlbmd0aD09MCYmKGRlbGV0ZSBhLmdbY10sYS5oLS0pKX07Z2IucHJvdG90eXBlLmpjPWZ1bmN0aW9uKGEsYixjLGQpe2E9dGhpcy5nW2EudG9TdHJpbmcoKV07dmFyIGU9LTE7YSYmKGU9SGQoYSxiLGMsZCkpO3JldHVybiBlPi0xP2FbZV06bnVsbH07Z2IucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKGEsYil7dmFyIGM9YSE9PXZvaWQgMCxkPWM/YS50b1N0cmluZygpOiIiLGU9YiE9PXZvaWQgMDtyZXR1cm4gRGEodGhpcy5nLGZ1bmN0aW9uKGYpe2Zvcih2YXIgZz0wO2c8Zi5sZW5ndGg7KytnKWlmKCEoYyYmZltnXS50eXBlIT1kfHxlJiZmW2ddLmNhcHR1cmUhPWIpKXJldHVybiEwO3JldHVybiExfSl9Owp2YXIgSGQ9ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlPTA7ZTxhLmxlbmd0aDsrK2Upe3ZhciBmPWFbZV07aWYoIWYub2MmJmYubGlzdGVuZXI9PWImJmYuY2FwdHVyZT09ISFjJiZmLlZjPT1kKXJldHVybiBlfXJldHVybi0xfTt2YXIgSmQsS2QsTWQsUGQsUmQsU2QsVGQsUWQsV2QsT2Q7SmQ9ImNsb3N1cmVfbG1fIisoTWF0aC5yYW5kb20oKSoxRTZ8MCk7S2Q9e307TWQ9MDtfLng9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihkJiZkLm9uY2UpcmV0dXJuIF8uTmQoYSxiLGMsZCxlKTtpZihBcnJheS5pc0FycmF5KGIpKXtmb3IodmFyIGY9MDtmPGIubGVuZ3RoO2YrKylfLngoYSxiW2ZdLGMsZCxlKTtyZXR1cm4gbnVsbH1jPU9kKGMpO3JldHVybiBGZChhKT9hLk4oYixjLF8ueWEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlBkKGEsYixjLCExLGQsZSl9OwpQZD1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIWIpdGhyb3cgRXJyb3IoInYiKTt2YXIgZz1fLnlhKGUpPyEhZS5jYXB0dXJlOiEhZSxoPVFkKGEpO2h8fChhW0pkXT1oPW5ldyBnYihhKSk7Yz1oLmFkZChiLGMsZCxnLGYpO2lmKGMucHJveHkpcmV0dXJuIGM7ZD1SZCgpO2MucHJveHk9ZDtkLnNyYz1hO2QubGlzdGVuZXI9YztpZihhLmFkZEV2ZW50TGlzdGVuZXIpRGR8fChlPWcpLGU9PT12b2lkIDAmJihlPSExKSxhLmFkZEV2ZW50TGlzdGVuZXIoYi50b1N0cmluZygpLGQsZSk7ZWxzZSBpZihhLmF0dGFjaEV2ZW50KWEuYXR0YWNoRXZlbnQoU2QoYi50b1N0cmluZygpKSxkKTtlbHNlIGlmKGEuYWRkTGlzdGVuZXImJmEucmVtb3ZlTGlzdGVuZXIpYS5hZGRMaXN0ZW5lcihkKTtlbHNlIHRocm93IEVycm9yKCJ3Iik7TWQrKztyZXR1cm4gY307UmQ9ZnVuY3Rpb24oKXt2YXIgYT1UZCxiPWZ1bmN0aW9uKGMpe3JldHVybiBhLmNhbGwoYi5zcmMsYi5saXN0ZW5lcixjKX07cmV0dXJuIGJ9OwpfLk5kPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspXy5OZChhLGJbZl0sYyxkLGUpO3JldHVybiBudWxsfWM9T2QoYyk7cmV0dXJuIEZkKGEpP2EuYWUoYixjLF8ueWEoZCk/ISFkLmNhcHR1cmU6ISFkLGUpOlBkKGEsYixjLCEwLGQsZSl9O18uVWQ9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihBcnJheS5pc0FycmF5KGIpKWZvcih2YXIgZj0wO2Y8Yi5sZW5ndGg7ZisrKV8uVWQoYSxiW2ZdLGMsZCxlKTtlbHNlIGQ9Xy55YShkKT8hIWQuY2FwdHVyZTohIWQsYz1PZChjKSxGZChhKT9hLnljKGIsYyxkLGUpOmEmJihhPVFkKGEpKSYmKGI9YS5qYyhiLGMsZCxlKSkmJl8uVmQoYil9OwpfLlZkPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09Im51bWJlciImJmEmJiFhLm9jKXt2YXIgYj1hLnNyYztpZihGZChiKSlJZChiLlFhLGEpO2Vsc2V7dmFyIGM9YS50eXBlLGQ9YS5wcm94eTtiLnJlbW92ZUV2ZW50TGlzdGVuZXI/Yi5yZW1vdmVFdmVudExpc3RlbmVyKGMsZCxhLmNhcHR1cmUpOmIuZGV0YWNoRXZlbnQ/Yi5kZXRhY2hFdmVudChTZChjKSxkKTpiLmFkZExpc3RlbmVyJiZiLnJlbW92ZUxpc3RlbmVyJiZiLnJlbW92ZUxpc3RlbmVyKGQpO01kLS07KGM9UWQoYikpPyhJZChjLGEpLGMuaD09MCYmKGMuc3JjPW51bGwsYltKZF09bnVsbCkpOkdkKGEpfX19O1NkPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluIEtkP0tkW2FdOktkW2FdPSJvbiIrYX07VGQ9ZnVuY3Rpb24oYSxiKXtpZihhLm9jKWE9ITA7ZWxzZXtiPW5ldyBfLmRiKGIsdGhpcyk7dmFyIGM9YS5saXN0ZW5lcixkPWEuVmN8fGEuc3JjO2EuSGMmJl8uVmQoYSk7YT1jLmNhbGwoZCxiKX1yZXR1cm4gYX07ClFkPWZ1bmN0aW9uKGEpe2E9YVtKZF07cmV0dXJuIGEgaW5zdGFuY2VvZiBnYj9hOm51bGx9O1dkPSJfX2Nsb3N1cmVfZXZlbnRzX2ZuXyIrKE1hdGgucmFuZG9tKCkqMUU5Pj4+MCk7T2Q9ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBhO2FbV2RdfHwoYVtXZF09ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFuZGxlRXZlbnQoYil9KTtyZXR1cm4gYVtXZF19O18uRyhfLmhiLF8udSk7Xy5oYi5wcm90b3R5cGVbRWRdPSEwO18ubT1fLmhiLnByb3RvdHlwZTtfLm0ubmQ9ZnVuY3Rpb24oYSl7dGhpcy5mZD1hfTtfLm0uYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyxkKXtfLngodGhpcyxhLGIsYyxkKX07Xy5tLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5VZCh0aGlzLGEsYixjLGQpfTsKXy5tLmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmZkO2lmKGMpZm9yKGI9W107YztjPWMuZmQpYi5wdXNoKGMpO2M9dGhpcy5XZzt2YXIgZD1hLnR5cGV8fGE7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilhPW5ldyBjYihhLGMpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIGNiKWEudGFyZ2V0PWEudGFyZ2V0fHxjO2Vsc2V7dmFyIGU9YTthPW5ldyBjYihkLGMpO0ZhKGEsZSl9ZT0hMDt2YXIgZjtpZihiKWZvcihmPWIubGVuZ3RoLTE7IWEuaCYmZj49MDtmLS0pe3ZhciBnPWEuY3VycmVudFRhcmdldD1iW2ZdO2U9WGQoZyxkLCEwLGEpJiZlfWEuaHx8KGc9YS5jdXJyZW50VGFyZ2V0PWMsZT1YZChnLGQsITAsYSkmJmUsYS5ofHwoZT1YZChnLGQsITEsYSkmJmUpKTtpZihiKWZvcihmPTA7IWEuaCYmZjxiLmxlbmd0aDtmKyspZz1hLmN1cnJlbnRUYXJnZXQ9YltmXSxlPVhkKGcsZCwhMSxhKSYmZTtyZXR1cm4gZX07Cl8ubS5NPWZ1bmN0aW9uKCl7Xy5oYi5lYS5NLmNhbGwodGhpcyk7aWYodGhpcy5RYSl7dmFyIGE9dGhpcy5RYSxiPTAsYztmb3IoYyBpbiBhLmcpe2Zvcih2YXIgZD1hLmdbY10sZT0wO2U8ZC5sZW5ndGg7ZSsrKSsrYixHZChkW2VdKTtkZWxldGUgYS5nW2NdO2EuaC0tfX10aGlzLmZkPW51bGx9O18ubS5OPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLlFhLmFkZChTdHJpbmcoYSksYiwhMSxjLGQpfTtfLm0uYWU9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuUWEuYWRkKFN0cmluZyhhKSxiLCEwLGMsZCl9O18ubS55Yz1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5RYS5yZW1vdmUoU3RyaW5nKGEpLGIsYyxkKX07CnZhciBYZD1mdW5jdGlvbihhLGIsYyxkKXtiPWEuUWEuZ1tTdHJpbmcoYildO2lmKCFiKXJldHVybiEwO2I9Yi5jb25jYXQoKTtmb3IodmFyIGU9ITAsZj0wO2Y8Yi5sZW5ndGg7KytmKXt2YXIgZz1iW2ZdO2lmKGcmJiFnLm9jJiZnLmNhcHR1cmU9PWMpe3ZhciBoPWcubGlzdGVuZXIsaz1nLlZjfHxnLnNyYztnLkhjJiZJZChhLlFhLGcpO2U9aC5jYWxsKGssZCkhPT0hMSYmZX19cmV0dXJuIGUmJiFkLmRlZmF1bHRQcmV2ZW50ZWR9O18uaGIucHJvdG90eXBlLmpjPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLlFhLmpjKFN0cmluZyhhKSxiLGMsZCl9O18uaGIucHJvdG90eXBlLmhhc0xpc3RlbmVyPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuUWEuaGFzTGlzdGVuZXIoYSE9PXZvaWQgMD9TdHJpbmcoYSk6dm9pZCAwLGIpfTtfLkcoamIsXy5oYik7amIucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtqYi5lYS5NLmNhbGwodGhpcyk7dGhpcy5oJiYoXy5WZCh0aGlzLmgpLHRoaXMuaD1udWxsKTt0aGlzLmo9dGhpcy5nPW51bGx9O2piLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7dmFyIGE9Xy5pYih0aGlzLmd8fHdpbmRvdyk7Xy55YyhhLHRoaXMuail8fCh0aGlzLmo9YSx0aGlzLmRpc3BhdGNoRXZlbnQoInJlc2l6ZSIpKX07Xy5HKGtiLF8uaGIpO2tiLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5nJiYodHlwZW9mIHRoaXMuZy5hZGRFdmVudExpc3RlbmVyPT09ImZ1bmN0aW9uIj8odGhpcy5nLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5qKSx0aGlzLmw9ZnVuY3Rpb24oKXthLmcucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhLmopfSk6KHRoaXMuZy5hZGRMaXN0ZW5lcih0aGlzLmopLHRoaXMubD1mdW5jdGlvbigpe2EuZy5yZW1vdmVMaXN0ZW5lcihhLmopfSkpfTtrYi5wcm90b3R5cGUuQT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5kZXZpY2VQaXhlbFJhdGlvPj0xLjU/MjoxO3RoaXMubyE9YSYmKHRoaXMubz1hLHRoaXMuZGlzcGF0Y2hFdmVudCgiYSIpKX07a2IucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmwmJnRoaXMubCgpO2tiLmVhLk0uY2FsbCh0aGlzKX07Xy5HKG5iLF8udSk7bmIucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmg9dGhpcy5sPW51bGw7dGhpcy5nJiYodGhpcy5nLmRpc3Bvc2UoKSx0aGlzLmc9bnVsbCk7Xy5wYSh0aGlzLmopO3RoaXMuaj1udWxsfTtfLm9hKHVjLG5iKTt2YXIgb2I9bmV3IFVpbnQ4QXJyYXkoMTIzKSxZZD0hMTt2YXIgWmQ9W107bmM9bmN8fHt9O3ZhciAkZD1mdW5jdGlvbigpe18udS5jYWxsKHRoaXMpfTtfLkcoJGQsXy51KTskZC5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe307c2IucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSl7dGhpcy5nJiYodGhpcy5nLmNhbGwodGhpcy5ofHxudWxsLGEpLHRoaXMuZz10aGlzLmg9bnVsbCl9O3NiLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuaD10aGlzLmc9bnVsbH07bmMuR2U9c2I7Xy5HKHViLF8udSk7dWIucHJvdG90eXBlLkM9JGQ7dWIucHJvdG90eXBlLmc9bnVsbDt1Yi5wcm90b3R5cGUuUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5BfTt2YXIgYWU9ZnVuY3Rpb24oYSxiLGMpe2Euanx8KGEuaj1bXSk7YS5qLnB1c2gobmV3IG5jLkdlKGIsYykpfSxiZT1mdW5jdGlvbihhLGIpe2EuaHx8KGEuaD1bXSk7YS5oLnB1c2gobmV3IG5jLkdlKGIsdm9pZCAwKSl9O3ViLnByb3RvdHlwZS5tZD1mdW5jdGlvbigpe3RoaXMuZz1uZXcgJGR9O3ViLnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHRoaXMuQztiLmluaXRpYWxpemUoYSgpKTt0aGlzLmc9YjtpZih0aGlzLm8mJihiPWNlKHRoaXMubyxhKCkpKSlyZXR1cm4gYjtpZih0aGlzLmomJihhPWNlKHRoaXMuaixhKCkpKSlyZXR1cm4gYTt0aGlzLmgmJih0aGlzLmgubGVuZ3RoPTApO3JldHVybiBudWxsfTsKdWIucHJvdG90eXBlLmZlPWZ1bmN0aW9uKGEpe3RoaXMuaCYmKGE9Y2UodGhpcy5oLGEpKSYmXy5yYihFcnJvcigieWAiK2EpKTt0aGlzLm8mJih0aGlzLm8ubGVuZ3RoPTApO3RoaXMuaiYmKHRoaXMuai5sZW5ndGg9MCl9O3ZhciBjZT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspdHJ5e2FbZF0uZXhlY3V0ZShiKX1jYXRjaChlKXtfLnJiKGUpLGMucHVzaChlKX1hLmxlbmd0aD0wO3JldHVybiBjLmxlbmd0aD9jOm51bGx9O3ViLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7dWIuZWEuTS5jYWxsKHRoaXMpO18ucGEodGhpcy5nKX07bmMuRmU9dWI7dmFyIGRlPXtFUlJPUjoiZXJyb3IiLElETEU6ImlkbGUiLGxnOiJhY3RpdmUiLElnOiJ1c2VySWRsZSIsSGc6InVzZXJBY3RpdmUifTtfLm09dmIucHJvdG90eXBlO18ubS5YZj1mdW5jdGlvbigpe307Xy5tLnFlPWZ1bmN0aW9uKCl7fTtfLm0uamU9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiQSIpO307Xy5tLmtmPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucWF9O18ubS5zZT1mdW5jdGlvbihhKXt0aGlzLnFhPWF9O18ubS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiExfTtfLm0uRGY9ZnVuY3Rpb24oKXtyZXR1cm4hMX07dmFyIGVlPXR5cGVvZiBBc3luY0NvbnRleHQhPT0idW5kZWZpbmVkIiYmdHlwZW9mIEFzeW5jQ29udGV4dC5TbmFwc2hvdD09PSJmdW5jdGlvbiI/ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJkFzeW5jQ29udGV4dC5TbmFwc2hvdC53cmFwKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gYX07dmFyIGZlPWZ1bmN0aW9uKGEsYil7dGhpcy5sPWE7dGhpcy5qPWI7dGhpcy5oPTA7dGhpcy5nPW51bGx9O2ZlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmg+MCl7dGhpcy5oLS07dmFyIGE9dGhpcy5nO3RoaXMuZz1hLm5leHQ7YS5uZXh0PW51bGx9ZWxzZSBhPXRoaXMubCgpO3JldHVybiBhfTt2YXIgeGI9ZnVuY3Rpb24oYSxiKXthLmooYik7YS5oPDEwMCYmKGEuaCsrLGIubmV4dD1hLmcsYS5nPWIpfTt2YXIgZ2U9ZnVuY3Rpb24oKXt0aGlzLmg9dGhpcy5nPW51bGx9O2dlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz15Yi5nZXQoKTtjLnNldChhLGIpO3RoaXMuaD90aGlzLmgubmV4dD1jOnRoaXMuZz1jO3RoaXMuaD1jfTtnZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIGE9bnVsbDt0aGlzLmcmJihhPXRoaXMuZyx0aGlzLmc9dGhpcy5nLm5leHQsdGhpcy5nfHwodGhpcy5oPW51bGwpLGEubmV4dD1udWxsKTtyZXR1cm4gYX07dmFyIHliPW5ldyBmZShmdW5jdGlvbigpe3JldHVybiBuZXcgaGV9LGZ1bmN0aW9uKGEpe3JldHVybiBhLnJlc2V0KCl9KSxoZT1mdW5jdGlvbigpe3RoaXMubmV4dD10aGlzLnNjb3BlPXRoaXMuZz1udWxsfTtoZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsYil7dGhpcy5nPWE7dGhpcy5zY29wZT1iO3RoaXMubmV4dD1udWxsfTsKaGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5uZXh0PXRoaXMuc2NvcGU9dGhpcy5nPW51bGx9O3ZhciBpZSx6Yj0hMSx3Yj1uZXcgZ2Usa2U9ZnVuY3Rpb24oYSxiKXtpZXx8amUoKTt6Ynx8KGllKCksemI9ITApO3diLmFkZChhLGIpfSxqZT1mdW5jdGlvbigpe3ZhciBhPVByb21pc2UucmVzb2x2ZSh2b2lkIDApO2llPWZ1bmN0aW9uKCl7YS50aGVuKEFiKX19O18ubGU9ZnVuY3Rpb24oKXt9O3ZhciBtZT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4hMTt0cnl7cmV0dXJuISFhLiRnb29nX1RoZW5hYmxlfWNhdGNoKGIpe3JldHVybiExfX07dmFyIHBlLEFlLHllLHdlO18ub2U9ZnVuY3Rpb24oYSl7dGhpcy5nPTA7dGhpcy5CPXZvaWQgMDt0aGlzLmw9dGhpcy5oPXRoaXMuaj1udWxsO3RoaXMubz10aGlzLkE9ITE7aWYoYSE9Xy5sZSl0cnl7dmFyIGI9dGhpczthLmNhbGwodm9pZCAwLGZ1bmN0aW9uKGMpe18ubmUoYiwyLGMpfSxmdW5jdGlvbihjKXtfLm5lKGIsMyxjKX0pfWNhdGNoKGMpe18ubmUodGhpcywzLGMpfX07cGU9ZnVuY3Rpb24oKXt0aGlzLm5leHQ9dGhpcy5qPXRoaXMuaD10aGlzLmw9dGhpcy5nPW51bGw7dGhpcy5vPSExfTtwZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmo9dGhpcy5oPXRoaXMubD10aGlzLmc9bnVsbDt0aGlzLm89ITF9O3ZhciBxZT1uZXcgZmUoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHBlfSxmdW5jdGlvbihhKXthLnJlc2V0KCl9KSxyZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cWUuZ2V0KCk7ZC5sPWE7ZC5oPWI7ZC5qPWM7cmV0dXJuIGR9OwpfLm9lLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gc2UodGhpcyxlZSh0eXBlb2YgYT09PSJmdW5jdGlvbiI/YTpudWxsKSxlZSh0eXBlb2YgYj09PSJmdW5jdGlvbiI/YjpudWxsKSxjKX07Xy5vZS5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITA7Xy5vZS5wcm90b3R5cGUuQz1mdW5jdGlvbihhLGIpe3JldHVybiBzZSh0aGlzLG51bGwsZWUoYSksYil9O18ub2UucHJvdG90eXBlLmNhdGNoPV8ub2UucHJvdG90eXBlLkM7Xy5vZS5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe2lmKHRoaXMuZz09MCl7dmFyIGI9bmV3IHVlKGEpO2tlKGZ1bmN0aW9uKCl7dmUodGhpcyxiKX0sdGhpcyl9fTsKdmFyIHZlPWZ1bmN0aW9uKGEsYil7aWYoYS5nPT0wKWlmKGEuail7dmFyIGM9YS5qO2lmKGMuaCl7Zm9yKHZhciBkPTAsZT1udWxsLGY9bnVsbCxnPWMuaDtnJiYoZy5vfHwoZCsrLGcuZz09YSYmKGU9ZyksIShlJiZkPjEpKSk7Zz1nLm5leHQpZXx8KGY9Zyk7ZSYmKGMuZz09MCYmZD09MT92ZShjLGIpOihmPyhkPWYsZC5uZXh0PT1jLmwmJihjLmw9ZCksZC5uZXh0PWQubmV4dC5uZXh0KTp3ZShjKSx4ZShjLGUsMyxiKSkpfWEuaj1udWxsfWVsc2UgXy5uZShhLDMsYil9LHplPWZ1bmN0aW9uKGEsYil7YS5ofHxhLmchPTImJmEuZyE9M3x8eWUoYSk7YS5sP2EubC5uZXh0PWI6YS5oPWI7YS5sPWJ9LHNlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXJlKG51bGwsbnVsbCxudWxsKTtlLmc9bmV3IF8ub2UoZnVuY3Rpb24oZixnKXtlLmw9Yj9mdW5jdGlvbihoKXt0cnl7dmFyIGs9Yi5jYWxsKGQsaCk7ZihrKX1jYXRjaChsKXtnKGwpfX06ZjtlLmg9Yz9mdW5jdGlvbihoKXt0cnl7dmFyIGs9CmMuY2FsbChkLGgpO2s9PT12b2lkIDAmJmggaW5zdGFuY2VvZiB1ZT9nKGgpOmYoayl9Y2F0Y2gobCl7ZyhsKX19Omd9KTtlLmcuaj1hO3plKGEsZSk7cmV0dXJuIGUuZ307Xy5vZS5wcm90b3R5cGUuRj1mdW5jdGlvbihhKXt0aGlzLmc9MDtfLm5lKHRoaXMsMixhKX07Xy5vZS5wcm90b3R5cGUuRz1mdW5jdGlvbihhKXt0aGlzLmc9MDtfLm5lKHRoaXMsMyxhKX07Cl8ubmU9ZnVuY3Rpb24oYSxiLGMpe2lmKGEuZz09MCl7YT09PWMmJihiPTMsYz1uZXcgVHlwZUVycm9yKCJCIikpO2EuZz0xO2E6e3ZhciBkPWMsZT1hLkYsZj1hLkc7aWYoZCBpbnN0YW5jZW9mIF8ub2Upe3plKGQscmUoZXx8Xy5sZSxmfHxudWxsLGEpKTt2YXIgZz0hMH1lbHNlIGlmKG1lKGQpKWQudGhlbihlLGYsYSksZz0hMDtlbHNle2lmKF8ueWEoZCkpdHJ5e3ZhciBoPWQudGhlbjtpZih0eXBlb2YgaD09PSJmdW5jdGlvbiIpe0FlKGQsaCxlLGYsYSk7Zz0hMDticmVhayBhfX1jYXRjaChrKXtmLmNhbGwoYSxrKTtnPSEwO2JyZWFrIGF9Zz0hMX19Z3x8KGEuQj1jLGEuZz1iLGEuaj1udWxsLHllKGEpLGIhPTN8fGMgaW5zdGFuY2VvZiB1ZXx8QmUoYSxjKSl9fTtBZT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSExLGc9ZnVuY3Rpb24oayl7Znx8KGY9ITAsYy5jYWxsKGUsaykpfSxoPWZ1bmN0aW9uKGspe2Z8fChmPSEwLGQuY2FsbChlLGspKX07dHJ5e2IuY2FsbChhLGcsaCl9Y2F0Y2goayl7aChrKX19Owp5ZT1mdW5jdGlvbihhKXthLkF8fChhLkE9ITAsa2UoYS5ELGEpKX07d2U9ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDthLmgmJihiPWEuaCxhLmg9Yi5uZXh0LGIubmV4dD1udWxsKTthLmh8fChhLmw9bnVsbCk7cmV0dXJuIGJ9O18ub2UucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE7YT13ZSh0aGlzKTspeGUodGhpcyxhLHRoaXMuZyx0aGlzLkIpO3RoaXMuQT0hMX07CnZhciB4ZT1mdW5jdGlvbihhLGIsYyxkKXtpZihjPT0zJiZiLmgmJiFiLm8pZm9yKDthJiZhLm87YT1hLmopYS5vPSExO2lmKGIuZyliLmcuaj1udWxsLENlKGIsYyxkKTtlbHNlIHRyeXtiLm8/Yi5sLmNhbGwoYi5qKTpDZShiLGMsZCl9Y2F0Y2goZSl7RmUuY2FsbChudWxsLGUpfXhiKHFlLGIpfSxDZT1mdW5jdGlvbihhLGIsYyl7Yj09Mj9hLmwuY2FsbChhLmosYyk6YS5oJiZhLmguY2FsbChhLmosYyl9LEJlPWZ1bmN0aW9uKGEsYil7YS5vPSEwO2tlKGZ1bmN0aW9uKCl7YS5vJiZGZS5jYWxsKG51bGwsYil9KX0sRmU9Xy5yYix1ZT1mdW5jdGlvbihhKXthYS5jYWxsKHRoaXMsYSl9O18uRyh1ZSxhYSk7dWUucHJvdG90eXBlLm5hbWU9ImNhbmNlbCI7QmIucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbihhKXtpZih0aGlzLmgpdGhpcy5sIGluc3RhbmNlb2YgQmImJnRoaXMubC5jYW5jZWwoKTtlbHNle2lmKHRoaXMuail7dmFyIGI9dGhpcy5qO2RlbGV0ZSB0aGlzLmo7YT9iLmNhbmNlbChhKTooYi5BLS0sYi5BPD0wJiZiLmNhbmNlbCgpKX10aGlzLkc9ITA7dGhpcy5ofHx0aGlzLkYobmV3IEdlKHRoaXMpKX19O0JiLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGEsYil7dGhpcy5EPSExO0hlKHRoaXMsYSxiKX07dmFyIEhlPWZ1bmN0aW9uKGEsYixjKXthLmg9ITA7YS5sPWM7YS5vPSFiO0llKGEpfSxLZT1mdW5jdGlvbihhKXtpZihhLmgpe2lmKCFhLkcpdGhyb3cgbmV3IEplKGEpO2EuRz0hMX19O0JiLnByb3RvdHlwZS5nPWZ1bmN0aW9uKGEpe0tlKHRoaXMpO0hlKHRoaXMsITAsYSl9O0JiLnByb3RvdHlwZS5GPWZ1bmN0aW9uKGEpe0tlKHRoaXMpO0hlKHRoaXMsITEsYSl9Owp2YXIgTWU9ZnVuY3Rpb24oYSxiLGMpe0xlKGEsYixudWxsLGMpfSxOZT1mdW5jdGlvbihhLGIsYyl7TGUoYSxudWxsLGIsYyl9LExlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuaDtlfHwoYj09PWM/Yj1jPWVlKGIpOihiPWVlKGIpLGM9ZWUoYykpKTthLkIucHVzaChbYixjLGRdKTtlJiZJZShhKX07QmIucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1uZXcgXy5vZShmdW5jdGlvbihnLGgpe2U9ZztkPWh9KTtMZSh0aGlzLGUsZnVuY3Rpb24oZyl7ZyBpbnN0YW5jZW9mIEdlP2YuY2FuY2VsKCk6ZChnKTtyZXR1cm4gT2V9LHRoaXMpO3JldHVybiBmLnRoZW4oYSxiLGMpfTtCYi5wcm90b3R5cGUuJGdvb2dfVGhlbmFibGU9ITA7dmFyIFBlPWZ1bmN0aW9uKGEsYil7YiBpbnN0YW5jZW9mIEJiP01lKGEsKDAsXy55KShiLkssYikpOk1lKGEsZnVuY3Rpb24oKXtyZXR1cm4gYn0pfTsKQmIucHJvdG90eXBlLks9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEJiO0xlKHRoaXMsYi5nLGIuRixiKTthJiYoYi5qPXRoaXMsdGhpcy5BKyspO3JldHVybiBifTsKdmFyIFFlPWZ1bmN0aW9uKGEpe3JldHVybiBfLnhjKGEuQixmdW5jdGlvbihiKXtyZXR1cm4gdHlwZW9mIGJbMV09PT0iZnVuY3Rpb24ifSl9LE9lPXt9LEllPWZ1bmN0aW9uKGEpe2lmKGEuQyYmYS5oJiZRZShhKSl7dmFyIGI9YS5DLGM9UmVbYl07YyYmKF8udi5jbGVhclRpbWVvdXQoYy5nKSxkZWxldGUgUmVbYl0pO2EuQz0wfWEuaiYmKGEuai5BLS0sZGVsZXRlIGEuaik7Yj1hLmw7Zm9yKHZhciBkPWM9ITE7YS5CLmxlbmd0aCYmIWEuRDspe3ZhciBlPWEuQi5zaGlmdCgpLGY9ZVswXSxnPWVbMV07ZT1lWzJdO2lmKGY9YS5vP2c6Zil0cnl7dmFyIGg9Zi5jYWxsKGV8fG51bGwsYik7aD09PU9lJiYoaD12b2lkIDApO2ghPT12b2lkIDAmJihhLm89YS5vJiYoaD09Ynx8aCBpbnN0YW5jZW9mIEVycm9yKSxhLmw9Yj1oKTtpZihtZShiKXx8dHlwZW9mIF8udi5Qcm9taXNlPT09ImZ1bmN0aW9uIiYmYiBpbnN0YW5jZW9mIF8udi5Qcm9taXNlKWQ9ITAsYS5EPSEwfWNhdGNoKGspe2I9CmssYS5vPSEwLFFlKGEpfHwoYz0hMCl9fWEubD1iO2QmJihoPSgwLF8ueSkoYS5JLGEsITApLGQ9KDAsXy55KShhLkksYSwhMSksYiBpbnN0YW5jZW9mIEJiPyhMZShiLGgsZCksYi5XPSEwKTpiLnRoZW4oaCxkKSk7YyYmKGI9bmV3IFNlKGIpLFJlW2IuZ109YixhLkM9Yi5nKX0sSmU9ZnVuY3Rpb24oKXthYS5jYWxsKHRoaXMpfTtfLkcoSmUsYWEpO0plLnByb3RvdHlwZS5tZXNzYWdlPSJEZWZlcnJlZCBoYXMgYWxyZWFkeSBmaXJlZCI7SmUucHJvdG90eXBlLm5hbWU9IkFscmVhZHlDYWxsZWRFcnJvciI7dmFyIEdlPWZ1bmN0aW9uKCl7YWEuY2FsbCh0aGlzKX07Xy5HKEdlLGFhKTtHZS5wcm90b3R5cGUubWVzc2FnZT0iRGVmZXJyZWQgd2FzIGNhbmNlbGVkIjtHZS5wcm90b3R5cGUubmFtZT0iQ2FuY2VsZWRFcnJvciI7dmFyIFNlPWZ1bmN0aW9uKGEpe3RoaXMuZz1fLnYuc2V0VGltZW91dCgoMCxfLnkpKHRoaXMudGhyb3dFcnJvcix0aGlzKSwwKTt0aGlzLmg9YX07ClNlLnByb3RvdHlwZS50aHJvd0Vycm9yPWZ1bmN0aW9uKCl7ZGVsZXRlIFJlW3RoaXMuZ107dGhyb3cgdGhpcy5oO307dmFyIFJlPXt9O3ZhciBUZT1mdW5jdGlvbihhLGIsYyxkLGUpe2M9RXJyb3IuY2FsbCh0aGlzKTt0aGlzLm1lc3NhZ2U9Yy5tZXNzYWdlOyJzdGFjayJpbiBjJiYodGhpcy5zdGFjaz1jLnN0YWNrKTt0aGlzLm5hbWU9Ik1vZHVsZUxvYWRGYWlsdXJlIjt0aGlzLnR5cGU9YTt0aGlzLnN0YXR1cz1iO3RoaXMudXJsPWQ7dGhpcy5jYXVzZT1lO3RoaXMubWVzc2FnZT10aGlzLnRvU3RyaW5nKCl9O18uQihUZSxFcnJvcik7VGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFVlKHRoaXMpKyIgKCIrKHRoaXMuc3RhdHVzIT12b2lkIDA/dGhpcy5zdGF0dXM6Ij8iKSsiKSJ9Owp2YXIgVWU9ZnVuY3Rpb24oYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSBUZS5nLkplOnJldHVybiJVbmF1dGhvcml6ZWQiO2Nhc2UgVGUuZy5CZTpyZXR1cm4iQ29uc2VjdXRpdmUgbG9hZCBmYWlsdXJlcyI7Y2FzZSBUZS5nLlRJTUVPVVQ6cmV0dXJuIlRpbWVkIG91dCI7Y2FzZSBUZS5nLkhlOnJldHVybiJPdXQgb2YgZGF0ZSBtb2R1bGUgaWQiO2Nhc2UgVGUuZy50ZDpyZXR1cm4iSW5pdCBlcnJvciI7ZGVmYXVsdDpyZXR1cm4iVW5rbm93biBmYWlsdXJlIHR5cGUgIithLnR5cGV9fTtuYy5GYT1UZTtuYy5GYS5nPXtKZTowLEJlOjEsVElNRU9VVDoyLEhlOjMsdGQ6NH07dmFyIFZlPWZ1bmN0aW9uKCl7dmIuY2FsbCh0aGlzKTt0aGlzLkk9bnVsbDt0aGlzLmc9bmV3IE1hcDt0aGlzLm89bmV3IFNldDt0aGlzLkE9W107dGhpcy5DPW5ldyBTZXQ7dGhpcy5qPVtdO3RoaXMuQj1uZXcgU2V0O3RoaXMuaD1OYz9uZXcgTWFwOnt9O3RoaXMuSz1uZXcgTWFwO3RoaXMubD10aGlzLkQ9bmV3IG5jLkZlKFtdLCIiKTt0aGlzLkw9bnVsbDt0aGlzLkY9bmV3IEJiO3RoaXMuUj10aGlzLlQ9dGhpcy5QPXRoaXMuVz0hMX07Xy5HKFZlLHZiKTt2YXIgV2U9ZnVuY3Rpb24oYSxiKXthYS5jYWxsKHRoaXMsIkVycm9yIGxvYWRpbmcgIithKyI6ICIrYil9O18uRyhXZSxhYSk7VmUucHJvdG90eXBlLlhmPWZ1bmN0aW9uKGEpe3RoaXMuVz1hfTsKVmUucHJvdG90eXBlLnFlPWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgVmUpKXRoaXMucWUoYSxiKTtlbHNlIGlmKHR5cGVvZiBhPT09InN0cmluZyIpe2lmKGEuc3RhcnRzV2l0aCgiZCQiKSl7YT1hLnN1YnN0cmluZygyKTtmb3IodmFyIGM9W10sZD0wLGU9YS5pbmRleE9mKCIvIiksZj0wLGc9ITEsaD0wOzspe3ZhciBrPWc/YS5zdWJzdHJpbmcoZik6YS5zdWJzdHJpbmcoZixlKTtpZihrLmxlbmd0aD09PTApZCsrLGY9InN5IitkLnRvU3RyaW5nKDM2KSxrPVtdO2Vsc2V7dmFyIGw9ay5pbmRleE9mKCI6Iik7aWYobDwwKWY9ayxrPVtdO2Vsc2UgaWYobD09PWsubGVuZ3RoLTEpZj1rLnN1YnN0cmluZygwLGwpLGs9QXJyYXkoY1toLTFdKTtlbHNle2Y9ay5zdWJzdHJpbmcoMCxsKTtrPWsuc3Vic3RyaW5nKGwrMSkuc3BsaXQoIiwiKTtsPWg7Zm9yKHZhciBuPTA7bjxrLmxlbmd0aDtuKyspbC09a1tuXS5sZW5ndGg9PT0wPzE6TnVtYmVyKGtbbl0pLGtbbl09Y1tsXX1sPQowO2lmKGYubGVuZ3RoPT09MClsPTE7ZWxzZSBpZihmLmNoYXJBdCgwKT09PSIrInx8Zi5jaGFyQXQoMCk9PT0iLSIpbD1OdW1iZXIoZik7bCE9PTAmJihkKz1sLGY9InN5IitkLnRvU3RyaW5nKDM2KSl9Yy5wdXNoKGYpO1hlKHRoaXMsZixrKTtpZihnKWJyZWFrO2Y9ZSsxO2U9YS5pbmRleE9mKCIvIixmKTtlPT09LTEmJihnPSEwKTtoKyt9dGhpcy5JPWN9ZWxzZSBpZihhLnN0YXJ0c1dpdGgoInAkIikpWWUodGhpcyxhKTtlbHNle2E9YS5zcGxpdCgiLyIpO2M9W107Zm9yKGQ9MDtkPGEubGVuZ3RoO2QrKyl7aD1hW2RdLnNwbGl0KCI6Iik7ZT1oWzBdO2c9W107aWYoaFsxXSlmb3IoZz1oWzFdLnNwbGl0KCIsIiksaD0wO2g8Zy5sZW5ndGg7aCsrKWdbaF09Y1twYXJzZUludChnW2hdLDM2KV07Yy5wdXNoKGUpO1hlKHRoaXMsZSxnKX10aGlzLkk9Y31pZihiJiZiLmxlbmd0aCl7YT1fLkMoYik7Zm9yKGM9YS5uZXh0KCk7IWMuZG9uZTtjPWEubmV4dCgpKXRoaXMuby5hZGQoYy52YWx1ZSk7CnRoaXMuTD1iW2IubGVuZ3RoLTFdfWVsc2UgdGhpcy5GLmh8fHRoaXMuRi5nKCk7T2JqZWN0LmZyZWV6ZSh0aGlzLkkpO1plKHRoaXMpfX07CnZhciBZZT1mdW5jdGlvbihhLGIpe2lmKCFZZCl7Zm9yKHZhciBjPTA7Yzw2NDtjKyspb2JbIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8iLmNoYXJDb2RlQXQoYyldPWM7WWQ9ITB9dmFyIGQ9e0hkOmIsQmI6Mn07cWIoZCk7dmFyIGU9cWIoZCksZj1xYihkKSsxO2I9QXJyYXkoZSk7Yz1BcnJheShlKTt2YXIgZz1BcnJheShlKTtmPUFycmF5KGYpO3ZhciBoPTAsaz0wLGw9ZC5IZCxuPWQuQmI7ZC5CYj1kLkhkLmluZGV4T2YoInwiLGQuQmIpKzE7Zm9yKHZhciBxPTA7cTxlO3ErKyl7dmFyIHA9cWIoZCkscj1wJjIsdD1wJjE7cD4+Pj0yO3Q/KGgrPXA+Pj4xXi0ocCYxKSxwPSJzeSIraC50b1N0cmluZygzNikpOih0PW4sbis9cCxwPWwuc3Vic3RyaW5nKHQsbikpO2JbcV09cDtyJiYoZltrKytdPXApfWZba109IiI7ZC5CYisrO2s9ZSYtMjtoPWUmMTtmb3IobD0wO2w8aztsKz0yKW49cGIoZCksZ1tsXT1uJjcsZ1tsKwoxXT1uPj4+MyY3O2gmJihoPXBiKGQpLGdba109aCY3KTtkLkJiKys7Zm9yKGs9MDtrPGU7aysrKWdba109PT03JiYoZ1trXT1xYihkKSk7ZC5CYisrO2ZvcihoPWs9MDtoPGU7aCsrKXtsPWdbaF07bj1sPT09MD9aZDpBcnJheShsKTtjW2hdPW47cT1rO2ZvcihyPTA7cjxsO3IrKylxLT1xYihkKSxuW3JdPWZbcV07ZltrXT09PWJbaF0mJmsrK31mb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKVhlKGEsYltkXSxjW2RdKTthLkk9Yn07VmUucHJvdG90eXBlLmplPWZ1bmN0aW9uKGEsYil7aWYodGhpcy5oIGluc3RhbmNlb2YgTWFwKXt2YXIgYz10aGlzLmguZ2V0KGEpO2MmJihjLmRlbGV0ZShiKSxjLnNpemU9PT0wJiZ0aGlzLmguZGVsZXRlKGEpKX1lbHNlIGlmKHRoaXMuaFthXSl7ZGVsZXRlIHRoaXMuaFthXVtiXTtmb3IoYyBpbiB0aGlzLmhbYV0pcmV0dXJuO2RlbGV0ZSB0aGlzLmhbYV19fTtWZS5wcm90b3R5cGUuc2U9ZnVuY3Rpb24oYSl7VmUuZWEuc2UuY2FsbCh0aGlzLGEpO1plKHRoaXMpfTsKVmUucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuby5zaXplPjB9O1ZlLnByb3RvdHlwZS5EZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLkIuc2l6ZT4wfTsKdmFyIGFmPWZ1bmN0aW9uKGEpe3ZhciBiPWEuUCxjPWEuaXNBY3RpdmUoKTtjIT1iJiYoJGUoYSxjP2RlLmxnOmRlLklETEUpLGEuUD1jKTtiPWEuRGYoKTtiIT1hLlQmJigkZShhLGI/ZGUuSGc6ZGUuSWcpLGEuVD1iKX0sWGU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZy5nZXQoYik7ZD9kLmw9YzphLmcuc2V0KGIsbmV3IG5jLkZlKGMsYikpfSxkZj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT17fTtiPV8uQyhuZXcgU2V0KGIpKTtmb3IodmFyIGY9Yi5uZXh0KCk7IWYuZG9uZTtmPWIubmV4dCgpKXtmPWYudmFsdWU7dmFyIGc9YS5nLmdldChmKTtpZighZyl0aHJvdyBFcnJvcigiQ2AiK2YpO3ZhciBoPW5ldyBCYjtlW2ZdPWg7Zy5nP2guZyhhLnFhKTooYmYoYSxmLGcsISFjLGgpLGNmKGEsZil8fGQucHVzaChmKSl9ZC5sZW5ndGg+MCYmKGEuby5zaXplPT09MD9hLkcoZCk6KGEuai5wdXNoKGQpLGFmKGEpKSk7cmV0dXJuIGV9LGJmPWZ1bmN0aW9uKGEsYixjLGQsZSl7YWUoYywKZS5nLGUpO2JlKGMsZnVuY3Rpb24oZil7ZS5GKG5ldyBXZShiLGYpKX0pO2NmKGEsYik/ZCYmKGEuQi5hZGQoYiksYWYoYSkpOmQmJmEuQi5hZGQoYil9OwpWZS5wcm90b3R5cGUuRz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcztiPWI9PT12b2lkIDA/MDpiO3ZhciBlPWVmKHRoaXMsYSk7dGhpcy5vPW5ldyBTZXQoZSk7dGhpcy5BPXRoaXMuVz9hOl8ud2EoZSk7YWYodGhpcyk7aWYoZS5sZW5ndGghPT0wKXthPV8uQyhlKTtmb3IodmFyIGY9YS5uZXh0KCk7IWYuZG9uZTtmPWEubmV4dCgpKXRoaXMuQy5hZGQoZi52YWx1ZSk7YT10aGlzLk87aWYoIWEpdGhyb3cgRXJyb3IoIkQiKTtpZigodGhpcy5oIGluc3RhbmNlb2YgTWFwP3RoaXMuaC5zaXplPjA6T2JqZWN0LmtleXModGhpcy5oKS5sZW5ndGg+MCkmJiFhLkkpdGhyb3cgRXJyb3IoIkUiKTtmZihhLF8ud2EoZSksdGhpcy5nLHtqaDp0aGlzLmgsZmU6ZnVuY3Rpb24oZyxoLGspe3JldHVybiBnZihkLGQuQSxlLGchPW51bGw/Zzp2b2lkIDAsaCxiLCEhayl9LEZpOigwLF8ueSkodGhpcy5sYSx0aGlzKSxtaDohIWN9KX19Owp2YXIgaGY9ZnVuY3Rpb24oYSl7dGhpcy5oPWE7dGhpcy5qPW5ldyBTZXQ7dGhpcy5nPVtdfSxqZj1mdW5jdGlvbihhLGIpe2lmKCFhLmouaGFzKGIpJiYoYS5qLmFkZChiKSwhYS5oLkMuaGFzKGIpKSl7dmFyIGM9YS5oLmcuZ2V0KGIpO2lmKGMmJiFjLmcpe2M9Yy5sO2Zvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKWpmKGEsY1tkXSk7YS5nLnB1c2goYil9fX0sZWY9ZnVuY3Rpb24oYSxiKXtiPWIuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBhLmcuZ2V0KGUpLmc/KF8udi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIEVycm9yKCJGYCIrZSl9LDApLCExKTohMH0pO2lmKE9jKXt2YXIgYz1uZXcgaGYoYSk7Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspamYoYyxiW2RdKTtjPWMuZ31lbHNle2M9W107Zm9yKGQ9MDtkPGIubGVuZ3RoO2QrKyljPWMuY29uY2F0KGtmKGEsYltkXSkpO0JhKGMpfXJldHVybiFhLlcmJmMubGVuZ3RoPjE/KGI9Yy5zaGlmdCgpLGEuaj1jLm1hcChmdW5jdGlvbihlKXtyZXR1cm5bZV19KS5jb25jYXQoYS5qKSwKW2JdKTpjfSxrZj1mdW5jdGlvbihhLGIpe2lmKE9jKXJldHVybiBhPW5ldyBoZihhKSxqZihhLGIpLGEuZzt2YXIgYz1bXTthLkMuaGFzKGIpfHxjLnB1c2goYik7Yj1bYl07Zm9yKHZhciBkPTA7ZDxiLmxlbmd0aDtkKyspZm9yKHZhciBlPWEuZy5nZXQoYltkXSkubCxmPWUubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciBnPWVbZl07YS5nLmdldChnKS5nfHxhLkMuaGFzKGcpfHwoYy5wdXNoKGcpLGIucHVzaChnKSl9Yy5yZXZlcnNlKCk7QmEoYyk7cmV0dXJuIGN9LFplPWZ1bmN0aW9uKGEpe2lmKGEubD09YS5EKXthLmw9bnVsbDt2YXIgYj1hLkQub25Mb2FkKCgwLF8ueSkoYS5rZixhKSk7YiYmYi5sZW5ndGgmJmxmKGEsbmV3IG5jLkZhKG5jLkZhLmcudGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsYlswXSkpO2FmKGEpfX07ClZlLnByb3RvdHlwZS5tZD1mdW5jdGlvbigpe2lmKHRoaXMubCl7dmFyIGE9dGhpcy5sLlJhKCksYj1bXTtpZih0aGlzLmggaW5zdGFuY2VvZiBNYXApe3ZhciBjPXRoaXMuaC5nZXQoYSk7aWYoYyl7Yz1fLkMoQXJyYXkuZnJvbShjKSk7Zm9yKHZhciBkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSl7ZD1kLnZhbHVlO3ZhciBlPXRoaXMuZy5nZXQoZCk7ZSYmIWUuZyYmKHRoaXMuamUoYSxkKSxiLnB1c2goZCkpfWRmKHRoaXMsYil9fWVsc2UgaWYodGhpcy5oW2FdKXtjPV8uQyhPYmplY3Qua2V5cyh0aGlzLmhbYV0pKTtmb3IoZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZD1kLnZhbHVlLChlPXRoaXMuZy5nZXQoZCkpJiYhZS5nJiYodGhpcy5qZShhLGQpLGIucHVzaChkKSk7ZGYodGhpcyxiKX10aGlzLnFiKCl8fCgoYj10aGlzLmcuZ2V0KGEpLm9uTG9hZCgoMCxfLnkpKHRoaXMua2YsdGhpcykpKSYmYi5sZW5ndGgmJmxmKHRoaXMsbmV3IG5jLkZhKG5jLkZhLmcudGQsCnZvaWQgMCx2b2lkIDAsdm9pZCAwLGJbMF0pKSx0aGlzLkIuZGVsZXRlKGEpLHRoaXMuby5kZWxldGUoYSksdGhpcy5vLnNpemUhPT0wfHxtZih0aGlzKSx0aGlzLkwmJmE9PXRoaXMuTCYmKHRoaXMuRi5ofHx0aGlzLkYuZygpKSxhZih0aGlzKSx0aGlzLmw9bnVsbCl9fTt2YXIgY2Y9ZnVuY3Rpb24oYSxiKXtpZihhLm8uaGFzKGIpKXJldHVybiEwO2Zvcih2YXIgYz0wO2M8YS5qLmxlbmd0aDtjKyspaWYoXy50YShhLmpbY10sYikpcmV0dXJuITA7cmV0dXJuITF9O1ZlLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGRmKHRoaXMsW2FdLGIpW2FdfTsKdmFyIGthPWZ1bmN0aW9uKGEpe3ZhciBiPV8uZGE7Yi5sJiZiLmwuUmEoKT09PSJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIiYmKGIubWQoKSxiLmcuZGVsZXRlKCJzeW50aGV0aWNfbW9kdWxlX292ZXJoZWFkIikpO3ZhciBjPWIuZy5nZXQoYSk7YyYmbmYoYixjLmx8fFtdLGZ1bmN0aW9uKGQpe2QubWQoKTtiLm8uZGVsZXRlKGQuUmEoKSl9LGZ1bmN0aW9uKGQpe3JldHVybiFkLmd9LG5ldyBTZXQpO2IubD1iLmcuZ2V0KGEpO2IubCYmKGIubC5CPSEwKX0sZ2Y9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9KGc9PT12b2lkIDA/MDpnKT8wOihmPT09dm9pZCAwPzA6ZikrMTtmPV8ud2EoYyk7YS5BPWI7Yz1fLkMoYyk7Zm9yKGc9Yy5uZXh0KCk7IWcuZG9uZTtnPWMubmV4dCgpKWEuQy5kZWxldGUoZy52YWx1ZSk7aWYoZD09NDAxKWxmKGEsbmV3IG5jLkZhKG5jLkZhLmcuSmUsZCkpLGEuai5sZW5ndGg9MDtlbHNlIGlmKGQ9PTQxMClvZihhLG5ldyBuYy5GYShuYy5GYS5nLkhlLApkKSksbWYoYSk7ZWxzZSBpZihoPj0zKW9mKGEsbmV3IG5jLkZhKG5jLkZhLmcuQmUsZCxmLGUpKSxtZihhKTtlbHNle3ZhciBrPWQ9PTgwMDF8fCExOyhkPU1hdGgucG93KGgsMikqNUUzKT9fLnYuc2V0VGltZW91dChmdW5jdGlvbigpe2EuRyhiLGgsayl9LGQpOmEuRyhiLGgsayl9fTtWZS5wcm90b3R5cGUubGE9ZnVuY3Rpb24oKXtvZih0aGlzLG5ldyBuYy5GYShuYy5GYS5nLlRJTUVPVVQpKTttZih0aGlzKX07CnZhciBvZj1mdW5jdGlvbihhLGIpe2EuQS5sZW5ndGg+MT9hLmo9YS5BLm1hcChmdW5jdGlvbihjKXtyZXR1cm5bY119KS5jb25jYXQoYS5qKTpsZihhLGIpfSxsZj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuQTthLm8uY2xlYXIoKTtmb3IodmFyIGQ9W10sZT0wO2U8YS5qLmxlbmd0aDtlKyspe3ZhciBmPWEualtlXS5maWx0ZXIoZnVuY3Rpb24oayl7dmFyIGw9a2YodGhpcyxrKTtyZXR1cm4gXy54YyhjLGZ1bmN0aW9uKG4pe3JldHVybiBfLnRhKGwsbil9KX0sYSk7eGEoZCxmKX1mb3IoZT0wO2U8Yy5sZW5ndGg7ZSsrKV8udWEoZCxjW2VdKTtmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKXtmb3IoZj0wO2Y8YS5qLmxlbmd0aDtmKyspXy52YShhLmpbZl0sZFtlXSk7YS5CLmRlbGV0ZShkW2VdKX1pZihlPWEuSy5nZXQoZGUuRVJST1IpKWZvcihmPTA7ZjxlLmxlbmd0aDtmKyspZm9yKHZhciBnPWVbZl0saD0wO2g8ZC5sZW5ndGg7aCsrKWcoZGUuRVJST1IsZFtoXSxiKTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKShlPQphLmcuZ2V0KGNbZF0pKSYmZS5mZShiKTthLkEubGVuZ3RoPTA7YWYoYSl9LG1mPWZ1bmN0aW9uKGEpe2Zvcig7YS5qLmxlbmd0aDspe3ZhciBiPWEuai5zaGlmdCgpLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hdGhpcy5nLmdldChjKS5nfSxhKTtpZihiLmxlbmd0aD4wKXthLkcoYik7cmV0dXJufX1hZihhKX0sJGU9ZnVuY3Rpb24oYSxiKXthPWEuSy5nZXQoYik7Zm9yKHZhciBjPTA7YSYmYzxhLmxlbmd0aDtjKyspYVtjXShiKX0sbmY9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPV8uQyhiKTtmb3IodmFyIGY9Yi5uZXh0KCk7IWYuZG9uZTtmPWIubmV4dCgpKXtmPWYudmFsdWU7dmFyIGc9YS5nLmdldChmKTshZS5oYXMoZikmJmQoZykmJihlLmFkZChmKSxuZihhLGcubHx8W10sYyxkLGUpLGMoZykpfX07ClZlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7cmEoQXJyYXkuZnJvbSh0aGlzLmcudmFsdWVzKCkpLHRoaXMuRCk7dGhpcy5nLmNsZWFyKCk7dGhpcy5vLmNsZWFyKCk7dGhpcy5BPVtdO3RoaXMuQi5jbGVhcigpO3RoaXMuaj1bXTt0aGlzLksuY2xlYXIoKTt0aGlzLlI9ITB9O1ZlLnByb3RvdHlwZS5xYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJ9O18uaGE9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZlfTt2YXIgcGY9W10scWY9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtkJiZ3YyhkLGZ1bmN0aW9uKGUsZil7ZVtmLmlkXT0hMDtyZXR1cm4gZX0sYy5KaSl9dmFyIGM9e0ppOnt9LGluZGV4OnBmLmxlbmd0aCxWbDphfTtiKGEubGQpO2IoYS5qbSk7cGYucHVzaChjKTthLmxkJiZfLnZjKGEubGQsZnVuY3Rpb24oZCl7dmFyIGU9ZC5pZDtlIGluc3RhbmNlb2YgdGMmJmQubW9kdWxlJiYoZS5nPWQubW9kdWxlKX0pfTtxZih7bGQ6W3tpZDp1YyxMYjpuYixtdWx0aXBsZTohMH1dfSk7Xy5yZj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JCIpO3ZhciBzZj17fTt2YXIgdGY9bmV3IHRjKCJNcEp3WmMiLCJNcEp3WmMiKTtfLnVmPW5ldyB0YygiVVVKcVZlIiwiVVVKcVZlIik7dmFyIHZmPW5ldyBiYix3Zj1mdW5jdGlvbihhLGIsYyl7Y2IuY2FsbCh0aGlzLGEsYik7dGhpcy5ub2RlPWI7dGhpcy5raW5kPWN9O18uQih3ZixjYik7Xy54Zj1SZWdFeHAoIl4oYXJ8Y2tifGR2fGhlfGl3fGZhfG5xb3xwc3xzZHx1Z3x1cnx5aXwuKlstX10oQWRsbXxBcmFifEhlYnJ8Tmtvb3xSb2hnfFRoYWEpKSg/IS4qWy1fXShMYXRufEN5cmwpKCR8LXxfKSkoJHwtfF8pIiwiaSIpO18ueWY9ZnVuY3Rpb24oYSxiKXtifHxfLmxiKCk7dGhpcy5oPWF8fG51bGx9O18ueWYucHJvdG90eXBlLmthPWZ1bmN0aW9uKGEsYil7YT1hKGJ8fHt9LHRoaXMuaD90aGlzLmguZ2V0RGF0YSgpOnt9KTt0aGlzLmcobnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgXy56ZiYmYSBpbnN0YW5jZW9mIF8uemY/YS5aYjpudWxsKTtyZXR1cm4gU3RyaW5nKGEpfTtfLnlmLnByb3RvdHlwZS5nPWZ1bmN0aW9uKCl7fTt2YXIgQWY9ZnVuY3Rpb24oYSl7dGhpcy5nPWE7dGhpcy5oPXRoaXMuZy5nKF8udWYpfTtBZi5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3RoaXMuZy5xYigpfHwodGhpcy5oPXRoaXMuZy5nKF8udWYpKTtyZXR1cm4gdGhpcy5oP3RoaXMuaC5qKCk6e319O3ZhciBCZj1mdW5jdGlvbihhKXt2YXIgYj1uZXcgQWYoYSk7Xy55Zi5jYWxsKHRoaXMsYixhLmdldCh1YykuaCk7dGhpcy5qPW5ldyBfLmhiO3RoaXMubD1ifTtfLkIoQmYsXy55Zik7QmYucHJvdG90eXBlLmdldERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sLmdldERhdGEoKX07QmYucHJvdG90eXBlLmc9ZnVuY3Rpb24oYSxiKXtfLnlmLnByb3RvdHlwZS5nLmNhbGwodGhpcyxhLGIpO3RoaXMuai5kaXNwYXRjaEV2ZW50KG5ldyB3Zih2ZixhLGIpKX07Xy5vYSh0ZixCZik7cWYoe2xkOlt7aWQ6dGYsTGI6QmYsbXVsdGlwbGU6ITB9XX0pO3ZhciBDZj1mdW5jdGlvbihhLGIpe3RoaXMuZGVmYXVsdFZhbHVlPWE7dGhpcy50eXBlPWI7dGhpcy52YWx1ZT1hfTtDZi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O0NmLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSl7dGhpcy52YWx1ZT1hfTt2YXIgRGY9ZnVuY3Rpb24oYSl7Q2YuY2FsbCh0aGlzLGEsImIiKX07Xy5CKERmLENmKTtEZi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9O3ZhciBFZj1mdW5jdGlvbigpe3RoaXMuZz17fTt0aGlzLmo9IiI7dGhpcy5oPXt9fTtFZi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmorRmYodGhpcyk7dmFyIGI9dGhpcy5oO3ZhciBjPVtdLGQ7Zm9yKGQgaW4gYilGYihkLGJbZF0sYyk7Yj1jLmpvaW4oIiYiKTtjPSIiO2IhPSIiJiYoYz0iPyIrYik7cmV0dXJuIGErY307CnZhciBIZj1mdW5jdGlvbihhKXthPUdmKGEsIm1kIik7cmV0dXJuISFhJiZhIT09IjAifSxGZj1mdW5jdGlvbihhKXt2YXIgYj1bXSxjPWZ1bmN0aW9uKGQpe2EuZ1tkXSE9PXZvaWQgMCYmYi5wdXNoKGQrIj0iK2EuZ1tkXSl9O0hmKGEpPyhjKCJtZCIpLGMoImsiKSxjKCJjayIpLGMoImFtIiksYygicnMiKSxjKCJnc3Ntb2R1bGVzZXRwcm90byIpLGMoInNsayIpLGMoImR0aSIpLGMoImRid2giKSk6KGMoInNkY2giKSxjKCJrIiksYygiY2siKSxjKCJhbSIpLGMoImFtYyIpLGMoInJ0IiksImQiaW4gYS5nfHxJZihhLCJkIiwiMCIpLGMoImQiKSxjKCJleG0iKSxjKCJleGNtIiksKGEuZy5leGNtfHxhLmcuZXhtKSYmYi5wdXNoKCJlZD0xIiksYygiaW0iKSxjKCJkZyIpLGMoInNtIiksR2YoYSwiYnIiKSE9IjEiJiZHZihhLCJiciIpIT0iMCJ8fGMoImJyIiksYygiYnItZCIpLEdmKGEsInJiIik9PSIxIiYmYygicmIiKSxHZihhLCJ6cyIpIT09IjAiJiZjKCJ6cyIpLEpmKGEpIT09IiImJgpjKCJ3dCIpLGMoImdzc21vZHVsZXNldHByb3RvIiksYygidWpnIiksYygic3AiKSxjKCJpY2hjIiksYygicnMiKSxjKCJjYiIpLGMoImNjYiIpLGMoImVlIiksYygic2xrIiksYygiZHRpIiksYygiZGJ3aCIpLGMoImljIiksYygibSIpKTtyZXR1cm4gYi5qb2luKCIvIil9LEdmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuZ1tiXT9hLmdbYl06bnVsbH0sSWY9ZnVuY3Rpb24oYSxiLGMpe2M/YS5nW2JdPWM6ZGVsZXRlIGEuZ1tiXX0sSmY9ZnVuY3Rpb24oYSl7c3dpdGNoKEdmKGEsInd0Iikpe2Nhc2UgIjAiOnJldHVybiIwIjtjYXNlICIxIjpyZXR1cm4iMSI7Y2FzZSAiMiI6cmV0dXJuIjIiO2RlZmF1bHQ6cmV0dXJuIiJ9fSxNZj1mdW5jdGlvbihhKXt2YXIgYj1iPT09dm9pZCAwPyEwOmI7dmFyIGM9S2YoYSksZD1uZXcgRWYsZT1jLm1hdGNoKF8ucmYpWzVdO18uemMoTGYsZnVuY3Rpb24oZyl7dmFyIGg9ZS5tYXRjaCgiLyIrZysiPShbXi9dKykiKTtoJiZJZihkLGcsaFsxXSl9KTsKdmFyIGY9IiI7Zj1hLmluZGV4T2YoIl8vc3MvIikhPS0xPyJfL3NzLyI6Il8vanMvIjtkLmo9YS5zdWJzdHIoMCxhLmluZGV4T2YoZikrZi5sZW5ndGgpO2lmKCFiKXJldHVybiBkOyhhPWMubWF0Y2goXy5yZilbNl18fG51bGwpJiZfLkViKGEsZnVuY3Rpb24oZyxoKXtkLmhbZ109aH0pO3JldHVybiBkfSxLZj1mdW5jdGlvbihhKXtyZXR1cm4gYS5zdGFydHNXaXRoKCJodHRwczovL3ViZXJwcm94eS1wZW4tcmVkaXJlY3QuY29ycC5nb29nbGUuY29tL3ViZXJwcm94eS9wZW4/dXJsPSIpP2Euc3Vic3RyKDY1KTphfSxMZj17Wmo6ImsiLHFqOiJjayIsVGo6Im0iLERqOiJleG0iLEJqOiJleGNtIixlajoiYW0iLGZqOiJhbWMiLFJqOiJtbSIsWWo6InJ0IixNajoiZCIsQ2o6ImVkIixqazoic3YiLHNqOiJkZW9iIixtajoiY2IiLG9qOiJjY2IiLG5qOiJjYmkiLGdrOiJycyIsYWs6InNkY2giLE5qOiJpbSIsdGo6ImRnIix6ajoiYnIiLHlqOiJici1kIixBajoicmIiLEJrOiJ6cyIsQWs6Ind0IiwKRWo6ImVlIixpazoic20iLFNqOiJtZCIsSmo6Imdzc21vZHVsZXNldHByb3RvIix5azoidWpnIix4azoic3AiLExqOiJpY2hjIixmazoic2xrIix2ajoiZHRpIix1ajoiZGJ3aCIsT2o6ImljIn0sTmY9UmVnRXhwKCJeW2EtekEtWjAtOS1fKl0rJCIpO18uRyhfLkhiLF8udSk7dmFyIE9mPVtdO18uSGIucHJvdG90eXBlLk49ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIFBmKHRoaXMsYSxiLGMsZCl9O3ZhciBQZj1mdW5jdGlvbihhLGIsYyxkLGUsZil7QXJyYXkuaXNBcnJheShjKXx8KGMmJihPZlswXT1jLnRvU3RyaW5nKCkpLGM9T2YpO2Zvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKXt2YXIgaD1fLngoYixjW2ddLGR8fGEuaGFuZGxlRXZlbnQsZXx8ITEsZnx8YS5ofHxhKTtpZighaClicmVhazthLmdbaC5rZXldPWh9cmV0dXJuIGF9O18uSGIucHJvdG90eXBlLmFlPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBRZih0aGlzLGEsYixjLGQpfTsKdmFyIFFmPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtpZihBcnJheS5pc0FycmF5KGMpKWZvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKVFmKGEsYixjW2ddLGQsZSxmKTtlbHNle2I9Xy5OZChiLGMsZHx8YS5oYW5kbGVFdmVudCxlLGZ8fGEuaHx8YSk7aWYoIWIpcmV0dXJuIGE7YS5nW2Iua2V5XT1ifXJldHVybiBhfTtfLkhiLnByb3RvdHlwZS55Yz1mdW5jdGlvbihhLGIsYyxkLGUpe2lmKEFycmF5LmlzQXJyYXkoYikpZm9yKHZhciBmPTA7ZjxiLmxlbmd0aDtmKyspdGhpcy55YyhhLGJbZl0sYyxkLGUpO2Vsc2UgYz1jfHx0aGlzLmhhbmRsZUV2ZW50LGQ9Xy55YShkKT8hIWQuY2FwdHVyZTohIWQsZT1lfHx0aGlzLmh8fHRoaXMsYz1PZChjKSxkPSEhZCxiPUZkKGEpP2EuamMoYixjLGQsZSk6YT8oYT1RZChhKSk/YS5qYyhiLGMsZCxlKTpudWxsOm51bGwsYiYmKF8uVmQoYiksZGVsZXRlIHRoaXMuZ1tiLmtleV0pO3JldHVybiB0aGlzfTsKXy5SZj1mdW5jdGlvbihhKXtfLnpjKGEuZyxmdW5jdGlvbihiLGMpe3RoaXMuZy5oYXNPd25Qcm9wZXJ0eShjKSYmXy5WZChiKX0sYSk7YS5nPXt9fTtfLkhiLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy5IYi5lYS5NLmNhbGwodGhpcyk7Xy5SZih0aGlzKX07Xy5IYi5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiTiIpO307dmFyIFNmLFRmPWZ1bmN0aW9uKCl7fTtfLkcoVGYsSWIpO1RmLnByb3RvdHlwZS5nPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH07U2Y9bmV3IFRmO18uRyhKYixJYik7SmIucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoIndpdGhDcmVkZW50aWFscyJpbiBhKXJldHVybiBhO2lmKHR5cGVvZiBYRG9tYWluUmVxdWVzdCE9InVuZGVmaW5lZCIpcmV0dXJuIG5ldyBVZjt0aHJvdyBFcnJvcigiTyIpO307dmFyIFVmPWZ1bmN0aW9uKCl7dGhpcy5nPW5ldyBYRG9tYWluUmVxdWVzdDt0aGlzLnJlYWR5U3RhdGU9MDt0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsO3RoaXMucmVzcG9uc2VUeXBlPXRoaXMucmVzcG9uc2VUZXh0PSIiO3RoaXMuc3RhdHVzPS0xO3RoaXMuc3RhdHVzVGV4dD0iIjt0aGlzLmcub25sb2FkPSgwLF8ueSkodGhpcy5QaCx0aGlzKTt0aGlzLmcub25lcnJvcj0oMCxfLnkpKHRoaXMuRGUsdGhpcyk7dGhpcy5nLm9ucHJvZ3Jlc3M9KDAsXy55KSh0aGlzLlNoLHRoaXMpO3RoaXMuZy5vbnRpbWVvdXQ9KDAsXy55KSh0aGlzLldoLHRoaXMpfTtfLm09VWYucHJvdG90eXBlOwpfLm0ub3Blbj1mdW5jdGlvbihhLGIsYyl7aWYoYyE9bnVsbCYmIWMpdGhyb3cgRXJyb3IoIlAiKTt0aGlzLmcub3BlbihhLGIpfTtfLm0uc2VuZD1mdW5jdGlvbihhKXtpZihhKWlmKHR5cGVvZiBhPT0ic3RyaW5nIil0aGlzLmcuc2VuZChhKTtlbHNlIHRocm93IEVycm9yKCJRIik7ZWxzZSB0aGlzLmcuc2VuZCgpfTtfLm0uYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLmcuYWJvcnQoKX07Xy5tLnNldFJlcXVlc3RIZWFkZXI9ZnVuY3Rpb24oKXt9O18ubS5nZXRSZXNwb25zZUhlYWRlcj1mdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvd2VyQ2FzZSgpPT0iY29udGVudC10eXBlIj90aGlzLmcuY29udGVudFR5cGU6IiJ9O18ubS5QaD1mdW5jdGlvbigpe3RoaXMuc3RhdHVzPTIwMDt0aGlzLnJlc3BvbnNlVGV4dD10aGlzLmcucmVzcG9uc2VUZXh0O1ZmKHRoaXMsNCl9O18ubS5EZT1mdW5jdGlvbigpe3RoaXMuc3RhdHVzPTUwMDt0aGlzLnJlc3BvbnNlVGV4dD0iIjtWZih0aGlzLDQpfTsKXy5tLldoPWZ1bmN0aW9uKCl7dGhpcy5EZSgpfTtfLm0uU2g9ZnVuY3Rpb24oKXt0aGlzLnN0YXR1cz0yMDA7VmYodGhpcywxKX07dmFyIFZmPWZ1bmN0aW9uKGEsYil7YS5yZWFkeVN0YXRlPWI7aWYoYS5vbnJlYWR5c3RhdGVjaGFuZ2UpYS5vbnJlYWR5c3RhdGVjaGFuZ2UoKX07VWYucHJvdG90eXBlLmdldEFsbFJlc3BvbnNlSGVhZGVycz1mdW5jdGlvbigpe3JldHVybiJjb250ZW50LXR5cGU6ICIrdGhpcy5nLmNvbnRlbnRUeXBlfTt2YXIgWGYsWWY7Xy5XZj1mdW5jdGlvbihhKXtfLmhiLmNhbGwodGhpcyk7dGhpcy5oZWFkZXJzPW5ldyBNYXA7dGhpcy5LPWF8fG51bGw7dGhpcy5oPSExO3RoaXMuZz1udWxsO3RoaXMuQT0iIjt0aGlzLmo9dGhpcy5GPXRoaXMubz10aGlzLkQ9ITE7dGhpcy5CPTA7dGhpcy5sPW51bGw7dGhpcy5JPSIiO3RoaXMuQz0hMX07Xy5HKF8uV2YsXy5oYik7WGY9L15odHRwcz8kL2k7WWY9WyJQT1NUIiwiUFVUIl07Xy5aZj1bXTtfLldmLnByb3RvdHlwZS5MPWZ1bmN0aW9uKCl7dGhpcy5kaXNwb3NlKCk7Xy52YShfLlpmLHRoaXMpfTsKXy5XZi5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIsYyxkKXtpZih0aGlzLmcpdGhyb3cgRXJyb3IoIlNgIit0aGlzLkErImAiK2EpO2I9Yj9iLnRvVXBwZXJDYXNlKCk6IkdFVCI7dGhpcy5BPWE7dGhpcy5EPSExO3RoaXMuaD0hMDt0aGlzLmc9dGhpcy5LP3RoaXMuSy5nKCk6U2YuZygpO3RoaXMuZy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZWUoKDAsXy55KSh0aGlzLkcsdGhpcykpO3RyeXt0aGlzLkY9ITAsdGhpcy5nLm9wZW4oYixTdHJpbmcoYSksITApLHRoaXMuRj0hMX1jYXRjaChnKXskZih0aGlzKTtyZXR1cm59YT1jfHwiIjtjPW5ldyBNYXAodGhpcy5oZWFkZXJzKTtpZihkKWlmKE9iamVjdC5nZXRQcm90b3R5cGVPZihkKT09PU9iamVjdC5wcm90b3R5cGUpZm9yKHZhciBlIGluIGQpYy5zZXQoZSxkW2VdKTtlbHNlIGlmKHR5cGVvZiBkLmtleXM9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgZC5nZXQ9PT0iZnVuY3Rpb24iKXtlPV8uQyhkLmtleXMoKSk7Zm9yKHZhciBmPWUubmV4dCgpOyFmLmRvbmU7Zj0KZS5uZXh0KCkpZj1mLnZhbHVlLGMuc2V0KGYsZC5nZXQoZikpfWVsc2UgdGhyb3cgRXJyb3IoIlRgIitTdHJpbmcoZCkpO2Q9QXJyYXkuZnJvbShjLmtleXMoKSkuZmluZChmdW5jdGlvbihnKXtyZXR1cm4iY29udGVudC10eXBlIj09Zy50b0xvd2VyQ2FzZSgpfSk7ZT1fLnYuRm9ybURhdGEmJmEgaW5zdGFuY2VvZiBfLnYuRm9ybURhdGE7IV8udGEoWWYsYil8fGR8fGV8fGMuc2V0KCJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpO2I9Xy5DKGMpO2ZvcihkPWIubmV4dCgpOyFkLmRvbmU7ZD1iLm5leHQoKSljPV8uQyhkLnZhbHVlKSxkPWMubmV4dCgpLnZhbHVlLGM9Yy5uZXh0KCkudmFsdWUsdGhpcy5nLnNldFJlcXVlc3RIZWFkZXIoZCxjKTt0aGlzLkkmJih0aGlzLmcucmVzcG9uc2VUeXBlPXRoaXMuSSk7IndpdGhDcmVkZW50aWFscyJpbiB0aGlzLmcmJnRoaXMuZy53aXRoQ3JlZGVudGlhbHMhPT10aGlzLkMmJgoodGhpcy5nLndpdGhDcmVkZW50aWFscz10aGlzLkMpO3RyeXt0aGlzLmwmJihjbGVhclRpbWVvdXQodGhpcy5sKSx0aGlzLmw9bnVsbCksdGhpcy5CPjAmJih0aGlzLmw9c2V0VGltZW91dCh0aGlzLlIuYmluZCh0aGlzKSx0aGlzLkIpKSx0aGlzLm89ITAsdGhpcy5nLnNlbmQoYSksdGhpcy5vPSExfWNhdGNoKGcpeyRmKHRoaXMpfX07Xy5XZi5wcm90b3R5cGUuUj1mdW5jdGlvbigpe3R5cGVvZiBqYyE9InVuZGVmaW5lZCImJnRoaXMuZyYmKHRoaXMuZGlzcGF0Y2hFdmVudCgidGltZW91dCIpLHRoaXMuYWJvcnQoOCkpfTt2YXIgJGY9ZnVuY3Rpb24oYSl7YS5oPSExO2EuZyYmKGEuaj0hMCxhLmcuYWJvcnQoKSxhLmo9ITEpO2RnKGEpO2VnKGEpfSxkZz1mdW5jdGlvbihhKXthLkR8fChhLkQ9ITAsYS5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLGEuZGlzcGF0Y2hFdmVudCgiZXJyb3IiKSl9OwpfLldmLnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuZyYmdGhpcy5oJiYodGhpcy5oPSExLHRoaXMuaj0hMCx0aGlzLmcuYWJvcnQoKSx0aGlzLmo9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KCJjb21wbGV0ZSIpLHRoaXMuZGlzcGF0Y2hFdmVudCgiYWJvcnQiKSxlZyh0aGlzKSl9O18uV2YucHJvdG90eXBlLk09ZnVuY3Rpb24oKXt0aGlzLmcmJih0aGlzLmgmJih0aGlzLmg9ITEsdGhpcy5qPSEwLHRoaXMuZy5hYm9ydCgpLHRoaXMuaj0hMSksZWcodGhpcywhMCkpO18uV2YuZWEuTS5jYWxsKHRoaXMpfTtfLldmLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7dGhpcy5xYigpfHwodGhpcy5GfHx0aGlzLm98fHRoaXMuaj9mZyh0aGlzKTp0aGlzLk8oKSl9O18uV2YucHJvdG90eXBlLk89ZnVuY3Rpb24oKXtmZyh0aGlzKX07CnZhciBmZz1mdW5jdGlvbihhKXtpZihhLmgmJnR5cGVvZiBqYyE9InVuZGVmaW5lZCIpaWYoYS5vJiYoYS5nP2EuZy5yZWFkeVN0YXRlOjApPT00KXNldFRpbWVvdXQoYS5HLmJpbmQoYSksMCk7ZWxzZSBpZihhLmRpc3BhdGNoRXZlbnQoInJlYWR5c3RhdGVjaGFuZ2UiKSwoYS5nP2EuZy5yZWFkeVN0YXRlOjApPT00KXthLmg9ITE7dHJ5e18uZ2coYSk/KGEuZGlzcGF0Y2hFdmVudCgiY29tcGxldGUiKSxhLmRpc3BhdGNoRXZlbnQoInN1Y2Nlc3MiKSk6ZGcoYSl9ZmluYWxseXtlZyhhKX19fSxlZz1mdW5jdGlvbihhLGIpe2lmKGEuZyl7YS5sJiYoY2xlYXJUaW1lb3V0KGEubCksYS5sPW51bGwpO3ZhciBjPWEuZzthLmc9bnVsbDtifHxhLmRpc3BhdGNoRXZlbnQoInJlYWR5Iik7dHJ5e2Mub25yZWFkeXN0YXRlY2hhbmdlPW51bGx9Y2F0Y2goZCl7fX19O18uV2YucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmd9OwpfLmdnPWZ1bmN0aW9uKGEpe3ZhciBiPV8uaGcoYSk7YTpzd2l0Y2goYil7Y2FzZSAyMDA6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDQ6Y2FzZSAyMDY6Y2FzZSAzMDQ6Y2FzZSAxMjIzOnZhciBjPSEwO2JyZWFrIGE7ZGVmYXVsdDpjPSExfWlmKCFjKXtpZihiPWI9PT0wKWE9U3RyaW5nKGEuQSkubWF0Y2goXy5yZilbMV18fG51bGwsIWEmJl8udi5zZWxmJiZfLnYuc2VsZi5sb2NhdGlvbiYmKGE9Xy52LnNlbGYubG9jYXRpb24ucHJvdG9jb2wuc2xpY2UoMCwtMSkpLGI9IVhmLnRlc3QoYT9hLnRvTG93ZXJDYXNlKCk6IiIpO2M9Yn1yZXR1cm4gY307Xy5oZz1mdW5jdGlvbihhKXt0cnl7cmV0dXJuKGEuZz9hLmcucmVhZHlTdGF0ZTowKT4yP2EuZy5zdGF0dXM6LTF9Y2F0Y2goYil7cmV0dXJuLTF9fTtfLmlnPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5nP2EuZy5yZXNwb25zZVRleHQ6IiJ9Y2F0Y2goYil7cmV0dXJuIiJ9fTt2YXIga2c9ZnVuY3Rpb24oYSl7Xy51LmNhbGwodGhpcyk7dGhpcy5GPWE7dGhpcy5CPU1mKGEpO3RoaXMubD10aGlzLm89bnVsbDt0aGlzLkk9ITA7dGhpcy5oPW5ldyBfLkhiKHRoaXMpO3RoaXMuRz1bXTt0aGlzLkE9bmV3IFNldDt0aGlzLmc9W107dGhpcy5LPW5ldyBqZzt0aGlzLmo9W107dGhpcy5DPSExO2E9KDAsXy55KSh0aGlzLkQsdGhpcyk7c2YudmVyc2lvbj1hfTtfLkIoa2csXy51KTsKdmFyIGxnPWZ1bmN0aW9uKGEsYil7YS5nLmxlbmd0aCYmUGUoYixhLmdbYS5nLmxlbmd0aC0xXSk7YS5nLnB1c2goYik7TWUoYixmdW5jdGlvbigpe18udmEodGhpcy5nLGIpfSxhKX0sZmY9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZD09PXZvaWQgMD97fTpkO3ZhciBmPWUuamg7ZD1lLm1oO3ZhciBnPWUuZmU7ZT1lLkZpO2I9bWcoYSxiLGMsZixkKTtuZyhhLGIsZyxlLGQpfSxtZz1mdW5jdGlvbihhLGIsYyxkLGUpe2Q9ZD09PXZvaWQgMD9OYz9uZXcgTWFwOnt9OmQ7dmFyIGY9W107b2coYSxiLGMsZCxlPT09dm9pZCAwPyExOmUsZnVuY3Rpb24oZyl7Zi5wdXNoKGcuUmEoKSl9KTtyZXR1cm4gZn0sb2c9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7Zz1nPT09dm9pZCAwP3t9Omc7Yj1fLkMoYik7Zm9yKHZhciBoPWIubmV4dCgpOyFoLmRvbmU7aD1iLm5leHQoKSl7dmFyIGs9aC52YWx1ZTtoPWMuZ2V0KGspOyFlJiYoYS5BLmhhcyhrKXx8aC5nKXx8Z1trXXx8KGdba109ITAsaz1kIGluc3RhbmNlb2YKTWFwPyhrPWQuZ2V0KGspKT9BcnJheS5mcm9tKGspOltdOmRba10/T2JqZWN0LmtleXMoZFtrXSk6W10sb2coYSxoLmwuY29uY2F0KGspLGMsZCxlLGYsZyksZihoKSl9fSxuZz1mdW5jdGlvbihhLGIsYyxkLGUpe2U9ZT09PXZvaWQgMD8hMTplO3ZhciBmPVtdLGc9bmV3IEJiO2I9W2JdO2Zvcih2YXIgaD1mdW5jdGlvbihxLHApe2Zvcih2YXIgcj1bXSx0PTAsQT1NYXRoLmZsb29yKHEubGVuZ3RoL3ApKzEsRD0wO0Q8cDtEKyspe3ZhciBFPShEKzEpKkE7ci5wdXNoKHEuc2xpY2UodCxFKSk7dD1FfXJldHVybiByfSxrPWIuc2hpZnQoKTtrOyl7dmFyIGw9cGcoYSxrLCEhZSwhMCk7aWYobC5sZW5ndGg8PTJFMyl7aWYoaz1yZyhhLGssZSkpZi5wdXNoKGspLFBlKGcsay5nKX1lbHNlIGI9aChrLE1hdGguY2VpbChsLmxlbmd0aC8yRTMpKS5jb25jYXQoYik7az1iLnNoaWZ0KCl9dmFyIG49bmV3IEJiO2xnKGEsbik7TWUobixmdW5jdGlvbigpe3JldHVybiBzZyhhLGYsYyxkKX0pO05lKG4sCmZ1bmN0aW9uKCl7dmFyIHE9bmV3IHRnO3Euaj0hMDtxLmg9LTE7c2codGhpcyxbcV0sYyxkKX0sYSk7TWUoZyxmdW5jdGlvbigpe3JldHVybiBuLmcoKX0pO2cuZygpfSxyZz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9cGcoYSxiLCEoYz09PXZvaWQgMHx8IWMpKTthLkcucHVzaChkKTtiPV8uQyhiKTtmb3IoYz1iLm5leHQoKTshYy5kb25lO2M9Yi5uZXh0KCkpYS5BLmFkZChjLnZhbHVlKTtpZihhLkMpYT1fLndkKGRvY3VtZW50LCJTQ1JJUFQiKSxfLlNhKGEsXy5MYihkKSksYS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGEuYXN5bmM9ITEsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtlbHNle3ZhciBlPW5ldyB0ZyxmPW5ldyBfLldmKGEuai5sZW5ndGg+MD9uZXcgSmI6dm9pZCAwKTthLmguTihmLCJzdWNjZXNzIiwoMCxfLnkpKGUuQixlLGYpKTthLmguTihmLCJlcnJvciIsKDAsXy55KShlLkEsZSxmKSk7YS5oLk4oZiwidGltZW91dCIsKDAsXy55KShlLkMsZSkpO1BmKGEuaCwKZiwicmVhZHkiLGYuZGlzcG9zZSwhMSxmKTtmLkI9M0U0O3VnKGEuSyxmdW5jdGlvbigpe2Yuc2VuZChkKTtyZXR1cm4gZS5nfSk7cmV0dXJuIGV9cmV0dXJuIG51bGx9LHNnPWZ1bmN0aW9uKGEsYixjLGQpe2Zvcih2YXIgZT0hMSxmLGc9ITEsaD0wO2g8Yi5sZW5ndGg7aCsrKXt2YXIgaz1iW2hdO2lmKCFmJiZrLmope2U9ITA7Zj1rLmg7YnJlYWt9ZWxzZSBrLmwmJihnPSEwKX1oPV8ud2EoYS5nKTsoZXx8ZykmJmYhPS0xJiYoYS5nLmxlbmd0aD0wKTtpZihlKWMmJmMoZik7ZWxzZSBpZihnKWQmJmQoKTtlbHNlIGZvcihhPTA7YTxiLmxlbmd0aDthKyspZD1iW2FdLHZnKGQubyxkLkNhKXx8YyYmYyg4MDAxKTsoZXx8ZykmJmYhPS0xJiZfLnZjKGgsZnVuY3Rpb24obCl7bC5jYW5jZWwoKX0pfTtrZy5wcm90b3R5cGUuTT1mdW5jdGlvbigpe3RoaXMuaC5kaXNwb3NlKCk7ZGVsZXRlIHNmLnZlcnNpb247Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyl9OwprZy5wcm90b3R5cGUuRD1mdW5jdGlvbigpe3JldHVybiBHZih0aGlzLkIsImsiKX07CnZhciBwZz1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT1fLkNiKGEuRi5tYXRjaChfLnJmKVszXXx8bnVsbCk7aWYoYS5qLmxlbmd0aD4wJiYhXy50YShhLmosZSkmJmUhPW51bGwmJndpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSE9ZSl0aHJvdyBFcnJvcigiV2AiK2UpO3ZhciBmPWEuQjtlPW5ldyBFZjtlLmc9T2JqZWN0LmFzc2lnbih7fSxmLmcpO2Uuaj1mLmo7ZS5oPU9iamVjdC5hc3NpZ24oe30sZi5oKTtkZWxldGUgZS5nLm07ZGVsZXRlIGUuZy5leG07ZGVsZXRlIGUuZy5lZDtpZihiKXtmPV8uQyhiKTtmb3IodmFyIGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWlmKGc9Zy52YWx1ZSwhTmYudGVzdChnKSl0aHJvdyBFcnJvcigiTWAiK2cpO31JZihlLCJtIixiLmpvaW4oIiwiKSk7YS5vJiYoSWYoZSwiY2siLGEubyksYS5sJiZJZihlLCJycyIsYS5sKSk7SWYoZSwiZCIsIjAiKTtjJiYoZS5oLnp4PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoKMjE0NzQ4MzY0OCkudG9TdHJpbmcoMzYpK01hdGguYWJzKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ4KV5EYXRlLm5vdygpKS50b1N0cmluZygzNikpO2E9ZS50b1N0cmluZygpO2QmJmEubGFzdEluZGV4T2YoIi8iLDApPT0wJiYoZT1kb2N1bWVudC5sb2NhdGlvbi5ocmVmLm1hdGNoKF8ucmYpLGQ9ZVsxXSxiPWVbMl0sYz1lWzNdLGU9ZVs0XSxmPSIiLGQmJihmKz1kKyI6IiksYyYmKGYrPSIvLyIsYiYmKGYrPWIrIkAiKSxmKz1jLGUmJihmKz0iOiIrZSkpLGE9ZithKTtyZXR1cm4gYX0sdmc9ZnVuY3Rpb24oYSxiKXt2YXIgYz0iIjtpZihhLmxlbmd0aD4xJiZhLmNoYXJBdChhLmxlbmd0aC0xKT09PSJcbiIpe3ZhciBkPWEubGFzdEluZGV4T2YoIlxuIixhLmxlbmd0aC0yKTtkPj0wJiYoYz1hLnN1YnN0cmluZyhkKzEsYS5sZW5ndGgtMSkpfWQ9Yy5sZW5ndGgtMTE7aWYoZD49MCYmYy5pbmRleE9mKCJHb29nbGUgSW5jLiIsZCk9PWR8fGMubGFzdEluZGV4T2YoIi8vIyBzb3VyY2VNYXBwaW5nVVJMPSIsCjApPT0wKXRyeXtjPXdpbmRvdzthPWErIlxyXG4vLyMgc291cmNlVVJMPSIrYjthPV8uS2IoYSk7dmFyIGU9Xy5RYShhKTt2YXIgZj1fLlJhKGUpO2MuZXZhbChmKT09PWYmJmMuZXZhbChmLnRvU3RyaW5nKCkpfWNhdGNoKGcpe3JldHVybiExfWVsc2UgcmV0dXJuITE7cmV0dXJuITB9LHdnPWZ1bmN0aW9uKGEpe3ZhciBiPV8uQ2IoYS5tYXRjaChfLnJmKVs1XXx8bnVsbCl8fCIiO2I9Xy5DYihLZihiKS5tYXRjaChfLnJmKVs1XXx8bnVsbCk7cmV0dXJuKGI9PT1udWxsPzA6UmVnRXhwKCIoL18vanMvKXwoL18vc3MvKSIsImciKS50ZXN0KGIpJiYvXC9rPS8udGVzdChiKSk/YTpudWxsfSx0Zz1mdW5jdGlvbigpe3RoaXMuZz1uZXcgQmI7dGhpcy5DYT10aGlzLm89IiI7dGhpcy5qPSExO3RoaXMuaD0wO3RoaXMubD0hMX07dGcucHJvdG90eXBlLkI9ZnVuY3Rpb24oYSl7dGhpcy5vPV8uaWcoYSk7dGhpcy5DYT1TdHJpbmcoYS5BKTt0aGlzLmcuZygpfTsKdGcucHJvdG90eXBlLkE9ZnVuY3Rpb24oYSl7dGhpcy5qPSEwO3RoaXMuaD1fLmhnKGEpO3RoaXMuZy5nKCl9O3RnLnByb3RvdHlwZS5DPWZ1bmN0aW9uKCl7dGhpcy5sPSEwO3RoaXMuZy5nKCl9O3ZhciBqZz1mdW5jdGlvbigpe3RoaXMuZz0wO3RoaXMuaD1bXX0sdWc9ZnVuY3Rpb24oYSxiKXthLmgucHVzaChiKTt4ZyhhKX0seGc9ZnVuY3Rpb24oYSl7Zm9yKDthLmc8NSYmYS5oLmxlbmd0aDspeWcoYSxhLmguc2hpZnQoKSl9LHlnPWZ1bmN0aW9uKGEsYil7YS5nKys7TWUoYigpLGZ1bmN0aW9uKCl7dGhpcy5nLS07eGcodGhpcyl9LGEpfTt2YXIgemc9bmV3IERmKCExKSxBZz1kb2N1bWVudC5sb2NhdGlvbi5ocmVmOwpxZih7ZmxhZ3M6e2RtbDp6Z30saW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt2YXIgYj16Zy5nZXQoKSxjPSIiLGQ9IiI7d2luZG93JiZ3aW5kb3cuX0ZfY3NzUm93S2V5JiYoYz13aW5kb3cuX0ZfY3NzUm93S2V5LHdpbmRvdy5fRl9jb21iaW5lZFNpZ25hdHVyZSYmKGQ9d2luZG93Ll9GX2NvbWJpbmVkU2lnbmF0dXJlKSk7aWYoYyYmdHlwZW9mIHdpbmRvdy5fRl9pbnN0YWxsQ3NzIT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigiVSIpO3ZhciBlLGY9Xy52Ll9GX2pzVXJsO2YmJihlPXdnKGYpKTshZSYmKGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhc2UtanMiKSkmJihlPWYuc3JjP2Yuc3JjOmYuZ2V0QXR0cmlidXRlKCJocmVmIiksZT13ZyhlKSk7ZXx8KGU9d2coQWcpKTtlfHwoZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IiksZT13ZyhlW2UubGVuZ3RoLTFdLnNyYykpO2lmKCFlKXRocm93IEVycm9yKCJWIik7ZT1uZXcga2coZSk7YyYmKGUubz1jKTsKZCYmKGUubD1kKTtlLkM9YjtiPWphKCk7Yi5PPWU7Yi5YZighMCk7Yj1qYSgpO2Iuc2UoYSk7YS5qKGIpfX0pOwpfLl9Nb2R1bGVNYW5hZ2VyX2luaXRpYWxpemU9ZnVuY3Rpb24oYSxiKXtpZighXy5kYSl7aWYoIV8uaGEpcmV0dXJuO18uaWEoKX1fLmRhLnFlKGEsYil9OwpfLl9Nb2R1bGVNYW5hZ2VyX2luaXRpYWxpemUoJ2IvbjczcXdmL1VVSnFWZS9NcEp3WmMvZWxfY29uZi9lbF9tYWluX2Nzcy9zeTEvc3kyOjYvc3kzOjcvc3k0OjYvZWxfbWFpbjo1LDgsOS9jb3JzcHJveHkvd2Vic2l0ZV9lcnJvci9uYXZpZ2F0aW9udWk6Ny9waGlzaGluZ19wcm90ZWN0aW9uOjgvX3N0YW06OScsWydlbF9jb25mJ10pOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmxhKCJlbF9jb25mIik7CnZhciBDZztfLl9leHBvcnRWZXJzaW9uPWZ1bmN0aW9uKGEpe18ucmMoImdvb2dsZS50cmFuc2xhdGUudiIsYSl9O18uX2dldENhbGxiYWNrRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuIF8ua2MoYSl9O0NnPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07Ynx8KGI9ZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWQiKSkpO2IuYXBwZW5kQ2hpbGQoYSl9O18uX2xvYWRKcz1mdW5jdGlvbihhKXt2YXIgYj1fLndkKGRvY3VtZW50LCJTQ1JJUFQiKTtiLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Yi5jaGFyc2V0PSJVVEYtOCI7Xy5TYShiLF8uTGIoYSkpO0NnKGIpfTsKXy5fbG9hZENzcz1mdW5jdGlvbihhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7Yi50eXBlPSJ0ZXh0L2NzcyI7Yi5yZWw9InN0eWxlc2hlZXQiO2IuY2hhcnNldD0iVVRGLTgiO2IuaHJlZj1hO0NnKGIpfTtfLl9pc05TPWZ1bmN0aW9uKGEpe2E9YS5zcGxpdCgiLiIpO2Zvcih2YXIgYj13aW5kb3csYz0wO2M8YS5sZW5ndGg7KytjKWlmKCEoYj1iW2FbY11dKSlyZXR1cm4hMTtyZXR1cm4hMH07Xy5fc2V0dXBOUz1mdW5jdGlvbihhKXthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGI9d2luZG93LGM9MDtjPGEubGVuZ3RoOysrYyliLmhhc093blByb3BlcnR5P2IuaGFzT3duUHJvcGVydHkoYVtjXSk/Yj1iW2FbY11dOmI9YlthW2NdXT17fTpiPWJbYVtjXV18fChiW2FbY11dPXt9KTtyZXR1cm4gYn07Xy5yYygiX2V4cG9ydFZlcnNpb24iLF8uX2V4cG9ydFZlcnNpb24pO18ucmMoIl9nZXRDYWxsYmFja0Z1bmN0aW9uIixfLl9nZXRDYWxsYmFja0Z1bmN0aW9uKTsKXy5yYygiX2xvYWRKcyIsXy5fbG9hZEpzKTtfLnJjKCJfbG9hZENzcyIsXy5fbG9hZENzcyk7Xy5yYygiX2lzTlMiLF8uX2lzTlMpO18ucmMoIl9zZXR1cE5TIixfLl9zZXR1cE5TKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciYmdHlwZW9mIGRvY3VtZW50LnJlYWR5U3RhdGU9PSJ1bmRlZmluZWQiJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXtkb2N1bWVudC5yZWFkeVN0YXRlPSJjb21wbGV0ZSJ9LCExKTsKXy5tYSgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF90cik7Ci8vIEdvb2dsZSBJbmMuCgovLyMgc291cmNlVVJMPS9fL3RyYW5zbGF0ZV9odHRwL18vanMvaz10cmFuc2xhdGVfaHR0cC50ci5uby5zY3JuWTZRMl95dy5PL2FtPUJJQUFCdy9kPTEvcnM9QU44U1BmcTFLbFVGcWVpRnZCTXVkZHV6R3RiMzlRV1h1dy9tPWVsX2NvbmYKICAgIC8vIENvbmZpZ3VyZSBDb25zdGFudHMKICAgIChmdW5jdGlvbigpewogICAgICBsZXQgZ3RDb25zdEV2YWxTdGFydFRpbWUgPSBuZXcgRGF0ZSgpOwogICAgICBpZiAoX2lzTlMoJ2dvb2dsZS50cmFuc2xhdGUuRWxlbWVudCcpKXtyZXR1cm59CgogICAgICAoZnVuY3Rpb24oKXsKICAgICAgICBjb25zdCBjPV9zZXR1cE5TKCdnb29nbGUudHJhbnNsYXRlLl9jb25zdCcpOwoKICAgICAgICBjLl9jZXN0ID0gZ3RDb25zdEV2YWxTdGFydFRpbWU7CiAgICAgICAgZ3RDb25zdEV2YWxTdGFydFRpbWUgPSB1bmRlZmluZWQ7IC8vIGhpZGUgdGhpcyBldmFsIHN0YXJ0IHRpbWUgY29uc3RhbnQKICBjLl9jbD0nbm8nOyBjLl9jdWM9J2dvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0JzsgYy5fY2VmPSdceDViMCwxLDAsXHg1Ylx4MjJlc19lblx4MjIsXHgyMmVuX3poXHgyMixceDIyZW5fZGVceDIyLFx4MjJlbl9qYVx4MjIsXHgyMmVuX2VzXHgyMixceDIyZGVfZW5ceDIyXHg1ZCxudWxsLFx4NWIwLDMsMTAwLFx4NWJceDIyZW5faGlceDIyLFx4MjJoaV9lblx4MjIsXHgyMmVuX2VzXHgyMixceDIyZXNfZW5ceDIyLFx4MjJlbl9kZVx4MjIsXHgyMmRlX2VuXHgyMixceDIyZW5femhceDIyLFx4MjJlbl9qYVx4MjIsXHgyMmVuX2FyXHgyMixceDIyZW5faWRceDIyXHg1ZFx4NWQsMCwxLDBceDVkJzsgYy5fY2FjPScnOyBjLl9jYW09Jyc7IGMuX2NlbnY9J3Byb2QnO2MuX2NsbD0nSU5GTyc7IGMuX2NnYWs9Jyc7IGMuX2N0a2s9JzQ5NTg3Ni4zMzI3ODkyNCc7IGNvbnN0IGg9J3RyYW5zbGF0ZS5nb29nbGVhcGlzLmNvbSc7IGNvbnN0IG9waD0ndHJhbnNsYXRlLXBhLmdvb2dsZWFwaXMuY29tJzsgY29uc3Qgcz0naHR0cHMnKyc6Ly8nOyBjLl9wYWg9aDsgYy5fcGFzPXM7IGNvbnN0IGI9cysndHJhbnNsYXRlLmdvb2dsZWFwaXMuY29tJzsgY29uc3Qgc3RhdGljUGF0aCA9ICcvdHJhbnNsYXRlX3N0YXRpYy8nOyBjLl9wY2k9YitzdGF0aWNQYXRoKydpbWcvdGVfY3RybDMuZ2lmJzsgYy5fcG1pPWIrc3RhdGljUGF0aCsnaW1nL21pbmlfZ29vZ2xlLnBuZyc7IGMuX3BiaT1iK3N0YXRpY1BhdGgrJ2ltZy90ZV9iay5naWYnOyBjLl9wbGk9YitzdGF0aWNQYXRoKydpbWcvbG9hZGluZy5naWYnOyBjLl9wcz0naHR0cHM6XC9cL3d3dy5nc3RhdGljLmNvbVwvX1wvdHJhbnNsYXRlX2h0dHBcL19cL3NzXC9rXHgzZHRyYW5zbGF0ZV9odHRwLnRyLkI3RGloOUp5am53LkwuRjQuT1wvYW1ceDNkQklBQUJ3XC9kXHgzZDBcL3JzXHgzZEFOOFNQZnBDMDR2cnJ6UVhnc19UQ001RXRydXdmUHpOdFFcL21ceDNkZWxfbWFpbl9jc3MnOyBjLl9wbGxhPW9waCsnXC92MVwvc3VwcG9ydGVkTGFuZ3VhZ2VzJzsgYy5fcHVoPSd0cmFuc2xhdGUuZ29vZ2xlLmNvbSc7Yy5fY25hbD17fTtfbG9hZENzcyhjLl9wcyk7IF9sb2FkSnMoJ2h0dHBzOlwvXC90cmFuc2xhdGUuZ29vZ2xlYXBpcy5jb21cL19cL3RyYW5zbGF0ZV9odHRwXC9fXC9qc1wva1x4M2R0cmFuc2xhdGVfaHR0cC50ci5uby5zY3JuWTZRMl95dy5PXC9hbVx4M2RCSUFBQndcL2RceDNkMVwvZXhtXHgzZGVsX2NvbmZcL2VkXHgzZDFcL3JzXHgzZEFOOFNQZnExS2xVRnFlaUZ2Qk11ZGR1ekd0YjM5UVdYdXdcL21ceDNkZWxfbWFpbicpO19leHBvcnRWZXJzaW9uKCdURV8yMDI2MDcyMicpOwogICAgICAgIH0pKCk7CiAgICAgIH0pKCk7CiAg"}},"time_used":96,"timings":{"blocked":-1,"dns":3,"connect":16,"send":0,"wait":42,"receive":0,"ssl":35},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/depositicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.585Z","timestamp":1785153914585,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/depositicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3052\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3052,"size_decoded":3317,"mime_type":"image/png","magic":"PNG image data, 121 x 120, 8-bit/color RGBA, non-interlaced","md5":"b87fcde92efa3d3c24a3b6efaa017681","sha1":"f5ea9aa53aaae0640724a86dddace07350b310fe","sha256":"d59eb00a6afa644b096f713447684b140cddb8ade1e56fef87f6ab3df4b8e8d4","sha512":"92320dbc6e6453520c4bd1c85fa264dfc3721fa3bf484da3c2612239d73fe274b9bf87b599cdbf1cfaaf75cc90d34f80d29c2ccae0706802028d004c1c830645","ssdeep":"","tlshash":"d9514c88b469b5ac412a69624313c020e10ba954623abef7824726dcff07c6ccfc69cd","first_seen":"2026-04-01T23:54:14.668284Z","last_seen":"2026-07-27T12:06:15.808023Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":28,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/js/jquery-3.6.0.min.js","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.368Z","timestamp":1785153914368,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/global/js/jquery-3.6.0.min.js HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 30266\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":89500,"size_decoded":30682,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (65447)","md5":"7c14a783dfeb3d238ccd3edd840d82ee","sha1":"ad886e472b3557f3dc7dfa2bc43468ab8d1cef5b","sha256":"80f04717f32ea0320c5e8618fbacedd1fee3a8775ad8292140a6113551d4b5b0","sha512":"fa3e021ca60a9adbe570c6565c7370727904c4396c23a4c519daf258d05fae3e17bfb7607a0ab6dfe2b7150a4ec1b6a95e6d49675291be5f6a4e5679ad78d858","ssdeep":"1536:DjExXUqJnxDjoXEZxkMV4QYSt0zvDL6gP3h8cApwEIOzVTB/UjPazMdLiX4mQ1vN:DIh8GgP3hujzwbhd3XvSiDQ47GK/","tlshash":"6f9309ddb2c6702257a720ba007f510bf236199d6c4d8450f169d8eabc78a4e827bf7d","first_seen":"2023-03-07T01:06:20Z","last_seen":"2026-07-30T07:31:26.033685Z","times_seen":21364,"resource_available":true,"data":"LyohIGpRdWVyeSB2My42LjAgfCAoYykgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyB8IGpxdWVyeS5vcmcvbGljZW5zZSAqLwohZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZS5kb2N1bWVudD90KGUsITApOmZ1bmN0aW9uKGUpe2lmKCFlLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiB0KGUpfTp0KGUpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihDLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1bXSxyPU9iamVjdC5nZXRQcm90b3R5cGVPZixzPXQuc2xpY2UsZz10LmZsYXQ/ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmxhdC5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gdC5jb25jYXQuYXBwbHkoW10sZSl9LHU9dC5wdXNoLGk9dC5pbmRleE9mLG49e30sbz1uLnRvU3RyaW5nLHY9bi5oYXNPd25Qcm9wZXJ0eSxhPXYudG9TdHJpbmcsbD1hLmNhbGwoT2JqZWN0KSx5PXt9LG09ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJiJudW1iZXIiIT10eXBlb2YgZS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUuaXRlbX0seD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmZT09PWUud2luZG93fSxFPUMuZG9jdW1lbnQsYz17dHlwZTohMCxzcmM6ITAsbm9uY2U6ITAsbm9Nb2R1bGU6ITB9O2Z1bmN0aW9uIGIoZSx0LG4pe3ZhciByLGksbz0obj1ufHxFKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihvLnRleHQ9ZSx0KWZvcihyIGluIGMpKGk9dFtyXXx8dC5nZXRBdHRyaWJ1dGUmJnQuZ2V0QXR0cmlidXRlKHIpKSYmby5zZXRBdHRyaWJ1dGUocixpKTtuLmhlYWQuYXBwZW5kQ2hpbGQobykucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKX1mdW5jdGlvbiB3KGUpe3JldHVybiBudWxsPT1lP2UrIiI6Im9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZT9uW28uY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfXZhciBmPSIzLjYuMCIsUz1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgUy5mbi5pbml0KGUsdCl9O2Z1bmN0aW9uIHAoZSl7dmFyIHQ9ISFlJiYibGVuZ3RoImluIGUmJmUubGVuZ3RoLG49dyhlKTtyZXR1cm4hbShlKSYmIXgoZSkmJigiYXJyYXkiPT09bnx8MD09PXR8fCJudW1iZXIiPT10eXBlb2YgdCYmMDx0JiZ0LTEgaW4gZSl9Uy5mbj1TLnByb3RvdHlwZT17anF1ZXJ5OmYsY29uc3RydWN0b3I6UyxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3MuY2FsbCh0aGlzKTplPDA/dGhpc1tlK3RoaXMubGVuZ3RoXTp0aGlzW2VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9Uy5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksZSk7cmV0dXJuIHQucHJldk9iamVjdD10aGlzLHR9LGVhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIFMuZWFjaCh0aGlzLGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMubWFwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5jYWxsKGUsdCxlKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2socy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQrMSklMn0pKX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQlMn0pKX0sZXE6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5sZW5ndGgsbj0rZSsoZTwwP3Q6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKDA8PW4mJm48dD9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6dSxzb3J0OnQuc29ydCxzcGxpY2U6dC5zcGxpY2V9LFMuZXh0ZW5kPVMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsaSxvLGE9YXJndW1lbnRzWzBdfHx7fSxzPTEsdT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGEmJihsPWEsYT1hcmd1bWVudHNbc118fHt9LHMrKyksIm9iamVjdCI9PXR5cGVvZiBhfHxtKGEpfHwoYT17fSkscz09PXUmJihhPXRoaXMscy0tKTtzPHU7cysrKWlmKG51bGwhPShlPWFyZ3VtZW50c1tzXSkpZm9yKHQgaW4gZSlyPWVbdF0sIl9fcHJvdG9fXyIhPT10JiZhIT09ciYmKGwmJnImJihTLmlzUGxhaW5PYmplY3Qocil8fChpPUFycmF5LmlzQXJyYXkocikpKT8obj1hW3RdLG89aSYmIUFycmF5LmlzQXJyYXkobik/W106aXx8Uy5pc1BsYWluT2JqZWN0KG4pP246e30saT0hMSxhW3RdPVMuZXh0ZW5kKGwsbyxyKSk6dm9pZCAwIT09ciYmKGFbdF09cikpO3JldHVybiBhfSxTLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoZitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEoIWV8fCJbb2JqZWN0IE9iamVjdF0iIT09by5jYWxsKGUpKSYmKCEodD1yKGUpKXx8ImZ1bmN0aW9uIj09dHlwZW9mKG49di5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3IpJiZhLmNhbGwobik9PT1sKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUsdCxuKXtiKGUse25vbmNlOnQmJnQubm9uY2V9LG4pfSxlYWNoOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wO2lmKHAoZSkpe2ZvcihuPWUubGVuZ3RoO3I8bjtyKyspaWYoITE9PT10LmNhbGwoZVtyXSxyLGVbcl0pKWJyZWFrfWVsc2UgZm9yKHIgaW4gZSlpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWs7cmV0dXJuIGV9LG1ha2VBcnJheTpmdW5jdGlvbihlLHQpe3ZhciBuPXR8fFtdO3JldHVybiBudWxsIT1lJiYocChPYmplY3QoZSkpP1MubWVyZ2Uobiwic3RyaW5nIj09dHlwZW9mIGU/W2VdOmUpOnUuY2FsbChuLGUpKSxufSxpbkFycmF5OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09dD8tMTppLmNhbGwodCxlLG4pfSxtZXJnZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0rdC5sZW5ndGgscj0wLGk9ZS5sZW5ndGg7cjxuO3IrKyllW2krK109dFtyXTtyZXR1cm4gZS5sZW5ndGg9aSxlfSxncmVwOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9W10saT0wLG89ZS5sZW5ndGgsYT0hbjtpPG87aSsrKSF0KGVbaV0saSkhPT1hJiZyLnB1c2goZVtpXSk7cmV0dXJuIHJ9LG1hcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPTAsYT1bXTtpZihwKGUpKWZvcihyPWUubGVuZ3RoO288cjtvKyspbnVsbCE9KGk9dChlW29dLG8sbikpJiZhLnB1c2goaSk7ZWxzZSBmb3IobyBpbiBlKW51bGwhPShpPXQoZVtvXSxvLG4pKSYmYS5wdXNoKGkpO3JldHVybiBnKGEpfSxndWlkOjEsc3VwcG9ydDp5fSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFMuZm5bU3ltYm9sLml0ZXJhdG9yXT10W1N5bWJvbC5pdGVyYXRvcl0pLFMuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtuWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pO3ZhciBkPWZ1bmN0aW9uKG4pe3ZhciBlLGQsYixvLGksaCxmLGcsdyx1LGwsVCxDLGEsRSx2LHMsYyx5LFM9InNpenpsZSIrMSpuZXcgRGF0ZSxwPW4uZG9jdW1lbnQsaz0wLHI9MCxtPXVlKCkseD11ZSgpLEE9dWUoKSxOPXVlKCksaj1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKGw9ITApLDB9LEQ9e30uaGFzT3duUHJvcGVydHksdD1bXSxxPXQucG9wLEw9dC5wdXNoLEg9dC5wdXNoLE89dC5zbGljZSxQPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfSxSPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTT0iW1xceDIwXFx0XFxyXFxuXFxmXSIsST0iKD86XFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15cMC1cXHg3Zl0pKyIsVz0iXFxbIitNKyIqKCIrSSsiKSg/OiIrTSsiKihbKl4kfCF+XT89KSIrTSsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK0krIikpfCkiK00rIipcXF0iLEY9IjooIitJKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18IitXKyIpKil8LiopXFwpfCkiLEI9bmV3IFJlZ0V4cChNKyIrIiwiZyIpLCQ9bmV3IFJlZ0V4cCgiXiIrTSsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitNKyIrJCIsImciKSxfPW5ldyBSZWdFeHAoIl4iK00rIiosIitNKyIqIiksej1uZXcgUmVnRXhwKCJeIitNKyIqKFs+K35dfCIrTSsiKSIrTSsiKiIpLFU9bmV3IFJlZ0V4cChNKyJ8PiIpLFg9bmV3IFJlZ0V4cChGKSxWPW5ldyBSZWdFeHAoIl4iK0krIiQiKSxHPXtJRDpuZXcgUmVnRXhwKCJeIygiK0krIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrSSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrSSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK1cpLFBTRVVETzpuZXcgUmVnRXhwKCJeIitGKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK00rIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK00rIiooPzooWystXXwpIitNKyIqKFxcZCspfCkpIitNKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitSKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTSsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitNKyIqKCg/Oi1cXGQpP1xcZCopIitNKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxZPS9IVE1MJC9pLFE9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxKPS9eaFxkJC9pLEs9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLFo9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxlZT0vWyt+XS8sdGU9bmV3IFJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXChbXlxcclxcblxcZl0pIiwiZyIpLG5lPWZ1bmN0aW9uKGUsdCl7dmFyIG49IjB4IitlLnNsaWNlKDEpLTY1NTM2O3JldHVybiB0fHwobjwwP1N0cmluZy5mcm9tQ2hhckNvZGUobis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMHw1NTI5NiwxMDIzJm58NTYzMjApKX0scmU9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15cMC1ceDFmXHg3Zi1cdUZGRkZcdy1dL2csaWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD8iXDAiPT09ZT8iXHVmZmZkIjplLnNsaWNlKDAsLTEpKyJcXCIrZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIitlfSxvZT1mdW5jdGlvbigpe1QoKX0sYWU9YmUoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lLmRpc2FibGVkJiYiZmllbGRzZXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e0guYXBwbHkodD1PLmNhbGwocC5jaGlsZE5vZGVzKSxwLmNoaWxkTm9kZXMpLHRbcC5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZSl7SD17YXBwbHk6dC5sZW5ndGg/ZnVuY3Rpb24oZSx0KXtMLmFwcGx5KGUsTy5jYWxsKHQpKX06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aCxyPTA7d2hpbGUoZVtuKytdPXRbcisrXSk7ZS5sZW5ndGg9bi0xfX19ZnVuY3Rpb24gc2UodCxlLG4scil7dmFyIGksbyxhLHMsdSxsLGMsZj1lJiZlLm93bmVyRG9jdW1lbnQscD1lP2Uubm9kZVR5cGU6OTtpZihuPW58fFtdLCJzdHJpbmciIT10eXBlb2YgdHx8IXR8fDEhPT1wJiY5IT09cCYmMTEhPT1wKXJldHVybiBuO2lmKCFyJiYoVChlKSxlPWV8fEMsRSkpe2lmKDExIT09cCYmKHU9Wi5leGVjKHQpKSlpZihpPXVbMV0pe2lmKDk9PT1wKXtpZighKGE9ZS5nZXRFbGVtZW50QnlJZChpKSkpcmV0dXJuIG47aWYoYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2UgaWYoZiYmKGE9Zi5nZXRFbGVtZW50QnlJZChpKSkmJnkoZSxhKSYmYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2V7aWYodVsyXSlyZXR1cm4gSC5hcHBseShuLGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCkpLG47aWYoKGk9dVszXSkmJmQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBILmFwcGx5KG4sZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGkpKSxufWlmKGQucXNhJiYhTlt0KyIgIl0mJighdnx8IXYudGVzdCh0KSkmJigxIT09cHx8Im9iamVjdCIhPT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpKXtpZihjPXQsZj1lLDE9PT1wJiYoVS50ZXN0KHQpfHx6LnRlc3QodCkpKXsoZj1lZS50ZXN0KHQpJiZ5ZShlLnBhcmVudE5vZGUpfHxlKT09PWUmJmQuc2NvcGV8fCgocz1lLmdldEF0dHJpYnV0ZSgiaWQiKSk/cz1zLnJlcGxhY2UocmUsaWUpOmUuc2V0QXR0cmlidXRlKCJpZCIscz1TKSksbz0obD1oKHQpKS5sZW5ndGg7d2hpbGUoby0tKWxbb109KHM/IiMiK3M6IjpzY29wZSIpKyIgIit4ZShsW29dKTtjPWwuam9pbigiLCIpfXRyeXtyZXR1cm4gSC5hcHBseShuLGYucXVlcnlTZWxlY3RvckFsbChjKSksbn1jYXRjaChlKXtOKHQsITApfWZpbmFsbHl7cz09PVMmJmUucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGcodC5yZXBsYWNlKCQsIiQxIiksZSxuLHIpfWZ1bmN0aW9uIHVlKCl7dmFyIHI9W107cmV0dXJuIGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gci5wdXNoKHQrIiAiKT5iLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVtyLnNoaWZ0KCldLGVbdCsiICJdPW59fWZ1bmN0aW9uIGxlKGUpe3JldHVybiBlW1NdPSEwLGV9ZnVuY3Rpb24gY2UoZSl7dmFyIHQ9Qy5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2goZSl7cmV0dXJuITF9ZmluYWxseXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9fWZ1bmN0aW9uIGZlKGUsdCl7dmFyIG49ZS5zcGxpdCgifCIpLHI9bi5sZW5ndGg7d2hpbGUoci0tKWIuYXR0ckhhbmRsZVtuW3JdXT10fWZ1bmN0aW9uIHBlKGUsdCl7dmFyIG49dCYmZSxyPW4mJjE9PT1lLm5vZGVUeXBlJiYxPT09dC5ub2RlVHlwZSYmZS5zb3VyY2VJbmRleC10LnNvdXJjZUluZGV4O2lmKHIpcmV0dXJuIHI7aWYobil3aGlsZShuPW4ubmV4dFNpYmxpbmcpaWYobj09PXQpcmV0dXJuLTE7cmV0dXJuIGU/MTotMX1mdW5jdGlvbiBkZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gaGUobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PXR8fCJidXR0b24iPT09dCkmJmUudHlwZT09PW59fWZ1bmN0aW9uIGdlKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iZm9ybSJpbiBlP2UucGFyZW50Tm9kZSYmITE9PT1lLmRpc2FibGVkPyJsYWJlbCJpbiBlPyJsYWJlbCJpbiBlLnBhcmVudE5vZGU/ZS5wYXJlbnROb2RlLmRpc2FibGVkPT09dDplLmRpc2FibGVkPT09dDplLmlzRGlzYWJsZWQ9PT10fHxlLmlzRGlzYWJsZWQhPT0hdCYmYWUoZSk9PT10OmUuZGlzYWJsZWQ9PT10OiJsYWJlbCJpbiBlJiZlLmRpc2FibGVkPT09dH19ZnVuY3Rpb24gdmUoYSl7cmV0dXJuIGxlKGZ1bmN0aW9uKG8pe3JldHVybiBvPStvLGxlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKFtdLGUubGVuZ3RoLG8pLGk9ci5sZW5ndGg7d2hpbGUoaS0tKWVbbj1yW2ldXSYmKGVbbl09ISh0W25dPWVbbl0pKX0pfSl9ZnVuY3Rpb24geWUoZSl7cmV0dXJuIGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZX1mb3IoZSBpbiBkPXNlLnN1cHBvcnQ9e30saT1zZS5pc1hNTD1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLm5hbWVzcGFjZVVSSSxuPWUmJihlLm93bmVyRG9jdW1lbnR8fGUpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hWS50ZXN0KHR8fG4mJm4ubm9kZU5hbWV8fCJIVE1MIil9LFQ9c2Uuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWU/ZS5vd25lckRvY3VtZW50fHxlOnA7cmV0dXJuIHIhPUMmJjk9PT1yLm5vZGVUeXBlJiZyLmRvY3VtZW50RWxlbWVudCYmKGE9KEM9cikuZG9jdW1lbnRFbGVtZW50LEU9IWkoQykscCE9QyYmKG49Qy5kZWZhdWx0VmlldykmJm4udG9wIT09biYmKG4uYWRkRXZlbnRMaXN0ZW5lcj9uLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsb2UsITEpOm4uYXR0YWNoRXZlbnQmJm4uYXR0YWNoRXZlbnQoIm9udW5sb2FkIixvZSkpLGQuc2NvcGU9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoQy5jcmVhdGVFbGVtZW50KCJkaXYiKSksInVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGwmJiFlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBmaWVsZHNldCBkaXYiKS5sZW5ndGh9KSxkLmF0dHJpYnV0ZXM9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NOYW1lPSJpIiwhZS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksZC5nZXRFbGVtZW50c0J5VGFnTmFtZT1jZShmdW5jdGlvbihlKXtyZXR1cm4gZS5hcHBlbmRDaGlsZChDLmNyZWF0ZUNvbW1lbnQoIiIpKSwhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1LLnRlc3QoQy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxkLmdldEJ5SWQ9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuaWQ9UywhQy5nZXRFbGVtZW50c0J5TmFtZXx8IUMuZ2V0RWxlbWVudHNCeU5hbWUoUykubGVuZ3RofSksZC5nZXRCeUlkPyhiLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UodGUsbmUpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImlkIik9PT10fX0sYi5maW5kLklEPWZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRCeUlkJiZFKXt2YXIgbj10LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiBuP1tuXTpbXX19KTooYi5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXBsYWNlKHRlLG5lKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEF0dHJpYnV0ZU5vZGUmJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gdCYmdC52YWx1ZT09PW59fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQmJkUpe3ZhciBuLHIsaSxvPXQuZ2V0RWxlbWVudEJ5SWQoZSk7aWYobyl7aWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dO2k9dC5nZXRFbGVtZW50c0J5TmFtZShlKSxyPTA7d2hpbGUobz1pW3IrK10paWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dfXJldHVybltdfX0pLGIuZmluZC5UQUc9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihlLHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50c0J5VGFnTmFtZT90LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOmQucXNhP3QucXVlcnlTZWxlY3RvckFsbChlKTp2b2lkIDB9OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPTAsbz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpO2lmKCIqIj09PWUpe3doaWxlKG49b1tpKytdKTE9PT1uLm5vZGVUeXBlJiZyLnB1c2gobik7cmV0dXJuIHJ9cmV0dXJuIG99LGIuZmluZC5DTEFTUz1kLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJkUpcmV0dXJuIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKX0scz1bXSx2PVtdLChkLnFzYT1LLnRlc3QoQy5xdWVyeVNlbGVjdG9yQWxsKSkmJihjZShmdW5jdGlvbihlKXt2YXIgdDthLmFwcGVuZENoaWxkKGUpLmlubmVySFRNTD0iPGEgaWQ9JyIrUysiJz48L2E+PHNlbGVjdCBpZD0nIitTKyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGUucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnYucHVzaCgiWypeJF09IitNKyIqKD86Jyd8XCJcIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqKD86dmFsdWV8IitSKyIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrUysiLV0iKS5sZW5ndGh8fHYucHVzaCgifj0iKSwodD1DLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpLGUuYXBwZW5kQ2hpbGQodCksZS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqbmFtZSIrTSsiKj0iK00rIiooPzonJ3xcIlwiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fHYucHVzaCgiOmNoZWNrZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIitTKyIrKiIpLmxlbmd0aHx8di5wdXNoKCIuIy4rWyt+XSIpLGUucXVlcnlTZWxlY3RvckFsbCgiXFxcZiIpLHYucHVzaCgiW1xcclxcblxcZl0iKX0pLGNlKGZ1bmN0aW9uKGUpe2UuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciB0PUMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGUuYXBwZW5kQ2hpbGQodCkuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGUucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnYucHVzaCgibmFtZSIrTSsiKlsqXiR8IX5dPz0iKSwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmdi5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEuYXBwZW5kQ2hpbGQoZSkuZGlzYWJsZWQ9ITAsMiE9PWUucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZ2LnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksZS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4Iiksdi5wdXNoKCIsLio6Iil9KSksKGQubWF0Y2hlc1NlbGVjdG9yPUsudGVzdChjPWEubWF0Y2hlc3x8YS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGEubW96TWF0Y2hlc1NlbGVjdG9yfHxhLm9NYXRjaGVzU2VsZWN0b3J8fGEubXNNYXRjaGVzU2VsZWN0b3IpKSYmY2UoZnVuY3Rpb24oZSl7ZC5kaXNjb25uZWN0ZWRNYXRjaD1jLmNhbGwoZSwiKiIpLGMuY2FsbChlLCJbcyE9JyddOngiKSxzLnB1c2goIiE9IixGKX0pLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKCJ8IikpLHM9cy5sZW5ndGgmJm5ldyBSZWdFeHAocy5qb2luKCJ8IikpLHQ9Sy50ZXN0KGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHk9dHx8Sy50ZXN0KGEuY29udGFpbnMpP2Z1bmN0aW9uKGUsdCl7dmFyIG49OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZSxyPXQmJnQucGFyZW50Tm9kZTtyZXR1cm4gZT09PXJ8fCEoIXJ8fDEhPT1yLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhyKTplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpKSl9OmZ1bmN0aW9uKGUsdCl7aWYodCl3aGlsZSh0PXQucGFyZW50Tm9kZSlpZih0PT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0saj10P2Z1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbj0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gbnx8KDEmKG49KGUub3duZXJEb2N1bWVudHx8ZSk9PSh0Lm93bmVyRG9jdW1lbnR8fHQpP2UuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk6MSl8fCFkLnNvcnREZXRhY2hlZCYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKT09PW4/ZT09Q3x8ZS5vd25lckRvY3VtZW50PT1wJiZ5KHAsZSk/LTE6dD09Q3x8dC5vd25lckRvY3VtZW50PT1wJiZ5KHAsdCk/MTp1P1AodSxlKS1QKHUsdCk6MDo0Jm4/LTE6MSl9OmZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbixyPTAsaT1lLnBhcmVudE5vZGUsbz10LnBhcmVudE5vZGUsYT1bZV0scz1bdF07aWYoIWl8fCFvKXJldHVybiBlPT1DPy0xOnQ9PUM/MTppPy0xOm8/MTp1P1AodSxlKS1QKHUsdCk6MDtpZihpPT09bylyZXR1cm4gcGUoZSx0KTtuPWU7d2hpbGUobj1uLnBhcmVudE5vZGUpYS51bnNoaWZ0KG4pO249dDt3aGlsZShuPW4ucGFyZW50Tm9kZSlzLnVuc2hpZnQobik7d2hpbGUoYVtyXT09PXNbcl0pcisrO3JldHVybiByP3BlKGFbcl0sc1tyXSk6YVtyXT09cD8tMTpzW3JdPT1wPzE6MH0pLEN9LHNlLm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gc2UoZSxudWxsLG51bGwsdCl9LHNlLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKFQoZSksZC5tYXRjaGVzU2VsZWN0b3ImJkUmJiFOW3QrIiAiXSYmKCFzfHwhcy50ZXN0KHQpKSYmKCF2fHwhdi50ZXN0KHQpKSl0cnl7dmFyIG49Yy5jYWxsKGUsdCk7aWYobnx8ZC5kaXNjb25uZWN0ZWRNYXRjaHx8ZS5kb2N1bWVudCYmMTEhPT1lLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBufWNhdGNoKGUpe04odCwhMCl9cmV0dXJuIDA8c2UodCxDLG51bGwsW2VdKS5sZW5ndGh9LHNlLmNvbnRhaW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSkseShlLHQpfSxzZS5hdHRyPWZ1bmN0aW9uKGUsdCl7KGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSk7dmFyIG49Yi5hdHRySGFuZGxlW3QudG9Mb3dlckNhc2UoKV0scj1uJiZELmNhbGwoYi5hdHRySGFuZGxlLHQudG9Mb3dlckNhc2UoKSk/bihlLHQsIUUpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cj9yOmQuYXR0cmlidXRlc3x8IUU/ZS5nZXRBdHRyaWJ1dGUodCk6KHI9ZS5nZXRBdHRyaWJ1dGVOb2RlKHQpKSYmci5zcGVjaWZpZWQ/ci52YWx1ZTpudWxsfSxzZS5lc2NhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrIiIpLnJlcGxhY2UocmUsaWUpfSxzZS5lcnJvcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZSl9LHNlLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj1bXSxyPTAsaT0wO2lmKGw9IWQuZGV0ZWN0RHVwbGljYXRlcyx1PSFkLnNvcnRTdGFibGUmJmUuc2xpY2UoMCksZS5zb3J0KGopLGwpe3doaWxlKHQ9ZVtpKytdKXQ9PT1lW2ldJiYocj1uLnB1c2goaSkpO3doaWxlKHItLSllLnNwbGljZShuW3JdLDEpfXJldHVybiB1PW51bGwsZX0sbz1zZS5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49IiIscj0wLGk9ZS5ub2RlVHlwZTtpZihpKXtpZigxPT09aXx8OT09PWl8fDExPT09aSl7aWYoInN0cmluZyI9PXR5cGVvZiBlLnRleHRDb250ZW50KXJldHVybiBlLnRleHRDb250ZW50O2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyluKz1vKGUpfWVsc2UgaWYoMz09PWl8fDQ9PT1pKXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKHQ9ZVtyKytdKW4rPW8odCk7cmV0dXJuIG59LChiPXNlLnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmxlLG1hdGNoOkcsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0ucmVwbGFjZSh0ZSxuZSksZVszXT0oZVszXXx8ZVs0XXx8ZVs1XXx8IiIpLnJlcGxhY2UodGUsbmUpLCJ+PSI9PT1lWzJdJiYoZVszXT0iICIrZVszXSsiICIpLGUuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09ZVsxXS5zbGljZSgwLDMpPyhlWzNdfHxzZS5lcnJvcihlWzBdKSxlWzRdPSsoZVs0XT9lWzVdKyhlWzZdfHwxKToyKigiZXZlbiI9PT1lWzNdfHwib2RkIj09PWVbM10pKSxlWzVdPSsoZVs3XStlWzhdfHwib2RkIj09PWVbM10pKTplWzNdJiZzZS5lcnJvcihlWzBdKSxlfSxQU0VVRE86ZnVuY3Rpb24oZSl7dmFyIHQsbj0hZVs2XSYmZVsyXTtyZXR1cm4gRy5DSElMRC50ZXN0KGVbMF0pP251bGw6KGVbM10/ZVsyXT1lWzRdfHxlWzVdfHwiIjpuJiZYLnRlc3QobikmJih0PWgobiwhMCkpJiYodD1uLmluZGV4T2YoIikiLG4ubGVuZ3RoLXQpLW4ubGVuZ3RoKSYmKGVbMF09ZVswXS5zbGljZSgwLHQpLGVbMl09bi5zbGljZSgwLHQpKSxlLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKHRlLG5lKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXR9fSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1tW2UrIiAiXTtyZXR1cm4gdHx8KHQ9bmV3IFJlZ0V4cCgiKF58IitNKyIpIitlKyIoIitNKyJ8JCkiKSkmJm0oZSxmdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KCJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWUmJmUuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24obixyLGkpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1zZS5hdHRyKGUsbik7cmV0dXJuIG51bGw9PXQ/IiE9Ij09PXI6IXJ8fCh0Kz0iIiwiPSI9PT1yP3Q9PT1pOiIhPSI9PT1yP3QhPT1pOiJePSI9PT1yP2kmJjA9PT10LmluZGV4T2YoaSk6Iio9Ij09PXI/aSYmLTE8dC5pbmRleE9mKGkpOiIkPSI9PT1yP2kmJnQuc2xpY2UoLWkubGVuZ3RoKT09PWk6In49Ij09PXI/LTE8KCIgIit0LnJlcGxhY2UoQiwiICIpKyIgIikuaW5kZXhPZihpKToifD0iPT09ciYmKHQ9PT1pfHx0LnNsaWNlKDAsaS5sZW5ndGgrMSk9PT1pKyItIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oaCxlLHQsZyx2KXt2YXIgeT0ibnRoIiE9PWguc2xpY2UoMCwzKSxtPSJsYXN0IiE9PWguc2xpY2UoLTQpLHg9Im9mLXR5cGUiPT09ZTtyZXR1cm4gMT09PWcmJjA9PT12P2Z1bmN0aW9uKGUpe3JldHVybiEhZS5wYXJlbnROb2RlfTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1LGw9eSE9PW0/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixjPWUucGFyZW50Tm9kZSxmPXgmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxwPSFuJiYheCxkPSExO2lmKGMpe2lmKHkpe3doaWxlKGwpe2E9ZTt3aGlsZShhPWFbbF0paWYoeD9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1mOjE9PT1hLm5vZGVUeXBlKXJldHVybiExO3U9bD0ib25seSI9PT1oJiYhdSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZih1PVttP2MuZmlyc3RDaGlsZDpjLmxhc3RDaGlsZF0sbSYmcCl7ZD0ocz0ocj0oaT0obz0oYT1jKVtTXXx8KGFbU109e30pKVthLnVuaXF1ZUlEXXx8KG9bYS51bmlxdWVJRF09e30pKVtoXXx8W10pWzBdPT09ayYmclsxXSkmJnJbMl0sYT1zJiZjLmNoaWxkTm9kZXNbc107d2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoMT09PWEubm9kZVR5cGUmJisrZCYmYT09PWUpe2lbaF09W2sscyxkXTticmVha319ZWxzZSBpZihwJiYoZD1zPShyPShpPShvPShhPWUpW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdfHxbXSlbMF09PT1rJiZyWzFdKSwhMT09PWQpd2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoKHg/YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ZjoxPT09YS5ub2RlVHlwZSkmJisrZCYmKHAmJigoaT0obz1hW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdPVtrLGRdKSxhPT09ZSkpYnJlYWs7cmV0dXJuKGQtPXYpPT09Z3x8ZCVnPT0wJiYwPD1kL2d9fX0sUFNFVURPOmZ1bmN0aW9uKGUsbyl7dmFyIHQsYT1iLnBzZXVkb3NbZV18fGIuc2V0RmlsdGVyc1tlLnRvTG93ZXJDYXNlKCldfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2UpO3JldHVybiBhW1NdP2Eobyk6MTxhLmxlbmd0aD8odD1bZSxlLCIiLG9dLGIuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShlLnRvTG93ZXJDYXNlKCkpP2xlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKGUsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPVAoZSxyW2ldKV09ISh0W25dPXJbaV0pfSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSwwLHQpfSk6YX19LHBzZXVkb3M6e25vdDpsZShmdW5jdGlvbihlKXt2YXIgcj1bXSxpPVtdLHM9ZihlLnJlcGxhY2UoJCwiJDEiKSk7cmV0dXJuIHNbU10/bGUoZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbz1zKGUsbnVsbCxyLFtdKSxhPWUubGVuZ3RoO3doaWxlKGEtLSkoaT1vW2FdKSYmKGVbYV09ISh0W2FdPWkpKX0pOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gclswXT1lLHMocixudWxsLG4saSksclswXT1udWxsLCFpLnBvcCgpfX0pLGhhczpsZShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIDA8c2UodCxlKS5sZW5ndGh9fSksY29udGFpbnM6bGUoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKHRlLG5lKSxmdW5jdGlvbihlKXtyZXR1cm4tMTwoZS50ZXh0Q29udGVudHx8byhlKSkuaW5kZXhPZih0KX19KSxsYW5nOmxlKGZ1bmN0aW9uKG4pe3JldHVybiBWLnRlc3Qobnx8IiIpfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIituKSxuPW4ucmVwbGFjZSh0ZSxuZSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgdDtkb3tpZih0PUU/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybih0PXQudG9Mb3dlckNhc2UoKSk9PT1ufHwwPT09dC5pbmRleE9mKG4rIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW4ubG9jYXRpb24mJm4ubG9jYXRpb24uaGFzaDtyZXR1cm4gdCYmdC5zbGljZSgxKT09PWUuaWR9LHJvb3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1hfSxmb2N1czpmdW5jdGlvbihlKXtyZXR1cm4gZT09PUMuYWN0aXZlRWxlbWVudCYmKCFDLmhhc0ZvY3VzfHxDLmhhc0ZvY3VzKCkpJiYhIShlLnR5cGV8fGUuaHJlZnx8fmUudGFiSW5kZXgpfSxlbmFibGVkOmdlKCExKSxkaXNhYmxlZDpnZSghMCksY2hlY2tlZDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiEhZS5jaGVja2VkfHwib3B0aW9uIj09PXQmJiEhZS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1lLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihlKXtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpaWYoZS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIWIucHNldWRvcy5lbXB0eShlKX0saGVhZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBKLnRlc3QoZS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBRLnRlc3QoZS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiJidXR0b24iPT09ZS50eXBlfHwiYnV0dG9uIj09PXR9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PXQudG9Mb3dlckNhc2UoKSl9LGZpcnN0OnZlKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDp2ZShmdW5jdGlvbihlLHQpe3JldHVyblt0LTFdfSksZXE6dmUoZnVuY3Rpb24oZSx0LG4pe3JldHVybltuPDA/bit0Om5dfSksZXZlbjp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLG9kZDp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0xO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLGx0OnZlKGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bjwwP24rdDp0PG4/dDpuOzA8PS0tcjspZS5wdXNoKHIpO3JldHVybiBlfSksZ3Q6dmUoZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uPDA/bit0Om47KytyPHQ7KWUucHVzaChyKTtyZXR1cm4gZX0pfX0pLnBzZXVkb3MubnRoPWIucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pYi5wc2V1ZG9zW2VdPWRlKGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0pYi5wc2V1ZG9zW2VdPWhlKGUpO2Z1bmN0aW9uIG1lKCl7fWZ1bmN0aW9uIHhlKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscj0iIjt0PG47dCsrKXIrPWVbdF0udmFsdWU7cmV0dXJuIHJ9ZnVuY3Rpb24gYmUocyxlLHQpe3ZhciB1PWUuZGlyLGw9ZS5uZXh0LGM9bHx8dSxmPXQmJiJwYXJlbnROb2RlIj09PWMscD1yKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSx0LG4pe3doaWxlKGU9ZVt1XSlpZigxPT09ZS5ub2RlVHlwZXx8ZilyZXR1cm4gcyhlLHQsbik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT1bayxwXTtpZihuKXt3aGlsZShlPWVbdV0paWYoKDE9PT1lLm5vZGVUeXBlfHxmKSYmcyhlLHQsbikpcmV0dXJuITB9ZWxzZSB3aGlsZShlPWVbdV0paWYoMT09PWUubm9kZVR5cGV8fGYpaWYoaT0obz1lW1NdfHwoZVtTXT17fSkpW2UudW5pcXVlSURdfHwob1tlLnVuaXF1ZUlEXT17fSksbCYmbD09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSllPWVbdV18fGU7ZWxzZXtpZigocj1pW2NdKSYmclswXT09PWsmJnJbMV09PT1wKXJldHVybiBhWzJdPXJbMl07aWYoKGlbY109YSlbMl09cyhlLHQsbikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHdlKGkpe3JldHVybiAxPGkubGVuZ3RoP2Z1bmN0aW9uKGUsdCxuKXt2YXIgcj1pLmxlbmd0aDt3aGlsZShyLS0paWYoIWlbcl0oZSx0LG4pKXJldHVybiExO3JldHVybiEwfTppWzBdfWZ1bmN0aW9uIFRlKGUsdCxuLHIsaSl7Zm9yKHZhciBvLGE9W10scz0wLHU9ZS5sZW5ndGgsbD1udWxsIT10O3M8dTtzKyspKG89ZVtzXSkmJihuJiYhbihvLHIsaSl8fChhLnB1c2gobyksbCYmdC5wdXNoKHMpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gQ2UoZCxoLGcsdix5LGUpe3JldHVybiB2JiYhdltTXSYmKHY9Q2UodikpLHkmJiF5W1NdJiYoeT1DZSh5LGUpKSxsZShmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscz1bXSx1PVtdLGw9dC5sZW5ndGgsYz1lfHxmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKXNlKGUsdFtyXSxuKTtyZXR1cm4gbn0oaHx8IioiLG4ubm9kZVR5cGU/W25dOm4sW10pLGY9IWR8fCFlJiZoP2M6VGUoYyxzLGQsbixyKSxwPWc/eXx8KGU/ZDpsfHx2KT9bXTp0OmY7aWYoZyYmZyhmLHAsbixyKSx2KXtpPVRlKHAsdSksdihpLFtdLG4sciksbz1pLmxlbmd0aDt3aGlsZShvLS0pKGE9aVtvXSkmJihwW3Vbb11dPSEoZlt1W29dXT1hKSl9aWYoZSl7aWYoeXx8ZCl7aWYoeSl7aT1bXSxvPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmaS5wdXNoKGZbb109YSk7eShudWxsLHA9W10saSxyKX1vPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmLTE8KGk9eT9QKGUsYSk6c1tvXSkmJihlW2ldPSEodFtpXT1hKSl9fWVsc2UgcD1UZShwPT09dD9wLnNwbGljZShsLHAubGVuZ3RoKTpwKSx5P3kobnVsbCx0LHAscik6SC5hcHBseSh0LHApfSl9ZnVuY3Rpb24gRWUoZSl7Zm9yKHZhciBpLHQsbixyPWUubGVuZ3RoLG89Yi5yZWxhdGl2ZVtlWzBdLnR5cGVdLGE9b3x8Yi5yZWxhdGl2ZVsiICJdLHM9bz8xOjAsdT1iZShmdW5jdGlvbihlKXtyZXR1cm4gZT09PWl9LGEsITApLGw9YmUoZnVuY3Rpb24oZSl7cmV0dXJuLTE8UChpLGUpfSxhLCEwKSxjPVtmdW5jdGlvbihlLHQsbil7dmFyIHI9IW8mJihufHx0IT09dyl8fCgoaT10KS5ub2RlVHlwZT91KGUsdCxuKTpsKGUsdCxuKSk7cmV0dXJuIGk9bnVsbCxyfV07czxyO3MrKylpZih0PWIucmVsYXRpdmVbZVtzXS50eXBlXSljPVtiZSh3ZShjKSx0KV07ZWxzZXtpZigodD1iLmZpbHRlcltlW3NdLnR5cGVdLmFwcGx5KG51bGwsZVtzXS5tYXRjaGVzKSlbU10pe2ZvcihuPSsrcztuPHI7bisrKWlmKGIucmVsYXRpdmVbZVtuXS50eXBlXSlicmVhaztyZXR1cm4gQ2UoMTxzJiZ3ZShjKSwxPHMmJnhlKGUuc2xpY2UoMCxzLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09ZVtzLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoJCwiJDEiKSx0LHM8biYmRWUoZS5zbGljZShzLG4pKSxuPHImJkVlKGU9ZS5zbGljZShuKSksbjxyJiZ4ZShlKSl9Yy5wdXNoKHQpfXJldHVybiB3ZShjKX1yZXR1cm4gbWUucHJvdG90eXBlPWIuZmlsdGVycz1iLnBzZXVkb3MsYi5zZXRGaWx0ZXJzPW5ldyBtZSxoPXNlLnRva2VuaXplPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzLHUsbD14W2UrIiAiXTtpZihsKXJldHVybiB0PzA6bC5zbGljZSgwKTthPWUscz1bXSx1PWIucHJlRmlsdGVyO3doaWxlKGEpe2ZvcihvIGluIG4mJiEocj1fLmV4ZWMoYSkpfHwociYmKGE9YS5zbGljZShyWzBdLmxlbmd0aCl8fGEpLHMucHVzaChpPVtdKSksbj0hMSwocj16LmV4ZWMoYSkpJiYobj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6clswXS5yZXBsYWNlKCQsIiAiKX0pLGE9YS5zbGljZShuLmxlbmd0aCkpLGIuZmlsdGVyKSEocj1HW29dLmV4ZWMoYSkpfHx1W29dJiYhKHI9dVtvXShyKSl8fChuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpvLG1hdGNoZXM6cn0pLGE9YS5zbGljZShuLmxlbmd0aCkpO2lmKCFuKWJyZWFrfXJldHVybiB0P2EubGVuZ3RoOmE/c2UuZXJyb3IoZSk6eChlLHMpLnNsaWNlKDApfSxmPXNlLmNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbix2LHksbSx4LHIsaT1bXSxvPVtdLGE9QVtlKyIgIl07aWYoIWEpe3R8fCh0PWgoZSkpLG49dC5sZW5ndGg7d2hpbGUobi0tKShhPUVlKHRbbl0pKVtTXT9pLnB1c2goYSk6by5wdXNoKGEpOyhhPUEoZSwodj1vLG09MDwoeT1pKS5sZW5ndGgseD0wPHYubGVuZ3RoLHI9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdT0wLGw9IjAiLGM9ZSYmW10sZj1bXSxwPXcsZD1lfHx4JiZiLmZpbmQuVEFHKCIqIixpKSxoPWsrPW51bGw9PXA/MTpNYXRoLnJhbmRvbSgpfHwuMSxnPWQubGVuZ3RoO2ZvcihpJiYodz10PT1DfHx0fHxpKTtsIT09ZyYmbnVsbCE9KG89ZFtsXSk7bCsrKXtpZih4JiZvKXthPTAsdHx8by5vd25lckRvY3VtZW50PT1DfHwoVChvKSxuPSFFKTt3aGlsZShzPXZbYSsrXSlpZihzKG8sdHx8QyxuKSl7ci5wdXNoKG8pO2JyZWFrfWkmJihrPWgpfW0mJigobz0hcyYmbykmJnUtLSxlJiZjLnB1c2gobykpfWlmKHUrPWwsbSYmbCE9PXUpe2E9MDt3aGlsZShzPXlbYSsrXSlzKGMsZix0LG4pO2lmKGUpe2lmKDA8dSl3aGlsZShsLS0pY1tsXXx8ZltsXXx8KGZbbF09cS5jYWxsKHIpKTtmPVRlKGYpfUguYXBwbHkocixmKSxpJiYhZSYmMDxmLmxlbmd0aCYmMTx1K3kubGVuZ3RoJiZzZS51bmlxdWVTb3J0KHIpfXJldHVybiBpJiYoaz1oLHc9cCksY30sbT9sZShyKTpyKSkpLnNlbGVjdG9yPWV9cmV0dXJuIGF9LGc9c2Uuc2VsZWN0PWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSxjPSFyJiZoKGU9bC5zZWxlY3Rvcnx8ZSk7aWYobj1ufHxbXSwxPT09Yy5sZW5ndGgpe2lmKDI8KG89Y1swXT1jWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oYT1vWzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmRSYmYi5yZWxhdGl2ZVtvWzFdLnR5cGVdKXtpZighKHQ9KGIuZmluZC5JRChhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksdCl8fFtdKVswXSkpcmV0dXJuIG47bCYmKHQ9dC5wYXJlbnROb2RlKSxlPWUuc2xpY2Uoby5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1HLm5lZWRzQ29udGV4dC50ZXN0KGUpPzA6by5sZW5ndGg7d2hpbGUoaS0tKXtpZihhPW9baV0sYi5yZWxhdGl2ZVtzPWEudHlwZV0pYnJlYWs7aWYoKHU9Yi5maW5kW3NdKSYmKHI9dShhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksZWUudGVzdChvWzBdLnR5cGUpJiZ5ZSh0LnBhcmVudE5vZGUpfHx0KSkpe2lmKG8uc3BsaWNlKGksMSksIShlPXIubGVuZ3RoJiZ4ZShvKSkpcmV0dXJuIEguYXBwbHkobixyKSxuO2JyZWFrfX19cmV0dXJuKGx8fGYoZSxjKSkocix0LCFFLG4sIXR8fGVlLnRlc3QoZSkmJnllKHQucGFyZW50Tm9kZSl8fHQpLG59LGQuc29ydFN0YWJsZT1TLnNwbGl0KCIiKS5zb3J0KGopLmpvaW4oIiIpPT09UyxkLmRldGVjdER1cGxpY2F0ZXM9ISFsLFQoKSxkLnNvcnREZXRhY2hlZD1jZShmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKEMuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSl9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxmZSgidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oZSx0LG4pe2lmKCFuKXJldHVybiBlLmdldEF0dHJpYnV0ZSh0LCJ0eXBlIj09PXQudG9Mb3dlckNhc2UoKT8xOjIpfSksZC5hdHRyaWJ1dGVzJiZjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxpbnB1dC8+IixlLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09ZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxmZSgidmFsdWUiLGZ1bmN0aW9uKGUsdCxuKXtpZighbiYmImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gZS5kZWZhdWx0VmFsdWV9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8ZmUoUixmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoIW4pcmV0dXJuITA9PT1lW3RdP3QudG9Mb3dlckNhc2UoKToocj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZyLnNwZWNpZmllZD9yLnZhbHVlOm51bGx9KSxzZX0oQyk7Uy5maW5kPWQsUy5leHByPWQuc2VsZWN0b3JzLFMuZXhwclsiOiJdPVMuZXhwci5wc2V1ZG9zLFMudW5pcXVlU29ydD1TLnVuaXF1ZT1kLnVuaXF1ZVNvcnQsUy50ZXh0PWQuZ2V0VGV4dCxTLmlzWE1MRG9jPWQuaXNYTUwsUy5jb250YWlucz1kLmNvbnRhaW5zLFMuZXNjYXBlU2VsZWN0b3I9ZC5lc2NhcGU7dmFyIGg9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVtdLGk9dm9pZCAwIT09bjt3aGlsZSgoZT1lW3RdKSYmOSE9PWUubm9kZVR5cGUpaWYoMT09PWUubm9kZVR5cGUpe2lmKGkmJlMoZSkuaXMobikpYnJlYWs7ci5wdXNoKGUpfXJldHVybiByfSxUPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdO2U7ZT1lLm5leHRTaWJsaW5nKTE9PT1lLm5vZGVUeXBlJiZlIT09dCYmbi5wdXNoKGUpO3JldHVybiBufSxrPVMuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7ZnVuY3Rpb24gQShlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9dmFyIE49L148KFthLXpdW15cL1wwPjpceDIwXHRcclxuXGZdKilbXHgyMFx0XHJcblxmXSpcLz8+KD86PFwvXDE+fCkkL2k7ZnVuY3Rpb24gaihlLG4scil7cmV0dXJuIG0obik/Uy5ncmVwKGUsZnVuY3Rpb24oZSx0KXtyZXR1cm4hIW4uY2FsbChlLHQsZSkhPT1yfSk6bi5ub2RlVHlwZT9TLmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZT09PW4hPT1yfSk6InN0cmluZyIhPXR5cGVvZiBuP1MuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybi0xPGkuY2FsbChuLGUpIT09cn0pOlMuZmlsdGVyKG4sZSxyKX1TLmZpbHRlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXTtyZXR1cm4gbiYmKGU9Ijpub3QoIitlKyIpIiksMT09PXQubGVuZ3RoJiYxPT09ci5ub2RlVHlwZT9TLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHIsZSk/W3JdOltdOlMuZmluZC5tYXRjaGVzKGUsUy5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfSkpfSxTLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9dGhpcy5sZW5ndGgsaT10aGlzO2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gdGhpcy5wdXNoU3RhY2soUyhlKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodD0wO3Q8cjt0KyspaWYoUy5jb250YWlucyhpW3RdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihuPXRoaXMucHVzaFN0YWNrKFtdKSx0PTA7dDxyO3QrKylTLmZpbmQoZSxpW3RdLG4pO3JldHVybiAxPHI/Uy51bmlxdWVTb3J0KG4pOm59LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGUpe3JldHVybiEhaih0aGlzLCJzdHJpbmciPT10eXBlb2YgZSYmay50ZXN0KGUpP1MoZSk6ZXx8W10sITEpLmxlbmd0aH19KTt2YXIgRCxxPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KFMuZm4uaW5pdD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaTtpZighZSlyZXR1cm4gdGhpcztpZihuPW58fEQsInN0cmluZyI9PXR5cGVvZiBlKXtpZighKHI9IjwiPT09ZVswXSYmIj4iPT09ZVtlLmxlbmd0aC0xXSYmMzw9ZS5sZW5ndGg/W251bGwsZSxudWxsXTpxLmV4ZWMoZSkpfHwhclsxXSYmdClyZXR1cm4hdHx8dC5qcXVlcnk/KHR8fG4pLmZpbmQoZSk6dGhpcy5jb25zdHJ1Y3Rvcih0KS5maW5kKGUpO2lmKHJbMV0pe2lmKHQ9dCBpbnN0YW5jZW9mIFM/dFswXTp0LFMubWVyZ2UodGhpcyxTLnBhcnNlSFRNTChyWzFdLHQmJnQubm9kZVR5cGU/dC5vd25lckRvY3VtZW50fHx0OkUsITApKSxOLnRlc3QoclsxXSkmJlMuaXNQbGFpbk9iamVjdCh0KSlmb3IociBpbiB0KW0odGhpc1tyXSk/dGhpc1tyXSh0W3JdKTp0aGlzLmF0dHIocix0W3JdKTtyZXR1cm4gdGhpc31yZXR1cm4oaT1FLmdldEVsZW1lbnRCeUlkKHJbMl0pKSYmKHRoaXNbMF09aSx0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBlLm5vZGVUeXBlPyh0aGlzWzBdPWUsdGhpcy5sZW5ndGg9MSx0aGlzKTptKGUpP3ZvaWQgMCE9PW4ucmVhZHk/bi5yZWFkeShlKTplKFMpOlMubWFrZUFycmF5KGUsdGhpcyl9KS5wcm90b3R5cGU9Uy5mbixEPVMoRSk7dmFyIEw9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sSD17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtmdW5jdGlvbiBPKGUsdCl7d2hpbGUoKGU9ZVt0XSkmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGUpe3ZhciB0PVMoZSx0aGlzKSxuPXQubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8bjtlKyspaWYoUy5jb250YWlucyh0aGlzLHRbZV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTAsaT10aGlzLmxlbmd0aCxvPVtdLGE9InN0cmluZyIhPXR5cGVvZiBlJiZTKGUpO2lmKCFrLnRlc3QoZSkpZm9yKDtyPGk7cisrKWZvcihuPXRoaXNbcl07biYmbiE9PXQ7bj1uLnBhcmVudE5vZGUpaWYobi5ub2RlVHlwZTwxMSYmKGE/LTE8YS5pbmRleChuKToxPT09bi5ub2RlVHlwZSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihuLGUpKSl7by5wdXNoKG4pO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjaygxPG8ubGVuZ3RoP1MudW5pcXVlU29ydChvKTpvKX0saW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP2kuY2FsbChTKGUpLHRoaXNbMF0pOmkuY2FsbCh0aGlzLGUuanF1ZXJ5P2VbMF06ZSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy51bmlxdWVTb3J0KFMubWVyZ2UodGhpcy5nZXQoKSxTKGUsdCkpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfX0pLFMuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmMTEhPT10Lm5vZGVUeXBlP3Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGgoZSwicGFyZW50Tm9kZSIsbil9LG5leHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihlKXtyZXR1cm4gTyhlLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKGUsIm5leHRTaWJsaW5nIixuKX0scHJldlVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaChlLCJwcmV2aW91c1NpYmxpbmciLG4pfSxzaWJsaW5nczpmdW5jdGlvbihlKXtyZXR1cm4gVCgoZS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxlKX0sY2hpbGRyZW46ZnVuY3Rpb24oZSl7cmV0dXJuIFQoZS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUuY29udGVudERvY3VtZW50JiZyKGUuY29udGVudERvY3VtZW50KT9lLmNvbnRlbnREb2N1bWVudDooQShlLCJ0ZW1wbGF0ZSIpJiYoZT1lLmNvbnRlbnR8fGUpLFMubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbihyLGkpe1MuZm5bcl09ZnVuY3Rpb24oZSx0KXt2YXIgbj1TLm1hcCh0aGlzLGksZSk7cmV0dXJuIlVudGlsIiE9PXIuc2xpY2UoLTUpJiYodD1lKSx0JiYic3RyaW5nIj09dHlwZW9mIHQmJihuPVMuZmlsdGVyKHQsbikpLDE8dGhpcy5sZW5ndGgmJihIW3JdfHxTLnVuaXF1ZVNvcnQobiksTC50ZXN0KHIpJiZuLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2sobil9fSk7dmFyIFA9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiBSKGUpe3JldHVybiBlfWZ1bmN0aW9uIE0oZSl7dGhyb3cgZX1mdW5jdGlvbiBJKGUsdCxuLHIpe3ZhciBpO3RyeXtlJiZtKGk9ZS5wcm9taXNlKT9pLmNhbGwoZSkuZG9uZSh0KS5mYWlsKG4pOmUmJm0oaT1lLnRoZW4pP2kuY2FsbChlLHQsbik6dC5hcHBseSh2b2lkIDAsW2VdLnNsaWNlKHIpKX1jYXRjaChlKXtuLmFwcGx5KHZvaWQgMCxbZV0pfX1TLkNhbGxiYWNrcz1mdW5jdGlvbihyKXt2YXIgZSxuO3I9InN0cmluZyI9PXR5cGVvZiByPyhlPXIsbj17fSxTLmVhY2goZS5tYXRjaChQKXx8W10sZnVuY3Rpb24oZSx0KXtuW3RdPSEwfSksbik6Uy5leHRlbmQoe30scik7dmFyIGksdCxvLGEscz1bXSx1PVtdLGw9LTEsYz1mdW5jdGlvbigpe2ZvcihhPWF8fHIub25jZSxvPWk9ITA7dS5sZW5ndGg7bD0tMSl7dD11LnNoaWZ0KCk7d2hpbGUoKytsPHMubGVuZ3RoKSExPT09c1tsXS5hcHBseSh0WzBdLHRbMV0pJiZyLnN0b3BPbkZhbHNlJiYobD1zLmxlbmd0aCx0PSExKX1yLm1lbW9yeXx8KHQ9ITEpLGk9ITEsYSYmKHM9dD9bXToiIil9LGY9e2FkZDpmdW5jdGlvbigpe3JldHVybiBzJiYodCYmIWkmJihsPXMubGVuZ3RoLTEsdS5wdXNoKHQpKSxmdW5jdGlvbiBuKGUpe1MuZWFjaChlLGZ1bmN0aW9uKGUsdCl7bSh0KT9yLnVuaXF1ZSYmZi5oYXModCl8fHMucHVzaCh0KTp0JiZ0Lmxlbmd0aCYmInN0cmluZyIhPT13KHQpJiZuKHQpfSl9KGFyZ3VtZW50cyksdCYmIWkmJmMoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIFMuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgbjt3aGlsZSgtMTwobj1TLmluQXJyYXkodCxzLG4pKSlzLnNwbGljZShuLDEpLG48PWwmJmwtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT8tMTxTLmluQXJyYXkoZSxzKTowPHMubGVuZ3RofSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBzJiYocz1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBhPXU9W10scz10PSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXN9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYT11PVtdLHR8fGl8fChzPXQ9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhYX0sZmlyZVdpdGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXx8KHQ9W2UsKHQ9dHx8W10pLnNsaWNlP3Quc2xpY2UoKTp0XSx1LnB1c2godCksaXx8YygpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFvfX07cmV0dXJuIGZ9LFMuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihlKXt2YXIgbz1bWyJub3RpZnkiLCJwcm9ncmVzcyIsUy5DYWxsYmFja3MoIm1lbW9yeSIpLFMuQ2FsbGJhY2tzKCJtZW1vcnkiKSwyXSxbInJlc29sdmUiLCJkb25lIixTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwwLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0saT0icGVuZGluZyIsYT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHMuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGUpe3JldHVybiBhLnRoZW4obnVsbCxlKX0scGlwZTpmdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cztyZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihyKXtTLmVhY2gobyxmdW5jdGlvbihlLHQpe3ZhciBuPW0oaVt0WzRdXSkmJmlbdFs0XV07c1t0WzFdXShmdW5jdGlvbigpe3ZhciBlPW4mJm4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJm0oZS5wcm9taXNlKT9lLnByb21pc2UoKS5wcm9ncmVzcyhyLm5vdGlmeSkuZG9uZShyLnJlc29sdmUpLmZhaWwoci5yZWplY3QpOnJbdFswXSsiV2l0aCJdKHRoaXMsbj9bZV06YXJndW1lbnRzKX0pfSksaT1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKHQsbixyKXt2YXIgdT0wO2Z1bmN0aW9uIGwoaSxvLGEscyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPWFyZ3VtZW50cyxlPWZ1bmN0aW9uKCl7dmFyIGUsdDtpZighKGk8dSkpe2lmKChlPWEuYXBwbHkobixyKSk9PT1vLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTt0PWUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSYmZS50aGVuLG0odCk/cz90LmNhbGwoZSxsKHUsbyxSLHMpLGwodSxvLE0scykpOih1KyssdC5jYWxsKGUsbCh1LG8sUixzKSxsKHUsbyxNLHMpLGwodSxvLFIsby5ub3RpZnlXaXRoKSkpOihhIT09UiYmKG49dm9pZCAwLHI9W2VdKSwoc3x8by5yZXNvbHZlV2l0aCkobixyKSl9fSx0PXM/ZTpmdW5jdGlvbigpe3RyeXtlKCl9Y2F0Y2goZSl7Uy5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2soZSx0LnN0YWNrVHJhY2UpLHU8PWkrMSYmKGEhPT1NJiYobj12b2lkIDAscj1bZV0pLG8ucmVqZWN0V2l0aChuLHIpKX19O2k/dCgpOihTLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKHQuc3RhY2tUcmFjZT1TLkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSxDLnNldFRpbWVvdXQodCkpfX1yZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihlKXtvWzBdWzNdLmFkZChsKDAsZSxtKHIpP3I6UixlLm5vdGlmeVdpdGgpKSxvWzFdWzNdLmFkZChsKDAsZSxtKHQpP3Q6UikpLG9bMl1bM10uYWRkKGwoMCxlLG0obik/bjpNKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/Uy5leHRlbmQoZSxhKTphfX0scz17fTtyZXR1cm4gUy5lYWNoKG8sZnVuY3Rpb24oZSx0KXt2YXIgbj10WzJdLHI9dFs1XTthW3RbMV1dPW4uYWRkLHImJm4uYWRkKGZ1bmN0aW9uKCl7aT1yfSxvWzMtZV1bMl0uZGlzYWJsZSxvWzMtZV1bM10uZGlzYWJsZSxvWzBdWzJdLmxvY2ssb1swXVszXS5sb2NrKSxuLmFkZCh0WzNdLmZpcmUpLHNbdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gc1t0WzBdKyJXaXRoIl0odGhpcz09PXM/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxzW3RbMF0rIldpdGgiXT1uLmZpcmVXaXRofSksYS5wcm9taXNlKHMpLGUmJmUuY2FsbChzLHMpLHN9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PW4scj1BcnJheSh0KSxpPXMuY2FsbChhcmd1bWVudHMpLG89Uy5EZWZlcnJlZCgpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JbdF09dGhpcyxpW3RdPTE8YXJndW1lbnRzLmxlbmd0aD9zLmNhbGwoYXJndW1lbnRzKTplLC0tbnx8by5yZXNvbHZlV2l0aChyLGkpfX07aWYobjw9MSYmKEkoZSxvLmRvbmUoYSh0KSkucmVzb2x2ZSxvLnJlamVjdCwhbiksInBlbmRpbmciPT09by5zdGF0ZSgpfHxtKGlbdF0mJmlbdF0udGhlbikpKXJldHVybiBvLnRoZW4oKTt3aGlsZSh0LS0pSShpW3RdLGEodCksby5yZWplY3QpO3JldHVybiBvLnByb21pc2UoKX19KTt2YXIgVz0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oZSx0KXtDLmNvbnNvbGUmJkMuY29uc29sZS53YXJuJiZlJiZXLnRlc3QoZS5uYW1lKSYmQy5jb25zb2xlLndhcm4oImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246ICIrZS5tZXNzYWdlLGUuc3RhY2ssdCl9LFMucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24oZSl7Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfTt2YXIgRj1TLkRlZmVycmVkKCk7ZnVuY3Rpb24gQigpe0UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQiksQy5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixCKSxTLnJlYWR5KCl9Uy5mbi5yZWFkeT1mdW5jdGlvbihlKXtyZXR1cm4gRi50aGVuKGUpWyJjYXRjaCJdKGZ1bmN0aW9uKGUpe1MucmVhZHlFeGNlcHRpb24oZSl9KSx0aGlzfSxTLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihlKXsoITA9PT1lPy0tUy5yZWFkeVdhaXQ6Uy5pc1JlYWR5KXx8KFMuaXNSZWFkeT0hMCkhPT1lJiYwPC0tUy5yZWFkeVdhaXR8fEYucmVzb2x2ZVdpdGgoRSxbU10pfX0pLFMucmVhZHkudGhlbj1GLnRoZW4sImNvbXBsZXRlIj09PUUucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09RS5yZWFkeVN0YXRlJiYhRS5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/Qy5zZXRUaW1lb3V0KFMucmVhZHkpOihFLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEIpLEMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsQikpO3ZhciAkPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe3ZhciBzPTAsdT1lLmxlbmd0aCxsPW51bGw9PW47aWYoIm9iamVjdCI9PT13KG4pKWZvcihzIGluIGk9ITAsbikkKGUsdCxzLG5bc10sITAsbyxhKTtlbHNlIGlmKHZvaWQgMCE9PXImJihpPSEwLG0ocil8fChhPSEwKSxsJiYoYT8odC5jYWxsKGUsciksdD1udWxsKToobD10LHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBsLmNhbGwoUyhlKSxuKX0pKSx0KSlmb3IoO3M8dTtzKyspdChlW3NdLG4sYT9yOnIuY2FsbChlW3NdLHMsdChlW3NdLG4pKSk7cmV0dXJuIGk/ZTpsP3QuY2FsbChlKTp1P3QoZVswXSxuKTpvfSxfPS9eLW1zLS8sej0vLShbYS16XSkvZztmdW5jdGlvbiBVKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBYKGUpe3JldHVybiBlLnJlcGxhY2UoXywibXMtIikucmVwbGFjZSh6LFUpfXZhciBWPWZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZXx8OT09PWUubm9kZVR5cGV8fCErZS5ub2RlVHlwZX07ZnVuY3Rpb24gRygpe3RoaXMuZXhwYW5kbz1TLmV4cGFuZG8rRy51aWQrK31HLnVpZD0xLEcucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHR8fCh0PXt9LFYoZSkmJihlLm5vZGVUeXBlP2VbdGhpcy5leHBhbmRvXT10Ok9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHRoaXMuZXhwYW5kbyx7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KSkpLHR9LHNldDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT10aGlzLmNhY2hlKGUpO2lmKCJzdHJpbmciPT10eXBlb2YgdClpW1godCldPW47ZWxzZSBmb3IociBpbiB0KWlbWChyKV09dFtyXTtyZXR1cm4gaX0sZ2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5jYWNoZShlKTplW3RoaXMuZXhwYW5kb10mJmVbdGhpcy5leHBhbmRvXVtYKHQpXX0sYWNjZXNzOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdm9pZCAwPT09dHx8dCYmInN0cmluZyI9PXR5cGVvZiB0JiZ2b2lkIDA9PT1uP3RoaXMuZ2V0KGUsdCk6KHRoaXMuc2V0KGUsdCxuKSx2b2lkIDAhPT1uP246dCl9LHJlbW92ZTpmdW5jdGlvbihlLHQpe3ZhciBuLHI9ZVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PXIpe2lmKHZvaWQgMCE9PXQpe249KHQ9QXJyYXkuaXNBcnJheSh0KT90Lm1hcChYKToodD1YKHQpKWluIHI/W3RdOnQubWF0Y2goUCl8fFtdKS5sZW5ndGg7d2hpbGUobi0tKWRlbGV0ZSByW3Rbbl1dfSh2b2lkIDA9PT10fHxTLmlzRW1wdHlPYmplY3QocikpJiYoZS5ub2RlVHlwZT9lW3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBlW3RoaXMuZXhwYW5kb10pfX0saGFzRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PXQmJiFTLmlzRW1wdHlPYmplY3QodCl9fTt2YXIgWT1uZXcgRyxRPW5ldyBHLEo9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxLPS9bQS1aXS9nO2Z1bmN0aW9uIFooZSx0LG4pe3ZhciByLGk7aWYodm9pZCAwPT09biYmMT09PWUubm9kZVR5cGUpaWYocj0iZGF0YS0iK3QucmVwbGFjZShLLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2Yobj1lLmdldEF0dHJpYnV0ZShyKSkpe3RyeXtuPSJ0cnVlIj09PShpPW4pfHwiZmFsc2UiIT09aSYmKCJudWxsIj09PWk/bnVsbDppPT09K2krIiI/K2k6Si50ZXN0KGkpP0pTT04ucGFyc2UoaSk6aSl9Y2F0Y2goZSl7fVEuc2V0KGUsdCxuKX1lbHNlIG49dm9pZCAwO3JldHVybiBufVMuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBRLmhhc0RhdGEoZSl8fFkuaGFzRGF0YShlKX0sZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFEuYWNjZXNzKGUsdCxuKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1EucmVtb3ZlKGUsdCl9LF9kYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gWS5hY2Nlc3MoZSx0LG4pfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1kucmVtb3ZlKGUsdCl9fSksUy5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24obixlKXt2YXIgdCxyLGksbz10aGlzWzBdLGE9byYmby5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PW4pe2lmKHRoaXMubGVuZ3RoJiYoaT1RLmdldChvKSwxPT09by5ub2RlVHlwZSYmIVkuZ2V0KG8sImhhc0RhdGFBdHRycyIpKSl7dD1hLmxlbmd0aDt3aGlsZSh0LS0pYVt0XSYmMD09PShyPWFbdF0ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKHI9WChyLnNsaWNlKDUpKSxaKG8scixpW3JdKSk7WS5zZXQobywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGl9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBuP3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbil9KTokKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ7aWYobyYmdm9pZCAwPT09ZSlyZXR1cm4gdm9pZCAwIT09KHQ9US5nZXQobyxuKSk/dDp2b2lkIDAhPT0odD1aKG8sbikpP3Q6dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbixlKX0pfSxudWxsLGUsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtRLnJlbW92ZSh0aGlzLGUpfSl9fSksUy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZihlKXJldHVybiB0PSh0fHwiZngiKSsicXVldWUiLHI9WS5nZXQoZSx0KSxuJiYoIXJ8fEFycmF5LmlzQXJyYXkobik/cj1ZLmFjY2VzcyhlLHQsUy5tYWtlQXJyYXkobikpOnIucHVzaChuKSkscnx8W119LGRlcXVldWU6ZnVuY3Rpb24oZSx0KXt0PXR8fCJmeCI7dmFyIG49Uy5xdWV1ZShlLHQpLHI9bi5sZW5ndGgsaT1uLnNoaWZ0KCksbz1TLl9xdWV1ZUhvb2tzKGUsdCk7ImlucHJvZ3Jlc3MiPT09aSYmKGk9bi5zaGlmdCgpLHItLSksaSYmKCJmeCI9PT10JiZuLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgby5zdG9wLGkuY2FsbChlLGZ1bmN0aW9uKCl7Uy5kZXF1ZXVlKGUsdCl9LG8pKSwhciYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dCsicXVldWVIb29rcyI7cmV0dXJuIFkuZ2V0KGUsbil8fFkuYWNjZXNzKGUsbix7ZW1wdHk6Uy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7WS5yZW1vdmUoZSxbdCsicXVldWUiLG5dKX0pfSl9fSksUy5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsbil7dmFyIGU9MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPXQsdD0iZngiLGUtLSksYXJndW1lbnRzLmxlbmd0aDxlP1MucXVldWUodGhpc1swXSx0KTp2b2lkIDA9PT1uP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9Uy5xdWV1ZSh0aGlzLHQsbik7Uy5fcXVldWVIb29rcyh0aGlzLHQpLCJmeCI9PT10JiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZTLmRlcXVldWUodGhpcyx0KX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLmRlcXVldWUodGhpcyxlKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGV8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0xLGk9Uy5EZWZlcnJlZCgpLG89dGhpcyxhPXRoaXMubGVuZ3RoLHM9ZnVuY3Rpb24oKXstLXJ8fGkucmVzb2x2ZVdpdGgobyxbb10pfTsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLGU9ZXx8ImZ4Ijt3aGlsZShhLS0pKG49WS5nZXQob1thXSxlKyJxdWV1ZUhvb2tzIikpJiZuLmVtcHR5JiYocisrLG4uZW1wdHkuYWRkKHMpKTtyZXR1cm4gcygpLGkucHJvbWlzZSh0KX19KTt2YXIgZWU9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsdGU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK2VlKyIpKFthLXolXSopJCIsImkiKSxuZT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLHJlPUUuZG9jdW1lbnRFbGVtZW50LGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKX0sb2U9e2NvbXBvc2VkOiEwfTtyZS5nZXRSb290Tm9kZSYmKGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKXx8ZS5nZXRSb290Tm9kZShvZSk9PT1lLm93bmVyRG9jdW1lbnR9KTt2YXIgYWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ibm9uZSI9PT0oZT10fHxlKS5zdHlsZS5kaXNwbGF5fHwiIj09PWUuc3R5bGUuZGlzcGxheSYmaWUoZSkmJiJub25lIj09PVMuY3NzKGUsImRpc3BsYXkiKX07ZnVuY3Rpb24gc2UoZSx0LG4scil7dmFyIGksbyxhPTIwLHM9cj9mdW5jdGlvbigpe3JldHVybiByLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBTLmNzcyhlLHQsIiIpfSx1PXMoKSxsPW4mJm5bM118fChTLmNzc051bWJlclt0XT8iIjoicHgiKSxjPWUubm9kZVR5cGUmJihTLmNzc051bWJlclt0XXx8InB4IiE9PWwmJit1KSYmdGUuZXhlYyhTLmNzcyhlLHQpKTtpZihjJiZjWzNdIT09bCl7dS89MixsPWx8fGNbM10sYz0rdXx8MTt3aGlsZShhLS0pUy5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLFMuc3R5bGUoZSx0LGMrbCksbj1ufHxbXX1yZXR1cm4gbiYmKGM9K2N8fCt1fHwwLGk9blsxXT9jKyhuWzFdKzEpKm5bMl06K25bMl0sciYmKHIudW5pdD1sLHIuc3RhcnQ9YyxyLmVuZD1pKSksaX12YXIgdWU9e307ZnVuY3Rpb24gbGUoZSx0KXtmb3IodmFyIG4scixpLG8sYSxzLHUsbD1bXSxjPTAsZj1lLmxlbmd0aDtjPGY7YysrKShyPWVbY10pLnN0eWxlJiYobj1yLnN0eWxlLmRpc3BsYXksdD8oIm5vbmUiPT09biYmKGxbY109WS5nZXQociwiZGlzcGxheSIpfHxudWxsLGxbY118fChyLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PXIuc3R5bGUuZGlzcGxheSYmYWUocikmJihsW2NdPSh1PWE9bz12b2lkIDAsYT0oaT1yKS5vd25lckRvY3VtZW50LHM9aS5ub2RlTmFtZSwodT11ZVtzXSl8fChvPWEuYm9keS5hcHBlbmRDaGlsZChhLmNyZWF0ZUVsZW1lbnQocykpLHU9Uy5jc3MobywiZGlzcGxheSIpLG8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKSwibm9uZSI9PT11JiYodT0iYmxvY2siKSx1ZVtzXT11KSkpKToibm9uZSIhPT1uJiYobFtjXT0ibm9uZSIsWS5zZXQociwiZGlzcGxheSIsbikpKTtmb3IoYz0wO2M8ZjtjKyspbnVsbCE9bFtjXSYmKGVbY10uc3R5bGUuZGlzcGxheT1sW2NdKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGU/ZT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXthZSh0aGlzKT9TKHRoaXMpLnNob3coKTpTKHRoaXMpLmhpZGUoKX0pfX0pO3ZhciBjZSxmZSxwZT0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSxkZT0vPChbYS16XVteXC9cMD5ceDIwXHRcclxuXGZdKikvaSxoZT0vXiR8Xm1vZHVsZSR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2k7Y2U9RS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuYXBwZW5kQ2hpbGQoRS5jcmVhdGVFbGVtZW50KCJkaXYiKSksKGZlPUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxmZS5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksZmUuc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpLGNlLmFwcGVuZENoaWxkKGZlKSx5LmNoZWNrQ2xvbmU9Y2UuY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkLGNlLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIseS5ub0Nsb25lQ2hlY2tlZD0hIWNlLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxjZS5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+Iix5Lm9wdGlvbj0hIWNlLmxhc3RDaGlsZDt2YXIgZ2U9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtmdW5jdGlvbiB2ZShlLHQpe3ZhciBuO3JldHVybiBuPSJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKHR8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGw/ZS5xdWVyeVNlbGVjdG9yQWxsKHR8fCIqIik6W10sdm9pZCAwPT09dHx8dCYmQShlLHQpP1MubWVyZ2UoW2VdLG4pOm59ZnVuY3Rpb24geWUoZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspWS5zZXQoZVtuXSwiZ2xvYmFsRXZhbCIsIXR8fFkuZ2V0KHRbbl0sImdsb2JhbEV2YWwiKSl9Z2UudGJvZHk9Z2UudGZvb3Q9Z2UuY29sZ3JvdXA9Z2UuY2FwdGlvbj1nZS50aGVhZCxnZS50aD1nZS50ZCx5Lm9wdGlvbnx8KGdlLm9wdGdyb3VwPWdlLm9wdGlvbj1bMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdKTt2YXIgbWU9Lzx8JiM/XHcrOy87ZnVuY3Rpb24geGUoZSx0LG4scixpKXtmb3IodmFyIG8sYSxzLHUsbCxjLGY9dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscD1bXSxkPTAsaD1lLmxlbmd0aDtkPGg7ZCsrKWlmKChvPWVbZF0pfHwwPT09bylpZigib2JqZWN0Ij09PXcobykpUy5tZXJnZShwLG8ubm9kZVR5cGU/W29dOm8pO2Vsc2UgaWYobWUudGVzdChvKSl7YT1hfHxmLmFwcGVuZENoaWxkKHQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHM9KGRlLmV4ZWMobyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksdT1nZVtzXXx8Z2UuX2RlZmF1bHQsYS5pbm5lckhUTUw9dVsxXStTLmh0bWxQcmVmaWx0ZXIobykrdVsyXSxjPXVbMF07d2hpbGUoYy0tKWE9YS5sYXN0Q2hpbGQ7Uy5tZXJnZShwLGEuY2hpbGROb2RlcyksKGE9Zi5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHAucHVzaCh0LmNyZWF0ZVRleHROb2RlKG8pKTtmLnRleHRDb250ZW50PSIiLGQ9MDt3aGlsZShvPXBbZCsrXSlpZihyJiYtMTxTLmluQXJyYXkobyxyKSlpJiZpLnB1c2gobyk7ZWxzZSBpZihsPWllKG8pLGE9dmUoZi5hcHBlbmRDaGlsZChvKSwic2NyaXB0IiksbCYmeWUoYSksbil7Yz0wO3doaWxlKG89YVtjKytdKWhlLnRlc3Qoby50eXBlfHwiIikmJm4ucHVzaChvKX1yZXR1cm4gZn12YXIgYmU9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIHdlKCl7cmV0dXJuITB9ZnVuY3Rpb24gVGUoKXtyZXR1cm4hMX1mdW5jdGlvbiBDZShlLHQpe3JldHVybiBlPT09ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIEUuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fSgpPT0oImZvY3VzIj09PXQpfWZ1bmN0aW9uIEVlKGUsdCxuLHIsaSxvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHMgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihyPXJ8fG4sbj12b2lkIDApLHQpRWUoZSxzLG4scix0W3NdLG8pO3JldHVybiBlfWlmKG51bGw9PXImJm51bGw9PWk/KGk9bixyPW49dm9pZCAwKTpudWxsPT1pJiYoInN0cmluZyI9PXR5cGVvZiBuPyhpPXIscj12b2lkIDApOihpPXIscj1uLG49dm9pZCAwKSksITE9PT1pKWk9VGU7ZWxzZSBpZighaSlyZXR1cm4gZTtyZXR1cm4gMT09PW8mJihhPWksKGk9ZnVuY3Rpb24oZSl7cmV0dXJuIFMoKS5vZmYoZSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWEuZ3VpZHx8KGEuZ3VpZD1TLmd1aWQrKykpLGUuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQuYWRkKHRoaXMsdCxpLHIsbil9KX1mdW5jdGlvbiBTZShlLGksbyl7bz8oWS5zZXQoZSxpLCExKSxTLmV2ZW50LmFkZChlLGkse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj1ZLmdldCh0aGlzLGkpO2lmKDEmZS5pc1RyaWdnZXImJnRoaXNbaV0pe2lmKHIubGVuZ3RoKShTLmV2ZW50LnNwZWNpYWxbaV18fHt9KS5kZWxlZ2F0ZVR5cGUmJmUuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihyPXMuY2FsbChhcmd1bWVudHMpLFkuc2V0KHRoaXMsaSxyKSx0PW8odGhpcyxpKSx0aGlzW2ldKCksciE9PShuPVkuZ2V0KHRoaXMsaSkpfHx0P1kuc2V0KHRoaXMsaSwhMSk6bj17fSxyIT09bilyZXR1cm4gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksbiYmbi52YWx1ZX1lbHNlIHIubGVuZ3RoJiYoWS5zZXQodGhpcyxpLHt2YWx1ZTpTLmV2ZW50LnRyaWdnZXIoUy5leHRlbmQoclswXSxTLkV2ZW50LnByb3RvdHlwZSksci5zbGljZSgxKSx0aGlzKX0pLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX0pKTp2b2lkIDA9PT1ZLmdldChlLGkpJiZTLmV2ZW50LmFkZChlLGksd2UpfVMuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24odCxlLG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5nZXQodCk7aWYoVih0KSl7bi5oYW5kbGVyJiYobj0obz1uKS5oYW5kbGVyLGk9by5zZWxlY3RvciksaSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihyZSxpKSxuLmd1aWR8fChuLmd1aWQ9Uy5ndWlkKyspLCh1PXYuZXZlbnRzKXx8KHU9di5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGE9di5oYW5kbGUpfHwoYT12LmhhbmRsZT1mdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFMmJlMuZXZlbnQudHJpZ2dlcmVkIT09ZS50eXBlP1MuZXZlbnQuZGlzcGF0Y2guYXBwbHkodCxhcmd1bWVudHMpOnZvaWQgMH0pLGw9KGU9KGV8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlkPWc9KHM9YmUuZXhlYyhlW2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkJiYoZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGQ9KGk/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGQsZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGM9Uy5leHRlbmQoe3R5cGU6ZCxvcmlnVHlwZTpnLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6aSxuZWVkc0NvbnRleHQ6aSYmUy5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGkpLG5hbWVzcGFjZTpoLmpvaW4oIi4iKX0sbyksKHA9dVtkXSl8fCgocD11W2RdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZi5zZXR1cCYmITEhPT1mLnNldHVwLmNhbGwodCxyLGgsYSl8fHQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKGQsYSkpLGYuYWRkJiYoZi5hZGQuY2FsbCh0LGMpLGMuaGFuZGxlci5ndWlkfHwoYy5oYW5kbGVyLmd1aWQ9bi5ndWlkKSksaT9wLnNwbGljZShwLmRlbGVnYXRlQ291bnQrKywwLGMpOnAucHVzaChjKSxTLmV2ZW50Lmdsb2JhbFtkXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5oYXNEYXRhKGUpJiZZLmdldChlKTtpZih2JiYodT12LmV2ZW50cykpe2w9KHQ9KHR8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlpZihkPWc9KHM9YmUuZXhlYyh0W2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkKXtmPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scD11W2Q9KHI/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGRdfHxbXSxzPXNbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksYT1vPXAubGVuZ3RoO3doaWxlKG8tLSljPXBbb10sIWkmJmchPT1jLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1jLmd1aWR8fHMmJiFzLnRlc3QoYy5uYW1lc3BhY2UpfHxyJiZyIT09Yy5zZWxlY3RvciYmKCIqKiIhPT1yfHwhYy5zZWxlY3Rvcil8fChwLnNwbGljZShvLDEpLGMuc2VsZWN0b3ImJnAuZGVsZWdhdGVDb3VudC0tLGYucmVtb3ZlJiZmLnJlbW92ZS5jYWxsKGUsYykpO2EmJiFwLmxlbmd0aCYmKGYudGVhcmRvd24mJiExIT09Zi50ZWFyZG93bi5jYWxsKGUsaCx2LmhhbmRsZSl8fFMucmVtb3ZlRXZlbnQoZSxkLHYuaGFuZGxlKSxkZWxldGUgdVtkXSl9ZWxzZSBmb3IoZCBpbiB1KVMuZXZlbnQucmVtb3ZlKGUsZCt0W2xdLG4sciwhMCk7Uy5pc0VtcHR5T2JqZWN0KHUpJiZZLnJlbW92ZShlLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscz1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksdT1TLmV2ZW50LmZpeChlKSxsPShZLmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbdS50eXBlXXx8W10sYz1TLmV2ZW50LnNwZWNpYWxbdS50eXBlXXx8e307Zm9yKHNbMF09dSx0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKylzW3RdPWFyZ3VtZW50c1t0XTtpZih1LmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWMucHJlRGlzcGF0Y2h8fCExIT09Yy5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsdSkpe2E9Uy5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsdSxsKSx0PTA7d2hpbGUoKGk9YVt0KytdKSYmIXUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7dS5jdXJyZW50VGFyZ2V0PWkuZWxlbSxuPTA7d2hpbGUoKG89aS5oYW5kbGVyc1tuKytdKSYmIXUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl1LnJuYW1lc3BhY2UmJiExIT09by5uYW1lc3BhY2UmJiF1LnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fCh1LmhhbmRsZU9iaj1vLHUuZGF0YT1vLmRhdGEsdm9pZCAwIT09KHI9KChTLmV2ZW50LnNwZWNpYWxbby5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fG8uaGFuZGxlcikuYXBwbHkoaS5lbGVtLHMpKSYmITE9PT0odS5yZXN1bHQ9cikmJih1LnByZXZlbnREZWZhdWx0KCksdS5zdG9wUHJvcGFnYXRpb24oKSkpfXJldHVybiBjLnBvc3REaXNwYXRjaCYmYy5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLHUpLHUucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhLHM9W10sdT10LmRlbGVnYXRlQ291bnQsbD1lLnRhcmdldDtpZih1JiZsLm5vZGVUeXBlJiYhKCJjbGljayI9PT1lLnR5cGUmJjE8PWUuYnV0dG9uKSlmb3IoO2whPT10aGlzO2w9bC5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1sLm5vZGVUeXBlJiYoImNsaWNrIiE9PWUudHlwZXx8ITAhPT1sLmRpc2FibGVkKSl7Zm9yKG89W10sYT17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1hW2k9KHI9dFtuXSkuc2VsZWN0b3IrIiAiXSYmKGFbaV09ci5uZWVkc0NvbnRleHQ/LTE8UyhpLHRoaXMpLmluZGV4KGwpOlMuZmluZChpLHRoaXMsbnVsbCxbbF0pLmxlbmd0aCksYVtpXSYmby5wdXNoKHIpO28ubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczpvfSl9cmV0dXJuIGw9dGhpcyx1PHQubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczp0LnNsaWNlKHUpfSksc30sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShTLkV2ZW50LnByb3RvdHlwZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6bShlKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZSh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W3RdfSxzZXQ6ZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pfX0pfSxmaXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbUy5leHBhbmRvXT9lOm5ldyBTLkV2ZW50KGUpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIsd2UpLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtyZXR1cm4gcGUudGVzdCh0LnR5cGUpJiZ0LmNsaWNrJiZBKHQsImlucHV0IikmJlkuZ2V0KHQsImNsaWNrIil8fEEodCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZS5yZXN1bHQmJmUub3JpZ2luYWxFdmVudCYmKGUub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1lLnJlc3VsdCl9fX19LFMucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oZSx0LG4pe2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbil9LFMuRXZlbnQ9ZnVuY3Rpb24oZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBTLkV2ZW50KSlyZXR1cm4gbmV3IFMuRXZlbnQoZSx0KTtlJiZlLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1lLHRoaXMudHlwZT1lLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9ZS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1lLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09ZS5yZXR1cm5WYWx1ZT93ZTpUZSx0aGlzLnRhcmdldD1lLnRhcmdldCYmMz09PWUudGFyZ2V0Lm5vZGVUeXBlP2UudGFyZ2V0LnBhcmVudE5vZGU6ZS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWUuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9ZS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9ZSx0JiZTLmV4dGVuZCh0aGlzLHQpLHRoaXMudGltZVN0YW1wPWUmJmUudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbUy5leHBhbmRvXT0hMH0sUy5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlMuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOlRlLGlzUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD13ZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sUy5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLCJjaGFyIjohMCxjb2RlOiEwLGNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxTLmV2ZW50LmFkZFByb3ApLFMuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oZSx0KXtTLmV2ZW50LnNwZWNpYWxbZV09e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIFNlKHRoaXMsZSxDZSksITF9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gU2UodGhpcyxlKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZGVsZWdhdGVUeXBlOnR9fSksUy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihlLGkpe1MuZXZlbnQuc3BlY2lhbFtlXT17ZGVsZWdhdGVUeXBlOmksYmluZFR5cGU6aSxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnJlbGF0ZWRUYXJnZXQscj1lLmhhbmRsZU9iajtyZXR1cm4gbiYmKG49PT10aGlzfHxTLmNvbnRhaW5zKHRoaXMsbikpfHwoZS50eXBlPXIub3JpZ1R5cGUsdD1yLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT1pKSx0fX19KSxTLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIEVlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gRWUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosUyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGUpe2ZvcihpIGluIGUpdGhpcy5vZmYoaSx0LGVbaV0pO3JldHVybiB0aGlzfXJldHVybiExIT09dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49VGUpLHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIGtlPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLEFlPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLE5lPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBqZShlLHQpe3JldHVybiBBKGUsInRhYmxlIikmJkEoMTEhPT10Lm5vZGVUeXBlP3Q6dC5maXJzdENoaWxkLCJ0ciIpJiZTKGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlfWZ1bmN0aW9uIERlKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gcWUoZSl7cmV0dXJuInRydWUvIj09PShlLnR5cGV8fCIiKS5zbGljZSgwLDUpP2UudHlwZT1lLnR5cGUuc2xpY2UoNSk6ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIExlKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihZLmhhc0RhdGEoZSkmJihzPVkuZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gWS5yZW1vdmUodCwiaGFuZGxlIGV2ZW50cyIpLHMpZm9yKG49MCxyPXNbaV0ubGVuZ3RoO248cjtuKyspUy5ldmVudC5hZGQodCxpLHNbaV1bbl0pO1EuaGFzRGF0YShlKSYmKG89US5hY2Nlc3MoZSksYT1TLmV4dGVuZCh7fSxvKSxRLnNldCh0LGEpKX19ZnVuY3Rpb24gSGUobixyLGksbyl7cj1nKHIpO3ZhciBlLHQsYSxzLHUsbCxjPTAsZj1uLmxlbmd0aCxwPWYtMSxkPXJbMF0saD1tKGQpO2lmKGh8fDE8ZiYmInN0cmluZyI9PXR5cGVvZiBkJiYheS5jaGVja0Nsb25lJiZBZS50ZXN0KGQpKXJldHVybiBuLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5lcShlKTtoJiYoclswXT1kLmNhbGwodGhpcyxlLHQuaHRtbCgpKSksSGUodCxyLGksbyl9KTtpZihmJiYodD0oZT14ZShyLG5bMF0ub3duZXJEb2N1bWVudCwhMSxuLG8pKS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT10KSx0fHxvKSl7Zm9yKHM9KGE9Uy5tYXAodmUoZSwic2NyaXB0IiksRGUpKS5sZW5ndGg7YzxmO2MrKyl1PWUsYyE9PXAmJih1PVMuY2xvbmUodSwhMCwhMCkscyYmUy5tZXJnZShhLHZlKHUsInNjcmlwdCIpKSksaS5jYWxsKG5bY10sdSxjKTtpZihzKWZvcihsPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxTLm1hcChhLHFlKSxjPTA7YzxzO2MrKyl1PWFbY10saGUudGVzdCh1LnR5cGV8fCIiKSYmIVkuYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmUy5jb250YWlucyhsLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/Uy5fZXZhbFVybCYmIXUubm9Nb2R1bGUmJlMuX2V2YWxVcmwodS5zcmMse25vbmNlOnUubm9uY2V8fHUuZ2V0QXR0cmlidXRlKCJub25jZSIpfSxsKTpiKHUudGV4dENvbnRlbnQucmVwbGFjZShOZSwiIiksdSxsKSl9cmV0dXJuIG59ZnVuY3Rpb24gT2UoZSx0LG4pe2Zvcih2YXIgcixpPXQ/Uy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fFMuY2xlYW5EYXRhKHZlKHIpKSxyLnBhcmVudE5vZGUmJihuJiZpZShyKSYmeWUodmUociwic2NyaXB0IikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9Uy5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPWUuY2xvbmVOb2RlKCEwKSxmPWllKGUpO2lmKCEoeS5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8Uy5pc1hNTERvYyhlKSkpZm9yKGE9dmUoYykscj0wLGk9KG89dmUoZSkpLmxlbmd0aDtyPGk7cisrKXM9b1tyXSx1PWFbcl0sdm9pZCAwLCJpbnB1dCI9PT0obD11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZwZS50ZXN0KHMudHlwZSk/dS5jaGVja2VkPXMuY2hlY2tlZDoiaW5wdXQiIT09bCYmInRleHRhcmVhIiE9PWx8fCh1LmRlZmF1bHRWYWx1ZT1zLmRlZmF1bHRWYWx1ZSk7aWYodClpZihuKWZvcihvPW98fHZlKGUpLGE9YXx8dmUoYykscj0wLGk9by5sZW5ndGg7cjxpO3IrKylMZShvW3JdLGFbcl0pO2Vsc2UgTGUoZSxjKTtyZXR1cm4gMDwoYT12ZShjLCJzY3JpcHQiKSkubGVuZ3RoJiZ5ZShhLCFmJiZ2ZShlLCJzY3JpcHQiKSksY30sY2xlYW5EYXRhOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuLHIsaT1TLmV2ZW50LnNwZWNpYWwsbz0wO3ZvaWQgMCE9PShuPWVbb10pO28rKylpZihWKG4pKXtpZih0PW5bWS5leHBhbmRvXSl7aWYodC5ldmVudHMpZm9yKHIgaW4gdC5ldmVudHMpaVtyXT9TLmV2ZW50LnJlbW92ZShuLHIpOlMucmVtb3ZlRXZlbnQobixyLHQuaGFuZGxlKTtuW1kuZXhwYW5kb109dm9pZCAwfW5bUS5leHBhbmRvXSYmKG5bUS5leHBhbmRvXT12b2lkIDApfX19KSxTLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGUpe3JldHVybiBPZSh0aGlzLGUsITApfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIE9lKHRoaXMsZSl9LHRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZT9TLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9ZSl9KX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fGplKHRoaXMsZSkuYXBwZW5kQ2hpbGQoZSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9amUodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKTE9PT1lLm5vZGVUeXBlJiYoUy5jbGVhbkRhdGEodmUoZSwhMSkpLGUudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWUmJmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBTLmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIWtlLnRlc3QoZSkmJiFnZVsoZGUuZXhlYyhlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9Uy5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKFMuY2xlYW5EYXRhKHZlKHQsITEpKSx0LmlubmVySFRNTD1lKTt0PTB9Y2F0Y2goZSl7fX10JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIEhlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtTLmluQXJyYXkodGhpcyxuKTwwJiYoUy5jbGVhbkRhdGEodmUodGhpcykpLHQmJnQucmVwbGFjZUNoaWxkKGUsdGhpcykpfSxuKX19KSxTLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihlLGEpe1MuZm5bZV09ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49W10scj1TKGUpLGk9ci5sZW5ndGgtMSxvPTA7bzw9aTtvKyspdD1vPT09aT90aGlzOnRoaXMuY2xvbmUoITApLFMocltvXSlbYV0odCksdS5hcHBseShuLHQuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgUGU9bmV3IFJlZ0V4cCgiXigiK2VlKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksUmU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiB0JiZ0Lm9wZW5lcnx8KHQ9QyksdC5nZXRDb21wdXRlZFN0eWxlKGUpfSxNZT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn0sSWU9bmV3IFJlZ0V4cChuZS5qb2luKCJ8IiksImkiKTtmdW5jdGlvbiBXZShlLHQsbil7dmFyIHIsaSxvLGEscz1lLnN0eWxlO3JldHVybihuPW58fFJlKGUpKSYmKCIiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8aWUoZSl8fChhPVMuc3R5bGUoZSx0KSksIXkucGl4ZWxCb3hTdHlsZXMoKSYmUGUudGVzdChhKSYmSWUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLGwuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIscmUuYXBwZW5kQ2hpbGQodSkuYXBwZW5kQ2hpbGQobCk7dmFyIGU9Qy5nZXRDb21wdXRlZFN0eWxlKGwpO249IjElIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD0iNjAlIixvPTM2PT09dChlLnJpZ2h0KSxyPTM2PT09dChlLndpZHRoKSxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaT0xMj09PXQobC5vZmZzZXRXaWR0aC8zKSxyZS5yZW1vdmVDaGlsZCh1KSxsPW51bGx9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIG4scixpLG8sYSxzLHU9RS5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUUuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIseS5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsUy5leHRlbmQoeSx7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxvfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxufSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHN9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLGl9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLHI7cmV0dXJuIG51bGw9PWEmJihlPUUuY3JlYXRlRWxlbWVudCgidGFibGUiKSx0PUUuY3JlYXRlRWxlbWVudCgidHIiKSxuPUUuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsdC5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MXB4IHNvbGlkIix0LnN0eWxlLmhlaWdodD0iMXB4IixuLnN0eWxlLmhlaWdodD0iOXB4IixuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixyZS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPUMuZ2V0Q29tcHV0ZWRTdHlsZSh0KSxhPXBhcnNlSW50KHIuaGVpZ2h0LDEwKStwYXJzZUludChyLmJvcmRlclRvcFdpZHRoLDEwKStwYXJzZUludChyLmJvcmRlckJvdHRvbVdpZHRoLDEwKT09PXQub2Zmc2V0SGVpZ2h0LHJlLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgQmU9WyJXZWJraXQiLCJNb3oiLCJtcyJdLCRlPUUuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsX2U9e307ZnVuY3Rpb24gemUoZSl7dmFyIHQ9Uy5jc3NQcm9wc1tlXXx8X2VbZV07cmV0dXJuIHR8fChlIGluICRlP2U6X2VbZV09ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1CZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPUJlW25dK3QpaW4gJGUpcmV0dXJuIGV9KGUpfHxlKX12YXIgVWU9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFhlPS9eLS0vLFZlPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxHZT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn07ZnVuY3Rpb24gWWUoZSx0LG4pe3ZhciByPXRlLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gUWUoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpIm1hcmdpbiI9PT1uJiYodSs9Uy5jc3MoZSxuK25lW2FdLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYodS09Uy5jc3MoZSwicGFkZGluZyIrbmVbYV0sITAsaSkpLCJtYXJnaW4iIT09biYmKHUtPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKSkpOih1Kz1TLmNzcyhlLCJwYWRkaW5nIituZVthXSwhMCxpKSwicGFkZGluZyIhPT1uP3UrPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKTpzKz1TLmNzcyhlLCJib3JkZXIiK25lW2FdKyJXaWR0aCIsITAsaSkpO3JldHVybiFyJiYwPD1vJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKXx8MCksdX1mdW5jdGlvbiBKZShlLHQsbil7dmFyIHI9UmUoZSksaT0oIXkuYm94U2l6aW5nUmVsaWFibGUoKXx8bikmJiJib3JkZXItYm94Ij09PVMuY3NzKGUsImJveFNpemluZyIsITEsciksbz1pLGE9V2UoZSx0LHIpLHM9Im9mZnNldCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7aWYoUGUudGVzdChhKSl7aWYoIW4pcmV0dXJuIGE7YT0iYXV0byJ9cmV0dXJuKCF5LmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCF5LnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJkEoZSwidHIiKXx8ImF1dG8iPT09YXx8IXBhcnNlRmxvYXQoYSkmJiJpbmxpbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIsITEscikpJiZlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoaT0iYm9yZGVyLWJveCI9PT1TLmNzcyhlLCJib3hTaXppbmciLCExLHIpLChvPXMgaW4gZSkmJihhPWVbc10pKSwoYT1wYXJzZUZsb2F0KGEpfHwwKStRZShlLHQsbnx8KGk/ImJvcmRlciI6ImNvbnRlbnQiKSxvLHIsYSkrInB4In1mdW5jdGlvbiBLZShlLHQsbixyLGkpe3JldHVybiBuZXcgS2UucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX1TLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPVdlKGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9WCh0KSx1PVhlLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PXplKHMpKSxhPVMuY3NzSG9va3NbdF18fFMuY3NzSG9va3Nbc10sdm9pZCAwPT09bilyZXR1cm4gYSYmImdldCJpbiBhJiZ2b2lkIDAhPT0oaT1hLmdldChlLCExLHIpKT9pOmxbdF07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihpPXRlLmV4ZWMobikpJiZpWzFdJiYobj1zZShlLHQsaSksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiIT09b3x8dXx8KG4rPWkmJmlbM118fChTLmNzc051bWJlcltzXT8iIjoicHgiKSkseS5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVgodCk7cmV0dXJuIFhlLnRlc3QodCl8fCh0PXplKHMpKSwoYT1TLmNzc0hvb2tzW3RdfHxTLmNzc0hvb2tzW3NdKSYmImdldCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1XZShlLHQscikpLCJub3JtYWwiPT09aSYmdCBpbiBHZSYmKGk9R2VbdF0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KGkpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDppKTppfX0pLFMuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx1KXtTLmNzc0hvb2tzW3VdPXtnZXQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHQpcmV0dXJuIVVlLnRlc3QoUy5jc3MoZSwiZGlzcGxheSIpKXx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9KZShlLHUsbik6TWUoZSxWZSxmdW5jdGlvbigpe3JldHVybiBKZShlLHUsbil9KX0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPVJlKGUpLG89IXkuc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aS5wb3NpdGlvbixhPShvfHxuKSYmImJvcmRlci1ib3giPT09Uy5jc3MoZSwiYm94U2l6aW5nIiwhMSxpKSxzPW4/UWUoZSx1LG4sYSxpKTowO3JldHVybiBhJiZvJiYocy09TWF0aC5jZWlsKGVbIm9mZnNldCIrdVswXS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSldLXBhcnNlRmxvYXQoaVt1XSktUWUoZSx1LCJib3JkZXIiLCExLGkpLS41KSkscyYmKHI9dGUuZXhlYyh0KSkmJiJweCIhPT0oclszXXx8InB4IikmJihlLnN0eWxlW3VdPXQsdD1TLmNzcyhlLHUpKSxZZSgwLHQscyl9fX0pLFMuY3NzSG9va3MubWFyZ2luTGVmdD1GZSh5LnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuKHBhcnNlRmxvYXQoV2UoZSwibWFyZ2luTGVmdCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LU1lKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSxTLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihpLG8pe1MuY3NzSG9va3NbaStvXT17ZXhwYW5kOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49e30scj0ic3RyaW5nIj09dHlwZW9mIGU/ZS5zcGxpdCgiICIpOltlXTt0PDQ7dCsrKW5baStuZVt0XStvXT1yW3RdfHxyW3QtMl18fHJbMF07cmV0dXJuIG59fSwibWFyZ2luIiE9PWkmJihTLmNzc0hvb2tzW2krb10uc2V0PVllKX0pLFMuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPVJlKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPVMuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj9TLnN0eWxlKGUsdCxuKTpTLmNzcyhlLHQpfSxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX19KSwoKFMuVHdlZW49S2UpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6S2UsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8Uy5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPXQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXIsdGhpcy51bml0PW98fChTLmNzc051bWJlcltuXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9S2UucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOktlLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPUtlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1TLmVhc2luZ1t0aGlzLmVhc2luZ10oZSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz10PWUsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKnQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksbiYmbi5zZXQ/bi5zZXQodGhpcyk6S2UucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPUtlLnByb3RvdHlwZSwoS2UucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9Uy5jc3MoZS5lbGVtLGUucHJvcCwiIikpJiYiYXV0byIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe1MuZnguc3RlcFtlLnByb3BdP1MuZnguc3RlcFtlLnByb3BdKGUpOjEhPT1lLmVsZW0ubm9kZVR5cGV8fCFTLmNzc0hvb2tzW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVt6ZShlLnByb3ApXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzpTLnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSkuc2Nyb2xsVG9wPUtlLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LFMuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6InN3aW5nIn0sUy5meD1LZS5wcm90b3R5cGUuaW5pdCxTLmZ4LnN0ZXA9e307dmFyIFplLGV0LHR0LG50LHJ0PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxpdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIG90KCl7ZXQmJighMT09PUUuaGlkZGVuJiZDLnJlcXVlc3RBbmltYXRpb25GcmFtZT9DLnJlcXVlc3RBbmltYXRpb25GcmFtZShvdCk6Qy5zZXRUaW1lb3V0KG90LFMuZnguaW50ZXJ2YWwpLFMuZngudGljaygpKX1mdW5jdGlvbiBhdCgpe3JldHVybiBDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtaZT12b2lkIDB9KSxaZT1EYXRlLm5vdygpfWZ1bmN0aW9uIHN0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbIm1hcmdpbiIrKG49bmVbcl0pXT1pWyJwYWRkaW5nIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiB1dChlLHQsbil7Zm9yKHZhciByLGk9KGx0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KGx0LnR3ZWVuZXJzWyIqIl0pLG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYocj1pW29dLmNhbGwobix0LGUpKXJldHVybiByfWZ1bmN0aW9uIGx0KG8sZSx0KXt2YXIgbixhLHI9MCxpPWx0LnByZWZpbHRlcnMubGVuZ3RoLHM9Uy5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9WmV8fGF0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpTLmV4dGVuZCh7fSxlKSxvcHRzOlMuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpTLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOlplfHxhdCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Uy5Ud2VlbihvLGwub3B0cyxlLHQsbC5vcHRzLnNwZWNpYWxFYXNpbmdbZV18fGwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKG4pLG59LHN0b3A6ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWU/bC50d2VlbnMubGVuZ3RoOjA7aWYoYSlyZXR1cm4gdGhpcztmb3IoYT0hMDt0PG47dCsrKWwudHdlZW5zW3RdLnJ1bigxKTtyZXR1cm4gZT8ocy5ub3RpZnlXaXRoKG8sW2wsMSwwXSkscy5yZXNvbHZlV2l0aChvLFtsLGVdKSk6cy5yZWplY3RXaXRoKG8sW2wsZV0pLHRoaXN9fSksYz1sLnByb3BzO2ZvcighZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhO2ZvcihuIGluIGUpaWYoaT10W3I9WChuKV0sbz1lW25dLEFycmF5LmlzQXJyYXkobykmJihpPW9bMV0sbz1lW25dPW9bMF0pLG4hPT1yJiYoZVtyXT1vLGRlbGV0ZSBlW25dKSwoYT1TLmNzc0hvb2tzW3JdKSYmImV4cGFuZCJpbiBhKWZvcihuIGluIG89YS5leHBhbmQobyksZGVsZXRlIGVbcl0sbyluIGluIGV8fChlW25dPW9bbl0sdFtuXT1pKTtlbHNlIHRbcl09aX0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7cjxpO3IrKylpZihuPWx0LnByZWZpbHRlcnNbcl0uY2FsbChsLG8sYyxsLm9wdHMpKXJldHVybiBtKG4uc3RvcCkmJihTLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9bi5zdG9wLmJpbmQobikpLG47cmV0dXJuIFMubWFwKGMsdXQsbCksbShsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChvLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLFMuZngudGltZXIoUy5leHRlbmQodSx7ZWxlbTpvLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1TLkFuaW1hdGlvbj1TLmV4dGVuZChsdCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHNlKG4uZWxlbSxlLHRlLmV4ZWModCksbiksbn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7bShlKT8odD1lLGU9WyIqIl0pOmU9ZS5tYXRjaChQKTtmb3IodmFyIG4scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluPWVbcl0sbHQudHdlZW5lcnNbbl09bHQudHdlZW5lcnNbbl18fFtdLGx0LnR3ZWVuZXJzW25dLnVuc2hpZnQodCl9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjLGY9IndpZHRoImluIHR8fCJoZWlnaHQiaW4gdCxwPXRoaXMsZD17fSxoPWUuc3R5bGUsZz1lLm5vZGVUeXBlJiZhZShlKSx2PVkuZ2V0KGUsImZ4c2hvdyIpO2ZvcihyIGluIG4ucXVldWV8fChudWxsPT0oYT1TLl9xdWV1ZUhvb2tzKGUsImZ4IikpLnVucXVldWVkJiYoYS51bnF1ZXVlZD0wLHM9YS5lbXB0eS5maXJlLGEuZW1wdHkuZmlyZT1mdW5jdGlvbigpe2EudW5xdWV1ZWR8fHMoKX0pLGEudW5xdWV1ZWQrKyxwLmFsd2F5cyhmdW5jdGlvbigpe3AuYWx3YXlzKGZ1bmN0aW9uKCl7YS51bnF1ZXVlZC0tLFMucXVldWUoZSwiZngiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSksdClpZihpPXRbcl0scnQudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShnPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Uy5zdHlsZShlLHIpfWlmKCh1PSFTLmlzRW1wdHlPYmplY3QodCkpfHwhUy5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9WS5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz1TLmNzcyhlLCJkaXNwbGF5IikpJiYobD9jPWw6KGxlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz1TLmNzcyhlLCJkaXNwbGF5IiksbGUoW2VdKSkpLCgiaW5saW5lIj09PWN8fCJpbmxpbmUtYmxvY2siPT09YyYmbnVsbCE9bCkmJiJub25lIj09PVMuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2PyJoaWRkZW4iaW4gdiYmKGc9di5oaWRkZW4pOnY9WS5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHYuaGlkZGVuPSFnKSxnJiZsZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2ZvcihyIGluIGd8fGxlKFtlXSksWS5yZW1vdmUoZSwiZnhzaG93IiksZClTLnN0eWxlKGUscixkW3JdKX0pKSx1PXV0KGc/dltyXTowLHIscCksciBpbiB2fHwodltyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGUsdCl7dD9sdC5wcmVmaWx0ZXJzLnVuc2hpZnQoZSk6bHQucHJlZmlsdGVycy5wdXNoKGUpfX0pLFMuc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT9TLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fG0oZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIW0odCkmJnR9O3JldHVybiBTLmZ4Lm9mZj9yLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiByLmR1cmF0aW9uJiYoci5kdXJhdGlvbiBpbiBTLmZ4LnNwZWVkcz9yLmR1cmF0aW9uPVMuZnguc3BlZWRzW3IuZHVyYXRpb25dOnIuZHVyYXRpb249Uy5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPXIucXVldWUmJiEwIT09ci5xdWV1ZXx8KHIucXVldWU9ImZ4Iiksci5vbGQ9ci5jb21wbGV0ZSxyLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bShyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmUy5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LFMuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGFlKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1TLmlzRW1wdHlPYmplY3QodCksbz1TLnNwZWVkKGUsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIGU9bHQodGhpcyxTLmV4dGVuZCh7fSx0KSxvKTsoaXx8WS5nZXQodGhpcywiZmluaXNoIikpJiZlLnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHwhMT09PW8ucXVldWU/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihpLGUsbyl7dmFyIGE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChvKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0hMCx0PW51bGwhPWkmJmkrInF1ZXVlSG9va3MiLG49Uy50aW1lcnMscj1ZLmdldCh0aGlzKTtpZih0KXJbdF0mJnJbdF0uc3RvcCYmYShyW3RdKTtlbHNlIGZvcih0IGluIHIpclt0XSYmclt0XS5zdG9wJiZpdC50ZXN0KHQpJiZhKHJbdF0pO2Zvcih0PW4ubGVuZ3RoO3QtLTspblt0XS5lbGVtIT09dGhpc3x8bnVsbCE9aSYmblt0XS5xdWV1ZSE9PWl8fChuW3RdLmFuaW0uc3RvcChvKSxlPSExLG4uc3BsaWNlKHQsMSkpOyFlJiZvfHxTLmRlcXVldWUodGhpcyxpKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PVkuZ2V0KHRoaXMpLG49dFthKyJxdWV1ZSJdLHI9dFthKyJxdWV1ZUhvb2tzIl0saT1TLnRpbWVycyxvPW4/bi5sZW5ndGg6MDtmb3IodC5maW5pc2g9ITAsUy5xdWV1ZSh0aGlzLGEsW10pLHImJnIuc3RvcCYmci5zdG9wLmNhbGwodGhpcywhMCksZT1pLmxlbmd0aDtlLS07KWlbZV0uZWxlbT09PXRoaXMmJmlbZV0ucXVldWU9PT1hJiYoaVtlXS5hbmltLnN0b3AoITApLGkuc3BsaWNlKGUsMSkpO2ZvcihlPTA7ZTxvO2UrKyluW2VdJiZuW2VdLmZpbmlzaCYmbltlXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgdC5maW5pc2h9KX19KSxTLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUscil7dmFyIGk9Uy5mbltyXTtTLmZuW3JdPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoc3QociwhMCksZSx0LG4pfX0pLFMuZWFjaCh7c2xpZGVEb3duOnN0KCJzaG93Iiksc2xpZGVVcDpzdCgiaGlkZSIpLHNsaWRlVG9nZ2xlOnN0KCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGUscil7Uy5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxTLnRpbWVycz1bXSxTLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj1TLnRpbWVycztmb3IoWmU9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxTLmZ4LnN0b3AoKSxaZT12b2lkIDB9LFMuZngudGltZXI9ZnVuY3Rpb24oZSl7Uy50aW1lcnMucHVzaChlKSxTLmZ4LnN0YXJ0KCl9LFMuZnguaW50ZXJ2YWw9MTMsUy5meC5zdGFydD1mdW5jdGlvbigpe2V0fHwoZXQ9ITAsb3QoKSl9LFMuZnguc3RvcD1mdW5jdGlvbigpe2V0PW51bGx9LFMuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LFMuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1TLmZ4JiZTLmZ4LnNwZWVkc1tyXXx8cixlPWV8fCJmeCIsdGhpcy5xdWV1ZShlLGZ1bmN0aW9uKGUsdCl7dmFyIG49Qy5zZXRUaW1lb3V0KGUscik7dC5zdG9wPWZ1bmN0aW9uKCl7Qy5jbGVhclRpbWVvdXQobil9fSl9LHR0PUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxudD1FLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKEUuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLHR0LnR5cGU9ImNoZWNrYm94Iix5LmNoZWNrT249IiIhPT10dC52YWx1ZSx5Lm9wdFNlbGVjdGVkPW50LnNlbGVjdGVkLCh0dD1FLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0Iix0dC50eXBlPSJyYWRpbyIseS5yYWRpb1ZhbHVlPSJ0Ij09PXR0LnZhbHVlO3ZhciBjdCxmdD1TLmV4cHIuYXR0ckhhbmRsZTtTLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiAkKHRoaXMsUy5hdHRyLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLnJlbW92ZUF0dHIodGhpcyxlKX0pfX0pLFMuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/Uy5wcm9wKGUsdCxuKTooMT09PW8mJlMuaXNYTUxEb2MoZSl8fChpPVMuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fChTLmV4cHIubWF0Y2guYm9vbC50ZXN0KHQpP2N0OnZvaWQgMCkpLHZvaWQgMCE9PW4/bnVsbD09PW4/dm9pZCBTLnJlbW92ZUF0dHIoZSx0KTppJiYic2V0ImluIGkmJnZvaWQgMCE9PShyPWkuc2V0KGUsbix0KSk/cjooZS5zZXRBdHRyaWJ1dGUodCxuKyIiKSxuKTppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPVMuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZigheS5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmQShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goUCk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSksY3Q9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P1MucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LFMuZWFjaChTLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihlLHQpe3ZhciBhPWZ0W3RdfHxTLmZpbmQuYXR0cjtmdFt0XT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gbnx8KGk9ZnRbb10sZnRbb109cixyPW51bGwhPWEoZSx0LG4pP286bnVsbCxmdFtvXT1pKSxyfX0pO3ZhciBwdD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGR0PS9eKD86YXxhcmVhKSQvaTtmdW5jdGlvbiBodChlKXtyZXR1cm4oZS5tYXRjaChQKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiBndChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiB2dChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOiJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaChQKXx8W119Uy5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLFMucHJvcCxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbUy5wcm9wRml4W2VdfHxlXX0pfX0pLFMuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiAxPT09byYmUy5pc1hNTERvYyhlKXx8KHQ9Uy5wcm9wRml4W3RdfHx0LGk9Uy5wcm9wSG9va3NbdF0pLHZvaWQgMCE9PW4/aSYmInNldCJpbiBpJiZ2b2lkIDAhPT0ocj1pLnNldChlLG4sdCkpP3I6ZVt0XT1uOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6ZVt0XX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInRhYmluZGV4Iik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6cHQudGVzdChlLm5vZGVOYW1lKXx8ZHQudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSkseS5vcHRTZWxlY3RlZHx8KFMucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7dCYmKHQuc2VsZWN0ZWRJbmRleCx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxTLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe1MucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxTLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHMsdT0wO2lmKG0odCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUsZ3QodGhpcykpKX0pO2lmKChlPXZ0KHQpKS5sZW5ndGgpd2hpbGUobj10aGlzW3UrK10paWYoaT1ndChuKSxyPTE9PT1uLm5vZGVUeXBlJiYiICIraHQoaSkrIiAiKXthPTA7d2hpbGUobz1lW2ErK10pci5pbmRleE9mKCIgIitvKyIgIik8MCYmKHIrPW8rIiAiKTtpIT09KHM9aHQocikpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscyx1PTA7aWYobSh0KSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1ModGhpcykucmVtb3ZlQ2xhc3ModC5jYWxsKHRoaXMsZSxndCh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cigiY2xhc3MiLCIiKTtpZigoZT12dCh0KSkubGVuZ3RoKXdoaWxlKG49dGhpc1t1KytdKWlmKGk9Z3Qobikscj0xPT09bi5ub2RlVHlwZSYmIiAiK2h0KGkpKyIgIil7YT0wO3doaWxlKG89ZVthKytdKXdoaWxlKC0xPHIuaW5kZXhPZigiICIrbysiICIpKXI9ci5yZXBsYWNlKCIgIitvKyIgIiwiICIpO2khPT0ocz1odChyKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyl9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGksdCl7dmFyIG89dHlwZW9mIGksYT0ic3RyaW5nIj09PW98fEFycmF5LmlzQXJyYXkoaSk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdCYmYT90P3RoaXMuYWRkQ2xhc3MoaSk6dGhpcy5yZW1vdmVDbGFzcyhpKTptKGkpP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLnRvZ2dsZUNsYXNzKGkuY2FsbCh0aGlzLGUsZ3QodGhpcyksdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtpZihhKXt0PTAsbj1TKHRoaXMpLHI9dnQoaSk7d2hpbGUoZT1yW3QrK10pbi5oYXNDbGFzcyhlKT9uLnJlbW92ZUNsYXNzKGUpOm4uYWRkQ2xhc3MoZSl9ZWxzZSB2b2lkIDAhPT1pJiYiYm9vbGVhbiIhPT1vfHwoKGU9Z3QodGhpcykpJiZZLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixlKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixlfHwhMT09PWk/IiI6WS5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9IiAiK2UrIiAiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoIiAiK2h0KGd0KG4pKSsiICIpLmluZGV4T2YodCkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHl0PS9cci9nO1MuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24obil7dmFyIHIsZSxpLHQ9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1tKG4pLHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PSh0PWk/bi5jYWxsKHRoaXMsZSxTKHRoaXMpLnZhbCgpKTpuKT90PSIiOiJudW1iZXIiPT10eXBlb2YgdD90Kz0iIjpBcnJheS5pc0FycmF5KHQpJiYodD1TLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSksKHI9Uy52YWxIb29rc1t0aGlzLnR5cGVdfHxTLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYic2V0ImluIHImJnZvaWQgMCE9PXIuc2V0KHRoaXMsdCwidmFsdWUiKXx8KHRoaXMudmFsdWU9dCkpfSkpOnQ/KHI9Uy52YWxIb29rc1t0LnR5cGVdfHxTLnZhbEhvb2tzW3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIHImJnZvaWQgMCE9PShlPXIuZ2V0KHQsInZhbHVlIikpP2U6InN0cmluZyI9PXR5cGVvZihlPXQudmFsdWUpP2UucmVwbGFjZSh5dCwiIik6bnVsbD09ZT8iIjplOnZvaWQgMH19KSxTLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDpodChTLnRleHQoZSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9ZS5vcHRpb25zLG89ZS5zZWxlY3RlZEluZGV4LGE9InNlbGVjdC1vbmUiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhQShuLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZih0PVMobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz1TLm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9LTE8Uy5pbkFycmF5KFMudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLFMuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe1MudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD0tMTxTLmluQXJyYXkoUyhlKS52YWwoKSx0KX19LHkuY2hlY2tPbnx8KFMudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KSx5LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBDO3ZhciBtdD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8seHQ9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07Uy5leHRlbmQoUy5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmLHA9W258fEVdLGQ9di5jYWxsKGUsInR5cGUiKT9lLnR5cGU6ZSxoPXYuY2FsbChlLCJuYW1lc3BhY2UiKT9lLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKG89Zj1hPW49bnx8RSwzIT09bi5ub2RlVHlwZSYmOCE9PW4ubm9kZVR5cGUmJiFtdC50ZXN0KGQrUy5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ZC5pbmRleE9mKCIuIikmJihkPShoPWQuc3BsaXQoIi4iKSkuc2hpZnQoKSxoLnNvcnQoKSksdT1kLmluZGV4T2YoIjoiKTwwJiYib24iK2QsKGU9ZVtTLmV4cGFuZG9dP2U6bmV3IFMuRXZlbnQoZCwib2JqZWN0Ij09dHlwZW9mIGUmJmUpKS5pc1RyaWdnZXI9cj8yOjMsZS5uYW1lc3BhY2U9aC5qb2luKCIuIiksZS5ybmFtZXNwYWNlPWUubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxlLnJlc3VsdD12b2lkIDAsZS50YXJnZXR8fChlLnRhcmdldD1uKSx0PW51bGw9PXQ/W2VdOlMubWFrZUFycmF5KHQsW2VdKSxjPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXgobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLG10LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEUpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fEMpfWk9MDt3aGlsZSgobz1wW2krK10pJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWY9byxlLnR5cGU9MTxpP3M6Yy5iaW5kVHlwZXx8ZCwobD0oWS5nZXQobywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2UudHlwZV0mJlkuZ2V0KG8sImhhbmRsZSIpKSYmbC5hcHBseShvLHQpLChsPXUmJm9bdV0pJiZsLmFwcGx5JiZWKG8pJiYoZS5yZXN1bHQ9bC5hcHBseShvLHQpLCExPT09ZS5yZXN1bHQmJmUucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGUudHlwZT1kLHJ8fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGMuX2RlZmF1bHQmJiExIT09Yy5fZGVmYXVsdC5hcHBseShwLnBvcCgpLHQpfHwhVihuKXx8dSYmbShuW2RdKSYmIXgobikmJigoYT1uW3VdKSYmKG5bdV09bnVsbCksUy5ldmVudC50cmlnZ2VyZWQ9ZCxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihkLHh0KSxuW2RdKCksZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx4dCksUy5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGEmJihuW3VdPWEpKSxlLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TLmV4dGVuZChuZXcgUy5FdmVudCxuLHt0eXBlOmUsaXNTaW11bGF0ZWQ6ITB9KTtTLmV2ZW50LnRyaWdnZXIocixudWxsLHQpfX0pLFMuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIFMuZXZlbnQudHJpZ2dlcihlLHQsbiwhMCl9fSkseS5mb2N1c2lufHxTLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKG4scil7dmFyIGk9ZnVuY3Rpb24oZSl7Uy5ldmVudC5zaW11bGF0ZShyLGUudGFyZ2V0LFMuZXZlbnQuZml4KGUpKX07Uy5ldmVudC5zcGVjaWFsW3JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyx0PVkuYWNjZXNzKGUscik7dHx8ZS5hZGRFdmVudExpc3RlbmVyKG4saSwhMCksWS5hY2Nlc3MoZSxyLCh0fHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1ZLmFjY2VzcyhlLHIpLTE7dD9ZLmFjY2VzcyhlLHIsdCk6KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLGksITApLFkucmVtb3ZlKGUscikpfX19KTt2YXIgYnQ9Qy5sb2NhdGlvbix3dD17Z3VpZDpEYXRlLm5vdygpfSxUdD0vXD8vO1MucGFyc2VYTUw9ZnVuY3Rpb24oZSl7dmFyIHQsbjtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBudWxsO3RyeXt0PShuZXcgQy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gbj10JiZ0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLHQmJiFufHxTLmVycm9yKCJJbnZhbGlkIFhNTDogIisobj9TLm1hcChuLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmUpKSx0fTt2YXIgQ3Q9L1xbXF0kLyxFdD0vXHI/XG4vZyxTdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksa3Q9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIEF0KG4sZSxyLGkpe3ZhciB0O2lmKEFycmF5LmlzQXJyYXkoZSkpUy5lYWNoKGUsZnVuY3Rpb24oZSx0KXtyfHxDdC50ZXN0KG4pP2kobix0KTpBdChuKyJbIisoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10P2U6IiIpKyJdIix0LHIsaSl9KTtlbHNlIGlmKHJ8fCJvYmplY3QiIT09dyhlKSlpKG4sZSk7ZWxzZSBmb3IodCBpbiBlKUF0KG4rIlsiK3QrIl0iLGVbdF0scixpKX1TLnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49bSh0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihudWxsPT1lKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhUy5pc1BsYWluT2JqZWN0KGUpKVMuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpQXQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbigiJiIpfSxTLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIFMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT1TLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gZT9TLm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFTKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYma3QudGVzdCh0aGlzLm5vZGVOYW1lKSYmIVN0LnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFwZS50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPVModGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP1MubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShFdCwiXHJcbiIpfX0pOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2UoRXQsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgTnQ9LyUyMC9nLGp0PS8jLiokLyxEdD0vKFs/Jl0pXz1bXiZdKi8scXQ9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxMdD0vXig/OkdFVHxIRUFEKSQvLEh0PS9eXC9cLy8sT3Q9e30sUHQ9e30sUnQ9IiovIi5jb25jYXQoIioiKSxNdD1FLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBJdChvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT0iKiIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChQKXx8W107aWYobSh0KSl3aGlsZShuPWlbcisrXSkiKyI9PT1uWzBdPyhuPW4uc2xpY2UoMSl8fCIqIiwob1tuXT1vW25dfHxbXSkudW5zaGlmdCh0KSk6KG9bbl09b1tuXXx8W10pLnB1c2godCl9fWZ1bmN0aW9uIFd0KHQsaSxvLGEpe3ZhciBzPXt9LHU9dD09PVB0O2Z1bmN0aW9uIGwoZSl7dmFyIHI7cmV0dXJuIHNbZV09ITAsUy5lYWNoKHRbZV18fFtdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dChpLG8sYSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBufHx1fHxzW25dP3U/IShyPW4pOnZvaWQgMDooaS5kYXRhVHlwZXMudW5zaGlmdChuKSxsKG4pLCExKX0pLHJ9cmV0dXJuIGwoaS5kYXRhVHlwZXNbMF0pfHwhc1siKiJdJiZsKCIqIil9ZnVuY3Rpb24gRnQoZSx0KXt2YXIgbixyLGk9Uy5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChpW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyZXR1cm4gciYmUy5leHRlbmQoITAsZSxyKSxlfU10LmhyZWY9YnQuaHJlZixTLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6YnQuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChidC5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpSdCx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6Uy5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/RnQoRnQoZSxTLmFqYXhTZXR0aW5ncyksdCk6RnQoUy5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6SXQoT3QpLGFqYXhUcmFuc3BvcnQ6SXQoUHQpLGFqYXg6ZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLHQ9dHx8e307dmFyIGMsZixwLG4sZCxyLGgsZyxpLG8sdj1TLmFqYXhTZXR1cCh7fSx0KSx5PXYuY29udGV4dHx8dixtPXYuY29udGV4dCYmKHkubm9kZVR5cGV8fHkuanF1ZXJ5KT9TKHkpOlMuZXZlbnQseD1TLkRlZmVycmVkKCksYj1TLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3PXYuc3RhdHVzQ29kZXx8e30sYT17fSxzPXt9LHU9ImNhbmNlbGVkIixUPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoaCl7aWYoIW4pe249e307d2hpbGUodD1xdC5leGVjKHApKW5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQodFsyXSl9dD1uW2UudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT10P251bGw6dC5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxidC5ocmVmKSsiIikucmVwbGFjZShIdCxidC5wcm90b2NvbCsiLy8iKSx2LnR5cGU9dC5tZXRob2R8fHQudHlwZXx8di5tZXRob2R8fHYudHlwZSx2LmRhdGFUeXBlcz0odi5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKFApfHxbIiJdLG51bGw9PXYuY3Jvc3NEb21haW4pe3I9RS5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e3IuaHJlZj12LnVybCxyLmhyZWY9ci5ocmVmLHYuY3Jvc3NEb21haW49TXQucHJvdG9jb2wrIi8vIitNdC5ob3N0IT1yLnByb3RvY29sKyIvLyIrci5ob3N0fWNhdGNoKGUpe3YuY3Jvc3NEb21haW49ITB9fWlmKHYuZGF0YSYmdi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiB2LmRhdGEmJih2LmRhdGE9Uy5wYXJhbSh2LmRhdGEsdi50cmFkaXRpb25hbCkpLFd0KE90LHYsdCxUKSxoKXJldHVybiBUO2ZvcihpIGluKGc9Uy5ldmVudCYmdi5nbG9iYWwpJiYwPT1TLmFjdGl2ZSsrJiZTLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHYudHlwZT12LnR5cGUudG9VcHBlckNhc2UoKSx2Lmhhc0NvbnRlbnQ9IUx0LnRlc3Qodi50eXBlKSxmPXYudXJsLnJlcGxhY2UoanQsIiIpLHYuaGFzQ29udGVudD92LmRhdGEmJnYucHJvY2Vzc0RhdGEmJjA9PT0odi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYodi5kYXRhPXYuZGF0YS5yZXBsYWNlKE50LCIrIikpOihvPXYudXJsLnNsaWNlKGYubGVuZ3RoKSx2LmRhdGEmJih2LnByb2Nlc3NEYXRhfHwic3RyaW5nIj09dHlwZW9mIHYuZGF0YSkmJihmKz0oVHQudGVzdChmKT8iJiI6Ij8iKSt2LmRhdGEsZGVsZXRlIHYuZGF0YSksITE9PT12LmNhY2hlJiYoZj1mLnJlcGxhY2UoRHQsIiQxIiksbz0oVHQudGVzdChmKT8iJiI6Ij8iKSsiXz0iK3d0Lmd1aWQrKytvKSx2LnVybD1mK28pLHYuaWZNb2RpZmllZCYmKFMubGFzdE1vZGlmaWVkW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixTLmxhc3RNb2RpZmllZFtmXSksUy5ldGFnW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLFMuZXRhZ1tmXSkpLCh2LmRhdGEmJnYuaGFzQ29udGVudCYmITEhPT12LmNvbnRlbnRUeXBlfHx0LmNvbnRlbnRUeXBlKSYmVC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHYuY29udGVudFR5cGUpLFQuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0Iix2LmRhdGFUeXBlc1swXSYmdi5hY2NlcHRzW3YuZGF0YVR5cGVzWzBdXT92LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dKygiKiIhPT12LmRhdGFUeXBlc1swXT8iLCAiK1J0KyI7IHE9MC4wMSI6IiIpOnYuYWNjZXB0c1siKiJdKSx2LmhlYWRlcnMpVC5zZXRSZXF1ZXN0SGVhZGVyKGksdi5oZWFkZXJzW2ldKTtpZih2LmJlZm9yZVNlbmQmJighMT09PXYuYmVmb3JlU2VuZC5jYWxsKHksVCx2KXx8aCkpcmV0dXJuIFQuYWJvcnQoKTtpZih1PSJhYm9ydCIsYi5hZGQodi5jb21wbGV0ZSksVC5kb25lKHYuc3VjY2VzcyksVC5mYWlsKHYuZXJyb3IpLGM9V3QoUHQsdix0LFQpKXtpZihULnJlYWR5U3RhdGU9MSxnJiZtLnRyaWdnZXIoImFqYXhTZW5kIixbVCx2XSksaClyZXR1cm4gVDt2LmFzeW5jJiYwPHYudGltZW91dCYmKGQ9Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5hYm9ydCgidGltZW91dCIpfSx2LnRpbWVvdXQpKTt0cnl7aD0hMSxjLnNlbmQoYSxsKX1jYXRjaChlKXtpZihoKXRocm93IGU7bCgtMSxlKX19ZWxzZSBsKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJkMuY2xlYXJUaW1lb3V0KGQpLGM9dm9pZCAwLHA9cnx8IiIsVC5yZWFkeVN0YXRlPTA8ZT80OjAsaT0yMDA8PWUmJmU8MzAwfHwzMDQ9PT1lLG4mJihzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZSgiKiI9PT11WzBdKXUuc2hpZnQoKSx2b2lkIDA9PT1yJiYocj1lLm1pbWVUeXBlfHx0LmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYocilmb3IoaSBpbiBzKWlmKHNbaV0mJnNbaV0udGVzdChyKSl7dS51bnNoaWZ0KGkpO2JyZWFrfWlmKHVbMF1pbiBuKW89dVswXTtlbHNle2ZvcihpIGluIG4pe2lmKCF1WzBdfHxlLmNvbnZlcnRlcnNbaSsiICIrdVswXV0pe289aTticmVha31hfHwoYT1pKX1vPW98fGF9aWYobylyZXR1cm4gbyE9PXVbMF0mJnUudW5zaGlmdChvKSxuW29dfSh2LFQsbikpLCFpJiYtMTxTLmluQXJyYXkoInNjcmlwdCIsdi5kYXRhVHlwZXMpJiZTLmluQXJyYXkoImpzb24iLHYuZGF0YVR5cGVzKTwwJiYodi5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSkscz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKCIqIj09PW8pbz11O2Vsc2UgaWYoIioiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrIiAiK29dfHxsWyIqICIrb10pKWZvcihpIGluIGwpaWYoKHM9aS5zcGxpdCgiICIpKVsxXT09PW8mJihhPWxbdSsiICIrc1swXV18fGxbIiogIitzWzBdXSkpeyEwPT09YT9hPWxbaV06ITAhPT1sW2ldJiYobz1zWzBdLGMudW5zaGlmdChzWzFdKSk7YnJlYWt9aWYoITAhPT1hKWlmKGEmJmVbInRocm93cyJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6YT9lOiJObyBjb252ZXJzaW9uIGZyb20gIit1KyIgdG8gIitvfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOnR9fSh2LHMsVCxpKSxpPyh2LmlmTW9kaWZpZWQmJigodT1ULmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoUy5sYXN0TW9kaWZpZWRbZl09dSksKHU9VC5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKFMuZXRhZ1tmXT11KSksMjA0PT09ZXx8IkhFQUQiPT09di50eXBlP2w9Im5vY29udGVudCI6MzA0PT09ZT9sPSJub3Rtb2RpZmllZCI6KGw9cy5zdGF0ZSxvPXMuZGF0YSxpPSEoYT1zLmVycm9yKSkpOihhPWwsIWUmJmx8fChsPSJlcnJvciIsZTwwJiYoZT0wKSkpLFQuc3RhdHVzPWUsVC5zdGF0dXNUZXh0PSh0fHxsKSsiIixpP3gucmVzb2x2ZVdpdGgoeSxbbyxsLFRdKTp4LnJlamVjdFdpdGgoeSxbVCxsLGFdKSxULnN0YXR1c0NvZGUodyksdz12b2lkIDAsZyYmbS50cmlnZ2VyKGk/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbVCx2LGk/bzphXSksYi5maXJlV2l0aCh5LFtULGxdKSxnJiYobS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtULHZdKSwtLVMuYWN0aXZlfHxTLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gVH0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFMuZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiBTLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSxTLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oZSxpKXtTW2ldPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBtKHQpJiYocj1yfHxuLG49dCx0PXZvaWQgMCksUy5hamF4KFMuZXh0ZW5kKHt1cmw6ZSx0eXBlOmksZGF0YVR5cGU6cixkYXRhOnQsc3VjY2VzczpufSxTLmlzUGxhaW5PYmplY3QoZSkmJmUpKX19KSxTLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpJiYoZS5jb250ZW50VHlwZT1lLmhlYWRlcnNbdF18fCIiKX0pLFMuX2V2YWxVcmw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBTLmFqYXgoe3VybDplLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oKXt9fSxkYXRhRmlsdGVyOmZ1bmN0aW9uKGUpe1MuZ2xvYmFsRXZhbChlLHQsbil9fSl9LFMuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzWzBdJiYobShlKSYmKGU9ZS5jYWxsKHRoaXNbMF0pKSx0PVMoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJnQuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLHQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aGlsZShlLmZpcnN0RWxlbWVudENoaWxkKWU9ZS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gZX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKG4pe3JldHVybiBtKG4pP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TKHRoaXMpLHQ9ZS5jb250ZW50cygpO3QubGVuZ3RoP3Qud3JhcEFsbChuKTplLmFwcGVuZChuKX0pfSx3cmFwOmZ1bmN0aW9uKHQpe3ZhciBuPW0odCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBBbGwobj90LmNhbGwodGhpcyxlKTp0KX0pfSx1bndyYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucGFyZW50KGUpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtTKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLFMuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hUy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sUy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LFMuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEMuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIEJ0PXswOjIwMCwxMjIzOjIwNH0sJHQ9Uy5hamF4U2V0dGluZ3MueGhyKCk7eS5jb3JzPSEhJHQmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gJHQseS5hamF4PSR0PSEhJHQsUy5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBvLGE7aWYoeS5jb3JzfHwkdCYmIWkuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWkueGhyKCk7aWYoci5vcGVuKGkudHlwZSxpLnVybCxpLmFzeW5jLGkudXNlcm5hbWUsaS5wYXNzd29yZCksaS54aHJGaWVsZHMpZm9yKG4gaW4gaS54aHJGaWVsZHMpcltuXT1pLnhockZpZWxkc1tuXTtmb3IobiBpbiBpLm1pbWVUeXBlJiZyLm92ZXJyaWRlTWltZVR5cGUmJnIub3ZlcnJpZGVNaW1lVHlwZShpLm1pbWVUeXBlKSxpLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSlyLnNldFJlcXVlc3RIZWFkZXIobixlW25dKTtvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe28mJihvPWE9ci5vbmxvYWQ9ci5vbmVycm9yPXIub25hYm9ydD1yLm9udGltZW91dD1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1lP3IuYWJvcnQoKToiZXJyb3IiPT09ZT8ibnVtYmVyIiE9dHlwZW9mIHIuc3RhdHVzP3QoMCwiZXJyb3IiKTp0KHIuc3RhdHVzLHIuc3RhdHVzVGV4dCk6dChCdFtyLnN0YXR1c118fHIuc3RhdHVzLHIuc3RhdHVzVGV4dCwidGV4dCIhPT0oci5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2Ygci5yZXNwb25zZVRleHQ/e2JpbmFyeTpyLnJlc3BvbnNlfTp7dGV4dDpyLnJlc3BvbnNlVGV4dH0sci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0sci5vbmxvYWQ9bygpLGE9ci5vbmVycm9yPXIub250aW1lb3V0PW8oImVycm9yIiksdm9pZCAwIT09ci5vbmFib3J0P3Iub25hYm9ydD1hOnIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXIucmVhZHlTdGF0ZSYmQy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7byYmYSgpfSl9LG89bygiYWJvcnQiKTt0cnl7ci5zZW5kKGkuaGFzQ29udGVudCYmaS5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihvKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe28mJm8oKX19fSksUy5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxTLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4gUy5nbG9iYWxFdmFsKGUpLGV9fX0pLFMuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSxTLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24obil7dmFyIHIsaTtpZihuLmNyb3NzRG9tYWlufHxuLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsdCl7cj1TKCI8c2NyaXB0PiIpLmF0dHIobi5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6bi5zY3JpcHRDaGFyc2V0LHNyYzpuLnVybH0pLm9uKCJsb2FkIGVycm9yIixpPWZ1bmN0aW9uKGUpe3IucmVtb3ZlKCksaT1udWxsLGUmJnQoImVycm9yIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxFLmhlYWQuYXBwZW5kQ2hpbGQoclswXSl9LGFib3J0OmZ1bmN0aW9uKCl7aSYmaSgpfX19KTt2YXIgX3QsenQ9W10sVXQ9Lyg9KVw/KD89JnwkKXxcP1w/LztTLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9enQucG9wKCl8fFMuZXhwYW5kbysiXyIrd3QuZ3VpZCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksUy5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9ITEhPT1lLmpzb25wJiYoVXQudGVzdChlLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT0oZS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZVdC50ZXN0KGUuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PWUuZGF0YVR5cGVzWzBdKXJldHVybiByPWUuanNvbnBDYWxsYmFjaz1tKGUuanNvbnBDYWxsYmFjayk/ZS5qc29ucENhbGxiYWNrKCk6ZS5qc29ucENhbGxiYWNrLGE/ZVthXT1lW2FdLnJlcGxhY2UoVXQsIiQxIityKTohMSE9PWUuanNvbnAmJihlLnVybCs9KFR0LnRlc3QoZS51cmwpPyImIjoiPyIpK2UuanNvbnArIj0iK3IpLGUuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBvfHxTLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLG9bMF19LGUuZGF0YVR5cGVzWzBdPSJqc29uIixpPUNbcl0sQ1tyXT1mdW5jdGlvbigpe289YXJndW1lbnRzfSxuLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWk/UyhDKS5yZW1vdmVQcm9wKHIpOkNbcl09aSxlW3JdJiYoZS5qc29ucENhbGxiYWNrPXQuanNvbnBDYWxsYmFjayx6dC5wdXNoKHIpKSxvJiZtKGkpJiZpKG9bMF0pLG89aT12b2lkIDB9KSwic2NyaXB0In0pLHkuY3JlYXRlSFRNTERvY3VtZW50PSgoX3Q9RS5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1fdC5jaGlsZE5vZGVzLmxlbmd0aCksUy5wYXJzZUhUTUw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9bXTooImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PSExKSx0fHwoeS5jcmVhdGVIVE1MRG9jdW1lbnQ/KChyPSh0PUUuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPUUubG9jYXRpb24uaHJlZix0LmhlYWQuYXBwZW5kQ2hpbGQocikpOnQ9RSksbz0hbiYmW10sKGk9Ti5leGVjKGUpKT9bdC5jcmVhdGVFbGVtZW50KGlbMV0pXTooaT14ZShbZV0sdCxvKSxvJiZvLmxlbmd0aCYmUyhvKS5yZW1vdmUoKSxTLm1lcmdlKFtdLGkuY2hpbGROb2RlcykpKTt2YXIgcixpLG99LFMuZm4ubG9hZD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9dGhpcyxzPWUuaW5kZXhPZigiICIpO3JldHVybi0xPHMmJihyPWh0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSxtKHQpPyhuPXQsdD12b2lkIDApOnQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGk9IlBPU1QiKSwwPGEubGVuZ3RoJiZTLmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/UygiPGRpdj4iKS5hcHBlbmQoUy5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSxTLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gUy5ncmVwKFMudGltZXJzLGZ1bmN0aW9uKGUpe3JldHVybiB0PT09ZS5lbGVtfSkubGVuZ3RofSxTLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD1TLmNzcyhlLCJwb3NpdGlvbiIpLGM9UyhlKSxmPXt9OyJzdGF0aWMiPT09bCYmKGUuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIikscz1jLm9mZnNldCgpLG89Uy5jc3MoZSwidG9wIiksdT1TLmNzcyhlLCJsZWZ0IiksKCJhYnNvbHV0ZSI9PT1sfHwiZml4ZWQiPT09bCkmJi0xPChvK3UpLmluZGV4T2YoImF1dG8iKT8oYT0ocj1jLnBvc2l0aW9uKCkpLnRvcCxpPXIubGVmdCk6KGE9cGFyc2VGbG9hdChvKXx8MCxpPXBhcnNlRmxvYXQodSl8fDApLG0odCkmJih0PXQuY2FsbChlLG4sUy5leHRlbmQoe30scykpKSxudWxsIT10LnRvcCYmKGYudG9wPXQudG9wLXMudG9wK2EpLG51bGwhPXQubGVmdCYmKGYubGVmdD10LmxlZnQtcy5sZWZ0K2kpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLGYpOmMuY3NzKGYpfX0sUy5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbih0KXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10P3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLHQsZSl9KTt2YXIgZSxuLHI9dGhpc1swXTtyZXR1cm4gcj9yLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhlPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDplLnRvcCtuLnBhZ2VZT2Zmc2V0LGxlZnQ6ZS5sZWZ0K24ucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGUsdCxuLHI9dGhpc1swXSxpPXt0b3A6MCxsZWZ0OjB9O2lmKCJmaXhlZCI9PT1TLmNzcyhyLCJwb3NpdGlvbiIpKXQ9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle3Q9dGhpcy5vZmZzZXQoKSxuPXIub3duZXJEb2N1bWVudCxlPXIub2Zmc2V0UGFyZW50fHxuLmRvY3VtZW50RWxlbWVudDt3aGlsZShlJiYoZT09PW4uYm9keXx8ZT09PW4uZG9jdW1lbnRFbGVtZW50KSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5wYXJlbnROb2RlO2UmJmUhPT1yJiYxPT09ZS5ub2RlVHlwZSYmKChpPVMoZSkub2Zmc2V0KCkpLnRvcCs9Uy5jc3MoZSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxpLmxlZnQrPVMuY3NzKGUsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOnQudG9wLWkudG9wLVMuY3NzKHIsIm1hcmdpblRvcCIsITApLGxlZnQ6dC5sZWZ0LWkubGVmdC1TLmNzcyhyLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXRQYXJlbnQ7d2hpbGUoZSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGV8fHJlfSl9fSksUy5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKHQsaSl7dmFyIG89InBhZ2VZT2Zmc2V0Ij09PWk7Uy5mblt0XT1mdW5jdGlvbihlKXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZih4KGUpP3I9ZTo5PT09ZS5ub2RlVHlwZSYmKHI9ZS5kZWZhdWx0Vmlldyksdm9pZCAwPT09bilyZXR1cm4gcj9yW2ldOmVbdF07cj9yLnNjcm9sbFRvKG8/ci5wYWdlWE9mZnNldDpuLG8/bjpyLnBhZ2VZT2Zmc2V0KTplW3RdPW59LHQsZSxhcmd1bWVudHMubGVuZ3RoKX19KSxTLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oZSxuKXtTLmNzc0hvb2tzW25dPUZlKHkucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuIHQ9V2UoZSxuKSxQZS50ZXN0KHQpP1MoZSkucG9zaXRpb24oKVtuXSsicHgiOnR9KX0pLFMuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEscyl7Uy5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OnMsIiI6Im91dGVyIithfSxmdW5jdGlvbihyLG8pe1MuZm5bb109ZnVuY3Rpb24oZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoJiYocnx8ImJvb2xlYW4iIT10eXBlb2YgZSksaT1yfHwoITA9PT1lfHwhMD09PXQ/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiB4KGUpPzA9PT1vLmluZGV4T2YoIm91dGVyIik/ZVsiaW5uZXIiK2FdOmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1lLm5vZGVUeXBlPyhyPWUuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGUuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGUuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT1uP1MuY3NzKGUsdCxpKTpTLnN0eWxlKGUsdCxuLGkpfSxzLG4/ZTp2b2lkIDAsbil9fSl9KSxTLmVhY2goWyJhamF4U3RhcnQiLCJhamF4U3RvcCIsImFqYXhDb21wbGV0ZSIsImFqYXhFcnJvciIsImFqYXhTdWNjZXNzIiwiYWpheFNlbmQiXSxmdW5jdGlvbihlLHQpe1MuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSxTLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMub24oZSxudWxsLHQsbil9LHVuYmluZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9mZihlLG51bGwsdCl9LGRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKHQsZSxuLHIpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoZSwiKioiKTp0aGlzLm9mZih0LGV8fCIqKiIsbil9LGhvdmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMubW91c2VlbnRlcihlKS5tb3VzZWxlYXZlKHR8fGUpfX0pLFMuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLG4pe1MuZm5bbl09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24obixudWxsLGUsdCk6dGhpcy50cmlnZ2VyKG4pfX0pO3ZhciBYdD0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2c7Uy5wcm94eT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaTtpZigic3RyaW5nIj09dHlwZW9mIHQmJihuPWVbdF0sdD1lLGU9biksbShlKSlyZXR1cm4gcj1zLmNhbGwoYXJndW1lbnRzLDIpLChpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodHx8dGhpcyxyLmNvbmNhdChzLmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHxTLmd1aWQrKyxpfSxTLmhvbGRSZWFkeT1mdW5jdGlvbihlKXtlP1MucmVhZHlXYWl0Kys6Uy5yZWFkeSghMCl9LFMuaXNBcnJheT1BcnJheS5pc0FycmF5LFMucGFyc2VKU09OPUpTT04ucGFyc2UsUy5ub2RlTmFtZT1BLFMuaXNGdW5jdGlvbj1tLFMuaXNXaW5kb3c9eCxTLmNhbWVsQ2FzZT1YLFMudHlwZT13LFMubm93PURhdGUubm93LFMuaXNOdW1lcmljPWZ1bmN0aW9uKGUpe3ZhciB0PVMudHlwZShlKTtyZXR1cm4oIm51bWJlciI9PT10fHwic3RyaW5nIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sUy50cmltPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOihlKyIiKS5yZXBsYWNlKFh0LCIiKX0sImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIFN9KTt2YXIgVnQ9Qy5qUXVlcnksR3Q9Qy4kO3JldHVybiBTLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuJD09PVMmJihDLiQ9R3QpLGUmJkMualF1ZXJ5PT09UyYmKEMualF1ZXJ5PVZ0KSxTfSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihDLmpRdWVyeT1DLiQ9UyksU30pOw=="}},"time_used":24,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.tailwindcss.com/","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"104.26.2.143","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.555Z","timestamp":1785153914555,"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":"tailwindcss.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 17 Jul 2026 20:38:38 GMT","end":"Thu, 15 Oct 2026 21:38:35 GMT"},"fingerprint":{"sha1":"AF:4F:AD:59:FA:ED:77:04:0D:32:56:48:B0:E5:1B:38:67:6D:7D:02","sha256":"E7:FC:CF:2D:6A:CC:F5:3C:4C:1E:9D:CD:21:8A:72:A3:DB:7C:B1:50:0F:83:D1:DC:E4:AD:25:90:8F:98:37:0F"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: cdn.tailwindcss.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://onchainopt.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/2 302 \r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\ncache-control: max-age=14400\r\nlocation: /3.4.17\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-cache: MISS\r\nx-vercel-id: fra1::iad1::pm52d-1785153356710-4628e7359eee\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nage: 557\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=b%2FbVTkFK7Uxt62UsS8HGA4XfusLYhv8H8CBjTW2QovKUNLcHlnvvR45wgujUQ%2Feevwl4LFeeQruN7uzAGvTWD8uvGN4E%2BDmtwdHm0%2BR%2BfywP80L%2FTRw9jiU8A4XARVcwmqnb6PY%3D\"}]}\r\ncf-ray: a21b82de1db60b49-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"302","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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"]},{"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"]}],"data":{"size":0,"size_decoded":0,"mime_type":"text/javascript","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-30T08:24:56.947858Z","times_seen":17613206,"resource_available":true,"data":null}},"time_used":28,"timings":{"blocked":-1,"dns":7,"connect":1,"send":0,"wait":7,"receive":0,"ssl":13},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/global/css/iziToast.min.css","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.563Z","timestamp":1785153914563,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/global/css/iziToast.min.css HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: text/css\r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 9933\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":41500,"size_decoded":10242,"mime_type":"text/css","magic":"ASCII text, with very long lines (41419)","md5":"ca2f839e9a41207ce4d486b75b0dc926","sha1":"398acaa4eca2baa749a90175fe24d3c2a35f19ca","sha256":"20b2776eaee552defc7c9b25bfef14a891f0dd4a12ac7320d689d749e1ca0fa7","sha512":"d9feb978fe3c1c26cbb2efb380a70eeb7501f5631343a998abfc84766f9a6d2f1e521cee40bcff6b381515a7a1d8fb4726af583502ee23549934757766257f5c","ssdeep":"384:pV5zpPVWahj8Ik/4kYip7pHRiJhkgL6LlG1oLzlRCPoA50UhLoMPFPsR4lweGbzi:zPVNhlHgppGf1oWQA1","tlshash":"711345fd15f0124454c6ab4296da6a980e3fcd9770ea1cef32cd344b8b46b9e136532b","first_seen":"2023-04-10T01:39:17Z","last_seen":"2026-07-30T04:47:09.847267Z","times_seen":2356,"resource_available":false,"data":"LyoKKiBpemlUb2FzdCB8IHYxLjQuMAoqIGh0dHA6Ly9peml0b2FzdC5tYXJjZWxvZG9sY2UuY29tCiogYnkgTWFyY2VsbyBEb2xjZS4KKi8KLml6aVRvYXN0LWNhcHN1bGV7Zm9udC1zaXplOjA7aGVpZ2h0OjA7d2lkdGg6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKC4yNSwuOCwuMjUsMSksaGVpZ2h0IC41cyBjdWJpYy1iZXppZXIoLjI1LC44LC4yNSwxKX0uaXppVG9hc3QtY2Fwc3VsZSwuaXppVG9hc3QtY2Fwc3VsZSAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0uaXppVG9hc3Qtb3ZlcmxheXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmZpeGVkO3RvcDotMTAwcHg7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOi0xMDBweDt6LWluZGV4Ojk5N30uaXppVG9hc3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y2xlYXI6Ym90aDtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LWZhbWlseTonTGF0bycsVGFob21hLEFyaWFsO2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmc6OHB4IDQ1cHggOXB4IDA7YmFja2dyb3VuZDpyZ2JhKDIzOCwyMzgsMjM4LC45KTtib3JkZXItY29sb3I6cmdiYSgyMzgsMjM4LDIzOCwuOSk7d2lkdGg6MTAwJTtwb2ludGVyLWV2ZW50czphbGw7Y3Vyc29yOmRlZmF1bHQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO21pbi1oZWlnaHQ6NTRweH0uaXppVG9hc3Q+Lml6aVRvYXN0LXByb2dyZXNzYmFye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDt3aWR0aDoxMDAlO3otaW5kZXg6MTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjIpfS5pemlUb2FzdD4uaXppVG9hc3QtcHJvZ3Jlc3NiYXI+ZGl2e2hlaWdodDoycHg7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMpO2JvcmRlci1yYWRpdXM6MCAwIDNweCAzcHh9Lml6aVRvYXN0Lml6aVRvYXN0LWJhbGxvb246YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6OHB4O2xlZnQ6YXV0bzt3aWR0aDowO2hlaWdodDowO3RvcDoxMDAlO2JvcmRlci1yaWdodDowIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjE1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDoxMHB4IHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjppbmhlcml0O2JvcmRlci1yYWRpdXM6MH0uaXppVG9hc3QuaXppVG9hc3QtYmFsbG9vbiAuaXppVG9hc3QtcHJvZ3Jlc3NiYXJ7dG9wOjA7Ym90dG9tOmF1dG99Lml6aVRvYXN0Lml6aVRvYXN0LWJhbGxvb24+ZGl2e2JvcmRlci1yYWRpdXM6MCAwIDAgM3B4fS5pemlUb2FzdD4uaXppVG9hc3QtY292ZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2JvdHRvbTowO2hlaWdodDoxMDAlO21hcmdpbjowO2JhY2tncm91bmQtc2l6ZToxMDAlO2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0uaXppVG9hc3Q+Lml6aVRvYXN0LWNsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjA7Ym9yZGVyOjA7cGFkZGluZzowO29wYWNpdHk6LjY7d2lkdGg6NDJweDtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQWdDQVlBQUFCemVucjBBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUpQQUFBQ1R3QmNHZlcwUUFBQUJsMFJWaDBVMjltZEhkaGNtVUFkM2QzTG1sdWEzTmpZWEJsTG05eVo1dnVQQm9BQUFEM1NVUkJWRmlGMVpkdERvTWdERUJmZGk0UHdBWDh2TEZuMHFUN3d4YW50b2pLdXBtUW1DaThSNHRTQUNwZ2pDMklDQ1ViRUJhOGluZ2pzVTFBWFJCZVI4YUxONjRGaWtuc3dOOENZZWZCQkRRM3dodUZFU3k3V3lRTWVDMGlwRUkwQSswRmVCdkhVRk44eFBhVWhBSC9pS29Xc25YSEdlZ3k0SjB5eGlhbE9mYUhKQXo0YmhSelF6Z0R2ZEduejRHYkFvblpiQ1FNdUJtMUsva2NGdThNcDFOMmNGRnBzeHNNdUpxcWJJR0V4R2w0bG9BUmFqVTF0d3NrSkxMaElzSUQ3K3R2VW9EbklqVGc1VDlEUEg5RUJyejhyeGpQemNpQWw5K084U3hJOEN6SjhDeEtGZmgzeW5LOER5Yjh3TkhNL1hEcWVqeC9BdE55UE84N3ROeWJBQUFBQUVsRlRrU3VRbUNDKSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6OHB4O2N1cnNvcjpwb2ludGVyO291dGxpbmU6MH0uaXppVG9hc3Q+Lml6aVRvYXN0LWNsb3NlOmhvdmVye29wYWNpdHk6MX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHl7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDAgMCAxMHB4O2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MzZweDttYXJnaW46MCAwIDAgMTVweDt0ZXh0LWFsaWduOmxlZnR9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTp0YWJsZTtjbGVhcjpib3RofS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtdGV4dHN7bWFyZ2luOjEwcHggMCAwO3BhZGRpbmctcmlnaHQ6MnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnR9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1pbnB1dHN7bWluLWhlaWdodDoxOXB4O2Zsb2F0OmxlZnQ7bWFyZ2luOjNweCAtMnB4fS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzPmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pLC5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzPnNlbGVjdHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MnB4O2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjowO3BhZGRpbmc6NHB4IDdweDtmb250LXNpemU6MTNweDtsZXR0ZXItc3BhY2luZzouMDJlbTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEpO2NvbG9yOiMwMDA7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgwLDAsMCwuMik7bWluLWhlaWdodDoyNnB4fS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzPmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOmZvY3VzLC5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzPnNlbGVjdDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC42KX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnN7bWluLWhlaWdodDoxN3B4O2Zsb2F0OmxlZnQ7bWFyZ2luOjRweCAtMnB4fS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtYnV0dG9ucz5hLC5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtYnV0dG9ucz5idXR0b24sLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjoycHg7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjA7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMDJlbTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEpO2NvbG9yOiMwMDB9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmE6aG92ZXIsLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmJ1dHRvbjpob3ZlciwuaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnM+aW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSk6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yKX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnM+YTpmb2N1cywuaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnM+YnV0dG9uOmZvY3VzLC5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtYnV0dG9ucz5pbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDAsMCwwLC42KX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnM+YTphY3RpdmUsLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmJ1dHRvbjphY3RpdmUsLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1idXR0b25zPmlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOmFjdGl2ZXt0b3A6MXB4fS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjUwJTtkaXNwbGF5OnRhYmxlO2ZvbnQtc2l6ZToyM3B4O2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luLXRvcDotMTJweDtjb2xvcjojMDAwO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHh9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1pY29uLmljby1pbmZve2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFCQUNBTUFBQUNkdDRIc0FBQUFmbEJNVkVVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQ3RvUHNBQUFBS1hSU1RsTUE2UHNJdkRvYitPYXBhdlZoV1JZUHJJcnkyTXhHUTk3Y3pzT3pwSmFNY0UwcUpRT3dWdEtqZnhDVkZlSUFBQUkzU1VSQlZGakRsSlBac29Jd0VFVG5DaUd5YjhxK3FtamwvMy93Rm1HS3dqQlJPUzlRV2J0bk9xRERHUHE0TWRNa1NjMG03Z2NERGhGNE5SZHY4Tm9MNEVjTXB6b0pnbFBsL0tURHo0V1czSWR2WEV2eGtmSUtuN0JNWmIxYkZLNHlaRnFnaFowM2prMG5HOE41TkJ3eng5eFU1Y3hBZzhmWGkyMC9oRGRDMzE2bGNBOG83dDE2ZVJ1UXZXMVhHZDJkMlA4UVNIUUREYmRJSUkvOUNSM2xVRitsYnVjZkp5NFdmTVM2NEVKUE9SbnJaeHRmYzJwakpkbmJ1YWdzM2wwNFRUdEpNWHJkVHBoNFB5ZzRYQWp1Z0FKcU1EZjVSZitvWHgyL3FpNHU2bmlwYWtJaTdDc2dpdU1TRUY5SUdLZzhoZVFKS2t4SWZGU1VVL2VnV1N3TnJTMWZQRHRMZm9uOHNaT2NZVVFtbDFRdjlhM2tmd3NFVXlKRU1nRkJLemRWOG8zSXc5eUFqZzFqZExRQ1Y0cWJkM25vOHlEMkd1Z2FDM29NYkYwTllIQ3BKWVNEaE5JNU4yREFXQjRGNHo5QWovMDRDbmEveDdlVkFRMTd2UmpRWlBoK0cva2RkWXYwaDQ5eVk0TldORFdNTU9NVUlSWXZsVEVDbXJOOHBVQWpvNVJDTW44S29QbWJKLytBcHBnbmsvL1N5OTBHWUJDR2dtN0lBc2tRN0Q5aEZLVzRBcEIxZWkzRlNZRDlQakdBS3lnQVYrQVJGWUJINUJzVmdHOWtrQlNBUVdLVUZZQlJacGtVZ0dWaW5SV0FkVVpRREFCQlFkSWNBRWxEVkJVQVVVWFdIUUJaeDFnTUFHTXByTTBBc0xiVlhIc0E1dHJaZTkzL3dwM3N2UTBZTmIvaldWM0FJT0xzTXRsem5TTk9IN0pxak9wRFZoN3o4cUNaUjEwZnR2TzRueGVPdlBMa3BTdXZmWG54ekt0dlhyN2ordjhDNWlpMGU3MUF0N2NBQUFBQVNVVk9SSzVDWUlJPSkgbm8tcmVwZWF0IDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjg1JX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWljb24uaWNvLXdhcm5pbmd7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFUUFBQUJFQ0FNQUFBQVB6V09BQUFBQWtGQk1WRVVBQUFBQUFBQUJBQUlBQUFBQkFBSUFBQU1BQUFBQkFBSUJBQUlCQUFJQUFBSUFBQUFCQUFJQUFBQUJBQUlDQUFJQ0FBSUFBQUlBQUFBQUFBQUFBQUFCQUFJQkFBSUFBQU1BQUFBQkFBSUJBQU1CQUFFQ0FBSUFBQUlBQUFJQUFBQUJBQUlCQUFJQkFBTUJBQUlCQUFFQUFBSUFBQU1BQUFBQUFBQUJBQUVDQUFJQ0FBSUFBQUlBQUFNQUFBUUFBQUUwNXlOQUFBQUFMM1JTVGxNQUIra0Q3VjhRK1BYaWN3djdJOWlZaGtBekp4bngwMUlWNWNtbmsyeG1IZnpleHNLNGVFdzVMN0dlaTM5YVJ3NjQwYXdBQUFIUVNVUkJWRmpEN1pmSmRvSkFFRVdKZ0NpSTRvRGlQTThtNy8vL0xpZEVyUk83c0hyWTV1N1lYTHI3dktxdTlrVEMwSFBtbzluOGNKYkVRT3pxcUFkQVVIZVVaQUNRdVRrR0RRQm9ESndrSFpSMFhCejlGa3BhZlh1SFAwU0owOW1HZUpMWjV3d2xUbWNiQTBUSFBtZEVLN1hQR1RHMXp4bUlubjNPaUoxOXprQjBqU1ZUS0V4TUhUMHdqQXdsV3pDMGZTUEhGMWdXUnBJaFdNWW03ZllURmNRR2xiZW1mNGRGZmRUR2cwQi9LWE04cUJVLzN3bnRicTdyU0dxdko5a2xhNklwdWVGSmV0OGZ4ZmVtNXloeWtqeU9nTmFXRjFxU0dkNUpNTk54cE5GN1NaUWFWaDVKekxyVENaSUVKMUd5RXlWeWQrcENsTWpkYVNKSzVPNDBnaVNSdTVQZkZpVnlkMXBBa3NqZEtSbnJTc2JWZGJpSHJnVDd5c3MzMTVma1ZRUExGUXJMKzRGSGVPWEtPNVlSRkVLdjVBaUZhTWxLTGxCcEp1VkNKbEM1c0pmdkNnenRydS8zTm1CWWNjUGdHVHhSQXp4bjFYR0VNVWY1OHBYWnZqb09zT0NnakwwOCtiNTNtdGZBTS9TVnNaY2pLTHR5c1FaUHFJeTlIUFAzbS8zektJdFJ3VDBMeVFvOHNUcjI2dGNPODNESVVNV0lKamllckhMc0pkYS90Yk5CRlkwQlAvYkt0Y004SE5JV0NLM2FZUjRPTXpneG81dzVFRkxPTEtERXhYQW05Z0k0RTNpQU85NC9DdC9sS1d1TTJMTUdiZ0FBQUFCSlJVNUVya0pnZ2c9PSkgbm8tcmVwZWF0IDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjg1JX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWljb24uaWNvLWVycm9ye2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFCQUNBTUFBQUNkdDRIc0FBQUFlRkJNVkVVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZ5RWlJQUFBQUozUlNUbE1BM0JzQjk4UVY4dVN5V1ZVRno3K2tjV01NMkx1WmlvQnBUVVZCTmNxMnFhaWJqNGQxYXpMWlpZQUJBQUFDWkVsRVFWUll3N1dYMjVLQ01BeUdBeFVvRkRrcGlvaG5WOTcvRFhlR0J0b09VcHJaMmR5bzFLODJmeEtid0pKVnArS1FaN3NvMm1YNW9UaFZRTEt3akRlOVladTRERjNwdEFuNnJ4WTBxUVBPRXE5Zk5DOWhhM3k3N2EyMmJhMjR2KzlYYmU4djh4MDNkUE9DMi9OZHZCNnhlU3JlTGZHSnBueDBUeW90S3FMbTJzN0pkL1dPNml2WE5wMHRDeTAyUi9hRno1VlE1d1VQbFVMNWZJZmo1S0lsVkdVMG5XSG0vNVF0b1RWTVdZOG16SVZ1MUs5TzdYSDJKaVUveG5PT1QzOWduVWZqK2xGSGRkeDR0RmpMMy9IOGpqemFGQ3kyUmYwYy9mZFF5UXN6SThCRFI5NzNJeU1TS2E0a3JqeEFpVy9sa1J2TVArYktLOVdiWVMxQVNRZzhkS2phVUdsWVB3UmUvV29Ja3o4dGlRY2hINVFBRU12NlQwazhNRDRtVXlXcjRFN2pBV3FaK3hXY01JWWtYdmx3Z2dKM0l2Rksrd0lPY3BYQW84bjhQMENPQWFYeUtINE9zakJ1WkI0ZXcwSUd1K0gxU2ViaE5henNRQmJXbTh5aitoRnVVSkI1ZU1zTjBJVVhtWWVuZEFGRmZKQjV1RWtSTVl3eG1jZDZ6REdSdG1RZVBFeWtBZ3VieW1NUkZtTXhDU0lQQ1JiVHVGTk41T0dPUlRqbU5HYzBQbzBtOFV2MGdjQ3J5NnhVaFIyUWVMaWk5dG9mYkVmaHovcXZOdGkrT2ZQcU5tMk1xNjEwNUZVTXZkVDRHUG11Zk1pVjhQcUJNa2MrRGRUMWJqWVlianpVL2V3MjNWUDRuM21MQXo0bjhKdHYvVWkzY2VUVDJteno1bzFtWnQwZ25CcG1zZGpxUnFWbG1wbGNQZHFhN1gyM2tMOWJyZG0ydC91QllEUG4yK3R5dTQ4bXRJR0QxMEpUdVVydWtWcmJDRml3RHpjSHJQanhLdDdQVytBWlF5VC9XRVNPKzFXTDdmM28rV0xITDJkWU1TWnNnNmRnL3ozNjBvZnZQNC8vdjFOUHpnczI4V2xXQUFBQUFFbEZUa1N1UW1DQykgbm8tcmVwZWF0IDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjgwJX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWljb24uaWNvLXN1Y2Nlc3N7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQkFNQUFBQllSMnp0QUFBQUlWQk1WRVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQnQwVWpCQUFBQUNuUlNUbE1BcEFQaElGbjgyd2dHdjhtVnR3QUFBS1ZKUkVGVVNNZnQwTEVKQWtFQVJORkZGRXcxTkZKYjhDS2pBeTFBRU96QXhOdytiRUVFZzZueUZqYlk0TE96Y0J3WDdTL2d3VXhvVGRJbitKYnY0THY4Yng0NDYra0I2VnNCdEswQit3Yk1DS3hyd0wzM3dPclZlZUNoWDI4bjdLVE9UamdvRXU2RFJTWUFnQUFBQWtBbUFJQUFBQUlBQ1FJa01rQUNBQWdBSUFDQXlFQ0JLQU9KdUNhZ1RKd1NVQ2FVQUVNQUFCRUJSd0FBRVFGTGJDSmdPNGJXK0FaS0dua3RSK2pBRkFBQUFBQkpSVTVFcmtKZ2dnPT0pIG5vLXJlcGVhdCA1MCUgNTAlO2JhY2tncm91bmQtc2l6ZTo4NSV9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1pY29uLmljby1xdWVzdGlvbntiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQVFBQUFBQVlMbFZBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUFBbUpMUjBRQUFLcU5JeklBQUFBSmNFaFpjd0FBRGRjQUFBM1hBVUlvbTNnQUFBQUhkRWxOUlFmaENRa1VFaEZvdnhUeEFBQUVEa2xFUVZSbzNzMlpUV2dUUVJUSGYwM2lwVFJVcWdoTlNnc1JqSGdRckZVUUM2SmdEMUthazNnUVVVb1BxUmRCZ2xmMW9CZWhCd3M5Q240Y0drKzFTT21oMnVwQnhBWVZvZUpIclI5dGdxMGkxQ3EwbHFZZWtzN01icFBkbVUwMC9jOGhtOW4zM3YvdDdOdDVNMitxTUVXUUkwUUlpYlpLUnJRcEh2TEwyS0kyd25RenpCS3JEbTJSSWVLRXkwMWRUWUtVSTdHMVpSa25RWFY1eVAxMGtUWWdseTFORi81UzZkdVo4RVMrMWlab2R5YW9jcmpYeEUwT0ZlaWZZWWdwMG1SSWt3RkNoQWtSSnNJeEdncklQK0kwbjgyZnZaVzVkYy96a3NzME8ybzFjNW1YNi9UbWFEV2w3N1JGZTVZa1VXM3RLRW15RnYwbE92WEovZlRZbm1DRUZ1TVJiR0hFWnFWSEx5VDlERmpVSm1rekpsOURHNU1XV3dNNkxsaWYvZ0YxbnVrQjZuaGdHd1VYZEZyRSt3aVVSQThRb005aTB6RVdXcFhRVytac3llUnJPTXV5RW81RnY0Z215NGRYUHZxY0MrcEgyVlJZYU13eStPV0craUxHQ2dtMFcwS3Y5SGR2UjhBU2ptS0NYcHVLL2J4aVYvNzZBL3Y1VWRESVp1S2NKR2pybmVjNUtaN3d3c1dGT3A2eFBYLzltdDJzcURlN0ZPK0tmL2ZYSEJQUERXcGRYR2hUcEx2VUc5Vkt3aDF4TUREamt2dStjTkRGQlRrN3B0WDFRa0taODUwbTNkdXU2ZmNyV3h3ZGFGRnlSRUoyajR2T3BLUDZEdTZ6NHVKQ3Y4c1lKSVZrQ25KQkdHWmFCT05PM3JvWTJFcU5yU2ZJUGk3U0tQNGZkWHlOVWQ2STZ3YlNBSEVsMzN0RkxlK0ZsU3N1c25LOTBBMCtvRVBjdXVmWmdYbk9pK3U5THJLU0pRWlF3Nkx3cUJudjJDS3NmSE9SYkZieVFoQTZ4Ti9wRXVpaFNkajU2Q283TFdSalBpS2llNmdrQjJMaUt1VXFLNWtpUGtMaXoxUUo5SzFjTlhCQU1vVUNpZ05wUTlJcUR0TUkxSEtBNC9qeXZVc2FvU3laTEE1a2pPakRQRlplbjhRbDVUc3ZCc2tVZ2pjaUlQU1gzUUFYQzg2RFQ3Vld2bEVoL3haK2lqOUJEVldKMFFMMFNiWnE2UWFGeG9MUGNYUG1CTHZlTENjNHdYZERLNnMrNi92d2hDU25pRkxQWFcwTkplNVVCOHpLQ3N2aXFwYzd2R1BWUUZjeVpieVB3R0QrZDVabnhtTldsaEc0eFNCWlpqaXZqSVdIRVFnb0RrU01qTXdUbzU0NTY5SlNFNUlwQTdFeUpTTVR5R1RVQVVGbE8xWktPdGFIVE1lTDFQaFlZRlRjaWhtWTJjUTUrdWxsajdFRGtpVmZWZXoyc0NUejh5aXY4NGRqaGc3SUpWazgxeEZXSmxQZGZIQkcwZmxrUkMvelFGWitEU2xsTnRmRGRVc09NQ2xpeUdYNXVPelUzWmhJWEZEb2Y0bTFnRHVLYkV4MHQyWVMyNWdWR3BjTW5yL0kxa3gzYzZwaUI4UDhab3FFd2ZNWDNaeUNYeW5KVG1xL1U3TlVYcWZVekNiV0wxd3FWS0JRVWVFU3pRWW9VbFc4VEFjVkwxUkN4VXUxRzZCWVhmRnlmUTRWUGJESTRUOGQyV3pnUTZzYy92bXhuVHNxZkhDWlF6VUp4bTFoNWR4UzVUdTZsUWdUWjBpcHFSVnFTd3pUYmJMSE10K2MxOWlPNzZ0c3gvY0xadWIrQWxpK3RZQzkzb2xFQUFBQUpYUkZXSFJrWVhSbE9tTnlaV0YwWlFBeU1ERTNMVEE1TFRBNVZESXdPakU0T2pFM0t6QXlPakF3akt0ZmpnQUFBQ1YwUlZoMFpHRjBaVHB0YjJScFpua0FNakF4Tnkwd09TMHdPVlF5TURveE9Eb3hOeXN3TWpvd01QMzI1eklBQUFBWmRFVllkRk52Wm5SM1lYSmxBSGQzZHk1cGJtdHpZMkZ3WlM1dmNtZWI3andhQUFBQUFFbEZUa1N1UW1DQykgbm8tcmVwZWF0IDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjg1JX0uaXppVG9hc3Q+Lml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LW1lc3NhZ2UsLml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC10aXRsZXtwYWRkaW5nOjA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTZweDt0ZXh0LWFsaWduOmxlZnQ7ZmxvYXQ6bGVmdDt3aGl0ZS1zcGFjZTpub3JtYWx9Lml6aVRvYXN0Pi5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC10aXRsZXtjb2xvcjojMDAwO21hcmdpbjowfS5pemlUb2FzdD4uaXppVG9hc3QtYm9keSAuaXppVG9hc3QtbWVzc2FnZXttYXJnaW46MCAwIDEwcHg7Y29sb3I6cmdiYSgwLDAsMCwuNil9Lml6aVRvYXN0Lml6aVRvYXN0LWFuaW1hdGVJbnNpZGUgLml6aVRvYXN0LWJ1dHRvbnMtY2hpbGQsLml6aVRvYXN0Lml6aVRvYXN0LWFuaW1hdGVJbnNpZGUgLml6aVRvYXN0LWljb24sLml6aVRvYXN0Lml6aVRvYXN0LWFuaW1hdGVJbnNpZGUgLml6aVRvYXN0LWlucHV0cy1jaGlsZCwuaXppVG9hc3QuaXppVG9hc3QtYW5pbWF0ZUluc2lkZSAuaXppVG9hc3QtbWVzc2FnZSwuaXppVG9hc3QuaXppVG9hc3QtYW5pbWF0ZUluc2lkZSAuaXppVG9hc3QtdGl0bGV7b3BhY2l0eTowfS5pemlUb2FzdC10YXJnZXR7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfS5pemlUb2FzdC10YXJnZXQgLml6aVRvYXN0LWNhcHN1bGV7b3ZlcmZsb3c6aGlkZGVufS5pemlUb2FzdC10YXJnZXQgLml6aVRvYXN0LWNhcHN1bGU6YWZ0ZXJ7dmlzaWJpbGl0eTpoaWRkZW47ZGlzcGxheTpibG9jaztmb250LXNpemU6MDtjb250ZW50OiIgIjtjbGVhcjpib3RoO2hlaWdodDowfS5pemlUb2FzdC10YXJnZXQgLml6aVRvYXN0LWNhcHN1bGUgLml6aVRvYXN0e3dpZHRoOjEwMCU7ZmxvYXQ6bGVmdH0uaXppVG9hc3Qtd3JhcHBlcnt6LWluZGV4Ojk5OTk5O3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5pemlUb2FzdC13cmFwcGVyIC5pemlUb2FzdC5pemlUb2FzdC1iYWxsb29uOmJlZm9yZXtib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDoxNXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6MTBweCBzb2xpZCAjMDAwO2JvcmRlci10b3AtY29sb3I6aW5oZXJpdDtyaWdodDo4cHg7bGVmdDphdXRvfS5pemlUb2FzdC13cmFwcGVyLWJvdHRvbUxlZnR7bGVmdDowO2JvdHRvbTowO3RleHQtYWxpZ246bGVmdH0uaXppVG9hc3Qtd3JhcHBlci1ib3R0b21MZWZ0IC5pemlUb2FzdC5pemlUb2FzdC1iYWxsb29uOmJlZm9yZSwuaXppVG9hc3Qtd3JhcHBlci10b3BMZWZ0IC5pemlUb2FzdC5pemlUb2FzdC1iYWxsb29uOmJlZm9yZXtib3JkZXItcmlnaHQ6MTVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50O3JpZ2h0OmF1dG87bGVmdDo4cHh9Lml6aVRvYXN0LXdyYXBwZXItYm90dG9tUmlnaHR7cmlnaHQ6MDtib3R0b206MDt0ZXh0LWFsaWduOnJpZ2h0fS5pemlUb2FzdC13cmFwcGVyLXRvcExlZnR7bGVmdDowO3RvcDowO3RleHQtYWxpZ246bGVmdH0uaXppVG9hc3Qtd3JhcHBlci10b3BSaWdodHt0b3A6MDtyaWdodDowO3RleHQtYWxpZ246cmlnaHR9Lml6aVRvYXN0LXdyYXBwZXItdG9wQ2VudGVye3RvcDowO2xlZnQ6MDtyaWdodDowO3RleHQtYWxpZ246Y2VudGVyfS5pemlUb2FzdC13cmFwcGVyLWJvdHRvbUNlbnRlciwuaXppVG9hc3Qtd3JhcHBlci1jZW50ZXJ7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7dGV4dC1hbGlnbjpjZW50ZXJ9Lml6aVRvYXN0LXdyYXBwZXItY2VudGVye3RvcDowO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1mbG93OmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9Lml6aVRvYXN0LXJ0bHtkaXJlY3Rpb246cnRsO3BhZGRpbmc6OHB4IDAgOXB4IDQ1cHg7Zm9udC1mYW1pbHk6VGFob21hLCdMYXRvJyxBcmlhbH0uaXppVG9hc3QtcnRsIC5pemlUb2FzdC1jb3ZlcntsZWZ0OmF1dG87cmlnaHQ6MH0uaXppVG9hc3QtcnRsIC5pemlUb2FzdC1jbG9zZXtyaWdodDphdXRvO2xlZnQ6MH0uaXppVG9hc3QtcnRsIC5pemlUb2FzdC1ib2R5e3BhZGRpbmc6MCAxMHB4IDAgMDttYXJnaW46MCAxNnB4IDAgMDt0ZXh0LWFsaWduOnJpZ2h0fS5pemlUb2FzdC1ydGwgLml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LWJ1dHRvbnMsLml6aVRvYXN0LXJ0bCAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtaW5wdXRzLC5pemlUb2FzdC1ydGwgLml6aVRvYXN0LWJvZHkgLml6aVRvYXN0LW1lc3NhZ2UsLml6aVRvYXN0LXJ0bCAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtdGV4dHMsLml6aVRvYXN0LXJ0bCAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtdGl0bGV7ZmxvYXQ6cmlnaHQ7dGV4dC1hbGlnbjpyaWdodH0uaXppVG9hc3QtcnRsIC5pemlUb2FzdC1ib2R5IC5pemlUb2FzdC1pY29ue2xlZnQ6YXV0bztyaWdodDowfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDo1NjhweCl7Lml6aVRvYXN0LXdyYXBwZXJ7cGFkZGluZzoxMHB4IDE1cHh9Lml6aVRvYXN0e21hcmdpbjo1cHggMDtib3JkZXItcmFkaXVzOjNweDt3aWR0aDphdXRvfS5pemlUb2FzdDphZnRlcntjb250ZW50OicnO3otaW5kZXg6LTE7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzppbnNldCAwIC0xMHB4IDIwcHggLTEwcHggcmdiYSgwLDAsMCwuMiksaW5zZXQgMCAwIDVweCByZ2JhKDAsMCwwLC4xKSwwIDhweCA4cHggLTVweCByZ2JhKDAsMCwwLC4yNSl9Lml6aVRvYXN0Om5vdCguaXppVG9hc3QtcnRsKSAuaXppVG9hc3QtY292ZXJ7Ym9yZGVyLXJhZGl1czozcHggMCAwIDNweH0uaXppVG9hc3QuaXppVG9hc3QtcnRsIC5pemlUb2FzdC1jb3Zlcntib3JkZXItcmFkaXVzOjAgM3B4IDNweCAwfS5pemlUb2FzdC5pemlUb2FzdC1jb2xvci1kYXJrOmFmdGVye2JveC1zaGFkb3c6aW5zZXQgMCAtMTBweCAyMHB4IC0xMHB4IHJnYmEoMjU1LDI1NSwyNTUsLjMpLDAgMTBweCAxMHB4IC01cHggcmdiYSgwLDAsMCwuMjUpfS5pemlUb2FzdC5pemlUb2FzdC1iYWxsb29uIC5pemlUb2FzdC1wcm9ncmVzc2JhcntiYWNrZ3JvdW5kOjAgMH0uaXppVG9hc3QuaXppVG9hc3QtYmFsbG9vbjphZnRlcntib3gtc2hhZG93OjAgMTBweCAxMHB4IC01cHggcmdiYSgwLDAsMCwuMjUpLGluc2V0IDAgMTBweCAyMHB4IC01cHggcmdiYSgwLDAsMCwuMjUpfS5pemlUb2FzdC10YXJnZXQgLml6aVRvYXN0OmFmdGVye2JveC1zaGFkb3c6aW5zZXQgMCAtMTBweCAyMHB4IC0xMHB4IHJnYmEoMCwwLDAsLjIpLGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuMSl9fS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJre2JhY2tncm91bmQ6IzU2NWM3MDtib3JkZXItY29sb3I6IzU2NWM3MH0uaXppVG9hc3QuaXppVG9hc3QtdGhlbWUtZGFyayAuaXppVG9hc3QtdGl0bGV7Y29sb3I6I2ZmZn0uaXppVG9hc3QuaXppVG9hc3QtdGhlbWUtZGFyayAuaXppVG9hc3QtbWVzc2FnZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtmb250LXdlaWdodDozMDB9Lml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWNsb3Nle2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBZ0NBUUFBQURaYzdKL0FBQUFCR2RCVFVFQUFMR1BDL3hoQlFBQUFDQmpTRkpOQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQUFtSkxSMFFBQUtxTkl6SUFBQUFKY0VoWmN3QUFEZGNBQUEzWEFVSW9tM2dBQUFBSGRFbE5SUWZnQ1I0T0lRSVBTYW82QUFBQXdFbEVRVlJJeDcyVlVRNkVJQXdGbXoyWEIrQUNvbmhqenFUSjdKZUdLaExZbHl4L0JHZG9CVnBqSXBNSk5qZ0laREtUa1FIWW1ZZndtUjJBZkFxR0ZCY08yUWpYWkNkMjRiRWdndmQxS0J4K3hsd29EcFltdm5CVVV5NjhEWVhENzdFU3I4V0R0WXF2eFJleDdhOG9IUDRXbzFNa3Q1STY4TWMrcVlxdjFoNU9zWm1ac1EzZ2ovMDJoNmNPL0tFWXgyOWh1M1IrVlRUd3o2RDNUeW1JUDFFOFJ2RWlpVmRaZkV6aWN4WUxpbGpTeEtJcWxuVzVzZWl0VFc2dVludi9BcWg0d2hYM21FVXJBQUFBSlhSRldIUmtZWFJsT21OeVpXRjBaUUF5TURFMkxUQTVMVE13VkRFME9qTXpPakF5S3pBeU9qQXdsNlJNVmdBQUFDVjBSVmgwWkdGMFpUcHRiMlJwWm5rQU1qQXhOaTB3T1Mwek1GUXhORG96TXpvd01pc3dNam93TU9iNTlPb0FBQUFaZEVWWWRGTnZablIzWVhKbEFIZDNkeTVwYm10elkyRndaUzV2Y21lYjdqd2FBQUFBQUVsRlRrU3VRbUNDKSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6OHB4fS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1pY29ue2NvbG9yOiNmZmZ9Lml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWljb24uaWNvLWluZm97YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQ0FNQUFBQ2R0NEhzQUFBQWZsQk1WRVVBQUFELy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy92cm9hU0FBQUFLWFJTVGxNQTZQc0l2RG9iK09hcGF2VmhXUllQcklyeTJNeEdROTdjenNPenBKYU1jRTBxSlFPd1Z0S2pmeENWRmVJQUFBSTNTVVJCVkZqRGxKUFpzb0l3RUVUbkNpR3liOHErcW1qbC8zL3dGbUdLd2pCUk9TOVFXYnRuT3FEREdQcTRNZE1rU2MwbTdnY0REaEY0TlJkdjhOb0w0RWNNcHpvSmdsUGwvS1REejRXVzNJZHZYRXZ4a2ZJS243Qk1aYjFiRks0eVpGcWdoWjAzamswbkc4TjVOQnd6eDl4VTVjeEFnOGZYaTIwL2hEZEMzMTZsY0E4bzd0MTZlUnVRdlcxWEdkMmQyUDhRU0hRRERiZElJSS85Q1IzbFVGK2xidWNmSnk0V2ZNUzY0RUpQT1Juclp4dGZjMnBqSmRuYnVhZ3MzbDA0VFR0Sk1YcmRUcGg0UHlnNFhBanVnQUpxTURmNVJmK29YeDIvcWk0dTZuaXBha0lpN0NzZ2l1TVNFRjlJR0tnOGhlUUpLa3hJZkZTVVUvZWdXU3dOclMxZlBEdExmb244c1pPY1lVUW1sMVF2OWEza2Z3c0VVeUpFTWdGQkt6ZFY4bzNJdzl5QWpnMWpkTFFDVjRxYmQzbm84eUQyR3VnYUMzb01iRjBOWUhDcEpZU0RoTkk1TjJEQVdCNEY0ejlBai8wNENuYS94N2VWQVExN3ZSalFaUGgrRy9rZGRZdjBoNDl5WTROV05EV01NT01VSVJZdmxURUNtck44cFVBam81UkNNbjhLb1BtYkovK0FwcGduay8vU3k5MEdZQkNHZ203SUFza1E3RDloRktXNEFwQjFlaTNGU1lEOVBqR0FLeWdBVitBUkZZQkg1QnNWZ0c5a2tCU0FRV0tVRllCUlpwa1VnR1ZpblJXQWRVWlFEQUJCUWRJY0FFbERWQlVBVVVYV0hRQlp4MWdNQUdNcHJNMEFzTGJWWEhzQTV0clplOTMvd3Azc3ZRMFlOYi9qV1YzQUlPTHNNdGx6blNOT0g3SnFqT3BEVmg3ejhxQ1pSMTBmdHZPNG54ZU92UExrcFN1dmZYbnh6S3R2WHI3ait2OEM1aWkwZTcxQXQ3Y0FBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6ODUlfS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1pY29uLmljby13YXJuaW5ne2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRVFBQUFCRUNBTUFBQUFQeldPQUFBQUFsbEJNVkVVQUFBRC8vLy8rLy8zKy8vMysvLzMvLy8vLy8veisvLzMrLy8zKy8vMy8vLy8vLy8vLy8vLzkvLzMvLy8vKy8vMzkvLzMvLy8zLy8vLy8vLy8vLy8vKy8vMysvLzM5Ly8zLy8veisvL3orLy83Ly8vMy8vLzMvLy8zLy8vMy8vLy8vLy8vKy8vMysvLzMrLy8zKy8veisvLzMrLy83Ly8vMy8vL3ovLy8vLy8vLysvLzc5Ly8zLy8vMy8vL3ovLy92Ky8vMy8vLyt0clhvdUFBQUFNSFJTVGxNQUIrajg3UkJmK1BYaUN3UUNsU1BZaGtBekp4bngwNXRTeWFkemNteG1IUmJwNWQ3R3dyaDRURGt2c1l0L1drZFF6Q0lUQUFBQjFVbEVRVlJZdyszWGFYS0NRQkNHWVNJSWlnaG94Q1ZxTkpyRVBmbHkvOHZGSW1LWGR1TnNmL01jNEsxeTdGbndsTUxRYy9iVWJqODVSNmJBMUxYUkRJQ2c2UmpKY1phN05RWXRuTFVHVHBFUlNpT1h4ck9Qa3Y5czMwaUdLRG10YllpcjNIN09VSEphMnlsQXV2WnpSdnpVZnM3SWkvMmNnZlR0NTR4ODJzOFpTTTg0OGdKbVl0cm9RekEyakh3QStMa0JJRXVNR3QrUUluZzFpZ3pseU1ya3VQMkN5T2k0N2F4UmFZVEw1amhESmVob1IrYW92QzI5czNpSXlseTNFYitoUkN2Wm8ycXNHVG5oS3IyY0xEUytKNzNHc3FCSTlXODBVQ21XV3BFdWhJamg2WlJHanlOUmFyanpLR0oyT3UyaGltQ3ZqSHdxSStyVHFRZGxSSDA2VFpRUjllazBoaXFpUHAwNm1WNGtlN1FQWDZFUlVaeE84VW8zc3FyZmh4dm9SckNwdlh3TC9ValI5R1JITUl2TGdrZTRkNVFiaXdoTTZKVjJZS0tGNHZJbDdYSUJrd200a2VyeUpWbXZrL1Rmd2NtUHdRTmtVUXV5QTIvc1lHd25YTDdHUHU0YlcxallzbWV2ck5qMDkvTUdaTU9FUFhzbFFWcU84aHF5a0QxN0pmUEhQL2JtbzJ5R0dwZFppSDNJWnZ6WmE3QjMrSWREampwamVzSEpjdmJzNWRaL2UrY2RkVm9EZHZscTd4MTJOYWMraU43ZTRSOE9YVGpwMHB3NUNHbk9MTkRFemVCczVnVndGbmlBTys4Zjh3dmZlWFAyaHlxbm13QUFBQUJKUlU1RXJrSmdnZz09KSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6ODUlfS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1pY29uLmljby1lcnJvcntiYWNrZ3JvdW5kOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQU1BQUFDZHQ0SHNBQUFBZUZCTVZFVUFBQUQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9HcU9Tc0FBQUFKM1JTVGxNQTNCc0I5OFFWOHVTeVdWVUZ6NlJ4WXd6WXZidXBtWXFBYVUxRlFUWEt2N2FiajRkMWF6S05VaXQzQUFBQ1pFbEVRVlJZdzdXWGFaT0NNQXlHdzMwVU9SUlFCTHhYL3Y4LzNCa2FXanJZMnN6TzVvdEtmR3J6SnJFcDZLdzZGOGY4c0kraS9TRS9GdWNLU0JhV2lUOHA1aWRsYUV0blhUQjl0S0RMTEhBdmRTYXRPYW4zamU5M2s5RjJ2UkYzNittcjFhNmVIMk5GTnlkb0hxL2llVS9VWGNXamprOVh5a2ROV3EyeXd0cDR0WEw2V2IyVC9NcXR6elp1dHNyTnlmdkE1MUtvUVJPaFZDamZybkFTSVJwU1ZVWmlENXY0UmJXRXhqUmRKelNtT3NaRnZ6WXo1OWtSU3I2VjV6RSsvUUVMSGtOZGIzVlJ4NDVIUzFiMXUremZra2NiUkFaM3FKOWwvQTRxZWZIVURNU2hKZSs2a1pLSkREMnBMUTlRNGx1KzVRN3J6N1BscGVyZDdBdFFFZ0lQSTZvMmR4cjJENEdYdnhxQ2lLY244Y0Q0Z3hJQUV0Ny9HWWtITDE2S3FlSmQwTkI0Z0piWGZnVm56Q0dKbHpHY29jQ1ZTTHpVdm9Bajl4SjRORjcvUjhneG9WUWV4Yy9oZ0JwU2VialBqZ1BzNTljSG1ZZm43TmtEYjZ3WG1VZjFJMXlnSVBQdzRndGdDRTh5RHc4ZUFvcDRKL1BRY0JFeGpRbVp4MzdNc1pCMlpCNGNMS1FDRzV2S1l4TVdTek14SWc4cE50T3lVa3Zrb2NFbVhHbzY5bWg4RmdueFM0eUJ3TXZEckpTTkhaQjR1QzNheXovWWtjSVA0bGZsd1ZJVCtPVTA3WlNqcmJUa1pRNmRUUGtZdWJaOEdDL0NxeHU2V3ZKWklJOTNkY0N3NDZHZE5xZHBUZUYvdGlNT3VER0I5ei9OSTZOdnlXZXRHUE0wZytiVk5lb3ZCbWFtSFhXajBuQ2JFYUdlVE1OMlBXcnFkNmNNMjZaeFAyRGVKdmorcGgvMzBaaS9HbVJidGxLNVNwdEkrbndHR252SDZnVXJ1VCtMMTZNSkhGKzU4cndOSWlmVFYwdk04K2h3TWVPWEFiNll4MHdYVCtiOTk5V1hmdm4rOC9YL0Y3Zld6amRUb3JkNUFBQUFBRWxGVGtTdVFtQ0MpIG5vLXJlcGVhdCA1MCUgNTAlO2JhY2tncm91bmQtc2l6ZTo4MCV9Lml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWljb24uaWNvLXN1Y2Nlc3N7YmFja2dyb3VuZDp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQkFNQUFBQllSMnp0QUFBQUlWQk1WRVVBQUFELy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1BJZXY1QUFBQUNuUlNUbE1BcEFQaElGbjgyd2dHdjhtVnR3QUFBS1ZKUkVGVVNNZnQwTEVKQWtFQVJORkZGRXcxTkZKYjhDS2pBeTFBRU96QXhOdytiRUVFZzZueUZqYlk0TE96Y0J3WDdTL2d3VXhvVGRJbitKYnY0THY4Yng0NDYra0I2VnNCdEswQit3Yk1DS3hyd0wzM3dPclZlZUNoWDI4bjdLVE9UamdvRXU2RFJTWUFnQUFBQWtBbUFJQUFBQUlBQ1FJa01rQUNBQWdBSUFDQXlFQ0JLQU9KdUNhZ1RKd1NVQ2FVQUVNQUFCRUJSd0FBRVFGTGJDSmdPNGJXK0FaS0dua3RSK2pBRkFBQUFBQkpSVTVFcmtKZ2dnPT0pIG5vLXJlcGVhdCA1MCUgNTAlO2JhY2tncm91bmQtc2l6ZTo4NSV9Lml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWljb24uaWNvLXF1ZXN0aW9ue2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFCQUNBUUFBQUFBWUxsVkFBQUFCR2RCVFVFQUFMR1BDL3hoQlFBQUFDQmpTRkpOQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQUFtSkxSMFFBQUtxTkl6SUFBQUFKY0VoWmN3QUFEZGNBQUEzWEFVSW9tM2dBQUFBSGRFbE5SUWZoQ1FrVUVnMTh2a2krQUFBRVRVbEVRVlJvM3MxWlRXaGJSeEQrVmxJdXhzTEZDWVZJSVFZVm9wQkRvSzViS0RXVUJ1cERNTmJKNUZCS2cvRkJ6aVVRZEU5eWFDK0ZIQnJ3c2RDZlE5UlRHb0x4d1dsK0RxSEVvalVGRnlkeG5COWJJblpEcU9zRXJCcnI2eUd2cy91ZVg5N2JsZFRLbzRQZTdwdVpiM1ozM3M3c3JJSWpNWTFqeUNFalA2SW12eVg4cEY2NGFyU0h6bktDMDZ3emlqWTV4U0t6N1lidVlva1YybE9Ec3l5eHF6M2dTWTZ6NmdDdXFjcHhKbHVGSCtaOFUrRC8wanlIb3hGVUJIZ2Z2c0dISVM5V01JVWxWRkZERlRVQUdXU1JRUlk1SE1lQkVQNmIrRXc5ZGgvN0lOZDJqR2VPNTlrZktkWFA4NXpiSWJmR1FWZjRzWUMzTjFobTNsbzZ6ekliUHZrNngrekJrN3dRR01FTUI1eG5jSUF6QVMwWHJGeVNTVjcyaVMxeXlCVmNkQTF4MGFmcnNvVUpnZEZmWTIrejhBREFYbDd6ejBLY3dKaVBmWktwVnVBQmdDbE8rblJHK1FJSERkZmI0cWxXd1VYdktXNFo3dmk2TDRKOXZnK3ZiZkNlQ2VaSDJSZk9kTU9jL0hiQ0E0QnZJVzZFTVF6N1hLL2x0ZCtoUCtWelI5bWd2YTJZU2Z5R0kxN2ZBN3lubm9jcWVRTkZmSUowb0hzZHY2Q0MyK3JYR0JONmNRZHZlWTNmY1ZSdG15L0hEZXRlKzkzenk4akE4elY3WWt3WU1yakh6UmRkUnNDZGlWQ3d3bWg2d2c5aVROQzdZOVhJRjFpUzdrYlVwc3Z2R0VkUHVUZlNnQUVqUnBSMDk2eDBsaVBGRC9FcXQyTk11QlF6QjJYaHJBQ0FBcGpGc3VRRmg5WGRHQVg3MEIzb1N1TmRuTVZCYVgrc29wWXhqd1ZwSEZCVkFDeUtUWE5va3RqRCs2TGw4eGhlblM5TUFBa0FJL0x1eDJZTlVPczRJNDEzWXBnMVNnRUF1N2twRnZXamFlSmUwZkpIREdlL2NOYVpCa2VrdWR3OFBNQSswZk13bG5kWmVBc0o1S1IvcWhVRFVKQ25TaXl2UnNvbGtKSEdVZ3ZqSDhRWERnWm9wRXpLTUtEcUNLcndFUTRDNk1IN0dFWEM2NjVidUxKRzhobFFjNExQNHBheGZKck9xWVZZWVkyVUFSZkVJYXpUYmdEZzJkQjk4R2ViekpkNTRiOEwvaVdOZEx5b29lUjZDSHlaKzZ4azB5S3hrWWc2bkVWU1VHNFZKOVFKOWN4UkN4Tys5V2lPeXZnVWVleFhQMWhMR0g1bkd1QldWdGlTcDR2cWUzVlAwVUZXSTlXYW40RXIzdjhxN2pqUFdWdG00RnRjUVFNck9LTzJuT1FDTTVBeURNaTU2RkRyS0hBLzFueXBwUzFwcEJwWWFFOHdjaUVqR0kyQWFlTTQxa0k0ZG9EWDRYaVQzUW0xZ2V2eXJ1Q2daZzlQOHhJdjhtMW5DelRLcTZvaUo5eFRNaVo1MDVQNW04Y2RaMENuWk1WWEhWbGpNN1dNQnp4cHlEeHlndGR4b0NFRlRhTUlXYlpVODVVdkJqZ1VNWXkwZkJhQUY4VjFMajlxV1ExYU1aNWY0azlyK0FHTVNrTVAxdlpvWmloNms2c2ljYzVoL09GSE05dkRxVS9WSVU3ekpaZFlZc0tHSDRnNG5BSk1HaVhaUmRzMXBWTW9aNjlSTTV2ZmtiaDBxa0Joc25TMlJMTUxpbFFkTDlNQkhTOVVBaDB2MWU2Q1luWEh5L1dlZUNjdkxEd2wvOU9WemU2OXRQS00rTSt2N2VKTjZPekZwV2RFRjB1Y0RiaFZORlhhZG5Wcm1KRmxrVk5HVFMyTTZwem1oTXZsdGZQaG5OMkI2M3NWdUw3ZmNOUDNEMVRTazJpaG9zUHJBQUFBSlhSRldIUmtZWFJsT21OeVpXRjBaUUF5TURFM0xUQTVMVEE1VkRJd09qRTRPakV6S3pBeU9qQXdlT1I3blFBQUFDVjBSVmgwWkdGMFpUcHRiMlJwWm5rQU1qQXhOeTB3T1Mwd09WUXlNRG94T0RveE15c3dNam93TUFtNXd5RUFBQUFaZEVWWWRGTnZablIzWVhKbEFIZDNkeTVwYm10elkyRndaUzV2Y21lYjdqd2FBQUFBQUVsRlRrU3VRbUNDKSBuby1yZXBlYXQgNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6ODUlfS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmEsLml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWJ1dHRvbnM+YnV0dG9uLC5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmlucHV0e2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0uaXppVG9hc3QuaXppVG9hc3QtdGhlbWUtZGFyayAuaXppVG9hc3QtYnV0dG9ucz5hOmhvdmVyLC5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmJ1dHRvbjpob3ZlciwuaXppVG9hc3QuaXppVG9hc3QtdGhlbWUtZGFyayAuaXppVG9hc3QtYnV0dG9ucz5pbnB1dDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjIpfS5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmE6Zm9jdXMsLml6aVRvYXN0Lml6aVRvYXN0LXRoZW1lLWRhcmsgLml6aVRvYXN0LWJ1dHRvbnM+YnV0dG9uOmZvY3VzLC5pemlUb2FzdC5pemlUb2FzdC10aGVtZS1kYXJrIC5pemlUb2FzdC1idXR0b25zPmlucHV0OmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjYpfS5pemlUb2FzdC5pemlUb2FzdC1jb2xvci1yZWR7YmFja2dyb3VuZDpyZ2JhKDI1NSwxNzUsMTgwLC45KTtib3JkZXItY29sb3I6cmdiYSgyNTUsMTc1LDE4MCwuOSl9Lml6aVRvYXN0Lml6aVRvYXN0LWNvbG9yLW9yYW5nZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDIwNywxNjUsLjkpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyMDcsMTY1LC45KX0uaXppVG9hc3QuaXppVG9hc3QtY29sb3IteWVsbG93e2JhY2tncm91bmQ6cmdiYSgyNTUsMjQ5LDE3OCwuOSk7Ym9yZGVyLWNvbG9yOnJnYmEoMjU1LDI0OSwxNzgsLjkpfS5pemlUb2FzdC5pemlUb2FzdC1jb2xvci1ibHVle2JhY2tncm91bmQ6cmdiYSgxNTcsMjIyLDI1NSwuOSk7Ym9yZGVyLWNvbG9yOnJnYmEoMTU3LDIyMiwyNTUsLjkpfS5pemlUb2FzdC5pemlUb2FzdC1jb2xvci1ncmVlbntiYWNrZ3JvdW5kOnJnYmEoMTY2LDIzOSwxODQsLjkpO2JvcmRlci1jb2xvcjpyZ2JhKDE2NiwyMzksMTg0LC45KX0uaXppVG9hc3QuaXppVG9hc3QtbGF5b3V0MiAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtbWVzc2FnZSwuaXppVG9hc3QuaXppVG9hc3QtbGF5b3V0MiAuaXppVG9hc3QtYm9keSAuaXppVG9hc3QtdGV4dHN7d2lkdGg6MTAwJX0uaXppVG9hc3QuaXppVG9hc3QtbGF5b3V0M3tib3JkZXItcmFkaXVzOjJweH0uaXppVG9hc3QuaXppVG9hc3QtbGF5b3V0Mzo6YWZ0ZXJ7ZGlzcGxheTpub25lfS5pemlUb2FzdCAucmV2ZWFsSW4sLml6aVRvYXN0LnJldmVhbEluey13ZWJraXQtYW5pbWF0aW9uOml6aVQtcmV2ZWFsSW4gMXMgY3ViaWMtYmV6aWVyKC4yNSwxLjYsLjI1LDEpIGJvdGg7LW1vei1hbmltYXRpb246aXppVC1yZXZlYWxJbiAxcyBjdWJpYy1iZXppZXIoLjI1LDEuNiwuMjUsMSkgYm90aDthbmltYXRpb246aXppVC1yZXZlYWxJbiAxcyBjdWJpYy1iZXppZXIoLjI1LDEuNiwuMjUsMSkgYm90aH0uaXppVG9hc3QgLnNsaWRlSW4sLml6aVRvYXN0LnNsaWRlSW57LXdlYmtpdC1hbmltYXRpb246aXppVC1zbGlkZUluIDFzIGN1YmljLWJlemllciguMTYsLjgxLC4zMiwxKSBib3RoOy1tb3otYW5pbWF0aW9uOml6aVQtc2xpZGVJbiAxcyBjdWJpYy1iZXppZXIoLjE2LC44MSwuMzIsMSkgYm90aDthbmltYXRpb246aXppVC1zbGlkZUluIDFzIGN1YmljLWJlemllciguMTYsLjgxLC4zMiwxKSBib3RofS5pemlUb2FzdC5ib3VuY2VJbkxlZnR7LXdlYmtpdC1hbmltYXRpb246aXppVC1ib3VuY2VJbkxlZnQgLjdzIGVhc2UtaW4tb3V0IGJvdGg7YW5pbWF0aW9uOml6aVQtYm91bmNlSW5MZWZ0IC43cyBlYXNlLWluLW91dCBib3RofS5pemlUb2FzdC5ib3VuY2VJblJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uOml6aVQtYm91bmNlSW5SaWdodCAuODVzIGVhc2UtaW4tb3V0IGJvdGg7YW5pbWF0aW9uOml6aVQtYm91bmNlSW5SaWdodCAuODVzIGVhc2UtaW4tb3V0IGJvdGh9Lml6aVRvYXN0LmJvdW5jZUluRG93bnstd2Via2l0LWFuaW1hdGlvbjppemlULWJvdW5jZUluRG93biAuN3MgZWFzZS1pbi1vdXQgYm90aDthbmltYXRpb246aXppVC1ib3VuY2VJbkRvd24gLjdzIGVhc2UtaW4tb3V0IGJvdGh9Lml6aVRvYXN0LmJvdW5jZUluVXB7LXdlYmtpdC1hbmltYXRpb246aXppVC1ib3VuY2VJblVwIC43cyBlYXNlLWluLW91dCBib3RoO2FuaW1hdGlvbjppemlULWJvdW5jZUluVXAgLjdzIGVhc2UtaW4tb3V0IGJvdGh9Lml6aVRvYXN0IC5mYWRlSW4sLml6aVRvYXN0LmZhZGVJbnstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVJbiAuNXMgZWFzZSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVJbiAuNXMgZWFzZSBib3RofS5pemlUb2FzdC5mYWRlSW5VcHstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVJblVwIC43cyBlYXNlIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZUluVXAgLjdzIGVhc2UgYm90aH0uaXppVG9hc3QuZmFkZUluRG93bnstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVJbkRvd24gLjdzIGVhc2UgYm90aDthbmltYXRpb246aXppVC1mYWRlSW5Eb3duIC43cyBlYXNlIGJvdGh9Lml6aVRvYXN0LmZhZGVJbkxlZnR7LXdlYmtpdC1hbmltYXRpb246aXppVC1mYWRlSW5MZWZ0IC44NXMgY3ViaWMtYmV6aWVyKC4yNSwuOCwuMjUsMSkgYm90aDthbmltYXRpb246aXppVC1mYWRlSW5MZWZ0IC44NXMgY3ViaWMtYmV6aWVyKC4yNSwuOCwuMjUsMSkgYm90aH0uaXppVG9hc3QuZmFkZUluUmlnaHR7LXdlYmtpdC1hbmltYXRpb246aXppVC1mYWRlSW5SaWdodCAuODVzIGN1YmljLWJlemllciguMjUsLjgsLjI1LDEpIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZUluUmlnaHQgLjg1cyBjdWJpYy1iZXppZXIoLjI1LC44LC4yNSwxKSBib3RofS5pemlUb2FzdC5mbGlwSW5Yey13ZWJraXQtYW5pbWF0aW9uOml6aVQtZmxpcEluWCAuODVzIGN1YmljLWJlemllciguMzUsMCwuMjUsMSkgYm90aDthbmltYXRpb246aXppVC1mbGlwSW5YIC44NXMgY3ViaWMtYmV6aWVyKC4zNSwwLC4yNSwxKSBib3RofS5pemlUb2FzdC5mYWRlT3V0ey13ZWJraXQtYW5pbWF0aW9uOml6aVQtZmFkZU91dCAuN3MgZWFzZSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVPdXQgLjdzIGVhc2UgYm90aH0uaXppVG9hc3QuZmFkZU91dERvd257LXdlYmtpdC1hbmltYXRpb246aXppVC1mYWRlT3V0RG93biAuN3MgY3ViaWMtYmV6aWVyKC40LC40NSwuMTUsLjkxKSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVPdXREb3duIC43cyBjdWJpYy1iZXppZXIoLjQsLjQ1LC4xNSwuOTEpIGJvdGh9Lml6aVRvYXN0LmZhZGVPdXRVcHstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVPdXRVcCAuN3MgY3ViaWMtYmV6aWVyKC40LC40NSwuMTUsLjkxKSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVPdXRVcCAuN3MgY3ViaWMtYmV6aWVyKC40LC40NSwuMTUsLjkxKSBib3RofS5pemlUb2FzdC5mYWRlT3V0TGVmdHstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVPdXRMZWZ0IC41cyBlYXNlIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZU91dExlZnQgLjVzIGVhc2UgYm90aH0uaXppVG9hc3QuZmFkZU91dFJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uOml6aVQtZmFkZU91dFJpZ2h0IC41cyBlYXNlIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZU91dFJpZ2h0IC41cyBlYXNlIGJvdGh9Lml6aVRvYXN0LmZsaXBPdXRYey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDtiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50Oy13ZWJraXQtYW5pbWF0aW9uOml6aVQtZmxpcE91dFggLjdzIGN1YmljLWJlemllciguNCwuNDUsLjE1LC45MSkgYm90aDthbmltYXRpb246aXppVC1mbGlwT3V0WCAuN3MgY3ViaWMtYmV6aWVyKC40LC40NSwuMTUsLjkxKSBib3RofS5pemlUb2FzdC1vdmVybGF5LmZhZGVJbnstd2Via2l0LWFuaW1hdGlvbjppemlULWZhZGVJbiAuNXMgZWFzZSBib3RoO2FuaW1hdGlvbjppemlULWZhZGVJbiAuNXMgZWFzZSBib3RofS5pemlUb2FzdC1vdmVybGF5LmZhZGVPdXR7LXdlYmtpdC1hbmltYXRpb246aXppVC1mYWRlT3V0IC43cyBlYXNlIGJvdGg7YW5pbWF0aW9uOml6aVQtZmFkZU91dCAuN3MgZWFzZSBib3RofUAtd2Via2l0LWtleWZyYW1lcyBpemlULXJldmVhbEluezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLDEpfXRve29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtcmV2ZWFsSW57MCV7b3BhY2l0eTowOy1tb3otdHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsMSl9dG97b3BhY2l0eToxfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1zbGlkZUluezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1ALW1vei1rZXlmcmFtZXMgaXppVC1zbGlkZUluezAle29wYWNpdHk6MDstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1ib3VuY2VJbkxlZnR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjgwcHgpfTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjBweCl9NzAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjgwcHgpfTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KX03MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTBweCl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5Eb3duezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDBweCl9NTAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpfTcwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWJvdW5jZUluVXB7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwcHgpfTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCl9NzAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtZmFkZUluVXB7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5Eb3duezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5MZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mbGlwSW5YezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7b3BhY2l0eTowfTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyl9NjAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwxMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwxMGRlZyk7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTVkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVPdXREb3duezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVPdXRVcHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVPdXRMZWZ0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDBweCwwLDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlT3V0UmlnaHR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mbGlwT3V0WHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO29wYWNpdHk6MH19QC1tb3ota2V5ZnJhbWVzIGl6aVQtcmV2ZWFsSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLDEpfXRve29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtcmV2ZWFsSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLDEpfXRve29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBpemlULXJldmVhbEluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywxKX10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgaXppVC1yZXZlYWxJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsMSl9dG97b3BhY2l0eToxfX1ALW1vei1rZXlmcmFtZXMgaXppVC1zbGlkZUluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCg1MHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULXNsaWRlSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC1vLWtleWZyYW1lcyBpemlULXNsaWRlSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QGtleWZyYW1lcyBpemlULXNsaWRlSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5MZWZ0ezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyODBweCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwcHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1ib3VuY2VJbkxlZnR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI4MHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUAtby1rZXlmcmFtZXMgaXppVC1ib3VuY2VJbkxlZnR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI4MHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUBrZXlmcmFtZXMgaXppVC1ib3VuY2VJbkxlZnR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI4MHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUAtbW96LWtleWZyYW1lcyBpemlULWJvdW5jZUluUmlnaHR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yODBweCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwcHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1ib3VuY2VJblJpZ2h0ezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjgwcHgpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMHB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QC1vLWtleWZyYW1lcyBpemlULWJvdW5jZUluUmlnaHR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yODBweCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwcHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX1Aa2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5SaWdodHswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTI4MHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDIwcHgpfTcwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTBweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9fUAtbW96LWtleWZyYW1lcyBpemlULWJvdW5jZUluRG93bnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpfTcwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNXB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5Eb3duezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwcHgpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1ALW8ta2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5Eb3duezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwcHgpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIGl6aVQtYm91bmNlSW5Eb3duezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwcHgpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpfXRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX1ALW1vei1rZXlmcmFtZXMgaXppVC1ib3VuY2VJblVwezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDBweCl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCl9NzAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDVweCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWJvdW5jZUluVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QC1vLWtleWZyYW1lcyBpemlULWJvdW5jZUluVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyBpemlULWJvdW5jZUluVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMHB4KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX03MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KX10b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVJbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGl6aVQtZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgaXppVC1mYWRlSW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZUluVXB7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgaXppVC1mYWRlSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtbW96LWtleWZyYW1lcyBpemlULWZhZGVJbkRvd257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVJbkRvd257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlSW5Eb3duezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1Aa2V5ZnJhbWVzIGl6aVQtZmFkZUluRG93bnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZUluTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwcHgsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtZmFkZUluTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwcHgsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QC1vLWtleWZyYW1lcyBpemlULWZhZGVJbkxlZnR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDMwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDMwMHB4LDAsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUBrZXlmcmFtZXMgaXppVC1mYWRlSW5MZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgzMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALW1vei1rZXlmcmFtZXMgaXppVC1mYWRlSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpub25lO3RyYW5zZm9ybTpub25lfX1ALW8ta2V5ZnJhbWVzIGl6aVQtZmFkZUluUmlnaHR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0zMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzAwcHgsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX19QGtleWZyYW1lcyBpemlULWZhZGVJblJpZ2h0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMHB4LDAsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtOm5vbmV9fUAtbW96LWtleWZyYW1lcyBpemlULWZsaXBJblh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDEwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtNWRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZsaXBJblh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDEwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtNWRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9fUAtby1rZXlmcmFtZXMgaXppVC1mbGlwSW5YezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7b3BhY2l0eTowfTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyl9NjAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwxMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwxMGRlZyk7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTVkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX1Aa2V5ZnJhbWVzIGl6aVQtZmxpcEluWHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO29wYWNpdHk6MH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpfTYwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsMTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsMTBkZWcpO29wYWNpdHk6MX04MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC01ZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC01ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZU91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUBrZXlmcmFtZXMgaXppVC1mYWRlT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fUAtbW96LWtleWZyYW1lcyBpemlULWZhZGVPdXREb3duezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fUAtd2Via2l0LWtleWZyYW1lcyBpemlULWZhZGVPdXREb3duezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlT3V0RG93bnswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfX1Aa2V5ZnJhbWVzIGl6aVQtZmFkZU91dERvd257MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX19QC1tb3ota2V5ZnJhbWVzIGl6aVQtZmFkZU91dFVwezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtZmFkZU91dFVwezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX19QC1vLWtleWZyYW1lcyBpemlULWZhZGVPdXRVcHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9fUBrZXlmcmFtZXMgaXppVC1mYWRlT3V0VXB7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfX1ALW1vei1rZXlmcmFtZXMgaXppVC1mYWRlT3V0TGVmdHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwcHgsMCwwKX19QC13ZWJraXQta2V5ZnJhbWVzIGl6aVQtZmFkZU91dExlZnR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMHB4LDAsMCl9fUAtby1rZXlmcmFtZXMgaXppVC1mYWRlT3V0TGVmdHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwcHgsMCwwKX19QGtleWZyYW1lcyBpemlULWZhZGVPdXRMZWZ0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDBweCwwLDApfX1ALW1vei1rZXlmcmFtZXMgaXppVC1mYWRlT3V0UmlnaHR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mYWRlT3V0UmlnaHR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDBweCwwLDApfX1ALW8ta2V5ZnJhbWVzIGl6aVQtZmFkZU91dFJpZ2h0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwcHgsMCwwKX19QGtleWZyYW1lcyBpemlULWZhZGVPdXRSaWdodHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMHB4LDAsMCl9fUAtbW96LWtleWZyYW1lcyBpemlULWZsaXBPdXRYezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfTMwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgaXppVC1mbGlwT3V0WHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsOTBkZWcpO29wYWNpdHk6MH19QC1vLWtleWZyYW1lcyBpemlULWZsaXBPdXRYezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfTMwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLC0yMGRlZyk7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCw5MGRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGl6aVQtZmxpcE91dFh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9MzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLDAsMCwtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwwLDAsLTIwZGVnKTtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsMCwwLDkwZGVnKTtvcGFjaXR5OjB9fQ=="}},"time_used":50,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":24,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/receivegift.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.582Z","timestamp":1785153914582,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/receivegift.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 88745\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":88745,"size_decoded":89011,"mime_type":"image/png","magic":"PNG image data, 641 x 640, 8-bit colormap, non-interlaced","md5":"86589458ea4d743f6758daa0c491d05e","sha1":"8205b93bbc783f319cee0c964b009dd7bed78215","sha256":"e1a5b8b77fe2801e26360c233b6cca06e8e98271d72d8546252a6d7e774d1c63","sha512":"60ecf0bdea6f4ad0e32ef63f0a271542d46f1910eb1e218fb082b72feacd408912101f8c28c869afe23bcfc9107356e263e469c598f364101bfb4241383ef375","ssdeep":"1536:Z7g/blRiE7Keg3HKignUhrKR7PEkTxDQdGI68RlzywkIEqXmXVhKMIt9KI7MT3aB:C/bXipTHdGR7PEIUcWN7sh1IqI7MraB3","tlshash":"df8312581a5e189b541b02ac862f69a944387faca4c1c987f26b350f183f63f17796cf","first_seen":"2025-08-26T02:31:59.04632Z","last_seen":"2026-07-27T12:06:15.833147Z","times_seen":24,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAoEAAAKACAMAAADU0VIvAAADAFBMVEVHcEz/1RT/7Zv/2j7+3Fz/1x3/0j3+/e///vD//vH/9Mb/1A////3/6Yn/53b/5W3/53b/5Gv/5Wz/877/88v/42H/76T/31L/0xH/0xD/307+0xD/303/303/3Ur+2kaDe08KoHP82EvKskJOSSyQg0O/t2gJ3J8Vvov8uSCyn0ixlx390UGml1D9vx79rRn9zjdEQzlETWX/pBBtalT/qRVlXzg1ODfleyf9zjD8ySv8yi5XW1wlKjL/4mT/54D/5HIsxH+Nsn17z3MWGyj/3Vv/3U7goypafcmQwlyElagYHSoaIC0SFiIUGCX/phAcIjEXGif7xiwlLD0fJDT+/v4nLj//1CH+zyQrM0Q4P0/9yigwN0g0O0sjKTpNVGNGTVwhJzdDSln/2Gj7wi7/ohn/3oE7QlJAR1cBBikuMjz39/YBCzn/4YtKUWHomwgkKDP6vzJQV2b/2C89RFQqLTZIT17/45X8uTAiJCwCAhL/2j39rzNQ1rHsrjT/5p7/3kwNGzv/23Pu7ezyu1D/mwc2OED1xGL3zHQmWtr/6IPpqSrutEL/mCP604YQDRj/4Frwog33uTj+ozb+6Kr/5ihE0Kpc3LceUdDSiwb/5GlaYGzpoxovZue3ewnyrSF98MmcYgT/9ydA57L72pht6cD/53b+0DH/+28HjGS8jSvLmjP/sR5manTbpzXmz6sRJVRU7rvkkQGrcgwp36j/87qDUAPW/d9tWTRHRkgKcVHf4uVZSC4kNWPt+/rV09QEOdH/uw39xjv6xFNNdePz3r5DOS2ykV//+4iFaDCcczDI/dUGSzRvdX/8lDfWvZY9Smz59+WohjNZVVfFxsaAfoJNefYtQXjFqnikhVb27daLjpC1tLfqA3UKMqDfAVsTV/mL/+XWlhuQd0vkw3WZm5yX9cgC6MA5aNHZt2Kkp6ux9s7CoFDVqU3nzYoiUbe+di93za12bFFptZv8fBjmYBH0xN2g07h1leDtXajwkcLpK487fm1Qm4amu/FLbZzdKsxRAAAAtXRSTlMADAcDAggFAQIDCREFCxAgGxcUEAwnFS8YHzcoP0dQWZz+ZzyvgVH+/pNeSoBycrahyfPuutWh2f22483T5Y/Vq7qTau/J5c/c/bb////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+lwbDrgABVqNJREFUeNrsnYmWoyoQhqMIxvWc9vaZk/d/0gtVBRSLRjOZpGNTZmRxiWk+/ypwmculWLFixYoVK1asWLFixYoVK1asWLFixYoVK/ZTrG3bfF1c3+bWvLR+8f2vyn5ZsXPh5GlpOV/tJUNKy1bkm7XW+Casgu2ar59Ds72wvbRtIfDsakZNTBlXwXhk8tZyu0SrB4vaeOc2aeNV2dJLgHJMdbHTAvh8y+18+9sud/ZWrBD4PisNVRAsABb7mQRer5jE1YXAYv+SwOvVZa4mD/PrlZWoBlfhWxQCiz1O4JWT5q3lVU1zXTVCtRBY7AiBVy9ihJiFrGHEOfC2CEyALAQWu9yBL1W8xsPGKtnSJlq2ieAuGksr/UoC7/KThcwR2HCZ3CGMBcBC4F34nPeNkHKO2BrViy6pjTZNySwEFgQ5gUFw5+Dpuo7yTSfE1eUb+HSdMMuvjTAENjppIGnMMoZcE3j0DQxLE/0SArGfC12OKORD4bLypflCAjVQQgBtAB2YsHNYaFaDVWADTPiuN7xzIfA3ERgPqIQENhY3h5EzIYgvyLu5oLldJ9gGdBEWGjH1Dnxt+KYQ+DsIzBvqWw4jpM+Th6kQnkC7iQhATffTNejWs8OLMAZUmujsBMbYMQC7wLnqxIEkFHGlM1ijzGJFCCq7gjE1OgRFhuVAH3M6WNroVxFoOEAP2a3Lnuo0X6MYDWU6a5IRqOwsdzozukmXcAEA6xnM8pgiWNrozP0P74Sx+bnkee0jAVMgeEbtDF8CKAS1A8wUcDaa1MyEUKSDpoi1uBPBgkgR62xIYcf6JKXRTgcgJSbWMwCKkAYhXFinbDJ2CsEaQfWAv1GBCiJ9RhU7lMSRaDTrkhS6BWBQ5QPESA5JiMELFwbPPf4XdXAtfCBp4Fu7EctYiVjVJG+gc0pBFpJRUcZVubJCZBmQiigU5NhF0usBJ1xGZp4Owc/BzxDIRvOw5zpSxKas0o0kXQSMAsxqnUBmNFSi1cpmRoULaV7jumbFGsnFPaOgjh1RmXjka5O9ff9df70TqdDbAbwwAoNO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"}},"time_used":81,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":69,"receive":12,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1722995494_1000056973png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.598Z","timestamp":1785153914598,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1722995494_1000056973png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 4952\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":4952,"size_decoded":5113,"mime_type":"image/png","magic":"PNG image data, 300 x 300, 8-bit colormap, non-interlaced","md5":"c806c8a80876a9642d5da8988d6ca2a4","sha1":"858dbb695102f092ffed6057e5995db110f7becc","sha256":"44390b42e607bc580ace13fb8f57bb39a067e4df5253bdf8da22a4c8271b4a49","sha512":"e74cdcb13960e7ee97ee3ed32d5e3e0ec06a1b868eecd62a2abb5ac91ac7bec88ead74f4f0e237fff38b6a2cbe9e8f6c92a1819b9c199c0d085a7427d9dba7e3","ssdeep":"96:9VXtnfqL2NpqYhv+bIoioBhDBKeedRQqBrwKt3LnbSgllJKAJWn:95tnUIvmnBl8x3QqhXt3LuaJKAJO","tlshash":"85a19e239b2a7a1ed42c8af11ae5d451f19536f6c504b609cd703f49e284a1efb71e18","first_seen":"2024-06-24T06:40:01Z","last_seen":"2026-07-27T12:06:15.828329Z","times_seen":76,"resource_available":false,"data":"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"}},"time_used":105,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":76,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/withdrawicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.586Z","timestamp":1785153914586,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/withdrawicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3619\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3619,"size_decoded":3884,"mime_type":"image/png","magic":"PNG image data, 121 x 120, 8-bit/color RGBA, non-interlaced","md5":"8595faffdb0f47993baaf43aaa762c2f","sha1":"811ab642dfd9a13226e4eb252e62e97c72f5c387","sha256":"ae85df7cf6c78796fdb907e31224db87915667372e35bd80e10e84283ab888c8","sha512":"7b8ddd480133893a4e8afdaad497cebf5829c66248f81c37eeea9b09f2ca025dc3b1b8703c7be9f50827832640c05e4950220f68fb0805c4c0a21d1315a742be","ssdeep":"","tlshash":"20715e92f48f07085329291cf4f4ee6451bb22ed479e712c8f8b9037355ae9218d6ede","first_seen":"2026-04-01T23:54:14.862805Z","last_seen":"2026-07-27T12:06:15.840242Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":29,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate.googleapis.com/_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/exm=el_conf/ed=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_main","fqdn":"translate.googleapis.com","domain":"translate.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":"script","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.089Z","timestamp":1785153915089,"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 /_/translate_http/_/js/k=translate_http.tr.no.scrnY6Q2_yw.O/am=BIAABw/d=1/exm=el_conf/ed=1/rs=AN8SPfq1KlUFqeiFvBMudduzGtb39QWXuw/m=el_main HTTP/1.1\r\nHost: translate.googleapis.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://onchainopt.com/\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\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/rosetta\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"rosetta\"\r\nreport-to: {\"group\":\"rosetta\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/rosetta\"}]}\r\ncontent-length: 67956\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 18:00:05 GMT\r\nexpires: Thu, 22 Jul 2027 18:00:05 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 21 Jul 2026 20:35:41 GMT\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Accept-Encoding\r\nage: 410710\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":194344,"size_decoded":68816,"mime_type":"text/javascript; charset=UTF-8","magic":"JavaScript source, ASCII text, with very long lines (2519)","md5":"cdf9309b56a4ff330627409baead2538","sha1":"e98eac16441e99c9512052eb0087f535b9a609b9","sha256":"310629c4e47d7960e5a89cbd6a9c1d24a4e4d7c5e18346a69a67d92355cf2cd4","sha512":"cafd13a201e26b9f94f9a636ca1f7c191ec3a9fc3f297d35ee51b1304962383e7147509932a759bd903e27e53fb251600ad6942739e472161f5a09367c3776c1","ssdeep":"3072:kjsNxt45eITHt28KRu9gKavNuBDHK0QppB0/I:osb0muBzg","tlshash":"dd14e8d9b26270679263f4a5403f004eb53b68a5f9484dacb28de8e26df4d19017bf7c","first_seen":"2026-07-22T18:30:16.180779Z","last_seen":"2026-07-27T19:37:31.609707Z","times_seen":2601,"resource_available":true,"data":"InVzZSBzdHJpY3QiO3RoaXMuZGVmYXVsdF90cj10aGlzLmRlZmF1bHRfdHJ8fHt9OyhmdW5jdGlvbihfKXt2YXIgd2luZG93PXRoaXM7CnRyeXsKdmFyIEdnLEhnLElnLFhnLGNoLGloLGpoLGxoLG1oLG9oLHNoLHVoLHRoLEFoLEJoLEZoLERoLEVoLERnO18uRWc9ZnVuY3Rpb24oYSl7aWYoRGcudGVzdChhKSlyZXR1cm4gYX07Xy5GZz1mdW5jdGlvbihhLGIpe2EuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyfHwoYS5fX2Nsb3N1cmVfX2Vycm9yX19jb250ZXh0X185ODQzODI9e30pO2EuX19jbG9zdXJlX19lcnJvcl9fY29udGV4dF9fOTg0MzgyLnNldmVyaXR5PWJ9O0dnPWZ1bmN0aW9uKGEpe2lmKCFfLlVhfHwhXy5WYSlyZXR1cm4hMTtmb3IodmFyIGI9MDtiPF8uVmEuYnJhbmRzLmxlbmd0aDtiKyspe3ZhciBjPV8uVmEuYnJhbmRzW2JdLmJyYW5kO2lmKGMmJmMuaW5kZXhPZihhKSE9LTEpcmV0dXJuITB9cmV0dXJuITF9O0hnPWZ1bmN0aW9uKCl7cmV0dXJuIF8udygiRmlyZWZveCIpfHxfLncoIkZ4aU9TIil9OwpJZz1mdW5jdGlvbigpe3JldHVybiBfLldhKCk/R2coIkNocm9taXVtIik6KF8udygiQ2hyb21lIil8fF8udygiQ3JpT1MiKSkmJiEoXy5XYSgpPzA6Xy53KCJFZGdlIikpfHxfLncoIlNpbGsiKX07Xy5KZz1mdW5jdGlvbigpe3JldHVybiBfLncoIlNhZmFyaSIpJiYhKElnKCl8fChfLldhKCk/MDpfLncoIkNvYXN0IikpfHxfLlhhKCl8fChfLldhKCk/MDpfLncoIkVkZ2UiKSl8fChfLldhKCk/R2coIk1pY3Jvc29mdCBFZGdlIik6Xy53KCJFZGcvIikpfHwoXy5XYSgpP0dnKCJPcGVyYSIpOl8udygiT1BSIikpfHxIZygpfHxfLncoIlNpbGsiKXx8Xy53KCJBbmRyb2lkIikpfTtfLktnPWZ1bmN0aW9uKCl7cmV0dXJuIF8udygiQW5kcm9pZCIpJiYhKElnKCl8fEhnKCl8fF8uWGEoKXx8Xy53KCJTaWxrIikpfTsKXy5NZz1mdW5jdGlvbihhLGIpe2lmKGEhPW51bGwpe3ZhciBjO3ZhciBkPShjPUxnKSE9bnVsbD9jOkxnPXt9O2M9ZFthXXx8MDtjPj1ifHwoZFthXT1jKzEsYT1FcnJvcigpLF8uRmcoYSwiaW5jaWRlbnQiKSxfLnJiKGEpKX19O18uTmc9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0eXBlb2YgU3ltYm9sPT09ImZ1bmN0aW9uIiYmdHlwZW9mIFN5bWJvbCgpPT09InN5bWJvbCI/KGM9PT12b2lkIDA/MDpjKSYmU3ltYm9sLmZvciYmYT9TeW1ib2wuZm9yKGEpOmEhPW51bGw/U3ltYm9sKGEpOlN5bWJvbCgpOmJ9O18uUmc9ZnVuY3Rpb24oYSxiKXtfLk9nfHxfLkggaW4gYXx8UGcoYSxRZyk7YVtfLkhdfD1ifTtfLlNnPWZ1bmN0aW9uKGEsYil7Xy5PZ3x8Xy5IIGluIGF8fFBnKGEsUWcpO2FbXy5IXT1ifTtfLlRnPWZ1bmN0aW9uKGEpe18uUmcoYSwzNCk7cmV0dXJuIGF9O18uVWc9ZnVuY3Rpb24oYSl7Xy5SZyhhLDgxOTIpO3JldHVybiBhfTsKXy5XZz1mdW5jdGlvbihhLGIpe3JldHVybiBiPT09dm9pZCAwP2EuZyE9PV8uVmcmJiEhKDImKGEuSltfLkhdfDApKTohISgyJmIpJiZhLmchPT1fLlZnfTtYZz1mdW5jdGlvbihhKXthLlRsPSEwO3JldHVybiBhfTtfLmJoPWZ1bmN0aW9uKGEpe3ZhciBiPWE7aWYoWWcoYikpe2lmKCEvXlxzKig/Oi0/WzEtOV1cZCp8MCk/XHMqJC8udGVzdChiKSl0aHJvdyBFcnJvcihTdHJpbmcoYikpO31lbHNlIGlmKFpnKGIpJiYhTnVtYmVyLmlzU2FmZUludGVnZXIoYikpdGhyb3cgRXJyb3IoU3RyaW5nKGIpKTtyZXR1cm4gJGc/QmlnSW50KGEpOmE9YWgoYSk/YT8iMSI6IjAiOllnKGEpP2EudHJpbSgpfHwiMCI6U3RyaW5nKGEpfTsKY2g9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aD5iLmxlbmd0aClyZXR1cm4hMTtpZihhLmxlbmd0aDxiLmxlbmd0aHx8YT09PWIpcmV0dXJuITA7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1iW2NdO2lmKGQ+ZSlyZXR1cm4hMTtpZihkPGUpcmV0dXJuITB9fTtfLmhoPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEhPW51bGwmJmFbZGhdPT09ZWgpcmV0dXJuIGE7aWYoIUFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIGM/ZCYyP2JbXy5maF18fChiW18uZmhdPV8uZ2goYikpOm5ldyBiOnZvaWQgMDtjPWFbXy5IXXwwO2Q9Y3xkJjMyfGQmMjtkIT09YyYmXy5TZyhhLGQpO3JldHVybiBuZXcgYihhKX07Xy5naD1mdW5jdGlvbihhKXthPW5ldyBhO18uVGcoYS5KKTtyZXR1cm4gYX07aWg9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O2poPWZ1bmN0aW9uKGEpe3JldHVybiBhfTsKbGg9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2E9Xy5oaChhLGQsYyxmKTtlJiYoYT1fLmtoKGEpKTtyZXR1cm4gYX07bWg9ZnVuY3Rpb24oYSl7cmV0dXJuW2EsdGhpcy5nZXQoYSldfTtvaD1mdW5jdGlvbihhLGIpe2I8MTAwfHxfLk1nKG5oLDEpfTsKc2g9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZCE9PXZvaWQgMDtkPSEhZDt2YXIgZj1fLnBoKF8ucWgpLGc7IWUmJl8uT2cmJmYmJihnPWFbZl0pJiZnLlRrKG9oKTtmPVtdO3ZhciBoPWEubGVuZ3RoO2c9NDI5NDk2NzI5NTt2YXIgaz0hMSxsPSEhKGImNjQpLG49bD9iJjEyOD8wOi0xOnZvaWQgMDtpZighKGImMSkpe3ZhciBxPWgmJmFbaC0xXTtxIT1udWxsJiZ0eXBlb2YgcT09PSJvYmplY3QiJiZxLmNvbnN0cnVjdG9yPT09T2JqZWN0PyhoLS0sZz1oKTpxPXZvaWQgMDtpZihsJiYhKGImMTI4KSYmIWUpe2s9ITA7dmFyIHA7Zz0oKHA9cmgpIT1udWxsP3A6aWgpKGctbixuLGEscSx2b2lkIDApK259fWI9dm9pZCAwO2ZvcihlPTA7ZTxoO2UrKylpZihwPWFbZV0scCE9bnVsbCYmKHA9YyhwLGQpKSE9bnVsbClpZihsJiZlPj1nKXt2YXIgcj1lLW4sdD12b2lkIDA7KCh0PWIpIT1udWxsP3Q6Yj17fSlbcl09cH1lbHNlIGZbZV09cDtpZihxKWZvcih2YXIgQSBpbiBxKWE9cVtBXSxhIT0KbnVsbCYmKGE9YyhhLGQpKSE9bnVsbCYmKGg9K0EsZT12b2lkIDAsbCYmIU51bWJlci5pc05hTihoKSYmKGU9aCtuKTxnP2ZbZV09YTooaD12b2lkIDAsKChoPWIpIT1udWxsP2g6Yj17fSlbQV09YSkpO2ImJihrP2YucHVzaChiKTpmW2ddPWIpO3JldHVybiBmfTt1aD1mdW5jdGlvbihhKXthWzBdPXRoKGFbMF0pO2FbMV09dGgoYVsxXSk7cmV0dXJuIGF9Owp0aD1mdW5jdGlvbihhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgIm51bWJlciI6cmV0dXJuIE51bWJlci5pc0Zpbml0ZShhKT9hOiIiK2E7Y2FzZSAiYmlnaW50IjpyZXR1cm4oMCxfLnZoKShhKT9OdW1iZXIoYSk6IiIrYTtjYXNlICJib29sZWFuIjpyZXR1cm4gYT8xOjA7Y2FzZSAib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGEpKXt2YXIgYj1hW18uSF18MDtyZXR1cm4gYS5sZW5ndGg9PT0wJiZiJjE/dm9pZCAwOnNoKGEsYix0aCl9aWYoYSE9bnVsbCYmYVtkaF09PT1laClyZXR1cm4gXy53aChhKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgXy54aCYmYSBpbnN0YW5jZW9mIF8ueGgpcmV0dXJuIGEuZygpO2lmKGEgaW5zdGFuY2VvZiBfLnloKXJldHVybiBhPWEuc2l6ZSE9PTA/Xy56aChhLHVoKTp2b2lkIDAsYTtyZXR1cm59cmV0dXJuIGF9O18ud2g9ZnVuY3Rpb24oYSl7YT1hLko7cmV0dXJuIHNoKGEsYVtfLkhdfDAsdGgpfTsKXy5JPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gQWgoYSxiLGMsMjA0OCl9OwpBaD1mdW5jdGlvbihhLGIsYyxkKXtkPWQ9PT12b2lkIDA/MDpkO2lmKGE9PW51bGwpe3ZhciBlPTMyO2M/KGE9W2NdLGV8PTEyOCk6YT1bXTtiJiYoZT1lJi0xNjc2MDgzM3woYiYxMDIzKTw8MTQpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkoYSkpdGhyb3cgRXJyb3IoImJhIik7ZT1hW18uSF18MDtpZihfLk1jJiYxJmUpdGhyb3cgRXJyb3IoImNhIik7MjA0OCZlJiYhKDImZSkmJkJoKCk7aWYoZSYyNTYpdGhyb3cgRXJyb3IoImRhIik7aWYoZSY2NClyZXR1cm4oZXxkKSE9PWUmJl8uU2coYSxlfGQpLGE7aWYoYyYmKGV8PTEyOCxjIT09YVswXSkpdGhyb3cgRXJyb3IoImVhIik7YTp7Yz1hO2V8PTY0O3ZhciBmPWMubGVuZ3RoO2lmKGYpe3ZhciBnPWYtMSxoPWNbZ107aWYoaCE9bnVsbCYmdHlwZW9mIGg9PT0ib2JqZWN0IiYmaC5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7Yj1lJjEyOD8wOi0xO2ctPWI7aWYoZz49MTAyNCl0aHJvdyBFcnJvcigiZ2EiKTtmb3IodmFyIGsgaW4gaClmPStrLApmPGcmJihjW2YrYl09aFtrXSxkZWxldGUgaFtrXSk7ZT1lJi0xNjc2MDgzM3woZyYxMDIzKTw8MTQ7YnJlYWsgYX19aWYoYil7az1NYXRoLm1heChiLGYtKGUmMTI4PzA6LTEpKTtpZihrPjEwMjQpdGhyb3cgRXJyb3IoImhhIik7ZT1lJi0xNjc2MDgzM3woayYxMDIzKTw8MTR9fX1fLlNnKGEsZXw2NHxkKTtyZXR1cm4gYX07Qmg9ZnVuY3Rpb24oKXtpZihfLk1jKXRocm93IEVycm9yKCJmYSIpO18uTWcoQ2gsNSl9OwpGaD1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSl7dmFyIGM9YVtfLkhdfDA7cmV0dXJuIGEubGVuZ3RoPT09MCYmYyYxP3ZvaWQgMDpEaChhLGMsYil9aWYoYSE9bnVsbCYmYVtkaF09PT1laClyZXR1cm4gRWgoYSk7aWYoYSBpbnN0YW5jZW9mIF8ueWgpe2I9YS5LYjtpZihiJjIpcmV0dXJuIGE7aWYoIWEuc2l6ZSlyZXR1cm47Yz1fLlRnKF8uemgoYSkpO2lmKGEuR2IpZm9yKGE9MDthPGMubGVuZ3RoO2ErKyl7dmFyIGQ9Y1thXSxlPWRbMV07ZT09bnVsbHx8dHlwZW9mIGUhPT0ib2JqZWN0Ij9lPXZvaWQgMDplIT1udWxsJiZlW2RoXT09PWVoP2U9RWgoZSk6QXJyYXkuaXNBcnJheShlKT9lPURoKGUsZVtfLkhdfDAsISEoYiYzMikpOmU9dm9pZCAwO2RbMV09ZX1yZXR1cm4gY31pZigiZnVuY3Rpb24iPT10eXBlb2YgXy54aCYmYSBpbnN0YW5jZW9mIF8ueGgpcmV0dXJuIGF9OwpEaD1mdW5jdGlvbihhLGIsYyl7aWYoYiYyKXJldHVybiBhOyFjfHw0MDk2JmJ8fDE2JmI/YT1fLkdoKGEsYiwhMSxjJiYhKGImMTYpKTooXy5SZyhhLDM0KSxiJjQmJk9iamVjdC5mcmVlemUoYSkpO3JldHVybiBhfTtfLkhoPWZ1bmN0aW9uKGEsYixjKXthPW5ldyBhLmNvbnN0cnVjdG9yKGIpO2MmJihhLmc9Xy5WZyk7YS5oPV8uVmc7cmV0dXJuIGF9O0VoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuSixjPWJbXy5IXXwwO3JldHVybiBfLldnKGEsYyk/YTpfLkloKGEsYixjKT9fLkhoKGEsYik6Xy5HaChiLGMpfTtfLkdoPWZ1bmN0aW9uKGEsYixjLGQpe2QhPW51bGx8fChkPSEhKDM0JmIpKTthPXNoKGEsYixGaCxkKTtkPTMyO2MmJihkfD0yKTtiPWImMTY3NjkyMTd8ZDtfLlNnKGEsYik7cmV0dXJuIGF9OwpfLmtoPWZ1bmN0aW9uKGEpe3ZhciBiPWEuSixjPWJbXy5IXXwwO3JldHVybiBfLldnKGEsYyk/Xy5JaChhLGIsYyk/Xy5IaChhLGIsITApOm5ldyBhLmNvbnN0cnVjdG9yKF8uR2goYixjLCExKSk6YX07Xy5JaD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGMmMj8hMDpjJjMyJiYhKGMmNDA5Nik/KF8uU2coYixjfDIpLGEuZz1fLlZnLCEwKTohMX07Xy5waD1mdW5jdGlvbihhKXtyZXR1cm4gYX07RGc9L15ccyooPyFqYXZhc2NyaXB0OikoPzpbXHcrLi1dKzp8W146Lz8jXSooPzpbLz8jXXwkKSkvaTtfLkpoPUhnKCk7Xy5LaD1fLlphKCl8fF8udygiaVBvZCIpO18uTGg9Xy53KCJpUGFkIik7Xy5NaD1fLktnKCk7Xy5OaD1JZygpO18uT2g9Xy5KZygpJiYhXy4kYSgpO18uUGg9IV8uU2MmJnR5cGVvZiBidG9hPT09ImZ1bmN0aW9uIjt2YXIgTGc9dm9pZCAwO3ZhciBRaCxuaCxDaCxkaDtfLk9nPXR5cGVvZiBTeW1ib2w9PT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sKCk9PT0ic3ltYm9sIjtRaD1fLk5nKCJqYXMiLHZvaWQgMCwhMCk7Xy5maD1fLk5nKHZvaWQgMCwiMGRpIik7Xy5xaD1fLk5nKHZvaWQgMCxTeW1ib2woKSk7Xy5SaD1fLk5nKHZvaWQgMCwiMHViIik7bmg9Xy5OZyh2b2lkIDAsIjB1YnMiKTtDaD1fLk5nKHZvaWQgMCwiMGFjdGsiKTtkaD1fLk5nKCJtX20iLCJYbCIsITApO18uU2g9Xy5OZygpO3ZhciBRZyxQZyxVaDtRZz17ZWk6e3ZhbHVlOjAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITF9fTtQZz1PYmplY3QuZGVmaW5lUHJvcGVydGllcztfLkg9Xy5PZz9RaDoiZWkiO1VoPVtdO18uU2coVWgsNyk7Xy5UaD1PYmplY3QuZnJlZXplKFVoKTt2YXIgZWgsVmg7ZWg9e307Xy5WZz17fTtWaD1mdW5jdGlvbihhLGIsYyl7dGhpcy5nPWE7dGhpcy5oPWI7dGhpcy5qPWN9O1ZoLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nLm5leHQoKTthLmRvbmV8fChhLnZhbHVlPXRoaXMuaC5jYWxsKHRoaXMuaixhLnZhbHVlKSk7cmV0dXJuIGF9O1ZoLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O18uV2g9T2JqZWN0LmZyZWV6ZSh7fSk7Xy5YaD1PYmplY3QuZnJlZXplKHt9KTt2YXIgWmc9WGcoZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9KSxZZz1YZyhmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIn0pLGFoPVhnKGZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09PSJib29sZWFuIn0pO3ZhciAkZz10eXBlb2YgXy52LkJpZ0ludD09PSJmdW5jdGlvbiImJnR5cGVvZiBfLnYuQmlnSW50KDApPT09ImJpZ2ludCI7dmFyICRoLFloLGFpLFpoO18udmg9WGcoZnVuY3Rpb24oYSl7cmV0dXJuICRnP2E+PVloJiZhPD1aaDphWzBdPT09Ii0iP2NoKGEsJGgpOmNoKGEsYWkpfSk7JGg9TnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIudG9TdHJpbmcoKTtZaD0kZz9CaWdJbnQoTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpOnZvaWQgMDthaT1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUi50b1N0cmluZygpO1poPSRnP0JpZ0ludChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik6dm9pZCAwO18uYmk9dHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiI/QmlnSW50LmFzSW50Tjp2b2lkIDA7Xy5jaT1OdW1iZXIuaXNTYWZlSW50ZWdlcjtfLmRpPU51bWJlci5pc0Zpbml0ZTtfLmVpPU1hdGgudHJ1bmM7dmFyIGZpPWZ1bmN0aW9uKCl7dHJ5e3ZhciBhPWZ1bmN0aW9uKCl7cmV0dXJuKDAsXy5UYikoTWFwLFtdLHRoaXMuY29uc3RydWN0b3IpfTtfLkIoYSxNYXApO18uUWMobmV3IGEpO3JldHVybiExfWNhdGNoKGIpe3JldHVybiEwfX0oKSxnaT1mdW5jdGlvbigpe3RoaXMuZz1uZXcgTWFwfSxoaSxpaTtfLm09Z2kucHJvdG90eXBlO18ubS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZy5nZXQoYSl9O18ubS5zZXQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmcuc2V0KGEsYik7dGhpcy5zaXplPXRoaXMuZy5zaXplO3JldHVybiB0aGlzfTtfLm0uZGVsZXRlPWZ1bmN0aW9uKGEpe2E9dGhpcy5nLmRlbGV0ZShhKTt0aGlzLnNpemU9dGhpcy5nLnNpemU7cmV0dXJuIGF9O18ubS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuZy5jbGVhcigpO3RoaXMuc2l6ZT10aGlzLmcuc2l6ZX07Xy5tLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5nLmhhcyhhKX07Xy5tLmVudHJpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLmVudHJpZXMoKX07Cl8ubS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5rZXlzKCl9O18ubS52YWx1ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLnZhbHVlcygpfTtfLm0uZm9yRWFjaD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmcuZm9yRWFjaChhLGIpfTtnaS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVudHJpZXMoKX07aGk9ZnVuY3Rpb24oKXtpZihmaSlyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGdpLnByb3RvdHlwZSxNYXAucHJvdG90eXBlKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhnaS5wcm90b3R5cGUse3NpemU6e3ZhbHVlOjAsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITB9fSksZ2k7dmFyIGE9ZnVuY3Rpb24oKXtyZXR1cm4oMCxfLlRiKShNYXAsW10sdGhpcy5jb25zdHJ1Y3Rvcil9O18uQihhLE1hcCk7cmV0dXJuIGF9KCk7Cl8ueWg9ZnVuY3Rpb24oYSxiLGMsZCl7Yz1jPT09dm9pZCAwP2poOmM7ZD1kPT09dm9pZCAwP2poOmQ7dmFyIGU9aGkuY2FsbCh0aGlzKXx8dGhpcztlLktiPWFbXy5IXXwwO2UuR2I9YjtlLmFkPWM7ZS5rZz1lLkdiP2xoOmQ7Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspe3ZhciBnPWFbZl0saD1jKGdbMF0sITEsITApLGs9Z1sxXTtiP2s9PT12b2lkIDAmJihrPW51bGwpOms9ZChnWzFdLCExLCEwLHZvaWQgMCx2b2lkIDAsZS5LYik7aGkucHJvdG90eXBlLnNldC5jYWxsKGUsaCxrKX1yZXR1cm4gZX07Xy5CKF8ueWgsaGkpO2lpPWZ1bmN0aW9uKGEpe2lmKGEuS2ImMil0aHJvdyBFcnJvcigiYWEiKTt9O18uemg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5VZyhBcnJheS5mcm9tKGhpLnByb3RvdHlwZS5lbnRyaWVzLmNhbGwoYSksYikpfTtfLm09Xy55aC5wcm90b3R5cGU7Xy5tLmNsZWFyPWZ1bmN0aW9uKCl7aWkodGhpcyk7aGkucHJvdG90eXBlLmNsZWFyLmNhbGwodGhpcyl9OwpfLm0uZGVsZXRlPWZ1bmN0aW9uKGEpe2lpKHRoaXMpO3JldHVybiBoaS5wcm90b3R5cGUuZGVsZXRlLmNhbGwodGhpcyx0aGlzLmFkKGEsITAsITEpKX07Xy5tLmVudHJpZXM9ZnVuY3Rpb24oKXtpZih0aGlzLkdiKXt2YXIgYT1oaS5wcm90b3R5cGUua2V5cy5jYWxsKHRoaXMpO2E9bmV3IFZoKGEsbWgsdGhpcyl9ZWxzZSBhPWhpLnByb3RvdHlwZS5lbnRyaWVzLmNhbGwodGhpcyk7cmV0dXJuIGF9O18ubS52YWx1ZXM9ZnVuY3Rpb24oKXtpZih0aGlzLkdiKXt2YXIgYT1oaS5wcm90b3R5cGUua2V5cy5jYWxsKHRoaXMpO2E9bmV3IFZoKGEsXy55aC5wcm90b3R5cGUuZ2V0LHRoaXMpfWVsc2UgYT1oaS5wcm90b3R5cGUudmFsdWVzLmNhbGwodGhpcyk7cmV0dXJuIGF9OwpfLm0uZm9yRWFjaD1mdW5jdGlvbihhLGIpe3RoaXMuR2I/aGkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0aGlzLGZ1bmN0aW9uKGMsZCxlKXthLmNhbGwoYixlLmdldChkKSxkLGUpfSk6aGkucHJvdG90eXBlLmZvckVhY2guY2FsbCh0aGlzLGEsYil9O18ubS5zZXQ9ZnVuY3Rpb24oYSxiKXtpaSh0aGlzKTthPXRoaXMuYWQoYSwhMCwhMSk7cmV0dXJuIGE9PW51bGw/dGhpczpiPT1udWxsPyhoaS5wcm90b3R5cGUuZGVsZXRlLmNhbGwodGhpcyxhKSx0aGlzKTpoaS5wcm90b3R5cGUuc2V0LmNhbGwodGhpcyxhLHRoaXMua2coYiwhMCwhMCx0aGlzLkdiLCExLHRoaXMuS2IpKX07Xy5tLmhhcz1mdW5jdGlvbihhKXtyZXR1cm4gaGkucHJvdG90eXBlLmhhcy5jYWxsKHRoaXMsdGhpcy5hZChhLCExLCExKSl9OwpfLm0uZ2V0PWZ1bmN0aW9uKGEpe2E9dGhpcy5hZChhLCExLCExKTt2YXIgYj1oaS5wcm90b3R5cGUuZ2V0LmNhbGwodGhpcyxhKTtpZihiIT09dm9pZCAwKXt2YXIgYz10aGlzLkdiO3JldHVybiBjPyhjPXRoaXMua2coYiwhMSwhMCxjLHRoaXMuTmssdGhpcy5LYiksYyE9PWImJmhpLnByb3RvdHlwZS5zZXQuY2FsbCh0aGlzLGEsYyksYyk6Yn19O18ueWgucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbnRyaWVzKCl9O18ueWgucHJvdG90eXBlLnRvSlNPTj12b2lkIDA7dmFyIHJoO18uamk9Xy5iaCgwKTtfLko9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuSj1fLkkoYSxiLGMpfTtfLkoucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBfLndoKHRoaXMpfTtfLkoucHJvdG90eXBlW2RoXT1laDtfLkoucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSi50b1N0cmluZygpfTsKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIExpLE1pLE5pLE9pLFJpLFBpLFFpLFNpLFVpLFdpLFhpO18ua2k9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5lYy5hcHBseSgxLGFyZ3VtZW50cyk7aWYoYi5sZW5ndGg9PT0wKXJldHVybiBfLk1hKGFbMF0pO2Zvcih2YXIgYz1hWzBdLGQ9MDtkPGIubGVuZ3RoO2QrKyljKz1lbmNvZGVVUklDb21wb25lbnQoYltkXSkrYVtkKzFdO3JldHVybiBfLk1hKGMpfTtfLmxpPWZ1bmN0aW9uKGEpe18uUmcoYSwzMik7cmV0dXJuIGF9O18ubWk9ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEpfTtfLm5pPWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhIT09ImJvb2xlYW4iKXRocm93IEVycm9yKCIkYCIrXy5vYyhhKSsiYCIrYSk7cmV0dXJuIGF9O18ub2k9ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PT0iYm9vbGVhbiIpcmV0dXJuIGE7aWYodHlwZW9mIGE9PT0ibnVtYmVyIilyZXR1cm4hIWF9OwpfLnBpPWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsfHx0eXBlb2YgYT09PSJzdHJpbmciP2E6dm9pZCAwfTtfLnFpPWZ1bmN0aW9uKGEpe2lmKGEuZyE9PV8uVmcpcmV0dXJuITE7dmFyIGI9YS5KO2I9Xy5HaChiLGJbXy5IXXwwKTtfLlJnKGIsMjA0OCk7YS5KPWI7YS5nPXZvaWQgMDthLmg9dm9pZCAwO3JldHVybiEwfTtfLnJpPWZ1bmN0aW9uKGEpe2lmKCFfLnFpKGEpJiZfLldnKGEsYS5KW18uSF18MCkpdGhyb3cgRXJyb3IoKTt9O18uc2k9ZnVuY3Rpb24oYSxiKXtiPT09dm9pZCAwJiYoYj1hW18uSF18MCk7YiYzMiYmIShiJjQwOTYpJiZfLlNnKGEsYnw0MDk2KX07Cl8udGk9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1jKyhlPzA6LTEpLGc9YS5sZW5ndGgtMTtpZihnPj0xKyhlPzA6LTEpJiZmPj1nKXt2YXIgaD1hW2ddO2lmKGghPW51bGwmJnR5cGVvZiBoPT09Im9iamVjdCImJmguY29uc3RydWN0b3I9PT1PYmplY3QpcmV0dXJuIGhbY109ZCxifWlmKGY8PWcpcmV0dXJuIGFbZl09ZCxiO2lmKGQhPT12b2lkIDApe3ZhciBrO2c9KChrPWIpIT1udWxsP2s6Yj1hW18uSF18MCk+PjE0JjEwMjN8fDUzNjg3MDkxMjtjPj1nP2QhPW51bGwmJihmPXt9LGFbZysoZT8wOi0xKV09KGZbY109ZCxmKSk6YVtmXT1kfXJldHVybiBifTtfLkJpPWZ1bmN0aW9uKGEsYil7YT1fLnVpKGEsYix2b2lkIDApO3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6Xy5UaH07Xy5DaT1mdW5jdGlvbihhLGIpezImYiYmKGF8PTIpO3JldHVybiBhfDF9O18uRGk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT0oMiZiP2F8MjphJi0zKSYtMjczfTsKXy5FaT1mdW5jdGlvbihhKXtyZXR1cm4hISgyJmEpJiYhISg0JmEpfHwhISgyNTYmYSl9O18uRmk9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgaz1iO2Y9PT0xfHwoZiE9PTQ/MDoyJmJ8fCEoMTYmYikmJjMyJmQpP18uRWkoYil8fChifD0hYS5sZW5ndGh8fGcmJiEoNDA5NiZiKXx8MzImZCYmISg0MDk2JmJ8fDE2JmIpPzI6MjU2LGIhPT1rJiZfLlNnKGEsYiksT2JqZWN0LmZyZWV6ZShhKSk6KGY9PT0yJiZfLkVpKGIpJiYoYT1fLm1pKGEpLGs9MCxiPV8uRGkoYixkKSxkPV8udGkoYyxkLGUsYSkpLF8uRWkoYil8fChofHwoYnw9MTYpLGIhPT1rJiZfLlNnKGEsYikpKTsyJmJ8fCEoNDA5NiZifHwxNiZiKXx8Xy5zaShjLGQpO3JldHVybiBhfTtfLkdpPWZ1bmN0aW9uKGEsYixjLGQpe18ucmkoYSk7dmFyIGU9YS5KO18udGkoZSxlW18uSF18MCxiLChkPT09IjAiP051bWJlcihjKT09PTA6Yz09PWQpP3ZvaWQgMDpjKTtyZXR1cm4gYX07Cl8uSGk9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0hMTtkPV8udWkoYSxkLGUsZnVuY3Rpb24oZyl7dmFyIGg9Xy5oaChnLGMsITEsYik7Zj1oIT09ZyYmaCE9bnVsbDtyZXR1cm4gaH0pO2lmKGQhPW51bGwpcmV0dXJuIGYmJiFfLldnKGQpJiZfLnNpKGEsYiksZH07Cl8uSWk9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt2YXIgaz1fLldnKGEsYyk7Zj1rPzE6ZjtnPSEhZ3x8Zj09PTM7az1oJiYhazsoZj09PTJ8fGspJiZfLnFpKGEpJiYoYj1hLkosYz1iW18uSF18MCk7YT1fLkJpKGIsZSk7dmFyIGw9YT09PV8uVGg/NzphW18uSF18MCxuPV8uQ2kobCxjKTtpZihoPSEoNCZuKSl7dmFyIHE9YSxwPWMscj0hISgyJm4pO3ImJihwfD0yKTtmb3IodmFyIHQ9IXIsQT0hMCxEPTAsRT0wO0Q8cS5sZW5ndGg7RCsrKXt2YXIgYmE9Xy5oaChxW0RdLGQsITEscCk7aWYoYmEgaW5zdGFuY2VvZiBkKXtpZighcil7dmFyIFo9Xy5XZyhiYSk7dCYmKHQ9IVopO0EmJihBPVopfXFbRSsrXT1iYX19RTxEJiYocS5sZW5ndGg9RSk7bnw9NDtuPUE/biYtNDA5NzpufDQwOTY7bj10P258ODpuJi05fW4hPT1sJiYoXy5TZyhhLG4pLDImbiYmT2JqZWN0LmZyZWV6ZShhKSk7aWYoayYmISg4Jm58fCFhLmxlbmd0aCYmKGY9PT0xfHwoZiE9PTQ/MDoyJm58fCEoMTYmbikmJgozMiZjKSkpKXtfLkVpKG4pJiYoYT1fLm1pKGEpLG49Xy5EaShuLGMpLGM9Xy50aShiLGMsZSxhKSk7ZD1hO2s9bjtmb3IobD0wO2w8ZC5sZW5ndGg7bCsrKXE9ZFtsXSxuPV8ua2gocSkscSE9PW4mJihkW2xdPW4pO2t8PTg7bj1rPWQubGVuZ3RoP2t8NDA5NjprJi00MDk3O18uU2coYSxuKX1yZXR1cm4gYT1fLkZpKGEsbixiLGMsZSxmLGgsZyl9O18uSmk9ZnVuY3Rpb24oYSl7YT09bnVsbCYmKGE9dm9pZCAwKTtyZXR1cm4gYX07Xy5LaT1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7Yj1KU09OLnBhcnNlKGIpO2lmKCFBcnJheS5pc0FycmF5KGIpKXRocm93IEVycm9yKCJpYWAiK18ub2MoYikrImAiK2IpO18uVGcoYik7cmV0dXJuIG5ldyBhKGIpfX07TGk9ZnVuY3Rpb24oYSl7aWYoYS5HKXRocm93IG5ldyBUeXBlRXJyb3IoImYiKTthLkc9ITB9O01pPWZ1bmN0aW9uKGEsYil7YS5sPXtiZjpiLENmOiEwfTthLmc9YS5DfHxhLm99OwpOaT1mdW5jdGlvbihhLGIpe2EucmF3PWI7T2JqZWN0LmZyZWV6ZSYmKE9iamVjdC5mcmVlemUoYSksT2JqZWN0LmZyZWV6ZShiKSk7cmV0dXJuIGF9O18uSz1mdW5jdGlvbihhKXtyZXR1cm4gTmkoYSxhKX07T2k9ZnVuY3Rpb24oYSl7dGhpcy5nPW5ldyBfLkY7dGhpcy5oPWF9O1JpPWZ1bmN0aW9uKGEsYil7TGkoYS5nKTt2YXIgYz1hLmcuQTtpZihjKXJldHVybiBQaShhLCJyZXR1cm4iaW4gYz9jWyJyZXR1cm4iXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLmcucmV0dXJuKTthLmcucmV0dXJuKGIpO3JldHVybiBRaShhKX07UGk9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLmcuQSxjKTtfLmNjKGUpO2lmKCFlLmRvbmUpcmV0dXJuIGEuZy5HPSExLGU7dmFyIGY9ZS52YWx1ZX1jYXRjaChnKXtyZXR1cm4gYS5nLkE9bnVsbCxNaShhLmcsZyksUWkoYSl9YS5nLkE9bnVsbDtkLmNhbGwoYS5nLGYpO3JldHVybiBRaShhKX07ClFpPWZ1bmN0aW9uKGEpe2Zvcig7YS5nLmc7KXRyeXt2YXIgYj1hLmgoYS5nKTtpZihiKXJldHVybiBhLmcuRz0hMSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChjKXthLmcuaj12b2lkIDAsTWkoYS5nLGMpfWEuZy5HPSExO2lmKGEuZy5sKXtiPWEuZy5sO2EuZy5sPW51bGw7aWYoYi5DZil0aHJvdyBiLmJmO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKU2k9ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe0xpKGEuZyk7YS5nLkE/Yj1QaShhLGEuZy5BLm5leHQsYixhLmcuSSk6KGEuZy5JKGIpLGI9UWkoYSkpO3JldHVybiBifTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe0xpKGEuZyk7YS5nLkE/Yj1QaShhLGEuZy5BWyJ0aHJvdyJdLGIsYS5nLkkpOihNaShhLmcsYiksYj1RaShhKSk7cmV0dXJuIGJ9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBSaShhLGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319O1VpPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07Xy5WaT1mdW5jdGlvbihhKXtyZXR1cm4gVWkobmV3IFNpKG5ldyBPaShhKSkpfTsKV2k9ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKC9cLShbYS16XSkvZyxmdW5jdGlvbihiLGMpe3JldHVybiBjLnRvVXBwZXJDYXNlKCl9KX07WGk9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShSZWdFeHAoIihefFtcXHNdKykoW2Etel0pIiwiZyIpLGZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYytkLnRvVXBwZXJDYXNlKCl9KX07Xy5ZaT1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5vZSlyZXR1cm4gYTt2YXIgYj1uZXcgXy5vZShfLmxlKTtfLm5lKGIsMixhKTtyZXR1cm4gYn07Cl8udWk9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYj09PS0xKXJldHVybiBudWxsO3ZhciBlPWIrKGM/MDotMSksZj1hLmxlbmd0aC0xO2lmKCEoZjwxKyhjPzA6LTEpKSl7aWYoZT49Zil7dmFyIGc9YVtmXTtpZihnIT1udWxsJiZ0eXBlb2YgZz09PSJvYmplY3QiJiZnLmNvbnN0cnVjdG9yPT09T2JqZWN0KXtjPWdbYl07dmFyIGg9ITB9ZWxzZSBpZihlPT09ZiljPWc7ZWxzZSByZXR1cm59ZWxzZSBjPWFbZV07aWYoZCYmYyE9bnVsbCl7ZD1kKGMpO2lmKGQ9PW51bGwpcmV0dXJuIGQ7aWYoIU9iamVjdC5pcyhkLGMpKXJldHVybiBoP2dbYl09ZDphW2VdPWQsZH1yZXR1cm4gY319O18uWmk9ZnVuY3Rpb24oYSxiLGMsZCxlKXtiPV8udWkoYS5KLGIsYyxlKTtpZihiIT09bnVsbHx8ZCYmYS5oIT09Xy5WZylyZXR1cm4gYn07Xy4kaT1mdW5jdGlvbihhLGIsYyl7Xy5yaShhKTt2YXIgZD1hLko7Xy50aShkLGRbXy5IXXwwLGIsYyk7cmV0dXJuIGF9OwpfLmFqPWZ1bmN0aW9uKGEpe3JldHVybiBhPT09Xy5XaD8yOjR9O18uYmo9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5KLGY9ZVtfLkhdfDA7Yj1fLkhpKGUsZixiLGMsZCk7aWYoYj09bnVsbClyZXR1cm4gYjtmPWVbXy5IXXwwO2lmKCFfLldnKGEsZikpe3ZhciBnPV8ua2goYik7ZyE9PWImJihfLnFpKGEpJiYoZT1hLkosZj1lW18uSF18MCksYj1nLGY9Xy50aShlLGYsYyxiLGQpLF8uc2koZSxmKSl9cmV0dXJuIGJ9O18uY2o9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuSjtyZXR1cm4gXy5JaShhLGQsZFtfLkhdfDAsYixjLF8uYWooKSwhMSwhMCl9O18uTD1mdW5jdGlvbihhLGIsYyl7Yz1fLkppKGMpO18uJGkoYSxiLGMpO2MmJiFfLldnKGMpJiZfLnNpKGEuSik7cmV0dXJuIGF9O18uTT1mdW5jdGlvbihhLGIpe3ZhciBjPWM9PT12b2lkIDA/ITE6YzthPV8ub2koXy5aaShhLGIpKTtyZXR1cm4gYSE9bnVsbD9hOmN9OwpfLk49ZnVuY3Rpb24oYSxiKXt2YXIgYz1jPT09dm9pZCAwPyIiOmM7dmFyIGQ7cmV0dXJuKGQ9Xy5waShfLlppKGEsYikpKSE9bnVsbD9kOmN9O18uZGo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1jPT09dm9pZCAwPzA6YzthPV8uWmkoYSxiKTthPWE9PW51bGw/YTooMCxfLmRpKShhKT9hfDA6dm9pZCAwO3JldHVybiBhIT1udWxsP2E6Y307Xy5laj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8uR2koYSxiLGM9PW51bGw/YzpfLm5pKGMpLCExKX07Xy5maj1mdW5jdGlvbihhLGIpe2lmKGI9PW51bGx8fGI9PSIiKXJldHVybiBuZXcgYTtiPUpTT04ucGFyc2UoYik7aWYoIUFycmF5LmlzQXJyYXkoYikpdGhyb3cgRXJyb3IoImphIik7cmV0dXJuIG5ldyBhKF8ubGkoYikpfTt2YXIgaWosZ2osamo7Xy5oaj1mdW5jdGlvbihhLGIsYyl7aWYodHlwZW9mIGI9PT0ic3RyaW5nIilnaihhLGMsYik7ZWxzZSBmb3IodmFyIGQgaW4gYilnaihhLGJbZF0sZCl9O2lqPS9eLS0uKy87Z2o9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWpqW2NdO2lmKCFkKXt2YXIgZT1XaShjKTtkPWU7YS5zdHlsZVtlXT09PXZvaWQgMCYmKGU9KF8uVmM/IldlYmtpdCI6Xy5VYz8iTW96IjpudWxsKStYaShlKSxhLnN0eWxlW2VdIT09dm9pZCAwJiYoZD1lKSk7ampbY109ZH0oYz1kKSYmKGlqLnRlc3QoYyk/YS5zdHlsZS5zZXRQcm9wZXJ0eShjLGIpOmEuc3R5bGVbY109Yil9O2pqPXt9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgbGosb2oscGoscWosdGosdWosdmosd2oseGoseWosQWosQ2osRGosRWosRmosR2osSGosSWosS2osTmosT2osWGosWWosYmssbmosbWosY2ssZWsscmosc2osemosbms7Xy5raj1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5EYylyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJ0Iik7fTtsaj1mdW5jdGlvbihhKXt2YXIgYj1hLkosYz1iW18uSF18MDtyZXR1cm4gXy5JaChhLGIsYyk/Xy5IaChhLGIsITApOm5ldyBhLmNvbnN0cnVjdG9yKF8uR2goYixjLCExKSl9Owpvaj1mdW5jdGlvbihhLGIpe2I9PT12b2lkIDAmJihiPTApO2lmKCFtail7bWo9e307Zm9yKHZhciBjPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIuc3BsaXQoIiIpLGQ9WyIrLz0iLCIrLyIsIi1fPSIsIi1fLiIsIi1fIl0sZT0wO2U8NTtlKyspe3ZhciBmPWMuY29uY2F0KGRbZV0uc3BsaXQoIiIpKTtualtlXT1mO2Zvcih2YXIgZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddO21qW2hdPT09dm9pZCAwJiYobWpbaF09Zyl9fX1iPW5qW2JdO2M9QXJyYXkoTWF0aC5mbG9vcihhLmxlbmd0aC8zKSk7ZD1iWzY0XXx8IiI7Zm9yKGU9Zj0wO2Y8YS5sZW5ndGgtMjtmKz0zKXt2YXIgaz1hW2ZdLGw9YVtmKzFdO2g9YVtmKzJdO2c9YltrPj4yXTtrPWJbKGsmMyk8PDR8bD4+NF07bD1iWyhsJjE1KTw8MnxoPj42XTtoPWJbaCY2M107Y1tlKytdPWcraytsK2h9Zz0wO2g9ZDtzd2l0Y2goYS5sZW5ndGgtZil7Y2FzZSAyOmc9CmFbZisxXSxoPWJbKGcmMTUpPDwyXXx8ZDtjYXNlIDE6YT1hW2ZdLGNbZV09YlthPj4yXStiWyhhJjMpPDw0fGc+PjRdK2grZH1yZXR1cm4gYy5qb2luKCIiKX07cGo9ZnVuY3Rpb24oYSl7YT1FcnJvcihhKTtfLkZnKGEsIndhcm5pbmciKTtyZXR1cm4gYX07cWo9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJpZ0ludD09PSJmdW5jdGlvbiJ9O3RqPWZ1bmN0aW9uKGEpe3ZhciBiPWE+Pj4wO3JqPWI7c2o9KGEtYikvNDI5NDk2NzI5Nj4+PjB9O3VqPWZ1bmN0aW9uKGEsYil7Yj1+YjthP2E9fmErMTpiKz0xO3JldHVyblthLGJdfTt2aj1mdW5jdGlvbihhKXtpZihhPDApe3RqKC1hKTt2YXIgYj1fLkModWoocmosc2opKTthPWIubmV4dCgpLnZhbHVlO2I9Yi5uZXh0KCkudmFsdWU7cmo9YT4+PjA7c2o9Yj4+PjB9ZWxzZSB0aihhKX07d2o9ZnVuY3Rpb24oYSl7YT1TdHJpbmcoYSk7cmV0dXJuIjAwMDAwMDAiLnNsaWNlKGEubGVuZ3RoKSthfTsKeGo9ZnVuY3Rpb24oYSxiKXtiPj4+PTA7YT4+Pj0wO2lmKGI8PTIwOTcxNTEpdmFyIGM9IiIrKDQyOTQ5NjcyOTYqYithKTtlbHNlIHFqKCk/Yz0iIisoQmlnSW50KGIpPDxCaWdJbnQoMzIpfEJpZ0ludChhKSk6KGM9KGE+Pj4yNHxiPDw4KSYxNjc3NzIxNSxiPWI+PjE2JjY1NTM1LGE9KGEmMTY3NzcyMTUpK2MqNjc3NzIxNitiKjY3MTA2NTYsYys9Yio4MTQ3NDk3LGIqPTIsYT49MUU3JiYoYys9YS8xRTc+Pj4wLGElPTFFNyksYz49MUU3JiYoYis9Yy8xRTc+Pj4wLGMlPTFFNyksYz1iK3dqKGMpK3dqKGEpKTtyZXR1cm4gY307eWo9ZnVuY3Rpb24oKXt2YXIgYT1yaixiPXNqO2ImMjE0NzQ4MzY0OD9xaigpP2E9IiIrKEJpZ0ludChifDApPDxCaWdJbnQoMzIpfEJpZ0ludChhPj4+MCkpOihiPV8uQyh1aihhLGIpKSxhPWIubmV4dCgpLnZhbHVlLGI9Yi5uZXh0KCkudmFsdWUsYT0iLSIreGooYSxiKSk6YT14aihhLGIpO3JldHVybiBhfTsKQWo9ZnVuY3Rpb24oYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlICJiaWdpbnQiOnJldHVybiEwO2Nhc2UgIm51bWJlciI6cmV0dXJuKDAsXy5kaSkoYSk7Y2FzZSAic3RyaW5nIjpyZXR1cm4gemoudGVzdChhKTtkZWZhdWx0OnJldHVybiExfX07Xy5Caj1mdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJudW1iZXIiKXRocm93IHBqKCJpbnQzMiIpO2lmKCEoMCxfLmRpKShhKSl0aHJvdyBwaigiaW50MzIiKTtyZXR1cm4gYXwwfTtDaj1mdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBhO2lmKHR5cGVvZiBhPT09InN0cmluZyImJmEpYT0rYTtlbHNlIGlmKHR5cGVvZiBhIT09Im51bWJlciIpcmV0dXJuO3JldHVybigwLF8uZGkpKGEpP2F8MDp2b2lkIDB9OwpEaj1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aDtpZihhWzBdPT09Ii0iP2I8MjB8fGI9PT0yMCYmYTw9Ii05MjIzMzcyMDM2ODU0Nzc1ODA4IjpiPDE5fHxiPT09MTkmJmE8PSI5MjIzMzcyMDM2ODU0Nzc1ODA3IilyZXR1cm4gYTtpZihhLmxlbmd0aDwxNil2aihOdW1iZXIoYSkpO2Vsc2UgaWYocWooKSlhPUJpZ0ludChhKSxyaj1OdW1iZXIoYSZCaWdJbnQoNDI5NDk2NzI5NSkpPj4+MCxzaj1OdW1iZXIoYT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO2Vsc2V7Yj0rKGFbMF09PT0iLSIpO3NqPXJqPTA7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9YixlPShjLWIpJTYrYjtlPD1jO2Q9ZSxlKz02KWQ9TnVtYmVyKGEuc2xpY2UoZCxlKSksc2oqPTFFNixyaj1yaioxRTYrZCxyaj49NDI5NDk2NzI5NiYmKHNqKz1NYXRoLnRydW5jKHJqLzQyOTQ5NjcyOTYpLHNqPj4+PTAscmo+Pj49MCk7YiYmKGI9Xy5DKHVqKHJqLHNqKSksYT1iLm5leHQoKS52YWx1ZSxiPWIubmV4dCgpLnZhbHVlLApyaj1hLHNqPWIpfXJldHVybiB5aigpfTtFaj1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLmVpKShOdW1iZXIoYSkpO2lmKCgwLF8uY2kpKGIpKXJldHVybiBfLmJoKGIpO2I9YS5pbmRleE9mKCIuIik7YiE9PS0xJiYoYT1hLnN1YnN0cmluZygwLGIpKTtyZXR1cm4gcWooKT9fLmJoKCgwLF8uYmkpKDY0LEJpZ0ludChhKSkpOl8uYmgoRGooYSkpfTtGaj1mdW5jdGlvbihhKXt2YXIgYj0oMCxfLmVpKShOdW1iZXIoYSkpO2lmKCgwLF8uY2kpKGIpKXJldHVybiBTdHJpbmcoYik7Yj1hLmluZGV4T2YoIi4iKTtiIT09LTEmJihhPWEuc3Vic3RyaW5nKDAsYikpO3JldHVybiBEaihhKX07CkdqPWZ1bmN0aW9uKGEpe2E9KDAsXy5laSkoYSk7aWYoISgwLF8uY2kpKGEpKXt2aihhKTt2YXIgYj1yaixjPXNqO2lmKGE9YyYyMTQ3NDgzNjQ4KWI9fmIrMT4+PjAsYz1+Yz4+PjAsYj09MCYmKGM9YysxPj4+MCk7dmFyIGQ9Yyo0Mjk0OTY3Mjk2KyhiPj4+MCk7Yj1OdW1iZXIuaXNTYWZlSW50ZWdlcihkKT9kOnhqKGIsYyk7YT10eXBlb2YgYj09PSJudW1iZXIiP2E/LWI6YjphPyItIitiOmJ9cmV0dXJuIGF9O0hqPWZ1bmN0aW9uKGEpe2E9KDAsXy5laSkoYSk7KDAsXy5jaSkoYSk/YT1TdHJpbmcoYSk6KHZqKGEpLGE9eWooKSk7cmV0dXJuIGF9O0lqPWZ1bmN0aW9uKGEpe3JldHVybigwLF8uY2kpKGEpP18uYmgoR2ooYSkpOl8uYmgoSGooYSkpfTsKXy5Kaj1mdW5jdGlvbihhKXt2YXIgYj12b2lkIDA7YiE9bnVsbHx8KGI9MTAyNCk7aWYoIUFqKGEpKXRocm93IHBqKCJpbnQ2NCIpO3ZhciBjPXR5cGVvZiBhO3N3aXRjaChiKXtjYXNlIDUxMjpzd2l0Y2goYyl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gRmooYSk7Y2FzZSAiYmlnaW50IjpyZXR1cm4gU3RyaW5nKCgwLF8uYmkpKDY0LGEpKTtkZWZhdWx0OnJldHVybiBIaihhKX1jYXNlIDEwMjQ6c3dpdGNoKGMpe2Nhc2UgInN0cmluZyI6cmV0dXJuIEVqKGEpO2Nhc2UgImJpZ2ludCI6cmV0dXJuIF8uYmgoKDAsXy5iaSkoNjQsYSkpO2RlZmF1bHQ6cmV0dXJuIElqKGEpfWNhc2UgMDpzd2l0Y2goYyl7Y2FzZSAic3RyaW5nIjpyZXR1cm4gRmooYSk7Y2FzZSAiYmlnaW50IjpyZXR1cm4gXy5iaCgoMCxfLmJpKSg2NCxhKSk7ZGVmYXVsdDpyZXR1cm4gR2ooYSl9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5rbm93biBmb3JtYXQgcmVxdWVzdGVkIHR5cGUgZm9yIGludDY0Iik7fX07CktqPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO2lmKGE9PW51bGwpcmV0dXJuIGE7aWYoYj09PSJiaWdpbnQiKXJldHVybiBfLmJoKCgwLF8uYmkpKDY0LGEpKTtpZihBaihhKSlyZXR1cm4gYj09PSJzdHJpbmciP0VqKGEpOklqKGEpfTtfLkxqPWZ1bmN0aW9uKGEpe2lmKGEhPW51bGwmJnR5cGVvZiBhIT09InN0cmluZyIpdGhyb3cgRXJyb3IoKTtyZXR1cm4gYX07Xy5Naj1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIF8uZmooYSxiKX19OwpOaj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtlWzBdPTE3MzI1ODQxOTM7ZVsxXT00MDIzMjMzNDE3O2VbMl09MjU2MjM4MzEwMjtlWzNdPTI3MTczMzg3ODtlWzRdPTMyODUzNzc1MjA7bj1sPTB9ZnVuY3Rpb24gYihxKXtmb3IodmFyIHA9ZyxyPTA7cjw2NDtyKz00KXBbci80XT1xW3JdPDwyNHxxW3IrMV08PDE2fHFbcisyXTw8OHxxW3IrM107Zm9yKHI9MTY7cjw4MDtyKyspcT1wW3ItM11ecFtyLThdXnBbci0xNF1ecFtyLTE2XSxwW3JdPShxPDwxfHE+Pj4zMSkmNDI5NDk2NzI5NTtxPWVbMF07dmFyIHQ9ZVsxXSxBPWVbMl0sRD1lWzNdLEU9ZVs0XTtmb3Iocj0wO3I8ODA7cisrKXtpZihyPDQwKWlmKHI8MjApe3ZhciBiYT1EXnQmKEFeRCk7dmFyIFo9MTUxODUwMDI0OX1lbHNlIGJhPXReQV5ELFo9MTg1OTc3NTM5MztlbHNlIHI8NjA/KGJhPXQmQXxEJih0fEEpLFo9MjQwMDk1OTcwOCk6KGJhPXReQV5ELFo9MzM5NTQ2OTc4Mik7YmE9KChxPDw1fHE+Pj4yNykmNDI5NDk2NzI5NSkrCmJhK0UrWitwW3JdJjQyOTQ5NjcyOTU7RT1EO0Q9QTtBPSh0PDwzMHx0Pj4+MikmNDI5NDk2NzI5NTt0PXE7cT1iYX1lWzBdPWVbMF0rcSY0Mjk0OTY3Mjk1O2VbMV09ZVsxXSt0JjQyOTQ5NjcyOTU7ZVsyXT1lWzJdK0EmNDI5NDk2NzI5NTtlWzNdPWVbM10rRCY0Mjk0OTY3Mjk1O2VbNF09ZVs0XStFJjQyOTQ5NjcyOTV9ZnVuY3Rpb24gYyhxLHApe2lmKHR5cGVvZiBxPT09InN0cmluZyIpe3E9dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHEpKTtmb3IodmFyIHI9W10sdD0wLEE9cS5sZW5ndGg7dDxBOysrdClyLnB1c2gocS5jaGFyQ29kZUF0KHQpKTtxPXJ9cHx8KHA9cS5sZW5ndGgpO3I9MDtpZihsPT0wKWZvcig7cis2NDxwOyliKHEuc2xpY2UocixyKzY0KSkscis9NjQsbis9NjQ7Zm9yKDtyPHA7KWlmKGZbbCsrXT1xW3IrK10sbisrLGw9PTY0KWZvcihsPTAsYihmKTtyKzY0PHA7KWIocS5zbGljZShyLHIrNjQpKSxyKz02NCxuKz02NH1mdW5jdGlvbiBkKCl7dmFyIHE9W10sCnA9bio4O2w8NTY/YyhoLDU2LWwpOmMoaCw2NC0obC01NikpO2Zvcih2YXIgcj02MztyPj01NjtyLS0pZltyXT1wJjI1NSxwPj4+PTg7YihmKTtmb3Iocj1wPTA7cjw1O3IrKylmb3IodmFyIHQ9MjQ7dD49MDt0LT04KXFbcCsrXT1lW3JdPj50JjI1NTtyZXR1cm4gcX1mb3IodmFyIGU9W10sZj1bXSxnPVtdLGg9WzEyOF0saz0xO2s8NjQ7KytrKWhba109MDt2YXIgbCxuO2EoKTtyZXR1cm57cmVzZXQ6YSx1cGRhdGU6YyxkaWdlc3Q6ZCxmaDpmdW5jdGlvbigpe2Zvcih2YXIgcT1kKCkscD0iIixyPTA7cjxxLmxlbmd0aDtyKyspcCs9IjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdChNYXRoLmZsb29yKHFbcl0vMTYpKSsiMDEyMzQ1Njc4OUFCQ0RFRiIuY2hhckF0KHFbcl0lMTYpO3JldHVybiBwfX19O09qPWZ1bmN0aW9uKCl7dGhpcy5nPWRvY3VtZW50fHx7Y29va2llOiIifX07ClhqPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP1BqOmI7aWYoIVFqKXt2YXIgYzthPShjPWEubmF2aWdhdG9yKT09bnVsbD92b2lkIDA6Yy51c2VyQWdlbnREYXRhO2lmKCFhfHx0eXBlb2YgYS5nZXRIaWdoRW50cm9weVZhbHVlcyE9PSJmdW5jdGlvbiJ8fGEuYnJhbmRzJiZ0eXBlb2YgYS5icmFuZHMubWFwIT09ImZ1bmN0aW9uIilyZXR1cm4gUHJvbWlzZS5yZWplY3QoRXJyb3IoIm9hIikpO1JqKChhLmJyYW5kc3x8W10pLm1hcChmdW5jdGlvbihlKXt2YXIgZj1uZXcgU2o7Zj1fLlRqKGYsMSxlLmJyYW5kKTtyZXR1cm4gXy5UaihmLDIsZS52ZXJzaW9uKX0pKTt0eXBlb2YgYS5tb2JpbGU9PT0iYm9vbGVhbiImJl8uVWooVmosMixhLm1vYmlsZSk7UWo9YS5nZXRIaWdoRW50cm9weVZhbHVlcyhiKX12YXIgZD1uZXcgU2V0KGIpO3JldHVybiBRai50aGVuKGZ1bmN0aW9uKGUpe3ZhciBmPWxqKFZqKTtkLmhhcygicGxhdGZvcm0iKSYmXy5UaihmLDMsZS5wbGF0Zm9ybSk7ZC5oYXMoInBsYXRmb3JtVmVyc2lvbiIpJiYKXy5UaihmLDQsZS5wbGF0Zm9ybVZlcnNpb24pO2QuaGFzKCJhcmNoaXRlY3R1cmUiKSYmXy5UaihmLDUsZS5hcmNoaXRlY3R1cmUpO2QuaGFzKCJtb2RlbCIpJiZfLlRqKGYsNixlLm1vZGVsKTtkLmhhcygidWFGdWxsVmVyc2lvbiIpJiZfLlRqKGYsNyxlLnVhRnVsbFZlcnNpb24pO3JldHVybiBfLldqKGYpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gXy5XaihWail9KX07WWo9ZnVuY3Rpb24oYSl7dGhpcy5nPXRoaXMuaD10aGlzLmo9YX07Xy5aaj1mdW5jdGlvbihhLGIpe3ZhciBjPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD1jLnNsaWNlKCk7ZC5wdXNoLmFwcGx5KGQsYXJndW1lbnRzKTtyZXR1cm4gYS5hcHBseSh0aGlzLGQpfX07Xy5haz1mdW5jdGlvbihhLGIpe2EucWE/YigpOihhLld8fChhLlc9W10pLGEuVy5wdXNoKGIpKX07Yms9e1psOiEwfTtfLldqPWZ1bmN0aW9uKGEpe3JldHVybiBKU09OLnN0cmluZ2lmeShfLndoKGEpKX07Cm5qPXt9O21qPW51bGw7Y2s9e307Xy54aD1mdW5jdGlvbihhLGIpe2lmKGIhPT1jayl0aHJvdyBFcnJvcigiWiIpO3RoaXMubz1hO2lmKGEhPW51bGwmJmEubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiWSIpO307Xy54aC5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMubztpZihhPT1udWxsKWE9IiI7ZWxzZSBpZih0eXBlb2YgYSE9PSJzdHJpbmciKXtpZihfLlBoKXtmb3IodmFyIGI9IiIsYz0wLGQ9YS5sZW5ndGgtMTAyNDA7YzxkOyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zdWJhcnJheShjLGMrPTEwMjQwKSk7Yis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGM/YS5zdWJhcnJheShjKTphKTthPWJ0b2EoYil9ZWxzZSBhPW9qKGEpO2E9dGhpcy5vPWF9cmV0dXJuIGF9O18uZGs9Xy5OZyh2b2lkIDAsIjFvYSIpO2VrPXt9O3JqPTA7c2o9MDt6aj0vXi0/KFsxLTldWzAtOV0qfDApKFwuWzAtOV0rKT8kLzsKXy5maz1mdW5jdGlvbihhLGIsYyl7Xy5yaShhKTt2YXIgZD1hLkosZT1kW18uSF18MDtpZihjPT1udWxsKXJldHVybiBfLnRpKGQsZSxiKSxhO2Zvcih2YXIgZj1jPT09Xy5UaD83OmNbXy5IXXwwLGc9ZixoPV8uRWkoZiksaz1ofHxPYmplY3QuaXNGcm96ZW4oYyksbD0hMCxuPSEwLHE9MDtxPGMubGVuZ3RoO3ErKyl7dmFyIHA9Y1txXTtofHwocD1fLldnKHApLGwmJihsPSFwKSxuJiYobj1wKSl9aHx8KGY9bD8xMzo1LGY9bj9mJi00MDk3OmZ8NDA5Nik7ayYmZj09PWd8fChjPV8ubWkoYyksZz0wLGY9Xy5EaShmLGUpKTtmIT09ZyYmXy5TZyhjLGYpO2U9Xy50aShkLGUsYixjKTsyJmZ8fCEoNDA5NiZmfHwxNiZmKXx8Xy5zaShkLGUpO3JldHVybiBhfTtfLmdrPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/MDpjO2E9Q2ooXy5aaShhLGIpKTtyZXR1cm4gYSE9bnVsbD9hOmN9OwpfLmhrPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/Xy5qaTpjO2E9Xy5aaShhLGIsdm9pZCAwLHZvaWQgMCxLaik7cmV0dXJuIGEhPW51bGw/YTpjfTtfLlVqPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy4kaShhLGIsYz09bnVsbD9jOl8ubmkoYykpfTtfLmlrPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy4kaShhLGIsYz09bnVsbD9jOl8uQmooYykpfTtfLmprPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy4kaShhLGIsYz09bnVsbD9jOl8uSmooYykpfTtfLlRqPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy4kaShhLGIsXy5MaihjKSl9O18ua2s9ZnVuY3Rpb24oYSxiLGMpe2lmKGMhPW51bGwpe2lmKCEoMCxfLmRpKShjKSl0aHJvdyBwaigiZW51bSIpO2N8PTB9cmV0dXJuIF8uJGkoYSxiLGMpfTsKbms9ZnVuY3Rpb24oKXt2YXIgYT1sayxiPW1rO3RoaXMuZz0xNzUyMzczNzU7dGhpcy5MYj1iO3RoaXMuaD1fLmJqO3RoaXMuZGVmYXVsdFZhbHVlPXZvaWQgMDt0aGlzLmo9YS5XbCE9bnVsbD9lazp2b2lkIDB9O25rLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbigpe18uUWModGhpcyl9O3ZhciBvaz1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIob2ssXy5KKTt2YXIgcGs9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIiI7aWYoL15hYm91dDooPzpibGFua3xzcmNkb2MpJC8udGVzdChhKSlyZXR1cm4gd2luZG93Lm9yaWdpbnx8IiI7YS5pbmRleE9mKCJibG9iOiIpPT09MCYmKGE9YS5zdWJzdHJpbmcoNSkpO2E9YS5zcGxpdCgiIyIpWzBdLnNwbGl0KCI/IilbMF07YT1hLnRvTG93ZXJDYXNlKCk7YS5pbmRleE9mKCIvLyIpPT0wJiYoYT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wrYSk7L15bXHdcLV0qOlwvXC8vLnRlc3QoYSl8fChhPXdpbmRvdy5sb2NhdGlvbi5ocmVmKTt2YXIgYj1hLnN1YnN0cmluZyhhLmluZGV4T2YoIjovLyIpKzMpLGM9Yi5pbmRleE9mKCIvIik7YyE9LTEmJihiPWIuc3Vic3RyaW5nKDAsYykpO2M9YS5zdWJzdHJpbmcoMCxhLmluZGV4T2YoIjovLyIpKTtpZighYyl0aHJvdyBFcnJvcigia2FgIithKTtpZihjIT09Imh0dHAiJiZjIT09Imh0dHBzIiYmYyE9PSJjaHJvbWUtZXh0ZW5zaW9uIiYmYyE9PSJtb3otZXh0ZW5zaW9uIiYmCmMhPT0iZmlsZSImJmMhPT0iYW5kcm9pZC1hcHAiJiZjIT09ImNocm9tZS1zZWFyY2giJiZjIT09ImNocm9tZS11bnRydXN0ZWQiJiZjIT09ImNocm9tZSImJmMhPT0iYXBwIiYmYyE9PSJkZXZ0b29scyIpdGhyb3cgRXJyb3IoImxhYCIrYyk7YT0iIjt2YXIgZD1iLmluZGV4T2YoIjoiKTtpZihkIT0tMSl7dmFyIGU9Yi5zdWJzdHJpbmcoZCsxKTtiPWIuc3Vic3RyaW5nKDAsZCk7aWYoYz09PSJodHRwIiYmZSE9PSI4MCJ8fGM9PT0iaHR0cHMiJiZlIT09IjQ0MyIpYT0iOiIrZX1yZXR1cm4gYysiOi8vIitiK2F9O3ZhciByaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9U3RyaW5nKF8udi5sb2NhdGlvbi5ocmVmKTtyZXR1cm4gZCYmYSYmYj9bYixxayhwayhkKSxhLGN8fG51bGwpXS5qb2luKCIgIik6bnVsbH0scWs9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9W107aWYoKEFycmF5LmlzQXJyYXkoYyk/MjoxKT09MSlyZXR1cm4gZT1bYixhXSxfLnZjKGQsZnVuY3Rpb24oaCl7ZS5wdXNoKGgpfSksc2soZS5qb2luKCIgIikpO3ZhciBmPVtdLGc9W107Xy52YyhjLGZ1bmN0aW9uKGgpe2cucHVzaChoLmtleSk7Zi5wdXNoKGgudmFsdWUpfSk7Yz1NYXRoLmZsb29yKChuZXcgRGF0ZSkuZ2V0VGltZSgpLzFFMyk7ZT1mLmxlbmd0aD09MD9bYyxiLGFdOltmLmpvaW4oIjoiKSxjLGIsYV07Xy52YyhkLGZ1bmN0aW9uKGgpe2UucHVzaChoKX0pO2E9c2soZS5qb2luKCIgIikpO2E9W2MsYV07Zy5sZW5ndGg9PTB8fGEucHVzaChnLmpvaW4oIiIpKTtyZXR1cm4gYS5qb2luKCJfIil9LHNrPWZ1bmN0aW9uKGEpe3ZhciBiPQpOaigpO2IudXBkYXRlKGEpO3JldHVybiBiLmZoKCkudG9Mb3dlckNhc2UoKX07Xy5tPU9qLnByb3RvdHlwZTtfLm0uc2V0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0hMTtpZih0eXBlb2YgYz09PSJvYmplY3QiKXt2YXIgZT1jLnNhbWVTaXRlO2Q9Yy5zZWN1cmV8fCExO3ZhciBmPWMuZG9tYWlufHx2b2lkIDA7dmFyIGc9Yy5wYXRofHx2b2lkIDA7dmFyIGg9Yy5CaX1pZigvWzs9XHNdLy50ZXN0KGEpKXRocm93IEVycm9yKCJtYWAiK2EpO2lmKC9bO1xyXG5dLy50ZXN0KGIpKXRocm93IEVycm9yKCJuYWAiK2IpO2g9PT12b2lkIDAmJihoPS0xKTt0aGlzLmcuY29va2llPWErIj0iK2IrKGY/Ijtkb21haW49IitmOiIiKSsoZz8iO3BhdGg9IitnOiIiKSsoaDwwPyIiOmg9PTA/IjtleHBpcmVzPSIrKG5ldyBEYXRlKDE5NzAsMSwxKSkudG9VVENTdHJpbmcoKToiO2V4cGlyZXM9IisobmV3IERhdGUoRGF0ZS5ub3coKStoKjFFMykpLnRvVVRDU3RyaW5nKCkpKyhkPyI7c2VjdXJlIjoiIikrKGUhPW51bGw/IjtzYW1lc2l0ZT0iK2U6IiIpfTsKXy5tLmdldD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hKyI9IixkPSh0aGlzLmcuY29va2llfHwiIikuc3BsaXQoIjsiKSxlPTAsZjtlPGQubGVuZ3RoO2UrKyl7Zj1fLkFjKGRbZV0pO2lmKGYubGFzdEluZGV4T2YoYywwKT09MClyZXR1cm4gZi5zbGljZShjLmxlbmd0aCk7aWYoZj09YSlyZXR1cm4iIn1yZXR1cm4gYn07Xy5tLnJlbW92ZT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5nZXQoYSkhPT12b2lkIDA7dGhpcy5zZXQoYSwiIix7Qmk6MCxwYXRoOmIsZG9tYWluOmN9KTtyZXR1cm4gZH07Xy5tLk9jPWZ1bmN0aW9uKCl7cmV0dXJuIHRrKHRoaXMpLmtleXN9O18ubS5pYj1mdW5jdGlvbigpe3JldHVybiB0ayh0aGlzKS52YWx1ZXN9O18ubS5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgYT10ayh0aGlzKS5rZXlzLGI9YS5sZW5ndGgtMTtiPj0wO2ItLSl0aGlzLnJlbW92ZShhW2JdKX07CnZhciB0az1mdW5jdGlvbihhKXthPShhLmcuY29va2llfHwiIikuc3BsaXQoIjsiKTtmb3IodmFyIGI9W10sYz1bXSxkLGUsZj0wO2Y8YS5sZW5ndGg7ZisrKWU9Xy5BYyhhW2ZdKSxkPWUuaW5kZXhPZigiPSIpLGQ9PS0xPyhiLnB1c2goIiIpLGMucHVzaChlKSk6KGIucHVzaChlLnN1YnN0cmluZygwLGQpKSxjLnB1c2goZS5zdWJzdHJpbmcoZCsxKSkpO3JldHVybntrZXlzOmIsdmFsdWVzOmN9fTt2YXIgdWs9ZnVuY3Rpb24oYSxiLGMsZCl7KGE9Xy52W2FdKXx8dHlwZW9mIGRvY3VtZW50PT09InVuZGVmaW5lZCJ8fChhPShuZXcgT2opLmdldChiKSk7cmV0dXJuIGE/cmsoYSxjLGQpOm51bGx9LHZrPWZ1bmN0aW9uKGEpe3ZhciBiPXBrKF8udj09bnVsbD92b2lkIDA6Xy52LmxvY2F0aW9uLmhyZWYpLGM9W10sZDsoZD1fLnYuX19TQVBJU0lEfHxfLnYuX19BUElTSUR8fF8udi5fXzNQU0FQSVNJRHx8Xy52Ll9fMVBTQVBJU0lEfHxfLnYuX19PVkVSUklERV9TSUQpP2Q9ITA6KHR5cGVvZiBkb2N1bWVudCE9PSJ1bmRlZmluZWQiJiYoZD1uZXcgT2osZD1kLmdldCgiU0FQSVNJRCIpfHxkLmdldCgiQVBJU0lEIil8fGQuZ2V0KCJfX1NlY3VyZS0zUEFQSVNJRCIpfHxkLmdldCgiX19TZWN1cmUtMVBBUElTSUQiKSksZD0hIWQpO2QmJihkPShiPWIuaW5kZXhPZigiaHR0cHM6Iik9PTB8fGIuaW5kZXhPZigiY2hyb21lLWV4dGVuc2lvbjoiKT09MHx8Yi5pbmRleE9mKCJjaHJvbWUtdW50cnVzdGVkOi8vbmV3LXRhYi1wYWdlIik9PQowfHxiLmluZGV4T2YoIm1vei1leHRlbnNpb246Iik9PTApP18udi5fX1NBUElTSUQ6Xy52Ll9fQVBJU0lELGR8fHR5cGVvZiBkb2N1bWVudD09PSJ1bmRlZmluZWQifHwoZD1uZXcgT2osZD1kLmdldChiPyJTQVBJU0lEIjoiQVBJU0lEIil8fGQuZ2V0KCJfX1NlY3VyZS0zUEFQSVNJRCIpKSwoZD1kP3JrKGQsYj8iU0FQSVNJREhBU0giOiJBUElTSURIQVNIIixhKTpudWxsKSYmYy5wdXNoKGQpLGImJigoYj11aygiX18xUFNBUElTSUQiLCJfX1NlY3VyZS0xUEFQSVNJRCIsIlNBUElTSUQxUEhBU0giLGEpKSYmYy5wdXNoKGIpLChhPXVrKCJfXzNQU0FQSVNJRCIsIl9fU2VjdXJlLTNQQVBJU0lEIiwiU0FQSVNJRDNQSEFTSCIsYSkpJiZjLnB1c2goYSkpKTtyZXR1cm4gYy5sZW5ndGg9PTA/bnVsbDpjLmpvaW4oIiAiKX07dmFyIHdrPWZ1bmN0aW9uKCl7fSx4az1mdW5jdGlvbihhKXt2YXIgYixjLGQsZTtyZXR1cm4gXy5WaShmdW5jdGlvbihmKXtzd2l0Y2goZi5nKXtjYXNlIDE6cmV0dXJuIGI9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJnemlwIiksYz0obmV3IFJlc3BvbnNlKGIucmVhZGFibGUpKS5hcnJheUJ1ZmZlcigpLGQ9Yi53cml0YWJsZS5nZXRXcml0ZXIoKSxmLmgoZC53cml0ZSgobmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoYSkpLDIpO2Nhc2UgMjpyZXR1cm4gZi5oKGQuY2xvc2UoKSwzKTtjYXNlIDM6cmV0dXJuIGU9VWludDhBcnJheSxmLmgoYyw0KTtjYXNlIDQ6cmV0dXJuIGYucmV0dXJuKG5ldyBlKGYuaikpfX0pfTt3ay5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGE8MTAyND8hMTp0eXBlb2YgQ29tcHJlc3Npb25TdHJlYW0hPT0idW5kZWZpbmVkIn07dmFyIHlrPWZ1bmN0aW9uKGEsYil7dGhpcy5oPWE7dGhpcy5vPWI7dGhpcy5nPSExO3RoaXMuaj1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTt0aGlzLmw9dGhpcy5qKCl9LHprPWZ1bmN0aW9uKGEsYil7YS5oPWI7YS50aW1lciYmYS5nPyhhLnN0b3AoKSxhLnN0YXJ0KCkpOmEudGltZXImJmEuc3RvcCgpfTt5ay5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuZz0hMDt0aGlzLnRpbWVyfHwodGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50aWNrKCl9LHRoaXMuaCksdGhpcy5sPXRoaXMuaigpKX07eWsucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLmc9ITE7dGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXZvaWQgMCl9Owp5ay5wcm90b3R5cGUudGljaz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7aWYodGhpcy5nKXt2YXIgYj1NYXRoLm1heCh0aGlzLmooKS10aGlzLmwsMCk7Yjx0aGlzLmgqLjg/dGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50aWNrKCl9LHRoaXMuaC1iKToodGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXZvaWQgMCksdGhpcy5vKCksdGhpcy5nJiYodGhpcy5zdG9wKCksdGhpcy5zdGFydCgpKSl9ZWxzZSB0aGlzLnRpbWVyPXZvaWQgMH07dmFyIEFrPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihBayxfLkopO3ZhciBCaz1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoQmssXy5KKTt2YXIgQ2s9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKENrLF8uSik7Q2sucHJvdG90eXBlLlBkPWZ1bmN0aW9uKCl7cmV0dXJuIF8uZGoodGhpcywxKX07dmFyIFNqPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihTaixfLkopO3ZhciBEaz1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoRGssXy5KKTt2YXIgUmo9ZnVuY3Rpb24oYSl7Xy5mayhWaiwxLGEpfSxFaz1fLk1qKERrKTt2YXIgRms9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKEZrLF8uSik7dmFyIFBqPVsicGxhdGZvcm0iLCJwbGF0Zm9ybVZlcnNpb24iLCJhcmNoaXRlY3R1cmUiLCJtb2RlbCIsInVhRnVsbFZlcnNpb24iXSxWaj1uZXcgRGssUWo9bnVsbDt2YXIgR2s9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKEdrLF8uSik7dmFyIEhrPWZ1bmN0aW9uKGEpe3JldHVybiBfLmtrKGEsMSwxKX07dmFyIElrPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihJayxfLkopO0lrLnByb3RvdHlwZS5NYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywyKX07SWsucHJvdG90eXBlLmNiPWZ1bmN0aW9uKGEpe18uVGoodGhpcywyLGEpfTt2YXIgSms9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhLDQpfTtfLkIoSmssXy5KKTtfLktrPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSwzNyl9O18uQihfLktrLF8uSik7Xy5Lay5wcm90b3R5cGUuY2I9ZnVuY3Rpb24oYSl7Xy5yaSh0aGlzKTt2YXIgYj10aGlzLkosYz1fLklpKHRoaXMsYixiW18uSF18MCxJaywzLDIsITApO2lmKHR5cGVvZiBhIT09Im51bWJlciJ8fGE8MHx8YT5jLmxlbmd0aCl0aHJvdyBFcnJvcigpO2EhPXZvaWQgMD9jLnNwbGljZShhLDEsdm9pZCAwKTpjLnB1c2godm9pZCAwKTt2YXIgZD1hPWM9PT1fLlRoPzc6Y1tfLkhdfDAsZT1fLldnKCk7ZT8oYSY9LTksYy5sZW5ndGg9PT0xJiYoYSY9LTQwOTcpKTphfD00MDk2O2EhPT1kJiZfLlNnKGMsYSk7ZXx8Xy5zaShiKX07Xy5Maz1mdW5jdGlvbihhLGIpe3JldHVybiBfLlRqKGEsOCxiKX07dmFyIE1rPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSwxOSl9O18uQihNayxfLkopO01rLnByb3RvdHlwZS52Yz1mdW5jdGlvbihhKXtyZXR1cm4gXy5rayh0aGlzLDIsYSl9O3ZhciBPaz1mdW5jdGlvbihhLGIpe3RoaXMuYWI9Yj1iPT09dm9pZCAwPyExOmI7dGhpcy5qPXRoaXMubG9jYWxlPW51bGw7dGhpcy5oPTA7dGhpcy5sPSExO3RoaXMuZz1uZXcgTWs7TnVtYmVyLmlzSW50ZWdlcihhKSYmdGhpcy5nLnZjKGEpO2J8fCh0aGlzLmxvY2FsZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJsYW5nIikpO05rKHRoaXMsbmV3IEdrKX07T2sucHJvdG90eXBlLnZjPWZ1bmN0aW9uKGEpe3RoaXMuZy52YyhhKTtyZXR1cm4gdGhpc307CnZhciBOaz1mdW5jdGlvbihhLGIpe18uTChhLmcsMSxiKTtfLmRqKGIsMSl8fEhrKGIpO2EuYWJ8fChiPVBrKGEpLF8uTihiLDUpfHxfLlRqKGIsNSxhLmxvY2FsZSkpO2EuaiYmKGI9UGsoYSksXy5iaihiLERrLDkpfHxfLkwoYiw5LGEuaikpfSxRaz1mdW5jdGlvbihhLGIpe2EuaD1ifSxSaz1mdW5jdGlvbihhKXt2YXIgYj1iPT09dm9pZCAwP1BqOmI7dmFyIGM9YS5hYj92b2lkIDA6Xy5tYigpO2M/WGooYyxiKS50aGVuKGZ1bmN0aW9uKGQpe2Euaj1FayhkIT1udWxsP2Q6IltdIik7ZD1QayhhKTtfLkwoZCw5LGEuaik7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk6UHJvbWlzZS5yZXNvbHZlKCExKX0sUGs9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5iaihhLmcsR2ssMSk7Ynx8KGI9bmV3IEdrLE5rKGEsYikpO2E9YjtiPV8uYmooYSxGaywxMSk7Ynx8KGI9bmV3IEZrLF8uTChhLDExLGIpKTtyZXR1cm4gYn0sU2s9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7Yz1jPT09CnZvaWQgMD8wOmM7ZD1kPT09dm9pZCAwPzA6ZDtlPWU9PT12b2lkIDA/bnVsbDplO2Y9Zj09PXZvaWQgMD8wOmY7Zz1nPT09dm9pZCAwPzA6ZztpZighYS5hYil7dmFyIGg9UGsoYSk7dmFyIGs9bmV3IENrO2s9Xy5rayhrLDEsYS5oKTtrPV8uVWooaywyLGEubCk7ZD1fLmlrKGssMyxkPjA/ZDp2b2lkIDApO2Q9Xy5payhkLDQsZj4wP2Y6dm9pZCAwKTtkPV8uaWsoZCw1LGc+MD9nOnZvaWQgMCk7Zj1kLko7Zz1mW18uSF18MDtkPV8uV2coZCxnKT9kOl8uSWgoZCxmLGcpP18uSGgoZCxmKTpuZXcgZC5jb25zdHJ1Y3RvcihfLkdoKGYsZywhMCkpO18uTChoLDEwLGQpfWE9bGooYS5nKTtoPURhdGUubm93KCkudG9TdHJpbmcoKTthPV8uJGkoYSw0LGg9PW51bGw/aDpfLkpqKGgpKTtiPV8uZmsoYSwzLGIuc2xpY2UoKSk7ZSYmKGE9bmV3IEFrLGU9Xy5payhhLDEzLGUpLGE9bmV3IEJrLGU9Xy5MKGEsMixlKSxhPW5ldyBKayxlPV8uTChhLDEsZSksZT1fLmtrKGUsMiw5KSxfLkwoYiwxOCwKZSkpO2MmJl8uamsoYiwxNCxjKTtyZXR1cm4gYn07WWoucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5nPXRoaXMuaD10aGlzLmp9O1lqLnByb3RvdHlwZS5NYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9O3ZhciBsaz1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEsOCl9O18uQihsayxfLkopO3ZhciBUaz1fLk1qKGxrKTt2YXIgbWs9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKG1rLF8uSik7dmFyIFVrO1VrPW5ldyBuazt2YXIgWWs9ZnVuY3Rpb24oYSl7Xy51LmNhbGwodGhpcyk7dmFyIGI9dGhpczt0aGlzLmc9W107dGhpcy5sYT0iIjt0aGlzLks9dGhpcy5MPSExO3RoaXMucmE9dGhpcy5JPS0xO3RoaXMuUj0hMTt0aGlzLkQ9dGhpcy5leHBlcmltZW50SWRzPW51bGw7dGhpcy5BPXRoaXMubD0wO3RoaXMuQz1udWxsO3RoaXMuRj10aGlzLkc9MDt0aGlzLndhPTE7dGhpcy53Yz0wO3RoaXMuT2I9YS5PYjt0aGlzLnRiPWEudGJ8fGZ1bmN0aW9uKCl7fTt0aGlzLmo9bmV3IE9rKGEuT2IsYS5hYik7dGhpcy56YT1hLnphfHxudWxsO3RoaXMuQ2I9YS5DYnx8bnVsbDt0aGlzLkI9YS5hanx8bnVsbDt0aGlzLm1iPWEubWJ8fG51bGw7dGhpcy5jYz1hLmNjfHwhMTt0aGlzLndpdGhDcmVkZW50aWFscz0hYS5NYzt0aGlzLmFiPWEuYWJ8fCExO3RoaXMuVD0hdGhpcy5hYiYmISFfLm1iKCkmJiEhXy5tYigpLm5hdmlnYXRvciYmXy5tYigpLm5hdmlnYXRvci5zZW5kQmVhY29uIT09dm9pZCAwO3RoaXMuUD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zIT09CiJ1bmRlZmluZWQiJiYhIShuZXcgVVJMKFZrKCkpKS5zZWFyY2hQYXJhbXMmJiEhKG5ldyBVUkwoVmsoKSkpLnNlYXJjaFBhcmFtcy5zZXQ7dmFyIGM9SGsobmV3IEdrKTtOayh0aGlzLmosYyk7dGhpcy5vPW5ldyBZaigxRTQpO2E9V2sodGhpcyxhLk9lKTt0aGlzLmg9bmV3IHlrKHRoaXMuby5NYSgpLGEpO3RoaXMuTz1uZXcgeWsoNkU1LGEpO3RoaXMuY2N8fHRoaXMuTy5zdGFydCgpO2lmKCF0aGlzLmFiKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2lmKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT09PSJoaWRkZW4iKXtYayhiKTt2YXIgZjsoZj1iLkMpPT1udWxsfHxmLmZsdXNoKCl9fSk7dmFyIGQsZTsoZD1fLm1iKCkpPT1udWxsfHwoZT1kLmFkZEV2ZW50TGlzdGVuZXIpPT1udWxsfHxlLmNhbGwoZCwicGFnZWhpZGUiLGZ1bmN0aW9uKCl7WGsoYik7dmFyIGY7KGY9Yi5DKT09bnVsbHx8Zi5mbHVzaCgpfSl9fSxaayxibCwKJGs7Xy5CKFlrLF8udSk7dmFyIFdrPWZ1bmN0aW9uKGEsYil7aWYoIWEuUClyZXR1cm4gZnVuY3Rpb24oKXt9O3ZhciBjPWZ1bmN0aW9uKCl7YS5mbHVzaCgpfTtyZXR1cm4gYj9mdW5jdGlvbigpe2IoKS50aGVuKGMpfTpjfTtZay5wcm90b3R5cGUuTT1mdW5jdGlvbigpe1hrKHRoaXMpO3RoaXMuaC5zdG9wKCk7dGhpcy5PLnN0b3AoKTtfLnUucHJvdG90eXBlLk0uY2FsbCh0aGlzKX07Wms9ZnVuY3Rpb24oYSl7YS5CfHwoYS5CPVZrKCkpO3RyeXtyZXR1cm4obmV3IFVSTChhLkIpKS50b1N0cmluZygpfWNhdGNoKGIpe3JldHVybihuZXcgVVJMKGEuQixfLm1iKCkubG9jYXRpb24ub3JpZ2luKSkudG9TdHJpbmcoKX19O18uYWw9ZnVuY3Rpb24oYSxiKXtpZihiIGluc3RhbmNlb2YgXy5LaylhLmxvZyhiKTtlbHNlIHRyeXt2YXIgYz1fLkxrKG5ldyBfLktrLF8uV2ooYikpO2EubG9nKGMpfWNhdGNoKGQpeyRrKGEsNCwxKX19OwpibD1mdW5jdGlvbihhLGIpe2Eubz1uZXcgWWooYjwxPzE6Yik7emsoYS5oLGEuby5NYSgpKX07JGs9ZnVuY3Rpb24oYSxiLGMpe2EuQyYmYS5DLlNsKGIsYyl9OwpZay5wcm90b3R5cGUubG9nPWZ1bmN0aW9uKGEpeyRrKHRoaXMsMiwxKTtpZih0aGlzLlApe2E9bGooYSk7dmFyIGI9dGhpcy53YSsrO2I9YT1fLmprKGEsMjEsYik7dmFyIGM9Xy5aaShiLDEpO3ZhciBkPWQ9PT12b2lkIDA/ITE6ZDt2YXIgZT10eXBlb2YgYztkPWM9PW51bGw/YzplPT09ImJpZ2ludCI/U3RyaW5nKCgwLF8uYmkpKDY0LGMpKTpBaihjKT9lPT09InN0cmluZyI/RmooYyk6ZD9IaihjKTpHaihjKTp2b2lkIDA7ZD09bnVsbCYmKGQ9RGF0ZS5ub3coKSxkPU51bWJlci5pc0Zpbml0ZShkKT9kLnRvU3RyaW5nKCk6IjAiLF8uJGkoYiwxLGQ9PW51bGw/ZDpfLkpqKGQpKSk7ZD1fLlppKGIsMTUsdm9pZCAwLHZvaWQgMCxLaik7ZCE9bnVsbCYmKHR5cGVvZiBkPT09ImJpZ2ludCI/KDAsXy52aCkoZCk/ZD1OdW1iZXIoZCk6KGQ9KDAsXy5iaSkoNjQsZCksZD0oMCxfLnZoKShkKT9OdW1iZXIoZCk6U3RyaW5nKGQpKTpkPUFqKGQpP3R5cGVvZiBkPT09Im51bWJlciI/R2ooZCk6CkZqKGQpOnZvaWQgMCk7ZCE9bnVsbHx8Xy5qayhiLDE1LChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSo2MCk7dGhpcy5leHBlcmltZW50SWRzJiYoZD1saih0aGlzLmV4cGVyaW1lbnRJZHMpLF8uTChiLDE2LGQpKTskayh0aGlzLDEsMSk7Yj10aGlzLmcubGVuZ3RoLTFFMysxO2I+MCYmKHRoaXMuZy5zcGxpY2UoMCxiKSx0aGlzLmwrPWIsJGsodGhpcywzLGIpKTt0aGlzLmcucHVzaChhKTt0aGlzLmNjfHx0aGlzLmguZ3x8dGhpcy5oLnN0YXJ0KCl9fTsKWWsucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcztpZih0aGlzLmcubGVuZ3RoPT09MClhJiZhKCk7ZWxzZXt2YXIgZD1EYXRlLm5vdygpO2lmKHRoaXMucmE+ZCYmdGhpcy5JPGQpYiYmYigidGhyb3R0bGVkIik7ZWxzZXt0aGlzLnphJiYodHlwZW9mIHRoaXMuemEuUGQ9PT0iZnVuY3Rpb24iP1FrKHRoaXMuaix0aGlzLnphLlBkKCkpOnRoaXMuai5oPTApO3ZhciBlPXRoaXMuZy5sZW5ndGgsZj1Tayh0aGlzLmosdGhpcy5nLHRoaXMubCx0aGlzLkEsdGhpcy5DYix0aGlzLkcsdGhpcy5GKSxnPXRoaXMudGIoKTtpZihnJiZ0aGlzLmxhPT09ZyliJiZiKCJzdGFsZS1hdXRoLXRva2VuIik7ZWxzZXt0aGlzLmc9W107dGhpcy5oLmcmJnRoaXMuaC5zdG9wKCk7dGhpcy5sPTA7ZD1fLldqKGYpO3ZhciBoO3RoaXMuRCYmdGhpcy5ELlRhKGQubGVuZ3RoKSYmKGg9eGsoZCkpO3ZhciBrPWNsKHRoaXMsZCxnKSxsPWZ1bmN0aW9uKHApe2Muby5yZXNldCgpO3prKGMuaCwKYy5vLk1hKCkpO2lmKHApe3ZhciByPW51bGw7dHJ5e3ZhciB0PUpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UocC5yZXBsYWNlKCIpXX0nXG4iLCIiKSkpO3I9VGsodCl9Y2F0Y2goRSl7fWlmKHIpe3A9TnVtYmVyKF8uaGsociwxLF8uYmgoIi0xIikpKTtwPjAmJihjLkk9RGF0ZS5ub3coKSxjLnJhPWMuSStwKTtwPVVrLmc7dD1fLnBoKF8ucWgpO3ZhciBBO18uT2cmJnQmJigoQT1yLkpbdF0pPT1udWxsP3ZvaWQgMDpBW3BdKSE9bnVsbCYmXy5NZyhfLlJoLDMpO2E6e0E9VWsuZzt2YXIgRD1EPT09dm9pZCAwPyExOkQ7aWYoXy5waChfLlNoKSYmXy5waChfLnFoKSYmdm9pZCAwPT09Xy5TaCl7cD1yLko7dD1wW18ucWhdO2lmKCF0KWJyZWFrIGE7aWYodD10LmJtKXRyeXt0KHAsQSxiayk7YnJlYWsgYX1jYXRjaChFKXtfLnJiKEUpfX1EJiYoRD1yLkosKHA9Xy5waChfLnFoKSkmJnAgaW4gRCYmKEQ9RFtwXSkmJmRlbGV0ZSBEW0FdKX1EPVVrLkxiP1VrLmgocixVay5MYixVay5nLFVrLmopOgpVay5oKHIsVWsuZyxudWxsLFVrLmopO2lmKEQ9RD09PW51bGw/dm9pZCAwOkQpRD1fLmdrKEQsMSwtMSksRCE9PS0xJiYoYy5SfHxibChjLEQpKX19YSYmYSgpO2MuQT0wfSxuPWZ1bmN0aW9uKHAscil7dmFyIHQ9Xy5jaihmLF8uS2ssMyk7dmFyIEE9TnVtYmVyKF8uaGsoZiwxNCkpLEQ9Yy5vO0QuZz1NYXRoLm1pbigzRTUsRC5nKjIpO0QuaD1NYXRoLm1pbigzRTUsRC5nK01hdGgucm91bmQoLjEqKE1hdGgucmFuZG9tKCktLjUpKjIqRC5nKSk7emsoYy5oLGMuby5NYSgpKTtwPT09NDAxJiZnJiYoYy5sYT1nKTtBJiYoYy5sKz1BKTtyPT09dm9pZCAwJiYocj01MDA8PXAmJnA8NjAwfHxwPT09NDAxfHxwPT09MCk7ciYmKGMuZz10LmNvbmNhdChjLmcpLGMuY2N8fGMuaC5nfHxjLmguc3RhcnQoKSk7JGsoYyw3LDEpO2ImJmIoIm5ldC1zZW5kLWZhaWxlZCIscCk7KytjLkF9LHE9ZnVuY3Rpb24oKXtjLnphJiZjLnphLnNlbmQoayxsLG4pfTtoP2gudGhlbihmdW5jdGlvbihwKXskayhjLAo1LGUpO2submVbIkNvbnRlbnQtRW5jb2RpbmciXT0iZ3ppcCI7ay5uZVsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2JpbmFyeSI7ay5ib2R5PXA7ay5aZz0yO3EoKX0sZnVuY3Rpb24oKXskayhjLDYsZSk7cSgpfSk6cSgpfX19fTsKdmFyIGNsPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/bnVsbDpjO3ZhciBkPWQ9PT12b2lkIDA/YS53aXRoQ3JlZGVudGlhbHM6ZDt2YXIgZT17fSxmPW5ldyBVUkwoWmsoYSkpO2MmJihlLkF1dGhvcml6YXRpb249Yyk7YS5tYiYmKGVbIlgtR29vZy1BdXRoVXNlciJdPWEubWIsZi5zZWFyY2hQYXJhbXMuc2V0KCJhdXRodXNlciIsYS5tYikpO3JldHVybnt1cmw6Zi50b1N0cmluZygpLGJvZHk6YixaZzoxLG5lOmUsTGk6IlBPU1QiLHdpdGhDcmVkZW50aWFsczpkLHdjOmEud2N9fSxYaz1mdW5jdGlvbihhKXthLmoubD0hMDthLkwmJihhLmouaD0zLGRsKGEpKTthLksmJihhLmouaD0yLGVsKGEpKTthLmZsdXNoKCk7YS5qLmw9ITF9LGRsPWZ1bmN0aW9uKGEpe2ZsKGEsMzIsMTAsZnVuY3Rpb24oYixjKXtiPW5ldyBVUkwoYik7Yi5zZWFyY2hQYXJhbXMuc2V0KCJmb3JtYXQiLCJqc29uIik7dmFyIGQ9ITE7dHJ5e2Q9Xy5tYigpLm5hdmlnYXRvci5zZW5kQmVhY29uKGIudG9TdHJpbmcoKSwKXy5XaihjKSl9Y2F0Y2goZSl7fWR8fChhLlQ9ITEpO3JldHVybiBkfSl9LGVsPWZ1bmN0aW9uKGEpe2ZsKGEsNiw1LGZ1bmN0aW9uKGIsYyl7Yj1uZXcgVVJMKGIpO2Iuc2VhcmNoUGFyYW1zLnNldCgiZm9ybWF0IiwiYmFzZTY0anNvbiIpO3ZhciBkPWIuc2VhcmNoUGFyYW1zLGU9ZC5zZXQ7Yz1fLldqKGMpO2Zvcih2YXIgZj1bXSxnPTAsaD0wO2g8Yy5sZW5ndGg7aCsrKXt2YXIgaz1jLmNoYXJDb2RlQXQoaCk7az4yNTUmJihmW2crK109ayYyNTUsaz4+PTgpO2ZbZysrXT1rfWM9b2ooZiwzKTtlLmNhbGwoZCwicCIsYyk7Yj1iLnRvU3RyaW5nKCk7aWYoYi5sZW5ndGg+MTUzNjApcmV0dXJuITE7KG5ldyBJbWFnZSkuc3JjPWI7cmV0dXJuITB9KX0sZmw9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYS5nLmxlbmd0aCE9PTApe3ZhciBlPW5ldyBVUkwoWmsoYSkpO2Uuc2VhcmNoUGFyYW1zLmRlbGV0ZSgiZm9ybWF0Iik7dmFyIGY9YS50YigpO2YmJmUuc2VhcmNoUGFyYW1zLnNldCgiYXV0aCIsCmYpO2Uuc2VhcmNoUGFyYW1zLnNldCgiYXV0aHVzZXIiLGEubWJ8fCIwIik7Zm9yKGY9MDtmPGMmJmEuZy5sZW5ndGg7KytmKXt2YXIgZz1hLmcuc2xpY2UoMCxiKSxoPVNrKGEuaixnLGEubCxhLkEsYS5DYixhLkcsYS5GKTtpZighZChlLnRvU3RyaW5nKCksaCkpeysrYS5BO2JyZWFrfWEubD0wO2EuQT0wO2EuRz0wO2EuRj0wO2EuZz1hLmcuc2xpY2UoZy5sZW5ndGgpfWEuaC5nJiZhLmguc3RvcCgpfX0sVms9ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vbG9nP2Zvcm1hdD1qc29uJmhhc2Zhc3Q9dHJ1ZSJ9O3ZhciBnbD1mdW5jdGlvbigpe3RoaXMuVmc9dHlwZW9mIEFib3J0Q29udHJvbGxlciE9PSJ1bmRlZmluZWQifTsKZ2wucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMsZSxmLGcsaCxrLGwsbixxLHAscjtyZXR1cm4gXy5WaShmdW5jdGlvbih0KXtzd2l0Y2godC5nKXtjYXNlIDE6cmV0dXJuIGY9KGU9ZC5WZz9uZXcgQWJvcnRDb250cm9sbGVyOnZvaWQgMCkmJmEud2M+MD9zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5hYm9ydCgpfSxhLndjKTp2b2lkIDAsdC5GKDIsMyksZz1PYmplY3QuYXNzaWduKHt9LHttZXRob2Q6YS5MaSxoZWFkZXJzOk9iamVjdC5hc3NpZ24oe30sYS5uZSl9LGEuYm9keSYme2JvZHk6YS5ib2R5fSxhLndpdGhDcmVkZW50aWFscyYme2NyZWRlbnRpYWxzOiJpbmNsdWRlIn0se3NpZ25hbDphLndjJiZlP2Uuc2lnbmFsOm51bGx9KSx0LmgoZmV0Y2goYS51cmwsZyksNSk7Y2FzZSA1Omg9dC5qO2lmKGguc3RhdHVzIT09MjAwKXsoaz1jKT09bnVsbHx8ayhoLnN0YXR1cyk7dC54YSgzKTticmVha31pZigobD1iKT09bnVsbCl7dC54YSg3KTticmVha31yZXR1cm4gdC5oKGgudGV4dCgpLAo4KTtjYXNlIDg6bCh0LmopO2Nhc2UgNzpjYXNlIDM6dC5MKCk7Y2xlYXJUaW1lb3V0KGYpO3QucWEoMCk7YnJlYWs7Y2FzZSAyOm49dC5EKCk7c3dpdGNoKChxPW4pPT1udWxsP3ZvaWQgMDpxLm5hbWUpe2Nhc2UgIkFib3J0RXJyb3IiOihwPWMpPT1udWxsfHxwKDQwOCk7YnJlYWs7ZGVmYXVsdDoocj1jKT09bnVsbHx8cig0MDApfXQueGEoMyl9fSl9O2dsLnByb3RvdHlwZS5QZD1mdW5jdGlvbigpe3JldHVybiA0fTtfLmhsPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwPyIwIjpiO18udS5jYWxsKHRoaXMpO3RoaXMuT2I9YTt0aGlzLm1iPWI7dGhpcy5BPSJodHRwczovL3BsYXkuZ29vZ2xlLmNvbS9sb2c/Zm9ybWF0PWpzb24maGFzZmFzdD10cnVlIjt0aGlzLmc9dGhpcy5DYj10aGlzLnphPXRoaXMuaD1udWxsO3RoaXMubD10aGlzLm89ITE7dGhpcy5qPW51bGx9O18uQihfLmhsLF8udSk7Xy5pbD1mdW5jdGlvbihhLGIpe2EudGI9YjtyZXR1cm4gYX07Xy5qbD1mdW5jdGlvbihhKXthLm89ITA7cmV0dXJuIGF9O18uaGwucHJvdG90eXBlLk1jPWZ1bmN0aW9uKCl7dGhpcy5CPSEwO3JldHVybiB0aGlzfTsKXy5rbD1mdW5jdGlvbihhKXthLnphfHwoYS56YT1uZXcgZ2wpO3ZhciBiPW5ldyBZayh7T2I6YS5PYix0YjphLnRiP2EudGI6dmssbWI6YS5tYixhajphLkEsYWI6ITEsY2M6ITEsTWM6YS5CLE9lOmEuT2UsemE6YS56YX0pO18uYWsoYSxfLlpqKF8ucGEsYikpO2lmKGEuaCl7dmFyIGM9YS5oLGQ9UGsoYi5qKTtfLlRqKGQsNyxjKX1iLkQ9bmV3IHdrO2EuQ2ImJihiLkNiPWEuQ2IpO2EuZyYmKChkPWEuZyk/KGIuZXhwZXJpbWVudElkc3x8KGIuZXhwZXJpbWVudElkcz1uZXcgb2spLGM9Yi5leHBlcmltZW50SWRzLGQ9Xy5XaihkKSxfLlRqKGMsNCxkKSk6Yi5leHBlcmltZW50SWRzJiZfLiRpKGIuZXhwZXJpbWVudElkcyw0KSk7YS5vJiYoYi5MPWEubyYmYi5UKTthLmwmJihiLks9YS5sKTthLmomJihjPWEuaixiLlI9ITAsYmwoYixjKSk7UmsoYi5qKTthLnphLnZjJiZhLnphLnZjKGEuT2IpO2EuemEuUWkmJmEuemEuUWkoYik7cmV0dXJuIGJ9O18ubGw9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKF8ubGwsXy5KKTtfLm09Xy5sbC5wcm90b3R5cGU7Xy5tLkphPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDE2KX07Xy5tLk5hPWZ1bmN0aW9uKGEpe3JldHVybiBfLlRqKHRoaXMsMTYsYSl9O18ubS5vYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywxKX07Xy5tLm5hPWZ1bmN0aW9uKGEpe3JldHVybiBfLlRqKHRoaXMsMSxhKX07Xy5tLk9kPWZ1bmN0aW9uKCl7cmV0dXJuIF8uZGoodGhpcyw1Myl9Owp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLm1sPWZ1bmN0aW9uKGEpe3ZhciBiPV8uS2EoKTthPWI/Yi5jcmVhdGVIVE1MKGEpOmE7cmV0dXJuIG5ldyBfLkRjKGEpfTtfLm5sPWZ1bmN0aW9uKGEsYil7Yj1fLkVnKGIpO2IhPT12b2lkIDAmJihhLmhyZWY9Yil9O18ub2w9e307Xy5wbD1mdW5jdGlvbihhKXt0aGlzLmc9YX07Xy5wbC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTtfLnFsPXt9O18uemY9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiSyIpO307Xy56Zi5wcm90b3R5cGUuSmQ9bnVsbDtfLnpmLnByb3RvdHlwZS5tYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnR9O18uemYucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudH07Xy56Zi5wcm90b3R5cGUuVGI9ZnVuY3Rpb24oKXtpZih0aGlzLlpiIT09Xy5xbCl0aHJvdyBFcnJvcigiTCIpO3JldHVybiBfLm1sKHRoaXMudG9TdHJpbmcoKSl9O3ZhciBybD1mdW5jdGlvbigpe18uemYuY2FsbCh0aGlzKX07Cl8uRyhybCxfLnpmKTtybC5wcm90b3R5cGUuWmI9Xy5xbDt2YXIgc2w9ZnVuY3Rpb24oKXtfLnpmLmNhbGwodGhpcyl9O18uRyhzbCxfLnpmKTtzbC5wcm90b3R5cGUuWmI9Xy5vbDtzbC5wcm90b3R5cGUuSmQ9MTtzbC5wcm90b3R5cGUuaj1mdW5jdGlvbigpe3JldHVybiBuZXcgXy5wbCh0aGlzLnRvU3RyaW5nKCkpfTtfLnRsPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyl7dGhpcy5jb250ZW50PWN9Yi5wcm90b3R5cGU9YS5wcm90b3R5cGU7cmV0dXJuIGZ1bmN0aW9uKGMsZCl7Yz1uZXcgYihTdHJpbmcoYykpO2QhPT12b2lkIDAmJihjLkpkPWQpO3JldHVybiBjfX0ocmwpO18udWw9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihjKXt0aGlzLmNvbnRlbnQ9Y31iLnByb3RvdHlwZT1hLnByb3RvdHlwZTtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIG5ldyBiKFN0cmluZyhjKSl9fShzbCk7Xy52bD1SZWdFeHAucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJzdGlja3kiKTtfLndsPW5ldyBSZWdFeHAoKF8udmw/IiI6Il4iKSsiKD86IXwvPyhbYS16QS1aXVthLXpBLVowLTk6LV0qKSkiLF8udmw/Imd5IjoiZyIpO18ueGw9ZnVuY3Rpb24oKXtfLnpmLmNhbGwodGhpcyl9O18uQihfLnhsLHJsKTsKXy54bC5wcm90b3R5cGUubWE9ZnVuY3Rpb24oKXtpZih0aGlzLmNvbnRlbnQhPT12b2lkIDApcmV0dXJuIHRoaXMuY29udGVudDtmb3IodmFyIGE9IiIsYj1fLkModGhpcy5VKSxjPWIubmV4dCgpOyFjLmRvbmU7Yz1iLm5leHQoKSlhKz1jLnZhbHVlO3JldHVybiBhfTtfLnhsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hKCl9O18ueWw9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7dGhpcy5jb250ZW50PSIifWEucHJvdG90eXBlPV8ueGwucHJvdG90eXBlO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgYX19KCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8ubGEoImVsX21haW5fY3NzIik7CgpfLm1hKCk7Cn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7Cl8ubGEoImVsX21haW4iKTsKLyoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIgemw9ZnVuY3Rpb24oYSxiKXt0aGlzLng9YSE9PXZvaWQgMD9hOjA7dGhpcy55PWIhPT12b2lkIDA/YjowfSxBbD1mdW5jdGlvbihhLGIpe3ZhciBjPXt9LGQ7Zm9yKGQgaW4gYSljW2RdPWIuY2FsbCh2b2lkIDAsYVtkXSxkLGEpO3JldHVybiBjfSxCbD1mdW5jdGlvbihhLGIpe3ZhciBjPWIuY3JlYXRlUmFuZ2UoKTtjLnNlbGVjdE5vZGUoYi5ib2R5KTthPV8ubWwoYSk7cmV0dXJuIGMuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KF8ua2ooYSkpfSxDbD1mdW5jdGlvbihhKXthPWEubm9kZU5hbWU7cmV0dXJuIHR5cGVvZiBhPT09InN0cmluZyI/YToiRk9STSJ9LERsPWZ1bmN0aW9uKGEpe2E9YS5ub2RlVHlwZTtyZXR1cm4gYT09PTF8fHR5cGVvZiBhIT09Im51bWJlciJ9LEVsPWZ1bmN0aW9uKGEsYixjKXthLnNldEF0dHJpYnV0ZShiLGMpfSxGbD1mdW5jdGlvbihhKXtyZXR1cm4gXy5NYShhKX0sR2w9ZnVuY3Rpb24oYSxiLGMsZCl7Xy5yaShhKTt2YXIgZT1hLkosZj1lW18uSF18CjA7aWYoYz09bnVsbClyZXR1cm4gXy50aShlLGYsYiksYTt2YXIgZz1jPT09Xy5UaD83OmNbXy5IXXwwLGg9ZyxrPV8uRWkoZyksbD1rfHxPYmplY3QuaXNGcm96ZW4oYyk7a3x8KGc9MCk7bHx8KGM9Xy5taShjKSxoPTAsZz1fLkRpKGcsZiksbD0hMSk7Z3w9NTtrPTQmZz81MTImZz81MTI6MTAyNCZnPzEwMjQ6MDp2b2lkIDA7az1rIT1udWxsP2s6MTAyNDtnfD1rO2Zvcih2YXIgbj0wO248Yy5sZW5ndGg7bisrKXt2YXIgcT1jW25dLHA9ZChxLGspO09iamVjdC5pcyhxLHApfHwobCYmKGM9Xy5taShjKSxoPTAsZz1fLkRpKGcsZiksbD0hMSksY1tuXT1wKX1nIT09aCYmKGwmJihjPV8ubWkoYyksZz1fLkRpKGcsZikpLF8uU2coYyxnKSk7Xy50aShlLGYsYixjKTtyZXR1cm4gYX0sSGw9ZnVuY3Rpb24oYSl7aWYoXy5PZyl7dmFyIGI7cmV0dXJuKGI9YVtfLmRrXSkhPW51bGw/YjphW18uZGtdPW5ldyBNYXB9aWYoXy5kayBpbiBhKXJldHVybiBhW18uZGtdO2I9bmV3IE1hcDtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwKXy5kayx7dmFsdWU6Yn0pO3JldHVybiBifSxJbD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLmdldChkKTtpZihlIT1udWxsKXJldHVybiBlO2Zvcih2YXIgZj1lPTA7ZjxkLmxlbmd0aDtmKyspe3ZhciBnPWRbZl07Xy51aShiLGcpIT1udWxsJiYoZSE9PTAmJihjPV8udGkoYixjLGUpKSxlPWcpfWEuc2V0KGQsZSk7cmV0dXJuIGV9LEpsPWZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM7Zm9yKGMgaW4gYSliW2NdPWFbY107cmV0dXJuIGJ9LEtsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8Yj8tMTphPmI/MTowfSxMbD1mdW5jdGlvbihhLGIpe3ZhciBjPTA7YT0oMCxfLkFjKShTdHJpbmcoYSkpLnNwbGl0KCIuIik7Yj0oMCxfLkFjKShTdHJpbmcoYikpLnNwbGl0KCIuIik7Zm9yKHZhciBkPU1hdGgubWF4KGEubGVuZ3RoLGIubGVuZ3RoKSxlPTA7Yz09MCYmZTxkO2UrKyl7dmFyIGY9YVtlXXx8IiIsZz1iW2VdfHwiIjtkb3tmPS8oXGQqKShcRCopKC4qKS8uZXhlYyhmKXx8WyIiLCIiLCIiLAoiIl07Zz0vKFxkKikoXEQqKSguKikvLmV4ZWMoZyl8fFsiIiwiIiwiIiwiIl07aWYoZlswXS5sZW5ndGg9PTAmJmdbMF0ubGVuZ3RoPT0wKWJyZWFrO2M9S2woZlsxXS5sZW5ndGg9PTA/MDpwYXJzZUludChmWzFdLDEwKSxnWzFdLmxlbmd0aD09MD8wOnBhcnNlSW50KGdbMV0sMTApKXx8S2woZlsyXS5sZW5ndGg9PTAsZ1syXS5sZW5ndGg9PTApfHxLbChmWzJdLGdbMl0pO2Y9ZlszXTtnPWdbM119d2hpbGUoYz09MCl9cmV0dXJuIGN9LE1sPWZ1bmN0aW9uKGEpe2lmKC9eKHNjcmlwdHxzdHlsZSkkL2kudGVzdChhLnRhZ05hbWUpKXRocm93IEVycm9yKCJ0Iik7fSxObD1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgXy5wbClyZXR1cm4gYS5nO3Rocm93IEVycm9yKCJ0Iik7fSxPbD1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csCiImYXBvczsiKX0sUGw9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLkRjP2E6Xy5tbChPbChTdHJpbmcoYSkpKX0sUWw9ZnVuY3Rpb24oYSl7dmFyIGI9e25vbmNlOl8uT2EoInNjcmlwdCIsZG9jdW1lbnQpfTthPV8uUmEoYSkudG9TdHJpbmcoKTt2YXIgYz0iPHNjcmlwdCI7aWYoYj09bnVsbD8wOmIuaWQpYys9JyBpZD0iJytPbChiLmlkKSsnIic7aWYoYj09bnVsbD8wOmIubm9uY2UpYys9JyBub25jZT0iJytPbChiLm5vbmNlKSsnIic7aWYoYj09bnVsbD8wOmIudHlwZSljKz0nIHR5cGU9IicrT2woYi50eXBlKSsnIic7aWYoYj09bnVsbD8wOmIuZGVmZXIpYys9IiBkZWZlciI7cmV0dXJuIF8ubWwoYysoIj4iK2ErIlx4M2Mvc2NyaXB0PiIpKX0sUmw9ZnVuY3Rpb24oYSl7dmFyIGI9UGwoIiIpO3JldHVybiBfLm1sKGEubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBfLmtqKFBsKGMpKX0pLmpvaW4oXy5raihiKS50b1N0cmluZygpKSl9LFNsPWZ1bmN0aW9uKGEpe3JldHVybiBSbChhKX0sClZsPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iIixjPU9iamVjdC5rZXlzKGEpLGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXSxmPWFbZV07aWYoIVRsLnRlc3QoZSkpdGhyb3cgRXJyb3IoInQiKTtpZihmIT09dm9pZCAwJiZmIT09bnVsbCl7aWYoL15vbi4vaS50ZXN0KGUpKXRocm93IEVycm9yKCJ0Iik7VWwuaW5kZXhPZihlLnRvTG93ZXJDYXNlKCkpIT09LTEmJihmPV8uRWcoU3RyaW5nKGYpKXx8ImFib3V0OmludmFsaWQjekNsb3N1cmV6Iik7Zj1lKyc9IicrUGwoU3RyaW5nKGYpKSsnIic7Yis9IiAiK2Z9fXJldHVybiBifSxZbD1mdW5jdGlvbihhKXt2YXIgYj17fTtpZighVGwudGVzdCgiYm9keSIpKXRocm93IEVycm9yKCJ0Iik7aWYoV2wuaW5kZXhPZigiQk9EWSIpIT09LTEpdGhyb3cgRXJyb3IoInQiKTt2YXIgYz0iPGJvZHkiO2ImJihjKz1WbChiKSk7QXJyYXkuaXNBcnJheShhKXx8KGE9YT09PXZvaWQgMD9bXTpbYV0pO1hsLmluZGV4T2YoIkJPRFkiKSE9PS0xPwpjKz0iPiI6KGE9U2woYS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQgaW5zdGFuY2VvZiBfLkRjP2Q6UGwoU3RyaW5nKGQpKX0pKSxjKz0iPiIrYS50b1N0cmluZygpKyI8L2JvZHk+Iik7cmV0dXJuIF8ubWwoYyl9LFpsPWZ1bmN0aW9uKGEpe3RoaXMuaD10aGlzLkI9dGhpcy5sPSIiO3RoaXMuQz1udWxsO3RoaXMuQT10aGlzLmo9IiI7dGhpcy5vPSExO3ZhciBiO2EgaW5zdGFuY2VvZiBabD8odGhpcy5vPWEubywkbCh0aGlzLGEubCksdGhpcy5CPWEuQixhbSh0aGlzLGEuaCksYm0odGhpcyxhLkMpLGNtKHRoaXMsYS5qKSxkbSh0aGlzLGVtKGEuZykpLHRoaXMuQT1hLkEpOmEmJihiPVN0cmluZyhhKS5tYXRjaChfLnJmKSk/KHRoaXMubz0hMSwkbCh0aGlzLGJbMV18fCIiLCEwKSx0aGlzLkI9Zm0oYlsyXXx8IiIpLGFtKHRoaXMsYlszXXx8IiIsITApLGJtKHRoaXMsYls0XSksY20odGhpcyxiWzVdfHwiIiwhMCksZG0odGhpcyxiWzZdfHwiIiwhMCksdGhpcy5BPWZtKGJbN118fCIiKSk6Cih0aGlzLm89ITEsdGhpcy5nPW5ldyBnbShudWxsLHRoaXMubykpfSxobT1mdW5jdGlvbihhKXtyZXR1cm4gXy55YShhKT9hLlRiJiYoYT1hLlRiKCksYSBpbnN0YW5jZW9mIF8uRGMpP2E6UGwoInpTb3l6Iik6UGwoU3RyaW5nKGEpKX0saW09ZnVuY3Rpb24oYSxiKXtiJiZiLmg/Yi5oKGEpOihiPWhtKGIpLGEuaW5uZXJIVE1MPV8ua2ooYikpfSxrbT1mdW5jdGlvbihhLGIpe2E6aWYoYj1hKGJ8fGptLHZvaWQgMCksYT1fLmxiKCksYiYmYi5nP2E9Yi5nKCk6KGE9YS5jcmVhdGVFbGVtZW50KCJESVYiKSxiPWhtKGIpLGEuaW5uZXJIVE1MPV8ua2ooYikpLGEuY2hpbGROb2Rlcy5sZW5ndGg9PTEmJihiPWEuZmlyc3RDaGlsZCxiLm5vZGVUeXBlPT0xKSl7YT1iO2JyZWFrIGF9cmV0dXJuIGF9LG1tPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7YT1sbShhLGIpO2I9Yi5ib2R5O2IuYXBwZW5kQ2hpbGQoYSk7Yj0obmV3IFhNTFNlcmlhbGl6ZXIpLnNlcmlhbGl6ZVRvU3RyaW5nKGIpOwpiPWIuc2xpY2UoYi5pbmRleE9mKCI+IikrMSxiLmxhc3RJbmRleE9mKCI8LyIpKTtyZXR1cm4gXy5tbChiKX0sbm09ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0ic3RyaW5nIil0aHJvdyBFcnJvcigpO3JldHVybiBhfSxvbT1mdW5jdGlvbihhLGIsYyl7aWYoYilyZXR1cm4gbm0oYSk7dmFyIGQ7cmV0dXJuKGQ9Xy5waShhKSkhPW51bGw/ZDpjPyIiOnZvaWQgMH0scm09ZnVuY3Rpb24oKXtyZXR1cm4gcG18fChwbT1uZXcgXy55aChfLlRnKFtdKSx2b2lkIDAsdm9pZCAwLHZvaWQgMCxxbSkpfSxzbT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLkosZj1lW18uSF18MDtjPV8uV2coYSxmKT8xOmM7ZD0hIWR8fGM9PT0zO2M9PT0yJiZfLnFpKGEpJiYoZT1hLkosZj1lW18uSF18MCk7YT1fLkJpKGUsYik7dmFyIGc9YT09PV8uVGg/NzphW18uSF18MCxoPV8uQ2koZyxmKTt2YXIgaz00Jmg/ITE6ITA7aWYoayl7NCZoJiYoYT1fLm1pKGEpLGc9MCxoPV8uRGkoaCxmKSxmPV8udGkoZSwKZixiLGEpKTtmb3IodmFyIGw9MCxuPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBxPV8ucGkoYVtsXSk7cSE9bnVsbCYmKGFbbisrXT1xKX1uPGwmJihhLmxlbmd0aD1uKTtoPShofDQpJi01MTM7aCY9LTEwMjU7aCY9LTQwOTd9aCE9PWcmJihfLlNnKGEsaCksMiZoJiZPYmplY3QuZnJlZXplKGEpKTtyZXR1cm4gYT1fLkZpKGEsaCxlLGYsYixjLGssZCl9LHVtPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRtOyFkJiZfLnFpKGEpJiYoYj1hLkosYz1iW18uSF18MCk7dmFyIGY9Xy51aShiLDEpO2E9ITE7aWYoZj09bnVsbCl7aWYoZClyZXR1cm4gcm0oKTtmPVtdfWVsc2UgaWYoZi5jb25zdHJ1Y3Rvcj09PV8ueWgpaWYoZi5LYiYyJiYhZClmPV8uemgoZik7ZWxzZSByZXR1cm4gZjtlbHNlIEFycmF5LmlzQXJyYXkoZik/YT0hISgoZltfLkhdfDApJjIpOmY9W107aWYoZCl7aWYoIWYubGVuZ3RoKXJldHVybiBybSgpO2F8fChhPSEwLF8uVGcoZikpfWVsc2UgaWYoYSl7YT0hMTtfLlVnKGYpOwpkPV8ubWkoZik7Zm9yKGY9MDtmPGQubGVuZ3RoO2YrKyl7dmFyIGc9ZFtmXT1fLm1pKGRbZl0pO0FycmF5LmlzQXJyYXkoZ1sxXSkmJihnWzFdPV8uVGcoZ1sxXSkpfWY9Xy5VZyhkKX0hYSYmYyYzMiYmXy5saShmKTtlPW5ldyBfLnloKGYsZSxvbSx2b2lkIDApO2M9Xy50aShiLGMsMSxlKTthfHxfLnNpKGIsYyk7cmV0dXJuIGV9LHZtPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMudG9wPWE7dGhpcy5yaWdodD1iO3RoaXMuYm90dG9tPWM7dGhpcy5sZWZ0PWR9LHdtPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMubGVmdD1hO3RoaXMudG9wPWI7dGhpcy53aWR0aD1jO3RoaXMuaGVpZ2h0PWR9LHhtPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9YS5sZW5ndGgsZT0wLGY9W10sZyxoLGs9MDtrPGQ7KXtzd2l0Y2goZSl7Y2FzZSAwOnZhciBsPWEuaW5kZXhPZigiPCIsayk7aWYobDwwKXtpZihjLmxlbmd0aD09PTApcmV0dXJuIGE7Yy5wdXNoKGEuc3Vic3RyaW5nKGspKTtrPWR9ZWxzZSBjLnB1c2goYS5zdWJzdHJpbmcoaywKbCkpLGg9bCxrPWwrMSxfLnZsPyhfLndsLmxhc3RJbmRleD1rLGw9Xy53bC5leGVjKGEpKTooXy53bC5sYXN0SW5kZXg9MCxsPV8ud2wuZXhlYyhhLnN1YnN0cmluZyhrKSkpLGw/KGY9WyI8IixsWzBdXSxnPWxbMV0sZT0xLGsrPWxbMF0ubGVuZ3RoKTpjLnB1c2goIjwiKTticmVhaztjYXNlIDE6bD1hLmNoYXJBdChrKyspO3N3aXRjaChsKXtjYXNlICInIjpjYXNlICciJzp2YXIgbj1hLmluZGV4T2YobCxrKTtuPDA/az1kOihmLnB1c2gobCxhLnN1YnN0cmluZyhrLG4rMSkpLGs9bisxKTticmVhaztjYXNlICI+IjpmLnB1c2gobCk7Yy5wdXNoKGIoZi5qb2luKCIiKSxnKSk7ZT0wO2Y9W107aD1nPW51bGw7YnJlYWs7ZGVmYXVsdDpmLnB1c2gobCl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigpO31lPT09MSYmaz49ZCYmKGs9aCsxLGMucHVzaCgiPCIpLGU9MCxmPVtdLGg9Zz1udWxsKX1yZXR1cm4gYy5qb2luKCIiKX0sRG09ZnVuY3Rpb24oKXt2YXIgYT15bShfLmpsKF8uaWwoem0oKSwKZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pLk1jKCkpKSxiPUFtKCkubWFwKGZ1bmN0aW9uKGMpe3ZhciBkO2E6e3ZhciBlPWMubztpZihlPT1udWxsKWM9bnVsbDtlbHNlIGlmKHR5cGVvZiBlPT09Im51bWJlciIpYz1lO2Vsc2V7aWYodHlwZW9mIGU9PT0ic3RyaW5nIil7dmFyIGY9TnVtYmVyKGUpO2lmKCFpc05hTihmKSYmKGYhPT0wfHxlLnRyaW0oKS5sZW5ndGghPT0wKSl7Yz1mO2JyZWFrIGF9fXRocm93IEJtKGMsIm51bWJlciIpO319cmV0dXJuKGQ9YykhPW51bGw/ZDowfSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjPjB9KTtiLmxlbmd0aD4wJiYoYj1DbShiKSxhLmc9Yik7cmV0dXJuIF8ua2woYSl9LEVtPWZ1bmN0aW9uKGEpe3JldHVybiJ0cmFuc2xhdGU6IithfSxLbT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgRm07Yj1fLlRqKGIsMSxhLm5hbWUpO3ZhciBjPUdtKGEuc3RhcnRUaW1lKTtiPV8uTChiLDIsYyk7YT1IbShhLmR1cmF0aW9uKTthPV8uTChiLDMsYSk7Yj1uZXcgSW07CnJldHVybiBKbShhLDUsYil9LEdtPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBMbTtiLnNldFNlY29uZHMoTWF0aC5mbG9vcihhLzFFMykpO2E9TWF0aC5yb3VuZChhJTFFMyoxRTYpO18uR2koYiwyLGE9PW51bGw/YTpfLkJqKGEpLDApO3JldHVybiBifSxIbT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgTW07Yi5zZXRTZWNvbmRzKE1hdGguZmxvb3IoYS8xRTMpKTthPU1hdGgucm91bmQoYSUxRTMqMUU2KTtfLkdpKGIsMixhPT1udWxsP2E6Xy5CaihhKSwwKTtyZXR1cm4gYn0sTm09ZnVuY3Rpb24oYSl7cmV0dXJuIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5tYXJrJiYoYT1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKGEsIm1hcmsiKSxhLmxlbmd0aD09MSk/YVswXTpudWxsfSxPbT1mdW5jdGlvbihhLGIpe3JldHVybiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UubWVhc3VyZT9wZXJmb3JtYW5jZS5tZWFzdXJlKGEsYil8fG51bGw6bnVsbH0sUm09ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPQpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2Quc3BsaWNlKDAsMik7ZD0ibCIrYS50b1N0cmluZygxNikrImkiK2IudG9TdHJpbmcoMTYpKyhkLmxlbmd0aD8iLSIrZC5qb2luKCJfIik6IiIpO1BtP1BtLnB1c2goZCk6UW0oZCl9LFZtPWZ1bmN0aW9uKCl7dmFyIGE9U218fChTbT1UbSgnW251bGwsbnVsbCxudWxsLG51bGwsbnVsbCwiKGZ1bmN0aW9uKCl7XCd1c2Ugc3RyaWN0XCc7dmFyIGZcXHUwMDNkdHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzXFx1MDAzZFxcdTAwM2RcXCJmdW5jdGlvblxcIj9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxjLGIpe2lmKGFcXHUwMDNkXFx1MDAzZEFycmF5LnByb3RvdHlwZXx8YVxcdTAwM2RcXHUwMDNkT2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2NdXFx1MDAzZGIudmFsdWU7cmV0dXJuIGF9O2Z1bmN0aW9uIGcoYSl7YVxcdTAwM2RbXFwib2JqZWN0XFwiXFx1MDAzZFxcdTAwM2R0eXBlb2YgZ2xvYmFsVGhpc1xcdTAwMjZcXHUwMDI2Z2xvYmFsVGhpcyxhLFxcIm9iamVjdFxcIlxcdTAwM2RcXHUwMDNkdHlwZW9mIHdpbmRvd1xcdTAwMjZcXHUwMDI2d2luZG93LFxcIm9iamVjdFxcIlxcdTAwM2RcXHUwMDNkdHlwZW9mIHNlbGZcXHUwMDI2XFx1MDAyNnNlbGYsXFwib2JqZWN0XFwiXFx1MDAzZFxcdTAwM2R0eXBlb2YgZ2xvYmFsXFx1MDAyNlxcdTAwMjZnbG9iYWxdO2Zvcih2YXIgY1xcdTAwM2QwO2NcXHUwMDNjYS5sZW5ndGg7KytjKXt2YXIgYlxcdTAwM2RhW2NdO2lmKGJcXHUwMDI2XFx1MDAyNmIuTWF0aFxcdTAwM2RcXHUwMDNkTWF0aClyZXR1cm4gYn10aHJvdyBFcnJvcihcXCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0XFwiKTt9dmFyIGhcXHUwMDNkZyh0aGlzKTtcXG5mdW5jdGlvbiBrKGEsYyl7aWYoYylhOnt2YXIgYlxcdTAwM2RoO2FcXHUwMDNkYS5zcGxpdChcXCIuXFwiKTtmb3IodmFyIGRcXHUwMDNkMDtkXFx1MDAzY2EubGVuZ3RoLTE7ZCsrKXt2YXIgZVxcdTAwM2RhW2RdO2lmKCEoZSBpbiBiKSlicmVhayBhO2JcXHUwMDNkYltlXX1hXFx1MDAzZGFbYS5sZW5ndGgtMV07ZFxcdTAwM2RiW2FdO2NcXHUwMDNkYyhkKTtjIVxcdTAwM2RkXFx1MDAyNlxcdTAwMjZjIVxcdTAwM2RudWxsXFx1MDAyNlxcdTAwMjZmKGIsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX19ayhcXCJnbG9iYWxUaGlzXFwiLGZ1bmN0aW9uKGEpe3JldHVybiBhfHxofSk7LypcXG5cXG4gQ29weXJpZ2h0IEdvb2dsZSBMTENcXG4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcXG4qL1xcbnZhciBsXFx1MDAzZGdsb2JhbFRoaXMudHJ1c3RlZFR5cGVzLG07ZnVuY3Rpb24gbigpe3ZhciBhXFx1MDAzZG51bGw7aWYoIWwpcmV0dXJuIGE7dHJ5e3ZhciBjXFx1MDAzZGZ1bmN0aW9uKGIpe3JldHVybiBifTthXFx1MDAzZGwuY3JlYXRlUG9saWN5KFxcImdvb2cjaHRtbFxcIix7Y3JlYXRlSFRNTDpjLGNyZWF0ZVNjcmlwdDpjLGNyZWF0ZVNjcmlwdFVSTDpjfSl9Y2F0Y2goYil7fXJldHVybiBhfTtmdW5jdGlvbiBwKGEpe3RoaXMuZ1xcdTAwM2RhfXAucHJvdG90eXBlLnRvU3RyaW5nXFx1MDAzZGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZytcXCJcXCJ9O2Z1bmN0aW9uIHEoYSl7bVxcdTAwM2RcXHUwMDNkXFx1MDAzZHZvaWQgMFxcdTAwMjZcXHUwMDI2KG1cXHUwMDNkbigpKTthXFx1MDAzZG0/bS5jcmVhdGVTY3JpcHRVUkwoYSk6YTtyZXR1cm4gbmV3IHAoYSl9O2lmKCFmdW5jdGlvbigpe2lmKHNlbGYub3JpZ2luKXJldHVybiBzZWxmLm9yaWdpblxcdTAwM2RcXHUwMDNkXFx1MDAzZFxcIm51bGxcXCI7aWYobG9jYXRpb24uaG9zdCFcXHUwMDNkXFx1MDAzZFxcIlxcIilyZXR1cm4hMTt0cnl7cmV0dXJuIHdpbmRvdy5wYXJlbnQuZXNjYXBlKFxcIlxcIiksITF9Y2F0Y2goYSl7cmV0dXJuITB9fSgpKXRocm93IEVycm9yKFxcInNhbmRib3hpbmcgZXJyb3JcXCIpO1xcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxcIm1lc3NhZ2VcXCIsZnVuY3Rpb24oYSl7dmFyIGNcXHUwMDNkYS5wb3J0c1swXTthXFx1MDAzZGEuZGF0YTt2YXIgYlxcdTAwM2RhLmNhbGxiYWNrTmFtZS5zcGxpdChcXCIuXFwiKSxkXFx1MDAzZHdpbmRvdztiWzBdXFx1MDAzZFxcdTAwM2RcXHUwMDNkXFwid2luZG93XFwiXFx1MDAyNlxcdTAwMjZiLnNoaWZ0KCk7Zm9yKHZhciBlXFx1MDAzZDA7ZVxcdTAwM2NiLmxlbmd0aC0xO2UrKylkW2JbZV1dXFx1MDAzZHt9LGRcXHUwMDNkZFtiW2VdXTtkW2JbYi5sZW5ndGgtMV1dXFx1MDAzZGZ1bmN0aW9uKHIpe2MucG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkocikpfTtiXFx1MDAzZGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXFwic2NyaXB0XFwiKTthXFx1MDAzZHEoYS51cmwpO2lmKGEgaW5zdGFuY2VvZiBwKWFcXHUwMDNkYS5nO2Vsc2UgdGhyb3cgRXJyb3IoXFwiXFwiKTtiLnNyY1xcdTAwM2RhO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYil9LCEwKTt9KS5jYWxsKHRoaXMpO1xcbiJdJykpOwppZighYSlyZXR1cm4gbnVsbDthPV8ucGkoXy5aaShhLDYsdm9pZCAwLFVtKSk7dmFyIGI7YT09PW51bGx8fGE9PT12b2lkIDA/Yj1udWxsOmI9Xy5RYShhKTtyZXR1cm4gYn0sV209ZnVuY3Rpb24oYSl7dmFyIGI9e307YT1fLkMoYSk7Zm9yKHZhciBjPWEubmV4dCgpOyFjLmRvbmU7Yz1hLm5leHQoKSljPWMudmFsdWUsYltjLmxhbmd1YWdlXT1jLm5hbWU7cmV0dXJuIGJ9LFhtPWZ1bmN0aW9uKCl7fSxZbT1mdW5jdGlvbihhLGIpe18uaGIuY2FsbCh0aGlzKTt0aGlzLmw9bmV3IF8uSGIodGhpcyk7dGhpcy5RYihhfHxudWxsKTtiJiYodGhpcy5VYj1iKX0sYm49ZnVuY3Rpb24oYSl7Xy5oYi5jYWxsKHRoaXMpO3RoaXMuZz1hO3RoaXMuaD1fLngodGhpcy5nLCJmb2N1cyIsdGhpcywhMCk7dGhpcy5qPV8ueCh0aGlzLmcsImJsdXIiLHRoaXMsITApfSxjbj1mdW5jdGlvbigpe30sZG49ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZWxlbWVudD1hO3RoaXMuaj1iO3RoaXMubD1jfSxlbj1mdW5jdGlvbihhLApiKXt0aGlzLmc9YSBpbnN0YW5jZW9mIHpsP2E6bmV3IHpsKGEsYil9LGZuPWZ1bmN0aW9uKGEsYil7dGhpcy5vPWJ8fHZvaWQgMDtZbS5jYWxsKHRoaXMsYSl9LE89ZnVuY3Rpb24oYSxiLGMpe3RoaXMuRz1jfHwoYT9fLmxiKGduKGEpKTpfLmxiKCkpO2ZuLmNhbGwodGhpcyx0aGlzLkcuUygiRElWIix7c3R5bGU6InBvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZTsifSkpO3RoaXMucmE9bmV3IHpsKDEsMSk7dGhpcy5BPW5ldyBTZXQ7dGhpcy5DPW51bGw7YSYmdGhpcy5hdHRhY2goYSk7YiE9bnVsbCYmdGhpcy5LYShiKX0saG49ZnVuY3Rpb24oYSl7YT1hLmNsYXNzTmFtZTtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIiYmYS5tYXRjaCgvXFMrL2cpfHxbXX0sa249ZnVuY3Rpb24oYSxiKXt2YXIgYz1obihhKSxkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxlPWMubGVuZ3RoK2QubGVuZ3RoO2puKGMsZCk7YS5jbGFzc05hbWU9Yy5qb2luKCIgIik7CnJldHVybiBjLmxlbmd0aD09ZX0sbW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1obihhKSxkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxlPWxuKGMsZCk7YS5jbGFzc05hbWU9ZS5qb2luKCIgIik7cmV0dXJuIGUubGVuZ3RoPT1jLmxlbmd0aC1kLmxlbmd0aH0sam49ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKylfLnRhKGEsYltjXSl8fGEucHVzaChiW2NdKX0sbG49ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIV8udGEoYixjKX0pfSxubj1mdW5jdGlvbihhLGIpe3JldHVybiBfLnRhKGhuKGEpLGIpfSxvbj1mdW5jdGlvbihhLGIsYyl7Yz9rbihhLGIpOm1uKGEsYil9LHRuPWZ1bmN0aW9uKGEpe3JldHVybiBwbihuZXcgcW4sc20oYSwxLF8uYWooKSkubWFwKGZ1bmN0aW9uKGIsYyl7dmFyIGQ9bmV3IHJuO2I9c24oZCwxLGIpO2lmKHNtKGEsMixfLmFqKCkpLmxlbmd0aD5jKXtkPXNtKGEsMiwKMywhMCk7aWYodHlwZW9mIGMhPT0ibnVtYmVyInx8YzwwfHxjPj1kLmxlbmd0aCl0aHJvdyBFcnJvcigpO3NuKGIsMyxkW2NdKX1yZXR1cm4gYn0pKX0sdW49ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHJuO2I9c24oYiwxLGFbMF0pO2EubGVuZ3RoPT09MyYmc24oYiwzLGFbMl0pO3JldHVybiBifSx2bj1mdW5jdGlvbihhKXtyZXR1cm4gXy5jaihhLHJuLDEpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gXy5OKGIsMyk/W18uTihiLDEpLDIwMCxfLk4oYiwzKV06W18uTihiLDEpLDIwMF19KX0sd249ZnVuY3Rpb24oKXt9LHhuPWZ1bmN0aW9uKGEpe18uaGIuY2FsbCh0aGlzKTt0aGlzLmg9YXx8Xy5sYigpO3RoaXMubGE9bnVsbDt0aGlzLmpiPSExO3RoaXMuQz1udWxsO3RoaXMuTz12b2lkIDA7dGhpcy5SPXRoaXMuRj10aGlzLks9bnVsbDt0aGlzLndhPSExfSx5bj1mdW5jdGlvbihhKXt2YXIgYj1fLmxiKCksYz1iLmcsZD1iLmNyZWF0ZUVsZW1lbnQoIlNUWUxFIiksZT1fLk9hKCJzdHlsZSIsCmMpO2UmJmQuc2V0QXR0cmlidXRlKCJub25jZSIsZSk7ZC50eXBlPSJ0ZXh0L2NzcyI7Yj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJIRUFEIilbMF07ZC5zdHlsZVNoZWV0P2Quc3R5bGVTaGVldC5jc3NUZXh0PWE6ZC5hcHBlbmRDaGlsZChjLmNyZWF0ZVRleHROb2RlKGEpKTtiLmFwcGVuZENoaWxkKGQpO3JldHVybiBkfSxDbj1mdW5jdGlvbigpe2Zvcih2YXIgYSBpbiBPYmplY3QucHJvdG90eXBlKXtfLnpjPWZ1bmN0aW9uKGQsZSxmKXtmb3IodmFyIGcgaW4gZClkW2ddIT09T2JqZWN0LnByb3RvdHlwZVtnXSYmZS5jYWxsKGYsZFtnXSxnLGQpfTticmVha312YXIgYj1EYXRlLm5vdygpLGM9em4oQW4pO2MmJnR5cGVvZiBjPT0iZnVuY3Rpb24iJiYoQm49PTE/YygpOmZ1bmN0aW9uIGUoKXt2YXIgZj1kb2N1bWVudC5yZWFkeVN0YXRlO18ub2MoZik9PSJ1bmRlZmluZWQifHxmPT0iY29tcGxldGUifHxmPT0iaW50ZXJhY3RpdmUifHxEYXRlLm5vdygpLWI+PTJFND9jKCk6d2luZG93LnNldFRpbWVvdXQoZSwKNTAwKX0oKSl9O18ubT16bC5wcm90b3R5cGU7Xy5tLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIHpsJiYodGhpcz09YT8hMDp0aGlzJiZhP3RoaXMueD09YS54JiZ0aGlzLnk9PWEueTohMSl9O18ubS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguY2VpbCh0aGlzLngpO3RoaXMueT1NYXRoLmNlaWwodGhpcy55KTtyZXR1cm4gdGhpc307Xy5tLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy54PU1hdGguZmxvb3IodGhpcy54KTt0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpO3JldHVybiB0aGlzfTtfLm0ucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpO3RoaXMueT1NYXRoLnJvdW5kKHRoaXMueSk7cmV0dXJuIHRoaXN9OwpfLm0udHJhbnNsYXRlPWZ1bmN0aW9uKGEsYil7YSBpbnN0YW5jZW9mIHpsPyh0aGlzLngrPWEueCx0aGlzLnkrPWEueSk6KHRoaXMueCs9TnVtYmVyKGEpLHR5cGVvZiBiPT09Im51bWJlciImJih0aGlzLnkrPWIpKTtyZXR1cm4gdGhpc307CnZhciBEbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IHpsKGEueCxhLnkpfSxFbj1bImRhdGE6IiwiaHR0cDoiLCJodHRwczoiLCJtYWlsdG86IiwiZnRwOiJdLEZuPWZ1bmN0aW9uKGEpe3ZhciBiPTE7YT1hLnNwbGl0KCI6Iik7Zm9yKHZhciBjPVtdO2I+MCYmYS5sZW5ndGg7KWMucHVzaChhLnNoaWZ0KCkpLGItLTthLmxlbmd0aCYmYy5wdXNoKGEuam9pbigiOiIpKTtyZXR1cm4gY30sR249ZnVuY3Rpb24oYSxiLGMpe2M9YS5nLmdldChjKTtyZXR1cm4oYz09bnVsbD8wOmMuaGFzKGIpKT9jLmdldChiKTphLmwuaGFzKGIpP3t1YToxfTooYz1hLm8uZ2V0KGIpKT9jOmEuaCYmW10uY29uY2F0KF8uJGIoYS5oKSkuc29tZShmdW5jdGlvbihkKXtyZXR1cm4gYi5pbmRleE9mKGQpPT09MH0pP3t1YToxfTp7dWE6MH19LEhuPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1DbChiKTtjPWMuY3JlYXRlRWxlbWVudChkKTtiPWIuYXR0cmlidXRlcztmb3IodmFyIGU9Xy5DKGIpLGY9ZS5uZXh0KCk7IWYuZG9uZTtmPQplLm5leHQoKSl7dmFyIGc9Zi52YWx1ZTtmPWcubmFtZTtnPWcudmFsdWU7dmFyIGg9R24oYS5nLGYsZCksazthOntpZihrPWguY29uZGl0aW9ucyl7az1fLkMoayk7Zm9yKHZhciBsPWsubmV4dCgpOyFsLmRvbmU7bD1rLm5leHQoKSl7dmFyIG49Xy5DKGwudmFsdWUpO2w9bi5uZXh0KCkudmFsdWU7bj1uLm5leHQoKS52YWx1ZTt2YXIgcT12b2lkIDA7aWYoKGw9KHE9Yi5nZXROYW1lZEl0ZW0obCkpPT1udWxsP3ZvaWQgMDpxLnZhbHVlKSYmIW4uaGFzKGwpKXtrPSExO2JyZWFrIGF9fX1rPSEwfWlmKGspc3dpdGNoKGgudWEpe2Nhc2UgMTpFbChjLGYsZyk7YnJlYWs7Y2FzZSAyOnRocm93IEVycm9yKCk7Y2FzZSAzOkVsKGMsZixnLnRvTG93ZXJDYXNlKCkpO2JyZWFrO2Nhc2UgNDpFbChjLGYsZyk7YnJlYWs7Y2FzZSA1OkVsKGMsZixnKTticmVhaztjYXNlIDY6RWwoYyxmLGcpO2JyZWFrO2Nhc2UgNzphOmlmKGg9dm9pZCAwLGs9ZyxfLkNjKXt0cnl7aD1uZXcgVVJMKGspfWNhdGNoKHApe2g9CiJodHRwczoiO2JyZWFrIGF9aD1oLnByb3RvY29sfWVsc2UgYjp7aD1rO2s9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3RyeXtrLmhyZWY9aH1jYXRjaChwKXtoPXZvaWQgMDticmVhayBifWg9ay5wcm90b2NvbDtoPWg9PT0iOiJ8fGg9PT0iIj8iaHR0cHM6IjpofWc9aCE9PXZvaWQgMCYmRW4uaW5kZXhPZihoLnRvTG93ZXJDYXNlKCkpIT09LTE/ZzoiYWJvdXQ6aW52YWxpZCN6Q2xvc3VyZXoiO0VsKGMsZixnKX19cmV0dXJuIGN9LGxtPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5xZDthPUJsKGEsYik7YT1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGEsNSxmdW5jdGlvbihoKXtpZihoLm5vZGVUeXBlPT09MyloPTE7ZWxzZSBpZihEbChoKSlpZihoPUNsKGgpLGg9PT1udWxsKWg9MjtlbHNle3ZhciBrPWMuZztoPWghPT0iRk9STSImJihrLmouaGFzKGgpfHxrLmcuaGFzKGgpKT8xOjJ9ZWxzZSBoPTI7cmV0dXJuIGh9KTtmb3IodmFyIGQ9YS5uZXh0Tm9kZSgpLGU9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksCmY9ZTtkIT09bnVsbDspe3ZhciBnPXZvaWQgMDtpZihkLm5vZGVUeXBlPT09MylnPWMuY3JlYXRlVGV4dE5vZGUoZC5kYXRhKTtlbHNlIGlmKERsKGQpKWc9SG4oYyxkLGIpO2Vsc2UgdGhyb3cgRXJyb3IoInQiKTtmLmFwcGVuZENoaWxkKGcpO2lmKGQ9YS5maXJzdENoaWxkKCkpZj1nO2Vsc2UgZm9yKDshKGQ9YS5uZXh0U2libGluZygpKSYmKGQ9YS5wYXJlbnROb2RlKCkpOylmPWYucGFyZW50Tm9kZX1yZXR1cm4gZX0sSW49ZnVuY3Rpb24oYSxiKXtyZXR1cm4oYj1iJiZiIT0iKiI/U3RyaW5nKGIpLnRvVXBwZXJDYXNlKCk6IiIpP2EucXVlcnlTZWxlY3RvckFsbChiKTphLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9LEpuPWZ1bmN0aW9uKGEpe3JldHVybiBhLnNjcm9sbGluZ0VsZW1lbnQ/YS5zY3JvbGxpbmdFbGVtZW50Ol8uVmN8fGEuY29tcGF0TW9kZSE9IkNTUzFDb21wYXQiP2EuYm9keXx8YS5kb2N1bWVudEVsZW1lbnQ6YS5kb2N1bWVudEVsZW1lbnR9LEtuPWZ1bmN0aW9uKGEpe3ZhciBiPQpKbihhKTthPWEuZGVmYXVsdFZpZXc7cmV0dXJuIG5ldyB6bCgoYT09bnVsbD92b2lkIDA6YS5wYWdlWE9mZnNldCl8fGIuc2Nyb2xsTGVmdCwoYT09bnVsbD92b2lkIDA6YS5wYWdlWU9mZnNldCl8fGIuc2Nyb2xsVG9wKX0sTG49ZnVuY3Rpb24oYSl7dmFyIGI9e307YT0oYS5nJiYoYS5nP2EuZy5yZWFkeVN0YXRlOjApPj0yP2EuZy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8IiI6IiIpLnNwbGl0KCJcclxuIik7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoIS9eW1xzXHhhMF0qJC8udGVzdChhW2NdKSl7dmFyIGQ9Rm4oYVtjXSksZT1kWzBdO2Q9ZFsxXTtpZih0eXBlb2YgZD09PSJzdHJpbmciKXtkPWQudHJpbSgpO3ZhciBmPWJbZV18fFtdO2JbZV09ZjtmLnB1c2goZCl9fXJldHVybiBBbChiLGZ1bmN0aW9uKGcpe3JldHVybiBnLmpvaW4oIiwgIil9KX0sTW49WzQsNSw2XSxKbT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9TW47Yz1fLkppKGMpO2E6e3ZhciBlPWM7Xy5yaShhKTsKdmFyIGY9YS5KLGc9ZltfLkhdfDA7aWYoZT09bnVsbCl7dmFyIGg9SGwoZik7aWYoSWwoaCxmLGcsZCk9PT1iKWguc2V0KGQsMCk7ZWxzZSBicmVhayBhfWVsc2V7aD1IbChmKTt2YXIgaz1JbChoLGYsZyxkKTtrIT09YiYmKGsmJihnPV8udGkoZixnLGspKSxoLnNldChkLGIpKX1fLnRpKGYsZyxiLGUpfWMmJiFfLldnKGMpJiZfLnNpKGEuSik7cmV0dXJuIGF9LExtPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihMbSxfLkopO0xtLnByb3RvdHlwZS5nZXRTZWNvbmRzPWZ1bmN0aW9uKCl7cmV0dXJuIF8uaGsodGhpcywxKX07TG0ucHJvdG90eXBlLnNldFNlY29uZHM9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uR2kodGhpcywxLGE9PW51bGw/YTpfLkpqKGEpLCIwIil9O3ZhciBNbT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoTW0sXy5KKTtNbS5wcm90b3R5cGUuZ2V0U2Vjb25kcz1mdW5jdGlvbigpe3JldHVybiBfLmhrKHRoaXMsMSl9OwpNbS5wcm90b3R5cGUuc2V0U2Vjb25kcz1mdW5jdGlvbihhKXtyZXR1cm4gXy5HaSh0aGlzLDEsYT09bnVsbD9hOl8uSmooYSksIjAiKX07dmFyIE5uPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBfLktrO3JldHVybiBfLmlrKGIsMTEsYSl9LHptPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IF8uaGwoMTg3MSwiMCIpO2EuQT0iaHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlYXBpcy5jb20vZWxlbWVudC9sb2c/Zm9ybWF0PWpzb24maGFzZmFzdD10cnVlIjtyZXR1cm4gYX0seW09ZnVuY3Rpb24oYSl7YS5oPU9uO3JldHVybiBhfSxJbT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoSW0sXy5KKTt2YXIgUG49ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKFBuLF8uSik7dmFyIEZtPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihGbSxfLkopO3ZhciBRbj1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoUW4sXy5KKTt2YXIgUm49ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Cl8uQihSbixfLkopO3ZhciBTbj1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoU24sXy5KKTt2YXIgVG49ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKFRuLF8uSik7CnZhciBVbj1mdW5jdGlvbihhKXtfLnJpKGEpO2E9YS5KO3ZhciBiPWFbXy5IXXwwLGM9Xy51aShhLDExMiksZD12b2lkIDA9PT1fLlhoLGU9Xy5oaChjLFRuLCFkLGIpOyFkfHxlPyhlPV8ua2goZSksYyE9PWUmJihiPV8udGkoYSxiLDExMixlKSxfLnNpKGEsYikpLGE9ZSk6YT12b2lkIDA7cmV0dXJuIGF9LFZuPWZ1bmN0aW9uKGEsYil7YS5VIT09dm9pZCAwP2EuVS5wdXNoKGIpOmEuY29udGVudCs9YjtyZXR1cm4gYX0sV249ZnVuY3Rpb24oYSxiKXthLlUhPT12b2lkIDA/YS5VLnB1c2goYik6YiBpbnN0YW5jZW9mIF8ueGw/Yi5jb250ZW50IT09dm9pZCAwP2EuY29udGVudCs9Yi5tYSgpOihhLlU9W2EuY29udGVudCxiXSxhLmNvbnRlbnQ9dm9pZCAwKTphLmNvbnRlbnQrPWI7cmV0dXJuIGF9LFhuPWZ1bmN0aW9uKGEpe3ZhciBiO2E9Xy5DKChiPWEuVSkhPW51bGw/YjpbXSk7Zm9yKGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWlmKGI9Yi52YWx1ZSxiIGluc3RhbmNlb2YKXy54bCYmWG4oYikpcmV0dXJuITA7cmV0dXJuITF9LFpuPWZ1bmN0aW9uKGEsYil7Yj1ZbihifHx7fSxhLmg/YS5oLmdldERhdGEoKTp7fSk7YS5nKG51bGwsYi5aYik7cmV0dXJuIGIuaigpfSwkbj17fSxhbz1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgemwoYS54LWIueCxhLnktYi55KX0sYm89LyYvZyxjbz0vPC9nLGVvPS8+L2csZm89LyIvZyxnbz0vJy9nLGhvPS9ceDAwL2csaW89L1tceDAwJjw+IiddLyxqbz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9ceGEwfFsgXHRdKy9nLCIgIil9LGtvPWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1tcc1x4YTBdKyQvLCIiKX0sbG89ZnVuY3Rpb24oYSl7aW8udGVzdChhKSYmKGEuaW5kZXhPZigiJiIpIT0tMSYmKGE9YS5yZXBsYWNlKGJvLCImYW1wOyIpKSxhLmluZGV4T2YoIjwiKSE9LTEmJihhPWEucmVwbGFjZShjbywiJmx0OyIpKSxhLmluZGV4T2YoIj4iKSE9LTEmJihhPWEucmVwbGFjZShlbywiJmd0OyIpKSxhLmluZGV4T2YoJyInKSE9Ci0xJiYoYT1hLnJlcGxhY2UoZm8sIiZxdW90OyIpKSxhLmluZGV4T2YoIiciKSE9LTEmJihhPWEucmVwbGFjZShnbywiJiMzOTsiKSksYS5pbmRleE9mKCJceDAwIikhPS0xJiYoYT1hLnJlcGxhY2UoaG8sIiYjMDsiKSkpO3JldHVybiBhfSxtbz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC8mKFteO10rKTsvZyxmdW5jdGlvbihiLGMpe3N3aXRjaChjKXtjYXNlICJhbXAiOnJldHVybiImIjtjYXNlICJsdCI6cmV0dXJuIjwiO2Nhc2UgImd0IjpyZXR1cm4iPiI7Y2FzZSAicXVvdCI6cmV0dXJuJyInO2RlZmF1bHQ6cmV0dXJuIGMuY2hhckF0KDApIT0iIyJ8fChjPU51bWJlcigiMCIrYy5zbGljZSgxKSksaXNOYU4oYykpP2I6U3RyaW5nLmZyb21DaGFyQ29kZShjKX19KX0sbm89LyYoW147XHM8Jl0rKTs/L2csb289ZnVuY3Rpb24oYSl7dmFyIGI9eyImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+IiwiJnF1b3Q7IjonIid9O3ZhciBjPV8udi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKcmV0dXJuIGEucmVwbGFjZShubyxmdW5jdGlvbihkLGUpe3ZhciBmPWJbZF07aWYoZilyZXR1cm4gZjtlLmNoYXJBdCgwKT09IiMiJiYoZT1OdW1iZXIoIjAiK2Uuc2xpY2UoMSkpLGlzTmFOKGUpfHwoZj1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSk7Znx8KGY9Xy5tbChkKyIgIiksYy5ub2RlVHlwZT09PTEmJk1sKGMpLGMuaW5uZXJIVE1MPV8ua2ooZiksZj1jLmZpcnN0Q2hpbGQubm9kZVZhbHVlLnNsaWNlKDAsLTEpKTtyZXR1cm4gYltkXT1mfSl9LHBvPWZ1bmN0aW9uKGEpe3JldHVybiBhLmluZGV4T2YoIiYiKSE9LTE/ImRvY3VtZW50ImluIF8udj9vbyhhKTptbyhhKTphfSxybz1mdW5jdGlvbihhKXt2YXIgYj1xbztyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIjcuMCIpP2JbIjcuMCJdOmJbIjcuMCJdPWEoIjcuMCIpfSxxbz17fSxzbz1mdW5jdGlvbigpe3JldHVybiBybyhmdW5jdGlvbigpe3JldHVybiBMbChfLmpkLCI3LjAiKT49MH0pfSwKVGw9L15bYS16XVthLXpcZC1dKiQvaSxXbD0iQVBQTEVUIEJBU0UgRU1CRUQgSUZSQU1FIExJTksgTUFUSCBNRVRBIE9CSkVDVCBTQ1JJUFQgU1RZTEUgU1ZHIFRFTVBMQVRFIi5zcGxpdCgiICIpLFhsPSJBUkVBIEJSIENPTCBDT01NQU5EIEhSIElNRyBJTlBVVCBLRVlHRU4gUEFSQU0gU09VUkNFIFRSQUNLIFdCUiIuc3BsaXQoIiAiKSxVbD1bImFjdGlvbiIsImZvcm1hY3Rpb24iLCJocmVmIl0sdG89ZnVuY3Rpb24oKXt0aGlzLmc9bmV3IE1hcH07CnRvLnByb3RvdHlwZS5mb3JtYXQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPVBsKCJfc2FmZXZhbHVlc19mb3JtYXRfbWFya2VyXzoiKS50b1N0cmluZygpO2E9UGwoYSkudG9TdHJpbmcoKS5yZXBsYWNlKG5ldyBSZWdFeHAoIlxceyIrYysiW1xcdyYjO10rXFx9IiwiZyIpLGZ1bmN0aW9uKGQpe3ZhciBlO2lmKGU9Yi5nLmdldChkKSl7ZD0iIjtzd2l0Y2goZS50eXBlKXtjYXNlICJodG1sIjpkPWUueGY7YnJlYWs7Y2FzZSAic3RhcnRUYWciOmQ9IjwiK2UudGFnTmFtZStlLmF0dHJpYnV0ZXMrIj4iO2JyZWFrO2Nhc2UgImVuZFRhZyI6ZD0iPC8iK2UudGFnTmFtZSsiPiJ9ZT1kfWVsc2UgZT1kO3JldHVybiBlfSk7cmV0dXJuIF8ubWwoYSl9O3RvLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKGEpe3JldHVybiB1byh0aGlzLHt0eXBlOiJodG1sIix4ZjpQbChhKS50b1N0cmluZygpfSl9Owp2YXIgdW89ZnVuY3Rpb24oYSxiKXt2YXIgYz0ie19zYWZldmFsdWVzX2Zvcm1hdF9tYXJrZXJfOiIrYS5nLnNpemUrIl8iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpKyJ9IjthLmcuc2V0KFBsKGMpLnRvU3RyaW5nKCksYik7cmV0dXJuIGN9LGduPWZ1bmN0aW9uKGEpe3JldHVybiBfLnRkKGRvY3VtZW50LGEpfSx2bz1mdW5jdGlvbihhKXt2YXIgYj1hfHxkb2N1bWVudDtiLmdldEVsZW1lbnRzQnlDbGFzc05hbWU/YT1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TIilbMF06KGI9ZG9jdW1lbnQsYT0oYXx8YikucXVlcnlTZWxlY3RvcigiLlZJcGdKZC15QVdORWItblZNZmNkLWZtY21TIikpO3JldHVybiBhfHxudWxsfSx3bz1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIF8ueWQoZG9jdW1lbnQsYXJndW1lbnRzKX0seG89ZnVuY3Rpb24oYSxiKXtiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSwKYi5uZXh0U2libGluZyl9LHlvPWZ1bmN0aW9uKGEpe3JldHVybiBfLnlhKGEpJiZhLm5vZGVUeXBlPT0xfSx6bz1mdW5jdGlvbihhKXtyZXR1cm4gYS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudH0sQW89ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBhLmNvbnRlbnRXaW5kb3d8fChhLmNvbnRlbnREb2N1bWVudD9fLm1iKGEuY29udGVudERvY3VtZW50KTpudWxsKX1jYXRjaChiKXt9cmV0dXJuIG51bGx9LEJvPXtTQ1JJUFQ6MSxTVFlMRToxLEhFQUQ6MSxJRlJBTUU6MSxPQkpFQ1Q6MX0sQ289e0lNRzoiICIsQlI6IlxuIn0sRG89ZnVuY3Rpb24oYSxiLGMpe2lmKCEoYS5ub2RlTmFtZSBpbiBCbykpaWYoYS5ub2RlVHlwZT09MyljP2IucHVzaChTdHJpbmcoYS5ub2RlVmFsdWUpLnJlcGxhY2UoLyhcclxufFxyfFxuKS9nLCIiKSk6Yi5wdXNoKGEubm9kZVZhbHVlKTtlbHNlIGlmKGEubm9kZU5hbWUgaW4gQ28pYi5wdXNoKENvW2Eubm9kZU5hbWVdKTtlbHNlIGZvcihhPQphLmZpcnN0Q2hpbGQ7YTspRG8oYSxiLGMpLGE9YS5uZXh0U2libGluZ30sRW89ZnVuY3Rpb24oYSl7dmFyIGI9W107RG8oYSxiLCEwKTthPWIuam9pbigiIik7YT1hLnJlcGxhY2UoLyBceEFEIC9nLCIgIikucmVwbGFjZSgvXHhBRC9nLCIiKTthPWEucmVwbGFjZSgvXHUyMDBCL2csIiIpO2E9YS5yZXBsYWNlKC8gKy9nLCIgIik7YSE9IiAiJiYoYT1hLnJlcGxhY2UoL15ccyovLCIiKSk7cmV0dXJuIGF9LEZvPWZ1bmN0aW9uKGEsYixjKXt0aGlzLnByb21pc2U9YTt0aGlzLnJlc29sdmU9Yjt0aGlzLnJlamVjdD1jfSxHbz1mdW5jdGlvbigpe3ZhciBhLGIsYz1uZXcgXy5vZShmdW5jdGlvbihkLGUpe2E9ZDtiPWV9KTtyZXR1cm4gbmV3IEZvKGMsYSxiKX0sSG89ZnVuY3Rpb24oYSl7aWYoYS5pYiYmdHlwZW9mIGEuaWI9PSJmdW5jdGlvbiIpcmV0dXJuIGEuaWIoKTtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXB8fHR5cGVvZiBTZXQhPT0idW5kZWZpbmVkIiYmCmEgaW5zdGFuY2VvZiBTZXQpcmV0dXJuIEFycmF5LmZyb20oYS52YWx1ZXMoKSk7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilyZXR1cm4gYS5zcGxpdCgiIik7aWYoXy5xYShhKSl7Zm9yKHZhciBiPVtdLGM9YS5sZW5ndGgsZD0wO2Q8YztkKyspYi5wdXNoKGFbZF0pO3JldHVybiBifWI9W107Yz0wO2ZvcihkIGluIGEpYltjKytdPWFbZF07cmV0dXJuIGJ9LElvPWZ1bmN0aW9uKGEpe2lmKGEuT2MmJnR5cGVvZiBhLk9jPT0iZnVuY3Rpb24iKXJldHVybiBhLk9jKCk7aWYoIWEuaWJ8fHR5cGVvZiBhLmliIT0iZnVuY3Rpb24iKXtpZih0eXBlb2YgTWFwIT09InVuZGVmaW5lZCImJmEgaW5zdGFuY2VvZiBNYXApcmV0dXJuIEFycmF5LmZyb20oYS5rZXlzKCkpO2lmKCEodHlwZW9mIFNldCE9PSJ1bmRlZmluZWQiJiZhIGluc3RhbmNlb2YgU2V0KSl7aWYoXy5xYShhKXx8dHlwZW9mIGE9PT0ic3RyaW5nIil7dmFyIGI9W107YT1hLmxlbmd0aDtmb3IodmFyIGM9MDtjPGE7YysrKWIucHVzaChjKTsKcmV0dXJuIGJ9Yj1bXTtjPTA7Zm9yKHZhciBkIGluIGEpYltjKytdPWQ7cmV0dXJuIGJ9fX0sSm89ZnVuY3Rpb24oYSxiLGMpe2lmKGEuZm9yRWFjaCYmdHlwZW9mIGEuZm9yRWFjaD09ImZ1bmN0aW9uIilhLmZvckVhY2goYixjKTtlbHNlIGlmKF8ucWEoYSl8fHR5cGVvZiBhPT09InN0cmluZyIpQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGIsYyk7ZWxzZSBmb3IodmFyIGQ9SW8oYSksZT1IbyhhKSxmPWUubGVuZ3RoLGc9MDtnPGY7ZysrKWIuY2FsbChjLGVbZ10sZCYmZFtnXSxhKX0sZ209ZnVuY3Rpb24oYSxiKXt0aGlzLmg9dGhpcy5nPW51bGw7dGhpcy5qPWF8fG51bGw7dGhpcy5sPSEhYn0sS289ZnVuY3Rpb24oYSl7YS5nfHwoYS5nPW5ldyBNYXAsYS5oPTAsYS5qJiZfLkViKGEuaixmdW5jdGlvbihiLGMpe2EuYWRkKF8uRGIoYiksYyl9KSl9OwpnbS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGEsYil7S28odGhpcyk7dGhpcy5qPW51bGw7YT1Mbyh0aGlzLGEpO3ZhciBjPXRoaXMuZy5nZXQoYSk7Y3x8dGhpcy5nLnNldChhLGM9W10pO2MucHVzaChiKTt0aGlzLmgrPTE7cmV0dXJuIHRoaXN9O2dtLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oYSl7S28odGhpcyk7YT1Mbyh0aGlzLGEpO3JldHVybiB0aGlzLmcuaGFzKGEpPyh0aGlzLmo9bnVsbCx0aGlzLmgtPXRoaXMuZy5nZXQoYSkubGVuZ3RoLHRoaXMuZy5kZWxldGUoYSkpOiExfTtnbS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmc9dGhpcy5qPW51bGw7dGhpcy5oPTB9O3ZhciBNbz1mdW5jdGlvbihhLGIpe0tvKGEpO2I9TG8oYSxiKTtyZXR1cm4gYS5nLmhhcyhiKX07Xy5tPWdtLnByb3RvdHlwZTsKXy5tLmZvckVhY2g9ZnVuY3Rpb24oYSxiKXtLbyh0aGlzKTt0aGlzLmcuZm9yRWFjaChmdW5jdGlvbihjLGQpe2MuZm9yRWFjaChmdW5jdGlvbihlKXthLmNhbGwoYixlLGQsdGhpcyl9LHRoaXMpfSx0aGlzKX07Xy5tLk9jPWZ1bmN0aW9uKCl7S28odGhpcyk7Zm9yKHZhciBhPUFycmF5LmZyb20odGhpcy5nLnZhbHVlcygpKSxiPUFycmF5LmZyb20odGhpcy5nLmtleXMoKSksYz1bXSxkPTA7ZDxiLmxlbmd0aDtkKyspZm9yKHZhciBlPWFbZF0sZj0wO2Y8ZS5sZW5ndGg7ZisrKWMucHVzaChiW2RdKTtyZXR1cm4gY307Xy5tLmliPWZ1bmN0aW9uKGEpe0tvKHRoaXMpO3ZhciBiPVtdO2lmKHR5cGVvZiBhPT09InN0cmluZyIpTW8odGhpcyxhKSYmKGI9Yi5jb25jYXQodGhpcy5nLmdldChMbyh0aGlzLGEpKSkpO2Vsc2V7YT1BcnJheS5mcm9tKHRoaXMuZy52YWx1ZXMoKSk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspYj1iLmNvbmNhdChhW2NdKX1yZXR1cm4gYn07Cl8ubS5zZXQ9ZnVuY3Rpb24oYSxiKXtLbyh0aGlzKTt0aGlzLmo9bnVsbDthPUxvKHRoaXMsYSk7TW8odGhpcyxhKSYmKHRoaXMuaC09dGhpcy5nLmdldChhKS5sZW5ndGgpO3RoaXMuZy5zZXQoYSxbYl0pO3RoaXMuaCs9MTtyZXR1cm4gdGhpc307Xy5tLmdldD1mdW5jdGlvbihhLGIpe2lmKCFhKXJldHVybiBiO2E9dGhpcy5pYihhKTtyZXR1cm4gYS5sZW5ndGg+MD9TdHJpbmcoYVswXSk6Yn07dmFyIE5vPWZ1bmN0aW9uKGEsYixjKXthLnJlbW92ZShiKTtjLmxlbmd0aD4wJiYoYS5qPW51bGwsYS5nLnNldChMbyhhLGIpLF8ud2EoYykpLGEuaCs9Yy5sZW5ndGgpfTsKZ20ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7aWYodGhpcy5qKXJldHVybiB0aGlzLmo7aWYoIXRoaXMuZylyZXR1cm4iIjtmb3IodmFyIGE9W10sYj1BcnJheS5mcm9tKHRoaXMuZy5rZXlzKCkpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPV8uR2IoZCk7ZD10aGlzLmliKGQpO2Zvcih2YXIgZj0wO2Y8ZC5sZW5ndGg7ZisrKXt2YXIgZz1lO2RbZl0hPT0iIiYmKGcrPSI9IitfLkdiKGRbZl0pKTthLnB1c2goZyl9fXJldHVybiB0aGlzLmo9YS5qb2luKCImIil9Owp2YXIgZW09ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IGdtO2Iuaj1hLmo7YS5nJiYoYi5nPW5ldyBNYXAoYS5nKSxiLmg9YS5oKTtyZXR1cm4gYn0sTG89ZnVuY3Rpb24oYSxiKXtiPVN0cmluZyhiKTthLmwmJihiPWIudG9Mb3dlckNhc2UoKSk7cmV0dXJuIGJ9LE9vPWZ1bmN0aW9uKGEsYil7YiYmIWEubCYmKEtvKGEpLGEuaj1udWxsLGEuZy5mb3JFYWNoKGZ1bmN0aW9uKGMsZCl7dmFyIGU9ZC50b0xvd2VyQ2FzZSgpO2QhPWUmJih0aGlzLnJlbW92ZShkKSxObyh0aGlzLGUsYykpfSxhKSk7YS5sPWJ9O2dtLnByb3RvdHlwZS5leHRlbmQ9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylKbyhhcmd1bWVudHNbYl0sZnVuY3Rpb24oYyxkKXt0aGlzLmFkZChkLGMpfSx0aGlzKX07CnZhciBQbz0vWyNcL1w/QF0vZyxRbz0vWyNcP10vZyxSbz0vWyNcPzpdL2csU289LyMvZyxmbT1mdW5jdGlvbihhLGIpe3JldHVybiBhP2I/ZGVjb2RlVVJJKGEucmVwbGFjZSgvJTI1L2csIiUyNTI1IikpOmRlY29kZVVSSUNvbXBvbmVudChhKToiIn0sVG89L1sjXD9AXS9nLFVvPWZ1bmN0aW9uKGEpe2E9YS5jaGFyQ29kZUF0KDApO3JldHVybiIlIisoYT4+NCYxNSkudG9TdHJpbmcoMTYpKyhhJjE1KS50b1N0cmluZygxNil9LFZvPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdHlwZW9mIGE9PT0ic3RyaW5nIj8oYT1lbmNvZGVVUkkoYSkucmVwbGFjZShiLFVvKSxjJiYoYT1hLnJlcGxhY2UoLyUyNShbMC05YS1mQS1GXXsyfSkvZywiJSQxIikpLGEpOm51bGx9OwpabC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMubDtiJiZhLnB1c2goVm8oYixQbywhMCksIjoiKTt2YXIgYz10aGlzLmg7aWYoY3x8Yj09ImZpbGUiKWEucHVzaCgiLy8iKSwoYj10aGlzLkIpJiZhLnB1c2goVm8oYixQbywhMCksIkAiKSxhLnB1c2goXy5HYihjKS5yZXBsYWNlKC8lMjUoWzAtOWEtZkEtRl17Mn0pL2csIiUkMSIpKSxjPXRoaXMuQyxjIT1udWxsJiZhLnB1c2goIjoiLFN0cmluZyhjKSk7aWYoYz10aGlzLmopdGhpcy5oJiZjLmNoYXJBdCgwKSE9Ii8iJiZhLnB1c2goIi8iKSxhLnB1c2goVm8oYyxjLmNoYXJBdCgwKT09Ii8iP1FvOlJvLCEwKSk7KGM9dGhpcy5nLnRvU3RyaW5nKCkpJiZhLnB1c2goIj8iLGMpOyhjPXRoaXMuQSkmJmEucHVzaCgiIyIsVm8oYyxTbykpO3JldHVybiBhLmpvaW4oIiIpfTsKWmwucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IFpsKHRoaXMpLGM9ISFhLmw7Yz8kbChiLGEubCk6Yz0hIWEuQjtjP2IuQj1hLkI6Yz0hIWEuaDtjP2FtKGIsYS5oKTpjPWEuQyE9bnVsbDt2YXIgZD1hLmo7aWYoYylibShiLGEuQyk7ZWxzZSBpZihjPSEhYS5qKXtpZihkLmNoYXJBdCgwKSE9Ii8iKWlmKHRoaXMuaCYmIXRoaXMuailkPSIvIitkO2Vsc2V7dmFyIGU9Yi5qLmxhc3RJbmRleE9mKCIvIik7ZSE9LTEmJihkPWIuai5zbGljZSgwLGUrMSkrZCl9ZT1kO2lmKGU9PSIuLiJ8fGU9PSIuIilkPSIiO2Vsc2UgaWYoZS5pbmRleE9mKCIuLyIpIT0tMXx8ZS5pbmRleE9mKCIvLiIpIT0tMSl7ZD1lLmxhc3RJbmRleE9mKCIvIiwwKT09MDtlPWUuc3BsaXQoIi8iKTtmb3IodmFyIGY9W10sZz0wO2c8ZS5sZW5ndGg7KXt2YXIgaD1lW2crK107aD09Ii4iP2QmJmc9PWUubGVuZ3RoJiZmLnB1c2goIiIpOmg9PSIuLiI/KChmLmxlbmd0aD4xfHxmLmxlbmd0aD09CjEmJmZbMF0hPSIiKSYmZi5wb3AoKSxkJiZnPT1lLmxlbmd0aCYmZi5wdXNoKCIiKSk6KGYucHVzaChoKSxkPSEwKX1kPWYuam9pbigiLyIpfWVsc2UgZD1lfWM/Y20oYixkKTpjPWEuZy50b1N0cmluZygpIT09IiI7Yz9kbShiLGVtKGEuZykpOmM9ISFhLkE7YyYmKGIuQT1hLkEpO3JldHVybiBifTsKdmFyICRsPWZ1bmN0aW9uKGEsYixjKXthLmw9Yz9mbShiLCEwKTpiO2EubCYmKGEubD1hLmwucmVwbGFjZSgvOiQvLCIiKSk7cmV0dXJuIGF9LGFtPWZ1bmN0aW9uKGEsYixjKXthLmg9Yz9mbShiLCEwKTpiO3JldHVybiBhfSxibT1mdW5jdGlvbihhLGIpe2lmKGIpe2I9TnVtYmVyKGIpO2lmKGlzTmFOKGIpfHxiPDApdGhyb3cgRXJyb3IoIkhgIitiKTthLkM9Yn1lbHNlIGEuQz1udWxsfSxjbT1mdW5jdGlvbihhLGIsYyl7YS5qPWM/Zm0oYiwhMCk6YjtyZXR1cm4gYX0sZG09ZnVuY3Rpb24oYSxiLGMpe2IgaW5zdGFuY2VvZiBnbT8oYS5nPWIsT28oYS5nLGEubykpOihjfHwoYj1WbyhiLFRvKSksYS5nPW5ldyBnbShiLGEubykpfSxXbz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIFpsP25ldyBabChhKTpuZXcgWmwoYSl9LFhvPWZ1bmN0aW9uKGEpe3ZhciBiPUlvKGEpO2lmKHR5cGVvZiBiPT0idW5kZWZpbmVkIil0aHJvdyBFcnJvcigiSiIpO3ZhciBjPW5ldyBnbShudWxsKTsKYT1IbyhhKTtmb3IodmFyIGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXSxmPWFbZF07QXJyYXkuaXNBcnJheShmKT9ObyhjLGUsZik6Yy5hZGQoZSxmKX1yZXR1cm4gY30sWW89e30sWm89e30sJG89e30sYXA9e30sam09e30scW09e30scG0sVW09e30sYnA9ZnVuY3Rpb24oYSxiLGMpe2E9YS5KO3JldHVybiBfLkhpKGEsYVtfLkhdfDAsYixjKXx8YltfLmZoXXx8KGJbXy5maF09Xy5naChiKSl9LHNuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gXy5HaShhLGIsXy5MaihjKSwiIil9O18ubT12bS5wcm90b3R5cGU7Xy5tLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzJiZhP2EgaW5zdGFuY2VvZiB2bT9hLmxlZnQ+PXRoaXMubGVmdCYmYS5yaWdodDw9dGhpcy5yaWdodCYmYS50b3A+PXRoaXMudG9wJiZhLmJvdHRvbTw9dGhpcy5ib3R0b206YS54Pj10aGlzLmxlZnQmJmEueDw9dGhpcy5yaWdodCYmYS55Pj10aGlzLnRvcCYmYS55PD10aGlzLmJvdHRvbTohMX07Cl8ubS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy50b3A9TWF0aC5jZWlsKHRoaXMudG9wKTt0aGlzLnJpZ2h0PU1hdGguY2VpbCh0aGlzLnJpZ2h0KTt0aGlzLmJvdHRvbT1NYXRoLmNlaWwodGhpcy5ib3R0b20pO3RoaXMubGVmdD1NYXRoLmNlaWwodGhpcy5sZWZ0KTtyZXR1cm4gdGhpc307Xy5tLmZsb29yPWZ1bmN0aW9uKCl7dGhpcy50b3A9TWF0aC5mbG9vcih0aGlzLnRvcCk7dGhpcy5yaWdodD1NYXRoLmZsb29yKHRoaXMucmlnaHQpO3RoaXMuYm90dG9tPU1hdGguZmxvb3IodGhpcy5ib3R0b20pO3RoaXMubGVmdD1NYXRoLmZsb29yKHRoaXMubGVmdCk7cmV0dXJuIHRoaXN9O18ubS5yb3VuZD1mdW5jdGlvbigpe3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMucmlnaHQ9TWF0aC5yb3VuZCh0aGlzLnJpZ2h0KTt0aGlzLmJvdHRvbT1NYXRoLnJvdW5kKHRoaXMuYm90dG9tKTt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3JldHVybiB0aGlzfTsKXy5tLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiB6bD8odGhpcy5sZWZ0Kz1hLngsdGhpcy5yaWdodCs9YS54LHRoaXMudG9wKz1hLnksdGhpcy5ib3R0b20rPWEueSk6KHRoaXMubGVmdCs9YSx0aGlzLnJpZ2h0Kz1hLHR5cGVvZiBiPT09Im51bWJlciImJih0aGlzLnRvcCs9Yix0aGlzLmJvdHRvbSs9YikpO3JldHVybiB0aGlzfTtfLm09d20ucHJvdG90eXBlO18ubS5jb250YWlucz1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIHpsP2EueD49dGhpcy5sZWZ0JiZhLng8PXRoaXMubGVmdCt0aGlzLndpZHRoJiZhLnk+PXRoaXMudG9wJiZhLnk8PXRoaXMudG9wK3RoaXMuaGVpZ2h0OnRoaXMubGVmdDw9YS5sZWZ0JiZ0aGlzLmxlZnQrdGhpcy53aWR0aD49YS5sZWZ0K2Eud2lkdGgmJnRoaXMudG9wPD1hLnRvcCYmdGhpcy50b3ArdGhpcy5oZWlnaHQ+PWEudG9wK2EuaGVpZ2h0fTsKXy5tLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5jZWlsKHRoaXMubGVmdCk7dGhpcy50b3A9TWF0aC5jZWlsKHRoaXMudG9wKTt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLm0uZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5mbG9vcih0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGguZmxvb3IodGhpcy50b3ApO3RoaXMud2lkdGg9TWF0aC5mbG9vcih0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307Xy5tLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0PU1hdGgucm91bmQodGhpcy5sZWZ0KTt0aGlzLnRvcD1NYXRoLnJvdW5kKHRoaXMudG9wKTt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9OwpfLm0udHJhbnNsYXRlPWZ1bmN0aW9uKGEsYil7YSBpbnN0YW5jZW9mIHpsPyh0aGlzLmxlZnQrPWEueCx0aGlzLnRvcCs9YS55KToodGhpcy5sZWZ0Kz1hLHR5cGVvZiBiPT09Im51bWJlciImJih0aGlzLnRvcCs9YikpO3JldHVybiB0aGlzfTsKdmFyIGNwPWZ1bmN0aW9uKGEsYil7YTp7dmFyIGM9Xy5zZChhKTtpZihjLmRlZmF1bHRWaWV3JiZjLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJihjPWMuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpKSl7Yz1jW2JdfHxjLmdldFByb3BlcnR5VmFsdWUoYil8fCIiO2JyZWFrIGF9Yz0iIn1yZXR1cm4gY3x8KGEuY3VycmVudFN0eWxlP2EuY3VycmVudFN0eWxlW2JdOm51bGwpfHxhLnN0eWxlJiZhLnN0eWxlW2JdfSxkcD1mdW5jdGlvbihhKXt0eXBlb2YgYT09Im51bWJlciImJihhKz0icHgiKTtyZXR1cm4gYX0sZXA9ZnVuY3Rpb24oYSxiKXtpZihiIGluc3RhbmNlb2Ygemwpe3ZhciBjPWIueDtiPWIueX1lbHNlIGM9YixiPXZvaWQgMDthLnN0eWxlLmxlZnQ9ZHAoYyk7YS5zdHlsZS50b3A9ZHAoYil9LGZwPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jYXRjaChiKXtyZXR1cm57bGVmdDowLHRvcDowLHJpZ2h0OjAsCmJvdHRvbTowfX19LGdwPWZ1bmN0aW9uKGEpe3ZhciBiPV8uc2QoYSksYz1jcChhLCJwb3NpdGlvbiIpLGQ9Yz09ImZpeGVkInx8Yz09ImFic29sdXRlIjtmb3IoYT1hLnBhcmVudE5vZGU7YSYmYSE9YjthPWEucGFyZW50Tm9kZSlpZihhLm5vZGVUeXBlPT0xMSYmYS5ob3N0JiYoYT1hLmhvc3QpLGM9Y3AoYSwicG9zaXRpb24iKSxkPWQmJmM9PSJzdGF0aWMiJiZhIT1iLmRvY3VtZW50RWxlbWVudCYmYSE9Yi5ib2R5LCFkJiYoYS5zY3JvbGxXaWR0aD5hLmNsaWVudFdpZHRofHxhLnNjcm9sbEhlaWdodD5hLmNsaWVudEhlaWdodHx8Yz09ImZpeGVkInx8Yz09ImFic29sdXRlInx8Yz09InJlbGF0aXZlIikpcmV0dXJuIGE7cmV0dXJuIG51bGx9LGhwPWZ1bmN0aW9uKGEpe3ZhciBiPV8uc2QoYSksYz1uZXcgemwoMCwwKTtpZihhPT0oYj9fLnNkKGIpOmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQpcmV0dXJuIGM7YT1mcChhKTtiPV8ubGIoYik7Yj1LbihiLmcpO2MueD1hLmxlZnQrYi54OwpjLnk9YS50b3ArYi55O3JldHVybiBjfSxpcD1mdW5jdGlvbihhKXtmb3IodmFyIGI9bmV3IHZtKDAsSW5maW5pdHksSW5maW5pdHksMCksYz1fLmxiKGEpLGQ9Yy5nLmJvZHksZT1jLmcuZG9jdW1lbnRFbGVtZW50LGY9Sm4oYy5nKTthPWdwKGEpOylpZigoIV8uVmN8fGEuY2xpZW50SGVpZ2h0IT0wfHxhIT1kKSYmYSE9ZCYmYSE9ZSYmY3AoYSwib3ZlcmZsb3ciKSE9InZpc2libGUiKXt2YXIgZz1ocChhKSxoPW5ldyB6bChhLmNsaWVudExlZnQsYS5jbGllbnRUb3ApO2cueCs9aC54O2cueSs9aC55O2IudG9wPU1hdGgubWF4KGIudG9wLGcueSk7Yi5yaWdodD1NYXRoLm1pbihiLnJpZ2h0LGcueCthLmNsaWVudFdpZHRoKTtiLmJvdHRvbT1NYXRoLm1pbihiLmJvdHRvbSxnLnkrYS5jbGllbnRIZWlnaHQpO2IubGVmdD1NYXRoLm1heChiLmxlZnQsZy54KX1kPWYuc2Nyb2xsTGVmdDtmPWYuc2Nyb2xsVG9wO2IubGVmdD1NYXRoLm1heChiLmxlZnQsZCk7Yi50b3A9TWF0aC5tYXgoYi50b3AsCmYpO2M9Xy5pYihjLmcuZGVmYXVsdFZpZXd8fHdpbmRvdyk7Yi5yaWdodD1NYXRoLm1pbihiLnJpZ2h0LGQrYy53aWR0aCk7Yi5ib3R0b209TWF0aC5taW4oYi5ib3R0b20sZitjLmhlaWdodCk7cmV0dXJuIGIudG9wPj0wJiZiLmxlZnQ+PTAmJmIuYm90dG9tPmIudG9wJiZiLnJpZ2h0PmIubGVmdD9iOm51bGx9LGpwPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IHpsKDAsMCksZD1fLm1iKF8uc2QoYSkpO2E6e3RyeXtfLlFjKGQucGFyZW50KTt2YXIgZT0hMDticmVhayBhfWNhdGNoKGYpe31lPSExfWlmKCFlKXJldHVybiBjO2RvIGQ9PWI/ZT1ocChhKTooZT1mcChhKSxlPW5ldyB6bChlLmxlZnQsZS50b3ApKSxjLngrPWUueCxjLnkrPWUueTt3aGlsZShkJiZkIT1iJiZkIT1kLnBhcmVudCYmKGE9ZC5mcmFtZUVsZW1lbnQpJiYoZD1kLnBhcmVudCkpO3JldHVybiBjfSxscD1mdW5jdGlvbihhKXt2YXIgYj1rcDtpZihjcChhLCJkaXNwbGF5IikhPSJub25lIilyZXR1cm4gYihhKTt2YXIgYz0KYS5zdHlsZSxkPWMuZGlzcGxheSxlPWMudmlzaWJpbGl0eSxmPWMucG9zaXRpb247Yy52aXNpYmlsaXR5PSJoaWRkZW4iO2MucG9zaXRpb249ImFic29sdXRlIjtjLmRpc3BsYXk9ImlubGluZSI7YT1iKGEpO2MuZGlzcGxheT1kO2MucG9zaXRpb249ZjtjLnZpc2liaWxpdHk9ZTtyZXR1cm4gYX0sa3A9ZnVuY3Rpb24oYSl7dmFyIGI9YS5vZmZzZXRXaWR0aCxjPWEub2Zmc2V0SGVpZ2h0LGQ9Xy5WYyYmIWImJiFjO3JldHVybihiPT09dm9pZCAwfHxkKSYmYS5nZXRCb3VuZGluZ0NsaWVudFJlY3Q/KGE9ZnAoYSksbmV3IF8uQ2EoYS5yaWdodC1hLmxlZnQsYS5ib3R0b20tYS50b3ApKTpuZXcgXy5DYShiLGMpfSxtcD1mdW5jdGlvbihhLGIpe2Euc3R5bGUuZGlzcGxheT1iPyIiOiJub25lIn0sbnA9ZnVuY3Rpb24oYSxiKXtiPV8ubGIoYik7dmFyIGM9SW4oYi5nLCJIRUFEIilbMF07aWYoIWMpe3ZhciBkPUluKGIuZywiQk9EWSIpWzBdO2M9Yi5TKCJIRUFEIik7ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLApkKX1kPWIuUygiU1RZTEUiKTt2YXIgZT1fLk9hKCJzdHlsZSIsZG9jdW1lbnQpO2UmJmQuc2V0QXR0cmlidXRlKCJub25jZSIsZSk7YT1ObChhKTtfLnYudHJ1c3RlZFR5cGVzP18uQ2QoZCxhKTpkLmlubmVySFRNTD1hO2IuYXBwZW5kQ2hpbGQoYyxkKX0sb3A9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBfLkNhKGEub2Zmc2V0V2lkdGgsYS5vZmZzZXRIZWlnaHQpfSxwcD1mdW5jdGlvbihhLGIsYyl7YT1hLnN0eWxlO18uVWM/YS5Nb3pCb3hTaXppbmc9YzpfLlZjP2EuV2Via2l0Qm94U2l6aW5nPWM6YS5ib3hTaXppbmc9YzthLndpZHRoPU1hdGgubWF4KGIud2lkdGgsMCkrInB4IjthLmhlaWdodD1NYXRoLm1heChiLmhlaWdodCwwKSsicHgifSxxcD1mdW5jdGlvbihhLGIpe3BwKGEsYiwiY29udGVudC1ib3giKX0scnA9ZnVuY3Rpb24oYSl7aWYoYSE9bnVsbClzd2l0Y2goYS5KZCl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgLTE6cmV0dXJuLTE7Y2FzZSAwOnJldHVybiAwfXJldHVybiBudWxsfSwKc3A9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLnhsP1huKGEpPyEwOiEhYS5tYSgpOmEgaW5zdGFuY2VvZiBfLnpmPyEhYS5tYSgpOiEhYX0sdHA9LzwvZyx1cD1mdW5jdGlvbihhLGIpe2E9YS5yZXBsYWNlKC88XC8vZywiPFxcLyIpLnJlcGxhY2UoL1xdXF0+L2csIl1dXFw+Iik7cmV0dXJuIGI/YS5yZXBsYWNlKC97L2csIiBcXHsiKS5yZXBsYWNlKC99L2csIiBcXH0iKS5yZXBsYWNlKC9cL1wqL2csIi8gKiIpLnJlcGxhY2UoL1xcJC8sIlxcICIpOmF9LHZwPWZ1bmN0aW9uKGEpe2E9U3RyaW5nKGEpO2Zvcih2YXIgYj1mdW5jdGlvbihkLGUsZil7Zm9yKHZhciBnPU1hdGgubWluKGUubGVuZ3RoLWYsZC5sZW5ndGgpLGg9MDtoPGc7aCsrKXt2YXIgaz1lW2YraF07aWYoZFtoXSE9PSgiQSI8PWsmJms8PSJaIj9rLnRvTG93ZXJDYXNlKCk6aykpcmV0dXJuITF9cmV0dXJuITB9LGM9MDsoYz1hLmluZGV4T2YoIjwiLGMpKSE9LTE7KXtpZihiKCJceDNjL3NjcmlwdCIsCmEsYyl8fGIoIlx4M2MhLS0iLGEsYykpcmV0dXJuInpTb3l6IjtjKz0xfXJldHVybiBhfSx3cD1mdW5jdGlvbihhLGIpe3JldHVybiBhIT1udWxsJiZhLlpiPT09Yn0seHA9ZnVuY3Rpb24oYSl7cmV0dXJuIHdwKGEsJG8pP2EubWEoKTphIGluc3RhbmNlb2YgXy5MYT9fLk5hKGEpLnRvU3RyaW5nKCk6ImFib3V0OmludmFsaWQjelNveXoifSx6cD1mdW5jdGlvbigpe3ZhciBhO3dwKCIiLGFwKT9hPSIiLm1hKCk6YT15cC50ZXN0KCIiKT8iIjoielNveXoiO3dwKGEsYXApJiYoYT1hLm1hKCkpO3JldHVybihhJiYhYS5zdGFydHNXaXRoKCIgIik/IiAiOiIiKSthfSxBcD1mdW5jdGlvbihhKXtyZXR1cm4gd3AoYSxfLm9sKT91cChhLm1hKCksITEpOmE9PW51bGw/IiI6YSBpbnN0YW5jZW9mIF8ucGw/dXAoTmwoYSksITEpOnVwKFN0cmluZyhhKSwhMCl9LEJwPXsiXHgwMCI6IiYjMDsiLCJcdCI6IiYjOTsiLCJcbiI6IiYjMTA7IiwiXHYiOiImIzExOyIsIlxmIjoiJiMxMjsiLCJcciI6IiYjMTM7IiwKIiAiOiImIzMyOyIsJyInOiImcXVvdDsiLCImIjoiJmFtcDsiLCInIjoiJiMzOTsiLCItIjoiJiM0NTsiLCIvIjoiJiM0NzsiLCI8IjoiJmx0OyIsIj0iOiImIzYxOyIsIj4iOiImZ3Q7IiwiYCI6IiYjOTY7IiwiXHUwMDg1IjoiJiMxMzM7IiwiXHUwMGEwIjoiJiMxNjA7IiwiXHUyMDI4IjoiJiM4MjMyOyIsIlx1MjAyOSI6IiYjODIzMzsifSxDcD1mdW5jdGlvbihhKXtyZXR1cm4gQnBbYV19LERwPXsiXHgwMCI6IlxceDAwIiwiXGIiOiJcXHgwOCIsIlx0IjoiXFx0IiwiXG4iOiJcXG4iLCJcdiI6IlxceDBiIiwiXGYiOiJcXGYiLCJcciI6IlxcciIsJyInOiJcXHgyMiIsJDoiXFx4MjQiLCImIjoiXFx4MjYiLCInIjoiXFx4MjciLCIoIjoiXFx4MjgiLCIpIjoiXFx4MjkiLCIqIjoiXFx4MmEiLCIrIjoiXFx4MmIiLCIsIjoiXFx4MmMiLCItIjoiXFx4MmQiLCIuIjoiXFx4MmUiLCIvIjoiXFwvIiwiOiI6IlxceDNhIiwiPCI6IlxceDNjIiwiPSI6IlxceDNkIiwiPiI6IlxceDNlIiwiPyI6IlxceDNmIiwKIlsiOiJcXHg1YiIsIlxcIjoiXFxcXCIsIl0iOiJcXHg1ZCIsIl4iOiJcXHg1ZSIsInsiOiJcXHg3YiIsInwiOiJcXHg3YyIsIn0iOiJcXHg3ZCIsIlx1MDA4NSI6IlxceDg1IiwiXHUyMDI4IjoiXFx1MjAyOCIsIlx1MjAyOSI6IlxcdTIwMjkifSxFcD1mdW5jdGlvbihhKXtyZXR1cm4gRHBbYV19LEZwPXsiXHgwMCI6IlxcMCAiLCJcYiI6IlxcOCAiLCJcdCI6IlxcOSAiLCJcbiI6IlxcYSAiLCJcdiI6IlxcYiAiLCJcZiI6IlxcYyAiLCJcciI6IlxcZCAiLCciJzoiXFwyMiAiLCImIjoiXFwyNiAiLCInIjoiXFwyNyAiLCIoIjoiXFwyOCAiLCIpIjoiXFwyOSAiLCIqIjoiXFwyYSAiLCIvIjoiXFwyZiAiLCI6IjoiXFwzYSAiLCI7IjoiXFwzYiAiLCI8IjoiXFwzYyAiLCI9IjoiXFwzZCAiLCI+IjoiXFwzZSAiLCJAIjoiXFw0MCAiLCJcXCI6IlxcNWMgIiwieyI6IlxcN2IgIiwifSI6IlxcN2QgIiwiXHUwMDg1IjoiXFw4NSAiLCJcdTAwYTAiOiJcXGEwICIsIlx1MjAyOCI6IlxcMjAyOCAiLAoiXHUyMDI5IjoiXFwyMDI5ICJ9LEdwPWZ1bmN0aW9uKGEpe3JldHVybiBGcFthXX0sSHA9eyJceDAwIjoiJTAwIiwiXHUwMDAxIjoiJTAxIiwiXHUwMDAyIjoiJTAyIiwiXHUwMDAzIjoiJTAzIiwiXHUwMDA0IjoiJTA0IiwiXHUwMDA1IjoiJTA1IiwiXHUwMDA2IjoiJTA2IiwiXHUwMDA3IjoiJTA3IiwiXGIiOiIlMDgiLCJcdCI6IiUwOSIsIlxuIjoiJTBBIiwiXHYiOiIlMEIiLCJcZiI6IiUwQyIsIlxyIjoiJTBEIiwiXHUwMDBlIjoiJTBFIiwiXHUwMDBmIjoiJTBGIiwiXHUwMDEwIjoiJTEwIiwiXHUwMDExIjoiJTExIiwiXHUwMDEyIjoiJTEyIiwiXHUwMDEzIjoiJTEzIiwiXHUwMDE0IjoiJTE0IiwiXHUwMDE1IjoiJTE1IiwiXHUwMDE2IjoiJTE2IiwiXHUwMDE3IjoiJTE3IiwiXHUwMDE4IjoiJTE4IiwiXHUwMDE5IjoiJTE5IiwiXHUwMDFhIjoiJTFBIiwiXHUwMDFiIjoiJTFCIiwiXHUwMDFjIjoiJTFDIiwiXHUwMDFkIjoiJTFEIiwiXHUwMDFlIjoiJTFFIiwiXHUwMDFmIjoiJTFGIiwKIiAiOiIlMjAiLCciJzoiJTIyIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwiPCI6IiUzQyIsIj4iOiIlM0UiLCJcXCI6IiU1QyIsInsiOiIlN0IiLCJ9IjoiJTdEIiwiXHUwMDdmIjoiJTdGIiwiXHUwMDg1IjoiJUMyJTg1IiwiXHUwMGEwIjoiJUMyJUEwIiwiXHUyMDI4IjoiJUUyJTgwJUE4IiwiXHUyMDI5IjoiJUUyJTgwJUE5IiwiXHVmZjAxIjoiJUVGJUJDJTgxIiwiXHVmZjAzIjoiJUVGJUJDJTgzIiwiXHVmZjA0IjoiJUVGJUJDJTg0IiwiXHVmZjA2IjoiJUVGJUJDJTg2IiwiXHVmZjA3IjoiJUVGJUJDJTg3IiwiXHVmZjA4IjoiJUVGJUJDJTg4IiwiXHVmZjA5IjoiJUVGJUJDJTg5IiwiXHVmZjBhIjoiJUVGJUJDJThBIiwiXHVmZjBiIjoiJUVGJUJDJThCIiwiXHVmZjBjIjoiJUVGJUJDJThDIiwiXHVmZjBmIjoiJUVGJUJDJThGIiwiXHVmZjFhIjoiJUVGJUJDJTlBIiwiXHVmZjFiIjoiJUVGJUJDJTlCIiwiXHVmZjFkIjoiJUVGJUJDJTlEIiwiXHVmZjFmIjoiJUVGJUJDJTlGIiwKIlx1ZmYyMCI6IiVFRiVCQyVBMCIsIlx1ZmYzYiI6IiVFRiVCQyVCQiIsIlx1ZmYzZCI6IiVFRiVCQyVCRCJ9LElwPWZ1bmN0aW9uKGEpe3JldHVybiBIcFthXX0sSnA9L1tceDAwXHgyMlx4MjZceDI3XHgzY1x4M2VdL2csS3A9ZnVuY3Rpb24oYSl7cmV0dXJuIHdwKGEsXy5xbCk/YTphIGluc3RhbmNlb2YgXy5EYz8oMCxfLnRsKShfLmtqKGEpLnRvU3RyaW5nKCkpOigwLF8udGwpKFN0cmluZyhTdHJpbmcoYSkpLnJlcGxhY2UoSnAsQ3ApLHJwKGEpKX0sTHA9L1tceDAwXHgyMlx4MjdceDNjXHgzZV0vZyxNcD1mdW5jdGlvbihhKXtyZXR1cm4geG0oU3RyaW5nKGEpLGZ1bmN0aW9uKCl7cmV0dXJuIiJ9KS5yZXBsYWNlKHRwLCImbHQ7Iil9LFA9ZnVuY3Rpb24oYSl7d3AoYSxfLnFsKT8oYT1NcChhLm1hKCkpLGE9U3RyaW5nKGEpLnJlcGxhY2UoTHAsQ3ApKTphPVN0cmluZyhhKS5yZXBsYWNlKEpwLENwKTtyZXR1cm4gYX0sTnA9L1tceDAwXHgwOS1ceDBkIFx4MjJceDI2XHgyN1x4MmRcL1x4M2MtXHgzZWBceDg1XHhhMFx1MjAyOFx1MjAyOV0vZywKT3A9L1tceDAwXHgwOS1ceDBkIFx4MjJceDI3XHgyZFwvXHgzYy1ceDNlYFx4ODVceGEwXHUyMDI4XHUyMDI5XS9nLFBwPS9bXHgwMFx4MDgtXHgwZFx4MjJceDI2XHgyN1wvXHgzYy1ceDNlXHg1Yi1ceDVkXHg3Ylx4N2RceDg1XHUyMDI4XHUyMDI5XS9nLFFwPWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIiBudWxsICI7aWYod3AoYSxZbykpcmV0dXJuIGEubWEoKTtpZihhIGluc3RhbmNlb2YgXy5QYSlyZXR1cm4gXy5SYShhKS50b1N0cmluZygpO3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAiYm9vbGVhbiI6Y2FzZSAibnVtYmVyIjpyZXR1cm4iICIrYSsiICI7ZGVmYXVsdDpyZXR1cm4iJyIrU3RyaW5nKFN0cmluZyhhKSkucmVwbGFjZShQcCxFcCkrIicifX0sUnA9L1tceDAwXHgwOC1ceDBkXHgyMlx4MjYtXHgyYVwvXHgzYS1ceDNlQFxcXHg3Ylx4N2RceDg1XHhhMFx1MjAyOFx1MjAyOV0vZyxTcD0vW1x4MDAtIFx4MjJceDI3LVx4MjlceDNjXHgzZVxcXHg3Ylx4N2RceDdmXHg4NVx4YTBcdTIwMjhcdTIwMjlcdWZmMDFcdWZmMDNcdWZmMDRcdWZmMDYtXHVmZjBjXHVmZjBmXHVmZjFhXHVmZjFiXHVmZjFkXHVmZjFmXHVmZjIwXHVmZjNiXHVmZjNkXS9nLApUcD0vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOlwvPyNdKig/OltcLz8jXXwkKSkvaSxVcD1mdW5jdGlvbihhKXt3cChhLFpvKXx8d3AoYSwkbyk/YT1TdHJpbmcoYSkucmVwbGFjZShTcCxJcCk6YSBpbnN0YW5jZW9mIF8uTGE/KGE9Xy5OYShhKS50b1N0cmluZygpLGE9U3RyaW5nKGEpLnJlcGxhY2UoU3AsSXApKTooYT1TdHJpbmcoYSksYT1UcC50ZXN0KGEpP2EucmVwbGFjZShTcCxJcCk6ImFib3V0OmludmFsaWQjelNveXoiKTtyZXR1cm4gYX0sVnA9L15bXiY6XC8/I10qKD86W1wvPyNdfCQpfF5odHRwcz86fF5maWxlc3lzdGVtOmh0dHBzPzp8XmZ0cDp8XmRhdGE6aW1hZ2VcL1thLXowLTkrLV0rO2Jhc2U2NCxbYS16MC05K1wvXSs9KiR8XmJsb2I6L2ksV3A9ZnVuY3Rpb24oYSl7d3AoYSxabyl8fHdwKGEsJG8pP2E9U3RyaW5nKGEpLnJlcGxhY2UoU3AsSXApOmEgaW5zdGFuY2VvZiBfLkxhPyhhPV8uTmEoYSkudG9TdHJpbmcoKSxhPVN0cmluZyhhKS5yZXBsYWNlKFNwLApJcCkpOihhPVN0cmluZyhhKSxhPVZwLnRlc3QoYSk/YS5yZXBsYWNlKFNwLElwKToiYWJvdXQ6aW52YWxpZCN6U295eiIpO3JldHVybiBhfSx5cD0vXig/IW9ufHNyY3woPzphY3Rpb258YXJjaGl2ZXxiYWNrZ3JvdW5kfGNpdGV8Y2xhc3NpZHxjb2RlYmFzZXxjb250ZW50fGRhdGF8ZHN5bmN8aHJlZnxodHRwLWVxdWl2fGxvbmdkZXNjfHN0eWxlfHVzZW1hcClccyokKSg/OlthLXowLTlfJDotXSopJC9pLFhwPS9eW2EtekEtWjAtOStcL18tXSs9ezAsMn0kLyxZcD1mdW5jdGlvbihhKXthPVN0cmluZyhhKTtyZXR1cm4gWHAudGVzdChhKT9hOiJ6U295eiJ9LFpwPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihacCxfLkopO3ZhciBDbT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgWnA7cmV0dXJuIEdsKGIsMyxhLF8uQmopfTt2YXIgJHA9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKCRwLF8uSik7JHAucHJvdG90eXBlLkphPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDIpfTskcC5wcm90b3R5cGUuTmE9ZnVuY3Rpb24oYSl7cmV0dXJuIHNuKHRoaXMsMixhKX07JHAucHJvdG90eXBlLm9hPWZ1bmN0aW9uKCl7cmV0dXJuIF8uTih0aGlzLDMpfTskcC5wcm90b3R5cGUubmE9ZnVuY3Rpb24oYSl7cmV0dXJuIHNuKHRoaXMsMyxhKX07dmFyIGFxPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihhcSxfLkopO3ZhciBicT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoYnEsXy5KKTt2YXIgY3E9Xy5NaihicSk7dmFyIGRxPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhfX0sZXE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoLTI7Yys9Myl7dmFyIGQ9Yi5jaGFyQXQoYysyKTtkPWQ+PSJhIj9kLmNoYXJDb2RlQXQoMCktODc6TnVtYmVyKGQpO2Q9Yi5jaGFyQXQoYysxKT09IisiP2E+Pj5kOmE8PGQ7YT1iLmNoYXJBdChjKT09IisiP2ErZCY0Mjk0OTY3Mjk1OmFeZH1yZXR1cm4gYX0sZ3E9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWZxLnNwbGl0KCIuIiksYz1OdW1iZXIoYlswXSl8fDAsZD1bXSxlPTAsZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgZz1hLmNoYXJDb2RlQXQoZik7ZzwxMjg/ZFtlKytdPWc6KGc8MjA0OD9kW2UrK109Zz4+NnwxOTI6KChnJjY0NTEyKT09NTUyOTYmJmYrMTxhLmxlbmd0aCYmKGEuY2hhckNvZGVBdChmKzEpJjY0NTEyKT09NTYzMjA/KGc9NjU1MzYrKChnJjEwMjMpPDwxMCkrKGEuY2hhckNvZGVBdCgrK2YpJjEwMjMpLGRbZSsrXT0KZz4+MTh8MjQwLGRbZSsrXT1nPj4xMiY2M3wxMjgpOmRbZSsrXT1nPj4xMnwyMjQsZFtlKytdPWc+PjYmNjN8MTI4KSxkW2UrK109ZyY2M3wxMjgpfWE9Yztmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKWErPWRbZV0sYT1lcShhLCIrLWFeKzYiKTthPWVxKGEsIistM14rYistZiIpO2FePU51bWJlcihiWzFdKXx8MDthPDAmJihhPShhJjIxNDc0ODM2NDcpKzIxNDc0ODM2NDgpO2I9YSUxRTY7cmV0dXJuIGIudG9TdHJpbmcoKSsiLiIrKGJeYyl9LGhxPWZ1bmN0aW9uKCl7dmFyIGE9ZHEoU3RyaW5nLmZyb21DaGFyQ29kZSgxMTYpKSxiPWRxKFN0cmluZy5mcm9tQ2hhckNvZGUoMTA3KSk7YT1bYSgpLGEoKV07YVsxXT1iKCk7cmV0dXJuIGEuam9pbigiIil9O3ZhciBpcT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoaXEsXy5KKTt2YXIganE9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKGpxLF8uSik7dmFyIGtxPV8uTWooanEpO3ZhciBscT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIobHEsXy5KKTt2YXIgT249IiIsbXE9InByb2QiLG5xPSIiLG9xPSJlbiIsQW49IiIscHE9bmV3IGpxLHFxPSExLHJxPW5ldyBEYXRlLHNxPXt9LEJuPTAsdHE9InRlIixmcT0iIix1cT0iIix2cT0iaHR0cHM6Ly8iLHdxPSIiLHhxPSIiLHlxPSIiLHpxPSIiLEFxPSIiLEJxPSIiLENxPSJodHRwczovL3d3dy5nb29nbGUuY29tL2ltYWdlcy9jbGVhcmRvdC5naWYiLERxPSJodHRwczovL3d3dy5nc3RhdGljLmNvbS9pbWFnZXMvYnJhbmRpbmcvZ29vZ2xlbG9nby8xeC9nb29nbGVsb2dvX2NvbG9yXzY4eDI4ZHAucG5nIixFcT0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL3Byb2R1Y3QvMXgvdHJhbnNsYXRlXzI0ZHAucG5nIixGcT0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMXgvZ29vZ2xlbG9nb19jb2xvcl80MngxNmRwLnBuZyIsR3E9Imh0dHBzOi8vdHJhbnNsYXRlLmdvb2dsZS5jb20iLEhxPSIiLElxPSIiLEpxPSIiLEtxPQpmdW5jdGlvbigpe0hxPSIvLyIrQnErIi90cmFuc2xhdGVfc3VnZ2VzdGlvbj9jbGllbnQ9Iit0cTtJcT0iLy8iK3VxKyIvdHJhbnNsYXRlX3ZvdGluZz9jbGllbnQ9Iit0cTtKcT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zdXBwb3J0L3RyYW5zbGF0ZSIrKG9xPT0iZW4iPyIiOiIjZ29vZ3RyYW5zL2VuLyIrb3EpfSxMcT1mdW5jdGlvbihhKXtPbj13aW5kb3cuZ29vZ2xlJiZ3aW5kb3cuZ29vZ2xlLnRyYW5zbGF0ZSYmd2luZG93Lmdvb2dsZS50cmFuc2xhdGUudnx8IiI7bXE9YS5fY2Vudnx8InByb2QiO25xPWEuVWd8fCIiO29xPWEuX2NsfHwiZW4iO0FuPWEuX2N1YztwcT1hLl9jZWY/a3EoYS5fY2VmKTpuZXcganE7cXE9YS5fY25hZDtycT1hLl9jZXN0fHxuZXcgRGF0ZTtzcT1hLl9jbmFsfHx7fTtCbj1hLl9jYW09PSJsaWIiPzE6MDt0cT0oYS5fY2FjfHwidGUiKSsoQm49PTE/Il9saWIiOiIiKTtmcT1mdW5jdGlvbigpe2Z1bmN0aW9uIGIoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fQp2YXIgYz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEwNyksZD1iKFN0cmluZy5mcm9tQ2hhckNvZGUoMTE2KSk7Yz1iKGMpO2Q9W2QoKSxkKCldO2RbMV09YygpO3JldHVybiBhWyJfYyIrZC5qb2luKGMoKSldfHwiIn0oKTt1cT1hLl9wYWh8fCIiO3ZxPWEuX3Bhc3x8Imh0dHBzOi8vIjt3cT1hLl9wYml8fCIiO3hxPWEuX3BjaXx8IiI7eXE9YS5fcGxsYXx8IiI7enE9YS5fcGxpfHwiIjtBcT1hLl9wc3x8IiI7QnE9YS5fcHVofHwiIjtDcT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvY2xlYXJkb3QuZ2lmIjtEcT0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMXgvZ29vZ2xlbG9nb19jb2xvcl82OHgyOGRwLnBuZyI7RXE9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9wcm9kdWN0LzF4L3RyYW5zbGF0ZV8yNGRwLnBuZyI7RnE9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzF4L2dvb2dsZWxvZ29fY29sb3JfNDJ4MTZkcC5wbmciOwpHcT0iaHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlLmNvbSI7S3EoKX07d2luZG93Lmdvb2dsZSYmd2luZG93Lmdvb2dsZS50cmFuc2xhdGUmJndpbmRvdy5nb29nbGUudHJhbnNsYXRlLl9jb25zdD9McSh3aW5kb3cuZ29vZ2xlLnRyYW5zbGF0ZS5fY29uc3QpOkxxKHtfY2FjOiIiLF9jYW06IiIsX2NlZjoiIixfY2VzdDpuZXcgRGF0ZSxfY2VudjoiIixVZzoiIixfY2dhazoiIixfY2psYzoiIixfY2w6IiIsX2NsbDoiIixfY3VjOiIiLF9jbmFkOiExLF9jbmFsOnt9LENrOiIiLF9wYWg6IiIsX3BhczoiIixfcGJpOiIiLF9wY2k6IiIsX3BoZjoiIixfcGxpOiIiLF9wbGxhOiIiLF9wbWk6IiIsX3BzOiIiLF9wdGE6IiIsX3B1aDoiIn0pO3ZhciBNcT1mdW5jdGlvbihhLGIpe3RoaXMuZz1hO3RoaXMubz1ifSxCbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgVHlwZUVycm9yKCJxYWAiK2IrImAiK2EuZysiYCIrYS5vKyJgIit0eXBlb2YgYS5vKX07TXEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vO2lmKGE9PW51bGwpYT1udWxsO2Vsc2UgaWYodHlwZW9mIGEhPT0ic3RyaW5nIil0aHJvdyBCbSh0aGlzLCJzdHJpbmciKTtpZihhPT09bnVsbCl0aHJvdyBFcnJvcigicGFgIit0aGlzLmcpO3JldHVybiBhfTsKdmFyIEFtPWZ1bmN0aW9uKCl7dmFyIGE9YT09PXZvaWQgMD93aW5kb3c6YTthPWE9PT12b2lkIDA/d2luZG93OmE7YT1hPT09dm9pZCAwP3dpbmRvdzphO2E9YS5XSVpfZ2xvYmFsX2RhdGE7YT1uZXcgTXEoInhXdXVHYyIsYSYmInhXdXVHYyJpbiBhP2EueFd1dUdjOm51bGwpO3ZhciBiPVtdLGM9TnEoYSk7cmV0dXJuIGM9PT1udWxsP09xKGEsYik6Y30sTnE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5vO2lmKGI9PW51bGwpcmV0dXJuIG51bGw7QXJyYXkuaXNBcnJheShiKXx8KHR5cGVvZiBiIT09InN0cmluZyI/Yj1bYl06KGI9Yi50cmltKCksYj1iPT0iIj9bXTpiLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLnRyaW0oKX0pKSk7cmV0dXJuIE9xKGEsYil9LE9xPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5nKyJbIjtyZXR1cm4gQXJyYXkuZnJvbShiLGZ1bmN0aW9uKGQsZSl7cmV0dXJuIG5ldyBNcShjK2UrIl0iLGQpfSl9OwpNcS5wcm90b3R5cGUub2JqZWN0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubztpZihiPT1udWxsKXtpZihhPT09dm9pZCAwKXRocm93IEVycm9yKCJwYWAiK3RoaXMuZyk7cmV0dXJuIGF9aWYodHlwZW9mIGI9PT0ib2JqZWN0IiYmYi5jb25zdHJ1Y3Rvcj09PU9iamVjdCl7YT17fTt2YXIgYz10aGlzLmcrIi4iLGQ7Zm9yKGQgaW4gYilhW2RdPW5ldyBNcShjK2QsYltkXSk7cmV0dXJuIGF9dGhyb3cgQm0odGhpcywib2JqZWN0Iik7fTt2YXIgUHE9ZnVuY3Rpb24oKXt2YXIgYTt0aGlzLmc9YT1hPT09dm9pZCAwP0RtKCk6YX07UHEucHJvdG90eXBlLmxvZz1mdW5jdGlvbihhKXtfLmFsKHRoaXMuZyxhKX07dmFyIFFxPW5ldyBQcTt2YXIgUnE9RW0oImluaXRpYWxpemVkIiksU3E9RW0oImluaXRpYXRlZCIpLFRxPUVtKCJyZXN0b3JlZCIpLFVxPUVtKCJwYWdlX2xvYWRfdG9faW5pdGlhbGl6ZWQiKSxWcT1FbSgiaW5pdGlhbGl6YXRpb25fdG9fdHJhbnNsYXRpb25fdHJpZ2dlcmVkIik7dmFyIFdxPWZ1bmN0aW9uKGEpe3ZhciBiPSJ4YiI7aWYoYS54YiYmYS5oYXNPd25Qcm9wZXJ0eShiKSlyZXR1cm4gYS54YjtiPW5ldyBhO3JldHVybiBhLnhiPWJ9Oy8qCgpNYXRoLnV1aWQuanMgKHYxLjQpCmh0dHA6Ly93d3cuYnJvb2ZhLmNvbQptYWlsdG86cm9iZXJ0QGJyb29mYS5jb20KQ29weXJpZ2h0IChjKSAyMDEwIFJvYmVydCBLaWVmZmVyCkR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgoqLwp2YXIgWHE9IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ii5zcGxpdCgiIik7Zm9yKHZhciBZcSxacT1BcnJheSgzNiksJHE9MCxhcixicj0wO2JyPDM2O2JyKyspYnI9PTh8fGJyPT0xM3x8YnI9PTE4fHxicj09MjM/WnFbYnJdPSItIjpicj09MTQ/WnFbYnJdPSI0IjooJHE8PTImJigkcT0zMzU1NDQzMitNYXRoLnJhbmRvbSgpKjE2Nzc3MjE2fDApLGFyPSRxJjE1LCRxPj49NCxacVticl09WHFbYnI9PTE5P2FyJjN8ODphcl0pO1lxPVpxLmpvaW4oIiIpOwp2YXIgY3I9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZz1hPWE9PT12b2lkIDA/WXE6YTt0aGlzLkViPWI9PT12b2lkIDA/IiI6Yjt0aGlzLkZiPWM9PT12b2lkIDA/IiI6Y30sZ3I9ZnVuY3Rpb24oYSl7dmFyIGI9ZHIoYSw3KTtlcihhLGIpO2ZyKGIsNyl9LGhyPWZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5sYj09PXZvaWQgMD8wOmIubGI7dmFyIGQ9Yi5NZj09PXZvaWQgMD8wOmIuTWY7dmFyIGU9Yi5nZz09PXZvaWQgMD8wOmIuZ2c7dmFyIGY9Yi5MZj09PXZvaWQgMD8wOmIuTGY7Yj1kcihhLDgpO2VyKGEsYik7YT1uZXcgUm47Yz1fLmlrKGEsMSxjKTtkPV8uaWsoYywzLGQpO2U9Xy5payhkLDIsZSk7ZT1fLmlrKGUsNCxmKTtmPVVuKGIpO18uTChmLDYsZSk7TWF0aC5yYW5kb20oKT49LjAwNXx8KGI9Xy5MayhObig4KSxfLldqKGIpKSxRcS5sb2coYikpfSxkcj1mdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBfLmxsO2M9Xy5UaihjLDUwLG9xKTt2YXIgZD1uZXcgVG47Yj1fLmtrKGQsMSxiKTsKYj1fLlRqKGIsMix0cSk7YT1fLlRqKGIsMyxhLmcpO3JldHVybiBfLkwoYywxMTIsYSl9LGZyPWZ1bmN0aW9uKGEsYil7YT1fLkxrKE5uKGIpLF8uV2ooYSkpO1FxLmxvZyhhKX0sZXI9ZnVuY3Rpb24oYSxiKXtiLk5hKGEuRWIpO2IubmEoYS5GYil9O3ZhciBpcj1mdW5jdGlvbihhKXtmb3IodmFyIGI9e30sYz0wO2M8YS5sZW5ndGg7KytjKWJbYVtjXV09ITA7cmV0dXJuIGJ9LGpyPWZ1bmN0aW9uKGEpe3RoaXMuaD1hP1thXTpbXTt0aGlzLmc9WzBdO3RoaXMuaj0hMX07anIucHJvdG90eXBlLnBhc3NlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmp9O2pyLnByb3RvdHlwZS5yZWdpc3Rlcj1mdW5jdGlvbihhKXtpZih0aGlzLmopcmV0dXJuIGF8fGZ1bmN0aW9uKCl7fTt0aGlzLmcucHVzaCgwKTt2YXIgYj10aGlzLmcubGVuZ3RoLTE7cmV0dXJuKDAsXy55KShmdW5jdGlvbigpe3RoaXMuZ1tiXSsrO2EmJmEuYXBwbHkobnVsbCxhcmd1bWVudHMpO2tyKHRoaXMpfSx0aGlzKX07CmpyLnByb3RvdHlwZS5kZWxheT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5qP2E6KDAsXy55KShmdW5jdGlvbigpe2lmKHRoaXMuailhLmFwcGx5KG51bGwsYXJndW1lbnRzKTtlbHNle3ZhciBiPWFyZ3VtZW50czt0aGlzLmgucHVzaChmdW5jdGlvbigpe2EuYXBwbHkobnVsbCxiKX0pfX0sdGhpcyl9O2pyLnByb3RvdHlwZS5maW5pc2g9ZnVuY3Rpb24oKXt0aGlzLmdbMF09MTtrcih0aGlzKX07CnZhciBrcj1mdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPGEuZy5sZW5ndGg7KytiKWlmKGEuZ1tiXT09MClyZXR1cm47YS5qPSEwO2ZvcihiPTA7YjxhLmgubGVuZ3RoOysrYil7dmFyIGM9YS5oW2JdO2EuaFtiXT1udWxsO2MuY2FsbCgpfWEuaD1bXTthLmc9W119LGxyPWZ1bmN0aW9uKGEpe3RoaXMuaj1hO3RoaXMuaD10aGlzLmc9ITF9LG1yPWZ1bmN0aW9uKGEsYil7cmV0dXJuKDAsXy55KShmdW5jdGlvbigpe2ImJmIuYXBwbHkobnVsbCxhcmd1bWVudHMpO3RoaXMuaD90aGlzLmd8fCh0aGlzLmouY2FsbCgpLHRoaXMuZz0hMCk6dGhpcy5nPSEwfSxhKX07bHIucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbigpe3RoaXMuaHx8KHRoaXMuaD0hMCx0aGlzLmcmJnRoaXMuai5jYWxsKCkpfTt2YXIgbnI9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZz1iO3RoaXMuQj1hO3RoaXMuQT1jfHwwO3RoaXMuaj10aGlzLmg9ITF9LG9yPWZ1bmN0aW9uKGEpe2EuaHx8YS5vKCl9Owpuci5wcm90b3R5cGUubz1mdW5jdGlvbigpeyh0aGlzLmg9KHRoaXMuaj0hIXRoaXMuQi5jYWxsKCkpfHwtLXRoaXMuQTw9MCk/KHRoaXMuZy5jYWxsKG51bGwsdGhpcy5qKSx0aGlzLmw9MCk6dGhpcy5sPXdpbmRvdy5zZXRUaW1lb3V0KCgwLF8ueSkodGhpcy5vLHRoaXMpLDMwKX07bnIucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbigpe3RoaXMubCYmd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmwpO3RoaXMuaD0hMDt0aGlzLmcuY2FsbChudWxsLHRoaXMuail9Owp2YXIgcHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXthLmRpc3BhdGNoRXZlbnQoYil9fSxxcj1mdW5jdGlvbihhKXthPV8uQWMoYSkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCJfIiwiLSIpO2lmKGE9PSJ6aC1jbiIpcmV0dXJuInpoLUNOIjtpZihhPT0iemgtdHciKXJldHVybiJ6aC1UVyI7dmFyIGI9YS5pbmRleE9mKCItIik7YT1iPj0wP2Euc3Vic3RyaW5nKDAsYik6YTtyZXR1cm4gYT09InpoIj8iemgtQ04iOmF9LHJyPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gYSlpZihhW2NdIT09T2JqZWN0LnByb3RvdHlwZVtjXSl7dmFyIGQ9Xy5HYihjKTtpZihfLm9jKGFbY10pPT0iYXJyYXkiKWZvcih2YXIgZT0wO2U8YVtjXS5sZW5ndGg7KytlKWIucHVzaChkKyI9IitfLkdiKGFbY11bZV0pKTtlbHNlIGIucHVzaChkKyI9IitfLkdiKGFbY10pKX1yZXR1cm4gYi5qb2luKCImIil9LFFtPWZ1bmN0aW9uKGEsYil7Yj1ifHx7fTtiLm5jYT1hO2IuY2xpZW50PXRxOwpPbiYmKGIubG9nbGQ9InYiK09uKTt2YXIgYz1uZXcgSW1hZ2U7Yy5zcmM9Ii8vIitCcSsiL2dlbjIwND8iK3JyKGIpO2Mub25sb2FkPWZ1bmN0aW9uKCl7Yy5vbmxvYWQ9bnVsbH19LHRyPWZ1bmN0aW9uKGEsYil7aWYoKF8uU2N8fF8uUmMpJiZ3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUhPWRvY3VtZW50LmRvbWFpbil7c3I9c3I/c3IrMToxO3ZhciBjPSJmIitzcisiXyIrRGF0ZS5ub3coKS50b1N0cmluZygzNik7d2luZG93W2NdPWZ1bmN0aW9uKCl7d2luZG93W2NdPXZvaWQgMDthLnNyYz0iIyI7YiYmd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiKCl9LDApfTthLnNyYz0iamF2YXNjcmlwdDp2b2lkKGRvY3VtZW50LndyaXRlKFwiPHNjcmlwdD5kb2N1bWVudC5kb21haW49JyIrZG9jdW1lbnQuZG9tYWluKyInO3BhcmVudFsnIitjKyInXSgpO1x4M2Mvc2NyaXB0PlwiKSkifWVsc2UgYiYmYigpfSxzcix1cj1mdW5jdGlvbigpe3ZhciBhPXt9O3RyeXtmb3IodmFyIGIgaW4gT2JqZWN0LnByb3RvdHlwZSl7dmFyIGM9Ck9iamVjdC5wcm90b3R5cGVbYl07ZGVsZXRlIE9iamVjdC5wcm90b3R5cGVbYl07YVtiXT1jfX1jYXRjaChkKXtyZXR1cm57fX1yZXR1cm4gYX0sdnI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpT2JqZWN0LnByb3RvdHlwZVtiXT1hW2JdfSx3cj1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSlpZihhW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXSlyZXR1cm4hMTtyZXR1cm4hMH0seHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSE9ImF1dG8iJiZhIT0iemgtQ04iJiZhPT1ifSx5cj1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5oYXNoLm1hdGNoKC9nb29nbGVcLnRyYW5zbGF0ZVwuZWxlbWVudFwuc3A9KFteJl0rKS8pO3JldHVybiBhJiZhWzFdP2FbMV06bnVsbH07dmFyIFBtPW51bGwsenI9bnVsbCxBcj1mdW5jdGlvbigpe307QXIucHJvdG90eXBlLmF0dGFjaD1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkIGluIGMpY1tkXSE9PU9iamVjdC5wcm90b3R5cGVbZF0mJihiW2RdPXR5cGVvZiBjW2RdPT09ImZ1bmN0aW9uIj9jW2RdOl8uWmooUm0sYSxOdW1iZXIoY1tkXSkpKX07dmFyIENyPWZ1bmN0aW9uKCl7UG0mJkJyKCk7UG09W107enI9Xy54KHdpbmRvdywicGFnZWhpZGUiLGZ1bmN0aW9uKCl7QnIoKX0pfSxCcj1mdW5jdGlvbigpe3pyJiYoXy5WZCh6ciksenI9bnVsbCk7UG0mJlBtLmxlbmd0aCYmUW0oUG0uam9pbigiIikpO1BtPW51bGx9LERyPW5ldyBBcjt2YXIgRXI9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKEVyLF8uSik7dmFyIFRtPV8uS2koRXIpO3ZhciBTbTt2YXIgRnI9ZnVuY3Rpb24oYSl7dGhpcy51cmw9YTt0aGlzLnRpbWVvdXQ9LTE7dGhpcy5qPXRoaXMuaD0iY2FsbGJhY2siO3RoaXMuZz10aGlzLndiPW51bGx9LEpyPWZ1bmN0aW9uKGEsYil7Yj1iPT09dm9pZCAwP3t9OmI7YS5nPUdvKCk7dmFyIGM9bmV3IFpsKGEudXJsKSxkPW5ldyBNYXA7YS5qJiZkLnNldChhLmosYS5oKTtjLmcuZXh0ZW5kKFhvKGIpLGQpO0dyKGEpLnRoZW4oZnVuY3Rpb24oKXtIcihhLGMudG9TdHJpbmcoKSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZy5wcm9taXNlfSkudGhlbihmdW5jdGlvbigpe0lyKGEpfSxmdW5jdGlvbigpe0lyKGEpfSk7YS50aW1lb3V0PjAmJihhLmw9c2V0VGltZW91dChmdW5jdGlvbigpe2EuZy5yZWplY3QoRXJyb3IoInJhIikpfSxhLnRpbWVvdXQpKTtyZXR1cm4gYS5nLnByb21pc2V9LEhyPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IE1lc3NhZ2VDaGFubmVsO2Eud2IuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSh7dXJsOmIsCmNhbGxiYWNrTmFtZTphLmh9LCIqIixbYy5wb3J0Ml0pO2MucG9ydDEub25tZXNzYWdlPWZ1bmN0aW9uKGQpe3ZhciBlPXt9O2EubCE9PXZvaWQgMCYmKGNsZWFyVGltZW91dChhLmwpLGEubD12b2lkIDApO2QuZGF0YT09PXZvaWQgMCYmYS5nLnJlamVjdChFcnJvcigic2EiKSk7dHlwZW9mIGQuZGF0YSE9PSJzdHJpbmciJiZhLmcucmVqZWN0KEVycm9yKCJ0YSIpKTt0cnl7ZT1KU09OLnBhcnNlKGQuZGF0YSl9Y2F0Y2goZil7YS5nLnJlamVjdChFcnJvcigidWFgIitmLm1lc3NhZ2UpKX1hLmcucmVzb2x2ZShlKX19LEdyPWZ1bmN0aW9uKGEpe3ZhciBiPUdvKCksYz1fLndkKGRvY3VtZW50LCJJRlJBTUUiKTtpZighYy5zYW5kYm94KXRocm93IEVycm9yKCJ2YSIpO2Muc2FuZGJveC52YWx1ZT0iYWxsb3ctc2NyaXB0cyI7Yy5zdHlsZS5kaXNwbGF5PSJub25lIjthLndiPWM7YT1WbSgpO2E9U2woW18ubWwoIjwhRE9DVFlQRSBodG1sPiIpLFlsKFFsKGEpKV0pO2Muc3JjZG9jPV8ua2ooYSk7CmE9RmwoImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9VVRGLTg7YmFzZTY0LCIrYnRvYShfLmtqKGEpLnRvU3RyaW5nKCkpKTtjLnNyYz1fLk5hKGEpLnRvU3RyaW5nKCk7Yy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3JldHVybiBiLnJlc29sdmUoYyl9LCExKTtjLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbihkKXtiLnJlamVjdChkIGluc3RhbmNlb2YgRXJyb3I/ZDpFcnJvcihTdHJpbmcoZCkpKX0sITEpO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChjKTtyZXR1cm4gYi5wcm9taXNlfSxJcj1mdW5jdGlvbihhKXthLndiIT09bnVsbCYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChhLndiKSxhLndiPW51bGwpfTt2YXIgS3I9ZnVuY3Rpb24oYSxiKXtfLnUuY2FsbCh0aGlzKTt0aGlzLmc9bmV3IFpsKGEpO2lmKGIpZm9yKHZhciBjIGluIGIpYltjXSE9PU9iamVjdC5wcm90b3R5cGVbY10mJnRoaXMuZy5nLnNldChjLGJbY10pfTtfLkIoS3IsXy51KTtLci5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oKXtyZXR1cm4hMH07S3IucHJvdG90eXBlLlNhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGEoKX07S3IucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gXy5ZaShudWxsKX07S3IucHJvdG90eXBlLmNhbmNlbD1mdW5jdGlvbigpe307dmFyIExyPWZ1bmN0aW9uKGEsYixjKXtLci5jYWxsKHRoaXMsYSxiKTthPXRoaXMuaD1uZXcgRnIodGhpcy5nKTthLmg9ImNhbGxiYWNrIjthLmo9Yz09PXZvaWQgMD8iY2FsbGJhY2siOmN9O18uQihMcixLcik7THIucHJvdG90eXBlLlRhPWZ1bmN0aW9uKCl7cmV0dXJuITB9OwpMci5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhKXtyZXR1cm4gSnIodGhpcy5oLGEpfTtMci5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe2EuY2FuY2VsKCl9O3ZhciBNcj1mdW5jdGlvbihhLGIpe0tyLmNhbGwodGhpcyxhLGIpO3RoaXMuaD17fTt0aGlzLmo9MH07Xy5CKE1yLEtyKTtNci5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oKXtyZXR1cm4hMH07Ck1yLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz11cigpLGQ9Kyt0aGlzLmosZT17fSxmPXt9OyJxImluIGEmJihmLnE9YS5xLGRlbGV0ZSBhLnEpO2UuaGE9bmV3IF8uV2Y7dGhpcy5nLmguZW5kc1dpdGgoIi5jb3JwLmdvb2dsZS5jb20iKSYmKGUuaGEuQz0hMCk7dmFyIGc9bmV3IF8ub2UoZnVuY3Rpb24oaCxrKXtfLngoZS5oYSwiY29tcGxldGUiLGZ1bmN0aW9uKCl7aWYoIWUuUmUpe2lmKF8uZ2coZS5oYSkpe3ZhciBsPV8uaWcoZS5oYSk7TnIoYixkKTtyZXR1cm4gaChsKX1iLnhpKCk7bD1fLmlnKGUuaGEpO05yKGIsZCk7cmV0dXJuIGsobCl9fSk7Xy54KGUuaGEsInRpbWVvdXQiLGZ1bmN0aW9uKCl7aWYoIWUuUmUpcmV0dXJuIGIuemkoKSxOcihiLGQpLGsoKX0pfSk7ZS5oYS5zZW5kKHRoaXMuZy50b1N0cmluZygpKyImIitycihhKSwiUE9TVCIscnIoZikseyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSk7CnRoaXMuaFtkXT1lO3ZyKGMpO3JldHVybiBnfTtNci5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuaFthXTtiJiYoYi5SZT0hMCxOcih0aGlzLGEpKX07dmFyIE5yPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5oW2JdO2MmJihjLmhhJiYoYy5oYS5kaXNwb3NlKCksYy5oYT1udWxsKSxkZWxldGUgYS5oW2JdKX07TXIucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtLci5wcm90b3R5cGUuTS5jYWxsKHRoaXMpO2Zvcih2YXIgYSBpbiB0aGlzLmgpdGhpcy5jYW5jZWwoYSl9O0RyLmF0dGFjaCgxNzE3MCxNci5wcm90b3R5cGUse3ppOjEseGk6Mn0pO3ZhciBPcj1mdW5jdGlvbihhLGIsYyl7S3IuY2FsbCh0aGlzLGEsYyk7dGhpcy5oPWIucHJveHlJc1N1cHBvcnRlZDt0aGlzLmo9ZnVuY3Rpb24oZCxlLGYpe3JldHVybiBfLllpKGIucHJveHlTZW5kKGQsZSxmKSl9O3RoaXMubD1iLnByb3h5Q2FuY2VsfTtfLkIoT3IsS3IpO09yLnByb3RvdHlwZS5UYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmgoKX07Ck9yLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaih0aGlzLmcudG9TdHJpbmcoKSxhLGIpfTtPci5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKGEpe3RoaXMubChhKX07dmFyIFByPWZ1bmN0aW9uKGEsYil7Xy51LmNhbGwodGhpcyk7dGhpcy5oPWE7dGhpcy5nPWI/YjpudWxsfTtfLkIoUHIsXy51KTtQci5wcm90b3R5cGUuTT1mdW5jdGlvbigpe18udS5wcm90b3R5cGUuTS5jYWxsKHRoaXMpfTt2YXIgUnI9ZnVuY3Rpb24oYSxiLGMsZCl7Xy51LmNhbGwodGhpcyk7dmFyIGU7Yj9lPXtjbGllbnQ6Yn06ZT17YW5ubzozLGNsaWVudDp0cSxmb3JtYXQ6Imh0bWwiLHY6IjEuMCJ9O2MmJihlLnNwPWMpO2Uua2V5PWE7T24mJihlLmxvZ2xkPSJ2IitPbik7dGhpcy5nPW51bGw7dGhpcy5oPXtIZjozMDB9O2E9dGhpcy5BPW5ldyBQcihlLGQpO2I9dnEreXE7dGhpcy5vPWEuZz9uZXcgT3IoYixhLmcse2NsaWVudDp0cX0pOm5ldyBMcihiLHtjbGllbnQ6dHF9KTthPXRoaXMuQTtpZihhLmcpe2lmKCFhLmcpdGhyb3cgRXJyb3IoIndhIik7YT1be3ZhOm5ldyBPcih2cSt1cSsiL3RyYW5zbGF0ZV9hL3QiLGEuZyxhLmgpLGNlOjE5MDAsSWY6NDI5NDk2NzI5NSxHZjotMSxXZjowLEtkOiExfV19ZWxzZSBhPVt7dmE6bmV3IE1yKHZxK3VxKyIvdHJhbnNsYXRlX2EvdCIsYS5oKSxjZTozMDcyMCxJZjo0Mjk0OTY3Mjk1LEdmOi0xLFdmOjAsS2Q6ITF9XTt0aGlzLkI9bmV3IFFyKGEpO3RoaXMuaj0KITE7Zm9yKGI9MDtiPGEubGVuZ3RoOysrYil0aGlzLmo9dGhpcy5qfHxhW2JdLnZhLlRhKCk7dGhpcy5qfHx0aGlzLm5pKCl9O18uQihScixfLnUpO1JyLnByb3RvdHlwZS5pbml0aWFsaXplPWZ1bmN0aW9uKGEpe3RoaXMuQ3x8KHRoaXMuQz0hMCx0aGlzLkIuc3RhcnQoKDAsXy55KShmdW5jdGlvbihiKXtiJiYodGhpcy5nPWIsdGhpcy5oLnZhPWIudmEpO2EoKX0sdGhpcykpKX07UnIucHJvdG90eXBlLlRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07UnIucHJvdG90eXBlLlNhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZyE9PW51bGwmJnRoaXMuZy52YSE9PW51bGwmJnRoaXMuZy52YS5TYSgpfTsKdmFyIFNyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD17cTpjLnN1YnN0cmluZygwLGEuaC5IZiksc2w6ImF1dG8iLHRsOiJlbiJ9O3JldHVybiBuZXcgXy5vZShmdW5jdGlvbihlLGYpe2EuaC52YS5zZW5kKGQsYikudGhlbihmdW5jdGlvbihnKXt0cnl7dmFyIGg9SlNPTi5wYXJzZShnKTtlKGgmJmhbMV18fG51bGwpfWNhdGNoKGspe2UobnVsbCl9fSxmdW5jdGlvbihnKXtyZXR1cm4gZihnfHxudWxsKX0pfSl9OwpSci5wcm90b3R5cGUudHJhbnNsYXRlPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dmFyIGs9dGhpcyxsPXtxOmIsc2w6Yyx0bDpkfTtsLnRjPWU7ZiYmKGwuY3R0PTEpO2cmJihsLmRvbT0xKTtoJiYobC5zcj0xKTtsW2hxKCldPWdxKGIuam9pbigiIikpO3JldHVybiBuZXcgXy5vZShmdW5jdGlvbihuLHEpe2suZy52YS5zZW5kKGwsYSkudGhlbihmdW5jdGlvbihwKXtpZihwKXtpZih0eXBlb2YgcCE9PSJvYmplY3QiKXRyeXtwPUpTT04ucGFyc2UocCl9Y2F0Y2goQSl7ay5taSgpO3EoKTtyZXR1cm59aWYoXy5vYyhwKSE9ImFycmF5Iil2YXIgcj1bW3AsMjAwXV07ZWxzZSBpZihwLmxlbmd0aD09MiYmXy5vYyhwWzBdKSE9ImFycmF5IiYmXy5vYyhwWzFdKSE9ImFycmF5IilyPVtbcFswXSwyMDAscFsxXV0sW3BbMV0sMjAwLHBbMV1dXTtlbHNle3I9W107Zm9yKHZhciB0PTA7dDxwLmxlbmd0aDsrK3Qpclt0XT1fLm9jKHBbdF0pIT0iYXJyYXkiP1twW3RdLDIwMF06W3BbdF1bMF0sCjIwMCxwW3RdWzFdXX1uKHIpfWVsc2UgcSgpfSl9KX07dmFyIFRyPWZ1bmN0aW9uKGEsYil7YiBpbnN0YW5jZW9mIF8ub2U/Yi50aGVuKGZ1bmN0aW9uKGMpe2EuZy52YS5jYW5jZWwoYyl9KTphLmcudmEuY2FuY2VsKGIpfTtSci5wcm90b3R5cGUubD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcuS2Q/dGhpcy5nLmNlLShuZXcgWmwodGhpcy5nLnZhLmcpKS50b1N0cmluZygpLmxlbmd0aDp0aGlzLmcuY2V9O1JyLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyk7dGhpcy5nJiYodGhpcy5nLnZhLmRpc3Bvc2UoKSx0aGlzLmcudmE9bnVsbCk7dGhpcy5oLnZhPW51bGw7dGhpcy5vLmRpc3Bvc2UoKTt0aGlzLm89bnVsbH07RHIuYXR0YWNoKDczNjEsUnIucHJvdG90eXBlLHtuaTpmdW5jdGlvbigpe1FtKCJ0ZV9hdSIpfX0pO0RyLmF0dGFjaCg0NzUwNCxSci5wcm90b3R5cGUse21pOmZ1bmN0aW9uKCl7UW0oInRlX2FmYnIiKX19KTsKdmFyIFFyPWZ1bmN0aW9uKGEpe3RoaXMuaD1hfTtRci5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oYSl7dGhpcy5nPWE7dGhpcy5qPTA7VXIodGhpcyl9O3ZhciBVcj1mdW5jdGlvbihhKXtpZihhLmo+PWEuaC5sZW5ndGgpYS5nKG51bGwpO2Vsc2V7dmFyIGI9YS5oW2EuaisrXTtiLklpP29yKG5ldyBucigoMCxfLnkpKGIudmEuU2EsYi52YSksKDAsXy55KShmdW5jdGlvbihjKXtjP3RoaXMuZyhiKTpVcih0aGlzKX0sYSksYi5JaSkpOmIudmEuU2EoKT9hLmcoYik6VXIoYSl9fTt2YXIgVnI9aXIoIkEgQUJCUiBBQ1JPTllNIEIgQkFTRUZPTlQgQkRPIEJJRyBDSVRFIERGTiBFTSBGT05UIEkgSU5QVVQgTk9CUiBMQUJFTCBRIFJUIFMgU01BTEwgU1BBTiBTVFJJS0UgU1RST05HIFNVQiBTVVAgVEVYVEFSRUEgVFQgVSBWQVIiLnNwbGl0KCIgIikpLFdyPWlyKCJBUFBMRVQgQVJFQSBCQVNFIEZSQU1FIEZSQU1FU0VUIEhSIExJTksgTUVUQSBOT0ZSQU1FUyBOT1NDUklQVCBJTlBVVCBURVhUQVJFQSBUSVRMRSIuc3BsaXQoIiAiKSksWHI9aXIoIkJSIENPREUgSU1HIEtCRCBNQVAgT0JKRUNUIFBBUkFNIFJQIFNDUklQVCBTVFlMRSBXQlIgc3ZnIi5zcGxpdCgiICIpKSxZcj1pcihbInN1Ym1pdCIsImJ1dHRvbiJdKTtYbS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiBacn07dmFyIFpyPXtkb25lOiEwLHZhbHVlOnZvaWQgMH07WG0ucHJvdG90eXBlLm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIGFzPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5oPSEhYjt0aGlzLm5vZGU9bnVsbDt0aGlzLmc9MDt0aGlzLmo9ITE7dGhpcy5sPSFjO2EmJiRyKHRoaXMsYSxkKTt0aGlzLmRlcHRoPWUhPXZvaWQgMD9lOnRoaXMuZ3x8MDt0aGlzLmgmJih0aGlzLmRlcHRoKj0tMSl9O18uRyhhcyxYbSk7dmFyICRyPWZ1bmN0aW9uKGEsYixjLGQpe2lmKGEubm9kZT1iKWEuZz10eXBlb2YgYz09PSJudW1iZXIiP2M6YS5ub2RlLm5vZGVUeXBlIT0xPzA6YS5oPy0xOjE7dHlwZW9mIGQ9PT0ibnVtYmVyIiYmKGEuZGVwdGg9ZCl9LGJzPWZ1bmN0aW9uKGEpe3ZhciBiPWEuaD8tMToxO2EuZz09YiYmKGEuZz1iKi0xLGEuZGVwdGgrPWEuZyooYS5oPy0xOjEpKX07CmFzLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7aWYodGhpcy5qKXtpZighdGhpcy5ub2RlfHx0aGlzLmwmJnRoaXMuZGVwdGg9PTApcmV0dXJuIFpyO3ZhciBhPXRoaXMubm9kZTt2YXIgYj10aGlzLmg/LTE6MTtpZih0aGlzLmc9PWIpe3ZhciBjPXRoaXMuaD9hLmxhc3RDaGlsZDphLmZpcnN0Q2hpbGQ7Yz8kcih0aGlzLGMpOiRyKHRoaXMsYSxiKi0xKX1lbHNlKGM9dGhpcy5oP2EucHJldmlvdXNTaWJsaW5nOmEubmV4dFNpYmxpbmcpPyRyKHRoaXMsYyk6JHIodGhpcyxhLnBhcmVudE5vZGUsYiotMSk7dGhpcy5kZXB0aCs9dGhpcy5nKih0aGlzLmg/LTE6MSl9ZWxzZSB0aGlzLmo9ITA7cmV0dXJuKGE9dGhpcy5ub2RlKT97dmFsdWU6YSxkb25lOiExfTpacn07YXMucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlPT10aGlzLm5vZGUmJighdGhpcy5ub2RlfHxhLmc9PXRoaXMuZyl9Owphcy5wcm90b3R5cGUuc3BsaWNlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubm9kZSxjPXRoaXMuaD8xOi0xO3RoaXMuZz09YyYmKHRoaXMuZz1jKi0xLHRoaXMuZGVwdGgrPXRoaXMuZyoodGhpcy5oPy0xOjEpKTt0aGlzLmg9IXRoaXMuaDthcy5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMpO3RoaXMuaD0hdGhpcy5oO2M9Xy5xYShhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7Zm9yKHZhciBkPWMubGVuZ3RoLTE7ZD49MDtkLS0peG8oY1tkXSxiKTtfLkFkKGIpfTt2YXIgZHM9ZnVuY3Rpb24oYSxiKXt0aGlzLmw9ITE7dGhpcy5qPV8uU2M/W106bnVsbDt0aGlzLmg9W107dGhpcy5kb25lPSExO2Zvcih0aGlzLmc9bmV3IGFzKGEsITEsYixhLm5vZGVUeXBlPT09Mz8wOjEsMSk7YT1hLnBhcmVudE5vZGU7KWNzKHRoaXMsYSwhMCk7dGhpcy5oLnB1c2goITEpO3RoaXMuaC5yZXZlcnNlKCk7Zm9yKGE9MTthPHRoaXMuaC5sZW5ndGg7KythKXRoaXMuaFthXT09bnVsbCYmKHRoaXMuaFthXT10aGlzLmhbYS0xXSl9LGNzPWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITE6Yzt2YXIgZD0oYi5zdHlsZSYmYi5zdHlsZS53aGl0ZVNwYWNlfHwiIikuc3Vic3RyaW5nKDAsMyk7ZD09PSJwcmUifHwhZCYmYi50YWdOYW1lPT09IlBSRSI/YS5oLnB1c2goITApOmQmJmQhPT0icHJlIj9hLmgucHVzaCghMSk6Yz9hLmgucHVzaChudWxsKTphLmgucHVzaChhLmhbYS5oLmxlbmd0aC0xXSl9LGVzPWZ1bmN0aW9uKGEpe3JldHVybiEhYS5oW2EuaC5sZW5ndGgtCjFdfTtkcy5wcm90b3R5cGUubm9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcubm9kZX07ZHMucHJvdG90eXBlLmRlcHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5kZXB0aH07CmRzLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dHJ5e3RoaXMuaiYmdGhpcy5qLmxlbmd0aD4wJiZ0aGlzLmcuZz09PS0xJiZ0aGlzLmoubGVuZ3RoLS07dGhpcy5nLmc9PT0tMSYmdGhpcy5oLmxlbmd0aC0tO2lmKHRoaXMuaiYmdGhpcy5qLmxlbmd0aD4wJiZ0aGlzLmcuZyE9PTEmJiF0aGlzLmcubm9kZS5uZXh0U2libGluZykkcih0aGlzLmcsdGhpcy5qW3RoaXMuai5sZW5ndGgtMV0sLTEsdGhpcy5nLmRlcHRoLTEpO2Vsc2V7dmFyIGE9dGhpcy5nLm5leHQoKTt0aGlzLmw9ITA7aWYoYS5kb25lKXt0aGlzLmRvbmU9ITA7cmV0dXJufXRoaXMuaiYmdGhpcy5nLmc9PT0xJiZ0aGlzLmoucHVzaCh0aGlzLmcubm9kZSl9dGhpcy5nLmc9PT0xJiZ0aGlzLmwmJmNzKHRoaXMsdGhpcy5nLm5vZGUpfWNhdGNoKGIpe3RoaXMud2koYiksdGhpcy5kb25lPSEwfX07RHIuYXR0YWNoKDUyNzU0LGRzLnByb3RvdHlwZSx7d2k6MX0pO3ZhciBRPXt9LGZzPWZ1bmN0aW9uKCl7UVswXT0iT3ZlcnNldHQiO1FbMV09IkF2YnJ5dCI7UVsyXT0iTHVrayI7UVszXT1mdW5jdGlvbihhKXtyZXR1cm4iR29vZ2xlIGhhciBvdmVyc2F0dCBkZW5uZSBzaWRlbiB0aWwgIithKyIgYXV0b21hdGlzayJ9O1FbNF09ZnVuY3Rpb24oYSl7cmV0dXJuIk92ZXJzYXR0IHRpbDogIithfTtRWzVdPSJGZWlsOiBUamVuZXJlbiBrdW5uZSBpa2tlIGZ1bGxmXHUwMGY4cmUgZm9yZXNwXHUwMGY4cnNlbGVuLiBQclx1MDBmOHYgcFx1MDBlNSBueXR0IHNlbmVyZS4iO1FbNl09IkxlcyBtZXIiO1FbN109ZnVuY3Rpb24oYSl7cmV0dXJuIkRyZXZldCBhdiAiK2F9O1FbOF09Ik92ZXJzZXR0ZXIiO1FbOV09Ik92ZXJzZXR0ZWxzZSBwXHUwMGU1Z1x1MDBlNXIiO1FbMTBdPWZ1bmN0aW9uKGEpe3JldHVybiJWaWwgZHUgb3ZlcnNldHRlIGRlbm5lIHNpZGVuIHRpbCAiK2ErIiBtZWQgR29vZ2xlIE92ZXJzZXR0ZXI/In07UVsxMV09ZnVuY3Rpb24oYSl7cmV0dXJuIlZpcyBkZW5uZSBzaWRlbiBwXHUwMGU1OiAiKwphfTtRWzEyXT0iVmlzIG9yaWdpbmFsIjtRWzEzXT0iSW5uaG9sZGV0IHBcdTAwZTUgZGVubmUgbG9rYWxlIGZpbGVuIHNlbmRlcyB0aWwgR29vZ2xlIHZpYSBlbiBzaWtrZXIgdGlsa29ibGluZyBmb3IgXHUwMGU1IGJsaSBvdmVyc2F0dC4iO1FbMTRdPSJJbm5ob2xkZXQgcFx1MDBlNSBkZW5uZSBzaWtyZSBzaWRlbiBzZW5kZXMgdGlsIEdvb2dsZSB2aWEgZW4gc2lra2VyIHRpbGtvYmxpbmcgZm9yIFx1MDBlNSBibGkgb3ZlcnNhdHQuIjtRWzE1XT0iSW5uaG9sZGV0IHBcdTAwZTUgZGVubmUgaW50cmFuZXR0c2lkZW4gc2VuZGVzIHRpbCBHb29nbGUgdmlhIGVuIHNpa2tlciB0aWxrb2JsaW5nIGZvciBcdTAwZTUgYmxpIG92ZXJzYXR0LiI7UVsxNl09IlZlbGcgc3ByXHUwMGU1ayI7UVsxN109ZnVuY3Rpb24oYSl7cmV0dXJuIlNsXHUwMGU1IGF2IG92ZXJzZXR0ZWxzZSB0aWwgIithfTtRWzE4XT1mdW5jdGlvbihhKXtyZXR1cm4iRGVha3RpdmVyIGZvcjogIithfTtRWzE5XT0iU2tqdWwgYWxsdGlkIjsKUVsyMF09Ik9yaWdpbmFsdGVrc3Q6IjtRWzIxXT0iQmlkcmEgbWVkIGVuIGJlZHJlIG92ZXJzZXR0ZWxzZSI7UVsyMl09IkJpZHJhIjtRWzIzXT0iT3ZlcnNldHQgYWx0IjtRWzI0XT0iR2plbm9wcHJldHQgYWx0IjtRWzI1XT0iQXZicnl0IGFsdCI7UVsyNl09Ik92ZXJzZXR0IGRlbGVuZSB0aWwgbWl0dCBzcHJcdTAwZTVrIjtRWzI3XT1mdW5jdGlvbihhKXtyZXR1cm4iT3ZlcnNldHQgYWx0IHRpbCAiK2F9O1FbMjhdPSJWaXMgb3BwcmlubmVsaWdlIHNwclx1MDBlNWsiO1FbMjldPSJBbHRlcm5hdGl2ZXIiO1FbMzBdPSJTbFx1MDBlNSBhdiBvdmVyc2V0dGVsc2UgZm9yIGRldHRlIG5ldHRzdGVkZXQiO1FbMzFdPW51bGw7UVszMl09IlZpcyBhbHRlcm5hdGl2ZSBvdmVyc2V0dGVsc2VyIjtRWzMzXT0iS2xpa2sgcFx1MDBlNSBvcmQgb3ZlbmZvciBmb3IgXHUwMGU1IGZcdTAwZTUgYWx0ZXJuYXRpdmUgb3ZlcnNldHRlbHNlciI7UVszNF09IkJydWsiO1FbMzVdPSJEcmEgbWVkIFNoaWZ0LXRhc3QgZm9yIFx1MDBlNSBlbmRyZSByZWtrZWZcdTAwZjhsZ2UiOwpRWzM2XT0iS2xpa2sgZm9yIFx1MDBlNSBzZSBhbHRlcm5hdGl2ZSBvdmVyc2V0dGVsc2VyIjtRWzM3XT0iSG9sZCBuZWRlIFNoaWZ0LXRhc3Rlbiwga2xpa2ssIG9nIGRyYSBkZXJldHRlciBvcmRlbmUgb3ZlbmZvciBmb3IgXHUwMGU1IGVuZHJlIHBcdTAwZTUgcmVra2VmXHUwMGY4bGdlbi4iO1FbMzhdPSJUYWtrIGZvciBhdCBkdSBiaWRyYXIgbWVkIG92ZXJzZXR0ZWxzZXNmb3JzbGFnZXQgZGl0dCB0aWwgR29vZ2xlIE92ZXJzZXR0ZXIuIjtRWzM5XT0iQWRtaW5pc3RyZXIgb3ZlcnNldHRpbmcgZm9yIGRldHRlIG5ldHRzdGVkZXQiO1FbNDBdPSJLbGlrayBwXHUwMGU1IGV0IG9yZCBmb3IgXHUwMGU1IHNlIGFsdGVybmF0aXZlIG92ZXJzZXR0ZWxzZXIsIGVsbGVyIGRvYmJlbHRrbGlrayBmb3IgXHUwMGU1IHJlZGlnZXJlIGRpcmVrdGUiO1FbNDFdPSJPcHByaW5uZWxpZyB0ZWtzdCI7UVs0Ml09Ik92ZXJzZXR0ZXIiO1FbNDNdPSJPdmVyc2V0dCI7UVs0NF09IlJldHRpbmdlbiBkaW4gZXIgc2VuZHQgaW5uLiI7ClFbNDVdPSJGZWlsOiBTcHJcdTAwZTVrZXQgdGlsIG5ldHRzaWRlbiBzdFx1MDBmOHR0ZXMgaWtrZS4iO1FbNDZdPSJNb2R1bCBmb3Igc3ByXHUwMGU1a292ZXJzZXR0aW5nIjtRWzQ3XT0iR2kgZW4gdnVyZGVyaW5nIGF2IGRlbm5lIG92ZXJzZXR0ZWxzZW4iO1FbNDhdPSJUaWxiYWtlbWVsZGluZ2VuIGRpbiBicnVrZXMgZm9yIFx1MDBlNSBnalx1MDBmOHJlIEdvb2dsZSBPdmVyc2V0dGVyIGJlZHJlIjtRWzQ5XT0iR29kIG92ZXJzZXR0ZWxzZSI7UVs1MF09IkRcdTAwZTVybGlnIG92ZXJzZXR0ZWxzZSI7UVs1MV09Ik92ZXJzZXR0ZWxzZSJ9O3ZhciBncz1mdW5jdGlvbigpe3JldHVybiJbbXNnX3VuZGVmaW5lZF0ifSxSPXt9OwooZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYn19O1I9e0llOmEoMCksbWc6YSgxKSxBZTphKDIpLFdqOmEoMyksRGc6YSg0KSxDZTphKDUpLHdnOmEoNDUpLHhnOmEoNiksemc6YSg3KSx3ZDphKDgpLEVnOmEoOSksc2s6YSgxMCksSmc6YSgxMSksQWc6YSgxMiksbGs6YSgxMyksQ2c6YSgxNCksa2s6YSgxNSksQmc6YSgxNiksdms6YSgxNyksRmc6YSgxOCksamo6YSgxOSksVWo6YSgyMCksSWo6YSgyMSksbWs6YSgyMiksZWs6YSgyMyksZGs6YSgyNCksYms6YSgyNSksdGs6YSgyNikscms6YSgyNyksY2s6YSgyOCkseWc6YSgyOSksR2c6YSgzMCksaWo6YSgzMiksZ2o6YSgzMyksd2s6YSgzNCkseGo6YSgzNSkscGo6YSgzNiksd2o6YSgzNyksbms6YSgzOCksUWo6YSgzOSksaGo6YSg0MCksVmo6YSg0MSksRWU6YSg0NiksWGo6YSg0NyksSGo6YSg0OCksR2o6YSg0OSksRmo6YSg1MCksdWs6YSg1MSl9fSkoKTtSLkNsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMF19OwpSLlprPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMV19O1IuYmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVsyXX07Ui5ubD1mdW5jdGlvbigpe3JldHVybiBRWzNdfTtSLkRsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbNF19O1IuZmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVs1XX07Ui5obD1mdW5jdGlvbigpe3JldHVybiBRWzQ1XX07Ui5pbD1mdW5jdGlvbigpe3JldHVybiBRWzZdfTtSLm9sPWZ1bmN0aW9uKCl7cmV0dXJuIFFbN119O1IuR2w9ZnVuY3Rpb24oKXtyZXR1cm4gUVs4XX07Ui5JbD1mdW5jdGlvbigpe3JldHVybiBRWzldfTtSLkZsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTBdfTtSLk9sPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTFdfTtSLnBsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTJdfTtSLnlsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTNdfTtSLnpsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTRdfTtSLnhsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTVdfTtSLnFsPWZ1bmN0aW9uKCl7cmV0dXJuIFFbMTZdfTsKUi5MbD1mdW5jdGlvbigpe3JldHVybiBRWzE3XX07Ui5LbD1mdW5jdGlvbigpe3JldHVybiBRWzE4XX07Ui5Zaz1mdW5jdGlvbigpe3JldHVybiBRWzE5XX07Ui5sbD1mdW5jdGlvbigpe3JldHVybiBRWzIwXX07Ui5zaD1mdW5jdGlvbigpe3JldHVybiBRWzQxXX07Ui5lbD1mdW5jdGlvbigpe3JldHVybiBRWzIxXX07Ui5BbD1mdW5jdGlvbigpe3JldHVybiBRWzIyXX07Ui53bD1mdW5jdGlvbigpe3JldHVybiBRWzIzXX07Ui52bD1mdW5jdGlvbigpe3JldHVybiBRWzI0XX07Ui5ybD1mdW5jdGlvbigpe3JldHVybiBRWzI1XX07Ui5IbD1mdW5jdGlvbigpe3JldHVybiBRWzI2XX07Ui5FbD1mdW5jdGlvbigpe3JldHVybiBRWzI3XX07Ui51bD1mdW5jdGlvbigpe3JldHVybiBRWzI4XX07Ui5rbD1mdW5jdGlvbigpe3JldHVybiBRWzI5XX07Ui5NbD1mdW5jdGlvbigpe3JldHVybiBRWzMwXX07Ui5qbD1mdW5jdGlvbigpe3JldHVybiBRWzM5XX07Ui5Yaz1mdW5jdGlvbigpe3JldHVybiBRWzMyXX07ClIuVms9ZnVuY3Rpb24oKXtyZXR1cm4gUVszM119O1IuV2s9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0MF19O1IuTmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVszNF19O1IuZGw9ZnVuY3Rpb24oKXtyZXR1cm4gUVszNV19O1IuYWw9ZnVuY3Rpb24oKXtyZXR1cm4gUVszNl19O1IuY2w9ZnVuY3Rpb24oKXtyZXR1cm4gUVszN119O1IuQmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVszOF19O1IuZ2w9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0Nl19O1IudGg9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0N119O1Iucmg9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0OF19O1IucWg9ZnVuY3Rpb24oKXtyZXR1cm4gUVs0OV19O1IucGg9ZnVuY3Rpb24oKXtyZXR1cm4gUVs1MF19O1IuSmw9ZnVuY3Rpb24oKXtyZXR1cm4gUVs1MV19O3ZhciBocz1SO3ZhciBpcz1ocy5zaCxqcz1ocy50aCxrcz1ocy5yaCxscz1ocy5xaCxtcz1ocy5waDt2YXIgcHM9ZnVuY3Rpb24oYSl7dmFyIGI9YS5kaXI7YT1hLmNqO3JldHVybiBWbihXbihWbihXbihWbihfLnlsKCksJzxkaXYgaWQ9Imdvb2ctZ3QtdHQiIGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItTDdsYmtiIikrJyBza2lwdHJhbnNsYXRlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgYm9yZGVyLXJhZGl1czogMTJweDsgbWFyZ2luOiAwIDAgMCAtMjNweDsgcGFkZGluZzogMDsgZm9udC1mYW1pbHk6IFwnR29vZ2xlIFNhbnNcJywgQXJpYWwsIHNhbnMtc2VyaWY7IiBkYXRhLWlkPSIiPjxkaXYgaWQ9Imdvb2ctZ3QtdnQiIGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItaHZoZ05kIikrJyI+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1VZDdmciIpKyciPjxpbWcgc3JjPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaS9wcm9kdWN0bG9nb3MvdHJhbnNsYXRlL3YxNC8yNHB4LnN2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBhbHQ9IiIvPjxkaXYgY2xhc3M9IicrCihiPT09InJ0bCI/IiAiK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1TSXNyVGQiKSsiICI6IiAiK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLUl1aXpXYy1pM2pNOGMiKSsiICIpKyciIGRpcj0iJytQKGIpKyciPicrS3AoaXMoKSkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUCgiVklwZ0pkLXlBV05FYi1odmhnTmQtazc3SWlmIikrJyI+PGRpdiBpZD0iZ29vZy1ndC1vcmlnaW5hbC10ZXh0IiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLW5WTWZjZC1mbWNtUyIpKyIgIitQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1heEFWMSIpKyciPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrUCgiVklwZ0pkLXlBV05FYi1odmhnTmQtTjdFcWlkIikrIiAiK1AoYikrJyI+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1ON0VxaWQtQjdJNE9kIikrIiAiK1AoYikrJyIgZGlyPSInK1AoYikrJyI+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1VVHVqQ2IiKSsKJyI+JytLcChqcygpKSsnPC9kaXY+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1lTzltS2UiKSsnIj4nK0twKGtzKCkpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLXhnb3Y1IikrIiAiK1AoYikrJyI+JyksYj09PSJydGwiP1duKFduKF8ueWwoKSxucygpKSxvcygpKTpXbihXbihfLnlsKCksb3MoKSksbnMoKSkpLCI8L2Rpdj48L2Rpdj4iKSwoMCxfLnRsKSgnPGRpdiBpZD0iZ29vZy1ndC12b3RpbmdIaWRkZW5QYW5lIiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1hWFlUY2UiKSsnIj48Zm9ybSBpZD0iZ29vZy1ndC12b3RpbmdGb3JtIiBhY3Rpb249IicrUChVcChhKSkrJyIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9InZvdGluZ0ZyYW1lIiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1hWFlUY2UiKSsnIj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic2wiIGlkPSJnb29nLWd0LXZvdGluZ0lucHV0U3JjTGFuZyIvPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ0bCIgaWQ9Imdvb2ctZ3Qtdm90aW5nSW5wdXRUcmdMYW5nIi8+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InF1ZXJ5IiBpZD0iZ29vZy1ndC12b3RpbmdJbnB1dFNyY1RleHQiLz48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZ3RyYW5zIiBpZD0iZ29vZy1ndC12b3RpbmdJbnB1dFRyZ1RleHQiLz48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idm90ZSIgaWQ9Imdvb2ctZ3Qtdm90aW5nSW5wdXRWb3RlIi8+PC9mb3JtPjxpZnJhbWUgbmFtZT0idm90aW5nRnJhbWUiIGZyYW1lQm9yZGVyPTA+PC9pZnJhbWU+PC9kaXY+JykpLAoiPC9kaXY+PC9kaXY+Iil9LG9zPWZ1bmN0aW9uKCl7dmFyIGE9Xy55bCgpLGI9bHMoKTtiPVZuKGEsJzxidXR0b24gaWQ9Imdvb2ctZ3QtdGh1bWJVcEJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iJytQKCJWSXBnSmQteUFXTkViLWh2aGdOZC1iZ202c2YiKSsnIiB0aXRsZT0iJytQKGIpKyciIGFyaWEtbGFiZWw9IicrUChiKSsnIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj48c3BhbiBpZD0iZ29vZy1ndC10aHVtYlVwSWNvbiI+Jyk7dmFyIGM9KDAsXy50bCkoJzxzdmcgd2lkdGg9IicrUCgyNCkrJyIgaGVpZ2h0PSInK1AoMjQpKyciIHZpZXdCb3g9IicrUCgiMCAwIDI0IDI0IikrJyIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9IicrUCgiVklwZ0pkLXlBV05FYi1odmhnTmQtVEhJNlZiIikrIiAiK1AoIk5NbTVNIikrJyInK3pwKCkrJz48cGF0aCBkPSJNMjEgN2gtNi4zMWwuOTUtNC41Ny4wMy0uMzJjMC0uNDEtLjE3LS43OS0uNDQtMS4wNkwxNC4xNyAwUzcuMDggNi44NSA3IDdIMnYxM2gxNmMuODMgMCAxLjU0LS41IDEuODQtMS4yMmwzLjAyLTcuMDVjLjA5LS4yMy4xNC0uNDcuMTQtLjczVjljMC0xLjEtLjktMi0yLTJ6TTcgMThINFY5aDN2OXptMTQtN2wtMyA3SDlWOGw0LjM0LTQuMzRMMTIgOWg5djJ6Ii8+PC9zdmc+Jyk7CmI9Vm4oV24oYixjKSwnPC9zcGFuPjxzcGFuIGlkPSJnb29nLWd0LXRodW1iVXBJY29uRmlsbGVkIj4nKTtjPSgwLF8udGwpKCc8c3ZnIHdpZHRoPSInK1AoMjQpKyciIGhlaWdodD0iJytQKDI0KSsnIiB2aWV3Qm94PSInK1AoIjAgMCAyNCAyNCIpKyciIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYiIpKyIgIitQKCJOTW01TSIpKyciJyt6cCgpKyc+PHBhdGggZD0iTTIxIDdoLTYuMzFsLjk1LTQuNTcuMDMtLjMyYzAtLjQxLS4xNy0uNzktLjQ0LTEuMDZMMTQuMTcgMFM3LjA4IDYuODUgNyA3djEzaDExYy44MyAwIDEuNTQtLjUgMS44NC0xLjIybDMuMDItNy4wNWMuMDktLjIzLjE0LS40Ny4xNC0uNzNWOWMwLTEuMS0uOS0yLTItMnpNNSA3SDF2MTNoNFY3eiIvPjwvc3ZnPicpO1ZuKFduKGIsYyksIjwvc3Bhbj48L2J1dHRvbj4iKTtyZXR1cm4gYX0sbnM9ZnVuY3Rpb24oKXt2YXIgYT1fLnlsKCksYj1tcygpO2I9Vm4oYSwnPGJ1dHRvbiBpZD0iZ29vZy1ndC10aHVtYkRvd25CdXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9IicrClAoIlZJcGdKZC15QVdORWItaHZoZ05kLWJnbTZzZiIpKyciIHRpdGxlPSInK1AoYikrJyIgYXJpYS1sYWJlbD0iJytQKGIpKyciIGFyaWEtcHJlc3NlZD0iZmFsc2UiPjxzcGFuIGlkPSJnb29nLWd0LXRodW1iRG93bkljb24iPicpO3ZhciBjPSgwLF8udGwpKCc8c3ZnIHdpZHRoPSInK1AoMjQpKyciIGhlaWdodD0iJytQKDI0KSsnIiB2aWV3Qm94PSInK1AoIjAgMCAyNCAyNCIpKyciIGZvY3VzYWJsZT0iZmFsc2UiIGNsYXNzPSInK1AoIlZJcGdKZC15QVdORWItaHZoZ05kLVRISTZWYiIpKyIgIitQKCJOTW01TSIpKyciJyt6cCgpKyc+PHBhdGggZD0iTTMgMTdoNi4zMWwtLjk1IDQuNTctLjAzLjMyYzAgLjQxLjE3Ljc5LjQ0IDEuMDZMOS44MyAyNHM3LjA5LTYuODUgNy4xNy03aDVWNEg2Yy0uODMgMC0xLjU0LjUtMS44NCAxLjIybC0zLjAyIDcuMDVjLS4wOS4yMy0uMTQuNDctLjE0LjczdjJjMCAxLjEuOSAyIDIgMnpNMTcgNmgzdjloLTNWNnpNMyAxM2wzLTdoOXYxMGwtNC4zNCA0LjM0TDEyIDE1SDN2LTJ6Ii8+PC9zdmc+Jyk7CmI9Vm4oV24oYixjKSwnPC9zcGFuPjxzcGFuIGlkPSJnb29nLWd0LXRodW1iRG93bkljb25GaWxsZWQiPicpO2M9KDAsXy50bCkoJzxzdmcgd2lkdGg9IicrUCgyNCkrJyIgaGVpZ2h0PSInK1AoMjQpKyciIHZpZXdCb3g9IicrUCgiMCAwIDI0IDI0IikrJyIgZm9jdXNhYmxlPSJmYWxzZSIgY2xhc3M9IicrUCgiVklwZ0pkLXlBV05FYi1odmhnTmQtVEhJNlZiIikrIiAiK1AoIk5NbTVNIikrJyInK3pwKCkrJz48cGF0aCBkPSJNMyAxN2g2LjMxbC0uOTUgNC41Ny0uMDMuMzJjMCAuNDEuMTcuNzkuNDQgMS4wNkw5LjgzIDI0czcuMDktNi44NSA3LjE3LTdWNEg2Yy0uODMgMC0xLjU0LjUtMS44NCAxLjIybC0zLjAyIDcuMDVjLS4wOS4yMy0uMTQuNDctLjE0LjczdjJjMCAxLjEuOSAyIDIgMnptMTYgMGg0VjRoLTR2MTN6Ii8+PC9zdmc+Jyk7Vm4oV24oYixjKSwiPC9zcGFuPjwvYnV0dG9uPiIpO3JldHVybiBhfTt2YXIgcXM9ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIiljJiYoYT0oMCxfLnkpKGEsYykpO2Vsc2UgaWYoYSYmdHlwZW9mIGEuaGFuZGxlRXZlbnQ9PSJmdW5jdGlvbiIpYT0oMCxfLnkpKGEuaGFuZGxlRXZlbnQsYSk7ZWxzZSB0aHJvdyBFcnJvcigieGEiKTtyZXR1cm4gTnVtYmVyKGIpPjIxNDc0ODM2NDc/LTE6Xy52LnNldFRpbWVvdXQoYSxifHwwKX07dmFyIHJzPWZ1bmN0aW9uKCl7aWYoXy5aYyl7dmFyIGE9L1dpbmRvd3MgTlQgKFswLTkuXSspLztyZXR1cm4oYT1hLmV4ZWMoXy5UYSgpKSk/YVsxXToiMCJ9cmV0dXJuIF8uWWM/KGE9LzFbMHwxXVtfLl1bMC05Xy5dKy8sKGE9YS5leGVjKF8uVGEoKSkpP2FbMF0ucmVwbGFjZSgvXy9nLCIuIik6IjEwIik6Xy4kYz8oYT0vQW5kcm9pZFxzKyhbXlwpO10rKShcKXw7KS8sKGE9YS5leGVjKF8uVGEoKSkpP2FbMV06IiIpOl8uYWR8fF8uYmR8fF8uY2Q/KGE9Lyg/OmlQaG9uZXxDUFUpXHMrT1NccysoXFMrKS8sKGE9YS5leGVjKF8uVGEoKSkpP2FbMV0ucmVwbGFjZSgvXy9nLCIuIik6IiIpOiIifSgpO3ZhciBzcz1mdW5jdGlvbihhKXtyZXR1cm4oYT1hLmV4ZWMoXy5UYSgpKSk/YVsxXToiIn0sdHM9ZnVuY3Rpb24oKXtpZihfLkpoKXJldHVybiBzcygvRmlyZWZveFwvKFswLTkuXSspLyk7aWYoXy5TY3x8Xy5UY3x8Xy5SYylyZXR1cm4gXy5qZDtpZihfLk5oKXtpZihfLiRhKCl8fF8uYWIoKSl7dmFyIGE9c3MoL0NyaU9TXC8oWzAtOS5dKykvKTtpZihhKXJldHVybiBhfXJldHVybiBzcygvQ2hyb21lXC8oWzAtOS5dKykvKX1pZihfLk9oJiYhXy4kYSgpKXJldHVybiBzcygvVmVyc2lvblwvKFswLTkuXSspLyk7aWYoXy5LaHx8Xy5MaCl7aWYoYT0vVmVyc2lvblwvKFxTKykuKk1vYmlsZVwvKFxTKykvLmV4ZWMoXy5UYSgpKSlyZXR1cm4gYVsxXSsiLiIrYVsyXX1lbHNlIGlmKF8uTWgpcmV0dXJuKGE9c3MoL0FuZHJvaWRccysoWzAtOS5dKykvKSk/YTpzcygvVmVyc2lvblwvKFswLTkuXSspLyk7cmV0dXJuIiJ9KCk7Xy5HKFltLF8uaGIpO18ubT1ZbS5wcm90b3R5cGU7Xy5tLkVhPW51bGw7Xy5tLkRjPSEwO18ubS5OZT1udWxsO18ubS56Yj0hMTtfLm0uWmQ9LTE7Xy5tLlViPSJ0b2dnbGVfZGlzcGxheSI7Xy5tLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5FYX07Xy5tLlFiPWZ1bmN0aW9uKGEpe2lmKHRoaXMuemIpdGhyb3cgRXJyb3IoInlhIik7dGhpcy5FYT1hfTtfLm0ucmU9ZnVuY3Rpb24oYSl7aWYodGhpcy56Yil0aHJvdyBFcnJvcigieWEiKTt0aGlzLkRjPWF9O18ubS5pc1Zpc2libGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy56Yn07Cl8ubS5wYT1mdW5jdGlvbihhKXt0aGlzLkwmJnRoaXMuTC5zdG9wKCk7dGhpcy5LJiZ0aGlzLksuc3RvcCgpO2lmKGEpe2lmKCF0aGlzLnpiJiZ0aGlzLnVkKCkpe2lmKCF0aGlzLkVhKXRocm93IEVycm9yKCJ6YSIpO3RoaXMucGIoKTthPV8uc2QodGhpcy5FYSk7dGhpcy5EYyYmKHRoaXMubC5OKGEsIm1vdXNlZG93biIsdGhpcy5OZiwhMCksdGhpcy5sLk4oYSwiYmx1ciIsdGhpcy5FaSkpO3RoaXMuVWI9PSJ0b2dnbGVfZGlzcGxheSI/KHRoaXMuRWEuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSIsbXAodGhpcy5FYSwhMCkpOnRoaXMuVWI9PSJtb3ZlX29mZnNjcmVlbiImJnRoaXMucGIoKTt0aGlzLnpiPSEwO3RoaXMuWmQ9RGF0ZS5ub3coKTt0aGlzLkw/KF8uTmQodGhpcy5MLCJlbmQiLHRoaXMuT2YsITEsdGhpcyksdGhpcy5MLnBsYXkoKSk6dGhpcy5PZigpfX1lbHNlIHVzKHRoaXMpfTtfLm0ucGI9ZnVuY3Rpb24oKXt9Owp2YXIgdXM9ZnVuY3Rpb24oYSxiKXthLnpiJiZhLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImJlZm9yZWhpZGUiLHRhcmdldDpifSkmJihhLmwmJl8uUmYoYS5sKSxhLnpiPSExLGEuSz8oXy5OZChhLkssImVuZCIsXy5aaihhLlNlLGIpLCExLGEpLGEuSy5wbGF5KCkpOmEuU2UoYikpfTtfLm09WW0ucHJvdG90eXBlO18ubS5TZT1mdW5jdGlvbihhKXt0aGlzLlViPT0idG9nZ2xlX2Rpc3BsYXkiP3RoaXMuYWkoKTp0aGlzLlViPT0ibW92ZV9vZmZzY3JlZW4iJiYodGhpcy5FYS5zdHlsZS50b3A9Ii0xMDAwMHB4Iik7dGhpcy5nZShhKX07Xy5tLmFpPWZ1bmN0aW9uKCl7dGhpcy5FYS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO21wKHRoaXMuRWEsITEpfTtfLm0udWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KCJiZWZvcmVzaG93Iil9O18ubS5PZj1mdW5jdGlvbigpe3RoaXMuZGlzcGF0Y2hFdmVudCgic2hvdyIpfTsKXy5tLmdlPWZ1bmN0aW9uKGEpe3RoaXMuZGlzcGF0Y2hFdmVudCh7dHlwZToiaGlkZSIsdGFyZ2V0OmF9KX07Xy5tLk5mPWZ1bmN0aW9uKGEpe2E9YS50YXJnZXQ7Xy5CZCh0aGlzLkVhLGEpfHx2cyh0aGlzLGEpfHxEYXRlLm5vdygpLXRoaXMuWmQ8MTUwfHx1cyh0aGlzLGEpfTtfLm0uRWk9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5zZCh0aGlzLkVhKTtpZih0eXBlb2YgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9InVuZGVmaW5lZCIpe2lmKGE9Yi5hY3RpdmVFbGVtZW50LCFhfHxfLkJkKHRoaXMuRWEsYSl8fGEudGFnTmFtZT09IkJPRFkifHx2cyh0aGlzLGEpKXJldHVybn1lbHNlIGlmKGEudGFyZ2V0IT1iKXJldHVybjtEYXRlLm5vdygpLXRoaXMuWmQ8MTUwfHx1cyh0aGlzKX07dmFyIHZzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIF8ueGMoYS5OZXx8W10sZnVuY3Rpb24oYyl7cmV0dXJuIGI9PT1jfHxfLkJkKGMsYil9KX07ClltLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7WW0uZWEuTS5jYWxsKHRoaXMpO3RoaXMubC5kaXNwb3NlKCk7Xy5wYSh0aGlzLkwpO18ucGEodGhpcy5LKTtkZWxldGUgdGhpcy5FYTtkZWxldGUgdGhpcy5sO2RlbGV0ZSB0aGlzLk5lfTtfLkcoYm4sXy5oYik7Ym4ucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBfLmRiKGEuZyk7Yi50eXBlPWEudHlwZT09ImZvY3VzaW4ifHxhLnR5cGU9PSJmb2N1cyI/ImZvY3VzaW4iOiJmb2N1c291dCI7dGhpcy5kaXNwYXRjaEV2ZW50KGIpfTtibi5wcm90b3R5cGUuTT1mdW5jdGlvbigpe2JuLmVhLk0uY2FsbCh0aGlzKTtfLlZkKHRoaXMuaCk7Xy5WZCh0aGlzLmopO2RlbGV0ZSB0aGlzLmd9O2NuLnByb3RvdHlwZS5oPWZ1bmN0aW9uKCl7fTt2YXIgeXM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg7aWYoaD1jLm9mZnNldFBhcmVudCl7dmFyIGs9aC50YWdOYW1lPT0iSFRNTCJ8fGgudGFnTmFtZT09IkJPRFkiO2lmKCFrfHxjcChoLCJwb3NpdGlvbiIpIT0ic3RhdGljIil7dmFyIGw9aHAoaCk7aWYoIWspe2s9InJ0bCI9PWNwKGgsImRpcmVjdGlvbiIpO3ZhciBuO2lmKG49ayl7bj1fLk9oJiZMbCh0cywxMCk+PTA7dmFyIHE7aWYocT1fLmRkKXE9TGwocnMsMTApPj0wO3ZhciBwPV8uTmgmJkxsKHRzLDg1KT49MDtuPV8uVWN8fG58fHF8fHB9az1uPy1oLnNjcm9sbExlZnQ6ayYmY3AoaCwib3ZlcmZsb3dYIikhPSJ2aXNpYmxlIj9oLnNjcm9sbFdpZHRoLWguY2xpZW50V2lkdGgtaC5zY3JvbGxMZWZ0Omguc2Nyb2xsTGVmdDtsPWFvKGwsbmV3IHpsKGssaC5zY3JvbGxUb3ApKX19fWg9bHx8bmV3IHpsO2w9aHAoYSk7az1scChhKTtsPW5ldyB3bShsLngsbC55LGsud2lkdGgsay5oZWlnaHQpO2lmKGs9aXAoYSkpcD0KbmV3IHdtKGsubGVmdCxrLnRvcCxrLnJpZ2h0LWsubGVmdCxrLmJvdHRvbS1rLnRvcCksaz1NYXRoLm1heChsLmxlZnQscC5sZWZ0KSxuPU1hdGgubWluKGwubGVmdCtsLndpZHRoLHAubGVmdCtwLndpZHRoKSxrPD1uJiYocT1NYXRoLm1heChsLnRvcCxwLnRvcCkscD1NYXRoLm1pbihsLnRvcCtsLmhlaWdodCxwLnRvcCtwLmhlaWdodCkscTw9cCYmKGwubGVmdD1rLGwudG9wPXEsbC53aWR0aD1uLWssbC5oZWlnaHQ9cC1xKSk7bj1fLmxiKGEpO2s9Xy5sYihjKTtuLmchPWsuZyYmKG49bi5nLmJvZHksaz1qcChuLGsuZy5kZWZhdWx0Vmlldyksaz1hbyhrLGhwKG4pKSxsLmxlZnQrPWsueCxsLnRvcCs9ay55KTthPXdzKGEsYik7Yj1sLmxlZnQ7YSY0P2IrPWwud2lkdGg6YSYyJiYoYis9bC53aWR0aC8yKTtiPW5ldyB6bChiLGwudG9wKyhhJjE/bC5oZWlnaHQ6MCkpO2I9YW8oYixoKTtlJiYoYi54Kz0oYSY0Py0xOjEpKmUueCxiLnkrPShhJjE/LTE6MSkqZS55KTt2YXIgcjtnJiYocj0KaXAoYykpJiYoci50b3AtPWgueSxyLnJpZ2h0LT1oLngsci5ib3R0b20tPWgueSxyLmxlZnQtPWgueCk7cmV0dXJuIHhzKGIsYyxkLGYscixnKX0seHM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2E9RG4oYSk7dmFyIGc9d3MoYixjKTtjPWxwKGIpO3ZhciBoPW5ldyBfLkNhKGMud2lkdGgsYy5oZWlnaHQpO2E9RG4oYSk7aD1uZXcgXy5DYShoLndpZHRoLGguaGVpZ2h0KTt2YXIgaz0wO2lmKGR8fGchPTApZyY0P2EueC09aC53aWR0aCsoZD9kLnJpZ2h0OjApOmcmMj9hLngtPWgud2lkdGgvMjpkJiYoYS54Kz1kLmxlZnQpLGcmMT9hLnktPWguaGVpZ2h0KyhkP2QuYm90dG9tOjApOmQmJihhLnkrPWQudG9wKTtmJiYoZT8oZD1oLGc9MCwoZiY2NSk9PTY1JiYoYS54PGUubGVmdHx8YS54Pj1lLnJpZ2h0KSYmKGYmPS0yKSwoZiYxMzIpPT0xMzImJihhLnk8ZS50b3B8fGEueT49ZS5ib3R0b20pJiYoZiY9LTUpLGEueDxlLmxlZnQmJmYmMSYmKGEueD1lLmxlZnQsZ3w9MSksZiYxNiYmKGs9CmEueCxhLng8ZS5sZWZ0JiYoYS54PWUubGVmdCxnfD00KSxhLngrZC53aWR0aD5lLnJpZ2h0JiYoZC53aWR0aD1NYXRoLm1pbihlLnJpZ2h0LWEueCxrK2Qud2lkdGgtZS5sZWZ0KSxkLndpZHRoPU1hdGgubWF4KGQud2lkdGgsMCksZ3w9NCkpLGEueCtkLndpZHRoPmUucmlnaHQmJmYmMSYmKGEueD1NYXRoLm1heChlLnJpZ2h0LWQud2lkdGgsZS5sZWZ0KSxnfD0xKSxmJjImJihnfD0oYS54PGUubGVmdD8xNjowKXwoYS54K2Qud2lkdGg+ZS5yaWdodD8zMjowKSksYS55PGUudG9wJiZmJjQmJihhLnk9ZS50b3AsZ3w9MiksZiYzMiYmKGs9YS55LGEueTxlLnRvcCYmKGEueT1lLnRvcCxnfD04KSxhLnkrZC5oZWlnaHQ+ZS5ib3R0b20mJihkLmhlaWdodD1NYXRoLm1pbihlLmJvdHRvbS1hLnksaytkLmhlaWdodC1lLnRvcCksZC5oZWlnaHQ9TWF0aC5tYXgoZC5oZWlnaHQsMCksZ3w9OCkpLGEueStkLmhlaWdodD5lLmJvdHRvbSYmZiY0JiYoYS55PU1hdGgubWF4KGUuYm90dG9tLWQuaGVpZ2h0LAplLnRvcCksZ3w9MiksZiY4JiYoZ3w9KGEueTxlLnRvcD82NDowKXwoYS55K2QuaGVpZ2h0PmUuYm90dG9tPzEyODowKSksZT1nKTplPTI1NixrPWUpO2U9bmV3IHdtKDAsMCwwLDApO2UubGVmdD1hLng7ZS50b3A9YS55O2Uud2lkdGg9aC53aWR0aDtlLmhlaWdodD1oLmhlaWdodDthPWs7aWYoYSY0OTYpcmV0dXJuIGE7ZXAoYixuZXcgemwoZS5sZWZ0LGUudG9wKSk7aD1uZXcgXy5DYShlLndpZHRoLGUuaGVpZ2h0KTtfLnljKGMsaCl8fHBwKGIsaCwiYm9yZGVyLWJveCIpO3JldHVybiBhfSx3cz1mdW5jdGlvbihhLGIpe3JldHVybihiJjgmJiJydGwiPT1jcChhLCJkaXJlY3Rpb24iKT9iXjQ6YikmLTl9O18uRyhkbixjbik7ZG4ucHJvdG90eXBlLmg9ZnVuY3Rpb24oYSxiLGMpe3lzKHRoaXMuZWxlbWVudCx0aGlzLmosYSxiLHZvaWQgMCxjLHRoaXMubCl9O18uRyhlbixjbik7ZW4ucHJvdG90eXBlLmg9ZnVuY3Rpb24oYSxiLGMpe3lzKChhP18uc2QoYSk6ZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudCwwLGEsYix0aGlzLmcsYyxudWxsKX07Xy5HKGZuLFltKTtmbi5wcm90b3R5cGUucGI9ZnVuY3Rpb24oKXtpZih0aGlzLm8pe3ZhciBhPSF0aGlzLmlzVmlzaWJsZSgpJiZ0aGlzLlViIT0ibW92ZV9vZmZzY3JlZW4iLGI9dGhpcy5IKCk7YSYmKGIuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixtcChiLCEwKSk7dGhpcy5vLmgoYiw4LHRoaXMuWGIpO2EmJm1wKGIsITEpfX07Xy5HKE8sZm4pO3ZhciB6cz1bXTtfLm09Ty5wcm90b3R5cGU7Xy5tLnlhPW51bGw7Xy5tLmNsYXNzTmFtZT0iVklwZ0pkLXN1RU9kYyI7Xy5tLlpmPTUwMDtfLm0ud2Y9MDtfLm0uYXR0YWNoPWZ1bmN0aW9uKGEpe2E9Z24oYSk7dGhpcy5BLmFkZChhKTtfLngoYSwibW91c2VvdmVyIix0aGlzLlVkLCExLHRoaXMpO18ueChhLCJtb3VzZW91dCIsdGhpcy5OYiwhMSx0aGlzKTtfLngoYSwibW91c2Vtb3ZlIix0aGlzLmdiLCExLHRoaXMpO18ueChhLCJmb2N1cyIsdGhpcy5mYiwhMSx0aGlzKTtfLngoYSwiYmx1ciIsdGhpcy5OYiwhMSx0aGlzKX07Xy5tLmRldGFjaD1mdW5jdGlvbihhKXt2YXIgYj10aGlzO2E/KGE9Z24oYSksQXModGhpcyxhKSx0aGlzLkEuZGVsZXRlKGEpKToodGhpcy5BLmZvckVhY2goZnVuY3Rpb24oYyl7QXMoYixjKX0pLHRoaXMuQS5jbGVhcigpKX07CnZhciBBcz1mdW5jdGlvbihhLGIpe18uVWQoYiwibW91c2VvdmVyIixhLlVkLCExLGEpO18uVWQoYiwibW91c2VvdXQiLGEuTmIsITEsYSk7Xy5VZChiLCJtb3VzZW1vdmUiLGEuZ2IsITEsYSk7Xy5VZChiLCJmb2N1cyIsYS5mYiwhMSxhKTtfLlVkKGIsImJsdXIiLGEuTmIsITEsYSl9O08ucHJvdG90eXBlLkthPWZ1bmN0aW9uKGEpe18uQ2QodGhpcy5IKCksYSl9OwpPLnByb3RvdHlwZS5RYj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLkgoKTtiJiZfLkFkKGIpO08uZWEuUWIuY2FsbCh0aGlzLGEpO2E/KGI9dGhpcy5HLmcuYm9keSxiLmluc2VydEJlZm9yZShhLGIubGFzdENoaWxkKSxfLnBhKHRoaXMuQyksdGhpcy5DPW5ldyBibih0aGlzLkgoKSksXy5hayh0aGlzLF8uWmooXy5wYSx0aGlzLkMpKSxfLngodGhpcy5DLCJmb2N1c2luIix0aGlzLkQsdm9pZCAwLHRoaXMpLF8ueCh0aGlzLkMsImZvY3Vzb3V0Iix0aGlzLlQsdm9pZCAwLHRoaXMpKTooXy5wYSh0aGlzLkMpLHRoaXMuQz1udWxsKX07Ty5wcm90b3R5cGUudmQ9ZnVuY3Rpb24oKXtyZXR1cm4gRW8odGhpcy5IKCkpfTt2YXIgQnM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuRj9hLmlzVmlzaWJsZSgpPzQ6MTphLkk/MzphLmlzVmlzaWJsZSgpPzI6MH07Ck8ucHJvdG90eXBlLnVkPWZ1bmN0aW9uKCl7aWYoIVltLnByb3RvdHlwZS51ZC5jYWxsKHRoaXMpKXJldHVybiExO2lmKHRoaXMuZylmb3IodmFyIGEsYj0wO2E9enNbYl07YisrKV8uQmQoYS5IKCksdGhpcy5nKXx8YS5wYSghMSk7Xy51YSh6cyx0aGlzKTthPXRoaXMuSCgpO2EuY2xhc3NOYW1lPXRoaXMuY2xhc3NOYW1lO3RoaXMuRCgpO18ueChhLCJtb3VzZW92ZXIiLHRoaXMuVWMsITEsdGhpcyk7Xy54KGEsIm1vdXNlb3V0Iix0aGlzLlRjLCExLHRoaXMpO0NzKHRoaXMpO3JldHVybiEwfTsKTy5wcm90b3R5cGUuZ2U9ZnVuY3Rpb24oKXtfLnZhKHpzLHRoaXMpO2Zvcih2YXIgYT10aGlzLkgoKSxiLGM9MDtiPXpzW2NdO2MrKyliLmcmJl8uQmQoYSxiLmcpJiZiLnBhKCExKTt0aGlzLkhiJiZ0aGlzLkhiLlQoKTtfLlVkKGEsIm1vdXNlb3ZlciIsdGhpcy5VYywhMSx0aGlzKTtfLlVkKGEsIm1vdXNlb3V0Iix0aGlzLlRjLCExLHRoaXMpO3RoaXMuZz12b2lkIDA7QnModGhpcyk9PTAmJih0aGlzLlA9ITEpO1ltLnByb3RvdHlwZS5nZS5jYWxsKHRoaXMpfTtPLnByb3RvdHlwZS5kZT1mdW5jdGlvbihhLGIpe3RoaXMuZz09YSYmdGhpcy5BLmhhcyh0aGlzLmcpJiYodGhpcy5QfHwhdGhpcy5JZD8odGhpcy5wYSghMSksdGhpcy5pc1Zpc2libGUoKXx8KHRoaXMuZz1hLHRoaXMubz1ifHxuZXcgRHMoRG4odGhpcy5yYSkpLHRoaXMuaXNWaXNpYmxlKCkmJnRoaXMucGIoKSx0aGlzLnBhKCEwKSkpOnRoaXMuZz12b2lkIDApO3RoaXMuRj12b2lkIDB9OwpPLnByb3RvdHlwZS5GYz1mdW5jdGlvbihhKXt0aGlzLkk9dm9pZCAwO2lmKGE9PXRoaXMuZyl7YT10aGlzLkc7dmFyIGI9YS5nO3RyeXt2YXIgYz1iJiZiLmFjdGl2ZUVsZW1lbnQ7dmFyIGQ9YyYmYy5ub2RlTmFtZT9jOm51bGx9Y2F0Y2goZSl7ZD1udWxsfWQ9ZCYmdGhpcy5IKCkmJmEuY29udGFpbnModGhpcy5IKCksZCk7dGhpcy55YSE9bnVsbCYmKHRoaXMueWE9PXRoaXMuSCgpfHx0aGlzLkEuaGFzKHRoaXMueWEpKXx8ZHx8dGhpcy5JYSYmdGhpcy5JYS55YXx8dGhpcy5wYSghMSl9fTt2YXIgRXM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1LbihhLkcuZyk7YS5yYS54PWIuY2xpZW50WCtjLng7YS5yYS55PWIuY2xpZW50WStjLnl9O08ucHJvdG90eXBlLlVkPWZ1bmN0aW9uKGEpe3ZhciBiPUZzKHRoaXMsYS50YXJnZXQpO3RoaXMueWE9Yjt0aGlzLkQoKTtiIT10aGlzLmcmJih0aGlzLmc9YixHcyh0aGlzLGIpLEhzKHRoaXMpLEVzKHRoaXMsYSkpfTsKdmFyIEZzPWZ1bmN0aW9uKGEsYil7dHJ5e2Zvcig7YiYmIWEuQS5oYXMoYik7KWI9Yi5wYXJlbnROb2RlO3JldHVybiBifWNhdGNoKGMpe3JldHVybiBudWxsfX07Ty5wcm90b3R5cGUuZ2I9ZnVuY3Rpb24oYSl7RXModGhpcyxhKTt0aGlzLlA9ITB9O08ucHJvdG90eXBlLmZiPWZ1bmN0aW9uKGEpe3RoaXMueWE9YT1Gcyh0aGlzLGEudGFyZ2V0KTt0aGlzLlA9ITA7aWYodGhpcy5nIT1hKXt0aGlzLmc9YTt2YXIgYj1uZXcgSXModGhpcy55YSk7dGhpcy5EKCk7R3ModGhpcyxhLGIpO0hzKHRoaXMpfX07dmFyIEhzPWZ1bmN0aW9uKGEpe2lmKGEuZylmb3IodmFyIGIsYz0wO2I9enNbY107YysrKV8uQmQoYi5IKCksYS5nKSYmKGIuSWE9YSxhLkhiPWIpfTsKTy5wcm90b3R5cGUuTmI9ZnVuY3Rpb24oYSl7dmFyIGI9RnModGhpcyxhLnRhcmdldCksYz1Gcyh0aGlzLGEucmVsYXRlZFRhcmdldCk7YiE9YyYmKGI9PXRoaXMueWEmJih0aGlzLnlhPW51bGwpLENzKHRoaXMpLHRoaXMuUD0hMSwhdGhpcy5pc1Zpc2libGUoKXx8YS5yZWxhdGVkVGFyZ2V0JiZfLkJkKHRoaXMuSCgpLGEucmVsYXRlZFRhcmdldCk/dGhpcy5nPXZvaWQgMDp0aGlzLlQoKSl9O08ucHJvdG90eXBlLlVjPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5IKCk7dGhpcy55YSE9YSYmKHRoaXMuRCgpLHRoaXMueWE9YSl9O08ucHJvdG90eXBlLlRjPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuSCgpO3RoaXMueWEhPWJ8fGEucmVsYXRlZFRhcmdldCYmXy5CZChiLGEucmVsYXRlZFRhcmdldCl8fCh0aGlzLnlhPW51bGwsdGhpcy5UKCkpfTsKdmFyIEdzPWZ1bmN0aW9uKGEsYixjKXthLkZ8fChhLkY9cXMoKDAsXy55KShhLmRlLGEsYixjKSxhLlpmKSl9LENzPWZ1bmN0aW9uKGEpe2EuRiYmKF8udi5jbGVhclRpbWVvdXQoYS5GKSxhLkY9dm9pZCAwKX07Ty5wcm90b3R5cGUuVD1mdW5jdGlvbigpe0JzKHRoaXMpPT0yJiYodGhpcy5JPXFzKCgwLF8ueSkodGhpcy5GYyx0aGlzLHRoaXMuZyksdGhpcy53ZikpfTtPLnByb3RvdHlwZS5EPWZ1bmN0aW9uKCl7dGhpcy5JJiYoXy52LmNsZWFyVGltZW91dCh0aGlzLkkpLHRoaXMuST12b2lkIDApfTtPLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7dGhpcy5wYSghMSk7Q3ModGhpcyk7dGhpcy5kZXRhY2goKTt0aGlzLkgoKSYmXy5BZCh0aGlzLkgoKSk7dGhpcy55YT1udWxsO2RlbGV0ZSB0aGlzLkc7Ty5lYS5NLmNhbGwodGhpcyl9O3ZhciBEcz1mdW5jdGlvbihhLGIpe2VuLmNhbGwodGhpcyxhLGIpfTtfLkcoRHMsZW4pOwpEcy5wcm90b3R5cGUuaD1mdW5jdGlvbihhLGIsYyl7Yj1pcCgoYT9fLnNkKGEpOmRvY3VtZW50KS5kb2N1bWVudEVsZW1lbnQpO2M9Yz9uZXcgdm0oYy50b3ArMTAsYy5yaWdodCxjLmJvdHRvbSxjLmxlZnQrMTApOm5ldyB2bSgxMCwwLDAsMTApO3hzKHRoaXMuZyxhLDgsYyxiLDkpJjQ5NiYmeHModGhpcy5nLGEsOCxjLGIsNSl9O3ZhciBJcz1mdW5jdGlvbihhKXtkbi5jYWxsKHRoaXMsYSw1KX07Xy5HKElzLGRuKTtJcy5wcm90b3R5cGUuaD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bmV3IHpsKDEwLDApO3lzKHRoaXMuZWxlbWVudCx0aGlzLmosYSxiLGQsYyw5KSY0OTYmJnlzKHRoaXMuZWxlbWVudCw0LGEsMSxkLGMsNSl9O3ZhciBKcz1mdW5jdGlvbigpe08uY2FsbCh0aGlzKTt0aGlzLmxhPW51bGw7dGhpcy5SPW5ldyBfLkhiKHRoaXMpO3RoaXMuQj10aGlzLmo9dGhpcy5oPXRoaXMud2E9bnVsbDt0aGlzLk89ITB9O18uQihKcyxPKTtfLm09SnMucHJvdG90eXBlO18ubS5rYT1mdW5jdGlvbigpe3RoaXMuTz0hMTt2YXIgYT1fLnhmLnRlc3Qob3EpPyJydGwiOiJsdHIiO3RoaXMuUWIoa20ocHMse1VsOkVxLE9rOkNxLFJsOnhxLGRpcjphLGNqOklxfSkpO3RoaXMuY2xhc3NOYW1lKz0iIFZJcGdKZC15QVdORWItTDdsYmtiIHNraXB0cmFuc2xhdGUiOyhhPSEoIXRoaXMuSCgpfHwhdGhpcy5CKSkmJnRoaXMuUi5OKHdpbmRvdywicmVzaXplIiwoMCxfLnkpKHRoaXMucGIsdGhpcykpO3JldHVybiBhfTtfLm0uZGU9ZnVuY3Rpb24oYSxiKXt0aGlzLmxhPWE7Ty5wcm90b3R5cGUuZGUuY2FsbCh0aGlzLGEsYik7dGhpcy5IKCkuc3R5bGUuZGlzcGxheT0iYmxvY2sifTsKXy5tLlVkPWZ1bmN0aW9uKGEpe2lmKCF0aGlzLk8pe3ZhciBiPUZzKHRoaXMsYS50YXJnZXQpO3RoaXMueWE9Yjt0aGlzLkQoKTtiIT10aGlzLmc/KHRoaXMuZz1iLEdzKHRoaXMsYiksSHModGhpcyksRXModGhpcyxhKSk6R3ModGhpcyxiKX19O18ubS5NPWZ1bmN0aW9uKCl7dGhpcy5SJiZ0aGlzLlIuZGlzcG9zZSgpO3RoaXMuQj10aGlzLmxhPXRoaXMuUj1udWxsO08ucHJvdG90eXBlLk0uY2FsbCh0aGlzKX07Xy5tLnJlPWZ1bmN0aW9uKGEpe2lmKHRoaXMuaXNWaXNpYmxlKCkpe2E9KHRoaXMuRGM9YSk/dGhpcy5sLk46dGhpcy5sLnljO3ZhciBiPV8uc2QodGhpcy5IKCkpO2EuY2FsbCh0aGlzLmwsYiwibW91c2Vkb3duIix0aGlzLk5mLCEwKX1lbHNlIE8ucHJvdG90eXBlLnJlLmNhbGwodGhpcyxhKX07Xy5tLlFiPWZ1bmN0aW9uKGEpe08ucHJvdG90eXBlLlFiLmNhbGwodGhpcyxhKTthJiYodGhpcy5CPXZvKGEpKX07Cl8ubS5wYj1mdW5jdGlvbihhLGIpe3ZhciBjPWhwKGRvY3VtZW50LmJvZHkpLnk7aWYodGhpcy5vKXsodGhpcy5vfHxudWxsKS5nLnkrPWM7Ty5wcm90b3R5cGUucGIuY2FsbCh0aGlzKTt2YXIgZD1wYXJzZUludCh0aGlzLkgoKS5zdHlsZS5sZWZ0LDEwKTthPXBhcnNlSW50KHRoaXMuSCgpLnN0eWxlLnRvcCwxMCktKGE/MDpjKTtiJiYoYj10aGlzLlhifHx7fSxhLT1iLnRvcHx8MTAsZC09Yi5sZWZ0fHwxMCk7YS09YzsodGhpcy5vfHxudWxsKS5nLnk9YTsodGhpcy5vfHxudWxsKS5nLng9ZDtjPW5ldyB6bChkLGEpO2VwKHRoaXMuSCgpLGMpfX07Xy5tLnBhPWZ1bmN0aW9uKGEpe08ucHJvdG90eXBlLnBhLmNhbGwodGhpcyxhKX07Xy5tLk5hPWZ1bmN0aW9uKGEpe3RoaXMuaD1hfTtfLm0ubmE9ZnVuY3Rpb24oYSl7dGhpcy5qPWF9O18ubS5LYT1mdW5jdGlvbihhKXthPWE/Xy5BYyhhKToiIjt0aGlzLkI/Xy5DZCh0aGlzLkIsYSk6Ty5wcm90b3R5cGUuS2EuY2FsbCh0aGlzLGEpfTsKXy5tLkphPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaH07Xy5tLm9hPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07Xy5tLnZkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQj9Fbyh0aGlzLkIpOk8ucHJvdG90eXBlLnZkLmNhbGwodGhpcyl9O18ubS5OYj1mdW5jdGlvbihhKXt0aGlzLk98fE8ucHJvdG90eXBlLk5iLmNhbGwodGhpcyxhKX07Xy5tLlVjPWZ1bmN0aW9uKGEpe3RoaXMuT3x8Ty5wcm90b3R5cGUuVWMuY2FsbCh0aGlzLGEpfTtfLm0uVGM9ZnVuY3Rpb24oYSl7dGhpcy5PfHxPLnByb3RvdHlwZS5UYy5jYWxsKHRoaXMsYSl9O3ZhciBLcz1mdW5jdGlvbigpe3RoaXMuaD1uZXcgTWFwO3RoaXMuZz1XcShjcil9LE9zPWZ1bmN0aW9uKGEpe3ZhciBiPWduKCJnb29nLWd0LXRodW1iVXBCdXR0b24iKSxjPWEuaCxkPWEuZztiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKExzKGMpPT09TXMpZ3IoZCk7ZWxzZXt2YXIgZT1kcihkLDUpO2VyKGQsZSk7ZnIoZSw1KX1OcyhjLE1zKX0sITEpfSxRcz1mdW5jdGlvbihhKXt2YXIgYj1nbigiZ29vZy1ndC10aHVtYkRvd25CdXR0b24iKSxjPWEuaCxkPWEuZztiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKExzKGMpPT09UHMpZ3IoZCk7ZWxzZXt2YXIgZT1kcihkLDYpO2VyKGQsZSk7ZnIoZSw2KX1OcyhjLFBzKX0sITEpfSxUcz1mdW5jdGlvbihhKXt2YXIgYj1nbigiZ29vZy1ndC10dCIpLGM9Yi5kYXRhc2V0LGQ9Z24oImdvb2ctZ3Qtdm90aW5nSW5wdXRTcmNMYW5nIiksZT1nbigiZ29vZy1ndC12b3RpbmdJbnB1dFRyZ0xhbmciKSwKZj1nbigiZ29vZy1ndC12b3RpbmdJbnB1dFNyY1RleHQiKSxnPWduKCJnb29nLWd0LXZvdGluZ0lucHV0VHJnVGV4dCIpLGg9dm8oKSxrPWduKCJnb29nLWd0LXRyYW5zbGF0aW9uIiksbD1hLmgsbj1hLmc7d2luZG93LmRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZ29vZy1ndC1wb3B1cFNob3duIixmdW5jdGlvbihxKXt2YXIgcD1kcihuLDQpO2VyKG4scCk7ZnIocCw0KTtxPXEuZGV0YWlsO3A9U3RyaW5nKHEuR2QpO3E9cS5YaTtjLmlkPXA7cD1sLmdldChwKXx8UnM7U3MocCk7Yi5zdHlsZS53aWR0aD1NYXRoLm1heChNYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aC0xNiw1MzYpLDI4OCkrInB4IjtwPXEuSmEoKXx8IiI7dmFyIHI9cS5vYSgpfHwiIjtkLnZhbHVlPXA7ZS52YWx1ZT1yO2YudmFsdWU9cS52ZCgpO2cudmFsdWU9cS53YTtrJiYoay5pbm5lclRleHQ9cS53YSk7Yi5sYW5nPW9xO2gubGFuZz1wO2smJihrLmxhbmc9cik7Xy54Zi50ZXN0KHApJiYoaC5jbGFzc0xpc3QuYWRkKCJydGwiKSwKaC5kaXI9InJ0bCIpO2smJl8ueGYudGVzdChyKSYmKGsuY2xhc3NMaXN0LmFkZCgicnRsIiksay5kaXI9InJ0bCIpfSwhMSl9LFNzPWZ1bmN0aW9uKGEpe3ZhciBiPWduKCJnb29nLWd0LXRodW1iVXBCdXR0b24iKSxjPWduKCJnb29nLWd0LXRodW1iVXBJY29uIiksZD1nbigiZ29vZy1ndC10aHVtYlVwSWNvbkZpbGxlZCIpLGU9Z24oImdvb2ctZ3QtdGh1bWJEb3duQnV0dG9uIiksZj1nbigiZ29vZy1ndC10aHVtYkRvd25JY29uIiksZz1nbigiZ29vZy1ndC10aHVtYkRvd25JY29uRmlsbGVkIik7Yi5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsImZhbHNlIik7Yy5zdHlsZS5kaXNwbGF5PSIiO2Quc3R5bGUuZGlzcGxheT0ibm9uZSI7ZS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsImZhbHNlIik7Zi5zdHlsZS5kaXNwbGF5PSIiO2cuc3R5bGUuZGlzcGxheT0ibm9uZSI7c3dpdGNoKGEpe2Nhc2UgTXM6Yi5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsInRydWUiKTtjLnN0eWxlLmRpc3BsYXk9CiJub25lIjtkLnN0eWxlLmRpc3BsYXk9IiI7YnJlYWs7Y2FzZSBQczplLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwidHJ1ZSIpLGYuc3R5bGUuZGlzcGxheT0ibm9uZSIsZy5zdHlsZS5kaXNwbGF5PSIifWduKCJnb29nLWd0LXZvdGluZ0lucHV0Vm90ZSIpLnZhbHVlPWF9LExzPWZ1bmN0aW9uKGEpe3ZhciBiPWduKCJnb29nLWd0LXR0IikuZGF0YXNldDtyZXR1cm4gYS5nZXQoYi5pZCl9LE5zPWZ1bmN0aW9uKGEsYil7THMoYSk9PT1iJiYoYj1Scyk7U3MoYik7dmFyIGM9Z24oImdvb2ctZ3QtdHQiKS5kYXRhc2V0O2Euc2V0KGMuaWQsYik7Z24oImdvb2ctZ3Qtdm90aW5nRm9ybSIpLnN1Ym1pdCgpfSxScz0oMCkudG9TdHJpbmcoKSxNcz0oMSkudG9TdHJpbmcoKSxQcz0oMikudG9TdHJpbmcoKTt2YXIgVXM9ZnVuY3Rpb24oYSl7dGhpcy5BPWE7dGhpcy5sPXRoaXMuaD10aGlzLm89dGhpcy5qPS0xO3RoaXMuZz0hMTt0aGlzLkM9MDt0aGlzLkQ9IiI7dGhpcy5GPTB9O1VzLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe2lmKCF0aGlzLmcpe3RoaXMuZz0hMDt2YXIgYT1bXSxiO2ZvcihiPTA7YjwxNTtiKyspYVtiXT1YcVswfE1hdGgucmFuZG9tKCkqNjJdO3RoaXMuRD1hLmpvaW4oIiIpO3RoaXMuQz0wO3RoaXMubD10aGlzLmg9dGhpcy5vPXRoaXMuaj0tMTt0aGlzLkY9RGF0ZS5ub3coKTtxcyh0aGlzLkIsMUU0LHRoaXMpfX07VXMucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLmcmJih0aGlzLmc9ITEsVnModGhpcykpfTtVcy5wcm90b3R5cGUuQj1mdW5jdGlvbigpe3RoaXMuZyYmKFZzKHRoaXMpLHFzKHRoaXMuQiwxRTMsdGhpcykpfTsKdmFyIFZzPWZ1bmN0aW9uKGEpe3ZhciBiPWEuQS5sLGM9YS5BLkEsZD1hLkEuaixlPWEuQS5vO2lmKGEuaiE9Ynx8YS5vIT1jfHxhLmghPWR8fGEubCE9ZSl7dmFyIGY9e307Zi5jdD1iO2YuY3Y9YztmLmN0cz1kO2YuY3ZzPWU7Zi5zaWQ9YS5EO2Yuc2VxPWEuQysrO2YudGF0PURhdGUubm93KCktYS5GO2lmKGEuaj49MHx8YS5vPj0wfHxhLmg+PTB8fGEubD49MClmLnB0PWEuaixmLnB2PWEubyxmLnB0cz1hLmgsZi5wdnM9YS5sO1FtKCJ0ZV92IixmKTthLmo9YjthLm89YzthLmg9ZDthLmw9ZX19O3ZhciBXcz1mdW5jdGlvbigpe3RoaXMubz10aGlzLmo9dGhpcy5BPXRoaXMubD0wO3RoaXMuZz1bXTt0aGlzLmg9Xy52LkludGVyc2VjdGlvbk9ic2VydmVyIT1udWxsP25ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoMCxfLnkpKHRoaXMuQix0aGlzKSk6bnVsbH07V3MucHJvdG90eXBlLmF0dGFjaD1mdW5jdGlvbihhLGIpe3RoaXMuais9Yjt2YXIgYz10aGlzLmcubGVuZ3RoO3RoaXMuZy5wdXNoKGIpO2ZvcihiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBkPWFbYl07eW8oZCk/KGRbWHNdPWMsdGhpcy5sKz1FbyhkKS5sZW5ndGgsdGhpcy5oJiZ0aGlzLmgub2JzZXJ2ZShkKSk6dGhpcy5GZihkLm5vZGVUeXBlKX19O1dzLnByb3RvdHlwZS5kZXRhY2g9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07eW8oYyk/KGNbWHNdPXZvaWQgMCx0aGlzLmgmJnRoaXMuaC51bm9ic2VydmUoYykpOnRoaXMuRmYoYy5ub2RlVHlwZSl9fTsKV3MucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5vPXRoaXMuaj10aGlzLkE9dGhpcy5sPTA7dGhpcy5nPVtdfTtXcy5wcm90b3R5cGUuQj1mdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGM9YVtiXTtpZihjLmludGVyc2VjdGlvblJhdGlvPjAmJmMudGFyZ2V0W1hzXSE9bnVsbCl7dGhpcy5BKz1FbyhjLnRhcmdldCkubGVuZ3RoO3ZhciBkPWMudGFyZ2V0W1hzXTt0aGlzLm8rPXRoaXMuZ1tkXTt0aGlzLmdbZF09MDtkZWxldGUgYy50YXJnZXRbWHNdfX19O0RyLmF0dGFjaCgzNjU0NixXcy5wcm90b3R5cGUse0ZmOjF9KTt2YXIgWHM9Il9ndF8iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyKTt2YXIgWXM9e307WXMuYWRkPWtuO1lzLkRrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1obihhKTt0eXBlb2YgYj09PSJzdHJpbmciP18udmEoZCxiKTpBcnJheS5pc0FycmF5KGIpJiYoZD1sbihkLGIpKTt0eXBlb2YgYyE9PSJzdHJpbmcifHxfLnRhKGQsYyk/QXJyYXkuaXNBcnJheShjKSYmam4oZCxjKTpkLnB1c2goYyk7YS5jbGFzc05hbWU9ZC5qb2luKCIgIil9O1lzLmVuYWJsZT1vbjtZcy5nZXQ9aG47WXMuaGFzPW5uO1lzLnJlbW92ZT1tbjtZcy5zZXQ9ZnVuY3Rpb24oYSxiKXthLmNsYXNzTmFtZT1ifTtZcy5obT1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWhuKGEpLGU9ITEsZj0wO2Y8ZC5sZW5ndGg7ZisrKWRbZl09PWImJihkLnNwbGljZShmLS0sMSksZT0hMCk7ZSYmKGQucHVzaChjKSxhLmNsYXNzTmFtZT1kLmpvaW4oIiAiKSk7cmV0dXJuIGV9O1lzLnRvZ2dsZT1mdW5jdGlvbihhLGIpe3ZhciBjPSFubihhLGIpO29uKGEsYixjKTtyZXR1cm4gY307dmFyIFpzPWZ1bmN0aW9uKGEpe18uaGIuY2FsbCh0aGlzKTthPWF8fHt9O3RoaXMuZz1KbChhKTt0aGlzLmcuaGM9YS5oYyE9PXZvaWQgMD9hLmhjOjE7dGhpcy5nLnZlPSEhYS52ZTt0aGlzLmcuYmg9cGFyc2VJbnQoYS5iaCwxMCl8fDMwMDt0aGlzLmcudHJhY2tWaXNpYmlsaXR5PWEudHJhY2tWaXNpYmlsaXR5fHwhMTt0aGlzLmcuYXBpS2V5PWEuYXBpS2V5fHwiIjt0aGlzLkM9MDt0aGlzLmw9e307dGhpcy5CPW51bGw7dGhpcy5GPXRoaXMuRD0iIjt0aGlzLm89bmV3IF8uSGIodGhpcyk7dGhpcy5BPXRoaXMuaj10aGlzLmg9bnVsbDt0aGlzLmcudHJhY2tWaXNpYmlsaXR5JiZfLnYuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIhPW51bGwmJih0aGlzLmo9bmV3IFdzLHRoaXMuQT1uZXcgVXModGhpcy5qKSk7dGhpcy5oPW5ldyBKcyh7U2k6dGhpcy5nLlNpfSk7dGhpcy5oLndmPTMwMDt0aGlzLmguWmY9MUUzO3RoaXMuaC5yZSghMCk7dGhpcy5vLk4odGhpcy5oLCJzaG93IiwoMCxfLnkpKHRoaXMub2csCnRoaXMpKTt0aGlzLm8uTih0aGlzLmgsImhpZGUiLCgwLF8ueSkodGhpcy5uZyx0aGlzKSk7dGhpcy5oLmthKCk7YT1uZXcgS3M7Z24oImdvb2ctZ3QtdGh1bWJVcEJ1dHRvbiIpJiYoT3MoYSksUXMoYSksVHMoYSkpfTtfLkIoWnMsXy5oYik7dmFyICRzPWZ1bmN0aW9uKGEpe2EuQSYmYS5BLnN0b3AoKTtmb3IodmFyIGIgaW4gYS5sKXt2YXIgYz1hLGQ9Yy5sW2JdO2lmKGQpe2MuaiYmYy5qLmRldGFjaChkLkFhKTtmb3IodmFyIGU9MDtlPGQuQWEubGVuZ3RoOysrZSlkLkFhW2VdJiZjLmRldGFjaChkLkFhW2VdKTtkZWxldGUgYy5sW2JdfX1hLmomJmEuai5yZXNldCgpfTtfLm09WnMucHJvdG90eXBlO18ubS5hdHRhY2g9ZnVuY3Rpb24oYSxiKXtiJiYoYi5HZD1hLHRoaXMuaC5hdHRhY2goYikpfTtfLm0uZGV0YWNoPWZ1bmN0aW9uKGEpe2EmJnRoaXMuaC5kZXRhY2goYSl9OwpfLm0ub2c9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmgubGE7YT1hP2EuR2Q6dm9pZCAwO2lmKGEhPT12b2lkIDApe3ZhciBiPXRoaXMubFthXTthdCh0aGlzLHRoaXMuQiwhMSk7dGhpcy5CPWE7YXQodGhpcyxhKTt0aGlzLmguTmEoYi5UaSk7dGhpcy5oLm5hKGIuVmkpO3ZhciBjPWIuWjt0aGlzLmgud2E9YyYmXy5BYyhjKTt0aGlzLmguS2EoYi50ZXh0KX1hPW5ldyBDdXN0b21FdmVudCgiZ29vZy1ndC1wb3B1cFNob3duIix7ZGV0YWlsOntHZDphLFhpOnRoaXMuaH19KTt3aW5kb3cuZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KGEpfTtfLm0ubmc9ZnVuY3Rpb24oKXthdCh0aGlzLHRoaXMuQiwhMSl9O18ubS5NPWZ1bmN0aW9uKCl7JHModGhpcyk7dGhpcy5oJiYodGhpcy5oLmRpc3Bvc2UoKSx0aGlzLmg9bnVsbCk7dGhpcy5vJiYodGhpcy5vLmRpc3Bvc2UoKSx0aGlzLm89bnVsbCk7Xy5oYi5wcm90b3R5cGUuTS5jYWxsKHRoaXMpfTsKdmFyIGF0PWZ1bmN0aW9uKGEsYixjKXtpZihhPWEubFtiXSlmb3IoYz1jfHx0eXBlb2YgYz09InVuZGVmaW5lZCIsYj0wO2I8YS5BYS5sZW5ndGg7KytiKWlmKGEuQWFbYl0pWXNbYz8iYWRkIjoicmVtb3ZlIl0oYS5BYVtiXSwiVklwZ0pkLXlBV05FYi1WSXBnSmQtZm1jbVMtc241NFEiKX07dmFyIGJ0PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKWlmKGFbYl0mJmFbYl0ubm9kZSlyZXR1cm4gYVtiXS5ub2RlO3JldHVybiBudWxsfSxmdD1mdW5jdGlvbihhKXt2YXIgYj1idChhKTtpZighYilyZXR1cm4gbnVsbDt2YXIgYz1bXSxkPVtdLGU9W107Yj1uZXcgZHMoYiwhMCk7dmFyIGY9YVthLmxlbmd0aC0xXS5ub2RlLGc9MCxoPSExO2Rve2IubmV4dCgpO3ZhciBrPWIubm9kZSgpO2lmKCFrKWJyZWFrO3ZhciBsPWIuZy5nLG49Yi5kZXB0aCgpO2ZvcihsPT0xJiYtLW47ZzxhLmxlbmd0aCYmIWFbZ10ubm9kZTspKytnO2s9PWFbZ10ubm9kZXx8IWgmJmw9PTEmJihrIT1udWxsJiZrLnByZXZpb3VzU2libGluZz09bnVsbD8wOiFjdChkdChrKSkpPyhsPWV0KGspLGQucHVzaCh7bm9kZTpsLEthOmZ1bmN0aW9uKCl7fX0pLGVbZC5sZW5ndGgtMV09bixrLnBhcmVudE5vZGUmJmsucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCxrKSxrPT1hW2ddLm5vZGUmJgooY1tnKytdPWQubGVuZ3RoLTEsaD0hMCkpOmg9ITF9d2hpbGUoayE9Zik7cmV0dXJue3plOmUsR2k6YyxkaTpkfX0sY3Q9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPW51bGwmJlhyW2EudGFnTmFtZV19LGR0PWZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIG51bGw7Zm9yKGE9YS5wcmV2aW91c1NpYmxpbmc7YSE9bnVsbCYmYSE9bnVsbCYmYS5ub2RlVHlwZT09MyYmXy5BYyhFbyhhKSk9PSIiOylhPWEucHJldmlvdXNTaWJsaW5nO3JldHVybiBhfSxqdD1mdW5jdGlvbihhLGIsYyxkLGUsZil7Xy5oYi5jYWxsKHRoaXMpO3RoaXMuZz1bXTtmb3IodmFyIGc9MDtnPGEubGVuZ3RoOysrZyl0aGlzLmcucHVzaCgibm9kZVR5cGUiaW4gYVtnXT9ndChhW2ddKTphW2ddKSxodChhW2ddLm5vZGUpO3RoaXMubD1iO3RoaXMuRD1kfHwwO3RoaXMuUj1lfHwwO3RoaXMuQz1jO3RoaXMuQj1mfHxudWxsO3RoaXMuSz10aGlzLkc9dGhpcy5MPSExO3RoaXMubz1bXTt0aGlzLkE9W107dGhpcy5oPVtdOwp0aGlzLk89W107bmV3IF8uSGIodGhpcyk7dGhpcy5qPXRoaXMuST0hMX0sZ3Q7Xy5CKGp0LF8uaGIpOwp2YXIgbXQ9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuITE7aWYoYS5ub2RlVHlwZSE9M3x8IV8uU2MpcmV0dXJuIGt0IGluIGEmJiEhYVtrdF07aWYoIWEucGFyZW50Tm9kZSlyZXR1cm4hMDtpZighKGx0IGluIGEucGFyZW50Tm9kZSkpcmV0dXJuITE7dmFyIGI9YS5wYXJlbnROb2RlW2x0XTtpZighYnx8IWJbYS5ub2RlVmFsdWVdKXJldHVybiExO2I9YlthLm5vZGVWYWx1ZV07Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2MpaWYoYltjXT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sbnQ9ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm4iIjtpZihhLnRhZ05hbWU9PSJUSVRMRSIpcmV0dXJuIFN0cmluZyhkb2N1bWVudC50aXRsZSk7YS5ub2RlVHlwZT09Mz9iPSJub2RlVmFsdWUiOmJ8fChiPSJ2YWx1ZSIpO3JldHVybiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoYik/U3RyaW5nKGEuZ2V0QXR0cmlidXRlKGIpKTp0eXBlb2YgYVtiXT09PSJzdHJpbmciP1N0cmluZyhhW2JdKToKIiJ9O2p0LnByb3RvdHlwZS5tYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmx9Owp2YXIgb3Q9ZnVuY3Rpb24oYSxiLGMpe2I9e1BmOmIsaGU6YyxVOltdfTthLmgucHVzaChiKTtyZXR1cm4gYn0scXQ9ZnVuY3Rpb24oYSl7aWYoIWEuaiYmYS5MJiYhYS5HJiYhYS5LKXthLkc9ITA7dmFyIGI7aWYoYj1wdChhLmcpKXtiPWEuZzt2YXIgYz1hLmg7aWYoYi5sZW5ndGg9PTEmJmJbMF0mJmJbMF0ueGUpe2Zvcih2YXIgZD1bXSxlPTA7ZTxjLmxlbmd0aDsrK2UpZm9yKHZhciBmPTA7ZjxjW2VdLlUubGVuZ3RoOysrZilkLnB1c2goY1tlXS5VW2ZdLlopO2JbMF0uS2EoZC5qb2luKCIgIiksYlswXS5ub2RlKTtiPSEwfWVsc2UgYj0hMTtiPSFifWlmKGImJihiPWZ0KGEuZykpKXthLkE9Yi5HaTthLm89Yi5kaTtkPWEuZztlPWEuQTtmPWEubzt2YXIgZz1iLnplO2M9W107Zm9yKHZhciBoPTA7aDxkLmxlbmd0aDsrK2gpaWYoY1toXT1bXSxkW2hdLm5vZGUmJmVbaF0hPT12b2lkIDApZm9yKHZhciBrPTA7azxmLmxlbmd0aDsrK2spaWYoIShnW2tdPmdbZVtoXV0pKXtpZihnW2tdPT0KZ1tlW2hdXSl7aWYoZltrXS5ub2RlLnBhcmVudE5vZGUhPWZbZVtoXV0ubm9kZS5wYXJlbnROb2RlKWNvbnRpbnVlfWVsc2V7Zm9yKHZhciBsPWdbZVtoXV0tZ1trXSxuPWZbZVtoXV0ubm9kZS5wYXJlbnROb2RlO2wtLSYmbiYmbiE9ZltrXS5ub2RlLnBhcmVudE5vZGU7KW49bi5wYXJlbnROb2RlO2lmKG4hPWZba10ubm9kZS5wYXJlbnROb2RlKWNvbnRpbnVlfWNbaF0ucHVzaChrKX1kPWEuZztlPWEuaDtmPS0xO2ZvcihnPWUubGVuZ3RoLTE7Zz49MDstLWcpZm9yKGg9ZVtnXSxrPWguVS5sZW5ndGgtMTtrPj0wOy0taylpZihsPWguVVtrXSwhKGwuWDwwKSYmZFtsLlhdJiZkW2wuWF0ubm9kZSlpZihmPDApbC5YYz1pcihjW2wuWF0pLGY9Y1tsLlhdW2NbbC5YXS5sZW5ndGgtMV07ZWxzZSBmb3Iobj1jW2wuWF0ubGVuZ3RoLTE7bj49MDstLW4paWYoY1tsLlhdW25dPD1mKXtsLlhjPWlyKGNbbC5YXS5zbGljZSgwLG4rMSkpO2Y9Y1tsLlhdW25dO2JyZWFrfWZvcihjPWU9MDtjPGEuaC5sZW5ndGg7KytjKXtkPQphLmhbY107Zj1hLmc7Zz1kO2g9Yi56ZTtrPWEuQTtsPSIiO2ZvcihuPTA7bjxnLlUubGVuZ3RoOysrbil7dmFyIHE9Zy5VW25dO2wrPXEuWjtpZihxLlg8MCl7dmFyIHA9LTEscj0tMSx0PWtbZy5VW24tMV0uWF07dCE9PXZvaWQgMCYmKHA9aFt0XSk7bjxnLlUubGVuZ3RoLTEmJih0PWtbZy5VW24rMV0uWF0sdCE9PXZvaWQgMCYmKHI9aFt0XSkpO2lmKHA+PTB8fHI+PTApYTppZih0PShwPDB8fHI8cCkmJm48Zy5VLmxlbmd0aC0xLHA9ZixyPXEscT1nLlVbdD9uKzE6bi0xXSwhKHEuWD49cC5sZW5ndGh8fHBbcS5YXS5ub2RlPT1udWxsKSl7cD1yLlo7ci5aPSIiO2lmKC9eICskLy50ZXN0KHApJiYocj10P3EuWi5jaGFyQ29kZUF0KDApOnEuWi5jaGFyQ29kZUF0KHEuWi5sZW5ndGgtMSksMzU4NDw9ciYmcjw9MzcxMXx8MTIyODg8PXImJnI8PTEyMzUxfHwxMjM1Mjw9ciYmcjw9MTI1NDN8fDEyNzg0PD1yJiZyPD0xMjc5OXx8MTk5Njg8PXImJnI8PTQwOTU5fHw2NTI4MDw9ciYmcjw9CjY1NTE5KSlicmVhayBhO3EuWj10P3ArcS5aOnEuWitwfX19Zj1sO2c9YS5nO2g9ZDtrPWEubztsPWIuemU7bj1hLkE7cT1bXTtmb3IocD0wO3A8aC5VLmxlbmd0aCYmIShlPj1rLmxlbmd0aCk7KytwKWlmKHI9aC5VW3BdLHIuWGMmJiEoci5YPDApJiZnW3IuWF0ubm9kZSYmci5aKWlmKGU9PW5bci5YXXx8ZSBpbiByLlhjJiYoIShlKzEgaW4gci5YYyl8fGUrMSE9bltyLlhdKSl7aWYoa1tlXSYma1tlXS5ub2RlKXt0PWV0KGtbZV0ubm9kZSk7cS5wdXNoKHQpO2Zvcih2YXIgQT1rW2VdLm5vZGUsRD1sW25bci5YXV0tbFtlXSxFPXQsYmE9Z1tyLlhdLm5vZGUucGFyZW50Tm9kZSxaPUU7YmEmJkQtLTspWj1iYS5jbG9uZU5vZGUoITEpLFouYXBwZW5kQ2hpbGQoRSksYmE9YmEucGFyZW50Tm9kZSxFPVo7QS5hcHBlbmRDaGlsZChaKTtBPWdbci5YXS5ub2RlO2dbci5YXS5yZD9nW3IuWF0uemZ8fHQuYXBwZW5kQ2hpbGQoQSk6KEE9Z1tyLlhdLm5vZGUuY2xvbmVOb2RlKCExKSxBLmlkJiYKKEEuaWQ9IiIpLHQuYXBwZW5kQ2hpbGQoQSkpO2dbci5YXS5LYShyLlosQSl9fWVsc2UrK2UsLS1wO2c9cTtuPWEuZztxPWQ7aD1hLkM7aWYocS5QZiloPXEuUGY7ZWxzZXtsPW4ubGVuZ3RoO2s9LTE7Zm9yKHA9MDtwPHEuVS5sZW5ndGg7KytwKXI9cS5VW3BdLlgscj49MCYmbltyXSYmbltyXS5ub2RlJiYoaz1NYXRoLm1heChrLHIpLGw9TWF0aC5taW4obCxyKSk7Zm9yKG49IiI7bDw9azsrK2wpaFtsXSYmKG4rPWhbbF0pO2g9bn1sPWE7bj1nO3E9aDtpZihsLkIpe2lmKGwuQi5nLmhjIT0zKXtnPWwuTztoPWcucHVzaDtrPWwuQjtkPWQuaGU7ZD1rLmxbKytrLkNdPXtpZDprLkMudG9TdHJpbmcoKSxSazpsLHRleHQ6cSxmbTpkfHxxLFo6ZixUaTprLkQsVmk6ay5GLEFhOm59O2ZvcihmPTA7ZjxuLmxlbmd0aDsrK2YpbltmXSYmay5hdHRhY2goZC5pZCxuW2ZdKTtrLmomJmsuai5hdHRhY2gobixxLmxlbmd0aCk7ay5BJiZrLkEuc3RhcnQoKTtoLmNhbGwoZyxkLmlkKX19ZWxzZSBmb3IoZD0KMDtkPG4ubGVuZ3RoOysrZCluW2RdLnRpdGxlPXF9Yj1hLmc7Zm9yKGM9MDtjPGIubGVuZ3RoOysrYyliW2NdLm5vZGUmJiFiW2NdLnJkJiZfLkFkKGJbY10ubm9kZSk7Yj1hLmc7Yz1hLm87YT1hLkE7Zm9yKGU9ZD0wO2U8Yy5sZW5ndGg7KytlKWlmKGY9Y1tlXS5ub2RlKXtmb3IoO2Q8Yi5sZW5ndGgmJmU+YVtkXTspZCsrOyhkPj1iLmxlbmd0aHx8ZSE9YVtkXSkmJiFmLmZpcnN0Q2hpbGQmJihfLkFkKGYpLGNbZV0ubm9kZT1udWxsKX19fX07Cmp0LnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKCl7aWYodGhpcy5HKWlmKHRoaXMuRz0hMSx0aGlzLkImJiRzKHRoaXMuQiksdGhpcy5PPVtdLHB0KHRoaXMubyksdGhpcy5nLmxlbmd0aD09MSYmdGhpcy5nWzBdLnhlKXRoaXMuZ1swXS5LYSh0aGlzLkNbMF0sdGhpcy5nWzBdLm5vZGUpO2Vsc2V7Zm9yKHZhciBhPTAsYj0wO2I8dGhpcy5vLmxlbmd0aDsrK2Ipe3ZhciBjPXRoaXMub1tiXS5ub2RlO2lmKGMpe2Zvcig7YTx0aGlzLmcubGVuZ3RoJiZiPnRoaXMuQVthXTspe3ZhciBkPWErKzt0aGlzLmdbZF0ubm9kZSYmKHJ0KHRoaXMuZ1tkXS5ub2RlKSx0aGlzLmdbZF0ubm9kZT1udWxsKX1pZihhPHRoaXMuZy5sZW5ndGgmJmI9PXRoaXMuQVthXSYmdGhpcy5nW2FdLm5vZGUpe3RoaXMuZ1thXS56Znx8KF8uemQoYyksYy5hcHBlbmRDaGlsZCh0aGlzLmdbYV0ubm9kZSkpO3RoaXMuZ1thXS5LYSh0aGlzLkNbYV0sdGhpcy5nW2FdLm5vZGUpO2ErKzt2YXIgZT1jLnBhcmVudE5vZGU7CmlmKGUmJmUubm9kZVR5cGUhPTExKWlmKGMucmVtb3ZlTm9kZSljLnJlbW92ZU5vZGUoITEpO2Vsc2V7Zm9yKDtkPWMuZmlyc3RDaGlsZDspZS5pbnNlcnRCZWZvcmUoZCxjKTtfLkFkKGMpfX1lbHNlIF8uQWQoYyl9fXRoaXMubz1bXX19O2p0LnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy5oYi5wcm90b3R5cGUuTS5jYWxsKHRoaXMpO3RoaXMucmVzdG9yZSgpO2Zvcih2YXIgYT0wO2E8dGhpcy5nLmxlbmd0aDsrK2EpdGhpcy5nW2FdLm5vZGUmJnJ0KHRoaXMuZ1thXS5ub2RlKTt0aGlzLmc9bnVsbH07CnZhciBodD1mdW5jdGlvbihhKXtpZihhKWlmKGEubm9kZVR5cGU9PTMmJl8uU2Mpe2x0IGluIGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlW2x0XXx8KGEucGFyZW50Tm9kZVtsdF09e30pO3ZhciBiPWEucGFyZW50Tm9kZVtsdF07YlthLm5vZGVWYWx1ZV18fChiW2Eubm9kZVZhbHVlXT1bXSk7Yj1iW2Eubm9kZVZhbHVlXTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoOysrYylpZihiW2NdPT1hKXJldHVybjtiLnB1c2goYSl9ZWxzZSBhW2t0XT0xfSxydD1mdW5jdGlvbihhKXtpZighYXx8YS5ub2RlVHlwZT09MyYmXy5TYyl7dmFyIGI9YS5wYXJlbnROb2RlO2lmKGImJmx0IGluIGIpe3ZhciBjPWJbbHRdO2lmKGMmJmEmJmNbYS5ub2RlVmFsdWVdKXt2YXIgZD1jW2Eubm9kZVZhbHVlXTtpZihkKWZvcih2YXIgZT0wO2U8ZC5sZW5ndGg7KytlKWlmKGRbZV09PWEpe2Quc3BsaWNlKGUsMSk7YnJlYWt9ZC5sZW5ndGg9PTAmJmRlbGV0ZSBjW2Eubm9kZVZhbHVlXX1pZihjJiZ3cihjKSl0cnl7ZGVsZXRlIGJbbHRdfWNhdGNoKGYpe2JbbHRdPQoiIn19fWVsc2UgaWYoa3QgaW4gYSl0cnl7ZGVsZXRlIGFba3RdfWNhdGNoKGYpe2Fba3RdPSIifX0scHQ9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2IpdHJ5e2FbYl0ubm9kZSYmIWFbYl0ubm9kZS5wYXJlbnROb2RlJiYoYVtiXS5ub2RlPW51bGwpfWNhdGNoKGMpe2FbYl0ubm9kZT1udWxsfWZvcihiPWEubGVuZ3RoLTE7Yj49MCYmIWFbYl0ubm9kZTstLWIpO2EubGVuZ3RoPWIrMTtyZXR1cm4gYS5sZW5ndGh9LGV0PWZ1bmN0aW9uKGEpe2E9YS5vd25lckRvY3VtZW50P2Eub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb250Iik6Xy53ZChkb2N1bWVudCwiZm9udCIpO2h0KGEpO2Euc3R5bGUudmVydGljYWxBbGlnbj0iaW5oZXJpdCI7Xy5vaShfLlppKHBxLDIpKSYmKGEuZGlyPSJhdXRvIik7cmV0dXJuIGF9LHN0PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1uZXcgU2V0LGM9MDtjPGEuZy5sZW5ndGg7YysrKXt2YXIgZD1hLmdbY10ubm9kZTtkIT1udWxsJiYKYi5hZGQoZCl9cmV0dXJuIGJ9LHR0PWZ1bmN0aW9uKCl7dGhpcy5oPXt9O3RoaXMuZz17fX07dHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmhbYV0hPW51bGx8fHRoaXMuZ1thXSE9bnVsbHx8YiYmKGEgaW4gdGhpcy5ofHxhIGluIHRoaXMuZyl9O3R0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhLGIpe3RoaXMuZ1thXT1ifTt0dC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEpe2RlbGV0ZSB0aGlzLmdbYV07ZGVsZXRlIHRoaXMuaFthXX07dHQucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5nW2FdO2J8fChiPXRoaXMuaFthXSx0aGlzLmdbYV09Yik7cmV0dXJuIGJ9O3ZhciBrdD0iX2d0XyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIpLGx0PSJfZ3RuXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIpOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGMpe2RvY3VtZW50LnRpdGxlPWN9dmFyIGI9e307Z3Q9ZnVuY3Rpb24oYyxkKXtpZihjLnRhZ05hbWU9PSJUSVRMRSIpcmV0dXJue25vZGU6YyxLYTphLHJkOiEwLHpmOiEwLHhlOiEwfTtpZihjLm5vZGVUeXBlPT0zKXJldHVybntub2RlOmMsS2E6ZnVuY3Rpb24oZSxmKXtfLkNkKGYsZSl9fTtkfHwoZD0idmFsdWUiKTtiW2RdfHwoYltkXT1mdW5jdGlvbihlLGYpe2Yuc2V0QXR0cmlidXRlJiZmLnNldEF0dHJpYnV0ZShkLGUpO3R5cGVvZiBlPT09InN0cmluZyImJihmW2RdPWUpfSk7Yz17bm9kZTpjLEthOmJbZF0scmQ6ITB9O2QhPSJ2YWx1ZSImJihjLnhlPSEwKTtyZXR1cm4gY319KSgpOwp2YXIgdXQ9ZnVuY3Rpb24oYSxiLGMsZCl7ZD1kLmZpcnN0Q2hpbGQmJmQuZmlyc3RDaGlsZC5ub2RlVHlwZT09Mz9kLmZpcnN0Q2hpbGQubm9kZVZhbHVlOkVvKGQpO2Q9e1g6YyxaOnBvKGQpfTthLnB1c2goZCk7YltjXT9iW2NdLmVuZD1kOmJbY109e3N0YXJ0OmQsZW5kOmR9O3JldHVybiBkfSx2dD1mdW5jdGlvbihhKXtmb3IodmFyIGIsYz1hLmZpcnN0Q2hpbGQ7YztjPWIpYj1jLm5leHRTaWJsaW5nLGMubm9kZVR5cGUhPTMmJihjPT1hLmZpcnN0Q2hpbGQ/YS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGMsYSk6eG8oYyxhKSx2dChjKSl9O3ZhciB3dD1mdW5jdGlvbigpe3RoaXMuZz1bXX07d3QucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhKXt0aGlzLmcucHVzaChhKX07dmFyIHh0PWZ1bmN0aW9uKCl7dGhpcy5nPVtdfTtfLkIoeHQsd3QpO3h0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7aWYoYSlmb3IoO2EoKTspO307eHQuZz1mdW5jdGlvbigpe3JldHVybiBXcSh4dCl9O3ZhciB6dD1mdW5jdGlvbihhKXt0aGlzLmc9W107dGhpcy5oPS41O3l0KHRoaXMsYSk7dGhpcy5sPTA7dGhpcy5qPSEwO3RoaXMubz0oMCxfLnkpKHRoaXMuQSx0aGlzKX07Xy5CKHp0LHd0KTt2YXIgeXQ9ZnVuY3Rpb24oYSxiKXtiPjE/YS5oPTE6YjwuMDAxP2EuaD0uMDAxOmImJihhLmg9Yil9O3p0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSl7d3QucHJvdG90eXBlLmFkZC5jYWxsKHRoaXMsYSk7dGhpcy5qJiZBdCh0aGlzKX07dmFyIEF0PWZ1bmN0aW9uKGEpe2Euaj0hMTt3aW5kb3cuc2V0VGltZW91dChhLm8sTWF0aC5taW4oYS5sLDVFMykpfTsKenQucHJvdG90eXBlLkE9ZnVuY3Rpb24oKXt2YXIgYT0obmV3IERhdGUpLmdldFRpbWUoKTtkb3t0aGlzLmcubGVuZ3RoJiYodGhpcy5nWzBdJiZ0aGlzLmdbMF0oKXx8dGhpcy5nLnNoaWZ0KCkpO3ZhciBiPSEhdGhpcy5nLmxlbmd0aDt2YXIgYz05NSp0aGlzLmgrNTt2YXIgZD0obmV3IERhdGUpLmdldFRpbWUoKS1hfXdoaWxlKGImJmQ8Yyk7dGhpcy5sPU1hdGguY2VpbChkKigxL3RoaXMuaC0xKSkrMTtiP0F0KHRoaXMpOnRoaXMuaj0hMH07dmFyIEJ0PWZ1bmN0aW9uKGEsYil7dGhpcy5EPWF8fG51bGw7dGhpcy5JPWJ8fHh0LmcoKTt0aGlzLkI9dGhpcy5BPXRoaXMuRz1udWxsO3RoaXMubD10aGlzLmo9ITE7dGhpcy5vPW51bGw7dGhpcy5nPVtdO3RoaXMuaD0wfSxDdD1mdW5jdGlvbihhLGIpe2Euanx8KGEuRz1iKX0sRHQ9ZnVuY3Rpb24oYSxiLGMpe2EuQT1jPygwLF8ueSkoYixjKTpifSxFdD1mdW5jdGlvbihhLGIsYyl7YS5CPWM/KDAsXy55KShiLGMpOmJ9LEZ0PWZ1bmN0aW9uKGEsYil7YS5qfHwoYS5qPSEwLGEuRj1iLGEuaCsrLGEubz1hLkcsYS5DKCkpfTtCdC5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbigpe3RoaXMuaCsrO3RoaXMuaj0hMTt0aGlzLmc9W119Owp2YXIgR3Q9ZnVuY3Rpb24oYSl7aWYoIWEuailyZXR1cm4gbnVsbDtmb3IodmFyIGI9ITEsYz0wO2M8YS5nLmxlbmd0aDsrK2MpaWYoYS5nW2NdLnRhcmdldD09PWEpe2EuZ1tjXS5yZWFkeT0hMTthLmdbY10uaGc9YS5oKzE7Yj0hMDticmVha31ifHxhLmcucHVzaCh7dGFyZ2V0OmEscmVhZHk6ITEsaGc6YS5oKzF9KTtyZXR1cm4oMCxfLnkpKGEuQyxhLGEsYS5oKzEpfSxIdD1mdW5jdGlvbihhKXtpZighYS5qKXJldHVybiEwO2Zvcih2YXIgYj0wO2I8YS5nLmxlbmd0aDsrK2IpaWYoYS5nW2JdLnRhcmdldD09PWEmJmEuZ1tiXS5oZz09YS5oKXJldHVybiBhLmdbYl0ucmVhZHk7cmV0dXJuITB9OwpCdC5wcm90b3R5cGUuQz1mdW5jdGlvbihhLGIpe2lmKHRoaXMuail7aWYoYSlmb3IodmFyIGM9MDtjPHRoaXMuZy5sZW5ndGg7KytjKWlmKHRoaXMuZ1tjXS50YXJnZXQ9PT1hKXt0aGlzLmdbY10ucmVhZHk9ITA7YnJlYWt9dGhpcy5sfHx0aGlzLkkuYWRkKCgwLF8ueSkodGhpcy5XLHRoaXMsYnx8dGhpcy5oKSl9fTsKQnQucHJvdG90eXBlLlc9ZnVuY3Rpb24oYSl7aWYodGhpcy5oIT1hKXJldHVybiExO2E9dGhpcy5vO2lmKGE9PUl0KXJldHVybiB0aGlzLnN0b3AoKSx0aGlzLkEmJnRoaXMuQS5jYWxsKHRoaXMuRCx0aGlzLHRoaXMuRiksITE7dGhpcy5sPSEwO3RyeXt2YXIgYj1hLmNhbGwodGhpcy5ELHRoaXMsdGhpcy5GKTtpZighYil0aHJvdyBFcnJvcigpO31jYXRjaChjKXt0aGlzLnN0b3AoKTthPWM7aWYodGhpcy5CKXRoaXMuQi5jYWxsKHRoaXMuRCxhLHRoaXMsdGhpcy5GKTtlbHNlIHRocm93IGE7cmV0dXJuITF9ZmluYWxseXt0aGlzLmw9ITF9YiE9SnQmJih0aGlzLm89Yix0aGlzLmgrKyx0aGlzLkMoKSk7cmV0dXJuITF9O3ZhciBKdD1mdW5jdGlvbigpe30sSXQ9ZnVuY3Rpb24oKXt9O3ZhciBLdD1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGEuY2xhc3NOYW1lPT0ic3RyaW5nIj9hLmNsYXNzTmFtZTphLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIifSxMdD1mdW5jdGlvbihhLGIpe3R5cGVvZiBhLmNsYXNzTmFtZT09InN0cmluZyI/YS5jbGFzc05hbWU9YjphLnNldEF0dHJpYnV0ZSYmYS5zZXRBdHRyaWJ1dGUoImNsYXNzIixiKX0sTXQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jbGFzc0xpc3Q/YS5jbGFzc0xpc3QuY29udGFpbnMoYik6Xy50YShhLmNsYXNzTGlzdD9hLmNsYXNzTGlzdDpLdChhKS5tYXRjaCgvXFMrL2cpfHxbXSxiKX0sTnQ9ZnVuY3Rpb24oYSxiKXtpZihhLmNsYXNzTGlzdClhLmNsYXNzTGlzdC5hZGQoYik7ZWxzZSBpZighTXQoYSxiKSl7dmFyIGM9S3QoYSk7THQoYSxjKyhjLmxlbmd0aD4wPyIgIitiOmIpKX19LE90PWZ1bmN0aW9uKGEsYil7YS5jbGFzc0xpc3Q/YS5jbGFzc0xpc3QucmVtb3ZlKGIpOk10KGEsYikmJgpMdChhLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChhLmNsYXNzTGlzdD9hLmNsYXNzTGlzdDpLdChhKS5tYXRjaCgvXFMrL2cpfHxbXSxmdW5jdGlvbihjKXtyZXR1cm4gYyE9Yn0pLmpvaW4oIiAiKSl9O3ZhciBRdD1mdW5jdGlvbihhLGIsYyxkLGUpe2I9Ynx8e307dGhpcy5XPWV8fFtdO3RoaXMuQT1bXTt0aGlzLkY9W107UHQodGhpcyxhfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYi5WZj09PXZvaWQgMHx8ISFiLlZmKTt0aGlzLkM9Y3x8anQ7dGhpcy5EPWIubGk7dGhpcy5qPXRoaXMuZz10aGlzLm89dGhpcy5kYz1udWxsO3RoaXMuQj0hIWIuYmo7dGhpcy5MPSEhYi5aaTt0aGlzLks9dGhpcy5CPzI3OjEzO3RoaXMuST0hMDt0aGlzLkc9W107dGhpcy5sPW5ldyBCdCh0aGlzLGQpfSxSdD1mdW5jdGlvbihhLGIsYyxkKXthLmwuanx8KGI9e2RnOmIsYWc6YyxBYTpbXSxRZjpbXSxyYjpbXSx0ZXh0TGVuZ3RoOjAsc2l6ZTowLGNvbnRpbnVvdXM6ITB9LGEuZGM9bnVsbCxDdChhLmwsYS5oKSxEdChhLmwsZCksRXQoYS5sLCgwLF8ueSkoZnVuY3Rpb24oZSl7dGhpcy51aShlKTtkKCl9LGEpKSxGdChhLmwsYikpfSxTdD1mdW5jdGlvbihhLGIpe3JldHVybiBhLkFhLmxlbmd0aD4wPwpuZXcgYihhLkFhLGEucmIuam9pbigiIiksYS5RZixhLnRleHRMZW5ndGgsYS5zaXplKTpudWxsfSxUdD1mdW5jdGlvbihhLGIpe2lmKCFhLmopcmV0dXJuIGEuZGM9U3QoYixhLkMpLCEwO2lmKCFiLmNvbnRpbnVvdXMmJmIuQWEubGVuZ3RoPjApcmV0dXJuIGEuZGM9U3QoYixhLkMpLCEwO2IuY29udGludW91cz1hLmouS2Y7YTp7dmFyIGM9YS5qO3ZhciBkPWEuSztpZihiLnNpemU+Yi5hZ3x8Yi50ZXh0TGVuZ3RoPmIuZGcpYz0hMTtlbHNle3ZhciBlPWMuc2l6ZSxmPWMudGV4dC5sZW5ndGg7aWYoYi5BYS5sZW5ndGghPTAmJihlKz1iLkFhLmxlbmd0aD09MT9iLnNpemUrZCtkOmIuc2l6ZStkLGYrPWIudGV4dExlbmd0aCxlPmIuYWd8fGY+Yi5kZykpe2M9ITE7YnJlYWsgYX1iLnNpemU9ZTtiLnRleHRMZW5ndGg9ZjtiLkFhLnB1c2goYy5ub2RlKTtiLlFmLnB1c2goYy50ZXh0KTtkPWIuQWEubGVuZ3RoLTE7ZD09MD9iLnJiLnB1c2goYy5MZCk6KGQ9PTEmJihiLnJiWzBdPSI8YSBpPTA+IisKYi5yYlswXSsiPC9hPiIpLGIucmIucHVzaCgiPGEgaT0iK2QrIj4iKSxiLnJiLnB1c2goYy5MZCksYi5yYi5wdXNoKCI8L2E+IikpO2M9ITB9fWlmKGMpcmV0dXJuIGEuaj1udWxsLCExO2EuZGM9U3QoYixhLkMpO3JldHVybiEwfSxVdD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9bnQoYixjKTtkJiZfLkFjKGpvKGQpKSYmYS5HLnB1c2goe25vZGU6YixZZzpjLHRleHQ6ZH0pfTsKUXQucHJvdG90eXBlLmg9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO2lmKHRoaXMuaiYmVHQodGhpcyxiKSlyZXR1cm4gSXQ7aWYoIXRoaXMuZyl7dGhpcy5JPSEhdGhpcy5BLmxlbmd0aDtpZighdGhpcy5BLmxlbmd0aCYmKGE9dGhpcy5HLnNoaWZ0KCkpKXJldHVybiB0aGlzLmo9e0tmOiExLG5vZGU6Z3QoYS5ub2RlLGEuWWcpLHRleHQ6YS50ZXh0LExkOmxvKGEudGV4dCksc2l6ZTp0aGlzLkI/Xy5HYihhLnRleHQpLmxlbmd0aDphLnRleHQubGVuZ3RofSxiLmNvbnRpbnVvdXM9ITEsVHQodGhpcyxiKSxJdDthPXRoaXMuQS5zaGlmdCgpfHx0aGlzLkYuc2hpZnQoKTtpZighYSlyZXR1cm4gdGhpcy5qPW51bGwsVHQodGhpcyxiKSxJdDt0aGlzLm89W2EuWWldO3RoaXMuZz1uZXcgZHMoYS5yb290KX10aGlzLmcubmV4dCgpO2lmKHRoaXMuZy5kb25lKXJldHVybiB0aGlzLmc9bnVsbCxiLmNvbnRpbnVvdXM9ITEsdGhpcy5oO2E9dGhpcy5nLm5vZGUoKTt2YXIgZD10aGlzLmcuZy5nOwppZihkPT0tMSlyZXR1cm4gVnQodGhpcyksV3QoYSl8fChiLmNvbnRpbnVvdXM9ITEpLHRoaXMuaDtYdCh0aGlzLGEpO2Q9ZD09MTt2YXIgZT0hIWEmJihhLm5vZGVUeXBlPT0zJiZ0eXBlb2YgYS5ub2RlVmFsdWU9PT0ic3RyaW5nInx8YS50YWdOYW1lPT0iVElUTEUiJiZ0eXBlb2YgYS52YWx1ZT09PSJzdHJpbmcifHxhLnRhZ05hbWU9PSJURVhUQVJFQSImJk10KGEsInRyYW5zbGF0ZSIpfHxhLnRhZ05hbWU9PSJJTlBVVCImJihZclthLnR5cGVdfHxNdChhLCJ0cmFuc2xhdGUiKSkpO2lmKChlfHxkKSYmdGhpcy5JJiYhWXQoYSkpcmV0dXJuIFB0KHRoaXMsYSxadCh0aGlzKSwhMCksYnModGhpcy5nLmcpLFZ0KHRoaXMpLHRoaXMuaDtpZihkJiZadCh0aGlzKSYmKHRoaXMuTCYmVXQodGhpcyxhLCJ0aXRsZSIpLFV0KHRoaXMsYSwiYWx0IiksVXQodGhpcyxhLCJwbGFjZWhvbGRlciIpLFV0KHRoaXMsYSwiYXJpYS1sYWJlbCIpLFV0KHRoaXMsYSwiYXJpYS1wbGFjZWhvbGRlciIpLFV0KHRoaXMsCmEsImFyaWEtcm9sZWRlc2NyaXB0aW9uIiksVXQodGhpcyxhLCJhcmlhLXZhbHVldGV4dCIpLGVzKHRoaXMuZykpKWZvcih2YXIgZj1hLmZpcnN0Q2hpbGQ7Zjspe2lmKGYubm9kZVR5cGU9PTMpe3ZhciBnPWYubm9kZVZhbHVlLnNwbGl0KCJcbiIpO2lmKGcubGVuZ3RoPjJ8fGcubGVuZ3RoPT0yJiZfLkFjKGdbMF0pIT0iIiYmXy5BYyhnWzFdKSE9IiIpe2Yubm9kZVZhbHVlPWdbMF07Zm9yKHZhciBoPTE7aDxnLmxlbmd0aDsrK2gpe3ZhciBrPV8uc2QoYSkuY3JlYXRlRWxlbWVudCgiZm9udCIpO3RoaXMuVy5wdXNoKGspO3hvKGssZik7Zj1rO3hvKF8uc2QoYSkuY3JlYXRlVGV4dE5vZGUoIlxuIitnW2hdKSxmKTtmPWYubmV4dFNpYmxpbmd9fX1mPWYubmV4dFNpYmxpbmd9YS5zaGFkb3dSb290JiZBcnJheS5mcm9tKGEuc2hhZG93Um9vdC5jaGlsZE5vZGVzKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe1B0KGMscixadChjKSl9KTtpZihlKXticyh0aGlzLmcuZyk7aWYoWnQodGhpcykpe3ZhciBsPQpudChhKTtpZihfLkFjKGpvKGwpKSYmKHRoaXMuaj17S2Y6ITAsbm9kZTpndChhKSx0ZXh0OmwsTGQ6bG8obCksc2l6ZTp0aGlzLkI/Xy5HYihsKS5sZW5ndGg6bC5sZW5ndGh9LFR0KHRoaXMsYikpKXJldHVybiBWdCh0aGlzKSxJdH1WdCh0aGlzKTtyZXR1cm4gdGhpcy5ofWlmKGQpe2lmKCR0KGEpfHwhYS5maXJzdENoaWxkJiZhLnRhZ05hbWUhPSJJRlJBTUUiJiZhLnRhZ05hbWUhPSJSVUJZIilyZXR1cm4gYi5jb250aW51b3VzPWIuY29udGludW91cyYmISFYclthLnRhZ05hbWVdLGJzKHRoaXMuZy5nKSxWdCh0aGlzKSx0aGlzLmg7aWYoYS50YWdOYW1lPT0iUlVCWSIpe3RyeXtsPV8uQyhhLmNoaWxkTm9kZXMpO2Zvcih2YXIgbj1sLm5leHQoKTshbi5kb25lO249bC5uZXh0KCkpe3ZhciBxPW4udmFsdWU7cS5ub2RlVHlwZSE9MyYmUHQodGhpcyxxLFp0KHRoaXMpKX19Y2F0Y2gocil7fWJzKHRoaXMuZy5nKTtWdCh0aGlzKTtyZXR1cm4gdGhpcy5ofWlmKGEudGFnTmFtZT09IklGUkFNRSIpe3RyeXtpZighYS5zcmMubWF0Y2goL2h0dHBzPzpcL1wvLyl8fApfLkNiKGEuc3JjLm1hdGNoKF8ucmYpWzNdfHxudWxsKT09d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKXt2YXIgcD16byhhKS5kb2N1bWVudEVsZW1lbnQ7cCYmUHQodGhpcyxwLFp0KHRoaXMpKX19Y2F0Y2gocil7fWIuY29udGludW91cz0hMTticyh0aGlzLmcuZyk7VnQodGhpcyk7cmV0dXJuIHRoaXMuaH1adCh0aGlzKSYmV3QoYSk/dGhpcy5EJiZhLnRhZ05hbWU9PSJBIiYmYS5ocmVmJiZ0aGlzLkQoYSk6Yi5jb250aW51b3VzPSExO3JldHVybiB0aGlzLmh9YnModGhpcy5nLmcpO1Z0KHRoaXMpO3JldHVybiB0aGlzLmh9Owp2YXIgJHQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG10KGEpfHxhLm5vZGVUeXBlIT0zJiYoIWEudGFnTmFtZXx8V3JbYS50YWdOYW1lXXx8WHJbYS50YWdOYW1lXXx8TXQoYSwic2tpcHRyYW5zbGF0ZSIpKX0sYXU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5zZChhKTtyZXR1cm4gYi5kZWZhdWx0VmlldyYmYi5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlP2IuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpOmEuY3VycmVudFN0eWxlfSxZdD1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09Mz8hMDphLm5vZGVUeXBlIT0xPyExOmEub2Zmc2V0V2lkdGgmJmEub2Zmc2V0SGVpZ2h0PyEwOihhPWF1KGEpLCEhYSYmYS5kaXNwbGF5IT0ibm9uZSImJmEudmlzaWJpbGl0eSE9ImhpZGRlbiIpfSxXdD1mdW5jdGlvbihhKXtpZihhLm5vZGVUeXBlPT0zKXJldHVybiEwO2lmKGEubm9kZVR5cGUhPTEpcmV0dXJuITE7dmFyIGI9YXUoYSk7cmV0dXJuISFWclthLnRhZ05hbWVdJiYKKCFifHwhYi5kaXNwbGF5fHxiLmRpc3BsYXk9PSJpbmxpbmUiKX0sUHQ9ZnVuY3Rpb24oYSxiLGMsZCl7KGQ/YS5GOmEuQSkucHVzaCh7cm9vdDpiLFlpOmM9PT12b2lkIDB8fGN9KX0sWnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGEub1thLm8ubGVuZ3RoLTFdfSxYdD1mdW5jdGlvbihhLGIpe2I9IW10KGIpJiYoYi5ub2RlVHlwZT09JG4mJlp0KGEpfHwhKE10KGIsIm5vdHJhbnNsYXRlIil8fGIuYXR0cmlidXRlcyYmYi5hdHRyaWJ1dGVzLnRyYW5zbGF0ZSYmYi5hdHRyaWJ1dGVzLnRyYW5zbGF0ZS52YWx1ZT09Im5vIikmJihNdChiLCJ0cmFuc2xhdGUiKXx8ISFiLmF0dHJpYnV0ZXMmJiEhYi5hdHRyaWJ1dGVzLnRyYW5zbGF0ZSYmYi5hdHRyaWJ1dGVzLnRyYW5zbGF0ZS52YWx1ZT09InllcyJ8fFp0KGEpKSk7YS5vLnB1c2goYil9LFZ0PWZ1bmN0aW9uKGEpe2Euby5wb3AoKX0sYnU9e307RHIuYXR0YWNoKDU3NjIsUXQucHJvdG90eXBlLHt1aToxfSk7dmFyIGN1PWZ1bmN0aW9uKCl7Xy51LmNhbGwodGhpcyk7dGhpcy5nPVtdfTtfLkIoY3UsXy51KTtjdS5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbigpe3FzKHRoaXMuaCwwLHRoaXMpfTtjdS5wcm90b3R5cGUuaD1mdW5jdGlvbigpe2Zvcih2YXIgYT0wO2E8dGhpcy5nLmxlbmd0aDsrK2EpXy5BZCh0aGlzLmdbYV0pO3RoaXMuZz1bXX07Y3UucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtfLnUucHJvdG90eXBlLk0uY2FsbCh0aGlzKTt0aGlzLnJlc3RvcmUoKX07dmFyIGR1PWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBTZXQ7YS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3lvKGMpP2IuYWRkKGMpOihjPWMucGFyZW50RWxlbWVudHx8bnVsbCxjIT1udWxsJiZiLmFkZChjKSl9KTtyZXR1cm4gYn07dmFyIGV1PWZ1bmN0aW9uKGEpe3RoaXMuaD0hMDt0aGlzLmw9YTt0aGlzLmo9ITE7dGhpcy5nPVtdfTtldS5wcm90b3R5cGUubWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nLmpvaW4oIiIpfTt2YXIgZnU9ZnVuY3Rpb24oYSxiKXt0aGlzLm89YTt0aGlzLmw9ITA7dGhpcy5qPWI7dGhpcy5nPW51bGw7dGhpcy5oPTB9LGd1PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEubD8oYigoMCxfLnkpKGEuQSxhKSxhLm8sYS5qPyJlbiI6IiIpLCEwKTohMX07ZnUucHJvdG90eXBlLkE9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZz1iO3RoaXMuaD1jO2EoKX07dmFyIGh1PWZ1bmN0aW9uKGEsYil7dGhpcy5sPWE7dGhpcy5EPSEhYjt0aGlzLmc9dGhpcy5DPTA7dGhpcy5vPXRoaXMuaj0tMTt0aGlzLkE9dGhpcy5CPXRoaXMuaD0wfSxrdT1mdW5jdGlvbihhLGIsYyl7YS5EJiYoYi09OSk7Zm9yKHZhciBkPSIiLGU9MCxmPWEuQztmPGEubC5sZW5ndGg7KytmKXt2YXIgZz1hLmwuY2hhckF0KGYpLGg9Zy5jaGFyQ29kZUF0KDApO2UrKzthLmgrPWEuRD9oPD0xMjc/aDw9MzJ8fGl1W2hdPzM6MTpoPD0yMDQ3fHxoPj01NTI5NiYmaDw9NTYzMTl8fGg+PTU2MzIwJiZoPD01NzM0Mz82Ojk6MTtoPWEuaD49YjtqdVtnXT8oYS5vPWYsYS5CPWEuaCxoPWh8fGU+Yyk6Zz09IiAiJiYoYS5qPWYsYS5BPWEuaCxoPWh8fGU+Yyk7aWYoaClyZXR1cm4gYS5vPj0wPyhkPWEubC5zdWJzdHJpbmcoYS5nLGEubysxKSxhLmgtPWEuQixhLmc9YS5vKzEsYS5vPj1hLmo/KGEuaj0tMSxhLkE9MCk6YS5BLT1hLkIsYS5vPS0xLGEuQj0wKTphLmo+PTA/KGQ9YS5sLnN1YnN0cmluZyhhLmcsCmEuaisxKSxhLmgtPWEuQSxhLmc9YS5qKzEsYS5qPS0xLGEuQT0wKTooZD1hLmwuc3Vic3RyaW5nKGEuZyxmKzEpLGEuaD0wLGEuZz1mKzEsYS5vPWEuaj0tMSxhLkE9YS5CPTApLGEuQz1mKzEsZH1hLmc8YS5sLmxlbmd0aCYmKGQ9YS5sLnN1YnN0cmluZyhhLmcpLGEuZz1hLmwubGVuZ3RoKTtyZXR1cm4gZH0sanU9aXIoWyIuIiwiLCIsIjoiLCJcXD8iLCIhIl0pLGx1PVsiLiIsIj8iLCIhIl0saXU9aXIoWzM0LDM1LDM2LDM3LDM4LDQzLDQ0LDQ3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDkxLDkyLDkzLDk0LDk2LDEyMywxMjQsMTI1LDEyN10pO3ZhciB0bT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIodG0sXy5KKTt2YXIgbXU9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKG11LF8uSik7dmFyIG51PWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihudSxfLkopO3ZhciBvdT1bMSwyXTt2YXIgcHU9ZnVuY3Rpb24oYSl7dGhpcy5KPV8uSShhKX07Xy5CKHB1LF8uSik7cHUucHJvdG90eXBlLlJhPWZ1bmN0aW9uKCl7cmV0dXJuIF8uZGoodGhpcywxKX07dmFyIHF1PV8uS2kocHUpO3ZhciBydTt2YXIgc3U9ZnVuY3Rpb24oKXt0aGlzLmhhPW5ldyBfLldmfSx0dT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7cmV0dXJuIF8uVmkoZnVuY3Rpb24oZSl7Yz1jbShhbSgkbChuZXcgWmwsImh0dHBzIiksYi5ob3N0KSxiLnBhdGgpO2Q9bmV3IFByb21pc2UoZnVuY3Rpb24oZixnKXtfLk5kKGEuaGEsInN1Y2Nlc3MiLGZ1bmN0aW9uKCl7Zih7Y29kZTpfLmhnKGEuaGEpLGhlYWRlcnM6TG4oYS5oYSksYm9keTpfLmlnKGEuaGEpfSl9KTtfLk5kKGEuaGEsImVycm9yIixmdW5jdGlvbigpe2coe2NvZGU6Xy5oZyhhLmhhKSxoZWFkZXJzOkxuKGEuaGEpLGJvZHk6Xy5pZyhhLmhhKX0pfSk7Xy5OZChhLmhhLCJ0aW1lb3V0IixmdW5jdGlvbigpe2coe2NvZGU6Xy5oZyhhLmhhKSxoZWFkZXJzOkxuKGEuaGEpLGJvZHk6Xy5pZyhhLmhhKX0pfSl9KTthLmhhLnNlbmQoYyxiLm1ldGhvZCxiLmJvZHksYi5oZWFkZXJzKTtyZXR1cm4gZS5yZXR1cm4oZCl9KX07dmFyIHJuPWZ1bmN0aW9uKGEpe3RoaXMuSj1fLkkoYSl9O18uQihybixfLkopO3ZhciBxbj1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIocW4sXy5KKTt2YXIgcG49ZnVuY3Rpb24oYSxiKXtyZXR1cm4gXy5mayhhLDEsYil9O3ZhciB3dT1mdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmO3JldHVybiBfLlZpKGZ1bmN0aW9uKGcpe2lmKGcuZz09MSl7Yj1ydXx8KHJ1PXF1KCdbMixudWxsLFtbW1siYXV0b3B1c2giLFsiYXV0b3B1c2gtdHJhbnNsYXRlLXBhLnNhbmRib3guZ29vZ2xlYXBpcy5jb20iXV0sWyJzdGFnaW5nIixbImRhaWx5MS10cmFuc2xhdGUtcGEuc2FuZGJveC5nb29nbGVhcGlzLmNvbSJdXSxbInByb2QiLFsidHJhbnNsYXRlLXBhLmdvb2dsZWFwaXMuY29tIl1dLFsicHJvZC1ldSIsWyJ0cmFuc2xhdGUtcGEuZXUucmVwLmdvb2dsZWFwaXMuY29tIl1dLFsicHJvZC11cyIsWyJ0cmFuc2xhdGUtcGEudXMucmVwLmdvb2dsZWFwaXMuY29tIl1dXV1dXScpKTtjPW1xO25xJiYoYz1jKyItIitucSk7dmFyIGg9YnAoYixudSwzKTt2YXIgaz1oLko7az1JbChIbChrKSxrLHZvaWQgMCxvdSk7aD1icChoLG11LGs9PT0xPzE6LTEpO2s9aC5KO3ZhciBsPWtbXy5IXXwwO2g9dW0oaCxrLGwsXy5XZyhoLGwpKS5nZXQoYyk7CmQ9Xy5OKGgsMSk7aD1uZXcgJHA7az1zbShhLDEsXy5haigpKTtoPUdsKGgsMSxrLG5tKS5OYShhLkphKCkpLm5hKGEub2EoKSk7az1uZXcgYXE7aD1fLkwoaywxLGgpO2g9c24oaCwyLHRxKTtfLk0ocHEsNykmJl8uZWooaCw0LCEwKTtlPWg7Zy5GKDIpO3JldHVybiBnLmgodnUoZCxlKSw0KX1pZihnLmchPTIpcmV0dXJuIGY9Zy5qLGcucmV0dXJuKHRuKGYpKTtnLkQoKTtyZXR1cm4gZy5yZXR1cm4oUHJvbWlzZS5yZWplY3QoRXJyb3IoIkFhIikpKX0pfSx2dT1mdW5jdGlvbihhLGIpe3ZhciBjPXh1LGQsZSxmLGc7cmV0dXJuIF8uVmkoZnVuY3Rpb24oaCl7aWYoaC5nPT0xKXJldHVybiBkPXtob3N0OmEscGF0aDoiL3YxL3RyYW5zbGF0ZUh0bWwiLG1ldGhvZDoiUE9TVCIsaGVhZGVyczp7IlgtZ29vZy1hcGkta2V5IjoiQUl6YVN5QVRCWGFqdnpRTFRESEVRYmNwcTBJaGUwdldESG1PNTIwIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbitwcm90b2J1ZiJ9LGJvZHk6Xy5XaihiKX0sCmU9Yy5nKCksaC5GKDIpLGguaCh0dShlLGQpLDQpO2lmKGguZyE9MilyZXR1cm4gZj1oLmosaC5yZXR1cm4oY3EoZi5ib2R5KSk7Zz1oLkQoKTtyZXR1cm4gaC5yZXR1cm4oUHJvbWlzZS5yZWplY3QoZykpfSl9O3ZhciB4dT1uZXcgZnVuY3Rpb24oKXt0aGlzLmc9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHN1fX0seXU9ZnVuY3Rpb24oYSl7dGhpcy5nPWF9LHp1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO3JldHVybiBfLlZpKGZ1bmN0aW9uKGYpe2lmKGYuZz09MSlyZXR1cm4gc20oYiwxLF8uYWooKSkubGVuZ3RoPT09MD9mLnJldHVybihuZXcgcW4pOl8uTShwcSw4KT9mLnJldHVybih3dShiKSk6Zi5oKGEuZy50cmFuc2xhdGUoY3x8ZnVuY3Rpb24oKXt9LHNtKGIsMSxfLmFqKF8uV2gpKSxiLkphKCksYi5vYSgpLDAsITEpLDIpO2Q9Zi5qO2U9ZC5tYXAodW4pO3JldHVybiBmLnJldHVybihwbihuZXcgcW4sZSkpfSl9O3ZhciBBdT1mdW5jdGlvbihhKXt0aGlzLko9Xy5JKGEpfTtfLkIoQXUsXy5KKTt2YXIgQnU9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEF1O3JldHVybiBHbChiLDEsYSxubSl9O0F1LnByb3RvdHlwZS5KYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywyKX07QXUucHJvdG90eXBlLk5hPWZ1bmN0aW9uKGEpe3JldHVybiBzbih0aGlzLDIsYSl9O0F1LnByb3RvdHlwZS5vYT1mdW5jdGlvbigpe3JldHVybiBfLk4odGhpcywzKX07QXUucHJvdG90eXBlLm5hPWZ1bmN0aW9uKGEpe3JldHVybiBzbih0aGlzLDMsYSl9O3ZhciBDdT1mdW5jdGlvbihhLGIsYyxkLGUsZil7dGhpcy5CPWR8fGZ1bmN0aW9uKCl7fTt0aGlzLlA9Znx8ZnVuY3Rpb24oKXt9O3RoaXMuUj0hIWU7dGhpcy5qPWEuZy5JZjt0aGlzLmw9MDt0aGlzLkk9ZnVuY3Rpb24oKXt9O3RoaXMuRD1jO3RoaXMuRj10aGlzLmg9dGhpcy5vPTA7dGhpcy5nPW51bGw7dGhpcy5XPTA7dGhpcy5sYT0hMTt0aGlzLlQ9YS5nLkdmO3RoaXMuSz1bXTt0aGlzLnFiPTA7dGhpcy5MPWEuZy5LZDt0aGlzLkE9YS5sKCk7dGhpcy53YT10aGlzLlI/MTo2O3RoaXMuSWE9YS5nLldmO3RoaXMucWE9Yjt0aGlzLkM9W107dGhpcy5PPWF9O0N1LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe2Zvcih2YXIgYT0wO2E8dGhpcy5DLmxlbmd0aDsrK2EpdGhpcy5DW2FdLnN0b3AoKTtmb3IoYT0wO2E8dGhpcy5LLmxlbmd0aDsrK2EpVHIodGhpcy5PLHRoaXMuS1thXSl9Owp2YXIgRHU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0wO2EuST0oMCxfLnkpKGZ1bmN0aW9uKCl7KytjPT10aGlzLkMubGVuZ3RoJiZiKCl9LGEpfSxFdT1mdW5jdGlvbihhLGIsYyl7YS5CPWZ1bmN0aW9uKCl7fTthLnFhPWI7YS5nPW51bGw7YS5xYj0wO2EuQz1bXTthLkk9ZnVuY3Rpb24oKXt9O2EuRD1jfSxGdT1mdW5jdGlvbihhLGIsYyl7aWYoYS5oPT0wJiYoYS5oPWI/M0UzOmEuQSwhY3x8Yzw9YS5BKSl7YS5vPWEuaDtyZXR1cm59ZG8gYj1hLmgsYS5oPGEuQSYmKGEuaCo9YS53YSxhLmg+YS5BJiYoYS5oPWEuQSkpO3doaWxlKGIhPWEuaCYmYyYmYS5oPGMpO2Eubz1hLmh9LEd1PWZ1bmN0aW9uKGEsYil7dmFyIGM9YiE9bnVsbCxkPSFjJiYhYS5sYTsoZHx8YykmJmEuQigxMDAsZCxiKX0sSHU9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuTD9hLmcuUjphLmcubWEoKS5sZW5ndGh9LEl1PWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBRdChhLnFhLnNoaWZ0KCkse2JqOmEuTCxsaTpiLApWZjohMCxaaTohIWN9LGZ1bmN0aW9uKCl7dmFyIGY9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gbmV3IGp0KGYuc2hpZnQoKSxmLnNoaWZ0KCksZi5zaGlmdCgpLGYuc2hpZnQoKSxmLnNoaWZ0KCksYyxkKX0sYS5ELGUpfSxLdT1mdW5jdGlvbihhLGIsYyl7aWYoYS5UPjAmJmIubGIoKT49YS5UKXJldHVybiEwO2lmKEh1KGEpPmEuaCl7aWYoYi5sYigpPjApcmV0dXJuITA7RnUoYSxjLEh1KGEpKTtmb3IodmFyIGQ9YS5nLm1hKCksZT1uZXcgaHUoZCxhLkwpLGY7Zj1rdShlLGEuaCxhLmopOylpZihsdS5pbmRleE9mKGYuY2hhckF0KGYubGVuZ3RoLTEpKTwwJiZiLksrKyxiLmwucHVzaChuZXcgZnUoW2ZdLCExKSksYS5sKz1mLmxlbmd0aCxhLmotPWYubGVuZ3RoLGEuajw9MCl7Yi5GPWQuc3Vic3RyaW5nKGUuZyk7YnJlYWt9ZWxzZSBGdShhLGMpO0p1KGIsYS5nLCEwKTthLmc9bnVsbDtyZXR1cm4hMH1pZihIdShhKT5hLm8pcmV0dXJuITA7SnUoYiwKYS5nLCEwKTthLm8tPUh1KGEpK2EuSWE7YS5sKz1hLmcuRDthLmotPWEuZy5EO2EuZz1udWxsO3JldHVybiExfSxMdT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz17WmE6MH07Yy5aYTxhLmxlbmd0aDtjPXtaYTpjLlphfSxjLlphKyspYVtjLlphXS5sZW5ndGg+MSYmYVtjLlphXVsxXT09PTIwMD9iLnB1c2guYXBwbHkoYixfLiRiKGFbYy5aYV1bMF0udG9TdHJpbmcoKS5zcGxpdCgiJmx0O2V4dHJhX2lkXzEmZ3Q7IikubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm5bZS50cmltKCksYVtkLlphXVsxXV19fShjKSkpKTpiLnB1c2goYVtjLlphXSk7cmV0dXJuIGJ9LE11PWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGssbCxuO3JldHVybiBfLlZpKGZ1bmN0aW9uKHEpe3N3aXRjaChxLmcpe2Nhc2UgMTp2YXIgcD1wcTtpZihfLmJqKHAsaXEsNikpe3ZhciByPV8uYmoocCxpcSw2KSx0PV8uTShyLDEpO3A9Xy5NKHAsMyl8fHQ/KHQ/c20ociw0LF8uYWooKSk6CnNtKHAsNCxfLmFqKCkpKS5pbmNsdWRlcyhkLnRvTG93ZXJDYXNlKCkrIl8iK2UudG9Mb3dlckNhc2UoKSk6ITF9ZWxzZSBwPSExO2Y9cDtpZihmKXt2YXIgQT1BPT09dm9pZCAwPzNFMzpBO2lmKHA9Xy5iaihwcSxpcSw2KSlwPV8uYmoocHEsaXEsNikscD1fLk0ocCwxKTtpZihwKXtwPV8uYmoocHEsaXEsNik7QT1fLmdrKHAsMyk7cD1fLmdrKHAsMik7cj1bXTtmb3IodD0wO3Q8Yy5sZW5ndGg7dCsrKXt2YXIgRD1bY1t0XV0sRT1jW3RdLmxlbmd0aDtpZihjW3RdLnNwbGl0KCIgIikubGVuZ3RoPD1wKWZvcig7dCsxPGMubGVuZ3RoJiZFPEE7KUQucHVzaChjW3QrMV0pLEUrPWNbdCsxXS5sZW5ndGgrMisxOCx0Kys7ci5wdXNoKEQuam9pbigiICZsdDtleHRyYV9pZF8xJmd0OyAiKSl9QT1yfWVsc2V7cD1bXTtmb3Iocj0wO3I8Yy5sZW5ndGg7KXt0PVtdO2ZvcihFPTA7cjxjLmxlbmd0aDspe0Q9Y1tyXTt2YXIgYmE9RC5sZW5ndGg7RT10Lmxlbmd0aD09PTA/YmE6RSsyMCtiYTtpZihFPgpBJiZ0Lmxlbmd0aD4wKWJyZWFrO3QucHVzaChEKTtyKyt9dC5sZW5ndGg+MCYmcC5wdXNoKHQuam9pbigiICZsdDtleHRyYV9pZF8xJmd0OyAiKSl9QT1wfX1lbHNlIEE9YztnPUE7aD16dShuZXcgeXUoYS5PKSxCdShnKS5OYShkKS5uYShlKSxiKTtxLkYoMik7cmV0dXJuIHEuaChoLDQpO2Nhc2UgNDprPXEuajtsPXZuKGspO249Zj9MdShsKTpsO2IobiwyMDApO3EuSygzKTticmVhaztjYXNlIDI6cS5EKCksYihbXSw1MDApO2Nhc2UgMzpyZXR1cm4gYS5LLnB1c2goaCkscS5yZXR1cm4oaCl9fSl9O3ZhciBOdT1mdW5jdGlvbihhLGIpe18udS5jYWxsKHRoaXMpO3RoaXMubD1iO3RoaXMuaj17cm9vdE1hcmdpbjphfTt0aGlzLmc9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgwLF8ueSkodGhpcy5oLHRoaXMpLHRoaXMuail9O18uQihOdSxfLnUpO051LnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyk7dGhpcy5nPW51bGx9O051LnByb3RvdHlwZS5oPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWlmKGFbYl0uaW50ZXJzZWN0aW9uUmF0aW8+MCl7dGhpcy5sKCk7YnJlYWt9fTtOdS5wcm90b3R5cGUudHJhY2s9ZnVuY3Rpb24oYSl7Sm8oYSwoMCxfLnkpKHRoaXMuZy5vYnNlcnZlLHRoaXMuZykpfTt2YXIgT3U9ZnVuY3Rpb24oYSl7dmFyIGI9YSE9bnVsbD9hOnt9LGM9Yi5JayxkPWIuS2ssZT1iLkVrLGY9Yi5MayxnPWIuSGssaD1iLkprLGs9Yi5GayxsPWIuR2s7YT1fLnlsKCk7IWwmJnNwKGMpPyhlPSEhZSxmPSEhZixiPWImJmIuUWssYz0oMCxfLnRsKShzcChjKT8iPHNjcmlwdCIrKGI/JyBub25jZT0iJytQKFlwKGIpKSsnIic6IiIpKyI+d2luZG93WydwcENvbmZpZyddID0ge3Byb2R1Y3ROYW1lOiAiK3ZwKFFwKGQhPW51bGw/ZDoidW5rbm93biIpKSsiLCBkZWxldGVJc0VuZm9yY2VkOiAiK3ZwKFFwKGUpKSsiLCBzZWFsSXNFbmZvcmNlZDogIit2cChRcChmKSkrIiwgaGVhcnRiZWF0UmF0ZTogIit2cChRcChnIT1udWxsP2c6LjUpKSsiLCBwZXJpb2RpY1JlcG9ydGluZ1JhdGVNaWxsaXM6ICIrdnAoUXAoaCE9bnVsbD9oOjZFNCkpKyIsIGRpc2FibGVBbGxSZXBvcnRpbmc6ICIrdnAoUXAoayE9bnVsbD9rOiExKSkrIn07Iit2cChRcChjIT1udWxsP2M6IiIpKSsiXHgzYy9zY3JpcHQ+IjoKIiIpKTpjPSIiO3JldHVybiBXbihhLGMpfTt2YXIgUHU9ZnVuY3Rpb24oYSl7cmV0dXJuKDAsXy50bCkoJzxzcGFuIGlkPSInK1AoYS5pZCkrJyI+PC9zcGFuPicpfSxRdT1mdW5jdGlvbihhKXt2YXIgYj1hLmlkLGM9YS5SZjtyZXR1cm4oMCxfLnRsKShLcChhLlNmKSsnPGRpdiBpZD0iJytQKGIpKyciPjwvZGl2PicrS3AoYykpfSxZbj1mdW5jdGlvbihhKXt2YXIgYj1hLnRvcCxjPWEubGVmdCxkPWEuYm90dG9tLGU9YS5yaWdodCxmPWEuaWQ7cmV0dXJuKDAsXy51bCkoIi4iK0FwKGEuY2xhc3NOYW1lKSsiIHt6LWluZGV4Ojk5OTk5OTk7IG92ZXJmbG93OnZpc2libGU7IHBvc2l0aW9uOmZpeGVkOyBfcG9zaXRpb246YWJzb2x1dGU7IisoYnx8Yj09PTA/InRvcDoiK0FwKGIpKyJweDsgX3RvcDpleHByZXNzaW9uKCgiK0FwKGIpKyIrKGhhY2sxPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSkrJ3B4Jyk7IjoidG9wOmF1dG87IikrKGN8fGM9PT0wPyJsZWZ0OiIrQXAoYykrCiJweDsgX2xlZnQ6ZXhwcmVzc2lvbigoIitBcChjKSsiKyhoYWNrMj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSkrJ3B4Jyk7IjoibGVmdDphdXRvOyIpKyhkfHxkPT09MD8iYm90dG9tOiIrQXAoZCkrInB4OyBfdG9wOmV4cHJlc3Npb24oKC0iK0FwKGQpKyItZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIrU3RyaW5nKGYpLnJlcGxhY2UoUnAsR3ApKyInKS5vZmZzZXRIZWlnaHQrKGhhY2szPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KSsoaGFjazQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApKSsncHgnKTsiOiJib3R0b206YXV0bzsiKSsoZXx8ZT09PTA/InJpZ2h0OiIrQXAoZSkrInB4OyBfbGVmdDpleHByZXNzaW9uKCgtIitBcChlKSsiLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciKwpTdHJpbmcoZikucmVwbGFjZShScCxHcCkrIicpLm9mZnNldFdpZHRoKyhoYWNrNT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGh8fGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgpKyhoYWNrNj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0KSkrJ3B4Jyk7IjoicmlnaHQ6YXV0bzsiKSsifSIpfSxSdT1mdW5jdGlvbigpe3JldHVybigwLF8udGwpKCc8ZGl2IGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtYVoyd0VlLXdPSE15ZiIpKyciPjxkaXYgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1hWjJ3RWUtT2lpQ08iKSsnIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1hWjJ3RWUiKSsnIiB3aWR0aD0iOTZweCIgaGVpZ2h0PSI5NnB4IiB2aWV3Qm94PSIwIDAgNjYgNjYiPjxjaXJjbGUgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1hWjJ3RWUtSnQ1Y0siKSsKJyIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI2IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGN4PSIzMyIgY3k9IjMzIiByPSIzMCIvPjwvc3ZnPjwvZGl2PjwvZGl2PicpfTt3bi54Yj12b2lkIDA7d24uZz1mdW5jdGlvbigpe3JldHVybiB3bi54Yj93bi54Yjp3bi54Yj1uZXcgd259O3duLnByb3RvdHlwZS5nPTA7Xy5HKHhuLF8uaGIpO18ubT14bi5wcm90b3R5cGU7Xy5tLmNpPXduLmcoKTtfLm0uUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXx8KHRoaXMubGE9IjoiKyh0aGlzLmNpLmcrKykudG9TdHJpbmcoMzYpKX07Xy5tLkg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5DfTtfLm0ubmQ9ZnVuY3Rpb24oYSl7aWYodGhpcy5LJiZ0aGlzLkshPWEpdGhyb3cgRXJyb3IoIkNhIik7eG4uZWEubmQuY2FsbCh0aGlzLGEpfTtfLm0uUz1mdW5jdGlvbigpe3RoaXMuQz10aGlzLmguY3JlYXRlRWxlbWVudCgiRElWIil9O18ubS5rYT1mdW5jdGlvbihhKXtTdSh0aGlzLGEpfTtfLm0ucWM9ZnVuY3Rpb24oYSl7U3UodGhpcyxhLnBhcmVudE5vZGUsYSl9O3ZhciBTdT1mdW5jdGlvbihhLGIsYyl7aWYoYS5qYil0aHJvdyBFcnJvcigiRGEiKTthLkN8fGEuUygpO2I/Yi5pbnNlcnRCZWZvcmUoYS5DLGN8fG51bGwpOmEuaC5nLmJvZHkuYXBwZW5kQ2hpbGQoYS5DKTthLksmJiFhLksuamJ8fGEuTGEoKX07Cl8ubT14bi5wcm90b3R5cGU7Xy5tLmFoPWZ1bmN0aW9uKGEpe2lmKHRoaXMuamIpdGhyb3cgRXJyb3IoIkRhIik7aWYoYSl7dGhpcy53YT0hMDt2YXIgYj1fLnNkKGEpO3RoaXMuaCYmdGhpcy5oLmc9PWJ8fCh0aGlzLmg9Xy5sYihhKSk7dGhpcy5PYShhKTt0aGlzLkxhKCl9ZWxzZSB0aHJvdyBFcnJvcigiRWEiKTt9O18ubS5PYT1mdW5jdGlvbihhKXt0aGlzLkM9YX07Xy5tLkxhPWZ1bmN0aW9uKCl7dGhpcy5qYj0hMDtUdSh0aGlzLGZ1bmN0aW9uKGEpeyFhLmpiJiZhLkgoKSYmYS5MYSgpfSl9O18ubS5zYT1mdW5jdGlvbigpe1R1KHRoaXMsZnVuY3Rpb24oYSl7YS5qYiYmYS5zYSgpfSk7dGhpcy5PJiZfLlJmKHRoaXMuTyk7dGhpcy5qYj0hMX07Cl8ubS5NPWZ1bmN0aW9uKCl7dGhpcy5qYiYmdGhpcy5zYSgpO3RoaXMuTyYmKHRoaXMuTy5kaXNwb3NlKCksZGVsZXRlIHRoaXMuTyk7VHUodGhpcyxmdW5jdGlvbihhKXthLmRpc3Bvc2UoKX0pOyF0aGlzLndhJiZ0aGlzLkMmJl8uQWQodGhpcy5DKTt0aGlzLks9dGhpcy5DPXRoaXMuUj10aGlzLkY9bnVsbDt4bi5lYS5NLmNhbGwodGhpcyl9O3ZhciBTPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuUmEoKSsiLiIrYn0sVHU9ZnVuY3Rpb24oYSxiKXthLkYmJmEuRi5mb3JFYWNoKGIsdm9pZCAwKX07CnhuLnByb3RvdHlwZS5pZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W107dGhpcy5GJiZ0aGlzLkYubGVuZ3RoIT0wOyl7dmFyIGM9YixkPWMucHVzaCxlPXRoaXMuRj90aGlzLkZbMF18fG51bGw6bnVsbCxmPWE7aWYoZSl7dmFyIGc9dHlwZW9mIGU9PT0ic3RyaW5nIj9lOmUuUmEoKTt0aGlzLlImJmc/KGU9dGhpcy5SLGU9KGUhPT1udWxsJiZnIGluIGU/ZVtnXTp2b2lkIDApfHxudWxsKTplPW51bGw7aWYoZyYmZSl7dmFyIGg9dGhpcy5SO2cgaW4gaCYmZGVsZXRlIGhbZ107Xy52YSh0aGlzLkYsZSk7ZiYmKGUuc2EoKSxlLkMmJl8uQWQoZS5DKSk7Zj1lO2lmKGY9PW51bGwpdGhyb3cgRXJyb3IoIkJhIik7Zi5LPW51bGw7eG4uZWEubmQuY2FsbChmLG51bGwpfX1pZighZSl0aHJvdyBFcnJvcigiRmEiKTtkLmNhbGwoYyxlKX1yZXR1cm4gYn07dmFyIFV1PWZ1bmN0aW9uKCl7eG4uY2FsbCh0aGlzKX07Xy5CKFV1LHhuKTtVdS5wcm90b3R5cGUuUz1mdW5jdGlvbigpe3RoaXMuT2Eoa20oUnUpKX07VXUucHJvdG90eXBlLk9hPWZ1bmN0aW9uKGEpe3RoaXMuQz1hfTtVdS5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe050KHRoaXMuSCgpLCJWSXBnSmQtWlZpOW9kLWFaMndFZS13T0hNeWYtdGk2aEdjIik7TnQodGhpcy5IKCkuZmlyc3RDaGlsZCwiVklwZ0pkLVpWaTlvZC1hWjJ3RWUtT2lpQ08tdGk2aEdjIil9O3ZhciBWdT1mdW5jdGlvbihhKXtPdChhLkgoKSwiVklwZ0pkLVpWaTlvZC1hWjJ3RWUtd09ITXlmLXRpNmhHYyIpO090KGEuSCgpLmZpcnN0Q2hpbGQsIlZJcGdKZC1aVmk5b2QtYVoyd0VlLU9paUNPLXRpNmhHYyIpfTt2YXIgV3U9ZnVuY3Rpb24oKXt0aGlzLmc9bmV3IFV1O3RoaXMuZy5TKCk7dGhpcy5nLmthKCk7dGhpcy5oPTB9O1d1LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuaD0wO1Z1KHRoaXMuZyl9O3ZhciBYdT1XcShjciksWXU9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoKXt0aGlzLmw9YTt0aGlzLmc9Yjt0aGlzLkM9W107dGhpcy5GPW51bGw7dGhpcy5vPWM7dGhpcy5oPWQ7dGhpcy5qPWU7dGhpcy5xYT1mO3RoaXMuTz1nO3RoaXMuRD10aGlzLkE9bnVsbDt0aGlzLkI9aHx8bnVsbDt0aGlzLlc9dGhpcy5JPSExO3RoaXMuRz17fTt0aGlzLkw9WHU7dGhpcy5LPTB9LFp1PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1uZXcgU2V0LGM9MDtjPGEubGVuZ3RoO2MrKylzdChhW2NdKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3JldHVybiBiLmFkZChkKX0pO3JldHVybiBifTsKWXUucHJvdG90eXBlLnRyYWNrVmlzaWJpbGl0eT1mdW5jdGlvbihhKXt0aGlzLkE9bmV3IE51KCIyMDBweCIsKDAsXy55KSh0aGlzLlIsdGhpcyxhKSk7dGhpcy5BLnRyYWNrKGR1KFp1KFtdLmNvbmNhdCh0aGlzLmcsdGhpcy5DKSkpKTt0aGlzLkQ9bmV3IE51KCIwcHgiLCgwLF8ueSkodGhpcy5QLHRoaXMpKTt0aGlzLkQudHJhY2soZHUoWnUoW10uY29uY2F0KHRoaXMuZyx0aGlzLkMpKSkpfTtZdS5wcm90b3R5cGUuUj1mdW5jdGlvbihhKXt0aGlzLkEmJih0aGlzLkEuZy5kaXNjb25uZWN0KCksdGhpcy5BPW51bGwpO2EoKX07WXUucHJvdG90eXBlLlA9ZnVuY3Rpb24oKXt0aGlzLkk9ITA7JHUodGhpcyk7aWYoIXRoaXMuVyYmdGhpcy5CKXt2YXIgYT10aGlzLkI7YS5oKys9PTAmJmEuZy5zaG93KCl9fTt2YXIgJHU9ZnVuY3Rpb24oYSl7YS5EJiYoYS5ELmcuZGlzY29ubmVjdCgpLGEuRD1udWxsKX07Cll1LnByb3RvdHlwZS5kb25lPWZ1bmN0aW9uKCl7aWYodGhpcy5JJiYhdGhpcy5XJiZ0aGlzLkIpe3ZhciBhPXRoaXMuQjstLWEuaD09MCYmVnUoYS5nKX10aGlzLkEmJih0aGlzLkEuZy5kaXNjb25uZWN0KCksdGhpcy5BPW51bGwpOyR1KHRoaXMpO2F2KHRoaXMpfTt2YXIgSnU9ZnVuY3Rpb24oYSxiLGMpe2M/KGEuZy5wdXNoKGIpLGEuR1tiLm1hKCldPSEwKTphLkMucHVzaChiKX07WXUucHJvdG90eXBlLmxiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZy5sZW5ndGgrdGhpcy5DLmxlbmd0aH07dmFyIGJ2PWZ1bmN0aW9uKGEpe2lmKGEubC5sZW5ndGg9PTApe2Zvcih2YXIgYj1bXSxjPTA7YzxhLmcubGVuZ3RoOysrYyliLnB1c2goYS5nW2NdLm1hKCkpO2EubC5wdXNoKG5ldyBmdShiLCExKSl9fTsKWXUucHJvdG90eXBlLnRyYW5zbGF0ZT1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7ZCsrO2Q9PWMmJmUoKX1idih0aGlzKTtmb3IodmFyIGM9MCxkPTAsZT1mdW5jdGlvbigpe30sZj10aGlzLm8sZz10aGlzLmgsaD10aGlzLmosaz0wO2s8dGhpcy5sLmxlbmd0aDsrK2spZ3UodGhpcy5sW2tdLGZ1bmN0aW9uKGwsbixxKXtyZXR1cm4gTXUoZixfLlpqKGwsYiksbixxfHxnLGgpfSkmJmMrKztjIT0wJiYoZT1HdChhKSk7cmV0dXJuIGN9O3ZhciBhdj1mdW5jdGlvbihhKXtpZihhLmcubGVuZ3RoPjApe2lmKGEuZy5sZW5ndGg9PTEmJmEubC5sZW5ndGg+MSl7dmFyIGI9MTt2YXIgYz1hLmwubGVuZ3RofWVsc2UgYj1jPWEuZy5sZW5ndGg7dmFyIGQ9YS5nLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5EfSkucmVkdWNlKGZ1bmN0aW9uKGUsZil7cmV0dXJuIGUrZn0pO2hyKGEuTCx7bGI6YixNZjpjLGdnOmQsTGY6YS5LfSl9fTt2YXIgY3Y9e2FtOiJOb3RvIFNhbnMgRXRoaW9waWMiLGJlcjoiTm90byBTYW5zIFRpZmluYWdoIiwiYm0tTmtvbyI6Ik5vdG8gU2FucyBOS28iLGJuOiJMb2hpdCBCZW5nYWxpIixibzoiTm90byBTZXJpZiBUaWJldGFuIixkdjoiTm90byBTYW5zIFRoYWFuYSIsZHo6Ik5vdG8gU2VyaWYgVGliZXRhbiIsaXU6Ik5vdG8gU2FucyBDYW5hZGlhbiBBYm9yaWdpbmFsIixrbToiTm9rb3JhIixsbzoiRGh5YW5hIixtbDoiTm90byBTYW5zIE1hbGF5YWxhbSIsIm1uaS1NdGVpIjoiTm90byBTYW5zIE1lZXRlaSBNYXllayIsbXk6Ik5vdG8gU2FucyBNeWFubWFyIiwicGEtQXJhYiI6Ik5vdG8gTmFzdGFsaXEgVXJkdSIscHM6Ik5vdG8gTmFza2ggQXJhYmljIixzYXQ6Ik5vdG8gU2FucyBPbCBDaGlraSIsc2Q6Ik5vdG8gTmFza2ggQXJhYmljIixzaToiTm90byBTYW5zIFNpbmhhbGEiLHRhOiJMb2hpdCBUYW1pbCIseXVlOiJDaG9jb2xhdGUgQ2xhc3NpY2FsIFNhbnMifSxkdj17fSxldj0oZHZbIkNob2NvbGF0ZSBDbGFzc2ljYWwgU2FucyJdPQoiL2NzczI/ZmFtaWx5PUNob2NvbGF0ZStDbGFzc2ljYWwrU2FucyIsZHYuRGh5YW5hPSIvY3NzP2ZhbWlseT1EaHlhbmEiLGR2WyJMb2hpdCBCZW5nYWxpIl09Ii9jc3M/ZmFtaWx5PUxvaGl0K0JlbmdhbGkiLGR2WyJMb2hpdCBUYW1pbCJdPSIvY3NzP2ZhbWlseT1Mb2hpdCtUYW1pbCIsZHYuTm9rb3JhPSIvY3NzP2ZhbWlseT1Ob2tvcmEiLGR2WyJOb3RvIE5hc2toIEFyYWJpYyJdPSIvZWFybHlhY2Nlc3Mvbm90b25hc2toYXJhYmljLmNzcyIsZHZbIk5vdG8gTmFzdGFsaXEgVXJkdSJdPSIvZWFybHlhY2Nlc3Mvbm90b25hc3RhbGlxdXJkdS5jc3MiLGR2WyJOb3RvIFNhbnMgQ2FuYWRpYW4gQWJvcmlnaW5hbCJdPSIvZWFybHlhY2Nlc3Mvbm90b3NhbnNjYW5hZGlhbmFib3JpZ2luYWwuY3NzIixkdlsiTm90byBTYW5zIEV0aGlvcGljIl09Ii9lYXJseWFjY2Vzcy9ub3Rvc2Fuc2V0aGlvcGljLmNzcyIsZHZbIk5vdG8gU2FucyBNYWxheWFsYW0iXT0iL2Vhcmx5YWNjZXNzL25vdG9zYW5zbWFsYXlhbGFtLmNzcyIsCmR2WyJOb3RvIFNhbnMgTWVldGVpIE1heWVrIl09Ii9jc3M/ZmFtaWx5PU5vdG8rU2FucytNZWV0ZWkrTWF5ZWsiLGR2WyJOb3RvIFNhbnMgTXlhbm1hciJdPSIvZWFybHlhY2Nlc3Mvbm90b3NhbnNteWFubWFyLmNzcyIsZHZbIk5vdG8gU2FucyBOS28iXT0iL2Nzcz9mYW1pbHk9Tm90bytTYW5zK05LbyIsZHZbIk5vdG8gU2FucyBPbCBDaGlraSJdPSIvZWFybHlhY2Nlc3Mvbm90b3NhbnNvbGNoaWtpLmNzcyIsZHZbIk5vdG8gU2FucyBTaW5oYWxhIl09Ii9lYXJseWFjY2Vzcy9ub3Rvc2Fuc3NpbmhhbGEuY3NzIixkdlsiTm90byBTYW5zIFRoYWFuYSJdPSIvZWFybHlhY2Nlc3Mvbm90b3NhbnN0aGFhbmEuY3NzIixkdlsiTm90byBTYW5zIFRpZmluYWdoIl09Ii9lYXJseWFjY2Vzcy9ub3Rvc2Fuc3RpZmluYWdoLmNzcyIsZHZbIk5vdG8gU2VyaWYgVGliZXRhbiJdPSIvY3NzP2ZhbWlseT1Ob3RvK1NlcmlmK1RpYmV0YW4iLGR2KSxmdj1mdW5jdGlvbigpe3RoaXMuZz1bXX07CmZ2LnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPV8uQyh0aGlzLmcpLGI9YS5uZXh0KCk7IWIuZG9uZTtiPWEubmV4dCgpKWIudmFsdWUucmVtb3ZlKCk7dGhpcy5nPVtdfTt2YXIgZ3Y9ZnVuY3Rpb24oYSxiKXtfLnUuY2FsbCh0aGlzKTt0aGlzLmc9W107dGhpcy5sPVtdO3RoaXMuaD1hO3RoaXMuaj1ifTtfLkIoZ3YsXy51KTtndi5wcm90b3R5cGUubz1mdW5jdGlvbihhKXt2YXIgYj1fLkFjKGEuaHJlZik7Yi5pbmRleE9mKCJqYXZhc2NyaXB0OiIpPT0wfHxiLmluZGV4T2YoIiMiKT49MHx8KHRoaXMubC5wdXNoKGEuaHJlZiksdGhpcy5nLnB1c2goYSksYS5ocmVmPWIrIiNnb29ndHJhbnMvIit0aGlzLmgrIi8iK3RoaXMuail9O2d2LnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7Xy51LnByb3RvdHlwZS5NLmNhbGwodGhpcyk7dGhpcy5yZXN0b3JlKCl9O2d2LnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKCl7aWYodGhpcy5nLmxlbmd0aCl7Zm9yKHZhciBhPTA7YTx0aGlzLmcubGVuZ3RoOysrYSl0aGlzLmdbYV0uaHJlZj10aGlzLmxbYV07dGhpcy5nPVtdO3RoaXMubD1bXX19O3ZhciBodj1mdW5jdGlvbihhLGIpe18udS5jYWxsKHRoaXMpO3RoaXMuZz1hO3RoaXMuaD1fLnhmLnRlc3QoYik/InRyYW5zbGF0ZWQtcnRsIjoidHJhbnNsYXRlZC1sdHIiO2E9W10uY29uY2F0KHRoaXMuZyk7Zm9yKGI9MDtiPGEubGVuZ3RoOysrYil5byhhW2JdKSYmTnQoYVtiXSx0aGlzLmgpfTtfLkIoaHYsXy51KTtodi5wcm90b3R5cGUuTT1mdW5jdGlvbigpe18udS5wcm90b3R5cGUuTS5jYWxsKHRoaXMpO3RoaXMucmVzdG9yZSgpfTtodi5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbigpe2Zvcih2YXIgYT1bXS5jb25jYXQodGhpcy5nKSxiPTA7YjxhLmxlbmd0aDsrK2IpeW8oYVtiXSkmJk90KGFbYl0sdGhpcy5oKX07dmFyIGl2PWZ1bmN0aW9uKGEsYixjKXt0aGlzLmc9M0UzO3RoaXMuaD1bXTt0aGlzLmo9bnVsbDt0aGlzLm89YTt0aGlzLkViPWI7dGhpcy5GYj1jO3RoaXMubD1hJiZ0eXBlb2YgYS5sPT09ImZ1bmN0aW9uIj9hLmwoKXx8MThFMzoxOEUzfSxrdj1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGcsaCxrLGwsbixxO3JldHVybiBfLlZpKGZ1bmN0aW9uKHApe3N3aXRjaChwLmcpe2Nhc2UgMTpjPWxvKGIpO2Q9W107aWYoYy5sZW5ndGg+YS5nKWZvcihlPW5ldyBodShjLCExKSxmPSIiO2Y9a3UoZSxhLmcpOylkLnB1c2goZiksYS5nPGEubCYmKGEuZyo9NixhLmc+YS5sJiYoYS5nPWEubCkpO2Vsc2UgZC5wdXNoKGMpO2c9W107aD1fLkMoZCk7az1oLm5leHQoKTtjYXNlIDI6aWYoay5kb25lKXtwLnhhKDQpO2JyZWFrfWw9ay52YWx1ZTtuPWc7cT1uLnB1c2g7cmV0dXJuIHAuaChqdihhLGwpLDUpO2Nhc2UgNTpxLmNhbGwobixwLmopO2s9aC5uZXh0KCk7cC54YSgyKTticmVhaztjYXNlIDQ6cmV0dXJuIHAucmV0dXJuKHBvKGcuam9pbigiIikpKX19KX0sCmp2PWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGMsZCl7YS5oLnB1c2goe3RleHQ6YixyZXNvbHZlOmMscmVqZWN0OmR9KTthLmp8fChhLmo9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmZsdXNoKCl9LDUwKSl9KX07aXYucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5qPW51bGw7aWYodGhpcy5oLmxlbmd0aCE9PTApe3ZhciBhPXRoaXMuaDt0aGlzLmg9W107dmFyIGI9bmV3IHl1KHRoaXMubyk7YT1fLkMoYSk7Zm9yKHZhciBjPWEubmV4dCgpLGQ9e307IWMuZG9uZTtkPXtyYzp2b2lkIDB9LGM9YS5uZXh0KCkpZC5yYz1jLnZhbHVlLGM9QnUoW2QucmMudGV4dF0pLk5hKHRoaXMuRWIpLm5hKHRoaXMuRmIpLHp1KGIsYyxmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYpeyhmPXZuKGYpWzBdKSYmZlsxXT09PTIwMD9lLnJjLnJlc29sdmUoZlswXS50b1N0cmluZygpKTplLnJjLnJlamVjdCgiVHJhbnNsYXRpb24gZmFpbGVkIil9fShkKSkuY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYpe2UucmMucmVqZWN0KGYpfX0oZCkpfX07dmFyIGx2PWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxrLGwpe18udS5jYWxsKHRoaXMpO3RoaXMuQz1hO3RoaXMuRmM9Yjt0aGlzLmxmPW5ldyBmdjt0aGlzLmZiPWN8fG51bGw7dGhpcy5JYT1sfHxudWxsO3RoaXMuSz1udWxsO3RoaXMuSWQ9ISFkO3RoaXMuamk9ZXx8InRyYW5zcGFyZW50Ijt0aGlzLmlpPSEhZjt0aGlzLkY9W107dGhpcy55Zj10aGlzLkk9dGhpcy5nPSExO3RoaXMubz1ofHxuZXcgdHQ7dGhpcy5EaT0haDt0aGlzLndhPWd8fHh0LmcoKTt0aGlzLlVlPW5ldyBjdTt0aGlzLkhiPXRoaXMuZ2I9dGhpcy5SPSExO3RoaXMuZGY9dGhpcy5BPS41O3RoaXMuamY9LjAxO3RoaXMuRD1uZXcgenQodGhpcy5BKTt0aGlzLmxhPSh0aGlzLkI9dGhpcy5yYT0hIWspP25ldyBNdXRhdGlvbk9ic2VydmVyKCgwLF8ueSkodGhpcy5RaCx0aGlzKSk6bnVsbDt0aGlzLkw9dGhpcy5YZT10aGlzLmo9dGhpcy5oPW51bGw7dGhpcy5QPTA7dGhpcy5PPW5ldyBNYXA7Xy54KHdpbmRvdywiYmx1ciIsCnRoaXMudGYsITAsdGhpcyk7Xy54KHdpbmRvdywiZm9jdXMiLHRoaXMudWYsITAsdGhpcyl9O18uQihsdixfLnUpO18ubT1sdi5wcm90b3R5cGU7Xy5tLkphPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaD90aGlzLmg6IiJ9O18ubS5vYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmo/dGhpcy5qOiIifTtfLm0uZ2g9ZnVuY3Rpb24oYSl7dGhpcy5vaS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5sJiZ0aGlzLmwoMCwhMSwxKX07Xy5tLmFmPWZ1bmN0aW9uKGEpe3RoaXMucGkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMubCYmdGhpcy5sKDAsITEsMSl9O18ubS5oaD1mdW5jdGlvbihhKXt0aGlzLnJpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmwmJnRoaXMubCgwLCExLDEpfTtfLm0uaWg9ZnVuY3Rpb24oYSl7dGhpcy50aS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5sJiZ0aGlzLmwoMCwhMSwxKX07Cl8ubS50cmFuc2xhdGU9ZnVuY3Rpb24oYSxiLGMsZCxlKXtpZihkfHxhIT10aGlzLmh8fGIhPXRoaXMuailtdih0aGlzKSx0aGlzLkRpJiYodGhpcy5vPW5ldyB0dCk7ZWxzZSBpZih0aGlzLmcpcmV0dXJuO3RoaXMubD1jO3RoaXMuQWk9ZTt0aGlzLkI9dGhpcy5yYTt0aGlzLmxhJiZ0aGlzLmxhLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSk7dGhpcy5nPSEwO3RoaXMuaD1hO3RoaXMuaj1iO3RoaXMuSWQmJih0aGlzLks9bmV3IGd2KGEsYikpO3RoaXMuSGI9dGhpcy5oPT0iYXV0byI7dGhpcy5mYiYmKGM9dGhpcy5mYixhJiYoYy5EPWEpLGImJihjLkY9YikpO3RoaXMuWGI9bmV3IGh2KHRoaXMuQyx0aGlzLmopO2IgaW4gY3YmJihhPXRoaXMubGYsYiBpbiBjdiYmKGI9Y3ZbYl0sYz0iQGltcG9ydCB1cmwoIitXbygiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSIpLnJlc29sdmUoV28oZXZbYl0pKS50b1N0cmluZygpKwoiKTsiLGM9eW4oYyksYS5nLnB1c2goYyksYj15bignYm9keSB7Zm9udC1mYW1pbHk6IicrYisnIiwiR29vZ2xlIFNhbnMiLCJOb3RvIFNhbnMiLHNhbnMtc2VyaWYgIWltcG9ydGFudH0nKSxhLmcucHVzaChiKSkpO18ub2koXy5aaShwcSw5KSk/KHRoaXMuWGU9bmV3IGl2KHRoaXMuRmMsdGhpcy5oLHRoaXMuaiksdGhpcy5QPTAsbnYodGhpcyksdGhpcy5QPT09MCYmdGhpcy5sJiZ0aGlzLmwoMTAwLCEwKSk6dGhpcy5HPW92KHRoaXMpOyhiPXRoaXMuQyBpbnN0YW5jZW9mIE5vZGU/dGhpcy5DOm51bGwpJiZwdihiLHRoaXMuail9Owp2YXIgb3Y9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEJ0KGEsYS53YSk7Q3QoYixhLnNmKTtFdChiLCgwLF8ueSkoYS5naCxhKSk7RnQoYixuZXcgQ3UoYS5GYyxbXS5jb25jYXQoYS5DKSxhLndhLGEubCxhLkIsYS5BaSkpO3JldHVybiBifSxudj1mdW5jdGlvbihhKXthLkw9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGIpe2IuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLmlzSW50ZXJzZWN0aW5nKXt2YXIgZD1jLmJvdW5kaW5nQ2xpZW50UmVjdDtkJiZkLndpZHRoPT09MCYmZC5oZWlnaHQ9PT0wfHwocXYoYSxjLnRhcmdldCksYS5MLnVub2JzZXJ2ZShjLnRhcmdldCkpfX0pfSk7W10uY29uY2F0KGEuQykuZm9yRWFjaChmdW5jdGlvbihiKXtydihhLGIpfSl9LHJ2PWZ1bmN0aW9uKGEsYixjKXtjPWM9PT12b2lkIDA/ITA6YztpZighUXR8fCEkdChiKSl7YS5FZj09PXZvaWQgMCYmKGEuRWY9ISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9Imdvb2dsZSJdW2NvbnRlbnQ9Im5vdHJhbnNsYXRlIl0sIG1ldGFbbmFtZT0icm9ib3RzIl1bY29udGVudD0ibm90cmFuc2xhdGUiXSwgbWV0YVtuYW1lPSJnb29nbGUiXVt2YWx1ZT0ibm90cmFuc2xhdGUiXSwgbWV0YVtuYW1lPSJ0cmFuc2xhdGUiXVtjb250ZW50PSJubyJdJykpOwppZihhLkVmKWM9ITE7ZWxzZSBpZihiLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe3ZhciBkPSJub3RyYW5zbGF0ZSIsZT0idHJhbnNsYXRlIjtRdCYmYnUmJihkPSJub3RyYW5zbGF0ZSIsZT0idHJhbnNsYXRlIik7ZD1iLmNsYXNzTGlzdCYmYi5jbGFzc0xpc3QuY29udGFpbnMoZCl8fGIuZ2V0QXR0cmlidXRlJiZiLmdldEF0dHJpYnV0ZSgidHJhbnNsYXRlIik9PT0ibm8iO2U9Yi5jbGFzc0xpc3QmJmIuY2xhc3NMaXN0LmNvbnRhaW5zKGUpfHxiLmdldEF0dHJpYnV0ZSYmYi5nZXRBdHRyaWJ1dGUoInRyYW5zbGF0ZSIpPT09InllcyI7Yz1kPyExOmU/ITA6Y31pZihiLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpYyYmXy5BYyhiLnRleHRDb250ZW50KSYmYi5wYXJlbnRFbGVtZW50JiZhLkwub2JzZXJ2ZShiLnBhcmVudEVsZW1lbnQpO2Vsc2UgaWYoYi5jaGlsZE5vZGVzKWZvcihlPTA7ZTxiLmNoaWxkTm9kZXMubGVuZ3RoO2UrKylydihhLGIuY2hpbGROb2Rlc1tlXSwKYyl9fSxxdj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz17fSxkPTA7ZDxiLmNoaWxkTm9kZXMubGVuZ3RoO2M9e2tiOnZvaWQgMH0sZCsrKWMua2I9Yi5jaGlsZE5vZGVzW2RdLGMua2Iubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmXy5BYyhjLmtiLnRleHRDb250ZW50KSYmKGEuUCsrLGEuTy5oYXMoYy5rYil8fGEuTy5zZXQoYy5rYixjLmtiLnRleHRDb250ZW50KSxrdihhLlhlLGMua2IudGV4dENvbnRlbnQpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGYpe2Uua2IudGV4dENvbnRlbnQ9Zn19KGMpKS5jYXRjaChmdW5jdGlvbigpe30pLmZpbmFsbHkoZnVuY3Rpb24oKXthLlAtLTthLlA9PT0wJiZhLmwmJmEubCgxMDAsITApfSkpfTtsdi5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbigpe212KHRoaXMpO3RoaXMuVWUucmVzdG9yZSgpO3ZhciBhPXRoaXMuQyBpbnN0YW5jZW9mIE5vZGU/dGhpcy5DOm51bGw7YSYmcHYoYSx0aGlzLkphKCkpfTsKbHYucHJvdG90eXBlLk09ZnVuY3Rpb24oKXtfLnUucHJvdG90eXBlLk0uY2FsbCh0aGlzKTt0aGlzLnJlc3RvcmUoKTtfLlVkKHdpbmRvdywiYmx1ciIsdGhpcy50ZiwhMCx0aGlzKTtfLlVkKHdpbmRvdywiZm9jdXMiLHRoaXMudWYsITAsdGhpcyl9O3ZhciBzdj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT13cihhLm8uaCksZj1uZXcgQnQoYSxiLkQpO2IuQy5wdXNoKGYpO0R0KGYsYi5JKTtGdShiLGUpO0N0KGYsZHx8YS5wZik7Yj1jfHxuZXcgWXUoW10sW10sYixhLkphKCksYS5vYSgpLGEueWYsYS5JLGEuSWEpO0V0KGYsYS5VaCxhKTthLkImJkR0KGYsYi5kb25lLGIpO0Z0KGYsYil9O18ubT1sdi5wcm90b3R5cGU7Xy5tLlVoPWZ1bmN0aW9uKGEsYixjKXtjLmRvbmUoKTt0aGlzLkk/dGhpcy5paChhKTp0aGlzLmhoKGEpO2Muby5JKCl9O18ubS51Zj1mdW5jdGlvbigpe3RoaXMuUj0hMTt0aGlzLlQ9MDt5dCh0aGlzLkQsdGhpcy5BKX07Cl8ubS50Zj1mdW5jdGlvbihhKXthLnRhcmdldD09d2luZG93JiYodGhpcy5SPSEwLHRoaXMuVD0wLHl0KHRoaXMuRCwuMDEpKX07Xy5tLlFoPWZ1bmN0aW9uKGEpe2lmKHRoaXMuZyYmdGhpcy5CKWlmKF8ub2koXy5aaShwcSw5KSkpZm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBjPWFbYl0uYWRkZWROb2RlcztpZihjKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXJ2KHRoaXMsY1tkXSl9ZWxzZXtmb3IoYj0wO2I8YS5sZW5ndGg7YisrKWlmKGFbYl0udGFyZ2V0JiZhW2JdLnRhcmdldC5jbGFzc05hbWUmJnR5cGVvZiBhW2JdLnRhcmdldC5jbGFzc05hbWU9PT0ic3RyaW5nIiYmKGFbYl0udGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCJ0cmFuc2xhdGUiKT49MHx8YVtiXS50YXJnZXQuY2xhc3NOYW1lLmluZGV4T2YoImdvb2ctIik9PTApKXJldHVybjt0aGlzLndhLmFkZCgoMCxfLnkpKHRoaXMuTWksdGhpcykpfX07Cl8ubS5NaT1mdW5jdGlvbigpe3RoaXMuST0hMDt0aGlzLkcmJih0aGlzLkcuc3RvcCgpLHRoaXMuRz1vdih0aGlzKSk7cmV0dXJuITF9O18ubS5zZj1mdW5jdGlvbihhLGIpe0R1KGIsR3QoYSkpO3N2KHRoaXMsYik7cmV0dXJuIHRoaXMuWWh9O18ubS5ZaD1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLmcpcmV0dXJuIEl0O2lmKCFIdChhKSlyZXR1cm4gSnQ7aWYoIXRoaXMuQilmb3IoYT0wO2E8dGhpcy5GLmxlbmd0aDsrK2Epe3ZhciBjPWIsZD0oMCxfLnkpKHRoaXMuTWUsdGhpcyxiLHRoaXMuRlthXSk7Yy5ELmFkZChkKX1yZXR1cm4gdGhpcy5YaH07Cl8ubS5uZj1mdW5jdGlvbihhLGIpe2lmKHRoaXMuVCYmIXRoaXMuUil7YT0obmV3IERhdGUpLmdldFRpbWUoKS10aGlzLlQ7dmFyIGM9dGhpcy5BO2E8OTAwJiZjPi4wMT9jPU1hdGgubWF4KGMqLjksLjAxKTphPjExMDAmJmM8LjUmJihjPU1hdGgubWluKGMqMS41LC41KSk7dGhpcy5BPWM7dGhpcy5nYj90aGlzLmpmPS4wMTp0aGlzLmRmPXRoaXMuQX10aGlzLkk9dGhpcy5nPSEwO3RoaXMuVD0obmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLkNpIT0oYT1kb2N1bWVudC5ib2R5LmlubmVyVGV4dHx8ZG9jdW1lbnQuYm9keS50ZXh0Q29udGVudHx8ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwpPyh0aGlzLkNpPWEsYT0hMCk6YT0hMTthPyh0aGlzLmdiPSExLHRoaXMuQT10aGlzLmRmLHRoaXMuUnx8eXQodGhpcy5ELHRoaXMuQSksRXUoYixbXS5jb25jYXQodGhpcy5DKSx0aGlzLkQpLGE9bmV3IEJ0KHRoaXMsdGhpcy5EKSxDdChhLHRoaXMuc2YpLEV0KGEsKDAsXy55KSh0aGlzLmFmLHRoaXMpKSwKRnQoYSxiKSx0aGlzLkc9YSk6KHRoaXMuZ2I9ITAsdGhpcy5BPXRoaXMuamYsdGhpcy5SfHx5dCh0aGlzLkQsdGhpcy5BKSxhPW5ldyBCdCh0aGlzLHRoaXMuRCksQ3QoYSx0aGlzLm5mKSxFdChhLCgwLF8ueSkodGhpcy5hZix0aGlzKSksRnQoYSxiKSx0aGlzLkc9YSk7cmV0dXJuIEl0fTtfLm0uWGg9ZnVuY3Rpb24oYSxiKXtpZighdGhpcy5nKXJldHVybiBJdDt0aGlzLkk9dGhpcy5nPSExO3RoaXMuSGI/R3UoYiwhMCk6KEd1KGIpLGIuUChiLmwpKTtpZih0aGlzLmlpKXJldHVybiB0aGlzLm5mO2IuY2xlYXIoKTtyZXR1cm4gSXR9Owp2YXIgdXY9ZnVuY3Rpb24oYSxiLGMpe2E6e3ZhciBkPXR2KGEpLGU9YS5mYixmPWEuamksZz1hLlVlLmc7Yj1HdChiKTtpZighYy5HKXtpZihjLnFhLmxlbmd0aD09MCl7Yy5sPT0wJiZjLnFiPT0wJiZjLkIoMCwhMCk7Yz0hMTticmVhayBhfWMuRz1JdShjLGQsZSxmLGcpfWMucmE9ITA7UnQoYy5HLGMuaixjLmgsYik7Yz0hMH1yZXR1cm4gYz9hLnBmOmEuU2N9LHR2PWZ1bmN0aW9uKGEpe3JldHVybiBhLklkPygwLF8ueSkoYS5LLm8sYS5LKTpmdW5jdGlvbigpe319O18ubT1sdi5wcm90b3R5cGU7Cl8ubS5wZj1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLmcpcmV0dXJuIEl0O3ZhciBjPWIubztpZihjLmc9PW51bGwpe2lmKCFjLnJhKXJldHVybiB1dih0aGlzLGEsYi5vKTtpZighSHQoYSkpcmV0dXJuIEp0O2MucmE9ITE7Yy5nPWMuRy5kY3x8bnVsbDt2YXIgZD1jLmc/Yy5nOmMuRz1udWxsO2lmKCFkKXJldHVybiB1dih0aGlzLGEsYi5vKTt0aGlzLkYucHVzaChkKTt2YXIgZT1kLm1hKCk7aWYodGhpcy5vLmhhcyhlLCF0aGlzLkIpfHxiLkdbZV0hPW51bGwmJmIuR1tlXSlyZXR1cm4gZT1jLmcuRCxjLmwrPWUsYy5qLT1lLGMuZz1udWxsLHRoaXMuQiYmSnUoYixkLCExKSx1dih0aGlzLGEsYi5vKTtlPXRoaXMubztkPWQubWEoKTtlLmdbZF09bnVsbH1iLmxiKCk+MCYmeXQodGhpcy5ELC41KTtyZXR1cm4gS3UoYyxiLHdyKHRoaXMuby5oKSk/dGhpcy5TYzp1dih0aGlzLGEsYi5vKX07Cl8ubS5TYz1mdW5jdGlvbihhLGIpe2lmKCF0aGlzLmd8fGIubGIoKT09MClyZXR1cm4gSXQ7c3YodGhpcyxiLm8pO3JldHVybiB0aGlzLkI/KGIudHJhY2tWaXNpYmlsaXR5KEd0KGEpKSx0aGlzLlpoKTpiLnRyYW5zbGF0ZShhKT09MD9JdDp0aGlzLnJmfTtfLm0uWmg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5nP0h0KGEpP2IudHJhbnNsYXRlKGEpPT0wP0l0OnRoaXMucmY6SnQ6SXR9OwpfLm0uTWU9ZnVuY3Rpb24oYSxiKXtiLmomJnRoaXMuby5yZW1vdmUoYi5sKTtpZighdGhpcy5nKXJldHVybiExO2lmKHRoaXMuby5oYXMoYi5tYSgpLCExKSl7dmFyIGM9dGhpcy5vO2MuaGFzKGIubCwhMSk/KGIuaD1jLnJlYWQoYi5sKSxiLkw9ITApOihjLnJlbW92ZShiLmwpLGIuaj0hMCk7cXQoYil9ZWxzZSBpZihjPXRoaXMubyxiLmopYy5yZW1vdmUoYi5sKTtlbHNlIGlmKGIuRil7dmFyIGQ9Yi5GLnJlcGxhY2UoLzxhIC9nLCI8c3BhbiAiKS5yZXBsYWNlKC9cL2E+L2csIi9zcGFuPiIpO2IuTD0hMDtkZWxldGUgYi5GO2IuRj1udWxsO2IuaD1bXTt2YXIgZT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLGY9ZS5jcmVhdGVFbGVtZW50KCJkaXYiKTttcChmLCExKTtkPWQuaW5kZXhPZigiPGk+Iik+PTA/ZDoiPGI+IitkKyI8L2I+IjtkPV8uS2IoZCk7ZD1fLm1sKGQpO2Yubm9kZVR5cGU9PT0xJiZNbChmKTtmLmlubmVySFRNTD1fLmtqKGQpOwplLmJvZHkuYXBwZW5kQ2hpbGQoZik7ZT1bXTtmb3IoZD1mLmZpcnN0Q2hpbGQ7ZDtkPWQubmV4dFNpYmxpbmcpaWYoZC50YWdOYW1lPT0iSSIpdmFyIGc9b3QoYixFbyhkKSxkLmlubmVySFRNTCk7ZWxzZSBpZihkLnRhZ05hbWU9PSJCIil7Z3x8KGc9b3QoYiwiIiwiIikpO2lmKGIuZy5sZW5ndGg9PTEpdXQoZy5VLGUsMCxkKTtlbHNle3ZhciBoPWU7dmFyIGs9ZDt2YXIgbD1iLmc7Zz1nLlU7Zm9yKHZhciBuPVtdLHE9ay5maXJzdENoaWxkO3E7cT1wKXt2YXIgcD1xLm5leHRTaWJsaW5nO3Z0KHEpfWZvcihwPWsuZmlyc3RDaGlsZDtwO3A9cC5uZXh0U2libGluZylwLmF0dHJpYnV0ZXMmJnAuYXR0cmlidXRlcy5pPyhrPXBhcnNlSW50KHAuYXR0cmlidXRlcy5pLm5vZGVWYWx1ZSwxMCksIWlzTmFOKGspJiZrPj0wJiZrPGwubGVuZ3RoJiYobFtrXS5yZCYmbltrXT9uW2tdLlorPXAuZmlyc3RDaGlsZCYmcC5maXJzdENoaWxkLm5vZGVUeXBlPT0zP3AuZmlyc3RDaGlsZC5ub2RlVmFsdWU6CkVvKHApOm5ba109dXQoZyxoLGsscCkpKTpwLm5vZGVUeXBlPT0zJiZnLnB1c2goe1g6LTEsWjpwbyhwLm5vZGVWYWx1ZSl9KTtnIT1udWxsJiZnLmxlbmd0aD4wJiZnWzBdLlg9PS0xJiYoZy5sZW5ndGg9PTE/Z1swXS5YPTA6KGdbMV0uWj1nWzBdLlorZ1sxXS5aLGcuc2hpZnQoKSkpfWc9dm9pZCAwfWQ9Yi5oO2ZvcihoPTA7aDxkLmxlbmd0aC0xOysraClsPWRbaF0sZz1rbyhsLlVbbC5VLmxlbmd0aC0xXS5aKSxnPWcuY2hhckNvZGVBdChnLmxlbmd0aC0xKSwxMjI4ODw9ZyYmZzw9MTIzNTF8fDY1MjgwPD1nJiZnPD02NTUxOXx8KGwuVVtsLlUubGVuZ3RoLTFdLlorPSIgIik7Xy5BZChmKTtmb3IoZj0wO2Y8Yi5nLmxlbmd0aDsrK2YpZjxlLmxlbmd0aCYmZjxiLkMubGVuZ3RoJiZlW2ZdIT1udWxsJiYoZD1iLkNbZl0saD1lW2ZdLnN0YXJ0LGghPW51bGwmJihsPWQuc3Vic3RyaW5nKDAsZC5sZW5ndGgtZC5yZXBsYWNlKC9eW1xzXHhhMF0rLywiIikubGVuZ3RoKSxsPT0iICImJgoobD0iIiksbCYmKGguWj1sK2guWi5yZXBsYWNlKC9eW1xzXHhhMF0rLywiIikpKSxoPWVbZl0uZW5kLGghPW51bGwmJihkPWQuc3Vic3RyaW5nKGtvKGQpLmxlbmd0aCksZD09IiAiJiYoZD0iIiksZCYmKGguWj1rbyhoLlopK2QpKSk7Yi5oLmxlbmd0aCE9MXx8Yi5oWzBdLmhlfHwoYi5oWzBdLmhlPWIubCk7Yy53cml0ZShiLmwsYi5oKTtxdChiKX1iLkl8fCh0aGlzLkhiPSExKTtjPWIuaj8hMDp2b2lkIDA7YS5XKz1iLkQ7YyE9bnVsbCYmKGEubGE9ITApO2I9TWF0aC5taW4oTWF0aC5mbG9vcihhLlcqMTAwL2EubCksMTAwKTtpZihhLkYhPWJ8fGMpYS5GPWIsYS5SPyhhLkIoYS5GLCEwLGMpLGEuUChhLlcpKTphLkIoYS5GLCExLGMpO3JldHVybiExfTsKXy5tLnJmPWZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuZylyZXR1cm4gSXQ7aWYoIUh0KGEpKXJldHVybiBKdDtpZihiLmxiKCk+MSl7YT1iLmxbMF07dmFyIGM9Yi5nO2lmKGEuanx8Yy5sZW5ndGg9PTB8fGEuZz09bnVsbHx8YS5nLmxlbmd0aD09MClhPW51bGw7ZWxzZXtmb3IodmFyIGQ9W10sZT1bXSxmPTA7ZjxhLmcubGVuZ3RoJiZmPGMubGVuZ3RoOysrZil7dmFyIGc9YS5nW2ZdO2cmJmdbMF0mJmdbMV09PTIwMHx8KGUucHVzaChjW2ZdKSxkLnB1c2goYS5vW2ZdKSl9YT1lLmxlbmd0aD4wP3tOaTpuZXcgZnUoZCwhMCksT2k6ZX06bnVsbH1hPWE/bmV3IFl1KFthLk5pXSxhLk9pLGIubyxiLmgsYi5qLGIucWEsYi5PLGIuQik6bnVsbDthIT1udWxsJiZzdih0aGlzLGIubyxhLHRoaXMuU2MpfWVsc2V7YT0hMTtmb3IoYz0wO2M8Yi5sLmxlbmd0aDsrK2MpZD1iLmxbY10sZC5qfHxkLmg9PTIwMCYmZC5nJiZkLmdbMF0/ZD1kLmw9ITE6KGQuaj0hMCxkPWQubD0hMCksYT1kfHxhO2lmKGEpcmV0dXJuIHRoaXMuU2N9ZD0KdGhpcy5KYSgpO2E9dGhpcy5vYSgpO2lmKGIuZy5sZW5ndGg+MSlpZihjPWIubFswXSxlPWQ9PSJhdXRvIixkPWIuZyxjLmg9PTIwMClmb3IoZj0wO2Y8Yy5nLmxlbmd0aCYmZjxkLmxlbmd0aDsrK2YpaWYoKGc9Yy5nW2ZdKSYmZ1sxXT09MjAwKXt2YXIgaD1nWzJdLGs9ZFtmXSxsPWssbj1oIT1udWxsJiZoPT1hO2wuRj1nWzBdO24hPT12b2lkIDAmJihsLks9bik7ay5JPWUmJmg9PW51bGx9ZWxzZSBkW2ZdLmo9ITA7ZWxzZSBmb3IoYT0wO2E8ZC5sZW5ndGg7KythKWRbYV0uaj0hMDtlbHNle2M9bmV3IGV1KGQ9PSJhdXRvIik7Zm9yKGQ9MDtkPGIubC5sZW5ndGg7KytkKWY9Yi5sW2RdLGU9YSxmLmg9PTIwMCYmZi5nJiZmLmdbMF0/KGY9Zi5nWzBdLGMuZy5wdXNoKGZbMF0pLGY9ZlsyXSxjLmg9Yy5oJiZmIT1udWxsJiZmPT1lLGYhPW51bGwmJihjLmw9ITEpKTpjLmo9ITA7Yi5GIT1udWxsJiYoYy5nLnB1c2goYi5GKSxiLkY9bnVsbCk7aWYoYT1iLmdbMF0pZD1jLm1hKCksZT1jLmgsCmEuRj1kLGUhPT12b2lkIDAmJihhLks9ZSksYS5JPWMubCxhLmo9Yy5qfWlmKHRoaXMuQil7YT0oMCxfLnkpKHRoaXMuTWUsdGhpcyk7Zm9yKGM9MDtjPGIuZy5sZW5ndGg7YysrKWEoYi5vLGIuZ1tjXSk7Zm9yKGM9MDtjPGIuQy5sZW5ndGg7YysrKWEoYi5vLGIuQ1tjXSk7JHUoYik7Yi5XPSEwO2IuSSYmYi5CJiYoYj1iLkIsLS1iLmg9PTAmJlZ1KGIuZykpfXJldHVybiBJdH07CnZhciBtdj1mdW5jdGlvbihhKXthLmxhJiZhLmxhLmRpc2Nvbm5lY3QoKTthLklhJiZhLklhLnJlc2V0KCk7YS5nJiYoYS5HJiZhLkcuc3RvcCgpLGEuZz0hMSxhLkk9ITEpO2lmKGEuRi5sZW5ndGgpe2Zvcih2YXIgYj0wO2I8YS5GLmxlbmd0aDsrK2IpYS5GW2JdLmRpc3Bvc2UoKTthLkY9W119YS5LIT1udWxsJiYoYS5LLnJlc3RvcmUoKSxhLks9bnVsbCk7YS5YYiE9bnVsbCYmKGEuWGIucmVzdG9yZSgpLGEuWGI9bnVsbCk7YS5PJiZhLk8uc2l6ZT4wJiYoYS5PLmZvckVhY2goZnVuY3Rpb24oYyxkKXtkLnRleHRDb250ZW50PWN9KSxhLk8uY2xlYXIoKSk7YS5MJiYoYS5MLmRpc2Nvbm5lY3QoKSxhLkw9bnVsbCk7YS5sZi5yZXN0b3JlKCl9LHB2PWZ1bmN0aW9uKGEsYil7YS5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIikmJmEuc2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIsYik7YS5nZXRBdHRyaWJ1dGUoImxhbmciKSYmYS5zZXRBdHRyaWJ1dGUoImxhbmciLGIpfTsKRHIuYXR0YWNoKDMwNDYsbHYucHJvdG90eXBlLHtvaToxLHJpOjIscGk6Myx0aTo0fSk7dmFyIHZ2PVdxKGNyKSx3dj1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsayxsLG4pe18udS5jYWxsKHRoaXMpO3RoaXMuTz1ifHxudWxsO3RoaXMuSz0hIWM7dGhpcy5HPWR8fCJ0cmFuc3BhcmVudCI7dGhpcy5EPWZ8fCIiO2I9Z3x8e2ZldGNoU3RhcnQ6MCxTazowfTthPWIuZmV0Y2hTdGFydHx8MDtiPWIuZmV0Y2hFbmR8fDA7dGhpcy5GPWEmJmI/Yi1hOjA7dGhpcy5SPURhdGUubm93KCktcnE7dGhpcy5BPSExO3RoaXMuZz1uZXcgUnIoZXx8IiIsdm9pZCAwLGYsbik7dGhpcy5JPW5ldyB6dCgxKTt0aGlzLkI9bmV3IHR0O3RoaXMubD1udWxsO3RoaXMuQz0hMDt0aGlzLm89Xy52LkludGVyc2VjdGlvbk9ic2VydmVyIT1udWxsO3RoaXMuTD1ofHxudWxsO2U9bmV3IGpyO2Y9bmV3IGxyKHRoaXMuZy5pbml0aWFsaXplLmJpbmQodGhpcy5nLGUucmVnaXN0ZXIoKSkpO3RoaXMuemM9bXIoZixlLmRlbGF5KCgwLF8ueSkodGhpcy56Yyx0aGlzKSkpO3RoaXMuUGM9bXIoZixlLmRlbGF5KCgwLF8ueSkodGhpcy5QYywKdGhpcykpKTt0aGlzLnFkPW1yKGYsZS5kZWxheSgoMCxfLnkpKHRoaXMucWQsdGhpcykpKTt0aGlzLnJlc3RvcmU9bXIoZixlLmRlbGF5KCgwLF8ueSkodGhpcy5yZXN0b3JlLHRoaXMpKSk7Zi5maW5pc2goKTtlLmZpbmlzaCgpO3BlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5tYXJrJiZwZXJmb3JtYW5jZS5tYXJrKFJxLHZvaWQgMCk7ZT1kcih2diwxKTtmPW5ldyBRbjtmPV8uVGooZiwxLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO2E6e2lmKHBlcmZvcm1hbmNlJiYoaD1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIiksaC5sZW5ndGg9PTEpKXtoPWhbMF07YnJlYWsgYX1oPW51bGx9aCYmKG49bmV3IEZtLG49Xy5UaihuLDEsIiIpLGE9R20oaC5zdGFydFRpbWUpLG49Xy5MKG4sMixhKSxhPUhtKGguZHVyYXRpb24pLG49Xy5MKG4sMyxhKSxhPW5ldyBQbixhPV8uVGooYSwxLGguaW5pdGlhdG9yVHlwZSksYT1fLlRqKGEsMixoLm5leHRIb3BQcm90b2NvbCksCmI9R20oaC53b3JrZXJTdGFydHx8MCksYT1fLkwoYSwzLGIpLGI9R20oaC5yZWRpcmVjdFN0YXJ0KSxhPV8uTChhLDQsYiksYj1HbShoLnJlZGlyZWN0U3RhcnQpLGE9Xy5MKGEsNCxiKSxiPUdtKGgucmVkaXJlY3RFbmQpLGE9Xy5MKGEsNSxiKSxiPUdtKGguZmV0Y2hTdGFydCksYT1fLkwoYSw2LGIpLGI9R20oaC5kb21haW5Mb29rdXBTdGFydCksYT1fLkwoYSw3LGIpLGI9R20oaC5kb21haW5Mb29rdXBFbmQpLGE9Xy5MKGEsOCxiKSxiPUdtKGguY29ubmVjdFN0YXJ0KSxhPV8uTChhLDksYiksYj1HbShoLmNvbm5lY3RFbmQpLGE9Xy5MKGEsMTAsYiksYj1HbShoLnNlY3VyZUNvbm5lY3Rpb25TdGFydCksYT1fLkwoYSwxMSxiKSxiPUdtKGgucmVzcG9uc2VTdGFydCksYT1fLkwoYSwxMyxiKSxiPUdtKGgucmVzcG9uc2VFbmQpLGE9Xy5MKGEsMTQsYiksYT1fLmprKGEsMTUsaC50cmFuc2ZlclNpemUpLGE9Xy5qayhhLDE2LGguZW5jb2RlZEJvZHlTaXplKSxhPV8uamsoYSwxNyxoLmRlY29kZWRCb2R5U2l6ZSksCm49Sm0obiw2LGEpLF8uTChmLDMsbiksbj1ObShScSkpJiYoaD1PbShVcSx7c3RhcnQ6aC5yZXNwb25zZUVuZCxlbmQ6bi5zdGFydFRpbWV8fHBlcmZvcm1hbmNlLm5vdygpfSkpJiYocGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMmJnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMoVXEpLGg9S20oaCksXy5MKGYsNCxoKSxoPVVuKGUpLF8uTChoLDQsZikpO2ZyKGUsMSl9O18uRyh3dixfLnUpO0RyLmF0dGFjaCgxNDA5Nyx3di5wcm90b3R5cGUse2JlOmZ1bmN0aW9uKCl7UW0odGhpcy5nLlRhKCk/InRlX2FmYXMiOiJ0ZV9hZmF1Iil9fSk7Xy5tPXd2LnByb3RvdHlwZTtfLm0uUGk9ZnVuY3Rpb24oYSl7dGhpcy5vPWF9O18ubS5TYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmcuVGEoKX07Cl8ubS56Yz1mdW5jdGlvbihhLGIpe3RoaXMuZy5TYSgpP3RoaXMuZy5vLnNlbmQoe2Rpc3BsYXlfbGFuZ3VhZ2U6YixrZXk6IkFJemFTeUJXRGowUUp2Vkl4OFhPaFJlZ1hYNV9TclJXeGhUNUhzNCJ9LGEpLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIGEoYyl9KToodGhpcy5iZSgpLGEobnVsbCkpfTsKXy5tLlBjPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nO2lmKGIpYShiKTtlbHNlIGlmKHRoaXMuZy5TYSgpKXtiPW5ldyBhcyhkb2N1bWVudC5ib2R5LCExLCExLDEsMSk7Zm9yKHZhciBjPVtdLGQ9MCxlPXRoaXMuZy5oLkhmO2MubGVuZ3RoK2Q8ZTspe3ZhciBmPWIubmV4dCgpO2lmKGYuZG9uZSlicmVhaztmPWYudmFsdWU7Yi5nPT0xJiYkdChmKT9icyhiKTpmLm5vZGVUeXBlPT0zJiYoZj1fLkFjKGpvKGYubm9kZVZhbHVlKSkpJiYoYy5wdXNoKGYpLGQrPWYubGVuZ3RoKX1Tcih0aGlzLmcsYSxjLmpvaW4oIiAiKSkudGhlbihmdW5jdGlvbihnKXthKGcpfSxmdW5jdGlvbihnKXtyZXR1cm4gYShudWxsLGcpfSl9ZWxzZSB0aGlzLmJlKCksYShudWxsLCEwKX07Cl8ubS5xZD1mdW5jdGlvbihhLGIsYyxkLGUpe3Z2LkViPWE7dnYuRmI9Yjt2YXIgZj1kcih2diwyKTtlcih2dixmKTt2YXIgZz1ObShScSk7aWYoZyl7dmFyIGg9Tm0oU3EpO2lmKGgpe3ZhciBrPU9tKFZxLHtzdGFydDpnLnN0YXJ0VGltZSxlbmQ6aC5zdGFydFRpbWV8fHBlcmZvcm1hbmNlLm5vdygpfSk7ayYmKGc9VW4oZiksaD1uZXcgU24saz1LbShrKSxoPV8uTChoLDEsayksXy5MKGcsNSxoKSxwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyYmcGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyhWcSkpfX1mcihmLDIpO2Y9e2RldGFpbDp7c291cmNlTGFuZ3VhZ2U6YSx0YXJnZXRMYW5ndWFnZTpifX07cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm1hcmsmJnBlcmZvcm1hbmNlLm1hcmsoU3EsZik7Zj1EYXRlLm5vdygpO0NyKCk7aWYoIWF8fHhyKGEsYikpYT0iYXV0byI7aWYoZXx8YSE9dGhpcy5ofHxiIT10aGlzLmopdGhpcy5CPW5ldyB0dDt0aGlzLmg9YTt0aGlzLmo9CmI7dGhpcy5nLlNhKCk/KGQ9ZHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMubCYmdGhpcy5sLmRpc3Bvc2UoKSx0aGlzLmw9bmV3IGx2KGQsdGhpcy5nLHRoaXMuTyx0aGlzLkssdGhpcy5HLCEwLHRoaXMuSSx0aGlzLkIsdGhpcy5vLHRoaXMuTCksdGhpcy5sLnlmPXRoaXMuQSx0aGlzLkM9ITAsdGhpcy5sLnRyYW5zbGF0ZShhLGIsYyxlLCgwLF8ueSkodGhpcy55aSx0aGlzLGYsYSxiKSkpOih0aGlzLmJlKCksYygwLCExLCEwKSl9O18ubS5wZz1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5sJiZ0aGlzLmwuZ307Xy5tLllmPWZ1bmN0aW9uKGEpe3RoaXMuQT1hfTtfLm0ucmVzdG9yZT1mdW5jdGlvbigpe3ZhciBhPWRyKHZ2LDMpO2VyKHZ2LGEpO2ZyKGEsMyk7cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm1hcmsmJnBlcmZvcm1hbmNlLm1hcmsoVHEsdm9pZCAwKTtDcigpO3RoaXMuZy5TYSgpJiZ0aGlzLmwmJnRoaXMubC5yZXN0b3JlKCl9OwpfLm0uTT1mdW5jdGlvbigpe0JyKCk7d3YuZWEuTS5jYWxsKHRoaXMpO3RoaXMuZy5kaXNwb3NlKCk7dGhpcy5sPXRoaXMuZz1udWxsO3RoaXMuQj1uZXcgdHR9OwpfLm0ueWk9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5DJiYodGhpcy5DPSExLGI9e3NsOmIsdGw6Yyx0ZXh0bGVuOmR9LHRoaXMuQSYmKGIuY3R0PSIxIiksdGhpcy5EIT0iIiYmKGIuc3A9dGhpcy5EKSxiLnR0dD1EYXRlLm5vdygpLWEsYi50dGw9dGhpcy5SLHRoaXMuRiYmKGIudHRmPXRoaXMuRiksdGhpcy5vJiYoYi5zcj0xKSxhPXBxLGM9W10sXy5vaShfLlppKGEsMikpJiZjLnB1c2goInNkYSIpLF8ub2koXy5aaShhLDMpKSYmYy5wdXNoKCJlZWlzIiksZD1fLmJqKGEsaXEsNiksXy5vaShfLlppKGQsMSkpJiZjLnB1c2goImVzdHMiKSxfLm9pKF8uWmkoYSw3KSkmJmMucHVzaCgiZWhjbSIpLF8ub2koXy5aaShhLDgpKSYmYy5wdXNoKCJlb3BhIiksXy5vaShfLlppKGEsOSkpJiZjLnB1c2goImVhZHQiKSxiLmVmPWMuam9pbigiLCIpLFFtKCJ0ZV90aW1lIixiKSl9O3ZhciB4dj1mdW5jdGlvbihhKXt4bi5jYWxsKHRoaXMsYSk7dGhpcy5BPW5ldyBfLkhiKHRoaXMpfTtfLkIoeHYseG4pO3h2LnByb3RvdHlwZS5TPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpO2EuY2xhc3NOYW1lPSJnb29nLXRlLWNvbWJvIjthLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsUi5FZSk7dGhpcy5PYShhKX07eHYucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7eG4ucHJvdG90eXBlLkxhLmNhbGwodGhpcyk7dGhpcy5aZSgpfTt4di5wcm90b3R5cGUuWmU9ZnVuY3Rpb24oKXtfLngodGhpcy5IKCksImNoYW5nZSIscHIodGhpcywiY2hhbmdlIikpO3RoaXMuZGlzcGF0Y2hFdmVudCgibG9hZCIpfTt4di5wcm90b3R5cGUuc2E9ZnVuY3Rpb24oKXt4bi5wcm90b3R5cGUuc2EuY2FsbCh0aGlzKTt0aGlzLkEuZGlzcG9zZSgpO3RoaXMuQT1udWxsfTsKdmFyIHl2PWZ1bmN0aW9uKGEsYil7YS5IKCkucGFyZW50Tm9kZSE9YiYmKGEuSCgpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYS5IKCkpLGIuYXBwZW5kQ2hpbGQoYS5IKCkpKX07Xy5tPXh2LnByb3RvdHlwZTtfLm0udWM9ZnVuY3Rpb24oYSl7dGhpcy5oLmllKHRoaXMuSCgpKTtmb3IodmFyIGIgaW4gYSlpZihhW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXSl7dmFyIGM9dGhpcy5oLlMoIk9QVElPTiIse3ZhbHVlOmJ9KTt0aGlzLmguU2IoYyxhW2JdKTt0aGlzLkgoKS5hcHBlbmRDaGlsZChjKX10aGlzLkgoKS5zZWxlY3RlZEluZGV4PTB9O18ubS5NYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkgoKS52YWx1ZX07Xy5tLmNiPWZ1bmN0aW9uKGEpe2lmKHRoaXMuSCgpLnZhbHVlIT1hKWZvcih2YXIgYj0wLGM7Yz10aGlzLkgoKS5vcHRpb25zLml0ZW0oYik7KytiKWlmKGMudmFsdWU9PWEpe3RoaXMuSCgpLnNlbGVjdGVkSW5kZXg9YjticmVha319OwpfLm0uQWM9ZnVuY3Rpb24oYSl7aWYoXy5vYyhhKT09InVuZGVmaW5lZCIpcmV0dXJuIHRoaXMuSCgpLm9wdGlvbnMuaXRlbSh0aGlzLkgoKS5zZWxlY3RlZEluZGV4KS50ZXh0O2Zvcih2YXIgYj0wLGM7Yz10aGlzLkgoKS5vcHRpb25zLml0ZW0oYik7KytiKWlmKGMudmFsdWU9PWEpcmV0dXJuIGMudGV4dH07Xy5tLlJiPWZ1bmN0aW9uKGEpe3RoaXMuSCgpLmRpc2FibGVkPSFhfTt2YXIgenY9ZnVuY3Rpb24oYSl7eHYuY2FsbCh0aGlzLGEpfTtfLkIoenYseHYpO3p2LnByb3RvdHlwZS5uYj1mdW5jdGlvbihhKXt0aGlzLnVjLmNhbGwodGhpcyxhKX07dmFyIEF2PWZ1bmN0aW9uKGEsYil7eHYuY2FsbCh0aGlzLGIpO3RoaXMuZz1hJiZKbChhKXx8e307dGhpcy5nLm9lPXRoaXMuZy5vZXx8MTE7dGhpcy5nLnBkPXRoaXMuZy5wZCE9MDt0aGlzLmcuZWI9QXF9O18uQihBdix4dik7Xy5tPUF2LnByb3RvdHlwZTtfLm0uS2M9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiR2EiKTt9OwpfLm0uUz1mdW5jdGlvbigpe3RoaXMuS2MoKTt0aGlzLkQ9dGhpcy5IKCk7dGhpcy5sPXdvKCJJRlJBTUUiLHtmcmFtZUJvcmRlcjowLCJjbGFzcyI6IlZJcGdKZC1aVmk5b2QteGwwN09iLU9FVm1jZCBza2lwdHJhbnNsYXRlIix0aXRsZTpSLkVlfSk7dGhpcy5sLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiO21wKHRoaXMubCwhMSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmwpfTsKXy5tLlplPWZ1bmN0aW9uKCl7dmFyIGE9Xy54Zi50ZXN0KG9xKT8icnRsIjoibHRyIixiPV8uTGIodGhpcy5nLmViKSxjPVModGhpcywibWVudUJvZHkiKTt0aGlzLkEuTih0aGlzLmwsImxvYWQiLHRoaXMucWcpO3RyKHRoaXMubCwoMCxfLnkpKGZ1bmN0aW9uKCl7dmFyIGQ9em8odGhpcy5sKSxlPXt9LGY9ZSYmZS5UZTtlPVduKFZuKF8ueWwoKSwiPGhlYWQ+IiksT3UoZSkpO2Y9JzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURjgiPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IicrUCh4cChiKSkrJyInKyhmPycgbm9uY2U9IicrUChZcChmKSkrJyInOiIiKSsnPjwvaGVhZD48Ym9keSBzY3JvbGw9Im5vIiBzdHlsZT0ibWFyZ2luOjBweDtvdmVyZmxvdzpoaWRkZW4iIGRpcj0iJytQKGEpKyciIG1hcmdpbkhlaWdodD0wIG1hcmdpbldpZHRoPTAgbGVmdE1hcmdpbj0wIHRvcE1hcmdpbj0wIGJvcmRlcj0wPjxkaXYgaWQ9IicrClAoYykrJyIgY2xhc3M9JztpZih3cCgiVklwZ0pkLVpWaTlvZC14bDA3T2IiLF8ucWwpKXt2YXIgZz1NcCgiVklwZ0pkLVpWaTlvZC14bDA3T2IiLm1hKCkpO2c9U3RyaW5nKGcpLnJlcGxhY2UoT3AsQ3ApfWVsc2UgZz0iVklwZ0pkLVpWaTlvZC14bDA3T2IiLnJlcGxhY2UoTnAsQ3ApO2U9Vm4oZSxmK2crIj48L2Rpdj48L2JvZHk+IikuVGIoKTtkLndyaXRlKF8ua2ooZSkpO2QuY2xvc2UoKX0sdGhpcykpfTtfLm0ucWc9ZnVuY3Rpb24oKXt0aGlzLmo9bmV3IF8ucmQoem8odGhpcy5sKSk7dGhpcy5MPXRoaXMuai5IKFModGhpcywibWVudUJvZHkiKSk7dGhpcy5BLk4odGhpcy5ELCJjbGljayIsdGhpcy5UZCk7Xy5TYz90aGlzLkEuTih0aGlzLmwsImJsdXIiLHRoaXMuUmMpOnRoaXMuQS5OKEFvKHRoaXMubCksImJsdXIiLHRoaXMuUmMpO3RoaXMuZGlzcGF0Y2hFdmVudCgibG9hZCIpfTsKXy5tLnNhPWZ1bmN0aW9uKCl7eHYucHJvdG90eXBlLnNhLmNhbGwodGhpcyk7Xy5BZCh0aGlzLmwpO3RoaXMuRD10aGlzLlQ9dGhpcy5CPXRoaXMuTD10aGlzLmo9dGhpcy5sPW51bGx9O18ubS5xZj1mdW5jdGlvbihhKXt0aGlzLm8hPWEuY3VycmVudFRhcmdldC52YWx1ZSYmKHRoaXMuY2IoYS5jdXJyZW50VGFyZ2V0LnZhbHVlKSx0aGlzLmRpc3BhdGNoRXZlbnQoImNoYW5nZSIpKTt0aGlzLlJjKCl9O18ubS5UZD1mdW5jdGlvbigpe0J2KHRoaXMpO0FvKHRoaXMubCkuZm9jdXMoKTt0aGlzLnJhPSEwfTtfLm0uUmM9ZnVuY3Rpb24oKXt0aGlzLnJhJiYodGhpcy5yYT0hMSxCdih0aGlzLCExKSxfLm1iKF8uc2QodGhpcy5EKSkuZm9jdXMoKSl9O18ubS5rZT1mdW5jdGlvbigpe307Xy5tLmxlPWZ1bmN0aW9uKCl7fTsKdmFyIEJ2PWZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGI9PSJ1bmRlZmluZWQifHxiKXthLmxlKCk7Yj1qcChhLkQsd2luZG93KTt2YXIgYz1iLnkrYS5ELm9mZnNldEhlaWdodCxkPWIueS1hLkcuaGVpZ2h0LGU9Yi54LGY9Yi54K2EuRC5vZmZzZXRXaWR0aC1hLkcud2lkdGg7aWYoXy5TYyYmIXNvKCkpe3ZhciBnPWRvY3VtZW50LmJvZHk7Yy09Zy5vZmZzZXRUb3A7ZC09Zy5vZmZzZXRUb3A7ZS09Zy5vZmZzZXRMZWZ0O2YtPWcub2Zmc2V0TGVmdH1lbHNlIGc9S24oZG9jdW1lbnQpLGMtPWcueSxkLT1nLnksZS09Zy54LGYtPWcueDtnPV8uaWIod2luZG93KTtiLnk9Yi55PD1nLmhlaWdodC1hLkcuaGVpZ2h0P2M6ZDtiLnk+Zy5oZWlnaHQtYS5HLmhlaWdodCYmKGIueT1nLmhlaWdodC1hLkcuaGVpZ2h0KTtiLnk8MCYmKGIueT0wKTtfLnhmLnRlc3Qob3EpP2IueD1mPj0wP2Y6ZTpiLng9ZTw9Zy53aWR0aC1hLkcud2lkdGg/ZTpmO2IueD5nLndpZHRoLWEuRy53aWR0aCYmKGIueD1nLndpZHRoLQphLkcud2lkdGgpO2IueDwwJiYoYi54PTApO2VwKGEubCxiKTttcChhLmwsITApO0N2KGEpfWVsc2UgYS5rZSgpLG1wKGEubCwhMSl9O18ubT1Bdi5wcm90b3R5cGU7Xy5tLk1hPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub307Cl8ubS51Yz1mdW5jdGlvbihhKXt0aGlzLmouaWUodGhpcy5MKTttcCh0aGlzLmwsITApO3RoaXMuSWE9YTt0aGlzLkI9W107Zm9yKHZhciBiIGluIGEpaWYoYVtiXSE9PU9iamVjdC5wcm90b3R5cGVbYl0paWYoYVtiXT09Ii0tLSIpe3ZhciBjPXtsaW5rOnRoaXMuai5TKCJESVYiLHtjbGFzc05hbWU6IlZJcGdKZC1aVmk5b2QtdkgxR21mLWhnRFV3ZSIsdmFsdWU6Yn0pLGdpOiEwfTt0aGlzLkIucHVzaChjKX1lbHNle2M9e2xpbms6dGhpcy5qLlMoIkEiLHtjbGFzc05hbWU6IlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQiLGhyZWY6IiMiLHZhbHVlOmJ9KX07dGhpcy5CLnB1c2goYyk7dmFyIGQ9dGhpcy5qLlMoIkRJViIse3N0eWxlOiJ3aGl0ZS1zcGFjZTpub3dyYXAifSk7dGhpcy5qLmFwcGVuZENoaWxkKGMubGluayxkKTt0aGlzLmcucGQmJnRoaXMuai5hcHBlbmRDaGlsZChkLHRoaXMuai5TKCJTUEFOIix7Y2xhc3NOYW1lOiJpbmRpY2F0b3IifSwiXHUyMDNhIikpOwp0aGlzLmouYXBwZW5kQ2hpbGQoZCx0aGlzLmouUygiU1BBTiIse2NsYXNzTmFtZToidGV4dCJ9LHR5cGVvZiBhW2JdPT09ImZ1bmN0aW9uIj9hW2JdKCk6YVtiXSkpO3RoaXMuQS5OKGMubGluaywiY2xpY2siLHRoaXMucWYpfWE9dGhpcy5CLmxlbmd0aC0xO2E9TWF0aC5yb3VuZCgoYS1hJXRoaXMuZy5vZSkvdGhpcy5nLm9lKSsxO3RoaXMuVD10aGlzLmouUygiVEFCTEUiLHtjZWxsc3BhY2luZzowLGNlbGxwYWRkaW5nOjAsYm9yZGVyOjB9KTtjPXRoaXMuai5TKCJUQk9EWSIpO2I9dGhpcy5qLlMoIlRSIix7dmFsaWduOiJ0b3AifSk7dGhpcy5MLmNsYXNzTmFtZT0iVklwZ0pkLVpWaTlvZC12SDFHbWYiO3RoaXMuai5hcHBlbmRDaGlsZCh0aGlzLkwsdGhpcy5UKTt0aGlzLmouYXBwZW5kQ2hpbGQodGhpcy5ULGMpO3RoaXMuai5hcHBlbmRDaGlsZChjLGIpO2ZvcihkPWM9MDtjPGE7KytjKXt2YXIgZT10aGlzLmouUygiVEQiKTt0aGlzLmouYXBwZW5kQ2hpbGQoYixlKTtmb3IodmFyIGY9CjA7ZjwxMSYmZDx0aGlzLkIubGVuZ3RoOysrZiwrK2QpdGhpcy5qLmFwcGVuZENoaWxkKGUsdGhpcy5CW2RdLmxpbmspO2MhPWEtMSYmKGU9dGhpcy5qLlMoIlREIix7ImNsYXNzIjoiVklwZ0pkLVpWaTlvZC12SDFHbWYtS3JoUE5iIn0sIlx1MDBhMCIpLHRoaXMuai5hcHBlbmRDaGlsZChiLGUpKX10aGlzLm89bnVsbDt0aGlzLmNiKHRoaXMuQlswXS5saW5rLnZhbHVlKTtDdih0aGlzKTttcCh0aGlzLmwsITEpfTtfLm0uQWM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuSWFbXy5vYyhhKT09InVuZGVmaW5lZCI/dGhpcy5vOmFdfTtfLm0ubWU9ZnVuY3Rpb24oKXt9OwpfLm0uY2I9ZnVuY3Rpb24oYSl7aWYodGhpcy5vIT1hKXt0aGlzLkFjKGEpJiYodGhpcy5vPWEsdGhpcy5tZSgpKTtmb3IodmFyIGI9MDtiPHRoaXMuQi5sZW5ndGg7KytiKXt2YXIgYz10aGlzLkJbYl07Yy5naXx8KGMubGluay5jbGFzc05hbWU9Yy5saW5rLnZhbHVlPT1hJiZ0aGlzLmcucGQ/IlZJcGdKZC1aVmk5b2QtdkgxR21mLWlibkM2Yi1nazZTTWQiOiJWSXBnSmQtWlZpOW9kLXZIMUdtZi1pYm5DNmIiKX19fTt2YXIgQ3Y9ZnVuY3Rpb24oYSl7cXAoYS5MLG9wKGEuVCkpO3FwKGEubCxvcChhLkwpKTthLkc9b3AoYS5sKX0sRHY9ZnVuY3Rpb24oYSxiKXtBdi5jYWxsKHRoaXMsYSxiKX07Xy5CKER2LEF2KTtfLm09RHYucHJvdG90eXBlOwpfLm0uS2M9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUygiYSIseyJhcmlhLWhhc3BvcHVwIjoidHJ1ZSJ9KTthLmNsYXNzTmFtZT0iVklwZ0pkLVpWaTlvZC14bDA3T2ItbFRCeGVkIjtfLm5sKGEsIiMiKTt0aGlzLkk9dGhpcy5oLlMoIlNQQU4iKTthLmFwcGVuZENoaWxkKHRoaXMuSSk7dGhpcy5QPXRoaXMuaC5TKCJJTUciLHtzcmM6Q3EsYWx0OiIiLHN0eWxlOiJiYWNrZ3JvdW5kLWltYWdlOnVybCgiK3hxKyIpO2JhY2tncm91bmQtcG9zaXRpb246LTE0cHggMHB4O2JvcmRlcjpub25lIix3aWR0aDoxNCxoZWlnaHQ6MTR9KTthLmFwcGVuZENoaWxkKHRoaXMuUCk7dGhpcy5PYShhKX07Xy5tLmtlPWZ1bmN0aW9uKCl7Xy5oaih0aGlzLlAsImJhY2tncm91bmRQb3NpdGlvbiIsIi0xNHB4IDBweCIpfTtfLm0ubGU9ZnVuY3Rpb24oKXtfLmhqKHRoaXMuUCwiYmFja2dyb3VuZFBvc2l0aW9uIiwiMHB4IDBweCIpfTsKXy5tLnNhPWZ1bmN0aW9uKCl7QXYucHJvdG90eXBlLnNhLmNhbGwodGhpcyk7dGhpcy5QPXRoaXMuST1udWxsfTtfLm0ubWU9ZnVuY3Rpb24oKXt0aGlzLmguU2IodGhpcy5JLHRoaXMuQWModGhpcy5vKXx8IiIpfTtfLm0ubmI9ZnVuY3Rpb24oYSl7dGhpcy51Yy5jYWxsKHRoaXMsYSl9O3ZhciBFdj1mdW5jdGlvbihhLGIpe0F2LmNhbGwodGhpcyxhLGIpfTtfLkIoRXYsQXYpO18ubT1Fdi5wcm90b3R5cGU7Cl8ubS5LYz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5TKCJhIix7ImFyaWEtaGFzcG9wdXAiOiJ0cnVlIn0pO2EuY2xhc3NOYW1lPSJWSXBnSmQtWlZpOW9kLXhsMDdPYi1sVEJ4ZWQiO18ubmwoYSwiIyIpO3RoaXMuST10aGlzLmguUygiU1BBTiIpO2EuYXBwZW5kQ2hpbGQodGhpcy5JKTthLmFwcGVuZENoaWxkKHRoaXMuaC5TKCJJTUciLHtzcmM6Q3EsYWx0OiIiLHdpZHRoOjEsaGVpZ2h0OjF9KSk7YS5hcHBlbmRDaGlsZCh0aGlzLmguUygiU1BBTiIse3N0eWxlOiJib3JkZXItbGVmdDoxcHggc29saWQgI2JiYiJ9LCJcdTIwMGIiKSk7YS5hcHBlbmRDaGlsZCh0aGlzLmguUygiSU1HIix7c3JjOkNxLGFsdDoiIix3aWR0aDoxLGhlaWdodDoxfSkpO3RoaXMuUD10aGlzLmguUygic3BhbiIse3N0eWxlOiJjb2xvcjojNzY3Njc2IiwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sIlx1MjViYyIpO2EuYXBwZW5kQ2hpbGQodGhpcy5QKTt0aGlzLk9hKGEpfTsKXy5tLmtlPWZ1bmN0aW9uKCl7Xy5oaih0aGlzLlAsImNvbG9yIiwiIzliOWI5YiIpfTtfLm0ubGU9ZnVuY3Rpb24oKXtfLmhqKHRoaXMuUCwiY29sb3IiLCIjZDVkNWQ1Iil9O18ubS5zYT1mdW5jdGlvbigpe0F2LnByb3RvdHlwZS5zYS5jYWxsKHRoaXMpO3RoaXMuUD10aGlzLkk9bnVsbH07Xy5tLm1lPWZ1bmN0aW9uKCl7dGhpcy5oLlNiKHRoaXMuSSx0aGlzLkFjKHRoaXMubyl8fCIiKX07Xy5tLm5iPWZ1bmN0aW9uKGEpe3RoaXMudWMuY2FsbCh0aGlzLGEpfTt2YXIgRnY9ZnVuY3Rpb24oYSxiKXtBdi5jYWxsKHRoaXMsYSxiKTt0aGlzLmcucGQ9ITF9O18uQihGdixBdik7CkZ2LnByb3RvdHlwZS5LYz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0iVklwZ0pkLVpWaTlvZC1MZ2JzU2UiO3ZhciBiPXRoaXMuaC5TKCJESVYiLHtzdHlsZToiYmFja2dyb3VuZDogdXJsKCIrd3ErIikgcmVwZWF0LXggMCAtMzlweCJ9KTthLmFwcGVuZENoaWxkKGIpO3RoaXMuST10aGlzLmguY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7Yi5hcHBlbmRDaGlsZCh0aGlzLkkpO3RoaXMuT2EoYSl9O0Z2LnByb3RvdHlwZS5zYT1mdW5jdGlvbigpe0F2LnByb3RvdHlwZS5zYS5jYWxsKHRoaXMpO3RoaXMuST1udWxsfTtGdi5wcm90b3R5cGUucWY9ZnVuY3Rpb24oYSl7dGhpcy5jYihhLmN1cnJlbnRUYXJnZXQudmFsdWUpO3RoaXMuZGlzcGF0Y2hFdmVudCgiY2hhbmdlIik7dGhpcy5SYygpfTt2YXIgR3Y9ZnVuY3Rpb24oYSxiKXt4bi5jYWxsKHRoaXMsYik7dGhpcy5nPWEmJkpsKGEpfHx7fTt0aGlzLmo9bmV3IF8uSGIodGhpcyl9O18uRyhHdix4bik7dmFyIEh2PXt6azowLEtqOjEsaGs6Mn07Xy5tPUd2LnByb3RvdHlwZTsKXy5tLlM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguY3JlYXRlRWxlbWVudCgiZGl2Iik7TnQoYSwic2tpcHRyYW5zbGF0ZSIpO050KGEsImdvb2ctdGUtZ2FkZ2V0Iik7YS5kaXI9Xy54Zi50ZXN0KG9xKT8icnRsIjoibHRyIjttcChhLCExKTtpZih0aGlzLmcubGF5b3V0PT0yKWltKGEsUXUoe2lkOlModGhpcywidGFyZ2V0TGFuZ3VhZ2UiKSxTZjoiIixSZjoiIn0pKTtlbHNle3ZhciBiPW5ldyB0bztpZihzcChfLlNjJiYhc28oKSkpdmFyIGM9IjxzcGFuIHN0eWxlPVwiZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2hlaWdodDoxNXB4OyB3aWR0aDo1MXB4O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlciggc3JjPSciK1N0cmluZyhGcSkucmVwbGFjZShScCxHcCkrIicsc2l6aW5nTWV0aG9kPSdzY2FsZScpO1wiPjwvc3Bhbj4iO2Vsc2UgYz1ocy53ZCxjPSc8aW1nIHNyYz0iJytQKFdwKEZxKSkrCiciIHdpZHRoPSIzN3B4IiBoZWlnaHQ9IjE0cHgiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAzcHgiIGFsdD0iR29vZ2xlICcrUChjKSsnIj4nO3ZhciBkPWhzLndkO3ZhciBlPSgwLF8udGwpKCc8c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6bm93cmFwIj48YSBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZCIpKyciIGhyZWY9IicrUChVcChHcSkpKyciIHRhcmdldD0iX2JsYW5rIj4nK2MrS3AoZCkrIjwvYT48L3NwYW4+Iik7Yz1iLmZvcm1hdDtkPVI7dmFyIGY9ZC56ZztlPWUuVGIoKTtlPXVvKGIse3R5cGU6Imh0bWwiLHhmOl8ua2ooZSkudG9TdHJpbmcoKX0pO2I9Yy5jYWxsKGIsZi5jYWxsKGQsZSkpO2ltKGEsUXUoe2lkOlModGhpcywidGFyZ2V0TGFuZ3VhZ2UiKSxTZjoiIixSZjp0aGlzLmcubGF5b3V0PT0xP1JsKFsiXHUwMGEwIiwiXHUwMGEwIixiXSk6Yn0pKX10aGlzLk9hKGEpfTsKXy5tLkxhPWZ1bmN0aW9uKCl7R3YuZWEuTGEuY2FsbCh0aGlzKTt0aGlzLmw9dGhpcy5nLmxheW91dD09Mj9uZXcgRXYobnVsbCx0aGlzLmgpOm5ldyB6dih0aGlzLmgpO3RoaXMuai5OKHRoaXMubCwiY2hhbmdlIixwcih0aGlzLCJjaGdfdGd0X2xhbmciKSk7dGhpcy5qLk4odGhpcy5sLCJsb2FkIix0aGlzLnJnKTt2YXIgYT10aGlzLmguSChTKHRoaXMsInRhcmdldExhbmd1YWdlIikpO2lmKHRoaXMuZy5sYXlvdXQ9PTIpe3ZhciBiPXRoaXMuaC5TKCJJTUciLHtzcmM6Q3EsImNsYXNzIjoiZ29vZy10ZS1nYWRnZXQtaWNvbiIsYWx0OiIifSk7Yi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9InVybCgiK3hxKyIpIjtiLnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbj0iLTY1cHggMHB4Ijt2YXIgYz10aGlzLmguUygiU1BBTiIse3N0eWxlOiJ2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlIn0pO2EuYXBwZW5kQ2hpbGQoYik7YS5hcHBlbmRDaGlsZChjKTt0aGlzLmwua2EoYyk7YS5zdHlsZS53aGl0ZVNwYWNlPQoibm93cmFwIjthLmNsYXNzTmFtZT0iZ29vZy10ZS1nYWRnZXQtc2ltcGxlIn1lbHNlIHRoaXMubC5rYShhKSx0aGlzLmcubGF5b3V0PT0xJiYoYS5zdHlsZS5kaXNwbGF5PSJpbmxpbmUiKX07Xy5tLnJnPWZ1bmN0aW9uKCl7aWYodGhpcy5nLmxheW91dD09Mil7dmFyIGE9dGhpcy5sLGI9dGhpcy5oLkgoUyh0aGlzLCJ0YXJnZXRMYW5ndWFnZSIpKTthLkEueWMoYS5ELCJjbGljayIsYS5UZCk7YS5EPWI7YS5BLk4oYS5ELCJjbGljayIsYS5UZCl9dGhpcy5kaXNwYXRjaEV2ZW50KCJsb2FkIil9O18ubS5zYT1mdW5jdGlvbigpe0d2LmVhLnNhLmNhbGwodGhpcyk7dGhpcy5qLmRpc3Bvc2UoKTt0aGlzLmo9bnVsbDt0aGlzLmwuZGlzcG9zZSgpO3RoaXMubD1udWxsfTtfLm0ub2E9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sLk1hKCl9O18ubS5uYT1mdW5jdGlvbihhKXthPT0iIj90aGlzLkwmJnRoaXMubC5uYih0aGlzLkwpOnRoaXMuSSYmdGhpcy5sLm5iKHRoaXMuSSk7dGhpcy5sLmNiKGEpfTsKXy5tLnBhPWZ1bmN0aW9uKGEpe21wKHRoaXMuSCgpLGEpfTtfLm0uUmI9ZnVuY3Rpb24oYSl7dGhpcy5sLlJiKGEpfTtfLm0udWU9ZnVuY3Rpb24oYSxiKXt0aGlzLkw9YTt0aGlzLkk9Yn07dmFyIEl2PWZ1bmN0aW9uKGEsYil7eG4uY2FsbCh0aGlzLGIpO3RoaXMuZz1hJiZKbChhKXx8e307dGhpcy5nLmVifHwodGhpcy5nLmViPUFxKTt0aGlzLmo9bmV3IF8uSGIodGhpcyl9O18uRyhJdix4bik7dmFyIEp2PXtwazoxLHFrOjIsbGo6Myxrajo0fTtfLm09SXYucHJvdG90eXBlO18ubS5TPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3RoaXMuRz0hMTttcChhLCExKTt2YXIgYj1TKHRoaXMsImNvbnRhaW5lciIpO2I9KDAsXy50bCkoJzxpZnJhbWUgaWQ9IicrUChiKSsnIiBmcmFtZUJvcmRlcj0wIHNyYz0iamF2YXNjcmlwdDpcJ1wnIiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLVNtZlotT0VWbWNkIikrJyBza2lwdHJhbnNsYXRlIiBzdHlsZT0idmlzaWJpbGl0eTp2aXNpYmxlIj48L2lmcmFtZT4nKTtpbShhLGIpO3RoaXMuT2EoYSl9OwpfLm0uTGE9ZnVuY3Rpb24oKXtJdi5lYS5MYS5jYWxsKHRoaXMpO3ZhciBhPV8ueGYudGVzdChvcSk/InJ0bCI6Imx0ciIsYj1fLkxiKHRoaXMuZy5lYiksYz1TKHRoaXMsInRyYW5zbGF0ZSIpLGQ9Q3EsZT14cTt0aGlzLkgoKS5pZD1TKHRoaXMsImZsb2F0Q29udGFpbmVyIik7dmFyIGY9e2lkOnRoaXMuSCgpLmlkLGNsYXNzTmFtZToiZ29vZy10ZS1mdGFiLWZsb2F0In07dGhpcy5IKCkuY2xhc3NOYW1lKz0iIGdvb2ctdGUtZnRhYi1mbG9hdCI7c3dpdGNoKHRoaXMuZy5OYyl7Y2FzZSAyOnZhciBnPSJnb29nLXRlLWZsb2F0LXRvcCI7Zi50b3A9MDtmLnJpZ2h0PTIwO2JyZWFrO2Nhc2UgMzpnPSJnb29nLXRlLWZsb2F0LWJvdHRvbSI7Zi5ib3R0b209MDtmLnJpZ2h0PTIwO2JyZWFrO2Nhc2UgNDpnPSJnb29nLXRlLWZsb2F0LWJvdHRvbSI7Zi5ib3R0b209MDtmLmxlZnQ9MjA7YnJlYWs7ZGVmYXVsdDpnPSJnb29nLXRlLWZsb2F0LXRvcCIsZi50b3A9MCxmLmxlZnQ9MjB9bnAoWm4obmV3IF8ueWYsCmYpLHRoaXMuSCgpKTt0aGlzLkI9dGhpcy5oLkgoUyh0aGlzLCJjb250YWluZXIiKSk7dGhpcy5qLk4odGhpcy5CLCJsb2FkIix0aGlzLnNnKTt0cih0aGlzLkIsKDAsXy55KShmdW5jdGlvbigpe3ZhciBoPXpvKHRoaXMuQiksaz1nLGw9e30sbj1sJiZsLlRlLHE9aHMuSWU7az1WbihXbihWbihfLnlsKCksIjxoZWFkPiIpLE91KGwpKSwnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGOCI+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJytQKHhwKGIpKSsnIicrKG4/JyBub25jZT0iJytQKFlwKG4pKSsnIic6IiIpKyc+PC9oZWFkPjxib2R5IGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtU21mWiIpKyIgIitQKGspKyciIHNjcm9sbD0ibm8iIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW4iIGRpcj0iJytQKGEpKyciPjxhIGlkPSInK1AoYykrJyIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iJysKUCgiVklwZ0pkLVpWaTlvZC1TbWZaLWhTUkdQZCIpKyciPjxpbWcgc3JjPSInK1AoV3AoZCkpKyciIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybCgnK1AoV3AoZSkpKycpO2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggMHB4Ij48c3Bhbj4nK0twKHEpKyI8L3NwYW4+PC9hPjwvYm9keT4iKS5UYigpO2gud3JpdGUoXy5raihrKSk7aC5jbG9zZSgpfSx0aGlzKSl9O18ubS5zZz1mdW5jdGlvbigpe3RoaXMubD0obmV3IF8ucmQoem8odGhpcy5CKSkpLkgoUyh0aGlzLCJ0cmFuc2xhdGUiKSk7dGhpcy5qLk4odGhpcy5sLCJjbGljayIscHIodGhpcywiY2xrX3RyYW5zIikpO21wKHRoaXMuSCgpLCEwKTt2YXIgYT1vcCh0aGlzLmwpO21wKHRoaXMuSCgpLCExKTtxcCh0aGlzLkIsYSk7cXAodGhpcy5IKCksYSk7dGhpcy5kaXNwYXRjaEV2ZW50KCJsb2FkIil9OwpfLm0uc2E9ZnVuY3Rpb24oKXtJdi5lYS5zYS5jYWxsKHRoaXMpO3RoaXMuai5kaXNwb3NlKCk7dGhpcy5qPW51bGw7Xy5BZCh0aGlzLkIpO3RoaXMubD10aGlzLkI9bnVsbH07Xy5tLmlzVmlzaWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLkd9O18ubS5wYT1mdW5jdGlvbihhKXt0aGlzLkc9YTttcCh0aGlzLkgoKSxhKX07dmFyIEt2PWZ1bmN0aW9uKGEsYil7eG4uY2FsbCh0aGlzLGIpO3RoaXMuQT1uZXcgXy5IYih0aGlzKTt0aGlzLmc9YSYmSmwoYSl8fHt9O3RoaXMuZy5lYj1BcTt0aGlzLmcud2U9ITE7Xy5oaih0aGlzLmguZy5ib2R5LCJwb3NpdGlvbiIsInJlbGF0aXZlIik7Xy5NaHx8Xy5oaih0aGlzLmguZy5ib2R5LCJtaW5IZWlnaHQiLCIxMDAlIik7Xy5oaih0aGlzLmguZy5kb2N1bWVudEVsZW1lbnQsImhlaWdodCIsIjEwMCUiKTtfLmhqKHRoaXMuaC5nLmJvZHksInRvcCIsIjBweCIpO18uU2MmJih3aW5kb3cuX2Jhbm5lcnF1aXJrZml4bGVmdD0tcGFyc2VJbnQoIjAiK3RoaXMuaC5nLmJvZHkubGVmdE1hcmdpbiwxMCksd2luZG93Ll9iYW5uZXJxdWlya2ZpeHRvcD0tcGFyc2VJbnQoIjAiK3RoaXMuaC5nLmJvZHkudG9wTWFyZ2luLDEwKS00MCl9O18uRyhLdix4bik7Xy5tPUt2LnByb3RvdHlwZTtfLm0ua2E9ZnVuY3Rpb24oKXt0aGlzLnFjKHRoaXMuaC5nLmJvZHkuZmlyc3RDaGlsZCl9OwpfLm0uUz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLkc9ITE7bXAoYSwhMSk7TnQoYSwic2tpcHRyYW5zbGF0ZSIpO3ZhciBiPVModGhpcywiY29udGFpbmVyIik7Yj0oMCxfLnRsKSgnPGlmcmFtZSBpZD0iJytQKGIpKyciIGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYi1PRVZtY2QiKSsnIHNraXB0cmFuc2xhdGUiIGZyYW1lQm9yZGVyPTAgc3JjPSIjIiBzdHlsZT0idmlzaWJpbGl0eTp2aXNpYmxlIj48L2lmcmFtZT4nKTtpbShhLGIpO3RoaXMuT2EoYSl9OwpfLm0uTGE9ZnVuY3Rpb24oKXtLdi5lYS5MYS5jYWxsKHRoaXMpO3ZhciBhPV8ueGYudGVzdChvcSk/InJ0bCI6Imx0ciIsYj1fLkxiKHRoaXMuZy5lYiksYz1DcSxkPUdxLGU9RHEsZj14cSxnPVModGhpcywicHJvbXB0U2VjdGlvbiIpLGg9Uyh0aGlzLCJjb25maXJtIiksaz1TKHRoaXMsInByb2dyZXNzU2VjdGlvbiIpLGw9Uyh0aGlzLCJwcm9ncmVzc1ZhbHVlIiksbj16cSxxPVModGhpcywiY2FuY2VsIikscD1TKHRoaXMsImZpbmlzaFNlY3Rpb24iKSxyPVModGhpcywicmVzdG9yZSIpLHQ9Uyh0aGlzLCJlcnJvclNlY3Rpb24iKSxBPVModGhpcywiZXJyb3JDb250ZW50IiksRD1TKHRoaXMsImNsb3NlIiksRT1TKHRoaXMsIm5vQXV0b1BvcHVwIiksYmEsWj1bXTt0aGlzLmcud2UmJloucHVzaChQdSh7aWQ6Uyh0aGlzLCJwcm9tcHRTb3VyY2VMYW5nIil9KSk7Wi5wdXNoKFB1KHtpZDpTKHRoaXMsInByb21wdFRhcmdldExhbmciKX0pKTt2YXIgdmk9bW0oUi5KZy5hcHBseShudWxsLApaKSk7Wj1bXTt0aGlzLmcud2UmJloucHVzaChQdSh7aWQ6Uyh0aGlzLCJmaW5pc2hTb3VyY2VMYW5nIil9KSk7Wi5wdXNoKFB1KHtpZDpTKHRoaXMsImZpbmlzaFRhcmdldExhbmciKX0pKTt2YXIgd2k9bW0oUi5EZy5hcHBseShudWxsLFopKTt0aGlzLmcuY2cmJihiYT10aGlzLmcuY2cpO3RoaXMuQj10aGlzLmguSChTKHRoaXMsImNvbnRhaW5lciIpKTt0aGlzLkEuTih0aGlzLkIsImxvYWQiLHRoaXMudGcpO3RyKHRoaXMuQiwoMCxfLnkpKGZ1bmN0aW9uKCl7dmFyIGFnPXpvKHRoaXMuQiksWGM9YmEsTGQ9e30sRGU9TGQmJkxkLlRlLEVlPWhzLndkLHhpPWhzLkllLGJnPWhzLkVnLHlpPWhzLm1nLHppPWhzLkFnLGNnPWhzLkFlLEFpPWhzLkFlO1hjPVZuKFduKFZuKF8ueWwoKSwiPGhlYWQ+IiksT3UoTGQpKSwnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGOCI+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJysKUCh4cChiKSkrJyInKyhEZT8nIG5vbmNlPSInK1AoWXAoRGUpKSsnIic6IiIpKyc+PC9oZWFkPjxib2R5IGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYiIpKyciIHNjcm9sbD0ibm8iIGJvcmRlcj0wIGRpcj0iJytQKGEpKyciPjx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTAgd2lkdGg9MTAwJSBoZWlnaHQ9MTAwJT48dHIgdmFsaWduPW1pZGRsZT48dGQgd2lkdGg9MSBub3dyYXA+PGEgaHJlZj0iJytQKFVwKGQpKSsnIiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLWw0ZUhYLWhTUkdQZCIpKyciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iJytQKFdwKGUpKSsnIiBhbHQ9Ikdvb2dsZSAnK1AoRWUpKyciPjwvYT48L3RkPicrKHNwKFhjKT8nPHRkIHdpZHRoPTE+PGltZyBzcmM9IicrUChXcChjKSkrJyIgd2lkdGg9IjkiIGhlaWdodD0iMTUiIHRpdGxlPSInK1AoWGMpKyciIGFsdD0iJytQKFhjKSsnIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTp1cmwoJysKUChXcChmKSkrJyk7YmFja2dyb3VuZC1wb3NpdGlvbjotNTZweCAwcHg7bWFyZ2luOjAgNHB4Ij48L3RkPic6IiIpKyc8dGQgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1PUkhiLUtFNnZxZSIpKyciPjwvdGQ+PHRkPjx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTAgaGVpZ2h0PTEwMCU+PHRyIGlkPSInK1AoZykrJyIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgdmFsaWduPW1pZGRsZT48dGQgbm93cmFwPjxzcGFuIGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYi1iTjk3UGMiKSsnIj4nK0twKHZpKSsnPC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYi1LRTZ2cWUiKSsnIj48L3RkPjx0ZCBub3dyYXA+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLUxnYnNTZSIpKyciPjxkaXY+PGJ1dHRvbiBpZD0iJytQKGgpKyciPjxiPicrS3AoeGkpKyc8L2I+PC9idXR0b24+PC9kaXY+PC9kaXY+PC90ZD48dGQgY2xhc3M9IicrClAoIlZJcGdKZC1aVmk5b2QtT1JIYi1LRTZ2cWUiKSsnIj48L3RkPjx0ZCBub3dyYXA+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLUxnYnNTZSIpKyciPjxkaXY+PGJ1dHRvbiBpZD0iJytQKEUpKyciPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvdGQ+PC90cj48dHIgaWQ9IicrUChrKSsnIiBzdHlsZT0iZGlzcGxheTpub25lIiB2YWxpZ249bWlkZGxlPjx0ZD48c3BhbiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLU9SSGItYk45N1BjIikrJyI+JytLcChiZykrJyZuYnNwOzxzcGFuIGRpcj0ibHRyIj4oPGIgaWQ9IicrUChsKSsnIj48L2I+JSk8L3NwYW4+Jm5ic3A7PGltZyBzcmM9IicrUChXcChuKSkrJyI+PC9zcGFuPjwvdGQ+PHRkIGNsYXNzPSInK1AoIlZJcGdKZC1aVmk5b2QtT1JIYi1LRTZ2cWUiKSsnIj48L3RkPjx0ZCBub3dyYXA+PGRpdiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLUxnYnNTZSIpKyciPjxkaXY+PGJ1dHRvbiBpZD0iJytQKHEpKyciPicrS3AoeWkpKwonPC9idXR0b24+PC9kaXY+PC9kaXY+PC90ZD48L3RyPjx0ciBpZD0iJytQKHApKyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjx0ZD48c3BhbiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLU9SSGItYk45N1BjIikrJyI+JytLcCh3aSkrJzwvc3Bhbj48L3RkPjx0ZCBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLU9SSGItS0U2dnFlIikrJyI+PC90ZD48dGQgbm93cmFwPjxkaXYgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1MZ2JzU2UiKSsnIj48ZGl2PjxidXR0b24gaWQ9IicrUChyKSsnIj4nK0twKHppKSsnPC9idXR0b24+PC9kaXY+PC9kaXY+PC90ZD48L3RyPjx0ciBpZD0iJytQKHQpKyciIHN0eWxlPSJkaXNwbGF5Om5vbmUiIHZhbGlnbj1taWRkbGU+PHRkPjxzcGFuIGlkPSInK1AoQSkrJyIgY2xhc3M9IicrUCgiVklwZ0pkLVpWaTlvZC1PUkhiLWJOOTdQYyIpKyciPjwvc3Bhbj48L3RkPjwvdHI+PC90YWJsZT48L3RkPjx0ZCBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLU9SSGItS0U2dnFlIikrCiciPjwvdGQ+PHRkIHdpZHRoPTEgaWQ9Im9wdGlvbnMiPjwvdGQ+PHRkIHdpZHRoPTE+PGEgaWQ9IicrUChEKSsnIiBjbGFzcz0iJytQKCJWSXBnSmQtWlZpOW9kLVR2RDlQYy1oU1JHUGQiKSsnIiBocmVmPSIjIiB0aXRsZT0iJytQKGNnKSsnIj48aW1nIHNyYz0iJytQKFdwKGMpKSsnIiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGFsdD0iJytQKEFpKSsnIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTp1cmwoJytQKFdwKGYpKSsnKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yOHB4IDBweCI+PC9hPjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT4nKS5UYigpO2FnLndyaXRlKF8ua2ooWGMpKTthZy5jbG9zZSgpfSx0aGlzKSl9OwpfLm0udGc9ZnVuY3Rpb24oKXt0aGlzLmo9bmV3IF8ucmQoem8odGhpcy5CKSk7THYodGhpcyxSLkNlKTtpZih0aGlzLmcuZWI9PUFxKXt2YXIgYT0idXJsKCIrd3ErIikiO18uaGoodGhpcy5qLmcuYm9keSwiYmFja2dyb3VuZEltYWdlIixhKTtmb3IodmFyIGI9dGhpcy5qLmcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJ1dHRvbiIpLGM9MDtjPGIubGVuZ3RoOysrYyl7dmFyIGQ9YltjXS5wYXJlbnROb2RlO18uaGooZCwiYmFja2dyb3VuZEltYWdlIixhKTtfLmhqKGQsImJhY2tncm91bmRSZXBlYXQiLCJyZXBlYXQteCIpO18uaGooZCwiYmFja2dyb3VuZFBvc2l0aW9uIiwiMCAtMzlweCIpfX10aGlzLmcud2UmJih0aGlzLm89bmV3IER2KHRoaXMuZyx0aGlzLmopKTt0aGlzLmw9bmV3IER2KHRoaXMuZyx0aGlzLmopO3RoaXMuRD1uZXcgRnYodGhpcy5nLHRoaXMuaik7dGhpcy5BLk4odGhpcy5qLkgoUyh0aGlzLCJjb25maXJtIikpLCJjbGljayIscHIodGhpcywiY2xrX2NvbmZpcm0iKSk7CnRoaXMuQS5OKHRoaXMuai5IKFModGhpcywiY2FuY2VsIikpLCJjbGljayIscHIodGhpcywiY2xrX2NhbmNlbCIpKTt0aGlzLkEuTih0aGlzLmouSChTKHRoaXMsInJlc3RvcmUiKSksImNsaWNrIixwcih0aGlzLCJjbGtfcmVzdG9yZSIpKTt0aGlzLkEuTih0aGlzLmouSChTKHRoaXMsImNsb3NlIikpLCJjbGljayIscHIodGhpcywiY2xrX2Nsb3NlIikpO3RoaXMuUD10aGlzLmouSChTKHRoaXMsIm5vQXV0b1BvcHVwIikpO3RoaXMuQS5OKHRoaXMuUCwiY2xpY2siLHByKHRoaXMsImNsa19ub19hcCIpKTt0aGlzLm8mJnRoaXMuQS5OKHRoaXMubywiY2hhbmdlIixwcih0aGlzLCJjaGdfc3JjX2xhbmciKSk7dGhpcy5BLk4odGhpcy5sLCJjaGFuZ2UiLHByKHRoaXMsImNoZ190Z3RfbGFuZyIpKTt0aGlzLkEuTih0aGlzLkQsImNoYW5nZSIsdGhpcy5SaCk7YT1uZXcganIoKDAsXy55KSh0aGlzLnVnLHRoaXMpKTt0aGlzLm8mJnRoaXMuQS5OKHRoaXMubywibG9hZCIsYS5yZWdpc3RlcigpKTsKdGhpcy5BLk4odGhpcy5sLCJsb2FkIixhLnJlZ2lzdGVyKCkpO3RoaXMuQS5OKHRoaXMuRCwibG9hZCIsYS5yZWdpc3RlcigpKTthLmZpbmlzaCgpO3RoaXMubyYmdGhpcy5vLmthKHRoaXMuai5IKFModGhpcywicHJvbXB0U291cmNlTGFuZyIpKSk7dGhpcy5sLmthKHRoaXMuai5IKFModGhpcywicHJvbXB0VGFyZ2V0TGFuZyIpKSk7dGhpcy5ELmthKHRoaXMuai5IKCJvcHRpb25zIikpfTtfLm0udWc9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLkQsYj1SLnlnO18uemQoYS5JKTthLkkuYXBwZW5kQ2hpbGQoYS5oLmNyZWF0ZVRleHROb2RlKGIrIlx1MDBhMFx1MjViYyIpKTt0aGlzLkQudWMoe3R1cm5fb2ZmX3NpdGU6Ui5HZyxzMToiLS0tIixsZWFybl9tb3JlOlIueGd9KTt0aGlzLmRpc3BhdGNoRXZlbnQoImxvYWQiKX07Xy5tLlJoPWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuRC5NYSgpKXtjYXNlICJsZWFybl9tb3JlIjp3aW5kb3cub3BlbihKcSwiX2JsYW5rIik7YnJlYWs7Y2FzZSAidHVybl9vZmZfc2l0ZSI6dGhpcy5kaXNwYXRjaEV2ZW50KCJjbGtfbm9fYXBfc2l0ZSIpfX07Cl8ubS5zYT1mdW5jdGlvbigpe3RoaXMucGEoITEpO0t2LmVhLnNhLmNhbGwodGhpcyk7dGhpcy5BLmRpc3Bvc2UoKTt0aGlzLkE9bnVsbDt0aGlzLm8mJih0aGlzLm8uZGlzcG9zZSgpLHRoaXMubz1udWxsKTt0aGlzLmwuZGlzcG9zZSgpO3RoaXMubD1udWxsO3RoaXMuRC5kaXNwb3NlKCk7dGhpcy5EPW51bGw7Xy5BZCh0aGlzLkIpO3RoaXMuYWM9dGhpcy5qPW51bGx9O18ubS5KYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm8/dGhpcy5vLk1hKCk6IiJ9O18ubS5vYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmwuTWEoKX07Xy5tLk5hPWZ1bmN0aW9uKGEpe3RoaXMubyYmdGhpcy5vLmNiKGEpO3RoaXMuVCYmdGhpcy5UW2FdJiZ0aGlzLmouU2IodGhpcy5QLFIuRmcodGhpcy5UW2FdKSl9O18ubS5uYT1mdW5jdGlvbihhKXt0aGlzLmwuY2IoYSl9Owp2YXIgTXY9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYS5hYyE9Yil7YS5hYz1iO2lmKGI9PTApe2EubyYmeXYoYS5vLGEuai5IKFMoYSwicHJvbXB0U291cmNlTGFuZyIpKSk7aWYoYS5MKXt2YXIgZT1hLm9hKCk7YS5sLm5iKGEuTCk7YS5uYShlKX15dihhLmwsYS5qLkgoUyhhLCJwcm9tcHRUYXJnZXRMYW5nIikpKX1lbHNlIGI9PTImJihhLm8mJnl2KGEubyxhLmouSChTKGEsImZpbmlzaFNvdXJjZUxhbmciKSkpLGEuSSYmKGU9YS5vYSgpLGEubC5uYihhLkkpLGEubmEoZSkpLHl2KGEubCxhLmouSChTKGEsImZpbmlzaFRhcmdldExhbmciKSkpKTtlPXt9O2VbLTFdPWEuai5IKFMoYSwiZXJyb3JTZWN0aW9uIikpO2VbMF09YS5qLkgoUyhhLCJwcm9tcHRTZWN0aW9uIikpO2VbMV09YS5qLkgoUyhhLCJwcm9ncmVzc1NlY3Rpb24iKSk7ZVsyXT1hLmouSChTKGEsImZpbmlzaFNlY3Rpb24iKSk7Zm9yKHZhciBmIGluIGUpZVtmXSE9PU9iamVjdC5wcm90b3R5cGVbZl0mJm1wKGVbZl0sZj09CmIpfWMmJmEucGEoITApO2EuUC5wYXJlbnROb2RlLnBhcmVudE5vZGUuc3R5bGUuZGlzcGxheT1kPyJibG9jayI6Im5vbmUifTtLdi5wcm90b3R5cGUuaXNWaXNpYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuR307Ckt2LnByb3RvdHlwZS5wYT1mdW5jdGlvbihhKXtpZih0aGlzLkchPWEpe3RoaXMuRz1hO2lmKF8uU2MpdmFyIGI9cGFyc2VJbnQoIjAiK3RoaXMuaC5nLmJvZHkubGVmdE1hcmdpbiwxMCksYz1wYXJzZUludCgiMCIrdGhpcy5oLmcuYm9keS50b3BNYXJnaW4sMTApO3ZhciBkPXRoaXMuaC5nLmNvbXBhdE1vZGU9PSJCYWNrQ29tcGF0IjthPyhfLmhqKHRoaXMuaC5nLmJvZHksInRvcCIsIjQwcHgiKSxtcCh0aGlzLkgoKSwhMCksXy5TYyYmKHNvKCk/KHdpbmRvdy5fYmFubmVycXVpcmtmaXhsZWZ0PXdpbmRvdy5fYmFubmVycXVpcmtmaXh0b3A9MCxkJiYodGhpcy5oLmcuYm9keS50b3BNYXJnaW49Yys0MCkpOmQ/KHRoaXMuaC5nLmJvZHkudG9wTWFyZ2luPWMrNDAsd2luZG93Ll9iYW5uZXJxdWlya2ZpeGxlZnQ9d2luZG93Ll9iYW5uZXJxdWlya2ZpeHRvcD0wKTood2luZG93Ll9iYW5uZXJxdWlya2ZpeGxlZnQ9LWIsd2luZG93Ll9iYW5uZXJxdWlya2ZpeHRvcD0tYy00MCkpKTooXy5oaih0aGlzLmguZy5ib2R5LAoidG9wIiwiMHB4IiksbXAodGhpcy5IKCksITEpLGQmJmM+PTQwJiYodGhpcy5oLmcuYm9keS50b3BNYXJnaW49Yy00MCkpfX07dmFyIE52PWZ1bmN0aW9uKGEsYil7YS5qLlNiKGEuai5IKFMoYSwicHJvZ3Jlc3NWYWx1ZSIpKSxiKX0sTHY9ZnVuY3Rpb24oYSxiKXthLmouU2IoYS5qLkgoUyhhLCJlcnJvckNvbnRlbnQiKSksYil9O0t2LnByb3RvdHlwZS51ZT1mdW5jdGlvbihhLGIpe3RoaXMuTD1hO3RoaXMuST1iO3RoaXMubC5uYihhKX07dmFyIFB2PWZ1bmN0aW9uKGEsYil7Xy51LmNhbGwodGhpcyk7Xy5vYyhhKT09InN0cmluZyImJihiPWEsYT17fSk7Xy5vYyhiKT09InN0cmluZyImJihiPWduKFN0cmluZyhiKSkpO3RoaXMuVD1iO3RoaXMuQT1uZXcgXy5IYih0aGlzKTt0aGlzLmxhPXZvaWQgMDthPU9iamVjdChhKTt0aGlzLm89ImF1dG8iOyEoYj13aW5kb3cucGFyZW50IT13aW5kb3cpJiYoYj0oIXdpbmRvdy5leHRlcm5hbHx8IXdpbmRvdy5leHRlcm5hbC5nb29nbGVUb29sYmFyVmVyc2lvbnx8cGFyc2VGbG9hdCh3aW5kb3cuZXh0ZXJuYWwuZ29vZ2xlVG9vbGJhclZlcnNpb24pPDYuMikmJighd2luZG93Lmd0YkV4dGVybmFsfHwhd2luZG93Lmd0YkV4dGVybmFsLmlzVHJhbnNsYXRlRW5hYmxlZHx8IXdpbmRvdy5ndGJFeHRlcm5hbC5pc1RyYW5zbGF0ZUVuYWJsZWQoKSkpJiYoYj1uYXZpZ2F0b3IuYXBwVmVyc2lvbiYmbmF2aWdhdG9yLmFwcFZlcnNpb24ubWF0Y2goL1xzQ2hyb21lXC8oKFxkKylcLihcZCspXC5bXGRcLl0rKVxzLyksCmI9IShiJiZiWzJdJiZiWzNdJiZOdW1iZXIoYlsyXSkqMUUzK051bWJlcihiWzNdKT49NDAwMSkpO3RoaXMuZz17RWQ6YixoZjohMSxGZDpudWxsLEVjOm51bGwsWGQ6W10sY2Y6W10sZGg6ITEsUGI6ITEsYXBpS2V5OiIiLGxheW91dDowLFZlOiExfTt0aGlzLklhPXtlYjpBcSxjZzp2cT09Imh0dHBzOi8vIj9SLkNnOm51bGx9O3RoaXMuUD17ZWI6QXEsTmM6bnVsbH07YSYmKCJhdXRvRGlzcGxheSJpbiBhJiYodGhpcy5nLkVkPXRoaXMuZy5FZCYmISFhLmF1dG9EaXNwbGF5KSwibXVsdGlsYW5ndWFnZVBhZ2UiaW4gYSYmKHRoaXMuZy5QYj0hIWEubXVsdGlsYW5ndWFnZVBhZ2UpLCJsYXlvdXQiaW4gYSYmKHRoaXMuZy5sYXlvdXQ9YS5sYXlvdXQpLGEucGFnZUxhbmd1YWdlJiYodGhpcy5nLmRkPXFyKGEucGFnZUxhbmd1YWdlKSksYS5pbmNsdWRlZExhbmd1YWdlcyYmKHRoaXMuZy5YZD1hLmluY2x1ZGVkTGFuZ3VhZ2VzLnNwbGl0KCIsIikpLGEuZXhjbHVkZWRMYW5ndWFnZXMmJgoodGhpcy5nLmNmPWEuZXhjbHVkZWRMYW5ndWFnZXMuc3BsaXQoIiwiKSksYS5yZW1vdGVBcGlQcm94eUhhbmRsZXJzJiYodGhpcy5sYT1hLnJlbW90ZUFwaVByb3h5SGFuZGxlcnMpLHRoaXMuZy5kZCYmKHRoaXMubz10aGlzLmcuZGQpLGEua2V5JiYodGhpcy5nLmFwaUtleT1hLmtleSksdGhpcy5QLk5jPU51bWJlcihhLmZsb2F0UG9zaXRpb24pfHx0aGlzLlAuTmMsImRpc2FibGVBdXRvVHJhbnNsYXRpb24iaW4gYSYmKHRoaXMuZy5WZT0hIWEuZGlzYWJsZUF1dG9UcmFuc2xhdGlvbikpOyF0aGlzLmcuVmUmJk92KHRoaXMpJiYodGhpcy5nLmhmPSEwKTt0aGlzLkM9e307aWYoKGE9ZG9jdW1lbnQuY29va2llLm1hdGNoKC8oXnw7IClnb29ndHJhbnNvcHQ9KC4qPykoO3wkKS8pKSYmYVsyXSlmb3IodGhpcy5DPXt9LGE9Xy5EYihhWzJdKS5zcGxpdCgifCIpLGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXS5zcGxpdCgiPSIpO2NbMF0mJih0aGlzLkNbY1swXV09Y1sxXSl9dGhpcy53YT0KbmV3IFpzKHthcGlLZXk6dGhpcy5nLmFwaUtleSxoYzoxLHZlOiEwLGdtOkhxfSx7Y2xpZW50OnRxLHU6d2luZG93LmxvY2F0aW9uLmhyZWZ9KTt0aGlzLkY9bmV3IHd2KHZvaWQgMCx0aGlzLndhLHZvaWQgMCx2b2lkIDAsdGhpcy5nLmFwaUtleSx2b2lkIDAsdm9pZCAwLG5ldyBXdSx2b2lkIDAsdm9pZCAwLHRoaXMubGEpO3RoaXMuRz0hMTt0aGlzLkEuTih3aW5kb3csInBhZ2VoaWRlIix0aGlzLmRpc3Bvc2UpO3RoaXMuSz1uZXcganIoKDAsXy55KSh0aGlzLk1oLHRoaXMpKTt0aGlzLkk9bmV3IGpyKCgwLF8ueSkodGhpcy5PaCx0aGlzKSk7dGhpcy5PPW5ldyBscigoMCxfLnkpKHRoaXMua2ksdGhpcykpO3RoaXMuaD1uZXcgS3YodGhpcy5JYSk7dGhpcy5GLnpjKHRoaXMuSy5yZWdpc3RlcigoMCxfLnkpKHRoaXMuSmgsdGhpcykpLG9xKTt0aGlzLlQ/KHRoaXMubD1uZXcgR3YodGhpcy5nKSx0aGlzLkEuTih0aGlzLmwsImxvYWQiLHRoaXMuSy5yZWdpc3RlcigpKSx0aGlzLkEuTih0aGlzLmwsCiJjaGdfdGd0X2xhbmciLG1yKHRoaXMuTyx0aGlzLkkuZGVsYXkoKDAsXy55KSh0aGlzLkloLHRoaXMpKSkpLHRoaXMubC5rYSh0aGlzLlQpKTp0aGlzLlAuTmMmJih0aGlzLkI9bmV3IEl2KHRoaXMuUCksdGhpcy5BLk4odGhpcy5CLCJsb2FkIix0aGlzLksucmVnaXN0ZXIoKSksdGhpcy5BLk4odGhpcy5CLCJjbGtfdHJhbnMiLG1yKHRoaXMuTyx0aGlzLkkuZGVsYXkoKDAsXy55KSh0aGlzLkdoLHRoaXMpKSkpLHRoaXMuQi5rYSgpKTshdGhpcy5nLmRkJiZ0aGlzLmcuZGgmJnRoaXMuRi5QYyh0aGlzLksucmVnaXN0ZXIoKDAsXy55KSh0aGlzLkVoLHRoaXMpKSk7dGhpcy5LLmZpbmlzaCgpfTtfLkIoUHYsXy51KTsKdmFyIE92PWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZixnKXtpZihmPV8uRGIoZikubWF0Y2goIl5cXCgoKFthLXpBLVpcXC1fXSopXFx8KT8oW2EtekEtWlxcLV9dKilcXCl8Xi8oKFthLXpBLVpcXC1fXSopLyk/KFthLXpBLVpcXC1fXSopIikpe2lmKGZbM10pcmV0dXJuIGcuZy5GZD1mWzJdLGcuZy5FYz1mWzNdLCEwO2lmKGZbNl0pcmV0dXJuIGcuZy5GZD1mWzVdLGcuZy5FYz1mWzZdLCEwfXJldHVybiExfXZhciBjPXt1cmw6ZnVuY3Rpb24oKXt2YXIgZj13aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaCgvIy4qZ29vZ3RyYW5zKC4qKS8pO3JldHVybiBmJiZmWzFdfSxjb29raWU6ZnVuY3Rpb24oKXt2YXIgZj1kb2N1bWVudC5jb29raWUubWF0Y2goLyhefDsgKWdvb2d0cmFucz0oLio/KSg7fCQpLyk7cmV0dXJuIGYmJmZbMl19fSxkO2ZvcihkIGluIGMpaWYoY1tkXSE9PU9iamVjdC5wcm90b3R5cGVbZF0pe3ZhciBlPWNbZF0oKTtpZihlJiZiKGUsYSkpcmV0dXJuIGR9cmV0dXJuIiJ9LApRdj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKTtjLmxlbmd0aD4yOyljLnNoaWZ0KCk7Yz0iO2RvbWFpbj0iK2Muam9pbigiLiIpO2IhPW51bGw/YT1hKyI9IitiOihiPW5ldyBEYXRlLGIuc2V0VGltZShiLmdldFRpbWUoKS0xKSxhPWErIj1ub25lO2V4cGlyZXM9IitiLnRvR01UU3RyaW5nKCkpO2ErPSI7cGF0aD0vIjtkb2N1bWVudC5jb29raWU9YTt0cnl7ZG9jdW1lbnQuY29va2llPWErY31jYXRjaChkKXt9fSxSdj1mdW5jdGlvbihhLGIpe3ZhciBjPW51bGw7YiE9PXZvaWQgMCYmKGM9YSE9PXZvaWQgMD8iLyIrYSsiLyIrYjoiLyIrYik7UXYoImdvb2d0cmFucyIsYyl9O18ubT1Qdi5wcm90b3R5cGU7Cl8ubS5KaD1mdW5jdGlvbihhKXt0aGlzLmo9cXIob3EpO2E9YXx8e307dmFyIGI9YS50YXJnZXRMYW5ndWFnZXN8fFtdO3RoaXMuTD17c2w6V20oYS5zb3VyY2VMYW5ndWFnZXN8fFtdKSx0bDpXbShiKX07dGhpcy5EPXt9O3RoaXMuUj17fTthPSF0aGlzLmcuWGQubGVuZ3RoO2I9aXIodGhpcy5nLlhkKTt2YXIgYz1pcih0aGlzLmcuY2YpO3RoaXMuRFtvcV09IiI7dGhpcy5SW29xXT0iIjtmb3IodmFyIGQgaW4gdGhpcy5MLnRsKXRoaXMuTC50bFtkXT09PU9iamVjdC5wcm90b3R5cGVbZF18fCEoYXx8ZCBpbiBiKXx8ZCBpbiBjfHwodGhpcy5SW2RdPXRoaXMuTC50bFtkXSxkPT10aGlzLmcuZGQmJiF0aGlzLmcuUGIpfHwodGhpcy5EW2RdPXRoaXMuTC50bFtkXSk7dGhpcy5EW29xXXx8ZGVsZXRlIHRoaXMuRFtvcV07dGhpcy5SW29xXXx8ZGVsZXRlIHRoaXMuUltvcV07dGhpcy5yYT1KbCh0aGlzLkwuc2wpfTtfLm0uRWg9ZnVuY3Rpb24oYSl7YSYmKHRoaXMubz1xcihhKSl9OwpfLm0uTWg9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5LO2lmKHRoaXMuTCl7dGhpcy5vPXRoaXMub3x8dGhpcy5nLkZkO3RoaXMuaj10aGlzLmcuRWN8fHRoaXMuajt2YXIgYT10aGlzLmcuaGZ8fHRoaXMuZy5FZCYmdGhpcy5vIT10aGlzLmomJiEodGhpcy5vIGluIHNxKSYmdGhpcy5DLm9zIT0iMSImJnRoaXMuQ1sibyIrdGhpcy5vXSE9IjEiO3RoaXMubz09InpoLVRXIiYmKHRoaXMubz0iemgtQ04iKTt0aGlzLnJhW3RoaXMub118fChhPSExLHRoaXMubz0iYXV0byIpO2lmKCF0aGlzLkRbdGhpcy5qXSlpZihhPSExLHRoaXMuRC5lbil0aGlzLmo9ImVuIjtlbHNlIGZvcih2YXIgYiBpbiB0aGlzLkQpaWYodGhpcy5EW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXSl7dGhpcy5qPWI7YnJlYWt9aWYodGhpcy5sKXtiPXRoaXMuRDt2YXIgYz17IiI6Ui5CZ30sZDtmb3IoZCBpbiBiKWJbZF0hPT1PYmplY3QucHJvdG90eXBlW2RdJiYoY1tkXT1iW2RdKTt0aGlzLmwudWUoYyx0aGlzLlIpO3RoaXMubC5uYSgiIil9IXFxJiYKYT90aGlzLmcuRWM/bXIodGhpcy5PLHRoaXMuSS5kZWxheSgoMCxfLnkpKHRoaXMub2QsdGhpcywhMCwhMCkpKS5jYWxsKCk6KHRoaXMuRz0hMCxtcih0aGlzLk8sdGhpcy5JLmRlbGF5KCgwLF8ueSkodGhpcy5vZCx0aGlzKSkpLmNhbGwoKSxRbSgidGVfYXAiLHtzbDp0aGlzLm99KSk6KHRoaXMuQiYmdGhpcy5CLnBhKCEwKSx0aGlzLmwmJnRoaXMubC5wYSghMCkpO3dpbmRvdy5nb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZVNlcnZpY2UmJnRoaXMuUmIoITEpO3RoaXMuTy5maW5pc2goKX19OwpfLm0uT2g9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmgsYj10aGlzLnJhO2EubyYmYS5vLm5iKGIpO2EuVD1iO3RoaXMuaC51ZSh0aGlzLkQsdGhpcy5SKTt0aGlzLmguTmEodGhpcy5vKTt0aGlzLmgubmEodGhpcy5qKTt0aGlzLkEuTih0aGlzLmgsImNsa19jb25maXJtIix0aGlzLnloKTt0aGlzLkEuTih0aGlzLmgsImNsa19jYW5jZWwiLHRoaXMueGgpO3RoaXMuQS5OKHRoaXMuaCwiY2xrX3Jlc3RvcmUiLHRoaXMuUmQpO3RoaXMuQS5OKHRoaXMuaCwiY2xrX2Nsb3NlIix0aGlzLlFjKTt0aGlzLkEuTih0aGlzLmgsImNsa19ub19hcCIsdGhpcy56aCk7dGhpcy5BLk4odGhpcy5oLCJjbGtfbm9fYXBfc2l0ZSIsdGhpcy5BaCk7dGhpcy5BLk4odGhpcy5oLCJjaGdfc3JjX2xhbmciLHRoaXMubWYpO3RoaXMuQS5OKHRoaXMuaCwiY2hnX3RndF9sYW5nIix0aGlzLm1mKTt0aGlzLmwmJnRoaXMubC5wYSghMCl9OwpfLm0ua2k9ZnVuY3Rpb24oKXt0aGlzLkEuTih0aGlzLmgsImxvYWQiLHRoaXMuSS5yZWdpc3RlcigpKTt0aGlzLmgua2EoKTt0aGlzLkkuZmluaXNoKCl9O18ubS5NPWZ1bmN0aW9uKCl7dGhpcy5GLnJlc3RvcmUoKTtfLnUucHJvdG90eXBlLk0uY2FsbCh0aGlzKTt0aGlzLkYuZGlzcG9zZSgpO3RoaXMuQS5kaXNwb3NlKCk7dGhpcy5BPW51bGw7dGhpcy5oJiZ0aGlzLmguZGlzcG9zZSgpO3RoaXMuaD1udWxsO3RoaXMuQiYmdGhpcy5CLmRpc3Bvc2UoKTt0aGlzLkI9bnVsbDt0aGlzLmwmJnRoaXMubC5kaXNwb3NlKCk7dGhpcy5UPXRoaXMubD1udWxsfTtfLm0ueWg9ZnVuY3Rpb24oKXshdGhpcy5oLmlzVmlzaWJsZSgpfHwhdGhpcy5nLlBiJiZ4cih0aGlzLm8sdGhpcy5oLm9hKCkpfHwodGhpcy5HJiZRbSgidGVfYXB0Iix7c2w6dGhpcy5vfSksU3YodGhpcywhMSksdGhpcy5sJiZ0aGlzLmwubmEodGhpcy5oLm9hKCkpKX07Cl8ubS54aD1mdW5jdGlvbigpe3RoaXMuaC5pc1Zpc2libGUoKSYmKFR2KHRoaXMpLE12KHRoaXMuaCwwKSx0aGlzLmwmJnRoaXMubC5uYSgiIikpfTtfLm0uUmQ9ZnVuY3Rpb24oKXt0aGlzLmguaXNWaXNpYmxlKCkmJihUdih0aGlzKSxNdih0aGlzLmgsMCkpO3RoaXMubCYmdGhpcy5sLm5hKCIiKX07Xy5tLlFjPWZ1bmN0aW9uKCl7dGhpcy5oLmlzVmlzaWJsZSgpJiYodGhpcy5HJiYodGhpcy5HPSExLFFtKCJ0ZV9hcGMiLHtzbDp0aGlzLm99KSksVHYodGhpcyksdGhpcy5oLnBhKCExKSx0aGlzLmwmJnRoaXMubC5uYSgiIiksdGhpcy5CJiZ0aGlzLkIucGEoITApKX07Xy5tLnpoPWZ1bmN0aW9uKCl7dGhpcy5oLmlzVmlzaWJsZSgpJiYodGhpcy5DWyJvIit0aGlzLm9dPSIxIixRbSgidGVfYXByIix7c2w6dGhpcy5vfSksdGhpcy5HPSExLHRoaXMuUWMoKSl9OwpfLm0uQWg9ZnVuY3Rpb24oKXtpZih0aGlzLmguaXNWaXNpYmxlKCkpe3RoaXMuRz0hMTt0aGlzLkMub3M9IjEiO3ZhciBhPW51bGw7aWYodGhpcy5DKXthPVtdO2Zvcih2YXIgYiBpbiB0aGlzLkMpdGhpcy5DW2JdIT09T2JqZWN0LnByb3RvdHlwZVtiXSYmYS5wdXNoKGIrIj0iK3RoaXMuQ1tiXSk7YT1hLmpvaW4oInwiKX1RdigiZ29vZ3RyYW5zb3B0IixhKTt0aGlzLlFjKCl9fTtfLm0ubWY9ZnVuY3Rpb24oKXt0aGlzLmguaXNWaXNpYmxlKCkmJighdGhpcy5nLlBiJiZ4cih0aGlzLm8sdGhpcy5oLm9hKCkpP3RoaXMuUmQoKToodGhpcy5vPXRoaXMuaC5KYSgpfHx0aGlzLm8sdGhpcy5qPXRoaXMuaC5vYSgpLHRoaXMuaC5hYz09MiYmKHRoaXMubCYmdGhpcy5sLm5hKHRoaXMuaC5vYSgpKSxTdih0aGlzKSkpKX07Xy5tLm9kPWZ1bmN0aW9uKGEsYil7dGhpcy5oLmlzVmlzaWJsZSgpfHwodGhpcy5CJiZ0aGlzLkIucGEoITEpLGE/U3YodGhpcyxiKTpNdih0aGlzLmgsMCwhMCx0aGlzLkcpKX07Cl8ubS5SaT1mdW5jdGlvbihhLGIpe21yKHRoaXMuTyx0aGlzLkkuZGVsYXkoKDAsXy55KSh0aGlzLm9kLHRoaXMsYSxiKSkpLmNhbGwoKX07Xy5tLkdoPWZ1bmN0aW9uKCl7dGhpcy5vZCh0aGlzLmguYWM9PTIpfTtfLm0uSWg9ZnVuY3Rpb24oKXt0aGlzLmwub2EoKT8hdGhpcy5nLlBiJiZ4cih0aGlzLm8sdGhpcy5oLm9hKCkpP3RoaXMuUmQoKToodGhpcy5qPXRoaXMubC5vYSgpLHRoaXMuaC5uYSh0aGlzLmopLFN2KHRoaXMpKTp0aGlzLmwubmEodGhpcy5qKX07CnZhciBTdj1mdW5jdGlvbihhLGIpe2lmKHdpbmRvdy5nb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZVNlcnZpY2UpdHJ5e3dpbmRvdy5nb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZVNlcnZpY2UuZ2V0SW5zdGFuY2UoKS5yZXN0b3JlKCl9Y2F0Y2goYyl7fVJ2KGEubyxhLmopO2EuRz0hMTshYiYmYS5vIGluIHNxJiZRbSgidGVfYXBlIix7c2w6YS5vfSk7TnYoYS5oLDApO012KGEuaCwxLCEwKTthLkYuWWYoISFiKTt3aW5kb3cuc2V0VGltZW91dCgoMCxfLnkpKGEuRi5xZCxhLkYsYS5nLlBiPyJhdXRvIjphLm8sYS5qLCgwLF8ueSkoYS5mYixhKSx2b2lkIDAsdm9pZCAwKSwwKX07ClB2LnByb3RvdHlwZS5mYj1mdW5jdGlvbihhLGIsYyl7dHlwZW9mIHRoaXMuZ2I9PSJmdW5jdGlvbiImJnRoaXMuZ2IoKTt0aGlzLmguaXNWaXNpYmxlKCkmJnRoaXMuaC5hYz09MSYmKGM/KFR2KHRoaXMpLE12KHRoaXMuaCwtMSwhMCksYz09Mj9Mdih0aGlzLmgsUi53Zyk6THYodGhpcy5oLFIuQ2UpKTooTnYodGhpcy5oLGEpLGImJih0aGlzLmwmJnRoaXMubC5uYSh0aGlzLmopLHRoaXMuaC5OYSh0aGlzLm8pLE12KHRoaXMuaCwyKSkpKX07dmFyIFR2PWZ1bmN0aW9uKGEpe1J2KCk7d2luZG93LnNldFRpbWVvdXQoKDAsXy55KShhLkYucmVzdG9yZSxhLkYsbnVsbCksMCl9O1B2LnByb3RvdHlwZS5SYj1mdW5jdGlvbihhKXthfHx0aGlzLlFjKCk7dGhpcy5sJiZ0aGlzLmwuUmIoYSk7dGhpcy5CJiZ0aGlzLkIucGEoYSl9O3ZhciB6bj1mdW5jdGlvbihhKXtpZihhJiYoYT1TdHJpbmcoYSksYT1hLnNwbGl0KCIuIiksYS5sZW5ndGgpKXtmb3IodmFyIGI9d2luZG93LGM9MDtjPGEubGVuZ3RoOysrYyl7dmFyIGQ9YVtjXTtpZighKGQmJmQgaW4gYikpcmV0dXJuO2I9YltkXX1yZXR1cm4gYn19O3ZhciBVdj1udWxsLFZ2PWZ1bmN0aW9uKGEpe2lmKCFVdil7dmFyIGIsYyxkLGU7YSYmKCJrZXkiaW4gYSYmKGI9YS5rZXkpLCJzZXJ2ZXJQYXJhbXMiaW4gYSYmKGM9YS5zZXJ2ZXJQYXJhbXMpLCJ0aW1lSW5mbyJpbiBhJiYoZD1hLnRpbWVJbmZvKSwicmVtb3RlQXBpUHJveHlIYW5kbGVycyJpbiBhJiYoZT1hLnJlbW90ZUFwaVByb3h5SGFuZGxlcnMpLChhPXlyKCkpJiYoYz1hKSk7YT0wO2lmKHRxPT0idGVfbGliInx8Xy5XYylhPTM7VXY9bmV3IHd2KHZvaWQgMCxuZXcgWnMoe2FwaUtleTpiLGhjOmEsdmU6ITAsdHJhY2tWaXNpYmlsaXR5OmM9PSJ0dmlzIn0pLHZvaWQgMCx2b2lkIDAsYixjLGQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZSk7VXYuY29uc3RydWN0b3I9ZnVuY3Rpb24oKXt9O1V2LmlzQXZhaWxhYmxlPVV2LlNhO1V2LmdldFN1cHBvcnRlZExhbmd1YWdlcz1Vdi56YztVdi5nZXRQYWdlTGFuZ3VhZ2U9VXYuUGM7VXYuc2V0Q2xpY2tUaHJvdWdoPVV2LllmO1V2LnRyYW5zbGF0ZVBhZ2U9ClV2LnFkO1V2LnJlc3RvcmU9VXYucmVzdG9yZTtVdi5pc1RyYW5zbGF0aW5nPVV2LnBnO1V2LnNldENoZWNrVmlzaWJpbGl0eT1Vdi5QaX1yZXR1cm4gVXZ9O1Z2LmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIFV2fTt2YXIgV3Y9bnVsbCxYdj1mdW5jdGlvbihhLGIpe1d2fHwoV3Y9bmV3IFB2KGEsYiksV3YuY29uc3RydWN0b3I9ZnVuY3Rpb24oKXt9KTtyZXR1cm4gV3Z9O1h2LmdldEluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIFd2fTsKdmFyIFl2PWZ1bmN0aW9uKCl7dmFyIGE9em4oImdvb2dsZS50cmFuc2xhdGUubSIpO2F8fChmcygpLF8ucmMoImdvb2dsZS50cmFuc2xhdGUubSIsUSksYT1RKTtpZihhKWZvcih2YXIgYiBpbiBSKWlmKFJbYl0hPT1PYmplY3QucHJvdG90eXBlW1JbYl1dJiZSW2JdKXt2YXIgYz1SW2JdKCk7UltiXT1hW2NdP2FbY106Z3N9Xy5vaShfLlppKHBxLDEpKSYmKGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxiLnRleHRDb250ZW50PSJcbiAgLnRyYW5zbGF0ZWQtbHRye1xuICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC50cmFuc2xhdGVkLXJ0bHtcbiAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgIixhPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0sYXx8KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaGVhZCIpLGM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LApjLmluc2VydEJlZm9yZShhLGMuZmlyc3RDaGlsZCkpLGEuYXBwZW5kQ2hpbGQoYikpO0JuPT0xPyhfLnJjKCJnb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZVNlcnZpY2UiLFZ2KSxRbSgidGVfbGkiKSk6KF8ucmMoImdvb2dsZS50cmFuc2xhdGUuVHJhbnNsYXRlRWxlbWVudCIsWHYpLFB2LnByb3RvdHlwZS5kaXNwb3NlPVB2LnByb3RvdHlwZS5kaXNwb3NlLFB2LnByb3RvdHlwZS5zaG93QmFubmVyPVB2LnByb3RvdHlwZS5SaSxQdi5wcm90b3R5cGUuc2V0RW5hYmxlZD1Qdi5wcm90b3R5cGUuUmIsXy5yYygiZ29vZ2xlLnRyYW5zbGF0ZS5UcmFuc2xhdGVFbGVtZW50LkZsb2F0UG9zaXRpb24iLEp2KSxKdi5UT1BfTEVGVD0xLEp2LlRPUF9SSUdIVD0yLEp2LkJPVFRPTV9SSUdIVD0zLEp2LkJPVFRPTV9MRUZUPTQsXy5yYygiZ29vZ2xlLnRyYW5zbGF0ZS5UcmFuc2xhdGVFbGVtZW50LklubGluZUxheW91dCIsSHYpLEh2LlZFUlRJQ0FMPTAsSHYuSE9SSVpPTlRBTD0xLEh2LlNJTVBMRT0KMik7Q24oKX07CmlmKHdpbmRvdy5nb29nbGUmJndpbmRvdy5nb29nbGUudHJhbnNsYXRlJiZ3aW5kb3cuZ29vZ2xlLnRyYW5zbGF0ZS5fY29uc3QpWXYoKTtlbHNlIGlmKHdpbmRvdy5nb29nbGUmJndpbmRvdy5nb29nbGUudHJhbnNsYXRlJiZ3aW5kb3cuZ29vZ2xlLnRyYW5zbGF0ZS5fcHJvdG9Db25maWcpe3JxPW5ldyBEYXRlO3ZhciBadj1uZXcgbHEod2luZG93Lmdvb2dsZS50cmFuc2xhdGUuX3Byb3RvQ29uZmlnKTtPbj1fLk4oWnYsMjIpfHwiIjttcT1fLk4oWnYsNil8fCJwcm9kIjtucT1fLk4oWnYsMTIpfHwiIjtvcT1fLk4oWnYsMSl8fCJlbiI7QW49Xy5OKFp2LDIpfHwiIjt2YXIgJHY7KCR2PV8uYmooWnYsanEsMykpJiYocHE9JHYpO18uTihadiw4KTtxcT1fLk0oWnYsMTcpO3NxPXt9O3ZhciBhdzthdz1zbShadiwxOCxfLmFqKCkpO2Zvcih2YXIgYnc9MDtidzxhdy5sZW5ndGg7YncrKylzcVthd1tid11dPSEwO0JuPV8uTihadiw1KT09ImxpYiI/MTowO3RxPShfLk4oWnYsNCl8fCJ0ZSIpKwooQm49PTE/Il9saWIiOiIiKTtmcT1fLk4oWnYsOSl8fCIiO3ZhciBjdzsoY3c9Xy5OKFp2LDEwKSl8fChjdz1fLk4oWnYsMTEpKTt1cT1jd3x8IiI7dnE9Imh0dHBzOi8vIjt2YXIgZHc7ZHc9Xy5OKFp2LDEzKTt2YXIgZXc9dnErKGR3fHwiIikrIi90cmFuc2xhdGVfc3RhdGljLyI7d3E9ZXcrImltZy90ZV9iay5naWYiO3hxPWV3KyJpbWcvdGVfY3RybDMuZ2lmIjt6cT1ldysiaW1nL2xvYWRpbmcuZ2lmIjtBcT1fLk4oWnYsMTQpfHwiIjt5cT1fLk4oWnYsMTUpfHwiIjtCcT1fLk4oWnYsMTYpfHwiIjtDcT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbWFnZXMvY2xlYXJkb3QuZ2lmIjtEcT0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMXgvZ29vZ2xlbG9nb19jb2xvcl82OHgyOGRwLnBuZyI7RXE9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9wcm9kdWN0LzF4L3RyYW5zbGF0ZV8yNGRwLnBuZyI7RnE9Imh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzF4L2dvb2dsZWxvZ29fY29sb3JfNDJ4MTZkcC5wbmciOwpHcT0iaHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlLmNvbSI7S3EoKTtZdigpfTsKXy5tYSgpOwp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkuY2FsbCh0aGlzLHRoaXMuZGVmYXVsdF90cik7Ci8vIEdvb2dsZSBJbmMuCg=="}},"time_used":87,"timings":{"blocked":-1,"dns":2,"connect":15,"send":0,"wait":16,"receive":25,"ssl":28},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translate-pa.googleapis.com/v1/supportedLanguages?client=te\u0026display_language=no\u0026key=AIzaSyBWDj0QJvVIx8XOhRegXX5_SrRWxhT5Hs4\u0026callback=callback","fqdn":"translate-pa.googleapis.com","domain":"translate-pa.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"172.217.112.4","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"moz-nullprincipal:{0cc97465-d44d-4d0c-ba81-3f5cb983cd6f}?https://onchainopt.com","date":"2026-07-27T12:05:15.432Z","timestamp":1785153915432,"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":"WR2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:20 GMT","end":"Mon, 21 Sep 2026 08:39:19 GMT"},"fingerprint":{"sha1":"2A:E6:04:0E:76:A4:02:27:67:28:31:4D:E5:61:19:26:CA:0E:32:84","sha256":"D4:ED:C4:F8:DB:31:8A:2D:35:15:01:14:C0:49:CB:47:FF:5B:CC:17:14:82:63:9B:A8:6F:61:4D:AA:E5:96:94"}}},"request":{"raw":"GET /v1/supportedLanguages?client=te\u0026display_language=no\u0026key=AIzaSyBWDj0QJvVIx8XOhRegXX5_SrRWxhT5Hs4\u0026callback=callback HTTP/1.1\r\nHost: translate-pa.googleapis.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://onchainopt.com/\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\np3p: CP=\"This is not a P3P policy! See g.co/p3phelp for more info.\"\r\ncross-origin-resource-policy: cross-origin\r\ncontent-type: text/javascript; charset=UTF-8\r\nvary: Origin, X-Origin, Referer\r\ncontent-encoding: gzip\r\ndate: Mon, 27 Jul 2026 12:05:15 GMT\r\nserver: ESF\r\ncontent-length: 2635\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nset-cookie: NID=533=h8pXGFW14qatiGCmD1AnuEjC5s4V1a36weBO7kUDC5E3Fo66q_cNSMtTsuHqfVPgndjylWAOV5Ba5L8P9F4xIFMY-HJzJ1Tnz9-06ZwpiiWboyAS_LYRZnpZf4OEBFHzV9Q7IEBHf3eIDqjFgMoxu6VSEXAdQh6GQvBZ5eLmi5ufq5Sp7l88OoZ3M1kRMcgWE51oHCZFxtizXpbp1xhhMW8aJ27LmkoxKA; expires=Tue, 26-Jan-2027 12:05:15 GMT; path=/; domain=.translate-pa.googleapis.com; HttpOnly\r\nexpires: Mon, 27 Jul 2026 12:05:15 GMT\r\ncache-control: private\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":31482,"size_decoded":3504,"mime_type":"text/javascript; charset=UTF-8","magic":"Unicode text, UTF-8 text","md5":"91115de97ad1a90076e130223cdd90ad","sha1":"f3ad22e4fa892dfbff0d083bc0465fc3a2240317","sha256":"816e9881b1955d8beff3011d93481dad4c4de71bbd80b50ac267e7e45d4c3bad","sha512":"fbca69c3431240ab374b9ccfb06d76074059cdfe2f153743b292020271a8a3a36885189594a97fd74b43249b1f6359af62dfd0731e7b50e024f37faebdccf620","ssdeep":"192:Z6STcB9aqiD0+52DdKXrWryLxizUSTcB9aqdD0+52DdKXrWryLxG:JTcbaU3KXiMxidTcbah3KXiMxG","tlshash":"d0e267bae8b50d9b6a5e65b416fa2a03306041db4edc3c053b1c1e4c6fdec1e6c7169e","first_seen":"2025-09-02T05:12:23.753308Z","last_seen":"2026-07-30T06:08:30.838296Z","times_seen":8416,"resource_available":true,"data":"Ly8gQVBJIGNhbGxiYWNrCmNhbGxiYWNrKHsKICAic291cmNlTGFuZ3VhZ2VzIjogWwogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXV0byIsCiAgICAgICJuYW1lIjogIkdqZW5ramVubiBzcHLDpWsiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWIiLAogICAgICAibmFtZSI6ICJhYmtoYXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWNlIiwKICAgICAgIm5hbWUiOiAiYWNlaG5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhY2giLAogICAgICAibmFtZSI6ICJhY2hvbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWEiLAogICAgICAibmFtZSI6ICJhZmFyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFmIiwKICAgICAgIm5hbWUiOiAiYWZyaWthYW5zIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNxIiwKICAgICAgIm5hbWUiOiAiYWxiYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhbHoiLAogICAgICAibmFtZSI6ICJhbHVyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFtIiwKICAgICAgIm5hbWUiOiAiYW1oYXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXIiLAogICAgICAibmFtZSI6ICJhcmFiaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh5IiwKICAgICAgIm5hbWUiOiAiYXJtZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJheiIsCiAgICAgICJuYW1lIjogImFzZXJiYWpkc2phbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFzIiwKICAgICAgIm5hbWUiOiAiYXNzYW1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhdiIsCiAgICAgICJuYW1lIjogImF2YXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXdhIiwKICAgICAgIm5hbWUiOiAiYXdhZGhpIgogICAgfSwKICAgIHsKICAgICAibGFuZ3VhZ2UiOiAiYXkiLAogICAgICAibmFtZSI6ICJheW1hcmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmFuIiwKICAgICAgIm5hbWUiOiAiYmFsaW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYWwiLAogICAgICAibmFtZSI6ICJiYWx1dHNqaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibSIsCiAgICAgICJuYW1lIjogImJhbWJhcmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmNpIiwKICAgICAgIm5hbWUiOiAiYmFvdWzDqSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYSIsCiAgICAgICJuYW1lIjogImJhc2praXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJldSIsCiAgICAgICJuYW1lIjogImJhc2tpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnR4IiwKICAgICAgIm5hbWUiOiAiYmF0YWsga2FybyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJidHMiLAogICAgICAibmFtZSI6ICJiYXRhayBzaW1hbHVuZ3VuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJiYyIsCiAgICAgICJuYW1lIjogImJhdGFrIHRvYmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVtIiwKICAgICAgIm5hbWUiOiAiYmVtYmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYm4iLAogICAgICAibmFtZSI6ICJiZW5nYWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJldyIsCiAgICAgICJuYW1lIjogImJldGF3aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiaG8iLAogICAgICAibmFtZSI6ICJiaG9qcHVyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiaWsiLAogICAgICAibmFtZSI6ICJiaWtvbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJicyIsCiAgICAgICJuYW1lIjogImJvc25pc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnIiLAogICAgICAibmFtZSI6ICJicmV0b25zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZyIsCiAgICAgICJuYW1lIjogImJ1bGdhcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJ1YSIsCiAgICAgICJuYW1lIjogImJ1cmphdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJteSIsCiAgICAgICJuYW1lIjogImJ1cm1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZWIiLAogICAgICAibmFtZSI6ICJjZWJ1YW5vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNoIiwKICAgICAgIm5hbWUiOiAiY2hhbW9ycm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnkiLAogICAgICAibmFtZSI6ICJjaGljaGV3YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkYSIsCiAgICAgICJuYW1lIjogImRhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZhLUFGIiwKICAgICAgIm5hbWUiOiAiZGFyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkdiIsCiAgICAgICJuYW1lIjogImRoaXZlaGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZGluIiwKICAgICAgIm5hbWUiOiAiZGlua2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZG9pIiwKICAgICAgIm5hbWUiOiAiZG9ncmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZG92IiwKICAgICAgIm5hbWUiOiAiZG9tYmUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZHl1IiwKICAgICAgIm5hbWUiOiAiRHl1bGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZHoiLAogICAgICAibmFtZSI6ICJkem9uZ2toYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbiIsCiAgICAgICJuYW1lIjogImVuZ2Vsc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZW8iLAogICAgICAibmFtZSI6ICJlc3BlcmFudG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZXQiLAogICAgICAibmFtZSI6ICJlc3Rpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZWUiLAogICAgICAibmFtZSI6ICJld2UiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmEiLAogICAgICAibmFtZSI6ICJmYXJzaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmaiIsCiAgICAgICJuYW1lIjogImZpamlhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZpIiwKICAgICAgIm5hbWUiOiAiZmluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZm9uIiwKICAgICAgIm5hbWUiOiAiZm9uIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZyIiwKICAgICAgIm5hbWUiOiAiZnJhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZyLUNBIiwKICAgICAgIm5hbWUiOiAiRnJhbnNrIChDYW5hZGEpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZ5IiwKICAgICAgIm5hbWUiOiAiZnJpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmdXIiLAogICAgICAibmFtZSI6ICJmcml1bGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmZiIsCiAgICAgICJuYW1lIjogImZ1bGZ1bGRlIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZvIiwKICAgICAgIm5hbWUiOiAiZsOmcsO4eXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdsIiwKICAgICAgIm5hbWUiOiAiZ2FsaXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2EiLAogICAgICAibmFtZSI6ICJnZW9yZ2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbCIsCiAgICAgICJuYW1lIjogImdyZXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImduIiwKICAgICAgIm5hbWUiOiAiZ3VhcmFuw60iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ3UiLAogICAgICAibmFtZSI6ICJndWphcmF0aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnYWEiLAogICAgICAibmFtZSI6ICJnYWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY25oIiwKICAgICAgIm5hbWUiOiAiaGFraGEgY2hpbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoYSIsCiAgICAgICJuYW1lIjogImhhdXNhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhhdyIsCiAgICAgICJuYW1lIjogImhhd2FpaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIml3IiwKICAgICAgIm5hbWUiOiAiaGVicmFpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaGlsIiwKICAgICAgIm5hbWUiOiAiaGlsaWdheW5vbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoaSIsCiAgICAgICJuYW1lIjogImhpbmRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhtbiIsCiAgICAgICJuYW1lIjogImhtb25nIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhyeCIsCiAgICAgICJuYW1lIjogImh1bnNyaWsiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmUiLAogICAgICAibmFtZSI6ICJodml0ZXJ1c3Npc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaWJhIiwKICAgICAgIm5hbWUiOiAiaWJhbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpZyIsCiAgICAgICJuYW1lIjogImlnYm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaWxvIiwKICAgICAgIm5hbWUiOiAiaWxva2FubyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpZCIsCiAgICAgICJuYW1lIjogImluZG9uZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXUtTGF0biIsCiAgICAgICJuYW1lIjogIkludWt0aXR1dCAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXUiLAogICAgICAibmFtZSI6ICJJbnVrdGl0dXQgKHN0YXZlbHNlKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnYSIsCiAgICAgICJuYW1lIjogImlyc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXMiLAogICAgICAibmFtZSI6ICJpc2xhbmRzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdCIsCiAgICAgICJuYW1lIjogIml0YWxpZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYWgiLAogICAgICAibmFtZSI6ICJqYWt1dGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqYW0iLAogICAgICAibmFtZSI6ICJqYW1haWNhbnNrIHBhdG9pcyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqYSIsCiAgICAgICJuYW1lIjogImphcGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAianciLAogICAgICAibmFtZSI6ICJqYXZhbmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInlpIiwKICAgICAgIm5hbWUiOiAiamlkZGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrYWMiLAogICAgICAibmFtZSI6ICJqaW5ncG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieW8iLAogICAgICAibmFtZSI6ICJqb3J1YmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2wiLAogICAgICAibmFtZSI6ICJrYWxhYWxsaXN1dCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrbiIsCiAgICAgICJuYW1lIjogImthbm5hZGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieXVlIiwKICAgICAgIm5hbWUiOiAia2FudG9uZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3IiLAogICAgICAibmFtZSI6ICJrYW51cmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGFtIiwKICAgICAgIm5hbWUiOiAia2FwYW1wYW5nYW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2siLAogICAgICAibmFtZSI6ICJrYXNha2hpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2EiLAogICAgICAibmFtZSI6ICJrYXRhbGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2VrIiwKICAgICAgIm5hbWUiOiAia2VrY2hpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtoYSIsCiAgICAgICJuYW1lIjogImtoYXNpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImttIiwKICAgICAgIm5hbWUiOiAia2htZXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2dnIiwKICAgICAgIm5hbWUiOiAia2lnYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrZyIsCiAgICAgICJuYW1lIjogImtpa29uZ28iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiemgtQ04iLAogICAgICAibmFtZSI6ICJraW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJydyIsCiAgICAgICJuYW1lIjogImtpbnlhcndhbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt5IiwKICAgICAgIm5hbWUiOiAia2lyZ2lzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJuIiwKICAgICAgIm5hbWUiOiAia2lydW5kaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrdHUiLAogICAgICAibmFtZSI6ICJraXR1YmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHJwIiwKICAgICAgIm5hbWUiOiAia29rYm9yb2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3YiLAogICAgICAibmFtZSI6ICJrb21pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdvbSIsCiAgICAgICJuYW1lIjogImtvbmthbmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia28iLAogICAgICAibmFtZSI6ICJrb3JlYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjbyIsCiAgICAgICJuYW1lIjogImtvcnNpa2Fuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHQiLAogICAgICAibmFtZSI6ICJrcmVvbCAoSGFpdGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNycyIsCiAgICAgICJuYW1lIjogImtyZW9sIChTZXljaGVsbGVuZSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3JoIiwKICAgICAgIm5hbWUiOiAiS3JpbXRhdGFyaXNrIChreXJpbGxpc2spIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNyaC1MYXRuIiwKICAgICAgIm5hbWUiOiAiS3JpbXRhdGFyaXNrIChsYXRpbnNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrcmkiLAogICAgICAibmFtZSI6ICJrcmlvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhyIiwKICAgICAgIm5hbWUiOiAia3JvYXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3UiLAogICAgICAibmFtZSI6ICJrdXJkaXNrIChrdXJtYW5qaSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2tiIiwKICAgICAgIm5hbWUiOiAia3VyZGlzayAoc29yYW5pKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbyIsCiAgICAgICJuYW1lIjogImxhb3Rpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHRnIiwKICAgICAgIm5hbWUiOiAibGF0Z2FsaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxhIiwKICAgICAgIm5hbWUiOiAibGF0aW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHYiLAogICAgICAibmFtZSI6ICJsYXR2aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxpaiIsCiAgICAgICJuYW1lIjogImxpZ3VyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxpIiwKICAgICAgIm5hbWUiOiAibGltYnVyZ3NrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxuIiwKICAgICAgIm5hbWUiOiAibGluZ2FsYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdCIsCiAgICAgICJuYW1lIjogImxpdGF1aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxtbyIsCiAgICAgICJuYW1lIjogImxvbWJhcmRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibGciLAogICAgICAibmFtZSI6ICJsdWdhbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx1byIsCiAgICAgICJuYW1lIjogImx1byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsYiIsCiAgICAgICJuYW1lIjogImx1eGVtYm91cmdzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtZyIsCiAgICAgICJuYW1lIjogIm1hZGFnYXNzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hZCIsCiAgICAgICJuYW1lIjogIm1hZHVyZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWFpIiwKICAgICAgIm5hbWUiOiAibWFpdGhpbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWFrIiwKICAgICAgIm5hbWUiOiAiTWFrYXNzYXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWsiLAogICAgICAibmFtZSI6ICJtYWtlZG9uc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWwiLAogICAgICAibmFtZSI6ICJtYWxheWFsYW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXMiLAogICAgICAibmFtZSI6ICJtYWxheWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtcy1BcmFiIiwKICAgICAgIm5hbWUiOiAibWFsYXlpc2sgKGphd2kpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm10IiwKICAgICAgIm5hbWUiOiAibWFsdGVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hbSIsCiAgICAgICJuYW1lIjogIm1hbSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJndiIsCiAgICAgICJuYW1lIjogIm1hbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1pIiwKICAgICAgIm5hbWUiOiAibWFvcmkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXIiLAogICAgICAibmFtZSI6ICJtYXJhdGhpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1oIiwKICAgICAgIm5hbWUiOiAibWFyc2hhbGxlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtd3IiLAogICAgICAibmFtZSI6ICJtYXJ3YWRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1mZSIsCiAgICAgICJuYW1lIjogIm1hdXJpdGlzayBrcmVvbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtbmktTXRlaSIsCiAgICAgICJuYW1lIjogIm1laXRlaWxvbiAobWFuaXB1cmkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1pbiIsCiAgICAgICJuYW1lIjogIm1pbmFuZyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdXMiLAogICAgICAibmFtZSI6ICJtaXpvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1uIiwKICAgICAgIm5hbWUiOiAibW9uZ29sc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibmhlIiwKICAgICAgIm5hbWUiOiAibmFodWF0bCAow7hzdGxpZ2UgSHVhc3RlY2EpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5kYy1aVyIsCiAgICAgICJuYW1lIjogIm5kYXUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnIiLAogICAgICAibmFtZSI6ICJuZGViZWxlIChzw7hyKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJubCIsCiAgICAgICJuYW1lIjogIm5lZGVybGFuZHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5ldyIsCiAgICAgICJuYW1lIjogIk5lcGFsIGJoYXNhIChuZXdhcmkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5lIiwKICAgICAgIm5hbWUiOiAibmVwYWxzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibS1Oa29vIiwKICAgICAgIm5hbWUiOiAiTktvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5vIiwKICAgICAgIm5hbWUiOiAibm9yc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnVzIiwKICAgICAgIm5hbWUiOiAibnVlciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvYyIsCiAgICAgICJuYW1lIjogIm9rc2l0YW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvciIsCiAgICAgICJuYW1lIjogIm9yaXlhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm9tIiwKICAgICAgIm5hbWUiOiAib3JvbW8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib3MiLAogICAgICAibmFtZSI6ICJvc3NldGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYWciLAogICAgICAibmFtZSI6ICJwYW5nYXNpbmFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhIiwKICAgICAgIm5hbWUiOiAiUGFuamFiaSAoZ3VybXVraGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhLUFyYWIiLAogICAgICAibmFtZSI6ICJwYW5qYWJpIChzaGFobXVraGkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBhcCIsCiAgICAgICJuYW1lIjogInBhcGlhbWVudG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicHMiLAogICAgICAibmFtZSI6ICJwYXNodG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGwiLAogICAgICAibmFtZSI6ICJwb2xzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwdCIsCiAgICAgICJuYW1lIjogInBvcnR1Z2lzaXNrIChCcmFzaWwpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInB0LVBUIiwKICAgICAgIm5hbWUiOiAicG9ydHVnaXNpc2sgKFBvcnR1Z2FsKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJxdSIsCiAgICAgICJuYW1lIjogInF1ZWNodWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicm9tIiwKICAgICAgIm5hbWUiOiAicm9tYW5pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJvIiwKICAgICAgIm5hbWUiOiAicnVtZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJydSIsCiAgICAgICJuYW1lIjogInJ1c3Npc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2UiLAogICAgICAibmFtZSI6ICJzYW1pc2sgKG5vcmQpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNtIiwKICAgICAgIm5hbWUiOiAic2Ftb2Fuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2ciLAogICAgICAibmFtZSI6ICJzYW5nbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYSIsCiAgICAgICJuYW1lIjogInNhbnNrcml0IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhdC1MYXRuIiwKICAgICAgIm5hbWUiOiAiU2FudGFsaSAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2F0IiwKICAgICAgIm5hbWUiOiAiU2FudGFsaSAob2wgY2hpa2kpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN6bCIsCiAgICAgICJuYW1lIjogInNjaGxlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuc28iLAogICAgICAibmFtZSI6ICJzZXBlZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3IiLAogICAgICAibmFtZSI6ICJzZXJiaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNobiIsCiAgICAgICJuYW1lIjogInNoYW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic24iLAogICAgICAibmFtZSI6ICJzaG9uYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzY24iLAogICAgICAibmFtZSI6ICJzaWNpbGlhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNkIiwKICAgICAgIm5hbWUiOiAic2luZGhpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNpIiwKICAgICAgIm5hbWUiOiAic2luZ2FsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ2QiLAogICAgICAibmFtZSI6ICJza290c2sgZ8OmbGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzayIsCiAgICAgICJuYW1lIjogInNsb3Zha2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbCIsCiAgICAgICJuYW1lIjogInNsb3ZlbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNvIiwKICAgICAgIm5hbWUiOiAic29tYWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN0IiwKICAgICAgIm5hbWUiOiAic290aG8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZXMiLAogICAgICAibmFtZSI6ICJzcGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3UiLAogICAgICAibmFtZSI6ICJzdW5kYW5lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdXMiLAogICAgICAibmFtZSI6ICJzdXN1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN2IiwKICAgICAgIm5hbWUiOiAic3ZlbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN3IiwKICAgICAgIm5hbWUiOiAic3dhaGlsaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzcyIsCiAgICAgICJuYW1lIjogInN3YXRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRnIiwKICAgICAgIm5hbWUiOiAidGFkc2ppa2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0bCIsCiAgICAgICJuYW1lIjogInRhZ2Fsb2ciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHkiLAogICAgICAibmFtZSI6ICJ0YWhpdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZXItTGF0biIsCiAgICAgICJuYW1lIjogInRhbWF6aWdodCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZXIiLAogICAgICAibmFtZSI6ICJ0YW1hemlnaHQgKHRpZmluYWdoKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0YSIsCiAgICAgICJuYW1lIjogInRhbWlsIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR0IiwKICAgICAgIm5hbWUiOiAidGF0YXJpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGUiLAogICAgICAibmFtZSI6ICJ0ZWx1Z3UiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGV0IiwKICAgICAgIm5hbWUiOiAidGV0dW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGgiLAogICAgICAibmFtZSI6ICJ0aGFpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJvIiwKICAgICAgIm5hbWUiOiAidGliZXRhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRpIiwKICAgICAgIm5hbWUiOiAidGlncmluamEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGl2IiwKICAgICAgIm5hbWUiOiAidGl2IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRwaSIsCiAgICAgICJuYW1lIjogInRvayBwaXNpbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0byIsCiAgICAgICJuYW1lIjogInRvbmdhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx1YSIsCiAgICAgICJuYW1lIjogInRzaGlsdWJhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNzIiwKICAgICAgIm5hbWUiOiAidHNqZWtraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNlIiwKICAgICAgIm5hbWUiOiAidHNqZXRzamVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2hrIiwKICAgICAgIm5hbWUiOiAidHNqdWt0c2ppc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3YiLAogICAgICAibmFtZSI6ICJ0c2p1dmFzamlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0cyIsCiAgICAgICJuYW1lIjogInRzb25nYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0biIsCiAgICAgICJuYW1lIjogInRzd2FuYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0Y3kiLAogICAgICAibmFtZSI6ICJ0dWx1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR1bSIsCiAgICAgICJuYW1lIjogInR1bWJ1a2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGsiLAogICAgICAibmFtZSI6ICJ0dXJrbWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHl2IiwKICAgICAgIm5hbWUiOiAidHV2aW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhayIsCiAgICAgICJuYW1lIjogInR3aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0ciIsCiAgICAgICJuYW1lIjogInR5cmtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZGUiLAogICAgICAibmFtZSI6ICJ0eXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVkbSIsCiAgICAgICJuYW1lIjogInVkbXVydGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ZyIsCiAgICAgICJuYW1lIjogInVpZ3VyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVrIiwKICAgICAgIm5hbWUiOiAidWtyYWluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHUiLAogICAgICAibmFtZSI6ICJ1bmdhcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInVyIiwKICAgICAgIm5hbWUiOiAidXJkdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1eiIsCiAgICAgICJuYW1lIjogInVzYmVraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInZlIiwKICAgICAgIm5hbWUiOiAidmVuZGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidmVjIiwKICAgICAgIm5hbWUiOiAidmVuZXRpYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ2aSIsCiAgICAgICJuYW1lIjogInZpZXRuYW1lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjeSIsCiAgICAgICJuYW1lIjogIndhbGlzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIndhciIsCiAgICAgICJuYW1lIjogIndhcmF5LXdhcmF5IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIndvIiwKICAgICAgIm5hbWUiOiAid29sb2YiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieGgiLAogICAgICAibmFtZSI6ICJ4aG9zYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5dWEiLAogICAgICAibmFtZSI6ICJ5dWthdGFuc2sgbWF5YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6YXAiLAogICAgICAibmFtZSI6ICJ6YXBvdGVjIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInp1IiwKICAgICAgIm5hbWUiOiAienVsdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjaG0iLAogICAgICAibmFtZSI6ICLDuHN0bWFyaXNrIgogICAgfQogIF0sCiAgInRhcmdldExhbmd1YWdlcyI6IFsKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFiIiwKICAgICAgIm5hbWUiOiAiYWJraGFzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFjZSIsCiAgICAgICJuYW1lIjogImFjZWhuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWNoIiwKICAgICAgIm5hbWUiOiAiYWNob2xpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFhIiwKICAgICAgIm5hbWUiOiAiYWZhciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhZiIsCiAgICAgICJuYW1lIjogImFmcmlrYWFucyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzcSIsCiAgICAgICJuYW1lIjogImFsYmFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWx6IiwKICAgICAgIm5hbWUiOiAiYWx1ciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhbSIsCiAgICAgICJuYW1lIjogImFtaGFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImFyIiwKICAgICAgIm5hbWUiOiAiYXJhYmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoeSIsCiAgICAgICJuYW1lIjogImFybWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXoiLAogICAgICAibmFtZSI6ICJhc2VyYmFqZHNqYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJhcyIsCiAgICAgICJuYW1lIjogImFzc2FtZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYXYiLAogICAgICAibmFtZSI6ICJhdmFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImF3YSIsCiAgICAgICJuYW1lIjogImF3YWRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJheSIsCiAgICAgICJuYW1lIjogImF5bWFyYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiYW4iLAogICAgICAibmFtZSI6ICJiYWxpbmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJhbCIsCiAgICAgICJuYW1lIjogImJhbHV0c2ppIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJtIiwKICAgICAgIm5hbWUiOiAiYmFtYmFyYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiY2kiLAogICAgICAibmFtZSI6ICJiYW91bMOpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJhIiwKICAgICAgIm5hbWUiOiAiYmFzamtpcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImV1IiwKICAgICAgIm5hbWUiOiAiYmFza2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJidHgiLAogICAgICAibmFtZSI6ICJiYXRhayBrYXJvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJ0cyIsCiAgICAgICJuYW1lIjogImJhdGFrIHNpbWFsdW5ndW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmJjIiwKICAgICAgIm5hbWUiOiAiYmF0YWsgdG9iYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZW0iLAogICAgICAibmFtZSI6ICJiZW1iYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibiIsCiAgICAgICJuYW1lIjogImJlbmdhbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmV3IiwKICAgICAgIm5hbWUiOiAiYmV0YXdpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJobyIsCiAgICAgICJuYW1lIjogImJob2pwdXJpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJpayIsCiAgICAgICJuYW1lIjogImJpa29sIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJzIiwKICAgICAgIm5hbWUiOiAiYm9zbmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiciIsCiAgICAgICJuYW1lIjogImJyZXRvbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImJnIiwKICAgICAgIm5hbWUiOiAiYnVsZ2Fyc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYnVhIiwKICAgICAgIm5hbWUiOiAiYnVyamF0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm15IiwKICAgICAgIm5hbWUiOiAiYnVybWVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNlYiIsCiAgICAgICJuYW1lIjogImNlYnVhbm8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2giLAogICAgICAibmFtZSI6ICJjaGFtb3JybyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJueSIsCiAgICAgICJuYW1lIjogImNoaWNoZXdhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImRhIiwKICAgICAgIm5hbWUiOiAiZGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmEtQUYiLAogICAgICAibmFtZSI6ICJkYXJpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImR2IiwKICAgICAgIm5hbWUiOiAiZGhpdmVoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkaW4iLAogICAgICAibmFtZSI6ICJkaW5rYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkb2kiLAogICAgICAibmFtZSI6ICJkb2dyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkb3YiLAogICAgICAibmFtZSI6ICJkb21iZSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkeXUiLAogICAgICAibmFtZSI6ICJEeXVsYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJkeiIsCiAgICAgICJuYW1lIjogImR6b25na2hhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVuIiwKICAgICAgIm5hbWUiOiAiZW5nZWxzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlbyIsCiAgICAgICJuYW1lIjogImVzcGVyYW50byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJldCIsCiAgICAgICJuYW1lIjogImVzdGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJlZSIsCiAgICAgICJuYW1lIjogImV3ZSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmYSIsCiAgICAgICJuYW1lIjogImZhcnNpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZqIiwKICAgICAgIm5hbWUiOiAiZmlqaWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZmkiLAogICAgICAibmFtZSI6ICJmaW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJmb24iLAogICAgICAibmFtZSI6ICJmb24iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnIiLAogICAgICAibmFtZSI6ICJmcmFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnItQ0EiLAogICAgICAibmFtZSI6ICJGcmFuc2sgKENhbmFkYSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZnkiLAogICAgICAibmFtZSI6ICJmcmlzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZ1ciIsCiAgICAgICJuYW1lIjogImZyaXVsaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImZmIiwKICAgICAgIm5hbWUiOiAiZnVsZnVsZGUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZm8iLAogICAgICAibmFtZSI6ICJmw6Zyw7h5c2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ2wiLAogICAgICAibmFtZSI6ICJnYWxpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrYSIsCiAgICAgICJuYW1lIjogImdlb3JnaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVsIiwKICAgICAgIm5hbWUiOiAiZ3Jlc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ24iLAogICAgICAibmFtZSI6ICJndWFyYW7DrSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJndSIsCiAgICAgICJuYW1lIjogImd1amFyYXRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdhYSIsCiAgICAgICJuYW1lIjogImdhYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjbmgiLAogICAgICAibmFtZSI6ICJoYWtoYSBjaGluIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhhIiwKICAgICAgIm5hbWUiOiAiaGF1c2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaGF3IiwKICAgICAgIm5hbWUiOiAiaGF3YWlpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaXciLAogICAgICAibmFtZSI6ICJoZWJyYWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJoaWwiLAogICAgICAibmFtZSI6ICJoaWxpZ2F5bm9uIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImhpIiwKICAgICAgIm5hbWUiOiAiaGluZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaG1uIiwKICAgICAgIm5hbWUiOiAiaG1vbmciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiaHJ4IiwKICAgICAgIm5hbWUiOiAiaHVuc3JpayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJiZSIsCiAgICAgICJuYW1lIjogImh2aXRlcnVzc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpYmEiLAogICAgICAibmFtZSI6ICJpYmFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImlnIiwKICAgICAgIm5hbWUiOiAiaWdibyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpbG8iLAogICAgICAibmFtZSI6ICJpbG9rYW5vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImlkIiwKICAgICAgIm5hbWUiOiAiaW5kb25lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdS1MYXRuIiwKICAgICAgIm5hbWUiOiAiSW51a3RpdHV0IChsYXRpbnNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpdSIsCiAgICAgICJuYW1lIjogIkludWt0aXR1dCAoc3RhdmVsc2UpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdhIiwKICAgICAgIm5hbWUiOiAiaXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJpcyIsCiAgICAgICJuYW1lIjogImlzbGFuZHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIml0IiwKICAgICAgIm5hbWUiOiAiaXRhbGllbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhaCIsCiAgICAgICJuYW1lIjogImpha3V0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImphbSIsCiAgICAgICJuYW1lIjogImphbWFpY2Fuc2sgcGF0b2lzIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImphIiwKICAgICAgIm5hbWUiOiAiamFwYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJqdyIsCiAgICAgICJuYW1lIjogImphdmFuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieWkiLAogICAgICAibmFtZSI6ICJqaWRkaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImthYyIsCiAgICAgICJuYW1lIjogImppbmdwbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5byIsCiAgICAgICJuYW1lIjogImpvcnViYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrbCIsCiAgICAgICJuYW1lIjogImthbGFhbGxpc3V0IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtuIiwKICAgICAgIm5hbWUiOiAia2FubmFkYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ5dWUiLAogICAgICAibmFtZSI6ICJrYW50b25lc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrciIsCiAgICAgICJuYW1lIjogImthbnVyaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYW0iLAogICAgICAibmFtZSI6ICJrYXBhbXBhbmdhbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrayIsCiAgICAgICJuYW1lIjogImthc2FraGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjYSIsCiAgICAgICJuYW1lIjogImthdGFsYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJrZWsiLAogICAgICAibmFtZSI6ICJrZWtjaGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia2hhIiwKICAgICAgIm5hbWUiOiAia2hhc2kiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia20iLAogICAgICAibmFtZSI6ICJraG1lciIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZ2ciLAogICAgICAibmFtZSI6ICJraWdhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtnIiwKICAgICAgIm5hbWUiOiAia2lrb25nbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6aC1DTiIsCiAgICAgICJuYW1lIjogImtpbmVzaXNrIChmb3JlbmtsZXQpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInpoLVRXIiwKICAgICAgIm5hbWUiOiAia2luZXNpc2sgKHRyYWRpc2pvbmVsbCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicnciLAogICAgICAibmFtZSI6ICJraW55YXJ3YW5kYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJreSIsCiAgICAgICJuYW1lIjogImtpcmdpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJybiIsCiAgICAgICJuYW1lIjogImtpcnVuZGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3R1IiwKICAgICAgIm5hbWUiOiAia2l0dWJhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRycCIsCiAgICAgICJuYW1lIjogImtva2Jvcm9rIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt2IiwKICAgICAgIm5hbWUiOiAia29taSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJnb20iLAogICAgICAibmFtZSI6ICJrb25rYW5pIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImtvIiwKICAgICAgIm5hbWUiOiAia29yZWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY28iLAogICAgICAibmFtZSI6ICJrb3JzaWthbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh0IiwKICAgICAgIm5hbWUiOiAia3Jlb2wgKEhhaXRpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcnMiLAogICAgICAibmFtZSI6ICJrcmVvbCAoU2V5Y2hlbGxlbmUpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNyaCIsCiAgICAgICJuYW1lIjogIktyaW10YXRhcmlzayAoa3lyaWxsaXNrKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcmgtTGF0biIsCiAgICAgICJuYW1lIjogIktyaW10YXRhcmlzayAobGF0aW5zaykiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAia3JpIiwKICAgICAgIm5hbWUiOiAia3JpbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJociIsCiAgICAgICJuYW1lIjogImtyb2F0aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImt1IiwKICAgICAgIm5hbWUiOiAia3VyZGlzayAoa3VybWFuamkpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNrYiIsCiAgICAgICJuYW1lIjogImt1cmRpc2sgKHNvcmFuaSkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibG8iLAogICAgICAibmFtZSI6ICJsYW90aXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx0ZyIsCiAgICAgICJuYW1lIjogImxhdGdhbGlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsYSIsCiAgICAgICJuYW1lIjogImxhdGluIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImx2IiwKICAgICAgIm5hbWUiOiAibGF0dmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsaWoiLAogICAgICAibmFtZSI6ICJsaWd1cmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsaSIsCiAgICAgICJuYW1lIjogImxpbWJ1cmdzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbiIsCiAgICAgICJuYW1lIjogImxpbmdhbGEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHQiLAogICAgICAibmFtZSI6ICJsaXRhdWlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsbW8iLAogICAgICAibmFtZSI6ICJsb21iYXJkaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImxnIiwKICAgICAgIm5hbWUiOiAibHVnYW5kYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdW8iLAogICAgICAibmFtZSI6ICJsdW8iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibGIiLAogICAgICAibmFtZSI6ICJsdXhlbWJvdXJnc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibWciLAogICAgICAibmFtZSI6ICJtYWRhZ2Fzc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtYWQiLAogICAgICAibmFtZSI6ICJtYWR1cmVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1haSIsCiAgICAgICJuYW1lIjogIm1haXRoaWxpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1hayIsCiAgICAgICJuYW1lIjogIk1ha2Fzc2FyIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1rIiwKICAgICAgIm5hbWUiOiAibWFrZWRvbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1sIiwKICAgICAgIm5hbWUiOiAibWFsYXlhbGFtIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1zIiwKICAgICAgIm5hbWUiOiAibWFsYXlpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXMtQXJhYiIsCiAgICAgICJuYW1lIjogIm1hbGF5aXNrIChqYXdpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtdCIsCiAgICAgICJuYW1lIjogIm1hbHRlc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtYW0iLAogICAgICAibmFtZSI6ICJtYW0iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiZ3YiLAogICAgICAibmFtZSI6ICJtYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaSIsCiAgICAgICJuYW1lIjogIm1hb3JpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm1yIiwKICAgICAgIm5hbWUiOiAibWFyYXRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaCIsCiAgICAgICJuYW1lIjogIm1hcnNoYWxsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibXdyIiwKICAgICAgIm5hbWUiOiAibWFyd2FkaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtZmUiLAogICAgICAibmFtZSI6ICJtYXVyaXRpc2sga3Jlb2wiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibW5pLU10ZWkiLAogICAgICAibmFtZSI6ICJtZWl0ZWlsb24gKG1hbmlwdXJpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtaW4iLAogICAgICAibmFtZSI6ICJtaW5hbmciCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibHVzIiwKICAgICAgIm5hbWUiOiAibWl6byIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJtbiIsCiAgICAgICJuYW1lIjogIm1vbmdvbHNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5oZSIsCiAgICAgICJuYW1lIjogIm5haHVhdGwgKMO4c3RsaWdlIEh1YXN0ZWNhKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZGMtWlciLAogICAgICAibmFtZSI6ICJuZGF1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm5yIiwKICAgICAgIm5hbWUiOiAibmRlYmVsZSAoc8O4cikiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibmwiLAogICAgICAibmFtZSI6ICJuZWRlcmxhbmRzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZXciLAogICAgICAibmFtZSI6ICJOZXBhbCBiaGFzYSAobmV3YXJpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJuZSIsCiAgICAgICJuYW1lIjogIm5lcGFsc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYm0tTmtvbyIsCiAgICAgICJuYW1lIjogIk5LbyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJubyIsCiAgICAgICJuYW1lIjogIm5vcnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm51cyIsCiAgICAgICJuYW1lIjogIm51ZXIiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib2MiLAogICAgICAibmFtZSI6ICJva3NpdGFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAib3IiLAogICAgICAibmFtZSI6ICJvcml5YSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJvbSIsCiAgICAgICJuYW1lIjogIm9yb21vIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogIm9zIiwKICAgICAgIm5hbWUiOiAib3NzZXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicGFnIiwKICAgICAgIm5hbWUiOiAicGFuZ2FzaW5hbiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYSIsCiAgICAgICJuYW1lIjogIlBhbmphYmkgKGd1cm11a2hpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYS1BcmFiIiwKICAgICAgIm5hbWUiOiAicGFuamFiaSAoc2hhaG11a2hpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwYXAiLAogICAgICAibmFtZSI6ICJwYXBpYW1lbnRvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBzIiwKICAgICAgIm5hbWUiOiAicGFzaHRvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInBsIiwKICAgICAgIm5hbWUiOiAicG9sc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicHQiLAogICAgICAibmFtZSI6ICJwb3J0dWdpc2lzayAoQnJhc2lsKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJwdC1QVCIsCiAgICAgICJuYW1lIjogInBvcnR1Z2lzaXNrIChQb3J0dWdhbCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicXUiLAogICAgICAibmFtZSI6ICJxdWVjaHVhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInJvbSIsCiAgICAgICJuYW1lIjogInJvbWFuaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJybyIsCiAgICAgICJuYW1lIjogInJ1bWVuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAicnUiLAogICAgICAibmFtZSI6ICJydXNzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNlIiwKICAgICAgIm5hbWUiOiAic2FtaXNrIChub3JkKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbSIsCiAgICAgICJuYW1lIjogInNhbW9hbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNnIiwKICAgICAgIm5hbWUiOiAic2FuZ28iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2EiLAogICAgICAibmFtZSI6ICJzYW5za3JpdCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzYXQtTGF0biIsCiAgICAgICJuYW1lIjogIlNhbnRhbGkgKGxhdGluc2spIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNhdCIsCiAgICAgICJuYW1lIjogIlNhbnRhbGkgKG9sIGNoaWtpKSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzemwiLAogICAgICAibmFtZSI6ICJzY2hsZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAibnNvIiwKICAgICAgIm5hbWUiOiAic2VwZWRpIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNyIiwKICAgICAgIm5hbWUiOiAic2VyYmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzaG4iLAogICAgICAibmFtZSI6ICJzaGFuIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInNuIiwKICAgICAgIm5hbWUiOiAic2hvbmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2NuIiwKICAgICAgIm5hbWUiOiAic2ljaWxpYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzZCIsCiAgICAgICJuYW1lIjogInNpbmRoaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzaSIsCiAgICAgICJuYW1lIjogInNpbmdhbGVzaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImdkIiwKICAgICAgIm5hbWUiOiAic2tvdHNrIGfDpmxpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2siLAogICAgICAibmFtZSI6ICJzbG92YWtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic2wiLAogICAgICAibmFtZSI6ICJzbG92ZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzbyIsCiAgICAgICJuYW1lIjogInNvbWFsaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdCIsCiAgICAgICJuYW1lIjogInNvdGhvIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImVzIiwKICAgICAgIm5hbWUiOiAic3BhbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInN1IiwKICAgICAgIm5hbWUiOiAic3VuZGFuZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3VzIiwKICAgICAgIm5hbWUiOiAic3VzdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdiIsCiAgICAgICJuYW1lIjogInN2ZW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJzdyIsCiAgICAgICJuYW1lIjogInN3YWhpbGkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAic3MiLAogICAgICAibmFtZSI6ICJzd2F0aSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0ZyIsCiAgICAgICJuYW1lIjogInRhZHNqaWtpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGwiLAogICAgICAibmFtZSI6ICJ0YWdhbG9nIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR5IiwKICAgICAgIm5hbWUiOiAidGFoaXRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVyLUxhdG4iLAogICAgICAibmFtZSI6ICJ0YW1hemlnaHQiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYmVyIiwKICAgICAgIm5hbWUiOiAidGFtYXppZ2h0ICh0aWZpbmFnaCkiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGEiLAogICAgICAibmFtZSI6ICJ0YW1pbCIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0dCIsCiAgICAgICJuYW1lIjogInRhdGFyaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRlIiwKICAgICAgIm5hbWUiOiAidGVsdWd1IgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRldCIsCiAgICAgICJuYW1lIjogInRldHVtIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRoIiwKICAgICAgIm5hbWUiOiAidGhhaSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJibyIsCiAgICAgICJuYW1lIjogInRpYmV0YW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0aSIsCiAgICAgICJuYW1lIjogInRpZ3JpbmphIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRpdiIsCiAgICAgICJuYW1lIjogInRpdiIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0cGkiLAogICAgICAibmFtZSI6ICJ0b2sgcGlzaW4iCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidG8iLAogICAgICAibmFtZSI6ICJ0b25nYW5zayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJsdWEiLAogICAgICAibmFtZSI6ICJ0c2hpbHViYSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjcyIsCiAgICAgICJuYW1lIjogInRzamVra2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJjZSIsCiAgICAgICJuYW1lIjogInRzamV0c2plbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImNoayIsCiAgICAgICJuYW1lIjogInRzanVrdHNqaXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImN2IiwKICAgICAgIm5hbWUiOiAidHNqdXZhc2ppc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHMiLAogICAgICAibmFtZSI6ICJ0c29uZ2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidG4iLAogICAgICAibmFtZSI6ICJ0c3dhbmEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidGN5IiwKICAgICAgIm5hbWUiOiAidHVsdSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ0dW0iLAogICAgICAibmFtZSI6ICJ0dW1idWthIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInRrIiwKICAgICAgIm5hbWUiOiAidHVya21lbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInR5diIsCiAgICAgICJuYW1lIjogInR1dmluc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiYWsiLAogICAgICAibmFtZSI6ICJ0d2kiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidHIiLAogICAgICAibmFtZSI6ICJ0eXJraXNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImRlIiwKICAgICAgIm5hbWUiOiAidHlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ZG0iLAogICAgICAibmFtZSI6ICJ1ZG11cnRpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidWciLAogICAgICAibmFtZSI6ICJ1aWd1cmlzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ayIsCiAgICAgICJuYW1lIjogInVrcmFpbnNrIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogImh1IiwKICAgICAgIm5hbWUiOiAidW5nYXJzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ1ciIsCiAgICAgICJuYW1lIjogInVyZHUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidXoiLAogICAgICAibmFtZSI6ICJ1c2Jla2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ2ZSIsCiAgICAgICJuYW1lIjogInZlbmRhIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInZlYyIsCiAgICAgICJuYW1lIjogInZlbmV0aWFuc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAidmkiLAogICAgICAibmFtZSI6ICJ2aWV0bmFtZXNpc2siCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY3kiLAogICAgICAibmFtZSI6ICJ3YWxpc2lzayIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ3YXIiLAogICAgICAibmFtZSI6ICJ3YXJheS13YXJheSIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ3byIsCiAgICAgICJuYW1lIjogIndvbG9mIgogICAgfSwKICAgIHsKICAgICAgImxhbmd1YWdlIjogInhoIiwKICAgICAgIm5hbWUiOiAieGhvc2EiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAieXVhIiwKICAgICAgIm5hbWUiOiAieXVrYXRhbnNrIG1heWEiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiemFwIiwKICAgICAgIm5hbWUiOiAiemFwb3RlYyIKICAgIH0sCiAgICB7CiAgICAgICJsYW5ndWFnZSI6ICJ6dSIsCiAgICAgICJuYW1lIjogInp1bHUiCiAgICB9LAogICAgewogICAgICAibGFuZ3VhZ2UiOiAiY2htIiwKICAgICAgIm5hbWUiOiAiw7hzdG1hcmlzayIKICAgIH0KICBdCn0KKTs="}},"time_used":58,"timings":{"blocked":0,"dns":2,"connect":8,"send":0,"wait":26,"receive":0,"ssl":22},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/investicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.584Z","timestamp":1785153914584,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/investicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1764\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1764,"size_decoded":2029,"mime_type":"image/png","magic":"PNG image data, 121 x 120, 8-bit/color RGBA, non-interlaced","md5":"cb52fed4d69c73eee5fe90cb09a04993","sha1":"9203332760466a8436ce94f5f4a3e9a8b20d050d","sha256":"5a7bd7753a190b6f965ae4cc98ff959e335043f2e277aad54548664c052b6076","sha512":"7a774564417597886bfe268362863eb90051408f1e41cb1feab20bd7f5e0d861ccce18cef2446a02ab522dc7a7bae8a25c02de27f68200186a936fbd518a37b8","ssdeep":"","tlshash":"5331fa51b2d8e538db0ea1b8b5034ce6bee9c5963ce651e2c01728320bd0e999d93077","first_seen":"2026-04-01T23:54:14.823413Z","last_seen":"2026-07-27T12:06:15.825093Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":31,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/mapicon.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.581Z","timestamp":1785153914581,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/mapicon.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2144\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":2144,"size_decoded":2409,"mime_type":"image/png","magic":"PNG image data, 96 x 96, 8-bit/color RGBA, non-interlaced","md5":"1ac9b74f340088e39b6ebc4b7f6cd1c2","sha1":"ead5f2d45361b034e4ad4579a84493b4642e67b3","sha256":"b4e55f99529e12d11c36c49cd49683351c7c21df45fcda1794d2424f36b7fc10","sha512":"1f0c783d2c746e2477d613a7ffb7ffe88e65aa5c8629b32a84efcdae52b676ab2b1f8c04b40038de6e401ea53510d1f869236c684d98f441a4982eb892eb4532","ssdeep":"","tlshash":"454119f65200c0799677d2260f2f43e13f6e7bc9e2085f85d892b0aac69c468a805ed6","first_seen":"2026-04-01T23:54:14.679918Z","last_seen":"2026-07-27T12:06:15.818462Z","times_seen":12,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAf1SURBVHgB7Z0/UBtHFMbfHiIxBmLRukFUdhEbmAlVCotUTmNIkSqeASeV05g0SeUBJqnSGDdJ5WDPpHNhSJXKEkWqZAaEm7hCFHZrJTY2tpHW+50Q6M/u6fa0d3uD9zdjhI679d37dt++fXt7x0gTvpnNUl81T6w2SpzlxJYsMXzij4ef9S9Z8SNLJ4MKEascfWO87H9y8cnZLnn8mdhYooPMFpusVDTKJRZmJ745lKc+mhG7z4pvOXIEIETxqCiEuccuvCh22ztQAP5o8IYoaIlOTk1OGF+MJfbx3j3VHlIBhJvJUeZglTjlyWEAIUS1Os0m98vtf+kQwDd+X7XgXI1p5CK0COCMHzedIngtf3fGjxkmXHtmtXnLkQB8e3DeGT8BRL/KS4MLja9HLohvD+84ARKjwi6+GMEvfgvgj0Sc74yfJNm6zRsuiLE5ciRLjWbx4R1+yZMjWRifqX/4uZ2DZ+RInuHMiCdGvBPksMPzat6jGncC2ILXcqIPYC7RZg3mC5Ajhx0YP+OJyYRRcliCjXnksIrXOo3oSBY+mtoWUHnO6fbvb2n6m1dU/KdKumw9rvnH3ls/oPJTTmkldQJsCGPDcCOf7tHCz68pd5ZR/pM+0mXinOf/m7+5T2OX9/wy1x4eUNpgfHsIo2DroSgMv/TrGyr+fVzbc2c9Kvw24IvQDlrIFwv7/t9uff8hZYfl+4x9/pIq//OWMpeuf0BzMxlKARW0AKvGb7iK/NevWowPYCSZ8cH04f53hYuBEDIgysJX/S3byk9rfquY/PJlGlxT1qoLgo+HIdoN32B+pl+6fVm0FAjXAMdjm4wbV/sp+1GniDgerkl1XFJYEQCuAbUePl7FvKL2owYvSYy2IsREue2gFQT1ISgL52KrNSQuAAwYVOsbzClq/5KixjaiJhloBUHgXODSbIiQqAAwfpgLRUepqrUbAcKpWgHKkrmhKOdmmsQE0LnA/JT8tO6uvw08HsZff6joT650j3psiJCIALoXNvOZ3Fjrhe4Dsrt/yN1Q2LFE41xlLSkOEhHg2s3XWrVKZawwA6mtf2tS412aCj+Ygwiq0NY0sQuw3Da46gZGr7JB1UbIdASM3xyiNkCZKDssOGdVp26SWAVQhYxBTJyXn5JOGmFdsW9+Si+lgTBZJqZJYhUgSjO+NCX3/zqGUO07fk7/cr8LGKuYIDYBELHAH+uiSj1oCaD4fyfO6yf14IqiZGPDEpsAUYf4Mj8N4zcn1LqBfkDW6avE7Uac6YpYUoJ+wmumX/s4dJSyDjg7TH4Gs1dQ9orInEYJMXGM7Nx6Beno9M5WvAe4OWHLOAEs4wSwjBPAMkajIEQ/yPtEBXO7sjAUEyZRKNwZ6NhWEiHtQg+Dq9UfT0UOZ2UYFaAkBkA6eZ92VOFh1DJloSPvoTyA+YicwQl9oy6o17wJJmLaQauKSuV55zaMKXqhl/ORYVQA0yeXRlItgKzGOYIxLMDJH1Sbnq50YahljApgMjxLK6YTcq4FaNJrFNWO4RZw8vU0fY1GSxvt0QWpbi2Miswl7vbYiY6fNyuA0ZEwJr11J7674d/babDMMz2WN3HO7PW5CRnLuE7YMk4AyzgBLOMEsEwst6UELZYIAhGPbDEFMpBYbqoDFnjIwtDbijUEUcvrldiiIH99b4SJj2d/DXbE/hBg7PJL0mHz/umO2TUYHstfdcHga+fP0xQHsbmgxYg3UsnvaPO6rnBpRnUndCnihNHit73fFKYiNgFwj3+UAU9JdV+nxo21qjusd57oC+Av9r4S35riWDthTLLrsvVY7ra0BFDsG+Um2we3ByhOYhUAhrj1g54Iqn5DtWxJZ9+S5t3acKNxp9gTSUXodsiyjlj22AEV4po6tul2wHCheExC3CQyDniwoncvjcxVhF1iNKuo/RsaFQCd/upPpygJEhEAxlM9dEOGylhzITpDlft5UAg3jgh6QEgcJJoNDbtcFYLBDbXTzQ0Fxet4LkSYBeJJGh8kmooIe4EwtMoNtT/9pBnVAm+ssEyj8UHiuaDGhXYbIwQ990E1KFu8Lo+4VteD0yLocDfvJ298YCUZ54twZyBwtIyoSTVFKWsFqpCxWx4JYxVUiDiWH4XBajYU677gs2XRTVBCD8ZubkE4XrWGTGX8eq0/TQtX9deymSQ1jyzDMx6Wf3nT4qtRKyGQ6nFkuM189wkXo9VT0n1knT4Mj9xOlOfQxUCFpe3NGWsiXETNbwzcUEOjpDQAHk3WaAEpM/whvJyKJ9c1Mzud8f+h9iISggFx2/uE5ip3HIvWAfHw9C1bPr4bqWsB7xe87B29mNJhAbbr5oQt41GN7ZLDEnxHtACu9f5bh0G474JcH2APXhGdsFcmhx08tuVRta9IDjsMZba8+jvQWZkcCcPLbKxSqYehnK+TI2mK+FEXwKM1ciQLY/575pteZ5uOrOj7gXA/F/fG8NvxSJjzZXIkg5i+aPza+k75R0MFvPGZHDFyXPtBay7oIHPNRURxIga91ep085aOJDnfzOaor1pwKWrT1I3PJvfLzVs7sqFiXCB27Jt2LcEoGzLjg8BpIr49OC80WnStITIVBDdsfG9FtUOoeTr/BfQ1Ni/2vuTE6AJHep+vYWzFLrwodttde6LUfwW6/xZuPi5EGREzaqNiUJHz/1hjY8cl8zN0csYVoiaz/46+eXzH/+TCr2M7vnNvF3m1emonPO8A+cea1sGAiU0AAAAASUVORK5CYII="}},"time_used":71,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":69,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1722995823_1000056977png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.600Z","timestamp":1785153914600,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1722995823_1000056977png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 5942\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":5942,"size_decoded":6103,"mime_type":"image/png","magic":"PNG image data, 300 x 300, 8-bit colormap, non-interlaced","md5":"748793b914f2dad6af7cc9125d9624ad","sha1":"65b609bbf0d052bd2467981b1cc735bd8d4b62fe","sha256":"8cdbfbb9db5bde7eb5e78e15a410b1e20fcd0c0e48411403408e1c04f2f9ffa9","sha512":"ecbe205ebeaf56aa9357212c14143924160ea58703af62fd4dc09fe9c2f0e2c1dbefb3b47e5f30bf3921a42f457c6f9b8b0840a7535e2cbcb2c414a89475aa70","ssdeep":"96:B8ghGWeFcF3F9hGdBseKWnMLpJIHM1rR/hoHAsmmHuVU/agHEPrKt3ODwma8yzY9:9hGnFcljhGfUWFMVR/qAZVQagkPrSeDN","tlshash":"6ac18d6265cf456219a2850bd7a9fe7e42defd48181aa4303047a34bf63db234d0071d","first_seen":"2026-04-01T23:54:14.696475Z","last_seen":"2026-07-27T12:06:15.851379Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":103,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":30,"receive":73,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1723239435_image-2024-08-09-223659279png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.604Z","timestamp":1785153914604,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1723239435_image-2024-08-09-223659279png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 17443\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":17443,"size_decoded":17605,"mime_type":"image/png","magic":"PNG image data, 204 x 192, 8-bit/color RGB, non-interlaced","md5":"cb75d9d5f27bb8a91c2f3f542f6f4332","sha1":"416219a99547453480a383e2d0cfd728660c7e7c","sha256":"fbf0534af990948f0b0b26db5a8127259bd6a88258da5c44cd0aad0fc110fb91","sha512":"56f01671d6a13874effe3852cfa2644bc31bc5c409e8d4d2981ddc4150970185850c415acc82cfe66dad929803112dd1433715b65b53c79c6af616b1aa38a54d","ssdeep":"384:7jZN0a+Fg/5kc6dtFS7oLrhzQOMltBnWLQe:nT0q5gtFSsLNzIBnWLQe","tlshash":"6572d0f96129d4ba5437c848b061175e36a5f0ee114045038887b76b8ee7aae27fc26e","first_seen":"2026-04-01T23:54:14.712766Z","last_seen":"2026-07-27T12:06:15.836507Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":99,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":72,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/icons/slider1.png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.590Z","timestamp":1785153914590,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /icons/slider1.png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 12:05:14 GMT\r\ncontent-type: image/png\r\nlast-modified: Tue, 10 Feb 2026 09:43:39 GMT\r\naccept-ranges: bytes\r\ncontent-length: 555473\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":555473,"size_decoded":555740,"mime_type":"image/png","magic":"PNG image data, 2256 x 875, 8-bit/color RGB, non-interlaced","md5":"6c13205bd30241cb88aac5c42da50b06","sha1":"acf4e3db77cc7df9e03c91d552a2f3ec5b3f7dda","sha256":"be412f8b3f7e07b5e905aa807512b07c4487bf7653c80c57106bd7669f3d48fe","sha512":"310634b4feec290c8e74b92a30448ef3f50e6831e85bb58f47a1708402527afb5cd040d548943dc0f9cfa387ac7c5c2ab84dff59e2386e969a598abc99a8a5a2","ssdeep":"12288:FeKgdYf98Diu2UW999CwbXxo0hWXEv9P/oF7XhQLWkkxtJrR+:sYf98Diwk9jho0hkEvxoF7gWd3+","tlshash":"83c423d9e6aed624c8ad7012bc11630bebb051416bbcd8fb3225947856398f415fcbcb","first_seen":"2025-09-22T06:54:29.848879Z","last_seen":"2026-07-27T12:06:15.843544Z","times_seen":16,"resource_available":false,"data":"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tm0nnHDChg0b5DslJ2p3BEqlMhdVpAt5X5QqOYBlXMMYc8899yxevNhOKySa9FqaLedeJxT12y9uUq37HsmmcN9Tyt33S8vF8CQ1ik7mphs7y9SASonIHdImi4Qz7aizzypxHLvhJOd+HtC1MAxlGdGoxIs8QDOW84DJMkbYLpEYQL1el0u8NEDel1k4opuuW7duyZIlxhg3L0cU62dxuyiKoihKLzpuxeX2IEmSxx9/fO3atWvWrAnDUOZMiGcX7VOiZS3KJSoWJIZH/k8RXdztCneB7NbXxS+RIHjyNGSMGRsbi6LooYce+uIXv7hy5cr169cTUbFYPOaYY0499dTDDz8cWdT9uXPnysOUexa2WdwCafCAGxjq8yzZPRYngx4y17bZbIolq1qtisvqxhtvXLFixS9/+cv8Ku7m2d0qKIqivFBwl4CO9/udNqdAh3MobwSaxvNmH8FpGu1iiGcqzRfFBEb6IssdBUaaxckASEPnWSabXdts6zpn9uDZmZk9Mt1G4z3f+jnhavqZnDroaNieq1nK3o/zy8tsaBlzlPGOnsha6VcjG0kZGhrqt7y1VqZmizRSq9UG+0KcFUNUGaeHFYtFl6CCcuPUs2fPrlarMjYk96B//dd/fccddzgRAtlYmx2YU0Q+uvTSS90y7labstHYdevW3XnnnRiYg6ofrjQ3fhRF0axZs2QYS4acpKkuhJoLsSUbrVAoVCqVZrP5wx/+8J3vfKcMv46NjQ0eSLWZMyYMQ9m2skn77a8BSAOQDfJ6A3N3zRRuCFW6QETf+MY33Kfu6JVh0ziO77333jVr1sin7hFiGu10CqVswEqlctFFFz344IPyXJTPYjW90G394GywWI4xiTUnemFHyDLkDiqngck4aRRFl1566d/93d/J8eMGmmfQeeACTsqBMe3jasGCBePj464j0usBA/R33nnnH//4R/cFkamLkmlJnu6++MUvmizhyjT2u2xkcWnISUNUbRmad7YnyrwgovzVajU5AuWAkfYXi8W//Mu/vO2224wxo6OjMrLcr95GoyFViGuNiN797ne70Wr3SCwLT0PAGIBUkc+bNXv27H77C9l3zRgza9YszgUekUbKo/XIyEg+Rms31lr3dC3fKWQK61NPPfXmN7957dq1zExEtVqNc9HzgiAYGhoaGhp69atfvXz58jPOOGPu3Lmy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PZRObP66173uhhtuKJVKXZWP+nzta1+jxNcE505rPX/+/KOPPprDT9VqtQ6xhuDgD/HPWvvGN77xiiuuwDkiIsSgI6I1a9aceeaZXdVwWtLGa6XUhz70oVtvvfW+++4jIs6f1FWB+An3mWazeeONN95zzz0IruX7Pozszz333G9+85unn356fHy8v78f7R8EATzh0MNrtdr3vve9U089FQ9IvXkgzQSbQZ999lmOLWmt7dY8etBBB5133nk41z/60Y+2bt1KRHBMpER1uPDCCx3HKRQKHTQbBCiDblGv1yG5vfGNb/zYxz42PDzMAdaIyHXdf/u3f3v/+9/vOA5+xXbkHp7cYIbWWn/0ox+96667pgZRvO666970pjcddNBBWKjYrcbJP0F/xuGzY80Xv/jFn//853gsJCKMGN0ewi6kLSQdER111FHvf//7v/KVr0DbxujXbDaDICiXy2edddahhx769re//dWvfvVf/uVfElEQBI8++uj9999/00033XfffZwrC+Mkq7Of+tSnjjvuODzw8x5xbbLzWb1eX7169eLFi8fGxhDfzHVdJP4xxjzwwANnnHHGkUce+c53vvOYY4455phjWPz+4x//+Mgjj9x+++2/+MUvHn/8cS6/UCiUy2XsAiIQ5/JBl0vnGmzjqaee+ud//udms5nJZKBi4rhmGk9Y0kD/32+//c4//3y0Xu+nZy8ijuNqtXrNNdfccccdnudxNJiZxhOtNQZh6IKI+fnud7972bJl3e53puv39NNPP/PMM2+55RZsA9kJ2cs+//nPf+Yzn0EJrut26CeCIAiCIOw4+EEPC0Q4WonjqFwul8lkCoVCpVKpVCrI7cQLYXWy4hyFYGqKuCaIRIeZJ2L0YSnMc88998wzz6xYsWLVqlW1Wq1UKvX395fL5fHxcTwecoj1uQpZMbWcdOCEarWKGQiOtFar9ff3K6WuvfbaW2655cwzzzz99NNLpVI6bABPdMXJSRAEAbSMUK01CCqxgPAoCYXJpLL/dTnCs5sU8khNf4foWKadbsS2XGZ31RGEPRUsdSei8fHxQqFQrVZPOOGEd7zjHddeey0mbdZazNtGRkYuu+yyb33rW1przP+eeOKJ559/nkNdwZo5Pj5+wQUXQN7owTD3hje84bOf/SxbNqHiGGO+/e1vn3TSSRBFYGTEftkWD3+jKIpu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eCee8AbDBn04NAFegpkHF2jY24SkicKoMbpPXT+jqvZVPgmcLmHd5VjqUU1gfxhjbMfFGGObvbQKzZ6sv4ZH7RfizJsITfS2jro069lWf4BULEVERERERETEr+a1vyv8p/ndJzD87vuPiD/JiwHJmgr08X6B7B9/whTm9Hlqvo2/Xlt/6ynXhT57LHR3Rk+HI7VVIXX0YAoAi4KmjW64RvXIJVF7q7qOojRXonNZ9lI3ZZKCOpSiseYlYV6lHjw0lHtNAQbKLNACDJkuAoMm0HEMYFe5BsfJvFz97bj7vKV917pciAelW3f1g7dD/KD/UzFXare1Rnzx2b0xYHthjmdkqszthb88MiIiIiIiIiIiIiIifm33ZxQdc6A9Lvr7Bzu26Tvev39aD5rqCdM2qKpy2bUyJbrLsLr4p9d5khN1hY+9bYMGu9UdTEDoQqst53g97LBpEaILhrSWnV0WtB20IBSqXKePAVIdjipuT/gbtqd/uoj3I95Z5GbOU5rdRURERERERERERETEZ9bMoYOVOd3Ppz63L4KembRNb/p06M962FqkLv3e+saWMK25TTb8KDMBAK24iaT3pAqo7mlHDFB7ZQ1RwPml09z7EJJdILaGJuHQLbDv6nzs9NLq34Gurkb6ZDzWq8v+yMUiIiIiIiIiIiIiIuLfac65Vx0dxyzx9aihW+fhXlXTMW26+fTTBY+rrQTLt4e4+1xcCqE6oyrbdYmaBgB0+7oXT5bGqCqyDBiDJAtA107RhrE+9uHt03VJ122N0VbtdLlLr/eYo1n+mBTervOohV1dv2o3X32W7n3NsalgRERERERERERERET8mxwDp6PvixeO+VDfGGMc71lp1r3AaSUgHICNaZuTls152NW4LIKBe7nJeiRL0nacAqZtzasT2zOU75gftJWFwTJpYBtSJRugCK0z7TTrp1c47YFW+QeEQxEREREREREREREREV93kzZdoqAXM5h+4t6Xb1/87kSorwQ8h0W0x1QE99Il9kEflzqRtNW97+yyKen8bY+vtOcy1QHWKyTRnDKKpGcXFlG9mkW6yvQaFnXdUu9jINT31OvB11F31TusIwBb6GbghW57vC6UMvGF0VA3m7ncfl6t9R1xX0RERERERERERERE/CMevatvXeYtAStn8mEQ0RdVD1haURBX3zwSMmT29CR7He7QYO9q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"}},"time_used":143,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":117,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1722995680_1000056974png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.599Z","timestamp":1785153914599,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1722995680_1000056974png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 6027\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":6027,"size_decoded":6188,"mime_type":"image/png","magic":"PNG image data, 300 x 300, 8-bit colormap, non-interlaced","md5":"e8a1320b7c243e97ca2f518953bdd95b","sha1":"7ec5bf654f07bb48871fe788076d6ca3abe74715","sha256":"78ac42217cf91debd2c5d22c373478e0300affb4403ff761829066ae61774193","sha512":"388fc5d5e6dfaa804a9ccd95136afda1c56469c8e2b7c43bf739f7c397342e6db7ff60ec3581e367a668e692c097d8ba51205e180aa84089dd7d4ede2ed0cd2f","ssdeep":"96:E2Lk0DWMB8sjQTrbQ+nhrVQQPdxpeTxdWZS2EpItCOYV3VHu6ILU7ui:E2Lk6rB8saZhxQcxcxdWw1OQ3VOhU7/","tlshash":"d9c17c6445cce07adb1c6274ee541993f0e16c70a2247f8828e2f145863d0e2fc9aeb0","first_seen":"2025-09-23T09:29:39.749813Z","last_seen":"2026-07-27T12:06:15.817658Z","times_seen":17,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAADAFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgodHR0SEhIUFBQICAivr6/h4eHd3d3f39/CwsIyMjI6OjrIyMinp6cYGBg4ODjW1tb////MzMwtLS02NjbT09POzs4wMDAAAAA8PDzY2NgqKirS0tI0NDRBQUHc3NwmJiZFRUW9vb0iIiIoKCjGxsbZ2dk9PT1NTU3j4+O4uLglJSXBwcFCQkJQUFDl5eWzs7MaGhogICC7u7vi4uJISEhYWFjp6emsrKy2trYBAQFdXV3s7Oz+/v6ysrLo6OhTU1NiYmLv7+/9/f2ioqIWFhbr6+tbW1toaGjx8fGbm5sODg6mpqZeXl4DAwNubm7y8vL8/PyWlpYMDAygoKBlZWUEBAR0dHT19fX7+/uPj49sbGwFBQV7e3v39/f6+vqJiYmVlZX09PRycnIHBweCgoL4+Pj29vZ3d3eHh4f5+fl9fX2NjY12dnaFhYWTk5NwcHCMjIyZmZlqamqSkpIQEBBkZGSenp6jo6OxsbHn5+epqank5OSurq4AAAC/v7/U1NTExMTQ0NArKyvHx8c/Pz9KSkrFxcUkJCRVVVXu7u4ZGRl6enqBgYEAAACrq6tgYGC6urpmZmbb29sAAACAgIB/f3940dpmAAAA/nRSTlMABA0cLUJXboKYqrrI1N/n7PL08OXd05ZAGgIBCjJQcI7D1/j9/v/BCA8pTHOc7/v67tq9mUgmBR6gyp59svZ7RTetNRjGixZTFNWREoXNgGS2XweH66YV0Gx5dls9JGm4P07jWokwOyH///////////////////////////////9N///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////p////////////////////4f//////o0PZia8AABM8SURBVHgB5NhlcutIGIXhmJkpZo+kPsaJKQwKMzMz7X8Fl35fFDY8S3ir1PrqjNjP4XS5PV6fPxAMhSPRWDyR/CEVT2ey4VAw5/d5R915Z2FEaMVSvlyp1oL/SbGErBD8AlHkVFqqB2u+SjnfELBTodlqd/6vZ8a6BH+N9PqD4XhnYtJZFCbU1LSnOjMb6xFoQuRYeM43mp8SINTE/EJGJdCJJAcLi0t5B7+lmsvVlYwMoxB1EPStOnl8pNbatdkUgcFIf31jYrPIVan81rgkwyRqNldZ46XXdjsg9WAqeWd3Yo/9Uo3l/QMZFlBnD1eZPsKK00fHfQKLkPjCSZ7Vz/F0eUPqwlLdnbPyFIt3QiUYh/XI+UWbtWti86iuwibq8OSSoVTTnasubNSbvc6zkupmR4HNlKuOi4FUrltJAQWUbHWN8lSX11kFlFAOjmg+VJ134S4o0qtvlWidXzwLMiijrtxTOeO0AmOgUHz3gbpUe9UM6EQGj02qUjmWhl1Qq/f0XKDosqr1QbXzszwtD/vWAQHllHCbiod+OpcAA1K1vP2v1csBARNIeMLml2vzbAzMiB/aetEvDxUwRDku27evH72CMZkTm4bUtZwK5iRrtgyDq3UCBilPbstTFbwZMEqqWPxXLC2mwKx4p2HpczXXA8PknIUPVytEwDRlwbLd5v4KzAsvW5KqWImCA4MJK36DR+fgQvqtYPoe00mAE/1Hk1ebxqEKbiRvT009r95lcEQ9NPHgcu72wBX5rGReqy4403svsd6K/VolHlsBvTMT3q3GRg9ckg9PDb+vDmVwSr01+N4qdFRwK/Fo6C1fPEqAY/03I2NtnYNr6QkDN5koODdYNmzruwL3wgatgfkQBLBgyNLsnIMISM6A47Qw34MQ5E5Rd6y3FAQRr+httRyFMKQPnY97HQJ50vXINwIQCalN6Yj1KEMoyRPt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"}},"time_used":104,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":75,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1723055960_usdcpng","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.601Z","timestamp":1785153914601,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1723055960_usdcpng HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3966\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3966,"size_decoded":4127,"mime_type":"image/png","magic":"PNG image data, 50 x 50, 8-bit/color RGBA, non-interlaced","md5":"2129c1382a6617f0083ce8d5936b738f","sha1":"2c289471feb06b12228449841f52cd6fe23e9b3c","sha256":"1bda72a7f4a2f1931510e992c1ff38ca0f1b7a497be6636ab6457d08ca003c52","sha512":"ccf8f0ef3ca41456e797fde3e4dbcffefe37879d98097fb5c4745bd9f216c38be841b1356990e16f04271e2d9e1eef496370187530819ebee4151d1591097f68","ssdeep":"","tlshash":"65818eadb3502311edfe132adf49afc9d9e2cf44a00bd13425140a098c2741d87d7d0d","first_seen":"2024-09-19T19:38:42.360764Z","last_seen":"2026-07-27T12:06:15.831519Z","times_seen":253,"resource_available":false,"data":"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"}},"time_used":29,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.gstatic.com/images/branding/product/2x/translate_24dp.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://onchainopt.com/","date":"2026-07-27T12:05:15.404Z","timestamp":1785153915404,"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 /images/branding/product/2x/translate_24dp.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/_/translate_http/_/ss/k=translate_http.tr.B7Dih9Jyjnw.L.F4.O/am=BIAABw/d=0/rs=AN8SPfpC04vrrzQXgs_TCM5EtruwfPzNtQ/m=el_main_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\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy-report-only: same-origin; report-to=\"static-on-bigtable\"\r\nreport-to: {\"group\":\"static-on-bigtable\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/static-on-bigtable\"}]}\r\ncontent-length: 1842\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Fri, 24 Jul 2026 07:17:13 GMT\r\nexpires: Sat, 24 Jul 2027 07:17:13 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Thu, 14 Oct 2021 09:08:00 GMT\r\ncontent-type: image/png\r\nvary: Origin\r\nage: 276482\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":1842,"size_decoded":2516,"mime_type":"image/png","magic":"PNG image data, 48 x 48, 8-bit/color RGBA, non-interlaced","md5":"c69c796362406f9e11c7f4bf5bb628da","sha1":"e489ce95ab56208090868882113d7416abf46775","sha256":"4dac0026fbfa2615dce30c0af12830863fe885f84387a0147b9e338f548d5d82","sha512":"d3ad560ed0fd29be7d2cc434694f09e5a6fbea8b29c0611aecb54a1b73b4d722c53f42a19dae9e3d5d358444e50fb8fffbc39d67ce751bdbc8c861f6f95d3162","ssdeep":"","tlshash":"4e31f9fd129220437101ade72165eef798347c15f412da60ce65ba389c9fe20ed9a619","first_seen":"2023-04-05T07:39:29Z","last_seen":"2026-07-30T06:06:44.984836Z","times_seen":73051,"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":"onchainopt.com/#","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"","port":0,"asn":0,"as":"","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:15.517Z","timestamp":1785153915517,"http_version":"","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\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":"","headers":null,"cookies":null,"status_code":"","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-30T08:24:56.947858Z","times_seen":17613206,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"onchainopt.com/assets/images/coinicon/1723239177_image-2024-08-09-223250886png","fqdn":"onchainopt.com","domain":"onchainopt.com","tld":"com"},"ip":{"addr":"5.182.208.207","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://onchainopt.com/","date":"2026-07-27T12:05:14.603Z","timestamp":1785153914603,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"onchainopt.com","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 10 Jul 2026 01:43:28 GMT","end":"Thu, 08 Oct 2026 01:43:27 GMT"},"fingerprint":{"sha1":"93:2F:4B:AD:F6:11:70:4A:B9:58:9B:DD:25:3C:D5:90:AD:65:51:62","sha256":"49:21:43:0B:73:29:CA:21:B3:65:08:6F:52:E0:52:CF:87:3E:08:FC:C8:3C:12:8C:98:1B:37:C9:26:EE:BB:51"}}},"request":{"raw":"GET /assets/images/coinicon/1723239177_image-2024-08-09-223250886png HTTP/1.1\r\nHost: onchainopt.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-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://onchainopt.com/\r\nCookie: XSRF-TOKEN=eyJpdiI6ImJJNUU5ejE0eHFiWE9FQk1uZ0FnNGc9PSIsInZhbHVlIjoiMUt6ckFYdUdVd0ZEVHZOZ1VGZjJtSzgrZThTbCsza3paUFZ5T1RIZkZuQ0ZEclV2NVU1V29nM1kzeVVhNUJ2bXZSYTZ1SnNIUTE3YVozZE5FcnR4QndkZVR5a3pTbXNXMWpDK2ZQeFE2SjgrUUVPY3BRdHlWbDdzd3hmMzVmTEsiLCJtYWMiOiJiOWQyMzIwMzAwNTI1ZDBiN2MzNGM5OWUyMmZhYTVmM2NlNzM0NDI2NmU4NTI1ZmMwZTFjOWRhMjdiM2NiZjI0IiwidGFnIjoiIn0%3D; onchainopt_session=eyJpdiI6IjhoZGEzUkVPUUxQY0k4ZVRPaGxneGc9PSIsInZhbHVlIjoiRjhnSzhPbUVuTEc5a0Q4dFZ6YmRXT2N1RWk0dmRwZzBDVXNOUFo4TDFXL0RCZHdWVk43dWcyaUhiODFVaUZ6QWlZU3pXM1k3ZEhoTjFyVWcweGs3YVUwVndyWW9BZ3A2VElEc3NiNXpYem1jZ21rdXlVMEhjMEFEbTlVV013R04iLCJtYWMiOiJlMzA1ODljNmZkODQ2MmYxOGNhMjc2ZTcxYmE5NjRkOWU4NjIzMjA3ZWZhZDNhYzdkY2NjZmRhYzJlZjVkMDRkIiwidGFnIjoiIn0%3D\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/3 200 \r\nlast-modified: Tue, 10 Feb 2026 09:43:37 GMT\r\naccept-ranges: bytes\r\ncontent-length: 9686\r\ndate: Mon, 27 Jul 2026 12:05:14 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":9686,"size_decoded":9847,"mime_type":"image/png","magic":"PNG image data, 204 x 192, 8-bit/color RGB, non-interlaced","md5":"3feaac3a9a4ad419b652d13e8b58cde0","sha1":"7a86161ab7ca82b40e2aba96a0b1c0049132f9d0","sha256":"c0b07c9704394ba68b1980f564bcda1ec14dcb5262c26d7ad54f0ed4aebcf205","sha512":"eec437785d02037a5a73bff992bf3262dc14d827ebac2f6435220d8c6cd8423dc71e2b9a2b24bdc85dba3ba0519b876971f77fc3b3ac8d4016137de04a1f8bdc","ssdeep":"192:SNFo4adhVvSgBGFkitFD48o69CwiOVe6pGfzPov2+ATd1ni0dh5vNXksEzM:SYrtOFsxFwzVeXLUZAp1i0TksKM","tlshash":"3c12b0c127d6ec95bc008cac89b5c62c921a27995da3373a7c3bd4b158bc038513836f","first_seen":"2026-04-01T23:54:14.703156Z","last_seen":"2026-07-27T12:06:15.8125Z","times_seen":12,"resource_available":false,"data":"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"}},"time_used":100,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":73,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
