{"report_id":"65f543c2-6c2b-4997-afc0-1e89bd555401","version":0,"status":"done","tags":[],"date":"2026-07-27T08:01:56Z","url":{"schema":"https","addr":"mobichain.co/","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"104.21.91.178","port":0,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"final":{"url":{"schema":"https","addr":"mobichain.co/","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"title":"Mobichain – Split Bills \u0026 Pay Instantly with Crypto","dom":{"size":31416,"mime_type":"text/html; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (1065)","md5":"d4b89f6455e5d5067bdfbf4ba4fe53d5","sha1":"71a11487b113439587fae2e4b8f3756169894b46","sha256":"1d7ec374dec604442b81028ddd09b309e8c4c4946d0824af12208b71f099b5aa","sha512":"bcbe83c6e208958f06af56bd26f429f52a2b0e8669953dec823754083207371ef29317d5af574cd1d73ad161b5e781e46d5dfbee761d6b82b577ebf6839d9e5d","ssdeep":"768:v10540tjY7EFRecHariWRdQBJRgijg06v:v10uQjgEWhszl6v","tlshash":"88e2742269f020270383c0d8a7a46e1a6f96d50bdb1b6d48b6ec47c89fc7dd6cd6365c","dom_hash":"domhashb6744be64fc64a9c275aae83de777495","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"mobichain.co/","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"104.21.91.178","port":0,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T08:01:56Z","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":"cdn.prod.website-files.com","ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2019-01-23","domain_rank":20159,"first_seen":"2023-11-01T22:05:38Z","last_seen":"2026-07-20T23:10:11.171702Z","alert_count":0,"request_count":13,"received_data":231789,"sent_data":7820,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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"]}]},{"fqdn":"d3e54v103j8qbb.cloudfront.net","ip":{"addr":"54.192.209.151","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2008-04-25","domain_rank":0,"first_seen":"2016-03-11T23:08:14Z","last_seen":"2026-07-20T18:55:32.917705Z","alert_count":0,"request_count":1,"received_data":90093,"sent_data":515,"comment":"","tags":null,"fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}]},{"fqdn":"bootstrap.smartsuppchat.com","ip":{"addr":"3.69.194.231","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"domain_registered":"2014-02-02","domain_rank":425291,"first_seen":"2018-01-29T06:10:36Z","last_seen":"2026-07-24T07:15:25.204838Z","alert_count":0,"request_count":1,"received_data":1617,"sent_data":527,"comment":"","tags":null,"fingerprints":null},{"fqdn":"widget-v3.smartsuppcdn.com","ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2018-11-20","domain_rank":532262,"first_seen":"2022-10-03T13:48:45Z","last_seen":"2026-07-24T15:28:31.507831Z","alert_count":0,"request_count":4,"received_data":329034,"sent_data":1855,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"www.smartsuppchat.com","ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2014-02-02","domain_rank":491650,"first_seen":"2017-01-30T05:24:57Z","last_seen":"2026-07-24T07:15:25.153212Z","alert_count":0,"request_count":1,"received_data":18546,"sent_data":459,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"mobichain.co","ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2026-07-26T05:58:15.002511Z","last_seen":"2026-07-26T05:58:15.002511Z","alert_count":0,"request_count":11,"received_data":4037290,"sent_data":5364,"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":"jQuery:3.5.1","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"]},{"name":"Webflow","description":"Webflow is Software-as-a-Service (SaaS) for website building and hosting.","website":"https://webflow.com","common_platform_enumeration":"","icon":"webflow.svg","categories":["Page builders","CMS"]}]},{"fqdn":"translations.smartsuppcdn.com","ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2018-11-20","domain_rank":560346,"first_seen":"2022-11-04T22:28:35Z","last_seen":"2026-07-24T15:28:31.911258Z","alert_count":0,"request_count":1,"received_data":7732,"sent_data":509,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"websocket-visitors.smartsupp.com","ip":{"addr":"3.122.197.123","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"domain_registered":"2012-08-25","domain_rank":411464,"first_seen":"2021-07-12T07:42:32Z","last_seen":"2026-07-24T09:04:26.067381Z","alert_count":0,"request_count":1,"received_data":224,"sent_data":627,"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":"d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=63344e721a6dea71bdb9f908","fqdn":"d3e54v103j8qbb.cloudfront.net","domain":"d3e54v103j8qbb.cloudfront.net","tld":"cloudfront.net"},"ip":{"addr":"54.192.209.151","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"dc5e7f18c8d36ac1d3d4753a87c98d0a","sha1":"c8e1c8b386dc5b7a9184c763c88d19a346eb3342","sha256":"f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d","sha512":"6cb4f4426f559c06190df97229c05a436820d21498350ac9f118a5625758435171418a022ed523bae46e668f9f8ea871feab6aff58ad2740b67a30f196d65516","ssdeep":"1536:AjExXUqrnxDjoXEZxkMV4SYSt0zvDD6ip3h8cApwEjOPrBeU6QLiTFbc0QlQvakF:AYh8eip3huuf6IidlrvakdtQ47GK1","tlshash":"a993f9ddb2c6702257a720ba007f510bf236199d6c4d8450f265d8e9bcb8a4e827bf7d","size":89476,"data":"","first_seen":"2023-03-07T01:02:01Z","last_seen":"2026-08-01T09:15:13.758135Z","times_seen":264532,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/script.js","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"2315e5347ab8f3d055d4736478628c29","sha1":"dced91e838b418131e1e5ec411982fb5443ccfed","sha256":"3372dce4804b71377dc2af211a4bfe4c83830c28c703962e95c29f95ba992d21","sha512":"ad10c0ff41423afc594f48fa447a5d086d965fadbad8d68d54e08444a63322ce4a69d4637ed6e62f6c32182cfdf05630a9c3c679b7416536abc5a232f27f2c32","ssdeep":"49152:pIRaYepyV42BSH9WrIQLqxWUXvNF6vR4HVZk6a7J5WzSraz8MdMK:YMdMK","tlshash":"f8c54f0a66e32020a113b07f8e2f9445a634814f0c4afd983f5c92b65f1d66d97f9fe9","size":2571226,"data":"","first_seen":"2026-07-25T05:39:21.901489Z","last_seen":"2026-07-27T08:02:19.609068Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"ad531194c101aa513ec58e1cf917900d","sha1":"681171a9b3edc6a96be92b3a9b418dd9700c6310","sha256":"49f0c0f12adf5e97df99743cf2762ce24f574622037d947b2ec6871b5593a72e","sha512":"e0b7bdee23a11a1c6d5841660eab30766c25fafc356b2142649d9ce844f812801c7296ee6c847b29e92c1ca4d62932dea15b85271a1bf7458118aa74fe3c9005","ssdeep":"","tlshash":"ccd0a73b21d114380c076a557b2fb9063f57914f78146501fd6e53c06f878ba6931e9e","size":282,"data":"","first_seen":"2025-11-29T13:03:23.450529Z","last_seen":"2026-07-27T09:59:04.278609Z","times_seen":22,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"58a9b100413ea5b92144ec6a7cb475cd","sha1":"8050c14d3bd22bb53890e09a748b61b6f0adc3dc","sha256":"894fdf0e6cf91ffbf64095504503c54c6af28eee59a08755b55f6145d4ea62e5","sha512":"ddb24f87d7b9d8733d6b96c5dd9dcca1ecaa74999f3e63eecbc5f6f2d3d608c3a6743c6d6a15a3d30e19161a22be735a487d17d13597f69bd01eb67982b597db","ssdeep":"","tlshash":"b8e0261136e20e96d262b50d03dd668301a523d3ae8d38357a8d4910ff8ea0e96346ee","size":385,"data":"","first_seen":"2026-06-15T19:25:08.878124Z","last_seen":"2026-07-27T08:02:19.611837Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"faa1ce3b13a9e73d345cbe6144a95429","sha1":"7972400c4dabec069175338a759c35b948a648dc","sha256":"ceb562f0fa4f4d681714a452789fb680b6b56e73f25f570da6bbdcfb4c34373d","sha512":"8823a4dc011fbf30cfc6d1b4b2728f232f207c5c7f4e42c7dbf77b08497b01082e6d805e47d5b8dc16753d855b8be1b0eef3bee7ea01af9e887a9adbb658907e","ssdeep":"","tlshash":"a0e0f13c3c3480845be300b4c1b7e1383e0630701040c917d8d6d8685cf0fc9ad01a85","size":416,"data":"","first_seen":"2026-07-25T05:39:21.898951Z","last_seen":"2026-07-27T08:02:19.613381Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":true,"md5":"2c9f535a7ab7d4731955b4a7f3793cee","sha1":"d28642444f4040e527c3a385aec9df41721af9b4","sha256":"849b72c637a99b78117c35cfb343b8d2d308aca918475fcf63f0ac3951438faa","sha512":"a57ed86be6cfe0c4d1c616f01d395bd4fb55a9032decfae8cc31da797aca3c01db2a99db5d0530754dba3e38c8c714ab57c53710535a1dc1d1fc012879bc3a4b","ssdeep":"","tlshash":"1a11e599b1b224b14fa354e75a2b754c9ab310faf004da013b89c09c3f81ddd045bce3","size":882,"data":"","first_seen":"2026-07-25T05:39:21.899913Z","last_seen":"2026-07-27T08:02:19.614412Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.smartsuppchat.com/loader.js?","fqdn":"www.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"218d24439d4e2c0990f35338a7ac220c","sha1":"5a7b913584c1244bf61beab9dc644204d130101c","sha256":"efb497f7159de26ea5e0521d675d909dc063e36d0d23c2ad96fa9109b73ee263","sha512":"17af39bfdc350c9d1f8dd74652641d0c028881ecb3935d2d9fdb763d24136665d135d00219aabac57693112e2314d4fa91b802ba2662a1580aa35c5e0b6e624b","ssdeep":"384:2/xzy2A3wyxNeBWbEgl/EuVaBWbE0rIcvqSI/aQ/UpG:2/xzy2A3wXscuVaAxka05","tlshash":"4182b7cc7691b16543ab61b4843f620ff1376929740d8865b965eae13cb8c8ed037fb8","size":18024,"data":"","first_seen":"2026-03-30T19:01:55.527327Z","last_seen":"2026-08-01T06:16:36.385264Z","times_seen":7891,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-B-VHc1K4.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"44df6240c839beea4111582dddf02793","sha1":"4b4dd2241d5ff95eba46fb8893058404630825cd","sha256":"a4019ee0c737ef5d214e80e5a87a5a6e839ff2cf4e286cdad9ed6ff397eba250","sha512":"2f30c45b38eeb4a1900f295893fa30362dce2af015cb8eac6b997795ff4b72db55a92d8d38bb7a8cc8f529c612906aa9d2a2a41539c6a67052ae569733ff7e02","ssdeep":"384:Xrgi5RFMkSjJOE/0BW2rvZZ795P6nrnBOVmPCRkXQbpaIF2x:XEizlSjJOEiWYPR5P6rnBOVmycQbpaIi","tlshash":"6c72d7742700783f712f489e15ade546b232c29dd693892d8b2fec0976c5cc0a8b37b9","size":16281,"data":"","first_seen":"2026-07-27T07:28:16.135673Z","last_seen":"2026-07-29T06:17:50.042235Z","times_seen":1081,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-kb1yqHaA.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"4a99d6fd0e84ed566d578d0ed5dea128","sha1":"c729468068793db7ca783d243b2ec065b6e2f202","sha256":"99501ff83cea2d37fb29f4ff7e0bfc1a93655e56db91bce74171fe29f0821884","sha512":"fcab2b13f37fe49c7a500be1285445ec1dfb120ed4f6d909925ea5616ee9f62d999fe83c1f8210dcc1742528ee3469e5671b34191317836ab4ed3b020ade8608","ssdeep":"6144:mLjnOEIL18ad2jJKaQF+tRkYcuBa+y+mFJW:iOEIZRd29Uqj4r+mF4","tlshash":"b3443ad53294b03543db51e6906f1106b33e5c58580d812cf269ede638baec8a2f7fb8","size":272133,"data":"","first_seen":"2026-07-27T07:28:16.16312Z","last_seen":"2026-07-29T06:17:50.104199Z","times_seen":1066,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":null},"http":[{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/6335cbc30fc97b00f887467c_Arrow%20Botton.svg","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.214Z","timestamp":1785139285214,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/6335cbc30fc97b00f887467c_Arrow%20Botton.svg HTTP/1.1\r\nHost: cdn.prod.website-files.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://mobichain.co/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: image/svg+xml\r\nx-amz-id-2: FiOULYWNFKbNR0Gy34+NE4puXw1P0mR5rNcR+/m1KPD+bZO4DEK3BJHPeBP4sipiAWggdZAILES8pyubCKjYMS5Arda8q8hp\r\nx-amz-request-id: CJZKRD59NZVNM60F\r\nlast-modified: Thu, 29 Sep 2022 16:45:56 GMT\r\naccess-control-allow-origin: *\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: nGJpPRWDxYK77MBTPhIJhVqOBsEn8XxB\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 516199\r\ncf-cache-status: HIT\r\netag: W/\"7515479b2633e7ea8aaf606adf70265e\"\r\ncontent-encoding: br\r\ncf-ray: a21a1db49d82a0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":706,"size_decoded":1047,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"7515479b2633e7ea8aaf606adf70265e","sha1":"02fa100c456017c69002a3d0f4b9474801a43f7c","sha256":"57ac469cd5a6a3aae7bcaade13d22c7c9470f053b119d7e39864a9010151d044","sha512":"bd2b02fe20df127bb609d756836b21972f0e51394be15bc3ea666c963f54218f179404df55f384f090a053d01baab3dd61c3a1acb0a2b6870cd880e0f86c8d33","ssdeep":"","tlshash":"2e01fe24a349bc3df9208328db10b4781069a2439ecd8128c5e03e3b19049cf293f5ed","first_seen":"2024-08-19T19:36:06.884646Z","last_seen":"2026-07-27T08:02:19.574858Z","times_seen":6,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iNjIiIGhlaWdodD0iNjEiIHZpZXdCb3g9IjAgMCA2MiA2MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC45NjM4NjciIHk9IjAuMTY3OTY5IiB3aWR0aD0iNjAuMjA1NyIgaGVpZ2h0PSI2MC4xMTgyIiByeD0iMzAuMDU5MSIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzI2MTBfMjIxMTMpIi8+CjxwYXRoIGQ9Ik0zOS4wNjY5IDIyLjIyNzFMMjMuMDY2OSAzOC4yMjcxIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0yMy4wNjY5IDIzLjE0MjJWMzguMjI3MUgzOC4xNTE3IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjYxMF8yMjExMyIgeDE9IjMxLjA2NjciIHkxPSIwLjE2Nzk2OSIgeDI9IjMxLjA2NjciIHkyPSI2MC4yODYyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMxM0I0Q0EiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMjcyRUUyIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=63344e721a6dea71bdb9f908","fqdn":"d3e54v103j8qbb.cloudfront.net","domain":"d3e54v103j8qbb.cloudfront.net","tld":"cloudfront.net"},"ip":{"addr":"54.192.209.151","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.189Z","timestamp":1785139285189,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.cloudfront.net","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Tue, 24 Feb 2026 00:00:00 GMT","end":"Wed, 09 Sep 2026 23:59:59 GMT"},"fingerprint":{"sha1":"C9:18:5B:88:98:FA:65:52:EE:3F:8C:AC:85:C1:E4:56:E1:0D:39:DA","sha256":"C6:C6:D5:C7:F7:92:11:BB:D5:98:B6:EB:43:02:E5:65:7B:E8:32:E7:75:CE:E0:A8:29:B0:DE:A3:5E:AF:4E:02"}}},"request":{"raw":"GET /js/jquery-3.5.1.min.dc5e7f18c8.js?site=63344e721a6dea71bdb9f908 HTTP/1.1\r\nHost: d3e54v103j8qbb.cloudfront.net\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mobichain.co/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET\r\naccess-control-max-age: 3000\r\nlast-modified: Mon, 20 Jul 2020 17:53:02 GMT\r\ncontent-encoding: gzip\r\nserver: AmazonS3\r\ndate: Mon, 27 Jul 2026 02:53:30 GMT\r\ncache-control: max-age=84600, must-revalidate\r\netag: W/\"dc5e7f18c8d36ac1d3d4753a87c98d0a\"\r\nvary: Accept-Encoding\r\nvia: 1.1 1ad6d29ff66cbe7838d3a30dae2f9382.cloudfront.net (CloudFront)\r\nage: 18474\r\nx-cache: Hit from cloudfront\r\nx-amz-cf-pop: OSL50-P3\r\nx-amz-cf-id: Pijr5OFYVr9zvG36kqtLPLhRFCGej6zR7TiqNV0RDNXsXCprBjmV8Q==\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon S3","description":"Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface.","website":"https://aws.amazon.com/s3/","common_platform_enumeration":"","icon":"Amazon S3.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":89476,"size_decoded":32121,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65451)","md5":"dc5e7f18c8d36ac1d3d4753a87c98d0a","sha1":"c8e1c8b386dc5b7a9184c763c88d19a346eb3342","sha256":"f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d","sha512":"6cb4f4426f559c06190df97229c05a436820d21498350ac9f118a5625758435171418a022ed523bae46e668f9f8ea871feab6aff58ad2740b67a30f196d65516","ssdeep":"1536:AjExXUqrnxDjoXEZxkMV4SYSt0zvDD6ip3h8cApwEjOPrBeU6QLiTFbc0QlQvakF:AYh8eip3huuf6IidlrvakdtQ47GK1","tlshash":"a993f9ddb2c6702257a720ba007f510bf236199d6c4d8450f265d8e9bcb8a4e827bf7d","first_seen":"2023-03-07T01:02:01Z","last_seen":"2026-08-01T09:15:13.758135Z","times_seen":264532,"resource_available":true,"data":"LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTA7aWYocChlKSl7Zm9yKG49ZS5sZW5ndGg7cjxuO3IrKylpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWt9ZWxzZSBmb3IociBpbiBlKWlmKCExPT09dC5jYWxsKGVbcl0scixlW3JdKSlicmVhaztyZXR1cm4gZX0sbWFrZUFycmF5OmZ1bmN0aW9uKGUsdCl7dmFyIG49dHx8W107cmV0dXJuIG51bGwhPWUmJihwKE9iamVjdChlKSk/Uy5tZXJnZShuLCJzdHJpbmciPT10eXBlb2YgZT9bZV06ZSk6dS5jYWxsKG4sZSkpLG59LGluQXJyYXk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBudWxsPT10Py0xOmkuY2FsbCh0LGUsbil9LG1lcmdlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPSt0Lmxlbmd0aCxyPTAsaT1lLmxlbmd0aDtyPG47cisrKWVbaSsrXT10W3JdO3JldHVybiBlLmxlbmd0aD1pLGV9LGdyZXA6ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1bXSxpPTAsbz1lLmxlbmd0aCxhPSFuO2k8bztpKyspIXQoZVtpXSxpKSE9PWEmJnIucHVzaChlW2ldKTtyZXR1cm4gcn0sbWFwOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89MCxhPVtdO2lmKHAoZSkpZm9yKHI9ZS5sZW5ndGg7bzxyO28rKyludWxsIT0oaT10KGVbb10sbyxuKSkmJmEucHVzaChpKTtlbHNlIGZvcihvIGluIGUpbnVsbCE9KGk9dChlW29dLG8sbikpJiZhLnB1c2goaSk7cmV0dXJuIGcoYSl9LGd1aWQ6MSxzdXBwb3J0Onl9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoUy5mbltTeW1ib2wuaXRlcmF0b3JdPXRbU3ltYm9sLml0ZXJhdG9yXSksUy5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe25bIltvYmplY3QgIit0KyJdIl09dC50b0xvd2VyQ2FzZSgpfSk7dmFyIGQ9ZnVuY3Rpb24obil7dmFyIGUsZCxiLG8saSxoLGYsZyx3LHUsbCxULEMsYSxFLHYscyxjLHksUz0ic2l6emxlIisxKm5ldyBEYXRlLHA9bi5kb2N1bWVudCxrPTAscj0wLG09dWUoKSx4PXVlKCksQT11ZSgpLE49dWUoKSxEPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10JiYobD0hMCksMH0saj17fS5oYXNPd25Qcm9wZXJ0eSx0PVtdLHE9dC5wb3AsTD10LnB1c2gsSD10LnB1c2gsTz10LnNsaWNlLFA9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspaWYoZVtuXT09PXQpcmV0dXJuIG47cmV0dXJuLTF9LFI9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixNPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixJPSIoPzpcXFxcW1xcZGEtZkEtRl17MSw2fSIrTSsiP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlwwLVxceDdmXSkrIixXPSJcXFsiK00rIiooIitJKyIpKD86IitNKyIqKFsqXiR8IX5dPz0pIitNKyIqKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCIrSSsiKSl8KSIrTSsiKlxcXSIsRj0iOigiK0krIikoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXwiK1crIikqKXwuKilcXCl8KSIsQj1uZXcgUmVnRXhwKE0rIisiLCJnIiksJD1uZXcgUmVnRXhwKCJeIitNKyIrfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKikiK00rIiskIiwiZyIpLF89bmV3IFJlZ0V4cCgiXiIrTSsiKiwiK00rIioiKSx6PW5ldyBSZWdFeHAoIl4iK00rIiooWz4rfl18IitNKyIpIitNKyIqIiksVT1uZXcgUmVnRXhwKE0rInw+IiksWD1uZXcgUmVnRXhwKEYpLFY9bmV3IFJlZ0V4cCgiXiIrSSsiJCIpLEc9e0lEOm5ldyBSZWdFeHAoIl4jKCIrSSsiKSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitJKyIpIiksVEFHOm5ldyBSZWdFeHAoIl4oIitJKyJ8WypdKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrVyksUFNFVURPOm5ldyBSZWdFeHAoIl4iK0YpLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrTSsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrTSsiKig/OihbKy1dfCkiK00rIiooXFxkKyl8KSkiK00rIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK1IrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitNKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK00rIiooKD86LVxcZCk/XFxkKikiK00rIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFk9L0hUTUwkL2ksUT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLEo9L15oXGQkL2ksSz0vXltee10rXHtccypcW25hdGl2ZSBcdy8sWj0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLGVlPS9bK35dLyx0ZT1uZXcgUmVnRXhwKCJcXFxcW1xcZGEtZkEtRl17MSw2fSIrTSsiP3xcXFxcKFteXFxyXFxuXFxmXSkiLCJnIiksbmU9ZnVuY3Rpb24oZSx0KXt2YXIgbj0iMHgiK2Uuc2xpY2UoMSktNjU1MzY7cmV0dXJuIHR8fChuPDA/U3RyaW5nLmZyb21DaGFyQ29kZShuKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKG4+PjEwfDU1Mjk2LDEwMjMmbnw1NjMyMCkpfSxyZT0vKFtcMC1ceDFmXHg3Zl18Xi0/XGQpfF4tJHxbXlwwLVx4MWZceDdmLVx1RkZGRlx3LV0vZyxpZT1mdW5jdGlvbihlLHQpe3JldHVybiB0PyJcMCI9PT1lPyJcdWZmZmQiOmUuc2xpY2UoMCwtMSkrIlxcIitlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK2V9LG9lPWZ1bmN0aW9uKCl7VCgpfSxhZT1iZShmdW5jdGlvbihlKXtyZXR1cm4hMD09PWUuZGlzYWJsZWQmJiJmaWVsZHNldCI9PT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTt0cnl7SC5hcHBseSh0PU8uY2FsbChwLmNoaWxkTm9kZXMpLHAuY2hpbGROb2RlcyksdFtwLmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChlKXtIPXthcHBseTp0Lmxlbmd0aD9mdW5jdGlvbihlLHQpe0wuYXBwbHkoZSxPLmNhbGwodCkpfTpmdW5jdGlvbihlLHQpe3ZhciBuPWUubGVuZ3RoLHI9MDt3aGlsZShlW24rK109dFtyKytdKTtlLmxlbmd0aD1uLTF9fX1mdW5jdGlvbiBzZSh0LGUsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmPWUmJmUub3duZXJEb2N1bWVudCxwPWU/ZS5ub2RlVHlwZTo5O2lmKG49bnx8W10sInN0cmluZyIhPXR5cGVvZiB0fHwhdHx8MSE9PXAmJjkhPT1wJiYxMSE9PXApcmV0dXJuIG47aWYoIXImJihUKGUpLGU9ZXx8QyxFKSl7aWYoMTEhPT1wJiYodT1aLmV4ZWModCkpKWlmKGk9dVsxXSl7aWYoOT09PXApe2lmKCEoYT1lLmdldEVsZW1lbnRCeUlkKGkpKSlyZXR1cm4gbjtpZihhLmlkPT09aSlyZXR1cm4gbi5wdXNoKGEpLG59ZWxzZSBpZihmJiYoYT1mLmdldEVsZW1lbnRCeUlkKGkpKSYmeShlLGEpJiZhLmlkPT09aSlyZXR1cm4gbi5wdXNoKGEpLG59ZWxzZXtpZih1WzJdKXJldHVybiBILmFwcGx5KG4sZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KSksbjtpZigoaT11WzNdKSYmZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEguYXBwbHkobixlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaSkpLG59aWYoZC5xc2EmJiFOW3QrIiAiXSYmKCF2fHwhdi50ZXN0KHQpKSYmKDEhPT1wfHwib2JqZWN0IiE9PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkpe2lmKGM9dCxmPWUsMT09PXAmJihVLnRlc3QodCl8fHoudGVzdCh0KSkpeyhmPWVlLnRlc3QodCkmJnllKGUucGFyZW50Tm9kZSl8fGUpPT09ZSYmZC5zY29wZXx8KChzPWUuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPXMucmVwbGFjZShyZSxpZSk6ZS5zZXRBdHRyaWJ1dGUoImlkIixzPVMpKSxvPShsPWgodCkpLmxlbmd0aDt3aGlsZShvLS0pbFtvXT0ocz8iIyIrczoiOnNjb3BlIikrIiAiK3hlKGxbb10pO2M9bC5qb2luKCIsIil9dHJ5e3JldHVybiBILmFwcGx5KG4sZi5xdWVyeVNlbGVjdG9yQWxsKGMpKSxufWNhdGNoKGUpe04odCwhMCl9ZmluYWxseXtzPT09UyYmZS5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gZyh0LnJlcGxhY2UoJCwiJDEiKSxlLG4scil9ZnVuY3Rpb24gdWUoKXt2YXIgcj1bXTtyZXR1cm4gZnVuY3Rpb24gZSh0LG4pe3JldHVybiByLnB1c2godCsiICIpPmIuY2FjaGVMZW5ndGgmJmRlbGV0ZSBlW3Iuc2hpZnQoKV0sZVt0KyIgIl09bn19ZnVuY3Rpb24gbGUoZSl7cmV0dXJuIGVbU109ITAsZX1mdW5jdGlvbiBjZShlKXt2YXIgdD1DLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7dHJ5e3JldHVybiEhZSh0KX1jYXRjaChlKXtyZXR1cm4hMX1maW5hbGx5e3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHQ9bnVsbH19ZnVuY3Rpb24gZmUoZSx0KXt2YXIgbj1lLnNwbGl0KCJ8Iikscj1uLmxlbmd0aDt3aGlsZShyLS0pYi5hdHRySGFuZGxlW25bcl1dPXR9ZnVuY3Rpb24gcGUoZSx0KXt2YXIgbj10JiZlLHI9biYmMT09PWUubm9kZVR5cGUmJjE9PT10Lm5vZGVUeXBlJiZlLnNvdXJjZUluZGV4LXQuc291cmNlSW5kZXg7aWYocilyZXR1cm4gcjtpZihuKXdoaWxlKG49bi5uZXh0U2libGluZylpZihuPT09dClyZXR1cm4tMTtyZXR1cm4gZT8xOi0xfWZ1bmN0aW9uIGRlKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiZlLnR5cGU9PT10fX1mdW5jdGlvbiBoZShuKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09dHx8ImJ1dHRvbiI9PT10KSYmZS50eXBlPT09bn19ZnVuY3Rpb24gZ2UodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiJmb3JtImluIGU/ZS5wYXJlbnROb2RlJiYhMT09PWUuZGlzYWJsZWQ/ImxhYmVsImluIGU/ImxhYmVsImluIGUucGFyZW50Tm9kZT9lLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT10OmUuZGlzYWJsZWQ9PT10OmUuaXNEaXNhYmxlZD09PXR8fGUuaXNEaXNhYmxlZCE9PSF0JiZhZShlKT09PXQ6ZS5kaXNhYmxlZD09PXQ6ImxhYmVsImluIGUmJmUuZGlzYWJsZWQ9PT10fX1mdW5jdGlvbiB2ZShhKXtyZXR1cm4gbGUoZnVuY3Rpb24obyl7cmV0dXJuIG89K28sbGUoZnVuY3Rpb24oZSx0KXt2YXIgbixyPWEoW10sZS5sZW5ndGgsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPXJbaV1dJiYoZVtuXT0hKHRbbl09ZVtuXSkpfSl9KX1mdW5jdGlvbiB5ZShlKXtyZXR1cm4gZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZlfWZvcihlIGluIGQ9c2Uuc3VwcG9ydD17fSxpPXNlLmlzWE1MPWZ1bmN0aW9uKGUpe3ZhciB0PWUubmFtZXNwYWNlVVJJLG49KGUub3duZXJEb2N1bWVudHx8ZSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiFZLnRlc3QodHx8biYmbi5ub2RlTmFtZXx8IkhUTUwiKX0sVD1zZS5zZXREb2N1bWVudD1mdW5jdGlvbihlKXt2YXIgdCxuLHI9ZT9lLm93bmVyRG9jdW1lbnR8fGU6cDtyZXR1cm4gciE9QyYmOT09PXIubm9kZVR5cGUmJnIuZG9jdW1lbnRFbGVtZW50JiYoYT0oQz1yKS5kb2N1bWVudEVsZW1lbnQsRT0haShDKSxwIT1DJiYobj1DLmRlZmF1bHRWaWV3KSYmbi50b3AhPT1uJiYobi5hZGRFdmVudExpc3RlbmVyP24uYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixvZSwhMSk6bi5hdHRhY2hFdmVudCYmbi5hdHRhY2hFdmVudCgib251bmxvYWQiLG9lKSksZC5zY29wZT1jZShmdW5jdGlvbihlKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZChDLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSwidW5kZWZpbmVkIiE9dHlwZW9mIGUucXVlcnlTZWxlY3RvckFsbCYmIWUucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIGZpZWxkc2V0IGRpdiIpLmxlbmd0aH0pLGQuYXR0cmlidXRlcz1jZShmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc05hbWU9ImkiLCFlLmdldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIil9KSxkLmdldEVsZW1lbnRzQnlUYWdOYW1lPWNlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGVuZENoaWxkKEMuY3JlYXRlQ29tbWVudCgiIikpLCFlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3RofSksZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPUsudGVzdChDLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpLGQuZ2V0QnlJZD1jZShmdW5jdGlvbihlKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlKS5pZD1TLCFDLmdldEVsZW1lbnRzQnlOYW1lfHwhQy5nZXRFbGVtZW50c0J5TmFtZShTKS5sZW5ndGh9KSxkLmdldEJ5SWQ/KGIuZmlsdGVyLklEPWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh0ZSxuZSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZSgiaWQiKT09PXR9fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQmJkUpe3ZhciBuPXQuZ2V0RWxlbWVudEJ5SWQoZSk7cmV0dXJuIG4/W25dOltdfX0pOihiLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgbj1lLnJlcGxhY2UodGUsbmUpO3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD0idW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlTm9kZSYmZS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiB0JiZ0LnZhbHVlPT09bn19LGIuZmluZC5JRD1mdW5jdGlvbihlLHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50QnlJZCYmRSl7dmFyIG4scixpLG89dC5nZXRFbGVtZW50QnlJZChlKTtpZihvKXtpZigobj1vLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZuLnZhbHVlPT09ZSlyZXR1cm5bb107aT10LmdldEVsZW1lbnRzQnlOYW1lKGUpLHI9MDt3aGlsZShvPWlbcisrXSlpZigobj1vLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZuLnZhbHVlPT09ZSlyZXR1cm5bb119cmV0dXJuW119fSksYi5maW5kLlRBRz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGUsdCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lP3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSk6ZC5xc2E/dC5xdWVyeVNlbGVjdG9yQWxsKGUpOnZvaWQgMH06ZnVuY3Rpb24oZSx0KXt2YXIgbixyPVtdLGk9MCxvPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSk7aWYoIioiPT09ZSl7d2hpbGUobj1vW2krK10pMT09PW4ubm9kZVR5cGUmJnIucHVzaChuKTtyZXR1cm4gcn1yZXR1cm4gb30sYi5maW5kLkNMQVNTPWQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmRSlyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGUpfSxzPVtdLHY9W10sKGQucXNhPUsudGVzdChDLnF1ZXJ5U2VsZWN0b3JBbGwpKSYmKGNlKGZ1bmN0aW9uKGUpe3ZhciB0O2EuYXBwZW5kQ2hpbGQoZSkuaW5uZXJIVE1MPSI8YSBpZD0nIitTKyInPjwvYT48c2VsZWN0IGlkPSciK1MrIi1cclxcJyBtc2FsbG93Y2FwdHVyZT0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsZS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NhcHR1cmVePScnXSIpLmxlbmd0aCYmdi5wdXNoKCJbKl4kXT0iK00rIiooPzonJ3xcIlwiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8di5wdXNoKCJcXFsiK00rIiooPzp2YWx1ZXwiK1IrIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49IitTKyItXSIpLmxlbmd0aHx8di5wdXNoKCJ+PSIpLCh0PUMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJuYW1lIiwiIiksZS5hcHBlbmRDaGlsZCh0KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPScnXSIpLmxlbmd0aHx8di5wdXNoKCJcXFsiK00rIipuYW1lIitNKyIqPSIrTSsiKig/OicnfFwiXCIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8di5wdXNoKCI6Y2hlY2tlZCIpLGUucXVlcnlTZWxlY3RvckFsbCgiYSMiK1MrIisqIikubGVuZ3RofHx2LnB1c2goIi4jLitbK35dIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJcXFxmIiksdi5wdXNoKCJbXFxyXFxuXFxmXSIpfSksY2UoZnVuY3Rpb24oZSl7ZS5pbm5lckhUTUw9IjxhIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+PHNlbGVjdCBkaXNhYmxlZD0nZGlzYWJsZWQnPjxvcHRpb24vPjwvc2VsZWN0PiI7dmFyIHQ9Qy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Quc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksZS5hcHBlbmRDaGlsZCh0KS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJEIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT1kXSIpLmxlbmd0aCYmdi5wdXNoKCJuYW1lIitNKyIqWypeJHwhfl0/PSIpLDIhPT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIjplbmFibGVkIikubGVuZ3RoJiZ2LnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksYS5hcHBlbmRDaGlsZChlKS5kaXNhYmxlZD0hMCwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZGlzYWJsZWQiKS5sZW5ndGgmJnYucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIiosOngiKSx2LnB1c2goIiwuKjoiKX0pKSwoZC5tYXRjaGVzU2VsZWN0b3I9Sy50ZXN0KGM9YS5tYXRjaGVzfHxhLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8YS5tb3pNYXRjaGVzU2VsZWN0b3J8fGEub01hdGNoZXNTZWxlY3Rvcnx8YS5tc01hdGNoZXNTZWxlY3RvcikpJiZjZShmdW5jdGlvbihlKXtkLmRpc2Nvbm5lY3RlZE1hdGNoPWMuY2FsbChlLCIqIiksYy5jYWxsKGUsIltzIT0nJ106eCIpLHMucHVzaCgiIT0iLEYpfSksdj12Lmxlbmd0aCYmbmV3IFJlZ0V4cCh2LmpvaW4oInwiKSkscz1zLmxlbmd0aCYmbmV3IFJlZ0V4cChzLmpvaW4oInwiKSksdD1LLnRlc3QoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbikseT10fHxLLnRlc3QoYS5jb250YWlucyk/ZnVuY3Rpb24oZSx0KXt2YXIgbj05PT09ZS5ub2RlVHlwZT9lLmRvY3VtZW50RWxlbWVudDplLHI9dCYmdC5wYXJlbnROb2RlO3JldHVybiBlPT09cnx8ISghcnx8MSE9PXIubm9kZVR5cGV8fCEobi5jb250YWlucz9uLmNvbnRhaW5zKHIpOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJjE2JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24ocikpKX06ZnVuY3Rpb24oZSx0KXtpZih0KXdoaWxlKHQ9dC5wYXJlbnROb2RlKWlmKHQ9PT1lKXJldHVybiEwO3JldHVybiExfSxEPXQ/ZnVuY3Rpb24oZSx0KXtpZihlPT09dClyZXR1cm4gbD0hMCwwO3ZhciBuPSFlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSF0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiBufHwoMSYobj0oZS5vd25lckRvY3VtZW50fHxlKT09KHQub3duZXJEb2N1bWVudHx8dCk/ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KToxKXx8IWQuc29ydERldGFjaGVkJiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpPT09bj9lPT1DfHxlLm93bmVyRG9jdW1lbnQ9PXAmJnkocCxlKT8tMTp0PT1DfHx0Lm93bmVyRG9jdW1lbnQ9PXAmJnkocCx0KT8xOnU/UCh1LGUpLVAodSx0KTowOjQmbj8tMToxKX06ZnVuY3Rpb24oZSx0KXtpZihlPT09dClyZXR1cm4gbD0hMCwwO3ZhciBuLHI9MCxpPWUucGFyZW50Tm9kZSxvPXQucGFyZW50Tm9kZSxhPVtlXSxzPVt0XTtpZighaXx8IW8pcmV0dXJuIGU9PUM/LTE6dD09Qz8xOmk/LTE6bz8xOnU/UCh1LGUpLVAodSx0KTowO2lmKGk9PT1vKXJldHVybiBwZShlLHQpO249ZTt3aGlsZShuPW4ucGFyZW50Tm9kZSlhLnVuc2hpZnQobik7bj10O3doaWxlKG49bi5wYXJlbnROb2RlKXMudW5zaGlmdChuKTt3aGlsZShhW3JdPT09c1tyXSlyKys7cmV0dXJuIHI/cGUoYVtyXSxzW3JdKTphW3JdPT1wPy0xOnNbcl09PXA/MTowfSksQ30sc2UubWF0Y2hlcz1mdW5jdGlvbihlLHQpe3JldHVybiBzZShlLG51bGwsbnVsbCx0KX0sc2UubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGUsdCl7aWYoVChlKSxkLm1hdGNoZXNTZWxlY3RvciYmRSYmIU5bdCsiICJdJiYoIXN8fCFzLnRlc3QodCkpJiYoIXZ8fCF2LnRlc3QodCkpKXRyeXt2YXIgbj1jLmNhbGwoZSx0KTtpZihufHxkLmRpc2Nvbm5lY3RlZE1hdGNofHxlLmRvY3VtZW50JiYxMSE9PWUuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIG59Y2F0Y2goZSl7Tih0LCEwKX1yZXR1cm4gMDxzZSh0LEMsbnVsbCxbZV0pLmxlbmd0aH0sc2UuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZS5vd25lckRvY3VtZW50fHxlKSE9QyYmVChlKSx5KGUsdCl9LHNlLmF0dHI9ZnVuY3Rpb24oZSx0KXsoZS5vd25lckRvY3VtZW50fHxlKSE9QyYmVChlKTt2YXIgbj1iLmF0dHJIYW5kbGVbdC50b0xvd2VyQ2FzZSgpXSxyPW4mJmouY2FsbChiLmF0dHJIYW5kbGUsdC50b0xvd2VyQ2FzZSgpKT9uKGUsdCwhRSk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1yP3I6ZC5hdHRyaWJ1dGVzfHwhRT9lLmdldEF0dHJpYnV0ZSh0KToocj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZyLnNwZWNpZmllZD9yLnZhbHVlOm51bGx9LHNlLmVzY2FwZT1mdW5jdGlvbihlKXtyZXR1cm4oZSsiIikucmVwbGFjZShyZSxpZSl9LHNlLmVycm9yPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitlKX0sc2UudW5pcXVlU29ydD1mdW5jdGlvbihlKXt2YXIgdCxuPVtdLHI9MCxpPTA7aWYobD0hZC5kZXRlY3REdXBsaWNhdGVzLHU9IWQuc29ydFN0YWJsZSYmZS5zbGljZSgwKSxlLnNvcnQoRCksbCl7d2hpbGUodD1lW2krK10pdD09PWVbaV0mJihyPW4ucHVzaChpKSk7d2hpbGUoci0tKWUuc3BsaWNlKG5bcl0sMSl9cmV0dXJuIHU9bnVsbCxlfSxvPXNlLmdldFRleHQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj0iIixyPTAsaT1lLm5vZGVUeXBlO2lmKGkpe2lmKDE9PT1pfHw5PT09aXx8MTE9PT1pKXtpZigic3RyaW5nIj09dHlwZW9mIGUudGV4dENvbnRlbnQpcmV0dXJuIGUudGV4dENvbnRlbnQ7Zm9yKGU9ZS5maXJzdENoaWxkO2U7ZT1lLm5leHRTaWJsaW5nKW4rPW8oZSl9ZWxzZSBpZigzPT09aXx8ND09PWkpcmV0dXJuIGUubm9kZVZhbHVlfWVsc2Ugd2hpbGUodD1lW3IrK10pbis9byh0KTtyZXR1cm4gbn0sKGI9c2Uuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86bGUsbWF0Y2g6RyxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS5yZXBsYWNlKHRlLG5lKSxlWzNdPShlWzNdfHxlWzRdfHxlWzVdfHwiIikucmVwbGFjZSh0ZSxuZSksIn49Ij09PWVbMl0mJihlWzNdPSIgIitlWzNdKyIgIiksZS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihlKXtyZXR1cm4gZVsxXT1lWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1lWzFdLnNsaWNlKDAsMyk/KGVbM118fHNlLmVycm9yKGVbMF0pLGVbNF09KyhlWzRdP2VbNV0rKGVbNl18fDEpOjIqKCJldmVuIj09PWVbM118fCJvZGQiPT09ZVszXSkpLGVbNV09KyhlWzddK2VbOF18fCJvZGQiPT09ZVszXSkpOmVbM10mJnNlLmVycm9yKGVbMF0pLGV9LFBTRVVETzpmdW5jdGlvbihlKXt2YXIgdCxuPSFlWzZdJiZlWzJdO3JldHVybiBHLkNISUxELnRlc3QoZVswXSk/bnVsbDooZVszXT9lWzJdPWVbNF18fGVbNV18fCIiOm4mJlgudGVzdChuKSYmKHQ9aChuLCEwKSkmJih0PW4uaW5kZXhPZigiKSIsbi5sZW5ndGgtdCktbi5sZW5ndGgpJiYoZVswXT1lWzBdLnNsaWNlKDAsdCksZVsyXT1uLnNsaWNlKDAsdCkpLGUuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UodGUsbmUpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09ZT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dH19LENMQVNTOmZ1bmN0aW9uKGUpe3ZhciB0PW1bZSsiICJdO3JldHVybiB0fHwodD1uZXcgUmVnRXhwKCIoXnwiK00rIikiK2UrIigiK00rInwkKSIpKSYmbShlLGZ1bmN0aW9uKGUpe3JldHVybiB0LnRlc3QoInN0cmluZyI9PXR5cGVvZiBlLmNsYXNzTmFtZSYmZS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihuLHIsaSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PXNlLmF0dHIoZSxuKTtyZXR1cm4gbnVsbD09dD8iIT0iPT09cjohcnx8KHQrPSIiLCI9Ij09PXI/dD09PWk6IiE9Ij09PXI/dCE9PWk6Il49Ij09PXI/aSYmMD09PXQuaW5kZXhPZihpKToiKj0iPT09cj9pJiYtMTx0LmluZGV4T2YoaSk6IiQ9Ij09PXI/aSYmdC5zbGljZSgtaS5sZW5ndGgpPT09aToifj0iPT09cj8tMTwoIiAiK3QucmVwbGFjZShCLCIgIikrIiAiKS5pbmRleE9mKGkpOiJ8PSI9PT1yJiYodD09PWl8fHQuc2xpY2UoMCxpLmxlbmd0aCsxKT09PWkrIi0iKSl9fSxDSElMRDpmdW5jdGlvbihoLGUsdCxnLHYpe3ZhciB5PSJudGgiIT09aC5zbGljZSgwLDMpLG09Imxhc3QiIT09aC5zbGljZSgtNCkseD0ib2YtdHlwZSI9PT1lO3JldHVybiAxPT09ZyYmMD09PXY/ZnVuY3Rpb24oZSl7cmV0dXJuISFlLnBhcmVudE5vZGV9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD15IT09bT8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLGM9ZS5wYXJlbnROb2RlLGY9eCYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHA9IW4mJiF4LGQ9ITE7aWYoYyl7aWYoeSl7d2hpbGUobCl7YT1lO3doaWxlKGE9YVtsXSlpZih4P2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWY6MT09PWEubm9kZVR5cGUpcmV0dXJuITE7dT1sPSJvbmx5Ij09PWgmJiF1JiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKHU9W20/Yy5maXJzdENoaWxkOmMubGFzdENoaWxkXSxtJiZwKXtkPShzPShyPShpPShvPShhPWMpW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdfHxbXSlbMF09PT1rJiZyWzFdKSYmclsyXSxhPXMmJmMuY2hpbGROb2Rlc1tzXTt3aGlsZShhPSsrcyYmYSYmYVtsXXx8KGQ9cz0wKXx8dS5wb3AoKSlpZigxPT09YS5ub2RlVHlwZSYmKytkJiZhPT09ZSl7aVtoXT1bayxzLGRdO2JyZWFrfX1lbHNlIGlmKHAmJihkPXM9KHI9KGk9KG89KGE9ZSlbU118fChhW1NdPXt9KSlbYS51bmlxdWVJRF18fChvW2EudW5pcXVlSURdPXt9KSlbaF18fFtdKVswXT09PWsmJnJbMV0pLCExPT09ZCl3aGlsZShhPSsrcyYmYSYmYVtsXXx8KGQ9cz0wKXx8dS5wb3AoKSlpZigoeD9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1mOjE9PT1hLm5vZGVUeXBlKSYmKytkJiYocCYmKChpPShvPWFbU118fChhW1NdPXt9KSlbYS51bmlxdWVJRF18fChvW2EudW5pcXVlSURdPXt9KSlbaF09W2ssZF0pLGE9PT1lKSlicmVhaztyZXR1cm4oZC09dik9PT1nfHxkJWc9PTAmJjA8PWQvZ319fSxQU0VVRE86ZnVuY3Rpb24oZSxvKXt2YXIgdCxhPWIucHNldWRvc1tlXXx8Yi5zZXRGaWx0ZXJzW2UudG9Mb3dlckNhc2UoKV18fHNlLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrZSk7cmV0dXJuIGFbU10/YShvKToxPGEubGVuZ3RoPyh0PVtlLGUsIiIsb10sYi5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGUudG9Mb3dlckNhc2UoKSk/bGUoZnVuY3Rpb24oZSx0KXt2YXIgbixyPWEoZSxvKSxpPXIubGVuZ3RoO3doaWxlKGktLSllW249UChlLHJbaV0pXT0hKHRbbl09cltpXSl9KTpmdW5jdGlvbihlKXtyZXR1cm4gYShlLDAsdCl9KTphfX0scHNldWRvczp7bm90OmxlKGZ1bmN0aW9uKGUpe3ZhciByPVtdLGk9W10scz1mKGUucmVwbGFjZSgkLCIkMSIpKTtyZXR1cm4gc1tTXT9sZShmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvPXMoZSxudWxsLHIsW10pLGE9ZS5sZW5ndGg7d2hpbGUoYS0tKShpPW9bYV0pJiYoZVthXT0hKHRbYV09aSkpfSk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiByWzBdPWUscyhyLG51bGwsbixpKSxyWzBdPW51bGwsIWkucG9wKCl9fSksaGFzOmxlKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gMDxzZSh0LGUpLmxlbmd0aH19KSxjb250YWluczpsZShmdW5jdGlvbih0KXtyZXR1cm4gdD10LnJlcGxhY2UodGUsbmUpLGZ1bmN0aW9uKGUpe3JldHVybi0xPChlLnRleHRDb250ZW50fHxvKGUpKS5pbmRleE9mKHQpfX0pLGxhbmc6bGUoZnVuY3Rpb24obil7cmV0dXJuIFYudGVzdChufHwiIil8fHNlLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK24pLG49bi5yZXBsYWNlKHRlLG5lKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKGUpe3ZhciB0O2Rve2lmKHQ9RT9lLmxhbmc6ZS5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fGUuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuKHQ9dC50b0xvd2VyQ2FzZSgpKT09PW58fDA9PT10LmluZGV4T2YobisiLSIpfXdoaWxlKChlPWUucGFyZW50Tm9kZSkmJjE9PT1lLm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9bi5sb2NhdGlvbiYmbi5sb2NhdGlvbi5oYXNoO3JldHVybiB0JiZ0LnNsaWNlKDEpPT09ZS5pZH0scm9vdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWF9LGZvY3VzOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09Qy5hY3RpdmVFbGVtZW50JiYoIUMuaGFzRm9jdXN8fEMuaGFzRm9jdXMoKSkmJiEhKGUudHlwZXx8ZS5ocmVmfHx+ZS50YWJJbmRleCl9LGVuYWJsZWQ6Z2UoITEpLGRpc2FibGVkOmdlKCEwKSxjaGVja2VkOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dCYmISFlLmNoZWNrZWR8fCJvcHRpb24iPT09dCYmISFlLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwhMD09PWUuc2VsZWN0ZWR9LGVtcHR5OmZ1bmN0aW9uKGUpe2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZylpZihlLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihlKXtyZXR1cm4hYi5wc2V1ZG9zLmVtcHR5KGUpfSxoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIEoudGVzdChlLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIFEudGVzdChlLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dCYmImJ1dHRvbiI9PT1lLnR5cGV8fCJidXR0b24iPT09dH0sdGV4dDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1lLnR5cGUmJihudWxsPT0odD1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09dC50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6dmUoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0OnZlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuW3QtMV19KSxlcTp2ZShmdW5jdGlvbihlLHQsbil7cmV0dXJuW248MD9uK3Q6bl19KSxldmVuOnZlKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjx0O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksb2RkOnZlKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTE7bjx0O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksbHQ6dmUoZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uPDA/bit0OnQ8bj90Om47MDw9LS1yOyllLnB1c2gocik7cmV0dXJuIGV9KSxndDp2ZShmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPW48MD9uK3Q6bjsrK3I8dDspZS5wdXNoKHIpO3JldHVybiBlfSl9fSkucHNldWRvcy5udGg9Yi5wc2V1ZG9zLmVxLHtyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSliLnBzZXVkb3NbZV09ZGUoZSk7Zm9yKGUgaW57c3VibWl0OiEwLHJlc2V0OiEwfSliLnBzZXVkb3NbZV09aGUoZSk7ZnVuY3Rpb24gbWUoKXt9ZnVuY3Rpb24geGUoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aCxyPSIiO3Q8bjt0Kyspcis9ZVt0XS52YWx1ZTtyZXR1cm4gcn1mdW5jdGlvbiBiZShzLGUsdCl7dmFyIHU9ZS5kaXIsbD1lLm5leHQsYz1sfHx1LGY9dCYmInBhcmVudE5vZGUiPT09YyxwPXIrKztyZXR1cm4gZS5maXJzdD9mdW5jdGlvbihlLHQsbil7d2hpbGUoZT1lW3VdKWlmKDE9PT1lLm5vZGVUeXBlfHxmKXJldHVybiBzKGUsdCxuKTtyZXR1cm4hMX06ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbyxhPVtrLHBdO2lmKG4pe3doaWxlKGU9ZVt1XSlpZigoMT09PWUubm9kZVR5cGV8fGYpJiZzKGUsdCxuKSlyZXR1cm4hMH1lbHNlIHdoaWxlKGU9ZVt1XSlpZigxPT09ZS5ub2RlVHlwZXx8ZilpZihpPShvPWVbU118fChlW1NdPXt9KSlbZS51bmlxdWVJRF18fChvW2UudW5pcXVlSURdPXt9KSxsJiZsPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKWU9ZVt1XXx8ZTtlbHNle2lmKChyPWlbY10pJiZyWzBdPT09ayYmclsxXT09PXApcmV0dXJuIGFbMl09clsyXTtpZigoaVtjXT1hKVsyXT1zKGUsdCxuKSlyZXR1cm4hMH1yZXR1cm4hMX19ZnVuY3Rpb24gd2UoaSl7cmV0dXJuIDE8aS5sZW5ndGg/ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWkubGVuZ3RoO3doaWxlKHItLSlpZighaVtyXShlLHQsbikpcmV0dXJuITE7cmV0dXJuITB9OmlbMF19ZnVuY3Rpb24gVGUoZSx0LG4scixpKXtmb3IodmFyIG8sYT1bXSxzPTAsdT1lLmxlbmd0aCxsPW51bGwhPXQ7czx1O3MrKykobz1lW3NdKSYmKG4mJiFuKG8scixpKXx8KGEucHVzaChvKSxsJiZ0LnB1c2gocykpKTtyZXR1cm4gYX1mdW5jdGlvbiBDZShkLGgsZyx2LHksZSl7cmV0dXJuIHYmJiF2W1NdJiYodj1DZSh2KSkseSYmIXlbU10mJih5PUNlKHksZSkpLGxlKGZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVtdLHU9W10sbD10Lmxlbmd0aCxjPWV8fGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspc2UoZSx0W3JdLG4pO3JldHVybiBufShofHwiKiIsbi5ub2RlVHlwZT9bbl06bixbXSksZj0hZHx8IWUmJmg/YzpUZShjLHMsZCxuLHIpLHA9Zz95fHwoZT9kOmx8fHYpP1tdOnQ6ZjtpZihnJiZnKGYscCxuLHIpLHYpe2k9VGUocCx1KSx2KGksW10sbixyKSxvPWkubGVuZ3RoO3doaWxlKG8tLSkoYT1pW29dKSYmKHBbdVtvXV09IShmW3Vbb11dPWEpKX1pZihlKXtpZih5fHxkKXtpZih5KXtpPVtdLG89cC5sZW5ndGg7d2hpbGUoby0tKShhPXBbb10pJiZpLnB1c2goZltvXT1hKTt5KG51bGwscD1bXSxpLHIpfW89cC5sZW5ndGg7d2hpbGUoby0tKShhPXBbb10pJiYtMTwoaT15P1AoZSxhKTpzW29dKSYmKGVbaV09ISh0W2ldPWEpKX19ZWxzZSBwPVRlKHA9PT10P3Auc3BsaWNlKGwscC5sZW5ndGgpOnApLHk/eShudWxsLHQscCxyKTpILmFwcGx5KHQscCl9KX1mdW5jdGlvbiBFZShlKXtmb3IodmFyIGksdCxuLHI9ZS5sZW5ndGgsbz1iLnJlbGF0aXZlW2VbMF0udHlwZV0sYT1vfHxiLnJlbGF0aXZlWyIgIl0scz1vPzE6MCx1PWJlKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09aX0sYSwhMCksbD1iZShmdW5jdGlvbihlKXtyZXR1cm4tMTxQKGksZSl9LGEsITApLGM9W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcj0hbyYmKG58fHQhPT13KXx8KChpPXQpLm5vZGVUeXBlP3UoZSx0LG4pOmwoZSx0LG4pKTtyZXR1cm4gaT1udWxsLHJ9XTtzPHI7cysrKWlmKHQ9Yi5yZWxhdGl2ZVtlW3NdLnR5cGVdKWM9W2JlKHdlKGMpLHQpXTtlbHNle2lmKCh0PWIuZmlsdGVyW2Vbc10udHlwZV0uYXBwbHkobnVsbCxlW3NdLm1hdGNoZXMpKVtTXSl7Zm9yKG49KytzO248cjtuKyspaWYoYi5yZWxhdGl2ZVtlW25dLnR5cGVdKWJyZWFrO3JldHVybiBDZSgxPHMmJndlKGMpLDE8cyYmeGUoZS5zbGljZSgwLHMtMSkuY29uY2F0KHt2YWx1ZToiICI9PT1lW3MtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZSgkLCIkMSIpLHQsczxuJiZFZShlLnNsaWNlKHMsbikpLG48ciYmRWUoZT1lLnNsaWNlKG4pKSxuPHImJnhlKGUpKX1jLnB1c2godCl9cmV0dXJuIHdlKGMpfXJldHVybiBtZS5wcm90b3R5cGU9Yi5maWx0ZXJzPWIucHNldWRvcyxiLnNldEZpbHRlcnM9bmV3IG1lLGg9c2UudG9rZW5pemU9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhLHMsdSxsPXhbZSsiICJdO2lmKGwpcmV0dXJuIHQ/MDpsLnNsaWNlKDApO2E9ZSxzPVtdLHU9Yi5wcmVGaWx0ZXI7d2hpbGUoYSl7Zm9yKG8gaW4gbiYmIShyPV8uZXhlYyhhKSl8fChyJiYoYT1hLnNsaWNlKHJbMF0ubGVuZ3RoKXx8YSkscy5wdXNoKGk9W10pKSxuPSExLChyPXouZXhlYyhhKSkmJihuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpyWzBdLnJlcGxhY2UoJCwiICIpfSksYT1hLnNsaWNlKG4ubGVuZ3RoKSksYi5maWx0ZXIpIShyPUdbb10uZXhlYyhhKSl8fHVbb10mJiEocj11W29dKHIpKXx8KG49ci5zaGlmdCgpLGkucHVzaCh7dmFsdWU6bix0eXBlOm8sbWF0Y2hlczpyfSksYT1hLnNsaWNlKG4ubGVuZ3RoKSk7aWYoIW4pYnJlYWt9cmV0dXJuIHQ/YS5sZW5ndGg6YT9zZS5lcnJvcihlKTp4KGUscykuc2xpY2UoMCl9LGY9c2UuY29tcGlsZT1mdW5jdGlvbihlLHQpe3ZhciBuLHYseSxtLHgscixpPVtdLG89W10sYT1BW2UrIiAiXTtpZighYSl7dHx8KHQ9aChlKSksbj10Lmxlbmd0aDt3aGlsZShuLS0pKGE9RWUodFtuXSkpW1NdP2kucHVzaChhKTpvLnB1c2goYSk7KGE9QShlLCh2PW8sbT0wPCh5PWkpLmxlbmd0aCx4PTA8di5sZW5ndGgscj1mdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvLGEscyx1PTAsbD0iMCIsYz1lJiZbXSxmPVtdLHA9dyxkPWV8fHgmJmIuZmluZC5UQUcoIioiLGkpLGg9ays9bnVsbD09cD8xOk1hdGgucmFuZG9tKCl8fC4xLGc9ZC5sZW5ndGg7Zm9yKGkmJih3PXQ9PUN8fHR8fGkpO2whPT1nJiZudWxsIT0obz1kW2xdKTtsKyspe2lmKHgmJm8pe2E9MCx0fHxvLm93bmVyRG9jdW1lbnQ9PUN8fChUKG8pLG49IUUpO3doaWxlKHM9dlthKytdKWlmKHMobyx0fHxDLG4pKXtyLnB1c2gobyk7YnJlYWt9aSYmKGs9aCl9bSYmKChvPSFzJiZvKSYmdS0tLGUmJmMucHVzaChvKSl9aWYodSs9bCxtJiZsIT09dSl7YT0wO3doaWxlKHM9eVthKytdKXMoYyxmLHQsbik7aWYoZSl7aWYoMDx1KXdoaWxlKGwtLSljW2xdfHxmW2xdfHwoZltsXT1xLmNhbGwocikpO2Y9VGUoZil9SC5hcHBseShyLGYpLGkmJiFlJiYwPGYubGVuZ3RoJiYxPHUreS5sZW5ndGgmJnNlLnVuaXF1ZVNvcnQocil9cmV0dXJuIGkmJihrPWgsdz1wKSxjfSxtP2xlKHIpOnIpKSkuc2VsZWN0b3I9ZX1yZXR1cm4gYX0sZz1zZS5zZWxlY3Q9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbyxhLHMsdSxsPSJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLGM9IXImJmgoZT1sLnNlbGVjdG9yfHxlKTtpZihuPW58fFtdLDE9PT1jLmxlbmd0aCl7aWYoMjwobz1jWzBdPWNbMF0uc2xpY2UoMCkpLmxlbmd0aCYmIklEIj09PShhPW9bMF0pLnR5cGUmJjk9PT10Lm5vZGVUeXBlJiZFJiZiLnJlbGF0aXZlW29bMV0udHlwZV0pe2lmKCEodD0oYi5maW5kLklEKGEubWF0Y2hlc1swXS5yZXBsYWNlKHRlLG5lKSx0KXx8W10pWzBdKSlyZXR1cm4gbjtsJiYodD10LnBhcmVudE5vZGUpLGU9ZS5zbGljZShvLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1pPUcubmVlZHNDb250ZXh0LnRlc3QoZSk/MDpvLmxlbmd0aDt3aGlsZShpLS0pe2lmKGE9b1tpXSxiLnJlbGF0aXZlW3M9YS50eXBlXSlicmVhaztpZigodT1iLmZpbmRbc10pJiYocj11KGEubWF0Y2hlc1swXS5yZXBsYWNlKHRlLG5lKSxlZS50ZXN0KG9bMF0udHlwZSkmJnllKHQucGFyZW50Tm9kZSl8fHQpKSl7aWYoby5zcGxpY2UoaSwxKSwhKGU9ci5sZW5ndGgmJnhlKG8pKSlyZXR1cm4gSC5hcHBseShuLHIpLG47YnJlYWt9fX1yZXR1cm4obHx8ZihlLGMpKShyLHQsIUUsbiwhdHx8ZWUudGVzdChlKSYmeWUodC5wYXJlbnROb2RlKXx8dCksbn0sZC5zb3J0U3RhYmxlPVMuc3BsaXQoIiIpLnNvcnQoRCkuam9pbigiIik9PT1TLGQuZGV0ZWN0RHVwbGljYXRlcz0hIWwsVCgpLGQuc29ydERldGFjaGVkPWNlKGZ1bmN0aW9uKGUpe3JldHVybiAxJmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oQy5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pLGNlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09ZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGZlKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihlLHQsbil7aWYoIW4pcmV0dXJuIGUuZ2V0QXR0cmlidXRlKHQsInR5cGUiPT09dC50b0xvd2VyQ2FzZSgpPzE6Mil9KSxkLmF0dHJpYnV0ZXMmJmNlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD0iPGlucHV0Lz4iLGUuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGZlKCJ2YWx1ZSIsZnVuY3Rpb24oZSx0LG4pe2lmKCFuJiYiaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiBlLmRlZmF1bHRWYWx1ZX0pLGNlKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxmZShSLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZighbilyZXR1cm4hMD09PWVbdF0/dC50b0xvd2VyQ2FzZSgpOihyPWUuZ2V0QXR0cmlidXRlTm9kZSh0KSkmJnIuc3BlY2lmaWVkP3IudmFsdWU6bnVsbH0pLHNlfShDKTtTLmZpbmQ9ZCxTLmV4cHI9ZC5zZWxlY3RvcnMsUy5leHByWyI6Il09Uy5leHByLnBzZXVkb3MsUy51bmlxdWVTb3J0PVMudW5pcXVlPWQudW5pcXVlU29ydCxTLnRleHQ9ZC5nZXRUZXh0LFMuaXNYTUxEb2M9ZC5pc1hNTCxTLmNvbnRhaW5zPWQuY29udGFpbnMsUy5lc2NhcGVTZWxlY3Rvcj1kLmVzY2FwZTt2YXIgaD1mdW5jdGlvbihlLHQsbil7dmFyIHI9W10saT12b2lkIDAhPT1uO3doaWxlKChlPWVbdF0pJiY5IT09ZS5ub2RlVHlwZSlpZigxPT09ZS5ub2RlVHlwZSl7aWYoaSYmUyhlKS5pcyhuKSlicmVhaztyLnB1c2goZSl9cmV0dXJuIHJ9LFQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49W107ZTtlPWUubmV4dFNpYmxpbmcpMT09PWUubm9kZVR5cGUmJmUhPT10JiZuLnB1c2goZSk7cmV0dXJuIG59LGs9Uy5leHByLm1hdGNoLm5lZWRzQ29udGV4dDtmdW5jdGlvbiBBKGUsdCl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXQudG9Mb3dlckNhc2UoKX12YXIgTj0vXjwoW2Etel1bXlwvXDA+Olx4MjBcdFxyXG5cZl0qKVtceDIwXHRcclxuXGZdKlwvPz4oPzo8XC9cMT58KSQvaTtmdW5jdGlvbiBEKGUsbixyKXtyZXR1cm4gbShuKT9TLmdyZXAoZSxmdW5jdGlvbihlLHQpe3JldHVybiEhbi5jYWxsKGUsdCxlKSE9PXJ9KTpuLm5vZGVUeXBlP1MuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybiBlPT09biE9PXJ9KToic3RyaW5nIiE9dHlwZW9mIG4/Uy5ncmVwKGUsZnVuY3Rpb24oZSl7cmV0dXJuLTE8aS5jYWxsKG4sZSkhPT1yfSk6Uy5maWx0ZXIobixlLHIpfVMuZmlsdGVyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdO3JldHVybiBuJiYoZT0iOm5vdCgiK2UrIikiKSwxPT09dC5sZW5ndGgmJjE9PT1yLm5vZGVUeXBlP1MuZmluZC5tYXRjaGVzU2VsZWN0b3IocixlKT9bcl06W106Uy5maW5kLm1hdGNoZXMoZSxTLmdyZXAodCxmdW5jdGlvbihlKXtyZXR1cm4gMT09PWUubm9kZVR5cGV9KSl9LFMuZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzLmxlbmd0aCxpPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiB0aGlzLnB1c2hTdGFjayhTKGUpLmZpbHRlcihmdW5jdGlvbigpe2Zvcih0PTA7dDxyO3QrKylpZihTLmNvbnRhaW5zKGlbdF0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKG49dGhpcy5wdXNoU3RhY2soW10pLHQ9MDt0PHI7dCsrKVMuZmluZChlLGlbdF0sbik7cmV0dXJuIDE8cj9TLnVuaXF1ZVNvcnQobik6bn0sZmlsdGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhEKHRoaXMsZXx8W10sITEpKX0sbm90OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhEKHRoaXMsZXx8W10sITApKX0saXM6ZnVuY3Rpb24oZSl7cmV0dXJuISFEKHRoaXMsInN0cmluZyI9PXR5cGVvZiBlJiZrLnRlc3QoZSk/UyhlKTplfHxbXSwhMSkubGVuZ3RofX0pO3ZhciBqLHE9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0rKSkkLzsoUy5mbi5pbml0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpO2lmKCFlKXJldHVybiB0aGlzO2lmKG49bnx8aiwic3RyaW5nIj09dHlwZW9mIGUpe2lmKCEocj0iPCI9PT1lWzBdJiYiPiI9PT1lW2UubGVuZ3RoLTFdJiYzPD1lLmxlbmd0aD9bbnVsbCxlLG51bGxdOnEuZXhlYyhlKSl8fCFyWzFdJiZ0KXJldHVybiF0fHx0LmpxdWVyeT8odHx8bikuZmluZChlKTp0aGlzLmNvbnN0cnVjdG9yKHQpLmZpbmQoZSk7aWYoclsxXSl7aWYodD10IGluc3RhbmNlb2YgUz90WzBdOnQsUy5tZXJnZSh0aGlzLFMucGFyc2VIVE1MKHJbMV0sdCYmdC5ub2RlVHlwZT90Lm93bmVyRG9jdW1lbnR8fHQ6RSwhMCkpLE4udGVzdChyWzFdKSYmUy5pc1BsYWluT2JqZWN0KHQpKWZvcihyIGluIHQpbSh0aGlzW3JdKT90aGlzW3JdKHRbcl0pOnRoaXMuYXR0cihyLHRbcl0pO3JldHVybiB0aGlzfXJldHVybihpPUUuZ2V0RWxlbWVudEJ5SWQoclsyXSkpJiYodGhpc1swXT1pLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIGUubm9kZVR5cGU/KHRoaXNbMF09ZSx0aGlzLmxlbmd0aD0xLHRoaXMpOm0oZSk/dm9pZCAwIT09bi5yZWFkeT9uLnJlYWR5KGUpOmUoUyk6Uy5tYWtlQXJyYXkoZSx0aGlzKX0pLnByb3RvdHlwZT1TLmZuLGo9UyhFKTt2YXIgTD0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxIPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2Z1bmN0aW9uIE8oZSx0KXt3aGlsZSgoZT1lW3RdKSYmMSE9PWUubm9kZVR5cGUpO3JldHVybiBlfVMuZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oZSl7dmFyIHQ9UyhlLHRoaXMpLG49dC5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxuO2UrKylpZihTLmNvbnRhaW5zKHRoaXMsdFtlXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXRoaXMubGVuZ3RoLG89W10sYT0ic3RyaW5nIiE9dHlwZW9mIGUmJlMoZSk7aWYoIWsudGVzdChlKSlmb3IoO3I8aTtyKyspZm9yKG49dGhpc1tyXTtuJiZuIT09dDtuPW4ucGFyZW50Tm9kZSlpZihuLm5vZGVUeXBlPDExJiYoYT8tMTxhLmluZGV4KG4pOjE9PT1uLm5vZGVUeXBlJiZTLmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sZSkpKXtvLnB1c2gobik7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKDE8by5sZW5ndGg/Uy51bmlxdWVTb3J0KG8pOm8pfSxpbmRleDpmdW5jdGlvbihlKXtyZXR1cm4gZT8ic3RyaW5nIj09dHlwZW9mIGU/aS5jYWxsKFMoZSksdGhpc1swXSk6aS5jYWxsKHRoaXMsZS5qcXVlcnk/ZVswXTplKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhTLnVuaXF1ZVNvcnQoUy5tZXJnZSh0aGlzLmdldCgpLFMoZSx0KSkpKX0sYWRkQmFjazpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9fSksUy5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiYxMSE9PXQubm9kZVR5cGU/dDpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaChlLCJwYXJlbnROb2RlIixuKX0sbmV4dDpmdW5jdGlvbihlKXtyZXR1cm4gTyhlLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGUpe3JldHVybiBPKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIGgoZSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGgoZSwibmV4dFNpYmxpbmciLG4pfSxwcmV2VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKGUsInByZXZpb3VzU2libGluZyIsbil9LHNpYmxpbmdzOmZ1bmN0aW9uKGUpe3JldHVybiBUKChlLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGUpfSxjaGlsZHJlbjpmdW5jdGlvbihlKXtyZXR1cm4gVChlLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZS5jb250ZW50RG9jdW1lbnQmJnIoZS5jb250ZW50RG9jdW1lbnQpP2UuY29udGVudERvY3VtZW50OihBKGUsInRlbXBsYXRlIikmJihlPWUuY29udGVudHx8ZSksUy5tZXJnZShbXSxlLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKHIsaSl7Uy5mbltyXT1mdW5jdGlvbihlLHQpe3ZhciBuPVMubWFwKHRoaXMsaSxlKTtyZXR1cm4iVW50aWwiIT09ci5zbGljZSgtNSkmJih0PWUpLHQmJiJzdHJpbmciPT10eXBlb2YgdCYmKG49Uy5maWx0ZXIodCxuKSksMTx0aGlzLmxlbmd0aCYmKEhbcl18fFMudW5pcXVlU29ydChuKSxMLnRlc3QocikmJm4ucmV2ZXJzZSgpKSx0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgUD0vW15ceDIwXHRcclxuXGZdKy9nO2Z1bmN0aW9uIFIoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gTShlKXt0aHJvdyBlfWZ1bmN0aW9uIEkoZSx0LG4scil7dmFyIGk7dHJ5e2UmJm0oaT1lLnByb21pc2UpP2kuY2FsbChlKS5kb25lKHQpLmZhaWwobik6ZSYmbShpPWUudGhlbik/aS5jYWxsKGUsdCxuKTp0LmFwcGx5KHZvaWQgMCxbZV0uc2xpY2UocikpfWNhdGNoKGUpe24uYXBwbHkodm9pZCAwLFtlXSl9fVMuQ2FsbGJhY2tzPWZ1bmN0aW9uKHIpe3ZhciBlLG47cj0ic3RyaW5nIj09dHlwZW9mIHI/KGU9cixuPXt9LFMuZWFjaChlLm1hdGNoKFApfHxbXSxmdW5jdGlvbihlLHQpe25bdF09ITB9KSxuKTpTLmV4dGVuZCh7fSxyKTt2YXIgaSx0LG8sYSxzPVtdLHU9W10sbD0tMSxjPWZ1bmN0aW9uKCl7Zm9yKGE9YXx8ci5vbmNlLG89aT0hMDt1Lmxlbmd0aDtsPS0xKXt0PXUuc2hpZnQoKTt3aGlsZSgrK2w8cy5sZW5ndGgpITE9PT1zW2xdLmFwcGx5KHRbMF0sdFsxXSkmJnIuc3RvcE9uRmFsc2UmJihsPXMubGVuZ3RoLHQ9ITEpfXIubWVtb3J5fHwodD0hMSksaT0hMSxhJiYocz10P1tdOiIiKX0sZj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIHMmJih0JiYhaSYmKGw9cy5sZW5ndGgtMSx1LnB1c2godCkpLGZ1bmN0aW9uIG4oZSl7Uy5lYWNoKGUsZnVuY3Rpb24oZSx0KXttKHQpP3IudW5pcXVlJiZmLmhhcyh0KXx8cy5wdXNoKHQpOnQmJnQubGVuZ3RoJiYic3RyaW5nIiE9PXcodCkmJm4odCl9KX0oYXJndW1lbnRzKSx0JiYhaSYmYygpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gUy5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbihlLHQpe3ZhciBuO3doaWxlKC0xPChuPVMuaW5BcnJheSh0LHMsbikpKXMuc3BsaWNlKG4sMSksbjw9bCYmbC0tfSksdGhpc30saGFzOmZ1bmN0aW9uKGUpe3JldHVybiBlPy0xPFMuaW5BcnJheShlLHMpOjA8cy5sZW5ndGh9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIHMmJihzPVtdKSx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGE9dT1bXSxzPXQ9IiIsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hc30sbG9jazpmdW5jdGlvbigpe3JldHVybiBhPXU9W10sdHx8aXx8KHM9dD0iIiksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFhfSxmaXJlV2l0aDpmdW5jdGlvbihlLHQpe3JldHVybiBhfHwodD1bZSwodD10fHxbXSkuc2xpY2U/dC5zbGljZSgpOnRdLHUucHVzaCh0KSxpfHxjKCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIW99fTtyZXR1cm4gZn0sUy5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGUpe3ZhciBvPVtbIm5vdGlmeSIsInByb2dyZXNzIixTLkNhbGxiYWNrcygibWVtb3J5IiksUy5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLFMuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLFMuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDAsInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwxLCJyZWplY3RlZCJdXSxpPSJwZW5kaW5nIixhPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBpfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLHRoaXN9LCJjYXRjaCI6ZnVuY3Rpb24oZSl7cmV0dXJuIGEudGhlbihudWxsLGUpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIGk9YXJndW1lbnRzO3JldHVybiBTLkRlZmVycmVkKGZ1bmN0aW9uKHIpe1MuZWFjaChvLGZ1bmN0aW9uKGUsdCl7dmFyIG49bShpW3RbNF1dKSYmaVt0WzRdXTtzW3RbMV1dKGZ1bmN0aW9uKCl7dmFyIGU9biYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZSYmbShlLnByb21pc2UpP2UucHJvbWlzZSgpLnByb2dyZXNzKHIubm90aWZ5KS5kb25lKHIucmVzb2x2ZSkuZmFpbChyLnJlamVjdCk6clt0WzBdKyJXaXRoIl0odGhpcyxuP1tlXTphcmd1bWVudHMpfSl9KSxpPW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24odCxuLHIpe3ZhciB1PTA7ZnVuY3Rpb24gbChpLG8sYSxzKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLHI9YXJndW1lbnRzLGU9ZnVuY3Rpb24oKXt2YXIgZSx0O2lmKCEoaTx1KSl7aWYoKGU9YS5hcHBseShuLHIpKT09PW8ucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpO3Q9ZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpJiZlLnRoZW4sbSh0KT9zP3QuY2FsbChlLGwodSxvLFIscyksbCh1LG8sTSxzKSk6KHUrKyx0LmNhbGwoZSxsKHUsbyxSLHMpLGwodSxvLE0scyksbCh1LG8sUixvLm5vdGlmeVdpdGgpKSk6KGEhPT1SJiYobj12b2lkIDAscj1bZV0pLChzfHxvLnJlc29sdmVXaXRoKShuLHIpKX19LHQ9cz9lOmZ1bmN0aW9uKCl7dHJ5e2UoKX1jYXRjaChlKXtTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2smJlMuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhlLHQuc3RhY2tUcmFjZSksdTw9aSsxJiYoYSE9PU0mJihuPXZvaWQgMCxyPVtlXSksby5yZWplY3RXaXRoKG4scikpfX07aT90KCk6KFMuRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYodC5zdGFja1RyYWNlPVMuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLEMuc2V0VGltZW91dCh0KSl9fXJldHVybiBTLkRlZmVycmVkKGZ1bmN0aW9uKGUpe29bMF1bM10uYWRkKGwoMCxlLG0ocik/cjpSLGUubm90aWZ5V2l0aCkpLG9bMV1bM10uYWRkKGwoMCxlLG0odCk/dDpSKSksb1syXVszXS5hZGQobCgwLGUsbShuKT9uOk0pKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZT9TLmV4dGVuZChlLGEpOmF9fSxzPXt9O3JldHVybiBTLmVhY2gobyxmdW5jdGlvbihlLHQpe3ZhciBuPXRbMl0scj10WzVdO2FbdFsxXV09bi5hZGQsciYmbi5hZGQoZnVuY3Rpb24oKXtpPXJ9LG9bMy1lXVsyXS5kaXNhYmxlLG9bMy1lXVszXS5kaXNhYmxlLG9bMF1bMl0ubG9jayxvWzBdWzNdLmxvY2spLG4uYWRkKHRbM10uZmlyZSksc1t0WzBdXT1mdW5jdGlvbigpe3JldHVybiBzW3RbMF0rIldpdGgiXSh0aGlzPT09cz92b2lkIDA6dGhpcyxhcmd1bWVudHMpLHRoaXN9LHNbdFswXSsiV2l0aCJdPW4uZmlyZVdpdGh9KSxhLnByb21pc2UocyksZSYmZS5jYWxsKHMscyksc30sd2hlbjpmdW5jdGlvbihlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoLHQ9bixyPUFycmF5KHQpLGk9cy5jYWxsKGFyZ3VtZW50cyksbz1TLkRlZmVycmVkKCksYT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7clt0XT10aGlzLGlbdF09MTxhcmd1bWVudHMubGVuZ3RoP3MuY2FsbChhcmd1bWVudHMpOmUsLS1ufHxvLnJlc29sdmVXaXRoKHIsaSl9fTtpZihuPD0xJiYoSShlLG8uZG9uZShhKHQpKS5yZXNvbHZlLG8ucmVqZWN0LCFuKSwicGVuZGluZyI9PT1vLnN0YXRlKCl8fG0oaVt0XSYmaVt0XS50aGVuKSkpcmV0dXJuIG8udGhlbigpO3doaWxlKHQtLSlJKGlbdF0sYSh0KSxvLnJlamVjdCk7cmV0dXJuIG8ucHJvbWlzZSgpfX0pO3ZhciBXPS9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO1MuRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbihlLHQpe0MuY29uc29sZSYmQy5jb25zb2xlLndhcm4mJmUmJlcudGVzdChlLm5hbWUpJiZDLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIitlLm1lc3NhZ2UsZS5zdGFjayx0KX0sUy5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihlKXtDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9O3ZhciBGPVMuRGVmZXJyZWQoKTtmdW5jdGlvbiBCKCl7RS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixCKSxDLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLEIpLFMucmVhZHkoKX1TLmZuLnJlYWR5PWZ1bmN0aW9uKGUpe3JldHVybiBGLnRoZW4oZSlbImNhdGNoIl0oZnVuY3Rpb24oZSl7Uy5yZWFkeUV4Y2VwdGlvbihlKX0pLHRoaXN9LFMuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGUpeyghMD09PWU/LS1TLnJlYWR5V2FpdDpTLmlzUmVhZHkpfHwoUy5pc1JlYWR5PSEwKSE9PWUmJjA8LS1TLnJlYWR5V2FpdHx8Ri5yZXNvbHZlV2l0aChFLFtTXSl9fSksUy5yZWFkeS50aGVuPUYudGhlbiwiY29tcGxldGUiPT09RS5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1FLnJlYWR5U3RhdGUmJiFFLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD9DLnNldFRpbWVvdXQoUy5yZWFkeSk6KEUuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQiksQy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixCKSk7dmFyICQ9ZnVuY3Rpb24oZSx0LG4scixpLG8sYSl7dmFyIHM9MCx1PWUubGVuZ3RoLGw9bnVsbD09bjtpZigib2JqZWN0Ij09PXcobikpZm9yKHMgaW4gaT0hMCxuKSQoZSx0LHMsbltzXSwhMCxvLGEpO2Vsc2UgaWYodm9pZCAwIT09ciYmKGk9ITAsbShyKXx8KGE9ITApLGwmJihhPyh0LmNhbGwoZSxyKSx0PW51bGwpOihsPXQsdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGwuY2FsbChTKGUpLG4pfSkpLHQpKWZvcig7czx1O3MrKyl0KGVbc10sbixhP3I6ci5jYWxsKGVbc10scyx0KGVbc10sbikpKTtyZXR1cm4gaT9lOmw/dC5jYWxsKGUpOnU/dChlWzBdLG4pOm99LF89L14tbXMtLyx6PS8tKFthLXpdKS9nO2Z1bmN0aW9uIFUoZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIFgoZSl7cmV0dXJuIGUucmVwbGFjZShfLCJtcy0iKS5yZXBsYWNlKHosVSl9dmFyIFY9ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfHw5PT09ZS5ub2RlVHlwZXx8IStlLm5vZGVUeXBlfTtmdW5jdGlvbiBHKCl7dGhpcy5leHBhbmRvPVMuZXhwYW5kbytHLnVpZCsrfUcudWlkPTEsRy5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKGUpe3ZhciB0PWVbdGhpcy5leHBhbmRvXTtyZXR1cm4gdHx8KHQ9e30sVihlKSYmKGUubm9kZVR5cGU/ZVt0aGlzLmV4cGFuZG9dPXQ6T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdGhpcy5leHBhbmRvLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pKSksdH0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPXRoaXMuY2FjaGUoZSk7aWYoInN0cmluZyI9PXR5cGVvZiB0KWlbWCh0KV09bjtlbHNlIGZvcihyIGluIHQpaVtYKHIpXT10W3JdO3JldHVybiBpfSxnZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD90aGlzLmNhY2hlKGUpOmVbdGhpcy5leHBhbmRvXSYmZVt0aGlzLmV4cGFuZG9dW1godCldfSxhY2Nlc3M6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB2b2lkIDA9PT10fHx0JiYic3RyaW5nIj09dHlwZW9mIHQmJnZvaWQgMD09PW4/dGhpcy5nZXQoZSx0KToodGhpcy5zZXQoZSx0LG4pLHZvaWQgMCE9PW4/bjp0KX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1lW3RoaXMuZXhwYW5kb107aWYodm9pZCAwIT09cil7aWYodm9pZCAwIT09dCl7bj0odD1BcnJheS5pc0FycmF5KHQpP3QubWFwKFgpOih0PVgodCkpaW4gcj9bdF06dC5tYXRjaChQKXx8W10pLmxlbmd0aDt3aGlsZShuLS0pZGVsZXRlIHJbdFtuXV19KHZvaWQgMD09PXR8fFMuaXNFbXB0eU9iamVjdChyKSkmJihlLm5vZGVUeXBlP2VbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIGVbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKGUpe3ZhciB0PWVbdGhpcy5leHBhbmRvXTtyZXR1cm4gdm9pZCAwIT09dCYmIVMuaXNFbXB0eU9iamVjdCh0KX19O3ZhciBZPW5ldyBHLFE9bmV3IEcsSj0vXig/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLEs9L1tBLVpdL2c7ZnVuY3Rpb24gWihlLHQsbil7dmFyIHIsaTtpZih2b2lkIDA9PT1uJiYxPT09ZS5ub2RlVHlwZSlpZihyPSJkYXRhLSIrdC5yZXBsYWNlKEssIi0kJiIpLnRvTG93ZXJDYXNlKCksInN0cmluZyI9PXR5cGVvZihuPWUuZ2V0QXR0cmlidXRlKHIpKSl7dHJ5e249InRydWUiPT09KGk9bil8fCJmYWxzZSIhPT1pJiYoIm51bGwiPT09aT9udWxsOmk9PT0raSsiIj8raTpKLnRlc3QoaSk/SlNPTi5wYXJzZShpKTppKX1jYXRjaChlKXt9US5zZXQoZSx0LG4pfWVsc2Ugbj12b2lkIDA7cmV0dXJuIG59Uy5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIFEuaGFzRGF0YShlKXx8WS5oYXNEYXRhKGUpfSxkYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gUS5hY2Nlc3MoZSx0LG4pfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUsdCl7US5yZW1vdmUoZSx0KX0sX2RhdGE6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBZLmFjY2VzcyhlLHQsbil9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKGUsdCl7WS5yZW1vdmUoZSx0KX19KSxTLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihuLGUpe3ZhciB0LHIsaSxvPXRoaXNbMF0sYT1vJiZvLmF0dHJpYnV0ZXM7aWYodm9pZCAwPT09bil7aWYodGhpcy5sZW5ndGgmJihpPVEuZ2V0KG8pLDE9PT1vLm5vZGVUeXBlJiYhWS5nZXQobywiaGFzRGF0YUF0dHJzIikpKXt0PWEubGVuZ3RoO3doaWxlKHQtLSlhW3RdJiYwPT09KHI9YVt0XS5uYW1lKS5pbmRleE9mKCJkYXRhLSIpJiYocj1YKHIuc2xpY2UoNSkpLFoobyxyLGlbcl0pKTtZLnNldChvLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gaX1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIG4/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7US5zZXQodGhpcyxuKX0pOiQodGhpcyxmdW5jdGlvbihlKXt2YXIgdDtpZihvJiZ2b2lkIDA9PT1lKXJldHVybiB2b2lkIDAhPT0odD1RLmdldChvLG4pKT90OnZvaWQgMCE9PSh0PVoobyxuKSk/dDp2b2lkIDA7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7US5zZXQodGhpcyxuLGUpfSl9LG51bGwsZSwxPGFyZ3VtZW50cy5sZW5ndGgsbnVsbCwhMCl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1EucmVtb3ZlKHRoaXMsZSl9KX19KSxTLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByO2lmKGUpcmV0dXJuIHQ9KHR8fCJmeCIpKyJxdWV1ZSIscj1ZLmdldChlLHQpLG4mJighcnx8QXJyYXkuaXNBcnJheShuKT9yPVkuYWNjZXNzKGUsdCxTLm1ha2VBcnJheShuKSk6ci5wdXNoKG4pKSxyfHxbXX0sZGVxdWV1ZTpmdW5jdGlvbihlLHQpe3Q9dHx8ImZ4Ijt2YXIgbj1TLnF1ZXVlKGUsdCkscj1uLmxlbmd0aCxpPW4uc2hpZnQoKSxvPVMuX3F1ZXVlSG9va3MoZSx0KTsiaW5wcm9ncmVzcyI9PT1pJiYoaT1uLnNoaWZ0KCksci0tKSxpJiYoImZ4Ij09PXQmJm4udW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBvLnN0b3AsaS5jYWxsKGUsZnVuY3Rpb24oKXtTLmRlcXVldWUoZSx0KX0sbykpLCFyJiZvJiZvLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10KyJxdWV1ZUhvb2tzIjtyZXR1cm4gWS5nZXQoZSxuKXx8WS5hY2Nlc3MoZSxuLHtlbXB0eTpTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXtZLnJlbW92ZShlLFt0KyJxdWV1ZSIsbl0pfSl9KX19KSxTLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24odCxuKXt2YXIgZT0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgdCYmKG49dCx0PSJmeCIsZS0tKSxhcmd1bWVudHMubGVuZ3RoPGU/Uy5xdWV1ZSh0aGlzWzBdLHQpOnZvaWQgMD09PW4/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TLnF1ZXVlKHRoaXMsdCxuKTtTLl9xdWV1ZUhvb2tzKHRoaXMsdCksImZ4Ij09PXQmJiJpbnByb2dyZXNzIiE9PWVbMF0mJlMuZGVxdWV1ZSh0aGlzLHQpfSl9LGRlcXVldWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZGVxdWV1ZSh0aGlzLGUpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucXVldWUoZXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTEsaT1TLkRlZmVycmVkKCksbz10aGlzLGE9dGhpcy5sZW5ndGgscz1mdW5jdGlvbigpey0tcnx8aS5yZXNvbHZlV2l0aChvLFtvXSl9OyJzdHJpbmciIT10eXBlb2YgZSYmKHQ9ZSxlPXZvaWQgMCksZT1lfHwiZngiO3doaWxlKGEtLSkobj1ZLmdldChvW2FdLGUrInF1ZXVlSG9va3MiKSkmJm4uZW1wdHkmJihyKyssbi5lbXB0eS5hZGQocykpO3JldHVybiBzKCksaS5wcm9taXNlKHQpfX0pO3ZhciBlZT0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0/XGQrfCkvLnNvdXJjZSx0ZT1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrZWUrIikoW2EteiVdKikkIiwiaSIpLG5lPVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0scmU9RS5kb2N1bWVudEVsZW1lbnQsaWU9ZnVuY3Rpb24oZSl7cmV0dXJuIFMuY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpfSxvZT17Y29tcG9zZWQ6ITB9O3JlLmdldFJvb3ROb2RlJiYoaWU9ZnVuY3Rpb24oZSl7cmV0dXJuIFMuY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpfHxlLmdldFJvb3ROb2RlKG9lKT09PWUub3duZXJEb2N1bWVudH0pO3ZhciBhZT1mdW5jdGlvbihlLHQpe3JldHVybiJub25lIj09PShlPXR8fGUpLnN0eWxlLmRpc3BsYXl8fCIiPT09ZS5zdHlsZS5kaXNwbGF5JiZpZShlKSYmIm5vbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIpfTtmdW5jdGlvbiBzZShlLHQsbixyKXt2YXIgaSxvLGE9MjAscz1yP2Z1bmN0aW9uKCl7cmV0dXJuIHIuY3VyKCl9OmZ1bmN0aW9uKCl7cmV0dXJuIFMuY3NzKGUsdCwiIil9LHU9cygpLGw9biYmblszXXx8KFMuY3NzTnVtYmVyW3RdPyIiOiJweCIpLGM9ZS5ub2RlVHlwZSYmKFMuY3NzTnVtYmVyW3RdfHwicHgiIT09bCYmK3UpJiZ0ZS5leGVjKFMuY3NzKGUsdCkpO2lmKGMmJmNbM10hPT1sKXt1Lz0yLGw9bHx8Y1szXSxjPSt1fHwxO3doaWxlKGEtLSlTLnN0eWxlKGUsdCxjK2wpLCgxLW8pKigxLShvPXMoKS91fHwuNSkpPD0wJiYoYT0wKSxjLz1vO2MqPTIsUy5zdHlsZShlLHQsYytsKSxuPW58fFtdfXJldHVybiBuJiYoYz0rY3x8K3V8fDAsaT1uWzFdP2MrKG5bMV0rMSkqblsyXTorblsyXSxyJiYoci51bml0PWwsci5zdGFydD1jLHIuZW5kPWkpKSxpfXZhciB1ZT17fTtmdW5jdGlvbiBsZShlLHQpe2Zvcih2YXIgbixyLGksbyxhLHMsdSxsPVtdLGM9MCxmPWUubGVuZ3RoO2M8ZjtjKyspKHI9ZVtjXSkuc3R5bGUmJihuPXIuc3R5bGUuZGlzcGxheSx0Pygibm9uZSI9PT1uJiYobFtjXT1ZLmdldChyLCJkaXNwbGF5Iil8fG51bGwsbFtjXXx8KHIuc3R5bGUuZGlzcGxheT0iIikpLCIiPT09ci5zdHlsZS5kaXNwbGF5JiZhZShyKSYmKGxbY109KHU9YT1vPXZvaWQgMCxhPShpPXIpLm93bmVyRG9jdW1lbnQscz1pLm5vZGVOYW1lLCh1PXVlW3NdKXx8KG89YS5ib2R5LmFwcGVuZENoaWxkKGEuY3JlYXRlRWxlbWVudChzKSksdT1TLmNzcyhvLCJkaXNwbGF5Iiksby5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pLCJub25lIj09PXUmJih1PSJibG9jayIpLHVlW3NdPXUpKSkpOiJub25lIiE9PW4mJihsW2NdPSJub25lIixZLnNldChyLCJkaXNwbGF5IixuKSkpO2ZvcihjPTA7YzxmO2MrKyludWxsIT1sW2NdJiYoZVtjXS5zdHlsZS5kaXNwbGF5PWxbY10pO3JldHVybiBlfVMuZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIGxlKHRoaXMsITApfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIGxlKHRoaXMpfSx0b2dnbGU6ZnVuY3Rpb24oZSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgZT9lP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe2FlKHRoaXMpP1ModGhpcykuc2hvdygpOlModGhpcykuaGlkZSgpfSl9fSk7dmFyIGNlLGZlLHBlPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLGRlPS88KFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKS9pLGhlPS9eJHxebW9kdWxlJHxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaTtjZT1FLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChFLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSwoZmU9RS5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGZlLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSxmZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksY2UuYXBwZW5kQ2hpbGQoZmUpLHkuY2hlY2tDbG9uZT1jZS5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsY2UuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+Iix5Lm5vQ2xvbmVDaGVja2VkPSEhY2UuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlLGNlLmlubmVySFRNTD0iPG9wdGlvbj48L29wdGlvbj4iLHkub3B0aW9uPSEhY2UubGFzdENoaWxkO3ZhciBnZT17dGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O2Z1bmN0aW9uIHZlKGUsdCl7dmFyIG47cmV0dXJuIG49InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUodHx8IioiKToidW5kZWZpbmVkIiE9dHlwZW9mIGUucXVlcnlTZWxlY3RvckFsbD9lLnF1ZXJ5U2VsZWN0b3JBbGwodHx8IioiKTpbXSx2b2lkIDA9PT10fHx0JiZBKGUsdCk/Uy5tZXJnZShbZV0sbik6bn1mdW5jdGlvbiB5ZShlLHQpe2Zvcih2YXIgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKylZLnNldChlW25dLCJnbG9iYWxFdmFsIiwhdHx8WS5nZXQodFtuXSwiZ2xvYmFsRXZhbCIpKX1nZS50Ym9keT1nZS50Zm9vdD1nZS5jb2xncm91cD1nZS5jYXB0aW9uPWdlLnRoZWFkLGdlLnRoPWdlLnRkLHkub3B0aW9ufHwoZ2Uub3B0Z3JvdXA9Z2Uub3B0aW9uPVsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0pO3ZhciBtZT0vPHwmIz9cdys7LztmdW5jdGlvbiB4ZShlLHQsbixyLGkpe2Zvcih2YXIgbyxhLHMsdSxsLGMsZj10LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxwPVtdLGQ9MCxoPWUubGVuZ3RoO2Q8aDtkKyspaWYoKG89ZVtkXSl8fDA9PT1vKWlmKCJvYmplY3QiPT09dyhvKSlTLm1lcmdlKHAsby5ub2RlVHlwZT9bb106byk7ZWxzZSBpZihtZS50ZXN0KG8pKXthPWF8fGYuYXBwZW5kQ2hpbGQodC5jcmVhdGVFbGVtZW50KCJkaXYiKSkscz0oZGUuZXhlYyhvKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSx1PWdlW3NdfHxnZS5fZGVmYXVsdCxhLmlubmVySFRNTD11WzFdK1MuaHRtbFByZWZpbHRlcihvKSt1WzJdLGM9dVswXTt3aGlsZShjLS0pYT1hLmxhc3RDaGlsZDtTLm1lcmdlKHAsYS5jaGlsZE5vZGVzKSwoYT1mLmZpcnN0Q2hpbGQpLnRleHRDb250ZW50PSIifWVsc2UgcC5wdXNoKHQuY3JlYXRlVGV4dE5vZGUobykpO2YudGV4dENvbnRlbnQ9IiIsZD0wO3doaWxlKG89cFtkKytdKWlmKHImJi0xPFMuaW5BcnJheShvLHIpKWkmJmkucHVzaChvKTtlbHNlIGlmKGw9aWUobyksYT12ZShmLmFwcGVuZENoaWxkKG8pLCJzY3JpcHQiKSxsJiZ5ZShhKSxuKXtjPTA7d2hpbGUobz1hW2MrK10paGUudGVzdChvLnR5cGV8fCIiKSYmbi5wdXNoKG8pfXJldHVybiBmfXZhciBiZT0vXmtleS8sd2U9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLFRlPS9eKFteLl0qKSg/OlwuKC4rKXwpLztmdW5jdGlvbiBDZSgpe3JldHVybiEwfWZ1bmN0aW9uIEVlKCl7cmV0dXJuITF9ZnVuY3Rpb24gU2UoZSx0KXtyZXR1cm4gZT09PWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBFLmFjdGl2ZUVsZW1lbnR9Y2F0Y2goZSl7fX0oKT09KCJmb2N1cyI9PT10KX1mdW5jdGlvbiBrZShlLHQsbixyLGksbyl7dmFyIGEscztpZigib2JqZWN0Ij09dHlwZW9mIHQpe2ZvcihzIGluInN0cmluZyIhPXR5cGVvZiBuJiYocj1yfHxuLG49dm9pZCAwKSx0KWtlKGUscyxuLHIsdFtzXSxvKTtyZXR1cm4gZX1pZihudWxsPT1yJiZudWxsPT1pPyhpPW4scj1uPXZvaWQgMCk6bnVsbD09aSYmKCJzdHJpbmciPT10eXBlb2Ygbj8oaT1yLHI9dm9pZCAwKTooaT1yLHI9bixuPXZvaWQgMCkpLCExPT09aSlpPUVlO2Vsc2UgaWYoIWkpcmV0dXJuIGU7cmV0dXJuIDE9PT1vJiYoYT1pLChpPWZ1bmN0aW9uKGUpe3JldHVybiBTKCkub2ZmKGUpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkuZ3VpZD1hLmd1aWR8fChhLmd1aWQ9Uy5ndWlkKyspKSxlLmVhY2goZnVuY3Rpb24oKXtTLmV2ZW50LmFkZCh0aGlzLHQsaSxyLG4pfSl9ZnVuY3Rpb24gQWUoZSxpLG8pe28/KFkuc2V0KGUsaSwhMSksUy5ldmVudC5hZGQoZSxpLHtuYW1lc3BhY2U6ITEsaGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgdCxuLHI9WS5nZXQodGhpcyxpKTtpZigxJmUuaXNUcmlnZ2VyJiZ0aGlzW2ldKXtpZihyLmxlbmd0aCkoUy5ldmVudC5zcGVjaWFsW2ldfHx7fSkuZGVsZWdhdGVUeXBlJiZlLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYocj1zLmNhbGwoYXJndW1lbnRzKSxZLnNldCh0aGlzLGksciksdD1vKHRoaXMsaSksdGhpc1tpXSgpLHIhPT0obj1ZLmdldCh0aGlzLGkpKXx8dD9ZLnNldCh0aGlzLGksITEpOm49e30sciE9PW4pcmV0dXJuIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpLG4udmFsdWV9ZWxzZSByLmxlbmd0aCYmKFkuc2V0KHRoaXMsaSx7dmFsdWU6Uy5ldmVudC50cmlnZ2VyKFMuZXh0ZW5kKHJbMF0sUy5FdmVudC5wcm90b3R5cGUpLHIuc2xpY2UoMSksdGhpcyl9KSxlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKX19KSk6dm9pZCAwPT09WS5nZXQoZSxpKSYmUy5ldmVudC5hZGQoZSxpLENlKX1TLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG8sYSxzLHUsbCxjLGYscCxkLGgsZyx2PVkuZ2V0KHQpO2lmKFYodCkpe24uaGFuZGxlciYmKG49KG89bikuaGFuZGxlcixpPW8uc2VsZWN0b3IpLGkmJlMuZmluZC5tYXRjaGVzU2VsZWN0b3IocmUsaSksbi5ndWlkfHwobi5ndWlkPVMuZ3VpZCsrKSwodT12LmV2ZW50cyl8fCh1PXYuZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCkpLChhPXYuaGFuZGxlKXx8KGE9di5oYW5kbGU9ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBTJiZTLmV2ZW50LnRyaWdnZXJlZCE9PWUudHlwZT9TLmV2ZW50LmRpc3BhdGNoLmFwcGx5KHQsYXJndW1lbnRzKTp2b2lkIDB9KSxsPShlPShlfHwiIikubWF0Y2goUCl8fFsiIl0pLmxlbmd0aDt3aGlsZShsLS0pZD1nPShzPVRlLmV4ZWMoZVtsXSl8fFtdKVsxXSxoPShzWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksZCYmKGY9Uy5ldmVudC5zcGVjaWFsW2RdfHx7fSxkPShpP2YuZGVsZWdhdGVUeXBlOmYuYmluZFR5cGUpfHxkLGY9Uy5ldmVudC5zcGVjaWFsW2RdfHx7fSxjPVMuZXh0ZW5kKHt0eXBlOmQsb3JpZ1R5cGU6ZyxkYXRhOnIsaGFuZGxlcjpuLGd1aWQ6bi5ndWlkLHNlbGVjdG9yOmksbmVlZHNDb250ZXh0OmkmJlMuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChpKSxuYW1lc3BhY2U6aC5qb2luKCIuIil9LG8pLChwPXVbZF0pfHwoKHA9dVtkXT1bXSkuZGVsZWdhdGVDb3VudD0wLGYuc2V0dXAmJiExIT09Zi5zZXR1cC5jYWxsKHQscixoLGEpfHx0LmFkZEV2ZW50TGlzdGVuZXImJnQuYWRkRXZlbnRMaXN0ZW5lcihkLGEpKSxmLmFkZCYmKGYuYWRkLmNhbGwodCxjKSxjLmhhbmRsZXIuZ3VpZHx8KGMuaGFuZGxlci5ndWlkPW4uZ3VpZCkpLGk/cC5zcGxpY2UocC5kZWxlZ2F0ZUNvdW50KyssMCxjKTpwLnB1c2goYyksUy5ldmVudC5nbG9iYWxbZF09ITApfX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG8sYSxzLHUsbCxjLGYscCxkLGgsZyx2PVkuaGFzRGF0YShlKSYmWS5nZXQoZSk7aWYodiYmKHU9di5ldmVudHMpKXtsPSh0PSh0fHwiIikubWF0Y2goUCl8fFsiIl0pLmxlbmd0aDt3aGlsZShsLS0paWYoZD1nPShzPVRlLmV4ZWModFtsXSl8fFtdKVsxXSxoPShzWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksZCl7Zj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LHA9dVtkPShyP2YuZGVsZWdhdGVUeXBlOmYuYmluZFR5cGUpfHxkXXx8W10scz1zWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitoLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLGE9bz1wLmxlbmd0aDt3aGlsZShvLS0pYz1wW29dLCFpJiZnIT09Yy5vcmlnVHlwZXx8biYmbi5ndWlkIT09Yy5ndWlkfHxzJiYhcy50ZXN0KGMubmFtZXNwYWNlKXx8ciYmciE9PWMuc2VsZWN0b3ImJigiKioiIT09cnx8IWMuc2VsZWN0b3IpfHwocC5zcGxpY2UobywxKSxjLnNlbGVjdG9yJiZwLmRlbGVnYXRlQ291bnQtLSxmLnJlbW92ZSYmZi5yZW1vdmUuY2FsbChlLGMpKTthJiYhcC5sZW5ndGgmJihmLnRlYXJkb3duJiYhMSE9PWYudGVhcmRvd24uY2FsbChlLGgsdi5oYW5kbGUpfHxTLnJlbW92ZUV2ZW50KGUsZCx2LmhhbmRsZSksZGVsZXRlIHVbZF0pfWVsc2UgZm9yKGQgaW4gdSlTLmV2ZW50LnJlbW92ZShlLGQrdFtsXSxuLHIsITApO1MuaXNFbXB0eU9iamVjdCh1KSYmWS5yZW1vdmUoZSwiaGFuZGxlIGV2ZW50cyIpfX0sZGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHM9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHU9Uy5ldmVudC5maXgoZSksbD0oWS5nZXQodGhpcywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW3UudHlwZV18fFtdLGM9Uy5ldmVudC5zcGVjaWFsW3UudHlwZV18fHt9O2ZvcihzWzBdPXUsdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspc1t0XT1hcmd1bWVudHNbdF07aWYodS5kZWxlZ2F0ZVRhcmdldD10aGlzLCFjLnByZURpc3BhdGNofHwhMSE9PWMucHJlRGlzcGF0Y2guY2FsbCh0aGlzLHUpKXthPVMuZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLHUsbCksdD0wO3doaWxlKChpPWFbdCsrXSkmJiF1LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3UuY3VycmVudFRhcmdldD1pLmVsZW0sbj0wO3doaWxlKChvPWkuaGFuZGxlcnNbbisrXSkmJiF1LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpdS5ybmFtZXNwYWNlJiYhMSE9PW8ubmFtZXNwYWNlJiYhdS5ybmFtZXNwYWNlLnRlc3Qoby5uYW1lc3BhY2UpfHwodS5oYW5kbGVPYmo9byx1LmRhdGE9by5kYXRhLHZvaWQgMCE9PShyPSgoUy5ldmVudC5zcGVjaWFsW28ub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxvLmhhbmRsZXIpLmFwcGx5KGkuZWxlbSxzKSkmJiExPT09KHUucmVzdWx0PXIpJiYodS5wcmV2ZW50RGVmYXVsdCgpLHUuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gYy5wb3N0RGlzcGF0Y2gmJmMucG9zdERpc3BhdGNoLmNhbGwodGhpcyx1KSx1LnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzPVtdLHU9dC5kZWxlZ2F0ZUNvdW50LGw9ZS50YXJnZXQ7aWYodSYmbC5ub2RlVHlwZSYmISgiY2xpY2siPT09ZS50eXBlJiYxPD1lLmJ1dHRvbikpZm9yKDtsIT09dGhpcztsPWwucGFyZW50Tm9kZXx8dGhpcylpZigxPT09bC5ub2RlVHlwZSYmKCJjbGljayIhPT1lLnR5cGV8fCEwIT09bC5kaXNhYmxlZCkpe2ZvcihvPVtdLGE9e30sbj0wO248dTtuKyspdm9pZCAwPT09YVtpPShyPXRbbl0pLnNlbGVjdG9yKyIgIl0mJihhW2ldPXIubmVlZHNDb250ZXh0Py0xPFMoaSx0aGlzKS5pbmRleChsKTpTLmZpbmQoaSx0aGlzLG51bGwsW2xdKS5sZW5ndGgpLGFbaV0mJm8ucHVzaChyKTtvLmxlbmd0aCYmcy5wdXNoKHtlbGVtOmwsaGFuZGxlcnM6b30pfXJldHVybiBsPXRoaXMsdTx0Lmxlbmd0aCYmcy5wdXNoKHtlbGVtOmwsaGFuZGxlcnM6dC5zbGljZSh1KX0pLHN9LGFkZFByb3A6ZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoUy5FdmVudC5wcm90b3R5cGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0Om0oZSk/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIGUodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFt0XX0sc2V0OmZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmV9KX19KX0sZml4OmZ1bmN0aW9uKGUpe3JldHVybiBlW1MuZXhwYW5kb10/ZTpuZXcgUy5FdmVudChlKX0sc3BlY2lhbDp7bG9hZDp7bm9CdWJibGU6ITB9LGNsaWNrOntzZXR1cDpmdW5jdGlvbihlKXt2YXIgdD10aGlzfHxlO3JldHVybiBwZS50ZXN0KHQudHlwZSkmJnQuY2xpY2smJkEodCwiaW5wdXQiKSYmQWUodCwiY2xpY2siLENlKSwhMX0sdHJpZ2dlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzfHxlO3JldHVybiBwZS50ZXN0KHQudHlwZSkmJnQuY2xpY2smJkEodCwiaW5wdXQiKSYmQWUodCwiY2xpY2siKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZZLmdldCh0LCJjbGljayIpfHxBKHQsImEiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGUpe3ZvaWQgMCE9PWUucmVzdWx0JiZlLm9yaWdpbmFsRXZlbnQmJihlLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9ZS5yZXN1bHQpfX19fSxTLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGUsdCxuKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfSxTLkV2ZW50PWZ1bmN0aW9uKGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUy5FdmVudCkpcmV0dXJuIG5ldyBTLkV2ZW50KGUsdCk7ZSYmZS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9ZSx0aGlzLnR5cGU9ZS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWUuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09ZS5kZWZhdWx0UHJldmVudGVkJiYhMT09PWUucmV0dXJuVmFsdWU/Q2U6RWUsdGhpcy50YXJnZXQ9ZS50YXJnZXQmJjM9PT1lLnRhcmdldC5ub2RlVHlwZT9lLnRhcmdldC5wYXJlbnROb2RlOmUudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1lLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWUucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWUsdCYmUy5leHRlbmQodGhpcyx0KSx0aGlzLnRpbWVTdGFtcD1lJiZlLnRpbWVTdGFtcHx8RGF0ZS5ub3coKSx0aGlzW1MuZXhwYW5kb109ITB9LFMuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpTLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpFZSxpc1Byb3BhZ2F0aW9uU3RvcHBlZDpFZSxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpFZSxpc1NpbXVsYXRlZDohMSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1DZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1DZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wUHJvcGFnYXRpb24oKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9Q2UsZSYmIXRoaXMuaXNTaW11bGF0ZWQmJmUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LFMuZWFjaCh7YWx0S2V5OiEwLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjaGFuZ2VkVG91Y2hlczohMCxjdHJsS2V5OiEwLGRldGFpbDohMCxldmVudFBoYXNlOiEwLG1ldGFLZXk6ITAscGFnZVg6ITAscGFnZVk6ITAsc2hpZnRLZXk6ITAsdmlldzohMCwiY2hhciI6ITAsY29kZTohMCxjaGFyQ29kZTohMCxrZXk6ITAsa2V5Q29kZTohMCxidXR0b246ITAsYnV0dG9uczohMCxjbGllbnRYOiEwLGNsaWVudFk6ITAsb2Zmc2V0WDohMCxvZmZzZXRZOiEwLHBvaW50ZXJJZDohMCxwb2ludGVyVHlwZTohMCxzY3JlZW5YOiEwLHNjcmVlblk6ITAsdGFyZ2V0VG91Y2hlczohMCx0b0VsZW1lbnQ6ITAsdG91Y2hlczohMCx3aGljaDpmdW5jdGlvbihlKXt2YXIgdD1lLmJ1dHRvbjtyZXR1cm4gbnVsbD09ZS53aGljaCYmYmUudGVzdChlLnR5cGUpP251bGwhPWUuY2hhckNvZGU/ZS5jaGFyQ29kZTplLmtleUNvZGU6IWUud2hpY2gmJnZvaWQgMCE9PXQmJndlLnRlc3QoZS50eXBlKT8xJnQ/MToyJnQ/Mzo0JnQ/MjowOmUud2hpY2h9fSxTLmV2ZW50LmFkZFByb3ApLFMuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oZSx0KXtTLmV2ZW50LnNwZWNpYWxbZV09e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIEFlKHRoaXMsZSxTZSksITF9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gQWUodGhpcyxlKSwhMH0sZGVsZWdhdGVUeXBlOnR9fSksUy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihlLGkpe1MuZXZlbnQuc3BlY2lhbFtlXT17ZGVsZWdhdGVUeXBlOmksYmluZFR5cGU6aSxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnJlbGF0ZWRUYXJnZXQscj1lLmhhbmRsZU9iajtyZXR1cm4gbiYmKG49PT10aGlzfHxTLmNvbnRhaW5zKHRoaXMsbikpfHwoZS50eXBlPXIub3JpZ1R5cGUsdD1yLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT1pKSx0fX19KSxTLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGtlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4ga2UodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosUyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGUpe2ZvcihpIGluIGUpdGhpcy5vZmYoaSx0LGVbaV0pO3JldHVybiB0aGlzfXJldHVybiExIT09dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49RWUpLHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIE5lPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLERlPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLGplPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBxZShlLHQpe3JldHVybiBBKGUsInRhYmxlIikmJkEoMTEhPT10Lm5vZGVUeXBlP3Q6dC5maXJzdENoaWxkLCJ0ciIpJiZTKGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlfWZ1bmN0aW9uIExlKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gSGUoZSl7cmV0dXJuInRydWUvIj09PShlLnR5cGV8fCIiKS5zbGljZSgwLDUpP2UudHlwZT1lLnR5cGUuc2xpY2UoNSk6ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIE9lKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihZLmhhc0RhdGEoZSkmJihzPVkuZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gWS5yZW1vdmUodCwiaGFuZGxlIGV2ZW50cyIpLHMpZm9yKG49MCxyPXNbaV0ubGVuZ3RoO248cjtuKyspUy5ldmVudC5hZGQodCxpLHNbaV1bbl0pO1EuaGFzRGF0YShlKSYmKG89US5hY2Nlc3MoZSksYT1TLmV4dGVuZCh7fSxvKSxRLnNldCh0LGEpKX19ZnVuY3Rpb24gUGUobixyLGksbyl7cj1nKHIpO3ZhciBlLHQsYSxzLHUsbCxjPTAsZj1uLmxlbmd0aCxwPWYtMSxkPXJbMF0saD1tKGQpO2lmKGh8fDE8ZiYmInN0cmluZyI9PXR5cGVvZiBkJiYheS5jaGVja0Nsb25lJiZEZS50ZXN0KGQpKXJldHVybiBuLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5lcShlKTtoJiYoclswXT1kLmNhbGwodGhpcyxlLHQuaHRtbCgpKSksUGUodCxyLGksbyl9KTtpZihmJiYodD0oZT14ZShyLG5bMF0ub3duZXJEb2N1bWVudCwhMSxuLG8pKS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT10KSx0fHxvKSl7Zm9yKHM9KGE9Uy5tYXAodmUoZSwic2NyaXB0IiksTGUpKS5sZW5ndGg7YzxmO2MrKyl1PWUsYyE9PXAmJih1PVMuY2xvbmUodSwhMCwhMCkscyYmUy5tZXJnZShhLHZlKHUsInNjcmlwdCIpKSksaS5jYWxsKG5bY10sdSxjKTtpZihzKWZvcihsPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxTLm1hcChhLEhlKSxjPTA7YzxzO2MrKyl1PWFbY10saGUudGVzdCh1LnR5cGV8fCIiKSYmIVkuYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmUy5jb250YWlucyhsLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/Uy5fZXZhbFVybCYmIXUubm9Nb2R1bGUmJlMuX2V2YWxVcmwodS5zcmMse25vbmNlOnUubm9uY2V8fHUuZ2V0QXR0cmlidXRlKCJub25jZSIpfSxsKTpiKHUudGV4dENvbnRlbnQucmVwbGFjZShqZSwiIiksdSxsKSl9cmV0dXJuIG59ZnVuY3Rpb24gUmUoZSx0LG4pe2Zvcih2YXIgcixpPXQ/Uy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fFMuY2xlYW5EYXRhKHZlKHIpKSxyLnBhcmVudE5vZGUmJihuJiZpZShyKSYmeWUodmUociwic2NyaXB0IikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9Uy5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPWUuY2xvbmVOb2RlKCEwKSxmPWllKGUpO2lmKCEoeS5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8Uy5pc1hNTERvYyhlKSkpZm9yKGE9dmUoYykscj0wLGk9KG89dmUoZSkpLmxlbmd0aDtyPGk7cisrKXM9b1tyXSx1PWFbcl0sdm9pZCAwLCJpbnB1dCI9PT0obD11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZwZS50ZXN0KHMudHlwZSk/dS5jaGVja2VkPXMuY2hlY2tlZDoiaW5wdXQiIT09bCYmInRleHRhcmVhIiE9PWx8fCh1LmRlZmF1bHRWYWx1ZT1zLmRlZmF1bHRWYWx1ZSk7aWYodClpZihuKWZvcihvPW98fHZlKGUpLGE9YXx8dmUoYykscj0wLGk9by5sZW5ndGg7cjxpO3IrKylPZShvW3JdLGFbcl0pO2Vsc2UgT2UoZSxjKTtyZXR1cm4gMDwoYT12ZShjLCJzY3JpcHQiKSkubGVuZ3RoJiZ5ZShhLCFmJiZ2ZShlLCJzY3JpcHQiKSksY30sY2xlYW5EYXRhOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuLHIsaT1TLmV2ZW50LnNwZWNpYWwsbz0wO3ZvaWQgMCE9PShuPWVbb10pO28rKylpZihWKG4pKXtpZih0PW5bWS5leHBhbmRvXSl7aWYodC5ldmVudHMpZm9yKHIgaW4gdC5ldmVudHMpaVtyXT9TLmV2ZW50LnJlbW92ZShuLHIpOlMucmVtb3ZlRXZlbnQobixyLHQuaGFuZGxlKTtuW1kuZXhwYW5kb109dm9pZCAwfW5bUS5leHBhbmRvXSYmKG5bUS5leHBhbmRvXT12b2lkIDApfX19KSxTLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGUpe3JldHVybiBSZSh0aGlzLGUsITApfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJlKHRoaXMsZSl9LHRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZT9TLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9ZSl9KX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gUGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fHFlKHRoaXMsZSkuYXBwZW5kQ2hpbGQoZSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9cWUodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKTE9PT1lLm5vZGVUeXBlJiYoUy5jbGVhbkRhdGEodmUoZSwhMSkpLGUudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWUmJmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBTLmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIU5lLnRlc3QoZSkmJiFnZVsoZGUuZXhlYyhlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9Uy5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKFMuY2xlYW5EYXRhKHZlKHQsITEpKSx0LmlubmVySFRNTD1lKTt0PTB9Y2F0Y2goZSl7fX10JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIFBlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtTLmluQXJyYXkodGhpcyxuKTwwJiYoUy5jbGVhbkRhdGEodmUodGhpcykpLHQmJnQucmVwbGFjZUNoaWxkKGUsdGhpcykpfSxuKX19KSxTLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihlLGEpe1MuZm5bZV09ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49W10scj1TKGUpLGk9ci5sZW5ndGgtMSxvPTA7bzw9aTtvKyspdD1vPT09aT90aGlzOnRoaXMuY2xvbmUoITApLFMocltvXSlbYV0odCksdS5hcHBseShuLHQuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgTWU9bmV3IFJlZ0V4cCgiXigiK2VlKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksSWU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiB0JiZ0Lm9wZW5lcnx8KHQ9QyksdC5nZXRDb21wdXRlZFN0eWxlKGUpfSxXZT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn0sRmU9bmV3IFJlZ0V4cChuZS5qb2luKCJ8IiksImkiKTtmdW5jdGlvbiBCZShlLHQsbil7dmFyIHIsaSxvLGEscz1lLnN0eWxlO3JldHVybihuPW58fEllKGUpKSYmKCIiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8aWUoZSl8fChhPVMuc3R5bGUoZSx0KSksIXkucGl4ZWxCb3hTdHlsZXMoKSYmTWUudGVzdChhKSYmRmUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gJGUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLGwuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIscmUuYXBwZW5kQ2hpbGQodSkuYXBwZW5kQ2hpbGQobCk7dmFyIGU9Qy5nZXRDb21wdXRlZFN0eWxlKGwpO249IjElIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD0iNjAlIixvPTM2PT09dChlLnJpZ2h0KSxyPTM2PT09dChlLndpZHRoKSxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaT0xMj09PXQobC5vZmZzZXRXaWR0aC8zKSxyZS5yZW1vdmVDaGlsZCh1KSxsPW51bGx9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIG4scixpLG8sYSxzLHU9RS5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUUuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIseS5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsUy5leHRlbmQoeSx7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxvfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxufSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHN9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLGl9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLHI7cmV0dXJuIG51bGw9PWEmJihlPUUuY3JlYXRlRWxlbWVudCgidGFibGUiKSx0PUUuY3JlYXRlRWxlbWVudCgidHIiKSxuPUUuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4Iix0LnN0eWxlLmhlaWdodD0iMXB4IixuLnN0eWxlLmhlaWdodD0iOXB4IixyZS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPUMuZ2V0Q29tcHV0ZWRTdHlsZSh0KSxhPTM8cGFyc2VJbnQoci5oZWlnaHQpLHJlLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgX2U9WyJXZWJraXQiLCJNb3oiLCJtcyJdLHplPUUuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsVWU9e307ZnVuY3Rpb24gWGUoZSl7dmFyIHQ9Uy5jc3NQcm9wc1tlXXx8VWVbZV07cmV0dXJuIHR8fChlIGluIHplP2U6VWVbZV09ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1fZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPV9lW25dK3QpaW4gemUpcmV0dXJuIGV9KGUpfHxlKX12YXIgVmU9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLEdlPS9eLS0vLFllPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxRZT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn07ZnVuY3Rpb24gSmUoZSx0LG4pe3ZhciByPXRlLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gS2UoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpIm1hcmdpbiI9PT1uJiYodSs9Uy5jc3MoZSxuK25lW2FdLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYodS09Uy5jc3MoZSwicGFkZGluZyIrbmVbYV0sITAsaSkpLCJtYXJnaW4iIT09biYmKHUtPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKSkpOih1Kz1TLmNzcyhlLCJwYWRkaW5nIituZVthXSwhMCxpKSwicGFkZGluZyIhPT1uP3UrPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKTpzKz1TLmNzcyhlLCJib3JkZXIiK25lW2FdKyJXaWR0aCIsITAsaSkpO3JldHVybiFyJiYwPD1vJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKXx8MCksdX1mdW5jdGlvbiBaZShlLHQsbil7dmFyIHI9SWUoZSksaT0oIXkuYm94U2l6aW5nUmVsaWFibGUoKXx8bikmJiJib3JkZXItYm94Ij09PVMuY3NzKGUsImJveFNpemluZyIsITEsciksbz1pLGE9QmUoZSx0LHIpLHM9Im9mZnNldCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7aWYoTWUudGVzdChhKSl7aWYoIW4pcmV0dXJuIGE7YT0iYXV0byJ9cmV0dXJuKCF5LmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCF5LnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJkEoZSwidHIiKXx8ImF1dG8iPT09YXx8IXBhcnNlRmxvYXQoYSkmJiJpbmxpbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIsITEscikpJiZlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoaT0iYm9yZGVyLWJveCI9PT1TLmNzcyhlLCJib3hTaXppbmciLCExLHIpLChvPXMgaW4gZSkmJihhPWVbc10pKSwoYT1wYXJzZUZsb2F0KGEpfHwwKStLZShlLHQsbnx8KGk/ImJvcmRlciI6ImNvbnRlbnQiKSxvLHIsYSkrInB4In1mdW5jdGlvbiBldChlLHQsbixyLGkpe3JldHVybiBuZXcgZXQucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX1TLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPUJlKGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9WCh0KSx1PUdlLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PVhlKHMpKSxhPVMuY3NzSG9va3NbdF18fFMuY3NzSG9va3Nbc10sdm9pZCAwPT09bilyZXR1cm4gYSYmImdldCJpbiBhJiZ2b2lkIDAhPT0oaT1hLmdldChlLCExLHIpKT9pOmxbdF07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihpPXRlLmV4ZWMobikpJiZpWzFdJiYobj1zZShlLHQsaSksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiIT09b3x8dXx8KG4rPWkmJmlbM118fChTLmNzc051bWJlcltzXT8iIjoicHgiKSkseS5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVgodCk7cmV0dXJuIEdlLnRlc3QodCl8fCh0PVhlKHMpKSwoYT1TLmNzc0hvb2tzW3RdfHxTLmNzc0hvb2tzW3NdKSYmImdldCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1CZShlLHQscikpLCJub3JtYWwiPT09aSYmdCBpbiBRZSYmKGk9UWVbdF0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KGkpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDppKTppfX0pLFMuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx1KXtTLmNzc0hvb2tzW3VdPXtnZXQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHQpcmV0dXJuIVZlLnRlc3QoUy5jc3MoZSwiZGlzcGxheSIpKXx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9aZShlLHUsbik6V2UoZSxZZSxmdW5jdGlvbigpe3JldHVybiBaZShlLHUsbil9KX0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPUllKGUpLG89IXkuc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aS5wb3NpdGlvbixhPShvfHxuKSYmImJvcmRlci1ib3giPT09Uy5jc3MoZSwiYm94U2l6aW5nIiwhMSxpKSxzPW4/S2UoZSx1LG4sYSxpKTowO3JldHVybiBhJiZvJiYocy09TWF0aC5jZWlsKGVbIm9mZnNldCIrdVswXS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSldLXBhcnNlRmxvYXQoaVt1XSktS2UoZSx1LCJib3JkZXIiLCExLGkpLS41KSkscyYmKHI9dGUuZXhlYyh0KSkmJiJweCIhPT0oclszXXx8InB4IikmJihlLnN0eWxlW3VdPXQsdD1TLmNzcyhlLHUpKSxKZSgwLHQscyl9fX0pLFMuY3NzSG9va3MubWFyZ2luTGVmdD0kZSh5LnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuKHBhcnNlRmxvYXQoQmUoZSwibWFyZ2luTGVmdCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LVdlKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSxTLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihpLG8pe1MuY3NzSG9va3NbaStvXT17ZXhwYW5kOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49e30scj0ic3RyaW5nIj09dHlwZW9mIGU/ZS5zcGxpdCgiICIpOltlXTt0PDQ7dCsrKW5baStuZVt0XStvXT1yW3RdfHxyW3QtMl18fHJbMF07cmV0dXJuIG59fSwibWFyZ2luIiE9PWkmJihTLmNzc0hvb2tzW2krb10uc2V0PUplKX0pLFMuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPUllKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPVMuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj9TLnN0eWxlKGUsdCxuKTpTLmNzcyhlLHQpfSxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX19KSwoKFMuVHdlZW49ZXQpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6ZXQsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8Uy5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPXQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXIsdGhpcy51bml0PW98fChTLmNzc051bWJlcltuXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9ZXQucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOmV0LnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPWV0LnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1TLmVhc2luZ1t0aGlzLmVhc2luZ10oZSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz10PWUsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKnQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksbiYmbi5zZXQ/bi5zZXQodGhpcyk6ZXQucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPWV0LnByb3RvdHlwZSwoZXQucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9Uy5jc3MoZS5lbGVtLGUucHJvcCwiIikpJiYiYXV0byIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe1MuZnguc3RlcFtlLnByb3BdP1MuZnguc3RlcFtlLnByb3BdKGUpOjEhPT1lLmVsZW0ubm9kZVR5cGV8fCFTLmNzc0hvb2tzW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVtYZShlLnByb3ApXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzpTLnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSkuc2Nyb2xsVG9wPWV0LnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LFMuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6InN3aW5nIn0sUy5meD1ldC5wcm90b3R5cGUuaW5pdCxTLmZ4LnN0ZXA9e307dmFyIHR0LG50LHJ0LGl0LG90PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxhdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIHN0KCl7bnQmJighMT09PUUuaGlkZGVuJiZDLnJlcXVlc3RBbmltYXRpb25GcmFtZT9DLnJlcXVlc3RBbmltYXRpb25GcmFtZShzdCk6Qy5zZXRUaW1lb3V0KHN0LFMuZnguaW50ZXJ2YWwpLFMuZngudGljaygpKX1mdW5jdGlvbiB1dCgpe3JldHVybiBDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0dD12b2lkIDB9KSx0dD1EYXRlLm5vdygpfWZ1bmN0aW9uIGx0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbIm1hcmdpbiIrKG49bmVbcl0pXT1pWyJwYWRkaW5nIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiBjdChlLHQsbil7Zm9yKHZhciByLGk9KGZ0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KGZ0LnR3ZWVuZXJzWyIqIl0pLG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYocj1pW29dLmNhbGwobix0LGUpKXJldHVybiByfWZ1bmN0aW9uIGZ0KG8sZSx0KXt2YXIgbixhLHI9MCxpPWZ0LnByZWZpbHRlcnMubGVuZ3RoLHM9Uy5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9dHR8fHV0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpTLmV4dGVuZCh7fSxlKSxvcHRzOlMuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpTLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOnR0fHx1dCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Uy5Ud2VlbihvLGwub3B0cyxlLHQsbC5vcHRzLnNwZWNpYWxFYXNpbmdbZV18fGwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKG4pLG59LHN0b3A6ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWU/bC50d2VlbnMubGVuZ3RoOjA7aWYoYSlyZXR1cm4gdGhpcztmb3IoYT0hMDt0PG47dCsrKWwudHdlZW5zW3RdLnJ1bigxKTtyZXR1cm4gZT8ocy5ub3RpZnlXaXRoKG8sW2wsMSwwXSkscy5yZXNvbHZlV2l0aChvLFtsLGVdKSk6cy5yZWplY3RXaXRoKG8sW2wsZV0pLHRoaXN9fSksYz1sLnByb3BzO2ZvcighZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhO2ZvcihuIGluIGUpaWYoaT10W3I9WChuKV0sbz1lW25dLEFycmF5LmlzQXJyYXkobykmJihpPW9bMV0sbz1lW25dPW9bMF0pLG4hPT1yJiYoZVtyXT1vLGRlbGV0ZSBlW25dKSwoYT1TLmNzc0hvb2tzW3JdKSYmImV4cGFuZCJpbiBhKWZvcihuIGluIG89YS5leHBhbmQobyksZGVsZXRlIGVbcl0sbyluIGluIGV8fChlW25dPW9bbl0sdFtuXT1pKTtlbHNlIHRbcl09aX0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7cjxpO3IrKylpZihuPWZ0LnByZWZpbHRlcnNbcl0uY2FsbChsLG8sYyxsLm9wdHMpKXJldHVybiBtKG4uc3RvcCkmJihTLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9bi5zdG9wLmJpbmQobikpLG47cmV0dXJuIFMubWFwKGMsY3QsbCksbShsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChvLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLFMuZngudGltZXIoUy5leHRlbmQodSx7ZWxlbTpvLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1TLkFuaW1hdGlvbj1TLmV4dGVuZChmdCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHNlKG4uZWxlbSxlLHRlLmV4ZWModCksbiksbn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7bShlKT8odD1lLGU9WyIqIl0pOmU9ZS5tYXRjaChQKTtmb3IodmFyIG4scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluPWVbcl0sZnQudHdlZW5lcnNbbl09ZnQudHdlZW5lcnNbbl18fFtdLGZ0LnR3ZWVuZXJzW25dLnVuc2hpZnQodCl9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjLGY9IndpZHRoImluIHR8fCJoZWlnaHQiaW4gdCxwPXRoaXMsZD17fSxoPWUuc3R5bGUsZz1lLm5vZGVUeXBlJiZhZShlKSx2PVkuZ2V0KGUsImZ4c2hvdyIpO2ZvcihyIGluIG4ucXVldWV8fChudWxsPT0oYT1TLl9xdWV1ZUhvb2tzKGUsImZ4IikpLnVucXVldWVkJiYoYS51bnF1ZXVlZD0wLHM9YS5lbXB0eS5maXJlLGEuZW1wdHkuZmlyZT1mdW5jdGlvbigpe2EudW5xdWV1ZWR8fHMoKX0pLGEudW5xdWV1ZWQrKyxwLmFsd2F5cyhmdW5jdGlvbigpe3AuYWx3YXlzKGZ1bmN0aW9uKCl7YS51bnF1ZXVlZC0tLFMucXVldWUoZSwiZngiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSksdClpZihpPXRbcl0sb3QudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShnPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Uy5zdHlsZShlLHIpfWlmKCh1PSFTLmlzRW1wdHlPYmplY3QodCkpfHwhUy5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9WS5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz1TLmNzcyhlLCJkaXNwbGF5IikpJiYobD9jPWw6KGxlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz1TLmNzcyhlLCJkaXNwbGF5IiksbGUoW2VdKSkpLCgiaW5saW5lIj09PWN8fCJpbmxpbmUtYmxvY2siPT09YyYmbnVsbCE9bCkmJiJub25lIj09PVMuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2PyJoaWRkZW4iaW4gdiYmKGc9di5oaWRkZW4pOnY9WS5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHYuaGlkZGVuPSFnKSxnJiZsZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2ZvcihyIGluIGd8fGxlKFtlXSksWS5yZW1vdmUoZSwiZnhzaG93IiksZClTLnN0eWxlKGUscixkW3JdKX0pKSx1PWN0KGc/dltyXTowLHIscCksciBpbiB2fHwodltyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGUsdCl7dD9mdC5wcmVmaWx0ZXJzLnVuc2hpZnQoZSk6ZnQucHJlZmlsdGVycy5wdXNoKGUpfX0pLFMuc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT9TLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fG0oZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIW0odCkmJnR9O3JldHVybiBTLmZ4Lm9mZj9yLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiByLmR1cmF0aW9uJiYoci5kdXJhdGlvbiBpbiBTLmZ4LnNwZWVkcz9yLmR1cmF0aW9uPVMuZnguc3BlZWRzW3IuZHVyYXRpb25dOnIuZHVyYXRpb249Uy5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPXIucXVldWUmJiEwIT09ci5xdWV1ZXx8KHIucXVldWU9ImZ4Iiksci5vbGQ9ci5jb21wbGV0ZSxyLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bShyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmUy5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LFMuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGFlKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1TLmlzRW1wdHlPYmplY3QodCksbz1TLnNwZWVkKGUsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIGU9ZnQodGhpcyxTLmV4dGVuZCh7fSx0KSxvKTsoaXx8WS5nZXQodGhpcywiZmluaXNoIikpJiZlLnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHwhMT09PW8ucXVldWU/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihpLGUsbyl7dmFyIGE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChvKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0hMCx0PW51bGwhPWkmJmkrInF1ZXVlSG9va3MiLG49Uy50aW1lcnMscj1ZLmdldCh0aGlzKTtpZih0KXJbdF0mJnJbdF0uc3RvcCYmYShyW3RdKTtlbHNlIGZvcih0IGluIHIpclt0XSYmclt0XS5zdG9wJiZhdC50ZXN0KHQpJiZhKHJbdF0pO2Zvcih0PW4ubGVuZ3RoO3QtLTspblt0XS5lbGVtIT09dGhpc3x8bnVsbCE9aSYmblt0XS5xdWV1ZSE9PWl8fChuW3RdLmFuaW0uc3RvcChvKSxlPSExLG4uc3BsaWNlKHQsMSkpOyFlJiZvfHxTLmRlcXVldWUodGhpcyxpKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PVkuZ2V0KHRoaXMpLG49dFthKyJxdWV1ZSJdLHI9dFthKyJxdWV1ZUhvb2tzIl0saT1TLnRpbWVycyxvPW4/bi5sZW5ndGg6MDtmb3IodC5maW5pc2g9ITAsUy5xdWV1ZSh0aGlzLGEsW10pLHImJnIuc3RvcCYmci5zdG9wLmNhbGwodGhpcywhMCksZT1pLmxlbmd0aDtlLS07KWlbZV0uZWxlbT09PXRoaXMmJmlbZV0ucXVldWU9PT1hJiYoaVtlXS5hbmltLnN0b3AoITApLGkuc3BsaWNlKGUsMSkpO2ZvcihlPTA7ZTxvO2UrKyluW2VdJiZuW2VdLmZpbmlzaCYmbltlXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgdC5maW5pc2h9KX19KSxTLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUscil7dmFyIGk9Uy5mbltyXTtTLmZuW3JdPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUobHQociwhMCksZSx0LG4pfX0pLFMuZWFjaCh7c2xpZGVEb3duOmx0KCJzaG93Iiksc2xpZGVVcDpsdCgiaGlkZSIpLHNsaWRlVG9nZ2xlOmx0KCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGUscil7Uy5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxTLnRpbWVycz1bXSxTLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj1TLnRpbWVycztmb3IodHQ9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxTLmZ4LnN0b3AoKSx0dD12b2lkIDB9LFMuZngudGltZXI9ZnVuY3Rpb24oZSl7Uy50aW1lcnMucHVzaChlKSxTLmZ4LnN0YXJ0KCl9LFMuZnguaW50ZXJ2YWw9MTMsUy5meC5zdGFydD1mdW5jdGlvbigpe250fHwobnQ9ITAsc3QoKSl9LFMuZnguc3RvcD1mdW5jdGlvbigpe250PW51bGx9LFMuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LFMuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1TLmZ4JiZTLmZ4LnNwZWVkc1tyXXx8cixlPWV8fCJmeCIsdGhpcy5xdWV1ZShlLGZ1bmN0aW9uKGUsdCl7dmFyIG49Qy5zZXRUaW1lb3V0KGUscik7dC5zdG9wPWZ1bmN0aW9uKCl7Qy5jbGVhclRpbWVvdXQobil9fSl9LHJ0PUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxpdD1FLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKEUuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLHJ0LnR5cGU9ImNoZWNrYm94Iix5LmNoZWNrT249IiIhPT1ydC52YWx1ZSx5Lm9wdFNlbGVjdGVkPWl0LnNlbGVjdGVkLChydD1FLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0IixydC50eXBlPSJyYWRpbyIseS5yYWRpb1ZhbHVlPSJ0Ij09PXJ0LnZhbHVlO3ZhciBwdCxkdD1TLmV4cHIuYXR0ckhhbmRsZTtTLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiAkKHRoaXMsUy5hdHRyLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLnJlbW92ZUF0dHIodGhpcyxlKX0pfX0pLFMuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/Uy5wcm9wKGUsdCxuKTooMT09PW8mJlMuaXNYTUxEb2MoZSl8fChpPVMuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fChTLmV4cHIubWF0Y2guYm9vbC50ZXN0KHQpP3B0OnZvaWQgMCkpLHZvaWQgMCE9PW4/bnVsbD09PW4/dm9pZCBTLnJlbW92ZUF0dHIoZSx0KTppJiYic2V0ImluIGkmJnZvaWQgMCE9PShyPWkuc2V0KGUsbix0KSk/cjooZS5zZXRBdHRyaWJ1dGUodCxuKyIiKSxuKTppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPVMuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZigheS5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmQShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goUCk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSkscHQ9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P1MucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LFMuZWFjaChTLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihlLHQpe3ZhciBhPWR0W3RdfHxTLmZpbmQuYXR0cjtkdFt0XT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gbnx8KGk9ZHRbb10sZHRbb109cixyPW51bGwhPWEoZSx0LG4pP286bnVsbCxkdFtvXT1pKSxyfX0pO3ZhciBodD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGd0PS9eKD86YXxhcmVhKSQvaTtmdW5jdGlvbiB2dChlKXtyZXR1cm4oZS5tYXRjaChQKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiB5dChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiBtdChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOiJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaChQKXx8W119Uy5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLFMucHJvcCxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbUy5wcm9wRml4W2VdfHxlXX0pfX0pLFMuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiAxPT09byYmUy5pc1hNTERvYyhlKXx8KHQ9Uy5wcm9wRml4W3RdfHx0LGk9Uy5wcm9wSG9va3NbdF0pLHZvaWQgMCE9PW4/aSYmInNldCJpbiBpJiZ2b2lkIDAhPT0ocj1pLnNldChlLG4sdCkpP3I6ZVt0XT1uOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6ZVt0XX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInRhYmluZGV4Iik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6aHQudGVzdChlLm5vZGVOYW1lKXx8Z3QudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSkseS5vcHRTZWxlY3RlZHx8KFMucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7dCYmKHQuc2VsZWN0ZWRJbmRleCx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxTLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe1MucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxTLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHMsdT0wO2lmKG0odCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUseXQodGhpcykpKX0pO2lmKChlPW10KHQpKS5sZW5ndGgpd2hpbGUobj10aGlzW3UrK10paWYoaT15dChuKSxyPTE9PT1uLm5vZGVUeXBlJiYiICIrdnQoaSkrIiAiKXthPTA7d2hpbGUobz1lW2ErK10pci5pbmRleE9mKCIgIitvKyIgIik8MCYmKHIrPW8rIiAiKTtpIT09KHM9dnQocikpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscyx1PTA7aWYobSh0KSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1ModGhpcykucmVtb3ZlQ2xhc3ModC5jYWxsKHRoaXMsZSx5dCh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cigiY2xhc3MiLCIiKTtpZigoZT1tdCh0KSkubGVuZ3RoKXdoaWxlKG49dGhpc1t1KytdKWlmKGk9eXQobikscj0xPT09bi5ub2RlVHlwZSYmIiAiK3Z0KGkpKyIgIil7YT0wO3doaWxlKG89ZVthKytdKXdoaWxlKC0xPHIuaW5kZXhPZigiICIrbysiICIpKXI9ci5yZXBsYWNlKCIgIitvKyIgIiwiICIpO2khPT0ocz12dChyKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyl9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGksdCl7dmFyIG89dHlwZW9mIGksYT0ic3RyaW5nIj09PW98fEFycmF5LmlzQXJyYXkoaSk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdCYmYT90P3RoaXMuYWRkQ2xhc3MoaSk6dGhpcy5yZW1vdmVDbGFzcyhpKTptKGkpP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLnRvZ2dsZUNsYXNzKGkuY2FsbCh0aGlzLGUseXQodGhpcyksdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtpZihhKXt0PTAsbj1TKHRoaXMpLHI9bXQoaSk7d2hpbGUoZT1yW3QrK10pbi5oYXNDbGFzcyhlKT9uLnJlbW92ZUNsYXNzKGUpOm4uYWRkQ2xhc3MoZSl9ZWxzZSB2b2lkIDAhPT1pJiYiYm9vbGVhbiIhPT1vfHwoKGU9eXQodGhpcykpJiZZLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixlKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixlfHwhMT09PWk/IiI6WS5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9IiAiK2UrIiAiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoIiAiK3Z0KHl0KG4pKSsiICIpLmluZGV4T2YodCkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHh0PS9cci9nO1MuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24obil7dmFyIHIsZSxpLHQ9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1tKG4pLHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PSh0PWk/bi5jYWxsKHRoaXMsZSxTKHRoaXMpLnZhbCgpKTpuKT90PSIiOiJudW1iZXIiPT10eXBlb2YgdD90Kz0iIjpBcnJheS5pc0FycmF5KHQpJiYodD1TLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSksKHI9Uy52YWxIb29rc1t0aGlzLnR5cGVdfHxTLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYic2V0ImluIHImJnZvaWQgMCE9PXIuc2V0KHRoaXMsdCwidmFsdWUiKXx8KHRoaXMudmFsdWU9dCkpfSkpOnQ/KHI9Uy52YWxIb29rc1t0LnR5cGVdfHxTLnZhbEhvb2tzW3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIHImJnZvaWQgMCE9PShlPXIuZ2V0KHQsInZhbHVlIikpP2U6InN0cmluZyI9PXR5cGVvZihlPXQudmFsdWUpP2UucmVwbGFjZSh4dCwiIik6bnVsbD09ZT8iIjplOnZvaWQgMH19KSxTLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDp2dChTLnRleHQoZSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9ZS5vcHRpb25zLG89ZS5zZWxlY3RlZEluZGV4LGE9InNlbGVjdC1vbmUiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhQShuLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZih0PVMobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz1TLm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9LTE8Uy5pbkFycmF5KFMudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLFMuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe1MudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD0tMTxTLmluQXJyYXkoUyhlKS52YWwoKSx0KX19LHkuY2hlY2tPbnx8KFMudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KSx5LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBDO3ZhciBidD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sd3Q9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07Uy5leHRlbmQoUy5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmLHA9W258fEVdLGQ9di5jYWxsKGUsInR5cGUiKT9lLnR5cGU6ZSxoPXYuY2FsbChlLCJuYW1lc3BhY2UiKT9lLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKG89Zj1hPW49bnx8RSwzIT09bi5ub2RlVHlwZSYmOCE9PW4ubm9kZVR5cGUmJiFidC50ZXN0KGQrUy5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ZC5pbmRleE9mKCIuIikmJihkPShoPWQuc3BsaXQoIi4iKSkuc2hpZnQoKSxoLnNvcnQoKSksdT1kLmluZGV4T2YoIjoiKTwwJiYib24iK2QsKGU9ZVtTLmV4cGFuZG9dP2U6bmV3IFMuRXZlbnQoZCwib2JqZWN0Ij09dHlwZW9mIGUmJmUpKS5pc1RyaWdnZXI9cj8yOjMsZS5uYW1lc3BhY2U9aC5qb2luKCIuIiksZS5ybmFtZXNwYWNlPWUubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxlLnJlc3VsdD12b2lkIDAsZS50YXJnZXR8fChlLnRhcmdldD1uKSx0PW51bGw9PXQ/W2VdOlMubWFrZUFycmF5KHQsW2VdKSxjPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXgobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLGJ0LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEUpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fEMpfWk9MDt3aGlsZSgobz1wW2krK10pJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWY9byxlLnR5cGU9MTxpP3M6Yy5iaW5kVHlwZXx8ZCwobD0oWS5nZXQobywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2UudHlwZV0mJlkuZ2V0KG8sImhhbmRsZSIpKSYmbC5hcHBseShvLHQpLChsPXUmJm9bdV0pJiZsLmFwcGx5JiZWKG8pJiYoZS5yZXN1bHQ9bC5hcHBseShvLHQpLCExPT09ZS5yZXN1bHQmJmUucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGUudHlwZT1kLHJ8fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGMuX2RlZmF1bHQmJiExIT09Yy5fZGVmYXVsdC5hcHBseShwLnBvcCgpLHQpfHwhVihuKXx8dSYmbShuW2RdKSYmIXgobikmJigoYT1uW3VdKSYmKG5bdV09bnVsbCksUy5ldmVudC50cmlnZ2VyZWQ9ZCxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihkLHd0KSxuW2RdKCksZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx3dCksUy5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGEmJihuW3VdPWEpKSxlLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TLmV4dGVuZChuZXcgUy5FdmVudCxuLHt0eXBlOmUsaXNTaW11bGF0ZWQ6ITB9KTtTLmV2ZW50LnRyaWdnZXIocixudWxsLHQpfX0pLFMuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIFMuZXZlbnQudHJpZ2dlcihlLHQsbiwhMCl9fSkseS5mb2N1c2lufHxTLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKG4scil7dmFyIGk9ZnVuY3Rpb24oZSl7Uy5ldmVudC5zaW11bGF0ZShyLGUudGFyZ2V0LFMuZXZlbnQuZml4KGUpKX07Uy5ldmVudC5zcGVjaWFsW3JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyx0PVkuYWNjZXNzKGUscik7dHx8ZS5hZGRFdmVudExpc3RlbmVyKG4saSwhMCksWS5hY2Nlc3MoZSxyLCh0fHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1ZLmFjY2VzcyhlLHIpLTE7dD9ZLmFjY2VzcyhlLHIsdCk6KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLGksITApLFkucmVtb3ZlKGUscikpfX19KTt2YXIgVHQ9Qy5sb2NhdGlvbixDdD17Z3VpZDpEYXRlLm5vdygpfSxFdD0vXD8vO1MucGFyc2VYTUw9ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoIWV8fCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gbnVsbDt0cnl7dD0obmV3IEMuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC94bWwiKX1jYXRjaChlKXt0PXZvaWQgMH1yZXR1cm4gdCYmIXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIikubGVuZ3RofHxTLmVycm9yKCJJbnZhbGlkIFhNTDogIitlKSx0fTt2YXIgU3Q9L1xbXF0kLyxrdD0vXHI/XG4vZyxBdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksTnQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIER0KG4sZSxyLGkpe3ZhciB0O2lmKEFycmF5LmlzQXJyYXkoZSkpUy5lYWNoKGUsZnVuY3Rpb24oZSx0KXtyfHxTdC50ZXN0KG4pP2kobix0KTpEdChuKyJbIisoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10P2U6IiIpKyJdIix0LHIsaSl9KTtlbHNlIGlmKHJ8fCJvYmplY3QiIT09dyhlKSlpKG4sZSk7ZWxzZSBmb3IodCBpbiBlKUR0KG4rIlsiK3QrIl0iLGVbdF0scixpKX1TLnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49bSh0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihudWxsPT1lKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhUy5pc1BsYWluT2JqZWN0KGUpKVMuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpRHQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbigiJiIpfSxTLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIFMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT1TLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gZT9TLm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFTKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmTnQudGVzdCh0aGlzLm5vZGVOYW1lKSYmIUF0LnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFwZS50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPVModGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP1MubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShrdCwiXHJcbiIpfX0pOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2Uoa3QsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIganQ9LyUyMC9nLHF0PS8jLiokLyxMdD0vKFs/Jl0pXz1bXiZdKi8sSHQ9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxPdD0vXig/OkdFVHxIRUFEKSQvLFB0PS9eXC9cLy8sUnQ9e30sTXQ9e30sSXQ9IiovIi5jb25jYXQoIioiKSxXdD1FLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBGdChvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT0iKiIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChQKXx8W107aWYobSh0KSl3aGlsZShuPWlbcisrXSkiKyI9PT1uWzBdPyhuPW4uc2xpY2UoMSl8fCIqIiwob1tuXT1vW25dfHxbXSkudW5zaGlmdCh0KSk6KG9bbl09b1tuXXx8W10pLnB1c2godCl9fWZ1bmN0aW9uIEJ0KHQsaSxvLGEpe3ZhciBzPXt9LHU9dD09PU10O2Z1bmN0aW9uIGwoZSl7dmFyIHI7cmV0dXJuIHNbZV09ITAsUy5lYWNoKHRbZV18fFtdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dChpLG8sYSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBufHx1fHxzW25dP3U/IShyPW4pOnZvaWQgMDooaS5kYXRhVHlwZXMudW5zaGlmdChuKSxsKG4pLCExKX0pLHJ9cmV0dXJuIGwoaS5kYXRhVHlwZXNbMF0pfHwhc1siKiJdJiZsKCIqIil9ZnVuY3Rpb24gJHQoZSx0KXt2YXIgbixyLGk9Uy5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChpW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyZXR1cm4gciYmUy5leHRlbmQoITAsZSxyKSxlfVd0LmhyZWY9VHQuaHJlZixTLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6VHQuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChUdC5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpJdCx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6Uy5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/JHQoJHQoZSxTLmFqYXhTZXR0aW5ncyksdCk6JHQoUy5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6RnQoUnQpLGFqYXhUcmFuc3BvcnQ6RnQoTXQpLGFqYXg6ZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLHQ9dHx8e307dmFyIGMsZixwLG4sZCxyLGgsZyxpLG8sdj1TLmFqYXhTZXR1cCh7fSx0KSx5PXYuY29udGV4dHx8dixtPXYuY29udGV4dCYmKHkubm9kZVR5cGV8fHkuanF1ZXJ5KT9TKHkpOlMuZXZlbnQseD1TLkRlZmVycmVkKCksYj1TLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3PXYuc3RhdHVzQ29kZXx8e30sYT17fSxzPXt9LHU9ImNhbmNlbGVkIixUPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoaCl7aWYoIW4pe249e307d2hpbGUodD1IdC5leGVjKHApKW5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQodFsyXSl9dD1uW2UudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT10P251bGw6dC5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxUdC5ocmVmKSsiIikucmVwbGFjZShQdCxUdC5wcm90b2NvbCsiLy8iKSx2LnR5cGU9dC5tZXRob2R8fHQudHlwZXx8di5tZXRob2R8fHYudHlwZSx2LmRhdGFUeXBlcz0odi5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKFApfHxbIiJdLG51bGw9PXYuY3Jvc3NEb21haW4pe3I9RS5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e3IuaHJlZj12LnVybCxyLmhyZWY9ci5ocmVmLHYuY3Jvc3NEb21haW49V3QucHJvdG9jb2wrIi8vIitXdC5ob3N0IT1yLnByb3RvY29sKyIvLyIrci5ob3N0fWNhdGNoKGUpe3YuY3Jvc3NEb21haW49ITB9fWlmKHYuZGF0YSYmdi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiB2LmRhdGEmJih2LmRhdGE9Uy5wYXJhbSh2LmRhdGEsdi50cmFkaXRpb25hbCkpLEJ0KFJ0LHYsdCxUKSxoKXJldHVybiBUO2ZvcihpIGluKGc9Uy5ldmVudCYmdi5nbG9iYWwpJiYwPT1TLmFjdGl2ZSsrJiZTLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHYudHlwZT12LnR5cGUudG9VcHBlckNhc2UoKSx2Lmhhc0NvbnRlbnQ9IU90LnRlc3Qodi50eXBlKSxmPXYudXJsLnJlcGxhY2UocXQsIiIpLHYuaGFzQ29udGVudD92LmRhdGEmJnYucHJvY2Vzc0RhdGEmJjA9PT0odi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYodi5kYXRhPXYuZGF0YS5yZXBsYWNlKGp0LCIrIikpOihvPXYudXJsLnNsaWNlKGYubGVuZ3RoKSx2LmRhdGEmJih2LnByb2Nlc3NEYXRhfHwic3RyaW5nIj09dHlwZW9mIHYuZGF0YSkmJihmKz0oRXQudGVzdChmKT8iJiI6Ij8iKSt2LmRhdGEsZGVsZXRlIHYuZGF0YSksITE9PT12LmNhY2hlJiYoZj1mLnJlcGxhY2UoTHQsIiQxIiksbz0oRXQudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0N0Lmd1aWQrKytvKSx2LnVybD1mK28pLHYuaWZNb2RpZmllZCYmKFMubGFzdE1vZGlmaWVkW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixTLmxhc3RNb2RpZmllZFtmXSksUy5ldGFnW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLFMuZXRhZ1tmXSkpLCh2LmRhdGEmJnYuaGFzQ29udGVudCYmITEhPT12LmNvbnRlbnRUeXBlfHx0LmNvbnRlbnRUeXBlKSYmVC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHYuY29udGVudFR5cGUpLFQuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0Iix2LmRhdGFUeXBlc1swXSYmdi5hY2NlcHRzW3YuZGF0YVR5cGVzWzBdXT92LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dKygiKiIhPT12LmRhdGFUeXBlc1swXT8iLCAiK0l0KyI7IHE9MC4wMSI6IiIpOnYuYWNjZXB0c1siKiJdKSx2LmhlYWRlcnMpVC5zZXRSZXF1ZXN0SGVhZGVyKGksdi5oZWFkZXJzW2ldKTtpZih2LmJlZm9yZVNlbmQmJighMT09PXYuYmVmb3JlU2VuZC5jYWxsKHksVCx2KXx8aCkpcmV0dXJuIFQuYWJvcnQoKTtpZih1PSJhYm9ydCIsYi5hZGQodi5jb21wbGV0ZSksVC5kb25lKHYuc3VjY2VzcyksVC5mYWlsKHYuZXJyb3IpLGM9QnQoTXQsdix0LFQpKXtpZihULnJlYWR5U3RhdGU9MSxnJiZtLnRyaWdnZXIoImFqYXhTZW5kIixbVCx2XSksaClyZXR1cm4gVDt2LmFzeW5jJiYwPHYudGltZW91dCYmKGQ9Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5hYm9ydCgidGltZW91dCIpfSx2LnRpbWVvdXQpKTt0cnl7aD0hMSxjLnNlbmQoYSxsKX1jYXRjaChlKXtpZihoKXRocm93IGU7bCgtMSxlKX19ZWxzZSBsKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJkMuY2xlYXJUaW1lb3V0KGQpLGM9dm9pZCAwLHA9cnx8IiIsVC5yZWFkeVN0YXRlPTA8ZT80OjAsaT0yMDA8PWUmJmU8MzAwfHwzMDQ9PT1lLG4mJihzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZSgiKiI9PT11WzBdKXUuc2hpZnQoKSx2b2lkIDA9PT1yJiYocj1lLm1pbWVUeXBlfHx0LmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYocilmb3IoaSBpbiBzKWlmKHNbaV0mJnNbaV0udGVzdChyKSl7dS51bnNoaWZ0KGkpO2JyZWFrfWlmKHVbMF1pbiBuKW89dVswXTtlbHNle2ZvcihpIGluIG4pe2lmKCF1WzBdfHxlLmNvbnZlcnRlcnNbaSsiICIrdVswXV0pe289aTticmVha31hfHwoYT1pKX1vPW98fGF9aWYobylyZXR1cm4gbyE9PXVbMF0mJnUudW5zaGlmdChvKSxuW29dfSh2LFQsbikpLCFpJiYtMTxTLmluQXJyYXkoInNjcmlwdCIsdi5kYXRhVHlwZXMpJiYodi5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSkscz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKCIqIj09PW8pbz11O2Vsc2UgaWYoIioiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrIiAiK29dfHxsWyIqICIrb10pKWZvcihpIGluIGwpaWYoKHM9aS5zcGxpdCgiICIpKVsxXT09PW8mJihhPWxbdSsiICIrc1swXV18fGxbIiogIitzWzBdXSkpeyEwPT09YT9hPWxbaV06ITAhPT1sW2ldJiYobz1zWzBdLGMudW5zaGlmdChzWzFdKSk7YnJlYWt9aWYoITAhPT1hKWlmKGEmJmVbInRocm93cyJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6YT9lOiJObyBjb252ZXJzaW9uIGZyb20gIit1KyIgdG8gIitvfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOnR9fSh2LHMsVCxpKSxpPyh2LmlmTW9kaWZpZWQmJigodT1ULmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoUy5sYXN0TW9kaWZpZWRbZl09dSksKHU9VC5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKFMuZXRhZ1tmXT11KSksMjA0PT09ZXx8IkhFQUQiPT09di50eXBlP2w9Im5vY29udGVudCI6MzA0PT09ZT9sPSJub3Rtb2RpZmllZCI6KGw9cy5zdGF0ZSxvPXMuZGF0YSxpPSEoYT1zLmVycm9yKSkpOihhPWwsIWUmJmx8fChsPSJlcnJvciIsZTwwJiYoZT0wKSkpLFQuc3RhdHVzPWUsVC5zdGF0dXNUZXh0PSh0fHxsKSsiIixpP3gucmVzb2x2ZVdpdGgoeSxbbyxsLFRdKTp4LnJlamVjdFdpdGgoeSxbVCxsLGFdKSxULnN0YXR1c0NvZGUodyksdz12b2lkIDAsZyYmbS50cmlnZ2VyKGk/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbVCx2LGk/bzphXSksYi5maXJlV2l0aCh5LFtULGxdKSxnJiYobS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtULHZdKSwtLVMuYWN0aXZlfHxTLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gVH0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFMuZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiBTLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSxTLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oZSxpKXtTW2ldPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBtKHQpJiYocj1yfHxuLG49dCx0PXZvaWQgMCksUy5hamF4KFMuZXh0ZW5kKHt1cmw6ZSx0eXBlOmksZGF0YVR5cGU6cixkYXRhOnQsc3VjY2VzczpufSxTLmlzUGxhaW5PYmplY3QoZSkmJmUpKX19KSxTLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpJiYoZS5jb250ZW50VHlwZT1lLmhlYWRlcnNbdF18fCIiKX0pLFMuX2V2YWxVcmw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBTLmFqYXgoe3VybDplLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oKXt9fSxkYXRhRmlsdGVyOmZ1bmN0aW9uKGUpe1MuZ2xvYmFsRXZhbChlLHQsbil9fSl9LFMuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzWzBdJiYobShlKSYmKGU9ZS5jYWxsKHRoaXNbMF0pKSx0PVMoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJnQuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLHQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aGlsZShlLmZpcnN0RWxlbWVudENoaWxkKWU9ZS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gZX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKG4pe3JldHVybiBtKG4pP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TKHRoaXMpLHQ9ZS5jb250ZW50cygpO3QubGVuZ3RoP3Qud3JhcEFsbChuKTplLmFwcGVuZChuKX0pfSx3cmFwOmZ1bmN0aW9uKHQpe3ZhciBuPW0odCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBBbGwobj90LmNhbGwodGhpcyxlKTp0KX0pfSx1bndyYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucGFyZW50KGUpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtTKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLFMuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hUy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sUy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LFMuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEMuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIF90PXswOjIwMCwxMjIzOjIwNH0senQ9Uy5hamF4U2V0dGluZ3MueGhyKCk7eS5jb3JzPSEhenQmJiJ3aXRoQ3JlZGVudGlhbHMiaW4genQseS5hamF4PXp0PSEhenQsUy5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBvLGE7aWYoeS5jb3JzfHx6dCYmIWkuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWkueGhyKCk7aWYoci5vcGVuKGkudHlwZSxpLnVybCxpLmFzeW5jLGkudXNlcm5hbWUsaS5wYXNzd29yZCksaS54aHJGaWVsZHMpZm9yKG4gaW4gaS54aHJGaWVsZHMpcltuXT1pLnhockZpZWxkc1tuXTtmb3IobiBpbiBpLm1pbWVUeXBlJiZyLm92ZXJyaWRlTWltZVR5cGUmJnIub3ZlcnJpZGVNaW1lVHlwZShpLm1pbWVUeXBlKSxpLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSlyLnNldFJlcXVlc3RIZWFkZXIobixlW25dKTtvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe28mJihvPWE9ci5vbmxvYWQ9ci5vbmVycm9yPXIub25hYm9ydD1yLm9udGltZW91dD1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1lP3IuYWJvcnQoKToiZXJyb3IiPT09ZT8ibnVtYmVyIiE9dHlwZW9mIHIuc3RhdHVzP3QoMCwiZXJyb3IiKTp0KHIuc3RhdHVzLHIuc3RhdHVzVGV4dCk6dChfdFtyLnN0YXR1c118fHIuc3RhdHVzLHIuc3RhdHVzVGV4dCwidGV4dCIhPT0oci5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2Ygci5yZXNwb25zZVRleHQ/e2JpbmFyeTpyLnJlc3BvbnNlfTp7dGV4dDpyLnJlc3BvbnNlVGV4dH0sci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0sci5vbmxvYWQ9bygpLGE9ci5vbmVycm9yPXIub250aW1lb3V0PW8oImVycm9yIiksdm9pZCAwIT09ci5vbmFib3J0P3Iub25hYm9ydD1hOnIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXIucmVhZHlTdGF0ZSYmQy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7byYmYSgpfSl9LG89bygiYWJvcnQiKTt0cnl7ci5zZW5kKGkuaGFzQ29udGVudCYmaS5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihvKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe28mJm8oKX19fSksUy5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxTLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4gUy5nbG9iYWxFdmFsKGUpLGV9fX0pLFMuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSxTLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24obil7dmFyIHIsaTtpZihuLmNyb3NzRG9tYWlufHxuLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsdCl7cj1TKCI8c2NyaXB0PiIpLmF0dHIobi5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6bi5zY3JpcHRDaGFyc2V0LHNyYzpuLnVybH0pLm9uKCJsb2FkIGVycm9yIixpPWZ1bmN0aW9uKGUpe3IucmVtb3ZlKCksaT1udWxsLGUmJnQoImVycm9yIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxFLmhlYWQuYXBwZW5kQ2hpbGQoclswXSl9LGFib3J0OmZ1bmN0aW9uKCl7aSYmaSgpfX19KTt2YXIgVXQsWHQ9W10sVnQ9Lyg9KVw/KD89JnwkKXxcP1w/LztTLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9WHQucG9wKCl8fFMuZXhwYW5kbysiXyIrQ3QuZ3VpZCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksUy5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9ITEhPT1lLmpzb25wJiYoVnQudGVzdChlLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT0oZS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZWdC50ZXN0KGUuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PWUuZGF0YVR5cGVzWzBdKXJldHVybiByPWUuanNvbnBDYWxsYmFjaz1tKGUuanNvbnBDYWxsYmFjayk/ZS5qc29ucENhbGxiYWNrKCk6ZS5qc29ucENhbGxiYWNrLGE/ZVthXT1lW2FdLnJlcGxhY2UoVnQsIiQxIityKTohMSE9PWUuanNvbnAmJihlLnVybCs9KEV0LnRlc3QoZS51cmwpPyImIjoiPyIpK2UuanNvbnArIj0iK3IpLGUuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBvfHxTLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLG9bMF19LGUuZGF0YVR5cGVzWzBdPSJqc29uIixpPUNbcl0sQ1tyXT1mdW5jdGlvbigpe289YXJndW1lbnRzfSxuLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWk/UyhDKS5yZW1vdmVQcm9wKHIpOkNbcl09aSxlW3JdJiYoZS5qc29ucENhbGxiYWNrPXQuanNvbnBDYWxsYmFjayxYdC5wdXNoKHIpKSxvJiZtKGkpJiZpKG9bMF0pLG89aT12b2lkIDB9KSwic2NyaXB0In0pLHkuY3JlYXRlSFRNTERvY3VtZW50PSgoVXQ9RS5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1VdC5jaGlsZE5vZGVzLmxlbmd0aCksUy5wYXJzZUhUTUw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9bXTooImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PSExKSx0fHwoeS5jcmVhdGVIVE1MRG9jdW1lbnQ/KChyPSh0PUUuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPUUubG9jYXRpb24uaHJlZix0LmhlYWQuYXBwZW5kQ2hpbGQocikpOnQ9RSksbz0hbiYmW10sKGk9Ti5leGVjKGUpKT9bdC5jcmVhdGVFbGVtZW50KGlbMV0pXTooaT14ZShbZV0sdCxvKSxvJiZvLmxlbmd0aCYmUyhvKS5yZW1vdmUoKSxTLm1lcmdlKFtdLGkuY2hpbGROb2RlcykpKTt2YXIgcixpLG99LFMuZm4ubG9hZD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9dGhpcyxzPWUuaW5kZXhPZigiICIpO3JldHVybi0xPHMmJihyPXZ0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSxtKHQpPyhuPXQsdD12b2lkIDApOnQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGk9IlBPU1QiKSwwPGEubGVuZ3RoJiZTLmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/UygiPGRpdj4iKS5hcHBlbmQoUy5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSxTLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gUy5ncmVwKFMudGltZXJzLGZ1bmN0aW9uKGUpe3JldHVybiB0PT09ZS5lbGVtfSkubGVuZ3RofSxTLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD1TLmNzcyhlLCJwb3NpdGlvbiIpLGM9UyhlKSxmPXt9OyJzdGF0aWMiPT09bCYmKGUuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIikscz1jLm9mZnNldCgpLG89Uy5jc3MoZSwidG9wIiksdT1TLmNzcyhlLCJsZWZ0IiksKCJhYnNvbHV0ZSI9PT1sfHwiZml4ZWQiPT09bCkmJi0xPChvK3UpLmluZGV4T2YoImF1dG8iKT8oYT0ocj1jLnBvc2l0aW9uKCkpLnRvcCxpPXIubGVmdCk6KGE9cGFyc2VGbG9hdChvKXx8MCxpPXBhcnNlRmxvYXQodSl8fDApLG0odCkmJih0PXQuY2FsbChlLG4sUy5leHRlbmQoe30scykpKSxudWxsIT10LnRvcCYmKGYudG9wPXQudG9wLXMudG9wK2EpLG51bGwhPXQubGVmdCYmKGYubGVmdD10LmxlZnQtcy5sZWZ0K2kpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLGYpOigibnVtYmVyIj09dHlwZW9mIGYudG9wJiYoZi50b3ArPSJweCIpLCJudW1iZXIiPT10eXBlb2YgZi5sZWZ0JiYoZi5sZWZ0Kz0icHgiKSxjLmNzcyhmKSl9fSxTLmZuLmV4dGVuZCh7b2Zmc2V0OmZ1bmN0aW9uKHQpe2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXQ/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oZSl7Uy5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsdCxlKX0pO3ZhciBlLG4scj10aGlzWzBdO3JldHVybiByP3IuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGg/KGU9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldyx7dG9wOmUudG9wK24ucGFnZVlPZmZzZXQsbGVmdDplLmxlZnQrbi5wYWdlWE9mZnNldH0pOnt0b3A6MCxsZWZ0OjB9OnZvaWQgMH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgZSx0LG4scj10aGlzWzBdLGk9e3RvcDowLGxlZnQ6MH07aWYoImZpeGVkIj09PVMuY3NzKHIsInBvc2l0aW9uIikpdD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7dD10aGlzLm9mZnNldCgpLG49ci5vd25lckRvY3VtZW50LGU9ci5vZmZzZXRQYXJlbnR8fG4uZG9jdW1lbnRFbGVtZW50O3doaWxlKGUmJihlPT09bi5ib2R5fHxlPT09bi5kb2N1bWVudEVsZW1lbnQpJiYic3RhdGljIj09PVMuY3NzKGUsInBvc2l0aW9uIikpZT1lLnBhcmVudE5vZGU7ZSYmZSE9PXImJjE9PT1lLm5vZGVUeXBlJiYoKGk9UyhlKS5vZmZzZXQoKSkudG9wKz1TLmNzcyhlLCJib3JkZXJUb3BXaWR0aCIsITApLGkubGVmdCs9Uy5jc3MoZSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpfXJldHVybnt0b3A6dC50b3AtaS50b3AtUy5jc3MociwibWFyZ2luVG9wIiwhMCksbGVmdDp0LmxlZnQtaS5sZWZ0LVMuY3NzKHIsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShlJiYic3RhdGljIj09PVMuY3NzKGUsInBvc2l0aW9uIikpZT1lLm9mZnNldFBhcmVudDtyZXR1cm4gZXx8cmV9KX19KSxTLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24odCxpKXt2YXIgbz0icGFnZVlPZmZzZXQiPT09aTtTLmZuW3RdPWZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByO2lmKHgoZSk/cj1lOjk9PT1lLm5vZGVUeXBlJiYocj1lLmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1uKXJldHVybiByP3JbaV06ZVt0XTtyP3Iuc2Nyb2xsVG8obz9yLnBhZ2VYT2Zmc2V0Om4sbz9uOnIucGFnZVlPZmZzZXQpOmVbdF09bn0sdCxlLGFyZ3VtZW50cy5sZW5ndGgpfX0pLFMuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLG4pe1MuY3NzSG9va3Nbbl09JGUoeS5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGUsdCl7aWYodClyZXR1cm4gdD1CZShlLG4pLE1lLnRlc3QodCk/UyhlKS5wb3NpdGlvbigpW25dKyJweCI6dH0pfSksUy5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24oYSxzKXtTLmVhY2goe3BhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6cywiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKHIsbyl7Uy5mbltvXT1mdW5jdGlvbihlLHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGgmJihyfHwiYm9vbGVhbiIhPXR5cGVvZiBlKSxpPXJ8fCghMD09PWV8fCEwPT09dD8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIHgoZSk/MD09PW8uaW5kZXhPZigib3V0ZXIiKT9lWyJpbm5lciIrYV06ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWUubm9kZVR5cGU/KHI9ZS5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoZS5ib2R5WyJzY3JvbGwiK2FdLHJbInNjcm9sbCIrYV0sZS5ib2R5WyJvZmZzZXQiK2FdLHJbIm9mZnNldCIrYV0sclsiY2xpZW50IithXSkpOnZvaWQgMD09PW4/Uy5jc3MoZSx0LGkpOlMuc3R5bGUoZSx0LG4saSl9LHMsbj9lOnZvaWQgMCxuKX19KX0pLFMuZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGUsdCl7Uy5mblt0XT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vbih0LGUpfX0pLFMuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5vbihlLG51bGwsdCxuKX0sdW5iaW5kOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMub2ZmKGUsbnVsbCx0KX0sZGVsZWdhdGU6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMub24odCxlLG4scil9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihlLCIqKiIpOnRoaXMub2ZmKHQsZXx8IioqIixuKX0saG92ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGUpLm1vdXNlbGVhdmUodHx8ZSl9fSksUy5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsbil7Uy5mbltuXT1mdW5jdGlvbihlLHQpe3JldHVybiAwPGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vbihuLG51bGwsZSx0KTp0aGlzLnRyaWdnZXIobil9fSk7dmFyIEd0PS9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZztTLnByb3h5PWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKG49ZVt0XSx0PWUsZT1uKSxtKGUpKXJldHVybiByPXMuY2FsbChhcmd1bWVudHMsMiksKGk9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0fHx0aGlzLHIuY29uY2F0KHMuY2FsbChhcmd1bWVudHMpKSl9KS5ndWlkPWUuZ3VpZD1lLmd1aWR8fFMuZ3VpZCsrLGl9LFMuaG9sZFJlYWR5PWZ1bmN0aW9uKGUpe2U/Uy5yZWFkeVdhaXQrKzpTLnJlYWR5KCEwKX0sUy5pc0FycmF5PUFycmF5LmlzQXJyYXksUy5wYXJzZUpTT049SlNPTi5wYXJzZSxTLm5vZGVOYW1lPUEsUy5pc0Z1bmN0aW9uPW0sUy5pc1dpbmRvdz14LFMuY2FtZWxDYXNlPVgsUy50eXBlPXcsUy5ub3c9RGF0ZS5ub3csUy5pc051bWVyaWM9ZnVuY3Rpb24oZSl7dmFyIHQ9Uy50eXBlKGUpO3JldHVybigibnVtYmVyIj09PXR8fCJzdHJpbmciPT09dCkmJiFpc05hTihlLXBhcnNlRmxvYXQoZSkpfSxTLnRyaW09ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/IiI6KGUrIiIpLnJlcGxhY2UoR3QsIiIpfSwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gU30pO3ZhciBZdD1DLmpRdWVyeSxRdD1DLiQ7cmV0dXJuIFMubm9Db25mbGljdD1mdW5jdGlvbihlKXtyZXR1cm4gQy4kPT09UyYmKEMuJD1RdCksZSYmQy5qUXVlcnk9PT1TJiYoQy5qUXVlcnk9WXQpLFN9LCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKEMualF1ZXJ5PUMuJD1TKSxTfSk7Cg=="}},"time_used":18,"timings":{"blocked":-1,"dns":4,"connect":1,"send":0,"wait":4,"receive":0,"ssl":9},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/poold.png","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.200Z","timestamp":1785139285200,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /poold.png HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\nserver: cloudflare\r\nlast-modified: Fri, 05 Sep 2025 23:58:04 GMT\r\naccept-ranges: bytes\r\nserver-timing: cfExtPri\r\ncontent-type: image/png\r\ncache-control: max-age=14400\r\ncf-cache-status: REVALIDATED\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2FUakrWHrOC3dWeC5XBmMI1Kg42A9W4lV42PJIkjY8SUXsYnbsjMIcSvWSBPKBjvriWrDhAF%2FTWZo7egXN%2B5Bhmv%2BTfhCoz5Okzy4TUa2hQRMhaGbPYoxo4Jl61MstDk%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=5,i\r\ncf-ray: a21a1db4880d2efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 115870\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"]}],"data":{"size":115870,"size_decoded":116542,"mime_type":"image/png","magic":"PNG image data, 886 x 1184, 8-bit/color RGBA, non-interlaced","md5":"7e7b91c28845dce11a0aec6526fd0542","sha1":"c02ce86eac49da3b1ad09719d54b9169487f56a0","sha256":"b5c588955597489df040a7a840752b7bd729c48092b819d0beacce4e6c89f555","sha512":"d2c262483037df24fdfa3eabddb40b9222c4c1dff815bfaf0b25b49d7bbed27aedb62428296195df4fcd0f9d302bf4565a8a5dbe98bb61ca61e191b234ad7d74","ssdeep":"3072:2Lfh/ONUlz9c8zDX44EMtts12cQPc9LBhJ3nOYE:2reUp9ckDx7wIcNhE","tlshash":"93b3be02a64a68b014fe728531214e8582f37469c590fe65db125cfc7fa52b9ec3a3fd","first_seen":"2026-07-25T05:39:21.877831Z","last_seen":"2026-07-27T08:02:19.591806Z","times_seen":5,"resource_available":false,"data":"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oG7Cbq211kp4Lr/88mCuWbpo4w8sdqyWCYKlllqKg0ECEpCABCTQJASspgQkIAEJNBqBugg7FgphLhmWuhdffLHRGIxIfbDWPfTQQ6nsiRMnBq6q6cIPCUhAAhKQgAQk0AoEbIMEJFBXAnURdossskhqFFaqdOJHIpDzYAsIhV1C4ocEJCABCUhAAhKQQBsRsKnVI1BzYcdebbmwY4uD6lW9+XN69tlnA3dMRN2SSy7Z/A2yBRKQgAQkIAEJSEACEpDAiBCoubBDtIwdOzZwPcwtVPVpaXOUMmvWrFTRhRdeOB39kIAEJCABCUhAAhKQgAQkMFgCNRd2VCjLMg6GCgQefPDBFLvYYoulox91JmBxEpCABCQgAQlIQAISaAECNRd2WOzmm2++YIl/F05pgTfGJkigDQnYZAk0KwEW59p6661j0003DbxnmrUd1lsCEpCABPonUHNhxxw7hB371insenbIU089lSLzeYjpwg8JSEACLUSAL/i22267+MhHPpLChz/84VhxxRVbqIWpKQ33wd/fX//61/Gvf/0rLrnkkjjmmGN61BGxt8MOO6R+yftHD5IemIyQgAQk0BQEai7scgoIu/zc4+sEci5Zprvq61Q8k0DrEuCLrje/+c2x8847x6c//ekUdt1119h+++27hW233TY22mijWGmllYIBejMTQdh95jOfiZNPPrkrTJ48eUhNWmGFFbpxKufGdc5u1VVXDURKlrXn79cNN9wwdtlllxgzZkwKn/vc52Kdddbpxh1hR3yxb2DWLZEXVSRgVhKQgARqR6Buwq52TTBnCUhAAs1DYKGFFoqf/exnceqpp8bxxx+fwh/+8Ic488wzu4Wzzz47LrjggrjyyivjT3/6UxJ5zdPK2tV0s80268apnBvXObvLL788rrnmmjj66KNjlVVWiSxrL4HX0dHzT3yluNr1ljlLQAJDIuBDEhgigZ6/9YeYkY9JQAISkED/BLIsi/nnnz/GjRvXlRgr3vjx46MYFlxwwcBFm61QsLpcdNFFccghh8SECRO6nmvHE6x/RU6VznN2SyyxRLJ4HnbYYXHjjTfGd77znVhqqaXqju3nP/95/Pe//+0KiMx6VOL666+PqVOnBqsvs7XOscceG//73//qUbRlSEACEpBAjQlUyl5hV4mKcRKQgAQajACCDsvT/vvv32A1a47qIABx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CgQUdhXgGCQBCUhAAhKoJwLWVQISkIAEei4BhV3Pvfe2XAISkIAEJCCBnkfAFktAAg1KQGHXoDfWZklAAhKQgAQkIAEJSKB9BExVjwQUdvV416yzBCQgAQlIQAISkIAEJCCBHIEuF3a5sj2VgAQkIAEJSEACEpCABCQggSoQUNhVAaJZVJ2AGUpAAhKQgAQkIAEJSEACbSCgsGsDLKNKQAK1RMC6SEACEpCABCQgAQlkBBR2GQmPEpCABCTQeARskQQkIAEJSKCHEFDY9ZAbbTMlIAEJSEACEihNQF8JSEACjUBAYdcId9E2SEACEpCABCQgAQl0JgHzlkDNE1DY1fwtsoISkIAEJCABCUhAAhKQQO0T6N4aKuy6l7+lS0ACEpCABCQgAQlIQAIS6DABhV2HEXZNBq0tpV+/frHkkkvGEkssEb16Nb+9CyywQCy11FIxySSTtDa7how300wzpRxmnnnmhmyfjZKABCQgAQlIoPEITD/99DFo0KCYdtppq9a4xRZbLFZcccXo27dv1fI0o+4j0Lzn3331aMiSJ5544lRg7bPPPnHqqafGVVddFeedd14ccsghsdZaa8VUU01V9XZPNtlkcdxxx8VJJ50UvXv3bpb/5ptvHn/4wx86pdxmBdX4xcorr5xyWHrppWu8pm2ungkkIAEJSEACDUlgxhlnjO22266k23LLLWOdddaJOeecMyaYYIKGbD8D9wcccEDst99+sc0221SljQMHDowTTjghjj322NQoUJVMzaRbCSjsOgn/NNNMk4o5fiwbbbRRICIYYcFqhqg76KCD0vAFF1ywk2pQ29nyAt51111jttlmq+2KWjsJNBwBGyQBCUig/ghgrdppp52ilNttt92CftVpp52WCp9GnJk0evToGDp0aHD8+OOPq3IDv//++/jf//4X33zzTXz22WdVydNMupeAwq4T+E844YRx+OGHB6Lt888/jzPPPDM23njjdDRp0003jUMPPTTeeeedmGWWWeLcc8+NX/3qV5EkSSfUpHazxPS/9dZbx+STT167lbRmEpCABHoqAdstgRol8MYbbwQzofLuqKOOihtuuCHGjBmTzohC5DFrqkab0K5qjR07Ns4//0TzQVsAABAASURBVPyg70Rb25VJUaIRI0bEXnvtFVg8//WvfxWFelmPBBR2Vb5rrGvbfvvtY5FFFok333wzjj766Lj77rsDgccL59NPP43nn38+DjzwwNSf4rfddtuGnTpA+3QSkIAEJCABCTQege5oEdalV199NfLu6aefjksuuSSOP/74wJrFfgKLLrpod1Sv08ukffQnq1UQVrtvv/22WtmZTzcTUNhV+QbMMcccwVq2H374IQYPHpyazceNGzdeKV999VXccsstQTxePnPNNdd4cfBgMeuUU04Z8847b7rhB/EGDhwYffr0IbiqjjV5U0wxRVrW4osvns5Vn3TSScfbhKW4UNJRJ+rGpi2//OUvY+qppy65EJd4TFPt379/mk12XS5+lvfcc8+drlekDNYR4p9mUOYPfFjDSF0WWmihoMxGnXdfBoHeEpCABCQggR5DgL7WP/7xj/jnP/+ZDpaz9KVU47N+1fzzzx/MHpptttnSTeWSZPyZU0mSBP2irI/C4D39CQbv6V8Qlu+P0M9gyijh5Et/hTSl6oEfYfSzZphhhqAvOPvsswf9ItbTEV7sBgwYkPZnJppoomZBzBSjXuRFAOGsN8z6csyOyteTOJmjDaTNh1Mv/OhHEY8+FdcLL7xw0KdiaRFtJaycIw15zz///AEP2pj1/bJ2NOKU2XI8usq/V1cV1BPKSZIkfUkkSRJ/+ctf4r333qvYbOY1n3HGGXHdddeVnIrJy2G//fZLTe8XXXRRuuHHpZdeGmeffXawPq2aPwh+fL///e/TqaEXXnhhnH766XHZZZelR3Zgyv/g843iZYKF8qyzzgrq9sc//jHdIIYppuSHKM3HZ+rE5Zdf3rRIF8sl12wqM+uss+ajBi+o3XffPRDItJ+8KYOymDZQrk4DC8J3zz33jAsuuCBld84556RtYdMamDYrxAsJSEACEpCABBqCANMVmapJYxA3HPOOvs7ee++d9g3oI9AHo6/D2rx11113vAFpBBYb0tFHYeB+tdVWC/oU9EuYFok/S2wQMfRhWIaD5ZDwrL/Cvgql+iuIHNJShywudaGPx9RSxGS+7pzTH6PPtOqqq3LZ5JZbbrm0D7bLLrsE/ZwTTzwx7QPRlyNv6ozRIUnGF69HHHFEkGe+vwY7/OBC3TfbbLM0P+pGXuRJOtrcVIncCdNg6afCCM7wgAvtQvCut956aZnl6pTLytM2EqhfYdfGhnZFdB5+LEuUxajRyJEjOS3rGF16+OGH0x8jUwryEXn5sIPl2muvnY488fLghXHllVcGPz5+DEceeWTw0smna885o1fMR6csfoy333578GNmagM/WsTYjjvuOJ7ljh/+Mccck+5QxUjMVVddlU49pa5YItdYY43gR8wLL6vXY489FhdffHH83//9X+p11113pddDhgyJL774IvXjT5IkgTjjpUd7H3jggTjllFPikUceiV/84hfBy2u/guhlVIn4maP+vGw23HDDdNTr6quvDurIC4qXCbs/Ifyy+B4lIAEJSEACEmgcAliTaM13333HocnRr2KAGFGBxeimm25K90B46aWX0hlK9CkIa0rw0wn9CuIzI4n1aPSNmPL54IMPptazHXbYId1TgT4Ln1G6/vrrg3L+/Oc/B32offfdN51x9VN26YH+4sEHHxwMXmMVu//++9MdzRFOo0aNiuWXXz7Yj6HYKkY6BvXpt6UZ/fSHvhB1pC+GEKWfg5BC4D366KOp2Pvtb38bv/71r39K8fOBfiR5/uzz4xl+5Ln66qsHwo5204dioJ2poNSRfih8fkzx418G/KkD/VT6b/CgL4gYRHTCZrrppkutpMXt+zEH/3aEgMKuI/SK0vLDyh7wd999tyi09Zc86Ix08IJ44YUXAosY0zafffbZ9JMJ/DjJnznkW2yxxXiCq/Ul/RiTHSrJi1EuXkyMxtx3332pKENMsj6QUSKmHfyY4se/jBhh5v/Pf/6TLr5FdD711FNx6623Bi/Ihx56KDC/I/B+TBHxzDPPxD333BMfffRR6vXiiy+m17zUKCf1LPxZZZVVgvzffvvtYHSNFwEvUV5SXP/3v/9NN6NZZpllCrF//j/XbFqDSMRieMUVV8STTz4Zd955Z/ASHT58eGQv7iRJfk7omQQkIAEJSEACdU0A8UYfgIF1+kn5xmCRQ2g999xzab+K2UkMLtPP4RNR7DaJgEGM5NNxTt8Oax2zjLBCMUhNv4TZSVjeGIinf0Hfh41N7r333jj55JPT/g3CiSmM5JM5BqgHDhwYiEo+YcCA+OOPP572VRhoZzopG+vNN998WZJWHWk7+zjsscce6XIfBsP53Bb50z6EJIPyrcqsEInplzCh3YhOROKNN96Y7hNB349PUBT3DfmkFH0/+nn7779/uvYRUUg/DJH717/+NfL9wkIx/r+KBBR2VYSZJElkP5iOLETF/M6Pgq1nGRn5+uuvm9USUYNp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lBJ29dYG6ysBCUhAAhKQgAQkIAEJSKBHE1DYddHt7927d0w55ZSp47yziuWjj5NPPnlMPfXU0adPn84qJiJqO+sJJpggpplmmphqqqmC89qurbWTgAQkIAEJSKAzCQwYMCCmm266mHDCCaMz/9HHoyz6HkmSdGZRNZt3kiQx6aSTxvTTT58e6ZvWbGUbrGK9Gqw9NdecySabLA488MD4+9//Hv/85z9T98orr8Tvf//7IKxaFeZFxQcg//KXv8T//d//xRtvvBGvv/56HHPMMam46Ug5CKRdd9017rvvvvj000/juuuuC67zbrvttou11lorZppppkiS8i8y4uTTteV85513jllmmaVsU5IkiTXXXDNuv/32+PDDD+Mf//hHvPnmm+n54MGDY6GFFqpYt7IZG9B+AqaUgAQkIAEJdBOBJEli5ZVXjocffjjYdv+1115L+0hDhgyJ+eabr6p9giWXXDLOPffctBzK+ve//x2PPfZY8N02+lEdQbDGGmvEXnvtFfQf33rrrTj00EOb9cN22WWX2GyzzWLZZZetKFwnmWSSZuna0gcj7gYbbBD9+/cv25SBAwfGYYcdlvY/33nnnXj11VeDI5872GGHHVLjRtnEBlSFgMKuKhjHzwRr2YYbbhgPPvhgHHLIITHttNM2RWLEiB/lQw89FOuvv34wutMU2MYT0q622mpx//33x0knnRQzzjhjUw5YCHkR8GLZeuut223B44d68sknxxJLLJHmvfrqqwfXeXfGGWfE1VdfHS+//HLccccdsdFGG5V8Ya633nrjpc3nU+n8qKOOKinskiRJX2i8uK+55ppYbrnl0nrm/9B+eFNHXr6OHuXpeC6B7iVg6RKQgASqTWCuueaK66+/PugXLLLIIk3ZI0zWWWedtN90wgknBGKnKbAdJ4suumhaxr333htbbLFFk7BKkiQWWGCBOO2004L+x8EHH9zuspZffvl0oP4Xv/hF0CfDOJDvL51yyilx/vnnx5133pn2w/74xz/G7LPPPl5rsKLl07X1fKeddop+/fqNly/Clbz+9re/xQEHHJDOmMpHYlCeOtEfhQOzyvLhnlePQK/qZWVOeQKMrpx++ukxxxxzNHkXf5SRH90FF1wQ6667bkkR1JSwwgliC1H1y1/+sinWmDFjms45wRTOi2XbbbeNzhY05M+I0TnnnJO+4Ci/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Nhxh+iDXrK07//zzOW1y/DgRKtdff33gOG8KLJxQDj8oLISFy3S+9lFHHRXzzjsvl6nD1M9C3myaJqKTnSrTwHb+oV5M7UTAZY5pCLQTCyRzyfPzuZn2+d///redpVVOhkCFW/ZSgCsCmXV9k08+ebppC4IP/9133z1daMwHSLNc2bmzeK1eFuZRAhKQgAQak4CtamwCWJKygW/6LAzorrXWWsE5Lceateeee8amm27KZSpMrrzyykCopB4//WEaJ4Ph11xzTdBfQOT9FBQIyHvvvbdp6Q1TEc8777xYdtllg3PiUR79vLPOOquZ0LrxxhujI/0irGKIxawPxpHPTFE/+jqXX355TDfddFQh+I5dtr4v9ajyn5tuuin+/ve/N+W68847BxwQeVl/a+DAgekmMhdddFHsuuuuTXFZUnTbbbc1MWwK8KRDBBR2HcJXOjEbqAwZMiQywbHCCivEgw8+GIg53N13353++EnNSAcvjWLLEYtQ+YHw48VyhxWMlxFpMofVbvDgwU0vo8UWWywefvjhVMCcfvrpgUWLXZKIT134AeWnKODfVpckSbo2jUWzmWM0iPnj/MARd0ny44gVI1IIL16AbS2nNfERtzfffHPcc8896cuLNAjMU045JWjnU089Fa+88kow15wpE9kiaayIxGHrYfIgnU4CEpCABCQggfonQH/njDPOiPzA91VXXZUOkp988snBJm+stWfgl9bST6BfxnnmkiQJPhlAXwzrHgPkzPrJwjm++OKLwbRC+hRc0we744470v4H/SE+d4BFar311msSe4gg6obFjzTtcVgPyTvrg3Gkz/PMM8/EcccdF/SDyJe+F9NEH3/8cS47xfF9PowXLA/KClhjjTXi/vvvD2ZFPfroo4E1lH4aQhmW9LsI23777YN+bJbOY3UIKOyqw3G8XBjdYZtZhBuBWJC22mqrwGUCg9EhfhBY0Yp/5Kyfy4s9fjRZXuSXOaYcIFow7ePXv3//wGLGD4bpAfixSxQjKOzExDl+neloCyNEO+64YyqqOrMsFkozBeK0006L7OVKeYxoYb0s3pETqyWWzc4UnJSvk4AEJCABCUigewgMHTo0WE+fLdegFggLLEYs2UiSHwegET277LJLfPTRR0Rp5t55552ma/pfDNo3eRRO6OuceuqpgVjEMlbwSv/PYDyD3MwWSj1++sPA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z1y3FBB022yzTVx00UVx++23x0MPPRSPP/54PPDAA7HtttvWbbsateIMLBx88MGx1lprpU3EcnfSSScFQjz18I8EJCABCdQBAasoAQm0l4DCrr3kKqQ7/vjj48ILL4wPPvggPv3009Q9+uijqR/+uAsuuCCOPvro2G677WK++eZrCKvClFNOGUsssUSTW2yxxVJrVwVUJYMmnHDCOOOMM5rx4rpk5E7yRBScc84YcMtMAAAQAElEQVQ5ceaZZwaCddFFF4055pgjZpxxxphrrrliiimm6KSSzba9BHhu5plnnmbJmZLJPWvm6YUEJCABCUhAAvVNwNqXJKCwK4mlY54ItU022SToaGY5LbTQQoFf5jbddNPYe++9UwHz8MMPx2233Rabb755OMUv0umbiKmMFcell146Q9klR8ofNGjQeGX997//jTfeeCOGDx8+Xpge1SfA72T77bePzG222WZlC/n+++/j1VdfbRb+zjvvxPvvv9/MzwsJSEACEpCABCTQiAQUds3vardcIeaWW2651Dp01FFHNYT1rltAVqnQ3r17x29+85vgmGX5zTffxO9///tYYYUV0nVbl112WRbksRMJ7L///vGHP/yhyR1wwAFlSxs1alScdtppMWTIkDTOZ599FqT/7rvv0mv/SEACEpCABCQggUYmoLDrorv75Zdfxrvvvpu6oUOHxrfffjteyazp2m233WKPPfYIpgKOF0GPLiHAhi/FUy1fe+21dJ3dV199Fd9++2388MMPXVKXnl5IkiSpwEZk45IkiUr/uD+ss5t99tljwQUXjOeeey7GjRtXKYlhEpCABCQgAQlIoCEIKOy66DYyzZKpfbgNNtggVltttdh1113jrbfeGq8GO+ywQ7qWa7wAPbqEQJIk402J/frrr4Opfl1SAQvpEAGEHBbW0aNHdyifDic2AwlIQAISkIAEJNCFBHp1YVk9uqh///vf8b///S91rNN6++2344477ohVVlklHnnkkWZWhdlmmy2WX375irz69+8fc845Z6y++uqx1VZbBZa+LbbYIlZdddUgfVstfsRnownKZV0TopOdH9lhkDWDfMagYoW6ITBJkph11llj/vnnb3JcY3HDTT311LHiiiumG9TsvPPOqZgmLuxKVZe0hM8777wxYMCAZlFoPxwIxxVb9PKRmVrLRiv5e7Plllum5WNJ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IMlNN93ULAkbqvANO34D+QDu12qrrRaI1rw/zz6DMnk/zyUgAQlIQAISkEB3E1DYdfcdaEX5WAj4Jlg+KtY6PqDM9DY6poSxOcVWW22VrtXjOnMIMCx22TVHrrEacp45Plq93377RdZxpmO74oorBp9niNw/1hfxfa96FyO5JrX7lGl59913X3DMMkEgnHDCCcH028xyx2YbrKNEQGTxOPL5Az5vwXk9u2IrGO3m2WSgIWvX3HPPHXzbLXu+Mv9Kx+JnlPxYi4rVj91I4VopfakwhFnxx+rJc7fddks/zUAann2mzBY/+wjWiy66KBXkxOsaZykSkIAEJCABCUigZQIKu5YZ1UQMpuudccYZzT5JwLq4Sy+9NNhlkY8eYzk688wzo3gHzUsuuSSKpwuy3u7ggw8OvreVNZDdAg888MBg+/d777032FnzT3/6U7B+KouDmLv11lvjueeey7x6/JEt/f/4xz82uzdMh0UAcG9uu+22dMv/s88+O9j0Jg/siiuuiOJdUPPh9XLO84D1Ml/f888/P6699to48cQT45577gkGE37zm980e+by8Uudv/HGG828EVw8o3wygo2GVl555Wbhrbn44osvAuHNAEUWHyHK1NGhQ4emdSXvq6++OpiinMVBvF911VVR6gPrWRyPEug2AhYsAQlIQAI9noDCrk4eAQQVwuC6665rJiCoPrswMvWveHc/vmF22WWXxQ033NDMokQaHJ1jrH6cF7sll1wyECfF/g8//HAMHjy4ZH7FcXvSNRZMhECxuEHIMZW1eA0XgvrKK68M0iAY6p3Va6+9FgjY4nawiQ+WsKWWWiq1cjFQwKcQiuOVu37ggQcCq2a58Pb6Y7U766yzSianrty34kCs5hdeeGGxt9cSkIAE6oaAFZWABBqbgMKuju4v08AOPfTQYFt5rA3lBAFTNxEOhx12WBx++OHBhhFR4h8ihI7quuuum3aei9czZUkoh3V+WAe32WabeO+997Igjz8R4H7AOrMEweynoGYH7g1xjzzyyOBellqH1ixBnVwwiHDUUUcFnzMo9Rzh9+CDD6bTelv6bly+yVjsDjrooHj//feD5xV+DHIQJzty3lbHbwkLONNjsWaTb6k8uI/ExRK+6667hmvrSlHSTwISkIAEGoiATaljAgq7Trh5bIbB1Ly8Q2hVoyg6t1iHlllmmTjg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BCQgAQlIoJEJNH7bFHaNf4/b3cJevXoFrt0ZmFACEpCABCQgAQlIQAIS6BICCrsqYM6ymHDCCWPaaadts6tF8TTZZJPFnnvumbrJJ588a2K7jqSfddZZgzzblYGJJCCBdhHgfbTccsvFxhtvHKuuumrMMccckSRJu/LKEvGem3/++YN8l19++VhooYVikkkmyYLbdOzXr1/MNddcscwyy8RMM83UzE0//fRBeLkMeW8Wp2nN9UQTTVQuy5hxxhnj17/+dQwaNCg22mijoH3Uo2wCAyQgAQlIQAI1RKBXDdWl7qtCB+eqq66KtrghQ4YEHaVaazwdqqWWWiqWXnrpmGCCCdpdvd69e8cpp5wSF198cey8887tzqcBEtoECXQpAYTc3XffHTfeeGOcd9556Xvpsccei4MPPrjd75x55pknHnzwwXjggQfSfMn73nvvjUceeSRWWWWVNovGWWaZJR599NG4+eab45lnnmnmnnvuufjzn/8cJ5xwQsw777zjsevfv3+z+MXpy10vuOCC4+U15ZRTxlFHHZWWd9NNN8WFF14Y559/ftpG6kHYgAEDxkunhwQkIAEJSKCWCCjsqng3vvvuu/jHP/7RzL355psxbty4VBz9+9//bhZG3DfeeCPGjh3b7lpgDaPjc+aZZwadpHZn1EkJ55xzzqAziDhcf/31Y7rppuukkhor25VXXjkuvfTS2HLLLRurYbamBQIdD2YwBWvTZZddllrSEF4nnXRSXHfddfHhhx/G73//+zj66KPbLO7WW2+9uO2221KrGmLn9ttvj1tuuSWefvrp4D2EyNt9992D8lvbCqxuDGzxfnj++ecj7/7+97+nQpE8r7nmmlh99dWbTQ3nvfryyy9HsaON5Mn7+K9//et44cOHD29WPSyGV199deyzzz7x1VdfpUKTtiA2aRvx995777j++utj5plnbpbWCwlIQAISkEAtEVDYVfFu/POf/0xHfRndzdzxxx8fn3zySSrurrzyyvHCiffDDz+0uxZJkqQdLURdWzpU7S6wDQmTJEmnMiVJEp9++mmaEitgeuKfigTomNLhrDRtrGIGBvZYAogPrHJjxoxJrXN77bVXarE75JBDYqeddophw4bFdtttF7/5zW9azWiGGWaIs88+O/oXrGRM0d5xxx1jv/32i/333z922WWXOPLII9N33G9/+9uY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BCQgAQm0loDxJCABCUig/QQUdu1nZ0oJSEACEpCABCQgga4lYGkSkEAZAgq7MmD0loAEJCABCUhAAhKQgATqkUDPrLPCrmfed1stAQlIQAISkIAEJCABCTQQAYVdG2+m0SUgAQlIQAISkIAEJCABCdQaAYVdjd2R2WefPX75y1/GJJNMUmM1szptIGBUCUhAAhKQgAQkIAEJdCkBhV0n4e7fv38ssMACseuuu8app54al156aRx//PGxySabxAwzzBBJkpQsec8994zzzz8/FlxwwZLhenYvgXnmmSd22mmn2GabbWKllVZq5pZYYomYccYZg3ufJKXvb/fW3tJri0Dn1mbCCSeMVVZZJf7whz/EXXfdFRdeeGFsu+22Mfnkk5d9/7RUo4kmmihWXXXV+OMf/xj33Xdf+q4izymmmKKlpGmZk002Way//vpx2mmnxe233x5nnHFGbL311jHrrLNGr16V/3PUu3fvmHvuueOggw6K6667Lm644YY45JBDYt55540+ffq0WD5lb7zxxnH22WenPM4666y0Lq0ZRKNus802Wxx44IFx7bXXxs033xxHHHFEOgjXr1+/FsvmnbDCCivESSedFPfcc09ccsklsfPOOwfcyLtSBoTz34y99947hgwZEnfffXccd9xxscgii8QEE0xQKWkaRpxFF100/e8Paa+88srgvzPTTTddi8zTDIr+TDPNNLHpppvGMcccExtuuGEMGjSoya211lrpPeIZ69u3b1HKiIknnjjWWWedpviDcmkrnVNmcWZJkqTP8gYbbBAnn3xy3HbbbSkb7uu6664bU001VfrMFafzWgISkEAjE6j8X9JGbnknto3/CPEffToQdFqWXnrpmGWWWYL/sO+1115x5plnBv8BbE2HIPxXUwS4h9ttt13ssssuaceGzk3m6OzSYTv66KNjoYUWqql6W5meRWDKKaeMc889N6644orYfvvtY/rpp4/11lsvfffccsstseyyy7a508ugBYNO11xzTeywww4xcODAoAN9+umnpyILgVWOcpIkwcAHYuyiiy6KHXfcMeaaa650gGTw4MGpyCNPxGipPBAJCCEE1cEHHxwIFQa/EFr47bPPPumASqm0+CEIEWTnnHNObLbZZjHttNOmZSN28SeceKVckiSx0UYbxa233poKySWXXDKt+3777Zf6HXnkkalg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8MhHPrKc9axnnVjOel9A7Ag+wl/+5V+u9+1SfhAIAvsQgVprOdvZzlae/exnl1e/+tVdmKRIMgccfPDB5eijjy7Pfe5zy93udrdyk5vcpDzkIQ8p7373u8sznvGMzhI3rfosaWc4wxnK1772tfKLX/xid1Jk8YY3vGF5xzveURCnu9/97uWWt7xlecADHlCOPPLI8qQnPamc/OQnn0rwaq3ljGc8Y0cYP/KRj+wuG0lC9JRtPr3kJS/ZkUXlv/GNb+wI1/777787/fDkn/7pn8oTn/jEjoze+MY3LuZuxFNe5WnTME/7fbrTna485znPKS996Us7kiqvujzhCU8or3vd6ybO7SyPym59Mul4pzvdqd0qxyAQBMYRSGwQCAIjCITYjYAyj6gvfelLxUv+sY99bBkLj3/848vnP//5edxqVWX89Kc/7TTzt7nNbcpb3/rWVZWRTEEgCGw+BP70T/+0XPe61+1I2o4dO6ZWEKljPTMfIX4sdZe+9KWLfNe73vXKhz/84YIwPe95zyuI0KTCTnnKU3bk7Otf/3r59a9/vTvZta997XLYYYd1eR/60IeWy172suWCF7xguc51rlPe9a53lctd7nLlqU99auHGuTvT4KTWWk5xilN0sZ/97Ge7Y621XPnKVy4PetCDCsXUbW9723KJS1yiXOxiFys7d+4s3/nOdzoMHrlLgcZa2GXq/fnrv/7rjlQecsghXT0ckdvLX/7yXZuvetWrlnvc4x5dm3rZulNElHVSO1jqtEFe90deT3va03aEESZdht4fCjXhe9/7XrnXve5V7nKXu4wG5fay5TQIBIEgEARWhcD2yxRit059/s1vfrO87GUv61yDuAcNA03vl7/85XW6+2zFEn4++clPlt/85jezZUiqIBAENjUC1s0iO/e+973LN77xjXLNa16zmIsmVfqAAw4oN73pTcsvf/nLgoRRRr33ve/tlE6sSVe60pXKO9/5zvJf//VfnZvhWDm11nKWs5ylI0Esar/97W+7ZIjiLW5xi8Jl8da3vnVB7N7znveUz3zmM51ViyXvta99bWHpu+4uItplGvmDhEnzgQ98oHz729/uUiCZN7vZzbq5C6ljmUT6tFWZiJpzpBQB6zKd+KfW2rXlPOc5T1EfGLWyWSjh8IUvfKFo+8UvfvETc+05IHLweOUrX9lZN+HlXspA1F78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"}},"time_used":349,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":346,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/633f76d509c5ff67d995fcbd_Transfer-p-500.png","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.203Z","timestamp":1785139285203,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/633f76d509c5ff67d995fcbd_Transfer-p-500.png HTTP/1.1\r\nHost: cdn.prod.website-files.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://mobichain.co/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: image/png\r\ncontent-length: 39927\r\nx-amz-id-2: UhcZ8uPHzkEiO0WPdl2NGUlj9JPjWk3AwZ7Ypfx3LnyqnRE+qAioyu3xUCWbLjYs7zSgrRC5J4H3+5H6GGtTXEuGPdfz6fVS\r\nx-amz-request-id: KKND05HX4D8PZNST\r\nlast-modified: Fri, 07 Oct 2022 00:46:17 GMT\r\netag: \"43782513c29cb7981b0693d221a0f68b\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: iRn6ZNrJHj5VY93hPgK7brRMBYvZBxgW\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 12687354\r\ncf-cache-status: HIT\r\naccess-control-allow-origin: *\r\ncf-ray: a21a1db49d76a0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":39927,"size_decoded":40614,"mime_type":"image/png","magic":"PNG image data, 500 x 581, 8-bit colormap, non-interlaced","md5":"43782513c29cb7981b0693d221a0f68b","sha1":"bbffce26fecd77459a3e1bdc1ab1e35b3a2fd55c","sha256":"6045462f877f5a19541cdbc25a9042828286971ca4a68f8ac58ea4114490af0f","sha512":"c50eb18e222198ee4de1f0d06d0130906e304b2693fefaf6bceeca8faec72ef2182f21fac1a078b068fb4e29ddcc9044c1271371f749c3c96b1625c703d82814","ssdeep":"768:XB9py/fWhN2koMkmDvczJMzUDhZo3A7Cbo5AFByxJqfojZlNo3lz87n5h7bcGPT:xa3qF0mwDhZo3At5AFBy3UojZli87n59","tlshash":"e303f149e2ec7fbc52f1e11490534b51a8c90d9ea319c29468f8378bd736b44c6e7f42","first_seen":"2026-07-25T05:39:21.889314Z","last_seen":"2026-07-27T08:02:19.604275Z","times_seen":5,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAfQAAAJFCAMAAAAcdvX1AAADAFBMVEVMaXH///8QEBAVFRUPDw8gICD29vYgICAVFRUPDw8gICA0NDQgICAgICAfHx8gICAfHx8fHx8gICAfHx8YGBggICAgICAgICAWFhYfHx8fHx////8gICAgICAAAAAREREeHh4fHx8gICAfHx8gICAfHx8gICAfHx8gICAgICAfHx8fHx8AAAD+/v4gICAfHx8fHx8gICAfHx8AAAAPDw8eHh4fHx8gICAgICAfHx8fHx8gICAfHx8fHx8SEhIgICAfHx8gICAgICAgICAfHx8gICAgICAgICAfHx8fHx8gICATExMfHx8gICAgICAgICAgICAgICD///////8BAQEgICD///8fHx8CAgL///8CAgIgICAhISEgICAgICAmJiYyMjIgICAfHx8DAwMgICAgICAfHx8gICAhISEBAQEhISEgICAfHx+6urofHx8AAAAgICAfHx8qKiogICAkJCQvLy/g4OD///8hISG9vb3///////////////////////////////////////////////+9vb3///////+8vLz///////8fHx////////////8qKiowMDC8vLwyMjK8vLy8vLz///+8vLwwMDC8vLy8vLwkJCQyMjK8vLy8vLwxMTEpKSm8vLy8vLy8vLwpKSm8vLy8vLwoKCguLi4uLi4vLy+8vLyoqKg1NTX///8hISEwMDAkJCQ0NDQxMTEuLi7///8lJSUjIyMrKyssLCwtLS0zMzNJSUkgICAiIiI2NjYqKiq8vLxISEcoKCg7OztCQkIWFBwGCyABAQKRkZFeXl0wIiElGx86KCOIiIhVVVSYmJhpaWlmQy9zTDWfn55DPTpYOiqDc2SLf216enqlpaU/My7Dw8NPTk5zc3Pw2tNKMSWFXkjLy8uAgICsrKzgtqTi4uKAVDnrzcF2Y1mztLTOmYJVRDvY2NiQalV0V0gdHCPmwrOVintlVEvr6+zDjHTXoY+ieWX4+PiTXUG3gGfx8fLZrJiha1Czclmsl45ySsU9AAAArXRSTlMA/QIZCpoB/gcEpfz9jYWsp12WsA84imIUa7UD3XImESHWVMRMKYgwSFAlgjL78e1uPH4uFhy/kqCdfNHOow15WLhAyOV34q9nM74Sjtr2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"}},"time_used":12,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":10,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/63349e5c60fcc739f15b9d16_ClarityCity-Medium.otf","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.472Z","timestamp":1785139285472,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/63349e5c60fcc739f15b9d16_ClarityCity-Medium.otf HTTP/1.1\r\nHost: cdn.prod.website-files.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mobichain.co/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: application/x-font-otf\r\ncontent-length: 23380\r\nx-amz-id-2: i8LAbno9/rbo4VgZJU5BLQajfGfLWuR2pbCuTgqjcrf/s91Z3W0KGW238sQhvWq2IMJ5+mJ5FrQ=\r\nx-amz-request-id: BJ25E2HJXAPBB7KD\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, HEAD\r\naccess-control-max-age: 3000\r\nvary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method\r\nlast-modified: Wed, 28 Sep 2022 19:19:58 GMT\r\netag: \"6e63e86cc9a9ada256563b81f9660a2b\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: uPy.q7mTNZrEYndx8QIArDuDr.hdT6Z.\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 12465480\r\ncf-cache-status: HIT\r\ncf-ray: a21a1db63b2aa0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":23380,"size_decoded":24211,"mime_type":"application/x-font-otf","magic":"OpenType font data","md5":"6e63e86cc9a9ada256563b81f9660a2b","sha1":"fc95b5d0bde67838a44a272adbaef6a7dd58ce8a","sha256":"39c72918bfe84c0973ddd8b6fbbcbf8da4d530f74185bd81c35a1f3693605d7c","sha512":"ba5426c60fdbca5cb9591137e2dcadb065445d285295cd117ec34a86c1fc17c642eae001d15a897c898a156016e4b25f43afda11309960fdc181183512cf1253","ssdeep":"384:a7IxCMZj2leaSuay8zU+axdRLzpdgUSi0S7j74Rjsaq59A:ASSlerFy8zU+63TTy6Q5q59A","tlshash":"6aa29d04c62ba7c8ebc78f3961bd6b8c881ffa285c2c6f5fcd05954c2986399571c51b","first_seen":"2024-08-20T08:35:49.675277Z","last_seen":"2026-07-27T08:02:19.584778Z","times_seen":29,"resource_available":false,"data":"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AEkAtABLALYASgC1AE0AuABPALoATgC5AFIAvgBRAL0AWQDFAFsAxwBYAMQAWgDGAF8AywBlANEAZgBpANUAawDXAGoA1gEzATEBMAE1AToBOQE7ATcAYQDNAF4AygBgAMwAHACGACAAigBnANMBEQEQARUBEgEUAQYBBwEFARMBJQAAAAMAAAAAAAD/hQAUAAAAAAAAAAAAAAAAAAAAAAAAAAABAAQCAAEBARNDbGFyaXR5Q2l0eS1NZWRpdW0AAQEBLvgPAPiIAfiJAvgXBPsZDAOfDAQc/0Uc/ugcBJAcA8kFHA0eDxwPlRG5HD22EgBvAgABAAcADgAVABsAIQAnAC4ANQA8AEIASQBPAFUAXwBmAG0AdwB+AIQAigCRAJgAngCkAKsAuAC+AMYAzADTANkA4ADmAPMA+gEDAQ4BFQEaASABJgExATcBQQFIAU8BVQFbAWEBZwFtAXMBeQGAAYoBkQGYAZ8BpgGsAbMBugHBAcgBzgHVAdsB4QHnAe4B+wICAggCDgIUAhwCIwIpAi4COwJCAkgCTwJaAmMCaQJvAnQCfgKEAo8CmQKiAq0CtwLGAtAC3QLoAvIC+QMAAwcDDgMVAxwDIAMnAy4DTwNiQWJyZXZlQW1hY3JvbkFvZ29uZWtDYWN1dGVDY2Fyb25FY2Fyb25FbWFjcm9uRW9nb25la3VuaTFFQkNHYnJldmV1bmkwMTIyRGNhcm9uRGNyb2F0RWRvdGFjY2VudHVuaTFFQjhJbWFjcm9uSWRvdGFjY2VudElvZ29uZWtOYWN1dGVOY2Fyb251bmkwMTQ1dW5pMDEzNkxhY3V0ZUxjYXJvbk9tYWNyb25PaHVuZ2FydW1sYXV0UmFjdXRlU2NlZGlsbGFSY2Fyb251bmkwMTU2U2FjdXRldW5pMDE2MlRjYXJvblVodW5nYXJ1bWxhdXRVbWFjcm9uV2RpZXJlc2lzV2NpcmN1bWZsZXhVb2dvbmVrVXJpbmdXYWN1dGVXZ3JhdmVZY2lyY3VtZmxleFphY3V0ZVpkb3RhY2NlbnRhbWFjcm9uYW9nb25la1lncmF2ZWFicmV2ZWNjYXJvbmNhY3V0ZWRjcm9hdGVjYXJvbmRjYXJvbnVuaTFFQjllZG90YWNjZW50ZW9nb25la2VtYWNyb251bmkxRUJEdW5pMDEyM2dicmV2ZWlvZ29u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"}},"time_used":7,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/.wf_graphql/csrf","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.919Z","timestamp":1785139285919,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"POST /.wf_graphql/csrf HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\r\nX-Requested-With: XMLHttpRequest\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nContent-Length: 0\r\n\r\n","headers":null,"cookies":null,"method":"POST"},"response":{"raw":"HTTP/3 404 \r\ndate: Mon, 27 Jul 2026 08:01:26 GMT\r\nserver: cloudflare\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=35X7DpSqa%2FihlCNK3c63hY%2FEUAhfCTdZ62%2FE2q4Vf9k%2BmYI6B6OE2fPl67fVh7gxAAoHp5e790r2AopB81hH9wSkFPQaZ%2BUmwPs7vwPqMW7rdB7JyUq7nsZHTKDFIPw%3D\"}]}\r\ncontent-type: text/html; charset=iso-8859-1\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncontent-encoding: zstd\r\npriority: u=4,i=?0\r\ncf-ray: a21a1db908a02efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"404","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"]}],"data":{"size":355,"size_decoded":864,"mime_type":"text/html; charset=iso-8859-1","magic":"HTML document, ASCII text","md5":"4525b2d648f7c457a689fd96421783a5","sha1":"11bfe30ce44585a15a38e86bc094224ddfe2c08e","sha256":"cc0b4e42510d49c6decd464123ecf3b14ae9b47f9b4ed2ee64893e2d6520a264","sha512":"94e3e8246cf38ff7740e51aa115c8c455b14f78e672c2686b782c0ce30b6fa2dbd91a78b29b3964d9c0414aabd4b9391fd5db326665e25b4b8e73dae60ffe979","ssdeep":"","tlshash":"71e0c04f4057b3474011a2907dc01291e505236b38a152f93ac09467500897dc4aa2dd","first_seen":"2025-12-09T03:51:58.5943Z","last_seen":"2026-08-01T09:06:19.182626Z","times_seen":53336,"resource_available":true,"data":"PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPjxoZWFkPgo8dGl0bGU+NDA0IE5vdCBGb3VuZDwvdGl0bGU+CjwvaGVhZD48Ym9keT4KPGgxPk5vdCBGb3VuZDwvaDE+CjxwPlRoZSByZXF1ZXN0ZWQgVVJMIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuPC9wPgo8cD5BZGRpdGlvbmFsbHksIGEgNDA0IE5vdCBGb3VuZAplcnJvciB3YXMgZW5jb3VudGVyZWQgd2hpbGUgdHJ5aW5nIHRvIHVzZSBhbiBFcnJvckRvY3VtZW50IHRvIGhhbmRsZSB0aGUgcmVxdWVzdC48L3A+CjwvYm9keT48L2h0bWw+Cg=="}},"time_used":385,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":385,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"bootstrap.smartsuppchat.com/widget/c8ed3863eca292a2a137c317407381ff56e0d80c.json","fqdn":"bootstrap.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"3.69.194.231","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:29.180Z","timestamp":1785139289180,"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":"*.smartsuppchat.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Tue, 02 Dec 2025 00:00:00 GMT","end":"Wed, 30 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"DC:47:26:FC:2D:4B:14:19:23:BC:B7:70:14:DA:60:A6:21:B0:1E:81","sha256":"0D:5E:FD:70:25:9E:DE:DD:47:CF:0C:58:1C:08:A2:A1:05:AC:A6:7E:0C:43:6F:50:E7:49:E0:A1:60:D0:0E:0F"}}},"request":{"raw":"GET /widget/c8ed3863eca292a2a137c317407381ff56e0d80c.json HTTP/1.1\r\nHost: bootstrap.smartsuppchat.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\nContent-Type: text/plain\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mobichain.co/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 08:01:29 GMT\r\ncontent-type: application/json; charset=utf-8\r\nx-version: 6cb79abf75047496934c7756b55ec6f26e7d2373\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: private, max-age=0, must-revalidate\r\nx-hit: redis\r\netag: \"4ed-4sPPY8+eTi2qJjlpJTkOpt5CqKU\"\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":1261,"size_decoded":904,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"a0a0274e2ef7be40bc0412c4a26a63b8","sha1":"e2c3cf63cf9e4e2daa26396925390ea6de42a8a5","sha256":"afc5a4ed9a79b38cb55916a0d21e7fe665d49de42d26779f743d189515d92ed3","sha512":"04d637bee01cd535158f78de90e9b0c9cabaf909decaa3199d03541904c1c8fa78885a62df8c10ab5e305e1603ac9ddc885fefbbb4d3b5e4c8ffd08cddc917bf","ssdeep":"","tlshash":"4821976d4a5822fd9245c6d6c1047f036bbcecb3b1403e7dea0d5a0d70db2e6113586b","first_seen":"2026-07-25T05:39:21.893533Z","last_seen":"2026-07-27T08:02:19.579315Z","times_seen":5,"resource_available":false,"data":"eyJhaVJhdGluZ0VuYWJsZWQiOnRydWUsImFsbG93ZWREb21haW5zIjpbXSwiYnV0dG9uU3R5bGUiOiJncmVldGluZyIsImNvbG9yIjoiIzAwMDAwMCIsImNvbG9yMiI6bnVsbCwiY29sb3JHcmFkaWVudCI6dHJ1ZSwiY29uc2VudE1vZGVFbmFibGVkIjpmYWxzZSwiY3Jvc3NEb21haW5FbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdFbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdMaW5rIjoiIiwiY3VzdG9tQnJhbmRpbmdUZXh0IjoiIiwiZW1haWxDb250cm9sIjp0cnVlLCJmZWF0dXJlcyI6eyJhcGkiOmZhbHNlLCJjdXN0b21pemUiOnRydWUsImdhIjpmYWxzZSwiZ3JvdXBzIjpmYWxzZSwicmF0aW5nIjp0cnVlLCJ3aGl0ZUxhYmVsIjpmYWxzZX0sImdvb2dsZUFuYWx5dGljc0VuYWJsZWQiOmZhbHNlLCJnb29nbGVBbmFseXRpY3NNYW51YWwiOmZhbHNlLCJnb29nbGVBbmFseXRpY3NNZWFzdXJlbWVudElkcyI6W10sImdyb3VwU2VsZWN0RW5hYmxlZCI6ZmFsc2UsImhlYWRlclN0eWxlIjoic3RhbmRhcmQiLCJoaWRlT2ZmbGluZUNoYXQiOmZhbHNlLCJoaWRlV2lkZ2V0IjpmYWxzZSwiaG9zdCI6IndlYnNvY2tldC12aXNpdG9ycy5zbWFydHN1cHAuY29tIiwiaW50ZXJuYWxBbmFseXRpY3NFbmFibGVkIjpmYWxzZSwiaXNCbG9ja2VkIjpmYWxzZSwibGFuZyI6ImVuIiwibW9iaWxlUG9wdXBzRW5hYmxlZCI6dHJ1ZSwibmFtZUNvbnRyb2wiOnRydWUsIm51bWJlckNvbnRyb2wiOmZhbHNlLCJvcGVuT25UcmlnZ2VyIjpmYWxzZSwib3JpZW50YXRpb24iOiJyaWdodCIsInBhY2thZ2VOYW1lIjoic29sbyIsInBvcHVwVGV4dGFyZWFFbmFibGVkIjpmYWxzZSwicHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQiOmZhbHNlLCJwcml2YWN5Tm90aWNlRW5hYmxlZCI6dHJ1ZSwicHJpdmFjeU5vdGljZVVybCI6IiIsInJhdGluZ0VuYWJsZWQiOnRydWUsInJlcXVpcmVMb2dpbiI6ZmFsc2UsInRyYW5zbGF0ZXMiOnsiZW4iOnsiYnV0dG9uLmdyZWV0aW5nIjoiTW9iaWNoYWluIENoYXQifX0sInVybENhcmRzRW5hYmxlZCI6dHJ1ZSwid2lkZ2V0VmVyc2lvbiI6MywiaGFzSW50ZXJuYWxBcGkiOmZhbHNlLCJjb25maWciOnt9LCJicm93c2VyTGFuZyI6ImVuIiwid2lkZ2V0VHJhY2tlclVybCI6Imh0dHBzOi8vd2lkZ2V0LXRyYWNrZXIuc21hcnRzdXBwLmNvbSIsInRyYW5zbGF0aW9uc0Jhc2VVcmwiOiJodHRwczovL3RyYW5zbGF0aW9ucy5zbWFydHN1cHBjZG4uY29tIiwid2lkZ2V0VHJhY2tlckVuYWJsZWQiOmZhbHNlfQ=="}},"time_used":79,"timings":{"blocked":-1,"dns":3,"connect":21,"send":0,"wait":26,"receive":0,"ssl":28},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/manifest.json","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:29.281Z","timestamp":1785139289281,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /manifest.json HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.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\nContent-Type: text/plain\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mobichain.co/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 08:01:29 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a670743-891\"\r\nexpires: Mon, 27 Jul 2026 07:32:27 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: k1UHq9Voxc3lgEvjJoPWc47APpVSDXQv7QTZ1TKaKp4TMWHhAKDvXRDmO4RAxaX/wHhat1o\r\nx-77-nzt-ray: e2f75420ade4d1455910676ad044ab14\r\nx-77-cache: HIT\r\nx-77-age: 29\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":2193,"size_decoded":1029,"mime_type":"application/json","magic":"JSON text data","md5":"ac973fd16446a8bd414c2cfdbfbdd6ba","sha1":"6d802991373d8180ad7c4197d08c2e8d8e21d581","sha256":"8c973dd5712d4b0125d2be8cc65e3590298e054fb63560738ecf0f64b8e43277","sha512":"9748bc4696f6ec983d5dbd492e36472b1e083d2e61c3a60133b102a8370f7603b54bfe88360c24035fe882d5c30f0a52eb253ae2d0d460d384d72f9f3b188d79","ssdeep":"","tlshash":"c3417893c0f80d531b9c6627b8855a415d50c3c3a8993e0e72ad8a7f2f4ceb910e67bc","first_seen":"2026-07-27T07:28:16.144753Z","last_seen":"2026-07-29T06:17:50.081451Z","times_seen":1033,"resource_available":false,"data":"ewogICJfV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VySW5wdXQiLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLWtiMXlxSGFBLmpzIgogICAgXSwKICAgICJkeW5hbWljSW1wb3J0cyI6IFsKICAgICAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIgogICAgXQogIH0sCiAgIl9zaGFyZWQta2IxeXFIYUEuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvc2hhcmVkLWtiMXlxSGFBLmpzIiwKICAgICJuYW1lIjogIkljb25CdXR0b24iLAogICAgImR5bmFtaWNJbXBvcnRzIjogWwogICAgICAibm9kZV9tb2R1bGVzLy5wbnBtL0B0aHVtYm1hcmtqcyt0aHVtYm1hcmtqc0AxLjkuMC9ub2RlX21vZHVsZXMvQHRodW1ibWFya2pzL3RodW1ibWFya2pzL2Rpc3QvdGh1bWJtYXJrLmVzbS5qcyIKICAgIF0KICB9LAogICJub2RlX21vZHVsZXMvLnBucG0vQHRodW1ibWFya2pzK3RodW1ibWFya2pzQDEuOS4wL25vZGVfbW9kdWxlcy9AdGh1bWJtYXJranMvdGh1bWJtYXJranMvZGlzdC90aHVtYm1hcmsuZXNtLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL3RodW1ibWFyay5lc20tQ1A0Q1UweUwuanMiLAogICAgIm5hbWUiOiAidGh1bWJtYXJrLmVzbSIsCiAgICAic3JjIjogIm5vZGVfbW9kdWxlcy8ucG5wbS9AdGh1bWJtYXJranMrdGh1bWJtYXJranNAMS45LjAvbm9kZV9tb2R1bGVzL0B0aHVtYm1hcmtqcy90aHVtYm1hcmtqcy9kaXN0L3RodW1ibWFyay5lc20uanMiLAogICAgImlzRHluYW1pY0VudHJ5IjogdHJ1ZQogIH0sCiAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21vZHVsZS1ERDVudlZEMy5qcyIsCiAgICAibmFtZSI6ICJtb2R1bGUiLAogICAgInNyYyI6ICJub2RlX21vZHVsZXMvLnBucG0vZW1vamktbWFydEA1LjYuMC9ub2RlX21vZHVsZXMvZW1vamktbWFydC9kaXN0L21vZHVsZS5qcyIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlCiAgfSwKICAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VyIiwKICAgICJzcmMiOiAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLWtiMXlxSGFBLmpzIiwKICAgICAgIl9XaWRnZXRNZXNzZW5nZXJJbnB1dC1ESHI1dUh3ZC5qcyIsCiAgICAgICJzcmMvbWFpbi50cyIKICAgIF0KICB9LAogICJzcmMvZnJhbWVzL3BvcHVwL1dpZGdldFBvcHVwLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRQb3B1cC1CQTFqY0hudS5qcyIsCiAgICAibmFtZSI6ICJXaWRnZXRQb3B1cCIsCiAgICAic3JjIjogInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIiwKICAgICJpc0R5bmFtaWNFbnRyeSI6IHRydWUsCiAgICAiaW1wb3J0cyI6IFsKICAgICAgIl9zaGFyZWQta2IxeXFIYUEuanMiLAogICAgICAiX1dpZGdldE1lc3NlbmdlcklucHV0LURIcjV1SHdkLmpzIgogICAgXQogIH0sCiAgInNyYy9tYWluLnRzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21haW4tQi1WSGMxSzQuanMiLAogICAgIm5hbWUiOiAibWFpbiIsCiAgICAic3JjIjogInNyYy9tYWluLnRzIiwKICAgICJpc0VudHJ5IjogdHJ1ZSwKICAgICJpbXBvcnRzIjogWwogICAgICAiX3NoYXJlZC1rYjF5cUhhQS5qcyIKICAgIF0sCiAgICAiZHluYW1pY0ltcG9ydHMiOiBbCiAgICAgICJzcmMvZnJhbWVzL21lc3Nlbmdlci9XaWRnZXRNZXNzZW5nZXIuc3ZlbHRlIiwKICAgICAgInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIgogICAgXQogIH0sCiAgInN0eWxlLmNzcyI6IHsKICAgICJmaWxlIjogImFzc2V0cy9zdHlsZS1DbGlKd1VUUi5jc3MiLAogICAgInNyYyI6ICJzdHlsZS5jc3MiCiAgfQp9"}},"time_used":71,"timings":{"blocked":-1,"dns":34,"connect":8,"send":0,"wait":10,"receive":0,"ssl":19},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translations.smartsuppcdn.com/api/v1/widget/translations/lang/en/defaults","fqdn":"translations.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.27","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:29.472Z","timestamp":1785139289472,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1087630013.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 03 Jun 2026 14:33:02 GMT","end":"Tue, 01 Sep 2026 14:33:01 GMT"},"fingerprint":{"sha1":"CE:B9:32:81:E9:D2:46:C8:31:53:55:D3:41:19:F7:94:91:30:D1:93","sha256":"54:C9:41:2F:97:E8:14:28:D7:2C:4F:FA:E0:C3:3A:BC:85:F8:14:22:1C:98:23:82:53:4D:5D:58:C9:0B:C9:68"}}},"request":{"raw":"GET /api/v1/widget/translations/lang/en/defaults HTTP/1.1\r\nHost: translations.smartsuppcdn.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://mobichain.co/\r\nOrigin: https://mobichain.co\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/2 200 \r\ndate: Mon, 27 Jul 2026 08:01:32 GMT\r\ncontent-type: application/json; charset=utf-8\r\naccess-control-allow-origin: *\r\ncache-control: max-age=600\r\nx-response-time: 1ms\r\nx-version: 0dd3c95f86cdb6b59a0dad25ffcd406aa7c7723b\r\nx-77-nzt: kwLWUYZtcuN+rMnmOQ4EmybI1c2Fff9IfRzY5KDIqg8oXoJr4YS00igSSw7xnIr9kb3/2zA\r\nx-77-nzt-ray: fdb54123af37e6e55c10676a4b050b2e\r\nx-77-cache: HIT\r\nx-77-age: 529\r\nvary: Origin, Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":7216,"size_decoded":3346,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"05d7604a60456ab25eb809557b353edc","sha1":"e32135b721636e7994e42748da35341e03dfd123","sha256":"5892aca834fe3f9f8fb66f68c8a3eb2295708a3b428cf355d7f3e3c1a0b7b62e","sha512":"db4124c008e22597192e1f07b44575ff191a03322f763bffb1efd129152e0f6f1546d98f5016967b32cc71a8252fefc0546aef0be258e8343fbba4ae2afe00da","ssdeep":"192:Ccdft/hc4l6WKHSY8pZcqq+jT0UHAfoW/Ymz8:CgF/hcbWbYKZcF+jhqoWQmw","tlshash":"48e1b54f9a144ea987c6438276cfb84675bc80734250993afd8cc8b842697cda3e3b94","first_seen":"2026-04-01T12:23:41.393805Z","last_seen":"2026-07-27T13:21:25.866734Z","times_seen":5254,"resource_available":false,"data":"eyJhZ2VudFJhdGluZy5hbGwucGxhY2Vob2xkZXIiOiJMZWF2ZSB1cyBmZWVkYmFjayIsImFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dCI6IlNvIHNvcnJ5IPCfmJMgV2hhdCB3ZW50IHdyb25nPyIsImFnZW50UmF0aW5nLmdvb2QuZm9ybVRleHQiOiJUaGFua3Mg8J+kqSBXaGF0IHdhcyBzbyBncmVhdD8iLCJhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHQiOiJUaGFua3Mg8J+RjSBIb3cgY2FuIHdlIGltcHJvdmU/IiwiYWdlbnRUcmFuc2Zlci5kZWZhdWx0VGV4dCI6IkFnZW50IiwiYWdlbnRUcmFuc2Zlci5qb2luZWQiOiJqb2luZWQgdGhlIGNoYXQiLCJhZ2VudFRyYW5zZmVyLmxlZnQiOiJsZWZ0IiwiYWdlbnRUcmFuc2Zlci5yZWRpcmVjdGVkIjoiaXMgeW91ciBuZXcgYWdlbnQiLCJhcmlhTGFiZWwuYWdlbnRBdmF0YXIiOiJBZ2VudCBhdmF0YXIiLCJhcmlhTGFiZWwuY2FyZCI6IlByb2R1Y3QgY2FyZCIsImFyaWFMYWJlbC5jaGF0Q29udGVudCI6IkNoYXQgY29udGVudCIsImFyaWFMYWJlbC5jaGF0Ym90QXZhdGFyIjoiQ2hhdGJvdCBhdmF0YXIiLCJhcmlhTGFiZWwuZHJhd2VyLmNvbnRlbnQiOiJEcmF3ZXIgY29udGVudCIsImFyaWFMYWJlbC5kcmF3ZXIub3ZlcmxheSI6IkRyYXdlciBvdmVybGF5IiwiYXJpYUxhYmVsLmlubGluZUVtb2ppUGlja2VyLmRlc2NyaXB0aW9uIjoiU2hvd2luZyB7Y291bnR9IGVtb2ppcyIsImFyaWFMYWJlbC5pbmxpbmVFbW9qaVBpY2tlci5sYWJlbCI6IkVtb2ppIHN1Z2dlc3Rpb25zIiwiYXJpYUxhYmVsLmxlZnQiOiJMZWZ0IiwiYXJpYUxhYmVsLm9wZW5DaGF0IjoiT3BlbiBTbWFydHN1cHAgY2hhdCIsImFyaWFMYWJlbC5wb3B1cCI6IlNtYXJ0c3VwcCBjaGF0IHBvcHVwIiwiYXJpYUxhYmVsLnJhdGVDaGF0LmJhZCI6IlJhdGUgY2hhdCBuZWdhdGl2ZWxseSIsImFyaWFMYWJlbC5yYXRlQ2hhdC5nb29kIjoiUmF0ZSBjaGF0IHBvc2l0aXZlbHkiLCJhcmlhTGFiZWwucmF0ZUNoYXQubmV1dHJhbCI6IlJhdGUgY2hhdCBuZXV0cmFsbHkiLCJhcmlhTGFiZWwucmVtb3ZlQXR0YWNobWVudCI6IlJlbW92ZSBhdHRhY2htZW50IiwiYXJpYUxhYmVsLnJpZ2h0IjoiUmlnaHQiLCJhcmlhTGFiZWwuc2Nyb2xsRG93biI6IlNjcm9sbCBkb3duIiwiYXJpYUxhYmVsLnN1Y2Nlc3MiOiJTdWNjZXNzIiwiYXJpYUxhYmVsLnVwbG9hZGluZyI6IlVwbG9hZGluZy4uLiIsImFyaWFMYWJlbC53aWRnZXRCcmFuZGluZyI6IlNtYXJ0c3VwcCBicmFuZGluZyIsImF1dGhGb3JtLmFjY2VwdFRlcm1zIjoiSSBhZ3JlZSB3aXRoIHByaXZhY3kgcG9saWN5IiwiYXV0aEZvcm0uYnV0dG9uLnNlbmQiOiJTZW5kIG1lc3NhZ2UiLCJhdXRoRm9ybS5kZXNjcmlwdGlvbiI6Ildl4oCZbGwgdXNlIHlvdXIgY29udGFjdCBpbmZvIG9ubHkgaWYgYWxsIHRoZSBhZ2VudHMgYXJlIGJ1c3kgYXQgdGhlIG1vbWVudCBhbmQgY2Fubm90IGltbWVkaWF0ZWx5IHJlcGx5LiIsImF1dGhGb3JtLmdyZWV0aW5nIjoi8J+RiyBQbGVhc2UgaW50cm9kdWNlIHlvdXJzZWxmIiwiYXV0aEZvcm0uZ3JvdXAiOiJDaG9vc2UgYSBncm91cCIsImF1dGhGb3JtLmxhYmVsLmVtYWlsIjoiRS1tYWlsIiwiYXV0aEZvcm0ubGFiZWwuZ3JvdXAiOiJHcm91cCIsImF1dGhGb3JtLmxhYmVsLm5hbWUiOiJOYW1lIiwiYXV0aEZvcm0ubGFiZWwucGhvbmUiOiJQaG9uZSIsImF1dGhGb3JtLnN1Ym1pdC5lcnJvciI6IkF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsImF1dGhGb3JtLnN1Ym1pdC5zdWNjZXNzIjoiQXV0aGVudGljYXRpb24gd2FzIHN1Y2Nlc3NmdWwiLCJhdXRoRm9ybS55b3VyRW1haWwiOiJZb3VyIGVtYWlsIiwiYXV0aEZvcm0ueW91ck5hbWUiOiJZb3VyIG5hbWUiLCJhdXRoRm9ybS55b3VyUGhvbmUiOiJQaG9uZSBudW1iZXIiLCJidXR0b24uZ3JlZXRpbmciOiJDaGF0IiwiY2FyZC5saW5rc0xpbWl0UmVhY2hlZCI6IlVuYWJsZSB0byBzZW5kIG1vcmUgdGhhbiAyMCBVUkwgbGlua3MuIiwiY2FyZC5ub1ByZXZpZXdUaXRsZSI6IlByZXZpZXcgbm90IGF2YWlsYWJsZSIsImNhcmQub3BlblVybFRpdGxlIjoiUmVhZCBtb3JlIiwiY2FyZC5zZW5kaW5nSW5Qcm9ncmVzcyI6IlNlbmRpbmcgaW4gcHJvZ3Jlc3MsIHBsZWFzZSB3YWl04oCmIiwiY2hhdElucHV0LnBsYWNlaG9sZGVyIjoiVHlwZSB5b3VyIG1lc3NhZ2UgaGVyZSIsImNoYXRQcmV2aWV3Lm1lc3NhZ2UxIjoiSGksIGlzIGFueWJvZHkgaGVyZT8iLCJjaGF0UHJldmlldy5tZXNzYWdlMiI6IkhlbGxvLCB5ZXMgd2UgYXJlIGhlcmUiLCJjaGF0UHJldmlldy5tZXNzYWdlMyI6Ik9rLCB0aGFua3MiLCJjaGF0Ym90LmdvQmFjayI6IkdvIGJhY2siLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLmJ1dHRvbiI6IlllcywgZW5kIGNoYXQiLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLnRleHQiOiJJcyB0aGF0IHJlYWxseSBhbGw/IElmIHNvbWV0aGluZyBlbHNlIGNvbWVzIHRvIG1pbmQsIHlvdSBjYW4gYWx3YXlzIHJldHVybiB0byB0aGUgY29udmVyc2F0aW9uLiIsImNsb3NlQ29udmVyc2F0aW9uTW9kYWwudGl0bGUiOiJFbmQgY2hhdCIsImRyYWdBbmREcm9wLmRyb3BIZXJlIjoiRHJvcCB5b3VyIGZpbGUocykgaGVyZSIsImVtYWlsVHJhbnNjcmlwdC5wb3NpdGl2ZUZlZWRiYWNrIjoiVHJhbnNjcmlwdCBoYXMgYmVlbiBzZW50IiwiZW1haWxUcmFuc2NyaXB0LnNlbmRDb3B5IjoiU2VuZCBjb252ZXJzYXRpb24gY29weSIsImVycm9yLmZpbGVVcGxvYWQiOiJGaWxlIHVwbG9hZCBmYWlsdXJlIiwiZXJyb3Iubm9JbnRlcm5ldCI6IkludGVybmV0IGNvbm5lY3Rpb24gbG9zdCIsImVycm9yLnNlcnZlckVycm9yIjoiU2VydmVyIGVycm9yIG9jY3VycmVkIiwiZmlsZVVwbG9hZC5iYWRGaWxlVHlwZSI6IlRoaXMgZmlsZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQuIiwiZmlsZVVwbG9hZC5maWxlVG9vQmlnIjoiVGhlIGZpbGUgaXMgYmlnZ2VyIHRoYW4gdGhlIGFsbG93ZWQgbGltaXQiLCJmaWxlVXBsb2FkLmZpbGVzV2VyZW50UHJvY2Vzc2VkIjoiU29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkIiwiZmlsZVVwbG9hZC5pbWFnZUVycm9yIjoiVGhpcyBpbWFnZSBpcyBub3QgdmFsaWQiLCJmaWxlVXBsb2FkLnRvb01hbnlGaWxlcyI6IkxpbWl0IGZvciB1cGxvYWRpbmcgZmlsZXMgaXMgIiwiZmlsZVVwbG9hZC51cGxvYWRGaWxlIjoiVXBsb2FkIGZpbGUiLCJmb3JtLnN1Ym1pdC5lcnJvciI6IlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLiIsImZvcm0uc3VibWl0LnN1Y2Nlc3MiOiJTdWNjZXNzZnVsbHkgZG9uZSIsImdkcHIuZGF0YVByaXZhY3lIZWFkbGluZSI6IlBlcnNvbmFsIGRhdGEgcHJvY2Vzc2luZyIsImdkcHIuZGF0YVByaXZhY3lUZXh0IjoiU21hcnRzdXBwLmNvbSwgcy5yLm8sIHByb2Nlc3NlcyBwZXJzb25hbCBkYXRhLiwgVkFUIElEIENaMDM2Njg2ODEgKGZ1cnRoZXIgYXMgXCJTbWFydHN1cHBcIikgYXMgYSBkYXRhIHByb2Nlc3NvciB3aG8gYWN0cyBvbiBiZWhhbGYgb2YgdGhlIHdlYnNpdGUgb3duZXIgd2hvIGlzIHRoZSBkYXRhIGNvbnRyb2xsZXIuIFxuXG5TbWFydHN1cHAgaXMgR0RQUiBjb21wbGlhbnQuIFlvdSBjYW4gZmluZCBpbmZvcm1hdGlvbiBhYm91dCBTbWFydHN1cHAgcGVyc29uYWwgZGF0YSBwcml2YWN5IGFuZCBwcm9jZXNzaW5nIG9uIGhlbHAuc21hcnRzdXBwLmNvbS9lbl9VUy9wcml2YWN5LiBcblxuUHJvY2Vzc2luZyBvZiB5b3VyIHBlcnNvbmFsIGRhdGEgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHByb3ZpZGUgY3VzdG9tZXIgc2VydmljZS4gQWR2YW5jZWQgZmVhdHVyZXMgd2lsbCBvbmx5IGJlIHR1cm5lZCBvbiBpZiB5b3UgaGF2ZSBhZ3JlZWQgdG8gdGhlbS4gXG5cblBsZWFzZSBjb250YWN0IHRoZSB3ZWJzaXRlIG93bmVyIGlmIHlvdSBoYXZlIHF1ZXN0aW9ucyBhYm91dCB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIG9yIGlmIHlvdSB3YW50IHRvIHJlcXVlc3Qgb3IgZXJhc2UgeW91ciBwZXJzb25hbCBkYXRhLiIsImdlbmVyYWwuYmFjayI6IkJhY2siLCJnZW5lcmFsLm5ld01lc3NhZ2VzIjoiTmV3IG1lc3NhZ2VzIiwiZ2VuZXJhbC5zZW5kIjoiU2VuZCIsIm9wdGlvbnMuYWNjZXNzaWJpbGl0eSI6IkFjY2Vzc2liaWxpdHkiLCJvcHRpb25zLmNvcHlyaWdodCI6IsKpIHt5ZWFyfSBTbWFydHN1cHAuY29tIiwib3B0aW9ucy5lbWFpbFRyYW5zY3JpcHQiOiJTZW5kIGVtYWlsIHRyYW5zY3JpcHQiLCJvcHRpb25zLmZlZWRiYWNrIjoiRGlkIHlvdSBmaW5kIGEgYnVnPyIsIm9wdGlvbnMuZ2RwciI6IkdEUFIgYW5kIHByaXZhY3kiLCJvcHRpb25zLnBkZlRyYW5zY3JpcHQiOiJEb3dubG9hZCB0cmFuc2NyaXB0Iiwib3B0aW9ucy5wbGF5U291bmRzIjoiUGxheSB0aGUgc291bmRzIiwib3B0aW9ucy50aXRsZSI6Ik9wdGlvbnMiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWdlbnQiOiJSYXRlIGNoYXQiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWkiOiJSYXRlIEFJIGNoYXRib3QiLCJyYXRpbmcuc3VibWl0LnN1Y2Nlc3MiOiJSYXRpbmcgc2VudCIsInJhdGluZy5zdWJtaXRGZWVkYmFjay5zdWNjZXNzIjoiVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrIiwicmF0aW5nLndhc0l0SGVscGZ1bC5hZ2VudCI6IkhvdyB3b3VsZCB5b3UgcmF0ZSBvdXIgc3VwcG9ydD8iLCJyYXRpbmcud2FzSXRIZWxwZnVsLmFpIjoiSG93IHdvdWxkIHlvdSByYXRlIHRoZSBBSSBjaGF0Ym90IGV4cGVyaWVuY2U/Iiwic3RhdHVzQmFyLmJvdElkZW50aXR5IjoiQUkgYXNzaXN0YW50Iiwic3RhdHVzQmFyLm9mZmxpbmVUZXh0IjoiSGFwcHkgdG8gYW5zd2VyIHlvdSBsYXRlciIsInN0YXR1c0Jhci5vbmxpbmVUZXh0IjoiV2UgcmVwbHkgaW1tZWRpYXRlbHkiLCJzeXN0ZW1NZXNzYWdlLmNoYXRDbG9zZWQiOiJDaGF0IHdhcyBjbG9zZWQiLCJzeXN0ZW1NZXNzYWdlLmNoYXRSZXNvbHZlZCI6InJlc29sdmVkIGNvbnZlcnNhdGlvbiIsInRpY2tldEZvcm0ubGFiZWwubWVzc2FnZSI6IldoYXQgY2FuIHdlIGhlbHAgeW91IHdpdGg/IiwidGlja2V0Rm9ybS5tZXNzYWdlLnBsYWNlaG9sZGVyIjoiRGVzY3JpYmUgeW91ciBwcm9ibGVtIiwidGlja2V0Rm9ybS5zdWJtaXQuYnV0dG9uIjoi4pyJ77iPIENvbnRhY3QgdGhlIGFnZW50IGJ5IGVtYWlsIiwidGltZWFnby5YRGF5c0FnbyI6IiclcyBkYXlzIGFnbyIsInRpbWVhZ28uWEhvdXJzQWdvIjoiJXMgaG91cnMgYWdvIiwidGltZWFnby5YTWludXRlc0FnbyI6IiVzIG1pbnV0ZXMgYWdvIiwidGltZWFnby5YTW9udGhzQWdvIjoiJXMgbW9udGhzIGFnbyIsInRpbWVhZ28uWFNlY29uZHNBZ28iOiIlcyBzZWNvbmRzIGFnbyIsInRpbWVhZ28uWFdlZWtzQWdvIjoiJXMgd2Vla3MgYWdvIiwidGltZWFnby5YWWVhcnNBZ28iOiIlcyB5ZWFycyBhZ28iLCJ0aW1lYWdvLmp1c3ROb3ciOiJqdXN0IG5vdyIsInRpbWVhZ28ub25lRGF5QWdvIjoiMSBkYXkgYWdvIiwidGltZWFnby5vbmVIb3VyQWdvIjoiMSBob3VyIGFnbyIsInRpbWVhZ28ub25lTWludXRlQWdvIjoiMSBtaW51dGUgYWdvIiwidGltZWFnby5vbmVNb250aEFnbyI6IjEgbW9udGggYWdvIiwidGltZWFnby5vbmVXZWVrQWdvIjoiMSB3ZWVrIGFnbyIsInRpbWVhZ28ub25lWWVhckFnbyI6IjEgeWVhciBhZ28iLCJ0aW1lYWdvLnJpZ2h0Tm93IjoicmlnaHQgbm93IiwidGltZWFnby5zZWNvbmRzIjoiaW4gJXMgc2Vjb25kcyIsInRvb2x0aXAuYXR0YWNobWVudCI6IkF0dGFjaG1lbnQiLCJ0b29sdGlwLmNsb3NlIjoiQ2xvc2UiLCJ0b29sdGlwLmNvbGxhcHNlIjoiQ29sbGFwc2UgY2hhdCIsInRvb2x0aXAuZW1vamkiOiJFbW9qaSIsInRvb2x0aXAuZXhwYW5kIjoiRXhwYW5kIGNoYXQiLCJ0b29sdGlwLm1pbmltaXplIjoiTWluaW1pemUgY2hhdCIsInRvb2x0aXAubW9yZSI6IlNob3cgbW9yZSIsInRvb2x0aXAubW9yZUJ1dHRvbiI6IlNob3cgTW9yZSIsInRvb2x0aXAucmF0ZUNoYXQiOiJSYXRlIENoYXQiLCJ0b29sdGlwLnNlbmQiOiJTZW5kIiwidG9wQmFyLmVtYWlsVHJhbnNjcmlwdCI6IlNlbmQgZW1haWwgdHJhbnNjcmlwdCIsInRvcEJhci5nZHByVGl0bGUiOiJHRFBSIGFuZCBwcml2YWN5IiwidG9wQmFyLm9mZmxpbmUuaGVsbG8iOiJTZW5kIHVzIGEgbWVzc2FnZSIsInRvcEJhci5vbmxpbmUuaGVsbG8iOiJIb3cgY2FuIHdlIGhlbHA/IiwidG9wQmFyLnR1cm5PZmZTb3VuZHMiOiJUdXJuIG9mZiBzb3VuZHMiLCJ0b3BCYXIudHVybk9uU291bmRzIjoiVHVybiBvbiBzb3VuZHMiLCJ0cmlnZ2VyLm9wZW5DaGF0QnV0dG9uIjoiTGV0J3MgY2hhdCIsInRyaWdnZXIucmVwbHlCdXR0b24iOiJSZXBseSIsInZhbGlkYXRpb25zLmNoZWNrZWRUZXJtcyI6IllvdSBtdXN0IGFncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRvIGNvbnRpbnVlIiwidmFsaWRhdGlvbnMuaXNFbWFpbCI6IlBsZWFzZSBlbnRlciB2YWxpZCBlbWFpbCIsInZhbGlkYXRpb25zLnBob25lIjoiUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIiwidmFsaWRhdGlvbnMucmVxdWlyZWQiOiJQbGVhc2UgZmlsbCBvdXQgdGhpcyBmaWVsZCIsIndhcm5pbmdCYXIubWF4TGVuZ3RoIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBjaGFyYWN0ZXJzICgyMDAwKSIsIndhcm5pbmdCYXIuc2FtZU1lc3NhZ2VUd2ljZSI6IkNhbm5vdCBzZW5kIHRoZSBzYW1lIG1lc3NhZ2UgdHdpY2UgaW4gYSByb3cuIiwid2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbiI6IllvdXIgbWVzc2FnZXMgaGF2ZSBiZWVuIGlkZW50aWZpZWQgYXMgc3BhbS4gUGxlYXNlIHdhaXQgZm9yIDMwIHNlY29uZHMgYmVmb3JlIHNlbmRpbmcgYW5vdGhlciBtZXNzYWdlLiIsIndhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0IjoiRmlyc3QgbWVzc2FnZSBjYW5ub3QgYmUgYSBmaWxlIiwid2lkZ2V0UHJldmlldy5jb250YWN0TWVzc2FnZSI6IvCfjokgTG9va3MgZmFudGFzdGljISDwn5Kq8J+PuyBMZXTCtHMgcm9jayB0aG9zZSBjb252ZXJzYXRpb25zIGFuZCBsZWF2ZSBhIGxhc3RpbmcgaW1wcmVzc2lvbiEg8J+agCIsIndpZGdldFByZXZpZXcud2VsY29tZU1lc3NhZ2UiOiLwn5GL8J+PuyBXZWxjb21lISBUaGlzIGlzIGEgc25lYWsgcGVlayBvZiB5b3VyIGNoYXQgYm94LiBHZXQgcmVhZHkgdG8gc2hpbmUg4pyoIGluIGN1c3RvbWVyIGludGVyYWN0aW9ucyEiLCJtZXNzYWdlLmRlbGV0ZWQiOiJUaGlzIG1lc3NhZ2Ugd2FzIHJlbW92ZWQifQ=="}},"time_used":3305,"timings":{"blocked":0,"dns":34,"connect":8,"send":0,"wait":8,"receive":0,"ssl":3255},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/style.css","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:24.987Z","timestamp":1785139284987,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /style.css HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\nserver: cloudflare\r\nlast-modified: Sat, 06 Sep 2025 01:07:44 GMT\r\naccept-ranges: bytes\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver-timing: cfExtPri\r\ncontent-type: text/css\r\ncache-control: max-age=14400\r\ncf-cache-status: REVALIDATED\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=paPzb6%2FmLDdCEMdcVF0lIXpBzF6Mj4k1NnJEBQPoqd%2FRZPYOSz1C20FlZMt%2B6mxfuv72Gi7tChRYojoevjHDm3qL8JjvhfXIY3YRB%2B%2F93gySiRymuhFqu47xCA7KYD0%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=2,i=?0\r\ncf-ray: a21a1db32fcf2efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 40929\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"]}],"data":{"size":277437,"size_decoded":41651,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (2589)","md5":"15c2cf7f3dc9051c48ebb6e3bd71fd09","sha1":"8d2fe0509f7e8baac2ea3fcab0b3b44b4f6954f2","sha256":"d696437aa6d613c3cdfb1f82a943751c47c54cbd9c18d6cdca0f0d50c1a3443f","sha512":"40b74baa1359c299a1354e1be6bc48585722ce0917f4942df8802b0638652795988dab1baf860b227a0c48b3aa9eb36022592df297e2b31e5ed28a46ba3a0006","ssdeep":"6144:95P4EnC8EBvRnWhh9kqt7ISvQ8/2Q07PX67J:95P4EnC8EBvRnWhh9kqt7ISvQ8/2Q07S","tlshash":"6b441f9b6ab331593c57647d8bf966513205d003e24eccaabecca16ccf883d559e278c","first_seen":"2026-07-25T05:39:21.884564Z","last_seen":"2026-07-27T08:02:19.572244Z","times_seen":5,"resource_available":false,"data":"aHRtbCB7CiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwogIH0KCiAgLyogUHVsc2luZyBpY29uIGFuaW1hdGlvbiBmb3IgQ2FyZWVyIGxpbmsgKi8KICAucHVsc2luZy1pY29uIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiA4cHg7CiAgICBoZWlnaHQ6IDhweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGZmMDA7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlOwogICAgbWFyZ2luLWxlZnQ6IDVweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC5wdWxzaW5nLWljb246OmJlZm9yZSwKICAucHVsc2luZy1pY29uOjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgbGVmdDogNTAlOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBmZjAwOwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICBhbmltYXRpb246IHdhdmUgMnMgaW5maW5pdGU7CiAgICBvcGFjaXR5OiAwOwogIH0KCiAgLnB1bHNpbmctaWNvbjo6YWZ0ZXIgewogICAgYW5pbWF0aW9uLWRlbGF5OiAwLjVzOwogIH0KCiAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAwJSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CiAgICA1MCUgewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7CiAgICAgIG9wYWNpdHk6IDAuODsKICAgIH0KICAgIDEwMCUgewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICBvcGFjaXR5OiAxOwogICAgfQogIH0KCiAgQGtleWZyYW1lcyB3YXZlIHsKICAgIDAlIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7CiAgICAgIG9wYWNpdHk6IDAuODsKICAgIH0KICAgIDEwMCUgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgzKTsKICAgICAgb3BhY2l0eTogMDsKICAgIH0KICB9CgogIC8qIEJ1ZyBSZXBvcnQgRm9ybSBTdHlsZXMgLSBEYXJrIFRoZW1lICovCiAgLmJ1Zy1yZXBvcnQtZm9ybSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMjRweDsKICB9CgogIC5mb3JtLWZpZWxkIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiA4cHg7CiAgfQoKICAuZm9ybS1yb3cgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIGdhcDogMTZweDsKICB9CgogIC5mb3JtLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogI2ZmZmZmZjsKICAgIG1hcmdpbi1ib3R0b206IDRweDsKICB9CgogIC5mb3JtLWlucHV0IHsKICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MDQwNDA7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTsKICAgIGNvbG9yOiAjZmZmZmZmOwogIH0KCiAgLmZvcm0taW5wdXQ6Zm9jdXMgewogICAgb3V0bGluZTogbm9uZTsKICAgIGJvcmRlci1jb2xvcjogIzAwN2JmZjsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDAsIDEyMywgMjU1LCAwLjEpOwogIH0KCiAgLmZvcm0taW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjODg4ODg4OwogIH0KCiAgLmZvcm0tdGV4dGFyZWEgewogICAgcmVzaXplOiB2ZXJ0aWNhbDsKICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgfQoKICAuZm9ybS1hY3Rpb25zIHsKICAgIG1hcmdpbi10b3A6IDhweDsKICB9CgogIC50cm91Ymxlc2hvb3RpbmctaWNvbiB7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxMGI5ODE7CiAgICBjb2xvcjogd2hpdGU7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICBmbGV4LXNocmluazogMDsKICAgIG1hcmdpbi10b3A6IDJweDsKICB9CgogIC50cm91Ymxlc2hvb3RpbmctY29udGVudCBoNCB7CiAgICBtYXJnaW46IDAgMCA0cHggMDsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogI2ZmZmZmZjsKICB9CgogIC50cm91Ymxlc2hvb3RpbmctY29udGVudCBwIHsKICAgIG1hcmdpbjogMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjY2NjY2NjOwogIH0KCiAgLnJlcG9ydC1tZXRob2QgaDUgewogICAgbWFyZ2luOiAwIDAgNHB4IDA7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6ICNmZmZmZmY7CiAgfQoKICAucmVwb3J0LW1ldGhvZCBwIHsKICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6ICNjY2NjY2M7CiAgfQoKICAubGluay1wcmltYXJ5IHsKICAgIGNvbG9yOiAjMDA3YmZmOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CgogIC5saW5rLXByaW1hcnk6aG92ZXIgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICAucmVzcG9uc2UtaWNvbiB7CiAgICB3aWR0aDogNDhweDsKICAgIGhlaWdodDogNDhweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogYm9sZDsKICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7CiAgfQoKICAucmVzcG9uc2UtaWNvbi5jcml0aWNhbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY0NDQ0OwogICAgY29sb3I6IHdoaXRlOwogIH0KCiAgLnJlc3BvbnNlLWljb24uaGlnaCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU5ZTBiOwogICAgY29sb3I6IHdoaXRlOwogIH0KCiAgLnJlc3BvbnNlLWljb24ubWVkaXVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjgyZjY7CiAgICBjb2xvcjogd2hpdGU7CiAgfQoKICAucmVzcG9uc2UtdGltZSB7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6ICMxMGI5ODE7CiAgICBtYXJnaW4tdG9wOiAxMnB4OwogIH0KCiAgLm1nLXZlcnRpY2FsLTMycHggewogICAgbWFyZ2luOiAzMnB4IDA7CiAgfQoKICAvKiBTdWJtaXQgYnV0dG9uIHByaW1hcnkgY29sb3Igb3ZlcnJpZGUgKi8KICAuZm9ybS1hY3Rpb25zIC5idG4tcHJpbWFyeSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSkgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApICFpbXBvcnRhbnQ7CiAgfQoKICAuZm9ybS1hY3Rpb25zIC5idG4tcHJpbWFyeTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSkgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApICFpbXBvcnRhbnQ7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zcHgsIC4wMXB4KTsKICB9CgogIC8qIENhcmVlcnMgcGFnZSBidXR0b24gc3R5bGluZyAqLwogIC5jYXJlZXJzLXBhZ2UgLmJ0bi1wcmltYXJ5IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKSAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCkgIWltcG9ydGFudDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgfQoKICAuY2FyZWVycy1wYWdlIC5idG4tcHJpbWFyeTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSkgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApICFpbXBvcnRhbnQ7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zcHgsIC4wMXB4KTsKICB9CgogIC5jYXJlZXJzLXBhZ2UgLmJ0bi1wcmltYXJ5OmFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSkgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApICFpbXBvcnRhbnQ7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIC4wMXB4KTsKICB9CgogIC5jYXJlZXJzLXBhZ2UgLmJ0bi1wcmltYXJ5LnByb2Nlc3NpbmcgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzZiNzI4MCAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCkgIWltcG9ydGFudDsKICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICB0cmFuc2Zvcm06IG5vbmU7CiAgfQoKICAuY2FyZWVycy1wYWdlIC5idG4tcHJpbWFyeS5wcm9jZXNzaW5nOjphZnRlciB7CiAgICBjb250ZW50OiAiIOKPsyI7CiAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogIH0KCiAgLyogQ29udGFjdCBwYWdlIGJ1dHRvbiBzdHlsaW5nICovCiAgLmNvbnRhY3QtcGFnZSAuYnRuLXByaW1hcnkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICB9CgogIC5jb250YWN0LXBhZ2UgLmJ0bi1wcmltYXJ5OmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKSAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCkgIWltcG9ydGFudDsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTNweCwgLjAxcHgpOwogIH0KCiAgLmNvbnRhY3QtcGFnZSAuYnRuLXByaW1hcnk6YWN0aXZlIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKSAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCkgIWltcG9ydGFudDsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgLjAxcHgpOwogIH0KCiAgQGtleWZyYW1lcyBzcGluIHsKICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgfQoKICAvKiBSZWR1Y2Ugc3BhY2luZyBiZXR3ZWVuIHNlY3Rpb25zICovCi5zZWN0aW9uIHsKICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50OwogIHBhZGRpbmctYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7Cn0KCi5zZWN0aW9uOmZpcnN0LWNoaWxkIHsKICBwYWRkaW5nLXRvcDogNjBweCAhaW1wb3J0YW50Owp9Cgouc2VjdGlvbjpsYXN0LWNoaWxkIHsKICBwYWRkaW5nLWJvdHRvbTogNjBweCAhaW1wb3J0YW50Owp9CgovKiBSZXNwb25zaXZlIERlc2lnbiAqLwpAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAuZm9ybS1yb3cgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgfQogIAogIC5ncmlkLTItY29sdW1ucyB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICB9CiAgCiAgLmdyaWQtMy1jb2x1bW5zIHsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogIH0KICAKICAuc2VjdGlvbiB7CiAgICBwYWRkaW5nLXRvcDogMzBweCAhaW1wb3J0YW50OwogICAgcGFkZGluZy1ib3R0b206IDMwcHggIWltcG9ydGFudDsKICB9CiAgCiAgLnNlY3Rpb246Zmlyc3QtY2hpbGQgewogICAgcGFkZGluZy10b3A6IDQwcHggIWltcG9ydGFudDsKICB9CiAgCiAgLnNlY3Rpb246bGFzdC1jaGlsZCB7CiAgICBwYWRkaW5nLWJvdHRvbTogNDBweCAhaW1wb3J0YW50OwogIH0KfQogIAogIGJvZHkgewogICAgbWFyZ2luOiAwOwogIH0KICAKICBhcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtYWluLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIGF1ZGlvLCBjYW52YXMsIHByb2dyZXNzLCB2aWRlbyB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIAogIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7CiAgICBoZWlnaHQ6IDA7CiAgICBkaXNwbGF5OiBub25lOwogIH0KICAKICBbaGlkZGVuXSwgdGVtcGxhdGUgewogICAgZGlzcGxheTogbm9uZTsKICB9CiAgCiAgYSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDsKICB9CiAgCiAgYTphY3RpdmUsIGE6aG92ZXIgewogICAgb3V0bGluZTogMDsKICB9CiAgCiAgYWJiclt0aXRsZV0gewogICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsKICB9CiAgCiAgYiwgc3Ryb25nIHsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogIH0KICAKICBkZm4gewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KICAKICBoMSB7CiAgICBtYXJnaW46IC42N2VtIDA7CiAgICBmb250LXNpemU6IDJlbTsKICB9CiAgCiAgbWFyayB7CiAgICBjb2xvcjogIzAwMDsKICAgIGJhY2tncm91bmQ6ICNmZjA7CiAgfQogIAogIHNtYWxsIHsKICAgIGZvbnQtc2l6ZTogODAlOwogIH0KICAKICBzdWIsIHN1cCB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7CiAgICBmb250LXNpemU6IDc1JTsKICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICBzdXAgewogICAgdG9wOiAtLjVlbTsKICB9CiAgCiAgc3ViIHsKICAgIGJvdHRvbTogLS4yNWVtOwogIH0KICAKICBpbWcgewogICAgYm9yZGVyOiAwOwogIH0KICAKICBzdmc6bm90KDpyb290KSB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICBociB7CiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKICAgIGhlaWdodDogMDsKICB9CiAgCiAgcHJlIHsKICAgIG92ZXJmbG93OiBhdXRvOwogIH0KICAKICBjb2RlLCBrYmQsIHByZSwgc2FtcCB7CiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxZW07CiAgfQogIAogIGJ1dHRvbiwgaW5wdXQsIG9wdGdyb3VwLCBzZWxlY3QsIHRleHRhcmVhIHsKICAgIGNvbG9yOiBpbmhlcml0OwogICAgZm9udDogaW5oZXJpdDsKICAgIG1hcmdpbjogMDsKICB9CiAgCiAgYnV0dG9uIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwogIH0KICAKICBidXR0b24sIHNlbGVjdCB7CiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICB9CiAgCiAgYnV0dG9uLCBodG1sIGlucHV0W3R5cGU9ImJ1dHRvbiJdLCBpbnB1dFt0eXBlPSJyZXNldCJdIHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOwogICAgY3Vyc29yOiBwb2ludGVyOwogIH0KICAKICBidXR0b25bZGlzYWJsZWRdLCBodG1sIGlucHV0W2Rpc2FibGVkXSB7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgfQogIAogIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIgewogICAgYm9yZGVyOiAwOwogICAgcGFkZGluZzogMDsKICB9CiAgCiAgaW5wdXQgewogICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKICB9CiAgCiAgaW5wdXRbdHlwZT0iY2hlY2tib3giXSwgaW5wdXRbdHlwZT0icmFkaW8iXSB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgcGFkZGluZzogMDsKICB9CiAgCiAgaW5wdXRbdHlwZT0ibnVtYmVyIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sIGlucHV0W3R5cGU9Im51bWJlciJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHsKICAgIGhlaWdodDogYXV0bzsKICB9CiAgCiAgaW5wdXRbdHlwZT0ic2VhcmNoIl0gewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIH0KICAKICBpbnB1dFt0eXBlPSJzZWFyY2giXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgaW5wdXRbdHlwZT0ic2VhcmNoIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24gewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIH0KICAKICBsZWdlbmQgewogICAgYm9yZGVyOiAwOwogICAgcGFkZGluZzogMDsKICB9CiAgCiAgdGV4dGFyZWEgewogICAgb3ZlcmZsb3c6IGF1dG87CiAgfQogIAogIG9wdGdyb3VwIHsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogIH0KICAKICB0YWJsZSB7CiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgfQogIAogIHRkLCB0aCB7CiAgICBwYWRkaW5nOiAwOwogIH0KICAKICBAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiB3ZWJmbG93LWljb25zOwogICAgc3JjOiB1cmwoImRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3VDFNdk1nOFNCaVVBQUFDOEFBQUFZR050WVhEcFArYTRBQUFCSEFBQUFGeG5ZWE53QUFBQUVBQUFBWGdBQUFBSVoyeDVabWhTMlhFQUFBR0FBQUFESEdobFlXUVRGdzNIQUFBRW5BQUFBRFpvYUdWaENYWUZnUUFBQk5RQUFBQWthRzEwZUNlNEExb0FBQVQ0QUFBQU1HeHZZMkVEdEFMR0FBQUZLQUFBQUJwdFlYaHdBQkFBUGdBQUJVUUFBQUFnYm1GdFpTb0NzTXNBQUFWa0FBQUJ6bkJ2YzNRQUF3QUFBQUFITkFBQUFDQUFBd1A0QVpBQUJRQUFBcGtDekFBQUFJOENtUUxNQUFBQjZ3QXpBUWtBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQURwQXdQQS84QUFRQVBBQUVBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQURBQUFBQXdBQUFCd0FBUUFEQUFBQUhBQURBQUVBQUFBY0FBUUFRQUFBQUF3QUNBQUNBQVFBQVFBZzVnUHBBLy85Ly84QUFBQUFBQ0RtQU9rQS8vMy8vd0FCLytNYUJCY0lBQU1BQVFBQUFBQUFBQUFBQUFBQUFBQUJBQUgvL3dBUEFBRUFBQUFBQUFBQUFBQUNBQUEzT1FFQUFBQUFBUUFBQUFBQUFBQUFBQUlBQURjNUFRQUFBQUFCQUFBQUFBQUFBQUFBQWdBQU56a0JBQUFBQUFFQklBQUFBeUFEZ0FBRkFBQUpBUWNKQVJjRElQNUFRQUdBL29CQUFjQUJ3RUQrZ1A2QVFBQUJBT0FBQUFMZ0E0QUFCUUFBRXdFWENRRUg0QUhBUVA2QUFZQkFBY0FCd0VEK2dQNkFRQUFBQXdEQUFPQURRQUxBQUE4QUh3QXZBQUFCSVNJR0hRRVVGak1oTWpZOUFUUW1CeUVpQmgwQkZCWXpJVEkyUFFFMEpnY2hJZ1lkQVJRV015RXlOajBCTkNZRElQM0FEUk1URFFKQURSTVREZjNBRFJNVERRSkFEUk1URGYzQURSTVREUUpBRFJNVEFzQVREU0FORXhNTklBMFR3Qk1OSUEwVEV3MGdEUlBBRXcwZ0RSTVREU0FORXdBQUFBQUJBSjBBdEFPQkFwVUFCUUFBQ1FJSENRRURKUDdyL3VwY0FYRUJjZ0tVL3VzQkZWeitmQUdFQUFBQUFBTC8vZis5QkFNRHd3QUVBQWtBQUJjQkp3RVhBd0UzQVFkcEE1cHMvR1pzYkFPYWJQeG1iRU1EbW16OFptd0RtdnhtYkFPYWJBQUFBZ0FBLzhBRUFBUEFBQjBBT3dBQUJTSW5MZ0VuSmpVME56NEJOell6TVRJWEhnRVhGaFVVQnc0QkJ3WWpOVEkzUGdFM05qVTBKeTRCSnlZak1TSUhEZ0VIQmhVVUZ4NEJGeFl6QWdCcVhWNkxLQ2dvS0l0ZVhXcHFYVjZMS0Nnb0tJdGVYV3BWU2t0dklDRWhJRzlMU2xWVlNrdHZJQ0VoSUc5TFNsVkFLQ2lMWGwxcWFsMWVpeWdvS0NpTFhsMXFhbDFlaXlnb1ppRWdiMHRLVlZWS1MyOGdJU0VnYjB0S1ZWVktTMjhnSVFBQkFBQUJ3QUlBQThBQUVnQUFFelEzUGdFM05qTXhGU0lIRGdFSEJoVXhJd0FvS0l0ZVhXcFZTa3R2SUNGbUFjQnFYVjZMS0NobUlTQnZTMHBWQUFBQUFnQUEvOEFGdGdQQUFESUFPZ0FBQVJZWEhnRVhGaFVVQnc0QkJ3WUhJeFVoSWljdUFTY21OVFEzUGdFM05qTXhPQUV4TkRjK0FUYzJNeklYSGdFWEZoY1ZBVE1KQVRNVk16VUVqRDgzTmxBWEZ4WVhUalUxUFFMOGt6MDFOazhYRnhjWFR6WTFQU0lqZDFCUVdsSkpTWEluSnczK21kdisyLzdjMjVNQ1VRWWNIRmc1T1VBL09EbFhIQndJQWhjWFR6WTFQVHcxTms4WEYxdFFVSGNqSWh3Y1lVTkRUZ0wrM1FGdC9wT1Rrd0FCQUFBQUFRQUFtTTduUDE4UFBQVUFDd1FBQUFBQUFOY2laS1VBQUFBQTF5SmtwZi85LzcwRnRnUERBQUFBQ0FBQ0FBQUFBQUFBQUFFQUFBUEEvOEFBQUFXMy8vMy8vUVcyQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFNQkFBQUFBQUFBQUFBQUFBQUFnQUFBQVFBQVNBRUFBRGdCQUFBd0FRQUFKMEVBUC85QkFBQUFBUUFBQUFGdHdBQUFBQUFBQUFLQUJRQUhnQXlBRVlBakFDaUFMNEJGZ0UyQVk0QUFBQUJBQUFBREFBOEFBTUFBQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQ3VBQUVBQUFBQUFBRUFEUUFBQUFFQUFBQUFBQUlBQndDV0FBRUFBQUFBQUFNQURRQklBQUVBQUFBQUFBUUFEUUNyQUFFQUFBQUFBQVVBQ3dBbkFBRUFBQUFBQUFZQURRQnZBQUVBQUFBQUFBb0FHZ0RTQUFNQUFRUUpBQUVBR2dBTkFBTUFBUVFKQUFJQURnQ2RBQU1BQVFRSkFBTUFHZ0JWQUFNQUFRUUpBQVFBR2dDNEFBTUFBUVFKQUFVQUZnQXlBQU1BQVFRSkFBWUFHZ0I4QUFNQUFRUUpBQW9BTkFEc2QyVmlabXh2ZHkxcFkyOXVjd0IzQUdVQVlnQm1BR3dBYndCM0FDMEFhUUJqQUc4QWJnQnpWbVZ5YzJsdmJpQXhMakFBVmdCbEFISUFjd0JwQUc4QWJnQWdBREVBTGdBd2QyVmlabXh2ZHkxcFkyOXVjd0IzQUdVQVlnQm1BR3dBYndCM0FDMEFhUUJqQUc4QWJnQnpkMlZpWm14dmR5MXBZMjl1Y3dCM0FHVUFZZ0JtQUd3QWJ3QjNBQzBBYVFCakFHOEFiZ0J6VW1WbmRXeGhjZ0JTQUdVQVp3QjFBR3dBWVFCeWQyVmlabXh2ZHkxcFkyOXVjd0IzQUdVQVlnQm1BR3dBYndCM0FDMEFhUUJqQUc4QWJnQnpSbTl1ZENCblpXNWxjbUYwWldRZ1lua2dTV052VFc5dmJpNEFSZ0J2QUc0QWRBQWdBR2NBWlFCdUFHVUFjZ0JoQUhRQVpRQmtBQ0FBWWdCNUFDQUFTUUJqQUc4QVRRQnZBRzhBYmdBdUFBQUFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PSIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgfQogIAogIFtjbGFzc149InctaWNvbi0iXSwgW2NsYXNzKj0iIHctaWNvbi0iXSB7CiAgICBzcGVhazogbm9uZTsKICAgIGZvbnQtdmFyaWFudDogbm9ybWFsOwogICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBmb250LWZhbWlseTogd2ViZmxvdy1pY29ucyAhaW1wb3J0YW50OwogIH0KICAKICAudy1pY29uLXNsaWRlci1yaWdodDpiZWZvcmUgewogICAgY29udGVudDogIsOuy5zigqwiOwogIH0KICAKICAudy1pY29uLXNsaWRlci1sZWZ0OmJlZm9yZSB7CiAgICBjb250ZW50OiAiw67LnMKBIjsKICB9CiAgCiAgLnctaWNvbi1uYXYtbWVudTpiZWZvcmUgewogICAgY29udGVudDogIsOuy5zigJoiOwogIH0KICAKICAudy1pY29uLWFycm93LWRvd246YmVmb3JlLCAudy1pY29uLWRyb3Bkb3duLXRvZ2dsZTpiZWZvcmUgewogICAgY29udGVudDogIsOuy5zGkiI7CiAgfQogIAogIC53LWljb24tZmlsZS11cGxvYWQtcmVtb3ZlOmJlZm9yZSB7CiAgICBjb250ZW50OiAiw67CpOKCrCI7CiAgfQogIAogIC53LWljb24tZmlsZS11cGxvYWQtaWNvbjpiZWZvcmUgewogICAgY29udGVudDogIsOuwqTGkiI7CiAgfQogIAogICogewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CiAgCiAgaHRtbCB7CiAgICBoZWlnaHQ6IDEwMCU7CiAgfQogIAogIGJvZHkgewogICAgY29sb3I6ICMzMzM7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgbWluLWhlaWdodDogMTAwJTsKICAgIG1hcmdpbjogMDsKICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogIH0KICAKICBpbWcgewogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CiAgCiAgaHRtbC53LW1vZC10b3VjaCAqIHsKICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7CiAgfQogIAogIC53LWJsb2NrIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1pbmxpbmUtYmxvY2sgewogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAKICAudy1jbGVhcmZpeDpiZWZvcmUsIC53LWNsZWFyZml4OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjsKICAgIGRpc3BsYXk6IHRhYmxlOwogIH0KICAKICAudy1jbGVhcmZpeDphZnRlciB7CiAgICBjbGVhcjogYm90aDsKICB9CiAgCiAgLnctaGlkZGVuIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQogIAogIC53LWJ1dHRvbiB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM4OThlYzsKICAgIGJvcmRlcjogMDsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBwYWRkaW5nOiA5cHggMTVweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CiAgCiAgaW5wdXQudy1idXR0b24gewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247CiAgfQogIAogIGh0bWxbZGF0YS13LWR5bnBhZ2VdIFtkYXRhLXctY2xvYWtdIHsKICAgIGNvbG9yOiAjMDAwMCAhaW1wb3J0YW50OwogIH0KICAKICAudy1jb2RlLWJsb2NrIHsKICAgIG1hcmdpbjogdW5zZXQ7CiAgfQogIAogIHByZS53LWNvZGUtYmxvY2sgY29kZSB7CiAgICBhbGw6IGluaGVyaXQ7CiAgfQogIAogIC53LW9wdGltaXphdGlvbiB7CiAgICBkaXNwbGF5OiBjb250ZW50czsKICB9CiAgCiAgCiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgfQogIAogIGgxIHsKICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICBmb250LXNpemU6IDM4cHg7CiAgICBsaW5lLWhlaWdodDogNDRweDsKICB9CiAgCiAgaDIgewogICAgbWFyZ2luLXRvcDogMjBweDsKICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIGxpbmUtaGVpZ2h0OiAzNnB4OwogIH0KICAKICBoMyB7CiAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgZm9udC1zaXplOiAyNHB4OwogICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgfQogIAogIGg0IHsKICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBsaW5lLWhlaWdodDogMjRweDsKICB9CiAgCiAgaDUgewogICAgbWFyZ2luLXRvcDogMTBweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogIH0KICAKICBoNiB7CiAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgfQogIAogIHAgewogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgfQogIAogIGJsb2NrcXVvdGUgewogICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZTJlMmUyOwogICAgbWFyZ2luOiAwIDAgMTBweDsKICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogIH0KICAKICBmaWd1cmUgewogICAgbWFyZ2luOiAwIDAgMTBweDsKICB9CiAgCiAgdWwsIG9sIHsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgcGFkZGluZy1sZWZ0OiA0MHB4OwogIH0KICAKICAudy1saXN0LXVuc3R5bGVkIHsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgfQogIAogIC53LWVtYmVkOmJlZm9yZSwgLnctZW1iZWQ6YWZ0ZXIgewogICAgY29udGVudDogIiAiOwogICAgZ3JpZC1hcmVhOiAxIC8gMSAvIDIgLyAyOwogICAgZGlzcGxheTogdGFibGU7CiAgfQogIAogIC53LWVtYmVkOmFmdGVyIHsKICAgIGNsZWFyOiBib3RoOwogIH0KICAKICAudy12aWRlbyB7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC53LXZpZGVvIGlmcmFtZSwgLnctdmlkZW8gb2JqZWN0LCAudy12aWRlbyBlbWJlZCB7CiAgICBib3JkZXI6IG5vbmU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgfQogIAogIGZpZWxkc2V0IHsKICAgIGJvcmRlcjogMDsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7CiAgfQogIAogIGJ1dHRvbiwgW3R5cGU9ImJ1dHRvbiJdLCBbdHlwZT0icmVzZXQiXSB7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsKICAgIGJvcmRlcjogMDsKICB9CiAgCiAgLnctZm9ybSB7CiAgICBtYXJnaW46IDAgMCAxNXB4OwogIH0KICAKICAudy1mb3JtLWRvbmUgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBkaXNwbGF5OiBub25lOwogIH0KICAKICAudy1mb3JtLWZhaWwgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZGVkZTsKICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICBwYWRkaW5nOiAxMHB4OwogICAgZGlzcGxheTogbm9uZTsKICB9CiAgCiAgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctaW5wdXQsIC53LXNlbGVjdCB7CiAgICBjb2xvcjogIzMzMzsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAzOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctaW5wdXQ6OnBsYWNlaG9sZGVyLCAudy1zZWxlY3Q6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTk5OwogIH0KICAKICAudy1pbnB1dDpmb2N1cywgLnctc2VsZWN0OmZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogIzM4OThlYzsKICAgIG91dGxpbmU6IDA7CiAgfQogIAogIC53LWlucHV0W2Rpc2FibGVkXSwgLnctc2VsZWN0W2Rpc2FibGVkXSwgLnctaW5wdXRbcmVhZG9ubHldLCAudy1zZWxlY3RbcmVhZG9ubHldLCBmaWVsZHNldFtkaXNhYmxlZF0gLnctaW5wdXQsIGZpZWxkc2V0W2Rpc2FibGVkXSAudy1zZWxlY3QgewogICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICB9CiAgCiAgLnctaW5wdXRbZGlzYWJsZWRdOm5vdCgudy1pbnB1dC1kaXNhYmxlZCksIC53LXNlbGVjdFtkaXNhYmxlZF06bm90KC53LWlucHV0LWRpc2FibGVkKSwgLnctaW5wdXRbcmVhZG9ubHldLCAudy1zZWxlY3RbcmVhZG9ubHldLCBmaWVsZHNldFtkaXNhYmxlZF06bm90KC53LWlucHV0LWRpc2FibGVkKSAudy1pbnB1dCwgZmllbGRzZXRbZGlzYWJsZWRdOm5vdCgudy1pbnB1dC1kaXNhYmxlZCkgLnctc2VsZWN0IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7CiAgfQogIAogIHRleHRhcmVhLnctaW5wdXQsIHRleHRhcmVhLnctc2VsZWN0IHsKICAgIGhlaWdodDogYXV0bzsKICB9CiAgCiAgLnctc2VsZWN0IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7CiAgfQogIAogIC53LXNlbGVjdFttdWx0aXBsZV0gewogICAgaGVpZ2h0OiBhdXRvOwogIH0KICAKICAudy1mb3JtLWxhYmVsIHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAKICAudy1yYWRpbyB7CiAgICBtYXJnaW4tYm90dG9tOiA1cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctcmFkaW86YmVmb3JlLCAudy1yYWRpbzphZnRlciB7CiAgICBjb250ZW50OiAiICI7CiAgICBncmlkLWFyZWE6IDEgLyAxIC8gMiAvIDI7CiAgICBkaXNwbGF5OiB0YWJsZTsKICB9CiAgCiAgLnctcmFkaW86YWZ0ZXIgewogICAgY2xlYXI6IGJvdGg7CiAgfQogIAogIC53LXJhZGlvLWlucHV0IHsKICAgIGZsb2F0OiBsZWZ0OwogICAgbWFyZ2luOiAzcHggMCAwIC0yMHB4OwogICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsKICB9CiAgCiAgLnctZmlsZS11cGxvYWQgewogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1maWxlLXVwbG9hZC1pbnB1dCB7CiAgICBvcGFjaXR5OiAwOwogICAgei1pbmRleDogLTEwMDsKICAgIHdpZHRoOiAuMXB4OwogICAgaGVpZ2h0OiAuMXB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CiAgCiAgLnctZmlsZS11cGxvYWQtZGVmYXVsdCwgLnctZmlsZS11cGxvYWQtdXBsb2FkaW5nLCAudy1maWxlLXVwbG9hZC1zdWNjZXNzIHsKICAgIGNvbG9yOiAjMzMzOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAKICAudy1maWxlLXVwbG9hZC1lcnJvciB7CiAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWZpbGUtdXBsb2FkLWRlZmF1bHQudy1oaWRkZW4sIC53LWZpbGUtdXBsb2FkLXVwbG9hZGluZy53LWhpZGRlbiwgLnctZmlsZS11cGxvYWQtZXJyb3Iudy1oaWRkZW4sIC53LWZpbGUtdXBsb2FkLXN1Y2Nlc3Mudy1oaWRkZW4gewogICAgZGlzcGxheTogbm9uZTsKICB9CiAgCiAgLnctZmlsZS11cGxvYWQtdXBsb2FkaW5nLWJ0biB7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgZm9udC1zaXplOiAxNHB4OwogICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWZpbGUtdXBsb2FkLWZpbGUgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICBmbGV4LWdyb3c6IDE7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiA4cHggOXB4IDhweCAxMXB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctZmlsZS11cGxvYWQtZmlsZS1uYW1lIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctZmlsZS1yZW1vdmUtbGluayB7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB3aWR0aDogYXV0bzsKICAgIGhlaWdodDogYXV0bzsKICAgIG1hcmdpbi10b3A6IDNweDsKICAgIG1hcmdpbi1sZWZ0OiAxMHB4OwogICAgcGFkZGluZzogM3B4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWljb24tZmlsZS11cGxvYWQtcmVtb3ZlIHsKICAgIG1hcmdpbjogYXV0bzsKICAgIGZvbnQtc2l6ZTogMTBweDsKICB9CiAgCiAgLnctZmlsZS11cGxvYWQtZXJyb3ItbXNnIHsKICAgIGNvbG9yOiAjZWEzODRjOwogICAgcGFkZGluZzogMnB4IDA7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIAogIC53LWZpbGUtdXBsb2FkLWluZm8gewogICAgcGFkZGluZzogMCAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDM4cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIAogIC53LWZpbGUtdXBsb2FkLWxhYmVsIHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOwogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogOHB4IDEycHg7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAKICAudy1pY29uLWZpbGUtdXBsb2FkLWljb24sIC53LWljb24tZmlsZS11cGxvYWQtdXBsb2FkaW5nIHsKICAgIHdpZHRoOiAyMHB4OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIAogIC53LWljb24tZmlsZS11cGxvYWQtdXBsb2FkaW5nIHsKICAgIGhlaWdodDogMjBweDsKICB9CiAgCiAgLnctY29udGFpbmVyIHsKICAgIG1heC13aWR0aDogOTQwcHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICB9CiAgCiAgLnctY29udGFpbmVyOmJlZm9yZSwgLnctY29udGFpbmVyOmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjsKICAgIGRpc3BsYXk6IHRhYmxlOwogIH0KICAKICAudy1jb250YWluZXI6YWZ0ZXIgewogICAgY2xlYXI6IGJvdGg7CiAgfQogIAogIC53LWNvbnRhaW5lciAudy1yb3cgewogICAgbWFyZ2luLWxlZnQ6IC0xMHB4OwogICAgbWFyZ2luLXJpZ2h0OiAtMTBweDsKICB9CiAgCiAgLnctcm93OmJlZm9yZSwgLnctcm93OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjsKICAgIGRpc3BsYXk6IHRhYmxlOwogIH0KICAKICAudy1yb3c6YWZ0ZXIgewogICAgY2xlYXI6IGJvdGg7CiAgfQogIAogIC53LXJvdyAudy1yb3cgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgfQogIAogIC53LWNvbCB7CiAgICBmbG9hdDogbGVmdDsKICAgIHdpZHRoOiAxMDAlOwogICAgbWluLWhlaWdodDogMXB4OwogICAgcGFkZGluZy1sZWZ0OiAxMHB4OwogICAgcGFkZGluZy1yaWdodDogMTBweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnctY29sIC53LWNvbCB7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBwYWRkaW5nLXJpZ2h0OiAwOwogIH0KICAKICAudy1jb2wtMSB7CiAgICB3aWR0aDogOC4zMzMzMyU7CiAgfQogIAogIC53LWNvbC0yIHsKICAgIHdpZHRoOiAxNi42NjY3JTsKICB9CiAgCiAgLnctY29sLTMgewogICAgd2lkdGg6IDI1JTsKICB9CiAgCiAgLnctY29sLTQgewogICAgd2lkdGg6IDMzLjMzMzMlOwogIH0KICAKICAudy1jb2wtNSB7CiAgICB3aWR0aDogNDEuNjY2NyU7CiAgfQogIAogIC53LWNvbC02IHsKICAgIHdpZHRoOiA1MCU7CiAgfQogIAogIC53LWNvbC03IHsKICAgIHdpZHRoOiA1OC4zMzMzJTsKICB9CiAgCiAgLnctY29sLTggewogICAgd2lkdGg6IDY2LjY2NjclOwogIH0KICAKICAudy1jb2wtOSB7CiAgICB3aWR0aDogNzUlOwogIH0KICAKICAudy1jb2wtMTAgewogICAgd2lkdGg6IDgzLjMzMzMlOwogIH0KICAKICAudy1jb2wtMTEgewogICAgd2lkdGg6IDkxLjY2NjclOwogIH0KICAKICAudy1jb2wtMTIgewogICAgd2lkdGg6IDEwMCU7CiAgfQogIAogIC53LWhpZGRlbi1tYWluIHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHsKICAgIC53LWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogNzI4cHg7CiAgICB9CiAgCiAgICAudy1oaWRkZW4tbWFpbiB7CiAgICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsKICAgIH0KICAKICAgIC53LWhpZGRlbi1tZWRpdW0gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CiAgCiAgICAudy1jb2wtbWVkaXVtLTEgewogICAgICB3aWR0aDogOC4zMzMzMyU7CiAgICB9CiAgCiAgICAudy1jb2wtbWVkaXVtLTIgewogICAgICB3aWR0aDogMTYuNjY2NyU7CiAgICB9CiAgCiAgICAudy1jb2wtbWVkaXVtLTMgewogICAgICB3aWR0aDogMjUlOwogICAgfQogIAogICAgLnctY29sLW1lZGl1bS00IHsKICAgICAgd2lkdGg6IDMzLjMzMzMlOwogICAgfQogIAogICAgLnctY29sLW1lZGl1bS01IHsKICAgICAgd2lkdGg6IDQxLjY2NjclOwogICAgfQogIAogICAgLnctY29sLW1lZGl1bS02IHsKICAgICAgd2lkdGg6IDUwJTsKICAgIH0KICAKICAgIC53LWNvbC1tZWRpdW0tNyB7CiAgICAgIHdpZHRoOiA1OC4zMzMzJTsKICAgIH0KICAKICAgIC53LWNvbC1tZWRpdW0tOCB7CiAgICAgIHdpZHRoOiA2Ni42NjY3JTsKICAgIH0KICAKICAgIC53LWNvbC1tZWRpdW0tOSB7CiAgICAgIHdpZHRoOiA3NSU7CiAgICB9CiAgCiAgICAudy1jb2wtbWVkaXVtLTEwIHsKICAgICAgd2lkdGg6IDgzLjMzMzMlOwogICAgfQogIAogICAgLnctY29sLW1lZGl1bS0xMSB7CiAgICAgIHdpZHRoOiA5MS42NjY3JTsKICAgIH0KICAKICAgIC53LWNvbC1tZWRpdW0tMTIgewogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC53LWNvbC1zdGFjayB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBsZWZ0OiBhdXRvOwogICAgICByaWdodDogYXV0bzsKICAgIH0KICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHsKICAgIC53LWhpZGRlbi1tYWluLCAudy1oaWRkZW4tbWVkaXVtIHsKICAgICAgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OwogICAgfQogIAogICAgLnctaGlkZGVuLXNtYWxsIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQogIAogICAgLnctcm93LCAudy1jb250YWluZXIgLnctcm93IHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KICAKICAgIC53LWNvbCB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBsZWZ0OiBhdXRvOwogICAgICByaWdodDogYXV0bzsKICAgIH0KICAKICAgIC53LWNvbC1zbWFsbC0xIHsKICAgICAgd2lkdGg6IDguMzMzMzMlOwogICAgfQogIAogICAgLnctY29sLXNtYWxsLTIgewogICAgICB3aWR0aDogMTYuNjY2NyU7CiAgICB9CiAgCiAgICAudy1jb2wtc21hbGwtMyB7CiAgICAgIHdpZHRoOiAyNSU7CiAgICB9CiAgCiAgICAudy1jb2wtc21hbGwtNCB7CiAgICAgIHdpZHRoOiAzMy4zMzMzJTsKICAgIH0KICAKICAgIC53LWNvbC1zbWFsbC01IHsKICAgICAgd2lkdGg6IDQxLjY2NjclOwogICAgfQogIAogICAgLnctY29sLXNtYWxsLTYgewogICAgICB3aWR0aDogNTAlOwogICAgfQogIAogICAgLnctY29sLXNtYWxsLTcgewogICAgICB3aWR0aDogNTguMzMzMyU7CiAgICB9CiAgCiAgICAudy1jb2wtc21hbGwtOCB7CiAgICAgIHdpZHRoOiA2Ni42NjY3JTsKICAgIH0KICAKICAgIC53LWNvbC1zbWFsbC05IHsKICAgICAgd2lkdGg6IDc1JTsKICAgIH0KICAKICAgIC53LWNvbC1zbWFsbC0xMCB7CiAgICAgIHdpZHRoOiA4My4zMzMzJTsKICAgIH0KICAKICAgIC53LWNvbC1zbWFsbC0xMSB7CiAgICAgIHdpZHRoOiA5MS42NjY3JTsKICAgIH0KICAKICAgIC53LWNvbC1zbWFsbC0xMiB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogIH0KICAKICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkgewogICAgLnctY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgfQogIAogICAgLnctaGlkZGVuLW1haW4sIC53LWhpZGRlbi1tZWRpdW0sIC53LWhpZGRlbi1zbWFsbCB7CiAgICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsKICAgIH0KICAKICAgIC53LWhpZGRlbi10aW55IHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQogIAogICAgLnctY29sIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CiAgCiAgICAudy1jb2wtdGlueS0xIHsKICAgICAgd2lkdGg6IDguMzMzMzMlOwogICAgfQogIAogICAgLnctY29sLXRpbnktMiB7CiAgICAgIHdpZHRoOiAxNi42NjY3JTsKICAgIH0KICAKICAgIC53LWNvbC10aW55LTMgewogICAgICB3aWR0aDogMjUlOwogICAgfQogIAogICAgLnctY29sLXRpbnktNCB7CiAgICAgIHdpZHRoOiAzMy4zMzMzJTsKICAgIH0KICAKICAgIC53LWNvbC10aW55LTUgewogICAgICB3aWR0aDogNDEuNjY2NyU7CiAgICB9CiAgCiAgICAudy1jb2wtdGlueS02IHsKICAgICAgd2lkdGg6IDUwJTsKICAgIH0KICAKICAgIC53LWNvbC10aW55LTcgewogICAgICB3aWR0aDogNTguMzMzMyU7CiAgICB9CiAgCiAgICAudy1jb2wtdGlueS04IHsKICAgICAgd2lkdGg6IDY2LjY2NjclOwogICAgfQogIAogICAgLnctY29sLXRpbnktOSB7CiAgICAgIHdpZHRoOiA3NSU7CiAgICB9CiAgCiAgICAudy1jb2wtdGlueS0xMCB7CiAgICAgIHdpZHRoOiA4My4zMzMzJTsKICAgIH0KICAKICAgIC53LWNvbC10aW55LTExIHsKICAgICAgd2lkdGg6IDkxLjY2NjclOwogICAgfQogIAogICAgLnctY29sLXRpbnktMTIgewogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICB9CiAgCiAgLnctd2lkZ2V0IHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnctd2lkZ2V0LW1hcCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogNDAwcHg7CiAgfQogIAogIC53LXdpZGdldC1tYXAgbGFiZWwgewogICAgd2lkdGg6IGF1dG87CiAgICBkaXNwbGF5OiBpbmxpbmU7CiAgfQogIAogIC53LXdpZGdldC1tYXAgaW1nIHsKICAgIG1heC13aWR0aDogaW5oZXJpdDsKICB9CiAgCiAgLnctd2lkZ2V0LW1hcCAuZ20tc3R5bGUtaXcgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogIH0KICAKICAudy13aWRnZXQtbWFwIC5nbS1zdHlsZS1pdyA+IGJ1dHRvbiB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgfQogIAogIC53LXdpZGdldC10d2l0dGVyIHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC53LXdpZGdldC10d2l0dGVyLWNvdW50LXNoaW0gewogICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjNzU4Njk2OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2lkdGg6IDI4cHg7CiAgICBoZWlnaHQ6IDIwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC53LXdpZGdldC10d2l0dGVyLWNvdW50LXNoaW0gKiB7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CiAgCiAgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbSAudy13aWRnZXQtdHdpdHRlci1jb3VudC1pbm5lciB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjogIzk5OTsKICAgIGZvbnQtZmFtaWx5OiBzZXJpZjsKICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIGxpbmUtaGVpZ2h0OiAxMnB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAudy13aWRnZXQtdHdpdHRlci1jb3VudC1zaGltIC53LXdpZGdldC10d2l0dGVyLWNvdW50LWNsZWFyIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAudy13aWRnZXQtdHdpdHRlci1jb3VudC1zaGltLnctLWxhcmdlIHsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAyOHB4OwogIH0KICAKICAudy13aWRnZXQtdHdpdHRlci1jb3VudC1zaGltLnctLWxhcmdlIC53LXdpZGdldC10d2l0dGVyLWNvdW50LWlubmVyIHsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogIH0KICAKICAudy13aWRnZXQtdHdpdHRlci1jb3VudC1zaGltOm5vdCgudy0tdmVydGljYWwpIHsKICAgIG1hcmdpbi1sZWZ0OiA1cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICB9CiAgCiAgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbTpub3QoLnctLXZlcnRpY2FsKS53LS1sYXJnZSB7CiAgICBtYXJnaW4tbGVmdDogNnB4OwogIH0KICAKICAudy13aWRnZXQtdHdpdHRlci1jb3VudC1zaGltOm5vdCgudy0tdmVydGljYWwpOmJlZm9yZSwgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbTpub3QoLnctLXZlcnRpY2FsKTphZnRlciB7CiAgICBjb250ZW50OiAiICI7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGJvcmRlcjogc29saWQgIzAwMDA7CiAgICB3aWR0aDogMDsKICAgIGhlaWdodDogMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgbGVmdDogMDsKICB9CiAgCiAgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbTpub3QoLnctLXZlcnRpY2FsKTpiZWZvcmUgewogICAgYm9yZGVyLXdpZHRoOiA0cHg7CiAgICBib3JkZXItY29sb3I6ICM3NTg2OTYwMCAjNWQ2YzdiICM3NTg2OTYwMCAjNzU4Njk2MDA7CiAgICBtYXJnaW4tdG9wOiAtNHB4OwogICAgbWFyZ2luLWxlZnQ6IC05cHg7CiAgfQogIAogIC53LXdpZGdldC10d2l0dGVyLWNvdW50LXNoaW06bm90KC53LS12ZXJ0aWNhbCkudy0tbGFyZ2U6YmVmb3JlIHsKICAgIGJvcmRlci13aWR0aDogNXB4OwogICAgbWFyZ2luLXRvcDogLTVweDsKICAgIG1hcmdpbi1sZWZ0OiAtMTBweDsKICB9CiAgCiAgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbTpub3QoLnctLXZlcnRpY2FsKTphZnRlciB7CiAgICBib3JkZXItd2lkdGg6IDRweDsKICAgIGJvcmRlci1jb2xvcjogI2ZmZjAgI2ZmZiAjZmZmMCAjZmZmMDsKICAgIG1hcmdpbi10b3A6IC00cHg7CiAgICBtYXJnaW4tbGVmdDogLThweDsKICB9CiAgCiAgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbTpub3QoLnctLXZlcnRpY2FsKS53LS1sYXJnZTphZnRlciB7CiAgICBib3JkZXItd2lkdGg6IDVweDsKICAgIG1hcmdpbi10b3A6IC01cHg7CiAgICBtYXJnaW4tbGVmdDogLTlweDsKICB9CiAgCiAgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbS53LS12ZXJ0aWNhbCB7CiAgICB3aWR0aDogNjFweDsKICAgIGhlaWdodDogMzNweDsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICB9CiAgCiAgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbS53LS12ZXJ0aWNhbDpiZWZvcmUsIC53LXdpZGdldC10d2l0dGVyLWNvdW50LXNoaW0udy0tdmVydGljYWw6YWZ0ZXIgewogICAgY29udGVudDogIiAiOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBib3JkZXI6IHNvbGlkICMwMDAwOwogICAgd2lkdGg6IDA7CiAgICBoZWlnaHQ6IDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDEwMCU7CiAgICBsZWZ0OiA1MCU7CiAgfQogIAogIC53LXdpZGdldC10d2l0dGVyLWNvdW50LXNoaW0udy0tdmVydGljYWw6YmVmb3JlIHsKICAgIGJvcmRlci13aWR0aDogNXB4OwogICAgYm9yZGVyLWNvbG9yOiAjNWQ2YzdiICM3NTg2OTYwMCAjNzU4Njk2MDA7CiAgICBtYXJnaW4tbGVmdDogLTVweDsKICB9CiAgCiAgLnctd2lkZ2V0LXR3aXR0ZXItY291bnQtc2hpbS53LS12ZXJ0aWNhbDphZnRlciB7CiAgICBib3JkZXItd2lkdGg6IDRweDsKICAgIGJvcmRlci1jb2xvcjogI2ZmZiAjZmZmMCAjZmZmMDsKICAgIG1hcmdpbi1sZWZ0OiAtNHB4OwogIH0KICAKICAudy13aWRnZXQtdHdpdHRlci1jb3VudC1zaGltLnctLXZlcnRpY2FsIC53LXdpZGdldC10d2l0dGVyLWNvdW50LWlubmVyIHsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogIH0KICAKICAudy13aWRnZXQtdHdpdHRlci1jb3VudC1zaGltLnctLXZlcnRpY2FsLnctLWxhcmdlIHsKICAgIHdpZHRoOiA3NnB4OwogIH0KICAKICAudy1iYWNrZ3JvdW5kLXZpZGVvIHsKICAgIGNvbG9yOiAjZmZmOwogICAgaGVpZ2h0OiA1MDBweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC53LWJhY2tncm91bmQtdmlkZW8gPiB2aWRlbyB7CiAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIHotaW5kZXg6IC0xMDA7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7CiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBtYXJnaW46IGF1dG87CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogLTEwMCU7CiAgfQogIAogIC53LWJhY2tncm91bmQtdmlkZW8gPiB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGFydC1wbGF5YmFjay1idXR0b24gewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogIH0KICAKICAudy1iYWNrZ3JvdW5kLXZpZGVvLS1jb250cm9sIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgcGFkZGluZzogMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJvdHRvbTogMWVtOwogICAgcmlnaHQ6IDFlbTsKICB9CiAgCiAgLnctYmFja2dyb3VuZC12aWRlby0tY29udHJvbCA+IFtoaWRkZW5dIHsKICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICB9CiAgCiAgLnctc2xpZGVyIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGNsZWFyOiBib3RoOwogICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiAjMDAwMDsKICAgIHRhcC1oaWdobGlnaHQtY29sb3I6ICMwMDAwOwogICAgYmFja2dyb3VuZDogI2RkZDsKICAgIGhlaWdodDogMzAwcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC53LXNsaWRlci1tYXNrIHsKICAgIHotaW5kZXg6IDE7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAudy1zbGlkZSB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnctc2xpZGVyLW5hdiB7CiAgICB6LWluZGV4OiAyOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiAjMDAwMDsKICAgIHRhcC1oaWdobGlnaHQtY29sb3I6ICMwMDAwOwogICAgaGVpZ2h0OiA0MHB4OwogICAgbWFyZ2luOiBhdXRvOwogICAgcGFkZGluZy10b3A6IDEwcHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogYXV0byAwIDA7CiAgfQogIAogIC53LXNsaWRlci1uYXYudy1yb3VuZCA+IGRpdiB7CiAgICBib3JkZXItcmFkaXVzOiAxMDAlOwogIH0KICAKICAudy1zbGlkZXItbmF2LnctbnVtID4gZGl2IHsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBwYWRkaW5nOiAuMmVtIC41ZW07CiAgfQogIAogIC53LXNsaWRlci1uYXYudy1zaGFkb3cgPiBkaXYgewogICAgYm94LXNoYWRvdzogMCAwIDNweCAjMzMzNjsKICB9CiAgCiAgLnctc2xpZGVyLW5hdi1pbnZlcnQgewogICAgY29sb3I6ICNmZmY7CiAgfQogIAogIC53LXNsaWRlci1uYXYtaW52ZXJ0ID4gZGl2IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI2OwogIH0KICAKICAudy1zbGlkZXItbmF2LWludmVydCA+IGRpdi53LWFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogIH0KICAKICAudy1zbGlkZXItZG90IHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY2OwogICAgd2lkdGg6IDFlbTsKICAgIGhlaWdodDogMWVtOwogICAgbWFyZ2luOiAwIDNweCAuNWVtOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMXMsIGNvbG9yIC4xczsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnctc2xpZGVyLWRvdC53LWFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogIH0KICAKICAudy1zbGlkZXItZG90OmZvY3VzIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggI2ZmZjsKICB9CiAgCiAgLnctc2xpZGVyLWRvdDpmb2N1cy53LWFjdGl2ZSB7CiAgICBib3gtc2hhZG93OiBub25lOwogIH0KICAKICAudy1zbGlkZXItYXJyb3ctbGVmdCwgLnctc2xpZGVyLWFycm93LXJpZ2h0IHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGNvbG9yOiAjZmZmOwogICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiAjMDAwMDsKICAgIHRhcC1oaWdobGlnaHQtY29sb3I6ICMwMDAwOwogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgd2lkdGg6IDgwcHg7CiAgICBtYXJnaW46IGF1dG87CiAgICBmb250LXNpemU6IDQwcHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC53LXNsaWRlci1hcnJvdy1sZWZ0IFtjbGFzc149InctaWNvbi0iXSwgLnctc2xpZGVyLWFycm93LXJpZ2h0IFtjbGFzc149InctaWNvbi0iXSwgLnctc2xpZGVyLWFycm93LWxlZnQgW2NsYXNzKj0iIHctaWNvbi0iXSwgLnctc2xpZGVyLWFycm93LXJpZ2h0IFtjbGFzcyo9IiB3LWljb24tIl0gewogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAKICAudy1zbGlkZXItYXJyb3ctbGVmdDpmb2N1cywgLnctc2xpZGVyLWFycm93LXJpZ2h0OmZvY3VzIHsKICAgIG91dGxpbmU6IDA7CiAgfQogIAogIC53LXNsaWRlci1hcnJvdy1sZWZ0IHsKICAgIHotaW5kZXg6IDM7CiAgICByaWdodDogYXV0bzsKICB9CiAgCiAgLnctc2xpZGVyLWFycm93LXJpZ2h0IHsKICAgIHotaW5kZXg6IDQ7CiAgICBsZWZ0OiBhdXRvOwogIH0KICAKICAudy1pY29uLXNsaWRlci1sZWZ0LCAudy1pY29uLXNsaWRlci1yaWdodCB7CiAgICB3aWR0aDogMWVtOwogICAgaGVpZ2h0OiAxZW07CiAgICBtYXJnaW46IGF1dG87CiAgICBpbnNldDogMDsKICB9CiAgCiAgLnctc2xpZGVyLWFyaWEtbGFiZWwgewogICAgY2xpcDogcmVjdCgwIDAgMCAwKTsKICAgIGJvcmRlcjogMDsKICAgIHdpZHRoOiAxcHg7CiAgICBoZWlnaHQ6IDFweDsKICAgIG1hcmdpbjogLTFweDsKICAgIHBhZGRpbmc6IDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAudy1zbGlkZXItZm9yY2Utc2hvdyB7CiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogIH0KICAKICAudy1kcm9wZG93biB7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgei1pbmRleDogOTAwOwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC53LWRyb3Bkb3duLWJ0biwgLnctZHJvcGRvd24tdG9nZ2xlLCAudy1kcm9wZG93bi1saW5rIHsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICBjb2xvcjogIzIyMjsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBwYWRkaW5nOiAyMHB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAudy1kcm9wZG93bi10b2dnbGUgewogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgcGFkZGluZy1yaWdodDogNDBweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CiAgCiAgLnctZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHsKICAgIG91dGxpbmU6IDA7CiAgfQogIAogIC53LWljb24tZHJvcGRvd24tdG9nZ2xlIHsKICAgIHdpZHRoOiAxZW07CiAgICBoZWlnaHQ6IDFlbTsKICAgIG1hcmdpbjogYXV0byAyMHB4IGF1dG8gYXV0bzsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGJvdHRvbTogMDsKICAgIHJpZ2h0OiAwOwogIH0KICAKICAudy1kcm9wZG93bi1saXN0IHsKICAgIGJhY2tncm91bmQ6ICNkZGQ7CiAgICBtaW4td2lkdGg6IDEwMCU7CiAgICBkaXNwbGF5OiBub25lOwogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAKICAudy1kcm9wZG93bi1saXN0LnctLW9wZW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWRyb3Bkb3duLWxpbmsgewogICAgY29sb3I6ICMyMjI7CiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctZHJvcGRvd24tbGluay53LS1jdXJyZW50IHsKICAgIGNvbG9yOiAjMDA4MmYzOwogIH0KICAKICAudy1kcm9wZG93bi1saW5rOmZvY3VzIHsKICAgIG91dGxpbmU6IDA7CiAgfQogIAogIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7CiAgICAudy1uYXYtYnJhbmQgewogICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICB9CiAgfQogIAogIC53LWxpZ2h0Ym94LWJhY2tkcm9wIHsKICAgIGN1cnNvcjogYXV0bzsKICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7CiAgICB0ZXh0LWluZGVudDogMDsKICAgIHRleHQtc2hhZG93OiBub25lOwogICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgIHdvcmQtYnJlYWs6IG5vcm1hbDsKICAgIHdvcmQtc3BhY2luZzogbm9ybWFsOwogICAgd29yZC13cmFwOiBub3JtYWw7CiAgICBjb2xvcjogI2ZmZjsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHotaW5kZXg6IDIwMDA7CiAgICBvcGFjaXR5OiAwOwogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYmFja2dyb3VuZDogIzAwMDAwMGU2OwogICAgb3V0bGluZTogMDsKICAgIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBVYnVudHUsIFNlZ29lIFVJLCBWZXJkYW5hLCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOiAxN3B4OwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC13ZWlnaHQ6IDMwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBsaXN0LXN0eWxlOiBkaXNjOwogICAgcG9zaXRpb246IGZpeGVkOwogICAgaW5zZXQ6IDA7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDApOwogIH0KICAKICAudy1saWdodGJveC1iYWNrZHJvcCwgLnctbGlnaHRib3gtY29udGFpbmVyIHsKICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICAgIGhlaWdodDogMTAwJTsKICAgIG92ZXJmbG93OiBhdXRvOwogIH0KICAKICAudy1saWdodGJveC1jb250ZW50IHsKICAgIGhlaWdodDogMTAwdmg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAudy1saWdodGJveC12aWV3IHsKICAgIG9wYWNpdHk6IDA7CiAgICB3aWR0aDogMTAwdnc7CiAgICBoZWlnaHQ6IDEwMHZoOwogICAgcG9zaXRpb246IGFic29sdXRlOwogIH0KICAKICAudy1saWdodGJveC12aWV3OmJlZm9yZSB7CiAgICBjb250ZW50OiAiIjsKICAgIGhlaWdodDogMTAwdmg7CiAgfQogIAogIC53LWxpZ2h0Ym94LWdyb3VwLCAudy1saWdodGJveC1ncm91cCAudy1saWdodGJveC12aWV3LCAudy1saWdodGJveC1ncm91cCAudy1saWdodGJveC12aWV3OmJlZm9yZSB7CiAgICBoZWlnaHQ6IDg2dmg7CiAgfQogIAogIC53LWxpZ2h0Ym94LWZyYW1lLCAudy1saWdodGJveC12aWV3OmJlZm9yZSB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAKICAudy1saWdodGJveC1maWd1cmUgewogICAgbWFyZ2luOiAwOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAudy1saWdodGJveC1ncm91cCAudy1saWdodGJveC1maWd1cmUgewogICAgY3Vyc29yOiBwb2ludGVyOwogIH0KICAKICAudy1saWdodGJveC1pbWcgewogICAgd2lkdGg6IGF1dG87CiAgICBtYXgtd2lkdGg6IG5vbmU7CiAgICBoZWlnaHQ6IGF1dG87CiAgfQogIAogIC53LWxpZ2h0Ym94LWltYWdlIHsKICAgIGZsb2F0OiBub25lOwogICAgbWF4LXdpZHRoOiAxMDB2dzsKICAgIG1heC1oZWlnaHQ6IDEwMHZoOwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWxpZ2h0Ym94LWdyb3VwIC53LWxpZ2h0Ym94LWltYWdlIHsKICAgIG1heC1oZWlnaHQ6IDg2dmg7CiAgfQogIAogIC53LWxpZ2h0Ym94LWNhcHRpb24gewogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGJhY2tncm91bmQ6ICMwMDA2OwogICAgcGFkZGluZzogLjVlbSAxZW07CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3R0b206IDA7CiAgICBsZWZ0OiAwOwogICAgcmlnaHQ6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAudy1saWdodGJveC1lbWJlZCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogIH0KICAKICAudy1saWdodGJveC1jb250cm9sIHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHg7CiAgICB3aWR0aDogNGVtOwogICAgdHJhbnNpdGlvbjogYWxsIC4zczsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICB9CiAgCiAgLnctbGlnaHRib3gtbGVmdCB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlpMHlNQ0F3SURJMElEUXdJaUIzYVdSMGFEMGlNalFpSUdobGFXZG9kRDBpTkRBaVBqeG5JSFJ5WVc1elptOXliVDBpY205MFlYUmxLRFExS1NJK1BIQmhkR2dnWkQwaWJUQWdNR2cxZGpJemFESXpkalZvTFRJNGVpSWdiM0JoWTJsMGVUMGlMalFpTHo0OGNHRjBhQ0JrUFNKdE1TQXhhRE4yTWpOb01qTjJNMmd0TWpaNklpQm1hV3hzUFNJalptWm1JaTgrUEM5blBqd3ZjM1puUGc9PSIpOwogICAgZGlzcGxheTogbm9uZTsKICAgIGJvdHRvbTogMDsKICAgIGxlZnQ6IDA7CiAgfQogIAogIC53LWxpZ2h0Ym94LXJpZ2h0IHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWkwMElEQWdNalFnTkRBaUlIZHBaSFJvUFNJeU5DSWdhR1ZwWjJoMFBTSTBNQ0krUEdjZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb05EVXBJajQ4Y0dGMGFDQmtQU0p0TUMwd2FESTRkakk0YUMwMWRpMHlNMmd0TWpONklpQnZjR0ZqYVhSNVBTSXVOQ0l2UGp4d1lYUm9JR1E5SW0weElERm9NaloyTWpab0xUTjJMVEl6YUMweU0zb2lJR1pwYkd3OUlpTm1abVlpTHo0OEwyYytQQzl6ZG1jKyIpOwogICAgZGlzcGxheTogbm9uZTsKICAgIGJvdHRvbTogMDsKICAgIHJpZ2h0OiAwOwogIH0KICAKICAudy1saWdodGJveC1jbG9zZSB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlpMDBJREFnTVRnZ01UY2lJSGRwWkhSb1BTSXhPQ0lnYUdWcFoyaDBQU0l4TnlJK1BHY2dkSEpoYm5ObWIzSnRQU0p5YjNSaGRHVW9ORFVwSWo0OGNHRjBhQ0JrUFNKdE1DQXdhRGQyTFRkb05YWTNhRGQyTldndE4zWTNhQzAxZGkwM2FDMDNlaUlnYjNCaFkybDBlVDBpTGpRaUx6NDhjR0YwYUNCa1BTSnRNU0F4YURkMkxUZG9NM1kzYURkMk0yZ3ROM1kzYUMwemRpMDNhQzAzZWlJZ1ptbHNiRDBpSTJabVppSXZQand2Wno0OEwzTjJaejQ9Iik7CiAgICBiYWNrZ3JvdW5kLXNpemU6IDE4cHg7CiAgICBoZWlnaHQ6IDIuNmVtOwogICAgcmlnaHQ6IDA7CiAgfQogIAogIC53LWxpZ2h0Ym94LXN0cmlwIHsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBwYWRkaW5nOiAwIDF2aDsKICAgIGxpbmUtaGVpZ2h0OiAwOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgb3ZlcmZsb3c6IGF1dG8gaGlkZGVuOwogIH0KICAKICAudy1saWdodGJveC1pdGVtIHsKICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgd2lkdGg6IDEwdmg7CiAgICBwYWRkaW5nOiAydmggMXZoOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogIH0KICAKICAudy1saWdodGJveC1hY3RpdmUgewogICAgb3BhY2l0eTogLjM7CiAgfQogIAogIC53LWxpZ2h0Ym94LXRodW1ibmFpbCB7CiAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgaGVpZ2h0OiAxMHZoOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CiAgCiAgLnctbGlnaHRib3gtdGh1bWJuYWlsLWltYWdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgfQogIAogIC53LWxpZ2h0Ym94LXRodW1ibmFpbCAudy1saWdodGJveC10YWxsIHsKICAgIHdpZHRoOiAxMDAlOwogICAgdG9wOiA1MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTsKICB9CiAgCiAgLnctbGlnaHRib3gtdGh1bWJuYWlsIC53LWxpZ2h0Ym94LXdpZGUgewogICAgaGVpZ2h0OiAxMDAlOwogICAgbGVmdDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7CiAgfQogIAogIC53LWxpZ2h0Ym94LXNwaW5uZXIgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogNXB4IHNvbGlkICMwMDA2OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgd2lkdGg6IDQwcHg7CiAgICBoZWlnaHQ6IDQwcHg7CiAgICBtYXJnaW4tdG9wOiAtMjBweDsKICAgIG1hcmdpbi1sZWZ0OiAtMjBweDsKICAgIGFuaW1hdGlvbjogLjhzIGxpbmVhciBpbmZpbml0ZSBzcGluOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7CiAgICBsZWZ0OiA1MCU7CiAgfQogIAogIC53LWxpZ2h0Ym94LXNwaW5uZXI6YWZ0ZXIgewogICAgY29udGVudDogIiI7CiAgICBib3JkZXI6IDNweCBzb2xpZCAjMDAwMDsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogLTRweDsKICB9CiAgCiAgLnctbGlnaHRib3gtaGlkZSB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KICAKICAudy1saWdodGJveC1ub3Njcm9sbCB7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgIC53LWxpZ2h0Ym94LWNvbnRlbnQgewogICAgICBoZWlnaHQ6IDk2dmg7CiAgICAgIG1hcmdpbi10b3A6IDJ2aDsKICAgIH0KICAKICAgIC53LWxpZ2h0Ym94LXZpZXcsIC53LWxpZ2h0Ym94LXZpZXc6YmVmb3JlIHsKICAgICAgaGVpZ2h0OiA5NnZoOwogICAgfQogIAogICAgLnctbGlnaHRib3gtZ3JvdXAsIC53LWxpZ2h0Ym94LWdyb3VwIC53LWxpZ2h0Ym94LXZpZXcsIC53LWxpZ2h0Ym94LWdyb3VwIC53LWxpZ2h0Ym94LXZpZXc6YmVmb3JlIHsKICAgICAgaGVpZ2h0OiA4NHZoOwogICAgfQogIAogICAgLnctbGlnaHRib3gtaW1hZ2UgewogICAgICBtYXgtd2lkdGg6IDk2dnc7CiAgICAgIG1heC1oZWlnaHQ6IDk2dmg7CiAgICB9CiAgCiAgICAudy1saWdodGJveC1ncm91cCAudy1saWdodGJveC1pbWFnZSB7CiAgICAgIG1heC13aWR0aDogODIuM3Z3OwogICAgICBtYXgtaGVpZ2h0OiA4NHZoOwogICAgfQogIAogICAgLnctbGlnaHRib3gtbGVmdCwgLnctbGlnaHRib3gtcmlnaHQgewogICAgICBvcGFjaXR5OiAuNTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CiAgCiAgICAudy1saWdodGJveC1jbG9zZSB7CiAgICAgIG9wYWNpdHk6IC44OwogICAgfQogIAogICAgLnctbGlnaHRib3gtY29udHJvbDpob3ZlciB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CiAgfQogIAogIC53LWxpZ2h0Ym94LWluYWN0aXZlLCAudy1saWdodGJveC1pbmFjdGl2ZTpob3ZlciB7CiAgICBvcGFjaXR5OiAwOwogIH0KICAKICAudy1yaWNodGV4dDpiZWZvcmUsIC53LXJpY2h0ZXh0OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjsKICAgIGRpc3BsYXk6IHRhYmxlOwogIH0KICAKICAudy1yaWNodGV4dDphZnRlciB7CiAgICBjbGVhcjogYm90aDsKICB9CiAgCiAgLnctcmljaHRleHRbY29udGVudGVkaXRhYmxlPSJ0cnVlIl06YmVmb3JlLCAudy1yaWNodGV4dFtjb250ZW50ZWRpdGFibGU9InRydWUiXTphZnRlciB7CiAgICB3aGl0ZS1zcGFjZTogaW5pdGlhbDsKICB9CiAgCiAgLnctcmljaHRleHQgb2wsIC53LXJpY2h0ZXh0IHVsIHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC53LXJpY2h0ZXh0IC53LXJpY2h0ZXh0LWZpZ3VyZS1zZWxlY3RlZC53LXJpY2h0ZXh0LWZpZ3VyZS10eXBlLXZpZGVvIGRpdjphZnRlciwgLnctcmljaHRleHQgLnctcmljaHRleHQtZmlndXJlLXNlbGVjdGVkW2RhdGEtcnQtdHlwZT0idmlkZW8iXSBkaXY6YWZ0ZXIsIC53LXJpY2h0ZXh0IC53LXJpY2h0ZXh0LWZpZ3VyZS1zZWxlY3RlZC53LXJpY2h0ZXh0LWZpZ3VyZS10eXBlLWltYWdlIGRpdiwgLnctcmljaHRleHQgLnctcmljaHRleHQtZmlndXJlLXNlbGVjdGVkW2RhdGEtcnQtdHlwZT0iaW1hZ2UiXSBkaXYgewogICAgb3V0bGluZTogMnB4IHNvbGlkICMyODk1Zjc7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZS53LXJpY2h0ZXh0LWZpZ3VyZS10eXBlLXZpZGVvID4gZGl2OmFmdGVyLCAudy1yaWNodGV4dCBmaWd1cmVbZGF0YS1ydC10eXBlPSJ2aWRlbyJdID4gZGl2OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIiOwogICAgZGlzcGxheTogbm9uZTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogIH0KICAKICAudy1yaWNodGV4dCBmaWd1cmUgewogICAgbWF4LXdpZHRoOiA2MCU7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZSA+IGRpdjpiZWZvcmUgewogICAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZSBpbWcgewogICAgd2lkdGg6IDEwMCU7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZSBmaWdjYXB0aW9uLnctcmljaHRleHQtZmlnY2FwdGlvbi1wbGFjZWhvbGRlciB7CiAgICBvcGFjaXR5OiAuNjsKICB9CiAgCiAgLnctcmljaHRleHQgZmlndXJlIGRpdiB7CiAgICBjb2xvcjogIzAwMDA7CiAgICBmb250LXNpemU6IDA7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZS53LXJpY2h0ZXh0LWZpZ3VyZS10eXBlLWltYWdlLCAudy1yaWNodGV4dCBmaWd1cmVbZGF0YS1ydC10eXBlPSJpbWFnZSJdIHsKICAgIGRpc3BsYXk6IHRhYmxlOwogIH0KICAKICAudy1yaWNodGV4dCBmaWd1cmUudy1yaWNodGV4dC1maWd1cmUtdHlwZS1pbWFnZSA+IGRpdiwgLnctcmljaHRleHQgZmlndXJlW2RhdGEtcnQtdHlwZT0iaW1hZ2UiXSA+IGRpdiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZS53LXJpY2h0ZXh0LWZpZ3VyZS10eXBlLWltYWdlID4gZmlnY2FwdGlvbiwgLnctcmljaHRleHQgZmlndXJlW2RhdGEtcnQtdHlwZT0iaW1hZ2UiXSA+IGZpZ2NhcHRpb24gewogICAgY2FwdGlvbi1zaWRlOiBib3R0b207CiAgICBkaXNwbGF5OiB0YWJsZS1jYXB0aW9uOwogIH0KICAKICAudy1yaWNodGV4dCBmaWd1cmUudy1yaWNodGV4dC1maWd1cmUtdHlwZS12aWRlbywgLnctcmljaHRleHQgZmlndXJlW2RhdGEtcnQtdHlwZT0idmlkZW8iXSB7CiAgICB3aWR0aDogNjAlOwogICAgaGVpZ2h0OiAwOwogIH0KICAKICAudy1yaWNodGV4dCBmaWd1cmUudy1yaWNodGV4dC1maWd1cmUtdHlwZS12aWRlbyBpZnJhbWUsIC53LXJpY2h0ZXh0IGZpZ3VyZVtkYXRhLXJ0LXR5cGU9InZpZGVvIl0gaWZyYW1lIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgbGVmdDogMDsKICB9CiAgCiAgLnctcmljaHRleHQgZmlndXJlLnctcmljaHRleHQtZmlndXJlLXR5cGUtdmlkZW8gPiBkaXYsIC53LXJpY2h0ZXh0IGZpZ3VyZVtkYXRhLXJ0LXR5cGU9InZpZGVvIl0gPiBkaXYgewogICAgd2lkdGg6IDEwMCU7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZS53LXJpY2h0ZXh0LWFsaWduLWNlbnRlciB7CiAgICBjbGVhcjogYm90aDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIH0KICAKICAudy1yaWNodGV4dCBmaWd1cmUudy1yaWNodGV4dC1hbGlnbi1jZW50ZXIudy1yaWNodGV4dC1maWd1cmUtdHlwZS1pbWFnZSA+IGRpdiwgLnctcmljaHRleHQgZmlndXJlLnctcmljaHRleHQtYWxpZ24tY2VudGVyW2RhdGEtcnQtdHlwZT0iaW1hZ2UiXSA+IGRpdiB7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZS53LXJpY2h0ZXh0LWFsaWduLW5vcm1hbCB7CiAgICBjbGVhcjogYm90aDsKICB9CiAgCiAgLnctcmljaHRleHQgZmlndXJlLnctcmljaHRleHQtYWxpZ24tZnVsbHdpZHRoIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGNsZWFyOiBib3RoOwogICAgd2lkdGg6IDEwMCU7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1yaWNodGV4dCBmaWd1cmUudy1yaWNodGV4dC1hbGlnbi1mdWxsd2lkdGggPiBkaXYgewogICAgcGFkZGluZy1ib3R0b206IGluaGVyaXQ7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZS53LXJpY2h0ZXh0LWFsaWduLWZ1bGx3aWR0aCA+IGZpZ2NhcHRpb24gewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LXJpY2h0ZXh0IGZpZ3VyZS53LXJpY2h0ZXh0LWFsaWduLWZsb2F0bGVmdCB7CiAgICBmbG9hdDogbGVmdDsKICAgIGNsZWFyOiBub25lOwogICAgbWFyZ2luLXJpZ2h0OiAxNXB4OwogIH0KICAKICAudy1yaWNodGV4dCBmaWd1cmUudy1yaWNodGV4dC1hbGlnbi1mbG9hdHJpZ2h0IHsKICAgIGZsb2F0OiByaWdodDsKICAgIGNsZWFyOiBub25lOwogICAgbWFyZ2luLWxlZnQ6IDE1cHg7CiAgfQogIAogIC53LW5hdiB7CiAgICB6LWluZGV4OiAxMDAwOwogICAgYmFja2dyb3VuZDogI2RkZDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnctbmF2OmJlZm9yZSwgLnctbmF2OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjsKICAgIGRpc3BsYXk6IHRhYmxlOwogIH0KICAKICAudy1uYXY6YWZ0ZXIgewogICAgY2xlYXI6IGJvdGg7CiAgfQogIAogIC53LW5hdi1icmFuZCB7CiAgICBmbG9hdDogbGVmdDsKICAgIGNvbG9yOiAjMzMzOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAudy1uYXYtbGluayB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgY29sb3I6ICMyMjI7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBwYWRkaW5nOiAyMHB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAudy1uYXYtbGluay53LS1jdXJyZW50IHsKICAgIGNvbG9yOiAjMDA4MmYzOwogIH0KICAKICAudy1uYXYtbWVudSB7CiAgICBmbG9hdDogcmlnaHQ7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIFtkYXRhLW5hdi1tZW51LW9wZW5dIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6ICNjOGM4Yzg7CiAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAxMDAlOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogIH0KICAKICAudy0tbmF2LWxpbmstb3BlbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnctbmF2LW92ZXJsYXkgewogICAgd2lkdGg6IDEwMCU7CiAgICBkaXNwbGF5OiBub25lOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAxMDAlOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CiAgCiAgLnctbmF2LW92ZXJsYXkgW2RhdGEtbmF2LW1lbnUtb3Blbl0gewogICAgdG9wOiAwOwogIH0KICAKICAudy1uYXZbZGF0YS1hbmltYXRpb249Im92ZXItbGVmdCJdIC53LW5hdi1vdmVybGF5IHsKICAgIHdpZHRoOiBhdXRvOwogIH0KICAKICAudy1uYXZbZGF0YS1hbmltYXRpb249Im92ZXItbGVmdCJdIC53LW5hdi1vdmVybGF5LCAudy1uYXZbZGF0YS1hbmltYXRpb249Im92ZXItbGVmdCJdIFtkYXRhLW5hdi1tZW51LW9wZW5dIHsKICAgIHotaW5kZXg6IDE7CiAgICB0b3A6IDA7CiAgICByaWdodDogYXV0bzsKICB9CiAgCiAgLnctbmF2W2RhdGEtYW5pbWF0aW9uPSJvdmVyLXJpZ2h0Il0gLnctbmF2LW92ZXJsYXkgewogICAgd2lkdGg6IGF1dG87CiAgfQogIAogIC53LW5hdltkYXRhLWFuaW1hdGlvbj0ib3Zlci1yaWdodCJdIC53LW5hdi1vdmVybGF5LCAudy1uYXZbZGF0YS1hbmltYXRpb249Im92ZXItcmlnaHQiXSBbZGF0YS1uYXYtbWVudS1vcGVuXSB7CiAgICB6LWluZGV4OiAxOwogICAgdG9wOiAwOwogICAgbGVmdDogYXV0bzsKICB9CiAgCiAgLnctbmF2LWJ1dHRvbiB7CiAgICBmbG9hdDogcmlnaHQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6ICMwMDAwOwogICAgdGFwLWhpZ2hsaWdodC1jb2xvcjogIzAwMDA7CiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICBwYWRkaW5nOiAxOHB4OwogICAgZm9udC1zaXplOiAyNHB4OwogICAgZGlzcGxheTogbm9uZTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnctbmF2LWJ1dHRvbjpmb2N1cyB7CiAgICBvdXRsaW5lOiAwOwogIH0KICAKICAudy1uYXYtYnV0dG9uLnctLW9wZW4gewogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzhjOGM4OwogIH0KICAKICAudy1uYXZbZGF0YS1jb2xsYXBzZT0iYWxsIl0gLnctbmF2LW1lbnUgewogICAgZGlzcGxheTogbm9uZTsKICB9CiAgCiAgLnctbmF2W2RhdGEtY29sbGFwc2U9ImFsbCJdIC53LW5hdi1idXR0b24sIC53LS1uYXYtZHJvcGRvd24tb3BlbiwgLnctLW5hdi1kcm9wZG93bi10b2dnbGUtb3BlbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctLW5hdi1kcm9wZG93bi1saXN0LW9wZW4gewogICAgcG9zaXRpb246IHN0YXRpYzsKICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHsKICAgIC53LW5hdltkYXRhLWNvbGxhcHNlPSJtZWRpdW0iXSAudy1uYXYtbWVudSB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgCiAgICAudy1uYXZbZGF0YS1jb2xsYXBzZT0ibWVkaXVtIl0gLnctbmF2LWJ1dHRvbiB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQogIH0KICAKICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkgewogICAgLnctbmF2W2RhdGEtY29sbGFwc2U9InNtYWxsIl0gLnctbmF2LW1lbnUgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogIAogICAgLnctbmF2W2RhdGEtY29sbGFwc2U9InNtYWxsIl0gLnctbmF2LWJ1dHRvbiB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQogIAogICAgLnctbmF2LWJyYW5kIHsKICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OwogICAgfQogIH0KICAKICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkgewogICAgLnctbmF2W2RhdGEtY29sbGFwc2U9InRpbnkiXSAudy1uYXYtbWVudSB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgCiAgICAudy1uYXZbZGF0YS1jb2xsYXBzZT0idGlueSJdIC53LW5hdi1idXR0b24gewogICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KICB9CiAgCiAgLnctdGFicyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC53LXRhYnM6YmVmb3JlLCAudy10YWJzOmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIgIjsKICAgIGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjsKICAgIGRpc3BsYXk6IHRhYmxlOwogIH0KICAKICAudy10YWJzOmFmdGVyIHsKICAgIGNsZWFyOiBib3RoOwogIH0KICAKICAudy10YWItbWVudSB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC53LXRhYi1saW5rIHsKICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgY29sb3I6ICMyMjI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwogICAgcGFkZGluZzogOXB4IDMwcHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC53LXRhYi1saW5rLnctLWN1cnJlbnQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2M4YzhjODsKICB9CiAgCiAgLnctdGFiLWxpbms6Zm9jdXMgewogICAgb3V0bGluZTogMDsKICB9CiAgCiAgLnctdGFiLWNvbnRlbnQgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAudy10YWItcGFuZSB7CiAgICBkaXNwbGF5OiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAudy0tdGFiLWFjdGl2ZSB7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHsKICAgIC53LXRhYi1saW5rIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CiAgfQogIAogIC53LWl4LWVtcHR5Zml4OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIiOwogIH0KICAKICBAa2V5ZnJhbWVzIHNwaW4gewogICAgMCUgewogICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsKICAgIH0KICAKICAgIDEwMCUgewogICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgfQogIH0KICAKICAudy1keW4tZW1wdHkgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgfQogIAogIC53LWR5bi1oaWRlLCAudy1keW4tYmluZC1lbXB0eSwgLnctY29uZGl0aW9uLWludmlzaWJsZSB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgfQogIAogIC53Zi1sYXlvdXQtbGF5b3V0IHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgfQogIAogIC53LWNvZGUtY29tcG9uZW50ID4gKiB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgfQogIAogIDpyb290IHsKICAgIC0tbmV1dHJhbC0tODAwOiAjMDYwNjA2OwogICAgLS1uZXV0cmFsLS0zMDA6ICNkYWRhZGE7CiAgICAtLW5ldXRyYWwtLTEwMDogd2hpdGU7CiAgICAtLWFjY2VudC0tcHJpbWFyeS0xOiAjMjE2ZmZmOwogICAgLS1uZXV0cmFsLS00MDA6ICNiY2JjYmM7CiAgICAtLXNlY29uZGFyeS0tY29sb3ItMTogI2E0MjBmYzsKICAgIC0tbmV1dHJhbC0tNjAwOiAjNWI1YjViOwogICAgLS1nZW5lcmFsLS1zaGFkb3ctMDE6ICMxNDE0MmIwZjsKICAgIC0tbmV1dHJhbC0tNzAwOiAjMjEyMTIxOwogICAgLS1zZWNvbmRhcnktLWNvbG9yLTM6ICMyNzJlZTI7CiAgICAtLXNlY29uZGFyeS0tY29sb3ItNTogIzhhMWZkZTsKICAgIC0tc2Vjb25kYXJ5LS1jb2xvci0yOiAjMTNiNGNhOwogICAgLS1zZWNvbmRhcnktLWNvbG9yLTQ6ICM2MzRiZmE7CiAgICAtLW5ldXRyYWwtLTUwMDogIzllOWU5ZTsKICAgIC0tbmV1dHJhbC0tMjAwOiB3aGl0ZXNtb2tlOwogICAgLS1zeXN0ZW0tLWdyZWVuLTQwMDogIzExODQ1YjsKICAgIC0tc3lzdGVtLS1ibHVlLTQwMDogIzA4NmNkOTsKICAgIC0tc3lzdGVtLS1ibHVlLTMwMDogIzFkODhmZTsKICAgIC0tc3lzdGVtLS1ibHVlLTIwMDogIzhmYzNmZjsKICAgIC0tc3lzdGVtLS1ibHVlLTEwMDogI2VhZjRmZjsKICAgIC0tc3lzdGVtLS1ncmVlbi0zMDA6ICMwNWMxNjg7CiAgICAtLXN5c3RlbS0tZ3JlZW4tMjAwOiAjN2ZkY2E0OwogICAgLS1zeXN0ZW0tLWdyZWVuLTEwMDogI2RlZjJlNjsKICAgIC0tc3lzdGVtLS1yZWQtNDAwOiAjZGMyYjJiOwogICAgLS1zeXN0ZW0tLTMwMDogI2ZmNWE2NTsKICAgIC0tc3lzdGVtLS1yZWQtMjAwOiAjZmZiZWMyOwogICAgLS1zeXN0ZW0tLXJlZC0xMDA6ICNmZmVmZjA7CiAgICAtLXN5c3RlbS0tb3JhbmdlLTQwMDogI2Q1NjkxYjsKICAgIC0tc3lzdGVtLS1vcmFuZ2UtMzAwOiAjZmY5ZTJjOwogICAgLS1zeXN0ZW0tLW9yYW5nZS0yMDA6ICNmZmQxOWI7CiAgICAtLXN5c3RlbS0tb3JhbmdlLTEwMDogI2ZmZjNlNDsKICAgIC0tZ2VuZXJhbC0tc2hhZG93LTAyOiAjMDAwMDAwMTQ7CiAgICAtLWdlbmVyYWwtLXNoYWRvdy0wMzogIzAwMDAwMDFhOwogICAgLS1nZW5lcmFsLS1zaGFkb3ctMDQ6ICMxNDE0MmIyNDsKICAgIC0tZ2VuZXJhbC0tc2hhZG93LTA1OiAjMTQxNDJiMjk7CiAgICAtLWdlbmVyYWwtLXNoYWRvdy0wNjogIzE0MTQyYjNkOwogICAgLS1idXR0b24tc2hhZG93LS1jb2xvci0wMTogIzRhM2FmZjBmOwogICAgLS1idXR0b24tc2hhZG93LS1jb2xvci0yOiAjNGEzYWZmMTQ7CiAgICAtLWJ1dHRvbi1zaGFkb3ctLWNvbG9yLTAzOiAjNGEzYWZmMTQ7CiAgICAtLWJ1dHRvbi1zaGFkb3ctLXdoaXRlLTAxOiAjMTQxNDJiMGE7CiAgICAtLWJ1dHRvbi1zaGFkb3ctLXdoaXRlLTAyOiAjMTQxNDJiMGY7CiAgICAtLWJ1dHRvbi1zaGFkb3ctLXdoaXRlLTAzOiAjMTQxNDJiMWE7CiAgfQogIAogIC53LWxheW91dC1ncmlkIHsKICAgIGdyaWQtcm93LWdhcDogMTZweDsKICAgIGdyaWQtY29sdW1uLWdhcDogMTZweDsKICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydHdyYXBwZXIgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRvcGVubGluayB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg5OGVjOwogICAgYm9yZGVyLXdpZHRoOiAwOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwYWRkaW5nOiA5cHggMTVweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydG9wZW5saW5rY291bnQgewogICAgY29sb3I6ICMzODk4ZWM7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgbWluLXdpZHRoOiAxOHB4OwogICAgaGVpZ2h0OiAxOHB4OwogICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgIHBhZGRpbmctbGVmdDogNnB4OwogICAgcGFkZGluZy1yaWdodDogNnB4OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRjb250YWluZXJ3cmFwcGVyIHsKICAgIHotaW5kZXg6IDEwMDE7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwYzsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIGluc2V0OiAwOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRjb250YWluZXJ3cmFwcGVyLS1jYXJ0VHlwZS1tb2RhbCB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0Y29udGFpbmVyd3JhcHBlci0tY2FydFR5cGUtbGVmdFNpZGViYXIgewogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0Y29udGFpbmVyd3JhcHBlci0tY2FydFR5cGUtcmlnaHRTaWRlYmFyIHsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRjb250YWluZXJ3cmFwcGVyLS1jYXJ0VHlwZS1sZWZ0RHJvcGRvd24gewogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMTAwJSBhdXRvIGF1dG8gMDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0Y29udGFpbmVyd3JhcHBlci0tY2FydFR5cGUtcmlnaHREcm9wZG93biB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAxMDAlIDAgYXV0byBhdXRvOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRjb250YWluZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB3aWR0aDogMTAwJTsKICAgIG1pbi13aWR0aDogMzIwcHg7CiAgICBtYXgtd2lkdGg6IDQ4MHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIG92ZXJmbG93OiBhdXRvOwogICAgYm94LXNoYWRvdzogMCA1cHggMjVweCAjMDAwMDAwNDA7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydGhlYWRlciB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjsKICAgIGZsZXg6IG5vbmU7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0aGVhZGluZyB7CiAgICBtYXJnaW4tdG9wOiAwOwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydGNsb3NlbGluayB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0Zm9ybXdyYXBwZXIgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGZsZXg6IDE7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRmb3JtIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBmbGV4OiAxOwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0bGlzdCB7CiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CiAgICBmbGV4OiAxOwogICAgcGFkZGluZzogMTJweCAyNHB4OwogICAgb3ZlcmZsb3c6IGF1dG87CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydGl0ZW0gewogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgIHBhZGRpbmctYm90dG9tOiAxMnB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0aXRlbWltYWdlIHsKICAgIHdpZHRoOiA2MHB4OwogICAgaGVpZ2h0OiAwJTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0aXRlbWluZm8gewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGZsZXg6IDE7CiAgICBtYXJnaW4tbGVmdDogMTZweDsKICAgIG1hcmdpbi1yaWdodDogMTZweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydG9wdGlvbmxpc3QgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0cXVhbnRpdHkgewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2lkdGg6IDYwcHg7CiAgICBoZWlnaHQ6IDM4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgcGFkZGluZzogOHB4IDZweCA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydHF1YW50aXR5OjpwbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzk5OTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0cXVhbnRpdHk6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjMzg5OGVjOwogICAgb3V0bGluZS1zdHlsZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0Zm9vdGVyIHsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTZlNmU2OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGZsZXg6IG5vbmU7CiAgICBwYWRkaW5nOiAxNnB4IDI0cHggMjRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydGxpbmVpdGVtIHsKICAgIGZsZXg6IG5vbmU7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0b3JkZXJ2YWx1ZSB7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRhcHBsZXBheWJ1dHRvbiB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogICAgYm9yZGVyLXdpZHRoOiAwOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGhlaWdodDogMzhweDsKICAgIG1pbi1oZWlnaHQ6IDMwcHg7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBwYWRkaW5nOiAwOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0YXBwbGVwYXlpY29uIHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiA1MCU7CiAgICBtaW4taGVpZ2h0OiAyMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRxdWlja2NoZWNrb3V0YnV0dG9uIHsKICAgIGNvbG9yOiAjZmZmOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgICBib3JkZXItd2lkdGg6IDA7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBoZWlnaHQ6IDM4cHg7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBwYWRkaW5nOiAwIDE1cHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZXF1aWNrY2hlY2tvdXRnb29nbGVpY29uLCAudy1jb21tZXJjZS1jb21tZXJjZXF1aWNrY2hlY2tvdXRtaWNyb3NvZnRpY29uIHsKICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydGNoZWNrb3V0YnV0dG9uIHsKICAgIGNvbG9yOiAjZmZmOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODk4ZWM7CiAgICBib3JkZXItd2lkdGg6IDA7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFkZGluZzogOXB4IDE1cHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0ZW1wdHlzdGF0ZSB7CiAgICBmbGV4OiAxOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFkZGluZy10b3A6IDEwMHB4OwogICAgcGFkZGluZy1ib3R0b206IDEwMHB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0ZXJyb3JzdGF0ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZWRlOwogICAgZmxleDogbm9uZTsKICAgIG1hcmdpbjogMCAyNHB4IDI0cHg7CiAgICBwYWRkaW5nOiAxMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0Zm9ybWNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwogICAgd2lkdGg6IDEwMCU7CiAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlbGF5b3V0bWFpbiB7CiAgICBmbGV4OiAwIDgwMHB4OwogICAgbWFyZ2luLXJpZ2h0OiAyMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0Y3VzdG9tZXJpbmZvd3JhcHBlciB7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmxvY2toZWFkZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICBwYWRkaW5nOiA0cHggMjBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRibG9ja2NvbnRlbnQgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2OwogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTZlNmU2OwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2U2ZTZlNjsKICAgIHBhZGRpbmc6IDIwcHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRsYWJlbCB7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRlbWFpbGlucHV0IHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAzOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGVtYWlsaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTk5OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0ZW1haWxpbnB1dDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdhZGRyZXNzd3JhcHBlciB7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdmdWxsbmFtZSB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ2Z1bGxuYW1lOjpwbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzk5OTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nZnVsbG5hbWU6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjMzg5OGVjOwogICAgb3V0bGluZS1zdHlsZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nc3RyZWV0YWRkcmVzcyB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ3N0cmVldGFkZHJlc3M6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTk5OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdzdHJlZXRhZGRyZXNzOmZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogIzM4OThlYzsKICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ3N0cmVldGFkZHJlc3NvcHRpb25hbCB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ3N0cmVldGFkZHJlc3NvcHRpb25hbDo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM5OTk7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ3N0cmVldGFkZHJlc3NvcHRpb25hbDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0cm93IHsKICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGNvbHVtbiB7CiAgICBmbGV4OiAxOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ2NpdHkgewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDM4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgcGFkZGluZzogOHB4IDEycHg7CiAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdjaXR5OjpwbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzk5OTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nY2l0eTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdzdGF0ZXByb3ZpbmNlIHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAzOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nc3RhdGVwcm92aW5jZTo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM5OTk7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ3N0YXRlcHJvdmluY2U6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjMzg5OGVjOwogICAgb3V0bGluZS1zdHlsZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nemlwcG9zdGFsY29kZSB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ3ppcHBvc3RhbGNvZGU6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTk5OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmd6aXBwb3N0YWxjb2RlOmZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogIzM4OThlYzsKICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ2NvdW50cnlzZWxlY3RvciB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ2NvdW50cnlzZWxlY3Rvcjo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM5OTk7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ2NvdW50cnlzZWxlY3Rvcjpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdtZXRob2Rzd3JhcHBlciB7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdtZXRob2RzbGlzdCB7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNmU2ZTY7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTZlNmU2OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdtZXRob2RpdGVtIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgcGFkZGluZzogMTZweDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdtZXRob2RkZXNjcmlwdGlvbmJsb2NrIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlYm9sZHRleHRibG9jayB7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdtZXRob2RzZW1wdHlzdGF0ZSB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7CiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNmU2ZTY7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTZlNmU2OwogICAgcGFkZGluZzogNjRweCAxNnB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0cGF5bWVudGluZm93cmFwcGVyIHsKICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRjYXJkbnVtYmVyIHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBjdXJzb3I6IHRleHQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAzOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGNhcmRudW1iZXI6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTk5OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0Y2FyZG51bWJlcjpmb2N1cywgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGNhcmRudW1iZXIuLXdmcC1mb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0Y2FyZGV4cGlyYXRpb25kYXRlIHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBjdXJzb3I6IHRleHQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAzOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGNhcmRleHBpcmF0aW9uZGF0ZTo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM5OTk7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRjYXJkZXhwaXJhdGlvbmRhdGU6Zm9jdXMsIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRjYXJkZXhwaXJhdGlvbmRhdGUuLXdmcC1mb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0Y2FyZHNlY3VyaXR5Y29kZSB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgY3Vyc29yOiB0ZXh0OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRjYXJkc2VjdXJpdHljb2RlOjpwbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzk5OTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGNhcmRzZWN1cml0eWNvZGU6Zm9jdXMsIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRjYXJkc2VjdXJpdHljb2RlLi13ZnAtZm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjMzg5OGVjOwogICAgb3V0bGluZS1zdHlsZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdhZGRyZXNzdG9nZ2xld3JhcHBlciB7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdhZGRyZXNzdG9nZ2xlY2hlY2tib3ggewogICAgbWFyZ2luLXRvcDogNHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmlsbGluZ2FkZHJlc3N0b2dnbGVsYWJlbCB7CiAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdhZGRyZXNzd3JhcHBlciB7CiAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdmdWxsbmFtZSB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nZnVsbG5hbWU6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTk5OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmlsbGluZ2Z1bGxuYW1lOmZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogIzM4OThlYzsKICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nc3RyZWV0YWRkcmVzcyB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nc3RyZWV0YWRkcmVzczo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM5OTk7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nc3RyZWV0YWRkcmVzczpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmlsbGluZ3N0cmVldGFkZHJlc3NvcHRpb25hbCB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nc3RyZWV0YWRkcmVzc29wdGlvbmFsOjpwbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzk5OTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdzdHJlZXRhZGRyZXNzb3B0aW9uYWw6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjMzg5OGVjOwogICAgb3V0bGluZS1zdHlsZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdjaXR5IHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAzOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdjaXR5OjpwbGFjZWhvbGRlciB7CiAgICBjb2xvcjogIzk5OTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdjaXR5OmZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogIzM4OThlYzsKICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nc3RhdGVwcm92aW5jZSB7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nc3RhdGVwcm92aW5jZTo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM5OTk7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nc3RhdGVwcm92aW5jZTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmlsbGluZ3ppcHBvc3RhbGNvZGUgewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDM4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgcGFkZGluZzogOHB4IDEycHg7CiAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmlsbGluZ3ppcHBvc3RhbGNvZGU6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTk5OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmlsbGluZ3ppcHBvc3RhbGNvZGU6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjMzg5OGVjOwogICAgb3V0bGluZS1zdHlsZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdjb3VudHJ5c2VsZWN0b3IgewogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDM4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgcGFkZGluZzogOHB4IDEycHg7CiAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmlsbGluZ2NvdW50cnlzZWxlY3Rvcjo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM5OTk7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nY291bnRyeXNlbGVjdG9yOmZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogIzM4OThlYzsKICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRvcmRlcml0ZW1zd3JhcHBlciB7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c3VtbWFyeWJsb2NraGVhZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgcGFkZGluZzogNHB4IDIwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0b3JkZXJpdGVtc2xpc3QgewogICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRvcmRlcml0ZW0gewogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRvcmRlcml0ZW1kZXNjcmlwdGlvbndyYXBwZXIgewogICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLWxlZnQ6IDE2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRvcmRlcml0ZW1xdWFudGl0eXdyYXBwZXIgewogICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dG9yZGVyaXRlbW9wdGlvbmxpc3QgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VsYXlvdXRzaWRlYmFyIHsKICAgIGZsZXg6IDAgMCAzMjBweDsKICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICB0b3A6IDIwcHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRvcmRlcnN1bW1hcnl3cmFwcGVyIHsKICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzdW1tYXJ5bGluZWl0ZW0sIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRvcmRlcnN1bW1hcnlleHRyYWl0ZW1zbGlzdGl0ZW0gewogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzdW1tYXJ5dG90YWwgewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGRpc2NvdW50cyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0ZGlzY291bnRzbGFiZWwgewogICAgZmxleC1iYXNpczogMTAwJTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGRpc2NvdW50c2lucHV0IHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZsZXg6IDE7CiAgICB3aWR0aDogYXV0bzsKICAgIG1pbi13aWR0aDogMDsKICAgIGhlaWdodDogMzhweDsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRkaXNjb3VudHNpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6ICM5OTk7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRkaXNjb3VudHNpbnB1dDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICMzODk4ZWM7CiAgICBvdXRsaW5lLXN0eWxlOiBub25lOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0ZGlzY291bnRzYnV0dG9uIHsKICAgIGNvbG9yOiAjZmZmOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODk4ZWM7CiAgICBib3JkZXItd2lkdGg6IDA7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmbGV4LWdyb3c6IDA7CiAgICBmbGV4LXNocmluazogMDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBoZWlnaHQ6IDM4cHg7CiAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgcGFkZGluZzogOXB4IDE1cHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0cGxhY2VvcmRlcmJ1dHRvbiB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg5OGVjOwogICAgYm9yZGVyLXdpZHRoOiAwOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICBwYWRkaW5nOiA5cHggMTVweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0ZXJyb3JzdGF0ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZWRlOwogICAgbWFyZ2luLXRvcDogMTZweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgfQogIAogIC53LXBhZ2luYXRpb24td3JhcHBlciB7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LXBhZ2luYXRpb24tcHJldmlvdXMsIC53LXBhZ2luYXRpb24tbmV4dCB7CiAgICBjb2xvcjogIzMzMzsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBwYWRkaW5nOiA5cHggMjBweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWFkZHRvY2FydGZvcm0gewogICAgbWFyZ2luOiAwIDAgMTVweDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VhZGR0b2NhcnRvcHRpb25waWxsZ3JvdXAgewogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlYWRkdG9jYXJ0b3B0aW9ucGlsbCB7CiAgICBjb2xvcjogIzAwMDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOwogICAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZzogOHB4IDE1cHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlYWRkdG9jYXJ0b3B0aW9ucGlsbC53LS1lY29tbWVyY2UtcGlsbC1zZWxlY3RlZCB7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlYWRkdG9jYXJ0b3B0aW9ucGlsbC53LS1lY29tbWVyY2UtcGlsbC1kaXNhYmxlZCB7CiAgICBjb2xvcjogIzY2NjsKICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OwogICAgYm9yZGVyLWNvbG9yOiAjZTZlNmU2OwogICAgb3V0bGluZS1zdHlsZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VhZGR0b2NhcnRxdWFudGl0eWlucHV0IHsKICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOwogICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHdpZHRoOiA2MHB4OwogICAgaGVpZ2h0OiAzOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIHBhZGRpbmc6IDhweCA2cHggOHB4IDEycHg7CiAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWFkZHRvY2FydHF1YW50aXR5aW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgIGNvbG9yOiAjOTk5OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWFkZHRvY2FydHF1YW50aXR5aW5wdXQ6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjMzg5OGVjOwogICAgb3V0bGluZS1zdHlsZTogbm9uZTsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VhZGR0b2NhcnRidXR0b24gewogICAgY29sb3I6ICNmZmY7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICBhcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzM4OThlYzsKICAgIGJvcmRlci13aWR0aDogMDsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFkZGluZzogOXB4IDE1cHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWFkZHRvY2FydGJ1dHRvbi53LS1lY29tbWVyY2UtYWRkLXRvLWNhcnQtZGlzYWJsZWQgewogICAgY29sb3I6ICM2NjY7CiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsKICAgIGJvcmRlci1jb2xvcjogI2U2ZTZlNjsKICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlYnV5bm93YnV0dG9uIHsKICAgIGNvbG9yOiAjZmZmOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODk4ZWM7CiAgICBib3JkZXItd2lkdGg6IDA7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICBwYWRkaW5nOiA5cHggMTVweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VidXlub3didXR0b24udy0tZWNvbW1lcmNlLWJ1eS1ub3ctZGlzYWJsZWQgewogICAgY29sb3I6ICM2NjY7CiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsKICAgIGJvcmRlci1jb2xvcjogI2U2ZTZlNjsKICAgIG91dGxpbmUtc3R5bGU6IG5vbmU7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlYWRkdG9jYXJ0b3V0b2ZzdG9jayB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwogICAgbWFyZ2luLXRvcDogMTBweDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlYWRkdG9jYXJ0ZXJyb3IgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZGVkZTsKICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICBwYWRkaW5nOiAxMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZW9yZGVyY29uZmlybWF0aW9uY29udGFpbmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7CiAgICB3aWR0aDogMTAwJTsKICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgcGFkZGluZzogMjBweDsKICB9CiAgCiAgLnctY29tbWVyY2UtY29tbWVyY2VsYXlvdXRjb250YWluZXIgewogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRjdXN0b21lcmluZm9zdW1tYXJ5d3JhcHBlciB7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c3VtbWFyeWl0ZW0sIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzdW1tYXJ5bGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogOHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c3VtbWFyeWZsZXhib3hkaXYgewogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzdW1tYXJ5dGV4dHNwYWNpbmdvbmRpdiB7CiAgICBtYXJnaW4tcmlnaHQ6IC4zM2VtOwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0c2hpcHBpbmdzdW1tYXJ5d3JhcHBlciwgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHBheW1lbnRzdW1tYXJ5d3JhcHBlciB7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIH0KICAKICAudy1jb21tZXJjZS1jb21tZXJjZXBheXBhbGNoZWNrb3V0Zm9ybWNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwogICAgd2lkdGg6IDEwMCU7CiAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgfQogIAogIC53LWNvbW1lcmNlLWNvbW1lcmNlcGF5cGFsY2hlY2tvdXRlcnJvcnN0YXRlIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmRlZGU7CiAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICB9CiAgCiAgLnctY2hlY2tib3ggewogICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC53LWNoZWNrYm94OmJlZm9yZSB7CiAgICBjb250ZW50OiAiICI7CiAgICBncmlkLWFyZWE6IDEgLyAxIC8gMiAvIDI7CiAgICBkaXNwbGF5OiB0YWJsZTsKICB9CiAgCiAgLnctY2hlY2tib3g6YWZ0ZXIgewogICAgY29udGVudDogIiAiOwogICAgY2xlYXI6IGJvdGg7CiAgICBncmlkLWFyZWE6IDEgLyAxIC8gMiAvIDI7CiAgICBkaXNwbGF5OiB0YWJsZTsKICB9CiAgCiAgLnctY2hlY2tib3gtaW5wdXQgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW46IDRweCAwIDAgLTIwcHg7CiAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogIH0KICAKICAudy1jaGVja2JveC1pbnB1dC0taW5wdXRUeXBlLWN1c3RvbSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgd2lkdGg6IDEycHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgfQogIAogIC53LWNoZWNrYm94LWlucHV0LS1pbnB1dFR5cGUtY3VzdG9tLnctLXJlZGlyZWN0ZWQtY2hlY2tlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzg5OGVjOwogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJodHRwczovL2QzZTU0djEwM2o4cWJiLmNsb3VkZnJvbnQubmV0L3N0YXRpYy9jdXN0b20tY2hlY2tib3gtY2hlY2ttYXJrLjU4OWQ1MzQ0MjQuc3ZnIik7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsKICAgIGJvcmRlci1jb2xvcjogIzM4OThlYzsKICB9CiAgCiAgLnctY2hlY2tib3gtaW5wdXQtLWlucHV0VHlwZS1jdXN0b20udy0tcmVkaXJlY3RlZC1mb2N1cyB7CiAgICBib3gtc2hhZG93OiAwIDAgM3B4IDFweCAjMzg5OGVjOwogIH0KICAKICAudy1mb3JtLWZvcm1yYWRpb2lucHV0LS1pbnB1dFR5cGUtY3VzdG9tIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICB3aWR0aDogMTJweDsKICAgIGhlaWdodDogMTJweDsKICB9CiAgCiAgLnctZm9ybS1mb3JtcmFkaW9pbnB1dC0taW5wdXRUeXBlLWN1c3RvbS53LS1yZWRpcmVjdGVkLWZvY3VzIHsKICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMXB4ICMzODk4ZWM7CiAgfQogIAogIC53LWZvcm0tZm9ybXJhZGlvaW5wdXQtLWlucHV0VHlwZS1jdXN0b20udy0tcmVkaXJlY3RlZC1jaGVja2VkIHsKICAgIGJvcmRlci13aWR0aDogNHB4OwogICAgYm9yZGVyLWNvbG9yOiAjMzg5OGVjOwogIH0KICAKICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkgewogICAgLnctY29tbWVyY2UtY29tbWVyY2VsYXlvdXRtYWluIHsKICAgICAgZmxleC1iYXNpczogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgfQogIAogICAgLnctY29tbWVyY2UtY29tbWVyY2VsYXlvdXRzaWRlYmFyIHsKICAgICAgZmxleC1iYXNpczogYXV0bzsKICAgIH0KICAKICAgIC53LWNvbW1lcmNlLWNvbW1lcmNlbGF5b3V0Y29udGFpbmVyIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICB9CiAgfQogIAogIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7CiAgICAudy1jb21tZXJjZS1jb21tZXJjZWNhcnRjb250YWluZXJ3cmFwcGVyLS1jYXJ0VHlwZS1tb2RhbCB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIH0KICAKICAgIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydGNvbnRhaW5lcndyYXBwZXItLWNhcnRUeXBlLWxlZnREcm9wZG93biwgLnctY29tbWVyY2UtY29tbWVyY2VjYXJ0Y29udGFpbmVyd3JhcHBlci0tY2FydFR5cGUtcmlnaHREcm9wZG93biB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICBpbnNldDogMDsKICAgIH0KICAKICAgIC53LWNvbW1lcmNlLWNvbW1lcmNlY2FydHF1YW50aXR5LCAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0ZW1haWxpbnB1dCwgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nZnVsbG5hbWUsIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ3N0cmVldGFkZHJlc3MsIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRzaGlwcGluZ3N0cmVldGFkZHJlc3NvcHRpb25hbCB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIH0KICAKICAgIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRyb3cgewogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgfQogIAogICAgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nY2l0eSwgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nc3RhdGVwcm92aW5jZSwgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nemlwcG9zdGFsY29kZSwgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dHNoaXBwaW5nY291bnRyeXNlbGVjdG9yLCAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0Y2FyZG51bWJlciwgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGNhcmRleHBpcmF0aW9uZGF0ZSwgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGNhcmRzZWN1cml0eWNvZGUsIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nZnVsbG5hbWUsIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nc3RyZWV0YWRkcmVzcywgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdzdHJlZXRhZGRyZXNzb3B0aW9uYWwsIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nY2l0eSwgLnctY29tbWVyY2UtY29tbWVyY2VjaGVja291dGJpbGxpbmdzdGF0ZXByb3ZpbmNlLCAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0YmlsbGluZ3ppcHBvc3RhbGNvZGUsIC53LWNvbW1lcmNlLWNvbW1lcmNlY2hlY2tvdXRiaWxsaW5nY291bnRyeXNlbGVjdG9yLCAudy1jb21tZXJjZS1jb21tZXJjZWNoZWNrb3V0ZGlzY291bnRzaW5wdXQsIC53LWNvbW1lcmNlLWNvbW1lcmNlYWRkdG9jYXJ0cXVhbnRpdHlpbnB1dCB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIH0KICB9CiAgCiAgYm9keSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTMwMCk7CiAgICBmb250LWZhbWlseTogQ2xhcml0eSBDaXR5LCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY2N2VtOwogIH0KICAKICBoMSB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OwogICAgZm9udC1zaXplOiA1NHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjIyMmVtOwogIH0KICAKICBoMiB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgZm9udC1zaXplOiAzOHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjMxNmVtOwogIH0KICAKICBoMyB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuNDE3ZW07CiAgfQogIAogIGg0IHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICBmb250LXNpemU6IDIycHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMjczZW07CiAgfQogIAogIGg1IHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMzMzZW07CiAgfQogIAogIGg2IHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMzc1ZW07CiAgfQogIAogIHAgewogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICB9CiAgCiAgYSB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgdHJhbnNpdGlvbjogY29sb3IgLjNzOwogIH0KICAKICBhOmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgfQogIAogIHVsLCBvbCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgcGFkZGluZy1sZWZ0OiA0MHB4OwogIH0KICAKICBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICB9CiAgCiAgaW1nIHsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CiAgCiAgbGFiZWwgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICBzdHJvbmcgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KICAKICBibG9ja3F1b3RlIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg3MS4xMWRlZywgdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpLCB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTEpKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgYm9yZGVyOiAwIHNvbGlkICMwMDA7CiAgICBib3JkZXItcmFkaXVzOiAzMnB4OwogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBwYWRkaW5nOiA3MHB4IDc4cHg7CiAgICBmb250LXNpemU6IDI4cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuODIxZW07CiAgfQogIAogIGZpZ3VyZSB7CiAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICB9CiAgCiAgZmlnY2FwdGlvbiB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXJnaW4tdG9wOiAxMnB4OwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAyOHB4OwogICAgZ3JpZC1yb3ctZ2FwOiAyOHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBkaXNwbGF5OiBncmlkOwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuc3R5bGUtLS1zdHlsZWd1aWRlLXdyYXBwZXIgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAwcHg7CiAgICBncmlkLXJvdy1nYXA6IDI4cHg7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAuMjVmciAxZnI7CiAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgfQogIAogIC5ncmlkLTItY29sdW1ucy5oZXJvLXBsYXktYnV0dG9uIHsKICAgIGdyaWQtY29sdW1uLWdhcDogMjhweDsKICAgIGdyaWQtcm93LWdhcDogMjhweDsKICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgIG1heC13aWR0aDogNTQwcHg7CiAgfQogIAogIC5ncmlkLTItY29sdW1ucy5ibG9nLXNpZGViYXIgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA0OHB4OwogICAgZ3JpZC1yb3ctZ2FwOiAxMTZweDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDMxMHB4LCAuNDVmcikgMWZyOwogICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuZ2FwLWNvbHVtbi04MHB4IHsKICAgIGdyaWQtY29sdW1uLWdhcDogMzVweDsKICAgIGdyaWQtcm93LWdhcDogMzVweDsKICB9CiAgCiAgLmdyaWQtMi1jb2x1bW5zLmdhbGxlcnktdjYgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgfQogIAogIC5ncmlkLTItY29sdW1ucy50ZW1wbGF0ZS1wYWdlLXNpZGViYXIgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAuMzVmciAxZnI7CiAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgfQogIAogIC5ncmlkLTItY29sdW1ucy5jaGFuZ2Vsb2ctaXRlbSB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDYwcHg7CiAgICBncmlkLXJvdy1nYXA6IDBweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICBwbGFjZS1pdGVtczogc3RhcnQgY2VudGVyOwogICAgcGFkZGluZy10b3A6IDY0cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNjRweDsKICB9CiAgCiAgLmdyaWQtMi1jb2x1bW5zLmNoYW5nZWxvZy1pdGVtLmZpcnN0IHsKICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7CiAgICBwYWRkaW5nLXRvcDogMDsKICAgIHBhZGRpbmctYm90dG9tOiAwOwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMucHJvZHVjdC1wYWdlIHsKICAgIGdyaWQtY29sdW1uLWdhcDogODBweDsKICAgIGdyaWQtcm93LWdhcDogMjhweDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMWZyOwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuY2hlY2tvdXQtcGFnZSB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAuNWZyOwogICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuc3VwcmlzZXMtcGFnZXMtcmlnaHQgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAxMDBweDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDEuMzVmcjsKICAgIG1hcmdpbi1ib3R0b206IDEyNHB4OwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuc3VwcmlzZXMtcGFnZXMtcmlnaHQubGFzdCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuc3VwcmlzZXMtcGFnZXMtbGVmdCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDEwMHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjM1ZnIgMWZyOwogICAgbWFyZ2luLWJvdHRvbTogMTI0cHg7CiAgfQogIAogIC5ncmlkLTItY29sdW1ucy5fMS1jb2x1bW4tYXV0byB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvOwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuZm9ybS1mbGV4LXZlcnRpY2FsIHsKICAgIGdyaWQtY29sdW1uLWdhcDogMTVweDsKICAgIGdyaWQtcm93LWdhcDogMTVweDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICBncmlkLWF1dG8tY29sdW1uczogMWZyOwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMubG9nby1zdHJpcCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDI5cHg7CiAgICBncmlkLXJvdy1nYXA6IDI5cHg7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICB3aWR0aDogMTAwJTsKICAgIG1heC13aWR0aDogNjY3cHg7CiAgfQogIAogIC5ncmlkLTItY29sdW1ucy5ibG9nLXBvc3Qtc2lkZWJhciB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDQwcHg7CiAgICBncmlkLXJvdy1nYXA6IDUycHg7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAuNTVmcjsKICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICB9CiAgCiAgLmdyaWQtMi1jb2x1bW5zLmNvbnRhY3QtZm9ybSB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDI2cHg7CiAgICBncmlkLXJvdy1nYXA6IDIxcHg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgZGlzcGxheTogZ3JpZDsKICB9CiAgCiAgLmdyaWQtMi1jb2x1bW5zLnRpdGxlLWFuZC1idXR0b25zIHsKICAgIGdyaWQtY29sdW1uLWdhcDogNDBweDsKICAgIGdyaWQtcm93LWdhcDogNDBweDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87CiAgfQogIAogIC5ncmlkLTItY29sdW1ucy5sb2dvLXN0cmlwLS0tbWFpbi1ncmlkIHsKICAgIGdyaWQtY29sdW1uLWdhcDogNDBweDsKICAgIGdyaWQtcm93LWdhcDogMjlweDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogLjhmciAxZnI7CiAgfQogIAogIC5ncmlkLTItY29sdW1ucy5ibG9nLWdyaWQgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4OwogICAgZ3JpZC1yb3ctZ2FwOiA3MnB4OwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuc2xpZGVyLXRlc3RpbW9uaWFsLWdyaWQgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgLjhmcjsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgbWluLWhlaWdodDogMTAwJTsKICB9CiAgCiAgLmdyaWQtMi1jb2x1bW5zLmNhcmVlci1zaWRlYmFyIHsKICAgIGdyaWQtY29sdW1uLWdhcDogNDBweDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIC41NWZyOwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMuY29taW5nLXNvb24tZ3JpZCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDQwcHg7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IC44ZnIgMWZyOwogIH0KICAKICAuZ3JpZC0yLWNvbHVtbnMucGFnZXMtZ3JpZCB7CiAgICBtYXgtd2lkdGg6IDY0JTsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIH0KICAKICAuc3R5bGUtLS1uYXZpZ2F0aW9uLXNpZGViYXIgewogICAgei1pbmRleDogMTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTgwMCk7CiAgICBib3gtc2hhZG93OiAxcHggMCAxNHB4IDAgdmFyKC0tZ2VuZXJhbC0tc2hhZG93LTAxKTsKICAgIGhlaWdodDogMTAwJTsKICAgIG1heC1oZWlnaHQ6IDEwMHZoOwogICAgcG9zaXRpb246IHN0aWNreTsKICAgIHRvcDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC5zdHlsZS0tLW1haW4td3JhcHBlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogIH0KICAKICAuY2FyZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm94LXNoYWRvdzogMCAycHggN3B4IDAgdmFyKC0tZ2VuZXJhbC0tc2hhZG93LTAxKTsKICAgIGJvcmRlci1yYWRpdXM6IDY0cHg7CiAgfQogIAogIC5jYXJkLmZvcm0gewogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBib3JkZXItc3R5bGU6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5jYXJkLmZvcm0uY29udGFjdC1mb3JtLXYxIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXItcmFkaXVzOiA0OHB4OwogICAgbWluLWhlaWdodDogNTkwcHg7CiAgICBwYWRkaW5nOiA3MnB4IDcxcHg7CiAgfQogIAogIC5jYXJkLmNvbnRlbnQtY2VudGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBib3JkZXItc3R5bGU6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiA0NnB4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDY5cHggMzRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5jYXJkLmNvbnRlbnQtY2VudGVyLmxpbmstY2FyZCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBjb2xvciAuM3M7CiAgfQogIAogIC5jYXJkLmNvbnRlbnQtY2VudGVyLmxpbmstY2FyZDpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk0LCAuOTQsIDEuMDEpOwogIH0KICAKICAuY2FyZC5jb250ZW50LWNlbnRlci5zdGF0LXYzIHsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxNzE3OwogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgcGFkZGluZzogMTA0cHggMzhweCAxMDRweCA1MXB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC5jYXJkLmNvbnRlbnQtY2VudGVyLnN0YXQtdjMuYmctY29sb3ItZ3JhZGllbnRzIHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjMTNiNGNhLCAjMjcyZWUyKTsKICB9CiAgCiAgLmNhcmQuY29udGVudC1jZW50ZXIudGVhbS12MSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogNDRweDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIHBhZGRpbmc6IDU4cHggNTVweDsKICB9CiAgCiAgLmNhcmQuY29udGVudC1jZW50ZXIudGVhbS12MS5saW5rLWNhcmQgewogICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsKICAgIG1pbi1oZWlnaHQ6IDEwMCU7CiAgfQogIAogIC5jYXJkLmNvbnRlbnQtY2VudGVyLnRlYW0tdjEubGluay1jYXJkOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxLjAxKTsKICB9CiAgCiAgLmNhcmQuY29udGVudC1jZW50ZXIuc2xpZGUtdGVzdGltb25pYWwgewogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIGJvcmRlci1yYWRpdXM6IDY0cHg7CiAgICBwYWRkaW5nOiAxMDBweCAzNHB4OwogIH0KICAKICAuY2FyZC5jb250ZW50LWNlbnRlci5zdGF0LXYyIHsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxNzE3OwogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogNDZweDsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgcGFkZGluZzogNjRweCAzNHB4OwogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC5jYXJkLmxpbmstY2FyZCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBjb2xvciAuM3M7CiAgfQogIAogIC5jYXJkLmxpbmstY2FyZDpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk2LCAuOTYsIDEuMDEpOwogIH0KICAKICAuY2FyZC5zdGlja3ktdG9wLnRvcC0yNHB4IHsKICAgIHRvcDogMjRweDsKICB9CiAgCiAgLmNhcmQuY2hlY2tvdXQtYmxvY2sgewogICAgbWFyZ2luLWJvdHRvbTogMjhweDsKICAgIHBhZGRpbmc6IDQ4cHggNDhweCA2MHB4OwogIH0KICAKICAuY2FyZC5jaGVja291dC1ibG9jay5sYXN0IHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIAogIC5jYXJkLndoYXRzLWluY2x1ZGVkIHsKICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgfQogIAogIC5jYXJkLmZpZ21hLWZpbGUgewogICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgZGlzcGxheTogZmxleDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC5jYXJkLnNhbGVzLWhvbWUtcGFnZSB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcywgY29sb3IgLjNzOwogIH0KICAKICAuY2FyZC5zYWxlcy1ob21lLXBhZ2U6aG92ZXIgewogICAgdHJhbnNmb3JtOiBzY2FsZSguOTYpOwogIH0KICAKICAuY2FyZC5idXktbm93IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICBib3JkZXItcmFkaXVzOiA0MHB4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtaW4taGVpZ2h0OiAxMDAlOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtOwogICAgZGlzcGxheTogZmxleDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC5jYXJkLmJ1eS1ub3c6aG92ZXIgewogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45OCwgLjk4LCAxLjAxKTsKICB9CiAgCiAgLmNhcmQuYnV5LW5vdy5mZWF0dXJlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ2ZWY1OwogIH0KICAKICAuY2FyZC5mZWF0dXJlcyB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDI4cHg7CiAgICBncmlkLXJvdy1nYXA6IDI4cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTMwMCk7CiAgICBib3JkZXItc3R5bGU6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiA2NHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIHBsYWNlLWl0ZW1zOiBzdHJldGNoIHN0cmV0Y2g7CiAgICBwYWRkaW5nOiA3NHB4IDgwcHggMCAxMDBweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MsIGNvbG9yIC4zczsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAuY2FyZC5mZWF0dXJlcy5kaXJlY3Rpb24tcmV2ZXJzZSB7CiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA1M3B4OwogIH0KICAKICAuY2FyZC5jYXJkLXZhbHVlcy1sZWZ0IHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICM2MzRiZmEsICM4YTFmZGUpOwogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogMzJweDsKICAgIHBhZGRpbmc6IDYycHggMjRweCA2NXB4OwogIH0KICAKICAuY2FyZC5jYXJkLXZhbHVlcy1yaWdodCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogMzJweDsKICAgIHBhZGRpbmc6IDM4cHggMjVweCAzNXB4OwogIH0KICAKICAuY2FyZC5jbGllbnRzIHsKICAgIGJvcmRlci1yYWRpdXM6IDQ0cHg7CiAgICBwYWRkaW5nOiA1MXB4IDQ2cHg7CiAgfQogIAogIC5zdHlsZS0tLWNvbG9yLWJsb2NrIHsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHg7CiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDsKICAgIG1pbi1oZWlnaHQ6IDE4MHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAuc3R5bGUtLS1jb2xvci1ibG9jay5iZy1zZWNvbmRhcnktMyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpOwogIH0KICAKICAuc3R5bGUtLS1jb2xvci1ibG9jay5iZy1zZWNvbmRhcnktNSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTUpOwogIH0KICAKICAuc3R5bGUtLS1jb2xvci1ibG9jay1jb250ZW50IHsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLS04MDApOwogICAgcGFkZGluZzogMjRweCAyNHB4IDMycHg7CiAgfQogIAogIC5zdHlsZS0tLWNvbG9yLWJsb2NrLW5hbWUgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDIycHg7CiAgfQogIAogIC5zdHlsZS0tLWNvbG9yLWJsb2NrLWhleCB7CiAgICBsaW5lLWhlaWdodDogMjBweDsKICB9CiAgCiAgLmdyaWQtNC1jb2x1bW5zIHsKICAgIGdyaWQtY29sdW1uLWdhcDogMjhweDsKICAgIGdyaWQtcm93LWdhcDogMjhweDsKICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyOwogICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgfQogIAogIC5ncmlkLTQtY29sdW1ucy5jYXJkcy12YWx1ZXMgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjc1ZnIgMWZyIDFmcjsKICB9CiAgCiAgLmdyaWQtNC1jb2x1bW5zLmNvbnRlbnQtam9icyB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDI0cHg7CiAgICBncmlkLXJvdy1nYXA6IDUwcHg7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIuNWZyIDFmciAxLjlmciAxZnI7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KICAKICAuZ3JpZC00LWNvbHVtbnMucHJpY2luZyB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDBweDsKICAgIGdyaWQtcm93LWdhcDogMHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyIDFmciAxZnI7CiAgICB3aWR0aDogMTAwJTsKICB9CiAgCiAgLmJnLWFjY2VudC0xIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICB9CiAgCiAgLmJnLXNlY29uZGFyeS0xIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS0tY29sb3ItMSk7CiAgfQogIAogIC5iZy1zZWNvbmRhcnktMiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTIpOwogIH0KICAKICAuYmctc2Vjb25kYXJ5LTMgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LS1jb2xvci0zKTsKICB9CiAgCiAgLmJnLXNlY29uZGFyeS00IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS0tY29sb3ItNCk7CiAgfQogIAogIC5iZy1zZWNvbmRhcnktNSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTUpOwogIH0KICAKICAuYmctbmV1dHJhbC04MDAgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICB9CiAgCiAgLmJnLW5ldXRyYWwtNzAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgfQogIAogIC5iZy1uZXV0cmFsLTYwMCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogIH0KICAKICAuYmctbmV1dHJhbC01MDAgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNTAwKTsKICB9CiAgCiAgLmJnLW5ldXRyYWwtNDAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgfQogIAogIC5iZy1uZXV0cmFsLTMwMCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0zMDApOwogIH0KICAKICAuYmctbmV1dHJhbC0yMDAgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMjAwKTsKICB9CiAgCiAgLmJnLW5ldXRyYWwtMTAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgfQogIAogIC5zdHlsZS0tLWNvbG9yLWJsb2NrLXRleHQtZXhhbXBsZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgYm9yZGVyLXJhZGl1czogNDBweDsKICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDE2cHggMTZweCBhdXRvIGF1dG87CiAgfQogIAogIC5zdHlsZS0tLWNvbG9yLWJsb2NrLXRleHQtZXhhbXBsZS5iYWRnZS1kYXJrIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgfQogIAogIC5jb2xvci1hY2NlbnQtMSB7CiAgICBjb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogIH0KICAKICAuY29sb3Itc2Vjb25kYXJ5LTEgewogICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS0tY29sb3ItMSk7CiAgfQogIAogIC5jb2xvci1zZWNvbmRhcnktMiB7CiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LS1jb2xvci0yKTsKICB9CiAgCiAgLmNvbG9yLXNlY29uZGFyeS0zIHsKICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpOwogIH0KICAKICAuY29sb3Itc2Vjb25kYXJ5LTQgewogICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS0tY29sb3ItNCk7CiAgfQogIAogIC5jb2xvci1zZWNvbmRhcnktNSB7CiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LS1jb2xvci01KTsKICB9CiAgCiAgLmNvbG9yLW5ldXRyYWwtODAwIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogIH0KICAKICAuY29sb3ItbmV1dHJhbC03MDAgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgfQogIAogIC5jb2xvci1uZXV0cmFsLTYwMCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tNjAwKTsKICB9CiAgCiAgLmNvbG9yLW5ldXRyYWwtNTAwIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS01MDApOwogIH0KICAKICAuY29sb3ItbmV1dHJhbC0zMDAgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTMwMCk7CiAgfQogIAogIC5jb2xvci1uZXV0cmFsLTIwMCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMjAwKTsKICB9CiAgCiAgLmNvbG9yLW5ldXRyYWwtMTAwIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAuY29sb3ItbmV1dHJhbC0xMDAubWctYm90dG9tLTBweCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KICAKICAuYmctZ3JlZW4tNDAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN5c3RlbS0tZ3JlZW4tNDAwKTsKICB9CiAgCiAgLmNvbG9yLWdyZWVuLTQwMCB7CiAgICBjb2xvcjogIzExODQ1YjsKICB9CiAgCiAgLmJnLWJsdWUtNDAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN5c3RlbS0tYmx1ZS00MDApOwogIH0KICAKICAuY29sb3ItYmx1ZS00MDAgewogICAgY29sb3I6IHZhcigtLXN5c3RlbS0tYmx1ZS00MDApOwogIH0KICAKICAuYmctYmx1ZS0zMDAgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3lzdGVtLS1ibHVlLTMwMCk7CiAgfQogIAogIC5jb2xvci1ibHVlLTMwMCB7CiAgICBjb2xvcjogdmFyKC0tc3lzdGVtLS1ibHVlLTMwMCk7CiAgfQogIAogIC5iZy1ibHVlLTIwMCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zeXN0ZW0tLWJsdWUtMjAwKTsKICB9CiAgCiAgLmJnLWJsdWUtMTAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN5c3RlbS0tYmx1ZS0xMDApOwogIH0KICAKICAuY29sb3ItYmx1ZS0xMDAgewogICAgY29sb3I6IHZhcigtLXN5c3RlbS0tYmx1ZS0xMDApOwogIH0KICAKICAuY29sb3ItbmV1dHJhbC00MDAgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgfQogIAogIC5jb2xvci1uZXV0cmFsLTQwMC5tYXgtdy0zNThweCB7CiAgICBtYXgtd2lkdGg6IDM1OHB4OwogIH0KICAKICAuYmctZ3JlZW4tMzAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN5c3RlbS0tZ3JlZW4tMzAwKTsKICB9CiAgCiAgLmNvbG9yLWdyZWVuLTMwMCB7CiAgICBjb2xvcjogdmFyKC0tc3lzdGVtLS1ncmVlbi0zMDApOwogIH0KICAKICAuYmctZ3JlZW4tMjAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN5c3RlbS0tZ3JlZW4tMjAwKTsKICB9CiAgCiAgLmNvbG9yLWdyZWVuLTIwMCB7CiAgICBjb2xvcjogdmFyKC0tc3lzdGVtLS1ncmVlbi0yMDApOwogIH0KICAKICAuY29sb3ItZ3JlZW4tMTAwIHsKICAgIGNvbG9yOiB2YXIoLS1zeXN0ZW0tLWdyZWVuLTEwMCk7CiAgfQogIAogIC5iZy1ncmVlbi0xMDAgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3lzdGVtLS1ncmVlbi0xMDApOwogIH0KICAKICAuYmctcmVkLTQwMCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zeXN0ZW0tLXJlZC00MDApOwogIH0KICAKICAuY29sb3ItcmVkLTQwMCB7CiAgICBjb2xvcjogdmFyKC0tc3lzdGVtLS1yZWQtNDAwKTsKICB9CiAgCiAgLmJnLXJlZC0zMDAgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3lzdGVtLS0zMDApOwogIH0KICAKICAuY29sb3ItcmVkLTMwMCB7CiAgICBjb2xvcjogdmFyKC0tc3lzdGVtLS0zMDApOwogIH0KICAKICAuYmctcmVkLTIwMCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zeXN0ZW0tLXJlZC0yMDApOwogIH0KICAKICAuY29sb3ItcmVkLTIwMCB7CiAgICBjb2xvcjogdmFyKC0tc3lzdGVtLS1yZWQtMjAwKTsKICB9CiAgCiAgLmJnLXJlZC0xMDAgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3lzdGVtLS1yZWQtMTAwKTsKICB9CiAgCiAgLmNvbG9yLXJlZC0xMDAgewogICAgY29sb3I6IHZhcigtLXN5c3RlbS0tcmVkLTEwMCk7CiAgfQogIAogIC5iZy1vcmFuZ2UtNDAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN5c3RlbS0tb3JhbmdlLTQwMCk7CiAgfQogIAogIC5jb2xvci1vcmFuZ2UtNDAwIHsKICAgIGNvbG9yOiB2YXIoLS1zeXN0ZW0tLW9yYW5nZS00MDApOwogIH0KICAKICAuYmctb3JhbmdlLTMwMCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zeXN0ZW0tLW9yYW5nZS0zMDApOwogIH0KICAKICAuY29sb3Itb3JhbmdlLTMwMCB7CiAgICBjb2xvcjogdmFyKC0tc3lzdGVtLS1vcmFuZ2UtMzAwKTsKICB9CiAgCiAgLmJnLW9yYW5nZS0yMDAgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3lzdGVtLS1vcmFuZ2UtMjAwKTsKICB9CiAgCiAgLmNvbG9yLW9yYW5nZS0yMDAgewogICAgY29sb3I6IHZhcigtLXN5c3RlbS0tb3JhbmdlLTIwMCk7CiAgfQogIAogIC5iZy1vcmFuZ2UtMTAwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN5c3RlbS0tb3JhbmdlLTEwMCk7CiAgfQogIAogIC5jb2xvci1vcmFuZ2UtMTAwIHsKICAgIGNvbG9yOiB2YXIoLS1zeXN0ZW0tLW9yYW5nZS0xMDApOwogIH0KICAKICAuc3R5bGUtLS1ibG9jay1zdWItaGVhZGluZyB7CiAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogIH0KICAKICAuc3R5bGUtLS1ibG9jay1zdWItaGVhZGluZy5ib3JkZXIgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtLTYwMCk7CiAgICBtYXJnaW4tYm90dG9tOiA2NHB4OwogICAgcGFkZGluZy1ib3R0b206IDQwcHg7CiAgfQogIAogIC5kaXZpZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTYwMCk7CiAgICBoZWlnaHQ6IDEuNXB4OwogICAgbWFyZ2luLXRvcDogNTBweDsKICAgIG1hcmdpbi1ib3R0b206IDUwcHg7CiAgfQogIAogIC5kaXZpZGVyLl82NHB4IHsKICAgIG1hcmdpbi10b3A6IDY0cHg7CiAgICBtYXJnaW4tYm90dG9tOiA2NHB4OwogIH0KICAKICAuZGl2aWRlci5fNjRweC50ZW1wbGF0ZS1wYWdlcy1zdGFydC1oZXJlIHsKICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgfQogIAogIC5kaXZpZGVyLl80MHB4IHsKICAgIG1hcmdpbi10b3A6IDQwcHg7CiAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogIH0KICAKICAuZGl2aWRlci5iZy1uZXV0cmFsLTYwMCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogIH0KICAKICAuZGl2aWRlci5iZy1uZXV0cmFsLTYwMC5tZy1ib3R0b20tMzJweC5tZy10b3AtMzJweCB7CiAgICBoZWlnaHQ6IDFweDsKICB9CiAgCiAgLmRpdmlkZXIubWctdG9wLTgwcHgubWctYm90dG9tLTMycHguYmctZ2xhc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIG9wYWNpdHk6IC4zOwogIH0KICAKICAuZGl2aWRlci5fNzBweCB7CiAgICBtYXJnaW4tdG9wOiA3MHB4OwogICAgbWFyZ2luLWJvdHRvbTogNzBweDsKICB9CiAgCiAgLnN0eWxlLS0tdHlwb2dyYXBoeS1ibG9jay1ncmlkIHsKICAgIGdyaWQtY29sdW1uLWdhcDogNDBweDsKICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KGF1dG8sIDMyMHB4KSAxZnI7CiAgfQogIAogIC5zdHlsZS0tLWNvbnRlbnQtYmxvY2sgewogICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7CiAgfQogIAogIC5tZy1ib3R0b20tOHB4IHsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICB9CiAgCiAgLm1nLWJvdHRvbS0xNnB4IHsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgfQogIAogIC5tZy1ib3R0b20tMjRweCB7CiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogIH0KICAKICAubWctYm90dG9tLTMycHggewogICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICB9CiAgCiAgLm1nLWJvdHRvbS00MHB4IHsKICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgfQogIAogIC5tZy1ib3R0b20tNDhweCB7CiAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogIH0KICAKICAubWctYm90dG9tLTQ4cHgubWF4LXctNTIwcHggewogICAgbWF4LXdpZHRoOiA1MjBweDsKICB9CiAgCiAgLm1nLWJvdHRvbS01NnB4IHsKICAgIG1hcmdpbi1ib3R0b206IDU2cHg7CiAgfQogIAogIC5tZy1ib3R0b20tNjRweCB7CiAgICBtYXJnaW4tYm90dG9tOiA2NHB4OwogIH0KICAKICAubWctYm90dG9tLTgwcHggewogICAgbWFyZ2luLWJvdHRvbTogODBweDsKICB9CiAgCiAgLm1nLXRvcC0xNnB4IHsKICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgfQogIAogIC5tZy10b3AtMjRweCB7CiAgICBtYXJnaW4tdG9wOiAyNHB4OwogIH0KICAKICAubWctdG9wLTMycHggewogICAgbWFyZ2luLXRvcDogMzJweDsKICB9CiAgCiAgLm1nLXRvcC00OHB4IHsKICAgIG1hcmdpbi10b3A6IDQ4cHg7CiAgfQogIAogIC5tZy10b3AtNTZweCB7CiAgICBtYXJnaW4tdG9wOiA1NnB4OwogIH0KICAKICAubWctdG9wLTgwcHggewogICAgbWFyZ2luLXRvcDogODBweDsKICB9CiAgCiAgLm1nLWxlZnQtMTZweCB7CiAgICBtYXJnaW4tbGVmdDogMTZweDsKICB9CiAgCiAgLm1nLXJpZ2h0LThweCB7CiAgICBtYXJnaW4tcmlnaHQ6IDhweDsKICB9CiAgCiAgLm1nLXJpZ2h0LTE2cHggewogICAgbWFyZ2luLXJpZ2h0OiAxNnB4OwogIH0KICAKICAubWctcmlnaHQtMjRweCB7CiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7CiAgfQogIAogIC50ZXh0LTIwMCB7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBsaW5lLWhlaWdodDogMS4xMTFlbTsKICB9CiAgCiAgLnRleHQtMjAwLm1nLWJvdHRvbS04cHggewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTMwMCk7CiAgfQogIAogIC50ZXh0LTIwMC5jb2xvci1hY2NlbnQtMSB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMjI1ZGVnLCB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpLCB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTIpKTsKICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogIH0KICAKICAudGV4dC0yMDAubGlzdCB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKICB9CiAgCiAgLnRleHQtMjAwLm1lZGl1bSB7CiAgICBmb250LXdlaWdodDogNTAwOwogIH0KICAKICAudGV4dC0yMDAuYm9sZCB7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KICAKICAudGV4dC0yMDAuYm9sZC5jb2xvci1uZXV0cmFsLTEwMCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLmRpc3BsYXktMSB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGZvbnQtc2l6ZTogMTAycHg7CiAgICBmb250LXdlaWdodDogODAwOwogICAgbGluZS1oZWlnaHQ6IC45OWVtOwogIH0KICAKICAuZ3JpZC0xLWNvbHVtbiB7CiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7CiAgICBkaXNwbGF5OiBncmlkOwogIH0KICAKICAuZ3JpZC0xLWNvbHVtbi5nYXAtcm93LTQ1cHggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA0NXB4OwogICAgZ3JpZC1yb3ctZ2FwOiA0NXB4OwogIH0KICAKICAuZ3JpZC0xLWNvbHVtbi5nYXAtMjZweCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDI2cHg7CiAgICBncmlkLXJvdy1nYXA6IDI2cHg7CiAgfQogIAogIC5ncmlkLTEtY29sdW1uLnBhc3N3b3JkLWdyaWQgewogICAgZ3JpZC1yb3ctZ2FwOiAyMHB4OwogIH0KICAKICAuZ2FwLTE2cHggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAxNnB4OwogICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogIH0KICAKICAuZ2FwLTI0cHggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAyNHB4OwogICAgZ3JpZC1yb3ctZ2FwOiAyNHB4OwogIH0KICAKICAuZ2FwLWNvbHVtbi0yNHB4IHsKICAgIGdyaWQtY29sdW1uLWdhcDogMjRweDsKICB9CiAgCiAgLmdhcC1jb2x1bW4tODBweCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDgwcHg7CiAgfQogIAogIC5nYXAtcm93LTE2cHggewogICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogIH0KICAKICAuZ2FwLXJvdy0yNHB4IHsKICAgIGdyaWQtcm93LWdhcDogMjRweDsKICB9CiAgCiAgLmdhcC1yb3ctNDhweCB7CiAgICBncmlkLXJvdy1nYXA6IDQ4cHg7CiAgfQogIAogIC5nYXAtcm93LTgwcHggewogICAgZ3JpZC1yb3ctZ2FwOiA4MHB4OwogIH0KICAKICAuZGlzcGxheS0yIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC1zaXplOiA2MHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjE2N2VtOwogIH0KICAKICAuZGlzcGxheS0yLm1heC13LTQwMHB4LCAuZGlzcGxheS0yLm1heC13LTM2MXB4IHsKICAgIG1heC13aWR0aDogNDAwcHg7CiAgfQogIAogIC5kaXNwbGF5LTIubWF4LXctMzYxcHgubWctYm90dG9tLTE2cHggewogICAgbWF4LXdpZHRoOiAzNjFweDsKICB9CiAgCiAgLmRpc3BsYXktMi50aXRsZS1wYXNzd29yZCB7CiAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogIH0KICAKICAuZGlzcGxheS0zIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC1zaXplOiA0NHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjE4MmVtOwogIH0KICAKICAuZGlzcGxheS0zLm1nLWJvdHRvbS0wcHggewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CiAgCiAgLmRpc3BsYXktMy5jb2xvci1uZXV0cmFsLTQwMCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tNDAwKTsKICB9CiAgCiAgLmRpc3BsYXktNCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGZvbnQtc2l6ZTogMjhweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMS40MjllbTsKICB9CiAgCiAgLmRpc3BsYXktNC5tZy1ib3R0b20tNXB4IHsKICAgIG1hcmdpbi1ib3R0b206IDVweDsKICB9CiAgCiAgLnN0eWxlLS0tc3R5bGUtZ3JpZC13cmFwcGVyIHsKICAgIGdyaWQtcm93LWdhcDogMTgwcHg7CiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICB9CiAgCiAgLnBhcmFncmFwaC1sYXJnZSB7CiAgICBmb250LXNpemU6IDIycHg7CiAgICBsaW5lLWhlaWdodDogMS43MjdlbTsKICB9CiAgCiAgLnBhcmFncmFwaC1sYXJnZS5tZy1ib3R0b20tNDBweC5tYXgtdy04MTJweCB7CiAgICBtYXgtd2lkdGg6IDgxMnB4OwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgfQogIAogIC5wYXJhZ3JhcGgtbGFyZ2UubWctYm90dG9tLTQwcHgubWF4LXctNzQ1cHggewogICAgbWF4LXdpZHRoOiA3NDVweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIH0KICAKICAucGFyYWdyYXBoLWxhcmdlLm1nLWJvdHRvbS00MHB4LnRleHQtY29sb3ItNDAwIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS00MDApOwogIH0KICAKICAucGFyYWdyYXBoLXNtYWxsIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjcxNGVtOwogIH0KICAKICAudGV4dC00MDAgewogICAgZm9udC1zaXplOiAyNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuMDgzZW07CiAgfQogIAogIC50ZXh0LTQwMC5tZWRpdW0gewogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CiAgCiAgLnRleHQtNDAwLm1lZGl1bS5jb2xvci1uZXV0cmFsLTEwMCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLnRleHQtNDAwLmJvbGQgewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CiAgCiAgLnRleHQtNDAwLmJvbGQuY29sb3ItbmV1dHJhbCwgLnRleHQtNDAwLmJvbGQuY29sb3ItbmV1dHJhbC0xMDAgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgfQogIAogIC50ZXh0LTMwMCB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMS4xZW07CiAgfQogIAogIC50ZXh0LTMwMC5tZWRpdW0gewogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CiAgCiAgLnRleHQtMzAwLmJvbGQgewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CiAgCiAgLnRleHQtMTAwIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjEyNWVtOwogIH0KICAKICAudGV4dC0xMDAubWVkaXVtIHsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgfQogIAogIC50ZXh0LTEwMC5ib2xkIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQogIAogIC50ZXh0LWJvbGQgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTgwMCk7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KICAKICAudGV4dC1saW5rIHsKICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIHRyYW5zaXRpb246IGNvbG9yIC4zczsKICB9CiAgCiAgLnRleHQtbGluazpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICB9CiAgCiAgLnRleHQtbGluay5jb2xvci1uZXV0cmFsLTEwMCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLnRleHQtbGluay5jb2xvci1uZXV0cmFsLTEwMDpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogIH0KICAKICAudGV4dC1saW5rLmRlZmF1bHQgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTMwMCk7CiAgfQogIAogIC50ZXh0LWxpbmsuZGVmYXVsdDpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogIH0KICAKICAudGV4dC11cHBlcmNhc2UgewogICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIH0KICAKICAudGV4dC1zdHJpa2V0aHJvdWdoIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogIH0KICAKICAuZ3JpZC0zLWNvbHVtbnMgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAyOHB4OwogICAgZ3JpZC1yb3ctZ2FwOiAyOHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjsKICAgIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgfQogIAogIC5ncmlkLTMtY29sdW1ucy5nYXAtcm93LTgwcHggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAzMnB4OwogICAgZ3JpZC1yb3ctZ2FwOiAzMnB4OwogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7CiAgICBncmlkLWF1dG8tY29sdW1uczogMWZyOwogIH0KICAKICAuZ3JpZC0zLWNvbHVtbnMuc3R5bGUtLS1idXR0b25zLWdyaWQgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA3MHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gMWZyOwogIH0KICAKICAuZ3JpZC0zLWNvbHVtbnMuXzMtY29sLXRhYmxldCB7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgfQogIAogIC5ncmlkLTMtY29sdW1ucy5fMy1jb2wtdGFibGV0LmFib3V0IHsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7CiAgfQogIAogIC5ncmlkLTMtY29sdW1ucy5nYXAtMTZweCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDE2cHg7CiAgICBncmlkLXJvdy1nYXA6IDE2cHg7CiAgfQogIAogIC5ncmlkLTMtY29sdW1ucy5tZW1iZXJzLXYyIHsKICAgIGdyaWQtcm93LWdhcDogN3B4OwogICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmciAxZnI7CiAgfQogIAogIC5ncmlkLTMtY29sdW1ucy5nYXAtcm93LTgwcHggewogICAgZ3JpZC1yb3ctZ2FwOiA4MHB4OwogIH0KICAKICAuZ3JpZC0zLWNvbHVtbnMucHJpY2luZyB7CiAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7CiAgfQogIAogIC5ncmlkLTMtY29sdW1ucy5jb250ZW50LWNvbnRhY3QgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciAxZnI7CiAgfQogIAogIC5ncmlkLTMtY29sdW1ucy5zZWN0aW9uLWJsb2ctZ3JpZCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDMycHg7CiAgICBncmlkLXJvdy1nYXA6IDcycHg7CiAgfQogIAogIC5ncmlkLTMtY29sdW1ucy5wYWdlcy1ncmlkIHsKICAgIG1hcmdpbi1ib3R0b206IDI4cHg7CiAgfQogIAogIC5zdHlsZS0tLXNoYWRvdy1jYXJkIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3gtc2hhZG93OiAwIDJweCA2cHggMCB2YXIoLS1nZW5lcmFsLS1zaGFkb3ctMDEpOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgYm9yZGVyLXJhZGl1czogMThweDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtaW4taGVpZ2h0OiAyMjBweDsKICAgIHBhZGRpbmc6IDMycHggNDRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5zaGFkb3ctMDIgewogICAgYm94LXNoYWRvdzogMCAycHggMTJweCAwIHZhcigtLWdlbmVyYWwtLXNoYWRvdy0wMik7CiAgfQogIAogIC5zaGFkb3ctMDMgewogICAgYm94LXNoYWRvdzogMCA4cHggMjhweCAwIHZhcigtLWdlbmVyYWwtLXNoYWRvdy0wMyk7CiAgfQogIAogIC5zaGFkb3ctMDQgewogICAgYm94LXNoYWRvdzogMCAxNHB4IDQycHggMCB2YXIoLS1nZW5lcmFsLS1zaGFkb3ctMDQpOwogIH0KICAKICAuc2hhZG93LTA1IHsKICAgIGJveC1zaGFkb3c6IDAgMjRweCA2NXB4IDAgdmFyKC0tZ2VuZXJhbC0tc2hhZG93LTA1KTsKICB9CiAgCiAgLnNoYWRvdy0wNiB7CiAgICBib3gtc2hhZG93OiAwIDMycHggNzJweCAwIHZhcigtLWdlbmVyYWwtLXNoYWRvdy0wNik7CiAgfQogIAogIC5idXR0b24tc2hhZG93LWNvbG9yLTAxIHsKICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggMCB2YXIoLS1idXR0b24tc2hhZG93LS1jb2xvci0wMSk7CiAgfQogIAogIC5idXR0b24tc2hhZG93LWNvbG9yLTAyIHsKICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggMCB2YXIoLS1idXR0b24tc2hhZG93LS1jb2xvci0yKTsKICB9CiAgCiAgLmJ1dHRvbi1zaGFkb3ctY29sb3ItMDMgewogICAgYm94LXNoYWRvdzogMCAxMHB4IDI4cHggMCB2YXIoLS1idXR0b24tc2hhZG93LS1jb2xvci0wMyk7CiAgfQogIAogIC5idXR0b24tc2hhZG93LXdoaXRlLTAxIHsKICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggMCB2YXIoLS1idXR0b24tc2hhZG93LS13aGl0ZS0wMSk7CiAgfQogIAogIC5idXR0b24tc2hhZG93LXdoaXRlLTAyIHsKICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggMCB2YXIoLS1idXR0b24tc2hhZG93LS13aGl0ZS0wMik7CiAgfQogIAogIC5idXR0b24tc2hhZG93LXdoaXRlLTAzIHsKICAgIGJveC1zaGFkb3c6IDAgMTBweCAyOHB4IDAgdmFyKC0tYnV0dG9uLXNoYWRvdy0td2hpdGUtMDMpOwogIH0KICAKICAuc3R5bGUtLS1oZWFkaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTgwMCk7CiAgICBib3gtc2hhZG93OiAwIDJweCA2cHggMCB2YXIoLS1nZW5lcmFsLS1zaGFkb3ctMDIpOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1pbi1oZWlnaHQ6IDcwdmg7CiAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgcGFkZGluZzogNzJweCA0dnc7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl83NDBweCB7CiAgICBtYXgtd2lkdGg6IDc0MHB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl82MDBweCB7CiAgICBtYXgtd2lkdGg6IDYwMHB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLmNlbnRlciB7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNTc0cHggewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbWF4LXdpZHRoOiA1NzRweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl83NTJweC5jZW50ZXIgewogICAgbWF4LXdpZHRoOiA3NTJweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNDYwcHggewogICAgbWF4LXdpZHRoOiA0NjBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNTAwcHggewogICAgbWF4LXdpZHRoOiA1MDBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fOTAwcHggewogICAgbWF4LXdpZHRoOiA5MDBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNzAwcHggewogICAgbWF4LXdpZHRoOiA3MDBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNjQwcHggewogICAgbWF4LXdpZHRoOiA2NDBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNjgwcHggewogICAgbWF4LXdpZHRoOiA2ODBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fMTA4MHB4IHsKICAgIG1heC13aWR0aDogNTc0cHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzEwODBweC5jZW50ZXIgewogICAgbWF4LXdpZHRoOiAxMDgwcHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzY3NnB4IHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIG1heC13aWR0aDogNjc2cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5tYXgtdy0xMDgwcHgsIC5pbm5lci1jb250YWluZXIubWF4LXctMTAwIHsKICAgIG1heC13aWR0aDogMTA4MHB4OwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgfQogIAogIC5pbm5lci1jb250YWluZXIubWF4LXctMTAwLm1nLXRvcC0zMnB4IHsKICAgIG1heC13aWR0aDogMTAwJTsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNzkycHggewogICAgbWF4LXdpZHRoOiA2MDBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNzkycHguY2VudGVyIHsKICAgIG1heC13aWR0aDogNzkycHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzc4MHB4IHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIG1heC13aWR0aDogNTc0cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNzgwcHguY2VudGVyIHsKICAgIG1heC13aWR0aDogNzgwcHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzg5M3B4IHsKICAgIG1heC13aWR0aDogODkzcHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzgyMXB4IHsKICAgIG1heC13aWR0aDogODIxcHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuYnRuLXNpZ24taW4taWNvbiB7CiAgICBtYXgtd2lkdGg6IDI5cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzY1MHB4IHsKICAgIG1heC13aWR0aDogNjUwcHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzc5OHB4IHsKICAgIG1heC13aWR0aDogNzk4cHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzY0NXB4IHsKICAgIG1heC13aWR0aDogNjQ1cHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuXzU4MHB4IHsKICAgIG1heC13aWR0aDogNTgwcHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuaW1hZ2UtYW5kLXRleHQtcmlnaHQtLS1pbWFnZSB7CiAgICBmbGV4OiAxOwogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIG1pbi13aWR0aDogMzUwcHg7CiAgICBtYXgtd2lkdGg6IDYyMHB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl82MjhweCB7CiAgICBtYXgtd2lkdGg6IDYyOHB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLmltYWdlLWFuZC10ZXh0LWxlZnQtLS1pbWFnZSB7CiAgICBmbGV4OiAxOwogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIG1pbi13aWR0aDogNDE0cHg7CiAgICBtYXgtd2lkdGg6IDU5OXB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl83MnB4IHsKICAgIG1heC13aWR0aDogNzJweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fMzM2cHggewogICAgbWF4LXdpZHRoOiAzMzZweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNjc1cHggewogICAgbWF4LXdpZHRoOiA2NzVweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNDQ4cHggewogICAgbWF4LXdpZHRoOiA0NDhweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fMTE3NnB4IHsKICAgIG1heC13aWR0aDogMTE3NnB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl82NTJweCB7CiAgICBtYXgtd2lkdGg6IDY1MnB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl82NTdweCB7CiAgICBtYXgtd2lkdGg6IDY1N3B4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl81MTNweCB7CiAgICBtYXgtd2lkdGg6IDUxM3B4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl81NDVweCB7CiAgICBtYXgtd2lkdGg6IDU0NXB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl82OTJweCB7CiAgICBtYXgtd2lkdGg6IDY5MnB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLl85NnB4IHsKICAgIG1heC13aWR0aDogOTZweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNTI1cHggewogICAgbWF4LXdpZHRoOiA1MjVweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5zaWduLXVwLWNvbnRlbnQtLS1sZWZ0IHsKICAgIG1pbi13aWR0aDogNDQwcHg7CiAgICBtYXgtd2lkdGg6IDU0MHB4OwogIH0KICAKICAuaW5uZXItY29udGFpbmVyLnNpZ24tdXAtY29udGVudC0tLXJpZ2h0IHsKICAgIG1heC13aWR0aDogNjIwcHg7CiAgfQogIAogIC5pbm5lci1jb250YWluZXIuY29taW5nLXNvb24tY29udGVudC0tLWxlZnQgewogICAgbWF4LXdpZHRoOiA1MjlweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNTEycHggewogICAgbWF4LXdpZHRoOiA1MTJweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fODIwcHggewogICAgbWF4LXdpZHRoOiA4MjBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fMTQwcHggewogICAgbWF4LXdpZHRoOiAxNDBweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fOTkzcHggewogICAgbWF4LXdpZHRoOiA5OTNweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fODgxcHggewogICAgbWF4LXdpZHRoOiA4ODFweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fNTU1cHggewogICAgbWF4LXdpZHRoOiA1NTVweDsKICB9CiAgCiAgLmlubmVyLWNvbnRhaW5lci5fMTA2NHB4IHsKICAgIG1heC13aWR0aDogMTA2NHB4OwogIH0KICAKICAuc3R5bGUtLS1jb250ZW50LWhlYWRpbmcgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHZhcigtLWdlbmVyYWwtLXNoYWRvdy0wMik7CiAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICBwYWRkaW5nOiA0OHB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnN0eWxlLS0taGVhZGluZy1pY29uLXdyYXBwZXIgewogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSksIHZhcigtLXNlY29uZGFyeS0tY29sb3ItMSkpOwogICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgIG1hcmdpbi1yaWdodDogMThweDsKICB9CiAgCiAgLm1nLWJvdHRvbS0wIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIAogIC5zdHlsZS0tLWNvbnRlbnQtd3JhcHBlciB7CiAgICBwYWRkaW5nLXRvcDogNDBweDsKICAgIHBhZGRpbmctbGVmdDogNHZ3OwogICAgcGFkZGluZy1yaWdodDogNHZ3OwogIH0KICAKICAuYm9yZGVyLXJhZGl1cy0xNnB4IHsKICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgfQogIAogIC5ib3JkZXItcmFkaXVzLTMycHggewogICAgYm9yZGVyLXJhZGl1czogMzJweDsKICB9CiAgCiAgLmJvcmRlci1yYWRpdXMtNjRweCB7CiAgICBib3JkZXItcmFkaXVzOiA2NHB4OwogIH0KICAKICAuc3R5bGUtLS1jYXJkLXdyYXBwZXIgewogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3gtc2hhZG93OiAwIDJweCA3cHggMCB2YXIoLS1nZW5lcmFsLS1zaGFkb3ctMDEpOwogICAgYm9yZGVyLXJhZGl1czogMjRweDsKICB9CiAgCiAgLnN0eWxlLS0tYmctb3V0bGluZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICAgIGJvcmRlci1yYWRpdXM6IDI0cHggMjRweCAwIDA7CiAgICBtYXJnaW4tYm90dG9tOiAtMXB4OwogICAgcGFkZGluZzogNDhweDsKICB9CiAgCiAgLnN0eWxlLS0tYmctb3V0bGluZS5yYWRpdXMtYm9yZGUtMCB7CiAgICBib3JkZXItcmFkaXVzOiAwOwogIH0KICAKICAuc3R5bGUtLS1iZy1vdXRsaW5lLnJhZGl1cy1ib3JkZXItMjRweCB7CiAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogIH0KICAKICAuc3R5bGUtYnV0dG9ucy1kYXJrIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtLTYwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogICAgYm9yZGVyLXJhZGl1czogMCAwIDI0cHggMjRweDsKICAgIG1hcmdpbi10b3A6IC0xcHg7CiAgICBwYWRkaW5nOiA0OHB4OwogIH0KICAKICAuYnRuLXByaW1hcnkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsKICAgIGJvcmRlci1yYWRpdXM6IDQ4cHg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDI2cHggMzhweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMS4xMTFlbTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzLCB0cmFuc2Zvcm0gLjNzLCBjb2xvciAuM3M7CiAgfQogIAogIC5idG4tcHJpbWFyeTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGJvcmRlci1jb2xvcjogIzAwMDA7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zcHgsIC4wMXB4KTsKICB9CiAgCiAgLmJ0bi1wcmltYXJ5LnNtYWxsIHsKICAgIHBhZGRpbmc6IDE4cHggMjRweDsKICAgIGZvbnQtc2l6ZTogMTZweDsKICB9CiAgCiAgLmJ0bi1wcmltYXJ5LnNtYWxsLmRpc2NvdW50IHsKICAgIGhlaWdodDogYXV0bzsKICAgIG1hcmdpbi1sZWZ0OiAwOwogIH0KICAKICAuYnRuLXByaW1hcnkubGFyZ2UgewogICAgcGFkZGluZzogMjhweCA1NnB4OwogICAgZm9udC1zaXplOiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIycHg7CiAgfQogIAogIC5idG4tcHJpbWFyeS53aGl0ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTgwMCk7CiAgfQogIAogIC5idG4tcHJpbWFyeS53aGl0ZTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgfQogIAogIC5idG4tcHJpbWFyeS53aGl0ZS53aWR0aC0xMDAuYnV5LW5vdyB7CiAgICBjb2xvcjogIzE0NmVmNTsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7CiAgfQogIAogIC5idG4tcHJpbWFyeS53aGl0ZS53aWR0aC0xMDAuYnV5LW5vdzpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdHJhbnNmb3JtOiBub25lOwogIH0KICAKICAuYnRuLXByaW1hcnkud2hpdGUucGFnaW5hdGlvbi1idG4gewogICAgZm9udC1zaXplOiAxOHB4OwogIH0KICAKICAuYnRuLXByaW1hcnkuaW5zaWRlLWlucHV0IHsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMCUgMCUgMCUgYXV0bzsKICB9CiAgCiAgLmJ0bi1wcmltYXJ5Lmluc2lkZS1pbnB1dC5kZWZhdWx0IHsKICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgIHRvcDogOHB4OwogICAgYm90dG9tOiA4cHg7CiAgICByaWdodDogOHB4OwogIH0KICAKICAuYnRuLXByaW1hcnkuYnV0dG9uLXJvdyB7CiAgICBtYXJnaW4tcmlnaHQ6IDI4cHg7CiAgfQogIAogIC5idG4tcHJpbWFyeS5kb3dubG9hZC1hcHAgewogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAyMHB4IDMycHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuYnRuLXByaW1hcnkuZG93bmxvYWQtYXBwLndoaXRlIHsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4zcywgYmFja2dyb3VuZC1jb2xvciAuM3MsIHRyYW5zZm9ybSAuM3MsIGNvbG9yIC4zczsKICB9CiAgCiAgLmJ0bi1wcmltYXJ5LmRvd25sb2FkLWFwcC53aGl0ZTpob3ZlciB7CiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4ICMwMDAwMDAxNDsKICB9CiAgCiAgLmJ0bi1wcmltYXJ5LmRvd25sb2FkLWFwcC53aGl0ZS5ob3Zlci1jb2xvci1uZXV0cmFsLTcwMDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogIH0KICAKICAuYnRuLXByaW1hcnkucGFnaW5hdGlvbi1idG4tLS1wcmV2aW91cyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBmb250LXNpemU6IDE4cHg7CiAgfQogIAogIC5idG4tc2Vjb25kYXJ5IHsKICAgIGJvcmRlcjogMXB4IG5vbmUgdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBib3gtc2hhZG93OiAwIDRweCAxMHB4IDAgdmFyKC0tYnV0dG9uLXNoYWRvdy0td2hpdGUtMDEpOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTgwMCk7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOwogICAgYm9yZGVyLXJhZGl1czogNDhweDsKICAgIHBhZGRpbmc6IDI2cHggMzhweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4zcywgdHJhbnNmb3JtIC4zcywgYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zczsKICB9CiAgCiAgLmJ0bi1zZWNvbmRhcnk6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTNweCwgLjAxcHgpOwogIH0KICAKICAuYnRuLXNlY29uZGFyeS5zbWFsbCB7CiAgICBwYWRkaW5nOiAxOHB4IDI0cHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMTRweDsKICB9CiAgCiAgLmJ0bi1zZWNvbmRhcnkubGFyZ2UgewogICAgcGFkZGluZzogMjhweCA1NnB4OwogICAgZm9udC1zaXplOiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIycHg7CiAgfQogIAogIC5idG4tc2Vjb25kYXJ5LndoaXRlIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICB9CiAgCiAgLmJ0bi1zZWNvbmRhcnkud2hpdGU6aG92ZXIgewogICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogIH0KICAKICAuYnRuLXNlY29uZGFyeS5idG4tc2lnbi1pbiB7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIGJvcmRlci1yYWRpdXM6IDk2cHg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB3aWR0aDogMTAwJTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5idG4tc2Vjb25kYXJ5LmJ0bi1zaWduLWluOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTgwMCk7CiAgfQogIAogIC5iYWRnZS1wcmltYXJ5IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgYm9yZGVyLXJhZGl1czogNDBweDsKICAgIHBhZGRpbmc6IDE4cHggMjhweDsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAKICAuYmFkZ2UtcHJpbWFyeS53aGl0ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICB9CiAgCiAgLmJhZGdlLXByaW1hcnkubGlnaHQgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LS1jb2xvci0yKTsKICB9CiAgCiAgLmJhZGdlLXByaW1hcnkuc21hbGwgewogICAgcGFkZGluZzogMTRweCAyMnB4OwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgfQogIAogIC5iYWRnZS1wcmltYXJ5LmxhcmdlIHsKICAgIHBhZGRpbmc6IDIycHggMzhweDsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogIH0KICAKICAuYmFkZ2Utc2Vjb25kYXJ5IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IDAgdmFyKC0tZ2VuZXJhbC0tc2hhZG93LTAxKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgYm9yZGVyLXJhZGl1czogNDBweDsKICAgIHBhZGRpbmc6IDE0cHggMjJweDsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBsaW5lLWhlaWdodDogMThweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CiAgCiAgLmJhZGdlLXNlY29uZGFyeS53aGl0ZSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYm94LXNoYWRvdzogbm9uZTsKICB9CiAgCiAgLmJhZGdlLXNlY29uZGFyeS5saWdodCB7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLS00MDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMjAwKTsKICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICB9CiAgCiAgLmJhZGdlLXNlY29uZGFyeS5zbWFsbCB7CiAgICBwYWRkaW5nOiAxNHB4IDIycHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMThweDsKICB9CiAgCiAgLmJhZGdlLXNlY29uZGFyeS5zbWFsbC50ZXh0LWJvbGQgewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CiAgCiAgLmJhZGdlLXNlY29uZGFyeS5sYXJnZSB7CiAgICBwYWRkaW5nOiAyMnB4IDM4cHg7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMjJweDsKICB9CiAgCiAgLmlucHV0IHsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtLTYwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgYm9yZGVyLXJhZGl1czogMTAwcHg7CiAgICBtaW4taGVpZ2h0OiA3MnB4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjEyNWVtOwogICAgdHJhbnNpdGlvbjogY29sb3IgLjNzLCBib3JkZXItY29sb3IgLjNzOwogIH0KICAKICAuaW5wdXQ6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAuaW5wdXQ6Zm9jdXMsIC5pbnB1dC4td2ZwLWZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAuaW5wdXQ6Zm9jdXMtdmlzaWJsZSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLmlucHV0W2RhdGEtd2YtZm9jdXMtdmlzaWJsZV0gewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgfQogIAogIC5pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgfQogIAogIC5pbnB1dC5zbWFsbCB7CiAgICBtaW4taGVpZ2h0OiA0NnB4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmctdG9wOiA4cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogOHB4OwogICAgZm9udC1zaXplOiAxNnB4OwogIH0KICAKICAuaW5wdXQuc21hbGw6OnBsYWNlaG9sZGVyIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogIH0KICAKICAuaW5wdXQubGFyZ2UgewogICAgbWluLWhlaWdodDogNzZweDsKICB9CiAgCiAgLmlucHV0LmxhcmdlLmJ1dHRvbi1pbnNpZGUgewogICAgcGFkZGluZy1yaWdodDogNDAlOwogIH0KICAKICAuaW5wdXQubGFyZ2UuYnV0dG9uLWluc2lkZTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgfQogIAogIC5pbnB1dC5idXR0b24taW5zaWRlIHsKICAgIHBhZGRpbmctcmlnaHQ6IDMwJTsKICB9CiAgCiAgLmlucHV0Lm1nLWJvdHRvbS0xNnB4IHsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgfQogIAogIC5pbnB1dC5tZy1ib3R0b20tMTZweDpmb2N1cy12aXNpYmxlIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAuaW5wdXQubWctYm90dG9tLTE2cHhbZGF0YS13Zi1mb2N1cy12aXNpYmxlXSB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLmlucHV0LnF1bnRpdHkgewogICAgd2lkdGg6IDExMHB4OwogIH0KICAKICAuaW5wdXQubWVkaXVtIHsKICAgIG1pbi1oZWlnaHQ6IDU2cHg7CiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgcGFkZGluZy10b3A6IDhweDsKICAgIHBhZGRpbmctYm90dG9tOiA4cHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgfQogIAogIC5pbnB1dC5tZWRpdW06OnBsYWNlaG9sZGVyIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogIH0KICAKICAuaW5wdXQubWVkaXVtLmxhc3QgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CiAgCiAgLmlucHV0LmFkZC1jYXJ0LXNlbGVjdC0tLXdyYXBwZXIgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjNzLCBib3JkZXItY29sb3IgLjNzOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmlucHV0LmFkZC1jYXJ0LXNlbGVjdC0tLWluc2lkZSB7CiAgICBib3gtc2hhZG93OiBub25lOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgICBib3JkZXItc3R5bGU6IG5vbmU7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiBhdXRvOwogICAgcGFkZGluZzogMDsKICAgIHRyYW5zaXRpb246IGNvbG9yIC4zczsKICB9CiAgCiAgLmlucHV0LmFkZC1jYXJ0LXNlbGVjdC0tLWluc2lkZTpmb2N1cyB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLmlucHV0LnNlYXJjaC1pY29uLWxlZnQgewogICAgcGFkZGluZy1yaWdodDogNTBweDsKICB9CiAgCiAgLmlucHV0LmNhcnQtaXRlbS1xdWFudGl0eSB7CiAgICB3aWR0aDogNjlweDsKICAgIG1pbi1oZWlnaHQ6IDM4cHg7CiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgfQogIAogIC5wb3NpdGlvbi1yZWxhdGl2ZSB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC50ZXh0LWFyZWEgewogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBib3JkZXItcmFkaXVzOiAyMnB4OwogICAgbWluLXdpZHRoOiAxMDAlOwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgbWluLWhlaWdodDogMTU3cHg7CiAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgIHBhZGRpbmc6IDI0cHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3MsIGJvcmRlci1jb2xvciAuM3M7CiAgfQogIAogIC50ZXh0LWFyZWE6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAudGV4dC1hcmVhOmZvY3VzIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAudGV4dC1hcmVhOmZvY3VzLXZpc2libGUgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgfQogIAogIC50ZXh0LWFyZWFbZGF0YS13Zi1mb2N1cy12aXNpYmxlXSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLnRleHQtYXJlYTo6cGxhY2Vob2xkZXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgfQogIAogIC50ZXh0LWFyZWEuc21hbGwgewogICAgbWluLWhlaWdodDogMTAycHg7CiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgZm9udC1zaXplOiAxNnB4OwogIH0KICAKICAudGV4dC1hcmVhLnNtYWxsOjpwbGFjZWhvbGRlciB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMThweDsKICB9CiAgCiAgLmNoZWNrYm94LWZpZWxkLXdyYXBwZXIgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBsaW5lLWhlaWdodDogMjJweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5jaGVja2JveC1maWVsZC13cmFwcGVyLmxhcmdlIHsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogIH0KICAKICAuY2hlY2tib3gtZmllbGQtd3JhcHBlci5zbWFsbCB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMjBweDsKICB9CiAgCiAgLmNoZWNrYm94IHsKICAgIGJvcmRlci13aWR0aDogMXB4OwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTgwMCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDsKICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgIHdpZHRoOiBhdXRvOwogICAgbWluLXdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiBhdXRvOwogICAgbWluLWhlaWdodDogMjRweDsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tbGVmdDogMDsKICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuM3MsIGJhY2tncm91bmQtY29sb3IgLjNzOwogIH0KICAKICAuY2hlY2tib3g6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAuY2hlY2tib3gudy0tcmVkaXJlY3RlZC1jaGVja2VkIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImh0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzNDQ0N2I2N2RmMzEwMzM1YWM5MGI4MV9DaGVjay5zdmciKTsKICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bzsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tbGVmdDogMDsKICB9CiAgCiAgLmNoZWNrYm94LnctLXJlZGlyZWN0ZWQtZm9jdXMgewogICAgYm94LXNoYWRvdzogbm9uZTsKICB9CiAgCiAgLmNoZWNrYm94LmxhcmdlIHsKICAgIG1pbi13aWR0aDogMjhweDsKICAgIG1pbi1oZWlnaHQ6IDI4cHg7CiAgfQogIAogIC5jaGVja2JveC5zbWFsbCB7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBtaW4td2lkdGg6IDIycHg7CiAgICBtaW4taGVpZ2h0OiAyMnB4OwogIH0KICAKICAucmFkaW8tYnV0dG9uLWZpZWxkLXdyYXBwZXIgewogICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBsaW5lLWhlaWdodDogMjRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5yYWRpby1idXR0b24tZmllbGQtd3JhcHBlci5sYXJnZSB7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBsaW5lLWhlaWdodDogMjZweDsKICB9CiAgCiAgLnJhZGlvLWJ1dHRvbi1maWVsZC13cmFwcGVyLnNtYWxsIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwogIH0KICAKICAucmFkaW8tYnV0dG9uIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgd2lkdGg6IGF1dG87CiAgICBtaW4td2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4zcywgYm9yZGVyLXdpZHRoIC4zcywgYmFja2dyb3VuZC1jb2xvciAuM3M7CiAgfQogIAogIC5yYWRpby1idXR0b246aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAucmFkaW8tYnV0dG9uLnctLXJlZGlyZWN0ZWQtY2hlY2tlZCB7CiAgICBib3JkZXItd2lkdGg6IDZweDsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLnJhZGlvLWJ1dHRvbi53LS1yZWRpcmVjdGVkLWZvY3VzIHsKICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgfQogIAogIC5yYWRpby1idXR0b24ubGFyZ2UgewogICAgbWluLXdpZHRoOiAyOHB4OwogICAgbWluLWhlaWdodDogMjhweDsKICB9CiAgCiAgLnJhZGlvLWJ1dHRvbi5sYXJnZS53LS1yZWRpcmVjdGVkLWNoZWNrZWQgewogICAgYm9yZGVyLXdpZHRoOiA4cHg7CiAgfQogIAogIC5yYWRpby1idXR0b24uc21hbGwgewogICAgbWluLXdpZHRoOiAyMnB4OwogICAgbWluLWhlaWdodDogMjJweDsKICB9CiAgCiAgLnN0eWxlLS0tYXZhdGFycy1ncmlkIHsKICAgIGdyaWQtY29sdW1uLWdhcDogMjRweDsKICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCAyOTBweCk7CiAgfQogIAogIC5hdmF0YXItY2lyY2xlIHsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHdpZHRoOiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApOwogIH0KICAKICAuYXZhdGFyLWNpcmNsZS5fMDEgewogICAgd2lkdGg6IDMycHg7CiAgICBtYXgtd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBtYXgtaGVpZ2h0OiAzMnB4OwogIH0KICAKICAuYXZhdGFyLWNpcmNsZS5fMDIgewogICAgd2lkdGg6IDQ4cHg7CiAgICBtYXgtd2lkdGg6IDQ4cHg7CiAgICBoZWlnaHQ6IDQ4cHg7CiAgICBtYXgtaGVpZ2h0OiA0OHB4OwogIH0KICAKICAuYXZhdGFyLWNpcmNsZS5fMDMgewogICAgd2lkdGg6IDY0cHg7CiAgICBtYXgtd2lkdGg6IDY0cHg7CiAgICBoZWlnaHQ6IDY0cHg7CiAgICBtYXgtaGVpZ2h0OiA2NHB4OwogIH0KICAKICAuYXZhdGFyLWNpcmNsZS5fMDQgewogICAgd2lkdGg6IDgwcHg7CiAgICBtYXgtd2lkdGg6IDgwcHg7CiAgICBoZWlnaHQ6IDgwcHg7CiAgICBtYXgtaGVpZ2h0OiA4MHB4OwogIH0KICAKICAuYXZhdGFyLWNpcmNsZS5fMDUgewogICAgd2lkdGg6IDEyMHB4OwogICAgbWF4LXdpZHRoOiAxMjBweDsKICAgIGhlaWdodDogMTIwcHg7CiAgICBtYXgtaGVpZ2h0OiAxMjBweDsKICB9CiAgCiAgLmF2YXRhci1jaXJjbGUuXzA2IHsKICAgIHdpZHRoOiAxNjBweDsKICAgIG1heC13aWR0aDogMTYwcHg7CiAgICBoZWlnaHQ6IDE2MHB4OwogICAgbWF4LWhlaWdodDogMTYwcHg7CiAgfQogIAogIC5hdmF0YXItY2lyY2xlLl8wNi5tZy1ib3R0b20tNDBweCB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB3aWR0aDogMTgwcHg7CiAgICBtYXgtd2lkdGg6IDE4MHB4OwogICAgaGVpZ2h0OiAxODBweDsKICAgIG1heC1oZWlnaHQ6IDE4MHB4OwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgfQogIAogIC5hdmF0YXItY2lyY2xlLl8wNyB7CiAgICB3aWR0aDogMjQwcHg7CiAgICBtYXgtd2lkdGg6IDI0MHB4OwogICAgaGVpZ2h0OiAyNDBweDsKICAgIG1heC1oZWlnaHQ6IDI0MHB4OwogIH0KICAKICAuYXZhdGFyLWNpcmNsZS5fMDggewogICAgd2lkdGg6IDM4MHB4OwogICAgbWF4LXdpZHRoOiAzODBweDsKICAgIGhlaWdodDogMzgwcHg7CiAgICBtYXgtaGVpZ2h0OiAzODBweDsKICB9CiAgCiAgLnN0eWxlLS0taWNvbnMtZ3JpZCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDI0cHg7CiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgNzJweCk7CiAgfQogIAogIC5zcXVhcmUtaWNvbiB7CiAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogIH0KICAKICAuc3R5bGUtLS1zb2NpYWwtc3F1YXJlLWljb25zLWdyaWQgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAyNHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIDM2cHgpOwogIH0KICAKICAuc29jaWFsLWljb24tZm9udCB7CiAgICBmb250LWZhbWlseTogU29jaWFsIEljb25zIEZvbnQsIHNhbnMtc2VyaWY7CiAgICBsaW5lLWhlaWdodDogMWVtOwogIH0KICAKICAuc29jaWFsLWljb24tZm9udC5idXR0b24tbGVmdCB7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICB9CiAgCiAgLnNvY2lhbC1pY29uLWZvbnQuYnV0dG9uLWxlZnQuc2l6ZS0xNnB4IHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogIH0KICAKICAuc29jaWFsLWljb24tc3F1YXJlIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiAzNnB4OwogICAgbWluLXdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAzNnB4OwogICAgbWluLWhlaWdodDogMzZweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzLCBjb2xvciAuM3M7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuc29jaWFsLWljb24tc3F1YXJlOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAuc29jaWFsLWljb24tc3F1YXJlLnNpemUtMTBweCB7CiAgICB3aWR0aDogMTBweDsKICB9CiAgCiAgLnNvY2lhbC1pY29uLXNxdWFyZS5iZy10cmFuc3BhcmVudCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcywgYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zczsKICB9CiAgCiAgLnNvY2lhbC1pY29uLXNxdWFyZS5iZy10cmFuc3BhcmVudDpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogIH0KICAKICAuc29jaWFsLWljb24tc3F1YXJlLmJnLXRyYW5zcGFyZW50LmNhcmQtdGVhbS12MS1zb2NpYWwtbWVkaWEgewogICAgd2lkdGg6IGF1dG87CiAgICBtaW4td2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiBhdXRvOwogICAgZm9udC1mYW1pbHk6IFNvY2lhbCBJY29ucyBGb250LCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgbGluZS1oZWlnaHQ6IDFlbTsKICB9CiAgCiAgLmxpbmUtcm91bmRlZC1pY29uIHsKICAgIGZvbnQtZmFtaWx5OiBMaW5lIFJvdW5kZWQgSWNvbnMsIHNhbnMtc2VyaWY7CiAgfQogIAogIC5saW5lLXJvdW5kZWQtaWNvbi5zdHlsZS0tLWRyb3Bkb3duLWFycm93LXNpZGViYXIgewogICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgfQogIAogIC5saW5lLXJvdW5kZWQtaWNvbi5saW5rLWljb24tcmlnaHQgewogICAgbWFyZ2luLWxlZnQ6IDZweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CiAgCiAgLmxpbmUtcm91bmRlZC1pY29uLmxpbmstaWNvbi1sZWZ0IHsKICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KICAKICAubGluZS1yb3VuZGVkLWljb24uZHJvcGRvd24tYXJyb3cgewogICAgbWFyZ2luLWxlZnQ6IDhweDsKICB9CiAgCiAgLmxpbmUtcm91bmRlZC1pY29uLnNlYXJjaC1pbnB1dCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tNTAwKTsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IDAlIDIwcHggMCUgYXV0bzsKICB9CiAgCiAgLmxpbmUtcm91bmRlZC1pY29uLnNlYXJjaC1pbnB1dC5kZWZhdWx0IHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS00MDApOwogICAgZm9udC1zaXplOiAyMXB4OwogIH0KICAKICAubGluZS1yb3VuZGVkLWljb24uc3VjY2Vzcy1tZXNzYWdlLWNoZWNrIHsKICAgIGZvbnQtc2l6ZTogMjVweDsKICB9CiAgCiAgLmxpbmUtcm91bmRlZC1pY29uLnN1Y2Nlc3MtbWVzc2FnZS1jaGVjay5sYXJnZSB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgZm9udC1zaXplOiA3MHB4OwogICAgbGluZS1oZWlnaHQ6IDFlbTsKICB9CiAgCiAgLmxpbmUtcm91bmRlZC1pY29uLmFjY29yZGlvbi1pY29uIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS01MDApOwogICAgZm9udC1zaXplOiAyMHB4OwogIH0KICAKICAubGluZS1yb3VuZGVkLWljb24uaWNvbi1saXN0IHsKICAgIGZvbnQtc2l6ZTogMjRweDsKICB9CiAgCiAgLmxpbmUtcm91bmRlZC1pY29uLnN1Y2Nlc3MtbWVzc2FnZS1jaGVjay0tLWxlZnQgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgZm9udC1zaXplOiAyNHB4OwogIH0KICAKICAuc3R5bGUtLS1saW5lLWljb25zLWdyaWQgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAxOHB4OwogICAgZ3JpZC1yb3ctZ2FwOiAxOHB4OwogICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIDIwcHgpOwogIH0KICAKICAuc3R5bGUtLS1saW5lLWljb25zLWdyaWQuZmxleC1ob3Jpem9udGFsLmdhcC01cHggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA1cHg7CiAgICBncmlkLXJvdy1nYXA6IDVweDsKICB9CiAgCiAgLnN0eWxlLS0tbGluZS1pY29ucy1ncmlkLmZsZXgtaG9yaXpvbnRhbC5jZW50ZXIgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgfQogIAogIC5saW5lLXNxdWFyZS1pY29uIHsKICAgIGZvbnQtZmFtaWx5OiBMaW5lIFNxdWFyZSBJY29ucywgc2Fucy1zZXJpZjsKICB9CiAgCiAgLmxpbmUtc3F1YXJlLWljb24udG9wLWJhci1jbG9zZS1pY29uIHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAyMHB4IDMycHg7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zczsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMCUgMCUgMCUgYXV0bzsKICB9CiAgCiAgLmxpbmUtc3F1YXJlLWljb24udG9wLWJhci1jbG9zZS1pY29uOmhvdmVyIHsKICAgIG9wYWNpdHk6IC41NTsKICB9CiAgCiAgLmZpbGxlZC1pY29ucyB7CiAgICBmb250LWZhbWlseTogRmlsbGVkIEljb25zLCBzYW5zLXNlcmlmOwogIH0KICAKICAucmljaC10ZXh0IHAgewogICAgbWFyZ2luLXRvcDogMTZweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgfQogIAogIC5yaWNoLXRleHQgaDIgewogICAgbWFyZ2luLXRvcDogMjFweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgfQogIAogIC5yaWNoLXRleHQgaDMgewogICAgbWFyZ2luLXRvcDogMzJweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgfQogIAogIC5yaWNoLXRleHQgZmlndXJlIHsKICAgIG1hcmdpbi10b3A6IDQ4cHg7CiAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogIH0KICAKICAucmljaC10ZXh0IHVsLCAucmljaC10ZXh0IG9sIHsKICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogIH0KICAKICAucmljaC10ZXh0IGg2LCAucmljaC10ZXh0IGg1LCAucmljaC10ZXh0IGg0IHsKICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogIH0KICAKICAucmljaC10ZXh0IGltZyB7CiAgICBib3JkZXItcmFkaXVzOiAzMnB4OwogIH0KICAKICAucmljaC10ZXh0IGJsb2NrcXVvdGUgewogICAgbWFyZ2luLXRvcDogNDhweDsKICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgfQogIAogIC5zdHlsZS0tLWRyb3Bkb3duLXdyYXBwZXItc2lkZWJhciB7CiAgICB3aWR0aDogMTAwJTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC5zdHlsZS0tLWRyb3Bkb3duLXRvZ2dsZSB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiAxMDAlOwogICAgcGFkZGluZzogMThweCAyMHB4OwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgdHJhbnNpdGlvbjogY29sb3IgLjNzOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnN0eWxlLS0tZHJvcGRvd24tdG9nZ2xlOmhvdmVyLCAuc3R5bGUtLS1kcm9wZG93bi10b2dnbGUudy0tb3BlbiB7CiAgICBjb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogIH0KICAKICAuYnV0dG9ucy1yb3cgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5idXR0b25zLXJvdy5jZW50ZXIgewogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgfQogIAogIC5idXR0b25zLXJvdy5jZW50ZXIuZ2FwLTI1cHggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAyNXB4OwogICAgZ3JpZC1yb3ctZ2FwOiAyNXB4OwogIH0KICAKICAuYnV0dG9ucy1yb3cuY2VudGVyLmdhcC0yNXB4LmRpc3BsYXktZmxleC0tLWFsaWduLXN0cmV0Y2ggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAxNXB4OwogICAgZ3JpZC1yb3ctZ2FwOiAxNXB4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgd2lkdGg6IDEwMCU7CiAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuYnV0dG9ucy1yb3cuZ2FwLTE4cHggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAxOHB4OwogICAgZ3JpZC1yb3ctZ2FwOiAxOHB4OwogICAgZmxleC13cmFwOiB3cmFwOwogICAgYWxpZ24tY29udGVudDogc3RyZXRjaDsKICB9CiAgCiAgLnN0eWxlLS0tZHJvcGRvd24tbGlzdC1zaWRlYmFyIHsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBwYWRkaW5nLXRvcDogMjRweDsKICAgIHBhZGRpbmctYm90dG9tOiAyNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAuc3R5bGUtLS1kcm9wZG93bi1saW5rLXNpZGViYXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTMwMCk7CiAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjMDAwMDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFkZGluZzogMTJweCAxNnB4IDEycHggMjBweDsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxOXB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4zcywgYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zczsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5zdHlsZS0tLWRyb3Bkb3duLWxpbmstc2lkZWJhcjpob3ZlciB7CiAgICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLnN0eWxlLS0tZHJvcGRvd24tbGluay1zaWRlYmFyLnctLWN1cnJlbnQgewogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KICAKICAuc3R5bGUtLS1kcm9wZG93bi1saW5rLWljb24tc2lkZWJhciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBtYXgtd2lkdGg6IDM4cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBwYWRkaW5nOiAycHg7CiAgfQogIAogIC5zdHlsZS0tLXNpZGViYXItd3JhcHBlciB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZGlzcGxheTogZmxleDsKICAgIG92ZXJmbG93OiBzY3JvbGw7CiAgfQogIAogIC5zdHlsZS0tLWxvZ28td3JhcHBlciB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHdpZHRoOiAxMDAlOwogICAgcGFkZGluZzogMzhweCAyMnB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIH0KICAKICAud2lkdGgtMTAwIHsKICAgIHdpZHRoOiAxMDAlOwogIH0KICAKICAuc3R5bGUtLS1idXR0b24td3JhcHBlci1zaWRlYmFyIHsKICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgcGFkZGluZy1yaWdodDogMjBweDsKICB9CiAgCiAgLnN0eWxlLS0tbG9nby1zaWRlYmFyIHsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzOwogIH0KICAKICAuc3R5bGUtLS1sb2dvLXNpZGViYXI6aG92ZXIgewogICAgb3BhY2l0eTogLjY7CiAgfQogIAogIC5jb250YWluZXItZGVmYXVsdCB7CiAgICBtYXgtd2lkdGg6IDEzMTZweDsKICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgfQogIAogIC5jb250YWluZXItZGVmYXVsdC5vcmRlci1jb25maXJtYXRpb24gewogICAgZGlzcGxheTogYmxvY2s7CiAgfQogIAogIC5lbGVtZW50cy0tLXBhZ2UtaGVybyB7CiAgICBwYWRkaW5nLXRvcDogMTIwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMTIwcHg7CiAgfQogIAogIC5lbGVtZW50cy0tLXBhZ2UtaGVyby5iZy1uZXV0cmFsLTEwMCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDsKICB9CiAgCiAgLnNlY3Rpb24sIC5zZWN0aW9uLnNtYWxsIHsKICAgIHBhZGRpbmctdG9wOiAxMDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsKICB9CiAgCiAgLnNlY3Rpb24uaGVybyB7CiAgICBwYWRkaW5nLXRvcDogMTQwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMTQwcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAuc2VjdGlvbi5oZXJvLmV4dHJhLXNob3J0IHsKICAgIHBhZGRpbmctdG9wOiA2NXB4OwogICAgcGFkZGluZy1ib3R0b206IDY1cHg7CiAgfQogIAogIC5zZWN0aW9uLmhlcm8udjEgewogICAgcGFkZGluZy10b3A6IDEwMHB4OwogICAgcGFkZGluZy1ib3R0b206IDEwMHB4OwogIH0KICAKICAuc2VjdGlvbi5oZXJvLnYxLm92ZXJmbG93LXZpc2libGUgewogICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgfQogIAogIC5zZWN0aW9uLmhlcm8udjIgewogICAgcGFkZGluZy10b3A6IDYwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7CiAgfQogIAogIC5zZWN0aW9uLmhlcm8udjMgewogICAgcGFkZGluZy10b3A6IDgwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7CiAgfQogIAogIC5zZWN0aW9uLnRlbXBsYXRlLXBhZ2VzLWhlcm8gewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICAgIHBhZGRpbmctdG9wOiAxMDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsKICB9CiAgCiAgLnNlY3Rpb24udGVtcGxhdGUtcGFnZXMtaGVyby5zaG9ydCB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIHBhZGRpbmctdG9wOiAxMDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsKICB9CiAgCiAgLnNlY3Rpb24uaGVyby1wYWdlIHsKICAgIHBhZGRpbmctdG9wOiAxMjBweDsKICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC5zZWN0aW9uLmN0YS1ob21lLXBhZ2VzIHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgICBwYWRkaW5nLXRvcDogMDsKICB9CiAgCiAgLnNlY3Rpb24ucGQtdG9wLTBweCB7CiAgICBwYWRkaW5nLXRvcDogMDsKICB9CiAgCiAgLnNlY3Rpb24ucGQtYm90dG9tLTBweCB7CiAgICBwYWRkaW5nLWJvdHRvbTogMDsKICB9CiAgCiAgLnRvcC1iYXItd3JhcHBlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nLWxlZnQ6IDcycHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA3MnB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CiAgCiAgLnRvcC1iYXItd3JhcHBlci5uby1wYWRkaW5nIHsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgfQogIAogIC50b3AtYmFyLXBhZGRpbmcgewogICAgd2lkdGg6IDEwMCU7CiAgICBwYWRkaW5nLXRvcDogMzJweDsKICAgIHBhZGRpbmctYm90dG9tOiAzMnB4OwogIH0KICAKICAudG9wLWJhci1wYWRkaW5nLnNtYWxsLXBhZGRpbmcgewogICAgcGFkZGluZy10b3A6IDIycHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMjJweDsKICB9CiAgCiAgLnRvcC1iYXItZmxleCB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnRvcC1iYXItZmxleC5zcGFjZS1iZXR3ZWVuIHsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICB9CiAgCiAgLnRvcC1iYXItZmxleC5jZW50ZXIgewogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgfQogIAogIC5saW5rLXdyYXBwZXIgewogICAgY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIAogIC5saW5rLXdyYXBwZXI6aG92ZXIgewogICAgY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICB9CiAgCiAgLmxpbmstd3JhcHBlci53aGl0ZSB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLmxpbmstd3JhcHBlci53aGl0ZTpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LS1jb2xvci0yKTsKICB9CiAgCiAgLmxpbmstdGV4dCB7CiAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3M7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQogIAogIC5lbGVtZW50cy0tLWVsZW1lbnQtdGl0bGUgewogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCAwIHZhcigtLWdlbmVyYWwtLXNoYWRvdy0wMSk7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgbWFyZ2luLXRvcDogNzJweDsKICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICBwYWRkaW5nOiAyNHB4IDMycHg7CiAgfQogIAogIC5lbGVtZW50cy0tLWVsZW1lbnQtdGl0bGUuZmlyc3QsIC5lbGVtZW50cy0tLWVsZW1lbnQtdGl0bGUuZmlyc3QubGFyZ2UgewogICAgbWFyZ2luLXRvcDogMDsKICB9CiAgCiAgLmVsZW1lbnRzLS0tZWxlbWVudC10aXRsZS5maXJzdC5sYXJnZS5tZy1ib3R0b20tMHB4IHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIAogIC5lbGVtZW50cy0tLWVsZW1lbnQtdGl0bGUubGFyZ2UgewogICAgbWFyZ2luLXRvcDogMjY2cHg7CiAgICBtYXJnaW4tYm90dG9tOiA1NHB4OwogIH0KICAKICAuaGVhZGluZy1oMS1zaXplIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC1zaXplOiA1NHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjIyMmVtOwogIH0KICAKICAuaGVhZGluZy1oMS1zaXplLnRleHQtY29sb3ItbmV1dHJhbC0zMDAgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTMwMCk7CiAgfQogIAogIC5oZWFkaW5nLWgyLXNpemUgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBmb250LXNpemU6IDM4cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMzE2ZW07CiAgfQogIAogIC5oZWFkaW5nLWgzLXNpemUgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuNDE3ZW07CiAgfQogIAogIC5oZWFkaW5nLWgzLXNpemUubWctYm90dG9tLTBweCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KICAKICAuaGVhZGluZy1oNC1zaXplIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC1zaXplOiAyMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI3M2VtOwogIH0KICAKICAuaGVhZGluZy1oNC1zaXplLmNvbG9yLW5ldXRyYWwtMzAwIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0zMDApOwogIH0KICAKICAuaGVhZGluZy1oNS1zaXplIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjMzM2VtOwogIH0KICAKICAuaGVhZGluZy1oNi1zaXplIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM3NWVtOwogIH0KICAKICAuaGVhZGVyLXdyYXBwZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBwYWRkaW5nLXRvcDogMzJweDsKICAgIHBhZGRpbmctYm90dG9tOiAzMnB4OwogIH0KICAKICAuaGVhZGVyLWNvbnRlbnQtd3JhcHBlciB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuaGVhZGVyLWNvbnRlbnQtd3JhcHBlci5qdXN0aWZ5LXNwYWNlIHsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICB9CiAgCiAgLmhlYWRlci1uYXYtbWVudS1saXN0IHsKICAgIHotaW5kZXg6IDE7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuaGVhZGVyLW5hdi1saW5rIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgcGFkZGluZzogMDsKICB9CiAgCiAgLmhlYWRlci1uYXYtbGluazpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogIH0KICAKICAuaGVhZGVyLW5hdi1saW5rLnctLWN1cnJlbnQgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgfQogIAogIC5oZWFkZXItbmF2LWxpbmsuY2FydC1saW5rIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5oZWFkZXItbmF2LWxpbmsubG9naW4tbGluayB7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbWFyZ2luLXJpZ2h0OiAxNnB4OwogICAgZm9udC1zaXplOiAxOHB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmhlYWRlci1uYXYtbGlzdC1pdGVtIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgfQogIAogIC5oZWFkZXItbmF2LWxpc3QtaXRlbS5zaG93LWluLXRhYmxldCB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KICAKICAuaGVhZGVyLW5hdi1saXN0LWl0ZW0ubWlkZGxlIHsKICAgIHBhZGRpbmctbGVmdDogMTZweDsKICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgfQogIAogIC5oZWFkZXItbmF2LWxpc3QtaXRlbS5sZWZ0IHsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7CiAgfQogIAogIC5oZWFkZXItbmF2LWxpc3QtaXRlbS5oZWFkZXItYnV0dG9uLXNob3ctaW4tdGFibGV0IHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQogIAogIC5kcm9wZG93bi13cmFwcGVyLnN0YXRpYyB7CiAgICBwb3NpdGlvbjogc3RhdGljOwogIH0KICAKICAuZHJvcGRvd24tdG9nZ2xlIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDA7CiAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3M7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpOwogIH0KICAKICAuZHJvcGRvd24tdG9nZ2xlLnN0YXRpYyB7CiAgICBwb3NpdGlvbjogc3RhdGljOwogIH0KICAKICAuZHJvcGRvd24tdG9nZ2xlLnN0YXRpYzpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tYWNjZW50LS1wcmltYXJ5LTEpOwogIH0KICAKICAuZHJvcGRvd24tY29sdW1uLXdyYXBwZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBtaW4td2lkdGg6IDE1NiU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTsKICB9CiAgCiAgLmhlYWRlci1sb2dvIHsKICAgIG1heC13aWR0aDogMjAwcHg7CiAgfQogIAogIC5oZWFkZXItbG9nby1saW5rIHsKICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBjb2xvciAuM3M7CiAgfQogIAogIC5oZWFkZXItbG9nby1saW5rOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTYsIC45NiwgMS4wMSk7CiAgfQogIAogIC5oZWFkZXItbG9nby1saW5rLmxlZnQgewogICAgcGFkZGluZy1yaWdodDogMzhweDsKICB9CiAgCiAgLmhhbWJ1cmdlci1tZW51LXdyYXBwZXIgewogICAgcGFkZGluZzogMDsKICB9CiAgCiAgLmhhbWJ1cmdlci1tZW51LXdyYXBwZXIudy0tb3BlbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDsKICB9CiAgCiAgLmhhbWJ1cmdlci1tZW51LWJhciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIHdpZHRoOiA1MnB4OwogICAgaGVpZ2h0OiA0cHg7CiAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICB9CiAgCiAgLmhlYWRlci1yaWdodC1zaWRlIHsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmhlYWRlci1taWRkbGUgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5oZWFkZXItbWlkZGxlLmNlbnRlciB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICB9CiAgCiAgLmhlYWRlci1sZWZ0LXNpZGUgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5idG4tY2lyY2xlLXByaW1hcnkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiA2NHB4OwogICAgbWluLXdpZHRoOiA2NHB4OwogICAgaGVpZ2h0OiA2NHB4OwogICAgbWluLWhlaWdodDogNjRweDsKICAgIGZvbnQtc2l6ZTogMjZweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MsIGJhY2tncm91bmQtY29sb3IgLjNzLCBjb2xvciAuM3M7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuYnRuLWNpcmNsZS1wcmltYXJ5OmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NCwgLjk0LCAxLjAxKTsKICB9CiAgCiAgLmJ0bi1jaXJjbGUtcHJpbWFyeS5zbWFsbCB7CiAgICB3aWR0aDogNTBweDsKICAgIG1pbi13aWR0aDogNTBweDsKICAgIGhlaWdodDogNTBweDsKICAgIG1pbi1oZWlnaHQ6IDUwcHg7CiAgICBmb250LXNpemU6IDIycHg7CiAgfQogIAogIC5idG4tY2lyY2xlLXByaW1hcnkubGFyZ2UgewogICAgd2lkdGg6IDg4cHg7CiAgICBtaW4td2lkdGg6IDg4cHg7CiAgICBoZWlnaHQ6IDg4cHg7CiAgICBtaW4taGVpZ2h0OiA4OHB4OwogICAgZm9udC1zaXplOiAzMHB4OwogICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgfQogIAogIC5idG4tY2lyY2xlLXByaW1hcnkud2hpdGUgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogIH0KICAKICAuYnRuLWNpcmNsZS1wcmltYXJ5LndoaXRlOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAuYnRuLWNpcmNsZS1zZWNvbmRhcnkgewogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IDAgdmFyKC0tZ2VuZXJhbC0tc2hhZG93LTAyKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiA2NHB4OwogICAgbWluLXdpZHRoOiA2NHB4OwogICAgaGVpZ2h0OiA2NHB4OwogICAgbWluLWhlaWdodDogNjRweDsKICAgIGZvbnQtc2l6ZTogMjZweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuM3MsIHRyYW5zZm9ybSAuM3MsIGJhY2tncm91bmQtY29sb3IgLjNzLCBjb2xvciAuM3M7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuYnRuLWNpcmNsZS1zZWNvbmRhcnk6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTQsIC45NCwgMS4wMSk7CiAgfQogIAogIC5idG4tY2lyY2xlLXNlY29uZGFyeS5zbWFsbCB7CiAgICB3aWR0aDogNTBweDsKICAgIG1pbi13aWR0aDogNTBweDsKICAgIGhlaWdodDogNTBweDsKICAgIG1pbi1oZWlnaHQ6IDUwcHg7CiAgICBmb250LXNpemU6IDIycHg7CiAgfQogIAogIC5idG4tY2lyY2xlLXNlY29uZGFyeS5sYXJnZSB7CiAgICB3aWR0aDogODhweDsKICAgIG1pbi13aWR0aDogODhweDsKICAgIGhlaWdodDogODhweDsKICAgIG1pbi1oZWlnaHQ6IDg4cHg7CiAgICBmb250LXNpemU6IDMwcHg7CiAgICBsaW5lLWhlaWdodDogMzJweDsKICB9CiAgCiAgLmJ0bi1jaXJjbGUtc2Vjb25kYXJ5LndoaXRlIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogIH0KICAKICAuYnRuLWNpcmNsZS1zZWNvbmRhcnkud2hpdGU6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgfQogIAogIC5idG4tY2lyY2xlLXNlY29uZGFyeS5zbGlkZXItYXJyb3cgewogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIAogIC5idG4tY2lyY2xlLXNlY29uZGFyeS5zbGlkZXItYXJyb3cubGVmdC0tLWNlbnRlci1jZW50ZXIgewogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgdG9wOiBhdXRvOwogICAgYm90dG9tOiAwJTsKICAgIHJpZ2h0OiA4MHB4OwogIH0KICAKICAuYnRuLWNpcmNsZS1zZWNvbmRhcnkuc2xpZGVyLWFycm93LmxlZnQtLS1jZW50ZXItY2VudGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXItc3R5bGU6IG5vbmU7CiAgfQogIAogIC5idG4tY2lyY2xlLXNlY29uZGFyeS5zbGlkZXItYXJyb3cucmlnaHQtLS1jZW50ZXItY2VudGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGJvcmRlci1zdHlsZTogbm9uZTsKICAgIHRvcDogYXV0bzsKICAgIGJvdHRvbTogMCU7CiAgICBsZWZ0OiA4MHB4OwogIH0KICAKICAuYnRuLWNpcmNsZS1zZWNvbmRhcnkuc2xpZGVyLWFycm93LnJpZ2h0LS0tY2VudGVyLWNlbnRlcjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgfQogIAogIC51dGlsaXR5LXBhZ2Utd3JhcCB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtaW4taGVpZ2h0OiA4MHZoOwogICAgcGFkZGluZy10b3A6IDkwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogOTBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAudXRpbGl0eS1wYWdlLXdyYXAucGQtYm90dG9tLTQwcHggewogICAgcGFkZGluZy1ib3R0b206IDQwcHg7CiAgfQogIAogIC51dGlsaXR5LXBhZ2UtY29udGVudCB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgd2lkdGg6IDEwMCU7CiAgICBtYXgtd2lkdGg6IDgyN3B4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnV0aWxpdHktcGFnZS1jb250ZW50LnJlbGF0aXZlIHsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLnV0aWxpdHktcGFnZS1jb250ZW50LnBhc3N3b3JkLWNvbnRlbnQgewogICAgbWF4LXdpZHRoOiA3NjlweDsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBtYXJnaW4tbGVmdDogMjRweDsKICAgIG1hcmdpbi1yaWdodDogMjRweDsKICB9CiAgCiAgLnV0aWxpdHktcGFnZS1mb3JtIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIHdpZHRoOiAxMDAlOwogICAgbWF4LXdpZHRoOiA4MDBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5oaWRkZW4tb24tZGVza3RvcCB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KICAKICAuc29jaWFsLW1lZGlhLWdyaWQtdG9wIHsKICAgIGZsZXg6IDE7CiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMzZweCk7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OwogICAganVzdGlmeS1pdGVtczogc3RhcnQ7CiAgfQogIAogIC5zb2NpYWwtbWVkaWEtZ3JpZC10b3AuY2FyZC10ZWFtLXYxLXNvY2lhbC1tZWRpYS1ncmlkIHsKICAgIHotaW5kZXg6IDE7CiAgICBncmlkLWNvbHVtbi1nYXA6IDEycHg7CiAgICBncmlkLXJvdy1nYXA6IDEycHg7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMjRweCk7CiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXIgZW5kOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAzMHB4OwogICAgbGVmdDogMzBweDsKICAgIHJpZ2h0OiAzMHB4OwogIH0KICAKICAuZmxleC12ZXJ0aWNhbCB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmZsZXgtdmVydGljYWwuY2VudGVyIHsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgfQogIAogIC5mbGV4LWhvcml6b250YWwgewogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5mbGV4LWhvcml6b250YWwuc3RhcnQgewogICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogIH0KICAKICAuZmxleC1ob3Jpem9udGFsLmZsZXgtd3JhcCB7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgfQogIAogIC5mbGV4LWhvcml6b250YWwuanVzdGlmeS1zcGFjZSB7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuZmxleC1ob3Jpem9udGFsLmp1c3RpZnktc3BhY2UucHJpY2luZy1jYXJkLWNvbnRlbnQtYm90dG9tIHsKICAgIGdyaWQtY29sdW1uLWdhcDogMjBweDsKICAgIGdyaWQtcm93LWdhcDogMjBweDsKICB9CiAgCiAgLmZsZXgtaG9yaXpvbnRhbC5qdXN0aWZ5LWxlZnQgewogICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogIH0KICAKICAuZmxleC1ob3Jpem9udGFsLnN0YXRzLW51bWJlci13cmFwcGVyIHsKICAgIGdyaWQtY29sdW1uLWdhcDogMTVweDsKICAgIGdyaWQtcm93LWdhcDogMTVweDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICB9CiAgCiAgLmZsZXgtaG9yaXpvbnRhbC5zdG9yeS1jb250ZW50IHsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogIH0KICAKICAuZm9vdGVyLXdyYXBwZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJvcmRlci1yYWRpdXM6IDY0cHg7CiAgICBtYXJnaW4tdG9wOiAxMDBweDsKICAgIG1hcmdpbi1ib3R0b206IDU1cHg7CiAgICBwYWRkaW5nOiA3NXB4OwogIH0KICAKICAuZm9vdGVyLWxvZ28gewogICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsKICAgIHdpZHRoOiAxMDAlOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zczsKICB9CiAgCiAgLmZvb3Rlci1sb2dvOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTIsIC45MiwgMS4wMSk7CiAgfQogIAogIC5mb290ZXItbG9nby13cmFwcGVyIHsKICAgIHdpZHRoOiAxMDAlOwogICAgbWF4LXdpZHRoOiAxOTNweDsKICAgIG1hcmdpbi1ib3R0b206IDE4cHg7CiAgfQogIAogIC5mb290ZXItbG9nby13cmFwcGVyLnctLWN1cnJlbnQgewogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICB9CiAgCiAgLmZvb3Rlci1sb2dvLXdyYXBwZXIubWctYm90dG9tLTAgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CiAgCiAgLmZvb3Rlci1sb2dvLXdyYXBwZXIubWctYm90dG9tLTMycHggewogICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICB9CiAgCiAgLm5hdi1tZW51LWxpc3Qtd3JhcHBlciB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgcGFkZGluZy1sZWZ0OiAwOwogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogIH0KICAKICAubmF2LW1lbnUtbGlzdC13cmFwcGVyLmxhc3QgewogICAgbWFyZ2luLXJpZ2h0OiAwOwogIH0KICAKICAubmF2LW1lbnUtbGlzdC1pdGVtIHsKICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBsaW5lLWhlaWdodDogMS4xMTFlbTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5uYXYtbGluayB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tNDAwKTsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLm5hdi1saW5rOmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgfQogIAogIC5uYXYtbGluay5saW5rIHsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgfQogIAogIC5uYXYtbGluay5saW5rOmhvdmVyIHsKICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiBpbmhlcml0OwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKICAgIGJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveDsKICB9CiAgCiAgLm5hdi1saW5rLmZlYXR1cmVkIHsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBwYWRkaW5nLWJvdHRvbTogNHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuM3MsIGNvbG9yIC4zczsKICB9CiAgCiAgLm5hdi1saW5rLmZlYXR1cmVkOmhvdmVyIHsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgfQogIAogIC5mb290ZXItYm90dG9tIHsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBwYWRkaW5nLXRvcDogMDsKICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmZvb3Rlci1ib3R0b20udGV4dC1yaWdodC50ZXh0LWNlbnRlci1tYi5wZC02MHB4IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXItcmFkaXVzOiA0NHB4OwogICAgbWFyZ2luLWJvdHRvbTogNjZweDsKICAgIHBhZGRpbmc6IDU1cHggNjZweDsKICB9CiAgCiAgLmZvb3Rlci1ib3R0b20ucGQtNjBweCB7CiAgICBwYWRkaW5nLXRvcDogNjBweDsKICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OwogIH0KICAKICAuZm9vdGVyLW1pZGRsZSB7CiAgICBwYWRkaW5nLXRvcDogMDsKICAgIHBhZGRpbmctYm90dG9tOiAwOwogIH0KICAKICAuc3VjY2Vzcy1tZXNzYWdlIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBwYWRkaW5nOiAwOwogIH0KICAKICAuZXJyb3ItbWVzc2FnZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zeXN0ZW0tLXJlZC0xMDApOwogICAgY29sb3I6IHZhcigtLXN5c3RlbS0tMzAwKTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4OwogICAgbWFyZ2luLXRvcDogMjBweDsKICAgIHBhZGRpbmc6IDIwcHggMjRweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgfQogIAogIC5lcnJvci1tZXNzYWdlLnYyIHsKICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgfQogIAogIC5lcnJvci1tZXNzYWdlLmNhcnQtZXJyb3IgewogICAgbWFyZ2luLXRvcDogMDsKICB9CiAgCiAgLnRleHQtbGVmdCB7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogIH0KICAKICAuZ3JpZC1mb290ZXItbG9nby0tLXBhcmFncmFwaCB7CiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IC4zZnIgMWZyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiAxMDAlOwogIH0KICAKICAudGV4dC1yaWdodCB7CiAgICB0ZXh0LWFsaWduOiByaWdodDsKICB9CiAgCiAgLnRleHQtY2VudGVyIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICB9CiAgCiAgLnRleHQtY2VudGVyLnRhYmxldCB7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogIH0KICAKICAudGV4dC1jZW50ZXIucGQtMzFweC0tLW1nLXRvcC00N3B4IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXItcmFkaXVzOiA2NHB4OwogICAgcGFkZGluZzogNDdweCA1MXB4IDY0cHggNDBweDsKICB9CiAgCiAgLnN0aWNreS10b3AgewogICAgcG9zaXRpb246IHN0aWNreTsKICAgIHRvcDogMDsKICB9CiAgCiAgLnN0aWNreS10b3AuXzI0cHgtdG9wIHsKICAgIHRvcDogMjRweDsKICB9CiAgCiAgLnN0aWNreS10b3AuXzI0cHgtdG9wLnN0aWNreS1tYmwgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJvcmRlci1yYWRpdXM6IDMycHg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgcGFkZGluZzogNThweCAzOHB4OwogIH0KICAKICAuc3RpY2t5LXRvcC5fMjRweC10b3Auc3RpY2t5LW1ibC5hcHBseS1yb2xlIHsKICAgIG1heC13aWR0aDogNDI4cHg7CiAgfQogIAogIC5zdGlja3ktdG9wLl8yNHB4LXRvcC5uZXdzbGV0dGVyLXNpZGViYXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJvcmRlci1yYWRpdXM6IDMycHg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgbWF4LXdpZHRoOiA0MDRweDsKICAgIHBhZGRpbmc6IDU4cHggMzhweDsKICB9CiAgCiAgLnN0aWNreS10b3AuXzI0cHgtdG9wLmJsb2ctc2lkZWJhci1sZWZ0IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXItcmFkaXVzOiAzMnB4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIHBhZGRpbmc6IDU4cHggMzhweDsKICB9CiAgCiAgLm9wYWNpdHktNzAgewogICAgb3BhY2l0eTogLjc7CiAgfQogIAogIC5vcGFjaXR5LTkwIHsKICAgIG9wYWNpdHk6IC45OwogIH0KICAKICAuaWNvbi1saXN0LWl0ZW0td3JhcHBlciB7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmljb24tbGlzdC1pdGVtLXdyYXBwZXIuYWxpZ24tc3RhcnQgewogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgfQogIAogIC5pY29uLWxpc3QgewogICAgbWFyZ2luLXJpZ2h0OiAxNnB4OwogIH0KICAKICAuZml0LWNvdmVyIHsKICAgIG9iamVjdC1maXQ6IGNvdmVyOwogIH0KICAKICAuaGVyby1jYXJkLWJnLWltYWdlIHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjMDAwOSwgIzAwMDkpOwogICAgYm9yZGVyLXJhZGl1czogNDBweDsKICAgIHBhZGRpbmc6IDE5NnB4IDQwcHg7CiAgfQogIAogIC5oZXJvLWNhcmQtYmctaW1hZ2UuaGVyby12MTQgewogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDE1My44MWRlZywgIzAwMDAwMGRiIDE1LjkzJSwgIzAwMDAgNDYuMyUpLCB1cmwoImh0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzcwMzUwMTVlYTU4NzljYTZmNjgyNV9JbWFnZSUyMEhlcm8lMjBBYm91dC5wbmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgNTAlOwogICAgYmFja2dyb3VuZC1zaXplOiBhdXRvLCBjb3ZlcjsKICAgIGJvcmRlci1yYWRpdXM6IDY0cHg7CiAgICBoZWlnaHQ6IDc4OXB4OwogICAgcGFkZGluZzogODNweCA4MHB4OwogIH0KICAKICAub3ZlcmZsb3ctaGlkZGVuIHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC50ZXh0LWRlY29yYXRpb24tbm9uZSB7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQogIAogIC5jdGEtY2FyZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNzEuMTFkZWcsICMyMTZmZmYsICNhNDIwZmMpOwogICAgYm9yZGVyLXJhZGl1czogNjRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLmN0YS1jYXJkLnYxLCAuY3RhLWNhcmQudjIgewogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5sb2dvLXN0cmlwLWltYWdlIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXItcmFkaXVzOiA0MHB4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiAxMDAlOwogICAgcGFkZGluZzogNjNweCA0MHB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnNsaWRlci13cmFwcGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgaGVpZ2h0OiAxMDAlOwogIH0KICAKICAuc2xpZGVyLXdyYXBwZXIuYXJyb3dzLWJvdHRvbSB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTA1cHg7CiAgfQogIAogIC5zbGlkZXItd3JhcHBlci5hcnJvd3MtYm90dG9tLnYyIHsKICAgIHBhZGRpbmctYm90dG9tOiA5NXB4OwogIH0KICAKICAuc2xpZGVyLW1hc2sgewogICAgaGVpZ2h0OiAxMDAlOwogIH0KICAKICAuc2xpZGVyLW1hc2sud2lkdGgtNTQwcHggewogICAgbWF4LXdpZHRoOiA1NDBweDsKICB9CiAgCiAgLmFjY29yZGlvbi1pdGVtLXdyYXBwZXIgewogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IDAgdmFyKC0tZ2VuZXJhbC0tc2hhZG93LTAyKTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBwYWRkaW5nOiA0OHB4IDY0cHg7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmFjY29yZGlvbi1pdGVtLXdyYXBwZXI6aG92ZXIgewogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NiwgLjk2LCAxLjAxKTsKICB9CiAgCiAgLmFjY29yZGlvbi1pdGVtLXdyYXBwZXIuc3BhY2UtYmV0d2VlbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm9yZGVyLXN0eWxlOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogMzhweDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIHBhZGRpbmctbGVmdDogNjlweDsKICAgIHBhZGRpbmctcmlnaHQ6IDY5cHg7CiAgfQogIAogIC5hY2NvcmRpb24taGVhZGVyIHsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuYWNvcmRpb24tYm9keSB7CiAgICB3aWR0aDogMTAwJTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC5hY2NvcmRpb24tc3BhY2VyIHsKICAgIG1pbi1oZWlnaHQ6IDE2cHg7CiAgfQogIAogIC5hY2NvcmRpb24tY29udGVudC13cmFwcGVyIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIG1heC13aWR0aDogNzM4cHg7CiAgICBtYXJnaW4tbGVmdDogMzBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5hY2NvcmRpb24taWNvbi13cmFwcGVyIHsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLW5ldXRyYWwtLTUwMCk7CiAgICBib3JkZXItcmFkaXVzOiA4MHB4OwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgd2lkdGg6IDY0cHg7CiAgICBtaW4td2lkdGg6IDY0cHg7CiAgICBoZWlnaHQ6IDY0cHg7CiAgICBtaW4taGVpZ2h0OiA2NHB4OwogICAgbWFyZ2luLXRvcDogNXB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmVtcHR5LXN0YXRlIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm94LXNoYWRvdzogMCAycHggMTJweCAwIHZhcigtLWdlbmVyYWwtLXNoYWRvdy0wMik7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDExcHg7CiAgICBwYWRkaW5nOiAyNnB4IDI0cHg7CiAgfQogIAogIC5lbXB0eS1zdGF0ZS5jYXJkLWVtcHR5IHsKICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLW5ldXRyYWwtLTYwMCk7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYm94LXNoYWRvdzogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBwYWRkaW5nLXJpZ2h0OiAwOwogIH0KICAKICAuZW1wdHktc3RhdGUuY2FydC1lbXB0eSB7CiAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBib3JkZXItc3R5bGU6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiAwOwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIHBhZGRpbmctdG9wOiAxMDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsKICB9CiAgCiAgLmF2YXRhci1pbWFnZS5saW5rIHsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3M7CiAgfQogIAogIC5wZC0tLWNvbnRlbnQtaW5zaWRlLWNhcmQgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJvcmRlci1yYWRpdXM6IDQ2cHg7CiAgICBwYWRkaW5nOiA0MHB4IDI4cHggNDhweDsKICB9CiAgCiAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC5mZWF0dXJlcy1jb250ZW50LWxlZnQgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgbWF4LXdpZHRoOiA0NjhweDsKICAgIG1hcmdpbjogMCAwIDc0cHg7CiAgICBwYWRkaW5nOiAwOwogIH0KICAKICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLnRlYW0tbWVtYmVyLXBhZ2UgewogICAgcGFkZGluZzogNjRweCA2OHB4OwogIH0KICAKICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLmxhcmdlIHsKICAgIHBhZGRpbmc6IDk2cHggODBweCAxMjFweDsKICB9CiAgCiAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC5sYXJnZS50ZW1wbGF0ZS1wYWdlcyB7CiAgICBwYWRkaW5nLXRvcDogNDBweDsKICB9CiAgCiAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC50ZW1wbGF0ZS1wYWdlcy0tLXNpZGViYXIgewogICAgcGFkZGluZzogMzJweCAyNHB4IDI0cHg7CiAgfQogIAogIC5wZC0tLWNvbnRlbnQtaW5zaWRlLWNhcmQuc2VhcmNoLXJlc3VsdCB7CiAgICBtaW4taGVpZ2h0OiAxMDAlOwogIH0KICAKICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLnNlYXJjaC1yZXN1bHQubGluay1jb250ZW50IHsKICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4OwogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtOwogIH0KICAKICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLnNlYXJjaC1yZXN1bHQubGluay1jb250ZW50OmhvdmVyIHsKICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTUsIC45NSwgMS4wMSk7CiAgfQogIAogIC5pbWFnZS5pbWFnZS1pcGhvbmUtbGVmdCB7CiAgICB3aWR0aDogNDgwcHg7CiAgfQogIAogIC5pbWFnZS5sb2dvIHsKICAgIHdpZHRoOiAxMDAlOwogICAgbWF4LXdpZHRoOiA4NyU7CiAgfQogIAogIC5pbWFnZS5sb2dvLmdvb2dsZSwgLmltYWdlLmxvZ28ueW91dHViZSB7CiAgICBtYXgtd2lkdGg6IDc0JTsKICB9CiAgCiAgLmltYWdlLmxvZ28ud2ViZmxvdyB7CiAgICBtYXgtd2lkdGg6IDgwJTsKICB9CiAgCiAgLmltYWdlLmxvZ28udHdpdGNoIHsKICAgIG1heC13aWR0aDogNzQlOwogIH0KICAKICAuaW1hZ2Utd3JhcHBlci1mZWF0dXJlcyB7CiAgICBvYmplY3QtZml0OiBmaWxsOwogICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7CiAgICBtYXJnaW4tbGVmdDogMDsKICB9CiAgCiAgLmltYWdlLXdyYXBwZXItZmVhdHVyZXMuaW1hZ2UtY2FyZHMtbGVmdCB7CiAgICBtaW4td2lkdGg6IDQ2N3B4OwogIH0KICAKICAuaW1hZ2Utd3JhcHBlci1mZWF0dXJlcy5pbWFnZS1jYXJkcy1yaWdodCB7CiAgICBtaW4td2lkdGg6IDMzM3B4OwogIH0KICAKICAub3ZlcmZsb3ctdmlzaWJsZSB7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKICB9CiAgCiAgLnNsaWRlci1pdGVtLXBkIHsKICAgIHBhZGRpbmctdG9wOiAwOwogICAgcGFkZGluZy1ib3R0b206IDA7CiAgfQogIAogIC5tZy1ib3R0b20tNHB4IHsKICAgIG1hcmdpbi1ib3R0b206IDRweDsKICB9CiAgCiAgLmhlaWdodC0xMDAgewogICAgaGVpZ2h0OiAxMDAlOwogIH0KICAKICAucHJpY2luZy10YWJsZS10b3AgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFkZGluZzogMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5wcmljaW5nLWNvbnRlbnQtd3JhcHBlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm9yZGVyLXJhZGl1czogMjdweDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgcGFkZGluZy1sZWZ0OiAzMHB4OwogIH0KICAKICAucHJpY2luZy1jb250ZW50LXdyYXBwZXIubWctdG9wLTQ4cHggewogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwYWRkaW5nLXRvcDogMzlweDsKICAgIHBhZGRpbmctYm90dG9tOiAzOXB4OwogICAgcGFkZGluZy1yaWdodDogMzBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5wcmljaW5nLWNvbnRlbnQtd3JhcHBlci5tZy10b3AtMjRweCB7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmctdG9wOiAzOXB4OwogICAgcGFkZGluZy1ib3R0b206IDM5cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmJsb2ctY2FyZC1pbWFnZSB7CiAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIHdpZHRoOiAxMDAlOwogIH0KICAKICAuYmxvZy1jYXJkLWltYWdlLXdyYXBwZXIgewogICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsKICB9CiAgCiAgLmJsb2ctY2FyZC1pbWFnZS13cmFwcGVyLm1nLWJvdHRvbS0zMnB4IHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CiAgCiAgLmJsb2ctY2FyZC10aXRsZSB7CiAgICBtYXJnaW46IDA7CiAgfQogIAogIC5ibG9nLWNhcmQtd3JhcHBlciB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tNDAwKTsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIG1pbi1oZWlnaHQ6IDEwMCU7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuYmxvZy1jYXJkLXdyYXBwZXI6aG92ZXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgfQogIAogIC5saW5rLWNvbnRlbnQgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQogIAogIC5saW5rLWNvbnRlbnQ6aG92ZXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTQwMCk7CiAgfQogIAogIC5pbWFnZS13cmFwcGVyIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsKICB9CiAgCiAgLmltYWdlLXdyYXBwZXIub3ZlcmZsb3ctaGlkZGVuLmJvcmRlci1yYWRpdXMtMHB4LmRpc3BsYXktZmxleCB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDBweDsKICAgIGdyaWQtcm93LWdhcDogMHB4OwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogIH0KICAKICAuaW1hZ2Utd3JhcHBlci5pbWFnZS1tZW1iZXJzLmJvcmRlci1yYWRpdXMtMzJweCB7CiAgICBib3JkZXItcmFkaXVzOiAzMnB4OwogIH0KICAKICAuaW1hZ2Utd3JhcHBlci5tZy10b3AtODBweCB7CiAgICBtYXJnaW4tbGVmdDogMDsKICB9CiAgCiAgLmltYWdlLXdyYXBwZXIubWctdG9wLTgwcHgucG9zaXRpb24tcmVsYXRpdmUuZnVsbC1oZXJvLWltYWdlIHsKICAgIG1heC13aWR0aDogMTY1N3B4OwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgfQogIAogIC5pbWFnZS13cmFwcGVyLmltYWdlLW1lbWJlcnMgewogICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTsKICB9CiAgCiAgLmltYWdlLXdyYXBwZXIuY2FyZC1mb290ZXItaW1hZ2UgewogICAgbWF4LXdpZHRoOiAzOThweDsKICAgIG1hcmdpbi10b3A6IC04cHg7CiAgICBtYXJnaW4tYm90dG9tOiAtMTAzJTsKICB9CiAgCiAgLmltYWdlLXdyYXBwZXIuYXZhdGFyLWNpcmNsZS5jYXJkLWF1dGhvci1hdmF0YXIgewogICAgbWF4LXdpZHRoOiAxNjRweDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICB9CiAgCiAgLmltYWdlLXdyYXBwZXIuYm9yZGVyLXJhZGl1cy02NHB4IHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC5pbWFnZS13cmFwcGVyLm9yZGVyLWl0ZW0taW1hZ2Utd3JhcHBlciB7CiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOwogICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsKICAgIHdpZHRoOiAxMDAlOwogICAgbWF4LXdpZHRoOiA2MHB4OwogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtOwogIH0KICAKICAuaW1hZ2Utd3JhcHBlci5vcmRlci1pdGVtLWltYWdlLXdyYXBwZXI6aG92ZXIgewogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgMS4wMSl0cmFuc2xhdGUoMCk7CiAgfQogIAogIC5pbWFnZS13cmFwcGVyLmNhcnQtaXRlbS1pbWFnZS13cmFwcGVyIHsKICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7CiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OwogICAgd2lkdGg6IDEwMCU7CiAgICBtYXgtd2lkdGg6IDYwcHg7CiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07CiAgfQogIAogIC5pbWFnZS13cmFwcGVyLmNhcnQtaXRlbS1pbWFnZS13cmFwcGVyOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIDEuMDEpdHJhbnNsYXRlKDApOwogIH0KICAKICAuZHJvcGRvd24tZnVsbC13aWR0aC1jb250YWluZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IDAgdmFyKC0tZ2VuZXJhbC0tc2hhZG93LTAyKTsKICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICBwYWRkaW5nOiA2NHB4IDQwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuXzQwNC1ub3QtZm91bmQgewogICAgei1pbmRleDogLTE7CiAgICBvcGFjaXR5OiAuNzsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgZm9udC1zaXplOiA2MDBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMWVtOwogICAgZGlzcGxheTogZmxleDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAxMCUgMCUgMCU7CiAgfQogIAogIC50ZW1wbGF0ZS1wYWdlcy0tLW5hdi1pdGVtLXdyYXBwZXIgewogICAgcGFkZGluZy1sZWZ0OiAwOwogIH0KICAKICAudGVtcGxhdGUtcGFnZXMtLS1zaWRlYmFyLW5hdmlnYXRpb24gewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICB9CiAgCiAgLnRlbXBsYXRlLXBhZ2VzLS0tbmF2LWl0ZW0tbGluayB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcywgY29sb3IgLjNzOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnRlbXBsYXRlLXBhZ2VzLS0tbmF2LWl0ZW0tbGluazpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgfQogIAogIC50ZW1wbGF0ZS1wYWdlcy0tLW5hdi1pdGVtLWxpbmsudy0tY3VycmVudCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS04MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KICAKICAudGVtcGxhdGUtcGFnZXMtLS1waG9ncmFwaHktd3JhcHBlciB7CiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOwogICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MsIGNvbG9yIC4zczsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC50ZW1wbGF0ZS1wYWdlcy0tLXBob2dyYXBoeS13cmFwcGVyOmhvdmVyIHsKICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTQsIC45NCwgMS4wMSk7CiAgfQogIAogIC5jYXJ0LWJ1dHRvbi13cmFwcGVyIHsKICAgIG1hcmdpbi1sZWZ0OiAxNXB4OwogIH0KICAKICAuY2FydC13cmFwcGVyIHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjMDAwMDAwYjMsICMwMDAwMDBlNik7CiAgfQogIAogIC5jYXJ0LWNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm94LXNoYWRvdzogMCA1cHggMjVweCAwIHZhcigtLWdlbmVyYWwtLXNoYWRvdy0wNik7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOwogICAgYm9yZGVyLXJhZGl1czogMjRweDsKICB9CiAgCiAgLmNhcnQtaGVhZGVyIHsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLW5ldXRyYWwtLTYwMCk7CiAgICBwYWRkaW5nLXRvcDogMjJweDsKICAgIHBhZGRpbmctYm90dG9tOiAyMnB4OwogIH0KICAKICAuY2FydC1saXN0IHsKICAgIHBhZGRpbmctdG9wOiAyNHB4OwogICAgcGFkZGluZy1ib3R0b206IDI0cHg7CiAgfQogIAogIC5jYXJ0LWZvb3RlciB7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDsKICB9CiAgCiAgLmNhcnQtaXRlbS1wcmljZSB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjExMWVtOwogIH0KICAKICAuYXBwbGUtcGF5LWJ0biB7CiAgICBib3JkZXItcmFkaXVzOiA5MHB4OwogIH0KICAKICAuYXBwbGUtcGF5LWJ0bi5vcmRlci1zdW1tYXJ5IHsKICAgIGhlaWdodDogNTBweDsKICB9CiAgCiAgLmNhcnQtbGluZS1pdGVtIHsKICAgIGdyaWQtY29sdW1uLWdhcDogMTVweDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgfQogIAogIC5jYXJ0LWNsb3NlLWJ1dHRvbiB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmNhcnQtY2xvc2UtYnV0dG9uOmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgfQogIAogIC5jaGVja291dC1mb3JtIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwOwogICAgbWluLWhlaWdodDogYXV0bzsKICAgIHBhZGRpbmc6IDA7CiAgfQogIAogIC5jaGVja291dC1jb2wtbGVmdCB7CiAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgfQogIAogIC5jaGVja291dC1jb2wtcmlnaHQgewogICAgcG9zaXRpb246IHN0YXRpYzsKICB9CiAgCiAgLmNoZWNrb3V0LWJsb2NrLWhlYWRlciB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDE1cHg7CiAgICBib3JkZXItd2lkdGg6IDAgMCAxcHg7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsKICAgIHBhZGRpbmc6IDAgMCAyMHB4OwogIH0KICAKICAuY2hlY2tvdXQtYmxvY2stY29udGVudCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDsKICAgIGJvcmRlcjogMCBzb2xpZCAjMDAwOwogICAgcGFkZGluZzogNDBweCAwIDA7CiAgfQogIAogIC5jaGVja291dC1ibG9jay1jb250ZW50LnBkLXRvcC0wcHggewogICAgcGFkZGluZy10b3A6IDA7CiAgfQogIAogIC5zaGlwcGluZy1saXN0IHsKICAgIGJvcmRlcjogMCBzb2xpZCAjMDAwOwogIH0KICAKICAuc2hpcHBpbmctbWV0aG9kIHsKICAgIGJvcmRlci1zdHlsZTogc29saWQ7CiAgICBib3JkZXItd2lkdGg6IDAgMCAxcHg7CiAgICBib3JkZXItY29sb3I6IGJsYWNrIGJsYWNrIHZhcigtLW5ldXRyYWwtLTYwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDsKICAgIHBhZGRpbmc6IDMxcHggMDsKICB9CiAgCiAgLnNoaXBwaW5nLW1ldGhvZDpsYXN0LWNoaWxkIHsKICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7CiAgICBwYWRkaW5nLWJvdHRvbTogMDsKICB9CiAgCiAgLnNoaXBwaW5nLXByaWNlIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CiAgCiAgLm9yZGVyLWl0ZW0tbGlzdCB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KICAKICAub3JkZXItaXRlbSB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIG1hcmdpbi10b3A6IDE4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OwogICAgcGFkZGluZy10b3A6IDE4cHg7CiAgICBwYWRkaW5nLWJvdHRvbTogMThweDsKICB9CiAgCiAgLm9yZGVyLWl0ZW06bGFzdC1jaGlsZCB7CiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBub25lOwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmctYm90dG9tOiAwOwogIH0KICAKICAub3JkZXItbGlzdC1wcmljZSB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgfQogIAogIC5vcmRlci1saXN0LXRpdGxlIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgZm9udC1zaXplOiAyMHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CiAgCiAgLm9yZGVyLW9wdGlvbi1pdGVtIHsKICAgIHBhZGRpbmctbGVmdDogMDsKICB9CiAgCiAgLm9yZGVyLWl0ZW0tbWVkaXVtIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CiAgCiAgLm9yZGVyLXN1bW1hcnktcHJpY2UgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgfQogIAogIC5kaXNjb3VudHMtd3JhcHBlciB7CiAgICBib3JkZXItd2lkdGg6IDFweCAwIDA7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgcGFkZGluZzogMzJweCAwIDA7CiAgfQogIAogIC50ZXh0LXVuZGVybGluZSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CiAgCiAgLmhvbWUtcGFnZXMtY29pbnRhaW5lciB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHdpZHRoOiAxMDAlOwogICAgbWFyZ2luLXRvcDogNTZweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5ob21lLXBhZ2VzLXRvcC13cmFwcGVyIHsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgIG1hcmdpbi1yaWdodDogLTclOwogICAgZGlzcGxheTogZmxleDsKICAgIHBvc2l0aW9uOiBzdGF0aWM7CiAgfQogIAogIC5pbWFnZS1ob21lLWxpbmstd3JhcHBlciB7CiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOwogICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgIGZsZXg6IG5vbmU7CiAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgbWFyZ2luLWxlZnQ6IDEycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzLCBjb2xvciAuM3M7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYm94LXNoYWRvdzogMCAycHggMTBweCAjMDAwMDAwMGQ7CiAgfQogIAogIC5pbWFnZS1ob21lLWxpbmstd3JhcHBlcjpob3ZlciB7CiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk4LCAuOTgsIDEuMDEpOwogIH0KICAKICAuaW1hZ2UtaG9tZS1saW5rIHsKICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgd2lkdGg6IDEwMCU7CiAgfQogIAogIC5ob21lLXBhZ2VzLWJvdHRvbS13cmFwcGVyIHsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgbWFyZ2luLWxlZnQ6IC03JTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBwb3NpdGlvbjogc3RhdGljOwogICAgdG9wOiA1MCU7CiAgfQogIAogIC5jYXJkLXNhbGVzLWhvbWUtaW1hZ2UgewogICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjRweDsKICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyNHB4OwogICAgd2lkdGg6IDEwMCU7CiAgfQogIAogIC5jYXJkLXNhbGVzLWhvbWUtY29udGVudCB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAzMnB4IDI0cHg7CiAgfQogIAogIC5maWdtYS1maWxlLWltYWdlLXdyYXBwZXIgewogICAgd2lkdGg6IDEwMCU7CiAgICBtYXgtd2lkdGg6IDU0JTsKICB9CiAgCiAgLmZpZ21hLWZpbGUtdGV4dC13cmFwcGVyIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBmbGV4OiAxOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIHBhZGRpbmctbGVmdDogNjRweDsKICAgIHBhZGRpbmctcmlnaHQ6IDcxcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuYmFkZ2UtaG9tZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICBwYWRkaW5nOiAxNHB4IDIycHg7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMTI1ZW07CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogMjBweCAyMHB4IGF1dG8gYXV0bzsKICB9CiAgCiAgLmhvbWUtc3VycHJpc2VzLWNhcmQgewogICAgYm9yZGVyLXJhZGl1czogNDRweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4ICMxNDE0MmIxNDsKICB9CiAgCiAgLmNhcmQtaG9tZS1wYWdlcy13cmFwcGVyIHsKICAgIG1heC13aWR0aDogNDcycHg7CiAgICBtYXJnaW4tbGVmdDogNDBweDsKICAgIG1hcmdpbi1yaWdodDogNDBweDsKICAgIHBhZGRpbmctdG9wOiA1NnB4OwogIH0KICAKICAuY3RhLXNxdWFyZS1sb2dvIHsKICAgIGJvcmRlci1yYWRpdXM6IDIycHg7CiAgICB3aWR0aDogMTAwJTsKICAgIG1heC13aWR0aDogODBweDsKICAgIG1hcmdpbi1ib3R0b206IDIycHg7CiAgICBib3gtc2hhZG93OiAwIDhweCAyOHB4ICMxNDE0MmIxYTsKICB9CiAgCiAgLmN0YS1zcXVhcmUtbG9nby53aGl0ZSB7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLS0yMDApOwogIH0KICAKICAubWctYm90dG9tLTEycHggewogICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICB9CiAgCiAgLmN0YS1pbWFnZS1jYXJkIHsKICAgIGZsZXg6IDE7CiAgICB3aWR0aDogMTAwJTsKICAgIG1hcmdpbi10b3A6IDUycHg7CiAgfQogIAogIC5zcGFjZXIgewogICAgd2lkdGg6IDI1cHg7CiAgICBoZWlnaHQ6IDcwcHg7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CiAgCiAgLnNwYWNlci5fMTAwcHgtaGVpZ2h0IHsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDBweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAuc3BhY2VyLm1heC13LTEwMCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwcHg7CiAgfQogIAogIC5zcGFjZXIubWF4LXctMTAwLl8yMHB4IHsKICAgIGhlaWdodDogMjBweDsKICB9CiAgCiAgLnNwYWNlci5mdWxsLXdpZHRoIHsKICAgIHdpZHRoOiAxMDAlOwogIH0KICAKICAuc3BhY2VyLmZ1bGwtd2lkdGguXzYzcHggewogICAgaGVpZ2h0OiA2M3B4OwogIH0KICAKICAuaWNvbi1jYXJkLWZlYXR1cmVzIHsKICAgIHdpZHRoOiA4OXB4OwogIH0KICAKICAuaWNvbi1jYXJkLWZlYXR1cmVzLm1nLWJvdHRvbS0yMnB4IHsKICAgIG1hcmdpbi1ib3R0b206IDIycHg7CiAgfQogIAogIC5ncmFkaWVudCB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIzA2MDYwNjAwLCAjMDYwNjA2KTsKICAgIG1pbi1oZWlnaHQ6IDM1MHB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgaW5zZXQ6IGF1dG8gMCUgMCU7CiAgfQogIAogIC5ncmFkaWVudC5mdWxsLWhlcm8taW1hZ2UgewogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMwNjA2MDYwMCwgIzA2MDYwNik7CiAgICBtaW4taGVpZ2h0OiA2NCU7CiAgfQogIAogIC5ncmFkaWVudC5mdWxsLWhlcm8taW1hZ2UtLS1sZWZ0IHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgyNzBkZWcsICMwNjA2MDYwMCwgIzA2MDYwNik7CiAgICB3aWR0aDogMTAlOwogICAgbWluLWhlaWdodDogYXV0bzsKICAgIG1hcmdpbi1sZWZ0OiAtNXB4OwogICAgZGlzcGxheTogbm9uZTsKICAgIGluc2V0OiAwJSBhdXRvIDAlIDAlOwogIH0KICAKICAuZ3JhZGllbnQuZnVsbC1oZXJvLWltYWdlLS0tcmlnaHQgewogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDYwNjA2MDAsICMwNjA2MDYpOwogICAgd2lkdGg6IDEwJTsKICAgIG1pbi1oZWlnaHQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IC01cHg7CiAgICBkaXNwbGF5OiBub25lOwogICAgaW5zZXQ6IDAlIDAlIDAlIGF1dG87CiAgfQogIAogIC5kaXNwbGF5LWZsZXggewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAzNXB4OwogICAgZ3JpZC1yb3ctZ2FwOiAzNXB4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5pY29uIHsKICAgIHdpZHRoOiA4OXB4OwogIH0KICAKICAuY2FydC1xdWFudGl0eS1udW1iZXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDsKICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtaW4td2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtYXJnaW4tYm90dG9tOiAtMnB4OwogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgbGluZS1oZWlnaHQ6IDEuNjY3ZW07CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAubWF4LXctNDE2cHggewogICAgbWF4LXdpZHRoOiA0MTZweDsKICB9CiAgCiAgLnNwbGl0LWNvbnRlbnQuY3RhLWxlZnQgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgbWFyZ2luLXRvcDogNjBweDsKICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgfQogIAogIC5zcGxpdC1jb250ZW50LmN0YS1yaWdodCB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBtaW4td2lkdGg6IDQ5OHB4OwogICAgbWF4LXdpZHRoOiA1NzBweDsKICAgIG1hcmdpbi10b3A6IDYwcHg7CiAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0MHB4OwogIH0KICAKICAuc3BsaXQtY29udGVudC5jdGEtY2FyZC12MS1pbWFnZSB7CiAgICBmbGV4OiAxOwogICAgbWluLXdpZHRoOiA0MDBweDsKICAgIG1heC13aWR0aDogNjIwcHg7CiAgICBtYXJnaW4tdG9wOiAtMTQwcHg7CiAgICBtYXJnaW4tYm90dG9tOiAtMTYwcHg7CiAgfQogIAogIC5zcGxpdC1jb250ZW50LmN0YS1sZWZ0IHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIG1pbi13aWR0aDogNDk4cHg7CiAgICBtYXgtd2lkdGg6IDYxMHB4OwogICAgbWFyZ2luLXRvcDogNjBweDsKICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIHBhZGRpbmctbGVmdDogNDBweDsKICB9CiAgCiAgLmN0YS1tb2NrdXAtd3JhcHBlciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIAogIC5tYXgtdy01NzBweCB7CiAgICBtYXgtd2lkdGg6IDU3MHB4OwogIH0KICAKICAuY29sb3ItYWNjZW50LTIgewogICAgY29sb3I6IHZhcigtLWFjY2VudC0tcHJpbWFyeS0xKTsKICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg3MS4xMWRlZywgIzYzNGJmYSwgIzhhMWZkZSk7CiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDsKICB9CiAgCiAgLmNvbG9yLWFjY2VudC0yLmNsaXBwaW5nLWJnLXRleHQgewogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDM1ZGVnLCAjNjM0YmZhLCAjOGExZmRlKTsKICB9CiAgCiAgLmNhcmQtd3JhcHBlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm9yZGVyLXJhZGl1czogNDBweDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBwYWRkaW5nLXRvcDogMDsKICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgcGFkZGluZy1yaWdodDogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIAogIC5iZy10ZXh0LXNwYW4uY2xpcHBpbmctYmctdGV4dCB7CiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIzEzYjRjYSwgIzI3MmVlMik7CiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDsKICB9CiAgCiAgLmNpcmNsZS1hcnJvdyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTgwMCk7CiAgICBib3JkZXItcmFkaXVzOiA4MHB4OwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB3aWR0aDogNTBweDsKICAgIG1pbi13aWR0aDogNTBweDsKICAgIGhlaWdodDogNTBweDsKICAgIG1pbi1oZWlnaHQ6IDUwcHg7CiAgICBwYWRkaW5nOiAxM3B4OwogICAgZm9udC1zaXplOiAxOHB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmNpcmNsZS1hcnJvdy5fNjRweCB7CiAgICB3aWR0aDogNjRweDsKICAgIG1pbi13aWR0aDogNjRweDsKICAgIGhlaWdodDogNjRweDsKICAgIG1pbi1oZWlnaHQ6IDY0cHg7CiAgICBmb250LXNpemU6IDI1cHg7CiAgfQogIAogIC5pY29uLXNvY2lhbCB7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZm9udC1zaXplOiAyMnB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmljb24tc29jaWFsLnNpemUtMjJweCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLmljb24tc29jaWFsLnNpemUtMjJweC5jb2xvci1uZXV0cmFsLTEwMCB7CiAgICBtYXJnaW4tbGVmdDogMDsKICB9CiAgCiAgLmljb24tc29jaWFsLm1nLXRvcC0zMnB4LmNhcmQtYXV0aG9yLXNvY2lhbC1tZWRpYSB7CiAgICBtYXJnaW4tbGVmdDogLTEycHg7CiAgfQogIAogIC5saW5rLXNvY2lhbCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MsIGNvbG9yIC4zczsKICB9CiAgCiAgLmxpbmstc29jaWFsOmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtLXByaW1hcnktMSk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtM3B4KTsKICB9CiAgCiAgLmxpbmstZm9vdGVyIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIH0KICAKICAubGluay1mb290ZXI6aG92ZXIgewogICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IGluaGVyaXQ7CiAgICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7CiAgfQogIAogIC5saW5rLWZvb3Rlci50ZXh0LWRlY29yYXRpb24tbm9uZSB7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQogIAogIC5jYXJkLWZvb3Rlci1sZWZ0IHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg3MS4xMWRlZywgIzIxNmZmZiwgI2E0MjBmYyk7CiAgICBib3JkZXItcmFkaXVzOiA0OHB4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtaW4td2lkdGg6IDM1MHB4OwogICAgbWF4LXdpZHRoOiA0MDFweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAuY21zLW5hdi1iYWRnZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDM4cHg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtYXJnaW4tbGVmdDogNnB4OwogICAgcGFkZGluZzogN3B4IDhweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMTJweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5jYXJkLWNvbnRlbnQgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuY2FyZC1jb250ZW50LmNhcmQtZm9vdGVyLWNvbnRlbnQgewogICAgcGFkZGluZy10b3A6IDUxcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4OwogIH0KICAKICAuaWNvbi13cmFwcGVyLm1nLWJvdHRvbS0xODlweCB7CiAgICBtYXJnaW4tYm90dG9tOiAxODlweDsKICB9CiAgCiAgLmNhcmQtam9icyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBib3JkZXItcmFkaXVzOiA0MHB4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDQwcHggNDNweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CiAgCiAgLmNhcmQtam9iczpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLnRpdGxlLWNhcmQtam9icyB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDMwcHg7CiAgICBncmlkLXJvdy1nYXA6IDMwcHg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLm1heC13LTY1MnB4IHsKICAgIG1heC13aWR0aDogNjUycHg7CiAgfQogIAogIC5saW5rLWJsb2cgewogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS00MDApOwogICAgYm9yZGVyLXJhZGl1czogNDBweDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgcGFkZGluZzogMjBweDsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzLCBjb2xvciAuM3M7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAubGluay1ibG9nOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICB9CiAgCiAgLmxpbmstYmxvZy53LS1jdXJyZW50IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTYwMCk7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgfQogIAogIC5pbWFnZS1ibG9nLXBvc3QgewogICAgYm9yZGVyLXJhZGl1czogNjRweDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogIH0KICAKICAuZGlzcGxheS01IHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgZm9udC1zaXplOiA4MHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjExM2VtOwogIH0KICAKICAuY2FyZC1hdXRob3IgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJvcmRlci1yYWRpdXM6IDMycHg7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDY1cHggNTZweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5jYXJkLWF1dGhvci1jb250ZW50LXJpZ2h0IHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBmbGV4OiAxOwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBtYXgtd2lkdGg6IDQyM3B4OwogIH0KICAKICAuY2FyZC1hdXRob3ItbGluZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIHdpZHRoOiAxcHg7CiAgICBtYXJnaW4tbGVmdDogNDlweDsKICAgIG1hcmdpbi1yaWdodDogNDlweDsKICB9CiAgCiAgLmNvbnRlbnQtc3VjY2VzcyB7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuY2FyZC1wcmljaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXI6IDFweCAjZWZmMGY2OwogICAgYm9yZGVyLXJhZGl1czogNDhweDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBtYXgtd2lkdGg6IDQwNHB4OwogICAgbWluLWhlaWdodDogMTAwJTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjNzOwogICAgZGlzcGxheTogZmxleDsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDdweCAjMTQxNDJiMGY7CiAgfQogIAogIC5jYXJkLXByaWNpbmc6aG92ZXIgewogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKICB9CiAgCiAgLmNhcmQtcHJpY2luZy5iZy1ncmFkaWVudCB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNzEuMTFkZWcsICMyMTZmZmYsICNhNDIwZmMpOwogIH0KICAKICAudGV4dC1jb2xvci1uZXV0cmFsLTEwMCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICB9CiAgCiAgLnRpdGxlLm1nLXRvcC0zOXB4LS0tYm90dG9tLTM5cHggewogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIAogIC5pY29uLWxpbmUgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBmb250LXNpemU6IDMwcHg7CiAgfQogIAogIC5wcmljaW5nLWNvbnRlbnQtcmlnaHQgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNzAwKTsKICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7CiAgICBwYWRkaW5nOiA3M3B4IDU3cHg7CiAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgdG9wOiAyNHB4OwogIH0KICAKICAuY29udGFjdC13cmFwcGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgcGFkZGluZzogMzZweCA0NHB4IDM2cHggMzRweDsKICB9CiAgCiAgLm1heC13LTI3NHB4IHsKICAgIG1heC13aWR0aDogMjc0cHg7CiAgfQogIAogIC5jb250ZW50LXdyYXBwZXItam9icyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm9yZGVyLXJhZGl1czogNjRweDsKICAgIHBhZGRpbmc6IDEwMHB4OwogIH0KICAKICAubWctdG9wLTEwMHB4IHsKICAgIG1hcmdpbi10b3A6IDEwMHB4OwogIH0KICAKICAuY2FyZC1sb2dpbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS03MDApOwogICAgYm9yZGVyLXJhZGl1czogNjRweDsKICAgIHBhZGRpbmc6IDcwcHggNzhweDsKICB9CiAgCiAgLm1nLWJvdHRvbS01MHB4IHsKICAgIG1hcmdpbi1ib3R0b206IDUwcHg7CiAgfQogIAogIC5sb2dpbi1mb3JtLWJsb2NrIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIG1pbi1oZWlnaHQ6IDMxOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5jaGVja2JveC1maWVsZCB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5jaGVja2JveC1maWVsZC50ZXJtcyB7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICB9CiAgCiAgLmNoZWNrYm94LWxhYmVsIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0zMDApOwogICAgbWFyZ2luLWJvdHRvbTogLTNweDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQogIAogIC5jaGVja2JveC1sYWJlbC5tZWRpdW0gewogICAgZm9udC13ZWlnaHQ6IDUwMDsKICB9CiAgCiAgLmNoZWNrYm94LWxhYmVsLm1lZGl1bS50ZXJtcyB7CiAgICBtYXJnaW4tdG9wOiAtMnB4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CiAgCiAgLmxpbmUtc3BhY2UgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tNjAwKTsKICAgIHdpZHRoOiAxMDAlOwogICAgbWluLWhlaWdodDogMXB4OwogIH0KICAKICAubWctbGVmdC0tLXJpZ2h0LTEwcHggewogICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgfQogIAogIC5tZy1ib3R0b20tMHB4IHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIAogIC5iZy1jaXJjbGUgewogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDcxLjExZGVnLCAjMjE2ZmZmLCAjYTQyMGZjKTsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgd2lkdGg6IDYyNHB4OwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiA2MjRweDsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KICAKICAuYmctY2lyY2xlLmNvbWluZy1zb29uLWNpcmNsZSB7CiAgICB3aWR0aDogMTAwJTsKICAgIG1heC13aWR0aDogbm9uZTsKICAgIGhlaWdodDogYXV0bzsKICAgIHBhZGRpbmctdG9wOiAxMDAlOwogIH0KICAKICAuaW1hZ2UtcGhvbmUtcmVsYXRpdmUgewogICAgbWF4LXdpZHRoOiA4MCU7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgfQogIAogIC5oZWFkaW5nIHsKICAgIGZvbnQtc2l6ZTogODBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjA1ZW07CiAgfQogIAogIC5oZWFkaW5nLTQwNCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBmb250LXNpemU6IDE4MHB4OwogICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgIGxpbmUtaGVpZ2h0OiAxZW07CiAgfQogIAogIC5pbWFnZS1oZXJvIHsKICAgIHdpZHRoOiAxMDAlOwogIH0KICAKICAubWF4LXctNDU4cHggewogICAgbWF4LXdpZHRoOiA0NThweDsKICB9CiAgCiAgLmFwcGxlLXBheSB7CiAgICBib3JkZXItcmFkaXVzOiA5NnB4OwogICAgaGVpZ2h0OiA1MHB4OwogIH0KICAKICAucGF5LXdpdGgtYnJvd3NlciB7CiAgICBib3JkZXItcmFkaXVzOiA5NnB4OwogIH0KICAKICAuaWNvbi1jYXJkLWNvbnRhY3QgewogICAgd2lkdGg6IDcwcHg7CiAgICBtaW4td2lkdGg6IDcwcHg7CiAgICBoZWlnaHQ6IDcwcHg7CiAgICBtaW4taGVpZ2h0OiA3MHB4OwogIH0KICAKICAuaWNvbi1qb2JzIHsKICAgIHdpZHRoOiA5NXB4OwogICAgbWluLXdpZHRoOiA5NXB4OwogICAgaGVpZ2h0OiA5NXB4OwogICAgbWluLWhlaWdodDogOTVweDsKICB9CiAgCiAgLmljb24tdmFsdWVzIHsKICAgIHdpZHRoOiAxMDBweDsKICB9CiAgCiAgLmljb24tY2FyZC1qb2JzIHsKICAgIHdpZHRoOiAxMDAlOwogICAgbWF4LXdpZHRoOiA4MHB4OwogIH0KICAKICAubGluay1lbWFpbCB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CiAgCiAgLmxpbmstZW1haWw6aG92ZXIgewogICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS0tY29sb3ItMyk7CiAgfQogIAogIC5saW5rLW51bWJlciB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB9CiAgCiAgLmxpbmstbnVtYmVyOmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpOwogIH0KICAKICAuaWNvbi1wcmljaW5nIHsKICAgIHdpZHRoOiA5NnB4OwogIH0KICAKICAubGluay1jaGF0IHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIH0KICAKICAubGluay1jaGF0OmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpOwogIH0KICAKICAubGluay1zaWduLXVwIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAubGluay1zaWduLXVwOmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpOwogIH0KICAKICAubGluay1sb2dpbiB7CiAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tMTAwKTsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQogIAogIC5saW5rLWxvZ2luOmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpOwogIH0KICAKICAuYWRkLWNhcnQtZGVmYXVsdC1zdGF0ZSB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KICAKICAubWVudS13cmFwcGVyLS0tbWFpbiB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDQwcHg7CiAgICBncmlkLXJvdy1nYXA6IDUwcHg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAubmF2LWNvbnRlbnQgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4OwogICAgZmxleC13cmFwOiB3cmFwOwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgd2lkdGg6IDEwMCU7CiAgICBtYXgtd2lkdGg6IDM4MHB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLm1lbnUtd3JhcHBlciB7CiAgICBmbGV4OiAxOwogIH0KICAKICAubWVudS13cmFwcGVyLmxhc3QgewogICAgZmxleDogMCBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiAwOwogIH0KICAKICAuZm9vdGVyLWluZm8gewogICAgZ3JpZC1jb2x1bW4tZ2FwOiAxNXB4OwogICAgZ3JpZC1yb3ctZ2FwOiA0MHB4OwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIHBhZGRpbmctdG9wOiAwOwogICAgcGFkZGluZy1ib3R0b206IDA7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAubWctYm90dG9tLTIxcHggewogICAgbWFyZ2luLWJvdHRvbTogMjFweDsKICB9CiAgCiAgLmdyaWQtZm9vdGVyLS0tbWFpbiB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDQwcHg7CiAgICBncmlkLXJvdy1nYXA6IDY1cHg7CiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxLjU1ZnI7CiAgICBncmlkLWF1dG8tY29sdW1uczogMWZyOwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBkaXNwbGF5OiBncmlkOwogIH0KICAKICAudGV4dC1uby13cmFwIHsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgfQogIAogIC5wcmljaW5nLWNhcmQtY29udGVudCB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZmxleDogMTsKICAgIHBhZGRpbmc6IDUycHggMzBweCAzMnB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLm1nLWJvdHRvbS0xOHB4IHsKICAgIG1hcmdpbi1ib3R0b206IDE4cHg7CiAgfQogIAogIC5tZy10b3AtYXV0byB7CiAgICBtYXJnaW4tdG9wOiBhdXRvOwogIH0KICAKICAudGV4dC1hcmVhLXdyYXBwZXIgewogICAgbWluLXdpZHRoOiAxMDAlOwogICAgbWF4LXdpZHRoOiAxMDAlOwogIH0KICAKICAuYWNjb3JkaW9uLWNvbnRlbnQtd3JhcHBlci0tLWJpZy1udW1iZXIgewogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgd2lkdGg6IDEwMCU7CiAgICBtYXgtd2lkdGg6IDkwM3B4OwogICAgbWFyZ2luLXJpZ2h0OiAzMHB4OwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmltYWdlLWFuZC10ZXh0LXJpZ2h0LXdyYXBwZXIsIC5pbWFnZS1hbmQtdGV4dC1sZWZ0LXdyYXBwZXIgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4OwogICAgZ3JpZC1yb3ctZ2FwOiA2MHB4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5ibG9nLWNhcmQtY29udGVudCB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZmxleDogMTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5zdGF0cy1udW1iZXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBmb250LXNpemU6IDQuMnZ3OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjE2N2VtOwogIH0KICAKICAubWctYm90dG9tLTM4cHggewogICAgbWFyZ2luLWJvdHRvbTogMzhweDsKICB9CiAgCiAgLnN0b3J5LWNvbnRlbnQtLS1sZWZ0IHsKICAgIG1hcmdpbi1yaWdodDogNjNweDsKICB9CiAgCiAgLm1nLWJvdHRvbS02cHggewogICAgbWFyZ2luLWJvdHRvbTogNnB4OwogIH0KICAKICAubmV3c2xldHRlci1zaWRlYmFyLWZvcm0tYmxvY2sgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgbWluLWhlaWdodDogMTU5cHg7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLnByaWNpbmctZmVhdHVyZXMtLS1tb2JpbGUgewogICAgZGlzcGxheTogbm9uZTsKICB9CiAgCiAgLnJpY2gtdGV4dC12MiBwIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS00MDApOwogICAgbWFyZ2luLXRvcDogMTZweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgfQogIAogIC5yaWNoLXRleHQtdjIgaDIgewogICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgIGZvbnQtc2l6ZTogNDRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjE4MmVtOwogIH0KICAKICAucmljaC10ZXh0LXYyIGgzIHsKICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogIH0KICAKICAucmljaC10ZXh0LXYyIGZpZ3VyZSB7CiAgICBtYXJnaW4tdG9wOiA0OHB4OwogICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICB9CiAgCiAgLnJpY2gtdGV4dC12MiB1bCwgLnJpY2gtdGV4dC12MiBvbCB7CiAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICB9CiAgCiAgLnJpY2gtdGV4dC12MiBoNiwgLnJpY2gtdGV4dC12MiBoNSwgLnJpY2gtdGV4dC12MiBoNCB7CiAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICB9CiAgCiAgLnJpY2gtdGV4dC12MiBpbWcgewogICAgYm9yZGVyLXJhZGl1czogMzJweDsKICB9CiAgCiAgLnJpY2gtdGV4dC12MiBibG9ja3F1b3RlIHsKICAgIG1hcmdpbi10b3A6IDQ4cHg7CiAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogIH0KICAKICAucmljaC10ZXh0LXYyIHN0cm9uZyB7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KICAKICAuYWRkLXRvLWNhcnQgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgbWluLWhlaWdodDogMTYwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuc2xpZGUtdGVzdGltb25pYWwtaW1hZ2UtLS1zaGFkb3cgewogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMwMDAwIDM4JSwgIzAwMDAwMGYyKTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwJTsKICB9CiAgCiAgLnNsaWRlLXRlc3RpbW9uaWFsLWltYWdlLS0tbmFtZS13cmFwcGVyIHsKICAgIHotaW5kZXg6IDE7CiAgICBtYXJnaW4tYm90dG9tOiA1MXB4OwogICAgbWFyZ2luLWxlZnQ6IDQ5cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDQ5cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBpbnNldDogYXV0byAwJSAwJTsKICB9CiAgCiAgLnNpZ24tdXAtZm9ybS1ibG9jayB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBtaW4taGVpZ2h0OiA0NThweDsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuY2hlY2tib3gtZmllbGQtLS13cmFwcGVyIHsKICAgIGdyaWQtY29sdW1uLWdhcDogMTVweDsKICAgIGdyaWQtcm93LWdhcDogMTVweDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KICAKICAuY2FyZC1zaWduLXVwIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTcwMCk7CiAgICBib3JkZXItcmFkaXVzOiA1NHB4OwogICAgcGFkZGluZzogNTZweCA3MHB4IDgzcHg7CiAgfQogIAogIC5zaWduLXVwLXdyYXBwZXIgewogICAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLmNvbWluZy1zb29uLWNvbnRlbnQtLS1yaWdodCB7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB3aWR0aDogMTAwJTsKICAgIG1heC13aWR0aDogNjI0cHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KICAKICAuaW5wdXQtYW5kLWJ1dHRvbi1mb3JtLWJsb2NrIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIG1pbi1oZWlnaHQ6IDc2cHg7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgZGlzcGxheTogZmxleDsKICB9CiAgCiAgLm9yZGVyLWxpbmUtaXRlbSB7CiAgICBncmlkLWNvbHVtbi1nYXA6IDE1cHg7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgfQogIAogIC5jYXJ0LWxpc3QtdGl0bGUgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIH0KICAKICAuY2FydC1vcHRpb24taXRlbSB7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgfQogIAogIC5jYXJ0LWl0ZW0tbWVkaXVtIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogIH0KICAKICAuY2FydC1yZW1vdmUtYnV0dG9uIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxZW07CiAgfQogIAogIC5jYXJ0LWl0ZW0tbWFpbi13cmFwcGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQogIAogIC5tZy10b3AtMHB4IHsKICAgIG1hcmdpbi10b3A6IDA7CiAgfQogIAogIC5zYWxlcy0tLWJnIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzEzMTM7CiAgfQogIAogCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQ0MHB4KSB7CiAgICAuZ3JpZC0yLWNvbHVtbnMuc3R5bGUtLS1zdHlsZWd1aWRlLXdyYXBwZXIgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IC4zZnIgMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLnByb2R1Y3QtcGFnZSB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS41ZnIgMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmZvcm0tZmxleC12ZXJ0aWNhbCB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMzJweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAzMnB4OwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmxvZ28tc3RyaXAgewogICAgICBncmlkLWNvbHVtbi1nYXA6IDMwcHg7CiAgICAgIGdyaWQtcm93LWdhcDogMzBweDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmJsb2ctcG9zdC1zaWRlYmFyIHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiA0OHB4OwogICAgICBncmlkLXJvdy1nYXA6IDQ4cHg7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMuY29udGFjdC1mb3JtIHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAzMnB4OwogICAgICBncmlkLXJvdy1nYXA6IDMycHg7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMubG9nby1zdHJpcC0tLW1haW4tZ3JpZCB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMzBweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAzMHB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICB9CiAgCiAgICAuY2FyZC5jb250ZW50LWNlbnRlci5zdGF0LXYzIHsKICAgICAgcGFkZGluZy1sZWZ0OiA1MXB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAzOHB4OwogICAgfQogIAogICAgLmNhcmQuY29udGVudC1jZW50ZXIuc3RhdC12MiB7CiAgICAgIHBhZGRpbmc6IDY0cHggMzhweCA2NHB4IDUxcHg7CiAgICB9CiAgCiAgICAuZ3JpZC00LWNvbHVtbnMuY2FyZHMtdmFsdWVzIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjc1ZnIgMWZyIDFmcjsKICAgIH0KICAKICAgIC5zdHlsZS0tLXR5cG9ncmFwaHktYmxvY2stZ3JpZCB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KGF1dG8sIDM4MHB4KSAuOGZyOwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zLl8zLWNvbC10YWJsZXQuYWJvdXQgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5tYXgtdy0xMDgwcHgsIC5pbm5lci1jb250YWluZXIubWF4LXctMTAwIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAKICAgIC5zdHlsZS0tLWRyb3Bkb3duLXRvZ2dsZSB7CiAgICAgIHBhZGRpbmctdG9wOiAyOHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMjhweDsKICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgIH0KICAKICAgIC5idXR0b25zLXJvdy5jZW50ZXIuZ2FwLTI1cHguZGlzcGxheS1mbGV4LS0tYWxpZ24tc3RyZXRjaCB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTVweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNXB4OwogICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1kcm9wZG93bi1saW5rLXNpZGViYXIgewogICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1kcm9wZG93bi1saW5rLWljb24tc2lkZWJhciB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIG1heC13aWR0aDogNDZweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAxNHB4OwogICAgfQogIAogICAgLnN0eWxlLS0tbG9nby13cmFwcGVyIHsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1sb2dvLXNpZGViYXIgewogICAgICBtYXgtd2lkdGg6IDI2MHB4OwogICAgfQogIAogICAgLnV0aWxpdHktcGFnZS1jb250ZW50LnJlbGF0aXZlIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogIAogICAgLl80MDQtbm90LWZvdW5kIHsKICAgICAgaW5zZXQ6IDIwJSAwJSAwJTsKICAgIH0KICAKICAgIC5ncmFkaWVudC5mdWxsLWhlcm8taW1hZ2UtLS1sZWZ0LCAuZ3JhZGllbnQuZnVsbC1oZXJvLWltYWdlLS0tcmlnaHQgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KICAKICAgIC5pY29uLXNvY2lhbC5zaXplLTIycHguY29sb3ItbmV1dHJhbC0xMDAgewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgIH0KICAKICAgIC5jb250ZW50LXdyYXBwZXItam9icyB7CiAgICAgIHBhZGRpbmctdG9wOiA5MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogOTBweDsKICAgIH0KICAKICAgIC5ncmlkLWZvb3Rlci0tLW1haW4gewogICAgICBncmlkLWNvbHVtbi1nYXA6IDY1cHg7CiAgICAgIGdyaWQtcm93LWdhcDogNjVweDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjJmciAyZnI7CiAgICB9CiAgCiAgICAuc3RhdHMtbnVtYmVyIHsKICAgICAgZm9udC1zaXplOiA2MHB4OwogICAgfQogIAogICAgLm1nLXRvcC0wcHggewogICAgICBtYXJnaW4tdG9wOiAwOwogICAgfQogIH0KICAKICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHsKICAgIC5ncmlkLTItY29sdW1ucy5wcm9kdWN0LXBhZ2UgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNWZyIDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5sb2dvLXN0cmlwLCAuZ3JpZC0yLWNvbHVtbnMubG9nby1zdHJpcC0tLW1haW4tZ3JpZCB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMzBweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAzMHB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICB9CiAgCiAgICAuZ3JpZC00LWNvbHVtbnMuY2FyZHMtdmFsdWVzIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjc1ZnIgMWZyIDFmcjsKICAgIH0KICAKICAgIC5zdHlsZS0tLWhlYWRpbmcgewogICAgICBwYWRkaW5nLWxlZnQ6IDZ2dzsKICAgICAgcGFkZGluZy1yaWdodDogNnZ3OwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5tYXgtdy0xMDgwcHgsIC5pbm5lci1jb250YWluZXIubWF4LXctMTAwIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAKICAgIC5zdHlsZS0tLWNvbnRlbnQtd3JhcHBlciB7CiAgICAgIHBhZGRpbmctbGVmdDogOHZ3OwogICAgICBwYWRkaW5nLXJpZ2h0OiA4dnc7CiAgICB9CiAgCiAgICAudXRpbGl0eS1wYWdlLWNvbnRlbnQucmVsYXRpdmUgewogICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KICAKICAgIC5mbGV4LWhvcml6b250YWwuanVzdGlmeS1zcGFjZSB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTZweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5fNDA0LW5vdC1mb3VuZCB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGluc2V0OiAyMCUgMCUgMCU7CiAgICB9CiAgCiAgICAuY2hlY2tvdXQtY29sLXJpZ2h0IHsKICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgdG9wOiAyNHB4OwogICAgfQogIAogICAgLmltYWdlLWhvbWUtbGluay13cmFwcGVyIHsKICAgICAgbWF4LXdpZHRoOiA1NjBweDsKICAgIH0KICAKICAgIC5ncmFkaWVudC5mdWxsLWhlcm8taW1hZ2UtLS1yaWdodCB7CiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzA2MDYwNjAwLCAjMDYwNjA2KTsKICAgICAgd2lkdGg6IDEwJTsKICAgICAgbWluLWhlaWdodDogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiAtNXB4OwogICAgICBpbnNldDogMCUgMCUgMCUgYXV0bzsKICAgIH0KICAKICAgIC5jYXJkLXdyYXBwZXIgewogICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIH0KICAKICAgIC5tZy10b3AtMHB4IHsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHsKICAgIGgxIHsKICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgfQogIAogICAgaDIgewogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICBmb250LXNpemU6IDMwcHg7CiAgICB9CiAgCiAgICBoMyB7CiAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgIH0KICAKICAgIGg0IHsKICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogIAogICAgYmxvY2txdW90ZSB7CiAgICAgIHBhZGRpbmc6IDQ4cHggNTJweDsKICAgICAgZm9udC1zaXplOiAyM3B4OwogICAgICBsaW5lLWhlaWdodDogMS43NWVtOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLnN0eWxlLS0tc3R5bGVndWlkZS13cmFwcGVyIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiAwcHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLl8xLWNvbC10YWJsZXQgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5oZXJvLXBsYXktYnV0dG9uIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiA0MHB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IC44ZnI7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMuaGVyby1wbGF5LWJ1dHRvbi5tYXgtdy01NDBweCB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMjhweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiA0MHB4OwogICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogLjhmcjsKICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5ibG9nLXNpZGViYXIgewogICAgICBncmlkLXJvdy1nYXA6IDk4cHg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMuZ2FwLWNvbHVtbi04MHB4IHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiA0MHB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5nYWxsZXJ5LXY2IHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAyOHB4OwogICAgICBncmlkLXJvdy1nYXA6IDI4cHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMudGVtcGxhdGUtcGFnZS1zaWRlYmFyIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAuNWZyIDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5wcm9kdWN0LXBhZ2UgewogICAgICBncmlkLXJvdy1nYXA6IDcwcHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmNoZWNrb3V0LXBhZ2UgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5zdXByaXNlcy1wYWdlcy1yaWdodCwgLmdyaWQtMi1jb2x1bW5zLnN1cHJpc2VzLXBhZ2VzLWxlZnQgewogICAgICBncmlkLXJvdy1nYXA6IDQwcHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5sb2dvLXN0cmlwIHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAxNnB4OwogICAgICBncmlkLXJvdy1nYXA6IDE2cHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICBncmlkLWF1dG8tY29sdW1uczogMWZyOwogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmJsb2ctcG9zdC1zaWRlYmFyLCAuZ3JpZC0yLWNvbHVtbnMudGl0bGUtYW5kLWJ1dHRvbnMuXzEtY29sLXRhYmxldCB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmxvZ28tc3RyaXAtLS1tYWluLWdyaWQgewogICAgICBncmlkLWNvbHVtbi1nYXA6IDI0cHg7CiAgICAgIGdyaWQtcm93LWdhcDogNjBweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICBncmlkLWF1dG8tY29sdW1uczogMWZyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAganVzdGlmeS1pdGVtczogY2VudGVyOwogICAgICBtYXgtd2lkdGg6IDcwMHB4OwogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICBkaXNwbGF5OiBncmlkOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmNhcmVlci1zaWRlYmFyIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiA4MHB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5jb21pbmctc29vbi1ncmlkIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNDBweDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5wYWdlcy1ncmlkIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5zdHlsZS0tLW5hdmlnYXRpb24tc2lkZWJhciB7CiAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIG1pbi1oZWlnaHQ6IGF1dG87CiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7CiAgICB9CiAgCiAgICAuY2FyZC5mb3JtIHsKICAgICAgcGFkZGluZzogNTRweCAzMnB4OwogICAgfQogIAogICAgLmNhcmQuZm9ybS5jb250YWN0LWZvcm0tdjEgewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgICBtaW4taGVpZ2h0OiA1ODZweDsKICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4OwogICAgfQogIAogICAgLmNhcmQuY29udGVudC1jZW50ZXIgewogICAgICBib3JkZXItcmFkaXVzOiAzMnB4OwogICAgfQogIAogICAgLmNhcmQuY29udGVudC1jZW50ZXIuc3RhdC12MyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICAgIHBhZGRpbmctdG9wOiA4MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogODBweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyLnN0YXQtdjMuYmctY29sb3ItZ3JhZGllbnRzIHsKICAgICAgYm9yZGVyLXJhZGl1czogMzZweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyLnRlYW0tdjEgewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7CiAgICB9CiAgCiAgICAuY2FyZC5jb250ZW50LWNlbnRlci5zbGlkZS10ZXN0aW1vbmlhbCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDQycHg7CiAgICAgIHBhZGRpbmctdG9wOiA4MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogODBweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyLnN0YXQtdjIgewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgICBwYWRkaW5nLXRvcDogNTNweDsKICAgICAgcGFkZGluZy1ib3R0b206IDUzcHg7CiAgICB9CiAgCiAgICAuY2FyZC5maWdtYS1maWxlIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KICAKICAgIC5jYXJkLmZlYXR1cmVzIHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAyNHB4OwogICAgICBncmlkLXJvdy1nYXA6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDQycHg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgcGFkZGluZy10b3A6IDQwcHg7CiAgICAgIHBhZGRpbmctbGVmdDogNDBweDsKICAgICAgcGFkZGluZy1yaWdodDogNDBweDsKICAgIH0KICAKICAgIC5jYXJkLmZlYXR1cmVzLmRpcmVjdGlvbi1yZXZlcnNlIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7CiAgICB9CiAgCiAgICAuY2FyZC5jYXJkLXZhbHVlcy1sZWZ0IHsKICAgICAgcGFkZGluZzogNTRweCAzMHB4OwogICAgfQogIAogICAgLmNhcmQuY2FyZC12YWx1ZXMtcmlnaHQgewogICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogYXV0bzsKICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4OwogICAgfQogIAogICAgLmdyaWQtNC1jb2x1bW5zLCAuZ3JpZC00LWNvbHVtbnMuY2FyZHMtdmFsdWVzIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgfQogIAogICAgLmdyaWQtNC1jb2x1bW5zLmNvbnRlbnQtam9icyB7CiAgICAgIGdyaWQtcm93LWdhcDogMTZweDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAuZ3JpZC00LWNvbHVtbnMucHJpY2luZyB7CiAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAuY29sb3ItbmV1dHJhbC00MDAubWF4LXctMzU4cHggewogICAgICBtYXgtd2lkdGg6IG5vbmU7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1ibG9jay1zdWItaGVhZGluZyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICB9CiAgCiAgICAuZGl2aWRlci5fNjRweCB7CiAgICAgIG1hcmdpbi10b3A6IDQ4cHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS10eXBvZ3JhcGh5LWJsb2NrLWdyaWQgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChhdXRvLCAyNTBweCkgMWZyOwogICAgfQogIAogICAgLm1nLWJvdHRvbS00OHB4Lm1heC13LTUyMHB4IHsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgfQogIAogICAgLm1nLWJvdHRvbS00OHB4Lmljb24tcHJpY2luZyB7CiAgICAgIHdpZHRoOiA4MnB4OwogICAgfQogIAogICAgLm1nLXRvcC01NnB4IHsKICAgICAgbWFyZ2luLXRvcDogNDBweDsKICAgIH0KICAKICAgIC5tZy1yaWdodC0yNHB4Lm1nLWJ0LTE2cHggewogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICB9CiAgCiAgICAuZGlzcGxheS0xIHsKICAgICAgZm9udC1zaXplOiA2NHB4OwogICAgfQogIAogICAgLmRpc3BsYXktMiB7CiAgICAgIGZvbnQtc2l6ZTogNDJweDsKICAgIH0KICAKICAgIC5kaXNwbGF5LTIubWctdG9wLTMycHgsIC5kaXNwbGF5LTIudGl0bGUtcGFzc3dvcmQgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgCiAgICAuZGlzcGxheS0zIHsKICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgfQogIAogICAgLmRpc3BsYXktNCB7CiAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLXN0eWxlLWdyaWQtd3JhcHBlciB7CiAgICAgIGdyaWQtcm93LWdhcDogMTQwcHg7CiAgICB9CiAgCiAgICAucGFyYWdyYXBoLWxhcmdlIHsKICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogIAogICAgLnRleHQtNDAwIHsKICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zLnN0eWxlLS0tYnV0dG9ucy1ncmlkLmFwcHMtYnV0dG9ucyB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zLl8xLWNvbC10YWJsZXQgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucy5fMy1jb2wtdGFibGV0IHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAxOHB4OwogICAgICBncmlkLXJvdy1nYXA6IDE4cHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucy5fMy1jb2wtdGFibGV0LmFib3V0IHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAuZ3JpZC0zLWNvbHVtbnMubWVtYmVycy12MiB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnIgMWZyOwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zLmdhcC1yb3ctODBweCB7CiAgICAgIGdyaWQtcm93LWdhcDogNjRweDsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucy5wcmljaW5nIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiA0MHB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucy5zZWN0aW9uLWJsb2ctZ3JpZCwgLmdyaWQtMy1jb2x1bW5zLnBhZ2VzLWdyaWQgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5zdHlsZS0tLWhlYWRpbmcgewogICAgICBtaW4taGVpZ2h0OiBhdXRvOwogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICBwYWRkaW5nLXRvcDogMTE2cHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxMTZweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzEwMC0tLXRhYmxldCB7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzQwMHB4LS0tdGFibGV0IHsKICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzM1MHB4LS0tdGFibGV0IHsKICAgICAgbWF4LXdpZHRoOiAzNTBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzcwMHB4LS0tdGFibGV0IHsKICAgICAgbWF4LXdpZHRoOiA3MDBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzc1MHB4LS0tdGFibGV0IHsKICAgICAgbWF4LXdpZHRoOiA3NTBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzU4MHB4IHsKICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuaW1hZ2UtYW5kLXRleHQtcmlnaHQtLS1pbWFnZSB7CiAgICAgIG1pbi13aWR0aDogYXV0bzsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5fNjI4cHggewogICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5pbWFnZS1hbmQtdGV4dC1sZWZ0LS0taW1hZ2UgewogICAgICBtaW4td2lkdGg6IGF1dG87CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzYwMHB4LS0tdGFibGV0IHsKICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzUwMHB4LS0tdGFibGV0IHsKICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzQ1MHB4LS0tdGFibGV0IHsKICAgICAgbWF4LXdpZHRoOiA0NTBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuc2lnbi11cC1jb250ZW50LS0tbGVmdCB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtaW4td2lkdGg6IGF1dG87CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuc2lnbi11cC1jb250ZW50LS0tcmlnaHQgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5jZW50ZXItLS10YWJsZXQgewogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5jb21pbmctc29vbi1jb250ZW50LS0tbGVmdCB7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzYyOHB4LS0tdGFibGV0IHsKICAgICAgbWF4LXdpZHRoOiA2MjhweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLWNvbnRlbnQtaGVhZGluZyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIHBhZGRpbmc6IDMycHg7CiAgICB9CiAgCiAgICAuYm9yZGVyLXJhZGl1cy02NHB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogNDJweDsKICAgIH0KICAKICAgIC5idG4tcHJpbWFyeSB7CiAgICAgIHBhZGRpbmctdG9wOiAyNHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMjRweDsKICAgIH0KICAKICAgIC5idG4tcHJpbWFyeS5sYXJnZSwgLmJ0bi1zZWNvbmRhcnkubGFyZ2UgewogICAgICBwYWRkaW5nOiAyNnB4IDUycHg7CiAgICB9CiAgCiAgICAuYXZhdGFyLWNpcmNsZS5fMDYgewogICAgICB3aWR0aDogMTQwcHg7CiAgICAgIG1heC13aWR0aDogMTQwcHg7CiAgICAgIGhlaWdodDogMTQwcHg7CiAgICAgIG1heC1oZWlnaHQ6IDE0MHB4OwogICAgfQogIAogICAgLmF2YXRhci1jaXJjbGUuXzA2Lm1nLWJvdHRvbS00MHB4IHsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBtYXgtd2lkdGg6IDIwMHB4OwogICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgIH0KICAKICAgIC5hdmF0YXItY2lyY2xlLl8wNyB7CiAgICAgIHdpZHRoOiAxNjBweDsKICAgICAgbWF4LXdpZHRoOiAxNjBweDsKICAgICAgaGVpZ2h0OiAxNjBweDsKICAgICAgbWF4LWhlaWdodDogMTYwcHg7CiAgICB9CiAgCiAgICAuYXZhdGFyLWNpcmNsZS5fMDggewogICAgICB3aWR0aDogMjgwcHg7CiAgICAgIG1heC13aWR0aDogMjgwcHg7CiAgICAgIGhlaWdodDogMjgwcHg7CiAgICAgIG1heC1oZWlnaHQ6IDI4MHB4OwogICAgfQogIAogICAgLmxpbmUtcm91bmRlZC1pY29uLmxpbmstaWNvbi1sZWZ0IHsKICAgICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICB9CiAgCiAgICAubGluZS1zcXVhcmUtaWNvbi50b3AtYmFyLWNsb3NlLWljb24gewogICAgICBwYWRkaW5nOiAxOHB4IDI0cHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1kcm9wZG93bi13cmFwcGVyLXNpZGViYXIgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogIAogICAgLmJ1dHRvbnMtcm93LmNlbnRlci0tLXRhYmxldCB7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgfQogIAogICAgLnN0eWxlLS0tc2lkZWJhci13cmFwcGVyIHsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KICAKICAgIC5zdHlsZS0tLWxvZ28td3JhcHBlciB7CiAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIHBhZGRpbmctdG9wOiAyMHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLWJ1dHRvbi13cmFwcGVyLXNpZGViYXIgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogIAogICAgLmVsZW1lbnRzLS0tcGFnZS1oZXJvIHsKICAgICAgcGFkZGluZy10b3A6IDcycHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA3MnB4OwogICAgfQogIAogICAgLnNlY3Rpb24sIC5zZWN0aW9uLnNtYWxsIHsKICAgICAgcGFkZGluZy10b3A6IDgwcHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA4MHB4OwogICAgfQogIAogICAgLnNlY3Rpb24uaGVybyB7CiAgICAgIHBhZGRpbmctdG9wOiA4MHB4OwogICAgfQogIAogICAgLnNlY3Rpb24uaGVyby52MSB7CiAgICAgIHBhZGRpbmctdG9wOiA4M3B4OwogICAgICBwYWRkaW5nLWJvdHRvbTogODNweDsKICAgIH0KICAKICAgIC5zZWN0aW9uLmhlcm8udjIgewogICAgICBwYWRkaW5nLWJvdHRvbTogODNweDsKICAgIH0KICAKICAgIC5zZWN0aW9uLmhlcm8udjMgewogICAgICBwYWRkaW5nLXRvcDogNzBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDgzcHg7CiAgICB9CiAgCiAgICAuc2VjdGlvbi50ZW1wbGF0ZS1wYWdlcy1oZXJvLCAuc2VjdGlvbi5oZXJvLXBhZ2UgewogICAgICBwYWRkaW5nLXRvcDogODBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDgwcHg7CiAgICB9CiAgCiAgICAudG9wLWJhci13cmFwcGVyIHsKICAgICAgcGFkZGluZy1sZWZ0OiA1NnB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiA1NnB4OwogICAgfQogIAogICAgLnRvcC1iYXItZmxleCB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB9CiAgCiAgICAubGluay10ZXh0LmxvZ2luIHsKICAgICAgY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICB9CiAgCiAgICAuaGVhZGluZy1oMS1zaXplIHsKICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgfQogIAogICAgLmhlYWRpbmctaDItc2l6ZSB7CiAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIH0KICAKICAgIC5oZWFkaW5nLWgzLXNpemUgewogICAgICBmb250LXNpemU6IDIycHg7CiAgICB9CiAgCiAgICAuaGVhZGluZy1oNC1zaXplIHsKICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgfQogIAogICAgLmhlYWRlci13cmFwcGVyIHsKICAgICAgcGFkZGluZy10b3A6IDI0cHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4OwogICAgfQogIAogICAgLmhlYWRlci1uYXYtbWVudS13cmFwcGVyIHsKICAgICAgYm9yZGVyLXRvcDogMXB4IG5vbmUgdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IG5vbmUgdmFyKC0tbmV1dHJhbC0tMzAwKTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDI0cHggMjRweDsKICAgICAgcGFkZGluZzogMTBweCAyNHB4IDI0cHg7CiAgICB9CiAgCiAgICAuaGVhZGVyLW5hdi1tZW51LWxpc3QgewogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KICAKICAgIC5oZWFkZXItbmF2LWxpbmsubG9naW4tbGluayB7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KICAKICAgIC5oZWFkZXItbmF2LWxpc3QtaXRlbSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIHBhZGRpbmctbGVmdDogMDsKICAgIH0KICAKICAgIC5oZWFkZXItbmF2LWxpc3QtaXRlbS5zaG93LWluLXRhYmxldCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQogIAogICAgLmhlYWRlci1uYXYtbGlzdC1pdGVtLm1pZGRsZSB7CiAgICAgIHBhZGRpbmctbGVmdDogMDsKICAgICAgcGFkZGluZy1yaWdodDogMDsKICAgIH0KICAKICAgIC5oZWFkZXItbmF2LWxpc3QtaXRlbS5oZWFkZXItYnV0dG9uLXNob3ctaW4tdGFibGV0IHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi10b3A6IDQwcHg7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQogIAogICAgLmRyb3Bkb3duLXdyYXBwZXIgewogICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICB9CiAgCiAgICAuZHJvcGRvd24td3JhcHBlci5zdGF0aWMgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KICAKICAgIC5kcm9wZG93bi10b2dnbGUudy0tb3BlbiB7CiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICB9CiAgCiAgICAuZHJvcGRvd24tdG9nZ2xlLnN0YXRpYyB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KICAKICAgIC5kcm9wZG93bi1jb2x1bW4td3JhcHBlciB7CiAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgcG9zaXRpb246IHN0YXRpYzsKICAgICAgdHJhbnNmb3JtOiBub25lOwogICAgfQogIAogICAgLmhhbWJ1cmdlci1tZW51LXdyYXBwZXIgewogICAgICBtYXJnaW4tbGVmdDogMjRweDsKICAgIH0KICAKICAgIC5oYW1idXJnZXItbWVudS1iYXIgewogICAgICB3aWR0aDogNDRweDsKICAgICAgaGVpZ2h0OiAzcHg7CiAgICB9CiAgCiAgICAuaGFtYnVyZ2VyLW1lbnUtYmFyLnRvcCB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICB9CiAgCiAgICAuaGFtYnVyZ2VyLW1lbnUtYmFyLmJvdHRvbSB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtLTEwMCk7CiAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICB9CiAgCiAgICAuaGVhZGVyLW1pZGRsZSB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQogIAogICAgLmhlYWRlci1taWRkbGUuY2VudGVyIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICB9CiAgCiAgICAudXRpbGl0eS1wYWdlLWNvbnRlbnQucGFzc3dvcmQtY29udGVudCB7CiAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICB9CiAgCiAgICAuZmxleC1ob3Jpem9udGFsLnN0YXJ0LmZsZXgtd3JhcC5jZW50ZXItLS10YWJsZXQsIC5mbGV4LWhvcml6b250YWwuc3RhcnQuY2VudGVyLS0tdGFibGV0IHsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB9CiAgCiAgICAuZmxleC1ob3Jpem9udGFsLmp1c3RpZnktc3BhY2UgewogICAgICBncmlkLWNvbHVtbi1nYXA6IDE2cHg7CiAgICAgIGdyaWQtcm93LWdhcDogMTZweDsKICAgICAgZmxleC1mbG93OiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogIAogICAgLmhpZGRlbi1vbi10YWJsZXQgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogIAogICAgLmZvb3Rlci13cmFwcGVyIHsKICAgICAgYm9yZGVyLXJhZGl1czogNDJweDsKICAgICAgcGFkZGluZy1sZWZ0OiA2MHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4OwogICAgfQogIAogICAgLmZvb3Rlci1ib3R0b20gewogICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgcGFkZGluZy10b3A6IDI0cHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4OwogICAgfQogIAogICAgLmZvb3Rlci1ib3R0b20udGV4dC1yaWdodC50ZXh0LWNlbnRlci1tYi5wZC02MHB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogNDJweDsKICAgIH0KICAKICAgIC5mb290ZXItYm90dG9tLnBkLTYwcHggewogICAgICBwYWRkaW5nLXRvcDogNDhweDsKICAgICAgcGFkZGluZy1ib3R0b206IDQ4cHg7CiAgICB9CiAgCiAgICAuZm9vdGVyLW1pZGRsZSB7CiAgICAgIHBhZGRpbmctdG9wOiAwOwogICAgICBwYWRkaW5nLWJvdHRvbTogMDsKICAgIH0KICAKICAgIC5ncmlkLWZvb3Rlci1sb2dvLS0tcGFyYWdyYXBoIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiAyOHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7CiAgICAgIG1heC13aWR0aDogNTI5cHg7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CiAgCiAgICAudGV4dC1jZW50ZXIudGFibGV0IHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogIAogICAgLnRleHQtY2VudGVyLnBkLTMxcHgtLS1tZy10b3AtNDdweCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDQycHg7CiAgICB9CiAgCiAgICAuc3RpY2t5LXRvcC5fMjRweC10b3Auc3RpY2t5LW1ibCB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIHBhZGRpbmc6IDM4cHggMjRweCAyNXB4OwogICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgfQogIAogICAgLnN0aWNreS10b3AuXzI0cHgtdG9wLnN0aWNreS1tYmwuYXBwbHktcm9sZSB7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgcGFkZGluZzogNjBweDsKICAgIH0KICAKICAgIC5zdGlja3ktdG9wLl8yNHB4LXRvcC5uZXdzbGV0dGVyLXNpZGViYXIgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXgtd2lkdGg6IG5vbmU7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgICAgcGFkZGluZy1sZWZ0OiA1NnB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiA1NnB4OwogICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgfQogIAogICAgLnN0aWNreS10b3AuXzI0cHgtdG9wLmJsb2ctc2lkZWJhci1sZWZ0IHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIHBhZGRpbmc6IDgwcHggNjBweDsKICAgICAgcG9zaXRpb246IHN0YXRpYzsKICAgIH0KICAKICAgIC5oZXJvLWNhcmQtYmctaW1hZ2UgewogICAgICBwYWRkaW5nLXRvcDogMTQ4cHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxNDhweDsKICAgIH0KICAKICAgIC5oZXJvLWNhcmQtYmctaW1hZ2UuaGVyby12MTQgewogICAgICBib3JkZXItcmFkaXVzOiA0MnB4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBhZGRpbmc6IDcwcHggNjBweCAxOThweDsKICAgIH0KICAKICAgIC5jdGEtY2FyZCB7CiAgICAgIHBhZGRpbmc6IDcycHggNTRweDsKICAgIH0KICAKICAgIC5jdGEtY2FyZC52MSB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgcGFkZGluZzogMDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KICAKICAgIC5jdGEtY2FyZC52MiB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgCiAgICAubG9nby1zdHJpcC1pbWFnZSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICB9CiAgCiAgICAuc2xpZGVyLW1hc2sgewogICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgfQogIAogICAgLnNsaWRlci1tYXNrLndpZHRoLTU0MHB4LndpZHRoLTEwMC0tLXRhYmxldCB7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5hY2NvcmRpb24taXRlbS13cmFwcGVyIHsKICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4OwogICAgfQogIAogICAgLmFjY29yZGlvbi1pdGVtLXdyYXBwZXIuc3BhY2UtYmV0d2VlbiB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICB9CiAgCiAgICAuYWNjb3JkaW9uLXNwYWNlciB7CiAgICAgIG1pbi1oZWlnaHQ6IDEycHg7CiAgICB9CiAgCiAgICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLmZlYXR1cmVzLWNvbnRlbnQtbGVmdCB7CiAgICAgIGFsaWduLXNlbGY6IGF1dG87CiAgICAgIG1heC13aWR0aDogNTQwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgcGFkZGluZy1sZWZ0OiAwOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwOwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC5sYXJnZSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICAgIHBhZGRpbmctdG9wOiA4MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7CiAgICB9CiAgCiAgICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLmxhcmdlLnRlbXBsYXRlLXBhZ2VzIHsKICAgICAgcGFkZGluZy1sZWZ0OiA2MHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4OwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC50ZW1wbGF0ZS1wYWdlcy0tLXNpZGViYXIgewogICAgICBib3JkZXItcmFkaXVzOiAzOHB4OwogICAgfQogIAogICAgLmltYWdlLmltYWdlLWlwaG9uZS1sZWZ0IHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CiAgCiAgICAuaW1hZ2UuYm9yZGVyLXJhZGl1cy02NHB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogNDJweDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLWZlYXR1cmVzLmltYWdlLWNhcmRzLWxlZnQgewogICAgICBhbGlnbi1zZWxmOiBhdXRvOwogICAgICBtaW4td2lkdGg6IGF1dG87CiAgICB9CiAgCiAgICAuaW1hZ2Utd3JhcHBlci1mZWF0dXJlcy5pbWFnZS1jYXJkcy1yaWdodCB7CiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKICAgICAgbWluLXdpZHRoOiBhdXRvOwogICAgfQogIAogICAgLnByaWNpbmctY29udGVudC13cmFwcGVyLm1nLXRvcC00OHB4LCAucHJpY2luZy1jb250ZW50LXdyYXBwZXIubWctdG9wLTI0cHggewogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIH0KICAKICAgIC5ibG9nLWNhcmQtaW1hZ2UgewogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5ibG9nLWNhcmQtdGl0bGUgewogICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgfQogIAogICAgLmJsb2ctY2FyZC13cmFwcGVyIHsKICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICB9CiAgCiAgICAuaW1hZ2Utd3JhcHBlci5vdmVyZmxvdy1oaWRkZW4uYm9yZGVyLXJhZGl1cy02NHB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogNDJweDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLm1nLXRvcC04MHB4IHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLmltYWdlLW1lbWJlcnMuYm9yZGVyLXJhZGl1cy0zMnB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLmNhcmQtZm9vdGVyLWltYWdlIHsKICAgICAgbWluLXdpZHRoOiAyNjBweDsKICAgICAgbWF4LXdpZHRoOiAyODBweDsKICAgICAgbWFyZ2luLXRvcDogLTcwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IC03MHB4OwogICAgfQogIAogICAgLmRyb3Bkb3duLWZ1bGwtd2lkdGgtY29udGFpbmVyIHsKICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICAgIHBhZGRpbmc6IDEwcHggMCAyNHB4OwogICAgfQogIAogICAgLl80MDQtbm90LWZvdW5kIHsKICAgICAgZm9udC1zaXplOiA1MDBweDsKICAgICAgaW5zZXQ6IDAlOwogICAgfQogIAogICAgLnRlbXBsYXRlLXBhZ2VzLS0tcGhvZ3JhcGh5LXdyYXBwZXIgewogICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgfQogIAogICAgLmNoZWNrb3V0LWZvcm0gewogICAgICBtYXgtd2lkdGg6IDcwMHB4OwogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogIAogICAgLmltYWdlLWhvbWUtbGluay13cmFwcGVyIHsKICAgICAgbWF4LXdpZHRoOiAyNjBweDsKICAgIH0KICAKICAgIC5maWdtYS1maWxlLWltYWdlLXdyYXBwZXIgewogICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICB9CiAgCiAgICAuZmlnbWEtZmlsZS10ZXh0LXdyYXBwZXIgewogICAgICBwYWRkaW5nOiA0OHB4IDYwcHg7CiAgICB9CiAgCiAgICAuZ3JhZGllbnQgewogICAgICBtaW4taGVpZ2h0OiAzMDBweDsKICAgICAgYm90dG9tOiAwJTsKICAgIH0KICAKICAgIC5tYXgtdy00MTZweCB7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5zcGxpdC1jb250ZW50LmN0YS1yaWdodCB7CiAgICAgIG1pbi13aWR0aDogYXV0bzsKICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgbWFyZ2luOiA4MHB4IDYwcHggMDsKICAgIH0KICAKICAgIC5zcGxpdC1jb250ZW50LmN0YS1jYXJkLXYxLWltYWdlIHsKICAgICAgbWluLXdpZHRoOiBhdXRvOwogICAgICBtYXJnaW4tdG9wOiAwOwogICAgICBtYXJnaW4tYm90dG9tOiAtNDc2cHg7CiAgICB9CiAgCiAgICAuc3BsaXQtY29udGVudC5jdGEtbGVmdCB7CiAgICAgIG1pbi13aWR0aDogYXV0bzsKICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgbWFyZ2luOiA4MHB4IDYwcHggMDsKICAgICAgcGFkZGluZy1sZWZ0OiAwOwogICAgfQogIAogICAgLm1heC13LTU3MHB4Ll8xMDAtLS10YWJsZXQgewogICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICB9CiAgCiAgICAuaWNvbi1zb2NpYWwuc2l6ZS0yMnB4LmNvbG9yLW5ldXRyYWwtMTAwIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICB9CiAgCiAgICAuY2FyZC1mb290ZXItbGVmdCB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIG1pbi13aWR0aDogYXV0bzsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICBtYXgtaGVpZ2h0OiBub25lOwogICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgIH0KICAKICAgIC5jYXJkLWNvbnRlbnQgewogICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIH0KICAKICAgIC5jYXJkLWNvbnRlbnQuY2FyZC1mb290ZXItY29udGVudCB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICBwYWRkaW5nLXRvcDogODBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDgwcHg7CiAgICB9CiAgCiAgICAuaWNvbi13cmFwcGVyLm1nLWJvdHRvbS0xODlweCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEwMHB4OwogICAgfQogIAogICAgLmNhcmQtam9icyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICAgIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7CiAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgcGFkZGluZy10b3A6IDUwcHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OwogICAgfQogIAogICAgLnRpdGxlLWNhcmQtam9icyB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTZweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIH0KICAKICAgIC5tYXgtdy02NTJweCB7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5pbWFnZS1ibG9nLXBvc3QgewogICAgICBib3JkZXItcmFkaXVzOiA1M3B4OwogICAgfQogIAogICAgLmRpc3BsYXktNSB7CiAgICAgIGZvbnQtc2l6ZTogNjRweDsKICAgIH0KICAKICAgIC5jYXJkLWF1dGhvciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogIAogICAgLmNhcmQtcHJpY2luZyB7CiAgICAgIG1heC13aWR0aDogNDQwcHg7CiAgICB9CiAgCiAgICAudGl0bGUgewogICAgICBhbGlnbi1zZWxmOiBhdXRvOwogICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KICAKICAgIC50aXRsZS5tZy10b3AtMzlweC0tLWJvdHRvbS0zOXB4IHsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KICAKICAgIC5jb250ZW50LXdyYXBwZXItam9icyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDQycHg7CiAgICAgIHBhZGRpbmc6IDgwcHg7CiAgICB9CiAgCiAgICAubWctdG9wLTEwMHB4IHsKICAgICAgbWFyZ2luLXRvcDogODBweDsKICAgIH0KICAKICAgIC5jYXJkLWxvZ2luIHsKICAgICAgYm9yZGVyLXJhZGl1czogNDJweDsKICAgIH0KICAKICAgIC5sb2dpbi1mb3JtLWJsb2NrIHsKICAgICAgbWluLWhlaWdodDogMzE0cHg7CiAgICB9CiAgCiAgICAuYmctY2lyY2xlIHsKICAgICAgd2lkdGg6IDYyMHB4OwogICAgICBoZWlnaHQ6IDYyMHB4OwogICAgfQogIAogICAgLmJ1dHRvbi1oZWFkZXIgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogIAogICAgLm1heC13LTQ1OHB4IHsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgfQogIAogICAgLmljb24tbG9naW4gewogICAgICB3aWR0aDogODJweDsKICAgIH0KICAKICAgIC5pY29uLXZhbHVlcyB7CiAgICAgIHdpZHRoOiA5MHB4OwogICAgfQogIAogICAgLm1lbnUtd3JhcHBlci0tLW1haW4gewogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CiAgCiAgICAubWVudS13cmFwcGVyIHsKICAgICAgZmxleDogMCBhdXRvOwogICAgfQogIAogICAgLmZvb3Rlci1pbmZvIHsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIG1heC13aWR0aDogMzUwcHg7CiAgICB9CiAgCiAgICAuZ3JpZC1mb290ZXItLS1tYWluIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAudGV4dC1jZW50ZXItLS10YWJsZXQgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgCiAgICAuaW1hZ2UtYW5kLXRleHQtcmlnaHQtd3JhcHBlciB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICB9CiAgCiAgICAuaW1hZ2UtYW5kLXRleHQtbGVmdC13cmFwcGVyIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICB9CiAgCiAgICAuc3RhdHMtbnVtYmVyIHsKICAgICAgZm9udC1zaXplOiA0MnB4OwogICAgfQogIAogICAgLnN0b3J5LWNvbnRlbnQtLS1sZWZ0IHsKICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4OwogICAgfQogIAogICAgLm1nLXRvcC0zMnB4LS0tdGFibGV0IHsKICAgICAgbWFyZ2luLXRvcDogMzJweDsKICAgIH0KICAKICAgIC5uZXdzbGV0dGVyLXNpZGViYXItZm9ybS1ibG9jayB7CiAgICAgIG1pbi1oZWlnaHQ6IDE1NXB4OwogICAgfQogIAogICAgLnJpY2gtdGV4dC12MiBoMiB7CiAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIH0KICAKICAgIC5hZGQtdG8tY2FydCB7CiAgICAgIG1pbi1oZWlnaHQ6IDE1NnB4OwogICAgfQogIAogICAgLnNsaWRlLXRlc3RpbW9uaWFsLWltYWdlLS0tbmFtZS13cmFwcGVyIHsKICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7CiAgICAgIG1hcmdpbi1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5zaWduLXVwLWZvcm0tYmxvY2sgewogICAgICBtaW4taGVpZ2h0OiA0NTRweDsKICAgIH0KICAKICAgIC5jYXJkLXNpZ24tdXAgewogICAgICBib3JkZXItcmFkaXVzOiA0MnB4OwogICAgfQogIAogICAgLnNpZ24tdXAtd3JhcHBlciB7CiAgICAgIGdyaWQtcm93LWdhcDogODBweDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgbWF4LXdpZHRoOiA3MDBweDsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAKICAgIC5tZy10b3AtMHB4IHsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KICAKICAgIC5tb3JlLXRlbXBsYXRlcy1iYWRnZS13cmFwcGVyLWVkaXRlZCB7CiAgICAgIHJpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLmJyaXgtYmFkZ2VzLXdyYXBwZXIgewogICAgICByaWdodDogMzVweDsKICAgIH0KICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHsKICAgIGJvZHkgewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICB9CiAgCiAgICBoMSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIGZvbnQtc2l6ZTogMzhweDsKICAgIH0KICAKICAgIGgyIHsKICAgICAgZm9udC1zaXplOiAyNnB4OwogICAgfQogIAogICAgaDUgewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICB9CiAgCiAgICBoNiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAKICAgIGJsb2NrcXVvdGUgewogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7CiAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucyB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLnN0eWxlLS0tc3R5bGVndWlkZS13cmFwcGVyIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmhlcm8tcGxheS1idXR0b24ubWF4LXctNTQwcHggewogICAgICBncmlkLWNvbHVtbi1nYXA6IDI4cHg7CiAgICAgIGdyaWQtcm93LWdhcDogNDBweDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IC44ZnI7CiAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMuYmxvZy1zaWRlYmFyIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiA4MnB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5nYXAtY29sdW1uLTgwcHggewogICAgICBncmlkLXJvdy1nYXA6IDQ4cHg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMuZ2FsbGVyeS12NiB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMThweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxOHB4OwogICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICBncmlkLWF1dG8tY29sdW1uczogMWZyOwogICAgICBkaXNwbGF5OiBncmlkOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLnRlbXBsYXRlLXBhZ2Utc2lkZWJhciB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmNoYW5nZWxvZy1pdGVtLmZpcnN0IHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAzMHB4OwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLnByb2R1Y3QtcGFnZSB7CiAgICAgIGdyaWQtcm93LWdhcDogNjBweDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5jaGVja291dC1wYWdlIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMuZm9ybS1mbGV4LXZlcnRpY2FsIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiAyMHB4OwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmJsb2ctcG9zdC1zaWRlYmFyLCAuZ3JpZC0yLWNvbHVtbnMuY29udGFjdC1mb3JtIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMudGl0bGUtYW5kLWJ1dHRvbnMgewogICAgICBncmlkLXJvdy1nYXA6IDMycHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmxvZ28tc3RyaXAtLS1tYWluLWdyaWQgewogICAgICBncmlkLXJvdy1nYXA6IDUwcHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmJsb2ctZ3JpZCB7CiAgICAgIGdyaWQtcm93LWdhcDogNjBweDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5zbGlkZXItdGVzdGltb25pYWwtZ3JpZCB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmNhcmVlci1zaWRlYmFyIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiA3MHB4OwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLmNvbWluZy1zb29uLWdyaWQgewogICAgICBncmlkLXJvdy1nYXA6IDEzMHB4OwogICAgfQogIAogICAgLmNhcmQgewogICAgICBib3JkZXItcmFkaXVzOiA1M3B4OwogICAgfQogIAogICAgLmNhcmQuZm9ybSB7CiAgICAgIHBhZGRpbmc6IDU2cHggMzJweDsKICAgIH0KICAKICAgIC5jYXJkLmZvcm0uY29udGFjdC1mb3JtLXYxIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgbWluLWhlaWdodDogNjY4cHg7CiAgICAgIHBhZGRpbmc6IDYwcHggMzRweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyIHsKICAgICAgcGFkZGluZzogNDJweCAzMHB4OwogICAgfQogIAogICAgLmNhcmQuY29udGVudC1jZW50ZXIuc3RhdC12MyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICAgIHBhZGRpbmc6IDYwcHggNDBweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyLnN0YXQtdjMuYmctY29sb3ItZ3JhZGllbnRzLCAuY2FyZC5jb250ZW50LWNlbnRlci50ZWFtLXYxIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyLnRlYW0tdjEubGluay1jYXJkIHsKICAgICAgcGFkZGluZy1sZWZ0OiAzNHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAzNHB4OwogICAgfQogIAogICAgLmNhcmQuY29udGVudC1jZW50ZXIuc2xpZGUtdGVzdGltb25pYWwgewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgcGFkZGluZzogNjBweCAzNHB4OwogICAgfQogIAogICAgLmNhcmQuY29udGVudC1jZW50ZXIuc3RhdC12MiB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICB9CiAgCiAgICAuY2FyZC5zdGlja3ktdG9wLnRvcC0yNHB4LnN0YXRpYy1tYmwgewogICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgfQogIAogICAgLmNhcmQuY2hlY2tvdXQtYmxvY2sgewogICAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDM0cHg7CiAgICB9CiAgCiAgICAuY2FyZC5idXktbm93IHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgIH0KICAKICAgIC5jYXJkLmZlYXR1cmVzIHsKICAgICAgYm9yZGVyLXJhZGl1czogMzZweDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgcGFkZGluZy1sZWZ0OiAzNHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAzNHB4OwogICAgfQogIAogICAgLmNhcmQuZmVhdHVyZXMuZGlyZWN0aW9uLXJldmVyc2UgewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDM0cHg7CiAgICB9CiAgCiAgICAuY2FyZC5jYXJkLXZhbHVlcy1sZWZ0IHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgICBwYWRkaW5nLXRvcDogNDhweDsKICAgICAgcGFkZGluZy1ib3R0b206IDQ4cHg7CiAgICB9CiAgCiAgICAuY2FyZC5jYXJkLXZhbHVlcy1yaWdodCB7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgICBoZWlnaHQ6IGF1dG87CiAgICB9CiAgCiAgICAuY2FyZC5jbGllbnRzIHsKICAgICAgYm9yZGVyLXJhZGl1czogMzJweDsKICAgICAgcGFkZGluZzogNDVweCAzMHB4OwogICAgfQogIAogICAgLnN0eWxlLS0tY29sb3ItYmxvY2sgewogICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxOHB4OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMThweDsKICAgIH0KICAKICAgIC5ncmlkLTQtY29sdW1ucy5jYXJkcy12YWx1ZXMgewogICAgICBncmlkLWNvbHVtbi1nYXA6IDI0cHg7CiAgICAgIGdyaWQtcm93LWdhcDogMjRweDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAuZ3JpZC00LWNvbHVtbnMucHJpY2luZyB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTVweDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyZnIgMWZyOwogICAgfQogIAogICAgLmNvbG9yLW5ldXRyYWwtMTAwLmRpc3BsYXktMSB7CiAgICAgIGZvbnQtc2l6ZTogNDZweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLWJsb2NrLXN1Yi1oZWFkaW5nLmJvcmRlciB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAyNHB4OwogICAgfQogIAogICAgLmRpdmlkZXIuXzcwcHggewogICAgICBtYXJnaW4tdG9wOiA2MHB4OwogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogIAogICAgLnN0eWxlLS0tdHlwb2dyYXBoeS1ibG9jay1ncmlkIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiAyOHB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5zdHlsZS0tLWNvbnRlbnQtYmxvY2sgewogICAgICBtYXJnaW4tYm90dG9tOiA2NHB4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS0xNnB4LmtlZXAgewogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS0yNHB4LmtlZXAgewogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS0zMnB4IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjhweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tMzJweC5rZWVwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tNDhweCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICB9CiAgCiAgICAubWctYm90dG9tLTQ4cHguaWNvbi1wcmljaW5nIHsKICAgICAgd2lkdGg6IDcycHg7CiAgICB9CiAgCiAgICAubWctYm90dG9tLTU2cHggewogICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS02NHB4IHsKICAgICAgbWFyZ2luLWJvdHRvbTogNTNweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tODBweCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDcwcHg7CiAgICB9CiAgCiAgICAubWctdG9wLTI0cHggewogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgfQogIAogICAgLm1nLXRvcC0zMnB4IHsKICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgIH0KICAKICAgIC5tZy10b3AtNDhweCB7CiAgICAgIG1hcmdpbi10b3A6IDQwcHg7CiAgICB9CiAgCiAgICAubWctdG9wLTgwcHggewogICAgICBtYXJnaW4tdG9wOiA2NHB4OwogICAgfQogIAogICAgLnRleHQtMjAwIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQogIAogICAgLnRleHQtMjAwLmxpc3QgewogICAgICBsaW5lLWhlaWdodDogMjJweDsKICAgIH0KICAKICAgIC5kaXNwbGF5LTEgewogICAgICBmb250LXNpemU6IDQwcHg7CiAgICB9CiAgCiAgICAuZ3JpZC0xLWNvbHVtbi5nYXAtY29sdW1uLTI0cHggewogICAgICBncmlkLXJvdy1nYXA6IDIwcHg7CiAgICB9CiAgCiAgICAuZ3JpZC0xLWNvbHVtbi5wYXNzd29yZC1ncmlkIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogICAgfQogIAogICAgLmdhcC1yb3ctNDhweCB7CiAgICAgIGdyaWQtcm93LWdhcDogNDBweDsKICAgIH0KICAKICAgIC5nYXAtcm93LTgwcHggewogICAgICBncmlkLXJvdy1nYXA6IDcwcHg7CiAgICB9CiAgCiAgICAuZGlzcGxheS0yIHsKICAgICAgZm9udC1zaXplOiAzNnB4OwogICAgfQogIAogICAgLmRpc3BsYXktMi5tZy1ib3R0b20tOHB4LnNpemUtMjBweCB7CiAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIH0KICAKICAgIC5kaXNwbGF5LTIubWF4LXctNDAwcHgubWctYm90dG9tLTE2cHggewogICAgICBmb250LXNpemU6IDI4cHg7CiAgICB9CiAgCiAgICAuZGlzcGxheS0yLm1nLXRvcC0zMnB4IHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogIAogICAgLmRpc3BsYXktMyB7CiAgICAgIGZvbnQtc2l6ZTogMjZweDsKICAgIH0KICAKICAgIC5kaXNwbGF5LTQgewogICAgICBmb250LXNpemU6IDIwcHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1zdHlsZS1ncmlkLXdyYXBwZXIgewogICAgICBncmlkLXJvdy1nYXA6IDEyMHB4OwogICAgfQogIAogICAgLnBhcmFncmFwaC1sYXJnZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgIH0KICAKICAgIC50ZXh0LTQwMCB7CiAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIH0KICAKICAgIC50ZXh0LTMwMCB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgIH0KICAKICAgIC50ZXh0LTEwMCB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucyB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zLmdhcC1yb3ctODBweC5fMi1jb2wtbWJsIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zLnN0eWxlLS0tYnV0dG9ucy1ncmlkLCAuZ3JpZC0zLWNvbHVtbnMuc3R5bGUtLS1idXR0b25zLWdyaWQuYXBwcy1idXR0b25zIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvOwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zLl8zLWNvbC10YWJsZXQgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucy5tZW1iZXJzLXYyIHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAxNnB4OwogICAgICBncmlkLXJvdy1nYXA6IDE2cHg7CiAgICAgIGZsZXgtZmxvdzogd3JhcDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyIDFmcjsKICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaDsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucy5nYXAtcm93LTgwcHggewogICAgICBncmlkLXJvdy1nYXA6IDQwcHg7CiAgICB9CiAgCiAgICAuZ3JpZC0zLWNvbHVtbnMuY29udGVudC1jb250YWN0IHsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucy5zZWN0aW9uLWJsb2ctZ3JpZCB7CiAgICAgIGdyaWQtcm93LWdhcDogNjBweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLXNoYWRvdy1jYXJkIHsKICAgICAgYm9yZGVyLXJhZGl1czogMThweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLWhlYWRpbmcgewogICAgICBwYWRkaW5nOiAxMDRweCAyNHB4OwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5fNTAwcHgtLS1tYmwgewogICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5fNDAwcHgtLS1tYmwgewogICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5fNjAwcHgtLS1tYmwgewogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgfQogIAogICAgLmlubmVyLWNvbnRhaW5lci5fNjBweC0tLW1ibCB7CiAgICAgIG1heC13aWR0aDogNjBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzEwMC0tLW1ibCB7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzMwMHB4LS0tbWJsIHsKICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzgwcHgtLS1tYmwgewogICAgICBtYXgtd2lkdGg6IDgwcHg7CiAgICB9CiAgCiAgICAuaW5uZXItY29udGFpbmVyLl8xMTZweC0tLW1ibCB7CiAgICAgIG1heC13aWR0aDogMTE2cHg7CiAgICB9CiAgCiAgICAuaW5uZXItY29udGFpbmVyLl8zNTBweC0tLW1ibCB7CiAgICAgIG1heC13aWR0aDogMzUwcHg7CiAgICB9CiAgCiAgICAuaW5uZXItY29udGFpbmVyLl8zOTBweC0tLW1ibCB7CiAgICAgIG1heC13aWR0aDogMzkwcHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1jb250ZW50LWhlYWRpbmcgewogICAgICBib3JkZXItcmFkaXVzOiAxOHB4OwogICAgICBtYXJnaW4tYm90dG9tOiAzNnB4OwogICAgICBwYWRkaW5nLXRvcDogMjRweDsKICAgICAgcGFkZGluZy1ib3R0b206IDI0cHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1oZWFkaW5nLWljb24td3JhcHBlciB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIG1heC13aWR0aDogNThweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLWNvbnRlbnQtd3JhcHBlciB7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5ib3JkZXItcmFkaXVzLTY0cHggewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgfQogIAogICAgLnN0eWxlLS0tY2FyZC13cmFwcGVyIHsKICAgICAgYm9yZGVyLXJhZGl1czogMThweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLWJnLW91dGxpbmUsIC5zdHlsZS1idXR0b25zLWRhcmsgewogICAgICBwYWRkaW5nOiAzNHB4IDI0cHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkgewogICAgICBwYWRkaW5nOiAyMHB4IDMycHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkuc21hbGwgewogICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkubGFyZ2UgewogICAgICBwYWRkaW5nLXRvcDogMjRweDsKICAgICAgcGFkZGluZy1ib3R0b206IDI0cHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkud2hpdGUucGFnaW5hdGlvbi1idG4gewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkuaW5zaWRlLWlucHV0LmRlZmF1bHQgewogICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkuYnV0dG9uLXJvdyB7CiAgICAgIG1hcmdpbi1yaWdodDogMTZweDsKICAgIH0KICAKICAgIC5idG4tcHJpbWFyeS5kb3dubG9hZC1hcHAgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkucGFnaW5hdGlvbi1idG4tLS1wcmV2aW91cyB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIH0KICAKICAgIC5idG4tc2Vjb25kYXJ5IHsKICAgICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OwogICAgfQogIAogICAgLmJ0bi1zZWNvbmRhcnkuc21hbGwgewogICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7CiAgICB9CiAgCiAgICAuYnRuLXNlY29uZGFyeS5sYXJnZSB7CiAgICAgIHBhZGRpbmctdG9wOiAyNHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMjRweDsKICAgIH0KICAKICAgIC5iYWRnZS1wcmltYXJ5IHsKICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4OwogICAgfQogIAogICAgLmJhZGdlLXByaW1hcnkuc21hbGwgewogICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7CiAgICB9CiAgCiAgICAuYmFkZ2Utc2Vjb25kYXJ5IHsKICAgICAgcGFkZGluZy10b3A6IDE2cHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4OwogICAgfQogIAogICAgLmJhZGdlLXNlY29uZGFyeS5zbWFsbCB7CiAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDsKICAgIH0KICAKICAgIC5pbnB1dCB7CiAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAKICAgIC5pbnB1dC5sYXJnZS5idXR0b24taW5zaWRlIHsKICAgICAgbWluLWhlaWdodDogNjhweDsKICAgIH0KICAKICAgIC50ZXh0LWFyZWEgewogICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICBtaW4taGVpZ2h0OiAxMzVweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQogIAogICAgLnN0eWxlLS0tYXZhdGFycy1ncmlkIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIDE4MHB4KTsKICAgIH0KICAKICAgIC5hdmF0YXItY2lyY2xlLl8wMiB7CiAgICAgIHdpZHRoOiA0MHB4OwogICAgICBtYXgtd2lkdGg6IDQwcHg7CiAgICAgIGhlaWdodDogNDBweDsKICAgICAgbWF4LWhlaWdodDogNDBweDsKICAgIH0KICAKICAgIC5hdmF0YXItY2lyY2xlLl8wMyB7CiAgICAgIHdpZHRoOiA1NnB4OwogICAgICBtYXgtd2lkdGg6IDU2cHg7CiAgICAgIGhlaWdodDogNTZweDsKICAgICAgbWF4LWhlaWdodDogNTZweDsKICAgIH0KICAKICAgIC5hdmF0YXItY2lyY2xlLl8wNCB7CiAgICAgIHdpZHRoOiA2NHB4OwogICAgICBtYXgtd2lkdGg6IDY0cHg7CiAgICAgIGhlaWdodDogNjRweDsKICAgICAgbWF4LWhlaWdodDogNjRweDsKICAgIH0KICAKICAgIC5hdmF0YXItY2lyY2xlLl8wNSB7CiAgICAgIHdpZHRoOiA4MHB4OwogICAgICBtYXgtd2lkdGg6IDgwcHg7CiAgICAgIGhlaWdodDogODBweDsKICAgICAgbWF4LWhlaWdodDogODBweDsKICAgIH0KICAKICAgIC5hdmF0YXItY2lyY2xlLl8wNiB7CiAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgbWF4LXdpZHRoOiAxMjBweDsKICAgICAgaGVpZ2h0OiAxMjBweDsKICAgICAgbWF4LWhlaWdodDogMTIwcHg7CiAgICB9CiAgCiAgICAuYXZhdGFyLWNpcmNsZS5fMDYubWctYm90dG9tLTQwcHggewogICAgICB3aWR0aDogMTUwcHg7CiAgICAgIG1heC13aWR0aDogMTUwcHg7CiAgICAgIGhlaWdodDogMTUwcHg7CiAgICAgIG1heC1oZWlnaHQ6IDE1MHB4OwogICAgfQogIAogICAgLmF2YXRhci1jaXJjbGUuXzA3IHsKICAgICAgd2lkdGg6IDE0MHB4OwogICAgICBtYXgtd2lkdGg6IDE0MHB4OwogICAgICBoZWlnaHQ6IDE0MHB4OwogICAgICBtYXgtaGVpZ2h0OiAxNDBweDsKICAgIH0KICAKICAgIC5hdmF0YXItY2lyY2xlLl8wOCB7CiAgICAgIHdpZHRoOiAyMjBweDsKICAgICAgbWF4LXdpZHRoOiAyMjBweDsKICAgICAgaGVpZ2h0OiAyMjBweDsKICAgICAgbWF4LWhlaWdodDogMjIwcHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1pY29ucy1ncmlkIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIDU2cHgpOwogICAgfQogIAogICAgLnNxdWFyZS1pY29uIHsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgbWF4LXdpZHRoOiA1NnB4OwogICAgfQogIAogICAgLnNvY2lhbC1pY29uLXNxdWFyZS5iZy10cmFuc3BhcmVudCB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgIH0KICAKICAgIC5saW5lLXJvdW5kZWQtaWNvbi5zdWNjZXNzLW1lc3NhZ2UtY2hlY2sgewogICAgICBmb250LXNpemU6IDIxcHg7CiAgICB9CiAgCiAgICAubGluZS1yb3VuZGVkLWljb24uc3VjY2Vzcy1tZXNzYWdlLWNoZWNrLmxhcmdlIHsKICAgICAgZm9udC1zaXplOiA2OHB4OwogICAgfQogIAogICAgLmxpbmUtcm91bmRlZC1pY29uLmFjY29yZGlvbi1pY29uIHsKICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgIH0KICAKICAgIC5zdHlsZS0tLWxpbmUtaWNvbnMtZ3JpZCB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCAxOHB4KTsKICAgIH0KICAKICAgIC5yaWNoLXRleHQgaDIgewogICAgICBtYXJnaW4tdG9wOiAxOHB4OwogICAgfQogIAogICAgLnJpY2gtdGV4dCBoMyB7CiAgICAgIG1hcmdpbi10b3A6IDI2cHg7CiAgICB9CiAgCiAgICAucmljaC10ZXh0IGZpZ3VyZSB7CiAgICAgIG1hcmdpbi10b3A6IDQwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICB9CiAgCiAgICAucmljaC10ZXh0IHVsLCAucmljaC10ZXh0IG9sIHsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMjZweDsKICAgIH0KICAKICAgIC5yaWNoLXRleHQgaDYsIC5yaWNoLXRleHQgaDUsIC5yaWNoLXRleHQgaDQgewogICAgICBtYXJnaW4tdG9wOiAyNnB4OwogICAgfQogIAogICAgLnJpY2gtdGV4dCBpbWcgewogICAgICBib3JkZXItcmFkaXVzOiAyNnB4OwogICAgfQogIAogICAgLnJpY2gtdGV4dCBibG9ja3F1b3RlIHsKICAgICAgbWFyZ2luLXRvcDogNDBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgIH0KICAKICAgIC5idXR0b25zLXJvdyB7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KICAKICAgIC5zdHlsZS0tLWxvZ28tc2lkZWJhciB7CiAgICAgIG1heC13aWR0aDogMjEwcHg7CiAgICB9CiAgCiAgICAuZWxlbWVudHMtLS1wYWdlLWhlcm8gewogICAgICBwYWRkaW5nLXRvcDogNjRweDsKICAgICAgcGFkZGluZy1ib3R0b206IDY0cHg7CiAgICB9CiAgCiAgICAuc2VjdGlvbiB7CiAgICAgIHBhZGRpbmctdG9wOiA3MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogNzBweDsKICAgIH0KICAKICAgIC5zZWN0aW9uLnNtYWxsIHsKICAgICAgcGFkZGluZy10b3A6IDcycHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA3MnB4OwogICAgfQogIAogICAgLnNlY3Rpb24uaGVybyB7CiAgICAgIHBhZGRpbmctdG9wOiA2MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7CiAgICB9CiAgCiAgICAuc2VjdGlvbi5oZXJvLmV4dHJhLXNob3J0IHsKICAgICAgcGFkZGluZy10b3A6IDYwcHg7CiAgICB9CiAgCiAgICAuc2VjdGlvbi5oZXJvLnYxIHsKICAgICAgcGFkZGluZy10b3A6IDYwcHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA2OXB4OwogICAgfQogIAogICAgLnNlY3Rpb24uaGVyby52MiB7CiAgICAgIHBhZGRpbmctdG9wOiA1MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogNjlweDsKICAgIH0KICAKICAgIC5zZWN0aW9uLmhlcm8udjMgewogICAgICBwYWRkaW5nLXRvcDogNjBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDY5cHg7CiAgICB9CiAgCiAgICAuc2VjdGlvbi50ZW1wbGF0ZS1wYWdlcy1oZXJvIHsKICAgICAgcGFkZGluZy10b3A6IDYwcHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OwogICAgfQogIAogICAgLnNlY3Rpb24uaGVyby1wYWdlIHsKICAgICAgcGFkZGluZy10b3A6IDYwcHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA3MHB4OwogICAgfQogIAogICAgLnRvcC1iYXItd3JhcHBlciB7CiAgICAgIHBhZGRpbmctbGVmdDogMzZweDsKICAgICAgcGFkZGluZy1yaWdodDogMzZweDsKICAgIH0KICAKICAgIC50b3AtYmFyLXBhZGRpbmcgewogICAgICBwYWRkaW5nLXRvcDogMjZweDsKICAgICAgcGFkZGluZy1ib3R0b206IDI2cHg7CiAgICB9CiAgCiAgICAudG9wLWJhci1wYWRkaW5nLnNtYWxsLXBhZGRpbmcgewogICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICB9CiAgCiAgICAudG9wLWJhci1mbGV4IHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIH0KICAKICAgIC5lbGVtZW50cy0tLWVsZW1lbnQtdGl0bGUgewogICAgICBtYXJnaW4tdG9wOiA0OHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDsKICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLmhlYWRpbmctaDEtc2l6ZSB7CiAgICAgIGZvbnQtc2l6ZTogMzhweDsKICAgIH0KICAKICAgIC5oZWFkaW5nLWgxLXNpemUudGV4dC1jb2xvci1uZXV0cmFsLTMwMCB7CiAgICAgIGZvbnQtc2l6ZTogMzZweDsKICAgIH0KICAKICAgIC5oZWFkaW5nLWgyLXNpemUgewogICAgICBmb250LXNpemU6IDI2cHg7CiAgICB9CiAgCiAgICAuaGVhZGluZy1oMy1zaXplLm1nLWJvdHRvbS0wcHggewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICB9CiAgCiAgICAuaGVhZGluZy1oNS1zaXplIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQogIAogICAgLmhlYWRpbmctaDYtc2l6ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAKICAgIC5oZWFkZXItbmF2LWxpbmsubG9naW4tbGluayB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIH0KICAKICAgIC5kcm9wZG93bi13cmFwcGVyIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KICAKICAgIC5kcm9wZG93bi13cmFwcGVyLnN0YXRpYyB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB9CiAgCiAgICAuZHJvcGRvd24tdG9nZ2xlLnctLW9wZW4gewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgfQogIAogICAgLmhlYWRlci1sb2dvIHsKICAgICAgbWF4LXdpZHRoOiA5MCU7CiAgICB9CiAgCiAgICAuYnRuLWNpcmNsZS1wcmltYXJ5IHsKICAgICAgd2lkdGg6IDU2cHg7CiAgICAgIG1pbi13aWR0aDogNTZweDsKICAgICAgaGVpZ2h0OiA1NnB4OwogICAgICBtaW4taGVpZ2h0OiA1NnB4OwogICAgICBmb250LXNpemU6IDIycHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLmJ0bi1jaXJjbGUtcHJpbWFyeS5sYXJnZSB7CiAgICAgIHdpZHRoOiA3MnB4OwogICAgICBtaW4td2lkdGg6IDcycHg7CiAgICAgIGhlaWdodDogNzJweDsKICAgICAgbWluLWhlaWdodDogNzJweDsKICAgICAgZm9udC1zaXplOiAyNnB4OwogICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIH0KICAKICAgIC5idG4tY2lyY2xlLXNlY29uZGFyeSB7CiAgICAgIHdpZHRoOiA1NnB4OwogICAgICBtaW4td2lkdGg6IDU2cHg7CiAgICAgIGhlaWdodDogNTZweDsKICAgICAgbWluLWhlaWdodDogNTZweDsKICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgIH0KICAKICAgIC5idG4tY2lyY2xlLXNlY29uZGFyeS5sYXJnZSB7CiAgICAgIHdpZHRoOiA3MnB4OwogICAgICBtaW4td2lkdGg6IDcycHg7CiAgICAgIGhlaWdodDogNzJweDsKICAgICAgbWluLWhlaWdodDogNzJweDsKICAgICAgZm9udC1zaXplOiAyNnB4OwogICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIH0KICAKICAgIC5idG4tY2lyY2xlLXNlY29uZGFyeS5zbGlkZXItYXJyb3cubGVmdC0tLWNlbnRlci1jZW50ZXIgewogICAgICByaWdodDogNzBweDsKICAgIH0KICAKICAgIC5idG4tY2lyY2xlLXNlY29uZGFyeS5zbGlkZXItYXJyb3cucmlnaHQtLS1jZW50ZXItY2VudGVyIHsKICAgICAgbGVmdDogNzBweDsKICAgIH0KICAKICAgIC51dGlsaXR5LXBhZ2Utd3JhcCB7CiAgICAgIG1pbi1oZWlnaHQ6IDYwdmg7CiAgICAgIHBhZGRpbmctdG9wOiA3MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogODBweDsKICAgIH0KICAKICAgIC51dGlsaXR5LXBhZ2UtY29udGVudC5wYXNzd29yZC1jb250ZW50IHsKICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgIH0KICAKICAgIC5mbGV4LWhvcml6b250YWwuc3RvcnktY29udGVudCB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB9CiAgCiAgICAuZm9vdGVyLXdyYXBwZXIgewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgICBtYXJnaW4tdG9wOiA4MHB4OwogICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OwogICAgICBwYWRkaW5nOiA2M3B4IDQ1cHggNDVweDsKICAgIH0KICAKICAgIC5mb290ZXItbG9nby13cmFwcGVyIHsKICAgICAgbWF4LXdpZHRoOiAxNjBweDsKICAgIH0KICAKICAgIC5mb290ZXItbG9nby13cmFwcGVyLm1nLWJvdHRvbS0zMnB4IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjhweDsKICAgIH0KICAKICAgIC5mb290ZXItYm90dG9tIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgcGFkZGluZy10b3A6IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgfQogIAogICAgLmZvb3Rlci1ib3R0b20udGV4dC1yaWdodC50ZXh0LWNlbnRlci1tYiB7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KICAKICAgIC5mb290ZXItYm90dG9tLnRleHQtcmlnaHQudGV4dC1jZW50ZXItbWIucGQtNjBweCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICAgIHBhZGRpbmc6IDQ1cHggMzRweDsKICAgIH0KICAKICAgIC5mb290ZXItbWlkZGxlIHsKICAgICAgcGFkZGluZy10b3A6IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAwOwogICAgfQogIAogICAgLmdyaWQtZm9vdGVyLWxvZ28tLS1wYXJhZ3JhcGggewogICAgICBtYXgtd2lkdGg6IDQzNHB4OwogICAgfQogIAogICAgLnRleHQtY2VudGVyLm1nLWJvdHRvbS01NnB4IHsKICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIH0KICAKICAgIC50ZXh0LWNlbnRlci5tZy1ib3R0b20tNTZweC5jZW50ZXItLS1rZWVwIHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQogIAogICAgLnRleHQtY2VudGVyLnBkLTMxcHgtLS1tZy10b3AtNDdweCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICAgIHBhZGRpbmctbGVmdDogMzRweDsKICAgICAgcGFkZGluZy1yaWdodDogMzRweDsKICAgIH0KICAKICAgIC5zdGlja3ktdG9wLl8yNHB4LXRvcC5zdGlja3ktbWJsIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgcG9zaXRpb246IHN0YXRpYzsKICAgIH0KICAKICAgIC5zdGlja3ktdG9wLl8yNHB4LXRvcC5zdGlja3ktbWJsLmFwcGx5LXJvbGUgewogICAgICBwYWRkaW5nOiA1MHB4IDM0cHg7CiAgICB9CiAgCiAgICAuc3RpY2t5LXRvcC5fMjRweC10b3AubmV3c2xldHRlci1zaWRlYmFyIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgcGFkZGluZzogNTJweCAzNHB4OwogICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgfQogIAogICAgLnN0aWNreS10b3AuXzI0cHgtdG9wLmJsb2ctc2lkZWJhci1sZWZ0IHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgcGFkZGluZzogNjBweCAzNHB4OwogICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgfQogIAogICAgLmhlcm8tY2FyZC1iZy1pbWFnZSB7CiAgICAgIHBhZGRpbmctdG9wOiAxMTZweDsKICAgICAgcGFkZGluZy1ib3R0b206IDExNnB4OwogICAgfQogIAogICAgLmhlcm8tY2FyZC1iZy1pbWFnZS5oZXJvLXYxNCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICAgIHBhZGRpbmc6IDYwcHggMzRweCAxNjVweDsKICAgIH0KICAKICAgIC5jdGEtY2FyZCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5sb2dvLXN0cmlwLWltYWdlIHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgcGFkZGluZzogNTNweCAzNHB4OwogICAgfQogIAogICAgLnNsaWRlci13cmFwcGVyLmFycm93cy1ib3R0b20gewogICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7CiAgICB9CiAgCiAgICAuc2xpZGVyLXdyYXBwZXIuYXJyb3dzLWJvdHRvbS52MiB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA5MHB4OwogICAgfQogIAogICAgLmFjY29yZGlvbi1pdGVtLXdyYXBwZXIgewogICAgICBwYWRkaW5nOiA0MHB4IDI0cHg7CiAgICB9CiAgCiAgICAuYWNjb3JkaW9uLWl0ZW0td3JhcHBlci5zcGFjZS1iZXR3ZWVuIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjZweDsKICAgICAgcGFkZGluZy1sZWZ0OiAzNHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAzNHB4OwogICAgfQogIAogICAgLmFjY29yZGlvbi1jb250ZW50LXdyYXBwZXIgewogICAgICBtYXJnaW4tdG9wOiAxNXB4OwogICAgICBtYXJnaW4tbGVmdDogMDsKICAgIH0KICAKICAgIC5hY2NvcmRpb24taWNvbi13cmFwcGVyIHsKICAgICAgd2lkdGg6IDUzcHg7CiAgICAgIG1pbi13aWR0aDogNTNweDsKICAgICAgaGVpZ2h0OiA1M3B4OwogICAgICBtaW4taGVpZ2h0OiA1M3B4OwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZCB7CiAgICAgIHBhZGRpbmc6IDMycHggMjRweCA0MHB4OwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC5mZWF0dXJlcy1jb250ZW50LWxlZnQgewogICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7CiAgICB9CiAgCiAgICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLnRlYW0tbWVtYmVyLXBhZ2UgewogICAgICBwYWRkaW5nOiA1NnB4IDM0cHg7CiAgICB9CiAgCiAgICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLmxhcmdlIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgcGFkZGluZzogNzBweCAzNHB4IDgzcHg7CiAgICB9CiAgCiAgICAucGQtLS1jb250ZW50LWluc2lkZS1jYXJkLmxhcmdlLnRlbXBsYXRlLXBhZ2VzIHsKICAgICAgcGFkZGluZy1sZWZ0OiAzNHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAzNHB4OwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC5zZWFyY2gtcmVzdWx0LmxpbmstY29udGVudCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM4cHg7CiAgICAgIHBhZGRpbmctbGVmdDogMzRweDsKICAgICAgcGFkZGluZy1yaWdodDogMzRweDsKICAgIH0KICAKICAgIC5pbWFnZS5ib3JkZXItcmFkaXVzLTY0cHggewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgfQogIAogICAgLmltYWdlLXdyYXBwZXItZmVhdHVyZXMgewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgfQogIAogICAgLnByaWNpbmctY29udGVudC13cmFwcGVyIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjNweDsKICAgIH0KICAKICAgIC5wcmljaW5nLWNvbnRlbnQtd3JhcHBlci5tZy10b3AtNDhweCwgLnByaWNpbmctY29udGVudC13cmFwcGVyLm1nLXRvcC0yNHB4IHsKICAgICAgcGFkZGluZy10b3A6IDMycHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiAzMnB4OwogICAgfQogIAogICAgLmJsb2ctY2FyZC10aXRsZSB7CiAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CiAgCiAgICAuaW1hZ2Utd3JhcHBlci5vdmVyZmxvdy1oaWRkZW4uYm9yZGVyLXJhZGl1cy02NHB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogMzJweDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLmltYWdlLW1lbWJlcnMuYm9yZGVyLXJhZGl1cy0zMnB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLmNhcmQtZm9vdGVyLWltYWdlIHsKICAgICAgbWluLXdpZHRoOiBhdXRvOwogICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi10b3A6IC01cHg7CiAgICAgIG1hcmdpbi1ib3R0b206IC0xMDMlOwogICAgfQogIAogICAgLmltYWdlLXdyYXBwZXIuYXZhdGFyLWNpcmNsZS5jYXJkLWF1dGhvci1hdmF0YXIgewogICAgICBtYXgtd2lkdGg6IDEzNnB4OwogICAgfQogIAogICAgLmRyb3Bkb3duLWZ1bGwtd2lkdGgtY29udGFpbmVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDA7CiAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICB9CiAgCiAgICAuXzQwNC1ub3QtZm91bmQgewogICAgICBmb250LXNpemU6IDQ4dnc7CiAgICB9CiAgCiAgICAuY2hlY2tvdXQtZm9ybSB7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICB9CiAgCiAgICAuaW1hZ2UtaG9tZS1saW5rLXdyYXBwZXIgewogICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICBtYXgtd2lkdGg6IDIwOXB4OwogICAgICBtYXJnaW4tbGVmdDogMTBweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogICAgfQogIAogICAgLmZpZ21hLWZpbGUtdGV4dC13cmFwcGVyIHsKICAgICAgcGFkZGluZy1sZWZ0OiA0OHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiA0OHB4OwogICAgfQogIAogICAgLmJhZGdlLWhvbWUgewogICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIH0KICAKICAgIC5ob21lLXN1cnByaXNlcy1jYXJkIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgIH0KICAKICAgIC5jYXJkLWhvbWUtcGFnZXMtd3JhcHBlciB7CiAgICAgIHBhZGRpbmctdG9wOiA0MHB4OwogICAgfQogIAogICAgLmN0YS1zcXVhcmUtbG9nbyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7CiAgICAgIG1heC13aWR0aDogNjZweDsKICAgIH0KICAKICAgIC5zcGFjZXIuXzEwMHB4LWhlaWdodCB7CiAgICAgIGhlaWdodDogODBweDsKICAgIH0KICAKICAgIC5zcGFjZXIuZnVsbC13aWR0aC5fNjNweCB7CiAgICAgIGhlaWdodDogNTNweDsKICAgIH0KICAKICAgIC5ncmFkaWVudCB7CiAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICBib3R0b206IDAlOwogICAgfQogIAogICAgLmNhcnQtcXVhbnRpdHktbnVtYmVyIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQogIAogICAgLm1heC13LTQxNnB4IHsKICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgfQogIAogICAgLnNwbGl0LWNvbnRlbnQuY3RhLXJpZ2h0IHsKICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgbWFyZ2luLXRvcDogNzBweDsKICAgICAgbWFyZ2luLWxlZnQ6IDM0cHg7CiAgICAgIG1hcmdpbi1yaWdodDogMzRweDsKICAgIH0KICAKICAgIC5zcGxpdC1jb250ZW50LmN0YS1jYXJkLXYxLWltYWdlIHsKICAgICAgbWF4LXdpZHRoOiA2NjBweDsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgbWFyZ2luLWJvdHRvbTogLTY2JTsKICAgIH0KICAKICAgIC5zcGxpdC1jb250ZW50LmN0YS1sZWZ0IHsKICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgbWFyZ2luLXRvcDogNzBweDsKICAgICAgbWFyZ2luLWxlZnQ6IDM0cHg7CiAgICAgIG1hcmdpbi1yaWdodDogMzRweDsKICAgIH0KICAKICAgIC5jYXJkLXdyYXBwZXIgewogICAgICBib3JkZXItcmFkaXVzOiAzMnB4OwogICAgfQogIAogICAgLmljb24tc29jaWFsLnNpemUtMjJweC5jb2xvci1uZXV0cmFsLTEwMCB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgfQogIAogICAgLmljb24tc29jaWFsLm1nLXRvcC0zMnB4LmNhcmQtYXV0aG9yLXNvY2lhbC1tZWRpYSB7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgfQogIAogICAgLmNhcmQtZm9vdGVyLWxlZnQgewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogIAogICAgLmNhcmQtY29udGVudC5jYXJkLWZvb3Rlci1jb250ZW50IHsKICAgICAgcGFkZGluZzogNTFweCAzNHB4IDA7CiAgICB9CiAgCiAgICAuaWNvbi13cmFwcGVyLm1nLWJvdHRvbS0xODlweCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7CiAgICB9CiAgCiAgICAuY2FyZC1qb2JzIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgcGFkZGluZzogNDJweCAzNHB4IDUwcHg7CiAgICB9CiAgCiAgICAudGl0bGUtY2FyZC1qb2JzIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIH0KICAKICAgIC5tYXgtdy02NTJweCB7CiAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CiAgCiAgICAuaW1hZ2UtYmxvZy1wb3N0IHsKICAgICAgYm9yZGVyLXJhZGl1czogNDRweDsKICAgIH0KICAKICAgIC5kaXNwbGF5LTUgewogICAgICBmb250LXNpemU6IDQwcHg7CiAgICB9CiAgCiAgICAuY2FyZC1hdXRob3IgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIHBhZGRpbmc6IDUycHggMzRweDsKICAgIH0KICAKICAgIC5jYXJkLWF1dGhvci1jb250ZW50LXJpZ2h0IHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CiAgCiAgICAuY2FyZC1hdXRob3ItbGluZSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtaW4taGVpZ2h0OiAxcHg7CiAgICAgIG1hcmdpbjogMzBweCAwOwogICAgfQogIAogICAgLmNhcmQtcHJpY2luZyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7CiAgICB9CiAgCiAgICAucHJpY2luZy1jb250ZW50LXJpZ2h0IHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgcGFkZGluZzogNjBweCAzNHB4OwogICAgfQogIAogICAgLmNvbnRhY3Qtd3JhcHBlci5mbGV4LWhvcml6b250YWwuanVzdGlmeS1zcGFjZSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI2cHg7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5jb250ZW50LXdyYXBwZXItam9icyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICAgIHBhZGRpbmc6IDcwcHggMzRweDsKICAgIH0KICAKICAgIC5tZy10b3AtMTAwcHggewogICAgICBtYXJnaW4tdG9wOiA3MHB4OwogICAgfQogIAogICAgLmNhcmQtbG9naW4gewogICAgICBib3JkZXItcmFkaXVzOiAzNnB4OwogICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgICBwYWRkaW5nOiA2MHB4IDM0cHg7CiAgICB9CiAgCiAgICAubWctYm90dG9tLTUwcHggewogICAgICBtYXJnaW4tYm90dG9tOiA0MnB4OwogICAgfQogIAogICAgLmxvZ2luLWZvcm0tYmxvY2sgewogICAgICBtaW4taGVpZ2h0OiAyNzZweDsKICAgIH0KICAKICAgIC5iZy1jaXJjbGUgewogICAgICB3aWR0aDogNDgwcHg7CiAgICAgIGhlaWdodDogNDgwcHg7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICB9CiAgCiAgICAuaGVhZGluZyB7CiAgICAgIGZvbnQtc2l6ZTogNjhweDsKICAgIH0KICAKICAgIC5oZWFkaW5nLTQwNCB7CiAgICAgIGZvbnQtc2l6ZTogMTAwcHg7CiAgICB9CiAgCiAgICAuaWNvbi1qb2JzLm1nLWJvdHRvbS0yNHB4IHsKICAgICAgd2lkdGg6IDgwcHg7CiAgICAgIG1pbi13aWR0aDogODBweDsKICAgICAgaGVpZ2h0OiA4MHB4OwogICAgICBtaW4taGVpZ2h0OiA4MHB4OwogICAgfQogIAogICAgLmljb24tbG9naW4gewogICAgICB3aWR0aDogNzhweDsKICAgIH0KICAKICAgIC5pY29uLXZhbHVlcyB7CiAgICAgIHdpZHRoOiA3MHB4OwogICAgfQogIAogICAgLmljb24tY2FyZC1qb2JzIHsKICAgICAgbWF4LXdpZHRoOiA3MHB4OwogICAgfQogIAogICAgLm5hdi1jb250ZW50IHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAyMHB4OwogICAgfQogIAogICAgLmZvb3Rlci1pbmZvIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiAzMnB4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS0yMXB4IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMThweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tMjFweC5rZWVwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjFweDsKICAgIH0KICAKICAgIC5wcmljaW5nLWNhcmQtY29udGVudCB7CiAgICAgIHBhZGRpbmctdG9wOiA0M3B4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS0xOHB4IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsKICAgIH0KICAKICAgIC5hY2NvcmRpb24tY29udGVudC13cmFwcGVyLS0tYmlnLW51bWJlciB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICB9CiAgCiAgICAuaW1hZ2UtYW5kLXRleHQtcmlnaHQtd3JhcHBlciwgLmltYWdlLWFuZC10ZXh0LWxlZnQtd3JhcHBlciB7CiAgICAgIGdyaWQtcm93LWdhcDogNTBweDsKICAgIH0KICAKICAgIC5zdGF0cy1udW1iZXIgewogICAgICBmb250LXNpemU6IDM2cHg7CiAgICB9CiAgCiAgICAubWctYm90dG9tLTM4cHggewogICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS0zOHB4LmtlZXAgewogICAgICBtYXJnaW4tYm90dG9tOiAzOHB4OwogICAgfQogIAogICAgLnN0b3J5LWNvbnRlbnQtLS1sZWZ0IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgfQogIAogICAgLnRleHQtbGVmdC0tLW1ibCB7CiAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICB9CiAgCiAgICAudGV4dC1jZW50ZXItLS1tYmwgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgCiAgICAubWctdG9wLTMycHgtLS10YWJsZXQgewogICAgICBtYXJnaW4tdG9wOiAyOHB4OwogICAgfQogIAogICAgLm5ld3NsZXR0ZXItc2lkZWJhci1mb3JtLWJsb2NrIHsKICAgICAgbWluLWhlaWdodDogMTM4cHg7CiAgICB9CiAgCiAgICAucHJpY2luZy1mZWF0dXJlcy0tLWRlc2t0b3AtLS10YWJsZXQgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogIAogICAgLnByaWNpbmctZmVhdHVyZXMtLS1tb2JpbGUgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KICAKICAgIC5yaWNoLXRleHQtdjIgaDIgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDI2cHg7CiAgICB9CiAgCiAgICAucmljaC10ZXh0LXYyIGgzIHsKICAgICAgbWFyZ2luLXRvcDogMjZweDsKICAgIH0KICAKICAgIC5yaWNoLXRleHQtdjIgZmlndXJlIHsKICAgICAgbWFyZ2luLXRvcDogNDBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgIH0KICAKICAgIC5yaWNoLXRleHQtdjIgdWwsIC5yaWNoLXRleHQtdjIgb2wgewogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICBtYXJnaW4tYm90dG9tOiAyNnB4OwogICAgfQogIAogICAgLnJpY2gtdGV4dC12MiBoNiwgLnJpY2gtdGV4dC12MiBoNSwgLnJpY2gtdGV4dC12MiBoNCB7CiAgICAgIG1hcmdpbi10b3A6IDI2cHg7CiAgICB9CiAgCiAgICAucmljaC10ZXh0LXYyIGltZyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI2cHg7CiAgICB9CiAgCiAgICAucmljaC10ZXh0LXYyIGJsb2NrcXVvdGUgewogICAgICBtYXJnaW4tdG9wOiA0MHB4OwogICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgfQogIAogICAgLmFkZC10by1jYXJ0IHsKICAgICAgbWluLWhlaWdodDogMTM0cHg7CiAgICB9CiAgCiAgICAuc2xpZGUtdGVzdGltb25pYWwtaW1hZ2UtLS1uYW1lLXdyYXBwZXIgewogICAgICBtYXJnaW4tYm90dG9tOiA0MnB4OwogICAgfQogIAogICAgLnNpZ24tdXAtZm9ybS1ibG9jayB7CiAgICAgIG1pbi1oZWlnaHQ6IDQwMXB4OwogICAgfQogIAogICAgLmNhcmQtc2lnbi11cCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM2cHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OwogICAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDM0cHg7CiAgICB9CiAgCiAgICAuc2lnbi11cC13cmFwcGVyIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiA3MHB4OwogICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgfQogIAogICAgLmlucHV0LWFuZC1idXR0b24tZm9ybS1ibG9jayB7CiAgICAgIG1pbi1oZWlnaHQ6IDY4cHg7CiAgICB9CiAgCiAgICAuaGlkZGVuLW9uLW1ibCB7CiAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CiAgCiAgICAuZmxleC12ZXJ0aWNhbC0tLW1ibCB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB9CiAgCiAgICAubWctdG9wLTBweCB7CiAgICAgIG1hcmdpbi10b3A6IDA7CiAgICB9CiAgfQogIAogIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3OXB4KSB7CiAgICBoMSB7CiAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIH0KICAKICAgIGJsb2NrcXVvdGUgewogICAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5oZXJvLXBsYXktYnV0dG9uLm1heC13LTU0MHB4IHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5ibG9nLXNpZGViYXIgewogICAgICBncmlkLXJvdy1nYXA6IDY4cHg7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMuZ2FwLWNvbHVtbi04MHB4IHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZGlzcGxheTogZmxleDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5nYWxsZXJ5LXY2IHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAxMHB4OwogICAgICBncmlkLXJvdy1nYXA6IDEwcHg7CiAgICB9CiAgCiAgICAuZ3JpZC0yLWNvbHVtbnMuY2hhbmdlbG9nLWl0ZW0gewogICAgICBncmlkLXJvdy1nYXA6IDE2cHg7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMi1jb2x1bW5zLnByb2R1Y3QtcGFnZSB7CiAgICAgIGdyaWQtcm93LWdhcDogNTBweDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5fMS1jb2x1bW4tYXV0byB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTZweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5jYXJlZXItc2lkZWJhciB7CiAgICAgIGdyaWQtcm93LWdhcDogNjBweDsKICAgIH0KICAKICAgIC5ncmlkLTItY29sdW1ucy5jb21pbmctc29vbi1ncmlkIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiA5MHB4OwogICAgfQogIAogICAgLmNhcmQgewogICAgICBib3JkZXItcmFkaXVzOiA0NHB4OwogICAgfQogIAogICAgLmNhcmQuZm9ybSB7CiAgICAgIHBhZGRpbmctbGVmdDogMjNweDsKICAgICAgcGFkZGluZy1yaWdodDogMjNweDsKICAgIH0KICAKICAgIC5jYXJkLmZvcm0uY29udGFjdC1mb3JtLXYxIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgICAgbWluLWhlaWdodDogNjQ4cHg7CiAgICAgIHBhZGRpbmc6IDUwcHggMjRweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyIHsKICAgICAgYm9yZGVyLXJhZGl1czogMzJweDsKICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLmNhcmQuY29udGVudC1jZW50ZXIuc3RhdC12MyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgICAgIHBhZGRpbmc6IDYwcHggMjVweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyLnN0YXQtdjMuYmctY29sb3ItZ3JhZGllbnRzIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyLnRlYW0tdjEgewogICAgICBib3JkZXItcmFkaXVzOiAyNnB4OwogICAgfQogIAogICAgLmNhcmQuY29udGVudC1jZW50ZXIudGVhbS12MS5saW5rLWNhcmQgewogICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICB9CiAgCiAgICAuY2FyZC5jb250ZW50LWNlbnRlci5zbGlkZS10ZXN0aW1vbmlhbCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5jYXJkLmNvbnRlbnQtY2VudGVyLnN0YXQtdjIgewogICAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICB9CiAgCiAgICAuY2FyZC5jaGVja291dC1ibG9jayB7CiAgICAgIHBhZGRpbmc6IDQwcHggMjRweCA1MHB4OwogICAgfQogIAogICAgLmNhcmQuZmVhdHVyZXMgewogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICB9CiAgCiAgICAuY2FyZC5mZWF0dXJlcy5kaXJlY3Rpb24tcmV2ZXJzZSB7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5jYXJkLmNhcmQtdmFsdWVzLWxlZnQgewogICAgICBib3JkZXItcmFkaXVzOiAyNnB4OwogICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIHBhZGRpbmc6IDQwcHggMjRweDsKICAgIH0KICAKICAgIC5jYXJkLmNhcmQtdmFsdWVzLXJpZ2h0IHsKICAgICAgYm9yZGVyLXJhZGl1czogMjZweDsKICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLmNhcmQuY2xpZW50cyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5ncmlkLTQtY29sdW1ucyB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtNC1jb2x1bW5zLmNhcmRzLXZhbHVlcyB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTZweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgIH0KICAKICAgIC5ncmlkLTQtY29sdW1ucy5jb250ZW50LWpvYnMgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuMjVmcjsKICAgIH0KICAKICAgIC5ncmlkLTQtY29sdW1ucy5wcmljaW5nIHsKICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjsKICAgIH0KICAKICAgIC5jb2xvci1uZXV0cmFsLTEwMC5kaXNwbGF5LTEgewogICAgICBmb250LXNpemU6IDM0cHg7CiAgICB9CiAgCiAgICAuZGl2aWRlci5fNjRweCB7CiAgICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICB9CiAgCiAgICAubWctYm90dG9tLTE2cHggewogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB9CiAgCiAgICAubWctYm90dG9tLTE2cHgua2VlcCwgLm1nLWJvdHRvbS0yNHB4IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tMjRweC5rZWVwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tMzJweC5rZWVwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tNDhweC5pY29uLXByaWNpbmcgewogICAgICB3aWR0aDogNjhweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tNjRweCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQ0cHg7CiAgICB9CiAgCiAgICAubWctYm90dG9tLTgwcHggewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogIAogICAgLm1nLXRvcC00OHB4IHsKICAgICAgbWFyZ2luLXRvcDogMzJweDsKICAgIH0KICAKICAgIC5tZy10b3AtNTZweCB7CiAgICAgIGdyaWQtcm93LWdhcDogMTVweDsKICAgICAgZmxleC1mbG93OiBjb2x1bW47CiAgICB9CiAgCiAgICAubWctdG9wLTgwcHggewogICAgICBtYXJnaW4tdG9wOiA1NnB4OwogICAgfQogIAogICAgLmRpc3BsYXktMSB7CiAgICAgIGZvbnQtc2l6ZTogMzRweDsKICAgIH0KICAKICAgIC5ncmlkLTEtY29sdW1uLmdhcC1yb3ctNDVweCB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMjhweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAyOHB4OwogICAgfQogIAogICAgLmdhcC1yb3ctODBweCB7CiAgICAgIGdyaWQtcm93LWdhcDogNjBweDsKICAgIH0KICAKICAgIC5kaXNwbGF5LTIgewogICAgICBmb250LXNpemU6IDMwcHg7CiAgICB9CiAgCiAgICAuZGlzcGxheS0yLm1nLWJvdHRvbS04cHggewogICAgICBmb250LXNpemU6IDM2cHg7CiAgICB9CiAgCiAgICAuZGlzcGxheS0yLm1heC13LTQwMHB4Lm1nLWJvdHRvbS0xNnB4IHsKICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgfQogIAogICAgLmRpc3BsYXktMi5tZy10b3AtMzJweCwgLmRpc3BsYXktMi50aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgIH0KICAKICAgIC5kaXNwbGF5LTIudGl0bGUtcGFzc3dvcmQgewogICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgfQogIAogICAgLmRpc3BsYXktMyB7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIH0KICAKICAgIC5ncmlkLTMtY29sdW1ucywgLmdyaWQtMy1jb2x1bW5zLmdhcC1yb3ctODBweC5fMi1jb2wtbWJsIHsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICB9CiAgCiAgICAuZ3JpZC0zLWNvbHVtbnMubWVtYmVycy12MiB7CiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICBncmlkLWF1dG8tY29sdW1uczogMWZyOwogICAgfQogIAogICAgLmdyaWQtMy1jb2x1bW5zLmNvbnRlbnQtY29udGFjdCB7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgfQogIAogICAgLnN0eWxlLS0taGVhZGluZyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgIHBhZGRpbmctdG9wOiA2NnB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogNjZweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzMwMHB4LS0tbWJwIHsKICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzM1MHB4LS0tbWJwIHsKICAgICAgbWF4LXdpZHRoOiAzNTBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzMyMHB4LS0tbWJwIHsKICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzQwMHB4LS0tbWJwIHsKICAgICAgbWF4LXdpZHRoOiA0MDBweDsKICAgIH0KICAKICAgIC5pbm5lci1jb250YWluZXIuXzk2cHgtLS1tYnAgewogICAgICBtYXgtd2lkdGg6IDk2cHg7CiAgICB9CiAgCiAgICAuaW5uZXItY29udGFpbmVyLl8zMzBweC0tLW1icCB7CiAgICAgIG1heC13aWR0aDogMzMwcHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1jb250ZW50LWhlYWRpbmcgewogICAgICBwYWRkaW5nLWxlZnQ6IDIycHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDIycHg7CiAgICB9CiAgCiAgICAuc3R5bGUtLS1oZWFkaW5nLWljb24td3JhcHBlciB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIHdpZHRoOiA1OHB4OwogICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7CiAgICB9CiAgCiAgICAuYm9yZGVyLXJhZGl1cy02NHB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgIH0KICAKICAgIC5idG4tcHJpbWFyeSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkud2hpdGUucGFnaW5hdGlvbi1idG4gewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgfQogIAogICAgLmJ0bi1wcmltYXJ5Lmluc2lkZS1pbnB1dCB7CiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkuaW5zaWRlLWlucHV0LmRlZmF1bHQgewogICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkuaW5zaWRlLWlucHV0LmRlZmF1bHQud2hpdGUtbWIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgICBjb2xvcjogdmFyKC0tbmV1dHJhbC0tODAwKTsKICAgIH0KICAKICAgIC5idG4tcHJpbWFyeS5pbnNpZGUtaW5wdXQuZGVmYXVsdC53aGl0ZS1tYjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS0tY29sb3ItMyk7CiAgICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS0xMDApOwogICAgfQogIAogICAgLmJ0bi1wcmltYXJ5LmJ1dHRvbi1yb3cgewogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkuZG93bmxvYWQtYXBwIHsKICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OwogICAgfQogIAogICAgLmJ0bi1wcmltYXJ5LmRvd25sb2FkLWFwcC53aGl0ZSB7CiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7CiAgICB9CiAgCiAgICAuYnRuLXByaW1hcnkucGFnaW5hdGlvbi1idG4tLS1wcmV2aW91cyB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICB9CiAgCiAgICAuYnRuLXNlY29uZGFyeSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICB9CiAgCiAgICAuYmFkZ2UtcHJpbWFyeSB7CiAgICAgIHBhZGRpbmc6IDE0cHggMjJweDsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBsaW5lLWhlaWdodDogMThweDsKICAgIH0KICAKICAgIC5iYWRnZS1wcmltYXJ5LnNtYWxsIHsKICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwogICAgfQogIAogICAgLmJhZGdlLXNlY29uZGFyeSB7CiAgICAgIHBhZGRpbmc6IDE0cHggMjJweDsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBsaW5lLWhlaWdodDogMThweDsKICAgIH0KICAKICAgIC5iYWRnZS1zZWNvbmRhcnkuc21hbGwgewogICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7CiAgICB9CiAgCiAgICAuYmFkZ2Utc2Vjb25kYXJ5LmJ0bi1zZWNvbmRhcnkgewogICAgICB3aWR0aDogYXV0bzsKICAgIH0KICAKICAgIC5pbnB1dCB7CiAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgIH0KICAKICAgIC5pbnB1dC5sYXJnZS5idXR0b24taW5zaWRlIHsKICAgICAgbWluLWhlaWdodDogNjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgIH0KICAKICAgIC5pbnB1dC5idXR0b24taW5zaWRlIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgcGFkZGluZy1yaWdodDogMjBweDsKICAgIH0KICAKICAgIC50ZXh0LWFyZWEgewogICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICB9CiAgCiAgICAuY2hlY2tib3gtZmllbGQtd3JhcHBlciB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB9CiAgCiAgICAuY2hlY2tib3gtZmllbGQtd3JhcHBlci5sYXJnZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgbGluZS1oZWlnaHQ6IDIycHg7CiAgICB9CiAgCiAgICAuY2hlY2tib3ggewogICAgICBtaW4td2lkdGg6IDIycHg7CiAgICAgIG1pbi1oZWlnaHQ6IDIycHg7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KICAKICAgIC5jaGVja2JveC5sYXJnZSB7CiAgICAgIG1pbi13aWR0aDogMjZweDsKICAgICAgbWluLWhlaWdodDogMjZweDsKICAgIH0KICAKICAgIC5yYWRpby1idXR0b24tZmllbGQtd3JhcHBlciB7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgbGluZS1oZWlnaHQ6IDIycHg7CiAgICB9CiAgCiAgICAucmFkaW8tYnV0dG9uLWZpZWxkLXdyYXBwZXIubGFyZ2UgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLnJhZGlvLWJ1dHRvbiB7CiAgICAgIG1pbi13aWR0aDogMjJweDsKICAgICAgbWluLWhlaWdodDogMjJweDsKICAgIH0KICAKICAgIC5yYWRpby1idXR0b24ubGFyZ2UgewogICAgICBtaW4td2lkdGg6IDI2cHg7CiAgICAgIG1pbi1oZWlnaHQ6IDI2cHg7CiAgICB9CiAgCiAgICAuc3F1YXJlLWljb24gewogICAgICBib3JkZXItcmFkaXVzOiAxNHB4OwogICAgICBtYXgtd2lkdGg6IDU2cHg7CiAgICB9CiAgCiAgICAuc29jaWFsLWljb24tc3F1YXJlIHsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB3aWR0aDogMzBweDsKICAgICAgbWluLXdpZHRoOiAzMHB4OwogICAgICBoZWlnaHQ6IDMwcHg7CiAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7CiAgICB9CiAgCiAgICAubGluZS1yb3VuZGVkLWljb24uc3VjY2Vzcy1tZXNzYWdlLWNoZWNrLmxhcmdlIHsKICAgICAgZm9udC1zaXplOiA1OHB4OwogICAgfQogIAogICAgLmxpbmUtcm91bmRlZC1pY29uLmFjY29yZGlvbi1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQogIAogICAgLmxpbmUtcm91bmRlZC1pY29uLmljb24tbGlzdC50ZXh0LWNvbG9yLW5ldXRyYWwtMTAwIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgfQogIAogICAgLnN0eWxlLS0tbGluZS1pY29ucy1ncmlkLmZsZXgtaG9yaXpvbnRhbCB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICB9CiAgCiAgICAubGluZS1zcXVhcmUtaWNvbi50b3AtYmFyLWNsb3NlLWljb24gewogICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7CiAgICB9CiAgCiAgICAucmljaC10ZXh0IHVsLCAucmljaC10ZXh0IG9sIHsKICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgfQogIAogICAgLnJpY2gtdGV4dCBpbWcgewogICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgfQogIAogICAgLmJ1dHRvbnMtcm93IHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICB9CiAgCiAgICAuY29udGFpbmVyLWRlZmF1bHQgewogICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICB9CiAgCiAgICAuc2VjdGlvbiwgLnNlY3Rpb24uc21hbGwgewogICAgICBwYWRkaW5nLXRvcDogNjBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDYwcHg7CiAgICB9CiAgCiAgICAuc2VjdGlvbi5oZXJvIHsKICAgICAgcGFkZGluZy10b3A6IDUwcHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA4MHB4OwogICAgfQogIAogICAgLnNlY3Rpb24uaGVyby5leHRyYS1zaG9ydCB7CiAgICAgIHBhZGRpbmctdG9wOiA1MHB4OwogICAgfQogIAogICAgLnNlY3Rpb24uaGVyby52MSB7CiAgICAgIHBhZGRpbmctdG9wOiA1MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogNThweDsKICAgIH0KICAKICAgIC5zZWN0aW9uLmhlcm8udjIgewogICAgICBwYWRkaW5nLWJvdHRvbTogNThweDsKICAgIH0KICAKICAgIC5zZWN0aW9uLmhlcm8udjMgewogICAgICBwYWRkaW5nLXRvcDogNTBweDsKICAgICAgcGFkZGluZy1ib3R0b206IDU4cHg7CiAgICB9CiAgCiAgICAuc2VjdGlvbi50ZW1wbGF0ZS1wYWdlcy1oZXJvIHsKICAgICAgcGFkZGluZy10b3A6IDUwcHg7CiAgICAgIHBhZGRpbmctYm90dG9tOiA1MHB4OwogICAgfQogIAogICAgLnNlY3Rpb24udGVtcGxhdGUtcGFnZXMtaGVyby5zaG9ydCB7CiAgICAgIHBhZGRpbmctdG9wOiA4OHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogODhweDsKICAgIH0KICAKICAgIC5zZWN0aW9uLmhlcm8tcGFnZSB7CiAgICAgIHBhZGRpbmctYm90dG9tOiA5NHB4OwogICAgfQogIAogICAgLnRvcC1iYXItd3JhcHBlciB7CiAgICAgIHBhZGRpbmctbGVmdDogMTlweDsKICAgICAgcGFkZGluZy1yaWdodDogMTlweDsKICAgIH0KICAKICAgIC5lbGVtZW50cy0tLWVsZW1lbnQtdGl0bGUubGFyZ2UgewogICAgICBtYXJnaW4tdG9wOiA1M3B4OwogICAgfQogIAogICAgLmhlYWRpbmctaDEtc2l6ZSwgLmhlYWRpbmctaDEtc2l6ZS50ZXh0LWNvbG9yLW5ldXRyYWwtMzAwIHsKICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgfQogIAogICAgLmhlYWRpbmctaDItc2l6ZSB7CiAgICAgIGZvbnQtc2l6ZTogMjZweDsKICAgIH0KICAKICAgIC5oZWFkZXItbmF2LWxpc3QtaXRlbSB7CiAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogIAogICAgLmhlYWRlci1uYXYtbGlzdC1pdGVtLnNob3ctaW4tdGFibGV0LCAuaGVhZGVyLW5hdi1saXN0LWl0ZW0uaGVhZGVyLWJ1dHRvbi1zaG93LWluLXRhYmxldCB7CiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICB9CiAgCiAgICAuZHJvcGRvd24td3JhcHBlci5zdGF0aWMgewogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgfQogIAogICAgLmRyb3Bkb3duLXRvZ2dsZSB7CiAgICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICB9CiAgCiAgICAuaGVhZGVyLWxvZ28gewogICAgICBtYXgtd2lkdGg6IDg2JTsKICAgIH0KICAKICAgIC51dGlsaXR5LXBhZ2Utd3JhcCB7CiAgICAgIHBhZGRpbmctdG9wOiA1MHB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogNTBweDsKICAgIH0KICAKICAgIC5zb2NpYWwtbWVkaWEtZ3JpZC10b3AgewogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMzBweCk7CiAgICB9CiAgCiAgICAuc29jaWFsLW1lZGlhLWdyaWQtdG9wLmNhcmQtdGVhbS12MS1zb2NpYWwtbWVkaWEtZ3JpZCB7CiAgICAgIHRvcDogMjRweDsKICAgICAgbGVmdDogMjRweDsKICAgICAgcmlnaHQ6IDI0cHg7CiAgICB9CiAgCiAgICAuZmxleC1ob3Jpem9udGFsIHsKICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgZGlzcGxheTogZmxleDsKICAgIH0KICAKICAgIC5mbGV4LWhvcml6b250YWwuc3RhcnQubWctYm90dG9tLTI0cHggewogICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgfQogIAogICAgLmZsZXgtaG9yaXpvbnRhbC5qdXN0aWZ5LXNwYWNlIHsKICAgICAgZmxleC1mbG93OiB3cmFwOwogICAgfQogIAogICAgLmZsZXgtaG9yaXpvbnRhbC5qdXN0aWZ5LXNwYWNlLnByaWNpbmctY2FyZC1jb250ZW50LWJvdHRvbSB7CiAgICAgIGZsZXgtZmxvdzogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIH0KICAKICAgIC5mbGV4LWhvcml6b250YWwubGluay12ZXJ0aWNhbCB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB9CiAgCiAgICAuZmxleC1ob3Jpem9udGFsLmdhcC0yNHB4Lmp1c3RpZnktbGVmdCB7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KICAKICAgIC5mbGV4LWhvcml6b250YWwuc3RhdHMtbnVtYmVyLXdyYXBwZXIgewogICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsKICAgIH0KICAKICAgIC5mb290ZXItd3JhcHBlciB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5mb290ZXItYm90dG9tLnRleHQtcmlnaHQudGV4dC1jZW50ZXItbWIucGQtNjBweCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDMzcHg7CiAgICAgIHBhZGRpbmc6IDQwcHggMjRweDsKICAgIH0KICAKICAgIC5lcnJvci1tZXNzYWdlIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIH0KICAKICAgIC50ZXh0LWNlbnRlci5wZC0zMXB4LS0tbWctdG9wLTQ3cHggewogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgICBwYWRkaW5nOiAzOHB4IDI0cHg7CiAgICB9CiAgCiAgICAuc3RpY2t5LXRvcC5fMjRweC10b3Auc3RpY2t5LW1ibCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KICAKICAgIC5zdGlja3ktdG9wLl8yNHB4LXRvcC5zdGlja3ktbWJsLmFwcGx5LXJvbGUgewogICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICB9CiAgCiAgICAuc3RpY2t5LXRvcC5fMjRweC10b3AubmV3c2xldHRlci1zaWRlYmFyIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICB9CiAgCiAgICAuc3RpY2t5LXRvcC5fMjRweC10b3AuYmxvZy1zaWRlYmFyLWxlZnQgewogICAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIHBhZGRpbmc6IDUwcHggMjRweDsKICAgIH0KICAKICAgIC5pY29uLWxpc3QtaXRlbS13cmFwcGVyIHsKICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiA4cHg7CiAgICB9CiAgCiAgICAuaWNvbi1saXN0LWl0ZW0td3JhcHBlci5hbGlnbi1zdGFydCB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogMTZweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiAxNnB4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgfQogIAogICAgLmljb24tbGlzdCB7CiAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgfQogIAogICAgLmhlcm8tY2FyZC1iZy1pbWFnZSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIHBhZGRpbmctbGVmdDogMThweDsKICAgICAgcGFkZGluZy1yaWdodDogMThweDsKICAgIH0KICAKICAgIC5oZXJvLWNhcmQtYmctaW1hZ2UuaGVyby12MTQgewogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBwYWRkaW5nOiA1MHB4IDI0cHggMTM4cHg7CiAgICB9CiAgCiAgICAuY3RhLWNhcmQgewogICAgICBib3JkZXItcmFkaXVzOiA0MHB4OwogICAgfQogIAogICAgLmxvZ28tc3RyaXAtaW1hZ2UgewogICAgICBib3JkZXItcmFkaXVzOiAyNnB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgcGFkZGluZzogNDRweCAyNHB4OwogICAgfQogIAogICAgLmFjY29yZGlvbi1pdGVtLXdyYXBwZXIuc3BhY2UtYmV0d2VlbiB7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogIAogICAgLmFjY29yZGlvbi1pY29uLXdyYXBwZXIgewogICAgICB3aWR0aDogNDRweDsKICAgICAgbWluLXdpZHRoOiA0NHB4OwogICAgICBoZWlnaHQ6IDQ0cHg7CiAgICAgIG1pbi1oZWlnaHQ6IDQ0cHg7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAzMHB4OwogICAgICByaWdodDogMjRweDsKICAgIH0KICAKICAgIC5hdmF0YXItaW1hZ2UgewogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5wZC0tLWNvbnRlbnQtaW5zaWRlLWNhcmQuZmVhdHVyZXMtY29udGVudC1sZWZ0IHsKICAgICAgcGFkZGluZy1sZWZ0OiAwOwogICAgICBwYWRkaW5nLXJpZ2h0OiAwOwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC50ZWFtLW1lbWJlci1wYWdlIHsKICAgICAgcGFkZGluZzogNDZweCAyNHB4OwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC5sYXJnZSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICAgIHBhZGRpbmc6IDYwcHggMjRweCA3MHB4OwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC5sYXJnZS50ZW1wbGF0ZS1wYWdlcyB7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5wZC0tLWNvbnRlbnQtaW5zaWRlLWNhcmQudGVtcGxhdGUtcGFnZXMtLS1zaWRlYmFyIHsKICAgICAgcGFkZGluZzogMThweCAxNHB4OwogICAgfQogIAogICAgLnBkLS0tY29udGVudC1pbnNpZGUtY2FyZC5zZWFyY2gtcmVzdWx0LmxpbmstY29udGVudCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDMycHg7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5pbWFnZS5ib3JkZXItcmFkaXVzLTY0cHggewogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgfQogIAogICAgLmltYWdlLXdyYXBwZXItZmVhdHVyZXMgewogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDsKICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKICAgIH0KICAKICAgIC5wcmljaW5nLWNvbHVtbi5kaXNwbGF5LW5vbmUgewogICAgICBkaXNwbGF5OiBub25lOwogICAgfQogIAogICAgLnByaWNpbmctdGFibGUtdG9wIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIHBhZGRpbmctbGVmdDogMTBweDsKICAgICAgcGFkZGluZy1yaWdodDogMTBweDsKICAgIH0KICAKICAgIC5wcmljaW5nLWNvbnRlbnQtd3JhcHBlciB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICB9CiAgCiAgICAucHJpY2luZy1jb250ZW50LXdyYXBwZXIubWctdG9wLTQ4cHgsIC5wcmljaW5nLWNvbnRlbnQtd3JhcHBlci5tZy10b3AtMjRweCB7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLm92ZXJmbG93LWhpZGRlbi5ib3JkZXItcmFkaXVzLTBweCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICB9CiAgCiAgICAuaW1hZ2Utd3JhcHBlci5vdmVyZmxvdy1oaWRkZW4uYm9yZGVyLXJhZGl1cy02NHB4IHsKICAgICAgYm9yZGVyLXJhZGl1czogMThweDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLm1nLXRvcC04MHB4IHsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNXB4OwogICAgfQogIAogICAgLmltYWdlLXdyYXBwZXIuaW1hZ2UtbWVtYmVycyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLmNhcmQtZm9vdGVyLWltYWdlIHsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KICAKICAgIC5pbWFnZS13cmFwcGVyLmF2YXRhci1jaXJjbGUuY2FyZC1hdXRob3ItYXZhdGFyIHsKICAgICAgbWF4LXdpZHRoOiAxMTRweDsKICAgIH0KICAKICAgIC5jYXJ0LWJ1dHRvbi13cmFwcGVyIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICB9CiAgCiAgICAuY2FydC1jb250YWluZXIgewogICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgfQogIAogICAgLmNhcnQtaXRlbS1wcmljZSB7CiAgICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLS02MDApOwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4OwogICAgfQogIAogICAgLnNoaXBwaW5nLW1ldGhvZCB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB9CiAgCiAgICAub3JkZXItaXRlbSB7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIG1hcmdpbi10b3A6IDIwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIHBhZGRpbmctdG9wOiAyMnB4OwogICAgICBwYWRkaW5nLWJvdHRvbTogMjJweDsKICAgIH0KICAKICAgIC5vcmRlci1saXN0LXByaWNlIHsKICAgICAgbWFyZ2luLXRvcDogNXB4OwogICAgfQogIAogICAgLm9yZGVyLWxpc3QtdGl0bGUgewogICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICB9CiAgCiAgICAub3JkZXItaXRlbS1jb250ZW50IHsKICAgICAgbWFyZ2luLXRvcDogMTVweDsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgIH0KICAKICAgIC5jaGVja291dC1jb2x1bW4gewogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgfQogIAogICAgLmhvbWUtcGFnZXMtdG9wLXdyYXBwZXIgewogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIAogICAgLmltYWdlLWhvbWUtbGluay13cmFwcGVyIHsKICAgICAgbWF4LXdpZHRoOiAxODBweDsKICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB9CiAgCiAgICAuZmlnbWEtZmlsZS10ZXh0LXdyYXBwZXIgewogICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICB9CiAgCiAgICAuaG9tZS1zdXJwcmlzZXMtY2FyZCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIycHg7CiAgICB9CiAgCiAgICAuY2FyZC1ob21lLXBhZ2VzLXdyYXBwZXIgewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICB9CiAgCiAgICAuc3BhY2VyLmZ1bGwtd2lkdGguXzYzcHggewogICAgICBoZWlnaHQ6IDQ0cHg7CiAgICB9CiAgCiAgICAuaWNvbi1jYXJkLWZlYXR1cmVzLm1nLWJvdHRvbS0yMnB4IHsKICAgICAgd2lkdGg6IDYwcHg7CiAgICB9CiAgCiAgICAuZ3JhZGllbnQgewogICAgICBtaW4taGVpZ2h0OiAxNTBweDsKICAgICAgYm90dG9tOiAwJTsKICAgIH0KICAKICAgIC5pY29uIHsKICAgICAgd2lkdGg6IDY1cHg7CiAgICB9CiAgCiAgICAubWF4LXctNDE2cHggewogICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICB9CiAgCiAgICAuc3BsaXQtY29udGVudC5jdGEtcmlnaHQgewogICAgICBtYXJnaW4tbGVmdDogMjRweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLnNwbGl0LWNvbnRlbnQuY3RhLWNhcmQtdjEtaW1hZ2UgewogICAgICBtYXJnaW4tYm90dG9tOiAtNzYlOwogICAgfQogIAogICAgLnNwbGl0LWNvbnRlbnQuY3RhLWxlZnQgewogICAgICBtYXJnaW4tbGVmdDogMjRweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLmNhcmQtd3JhcHBlciB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICB9CiAgCiAgICAuY2lyY2xlLWFycm93IHsKICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIH0KICAKICAgIC5saW5rLWZvb3Rlcjpob3ZlciB7CiAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktLWNvbG9yLTMpOwogICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogaW5oZXJpdDsKICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKICAgICAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94OwogICAgfQogIAogICAgLmNhcmQtZm9vdGVyLWxlZnQgewogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgICBtYXgtaGVpZ2h0OiA2MTFweDsKICAgIH0KICAKICAgIC5jYXJkLWNvbnRlbnQuY2FyZC1mb290ZXItY29udGVudCB7CiAgICAgIHBhZGRpbmctdG9wOiA0NXB4OwogICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICB9CiAgCiAgICAuY2FyZC1qb2JzIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgcGFkZGluZy10b3A6IDMycHg7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC50aXRsZS1jYXJkLWpvYnMgewogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgfQogIAogICAgLmltYWdlLWJsb2ctcG9zdCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDM4cHg7CiAgICB9CiAgCiAgICAuZGlzcGxheS01IHsKICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgfQogIAogICAgLmNhcmQtYXV0aG9yIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjRweDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OwogICAgfQogIAogICAgLmNhcmQtYXV0aG9yLWNvbnRlbnQtcmlnaHQgewogICAgICBhbGlnbi1zZWxmOiBhdXRvOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAKICAgIC5jYXJkLXByaWNpbmcgewogICAgICBib3JkZXItcmFkaXVzOiAzM3B4OwogICAgfQogIAogICAgLnByaWNpbmctY29udGVudC1yaWdodCB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI2cHg7CiAgICAgIHBhZGRpbmc6IDUwcHggMjRweDsKICAgIH0KICAKICAgIC5jb250YWN0LXdyYXBwZXIuZmxleC1ob3Jpem9udGFsLmp1c3RpZnktc3BhY2UgewogICAgICBib3JkZXItcmFkaXVzOiAyNHB4OwogICAgfQogIAogICAgLmNvbnRlbnQtd3JhcHBlci1qb2JzIHsKICAgICAgYm9yZGVyLXJhZGl1czogMjhweDsKICAgICAgcGFkZGluZzogNjBweCAyNHB4OwogICAgfQogIAogICAgLm1nLXRvcC0xMDBweCB7CiAgICAgIG1hcmdpbi10b3A6IDYwcHg7CiAgICB9CiAgCiAgICAuY2FyZC1sb2dpbiB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7CiAgICAgIHBhZGRpbmc6IDUwcHggMjRweDsKICAgIH0KICAKICAgIC5jaGVja2JveC1sYWJlbCB7CiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OwogICAgfQogIAogICAgLmJnLWNpcmNsZSB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgd2lkdGg6IDMwMHB4OwogICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgfQogIAogICAgLmhlYWRpbmcgewogICAgICBmb250LXNpemU6IDQycHg7CiAgICB9CiAgCiAgICAuaGVhZGluZy00MDQgewogICAgICBmb250LXNpemU6IDY1cHg7CiAgICB9CiAgCiAgICAuaWNvbi1jYXJkLWNvbnRhY3QgewogICAgICB3aWR0aDogNjVweDsKICAgICAgbWluLXdpZHRoOiA2NXB4OwogICAgICBoZWlnaHQ6IDY1cHg7CiAgICAgIG1pbi1oZWlnaHQ6IDY1cHg7CiAgICB9CiAgCiAgICAuaWNvbi1sb2dpbiB7CiAgICAgIHdpZHRoOiA2NHB4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS0yMXB4IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tMjFweC5rZWVwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjFweDsKICAgIH0KICAKICAgIC5wcmljaW5nLWNhcmQtY29udGVudCB7CiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsKICAgICAgcGFkZGluZy1yaWdodDogMjRweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tMThweCB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEzcHg7CiAgICB9CiAgCiAgICAuYWNjb3JkaW9uLWNvbnRlbnQtd3JhcHBlci0tLWJpZy1udW1iZXIgewogICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICB9CiAgCiAgICAuc3RhdHMtbnVtYmVyIHsKICAgICAgZm9udC1zaXplOiAyOHB4OwogICAgfQogIAogICAgLm1nLWJvdHRvbS0zOHB4IHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjZweDsKICAgIH0KICAKICAgIC5tZy1ib3R0b20tMzhweC5rZWVwIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMzhweDsKICAgIH0KICAKICAgIC50ZXh0LWxlZnQtLS1tYmwgewogICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgfQogIAogICAgLm1nLXRvcC0zMnB4LS0tdGFibGV0IHsKICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgIH0KICAKICAgIC5uZXdzbGV0dGVyLXNpZGViYXItZm9ybS1ibG9jayB7CiAgICAgIG1pbi1oZWlnaHQ6IDEzNHB4OwogICAgfQogIAogICAgLnJpY2gtdGV4dC12MiBoMiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIH0KICAKICAgIC5yaWNoLXRleHQtdjIgdWwsIC5yaWNoLXRleHQtdjIgb2wgewogICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICB9CiAgCiAgICAucmljaC10ZXh0LXYyIGltZyB7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICB9CiAgCiAgICAuc2xpZGUtdGVzdGltb25pYWwtaW1hZ2UtLS1uYW1lLXdyYXBwZXIgewogICAgICBtYXJnaW4tYm90dG9tOiAzNXB4OwogICAgfQogIAogICAgLmNoZWNrYm94LWZpZWxkLS0td3JhcHBlciB7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIH0KICAKICAgIC5jYXJkLXNpZ24tdXAgewogICAgICBib3JkZXItcmFkaXVzOiAyOHB4OwogICAgICBwYWRkaW5nOiA1MHB4IDI0cHg7CiAgICB9CiAgCiAgICAuc2lnbi11cC13cmFwcGVyIHsKICAgICAgZ3JpZC1yb3ctZ2FwOiA2MHB4OwogICAgfQogIAogICAgLmlucHV0LWFuZC1idXR0b24tZm9ybS1ibG9jayB7CiAgICAgIG1pbi1oZWlnaHQ6IDEzOHB4OwogICAgfQogIAogICAgLnNoaXBwaW5nLW1ldGhvZC1jb250ZW50IHsKICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICB9CiAgCiAgICAuY2FydC1saXN0LXRpdGxlIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgfQogIAogICAgLmNhcnQtaXRlbS1jb250ZW50IHsKICAgICAgbWFyZ2luOiAxNXB4IDAgMjBweDsKICAgIH0KICAKICAgIC5jYXJ0LWl0ZW0tbWFpbi13cmFwcGVyIHsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIH0KICAKICAgIC5tZy10b3AtMHB4IHsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KICAKICAgIC5tb3JlLXRlbXBsYXRlcy1iYWRnZS13cmFwcGVyLWVkaXRlZCB7CiAgICAgIGdyaWQtY29sdW1uLWdhcDogNnB4OwogICAgICBncmlkLXJvdy1nYXA6IDZweDsKICAgICAgbWF4LXdpZHRoOiAyNTBweDsKICAgICAgcGFkZGluZzogOHB4IDE4cHggOHB4IDE1cHg7CiAgICB9CiAgCiAgICAubW9yZS10ZW1wbGF0ZXMtbG9nbyB7CiAgICAgIHdpZHRoOiA2MHB4OwogICAgfQogIAogICAgLm1vcmUtdGVtcGxhdGVzLXAgewogICAgICBmb250LXNpemU6IDEycHg7CiAgICB9CiAgCiAgICAubW9yZS10ZW1wbGF0ZXMtbG90dGllIHsKICAgICAgd2lkdGg6IDQwcHg7CiAgICB9CiAgCiAgICAuYnJpeC1iYWRnZXMtd3JhcHBlciB7CiAgICAgIHdpZHRoOiAzMTBweDsKICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgcmlnaHQ6IDIycHg7CiAgICB9CiAgCiAgICAubW9yZS10ZW1wbGF0ZXMtbG90dGllLTIgewogICAgICB3aWR0aDogNDBweDsKICAgICAgdG9wOiAtMTZweDsKICAgICAgcmlnaHQ6IC0xNXB4OwogICAgfQogIAogICAgLm1vcmUtdGVtcGxhdGVzLWJhZGdlLXdyYXBwZXIgewogICAgICBncmlkLWNvbHVtbi1nYXA6IDZweDsKICAgICAgZ3JpZC1yb3ctZ2FwOiA2cHg7CiAgICAgIG1heC13aWR0aDogMzEwcHg7CiAgICAgIHBhZGRpbmc6IDhweCAxOHB4IDhweCAxNXB4OwogICAgfQogIAogICAgLm1vcmUtdGVtcGxhdGVzLWJhZGdlLXdyYXBwZXI6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHNjYWxlKC45KXRyYW5zbGF0ZSgwLCAyMHB4KTsKICAgIH0KICB9CiAgCiAgI3ctbm9kZS1fMTdiMTcwOGEtMjZlNi00MzRhLWRhNWMtODQwNTkwMWYwNjQ4LThkYjlmOTBiIHsKICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKICB9CiAgCiAgI3ctbm9kZS1fM2NlOGJmYWMtMTg1MS1kNDI1LTY3ODQtZDhhNWMwZWU4OTA5LThkYjlmOTBiLCAjdy1ub2RlLWEyYzhmNzUzLWVjODQtMjA2NC0xY2E2LTk3NGQ4YzI3MzE2Ni04ZGI5ZjkwYiB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7CiAgfQogIAogICN3LW5vZGUtXzJhYWEwYzE2LTZkMTQtMmQ1ZS0wMWQ2LWU5ZDUxMTZjMWFkNi04ZGI5ZjkwYiB7CiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgfQogIAogICN3LW5vZGUtYTllOGM1N2ItOTkxMi02ZjFmLWMxNDEtOWZjOWFhMTBmMTJhLThkYjlmOTBiIHsKICAgIHBsYWNlLXNlbGY6IGNlbnRlciBlbmQ7CiAgfQogIAogICN3LW5vZGUtYTJmZDkzYjctODk3ZS01OThmLTdiMDAtMmY1Yzg5ODQ0OWI3LThkYjlmOTBiIHsKICAgIGFsaWduLXNlbGY6IGNlbnRlcjsKICB9CiAgCiAgI3ctbm9kZS1hMmZkOTNiNy04OTdlLTU5OGYtN2IwMC0yZjVjODk4NDQ5YjYtOGRiOWY5MGIsICN3LW5vZGUtXzQyZWQxNzI0LTE4NmQtYTlkNi00MmI1LTFlOTA0Y2Q1MTAwNS04ZGI5ZjkwYiB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICB9CiAgCiAgI3ctbm9kZS1mOGE0NDg2ZC0zYjU0LWZlZTYtZGJmZS05MzBkY2I0MGM3ZDMtOGRiOWY5MGIsICN3LW5vZGUtXzE0NDhjMDM3LWQzNGQtZmQ1ZC1hOWEzLWVhNDJiMGIzYzM0YS04ZGI5ZjkwYiB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIGp1c3RpZnktc2VsZjogZW5kOwogIH0KICAKICAjdy1ub2RlLWIyM2RlMjlmLTMzZTctMWE0NS01Yzc4LWMwZTdjOTc3MzMzZS1jOTc3MzMzYSB7CiAgICBhbGlnbi1zZWxmOiBzdGFydDsKICB9CiAgCiAgI3ctbm9kZS1iMjNkZTI5Zi0zM2U3LTFhNDUtNWM3OC1jMGU3Yzk3NzMzNTAtYzk3NzMzM2EgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgICBwbGFjZS1zZWxmOiBhdXRvIGVuZDsKICB9CiAgCiAgI3ctbm9kZS1fNTM4YjNkN2QtYmU0OC0zZDQ2LTU3OTktMzIxMWJhMjFmZTFhLWM5NzczMzNhLCAjdy1ub2RlLWQ2NDAyN2EyLTA5N2UtOWY4OS0wYmE2LWNkYzBmODRjZjU2My0xODYyODc2OSB7CiAgICBwbGFjZS1zZWxmOiBhdXRvIGVuZDsKICB9CiAgCiAgI3ctbm9kZS1fMzQ2NmFiZjMtZTFlMy04MDQ2LWMxYjYtZGY1M2M0MWI3NGFmLThiYjlmOTE3IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLWU1ODU1ZmFlLTg3NTUtODM1YS1lZjBjLWY1YjZjOTVhYjhkYy04YmI5ZjkxNyB7CiAgICBqdXN0aWZ5LXNlbGY6IGVuZDsKICB9CiAgCiAgI3ctbm9kZS1lNGU0YmRlNS0wOTc0LWRjNjUtMWU5ZS01Njk3NDc1YzgyMjItOGJiOWY5MTcsICN3LW5vZGUtYzljMTBmYzktOWViYi05NmUwLWEwYTEtNWE1YzYzZGI3MWEyLThiYjlmOTE3LCAjdy1ub2RlLV8yNzliOTg2ZC0yMGI1LTdkYzMtMGJjMi0zYjg0MzA3NDg4ZmQtOGJiOWY5MTcsICN3LW5vZGUtXzFlOWY4YzBkLTliMjEtNmJjMS05MDFmLWFlZWRmNzYzNjI4ZS04YmI5ZjkxNywgI3ctbm9kZS1lNzIwZDA2My05YzFjLTg3ZTEtNmJkMC03MGY4M2YyYWI3ZmItOGJiOWY5MTcsICN3LW5vZGUtXzhlMDM5N2IwLTUzZmItNWM4MC02OTBkLWFkYTM2YTZmODNlNS04YmI5ZjkxNyB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICB9CiAgCiAgI3ctbm9kZS1fM2FlMDI0ZTktMThmNy05YjVmLTQ1MTMtMGJmMTU0ZTI5NThjLThiYjlmOTE3IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogICAganVzdGlmeS1zZWxmOiBlbmQ7CiAgfQogIAogICN3LW5vZGUtXzQzNGFjZDhkLTk2MGEtYmUzMy1hNzhjLTFiYTgzM2M3OWFjNy04YmI5ZjkxNyB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICB9CiAgCiAgI3ctbm9kZS1fMTQwZGZmZTItYjI5My0wYTZmLWI4MzktNDdkMzUzMzY5ODg5LTJmYjlmOTE4IHsKICAgIGFsaWduLXNlbGY6IHN0YXJ0OwogIH0KICAKICAjdy1ub2RlLV83NGZkZWIwMy0yZTczLTExMzgtM2E1NC1mZDI0ZWVlYTc5NDAtZmZiOWY5MWEgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtZGJmNDY2Y2EtOGYxNy1lNzhiLWZhMTEtMDM4YzBlMmIyNmE4LWZmYjlmOTFhIHsKICAgIGFsaWduLXNlbGY6IHN0YXJ0OwogIH0KICAKICAjdy1ub2RlLV84YTc3NzAwNS02NmEyLTNkMzYtZDEyNC02NWJkMjY4MWExYWEtNGJiOWY5MWMgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtZDNhNGU2NTktMzZkNC1jNDY4LWFlNDEtYmRlYjhkYmY5OThlLTRiYjlmOTFjIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogICAganVzdGlmeS1zZWxmOiBlbmQ7CiAgfQogIAogICN3LW5vZGUtZDNhNGU2NTktMzZkNC1jNDY4LWFlNDEtYmRlYjhkYmY5OThmLTRiYjlmOTFjIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLWUyODBmMWMwLWNjNWUtOTdiMC00YTRlLTdjM2MyZjZkZWJjMS0yZjZkZWJiZCB7CiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0OwogIH0KICAKICAjdy1ub2RlLV8yZDY4YmNlZC05ZGU0LWI0YzAtMzZmYi04NzliMzhmMjEzZTctMzhmMjEzOGYsICN3LW5vZGUtXzhiYzIxNzMzLWJlZDMtMmE2Yy04MjYyLTEzYzk5ZDc4YWQ0NC02ODU5ODI3ZiB7CiAgICBwbGFjZS1zZWxmOiBhdXRvIGVuZDsKICB9CiAgCiAgI3ctbm9kZS1fMTg2ZmJlNDMtNWZiZS0wMDM0LWU4YjQtNzg3ZThhZGNmZDNmLWE1YjlmOTJiLCAjdy1ub2RlLV81MGNhY2I4ZS1kZTU4LTE2MWEtMWY4Zi01YmJkMmQyODUyM2QtYTViOWY5MmIsICN3LW5vZGUtZjBmYmYzYTgtZTE0ZS02OWZiLTUyMjYtZDlkODk0ZTA3MThjLWE1YjlmOTJiLCAjdy1ub2RlLWNlYjBkODU5LWM0MTAtOGM2My1jZWI4LTg5ZWVhNTllNGVjOC1hNWI5ZjkyYiwgI3ctbm9kZS1jZWIwZDg1OS1jNDEwLThjNjMtY2ViOC04OWVlYTU5ZTRlY2UtYTViOWY5MmIsICN3LW5vZGUtY2ViMGQ4NTktYzQxMC04YzYzLWNlYjgtODllZWE1OWU0ZWQ0LWE1YjlmOTJiLCAjdy1ub2RlLWNlYjBkODU5LWM0MTAtOGM2My1jZWI4LTg5ZWVhNTllNGVkYS1hNWI5ZjkyYiwgI3ctbm9kZS1jZWIwZDg1OS1jNDEwLThjNjMtY2ViOC04OWVlYTU5ZTRlZTAtYTViOWY5MmIsICN3LW5vZGUtY2ViMGQ4NTktYzQxMC04YzYzLWNlYjgtODllZWE1OWU0ZWU2LWE1YjlmOTJiLCAjdy1ub2RlLWNlYjBkODU5LWM0MTAtOGM2My1jZWI4LTg5ZWVhNTllNGVlYy1hNWI5ZjkyYiwgI3ctbm9kZS1jZWIwZDg1OS1jNDEwLThjNjMtY2ViOC04OWVlYTU5ZTRlZjItYTViOWY5MmIsICN3LW5vZGUtY2ViMGQ4NTktYzQxMC04YzYzLWNlYjgtODllZWE1OWU0ZWY4LWE1YjlmOTJiLCAjdy1ub2RlLV8yNmE1ZjBiYS1jNzgwLWFlOWYtNGMwMy1jNTUyNzNjOTE1NjItYTViOWY5MmIsICN3LW5vZGUtXzI1Njk0OWU3LTIzZGYtNWJmOC1kOTJiLTEyMDIxMzljN2Y4Zi1hNWI5ZjkyYiwgI3ctbm9kZS1fNGJmNGZmZjUtYmIzNS00MGM5LTM0YWUtNzlhZDRlZDQ5ZWFkLWE1YjlmOTJiLCAjdy1ub2RlLWM3NWFjNDllLWM0YTYtMWI0MS01MmZiLWNhNTcwNzgwMmM0MS1hNWI5ZjkyYiwgI3ctbm9kZS1mNWE3MDU1OS1lMGJkLTU3YzQtZmI4YS04NGYxOTJmM2I4ZDMtYTViOWY5MmIsICN3LW5vZGUtXzlhMTA2ZWM0LTUzZmMtZjExMy04MDkzLThiNDc3NTA5ZGRhMi1hNWI5ZjkyYiwgI3ctbm9kZS1fOWExMDZlYzQtNTNmYy1mMTEzLTgwOTMtOGI0Nzc1MDlkZGE4LWE1YjlmOTJiLCAjdy1ub2RlLV8zOWYxYzk1Ny1lNjRmLTAzZTgtN2ZkMS1lOTE3YzQwYjFjNjAtYTViOWY5MmIsICN3LW5vZGUtYWVlMWZkYmUtMTM4Ny00Mzk3LWU5OTMtZDIxYzM2M2RkOGJhLWE1YjlmOTJiLCAjdy1ub2RlLWEwM2U1MWQ4LWEwZWQtNDBmZC0zNjdhLWZiZTljNjIxMzZlMi1hNWI5ZjkyYiwgI3ctbm9kZS1hMDNlNTFkOC1hMGVkLTQwZmQtMzY3YS1mYmU5YzYyMTM2ZGItYTViOWY5MmIsICN3LW5vZGUtZGMwOTczYTctZTQyNS05ZjJhLTZjYTAtMmNjMDA3OGUzN2E1LWE1YjlmOTJiLCAjdy1ub2RlLWRjMDk3M2E3LWU0MjUtOWYyYS02Y2EwLTJjYzAwNzhlMzdhYy1hNWI5ZjkyYiwgI3ctbm9kZS1fNmE5NGUwOWQtZGM4Ni1iYmQyLWQyZjMtYzM1YjA1YmJlMjU3LWE1YjlmOTJiLCAjdy1ub2RlLV82YTk0ZTA5ZC1kYzg2LWJiZDItZDJmMy1jMzViMDViYmUyNTktYTViOWY5MmIsICN3LW5vZGUtXzdkNGFmZTE2LTUzNGMtN2RhOS1hMWYxLTcwMWM2OGIzZjJjNi1hNWI5ZjkyYiwgI3ctbm9kZS1fN2Q0YWZlMTYtNTM0Yy03ZGE5LWExZjEtNzAxYzY4YjNmMmQzLWE1YjlmOTJiIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLV82MTkxNGZhMWYzMDI4YWQzNGMxYzQ4MGIwMDAwMDAwMDAwMTQtNDBiOWY5MmYgewogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICB9CiAgCiAgI3ctbm9kZS1fMjM5ZGQ1MmMtMGM3Yy1kMjYyLWQxODEtOTUyYmJiYTFkZjMxLTE0YjlmOTMyLCAjdy1ub2RlLV80ODE3OWM0Mi04NzgwLWRiMzAtYmEwMS0xYzIyZmVhMDdhYjQtMTRiOWY5MzIsICN3LW5vZGUtYWZmMWNkMmQtMmQ0My0zMDkyLTJlNzktOGRjOTZmMTBhOWRkLWQ4ZWYxMWI4IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLV84YTdlYWY3OC1hN2JiLTcxNGYtYjk3OC04MmRjYTg4OTcyOWUtZDhlZjExYjggewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDIgLyBzcGFuIDEgLyBzcGFuIDI7CiAgfQogIAogICN3LW5vZGUtXzgwODQ2ZTdkLWM4NzItZjQwNy0xZDIyLTRmZDdhYzY5N2ZmYS1kOGVmMTFiOCwgI3ctbm9kZS1fMzc5ZjMyYjAtZDc2Mi1mNDU2LWU5OTItZmEzY2JjZDg0ZmFmLWQ4ZWYxMWI4IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLWVhN2MyN2I0LWQ4NzYtMDUzMi1iYzBjLWUyNjc3NDliNTNhYy1kOGVmMTFiOCB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIGp1c3RpZnktc2VsZjogZW5kOwogIH0KICAKICAjdy1ub2RlLV82YzkwYWRlMy05MTFlLWMyN2QtODUzMi1mZDc0MjJlNDgyOTgtZDhlZjExYjggewogICAgZ3JpZC1hcmVhOiBzcGFuIDIgLyBzcGFuIDEgLyBzcGFuIDIgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtXzNiYTRkZDBkLWE3ODgtOTc3NS1kZWExLWRlOTRlMDkyYzFjNi1kOGVmMTFiOCwgI3ctbm9kZS1fOTgwMGM2MmEtZjk0MC05NWUyLWE3ZTAtZGYwOWFjOGFlZDE1LWQ4ZWYxMWI4LCAjdy1ub2RlLWI3ZGI0MzQyLTIxYWYtNmQxZi0xNmY0LWJhYjQzZjJjYWQ5MC1kOGVmMTFiOCwgI3ctbm9kZS1fNWQzMjYzM2ItMjgyYy1lODdmLWM4YTItMmQ0ZGUyNWE2MzgwLWQ4ZWYxMWI4LCAjdy1ub2RlLV82OTMwMmUzNS0yY2Q1LWY4YTctYTI2ZS02ZmM0MDllOWUwNGUtZDhlZjExYjgsICN3LW5vZGUtXzgwMzgxMjZiLWQyYWQtMmE4Yi03ZjVlLTlmNmY3MDExOGI2YS1kOGVmMTFiOCwgI3ctbm9kZS1fMTE1MDdhZDgtNGZkNS02MDdmLTYxNjMtYjc5MzhiM2Q2NDIzLWQ4ZWYxMWI4LCAjdy1ub2RlLV8yODcyNTVlMy1iZmRjLWY2OTktMmUzZC0wZTRmMzUwNjQ0NjMtZDhlZjExYjggewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtXzllYjlmNmYxLThkZWMtMGRiOC0zZmVjLTA4YjlmMTk5OWE1My1kOGVmMTFiOCB7CiAgICBqdXN0aWZ5LXNlbGY6IGVuZDsKICB9CiAgCiAgI3ctbm9kZS1fOGEyNzcxMmYtMmIzYi00OTRiLTYyN2UtYjIzMjVkYzg1ODE4LWQ4ZWYxMWI4IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLV8zNWUwNzkyNS0yY2Q1LWVmY2ItMDE5MC0xYzNjMzQ0YzlhNWUtZDhlZjExYjggewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogIH0KICAKICAjdy1ub2RlLWJhZDQxYjRmLTc3ZGEtNjE2OS0zMDg3LWQwYmI4MzRkZmUzZS1kOGVmMTFiOCwgI3ctbm9kZS1fNmViZjk3ODgtMzgwOS1jYmQ2LTJhNTItZDcwZDFkYTc4MjFlLWQ4ZWYxMWI4IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLV8zN2U5MDI5ZS1kNTk5LTA1MDYtMmFiYi05ODA3ZTk2YzkyMzEtZDhlZjExYjggewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogIH0KICAKICAjdy1ub2RlLWU2YWRhMzdiLWMzMDMtZjZmMi1iMzkzLTc0MWVjZjUyZjVmYy1kOGVmMTFiOCB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICB9CiAgCiAgI3ctbm9kZS1fNDhjM2Y1M2QtYmYxYy0wMWMyLWNkOGItZDU2NjFjY2QzNGM0LWRhMjQyNGJlIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogICAgYWxpZ24tc2VsZjogc3RhcnQ7CiAgfQogIAogICN3LW5vZGUtXzAyNzFkY2MwLWZmZGEtZTQ5Yy01YmEzLTE1YTc1NTAwMWIyYy1kYTI0MjRiZSB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICB9CiAgCiAgI3ctbm9kZS1kNGRjYzJhMi05NjEzLWVkNjAtZDdiZi1kYzI3NTQ2Zjk0ODQtZGEyNDI0YmUgewogICAgcGxhY2Utc2VsZjogc3RhcnQgZW5kOwogIH0KICAKICAjdy1ub2RlLV8xZTM0NGRiNS0zNDUyLThkOTItNmNkYi05YTgyZWI5YTZjMDgtYjBhYWQ3ZjMgewogICAgZ3JpZC1hcmVhOiBzcGFuIDIgLyBzcGFuIDEgLyBzcGFuIDIgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtXzc1MmIxMDYwLTk4MGQtMzM0Yi1iYzc4LTEwODk3YTI4ZDQyOS1iMGFhZDdmMyB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICB9CiAgCiAgI3ctbm9kZS1fMzY1MzY1YjQtZmViYi05ODZkLWY5YzUtYTdhNjEwNjdiODNkLTkxMmRjYjJjIHsKICAgIHBsYWNlLXNlbGY6IGNlbnRlciBlbmQ7CiAgfQogIAogICN3LW5vZGUtXzM2NTM2NWI0LWZlYmItOTg2ZC1mOWM1LWE3YTYxMDY3Yjg1Yy05MTJkY2IyYyB7CiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgfQogIAogICN3LW5vZGUtXzEyMzNhYjQ0LTZmNzktNmIzNy00Zjk4LTNiYTE5YjJiOTlkMi05MTJkY2IyYyB7CiAgICBwbGFjZS1zZWxmOiBjZW50ZXIgZW5kOwogIH0KICAKICAjdy1ub2RlLV85ZTBiZTEwNS03MTQxLTg2OGQtZjc5OC0zYWE0OTMxMjFmZWMtOTEyZGNiMmMgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgICBqdXN0aWZ5LXNlbGY6IGVuZDsKICB9CiAgCiAgI3ctbm9kZS1fOWUwYmUxMDUtNzE0MS04NjhkLWY3OTgtM2FhNDkzMTIxZmU5LTkxMmRjYjJjLCAjdy1ub2RlLV8wNjdiZTlhYS0yNGMzLWVmYWUtMTI4NC02OTgxMTcxYzFlMTAtNTlkMDAwYzggewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtXzVhODYyYzg1LWUzMDAtMWU3ZC1hNGY2LWQ0MGQ0YjYwODQ1MC01OWQwMDBjOCwgI3ctbm9kZS1fNGZkNGQ5NGUtNTkwYS1lN2QzLTBhNzMtNWM3ZTkyOTJmOWFjLTU5ZDAwMGM4LCAjdy1ub2RlLV82ZTIwYzI0OS02N2JkLTljNWItNzkyNy0zMmY4NDdhNjJkMzAtNTlkMDAwYzgsICN3LW5vZGUtXzNmMDk3YmJkLTI4MzUtODIyNC1mNTcyLTkxZDcyYzlhZTAwYy01OWQwMDBjOCwgI3ctbm9kZS1fODI1MmRlZGMtZDgxZS0xOTE3LTY3MmMtMzFjMTAyNDAxN2Y5LTU5ZDAwMGM4LCAjdy1ub2RlLWE0NjNhNTRkLTA1OGItYjI3ZC1hZjE3LTUyNThjNTRhYmI1MS01OWQwMDBjOCwgI3ctbm9kZS1fODQwMzA1ZjAtYTcxZS00MmI4LWY2N2UtMTlhYzFhYzE3ZTg4LTU5ZDAwMGM4LCAjdy1ub2RlLV84NDAzMDVmMC1hNzFlLTQyYjgtZjY3ZS0xOWFjMWFjMTdlOGItNTlkMDAwYzgsICN3LW5vZGUtXzg0MDMwNWYwLWE3MWUtNDJiOC1mNjdlLTE5YWMxYWMxN2U4ZS01OWQwMDBjOCwgI3ctbm9kZS1mZTcxNTEyZC01NDAyLTI3YWUtMzgzMC05ODU1ODMwNzFkNDYtNTlkMDAwYzgsICN3LW5vZGUtZmU3MTUxMmQtNTQwMi0yN2FlLTM4MzAtOTg1NTgzMDcxZDQ5LTU5ZDAwMGM4LCAjdy1ub2RlLWZlNzE1MTJkLTU0MDItMjdhZS0zODMwLTk4NTU4MzA3MWQ0Yy01OWQwMDBjOCwgI3ctbm9kZS1mYzA4NjU0OS0wNWMzLTkzZDctZTViOC05N2I2M2E4OTk1MWQtNTlkMDAwYzgsICN3LW5vZGUtZmMwODY1NDktMDVjMy05M2Q3LWU1YjgtOTdiNjNhODk5NTIwLTU5ZDAwMGM4LCAjdy1ub2RlLWZjMDg2NTQ5LTA1YzMtOTNkNy1lNWI4LTk3YjYzYTg5OTUyMy01OWQwMDBjOCwgI3ctbm9kZS1fOGFjMjMyMmEtYmFmMi00NWJjLTNmMTEtMzEwYzI2MmI3YWQ1LTU5ZDAwMGM4LCAjdy1ub2RlLV84YWMyMzIyYS1iYWYyLTQ1YmMtM2YxMS0zMTBjMjYyYjdhZDgtNTlkMDAwYzgsICN3LW5vZGUtXzhhYzIzMjJhLWJhZjItNDViYy0zZjExLTMxMGMyNjJiN2FkYi01OWQwMDBjOCwgI3ctbm9kZS1fMGMxNDE3MzktYjY2OC0wMmU5LWI4MmUtM2JkMTVhNjI3N2QxLTU5ZDAwMGM4LCAjdy1ub2RlLV8wYzE0MTczOS1iNjY4LTAyZTktYjgyZS0zYmQxNWE2Mjc3ZDQtNTlkMDAwYzgsICN3LW5vZGUtXzBjMTQxNzM5LWI2NjgtMDJlOS1iODJlLTNiZDE1YTYyNzdkNy01OWQwMDBjOCB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIHBsYWNlLXNlbGY6IGNlbnRlcjsKICB9CiAgCiAgI3ctbm9kZS1fMTliYTdhZDktOTJkNy02ZjBiLWIyNjctYjhhYzgxZjhmZWNkLTU5ZDAwMGM4IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLV8xOWJhN2FkOS05MmQ3LTZmMGItYjI2Ny1iOGFjODFmOGZlZDQtNTlkMDAwYzgsICN3LW5vZGUtXzE5YmE3YWQ5LTkyZDctNmYwYi1iMjY3LWI4YWM4MWY4ZmVmZS01OWQwMDBjOCB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIHBsYWNlLXNlbGY6IGNlbnRlcjsKICB9CiAgCiAgI3ctbm9kZS1kOTBlMjgyYS0wZWRhLTNmMGItYjJmMi0zZTUyZTI1NjE3MTctNTlkMDAwYzggewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtZDkwZTI4MmEtMGVkYS0zZjBiLWIyZjItM2U1MmUyNTYxNzFlLTU5ZDAwMGM4LCAjdy1ub2RlLWQ5MGUyODJhLTBlZGEtM2YwYi1iMmYyLTNlNTJlMjU2MTczMi01OWQwMDBjOCwgI3ctbm9kZS1kOTBlMjgyYS0wZWRhLTNmMGItYjJmMi0zZTUyZTI1NjE3NGUtNTlkMDAwYzgsICN3LW5vZGUtZDkwZTI4MmEtMGVkYS0zZjBiLWIyZjItM2U1MmUyNTYxNzVlLTU5ZDAwMGM4IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogICAgcGxhY2Utc2VsZjogY2VudGVyOwogIH0KICAKICAjdy1ub2RlLV84ZWE4ZGMwNC1jZjMyLWZjZDgtMzVhMS02YTJmYTczYzhlMmYtNTlkMDAwYzggewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtXzhlYThkYzA0LWNmMzItZmNkOC0zNWExLTZhMmZhNzNjOGUzYy01OWQwMDBjOCwgI3ctbm9kZS1fOGVhOGRjMDQtY2YzMi1mY2Q4LTM1YTEtNmEyZmE3M2M4ZTRhLTU5ZDAwMGM4LCAjdy1ub2RlLV84ZWE4ZGMwNC1jZjMyLWZjZDgtMzVhMS02YTJmYTczYzhlNTgtNTlkMDAwYzgsICN3LW5vZGUtXzhlYThkYzA0LWNmMzItZmNkOC0zNWExLTZhMmZhNzNjOGU2Ni01OWQwMDBjOCwgI3ctbm9kZS1fOGVhOGRjMDQtY2YzMi1mY2Q4LTM1YTEtNmEyZmE3M2M4ZTc2LTU5ZDAwMGM4LCAjdy1ub2RlLV84ZWE4ZGMwNC1jZjMyLWZjZDgtMzVhMS02YTJmYTczYzhlODYtNTlkMDAwYzgsICN3LW5vZGUtXzhlYThkYzA0LWNmMzItZmNkOC0zNWExLTZhMmZhNzNjOGU5Ni01OWQwMDBjOCB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIHBsYWNlLXNlbGY6IGNlbnRlcjsKICB9CiAgCiAgI3ctbm9kZS1fOGE0YThmNzYtOTA5YS01M2VhLTQ5NjUtZjJmOTZiNzQzMzQzLTFiYjVjOTE1IHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAyIC8gc3BhbiAxIC8gc3BhbiAyOwogIH0KICAKICAjdy1ub2RlLV84YTRhOGY3Ni05MDlhLTUzZWEtNDk2NS1mMmY5NmI3NDMzNDctMWJiNWM5MTUgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDIgLyBzcGFuIDEgLyBzcGFuIDI7CiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0OwogIH0KICAKICAjdy1ub2RlLV85NWI3ZGViMS05ZjExLThmNmEtNmVlNi02ODIyOGI2NWM0OWItMWJiNWM5MTUsICN3LW5vZGUtXzk2MGQwMzhhLTYzZGQtYmJjOC0wNzZmLTgwYWM4MGI5YTVkMS0xYmI1YzkxNSwgI3ctbm9kZS1fMDUxY2RmZGMtZjI5MS0yYTc0LWYyYTYtNWE3N2ZiMWZiNmQ1LTFiYjVjOTE1IHsKICAgIHBsYWNlLXNlbGY6IGNlbnRlciBlbmQ7CiAgfQogIAogICN3LW5vZGUtXzJiMjk3YjNmLWYxYTUtYmE5Mi0yNGJjLWMyZjhhM2YyZmMyYS1hNzZkMmE5MSwgI3ctbm9kZS1fMmIyOTdiM2YtZjFhNS1iYTkyLTI0YmMtYzJmOGEzZjJmYzJiLWE3NmQyYTkxIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAyIC8gc3BhbiAxIC8gc3BhbiAyOwogIH0KICAKICAjdy1ub2RlLV82MTllZDRkZC1mNGZkLTg3YWMtYTVjNy03MjJlOGY3NTU5YjAtYTc2ZDJhOTEsICN3LW5vZGUtXzgyYTQxYzlkLTE4NTAtODBlYS1mYmU2LTE0YzBmYzYxZTI3OS1hNzZkMmE5MSB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICB9CiAgCiAgI3ctbm9kZS1fODJhNDFjOWQtMTg1MC04MGVhLWZiZTYtMTRjMGZjNjFlMjdiLWE3NmQyYTkxIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogICAgcGxhY2Utc2VsZjogZW5kOwogIH0KICAKICAjdy1ub2RlLV8xMzZiNTBkYS0yMTA1LTM2ZWMtZmI1MS0wNGRiNDk4ZjNiYTgtYTc2ZDJhOTEgewogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICB9CiAgCiAgI3ctbm9kZS1fNGZmYWVlNWItYWYxOS0zMjE1LTQyZTctMzJkOGNkMGMzMjA4LWE3NmQyYTkxIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLV8yMmMyNDQ0MS1jNmU1LTBlYjAtMDZkNy1hZjUyYjdlZmY5ZjYtYTc2ZDJhOTEgewogICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICB9CiAgCiAgI3ctbm9kZS1fMjJjMjQ0NDEtYzZlNS0wZWIwLTA2ZDctYWY1MmI3ZWZmOWZmLWE3NmQyYTkxIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLWI1MDhkMDAzLWE5YjgtOTZlZi04YTE4LThmZmE3MWY0YzQyNC1hNzZkMmE5MSB7CiAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogIH0KICAKICAjdy1ub2RlLWI1MDhkMDAzLWE5YjgtOTZlZi04YTE4LThmZmE3MWY0YzQyZi1hNzZkMmE5MSwgI3ctbm9kZS1iOTYzZmE0Yy02ZDNkLWZkM2EtMWY1OS1kNzhlZmE5MjE4ODktYTc2ZDJhOTEsICN3LW5vZGUtYjk2M2ZhNGMtNmQzZC1mZDNhLTFmNTktZDc4ZWZhOTIxODhiLWE3NmQyYTkxLCAjdy1ub2RlLWI5NjNmYTRjLTZkM2QtZmQzYS0xZjU5LWQ3OGVmYTkyMTg4ZS1hNzZkMmE5MSwgI3ctbm9kZS1iOTYzZmE0Yy02ZDNkLWZkM2EtMWY1OS1kNzhlZmE5MjE4OGYtYTc2ZDJhOTEgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtXzRmYTQ4ZDM2LTRmMmItMDg3Yy1iODhmLTcxNzhiY2Y2YjE2NC00MzBjN2MzYSB7CiAgICBhbGlnbi1zZWxmOiBzdGFydDsKICB9CiAgCiAgI3ctbm9kZS1fMTk0NjY3ZDYtZTNmOS05YjVmLTJlN2UtYWI0M2JhZDM0YWUxLTQzMGM3YzNhIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogICAgcGxhY2Utc2VsZjogc3RhcnQgZW5kOwogIH0KICAKICAjdy1ub2RlLWFiNDU5MmNiLTY5MzMtZGMyOC1mYWUzLTRmMTVmYTU0Y2JmMy00MzBjN2MzYSB7CiAgICBhbGlnbi1zZWxmOiBzdGFydDsKICB9CiAgCiAgI3ctbm9kZS1fMzI2N2UwNmEtMGE4Ny1iMGY2LTdhODgtMDNkZWE0MTdkNjFlLTZjNzM1ZTMwIHsKICAgIGp1c3RpZnktc2VsZjogZW5kOwogIH0KICAKICAjdy1ub2RlLV8wNjdiZTlhYS0yNGMzLWVmYWUtMTI4NC02OTgxMTcxYzFlMTAtZWJlM2JhMGYgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtXzVhODYyYzg1LWUzMDAtMWU3ZC1hNGY2LWQ0MGQ0YjYwODQ1MC1lYmUzYmEwZiwgI3ctbm9kZS1fNGZkNGQ5NGUtNTkwYS1lN2QzLTBhNzMtNWM3ZTkyOTJmOWFjLWViZTNiYTBmLCAjdy1ub2RlLV82ZTIwYzI0OS02N2JkLTljNWItNzkyNy0zMmY4NDdhNjJkMzAtZWJlM2JhMGYsICN3LW5vZGUtXzNmMDk3YmJkLTI4MzUtODIyNC1mNTcyLTkxZDcyYzlhZTAwYy1lYmUzYmEwZiwgI3ctbm9kZS1fODI1MmRlZGMtZDgxZS0xOTE3LTY3MmMtMzFjMTAyNDAxN2Y5LWViZTNiYTBmLCAjdy1ub2RlLWE0NjNhNTRkLTA1OGItYjI3ZC1hZjE3LTUyNThjNTRhYmI1MS1lYmUzYmEwZiwgI3ctbm9kZS1fODQwMzA1ZjAtYTcxZS00MmI4LWY2N2UtMTlhYzFhYzE3ZTg4LWViZTNiYTBmLCAjdy1ub2RlLV84NDAzMDVmMC1hNzFlLTQyYjgtZjY3ZS0xOWFjMWFjMTdlOGItZWJlM2JhMGYsICN3LW5vZGUtXzg0MDMwNWYwLWE3MWUtNDJiOC1mNjdlLTE5YWMxYWMxN2U4ZS1lYmUzYmEwZiwgI3ctbm9kZS1mZTcxNTEyZC01NDAyLTI3YWUtMzgzMC05ODU1ODMwNzFkNDYtZWJlM2JhMGYsICN3LW5vZGUtZmU3MTUxMmQtNTQwMi0yN2FlLTM4MzAtOTg1NTgzMDcxZDQ5LWViZTNiYTBmLCAjdy1ub2RlLWZlNzE1MTJkLTU0MDItMjdhZS0zODMwLTk4NTU4MzA3MWQ0Yy1lYmUzYmEwZiwgI3ctbm9kZS1mYzA4NjU0OS0wNWMzLTkzZDctZTViOC05N2I2M2E4OTk1MWQtZWJlM2JhMGYsICN3LW5vZGUtZmMwODY1NDktMDVjMy05M2Q3LWU1YjgtOTdiNjNhODk5NTIwLWViZTNiYTBmLCAjdy1ub2RlLWZjMDg2NTQ5LTA1YzMtOTNkNy1lNWI4LTk3YjYzYTg5OTUyMy1lYmUzYmEwZiwgI3ctbm9kZS1fOGFjMjMyMmEtYmFmMi00NWJjLTNmMTEtMzEwYzI2MmI3YWQ1LWViZTNiYTBmLCAjdy1ub2RlLV84YWMyMzIyYS1iYWYyLTQ1YmMtM2YxMS0zMTBjMjYyYjdhZDgtZWJlM2JhMGYsICN3LW5vZGUtXzhhYzIzMjJhLWJhZjItNDViYy0zZjExLTMxMGMyNjJiN2FkYi1lYmUzYmEwZiwgI3ctbm9kZS1fMGMxNDE3MzktYjY2OC0wMmU5LWI4MmUtM2JkMTVhNjI3N2QxLWViZTNiYTBmLCAjdy1ub2RlLV8wYzE0MTczOS1iNjY4LTAyZTktYjgyZS0zYmQxNWE2Mjc3ZDQtZWJlM2JhMGYsICN3LW5vZGUtXzBjMTQxNzM5LWI2NjgtMDJlOS1iODJlLTNiZDE1YTYyNzdkNy1lYmUzYmEwZiB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIHBsYWNlLXNlbGY6IGNlbnRlcjsKICB9CiAgCiAgI3ctbm9kZS1fMTliYTdhZDktOTJkNy02ZjBiLWIyNjctYjhhYzgxZjhmZWNkLWViZTNiYTBmIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogIH0KICAKICAjdy1ub2RlLV8xOWJhN2FkOS05MmQ3LTZmMGItYjI2Ny1iOGFjODFmOGZlZDQtZWJlM2JhMGYsICN3LW5vZGUtXzE5YmE3YWQ5LTkyZDctNmYwYi1iMjY3LWI4YWM4MWY4ZmVmZS1lYmUzYmEwZiB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIHBsYWNlLXNlbGY6IGNlbnRlcjsKICB9CiAgCiAgI3ctbm9kZS1kOTBlMjgyYS0wZWRhLTNmMGItYjJmMi0zZTUyZTI1NjE3MTctZWJlM2JhMGYgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtZDkwZTI4MmEtMGVkYS0zZjBiLWIyZjItM2U1MmUyNTYxNzFlLWViZTNiYTBmLCAjdy1ub2RlLWQ5MGUyODJhLTBlZGEtM2YwYi1iMmYyLTNlNTJlMjU2MTczMi1lYmUzYmEwZiwgI3ctbm9kZS1kOTBlMjgyYS0wZWRhLTNmMGItYjJmMi0zZTUyZTI1NjE3NGUtZWJlM2JhMGYsICN3LW5vZGUtZDkwZTI4MmEtMGVkYS0zZjBiLWIyZjItM2U1MmUyNTYxNzVlLWViZTNiYTBmIHsKICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogICAgcGxhY2Utc2VsZjogY2VudGVyOwogIH0KICAKICAjdy1ub2RlLV84ZWE4ZGMwNC1jZjMyLWZjZDgtMzVhMS02YTJmYTczYzhlMmYtZWJlM2JhMGYgewogICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgfQogIAogICN3LW5vZGUtXzhlYThkYzA0LWNmMzItZmNkOC0zNWExLTZhMmZhNzNjOGUzYy1lYmUzYmEwZiwgI3ctbm9kZS1fOGVhOGRjMDQtY2YzMi1mY2Q4LTM1YTEtNmEyZmE3M2M4ZTRhLWViZTNiYTBmLCAjdy1ub2RlLV84ZWE4ZGMwNC1jZjMyLWZjZDgtMzVhMS02YTJmYTczYzhlNTgtZWJlM2JhMGYsICN3LW5vZGUtXzhlYThkYzA0LWNmMzItZmNkOC0zNWExLTZhMmZhNzNjOGU2Ni1lYmUzYmEwZiwgI3ctbm9kZS1fOGVhOGRjMDQtY2YzMi1mY2Q4LTM1YTEtNmEyZmE3M2M4ZTc2LWViZTNiYTBmLCAjdy1ub2RlLV84ZWE4ZGMwNC1jZjMyLWZjZDgtMzVhMS02YTJmYTczYzhlODYtZWJlM2JhMGYsICN3LW5vZGUtXzhlYThkYzA0LWNmMzItZmNkOC0zNWExLTZhMmZhNzNjOGU5Ni1lYmUzYmEwZiB7CiAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIHBsYWNlLXNlbGY6IGNlbnRlcjsKICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7CiAgICAjdy1ub2RlLV8xMzZiNTBkYS0yMTA1LTM2ZWMtZmI1MS0wNGRiNDk4ZjNiYTgtYTc2ZDJhOTEsICN3LW5vZGUtXzIyYzI0NDQxLWM2ZTUtMGViMC0wNmQ3LWFmNTJiN2VmZjlmNi1hNzZkMmE5MSwgI3ctbm9kZS1iNTA4ZDAwMy1hOWI4LTk2ZWYtOGExOC04ZmZhNzFmNGM0MjQtYTc2ZDJhOTEgewogICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgfQogIH0KICAKICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDQwcHgpIHsKICAgICN3LW5vZGUtYjIzZGUyOWYtMzNlNy0xYTQ1LTVjNzgtYzBlN2M5NzczMzNlLWM5NzczMzNhIHsKICAgICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgfQogIAogICAgI3ctbm9kZS1fMTM2YjUwZGEtMjEwNS0zNmVjLWZiNTEtMDRkYjQ5OGYzYmE4LWE3NmQyYTkxLCAjdy1ub2RlLV8yMmMyNDQ0MS1jNmU1LTBlYjAtMDZkNy1hZjUyYjdlZmY5ZjYtYTc2ZDJhOTEsICN3LW5vZGUtYjUwOGQwMDMtYTliOC05NmVmLThhMTgtOGZmYTcxZjRjNDI0LWE3NmQyYTkxIHsKICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDsKICAgIH0KICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHsKICAgICN3LW5vZGUtXzE0NDhjMDM3LWQzNGQtZmQ1ZC1hOWEzLWVhNDJiMGIzYzM0YS04ZGI5ZjkwYiB7CiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyOwogICAgfQogIAogICAgI3ctbm9kZS1iMjNkZTI5Zi0zM2U3LTFhNDUtNWM3OC1jMGU3Yzk3NzMzM2UtYzk3NzMzM2EgewogICAgICBvcmRlcjogOTk5OTsKICAgIH0KICAKICAgICN3LW5vZGUtXzNhZTAyNGU5LTE4ZjctOWI1Zi00NTEzLTBiZjE1NGUyOTU4Yy04YmI5ZjkxNyB7CiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyOwogICAgfQogIAogICAgI3ctbm9kZS1mNGYzZDBmYy04YzE0LThjNWMtYzM0MC00YTVjODcwMmM0YzgtMmZiOWY5MTggewogICAgICBvcmRlcjogOTk5OTsKICAgIH0KICAKICAgICN3LW5vZGUtZDNhNGU2NTktMzZkNC1jNDY4LWFlNDEtYmRlYjhkYmY5OThlLTRiYjlmOTFjIHsKICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7CiAgICB9CiAgCiAgICAjdy1ub2RlLWUyODBmMWMwLWNjNWUtOTdiMC00YTRlLTdjM2MyZjZkZWJjMS0yZjZkZWJiZCB7CiAgICAgIGp1c3RpZnktc2VsZjogYXV0bzsKICAgIH0KICAKICAgICN3LW5vZGUtYTAzZTUxZDgtYTBlZC00MGZkLTM2N2EtZmJlOWM2MjEzNmRiLWE1YjlmOTJiLCAjdy1ub2RlLV82YTk0ZTA5ZC1kYzg2LWJiZDItZDJmMy1jMzViMDViYmUyNTktYTViOWY5MmIgewogICAgICBvcmRlcjogLTk5OTk7CiAgICB9CiAgCiAgICAjdy1ub2RlLV82YzkwYWRlMy05MTFlLWMyN2QtODUzMi1mZDc0MjJlNDgyOTgtZDhlZjExYjggewogICAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMiAvIHNwYW4gMSAvIHNwYW4gMjsKICAgIH0KICAKICAgICN3LW5vZGUtXzQyOTZjZTRkLTZhYTQtMTNkNi1iOGQ0LTU5NmY0YjI1ZTkxMy1kOGVmMTFiOCB7CiAgICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxIC8gc3BhbiAxOwogICAgfQogIAogICAgI3ctbm9kZS1fOWViOWY2ZjEtOGRlYy0wZGI4LTNmZWMtMDhiOWYxOTk5YTUzLWQ4ZWYxMWI4IHsKICAgICAganVzdGlmeS1zZWxmOiBhdXRvOwogICAgfQogIAogICAgI3ctbm9kZS1fOGEyNzcxMmYtMmIzYi00OTRiLTYyN2UtYjIzMjVkYzg1ODE4LWQ4ZWYxMWI4IHsKICAgICAgcGxhY2Utc2VsZjogYXV0bzsKICAgIH0KICAKICAgICN3LW5vZGUtZDRkY2MyYTItOTYxMy1lZDYwLWQ3YmYtZGMyNzU0NmY5NDg0LWRhMjQyNGJlIHsKICAgICAganVzdGlmeS1zZWxmOiBhdXRvOwogICAgfQogIAogICAgI3ctbm9kZS1fMWUzNDRkYjUtMzQ1Mi04ZDkyLTZjZGItOWE4MmViOWE2YzA4LWIwYWFkN2YzIHsKICAgICAgZ3JpZC1yb3c6IHNwYW4gMSAvIHNwYW4gMTsKICAgIH0KICAKICAgICN3LW5vZGUtXzc1MmIxMDYwLTk4MGQtMzM0Yi1iYzc4LTEwODk3YTI4ZDQxNS1iMGFhZDdmMyB7CiAgICAgIG9yZGVyOiAtOTk5OTsKICAgIH0KICAKICAgICN3LW5vZGUtYjk2M2ZhNGMtNmQzZC1mZDNhLTFmNTktZDc4ZWZhOTIxODhkLWE3NmQyYTkxIHsKICAgICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgICB9CiAgCiAgICAjdy1ub2RlLV8zMjY3ZTA2YS0wYTg3LWIwZjYtN2E4OC0wM2RlYTQxN2Q2MjAtNmM3MzVlMzAgewogICAgICBvcmRlcjogLTk5OTk7CiAgICB9CiAgCiAgICAjdy1ub2RlLV8zMjY3ZTA2YS0wYTg3LWIwZjYtN2E4OC0wM2RlYTQxN2Q2MWUtNmM3MzVlMzAgewogICAgICBqdXN0aWZ5LXNlbGY6IGF1dG87CiAgICB9CiAgfQogIAogIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7CiAgICAjdy1ub2RlLV8xNDQ4YzAzNy1kMzRkLWZkNWQtYTlhMy1lYTQyYjBiM2MzNGEtOGRiOWY5MGIgewogICAgICBqdXN0aWZ5LXNlbGY6IHN0cmV0Y2g7CiAgICB9CiAgCiAgICAjdy1ub2RlLV81MzhiM2Q3ZC1iZTQ4LTNkNDYtNTc5OS0zMjExYmEyMWZlMWEtYzk3NzMzM2EsICN3LW5vZGUtZDY0MDI3YTItMDk3ZS05Zjg5LTBiYTYtY2RjMGY4NGNmNTYzLTE4NjI4NzY5IHsKICAgICAganVzdGlmeS1zZWxmOiBhdXRvOwogICAgfQogIAogICAgI3ctbm9kZS1lMjgwZjFjMC1jYzVlLTk3YjAtNGE0ZS03YzNjMmY2ZGViYzEtMmY2ZGViYmQgewogICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjsKICAgIH0KICAKICAgICN3LW5vZGUtXzJkNjhiY2VkLTlkZTQtYjRjMC0zNmZiLTg3OWIzOGYyMTNlNy0zOGYyMTM4ZiwgI3ctbm9kZS1fOGJjMjE3MzMtYmVkMy0yYTZjLTgyNjItMTNjOTlkNzhhZDQ0LTY4NTk4MjdmIHsKICAgICAganVzdGlmeS1zZWxmOiBhdXRvOwogICAgfQogIAogICAgI3ctbm9kZS1hMDNlNTFkOC1hMGVkLTQwZmQtMzY3YS1mYmU5YzYyMTM2ZGItYTViOWY5MmIsICN3LW5vZGUtXzZhOTRlMDlkLWRjODYtYmJkMi1kMmYzLWMzNWIwNWJiZTI1OS1hNWI5ZjkyYiwgI3ctbm9kZS1lM2E5MGY3NS1kNDcwLTcwOTctYmJiZS01NWE5MzM4MDlkYTMtMTRiOWY5MzIsICN3LW5vZGUtXzRkMjNkOWMzLTMyYWEtMDAxYi0wNTk2LWU1YTY1OTMxYWVmOS0xNGI5ZjkzMiwgI3ctbm9kZS1fNWQwY2Y0MWQtMTE3Mi02MDAwLTUwNWMtNWFiYzIzMDY1NjllLTE0YjlmOTMyLCAjdy1ub2RlLWFlMzZhMTFkLTlhYTYtOWI5OS0xYzRlLTgxMmMzY2NmMWI2Zi0xNGI5ZjkzMiwgI3ctbm9kZS1fNDM5ODcwZTgtM2RjNy1mMjRiLWFjMzItYTY3Zjc3OTRhMGU5LTE0YjlmOTMyLCAjdy1ub2RlLV81MjlmNTE4MC01NTdlLTAwMTEtYThjNy1kNDEzYmQ2OTBlYzUtMTRiOWY5MzIsICN3LW5vZGUtXzUyOWY1MTgwLTU1N2UtMDAxMS1hOGM3LWQ0MTNiZDY5MGVkMC0xNGI5ZjkzMiwgI3ctbm9kZS1fNTI5ZjUxODAtNTU3ZS0wMDExLWE4YzctZDQxM2JkNjkwZWRiLTE0YjlmOTMyLCAjdy1ub2RlLV81MjlmNTE4MC01NTdlLTAwMTEtYThjNy1kNDEzYmQ2OTBlZTYtMTRiOWY5MzIsICN3LW5vZGUtXzNlN2EzNzUwLTIwM2ItNGY2NS1iMmZmLTcxOTMwMTBjMzA3ZS0xNGI5ZjkzMiwgI3ctbm9kZS1fODIwMzMxZDYtYzRlNy1lMjJjLTE3ZTYtMzA3YzRiYTBjZjc5LTE0YjlmOTMyLCAjdy1ub2RlLV8yY2M5MzVhNS1iYTRiLWIxMzgtMWNkMC0zY2E2MmMwN2QyNjMtMTRiOWY5MzIsICN3LW5vZGUtXzJjYzkzNWE1LWJhNGItYjEzOC0xY2QwLTNjYTYyYzA3ZDI2ZS0xNGI5ZjkzMiwgI3ctbm9kZS1fMmNjOTM1YTUtYmE0Yi1iMTM4LTFjZDAtM2NhNjJjMDdkMjc5LTE0YjlmOTMyLCAjdy1ub2RlLWNkOTdlZDA5LTdlZTctZjg2OC05ZjI0LTkyMDA4Y2JmZmJmOS0xNGI5ZjkzMiwgI3ctbm9kZS1fNjc4ZmE0YWUtMWZjYS1iMDJmLWZkMjctOWVmZTU1MDQ2M2Q2LTE0YjlmOTMyLCAjdy1ub2RlLV8wNTNiMzg0OC01Mjc4LWIwZDAtNTY1Zi00ZTI2NjA3MzExYTEtMTRiOWY5MzIsICN3LW5vZGUtXzg2MzhlY2M3LWZjN2EtODc3MC1lZDJiLTk0M2Q4NTJhYmNmMy0xNGI5ZjkzMiwgI3ctbm9kZS1kN2U2MmYwMS0xYzY4LTZhZjQtMGYwYi1hYTc2ZTNhM2YwYTktMTRiOWY5MzIsICN3LW5vZGUtZDdlNjJmMDEtMWM2OC02YWY0LTBmMGItYWE3NmUzYTNmMGJkLTE0YjlmOTMyLCAjdy1ub2RlLWZkZWRmZGFmLTA3ZWItMjZjZS1lYzVhLTQ0Zjk0MjlmYmNlNi0xNGI5ZjkzMiwgI3ctbm9kZS1lNTA5OGQ1Yy05OWU1LWEzMTAtMTcwNy01MWI1NzllMDg1MmYtMTRiOWY5MzIsICN3LW5vZGUtXzFkMzllYThlLWJhZTMtMTUxMi00ZWYwLWNkZjkzZmMwZjhkYS0xNGI5ZjkzMiwgI3ctbm9kZS1fMDk1OWFjMDUtZTVhZC1mZDQzLThlN2UtYTA5ZGQyZjU3ZGY5LTE0YjlmOTMyLCAjdy1ub2RlLWQ3ZTYyZjAxLTFjNjgtNmFmNC0wZjBiLWFhNzZlM2EzZjBkMS0xNGI5ZjkzMiwgI3ctbm9kZS1mOWE2MjZhZS00ZjA1LTcwNzUtMGQ2Ni0zMDcyOTc4ZGJiNTMtMTRiOWY5MzIsICN3LW5vZGUtXzVlMzUzYmUxLWQwMTItMzlmYy1lZWI4LTI3NjMzODJiOGUzNS0xNGI5ZjkzMiB7CiAgICAgIG9yZGVyOiAtOTk5OTsKICAgIH0KICAKICAgICN3LW5vZGUtYWZmMWNkMmQtMmQ0My0zMDkyLTJlNzktOGRjOTZmMTBhOWRkLWQ4ZWYxMWI4IHsKICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMSAvIHNwYW4gMTsKICAgIH0KICAKICAgICN3LW5vZGUtXzhhN2VhZjc4LWE3YmItNzE0Zi1iOTc4LTgyZGNhODg5NzI5ZS1kOGVmMTFiOCB7CiAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDIgLyBzcGFuIDI7CiAgICB9CiAgCiAgICAjdy1ub2RlLWVhN2MyN2I0LWQ4NzYtMDUzMi1iYzBjLWUyNjc3NDliNTNhYy1kOGVmMTFiOCB7CiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyOwogICAgfQogIAogICAgI3ctbm9kZS1fNmM5MGFkZTMtOTExZS1jMjdkLTg1MzItZmQ3NDIyZTQ4Mjk4LWQ4ZWYxMWI4IHsKICAgICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDEgLyBzcGFuIDE7CiAgICB9CiAgCiAgICAjdy1ub2RlLV8xMTUwN2FkOC00ZmQ1LTYwN2YtNjE2My1iNzkzOGIzZDY0MjMtZDhlZjExYjggewogICAgICBqdXN0aWZ5LXNlbGY6IGF1dG87CiAgICB9CiAgCiAgICAjdy1ub2RlLV84YTRhOGY3Ni05MDlhLTUzZWEtNDk2NS1mMmY5NmI3NDMzNDMtMWJiNWM5MTUsICN3LW5vZGUtXzhhNGE4Zjc2LTkwOWEtNTNlYS00OTY1LWYyZjk2Yjc0MzM0Ny0xYmI1YzkxNSB7CiAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgLyBzcGFuIDE7CiAgICB9CiAgCiAgICAjdy1ub2RlLV85NWI3ZGViMS05ZjExLThmNmEtNmVlNi02ODIyOGI2NWM0OTQtMWJiNWM5MTUgewogICAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMiAvIHNwYW4gMSAvIHNwYW4gMjsKICAgIH0KICAKICAgICN3LW5vZGUtXzk1YjdkZWIxLTlmMTEtOGY2YS02ZWU2LTY4MjI4YjY1YzQ5Yi0xYmI1YzkxNSB7CiAgICAgIGFsaWduLXNlbGY6IGVuZDsKICAgIH0KICAKICAgICN3LW5vZGUtXzk2MGQwMzhhLTYzZGQtYmJjOC0wNzZmLTgwYWM4MGI5YTVjYS0xYmI1YzkxNSB7CiAgICAgIGdyaWQtYXJlYTogc3BhbiAxIC8gc3BhbiAyIC8gc3BhbiAxIC8gc3BhbiAyOwogICAgfQogIAogICAgI3ctbm9kZS1fOTYwZDAzOGEtNjNkZC1iYmM4LTA3NmYtODBhYzgwYjlhNWQxLTFiYjVjOTE1IHsKICAgICAgYWxpZ24tc2VsZjogZW5kOwogICAgfQogIAogICAgI3ctbm9kZS1fMDUxY2RmZGMtZjI5MS0yYTc0LWYyYTYtNWE3N2ZiMWZiNmNlLTFiYjVjOTE1IHsKICAgICAgZ3JpZC1hcmVhOiBzcGFuIDEgLyBzcGFuIDIgLyBzcGFuIDEgLyBzcGFuIDI7CiAgICB9CiAgCiAgICAjdy1ub2RlLV8wNTFjZGZkYy1mMjkxLTJhNzQtZjJhNi01YTc3ZmIxZmI2ZDUtMWJiNWM5MTUgewogICAgICBhbGlnbi1zZWxmOiBlbmQ7CiAgICB9CiAgCiAgICAjdy1ub2RlLV84MmE0MWM5ZC0xODUwLTgwZWEtZmJlNi0xNGMwZmM2MWUyN2ItYTc2ZDJhOTEgewogICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0OwogICAgfQogIAogICAgI3ctbm9kZS1fMTM2YjUwZGEtMjEwNS0zNmVjLWZiNTEtMDRkYjQ5OGYzYmE4LWE3NmQyYTkxLCAjdy1ub2RlLV8yMmMyNDQ0MS1jNmU1LTBlYjAtMDZkNy1hZjUyYjdlZmY5ZjYtYTc2ZDJhOTEsICN3LW5vZGUtYjUwOGQwMDMtYTliOC05NmVmLThhMTgtOGZmYTcxZjRjNDI0LWE3NmQyYTkxIHsKICAgICAgb3JkZXI6IDk5OTk7CiAgICB9CiAgCiAgICAjdy1ub2RlLWI5NjNmYTRjLTZkM2QtZmQzYS0xZjU5LWQ3OGVmYTkyMTg4ZS1hNzZkMmE5MSB7CiAgICAgIGp1c3RpZnktc2VsZjogYXV0bzsKICAgIH0KICB9CiAgCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpIHsKICAgICN3LW5vZGUtZDAwYTAwNzUtNmJlOS01MTRkLWIyMWMtYTI3NGFmZjcyZTk2LThkYjlmOTBiLCAjdy1ub2RlLWM4YjMwZDY3LWY1MGEtYjUyMC04MmQ2LWZjYzc0M2U3ZDM3OS04ZGI5ZjkwYiwgI3ctbm9kZS1fMDA2MDhmYTMtNDI2ZC0zZTgxLTlkYzItZTQyYzljM2IxNmJkLThkYjlmOTBiLCAjdy1ub2RlLV84Mzg3ODY4ZC05ZGNmLTEwNGEtNzY2Zi0xYmJhYWM1Mjk2ZmEtOGRiOWY5MGIgewogICAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIH0KICAKICAgICN3LW5vZGUtXzE0NDhjMDM3LWQzNGQtZmQ1ZC1hOWEzLWVhNDJiMGIzYzM0YS04ZGI5ZjkwYiwgI3ctbm9kZS1kM2E0ZTY1OS0zNmQ0LWM0NjgtYWU0MS1iZGViOGRiZjk5OGUtNGJiOWY5MWMgewogICAgICBqdXN0aWZ5LXNlbGY6IHN0cmV0Y2g7CiAgICB9CiAgCiAgICAjdy1ub2RlLWQ1Y2ViM2E3LWUzYjktMWNlZi1iOTAwLTgxMGEwN2I4ZTM1My1kOGVmMTFiOCwgI3ctbm9kZS1fMTVkMGViYjktM2IyOC05MTJjLTgxYzctMDFkNzBhYTE2MzcwLWQ4ZWYxMWI4LCAjdy1ub2RlLV8xYjZlYmE1Zi0yYjQyLTVmMWItMDdjMi1iOTA2ODUxN2ZlNDAtZDhlZjExYjggewogICAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMSAvIHNwYW4gMTsKICAgIH0KICAKICAgICN3LW5vZGUtYWZmMWNkMmQtMmQ0My0zMDkyLTJlNzktOGRjOTZmMTBhOWRkLWQ4ZWYxMWI4IHsKICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMSAvIHNwYW4gMTsKICAgIH0KICAKICAgICN3LW5vZGUtXzhhN2VhZjc4LWE3YmItNzE0Zi1iOTc4LTgyZGNhODg5NzI5ZS1kOGVmMTFiOCB7CiAgICAgIG9yZGVyOiA5OTk5OwogICAgICBncmlkLWFyZWE6IHNwYW4gMSAvIHNwYW4gMiAvIHNwYW4gMSAvIHNwYW4gMjsKICAgIH0KICAKICAgICN3LW5vZGUtXzgwODQ2ZTdkLWM4NzItZjQwNy0xZDIyLTRmZDdhYzY5N2ZmYS1kOGVmMTFiOCwgI3ctbm9kZS1fNmM5MGFkZTMtOTExZS1jMjdkLTg1MzItZmQ3NDIyZTQ4Mjk4LWQ4ZWYxMWI4IHsKICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMSAvIHNwYW4gMTsKICAgIH0KICAKICAgICN3LW5vZGUtXzExNTA3YWQ4LTRmZDUtNjA3Zi02MTYzLWI3OTM4YjNkNjQyMy1kOGVmMTFiOCB7CiAgICAgIGp1c3RpZnktc2VsZjogYXV0bzsKICAgIH0KICAKICAgICN3LW5vZGUtXzhhNGE4Zjc2LTkwOWEtNTNlYS00OTY1LWYyZjk2Yjc0MzM0My0xYmI1YzkxNSB7CiAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgLyBzcGFuIDE7CiAgICB9CiAgCiAgICAjdy1ub2RlLV84YTRhOGY3Ni05MDlhLTUzZWEtNDk2NS1mMmY5NmI3NDMzNDctMWJiNWM5MTUgewogICAgICBqdXN0aWZ5LXNlbGY6IHN0cmV0Y2g7CiAgICB9CiAgCiAgICAjdy1ub2RlLV85NWI3ZGViMS05ZjExLThmNmEtNmVlNi02ODIyOGI2NWM0OTQtMWJiNWM5MTUgewogICAgICBncmlkLWNvbHVtbjogc3BhbiAxIC8gc3BhbiAxOwogICAgfQogIAogICAgI3ctbm9kZS1fOTViN2RlYjEtOWYxMS04ZjZhLTZlZTYtNjgyMjhiNjVjNDliLTFiYjVjOTE1IHsKICAgICAganVzdGlmeS1zZWxmOiBzdGFydDsKICAgIH0KICAKICAgICN3LW5vZGUtXzk2MGQwMzhhLTYzZGQtYmJjOC0wNzZmLTgwYWM4MGI5YTVjYS0xYmI1YzkxNSB7CiAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDEgLyBzcGFuIDE7CiAgICB9CiAgCiAgICAjdy1ub2RlLV85NjBkMDM4YS02M2RkLWJiYzgtMDc2Zi04MGFjODBiOWE1ZDEtMWJiNWM5MTUgewogICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0OwogICAgfQogIAogICAgI3ctbm9kZS1fMDUxY2RmZGMtZjI5MS0yYTc0LWYyYTYtNWE3N2ZiMWZiNmNlLTFiYjVjOTE1IHsKICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMSAvIHNwYW4gMTsKICAgIH0KICAKICAgICN3LW5vZGUtXzA1MWNkZmRjLWYyOTEtMmE3NC1mMmE2LTVhNzdmYjFmYjZkNS0xYmI1YzkxNSB7CiAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7CiAgICB9CiAgCiAgICAjdy1ub2RlLV84MmE0MWM5ZC0xODUwLTgwZWEtZmJlNi0xNGMwZmM2MWUyN2ItYTc2ZDJhOTEsICN3LW5vZGUtYjk2M2ZhNGMtNmQzZC1mZDNhLTFmNTktZDc4ZWZhOTIxODhlLWE3NmQyYTkxIHsKICAgICAganVzdGlmeS1zZWxmOiBhdXRvOwogICAgfQogIH0KICAKICBAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAnU29jaWFsIEljb25zIEZvbnQnOwogICAgc3JjOiB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhNjk4NGI5Zjk4OV9zb2NpYWwtaWNvbi1mb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhYTBjYmI5Zjk5NV9zb2NpYWwtaWNvbi1mb250LmVvdCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2Nkbi5wcm9kLndlYnNpdGUtZmlsZXMuY29tLzYzMzQ0ZTcyMWE2ZGVhNzFiZGI5ZjkwOC82MzM0NGU3MjFhNmRlYTFmMmNiOWY5Yjhfc29jaWFsLWljb24tZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNDRlNzIxYTZkZWE3NzVlYjlmOWIxX3NvY2lhbC1pY29uLWZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhMzBiZmI5Zjk4Y19zb2NpYWwtaWNvbi1mb250LnN2ZycpIGZvcm1hdCgnc3ZnJyk7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC1kaXNwbGF5OiBzd2FwOwogIH0KICBAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAnTGluZSBTcXVhcmUgSWNvbnMnOwogICAgc3JjOiB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhZWEyZmI5Zjk1ZV9saW5lLXNxdWFyZS1pY29ucy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCdodHRwczovL2Nkbi5wcm9kLndlYnNpdGUtZmlsZXMuY29tLzYzMzQ0ZTcyMWE2ZGVhNzFiZGI5ZjkwOC82MzM0NGU3MjFhNmRlYTA5YTliOWY5ODhfbGluZS1zcXVhcmUtaWNvbnMuZW90JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhMzY4OGI5Zjk2N19saW5lLXNxdWFyZS1pY29ucy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNDRlNzIxYTZkZWEzMzllYjlmOThmX2xpbmUtc3F1YXJlLWljb25zLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCdodHRwczovL2Nkbi5wcm9kLndlYnNpdGUtZmlsZXMuY29tLzYzMzQ0ZTcyMWE2ZGVhNzFiZGI5ZjkwOC82MzM0NGU3MjFhNmRlYTZhZTViOWY5NmNfbGluZS1zcXVhcmUtaWNvbnMuc3ZnJykgZm9ybWF0KCdzdmcnKTsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LWRpc3BsYXk6IHN3YXA7CiAgfQogIEBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdGaWxsZWQgSWNvbnMnOwogICAgc3JjOiB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhNjY5YWI5Zjk2NV9maWxsZWQtaWNvbi1mb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhYjMxMGI5ZjllNl9maWxsZWQtaWNvbi1mb250LmVvdCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdodHRwczovL2Nkbi5wcm9kLndlYnNpdGUtZmlsZXMuY29tLzYzMzQ0ZTcyMWE2ZGVhNzFiZGI5ZjkwOC82MzM0NGU3MjFhNmRlYWNlNWZiOWY5OGRfZmlsbGVkLWljb24tZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNDRlNzIxYTZkZWFhOTNmYjlmOWIzX2ZpbGxlZC1pY29uLWZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhNGQ3MmI5ZjliZV9maWxsZWQtaWNvbi1mb250LnN2ZycpIGZvcm1hdCgnc3ZnJyk7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC1kaXNwbGF5OiBzd2FwOwogIH0KICBAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAnTGluZSBSb3VuZGVkIEljb25zJzsKICAgIHNyYzogdXJsKCdodHRwczovL2Nkbi5wcm9kLndlYnNpdGUtZmlsZXMuY29tLzYzMzQ0ZTcyMWE2ZGVhNzFiZGI5ZjkwOC82MzM0NGU3MjFhNmRlYTZlOWRiOWY5YWZfbGluZS1yb3VuZGVkLWljb25zLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhZWI2ZmI5ZjliMl9saW5lLXJvdW5kZWQtaWNvbnMuZW90JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhYmI4NGI5Zjk4N19saW5lLXJvdW5kZWQtaWNvbnMud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhMDlkY2I5Zjk5Nl9saW5lLXJvdW5kZWQtaWNvbnMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ0ZTcyMWE2ZGVhNThjZmI5Zjk2OF9saW5lLXJvdW5kZWQtaWNvbnMuc3ZnJykgZm9ybWF0KCdzdmcnKTsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LWRpc3BsYXk6IHN3YXA7CiAgfQogIEBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdDbGFyaXR5IENpdHknOwogICAgc3JjOiB1cmwoJ2h0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzQ5ZTVjNjBmY2M3MzlmMTViOWQxNl9DbGFyaXR5Q2l0eS1NZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtZGlzcGxheTogc3dhcDsKICB9CiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ0NsYXJpdHkgQ2l0eSc7CiAgICBzcmM6IHVybCgnaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNDllNWM4ZTZlOWFhNDY1MTI5MGU4X0NsYXJpdHlDaXR5LVJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtZGlzcGxheTogc3dhcDsKICB9CiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ0NsYXJpdHkgQ2l0eSc7CiAgICBzcmM6IHVybCgnaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNDllNWM4NDgyODkwY2E0OTcyMjg1X0NsYXJpdHlDaXR5LUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtZGlzcGxheTogc3dhcDsKICB9CiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ0NsYXJpdHkgQ2l0eSc7CiAgICBzcmM6IHVybCgnaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNDllNWMzNzFlNjQyZWYzNmZmOTJjX0NsYXJpdHlDaXR5LUV4dHJhQm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7CiAgICBmb250LXdlaWdodDogODAwOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC1kaXNwbGF5OiBzd2FwOwogIH0KICBAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAnQ2xhcml0eSBDaXR5JzsKICAgIHNyYzogdXJsKCdodHRwczovL2Nkbi5wcm9kLndlYnNpdGUtZmlsZXMuY29tLzYzMzQ0ZTcyMWE2ZGVhNzFiZGI5ZjkwOC82MzM0OWU1Y2Q5YjUzZWMxZDVjZmZjOWVfQ2xhcml0eUNpdHktU2VtaUJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtZGlzcGxheTogc3dhcDsKICB9CgogIC8qIEltYWdlIFJvdW5kZWQgRWRnZXMgKi8KICAuaW1hZ2UtaXBob25lLWxlZnQgewogICAgYm9yZGVyLXJhZGl1czogMjBweCAhaW1wb3J0YW50OwogIH0KCiAgLyogSGlkZSBXZWJmbG93IEJhZGdlICovCiAgLnctd2ViZmxvdy1iYWRnZSB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsKICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDsKICAgIGhlaWdodDogMCAhaW1wb3J0YW50OwogICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogICAgbGVmdDogLTk5OTlweCAhaW1wb3J0YW50OwogICAgdG9wOiAtOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB6LWluZGV4OiAtMSAhaW1wb3J0YW50OwogIH0KICAKICAvKiBBZGRpdGlvbmFsIFdlYmZsb3cgYmFkZ2UgaGlkaW5nICovCiAgW2NsYXNzKj0idy13ZWJmbG93LWJhZGdlIl0sCiAgW2lkKj0id2ViZmxvdy1iYWRnZSJdLAogIFtjbGFzcyo9IndlYmZsb3ctYmFkZ2UiXSB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsKICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDsKICAgIGhlaWdodDogMCAhaW1wb3J0YW50OwogICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogICAgbGVmdDogLTk5OTlweCAhaW1wb3J0YW50OwogICAgdG9wOiAtOTk5OXB4ICFpbXBvcnRhbnQ7CiAgICB6LWluZGV4OiAtMSAhaW1wb3J0YW50OwogIH0KICAKICAvKiBIaWRlIGFueSBlbGVtZW50IHdpdGggd2ViZmxvdyBpbiBjbGFzcyBvciBpZCAqLwogIFtjbGFzcyo9IndlYmZsb3ciXSwKICBbaWQqPSJ3ZWJmbG93Il0gewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogIH0KICAKICAvKiBBZGRpdGlvbmFsIGdsb2JhbCBoaWRpbmcgKi8KICBib2R5ID4gYVtocmVmKj0id2ViZmxvdyJdLAogIGJvZHkgPiBkaXZbY2xhc3MqPSJ3ZWJmbG93Il0sCiAgYm9keSA+IHNwYW5bY2xhc3MqPSJ3ZWJmbG93Il0gewogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDsKICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgIGxlZnQ6IC05OTk5cHggIWltcG9ydGFudDsKICAgIHRvcDogLTk5OTlweCAhaW1wb3J0YW50OwogICAgei1pbmRleDogLTEgIWltcG9ydGFudDsKICB9"}},"time_used":379,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":376,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/63349e5c371e642ef36ff92c_ClarityCity-ExtraBold.otf","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.471Z","timestamp":1785139285471,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/63349e5c371e642ef36ff92c_ClarityCity-ExtraBold.otf HTTP/1.1\r\nHost: cdn.prod.website-files.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mobichain.co/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: application/x-font-otf\r\ncontent-length: 23744\r\nx-amz-id-2: WoKeuCs58c7BM7rd2D8518ruzZNKudzGLt5IU51GSINInx8ZiUBYO3GRIaYqM0JPi7k6hkgKrEQ=\r\nx-amz-request-id: WRKZA0WSKNS1YHTY\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, HEAD\r\naccess-control-max-age: 3000\r\nvary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method\r\nlast-modified: Tue, 25 Oct 2022 00:27:46 GMT\r\netag: \"a45dec8a62b7ecf5930168ca32a7383c\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: hX4fHS0WXl0Zw.Xqgc7Z5QcTN09OmkS3\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 13065025\r\ncf-cache-status: HIT\r\ncf-ray: a21a1db63b28a0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":23744,"size_decoded":24575,"mime_type":"application/x-font-otf","magic":"OpenType font data","md5":"a45dec8a62b7ecf5930168ca32a7383c","sha1":"04ec450956ddfdea914a6b85c2af9f7582d72322","sha256":"f044babae5d817c171ccec692468f66f8e0ce5b74be2a8dab47b701ceea49f41","sha512":"3ba431000b66de655f3d7433bf3daabcb9de9b075583118367f4a7566b0605755f9d6d67295c9fe2d35b2c4084c2f4c6870b7ff7c1f82461ca3120d9ae5a09cb","ssdeep":"384:0VbRcvpXILQY35j7cV2I3pIzojwUCWf5PoD8NdRSBBrSJ6+N47YNq9EQM:OOYLdCw+IzojwUjPogNdRYrSNN47dSb","tlshash":"a1b2af195f0fe391d3d75fb032a653182a29a47ac83c9e93cb6ec0467ee53944d98b0d","first_seen":"2026-04-29T09:33:25.498006Z","last_seen":"2026-07-27T08:02:19.57749Z","times_seen":8,"resource_available":false,"data":"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a2VtYWNyb251bmkxRUJEZWNhcm9uZGNyb2F0dW5pMDEyM2dicmV2ZXVuaTAxMzdpb2dvbmVrdW5pMDIzN2ltYWNyb25uYWN1dGVuY2Fyb25sY2Fyb25sYWN1dGVvaHVuZ2FydW1sYXV0dW5pMDE0Nm9tYWNyb25yYWN1dGVyY2Fyb251bmkwMTU3c2FjdXRldW5pMDE2M3RjYXJvbnNjZWRpbGxhdW9nb25la3VtYWNyb251cmluZ3VodW5nYXJ1bWxhdXR3Y2lyY3VtZmxleHdhY3V0ZXdkaWVyZXNpc3dncmF2ZXpkb3RhY2NlbnRhYWN1dGUuYWx0YS5hbHRhY2lyY3VtZmxleC5hbHRhYnJldmUuYWx0YWRpZXJlc2lzLmFsdGFncmF2ZS5hbHR6YWN1dGV5Z3JhdmV5Y2lyY3VtZmxleGFtYWNyb24uYWx0YW9nb25lay5hbHRhdGlsZGUuYWx0YXJpbmcuYWx0dW5pMjAwMnVuaTIwMkZ1bmkyMDA1dW5pMjAwM0V1cm91bmkyMDA0dW5pMjAwNnVuaTAzMDd1bmkwMzI2Q29weXJpZ2h0IFwoY1wpIDIwMTkgVk13YXJlLCBJbmMuQ2xhcml0eSBDaXR5IEV4dHJhIEJvbGRFeHRyYUJvbGQAyAIAAQAXABwAKAAwAD4AQgBQAFUAWABhAHQAeACQAJUArQCyAOAA5gD0ARwBJwE9AUQBTgGMAZoBqAGtAbcBugHzAfkB/gJaAmICbAJyAn0CkgKXArMCwALbAvEC9QL9AwIDBgMKAxMDJAMsAzMDPANAA0kDXQNvA3YDhwOUA5wDoQOmA6kDrgO7A8ADzAPVA94D4wPoBAEEBQQMBBMEGwQiBCoEMgRZBF0EcgR3BHwEfwSGBI0EkgScBKEErgSzBLoEvwTHBMsEzwTUBN8E4gTwBPUE/wUdBSUFKgUwBTUFPQVFBU0FUQVdBWQFaQVyBXcFfQWCBZAFlQWaBaQFqQWtBcQFzQXTBdoF3wXtBfIF+gYMBg8GIgY1BkAGRAZJBk4GUwZcBmQGaAZxBnsGgAaEBpAGlwaeBqcGrgazBrcGuwa/BsoG0QbWBtoG3gbqBvYG+gcBBwUHCQcNBxgHHQciBycHLAcwBzkHQwdNB1YHXwdjB2cHawdzB3oHfweFB4oHjweTB5cHmwegB6UHqwexB7omCvsz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"}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":7,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.smartsuppchat.com/loader.js?","fqdn":"www.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.853Z","timestamp":1785139285853,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1161431244.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:49 GMT","end":"Wed, 02 Sep 2026 14:34:48 GMT"},"fingerprint":{"sha1":"77:06:42:CE:73:9F:CA:05:A3:6E:99:99:F2:3F:B7:EE:E4:60:E9:29","sha256":"E7:6E:68:C5:CD:6C:F6:14:84:A0:18:1A:D7:94:77:7A:28:F6:67:8E:90:58:94:AE:3A:65:6A:B7:95:0F:5D:1B"}}},"request":{"raw":"GET /loader.js? HTTP/1.1\r\nHost: www.smartsuppchat.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://mobichain.co/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 08:01:29 GMT\r\ncontent-type: application/javascript\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a2663cd-4668\"\r\nexpires: Mon, 08 Jun 2026 06:46:12 GMT\r\nlast-modified: Mon, 08 Jun 2026 06:40:13 GMT\r\nx-77-nzt: k8OGTCTjQqMCR7VQpAffKzglAqhqXSx2OIqsbzHBQS7/bvAIfnID++OHvaRKnQF6FuG+BgE\r\nx-77-nzt-ray: e2f7542001fcadec5910676a18034808\r\nx-77-cache: HIT\r\nx-77-age: 8\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":18024,"size_decoded":6041,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (17951)","md5":"218d24439d4e2c0990f35338a7ac220c","sha1":"5a7b913584c1244bf61beab9dc644204d130101c","sha256":"efb497f7159de26ea5e0521d675d909dc063e36d0d23c2ad96fa9109b73ee263","sha512":"17af39bfdc350c9d1f8dd74652641d0c028881ecb3935d2d9fdb763d24136665d135d00219aabac57693112e2314d4fa91b802ba2662a1580aa35c5e0b6e624b","ssdeep":"384:2/xzy2A3wyxNeBWbEgl/EuVaBWbE0rIcvqSI/aQ/UpG:2/xzy2A3wXscuVaAxka05","tlshash":"4182b7cc7691b16543ab61b4843f620ff1376929740d8865b965eae13cb8c8ed037fb8","first_seen":"2026-03-30T19:01:55.527327Z","last_seen":"2026-08-01T06:16:36.385264Z","times_seen":7891,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgbG9hZGVyLnRlbXBsYXRlLmpzLkxJQ0VOU0UudHh0ICovCigoKT0+e3ZhciB0PXs3MTUodCl7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNU0lFIDEwIikmJih0PSEwKTt2YXIgZSxuPVtdLHI9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQsbz10P3IuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik6ci5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwsaT0iRE9NQ29udGVudExvYWRlZCIscz1yJiYobz8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KHIucmVhZHlTdGF0ZSk7cmV0dXJuIXMmJnImJnIuYWRkRXZlbnRMaXN0ZW5lcihpLGU9ZnVuY3Rpb24oKXtmb3Ioci5yZW1vdmVFdmVudExpc3RlbmVyKGksZSkscz0xO2U9bi5zaGlmdCgpOyllKCl9KSxmdW5jdGlvbih0KXtzP3NldFRpbWVvdXQodCwwKTpuLnB1c2godCl9fSgpfSw3NjEodCxlLG4peyJ1c2Ugc3RyaWN0Ijtjb25zdCByPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gZS5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9LGZ1bmN0aW9uKG4pe3JldHVybiBlLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUucmVqZWN0KG4pfSl9KX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHRoaXMoZnVuY3Rpb24oZSxuKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcih0eXBlb2YgdCsiICIrdCsiIGlzIG5vdCBpdGVyYWJsZShjYW5ub3QgcmVhZCBwcm9wZXJ0eSBTeW1ib2woU3ltYm9sLml0ZXJhdG9yKSkiKSk7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCk7aWYoMD09PXIubGVuZ3RoKXJldHVybiBlKFtdKTt2YXIgbz1yLmxlbmd0aDtmdW5jdGlvbiBpKHQsbil7aWYobiYmKCJvYmplY3QiPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pKXt2YXIgcz1uLnRoZW47aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMpcmV0dXJuIHZvaWQgcy5jYWxsKG4sZnVuY3Rpb24oZSl7aSh0LGUpfSxmdW5jdGlvbihuKXtyW3RdPXtzdGF0dXM6InJlamVjdGVkIixyZWFzb246bn0sMD09PS0tbyYmZShyKX0pfXJbdF09e3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpufSwwPT09LS1vJiZlKHIpfWZvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKWkocyxyW3NdKX0pfTtmdW5jdGlvbiBpKHQsZSl7dGhpcy5uYW1lPSJBZ2dyZWdhdGVFcnJvciIsdGhpcy5lcnJvcnM9dCx0aGlzLm1lc3NhZ2U9ZXx8IiJ9aS5wcm90b3R5cGU9RXJyb3IucHJvdG90eXBlO2NvbnN0IHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IGUoZnVuY3Rpb24obixyKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIHIobmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbnkgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgbz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09by5sZW5ndGgpcmV0dXJuIHIoKTtmb3IodmFyIHM9W10sYT0wO2E8by5sZW5ndGg7YSsrKXRyeXtlLnJlc29sdmUob1thXSkudGhlbihuKS5jYXRjaChmdW5jdGlvbih0KXtzLnB1c2godCkscy5sZW5ndGg9PT1vLmxlbmd0aCYmcihuZXcgaShzLCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKX0pfWNhdGNoKHQpe3IodCl9fSl9O3ZhciBhPXNldFRpbWVvdXQ7ZnVuY3Rpb24gYyh0KXtyZXR1cm4gQm9vbGVhbih0JiZ2b2lkIDAhPT10Lmxlbmd0aCl9ZnVuY3Rpb24gdSgpe31mdW5jdGlvbiBsKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb21pc2VzIG11c3QgYmUgY29uc3RydWN0ZWQgdmlhIG5ldyIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm5vdCBhIGZ1bmN0aW9uIik7dGhpcy5fc3RhdGU9MCx0aGlzLl9oYW5kbGVkPSExLHRoaXMuX3ZhbHVlPXZvaWQgMCx0aGlzLl9kZWZlcnJlZHM9W10sdyh0LHRoaXMpfWZ1bmN0aW9uIHAodCxlKXtmb3IoOzM9PT10Ll9zdGF0ZTspdD10Ll92YWx1ZTswIT09dC5fc3RhdGU/KHQuX2hhbmRsZWQ9ITAsbC5faW1tZWRpYXRlRm4oZnVuY3Rpb24oKXt2YXIgbj0xPT09dC5fc3RhdGU/ZS5vbkZ1bGZpbGxlZDplLm9uUmVqZWN0ZWQ7aWYobnVsbCE9PW4pe3ZhciByO3RyeXtyPW4odC5fdmFsdWUpfWNhdGNoKHQpe3JldHVybiB2b2lkIGQoZS5wcm9taXNlLHQpfWYoZS5wcm9taXNlLHIpfWVsc2UoMT09PXQuX3N0YXRlP2Y6ZCkoZS5wcm9taXNlLHQuX3ZhbHVlKX0pKTp0Ll9kZWZlcnJlZHMucHVzaChlKX1mdW5jdGlvbiBmKHQsZSl7dHJ5e2lmKGU9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkEgcHJvbWlzZSBjYW5ub3QgYmUgcmVzb2x2ZWQgd2l0aCBpdHNlbGYuIik7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXt2YXIgbj1lLnRoZW47aWYoZSBpbnN0YW5jZW9mIGwpcmV0dXJuIHQuX3N0YXRlPTMsdC5fdmFsdWU9ZSx2b2lkIGgodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIHZvaWQgdygocj1uLG89ZSxmdW5jdGlvbigpe3IuYXBwbHkobyxhcmd1bWVudHMpfSksdCl9dC5fc3RhdGU9MSx0Ll92YWx1ZT1lLGgodCl9Y2F0Y2goZSl7ZCh0LGUpfXZhciByLG99ZnVuY3Rpb24gZCh0LGUpe3QuX3N0YXRlPTIsdC5fdmFsdWU9ZSxoKHQpfWZ1bmN0aW9uIGgodCl7Mj09PXQuX3N0YXRlJiYwPT09dC5fZGVmZXJyZWRzLmxlbmd0aCYmbC5faW1tZWRpYXRlRm4oZnVuY3Rpb24oKXt0Ll9oYW5kbGVkfHxsLl91bmhhbmRsZWRSZWplY3Rpb25Gbih0Ll92YWx1ZSl9KTtmb3IodmFyIGU9MCxuPXQuX2RlZmVycmVkcy5sZW5ndGg7ZTxuO2UrKylwKHQsdC5fZGVmZXJyZWRzW2VdKTt0Ll9kZWZlcnJlZHM9bnVsbH1mdW5jdGlvbiB5KHQsZSxuKXt0aGlzLm9uRnVsZmlsbGVkPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bnVsbCx0aGlzLm9uUmVqZWN0ZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpudWxsLHRoaXMucHJvbWlzZT1ufWZ1bmN0aW9uIHcodCxlKXt2YXIgbj0hMTt0cnl7dChmdW5jdGlvbih0KXtufHwobj0hMCxmKGUsdCkpfSxmdW5jdGlvbih0KXtufHwobj0hMCxkKGUsdCkpfSl9Y2F0Y2godCl7aWYobilyZXR1cm47bj0hMCxkKGUsdCl9fWwucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRoZW4obnVsbCx0KX0sbC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbih0LGUpe3ZhciBuPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHUpO3JldHVybiBwKHRoaXMsbmV3IHkodCxlLG4pKSxufSxsLnByb3RvdHlwZS5maW5hbGx5PXIsbC5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsKGZ1bmN0aW9uKGUsbil7aWYoIWModCkpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbGwgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09ci5sZW5ndGgpcmV0dXJuIGUoW10pO3ZhciBvPXIubGVuZ3RoO2Z1bmN0aW9uIGkodCxzKXt0cnl7aWYocyYmKCJvYmplY3QiPT10eXBlb2Ygc3x8ImZ1bmN0aW9uIj09dHlwZW9mIHMpKXt2YXIgYT1zLnRoZW47aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpcmV0dXJuIHZvaWQgYS5jYWxsKHMsZnVuY3Rpb24oZSl7aSh0LGUpfSxuKX1yW3RdPXMsMD09PS0tbyYmZShyKX1jYXRjaCh0KXtuKHQpfX1mb3IodmFyIHM9MDtzPHIubGVuZ3RoO3MrKylpKHMscltzXSl9KX0sbC5hbnk9cyxsLmFsbFNldHRsZWQ9byxsLnJlc29sdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PWw/dDpuZXcgbChmdW5jdGlvbihlKXtlKHQpfSl9LGwucmVqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbChmdW5jdGlvbihlLG4pe24odCl9KX0sbC5yYWNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbChmdW5jdGlvbihlLG4pe2lmKCFjKHQpKXJldHVybiBuKG5ldyBUeXBlRXJyb3IoIlByb21pc2UucmFjZSBhY2NlcHRzIGFuIGFycmF5IikpO2Zvcih2YXIgcj0wLG89dC5sZW5ndGg7cjxvO3IrKylsLnJlc29sdmUodFtyXSkudGhlbihlLG4pfSl9LGwuX2ltbWVkaWF0ZUZuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmZ1bmN0aW9uKHQpe3NldEltbWVkaWF0ZSh0KX18fGZ1bmN0aW9uKHQpe2EodCwwKX0sbC5fdW5oYW5kbGVkUmVqZWN0aW9uRm49ZnVuY3Rpb24odCl7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlJiZjb25zb2xlLndhcm4oIlBvc3NpYmxlIFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjoiLHQpfTtjb25zdCB2PWw7dmFyIGc9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYpcmV0dXJuIHNlbGY7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvdztpZih2b2lkIDAhPT1uLmcpcmV0dXJuIG4uZzt0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdCIpfSgpOyJmdW5jdGlvbiIhPXR5cGVvZiBnLlByb21pc2U/Zy5Qcm9taXNlPXY6KGcuUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseXx8KGcuUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1yKSxnLlByb21pc2UuYWxsU2V0dGxlZHx8KGcuUHJvbWlzZS5hbGxTZXR0bGVkPW8pLGcuUHJvbWlzZS5hbnl8fChnLlByb21pc2UuYW55PXMpKX0sMzQ1KHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuU21hcnRzdXBwTG9hZGVyPXZvaWQgMDt2YXIgcj1uKDc0MCksbz1uKDg5MyksaT1uKDEzMCkscz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5vcHRpb25zPXQsdGhpcy53aWRnZXRzPXt9LHRoaXMuY2hhdHM9dGhpcy53aWRnZXRzfXJldHVybiB0LnByb3RvdHlwZS5zZXREZWZhdWx0cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsdCksdGhpc30sdC5wcm90b3R5cGUuZ2V0Q2hhdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRzW3RdfSx0LnByb3RvdHlwZS5nZXRXaWRnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud2lkZ2V0c1t0XX0sdC5wcm90b3R5cGUuY3JlYXRlPWZ1bmN0aW9uKHQsZSxuLHMpe3ZhciBjPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsZSk7YShjKTt2YXIgdT10aGlzLndpZGdldHNbdF09bmV3IGkuU21hcnRzdXBwV2lkZ2V0KHQsYyxuKTtyZXR1cm4gdS5faW5pdFByb21pc2U9KDAsby5yZXF1ZXN0KSgiIi5jb25jYXQoYy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KGMua2V5LCIuanNvbiIpKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBuPSgwLG8ucGFyc2VKU09OKSh0KTtyZXR1cm4gZGVsZXRlIGUuZmVhdHVyZXMsdS5pbml0KCgwLG8ubWVyZ2VEZWVwKShuLGUpLG4uZmVhdHVyZXMpLGUmJmUud2lkZ2V0VHJhY2tlckVuYWJsZWQmJigwLHIudHJhY2tPcHRpb25zKSh1Lm9wdGlvbnMsT2JqZWN0LmtleXMoZSkpLHdpbmRvdy5zbWFydHN1cHAuZ2V0QXNzZXRVcmw9dS5nZXRBc3NldFVybC5iaW5kKHUpLHMmJnModm9pZCAwLHUpLHUub3B0aW9ucy5yZW5kZXJUbyYmdS5yZW5kZXIodS5vcHRpb25zLnJlbmRlclRvKSxudWxsfSkuY2F0Y2goZnVuY3Rpb24odCl7cyYmcyh0KX0pLHV9LHQucHJvdG90eXBlLmNyZWF0ZVdpZGdldD1mdW5jdGlvbih0LGUsbil7dmFyIHM9dGhpcyxjPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsZSk7cmV0dXJuIGEoYyksKDAsby5yZXF1ZXN0KSgiIi5jb25jYXQoYy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KGMua2V5LCIuanNvbiIpKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciB1PSgwLG8ucGFyc2VKU09OKShhKSxsPXMud2lkZ2V0c1t0XT1uZXcgaS5TbWFydHN1cHBXaWRnZXQodCxjLG4pO3JldHVybiBkZWxldGUgZS5mZWF0dXJlcyxsLmluaXQoKDAsby5tZXJnZURlZXApKHUsZSksdS5mZWF0dXJlcyksZSYmZS53aWRnZXRUcmFja2VyRW5hYmxlZCYmKDAsci50cmFja09wdGlvbnMpKGwub3B0aW9ucyxPYmplY3Qua2V5cyhlKSksd2luZG93LnNtYXJ0c3VwcC5nZXRBc3NldFVybD1sLmdldEFzc2V0VXJsLmJpbmQobCksbH0pfSx0fSgpO2UuU21hcnRzdXBwTG9hZGVyPXM7dmFyIGE9ZnVuY3Rpb24odCl7aWYoIXQuYm9vdHN0cmFwVXJsKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBvcHRpb24gYm9vdHN0cmFwVXJsIik7aWYoIXQua2V5KXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBvcHRpb24ga2V5Iil9fSw3NDAodCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24obyxpKXtmdW5jdGlvbiBzKHQpe3RyeXtjKHIubmV4dCh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gYSh0KXt0cnl7YyhyLnRocm93KHQpKX1jYXRjaCh0KXtpKHQpfX1mdW5jdGlvbiBjKHQpe3ZhciBlO3QuZG9uZT9vKHQudmFsdWUpOihlPXQudmFsdWUsZSBpbnN0YW5jZW9mIG4/ZTpuZXcgbihmdW5jdGlvbih0KXt0KGUpfSkpLnRoZW4ocyxhKX1jKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLHIsbyxpLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGk9e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIGEoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbihhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2kmJihpPTAsYVswXSYmKHM9MCkpLHM7KXRyeXtpZihuPTEsciYmKG89MiZhWzBdP3IucmV0dXJuOmFbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixhWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihhPVsyJmFbMF0sby52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6bz1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKysscj1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKG89KG89cy50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSl8fDYhPT1hWzBdJiYyIT09YVswXSkpe3M9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFvfHxhWzFdPm9bMF0mJmFbMV08b1szXSkpe3MubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmcy5sYWJlbDxvWzFdKXtzLmxhYmVsPW9bMV0sbz1hO2JyZWFrfWlmKG8mJnMubGFiZWw8b1syXSl7cy5sYWJlbD1vWzJdLHMub3BzLnB1c2goYSk7YnJlYWt9b1syXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfWE9ZS5jYWxsKHQscyl9Y2F0Y2godCl7YT1bNix0XSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0oW2EsY10pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRyYWNrT3BlcmF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyxmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOmlmKCF0LndpZGdldFRyYWNrZXJVcmx8fHMuaW5kZXhPZihlKT49MHx8YS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk+PTApcmV0dXJuWzIsITFdO24ubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG4udHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCwoMCxpLnJlcXVlc3QpKHQud2lkZ2V0VHJhY2tlclVybCsiL3RyYWNrL29wZXJhdGlvbj9rZXk9Ii5jb25jYXQodC5rZXksIiZvcGVyYXRpb249IikuY29uY2F0KGUsIiZkb21haW49IikuY29uY2F0KHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkpXTtjYXNlIDI6cmV0dXJuIG4uc2VudCgpLFsyLCEwXTtjYXNlIDM6cmV0dXJuIG4uc2VudCgpLFsyLCExXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LGUudHJhY2tPcHRpb25zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIG8odGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmlmKCF0LndpZGdldFRyYWNrZXJVcmx8fGEuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPj0wKXJldHVyblsyLCExXTtpZigwPT09KG49ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGMuaW5kZXhPZih0KTwwfSkpLmxlbmd0aClyZXR1cm5bMiwhMV07ci5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gci50cnlzLnB1c2goWzEsMywsNF0pLFs0LCgwLGkucmVxdWVzdCkodC53aWRnZXRUcmFja2VyVXJsKyIvdHJhY2svb3B0aW9ucz9rZXk9Ii5jb25jYXQodC5rZXksIiZvcHRpb25zPSIpLmNvbmNhdChuLmpvaW4oIiwiKSwiJmRvbWFpbj0iKS5jb25jYXQod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSldO2Nhc2UgMjpyZXR1cm4gci5zZW50KCksWzIsITBdO2Nhc2UgMzpyZXR1cm4gci5zZW50KCksWzIsITFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX07dmFyIGk9big4OTMpLHM9WyJodG1sOmFwcGx5IiwiY2hhdDptZXNzYWdlIiwib24iXSxhPVsid3d3LnNtYXJ0c3VwcC5jb20iLCJhcHAuc21hcnRzdXBwLmNvbSJdLGM9WyJrZXkiLCJnYU9wdGlvbnMiLCJnYU5hbWUiLCJjb29raWVQcmVmaXgiLCJjb29raWVQYXRoIiwiY3Jvc3NEb21haW5FbmFibGVkIiwicG9zaXRpb24iLCJvcGVuT25UcmlnZ2VyIl19LDg5Myh0LGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5wYXJzZUpTT049ZS5yZXF1ZXN0PWUuY3JlYXRlTGluaz1lLmNyZWF0ZVNjcmlwdD1lLnJlc29sdmVUYXJnZXRFbGVtZW50PWUubWVyZ2VEZWVwPXZvaWQgMDt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0fTtlLm1lcmdlRGVlcD1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgbz17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9b1tyXSxzPXRbcl07dm9pZCAwIT09cyYmKEFycmF5LmlzQXJyYXkoaSl8fEFycmF5LmlzQXJyYXkocyk/b1tyXT1zOm4oaSkmJm4ocyk/b1tyXT0oMCxlLm1lcmdlRGVlcCkoaSxzKTpvW3JdPXMpfSl9KSxvfSxlLnJlc29sdmVUYXJnZXRFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRWxlbWVudD90OiJzdHJpbmciPT10eXBlb2YgdD9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTpkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdfSxlLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbih0LGUpe3ZhciBuPXQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cmV0dXJuIG4udHlwZT0idGV4dC9qYXZhc2NyaXB0IixuLmNoYXJzZXQ9InV0ZjgiLGUmJihuLnNyYz1lKSxufSxlLmNyZWF0ZUxpbms9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyZXR1cm4gZSYmKG4uaHJlZj1lKSxufSxlLnJlcXVlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe2Uub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PWUucmVhZHlTdGF0ZSYmKGUuc3RhdHVzPj0yMDAmJmUuc3RhdHVzPDMwMD9uKGUucmVzcG9uc2UpOnIobmV3IEVycm9yKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAiLmNvbmNhdChlLnN0YXR1cykpKSl9LGUub3BlbigiR0VUIix0LCEwKSxlLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsInRleHQvcGxhaW4iKSxlLnNlbmQoKX0pfSxlLnBhcnNlSlNPTj1mdW5jdGlvbih0KXtpZihKU09OLnBhcnNlKXJldHVybiBKU09OLnBhcnNlKHQpO2lmKEpTT04uZGVjb2RlKXJldHVybiBKU09OLmRlY29kZSh0KTt0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBwYXJzZSBqc29uLiIpfX0sMTMwKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKG8saSl7ZnVuY3Rpb24gcyh0KXt0cnl7YyhyLm5leHQodCkpfWNhdGNoKHQpe2kodCl9fWZ1bmN0aW9uIGEodCl7dHJ5e2Moci50aHJvdyh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gYyh0KXt2YXIgZTt0LmRvbmU/byh0LnZhbHVlKTooZT10LnZhbHVlLGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pKS50aGVuKHMsYSl9Yygocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9LG89dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odCxlKXt2YXIgbixyLG8saSxzPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBpPXtuZXh0OmEoMCksdGhyb3c6YSgxKSxyZXR1cm46YSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBhKGEpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oYSl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtpJiYoaT0wLGFbMF0mJihzPTApKSxzOyl0cnl7aWYobj0xLHImJihvPTImYVswXT9yLnJldHVybjphWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsYVsxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYT1bMiZhWzBdLG8udmFsdWVdKSxhWzBdKXtjYXNlIDA6Y2FzZSAxOm89YTticmVhaztjYXNlIDQ6cmV0dXJuIHMubGFiZWwrKyx7dmFsdWU6YVsxXSxkb25lOiExfTtjYXNlIDU6cy5sYWJlbCsrLHI9YVsxXSxhPVswXTtjb250aW51ZTtjYXNlIDc6YT1zLm9wcy5wb3AoKSxzLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvPShvPXMudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09YVswXSYmMiE9PWFbMF0pKXtzPTA7Y29udGludWV9aWYoMz09PWFbMF0mJighb3x8YVsxXT5vWzBdJiZhWzFdPG9bM10pKXtzLmxhYmVsPWFbMV07YnJlYWt9aWYoNj09PWFbMF0mJnMubGFiZWw8b1sxXSl7cy5sYWJlbD1vWzFdLG89YTticmVha31pZihvJiZzLmxhYmVsPG9bMl0pe3MubGFiZWw9b1syXSxzLm9wcy5wdXNoKGEpO2JyZWFrfW9bMl0mJnMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZX1hPWUuY2FsbCh0LHMpfWNhdGNoKHQpe2E9WzYsdF0scj0wfWZpbmFsbHl7bj1vPTB9aWYoNSZhWzBdKXRocm93IGFbMV07cmV0dXJue3ZhbHVlOmFbMF0/YVsxXTp2b2lkIDAsZG9uZTohMH19KFthLGNdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TbWFydHN1cHBXaWRnZXQ9dm9pZCAwO3ZhciBpPW4oNzQwKSxzPW4oODkzKSxhPXdpbmRvdyxjPSItYXBwbGljYXRpb24taWZyYW1lIix1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7aWYodm9pZCAwPT09biYmKG49W10pLHRoaXMuaWQ9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLl9wdXNoQXBpPW4sdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmFwaT1udWxsLHRoaXMuZWw9bnVsbCx0aGlzLmZyYW1lPW51bGwsdGhpcy52ZXJzaW9uPTIsdGhpcy5pbml0aWFsaXplZD0hMSwhZS5ib290c3RyYXBVcmwpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9wdGlvbiBib290c3RyYXBVcmwiKTtpZighZS5rZXkpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9wdGlvbiBrZXkiKX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0T3B0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPSgwLHMubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsdCksdGhpcy5mZWF0dXJlcyYmKHRoaXMuZmVhdHVyZXMucmF0aW5nfHwodGhpcy5vcHRpb25zLnJhdGluZ0VuYWJsZWQ9ITEpLHRoaXMuZmVhdHVyZXMuZ3JvdXBzfHwodGhpcy5vcHRpb25zLmdyb3VwU2VsZWN0RW5hYmxlZD0hMSksdGhpcy5mZWF0dXJlcy5jdXN0b21pemV8fCh0aGlzLm9wdGlvbnMuaGlkZVdpZGdldD0hMSx0aGlzLm9wdGlvbnMuaGlkZU9mZmxpbmVDaGF0PSExLHRoaXMub3B0aW9ucy5udW1iZXJDb250cm9sPSExLHRoaXMub3B0aW9ucy5yZXF1aXJlTG9naW49ITEsdGhpcy5vcHRpb25zLnByaXZhY3lOb3RpY2VFbmFibGVkPSEwLHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj0icmlnaHQiKSx0aGlzLmZlYXR1cmVzLmdhfHwodGhpcy5vcHRpb25zLmdvb2dsZUFuYWx5dGljc0VuYWJsZWQ9ITEpKSx0aGlzfSx0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQsZSl7dGhpcy5mZWF0dXJlcz1lLHRoaXMuc2V0T3B0aW9ucyh0KSx0aGlzLmluaXRpYWxpemVkPSEwLCJhdXRvIj09PXRoaXMub3B0aW9ucy5wb3NpdGlvbiYmKHRoaXMub3B0aW9ucy5wb3NpdGlvbj10aGlzLm9wdGlvbnMucmVuZGVyVG8/InJlbGF0aXZlIjoiZml4ZWQiKX0sdC5wcm90b3R5cGUuY3JlYXRlRnJhbWU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtyZXR1cm4gdC5pZD0iIi5jb25jYXQodGhpcy5pZCkuY29uY2F0KGMpLHQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlNtYXJ0c3VwcCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdC5zdHlsZS50b3A9IjAiLHQuc3R5bGUubGVmdD0iMCIsdC5zdHlsZS53aWR0aD0iMXB4Iix0LnN0eWxlLmhlaWdodD0iMXB4Iix0LnN0eWxlLm9wYWNpdHk9IjAiLHQuc3R5bGUuYm9yZGVyPSJub25lIix0LnN0eWxlLnpJbmRleD0iLTEiLHQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsdH0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBvKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5faW5pdFByb21pc2U/WzQsdGhpcy5faW5pdFByb21pc2VdOlszLDJdO2Nhc2UgMTpuLnNlbnQoKSxuLmxhYmVsPTI7Y2FzZSAyOmlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQrYykpcmV0dXJuWzJdO2lmKCF0aGlzLmluaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGluaXRpYWxpemUgd2lkZ2V0Iik7aWYoIShlPSgwLHMucmVzb2x2ZVRhcmdldEVsZW1lbnQpKHQpKSl0aHJvdyBuZXcgRXJyb3IoInRhcmdldCBlbGVtZW50IG5vdCBmb3VuZCIpO3JldHVybiB0aGlzLnJlbmRlckZyYW1lKGUpLHRoaXMucmVuZGVyZWQ9ITAsWzJdfX0pfSl9LHQucHJvdG90eXBlLnJlbmRlckZyYW1lPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmZyYW1lPXRoaXMuY3JlYXRlRnJhbWUoKTtuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHQsaSxhPW51bGwhPT0odD1uLmNvbnRlbnREb2N1bWVudCkmJnZvaWQgMCE9PXQ/dDpudWxsPT09KGk9bi5jb250ZW50V2luZG93KXx8dm9pZCAwPT09aT92b2lkIDA6aS5kb2N1bWVudDtpZighYSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIERvY3VtZW50Iik7dmFyIGM9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLHU9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdO3UuaWQ9ImJvZHkiLHUuZGF0YXNldC5zbWFydHN1cHBJZD1lLmlkLHUuaW5uZXJIVE1MPSc8ZGl2IGlkPSJhcHAiPjwvZGl2Pic7dmFyIGw9InNyYy9tYWluLnRzIixwPWZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuY3JlYXRlU2NyaXB0KShhLGUuZ2V0QmFzZVVybCgpKyIvIi5jb25jYXQodCkpO24udHlwZT0ibW9kdWxlIixjLmFwcGVuZENoaWxkKG4pfSxmPWZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuY3JlYXRlTGluaykoYSwiIi5jb25jYXQoZS5nZXRCYXNlVXJsKCksIi8iKS5jb25jYXQodCkpO24ucmVsPSJzdHlsZXNoZWV0IixuLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGMuYXBwZW5kQ2hpbGQobil9O2Uub3B0aW9ucy53aWRnZXRWM0Rldk1vZGU/WyJAdml0ZS9jbGllbnQiLGxdLmZvckVhY2gocCk6cihlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxuLHIsaTtyZXR1cm4gbyh0aGlzLGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAscy5yZXF1ZXN0KSgiIi5jb25jYXQodGhpcy5nZXRCYXNlVXJsKCksIi9tYW5pZmVzdC5qc29uIikpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuKDAscy5wYXJzZUpTT04pKHQpfSldO2Nhc2UgMTpyZXR1cm4gdD1vLnNlbnQoKSxuPXRbbF0scChuLmZpbGUpLG51bGw9PT0ocj1uLmltcG9ydHMpfHx2b2lkIDA9PT1yfHxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbztyPXRbbl0uZmlsZSwobz0oMCxzLmNyZWF0ZUxpbmspKGEsIiIuY29uY2F0KGUuZ2V0QmFzZVVybCgpLCIvIikuY29uY2F0KHIpKSkucmVsPSJtb2R1bGVwcmVsb2FkIixjLmFwcGVuZENoaWxkKG8pfSksbnVsbD09PShpPW4uY3NzKXx8dm9pZCAwPT09aXx8aS5mb3JFYWNoKGYpLGYodFsic3R5bGUuY3NzIl0uZmlsZSksWzJdfX0pfSl9KSx0LmFwcGVuZENoaWxkKG4pfSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5lbCYmdGhpcy5lbC5wYXJlbnROb2RlJiYodGhpcy5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWwpLHRoaXMuZWw9bnVsbCl9LHQucHJvdG90eXBlLmdldE9wdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10aGlzLm9wdGlvbnNbdF0/ZTp0aGlzLm9wdGlvbnNbdF19LHQucHJvdG90eXBlLmdldEJhc2VVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLndpZGdldFYzVXJsfSx0LnByb3RvdHlwZS5nZXRBc3NldFVybD1mdW5jdGlvbih0KXtyZXR1cm4iIi5jb25jYXQodGhpcy5nZXRCYXNlVXJsKCksIi8iKS5jb25jYXQodCl9LHQucHJvdG90eXBlLmdldEludGVybmFsQXBpVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIiIuY29uY2F0KHRoaXMub3B0aW9ucy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KHRoaXMub3B0aW9ucy5rZXksIi9jb2RlLmpzIil9LHQucHJvdG90eXBlLmV4ZWM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fcHVzaEFwaS5wdXNoKHQpfSx0LnByb3RvdHlwZS5pbnN0YWxsQXBpPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5hcGk9dCxhLnNtYXJ0c3VwcC5hcGk9dCx0aGlzLl9wdXNoQXBpJiYodGhpcy5fcHVzaEFwaS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4sMCk7dHJ5e2Uub3B0aW9ucy53aWRnZXRUcmFja2VyRW5hYmxlZCYmKDAsaS50cmFja09wZXJhdGlvbikoZS5vcHRpb25zLHJbMF0pLHQuZXhlY3V0ZShyKX1jYXRjaCh0KXtjb25zb2xlLmxvZyh0KX19KSx0aGlzLl9wdXNoQXBpLnB1c2g9ZnVuY3Rpb24obil7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobiwwKTt0cnl7ZS5vcHRpb25zLndpZGdldFRyYWNrZXJFbmFibGVkJiYoMCxpLnRyYWNrT3BlcmF0aW9uKShlLm9wdGlvbnMsclswXSksdC5leGVjdXRlKHIpfWNhdGNoKHQpe2NvbnNvbGUubG9nKHQpfX0pLHRoaXMub3B0aW9ucy5vblN0YXJ0dXApdHJ5e3RoaXMub3B0aW9ucy5vblN0YXJ0dXAodCl9Y2F0Y2godCl7Y29uc29sZS5sb2codCl9fSx0fSgpO2UuU21hcnRzdXBwV2lkZ2V0PXV9fSxlPXt9O2Z1bmN0aW9uIG4ocil7dmFyIG89ZVtyXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGk9ZVtyXT17ZXhwb3J0czp7fX07cmV0dXJuIHRbcl0uY2FsbChpLmV4cG9ydHMsaSxpLmV4cG9ydHMsbiksaS5leHBvcnRzfW4uZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLCgoKT0+eyJ1c2Ugc3RyaWN0IjtuKDc2MSk7dmFyIHQ9big3MTUpLGU9bigzNDUpLHI9ImNoYXQiO2lmKHdpbmRvdy5zbWFydHN1cHB8fCh3aW5kb3cuc21hcnRzdXBwPWZ1bmN0aW9uKCl7d2luZG93LnNtYXJ0c3VwcC5fLnB1c2goYXJndW1lbnRzKX0sd2luZG93LnNtYXJ0c3VwcC5fPVtdKSwhd2luZG93LlNNQVJUU1VQUF9MT0FERUQpe3dpbmRvdy5TTUFSVFNVUFBfTE9BREVEPSEwO3ZhciBvPW5ldyBlLlNtYXJ0c3VwcExvYWRlcih7d2lkZ2V0VmVyc2lvbjozLGJvb3RzdHJhcFVybDoiaHR0cHM6Ly9ib290c3RyYXAuc21hcnRzdXBwY2hhdC5jb20iLGZpbGVzVXJsOiJodHRwczovL2ZpbGVzLnNtYXJ0c3VwcGNkbi5jb20iLHdpZGdldFYzVXJsOiJodHRwczovL3dpZGdldC12My5zbWFydHN1cHBjZG4uY29tIixzdG9yYWdlVXJsOiJodHRwczovL3trZXl9LnN0b3JhZ2Uuc21hcnRzdXBwY2hhdC5jb20iLHdpZGdldEFwaVVybDoiaHR0cHM6Ly9hcGkuc21hcnRzdXBwY2hhdC5jb20iLHpJbmRleDoxZTcscG9zaXRpb246ImF1dG8iLG9yaWVudGF0aW9uOiJyaWdodCIsYXV0b0lubGluZU1vZGU6ITAsd2lkZ2V0VjNEZXZNb2RlOiExfSk7d2luZG93LiRzbWFydHN1cHA9byx3aW5kb3cuc21hcnRzdXBwPU9iamVjdC5hc3NpZ24od2luZG93LnNtYXJ0c3VwcCx7Y2hhdHM6by53aWRnZXRzLGNyZWF0ZTpvLmNyZWF0ZS5iaW5kKG8pLGNyZWF0ZVdpZGdldDpvLmNyZWF0ZVdpZGdldC5iaW5kKG8pLGdldENoYXQ6by5nZXRDaGF0LmJpbmQobyksZ2V0V2lkZ2V0Om8uZ2V0V2lkZ2V0LmJpbmQobyksc2V0RGVmYXVsdHM6by5zZXREZWZhdWx0cy5iaW5kKG8pfSksITEhPT13aW5kb3cuU01BUlRTVVBQX0FVVE9DUkVBVEUmJighMD09PXdpbmRvdy5TTUFSVFNVUFBfQkZDQUNIRSYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oKXt2YXIgdDtudWxsPT09KHQ9d2luZG93LnNtYXJ0c3VwcC5nZXRXaWRnZXQocikpfHx2b2lkIDA9PT10fHx0LnJlbmRlcigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXt2YXIgdCxlO251bGw9PT0odD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIi5jb25jYXQociwiLWFwcGxpY2F0aW9uLWlmcmFtZSIpKSl8fHZvaWQgMD09PXR8fHQucmVtb3ZlKCksbnVsbD09PShlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzbWFydHN1cHAtd2lkZ2V0LWNvbnRhaW5lciIpKXx8dm9pZCAwPT09ZXx8ZS5yZW1vdmUoKX0pKSx0KGZ1bmN0aW9uKCl7d2luZG93LnNtYXJ0c3VwcCgiaHRtbDphcHBseSIsZG9jdW1lbnQpLG8uY3JlYXRlV2lkZ2V0KHIsd2luZG93Ll9zbWFydHN1cHAsd2luZG93LnNtYXJ0c3VwcC5fKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbmRlcigpfSkuY2F0Y2goZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKHQpfSl9KSl9fSkoKX0pKCk7"}},"time_used":3292,"timings":{"blocked":0,"dns":3,"connect":8,"send":0,"wait":8,"receive":0,"ssl":3273},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/style-CliJwUTR.css","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:29.370Z","timestamp":1785139289370,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/style-CliJwUTR.css HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.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\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: 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 08:01:29 GMT\r\ncontent-type: text/css\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a4cb803-8d68\"\r\nexpires: Wed, 07 Jul 2027 08:30:01 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: kw68EiRC1pv1aCUm5Zb9rqWQ7VfeMFfxHBljCZrn6u1Uxrf7JR1X6cPctgWU8JnAf3jGnoE\r\nx-77-nzt-ray: e2f75420ade4d1455910676a57f12516\r\nx-77-cache: HIT\r\nx-77-age: 1726247\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":36200,"size_decoded":8208,"mime_type":"text/css","magic":"ASCII text, with very long lines (36187)","md5":"840dfdb09fc1a11a5c3a5b5f808e3160","sha1":"46140a50b100fa33b974027c13bb9f2de5c784b7","sha256":"b5b9a339413a55a0d828ab6be236e2a495594a19fb3283f846c607d7b6996ad7","sha512":"61e37700ee60ed584c8ae7b6313c5dddf6950c9664aa57f32bb4a70d775b1a1d5bfc249c6c1238495ef2cb7e12bae5f00c4ddb3df4dde44a01081117b74e2ba2","ssdeep":"384:F8fY2l091g7Tc6/WYtGLadKzSVX8Kj6+eZcrNSN56qB56YR9evZLLq51vZLLq5G:F8wM091gTcCWYtG4XqcrNSN56DwQ43","tlshash":"05f2966daad9093dac23c179e3f8e58c911af5d5df3226daf74239008ac17ff0986514","first_seen":"2026-07-07T11:50:17.712499Z","last_seen":"2026-08-01T06:16:36.377673Z","times_seen":3014,"resource_available":false,"data":"LmJ0bi5zdmVsdGUteXdvZm1se2JvcmRlci1yYWRpdXM6OTk5OXB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6LjI1cmVtO2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmlubGluZS1mbGV4fS5idG4tcHJpbWFyeS5zdmVsdGUteXdvZm1se2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1wcmltYXJ5LnN2ZWx0ZS15d29mbWw6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tZ2hvc3Quc3ZlbHRlLXl3b2ZtbDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYnRuLXN1Y2Nlc3Muc3ZlbHRlLXl3b2ZtbHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNiAxODUgMTI5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5idG4tc3VjY2Vzcy5zdmVsdGUteXdvZm1sOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDUgMTUwIDEwNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5idG4tc20uc3ZlbHRlLXl3b2ZtbHt3aWR0aDoxLjVyZW07aGVpZ2h0OjEuNXJlbX0uYnRuLW1kLnN2ZWx0ZS15d29mbWx7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbX0uYnRuLWxnLnN2ZWx0ZS15d29mbWx7d2lkdGg6Mi43NXJlbTtoZWlnaHQ6Mi43NXJlbX0uYnRuLXhsLnN2ZWx0ZS15d29mbWx7d2lkdGg6M3JlbTtoZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS15d29mbWx7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjJ9LmJ0bi1kaXNhYmxlZC5zdmVsdGUteXdvZm1sOmhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwMDB9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowO2JvcmRlci1jb2xvcjp2YXIoLS11bi1kZWZhdWx0LWJvcmRlci1jb2xvciwjZTVlN2ViKX06YmVmb3JlLDphZnRlcnstLXVuLWNvbnRlbnQ6IiJ9aHRtbCw6aG9zdHstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTt0YWItc2l6ZTo0O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6bm9ybWFsOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSxzYW5zLXNlcmlmLEFwcGxlIENvbG9yIEVtb2ppLFNlZ29lIFVJIEVtb2ppLFNlZ29lIFVJIFN5bWJvbCxOb3RvIENvbG9yIEVtb2ppO2xpbmUtaGVpZ2h0OjEuNX1ib2R5e2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOjB9aHJ7aGVpZ2h0OjA7Y29sb3I6aW5oZXJpdDtib3JkZXItdG9wLXdpZHRoOjFweH1hYmJyOndoZXJlKFt0aXRsZV0pey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9Y29kZSxrYmQsc2FtcCxwcmV7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxMaWJlcmF0aW9uIE1vbm8sQ291cmllciBOZXcsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mZWF0dXJlLXNldHRpbmdzOmluaGVyaXQ7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjppbmhlcml0O21hcmdpbjowO3BhZGRpbmc6MH1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JhY2tncm91bmQtaW1hZ2U6bm9uZX06LW1vei1mb2N1c3Jpbmd7b3V0bGluZTphdXRvfTotbW96LXVpLWludmFsaWR7Ym94LXNoYWRvdzpub25lfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b306Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX1ibG9ja3F1b3RlLGRsLGRkLGgxLGgyLGgzLGg0LGg1LGg2LGhyLGZpZ3VyZSxwLHByZXttYXJnaW46MH1maWVsZHNldHttYXJnaW46MDtwYWRkaW5nOjB9bGVnZW5ke3BhZGRpbmc6MH1vbCx1bCxtZW51e21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9ZGlhbG9ne3BhZGRpbmc6MH10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9aW5wdXQ6OnBsYWNlaG9sZGVyLHRleHRhcmVhOjpwbGFjZWhvbGRlcntvcGFjaXR5OjE7Y29sb3I6IzljYTNhZn1idXR0b24sW3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn06ZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9aW1nLHN2Zyx2aWRlbyxjYW52YXMsYXVkaW8saWZyYW1lLGVtYmVkLG9iamVjdHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTpibG9ja31pbWcsdmlkZW97bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99W2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPXVudGlsLWZvdW5kXSkpe2Rpc3BsYXk6bm9uZX0qLDpiZWZvcmUsOmFmdGVyLDo6YmFja2Ryb3B7LS11bi1yb3RhdGU6MDstLXVuLXJvdGF0ZS14OjA7LS11bi1yb3RhdGUteTowOy0tdW4tcm90YXRlLXo6MDstLXVuLXNjYWxlLXg6MTstLXVuLXNjYWxlLXk6MTstLXVuLXNjYWxlLXo6MTstLXVuLXNrZXcteDowOy0tdW4tc2tldy15OjA7LS11bi10cmFuc2xhdGUteDowOy0tdW4tdHJhbnNsYXRlLXk6MDstLXVuLXRyYW5zbGF0ZS16OjA7LS11bi1wYW4teDogOy0tdW4tcGFuLXk6IDstLXVuLXBpbmNoLXpvb206IDstLXVuLXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6cHJveGltaXR5Oy0tdW4tb3JkaW5hbDogOy0tdW4tc2xhc2hlZC16ZXJvOiA7LS11bi1udW1lcmljLWZpZ3VyZTogOy0tdW4tbnVtZXJpYy1zcGFjaW5nOiA7LS11bi1udW1lcmljLWZyYWN0aW9uOiA7LS11bi1ib3JkZXItc3BhY2luZy14OjA7LS11bi1ib3JkZXItc3BhY2luZy15OjA7LS11bi1yaW5nLW9mZnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1zaGFkb3c6MCAwICMwMDAwOy0tdW4tc2hhZG93LWluc2V0OiA7LS11bi1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1pbnNldDogOy0tdW4tcmluZy1vZmZzZXQtd2lkdGg6MHB4Oy0tdW4tcmluZy1vZmZzZXQtY29sb3I6I2ZmZjstLXVuLXJpbmctd2lkdGg6MHB4Oy0tdW4tcmluZy1jb2xvcjojOTNjNWZkODA7LS11bi1ibHVyOiA7LS11bi1icmlnaHRuZXNzOiA7LS11bi1jb250cmFzdDogOy0tdW4tZHJvcC1zaGFkb3c6IDstLXVuLWdyYXlzY2FsZTogOy0tdW4taHVlLXJvdGF0ZTogOy0tdW4taW52ZXJ0OiA7LS11bi1zYXR1cmF0ZTogOy0tdW4tc2VwaWE6IDstLXVuLWJhY2tkcm9wLWJsdXI6IDstLXVuLWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXVuLWJhY2tkcm9wLWNvbnRyYXN0OiA7LS11bi1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXVuLWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXVuLWJhY2tkcm9wLWludmVydDogOy0tdW4tYmFja2Ryb3Atb3BhY2l0eTogOy0tdW4tYmFja2Ryb3Atc2F0dXJhdGU6IDstLXVuLWJhY2tkcm9wLXNlcGlhOiB9LmZsZXgtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uYnV0dG9uLWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6MXB4O291dGxpbmUtc3R5bGU6c29saWR9LmJ1dHRvbi1mb2N1cy1zZWNvbmRhcnk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXdpZHRoOjJweDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktZm9jdXMpIDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXNlY29uZGFyeS1mb2N1cykgO291dGxpbmUtb2Zmc2V0OjFweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzLXNlY29uZGFyeTpmb2N1cy12aXNpYmxle291dGxpbmUtd2lkdGg6MnB4O291dGxpbmUtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1mb2N1cykgO291dGxpbmUtY29sb3I6dmFyKC0tY29sb3Itc2Vjb25kYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5cW2NsaXBcOnJlY3RcKDBcLDBcLDBcLDBcKVxde2NsaXA6cmVjdCgwLDAsMCwwKX0uc3Itb25seXtjbGlwOnJlY3QoMCwwLDAsMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci13aWR0aDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzpoaWRkZW59LnBvaW50ZXItZXZlbnRzLWF1dG97cG9pbnRlci1ldmVudHM6YXV0b30ucG9pbnRlci1ldmVudHMtbm9uZXtwb2ludGVyLWV2ZW50czpub25lfS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWR7cG9zaXRpb246Zml4ZWR9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGlja3l7cG9zaXRpb246c3RpY2t5fS4tYm90dG9tLTRcLjV7Ym90dG9tOi0xLjEyNXJlbX0uLXJpZ2h0LVxbNHB4XF17cmlnaHQ6LTRweH0uLXRvcC1cWzRweFxde3RvcDotNHB4fS5ib3R0b20tXFstOHB4XF17Ym90dG9tOi04cHh9LmJvdHRvbS0we2JvdHRvbTowfS5ib3R0b20tM3tib3R0b206Ljc1cmVtfS5ib3R0b20tZnVsbHtib3R0b206MTAwJX0ubGVmdC1cWzJweFxde2xlZnQ6MnB4fS5sZWZ0LTB7bGVmdDowfS5sZWZ0LTFcLzJ7bGVmdDo1MCV9LmxlZnQtMntsZWZ0Oi41cmVtfS5sZWZ0LTNcLjd7bGVmdDouOTI1cmVtfS5yaWdodC1cWzE2cHhcXXtyaWdodDoxNnB4fS5yaWdodC0we3JpZ2h0OjB9LnJpZ2h0LTBcLjV7cmlnaHQ6LjEyNXJlbX0ucmlnaHQtMntyaWdodDouNXJlbX0ucmlnaHQtM3tyaWdodDouNzVyZW19LnRvcC1cWzJweFxde3RvcDoycHh9LnRvcC0we3RvcDowfS50b3AtMnt0b3A6LjVyZW19LnRvcC0ze3RvcDouNzVyZW19LnRvcC0zXC43e3RvcDouOTI1cmVtfS50b3AtMzB7dG9wOjcuNXJlbX0udG9wLTQwe3RvcDoxMHJlbX0ubGluZS1jbGFtcC0xey13ZWJraXQtbGluZS1jbGFtcDoxO2xpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LmxpbmUtY2xhbXAtMnstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS5saW5lLWNsYW1wLTN7LXdlYmtpdC1saW5lLWNsYW1wOjM7bGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0ubGluZS1jbGFtcC01ey13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LnotMXt6LWluZGV4OjF9LnotMTB7ei1pbmRleDoxMH0uei0xMDB7ei1pbmRleDoxMDB9LnotNTB7ei1pbmRleDo1MH0uZ3JpZHtkaXNwbGF5OmdyaWR9LmZsb2F0LXJpZ2h0e2Zsb2F0OnJpZ2h0fS4tbS1weHttYXJnaW46LTFweH0ubS0ze21hcmdpbjouNzVyZW19Lm0tYXV0b3ttYXJnaW46YXV0b30ubTE1e21hcmdpbjozLjc1cmVtfS5tMTZ7bWFyZ2luOjRyZW19Lm0xOHttYXJnaW46NC41cmVtfS5tMjF7bWFyZ2luOjUuMjVyZW19Lm0yMnttYXJnaW46NS41cmVtfS5tNnttYXJnaW46MS41cmVtfS5tN3ttYXJnaW46MS43NXJlbX0ubTh7bWFyZ2luOjJyZW19Lm05e21hcmdpbjoyLjI1cmVtfS5teC0ye21hcmdpbi1sZWZ0Oi41cmVtO21hcmdpbi1yaWdodDouNXJlbX0ubXgtM3ttYXJnaW4tbGVmdDouNzVyZW07bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXgtNHttYXJnaW4tbGVmdDoxcmVtO21hcmdpbi1yaWdodDoxcmVtfS5teS0ze21hcmdpbi10b3A6Ljc1cmVtO21hcmdpbi1ib3R0b206Ljc1cmVtfS5teS00e21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjFyZW19Li1tdC0ze21hcmdpbi10b3A6LS43NXJlbX0ubWItXFsycHhcXXttYXJnaW4tYm90dG9tOjJweH0ubWItMHttYXJnaW4tYm90dG9tOjB9Lm1iLTEsLm5vdC1sYXN0LW9mLXR5cGVcOm1iLTE6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206LjI1cmVtfS5tYi0ye21hcmdpbi1ib3R0b206LjVyZW19Lm1iLTN7bWFyZ2luLWJvdHRvbTouNzVyZW19Lm1iLTR7bWFyZ2luLWJvdHRvbToxcmVtfS5tYi02e21hcmdpbi1ib3R0b206MS41cmVtfS5tbC0wXC41e21hcmdpbi1sZWZ0Oi4xMjVyZW19Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtfS5tbC0ye21hcmdpbi1sZWZ0Oi41cmVtfS5tbC0ze21hcmdpbi1sZWZ0Oi43NXJlbX0ubWwtNHttYXJnaW4tbGVmdDoxcmVtfS5tbC04e21hcmdpbi1sZWZ0OjJyZW19Lm1yLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbX0ubXItMVwuNXttYXJnaW4tcmlnaHQ6LjM3NXJlbX0ubXItMTB7bWFyZ2luLXJpZ2h0OjIuNXJlbX0ubXItMnttYXJnaW4tcmlnaHQ6LjVyZW19Lm1yLTN7bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXItNHttYXJnaW4tcmlnaHQ6MXJlbX0ubXQtXFsxcHhcXXttYXJnaW4tdG9wOjFweH0ubXQtMFwuNXttYXJnaW4tdG9wOi4xMjVyZW19Lm10LTJ7bWFyZ2luLXRvcDouNXJlbX0ubXQtM3ttYXJnaW4tdG9wOi43NXJlbX0ubXQtNHttYXJnaW4tdG9wOjFyZW19Lm10LTZ7bWFyZ2luLXRvcDoxLjVyZW19Lm10LTh7bWFyZ2luLXRvcDoycmVtfS5maXJzdC1vZi10eXBlXDptdC0yOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDouNXJlbX0uaW5saW5le2Rpc3BsYXk6aW5saW5lfS5ibG9ja3tkaXNwbGF5OmJsb2NrfS5pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmgtXFsxXC4yZW1cXXtoZWlnaHQ6MS4yZW19LmgtXFsxZW1cXXtoZWlnaHQ6MWVtfS5oLVxbNTBweFxde2hlaWdodDo1MHB4fS5oLTF7aGVpZ2h0Oi4yNXJlbX0uaC0xMHtoZWlnaHQ6Mi41cmVtfS5oLTExe2hlaWdodDoyLjc1cmVtfS5oLTEye2hlaWdodDozcmVtfS5oLTJ7aGVpZ2h0Oi41cmVtfS5oLTJcLjV7aGVpZ2h0Oi42MjVyZW19LmgtMjB7aGVpZ2h0OjVyZW19LmgtMzB7aGVpZ2h0OjcuNXJlbX0uaC00e2hlaWdodDoxcmVtfS5oLTQwe2hlaWdodDoxMHJlbX0uaC00MDBweHtoZWlnaHQ6NDAwcHh9LmgtNXtoZWlnaHQ6MS4yNXJlbX0uaC01NHB4e2hlaWdodDo1NHB4fS5oLTZ7aGVpZ2h0OjEuNXJlbX0uaC02MHB4e2hlaWdodDo2MHB4fS5oLTY0cHh7aGVpZ2h0OjY0cHh9LmgtN3toZWlnaHQ6MS43NXJlbX0uaC04e2hlaWdodDoycmVtfS5oLWZ1bGx7aGVpZ2h0OjEwMCV9LmgtcHh7aGVpZ2h0OjFweH0ubWF4LWgtXFsxMjVweFxde21heC1oZWlnaHQ6MTI1cHh9Lm1heC1oLVxbMjQwcHhcXXttYXgtaGVpZ2h0OjI0MHB4fS5tYXgtaC1cWzMycHhcXXttYXgtaGVpZ2h0OjMycHh9Lm1heC1oLTEzMnB4e21heC1oZWlnaHQ6MTMycHh9Lm1heC1oLTY0e21heC1oZWlnaHQ6MTZyZW19Lm1heC1oLTgwdmh7bWF4LWhlaWdodDo4MHZofS5tYXgtaC04NnttYXgtaGVpZ2h0OjIxLjVyZW19Lm1heC1oLWZ1bGx7bWF4LWhlaWdodDoxMDAlfS5tYXgtdy1cWzgwXCVcXXttYXgtd2lkdGg6ODAlfS5tYXgtdy1cWzg1XCVcXXttYXgtd2lkdGg6ODUlfS5tYXgtdy1cW2NhbGNcKDEwMFwlLTE1MHB4XClcXXttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTUwcHgpfS5tYXgtdy1mdWxse21heC13aWR0aDoxMDAlfS5taW4taC1cWzE2cHhcXXttaW4taGVpZ2h0OjE2cHh9Lm1pbi13LVxbMTZweFxde21pbi13aWR0aDoxNnB4fS5taW4tdy0we21pbi13aWR0aDowfS5taW4tdy01e21pbi13aWR0aDoxLjI1cmVtfS5taW4tdy01XC41e21pbi13aWR0aDoxLjM3NXJlbX0ubWluLXctNnttaW4td2lkdGg6MS41cmVtfS53LVxbMVwuMmVtXF17d2lkdGg6MS4yZW19LnctXFsxZW1cXXt3aWR0aDoxZW19LnctXFs1MHB4XF17d2lkdGg6NTBweH0udy0we3dpZHRoOjB9LnctMXt3aWR0aDouMjVyZW19LnctMTF7d2lkdGg6Mi43NXJlbX0udy0xMTZ7d2lkdGg6MjlyZW19LnctMTJ7d2lkdGg6M3JlbX0udy0ye3dpZHRoOi41cmVtfS53LTJcLjV7d2lkdGg6LjYyNXJlbX0udy0yODBweHt3aWR0aDoyODBweH0udy0zNDhweHt3aWR0aDozNDhweH0udy00e3dpZHRoOjFyZW19LnctNXt3aWR0aDoxLjI1cmVtfS53LTUye3dpZHRoOjEzcmVtfS53LTU2e3dpZHRoOjE0cmVtfS53LTZ7d2lkdGg6MS41cmVtfS53LTYwcHh7d2lkdGg6NjBweH0udy03e3dpZHRoOjEuNzVyZW19LnctOHt3aWR0aDoycmVtfS53LWZ1bGx7d2lkdGg6MTAwJX0udy1tYXh7d2lkdGg6bWF4LWNvbnRlbnR9LnctcHh7d2lkdGg6MXB4fS5mbGV4e2Rpc3BsYXk6ZmxleH0uaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uZmxleC0xe2ZsZXg6MX0uZmxleC1ub25le2ZsZXg6bm9uZX0uZmxleC1zaHJpbmt7ZmxleC1zaHJpbms6MX0uZmxleC1zaHJpbmstMCwuc2hyaW5rLTB7ZmxleC1zaHJpbms6MH0uZmxleC1ncm93LC5ncm93e2ZsZXgtZ3JvdzoxfS5mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS4tdHJhbnNsYXRlLXgtMVwvMnstLXVuLXRyYW5zbGF0ZS14Oi01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNsYXRlLXgtZnVsbHstLXVuLXRyYW5zbGF0ZS14OjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpzY2FsZS0xMTV7LS11bi1zY2FsZS14OjEuMTU7LS11bi1zY2FsZS15OjEuMTU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uaG92ZXJcOnNjYWxlLTEyMDpob3ZlcnstLXVuLXNjYWxlLXg6MS4yOy0tdW4tc2NhbGUteToxLjI7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNmb3Jte3RyYW5zZm9ybTp0cmFuc2xhdGVYKHZhcigtLXVuLXRyYW5zbGF0ZS14KSkgdHJhbnNsYXRlWSh2YXIoLS11bi10cmFuc2xhdGUteSkpIHRyYW5zbGF0ZVoodmFyKC0tdW4tdHJhbnNsYXRlLXopKSByb3RhdGUodmFyKC0tdW4tcm90YXRlKSkgcm90YXRlWCh2YXIoLS11bi1yb3RhdGUteCkpIHJvdGF0ZVkodmFyKC0tdW4tcm90YXRlLXkpKSByb3RhdGVaKHZhcigtLXVuLXJvdGF0ZS16KSkgc2tld1godmFyKC0tdW4tc2tldy14KSkgc2tld1kodmFyKC0tdW4tc2tldy15KSkgc2NhbGVYKHZhcigtLXVuLXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdW4tc2NhbGUteSkpIHNjYWxlWih2YXIoLS11bi1zY2FsZS16KSl9QGtleWZyYW1lcyBwdWxzZXswJSx0b3tvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgcHVzaC10by1sZWZ0ezAle21hcmdpbi1yaWdodDotNTAlO3RyYW5zZm9ybTpzY2FsZSgwKX10b3ttYXJnaW4tcmlnaHQ6aW5oZXJpdDt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgc3BpbnswJXtyb3RhdGU6MGRlZ310b3tyb3RhdGU6MzYwZGVnfX1Aa2V5ZnJhbWVzIHR5cGluZ3swJSw1MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9MjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02cHgpfX0uYW5pbWF0ZS1wdWxzZXthbmltYXRpb246MnMgY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkgaW5maW5pdGUgcHVsc2V9LmFuaW1hdGUtcHVzaC10by1sZWZ0e2FuaW1hdGlvbjouMjVzIGVhc2UtaW4tb3V0IHB1c2gtdG8tbGVmdH0uYW5pbWF0ZS1zcGlue2FuaW1hdGlvbjoxcyBsaW5lYXIgaW5maW5pdGUgc3Bpbn0uYW5pbWF0ZS10eXBpbmd7YW5pbWF0aW9uOi44cyBlYXNlLWluLW91dCB0eXBpbmd9LmN1cnNvci1hdXRve2N1cnNvcjphdXRvfS5jdXJzb3ItcG9pbnRlciwuaG92ZXJcOmN1cnNvci1wb2ludGVyOmhvdmVye2N1cnNvcjpwb2ludGVyfS5jdXJzb3Itbm90LWFsbG93ZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5zZWxlY3Qtbm9uZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucmVzaXple3Jlc2l6ZTpib3RofS5yZXNpemUtbm9uZXtyZXNpemU6bm9uZX0uc2Nyb2xsLW10LTJ7c2Nyb2xsLW1hcmdpbi10b3A6LjVyZW19Lmxpc3QtZGVjaW1hbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0ubGlzdC1kaXNje2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5jb250ZW50LWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlcn0uaXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uaXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZX0uc2VsZi1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaH0uanVzdGlmeS1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uanVzdGlmeS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmdhcC0ye2dhcDouNXJlbX0uZ2FwLTN7Z2FwOi43NXJlbX0uc3BhY2UteC0yPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdW4tc3BhY2UteC1yZXZlcnNlOjA7bWFyZ2luLWxlZnQ6Y2FsYyguNXJlbSAqIGNhbGMoMSAtIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpKTttYXJnaW4tcmlnaHQ6Y2FsYyguNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS14LTU+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS14LXJldmVyc2U6MDttYXJnaW4tbGVmdDpjYWxjKDEuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS14LXJldmVyc2UpKSk7bWFyZ2luLXJpZ2h0OmNhbGMoMS4yNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS15LTI+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tdG9wOmNhbGMoLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC41cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktND46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxcmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktNT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxLjI1cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30ub3ZlcmZsb3ctY2xpcHtvdmVyZmxvdzpjbGlwfS5vdmVyZmxvdy1oaWRkZW57b3ZlcmZsb3c6aGlkZGVufS5vdmVyZmxvdy14LWhpZGRlbntvdmVyZmxvdy14OmhpZGRlbn0ub3ZlcmZsb3cteS1hdXRve292ZXJmbG93LXk6YXV0b30ub3ZlcmZsb3cteS1zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGx9Lm92ZXJzY3JvbGwtY29udGFpbntvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LnRydW5jYXRle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0udGV4dC1lbGxpcHNpc3t0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53aGl0ZXNwYWNlLW5vcm1hbHt3aGl0ZS1zcGFjZTpub3JtYWx9LndoaXRlc3BhY2Utbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0ud2hpdGVzcGFjZS1wcmV7d2hpdGUtc3BhY2U6cHJlfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS5icmVhay13b3Jkc3tvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmJyZWFrLWFsbHt3b3JkLWJyZWFrOmJyZWFrLWFsbH0uYm9yZGVyLC5ib3JkZXItMXtib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItMHtib3JkZXItd2lkdGg6MH0uYm9yZGVyLTJ7Ym9yZGVyLXdpZHRoOjJweH0uYm9yZGVyLXQtMntib3JkZXItdG9wLXdpZHRoOjJweH0uYm9yZGVyLWdyYXktMzAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci1ncmVlbi00MDB7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoNzQgMjIyIDEyOC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItcHJpbWFyeXtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeSl9LmJvcmRlci1wcmltYXJ5LWJ1dHRvbntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pfS5ib3JkZXItcmVkLTUwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uYm9yZGVyLXNsYXRlLTIwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItd2hpdGV7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uZm9jdXNcOmJvcmRlci1ibHVlLTUwMDpmb2N1c3stLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci10LW5ldXRyYWwtMTAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTstLXVuLWJvcmRlci10b3Atb3BhY2l0eTp2YXIoLS11bi1ib3JkZXItb3BhY2l0eSk7Ym9yZGVyLXRvcC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYm9yZGVyLXRvcC1vcGFjaXR5KSl9LmJvcmRlci1yb3VuZGVkLWZ1bGwsLnJvdW5kZWQtZnVsbHtib3JkZXItcmFkaXVzOjk5OTlweH0ucm91bmRlZC0yLC5yb3VuZGVkLWxne2JvcmRlci1yYWRpdXM6LjVyZW19LnJvdW5kZWQtMnhse2JvcmRlci1yYWRpdXM6MXJlbX0ucm91bmRlZC0zeGwsLnJvdW5kZWQtNntib3JkZXItcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1tZHtib3JkZXItcmFkaXVzOi4zNzVyZW19LnJvdW5kZWQteGx7Ym9yZGVyLXJhZGl1czouNzVyZW19LnJvdW5kZWQtbHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbX0ucm91bmRlZC1sLTN4bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW19LnJvdW5kZWQtci0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC10LTZ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5yb3VuZGVkLWxiLTN4bHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1sdC0zeGx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW19LnJvdW5kZWQtcmItM3hse2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ydC0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5ib3JkZXItZGFzaGVke2JvcmRlci1zdHlsZTpkYXNoZWR9LmJvcmRlci1ub25le2JvcmRlci1zdHlsZTpub25lfS5iZy1ibGFja3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ibGFja1wvODB7YmFja2dyb3VuZC1jb2xvcjojMDAwY30uYmctZW1lcmFsZC01MDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTYgMTg1IDEyOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjkgMjMxIDIzNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTMwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTQwMFwvXFtcLjk1XF17YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjJ9LmJnLWdyYXktNjAwXC9cW1wuOTVcXXtiYWNrZ3JvdW5kLWNvbG9yOiM0YjU1NjNmMn0uYmctZ3JlZW4tNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDc0IDIyMiAxMjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctZ3JlZW4tNTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDM0IDE5NyA5NC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDUgMjQ1IDI0NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMFwvNTB7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1ODB9LmJnLW5ldXRyYWwtNjAwXC80MHtiYWNrZ3JvdW5kLWNvbG9yOiM1MjUyNTI2Nn0uYmctb3JhbmdlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDkgMTE1IDIyL3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXByaW1hcnktYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIH0uYmctcmVkLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctcmVkLTYwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtMTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1zbGF0ZS0zMDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjAzIDIxMyAyMjUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5iZy13aGl0ZXstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUgMjU1IDI1NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1ibGFjazpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1lbWVyYWxkLTYwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYig1IDE1MCAxMDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uaG92ZXItYmctcHJpbWFyeS1idXR0b24taG92ZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5ob3Zlci1iZy1wcmltYXJ5LWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmhvdmVyLWJnLXNsYXRlLTEwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDEgMjQ1IDI0OS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy10cmFuc3BhcmVudDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5ob3Zlclw6Ymctc2xhdGUtMTAwOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLW9wYWNpdHktMTAsLmhvdmVyLWJnLW9wYWNpdHktMTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5Oi4xfS5mcm9tLXdoaXRlXC8xMDB7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlOy0tdW4tZ3JhZGllbnQtZnJvbTojZmZmIHZhcigtLXVuLWdyYWRpZW50LWZyb20tcG9zaXRpb24pOy0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwIHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKTstLXVuLWdyYWRpZW50LXN0b3BzOnZhcigtLXVuLWdyYWRpZW50LWZyb20pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnZpYS13aGl0ZVwvNDB7LS11bi1ncmFkaWVudC12aWEtcG9zaXRpb246NTAlOy0tdW4tZ3JhZGllbnQtdG86I2ZmZjA7LS11bi1ncmFkaWVudC1zdG9wczp2YXIoLS11bi1ncmFkaWVudC1mcm9tKSwgI2ZmZjYgdmFyKC0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uKSwgdmFyKC0tdW4tZ3JhZGllbnQtdG8pfS52aWEtd2hpdGVcLzUwey0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjUwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwOy0tdW4tZ3JhZGllbnQtc3RvcHM6dmFyKC0tdW4tZ3JhZGllbnQtZnJvbSksICNmZmZmZmY4MCB2YXIoLS11bi1ncmFkaWVudC12aWEtcG9zaXRpb24pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnRvLXRyYW5zcGFyZW50ey0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOnRyYW5zcGFyZW50IHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKX0uZnJvbS0wXCV7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlfS52aWEtNTBcJXstLXVuLWdyYWRpZW50LXZpYS1wb3NpdGlvbjo1MCV9LnZpYS03MFwley0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjcwJX0uYmctZ3JhZGllbnQtdG8tdHstLXVuLWdyYWRpZW50LXNoYXBlOnRvIHRvcCBpbiBva2xjaDstLXVuLWdyYWRpZW50OnZhcigtLXVuLWdyYWRpZW50LXNoYXBlKSwgdmFyKC0tdW4tZ3JhZGllbnQtc3RvcHMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHZhcigtLXVuLWdyYWRpZW50KSl9LmZpbGwtY3VycmVudHtmaWxsOmN1cnJlbnRDb2xvcn0uZmlsbC1wcmltYXJ5LWJ1dHRvbntmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmZpbGwtcHJpbWFyeS1idXR0b24tY29udGVudHtmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0ub2JqZWN0LWNvbnRhaW57b2JqZWN0LWZpdDpjb250YWlufS5wLTB7cGFkZGluZzowfS5wLTBcLjh7cGFkZGluZzouMnJlbX0ucC0xe3BhZGRpbmc6LjI1cmVtfS5wLTFcLjV7cGFkZGluZzouMzc1cmVtfS5wLTJ7cGFkZGluZzouNXJlbX0ucC0ze3BhZGRpbmc6Ljc1cmVtfS5wLTR7cGFkZGluZzoxcmVtfS5wLTh7cGFkZGluZzoycmVtfS5weCwucHgtNHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnB4LTF7cGFkZGluZy1sZWZ0Oi4yNXJlbTtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0ucHgtMntwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0ucHgtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtO3BhZGRpbmctcmlnaHQ6Ljc1cmVtfS5weC04e3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0ucHktMXtwYWRkaW5nLXRvcDouMjVyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5weS0ye3BhZGRpbmctdG9wOi41cmVtO3BhZGRpbmctYm90dG9tOi41cmVtfS5weS0yXC41e3BhZGRpbmctdG9wOi42MjVyZW07cGFkZGluZy1ib3R0b206LjYyNXJlbX0ucHktM3twYWRkaW5nLXRvcDouNzVyZW07cGFkZGluZy1ib3R0b206Ljc1cmVtfS5wYi0we3BhZGRpbmctYm90dG9tOjB9LnBiLTF7cGFkZGluZy1ib3R0b206LjI1cmVtfS5wYi0ye3BhZGRpbmctYm90dG9tOi41cmVtfS5wYi0ze3BhZGRpbmctYm90dG9tOi43NXJlbX0ucGItNHtwYWRkaW5nLWJvdHRvbToxcmVtfS5wbC0ye3BhZGRpbmctbGVmdDouNXJlbX0ucGwtNCwuZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpub3QtZmlyc3RcOnBsLTQ6bm90KDpmaXJzdC1jaGlsZCl7cGFkZGluZy1sZWZ0OjFyZW19LnByLTF7cGFkZGluZy1yaWdodDouMjVyZW19LnByLTR7cGFkZGluZy1yaWdodDoxcmVtfS5wdC0xe3BhZGRpbmctdG9wOi4yNXJlbX0ucHQtNntwYWRkaW5nLXRvcDoxLjVyZW19LnB0LTl7cGFkZGluZy10b3A6Mi4yNXJlbX0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtMnhse2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MnJlbX0udGV4dC1iYXNle2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNXJlbX0udGV4dC1iYXNlLWlucHV0e2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW19LnRleHQtbGd7Zm9udC1zaXplOjEuMTI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19LnRleHQtc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbX0udGV4dC14c3tmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjFyZW19LnRleHQtYmxhY2t7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LWdyYXktMzAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1ncmF5LTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDcgMTE0IDEyOC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtbmV1dHJhbC00MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTYzIDE2MyAxNjMvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LW5ldXRyYWwtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDExNSAxMTUgMTE1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1wcmltYXJ5e2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnkpIH0udGV4dC1wcmltYXJ5LWJ1dHRvbntjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgfS50ZXh0LXByaW1hcnktYnV0dG9uLWNvbnRlbnR7Y29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudCkgfS50ZXh0LXByaW1hcnktY29udGVudHtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRlbnQpIH0udGV4dC1yZWQtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNDAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3Itc2xhdGUtNTAwLC50ZXh0LXNsYXRlLTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNjAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDcxIDg1IDEwNS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmNvbG9yLXNsYXRlLTgwMCwudGV4dC1zbGF0ZS04MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LXdoaXRley0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI1NSAyNTUgMjU1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uaG92ZXItdGV4dC1wcmltYXJ5LWJ1dHRvbi1jb250ZW50OmhvdmVye2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uaG92ZXJcOnRleHQtZ3JheS00MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTU2IDE2MyAxNzUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6dGV4dC1zbGF0ZS04MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5wbGFjZWhvbGRlclw6dGV4dC1zbGF0ZS0zMDA6OnBsYWNlaG9sZGVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwMyAyMTMgMjI1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3ItcmVkLTYwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6Y29sb3Itc2xhdGUtNzAwOmhvdmVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDUxIDY1IDg1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1vcGFjaXR5LTIwey0tdW4tdGV4dC1vcGFjaXR5Oi4yfS5mb250LTIwMHtmb250LXdlaWdodDoyMDB9LmZvbnQtNTAwLC5mb250LW1lZGl1bXtmb250LXdlaWdodDo1MDB9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZvbnQtbGlnaHR7Zm9udC13ZWlnaHQ6MzAwfS5mb250LXNlbWlib2xke2ZvbnQtd2VpZ2h0OjYwMH0ubGVhZGluZy1cWzIycHhcXXtsaW5lLWhlaWdodDoyMnB4fS5sZWFkaW5nLTRcLjV7bGluZS1oZWlnaHQ6MS4xMjVyZW19LmxlYWRpbmctNVwuNXtsaW5lLWhlaWdodDoxLjM3NXJlbX0ubGVhZGluZy02e2xpbmUtaGVpZ2h0OjEuNXJlbX0ubGVhZGluZy1ub3JtYWx7bGluZS1oZWlnaHQ6MS41fS5pdGFsaWN7Zm9udC1zdHlsZTppdGFsaWN9LnVuZGVybGluZXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm5vLXVuZGVybGluZSwuaG92ZXItbm8tdW5kZXJsaW5lOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5vcGFjaXR5LTEwe29wYWNpdHk6LjF9Lm9wYWNpdHktMTAwe29wYWNpdHk6MX0ub3BhY2l0eS0yMHtvcGFjaXR5Oi4yfS5vcGFjaXR5LTMwe29wYWNpdHk6LjN9Lm9wYWNpdHktNjB7b3BhY2l0eTouNn0uc2hhZG93ey0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxcHggM3B4IDAgdmFyKC0tdW4tc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksdmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uc2hhZG93LWxney0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxMHB4IDE1cHggLTNweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgNHB4IDZweCAtNHB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctbWR7LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDRweCA2cHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgMnB4IDRweCAtMnB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctc217LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggMCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDBkKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpvdXRsaW5lLTI6Zm9jdXMtd2l0aGlue291dGxpbmUtd2lkdGg6MnB4fS5mb2N1cy13aXRoaW5cOm91dGxpbmUtcHJpbWFyeS1mb2N1czpmb2N1cy13aXRoaW57b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSB9Lm91dGxpbmUsLmZvY3VzLXdpdGhpblw6b3V0bGluZS1zb2xpZDpmb2N1cy13aXRoaW57b3V0bGluZS1zdHlsZTpzb2xpZH0ub3V0bGluZS1ub25lLC5mb2N1c1w6b3V0bGluZS1ub25lOmZvY3VzLC5mb2N1cy12aXNpYmxlXDpvdXRsaW5lLW5vbmU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDoycHg7b3V0bGluZToycHggc29saWQgIzAwMDB9LmZvY3VzLXdpdGhpblw6cmluZy0zOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctd2lkdGg6M3B4Oy0tdW4tcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXVuLXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXVuLXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS11bi1yaW5nLW9mZnNldC1jb2xvcik7LS11bi1yaW5nLXNoYWRvdzp2YXIoLS11bi1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKHZhcigtLXVuLXJpbmctd2lkdGgpICsgdmFyKC0tdW4tcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS11bi1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpyaW5nLW9mZnNldC0xOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb2Zmc2V0LXdpZHRoOjFweH0uZm9jdXMtd2l0aGluXDpyaW5nLWJsdWUtNDAwOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb3BhY2l0eToxOy0tdW4tcmluZy1jb2xvcjpyZ2IoOTYgMTY1IDI1MC92YXIoLS11bi1yaW5nLW9wYWNpdHkpKSB9LmZvY3VzXDpyaW5nLWJsdWUtNTAwOmZvY3Vzey0tdW4tcmluZy1vcGFjaXR5OjE7LS11bi1yaW5nLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLXJpbmctb3BhY2l0eSkpIH0udHJhbnNpdGlvbnt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSxvcGFjaXR5LGJveC1zaGFkb3csdHJhbnNmb3JtLGZpbHRlciwtd2Via2l0LWJhY2tkcm9wLWZpbHRlcixiYWNrZHJvcC1maWx0ZXI7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tY29sb3Jze3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0udHJhbnNpdGlvbi1vcGFjaXR5e3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tcGFkZGluZy00MDB7dHJhbnNpdGlvbi1wcm9wZXJ0eTpwYWRkaW5nO3RyYW5zaXRpb24tZHVyYXRpb246LjRzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLXRyYW5zZm9ybXt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24td2lkdGgtMjUwe3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGg7dHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5kdXJhdGlvbi0xNTB7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzfS5kdXJhdGlvbi0zMDB7dHJhbnNpdGlvbi1kdXJhdGlvbjouM3N9LmR1cmF0aW9uLTc1e3RyYW5zaXRpb24tZHVyYXRpb246NzVtc30uZGVsYXktMHt0cmFuc2l0aW9uLWRlbGF5OjBzfS5lYXNlLWluLW91dHt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uZWFzZS1vdXR7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0uY29udGVudC1cW1wiXCJcXXtjb250ZW50OiIifS5iZy1wcmltYXJ5LWdyYWRpZW50e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDgwZGVnLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvKSAxMzAlKX0uYmctcHJpbWFyeS1ncmFkaWVudC1idXR0b257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtYnV0dG9uLWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWJ1dHRvbi10bykgMTMwJSl9LmJnLXByaW1hcnktZ3JhZGllbnQtaG92ZXI6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItZnJvbSksIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItdG8pIDEzMCUpfS5saW5lLWNsYW1wLTV7LXdlYmtpdC1saW5lLWNsYW1wOjU7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS50eXBpbmctaW5kaWNhdG9yLnN2ZWx0ZS1zNDB4Z2t7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnR5cGluZy1pbmRpY2F0b3Iuc20uc3ZlbHRlLXM0MHhna3t3aWR0aDouMjVyZW07aGVpZ2h0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci5tZC5zdmVsdGUtczQweGdre3dpZHRoOi41cmVtO2hlaWdodDouNXJlbX0udHlwaW5nLWluZGljYXRvci5pbmRpY2F0b3ItY29sb3ItYmxhY2suc3ZlbHRlLXM0MHhna3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS50eXBpbmctaW5kaWNhdG9yLmluZGljYXRvci1jb2xvci1ncmF5LnN2ZWx0ZS1zNDB4Z2t7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTAwIDExNiAxMzkvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0udHlwaW5nLWluZGljYXRvci5zdmVsdGUtczQweGdrOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci1zZWNvbmQuc3ZlbHRlLXM0MHhna3thbmltYXRpb24tZGVsYXk6LjFzfS50eXBpbmctaW5kaWNhdG9yLXRoaXJkLnN2ZWx0ZS1zNDB4Z2t7YW5pbWF0aW9uLWRlbGF5Oi4yc30uYnRuLnN2ZWx0ZS0xZTg0bjd3e2JvcmRlci1yYWRpdXM6MS41cmVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTppbmxpbmUtZmxleH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3d7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgO2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3c6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tb3V0bGluZS5zdmVsdGUtMWU4NG43d3tib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbik7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigwIDAgMC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmJ0bi1vdXRsaW5lLnN2ZWx0ZS0xZTg0bjd3OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1yYWlzZWQuc3ZlbHRlLTFlODRuN3d7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSA7Ym94LXNoYWRvdzowIDJweCA2cHggIzAwMDAwMDI5fS5idG4tcmFpc2VkLnN2ZWx0ZS0xZTg0bjd3OmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJ0bi1zbS5zdmVsdGUtMWU4NG43d3toZWlnaHQ6MnJlbX0uYnRuLW1kLnN2ZWx0ZS0xZTg0bjd3e2hlaWdodDoyLjVyZW19LmJ0bi1sZy5zdmVsdGUtMWU4NG43d3toZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS0xZTg0bjd3e2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi4yfS5kYXJrLnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojNGI1NTYzZjI7cGFkZGluZzouNXJlbSAuNzVyZW19LmxpZ2h0LnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjI7cGFkZGluZzouMjVyZW0gLjVyZW19c3ZnLnN2ZWx0ZS15aXhoYXR7ZmlsbDpjdXJyZW50Q29sb3I7d2lkdGg6MWVtO2hlaWdodDoxZW19LmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpke2p1c3RpZnktY29udGVudDpzdGFydDthbGlnbi1pdGVtczpzdGFydDt3aWR0aDoxMDAlfS5jYXJvdXNlbC5zdmVsdGUtMTBxcWp6ZDpob3ZlciAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCksLmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpkOmZvY3VzLXdpdGhpbiAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCl7b3BhY2l0eToxfS5idXR0b24uc3ZlbHRlLTEwcXFqemR7b3BhY2l0eTowO3otaW5kZXg6MTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JvcmRlcjpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuNHM7cG9zaXRpb246YWJzb2x1dGV9LmxlZnQuc3ZlbHRlLTEwcXFqemR7bGVmdDotMWVtfS5yaWdodC5zdmVsdGUtMTBxcWp6ZHtyaWdodDotMWVtfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCB1bHttYXJnaW4tcmlnaHQ6LjI1cmVtO3BhZGRpbmctbGVmdDoxcmVtO2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBsaTpub3QoOmZpcnN0LWNoaWxkKSwubWVzc2FnZS1jb250ZW50LWh0bWwgbGk+dWwsLm1lc3NhZ2UtY29udGVudC1odG1sIGxpPm9se21hcmdpbi10b3A6LjVyZW19Lm1lc3NhZ2UtY29udGVudC1odG1sIG9se21hcmdpbi1yaWdodDouMjVyZW07cGFkZGluZy1sZWZ0OjFyZW07bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9Lm1lc3NhZ2UtY29udGVudC1odG1sIGF7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCAqe3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9Lm1lc3NhZ2UtY29udGVudC10ZXh0LnN2ZWx0ZS1uZmIweW17b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0ubWVzc2FnZS1jb250ZW50LXRleHQgYXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm1lc3NhZ2UtY29udGVudC10ZXh0IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6Zmlyc3Qtb2YtdHlwZXt6LWluZGV4OjN9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6bnRoLW9mLXR5cGUoMil7ei1pbmRleDoyfS5hdmF0YXItZ3JvdXAtaXRlbS5zdmVsdGUteWZ4YTd0Om50aC1vZi10eXBlKDMpe3otaW5kZXg6MX0uYXZhdGFyLXNtLnN2ZWx0ZS15ZnhhN3Q6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6LTEycHh9LmF2YXRhci1tZC5zdmVsdGUteWZ4YTd0Om5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi0xNnB4fS5hdmF0YXItbGcuc3ZlbHRlLXlmeGE3dDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDotMjJweH0ucmVtb3ZlSWNvbi5zdmVsdGUtMTFmM2Jkd3tvcGFjaXR5OjA7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6aG92ZXIgLnJlbW92ZUljb246d2hlcmUoLnN2ZWx0ZS0xMWYzYmR3KSwuYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6Zm9jdXMtd2l0aGluIC5yZW1vdmVJY29uOndoZXJlKC5zdmVsdGUtMTFmM2Jkdyl7b3BhY2l0eToxfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2V7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3Njcm9sbGJhci13aWR0aDpub25lO2ZsZXg6MTttYXgtaGVpZ2h0OjMycHg7bWFyZ2luLXRvcDouNzVyZW07bWFyZ2luLWJvdHRvbTouNzVyZW07ZGlzcGxheTpncmlkO292ZXJmbG93OmhpZGRlbiBhdXRvfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udGV4dGFyZWEtY29udGFpbmVyLXJlc2l6YWJsZS5zdmVsdGUtMXRsOWxjZXttYXgtaGVpZ2h0OjEyNXB4fS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdGV4dGFyZWEtdmFsdWUpICIgIjt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXIsdGV4dGFyZWEuc3ZlbHRlLTF0bDlsY2V7Zm9udC1zaXplOmluaGVyaXQ7Z3JpZC1hcmVhOjEvMS8yLzI7bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6Ljc1cmVtfXRleHRhcmVhLnN2ZWx0ZS0xdGw5bGNlOjpwbGFjZWhvbGRlcnt3b3JkLWJyZWFrOmJyZWFrLWFsbDtvdmVyZmxvdzpoaWRkZW59ZW0tZW1vamktcGlja2Vyey0tYm9yZGVyLXJhZGl1czoxMnB4Oy0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjpyZ2IoMjI2IDIzMiAyNDAvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItcmFkaXVzOi43NXJlbTt3aWR0aDoxMDAlO2hlaWdodDo0MDBweDttYXgtaGVpZ2h0Ojgwdmg7cGFkZGluZy10b3A6LjI1cmVtO2JveC1zaGFkb3c6MCAxcHggMTVweCAxcHggIzAwMDAwMDFmfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em97LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjI5IDIzMSAyMzUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoyLjc1cmVtO2hlaWdodDoxLjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2U7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86Zm9jdXN7b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86YWZ0ZXJ7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7Y29udGVudDoiIjtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoxLjI1cmVtO2hlaWdodDoxLjI1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4fS5zd2l0Y2guY2hlY2tlZC5zdmVsdGUtMXl6Znp6b3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LnN3aXRjaC5jaGVja2VkLnN2ZWx0ZS0xeXpmenpvOmFmdGVyey0tdW4tdHJhbnNsYXRlLXg6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCh2YXIoLS11bi10cmFuc2xhdGUteCkpIHRyYW5zbGF0ZVkodmFyKC0tdW4tdHJhbnNsYXRlLXkpKSB0cmFuc2xhdGVaKHZhcigtLXVuLXRyYW5zbGF0ZS16KSkgcm90YXRlKHZhcigtLXVuLXJvdGF0ZSkpIHJvdGF0ZVgodmFyKC0tdW4tcm90YXRlLXgpKSByb3RhdGVZKHZhcigtLXVuLXJvdGF0ZS15KSkgcm90YXRlWih2YXIoLS11bi1yb3RhdGUteikpIHNrZXdYKHZhcigtLXVuLXNrZXcteCkpIHNrZXdZKHZhcigtLXVuLXNrZXcteSkpIHNjYWxlWCh2YXIoLS11bi1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXVuLXNjYWxlLXkpKSBzY2FsZVoodmFyKC0tdW4tc2NhbGUteikpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmludmFsaWQuc3ZlbHRlLTEyZjRjMWcsLmludmFsaWQuc3ZlbHRlLTE5bTN1Y3l7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjM5IDY4IDY4L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9c2VsZWN0LnN2ZWx0ZS04aDVycTR7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzZCNzI4MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nbTYgOCA0IDQgNC00Jy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAuNXJlbSBjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxLjVlbSAxLjVlbX0uaW52YWxpZC5zdmVsdGUtOGg1cnE0ey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5pY29uLnN2ZWx0ZS0xcnNhMnF2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSA7Ym9yZGVyLXJhZGl1czoxLjVyZW07cGFkZGluZzouNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uZHJhd2VyLWJ1dHRvbi5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtib3JkZXItcmFkaXVzOi41cmVtO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6LjVyZW07dHJhbnNpdGlvbjpjb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxib3JkZXItY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSx0ZXh0LWRlY29yYXRpb24tY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxmaWxsIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksc3Ryb2tlIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTpmbGV4fS5kcmF3ZXItYnV0dG9uLnN2ZWx0ZS1qNmV4cTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uZHJhd2VyLWJ1dHRvbi1kaXNhYmxlZC5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtvcGFjaXR5Oi4zO2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTtkaXNwbGF5OmZsZXh9LmRyYXdlci1idXR0b24tZGlzYWJsZWQuc3ZlbHRlLWo2ZXhxMDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWR9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGN7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTt0cmFuc2l0aW9uOmNvbG9yIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksYmFja2dyb3VuZC1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJvcmRlci1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLHRleHQtZGVjb3JhdGlvbi1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGZpbGwgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxzdHJva2UgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmZsZXh9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGM6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0ubWVzc2FnZS1jb250ZW50LnN2ZWx0ZS0xZ2Z2aGk2e292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm1lc3NhZ2UtY29udGVudC1sZWZ0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6LjI1cmVtIDEuNXJlbSAxLjVyZW0gLjI1cmVtfS5tZXNzYWdlLWNvbnRlbnQtbGVmdC1maXJzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LWxlZnQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LXJpZ2h0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6MS41cmVtIC4yNXJlbSAuMjVyZW0gMS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtZmlyc3Quc3ZlbHRlLTFnZnZoaTZ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoxLjVyZW19LmNvdW50LWFuaW1hdGUuc3ZlbHRlLTIyOGM3bnthbmltYXRpb246LjJzIGN1YmljLWJlemllciguNCwyLC42LDEpIHN2ZWx0ZS0yMjhjN24tcG9wLXNjYWxlfUBrZXlmcmFtZXMgc3ZlbHRlLTIyOGM3bi1wb3Atc2NhbGV7MCV7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xKX10b3t0cmFuc2Zvcm06c2NhbGUoMSl9fQovKiR2aXRlJDoxKi8="}},"time_used":18,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T08:01:24.302Z","timestamp":1785139284302,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: mobichain.co\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\ndate: Mon, 27 Jul 2026 08:01:24 GMT\r\ncontent-type: text/html\r\nserver: cloudflare\r\nlast-modified: Sun, 12 Oct 2025 15:03:52 GMT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: Accept-Encoding\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=8nsLDpEkOUsWsEc1Q%2BCYpVWs7i%2BWd6DLiWNeAyUtAKmNdBgJuAaH%2FTFEk0jaX49KCMcPCwYmYt4SV%2BqtackyyWk56DtwwzAP0ETVkS8%2BeBHZ9S2Vvx0NUK744U9Lg1A%3D\"}]}\r\ncf-cache-status: DYNAMIC\r\ncontent-encoding: zstd\r\ncf-ray: a21a1daf78d456a8-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"jQuery:3.5.1","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"]},{"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":"Webflow","description":"Webflow is Software-as-a-Service (SaaS) for website building and hosting.","website":"https://webflow.com","common_platform_enumeration":"","icon":"webflow.svg","categories":["Page builders","CMS"]}],"data":{"size":36699,"size_decoded":8406,"mime_type":"text/html","magic":"HTML document, Unicode text, UTF-8 text","md5":"161f19770ad93ac7a57dc99f5bf420e4","sha1":"ee0763ca401c19944d0327507b97d74e2f61a73c","sha256":"a82b94e4f4acba74d7bd0a00573022492e57ab4d1d7c86f20acf62b635f5de6f","sha512":"8f5b9ba59d7ed0aa81f691eed8dfa5defdf172ff130e54194c48605149c1704e6aa73454ed38e7d9550aebb3f69cc9fb6c7440c7e16adee4cd0a3ccb17d57573","ssdeep":"384:MMR86suEdmX3JgYGjQ+EFoQca/p4WqkfcmgIxCdfmuYuVu+:MSnZ3CDjQ+EFoQca/p4Wqkfc7SCdfZnz","tlshash":"f1f2a41269f120a60343c0acabf55a1a6f86d047da5bad4872ec4bcc9fc3dd5ce57a48","first_seen":"2026-07-25T05:39:21.883498Z","last_seen":"2026-07-27T08:02:19.601814Z","times_seen":5,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjwhLS0gVGhpcyBzaXRlIHdhcyBjcmVhdGVkIGluIFdlYmZsb3cuIGh0dHBzOi8vd2ViZmxvdy5jb20gLS0+PCEtLSBMYXN0IFB1Ymxpc2hlZDogU2F0IE5vdiAzMCAyMDI0IDAwOjE5OjQxIEdNVCswMDAwIChDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZSkgLS0+CjxodG1sCiAgZGF0YS13Zi1kb21haW49ImFwdG9uaWN0ZW1wbGF0ZS53ZWJmbG93LmlvIgogIGRhdGEtd2YtcGFnZT0iNjMzNDRlNzIxYTZkZWEyZThkYjlmOTBiIgogIGRhdGEtd2Ytc2l0ZT0iNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4IgogIGRhdGEtd2Ytc3RhdHVzPSIxIgo+CiAgPCEtLSBNaXJyb3JlZCBmcm9tIGFwdG9uaWN0ZW1wbGF0ZS53ZWJmbG93LmlvL2hvbWUgYnkgSFRUcmFjayBXZWJzaXRlIENvcGllci8zLnggW1hSJkNPJzIwMTRdLCBTYXQsIDIzIEF1ZyAyMDI1IDE3OjU2OjA2IEdNVCAtLT4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgogICAgPHRpdGxlPk1vYmljaGFpbiDigJMgU3BsaXQgQmlsbHMgJiBQYXkgSW5zdGFudGx5IHdpdGggQ3J5cHRvPC90aXRsZT4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJNb2JpY2hhaW4gaXMgdGhlIHdvcmxkJ3MgZmlyc3QgY3J5cHRvIHNwbGl0LWJpbGwgd2FsbGV0IGFwcC4gSW5zdGFudGx5IHNwbGl0IGV4cGVuc2VzLCBzZW5kICYgcmVjZWl2ZSBjcnlwdG8gcGF5bWVudHMsIHRyYWNrIGdyb3VwIHNwZW5kaW5nLCBhbmQgbWFuYWdlIHNoYXJlZCB3YWxsZXRzIHNlY3VyZWx5LiI+CiAgICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iY3J5cHRvIGJpbGwgc3BsaXQsIGNyeXB0byB3YWxsZXQgYXBwLCBzcGxpdCBiaWxscyB3aXRoIGNyeXB0bywgc2hhcmUgZXhwZW5zZXMgYmxvY2tjaGFpbiwgcGF5IGZyaWVuZHMgaW4gY3J5cHRvLCBjcnlwdG8gcGF5bWVudHMsIGV4cGVuc2UgdHJhY2tlciB3YWxsZXQiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlY29udGVudD0iTW9iaWNoYWluIOKAkyBTcGxpdCBCaWxscyAmIFBheSBJbnN0YW50bHkgd2l0aCBDcnlwdG8iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJUaGUgZWFzaWVzdCB3YXkgdG8gc3BsaXQgZ3JvdXAgZXhwZW5zZXMgYW5kIHBheSBpbnN0YW50bHkgd2l0aCBjcnlwdG9jdXJyZW5jeS4gVHJhdmVsLCBkaW5uZXIsIHJlbnQsIG9yIHN1YnNjcmlwdGlvbnMg4oCTIE1vYmljaGFpbiBtYWtlcyBtb25leSBzaGFyaW5nIHNpbXBsZS4iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL21vYmljaGFpbi5jby9wcmV2aWV3LnBuZyI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL21vYmljaGFpbi5jbyI+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgoKICAgIDxtZXRhIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIiBuYW1lPSJ2aWV3cG9ydCIgLz4KICAgIDxtZXRhIGNvbnRlbnQ9IldlYmZsb3ciIG5hbWU9ImdlbmVyYXRvciIgLz4KICAgIDxsaW5rCiAgICAgIGhyZWY9InN0eWxlLmNzcyIKICAgICAgcmVsPSJzdHlsZXNoZWV0IgogICAgICB0eXBlPSJ0ZXh0L2NzcyIKICAgIC8+CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICEoZnVuY3Rpb24gKG8sIGMpIHsKICAgICAgICB2YXIgbiA9IGMuZG9jdW1lbnRFbGVtZW50LAogICAgICAgICAgdCA9ICIgdy1tb2QtIjsKICAgICAgICAobi5jbGFzc05hbWUgKz0gdCArICJqcyIpLAogICAgICAgICAgKCJvbnRvdWNoc3RhcnQiIGluIG8gfHwKICAgICAgICAgICAgKG8uRG9jdW1lbnRUb3VjaCAmJiBjIGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaCkpICYmCiAgICAgICAgICAgIChuLmNsYXNzTmFtZSArPSB0ICsgInRvdWNoIik7CiAgICAgIH0pKHdpbmRvdywgZG9jdW1lbnQpOwogICAgPC9zY3JpcHQ+CiAgICA8bGluawogICAgICBocmVmPSJodHRwczovL21vYmljaGFpbi5jby9pY29uLnBuZyIKICAgICAgcmVsPSJzaG9ydGN1dCBpY29uIgogICAgICB0eXBlPSJpbWFnZS94LWljb24iCiAgICAvPgogICAgPGxpbmsKICAgICAgaHJlZj0iaHR0cHM6Ly9tb2JpY2hhaW4uY28vaWNvbi5wbmciCiAgICAgIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIKICAgIC8+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICB3aW5kb3cuX19XRUJGTE9XX0NVUlJFTkNZX1NFVFRJTkdTID0gewogICAgICAgIGN1cnJlbmN5Q29kZTogIlVTRCIsCiAgICAgICAgc3ltYm9sOiAiJCIsCiAgICAgICAgZGVjaW1hbDogIi4iLAogICAgICAgIGZyYWN0aW9uRGlnaXRzOiAyLAogICAgICAgIGdyb3VwOiAiLCIsCiAgICAgICAgdGVtcGxhdGU6CiAgICAgICAgICAne3t3ZiB7InBhdGgiOiJzeW1ib2wiLCJ0eXBlIjoiUGxhaW5UZXh0In0gfX0ge3t3ZiB7InBhdGgiOiJhbW91bnQiLCJ0eXBlIjoiQ29tbWVyY2VQcmljZSJ9IH19IHt7d2YgeyJwYXRoIjoiY3VycmVuY3lDb2RlIiwidHlwZSI6IlBsYWluVGV4dCJ9IH19JywKICAgICAgICBoaWRlRGVjaW1hbEZvcldob2xlTnVtYmVyczogZmFsc2UsCiAgICAgIH07CiAgICA8L3NjcmlwdD4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGNsYXNzPSJwYWdlLXdyYXBwZXIiPgogICAgICA8ZGl2CiAgICAgICAgZGF0YS13LWlkPSI5MTFmMmVkYy1mZjJhLTE4ZmQtZTI2ZC02MDE2MTg2Mjg3NjkiCiAgICAgICAgZGF0YS1hbmltYXRpb249ImRlZmF1bHQiCiAgICAgICAgZGF0YS1jb2xsYXBzZT0ibWVkaXVtIgogICAgICAgIGRhdGEtZHVyYXRpb249IjQwMCIKICAgICAgICBkYXRhLWVhc2luZz0iZWFzZSIKICAgICAgICBkYXRhLWVhc2luZzI9ImVhc2UiCiAgICAgICAgcm9sZT0iYmFubmVyIgogICAgICAgIGNsYXNzPSJoZWFkZXItd3JhcHBlciB3LW5hdiIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1kZWZhdWx0IHctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1jb250ZW50LXdyYXBwZXIganVzdGlmeS1zcGFjZSI+CiAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJoZWFkZXItbG9nby1saW5rIHctbmF2LWJyYW5kIgogICAgICAgICAgICAgID48aW1nCiAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vbW9iaWNoYWluLmNvL21sb2dvLnBuZyIgd2lkdGg9IjE4MCIKICAgICAgICAgICAgICAgIGFsdD0iTG9nbyAtIFNwbGl0IGJpbGxzIHdpdGggTW9iaWNoYWluIgogICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlci1sb2dvIgogICAgICAgICAgICAvPjwvYT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLW1pZGRsZSI+CiAgICAgICAgICAgICAgPG5hdiByb2xlPSJuYXZpZ2F0aW9uIiBjbGFzcz0iaGVhZGVyLW5hdi1tZW51LXdyYXBwZXIgdy1uYXYtbWVudSI+CiAgICAgICAgICAgICAgICA8dWwgcm9sZT0ibGlzdCIgY2xhc3M9ImhlYWRlci1uYXYtbWVudS1saXN0Ij4KICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJoZWFkZXItbmF2LWxpc3QtaXRlbSBtaWRkbGUiPgogICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvIgogICAgICAgICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PSJwYWdlIgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlci1uYXYtbGluayB3LW5hdi1saW5rIHctLWN1cnJlbnQiCiAgICAgICAgICAgICAgICAgICAgICA+SG9tZTwvYQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJoZWFkZXItbmF2LWxpc3QtaXRlbSBtaWRkbGUiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9hYm91dCIgY2xhc3M9ImhlYWRlci1uYXYtbGluayB3LW5hdi1saW5rIgogICAgICAgICAgICAgICAgICAgICAgPkFib3V0PC9hCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImhlYWRlci1uYXYtbGlzdC1pdGVtIG1pZGRsZSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3ByaXZhY3ktcG9saWN5IiBjbGFzcz0iaGVhZGVyLW5hdi1saW5rIHctbmF2LWxpbmsiCiAgICAgICAgICAgICAgICAgICAgICA+UHJpdmFjeTwvYQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iaGVhZGVyLW5hdi1saXN0LWl0ZW0gbWlkZGxlIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvY29udGFjdCIgY2xhc3M9ImhlYWRlci1uYXYtbGluayB3LW5hdi1saW5rIgogICAgICAgICAgICAgICAgICAgICAgPkNvbnRhY3Q8L2EKICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDwvbGk+CgogICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImhlYWRlci1uYXYtbGlzdC1pdGVtIG1pZGRsZSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NhcmVlcnMiIGNsYXNzPSJoZWFkZXItbmF2LWxpbmsgdy1uYXYtbGluayIKICAgICAgICAgICAgICAgICAgICAgID5DYXJlZXIgPHNwYW4gY2xhc3M9InB1bHNpbmctaWNvbiI+PC9zcGFuPjwvYQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJoZWFkZXItbmF2LWxpc3QtaXRlbSBoZWFkZXItYnV0dG9uLXNob3ctaW4tdGFibGV0Ij4KICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgaHJlZj0iI2FwcGxlIgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJ0bi1wcmltYXJ5IGRvd25sb2FkLWFwcCBzbWFsbCB3LWlubGluZS1ibG9jayIKICAgICAgICAgICAgICAgICAgICAgID48ZGl2IGNsYXNzPSJzb2NpYWwtaWNvbi1mb250IGJ1dHRvbi1sZWZ0IHNpemUtMTZweCI+CiAgICAgICAgICAgICAgICAgICAgICAgIO6giwogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2PkRvd25sb2FkPC9kaXY+PC9hCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICA8L25hdj4KICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBkYXRhLW5vZGUtdHlwZT0iY29tbWVyY2UtY2FydC13cmFwcGVyIgogICAgICAgICAgICAgICAgZGF0YS1vcGVuLXByb2R1Y3Q9IiIKICAgICAgICAgICAgICAgIGRhdGEtd2YtY2FydC10eXBlPSJtb2RhbCIKICAgICAgICAgICAgICAgIGRhdGEtd2YtY2FydC1xdWVyeT0icXVlcnkgRHluYW1vMyB7CiAgZGF0YWJhc2UgewogICAgaWQKICAgIGNvbW1lcmNlT3JkZXIgewogICAgICBjb21tZW50CiAgICAgIGV4dHJhSXRlbXMgewogICAgICAgIG5hbWUKICAgICAgICBwbHVnaW5JZAogICAgICAgIHBsdWdpbk5hbWUKICAgICAgICBwcmljZSB7CiAgICAgICAgICBkZWNpbWFsVmFsdWUKICAgICAgICAgIHN0cmluZwogICAgICAgICAgdW5pdAogICAgICAgICAgdmFsdWUKICAgICAgICB9CiAgICAgIH0KICAgICAgaWQKICAgICAgc3RhcnRlZE9uCiAgICAgIHN0YXR1c0ZsYWdzIHsKICAgICAgICBoYXNEb3dubG9hZHMKICAgICAgICBoYXNTdWJzY3JpcHRpb24KICAgICAgICBpc0ZyZWVPcmRlcgogICAgICAgIHJlcXVpcmVzU2hpcHBpbmcKICAgICAgfQogICAgICBzdWJ0b3RhbCB7CiAgICAgICAgZGVjaW1hbFZhbHVlCiAgICAgICAgc3RyaW5nCiAgICAgICAgdW5pdAogICAgICAgIHZhbHVlCiAgICAgIH0KICAgICAgdG90YWwgewogICAgICAgIGRlY2ltYWxWYWx1ZQogICAgICAgIHN0cmluZwogICAgICAgIHVuaXQKICAgICAgICB2YWx1ZQogICAgICB9CiAgICAgIHVwZGF0ZWRPbgogICAgICB1c2VySXRlbXMgewogICAgICAgIGNvdW50CiAgICAgICAgaWQKICAgICAgICBwcmljZSB7CiAgICAgICAgICB2YWx1ZQogICAgICAgICAgdW5pdAogICAgICAgICAgZGVjaW1hbFZhbHVlCiAgICAgICAgICBzdHJpbmcKICAgICAgICB9CiAgICAgICAgcHJvZHVjdCB7CiAgICAgICAgICBpZAogICAgICAgICAgY21zTG9jYWxlSWQKICAgICAgICAgIGRyYWZ0CiAgICAgICAgICBhcmNoaXZlZAogICAgICAgICAgZl9lY19wcm9kdWN0X3R5cGVfMmRyMTBkcjogcHJvZHVjdFR5cGUgewogICAgICAgICAgICBpZAogICAgICAgICAgICBuYW1lCiAgICAgICAgICB9CiAgICAgICAgICBmX25hbWVfOiBuYW1lCiAgICAgICAgICBmX3NrdV9wcm9wZXJ0aWVzXzNkcjogc2t1UHJvcGVydGllcyB7CiAgICAgICAgICAgIGlkCiAgICAgICAgICAgIG5hbWUKICAgICAgICAgICAgZW51bSB7CiAgICAgICAgICAgICAgaWQKICAgICAgICAgICAgICBuYW1lCiAgICAgICAgICAgICAgc2x1ZwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdWxsU2x1ZwogICAgICAgIH0KICAgICAgICByb3dUb3RhbCB7CiAgICAgICAgICBkZWNpbWFsVmFsdWUKICAgICAgICAgIHN0cmluZwogICAgICAgICAgdW5pdAogICAgICAgICAgdmFsdWUKICAgICAgICB9CiAgICAgICAgc2t1IHsKICAgICAgICAgIGNtc0xvY2FsZUlkCiAgICAgICAgICBkcmFmdAogICAgICAgICAgYXJjaGl2ZWQKICAgICAgICAgIGZfbWFpbl9pbWFnZV80ZHI6IG1haW5JbWFnZSB7CiAgICAgICAgICAgIHVybAogICAgICAgICAgICBmaWxlIHsKICAgICAgICAgICAgICBzaXplCiAgICAgICAgICAgICAgb3JpZ0ZpbGVOYW1lCiAgICAgICAgICAgICAgY3JlYXRlZE9uCiAgICAgICAgICAgICAgdXBkYXRlZE9uCiAgICAgICAgICAgICAgbWltZVR5cGUKICAgICAgICAgICAgICB3aWR0aAogICAgICAgICAgICAgIGhlaWdodAogICAgICAgICAgICAgIHZhcmlhbnRzIHsKICAgICAgICAgICAgICAgIG9yaWdGaWxlTmFtZQogICAgICAgICAgICAgICAgcXVhbGl0eQogICAgICAgICAgICAgICAgaGVpZ2h0CiAgICAgICAgICAgICAgICB3aWR0aAogICAgICAgICAgICAgICAgczNVcmwKICAgICAgICAgICAgICAgIGVycm9yCiAgICAgICAgICAgICAgICBzaXplCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGFsdAogICAgICAgICAgfQogICAgICAgICAgZl9za3VfdmFsdWVzXzNkcjogc2t1VmFsdWVzIHsKICAgICAgICAgICAgcHJvcGVydHkgewogICAgICAgICAgICAgIGlkCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFsdWUgewogICAgICAgICAgICAgIGlkCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlkCiAgICAgICAgfQogICAgICAgIHN1YnNjcmlwdGlvbkZyZXF1ZW5jeQogICAgICAgIHN1YnNjcmlwdGlvbkludGVydmFsCiAgICAgICAgc3Vic2NyaXB0aW9uVHJpYWwKICAgICAgfQogICAgICB1c2VySXRlbXNDb3VudAogICAgfQogIH0KICBzaXRlIHsKICAgIGNvbW1lcmNlIHsKICAgICAgaWQKICAgICAgYnVzaW5lc3NBZGRyZXNzIHsKICAgICAgICBjb3VudHJ5CiAgICAgIH0KICAgICAgZGVmYXVsdENvdW50cnkKICAgICAgZGVmYXVsdEN1cnJlbmN5CiAgICAgIHF1aWNrQ2hlY2tvdXRFbmFibGVkCiAgICB9CiAgfQp9IgogICAgICAgICAgICAgICAgZGF0YS13Zi1wYWdlLWxpbmstaHJlZi1wcmVmaXg9IiIKICAgICAgICAgICAgICAgIGNsYXNzPSJ3LWNvbW1lcmNlLWNvbW1lcmNlY2FydHdyYXBwZXIgY2FydC1idXR0b24td3JhcHBlciIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXJpZ2h0LXNpZGUiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhhbWJ1cmdlci1tZW51LXdyYXBwZXIgdy1uYXYtYnV0dG9uIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhhbWJ1cmdlci1tZW51LWJhciB0b3AiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGFtYnVyZ2VyLW1lbnUtYmFyIGJvdHRvbSI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICBocmVmPSIjYXBwbGUiCiAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICBjbGFzcz0iYnRuLXByaW1hcnkgZG93bmxvYWQtYXBwIHNtYWxsIHctaW5saW5lLWJsb2NrIgogICAgICAgICAgICAgICAgICA+PGRpdiBjbGFzcz0ic29jaWFsLWljb24tZm9udCBidXR0b24tbGVmdCBzaXplLTE2cHgiPu6gizwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2PkRvd25sb2FkPC9kaXY+PC9hCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIGhlcm8gdjEiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1kZWZhdWx0IHctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgZGF0YS13LWlkPSIzOTIxYzA2MS00NjdiLWI3MGQtZmRiYS0wZWY5Y2UyMjM2OWYiCiAgICAgICAgICAgIHN0eWxlPSIKICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKSBzY2FsZTNkKDEsIDEsIDEpCiAgICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApIHNjYWxlM2QoMSwgMSwgMSkgcm90YXRlWCgwKQogICAgICAgICAgICAgICAgcm90YXRlWSgwKSByb3RhdGVaKDApIHNrZXcoMCwgMCk7CiAgICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKSBzY2FsZTNkKDEsIDEsIDEpIHJvdGF0ZVgoMCkKICAgICAgICAgICAgICAgIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKSBzY2FsZTNkKDEsIDEsIDEpIHJvdGF0ZVgoMCkKICAgICAgICAgICAgICAgIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICIKICAgICAgICAgICAgY2xhc3M9ImlubmVyLWNvbnRhaW5lciBfMTA4MHB4IGNlbnRlciIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIF83NTBweC0tLXRhYmxldCBjZW50ZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciBfNjAwcHgtLS1tYmwgY2VudGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJkaXNwbGF5LTEiPgogICAgICAgICAgICAgICAgICAgIFNwbGl0IEV4cGVuc2VzLCBQYXkgSW5zdGFudGx5IHdpdGggQ3J5cHRvLgogICAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFyYWdyYXBoLWxhcmdlIG1nLWJvdHRvbS00MHB4IG1heC13LTgxMnB4Ij4KICAgICAgICAgICAgICAgICAgICBUaGUgdWx0aW1hdGUgY3J5cHRvIHdhbGxldCBmb3IgZnJpZW5kcywgZmFtaWxpZXMsIGFuZCB0ZWFtcy4gCiAgICAgICAgICAgICAgICAgICAgU3BsaXQgZXhwZW5zZXMsIHNlbmQgcGF5bWVudHMsIGFuZCBtYW5hZ2UgZ3JvdXAgZmluYW5jZXMgd2l0aCBibG9ja2NoYWluLXBvd2VyZWQgc2VjdXJpdHkuCiAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9ucy1yb3cgY2VudGVyIGdhcC0yNXB4Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9uZy9hcHAvbW9iaWNoYWluL2lkNjc1Mjc5MzcyMCIKICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJidG4tcHJpbWFyeSBkb3dubG9hZC1hcHAgd2hpdGUgdy1pbmxpbmUtYmxvY2siCiAgICAgICAgICAgICAgICAgICAgICAgID48ZGl2IGNsYXNzPSJzb2NpYWwtaWNvbi1mb250IGJ1dHRvbi1sZWZ0Ij7uoIs8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5Eb3dubG9hZCBmb3IgaU9TPC9kaXY+PC9hCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vbW9iaWNoYWluLmNvL21vYmljaGFpbi5hcGsiCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnRuLXByaW1hcnkgZG93bmxvYWQtYXBwIHdoaXRlIHctaW5saW5lLWJsb2NrIgogICAgICAgICAgICAgICAgICAgICAgICA+PGRpdiBjbGFzcz0ic29jaWFsLWljb24tZm9udCBtZy1yaWdodC04cHgiPu6glTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PkRvd25sb2FkIGZvciBBbmRyb2lkPC9kaXY+PC9hCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdgogICAgICAgICAgZGF0YS13LWlkPSJmYzRkYjQ3MC1iMWI4LTM4OTMtNDMxZi0wOWIyNmVmNmUzZGQiCiAgICAgICAgICBzdHlsZT0iCiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZTNkKDAuOTIsIDAuOTIsIDEpCiAgICAgICAgICAgICAgcm90YXRlWCgwKSByb3RhdGVZKDApIHJvdGF0ZVooMCkgc2tldygwLCAwKTsKICAgICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNjYWxlM2QoMC45MiwgMC45MiwgMSkKICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZTNkKDAuOTIsIDAuOTIsIDEpCiAgICAgICAgICAgICAgcm90YXRlWCgwKSByb3RhdGVZKDApIHJvdGF0ZVooMCkgc2tldygwLCAwKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZTNkKDAuOTIsIDAuOTIsIDEpIHJvdGF0ZVgoMCkKICAgICAgICAgICAgICByb3RhdGVZKDApIHJvdGF0ZVooMCkgc2tldygwLCAwKTsKICAgICAgICAgICIKICAgICAgICAgIGNsYXNzPSJpbWFnZS13cmFwcGVyIG1nLXRvcC04MHB4IHBvc2l0aW9uLXJlbGF0aXZlIGZ1bGwtaGVyby1pbWFnZSIKICAgICAgICA+CiAgICAgICAgICA8aW1nCiAgICAgICAgICAgIHNyYz0idG9wLnBuZyIKICAgICAgICAgICAgYWx0PSJUaGUgTmV4dC1nZW5lcmF0aW9uIEZpbmFuY2UgQXBwIC0gU3BsaXQgYmlsbHMgd2l0aCBNb2JpY2hhaW4iCiAgICAgICAgICAgIGNsYXNzPSJpbWFnZS1oZXJvIgogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyYWRpZW50IGZ1bGwtaGVyby1pbWFnZS0tLWxlZnQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQgZnVsbC1oZXJvLWltYWdlLS0tcmlnaHQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQgZnVsbC1oZXJvLWltYWdlIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1kZWZhdWx0IHctY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciBfNzAwcHgtLS10YWJsZXQgY2VudGVyIj4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGRhdGEtdy1pZD0iMTdiMTcwOGEtMjZlNi00MzRhLWRhNWMtODQwNTkwMWYwNjNjIgogICAgICAgICAgICAgIHN0eWxlPSIKICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApIHNjYWxlM2QoMSwgMSwgMSkKICAgICAgICAgICAgICAgICAgcm90YXRlWCgwKSByb3RhdGVZKDApIHJvdGF0ZVooMCkgc2tldygwLCAwKTsKICAgICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApIHNjYWxlM2QoMSwgMSwgMSkKICAgICAgICAgICAgICAgICAgcm90YXRlWCgwKSByb3RhdGVZKDApIHJvdGF0ZVooMCkgc2tldygwLCAwKTsKICAgICAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwJSwgMCkgc2NhbGUzZCgxLCAxLCAxKQogICAgICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApIHNjYWxlM2QoMSwgMSwgMSkgcm90YXRlWCgwKQogICAgICAgICAgICAgICAgICByb3RhdGVZKDApIHJvdGF0ZVooMCkgc2tldygwLCAwKTsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgIgogICAgICAgICAgICAgIGNsYXNzPSJpbm5lci1jb250YWluZXIgXzY3NnB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIF81MDBweC0tLXRhYmxldCBjZW50ZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIF80MDBweC0tLW1ibCBjZW50ZXIiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgXzMyMHB4LS0tbWJwIGNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWctYm90dG9tLTQwcHgiPgogICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJkaXNwbGF5LTIgdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICBUYWtlIGEgbG9vayBhdCBvdXIgYmlnIHNldAogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1uby13cmFwIj5vZiBmZWF0dXJlczwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNwbGF5LWZsZXggdmVydGljYWwtZ2FwLTM1cHgiPgogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBkYXRhLXctaWQ9IjJhYWEwYzE2LTZkMTQtMmQ1ZS0wMWQ2LWU5ZDUxMTZjMWFkNSIKICAgICAgICAgICAgICBzdHlsZT0ib3BhY2l0eTogMCIKICAgICAgICAgICAgICBjbGFzcz0iY2FyZCBmZWF0dXJlcyBkaXJlY3Rpb24tcmV2ZXJzZSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXItZmVhdHVyZXMgaW1hZ2UtY2FyZHMtbGVmdCI+CiAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgIHNyYz0icG9vbGQucG5nIgogICAgICAgICAgICAgICAgICBhbHQ9IlZpcnR1YWwgQ3JlZGl0IENhcmRzIC0gU3BsaXQgYmlsbHMgd2l0aCBNb2JpY2hhaW4iCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJpbWFnZSBpbWFnZS1jYXJkcy1sZWZ0IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBpZD0idy1ub2RlLV8yYWFhMGMxNi02ZDE0LTJkNWUtMDFkNi1lOWQ1MTE2YzFhZDYtOGRiOWY5MGIiCiAgICAgICAgICAgICAgICBjbGFzcz0icGQtLS1jb250ZW50LWluc2lkZS1jYXJkIGZlYXR1cmVzLWNvbnRlbnQtbGVmdCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNWI1Mjk4ZWFmMzc0NDY1Y2U0NzAwX1ZpcnR1YWwgQ3JlZGl0IENhcmRzLnN2ZyIKICAgICAgICAgICAgICAgICAgYWx0PSJWaXJ0dWFsIENyZWRpdCBDYXJkcyAtIFNwbGl0IGJpbGxzIHdpdGggTW9iaWNoYWluIgogICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbi1jYXJkLWZlYXR1cmVzIG1nLWJvdHRvbS0yMnB4IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iZGlzcGxheS0yIG1heC13LTM2MXB4IG1nLWJvdHRvbS0xNnB4Ij4KICAgICAgICAgICAgICAgICAgU21hcnQgQmlsbCBTcGxpdHRpbmcKICAgICAgICAgICAgICAgIDwvaDM+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZy10b3AtMTZweCI+CiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYXJhZ3JhcGggbWctYm90dG9tLTMycHgiPgogICAgICAgICAgICAgICAgICAgIFNwbGl0IGVxdWFsbHksIGJ5IHBlcmNlbnRhZ2UsIG9yIGN1c3RvbSBhbW91bnRzLCBBdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZXMgd2hvIG93ZXMgd2hhdC4KICAgICAgICAgICAgICAgICAgICBMaWdodG5pbmctZmFzdCBzZXR0bGVtZW50cywgVHJhY2sgZXZlcnkgdHJhbnNhY3Rpb24gaW4gcmVhbCB0aW1lLgogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcmljaW5nIiBjbGFzcz0iYnRuLXByaW1hcnkgd2hpdGUgdy1idXR0b24iCiAgICAgICAgICAgICAgICAgID5HZXQgc3RhcnRlZDwvYQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAKICAgICAgICAgICAgIAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctbGF5b3V0LWdyaWQgZ3JpZC0yLWNvbHVtbnMgZ2FwLWNvbHVtbi04MHB4Ij4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgaWQ9Inctbm9kZS1fM2NlOGJmYWMtMTg1MS1kNDI1LTY3ODQtZDhhNWMwZWU4OTA5LThkYjlmOTBiIgogICAgICAgICAgICAgICAgICBkYXRhLXctaWQ9IjNjZThiZmFjLTE4NTEtZDQyNS02Nzg0LWQ4YTVjMGVlODkwOSIKICAgICAgICAgICAgICAgICAgc3R5bGU9Im9wYWNpdHk6IDAiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXh0LWNlbnRlciBwZC0zMXB4LS0tbWctdG9wLTQ3cHgiCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaW1hZ2Utd3JhcHBlciBvdmVyZmxvdy1oaWRkZW4gYm9yZGVyLXJhZGl1cy0wcHggZGlzcGxheS1mbGV4IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL2Nkbi5wcm9kLndlYnNpdGUtZmlsZXMuY29tLzYzMzQ0ZTcyMWE2ZGVhNzFiZGI5ZjkwOC82MzNmNzZkNTA5YzVmZjY3ZDk5NWZjYmRfVHJhbnNmZXIucG5nIgogICAgICAgICAgICAgICAgICAgICAgYWx0PSJTZW5kICZhbXA7IFJlY2VpdmUgUGF5bWVudHMgLSBTcGxpdCBiaWxscyB3aXRoIE1vYmljaGFpbiIKICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWF4LXdpZHRoOiA0NzlweCkgOTF2dywgKG1heC13aWR0aDogNzY3cHgpIDgydncsIChtYXgtd2lkdGg6IDk5MXB4KSA2MDlweCwgKG1heC13aWR0aDogMTQzOXB4KSAzOXZ3LCA1MjUuNXB4IgogICAgICAgICAgICAgICAgICAgICAgc3Jjc2V0PSIKICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzZjc2ZDUwOWM1ZmY2N2Q5OTVmY2JkX1RyYW5zZmVyLXAtNTAwLnBuZyAgNTAwdywKICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzZjc2ZDUwOWM1ZmY2N2Q5OTVmY2JkX1RyYW5zZmVyLnBuZyAgICAgICAxMTA3dwogICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWxlZnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtaG9yaXpvbnRhbCBnYXAtMjRweCBqdXN0aWZ5LWxlZnQiPgogICAgICAgICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzU5ZmRlMzY2NWJlMTVkMjBlYTFhNF9JY29uIFNlbmQgJTI2IFJlY2VpdmUuc3ZnIgogICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IlNlbmQgJmFtcDsgUmVjZWl2ZSBQYXltZW50cyAtIFNwbGl0IGJpbGxzIHdpdGggTW9iaWNoYWluIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiIKICAgICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9ImRpc3BsYXktMyBtZy1ib3R0b20tMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgQm9yZGVybGVzcyAmIEdsb2JhbAogICAgICAgICAgICAgICAgICAgICAgPC9oMT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgaWQ9Inctbm9kZS1hMmM4Zjc1My1lYzg0LTIwNjQtMWNhNi05NzRkOGMyNzMxNjYtOGRiOWY5MGIiCiAgICAgICAgICAgICAgICAgIGRhdGEtdy1pZD0iYTJjOGY3NTMtZWM4NC0yMDY0LTFjYTYtOTc0ZDhjMjczMTY2IgogICAgICAgICAgICAgICAgICBzdHlsZT0ib3BhY2l0eTogMCIKICAgICAgICAgICAgICAgICAgY2xhc3M9InRleHQtY2VudGVyIHBkLTMxcHgtLS1tZy10b3AtNDdweCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpbWFnZS13cmFwcGVyIG92ZXJmbG93LWhpZGRlbiBib3JkZXItcmFkaXVzLTBweCBkaXNwbGF5LWZsZXgiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzVhNTJhMWI4OGY5NzhhMzNkYTMyYl9JbWFnZSBNb250aGx5ICUyNiB3ZWVrbHkgcmVwb3J0cy5wbmciCiAgICAgICAgICAgICAgICAgICAgICBhbHQ9Ik1vbnRobHkgJmFtcDsgV2Vla2x5IFJlcG9ydHMgLSBTcGxpdCBiaWxscyB3aXRoIE1vYmljaGFpbiIKICAgICAgICAgICAgICAgICAgICAgIHNpemVzPSIobWF4LXdpZHRoOiA3NjdweCkgODJ2dywgKG1heC13aWR0aDogOTkxcHgpIDYwOXB4LCAobWF4LXdpZHRoOiAxNDM5cHgpIDM5dncsIDUyNS41cHgiCiAgICAgICAgICAgICAgICAgICAgICBzcmNzZXQ9IgogICAgICAgICAgICAgICAgICAgICAgICBodHRwczovL2Nkbi5wcm9kLndlYnNpdGUtZmlsZXMuY29tLzYzMzQ0ZTcyMWE2ZGVhNzFiZGI5ZjkwOC82MzM1YTUyYTFiODhmOTc4YTMzZGEzMmJfSW1hZ2UlMjBNb250aGx5JTIwJTI2JTIwd2Vla2x5JTIwcmVwb3J0cy1wLTUwMC5wbmcgIDUwMHcsCiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzVhNTJhMWI4OGY5NzhhMzNkYTMyYl9JbWFnZSUyME1vbnRobHklMjAlMjYlMjB3ZWVrbHklMjByZXBvcnRzLnBuZyAgICAgICAxMTEydwogICAgICAgICAgICAgICAgICAgICAgIgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImltYWdlIgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWxlZnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtaG9yaXpvbnRhbCBnYXAtMjRweCBqdXN0aWZ5LWxlZnQiPgogICAgICAgICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzVhZTk4NjllOWJjMWEzY2VlOTUzNV9JY29uIE1vbnRobHkgJTI2IHdlZWtseS5wbmciCiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iTW9udGhseSAmYW1wOyBXZWVrbHkgUmVwb3J0cyAtIFNwbGl0IGJpbGxzIHdpdGggTW9iaWNoYWluIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbiIKICAgICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9ImRpc3BsYXktMyBtZy1ib3R0b20tMHB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgU2VuZCAmYW1wOyByZWNlaXZlIHBheW1lbnRzCiAgICAgICAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGRhdGEtdy1pZD0iMTdiMTcwOGEtMjZlNi00MzRhLWRhNWMtODQwNTkwMWYwNjQ1IgogICAgICAgICAgICAgIHN0eWxlPSJvcGFjaXR5OiAwIgogICAgICAgICAgICAgIGNsYXNzPSJjYXJkIGZlYXR1cmVzIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgaWQ9Inctbm9kZS1fMTdiMTcwOGEtMjZlNi00MzRhLWRhNWMtODQwNTkwMWYwNjQ4LThkYjlmOTBiIgogICAgICAgICAgICAgICAgY2xhc3M9InBkLS0tY29udGVudC1pbnNpZGUtY2FyZCBmZWF0dXJlcy1jb250ZW50LWxlZnQiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzRkZTA0MTYyYWVhMWVhN2RkYjcyM19JY29uIENhcmQgRmVhdHVyZXMucG5nIgogICAgICAgICAgICAgICAgICBhbHQ9IkJ1aWx0LWluIERpZ2l0YWwgV2FsbGV0IC0gU3BsaXQgYmlsbHMgd2l0aCBNb2JpY2hhaW4iCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJpY29uLWNhcmQtZmVhdHVyZXMgbWctYm90dG9tLTIycHgiCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJkaXNwbGF5LTIgbWF4LXctNDAwcHggbWctYm90dG9tLTE2cHgiPgogICAgICAgICAgICAgICAgICBTZWN1cmUgTXVsdGktQ3VycmVuY3kgV2FsbGV0CiAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWctdG9wLTE2cHgiPgogICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icGFyYWdyYXBoIG1nLWJvdHRvbS0zMnB4Ij4KICAgICAgICAgICAgICAgICAgICBMZWN0dXMgZWxlaWZlbmQgZWdldCBpcHN1bSBhY2N1bXNhbiBhcmN1IG5pc2wgbmVjIG1pCiAgICAgICAgICAgICAgICAgICAgZmVybWVudHVtIHNlZCBoZW5kcmVyaXQgbm9uIG9yY2kgbHVjdHVzIGFlbmVhbiBzZWQgZXQKICAgICAgICAgICAgICAgICAgICB2aXRhZSBzZWQgcXVhbSBzZW5lY3R1cyB2aXRhZQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LW5vLXdyYXAiPmFjIHV0IHVybmEuPC9zcGFuPgogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9wcmljaW5nIiBjbGFzcz0iYnRuLXByaW1hcnkgd2hpdGUgdy1idXR0b24iCiAgICAgICAgICAgICAgICAgID5HZXQgc3RhcnRlZDwvYQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXItZmVhdHVyZXMgaW1hZ2UtY2FyZHMtcmlnaHQiPgogICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICBzcmM9IndhbGxldC5wbmciCiAgICAgICAgICAgICAgICAgIGFsdD0iQnVpbHQtaW4gRGlnaXRhbCBXYWxsZXQgLSBTcGxpdCBiaWxscyB3aXRoIE1vYmljaGFpbiIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImltYWdlIGltYWdlLWlwaG9uZS1sZWZ0IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgoKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBkYXRhLXctaWQ9IjZkMGUzNWYyLTk1ODUtMWJmMi00MTZlLWQyMjI1NWM5MWExNSIKICAgICAgICAgICAgICAgIHN0eWxlPSIKICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwJSwgMCkgc2NhbGUzZCgxLCAxLCAxKQogICAgICAgICAgICAgICAgICAgIHJvdGF0ZVgoMCkgcm90YXRlWSgwKSByb3RhdGVaKDApIHNrZXcoMCwgMCk7CiAgICAgICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApIHNjYWxlM2QoMSwgMSwgMSkKICAgICAgICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApIHNjYWxlM2QoMSwgMSwgMSkKICAgICAgICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwJSwgMCkgc2NhbGUzZCgxLCAxLCAxKSByb3RhdGVYKDApCiAgICAgICAgICAgICAgICAgICAgcm90YXRlWSgwKSByb3RhdGVaKDApIHNrZXcoMCwgMCk7CiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgICAiCiAgICAgICAgICAgICAgICBjbGFzcz0iYnV0dG9ucy1yb3cgY2VudGVyIGdhcC0yNXB4IG1nLXRvcC0yNHB4IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9uZy9hcHAvbW9iaWNoYWluL2lkNjc1Mjc5MzcyMCIKICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnRuLXByaW1hcnkgZG93bmxvYWQtYXBwIHdoaXRlIHctaW5saW5lLWJsb2NrIgogICAgICAgICAgICAgICAgICAgID48ZGl2IGNsYXNzPSJzb2NpYWwtaWNvbi1mb250IGJ1dHRvbi1sZWZ0Ij7uoIs8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2PkRvd25sb2FkIGZvciBpT1M8L2Rpdj48L2EKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vbW9iaWNoYWluLmNvL21vYmljaGFpbi5hcGsiCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJ0bi1wcmltYXJ5IGRvd25sb2FkLWFwcCB3aGl0ZSB3LWlubGluZS1ibG9jayIKICAgICAgICAgICAgICAgICAgICA+PGRpdiBjbGFzcz0ic29jaWFsLWljb24tZm9udCBtZy1yaWdodC04cHgiPu6glTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXY+RG93bmxvYWQgZm9yIEFuZHJvaWQ8L2Rpdj48L2EKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZGVmYXVsdCB3LWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgXzcwMHB4LS0tdGFibGV0IGNlbnRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWFuZC10ZXh0LXJpZ2h0LXdyYXBwZXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciBpbWFnZS1hbmQtdGV4dC1yaWdodC0tLWltYWdlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtdmVydGljYWwgaGVpZ2h0LTEwMCI+CiAgICAgICAgICAgICAgICAgIDxpbWcKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaW1hZ2UgYm9yZGVyLXJhZGl1cy02NHB4IGZpdC1jb250YWluIgogICAgICAgICAgICAgICAgICAgIHNyYz0icG9vbGwucG5nIgogICAgICAgICAgICAgICAgICAgIGFsdD0iU2VuZCBBbmQgUmVjZWl2ZSBQYXltZW50cyBFYXNpbHkgLSBTcGxpdCBiaWxscyB3aXRoIE1vYmljaGFpbiIKICAgICAgICAgICAgICAgICAgICBzdHlsZT0iCiAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApCiAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlM2QoMSwgMSwgMSkgcm90YXRlWCgwKSByb3RhdGVZKDApIHJvdGF0ZVooMCkKICAgICAgICAgICAgICAgICAgICAgICAgc2tldygwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCkgc2NhbGUzZCgxLCAxLCAxKQogICAgICAgICAgICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApIHNjYWxlM2QoMSwgMSwgMSkKICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRlWCgwKSByb3RhdGVZKDApIHJvdGF0ZVooMCkgc2tldygwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApIHNjYWxlM2QoMSwgMSwgMSkKICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRlWCgwKSByb3RhdGVZKDApIHJvdGF0ZVooMCkgc2tldygwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgICAgICAgIiBkYXRhLXctaWQ9IjBjN2NjNzk3LTU4MGItOTc2My1hYWYzLTgzYWNkMzAwNmQwYyIKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciBfNjAwcHgtLS1tYmwiPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBpZD0idy1ub2RlLWE5ZThjNTdiLTk5MTItNmYxZi1jMTQxLTlmYzlhYTEwZjEyYS04ZGI5ZjkwYiIKICAgICAgICAgICAgICAgICAgZGF0YS13LWlkPSJhOWU4YzU3Yi05OTEyLTZmMWYtYzE0MS05ZmM5YWExMGYxMmEiCiAgICAgICAgICAgICAgICAgIHN0eWxlPSIKICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKSBzY2FsZTNkKDEsIDEsIDEpCiAgICAgICAgICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApIHNjYWxlM2QoMSwgMSwgMSkKICAgICAgICAgICAgICAgICAgICAgIHJvdGF0ZVgoMCkgcm90YXRlWSgwKSByb3RhdGVaKDApIHNrZXcoMCwgMCk7CiAgICAgICAgICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKSBzY2FsZTNkKDEsIDEsIDEpCiAgICAgICAgICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKSBzY2FsZTNkKDEsIDEsIDEpCiAgICAgICAgICAgICAgICAgICAgICByb3RhdGVYKDApIHJvdGF0ZVkoMCkgcm90YXRlWigwKSBza2V3KDAsIDApOwogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgICAgICIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImlubmVyLWNvbnRhaW5lciBfNTgwcHggXzEwMC0tLXRhYmxldCIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIF81MDBweC0tLXRhYmxldCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIF80MDBweC0tLW1ibCI+CiAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImRpc3BsYXktMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIFByb2Nlc3MgUGF5bWVudHMgSW5zdGFudGx5CiAgICAgICAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhcmFncmFwaCBtZy1ib3R0b20tMzJweCI+CiAgICAgICAgICAgICAgICAgICAgQSBzZWN1cmUsIGZhc3QsIGFuZCBzbWFydCB3YXkgdG8gc2hhcmUgZXhwZW5zZXMsIHNlbmQgYW5kIHJlY2VpdmUgY3J5cHRvLCBhbmQga2VlcCB0cmFjayBvZiBldmVyeSB0cmFuc2FjdGlvbiwgd2l0aG91dCB0aGUgaGVhZGFjaGVzLgogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctbGF5b3V0LWdyaWQgZ3JpZC0xLWNvbHVtbiBnYXAtcm93LTQ4cHgiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tbGlzdC1pdGVtLXdyYXBwZXIgYWxpZ24tc3RhcnQiPgogICAgICAgICAgICAgICAgICAgICAgPGltZwogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vY2RuLnByb2Qud2Vic2l0ZS1maWxlcy5jb20vNjMzNDRlNzIxYTZkZWE3MWJkYjlmOTA4LzYzMzVjYmJhOTVkNmViZjIxNjQ2YmY4OF9BcnJvdyBUb3AgUmlnaHQuc3ZnIgogICAgICAgICAgICAgICAgICAgICAgICBhbHQ9IlNlbmQgUGF5bWVudHMgLSBTcGxpdCBiaWxscyB3aXRoIE1vYmljaGFpbiIKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imljb24tbGlzdCIKICAgICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXgtdy00MTZweCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0iaGVhZGluZy1oMy1zaXplIG1nLWJvdHRvbS00cHgiPgogICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBhIFBvb2wKICAgICAgICAgICAgICAgICAgICAgICAgPC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFyYWdyYXBoIGNvbG9yLW5ldXRyYWwtNDAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydCBieSBjcmVhdGluZyBhIHNoYXJlZCBwYXltZW50IHBvb2wgZm9yIHlvdXIgYmlsbC4gRW50ZXIgdGhlIHRvdGFsIGFtb3VudCwgY2hvb3NlIHlvdXIgcHJlZmVycmVkIGNyeXB0byAoQlRDLCBFVEgsIFVTRFQsIFRSWCwgZXRjLiksIGFuZCBzZXQgdGhlIG51bWJlciBvZiBwYXJ0aWNpcGFudHMuCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1saXN0LWl0ZW0td3JhcHBlciBhbGlnbi1zdGFydCI+CiAgICAgICAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNWNiYzMwZmM5N2IwMGY4ODc0NjdjX0Fycm93IEJvdHRvbi5zdmciCiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iUmVxdWVzdCBQYXltZW50cyAtIFNwbGl0IGJpbGxzIHdpdGggTW9iaWNoYWluIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbi1saXN0IgogICAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1heC13LTQxNnB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJoZWFkaW5nLWgzLXNpemUgbWctYm90dG9tLTRweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgSW52aXRlICYgQXV0by1TcGxpdAogICAgICAgICAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJhZ3JhcGggY29sb3ItbmV1dHJhbC00MDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgIEludml0ZSB5b3VyIGZyaWVuZHMgd2l0aCBhIGxpbmsgb3IgaW4tYXBwIG5vdGlmaWNhdGlvbi4gQXMgeW91IGFkZCBmcmllbmRzLCB0aGUgdG90YWwgaXMgYXV0b21hdGljYWxseSBkaXZpZGVkIGVxdWFsbHkKICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1saXN0LWl0ZW0td3JhcHBlciBhbGlnbi1zdGFydCI+CiAgICAgICAgICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly9jZG4ucHJvZC53ZWJzaXRlLWZpbGVzLmNvbS82MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgvNjMzNWNiYmE5NWQ2ZWJmMjE2NDZiZjg4X0Fycm93IFRvcCBSaWdodC5zdmciCiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0iU2VuZCBQYXltZW50cyAtIFNwbGl0IGJpbGxzIHdpdGggTW9iaWNoYWluIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaWNvbi1saXN0IgogICAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1heC13LTQxNnB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJoZWFkaW5nLWgzLXNpemUgbWctYm90dG9tLTRweCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFudCBDb2xsZWN0aW9uICYgU2V0dGxlbWVudAogICAgICAgICAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXJhZ3JhcGggY29sb3ItbmV1dHJhbC00MDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gZWFjaCBmcmllbmQgYWNjZXB0cywgdGhlaXIgc2hhcmUgaXMgaW5zdGFudGx5IGRlZHVjdGVkIGZyb20gdGhlaXIgd2FsbGV0IGJhbGFuY2UgYW5kIGRlcG9zaXRlZCBpbnRvIHRoZSBwb29sLiBPbmNlIGV2ZXJ5b25lIGhhcyBwYWlkLCB0aGUgdG90YWwgY3J5cHRvIGFtb3VudCBpcyBhdXRvbWF0aWNhbGx5IHNlbnQgdG8gdGhlIHJlY2lwaWVudOKAmXMgd2FsbGV0LgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgCiAgICAgIAogICAgICA8ZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1kZWZhdWx0IHctY29udGFpbmVyIj4KICAgICAgICAgIDxmb290ZXIKICAgICAgICAgICAgZGF0YS13LWlkPSJiMjNkZTI5Zi0zM2U3LTFhNDUtNWM3OC1jMGU3Yzk3NzMzM2MiCiAgICAgICAgICAgIGNsYXNzPSJmb290ZXItd3JhcHBlciIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1sYXlvdXQtZ3JpZCBncmlkLWZvb3Rlci0tLW1haW4iPgogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGlkPSJ3LW5vZGUtYjIzZGUyOWYtMzNlNy0xYTQ1LTVjNzgtYzBlN2M5NzczMzNlLWM5NzczMzNhIgogICAgICAgICAgICAgICAgY2xhc3M9ImNhcmQtZm9vdGVyLWxlZnQiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FyZC1jb250ZW50IGNhcmQtZm9vdGVyLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgXzM1MHB4LS0tdGFibGV0Ij4KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImhlYWRpbmctaDMtc2l6ZSBtZy1ib3R0b20tMjFweCI+CiAgICAgICAgICAgICAgICAgICAgICBEb3dubG9hZCB0aGUgYXBwIG9uIHRoZSBBcHAgU3RvcmUgb3IKICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LW5vLXdyYXAiPlBsYXkgU3RvcmU8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnV0dG9ucy1yb3cgY2VudGVyIGdhcC0yNXB4IGRpc3BsYXktZmxleC0tLWFsaWduLXN0cmV0Y2giCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9uZy9hcHAvbW9iaWNoYWluL2lkNjc1Mjc5MzcyMCIKICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJidG4tcHJpbWFyeSBkb3dubG9hZC1hcHAgd2hpdGUgaG92ZXItY29sb3ItbmV1dHJhbC03MDAgdy1pbmxpbmUtYmxvY2siCiAgICAgICAgICAgICAgICAgICAgICAgID48ZGl2IGNsYXNzPSJzb2NpYWwtaWNvbi1mb250IGJ1dHRvbi1sZWZ0Ij7uoIs8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5Eb3dubG9hZCBmb3IgaU9TPC9kaXY+PC9hCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHBzOi8vbW9iaWNoYWluLmNvL21vYmljaGFpbi5hcGsiCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnRuLXByaW1hcnkgZG93bmxvYWQtYXBwIHdoaXRlIGhvdmVyLWNvbG9yLW5ldXRyYWwtNzAwIHctaW5saW5lLWJsb2NrIgogICAgICAgICAgICAgICAgICAgICAgICA+PGRpdiBjbGFzcz0ic29jaWFsLWljb24tZm9udCBtZy1yaWdodC04cHgiPu6glTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PkRvd25sb2FkIGZvciBBbmRyb2lkPC9kaXY+PC9hCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnI+PGJyPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGlkPSJ3LW5vZGUtYjIzZGUyOWYtMzNlNy0xYTQ1LTVjNzgtYzBlN2M5NzczMzUwLWM5NzczMzNhIgogICAgICAgICAgICAgICAgY2xhc3M9ImlubmVyLWNvbnRhaW5lciBfNjUwcHggd2lkdGgtMTAwIF8xMDAtLS10YWJsZXQiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICBocmVmPSIvIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmb290ZXItbG9nby13cmFwcGVyIHctaW5saW5lLWJsb2NrIgogICAgICAgICAgICAgICAgICAgID48aW1nCiAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vbW9iaWNoYWluLmNvL21sb2dvLnBuZyIKICAgICAgICAgICAgICAgICAgICAgIGFsdD0iTG9nbyAtIFNwbGl0IGJpbGxzIHdpdGggTW9iaWNoYWluIgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvb3Rlci1sb2dvIgogICAgICAgICAgICAgICAgICAvPjwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWluZm8iPgogICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iY29sb3ItbmV1dHJhbC00MDAgbWF4LXctMzU4cHggbWctYm90dG9tLTAiPgogICAgICAgICAgICAgICAgICAgICAgMjAyNSDCqSBNb2JpY2hhaW4gfCBBbGwgcmlnaHRzIHJlc2VydmVkCiAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2aWRlciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItbWlkZGxlIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudS13cmFwcGVyLS0tbWFpbiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudS13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1nLWJvdHRvbS0zMnB4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC00MDAgYm9sZCBjb2xvci1uZXV0cmFsLTEwMCI+TmF2aWdhdGlvbjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCByb2xlPSJsaXN0IiBjbGFzcz0ibmF2LW1lbnUtbGlzdC13cmFwcGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdi1tZW51LWxpc3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWN1cnJlbnQ9InBhZ2UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJuYXYtbGluayB3LS1jdXJyZW50IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+SG9tZTwvYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbWVudS1saXN0LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2Fib3V0IiBjbGFzcz0ibmF2LWxpbmsiPkFib3V0PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbWVudS1saXN0LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NvbnRhY3QiIGNsYXNzPSJuYXYtbGluayI+Q29udGFjdDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnUtd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZy1ib3R0b20tMzJweCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtNDAwIGJvbGQgY29sb3ItbmV1dHJhbC0xMDAiPkxlZ2FsPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIHJvbGU9Imxpc3QiIGNsYXNzPSJuYXYtbWVudS1saXN0LXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1lbnUtbGlzdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9Ii9wcml2YWN5LXBvbGljeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im5hdi1saW5rIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+UHJpdmFjeSBQb2xpY3k8L2EKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1lbnUtbGlzdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii90ZXJtcy1vZi1zZXJ2aWNlIiBjbGFzcz0ibmF2LWxpbmsiPlRlcm1zIG9mIFNlcnZpY2U8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Im5hdi1tZW51LWxpc3QtaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvYW1sLXBvbGljeSIgY2xhc3M9Im5hdi1saW5rIj5BTUwgUG9saWN5PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBpZD0idy1ub2RlLV81MzhiM2Q3ZC1iZTQ4LTNkNDYtNTc5OS0zMjExYmEyMWZlMWEtYzk3NzMzM2EiCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibWVudS13cmFwcGVyIGxhc3QiCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWctYm90dG9tLTMycHgiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LTQwMCBib2xkIGNvbG9yLW5ldXRyYWwtMTAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICBTdXBwb3J0CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8dWwgcm9sZT0ibGlzdCIgY2xhc3M9Im5hdi1tZW51LWxpc3Qtd3JhcHBlciBsYXN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtbWVudS1saXN0LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIvY2FyZWVycyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJuYXYtbGluayIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID5DYXJlZXJzIDxzcGFuIGNsYXNzPSJwdWxzaW5nLWljb24iPjwvc3Bhbj48L2EKICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1lbnUtbGlzdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iL3JlcG9ydC1hYnVzZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJuYXYtbGluayIKICAgICAgICAgICAgICAgICAgICAgICAgICAgID5SZXBvcnQgQWJ1c2U8L2EKICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2LW1lbnUtbGlzdC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvcmVwb3J0LWJ1ZyIgY2xhc3M9Im5hdi1saW5rIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPlJlcG9ydCBhIEJ1ZzwvYQogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9mb290ZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8c2NyaXB0CiAgICAgIHNyYz0iaHR0cHM6Ly9kM2U1NHYxMDNqOHFiYi5jbG91ZGZyb250Lm5ldC9qcy9qcXVlcnktMy41LjEubWluLmRjNWU3ZjE4YzguanM/c2l0ZT02MzM0NGU3MjFhNmRlYTcxYmRiOWY5MDgiCiAgICAgIHR5cGU9InRleHQvamF2YXNjcmlwdCIKICAgICAgaW50ZWdyaXR5PSJzaGEyNTYtOS9hbGlVOGRHZDJ0YjZPU3N1eml4ZVY0eS9mYVRxZ0Z0b2hldHBoYmJqMD0iCiAgICAgIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiCiAgICA+PC9zY3JpcHQ+CiAgICA8c2NyaXB0CiAgICAgIHNyYz0ic2NyaXB0LmpzIgogICAgICB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiCiAgICA+PC9zY3JpcHQ+CiA8IS0tIFNtYXJ0c3VwcCBMaXZlIENoYXQgc2NyaXB0IC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBfc21hcnRzdXBwID0gX3NtYXJ0c3VwcCB8fCB7fTsKX3NtYXJ0c3VwcC5rZXkgPSAnYzhlZDM4NjNlY2EyOTJhMmExMzdjMzE3NDA3MzgxZmY1NmUwZDgwYyc7CndpbmRvdy5zbWFydHN1cHB8fChmdW5jdGlvbihkKSB7CiAgdmFyIHMsYyxvPXNtYXJ0c3VwcD1mdW5jdGlvbigpeyBvLl8ucHVzaChhcmd1bWVudHMpfTtvLl89W107CiAgcz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTtjPWQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgYy50eXBlPSd0ZXh0L2phdmFzY3JpcHQnO2MuY2hhcnNldD0ndXRmLTgnO2MuYXN5bmM9dHJ1ZTsKICBjLnNyYz0naHR0cHM6Ly93d3cuc21hcnRzdXBwY2hhdC5jb20vbG9hZGVyLmpzPyc7cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLHMpOwp9KShkb2N1bWVudCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+IFBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly93d3cuc21hcnRzdXBwLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPlNtYXJ0c3VwcDwvYT48L25vc2NyaXB0PgoKCiA8c2NyaXB0PgogIC8vIE92ZXJyaWRlIFdlYmZsb3cgYmFkZ2UgY3JlYXRpb24KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewogICAgLy8gUmVtb3ZlIGFueSBleGlzdGluZyBXZWJmbG93IGJhZGdlcwogICAgY29uc3QgYmFkZ2VzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnctd2ViZmxvdy1iYWRnZSwgW2NsYXNzKj0id2ViZmxvdy1iYWRnZSJdLCBbaWQqPSJ3ZWJmbG93LWJhZGdlIl0nKTsKICAgIGJhZGdlcy5mb3JFYWNoKGJhZGdlID0+IHsKICAgICAgYmFkZ2UucmVtb3ZlKCk7CiAgICB9KTsKICB9KTsKICAKICAvLyBBbHNvIHJ1biBhZnRlciBhIGRlbGF5IHRvIGNhdGNoIGR5bmFtaWNhbGx5IGFkZGVkIGJhZGdlcwogIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICBjb25zdCBiYWRnZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudy13ZWJmbG93LWJhZGdlLCBbY2xhc3MqPSJ3ZWJmbG93LWJhZGdlIl0sIFtpZCo9IndlYmZsb3ctYmFkZ2UiXScpOwogICAgYmFkZ2VzLmZvckVhY2goYmFkZ2UgPT4gewogICAgICBiYWRnZS5yZW1vdmUoKTsKICAgIH0pOwogIH0sIDEwMDApOwogIAogIC8vIFJ1biBldmVyeSAyIHNlY29uZHMgdG8gY2F0Y2ggYW55IGJhZGdlcyB0aGF0IG1pZ2h0IGJlIGFkZGVkIGxhdGVyCiAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICBjb25zdCBiYWRnZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudy13ZWJmbG93LWJhZGdlLCBbY2xhc3MqPSJ3ZWJmbG93LWJhZGdlIl0sIFtpZCo9IndlYmZsb3ctYmFkZ2UiXScpOwogICAgYmFkZ2VzLmZvckVhY2goYmFkZ2UgPT4gewogICAgICBiYWRnZS5yZW1vdmUoKTsKICAgIH0pOwogIH0sIDIwMDApOwo8L3NjcmlwdD4KIDwvYm9keT4KICA8IS0tIE1pcnJvcmVkIGZyb20gYXB0b25pY3RlbXBsYXRlLndlYmZsb3cuaW8vaG9tZSBieSBIVFRyYWNrIFdlYnNpdGUgQ29waWVyLzMueCBbWFImQ08nMjAxNF0sIFNhdCwgMjMgQXVnIDIwMjUgMTc6NTY6MjggR01UIC0tPgo8L2h0bWw+Cg=="}},"time_used":471,"timings":{"blocked":-1,"dns":73,"connect":1,"send":0,"wait":384,"receive":0,"ssl":13},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/6335a52a1b88f978a33da32b_Image%20Monthly%20%26%20weekly%20reports-p-500.png","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.206Z","timestamp":1785139285206,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/6335a52a1b88f978a33da32b_Image%20Monthly%20%26%20weekly%20reports-p-500.png HTTP/1.1\r\nHost: cdn.prod.website-files.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://mobichain.co/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: image/png\r\ncontent-length: 41273\r\nx-amz-id-2: CS29mZ4icZ5VEQ+cbTEp9HXGeyOeGFYP6TQ0dohqzEaC+/jJ1lA05Vlvg57rLctw7mqIU6dDz8I=\r\nx-amz-request-id: 0ZFMF40GDSC0RQP0\r\nlast-modified: Thu, 29 Sep 2022 14:01:17 GMT\r\netag: \"50c5e172b42e187f401eaeceaa6918a9\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: DcEyNWgbM3l49v8yF0oDoIVmfDXClKlM\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 12901309\r\ncf-cache-status: HIT\r\naccess-control-allow-origin: *\r\ncf-ray: a21a1db49d7ba0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":41273,"size_decoded":41940,"mime_type":"image/png","magic":"PNG image data, 500 x 566, 8-bit colormap, non-interlaced","md5":"50c5e172b42e187f401eaeceaa6918a9","sha1":"42485ce9a7e092e79adcdb8cd3131bc1fbf7d6c3","sha256":"f94100daa74a3b9510d5f745c06da23d6ca6e40bdff1bea40c168e54d2d2fdba","sha512":"d731a41b7bc5d1f96bdcc698c0d706424c92fb144825cc8f514d772f630e178dbf98f075844fad76cd331e991a989f0beed204324c36a61e631f69f30b05dda3","ssdeep":"768:LToLpCWjy4jv8BssMt9WNF1KufiAY89J/5O2UxTqDkeRVwkA/soBO02HUSIzCcN2:z2j0M/sm89ashV0OOvQZB","tlshash":"4703f231f28c04c094c24a0378bda332926b5d86ddf9bb2dc7e0966478f4558e8e9f76","first_seen":"2026-07-25T05:39:21.875583Z","last_seen":"2026-07-27T08:02:19.582427Z","times_seen":5,"resource_available":false,"data":"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"}},"time_used":11,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":8,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/6335cbba95d6ebf21646bf88_Arrow%20Top%20Right.svg","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.212Z","timestamp":1785139285212,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/6335cbba95d6ebf21646bf88_Arrow%20Top%20Right.svg HTTP/1.1\r\nHost: cdn.prod.website-files.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://mobichain.co/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: image/svg+xml\r\nx-amz-id-2: 7UZA+xadUlPif6l/dkb+vaooo4Ck8wiuZsOf6GDodwtiMNgrv0WTeQm400GbH766SaP1nT3GrwAC457b1V/yYmARuH+xZoDTeFbCGJzLKsU=\r\nx-amz-request-id: 3349ZK9JP6T0V27Y\r\nlast-modified: Thu, 29 Sep 2022 16:45:48 GMT\r\naccess-control-allow-origin: *\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: Y8WpuQuvqSVkxbtbIldvtsfuv9jBwT.5\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 12664437\r\ncf-cache-status: HIT\r\netag: W/\"b6417f48146b48ed4c0b0a0b92f3b0a2\"\r\ncontent-encoding: br\r\ncf-ray: a21a1db49d81a0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":703,"size_decoded":1060,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"b6417f48146b48ed4c0b0a0b92f3b0a2","sha1":"735dba2720e6327a102c80a7d588a713256179af","sha256":"76852301e4268a07fcb85c213122ed29b09048fe63ca8020e83ba12af5859ecf","sha512":"b8f521ab2a915c5ed3b759ab13df37486cfdf78faad87d1d186e83ed199f7c06fd6bba94b9a2854767e33731939f7028e409f5588df434666685609d511ba6d4","ssdeep":"","tlshash":"6101fe15a35dbc3cf5248324eb00787850a962439eca8128c5e17f3a15048ce643f5e9","first_seen":"2024-08-19T19:36:06.886138Z","last_seen":"2026-07-27T08:02:19.598618Z","times_seen":6,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iNjIiIGhlaWdodD0iNjEiIHZpZXdCb3g9IjAgMCA2MiA2MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC45NjM4NjciIHk9IjAuMTY3OTY5IiB3aWR0aD0iNjAuMjA1NyIgaGVpZ2h0PSI2MC4xMTgyIiByeD0iMzAuMDU5MSIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzI2MTBfMjIwOTUpIi8+CjxwYXRoIGQ9Ik0yMy4wNjY5IDM4LjIyNzFMMzkuMDY2OSAyMi4yMjcxIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0zOS4wNjY5IDM3LjMxMTlWMjIuMjI3SDIzLjk4MiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzI2MTBfMjIwOTUiIHgxPSIzMS4wNjY3IiB5MT0iNjAuMjg2IiB4Mj0iMzEuMDY2NyIgeTI9IjAuMTY3OTY5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiM2MzRCRkEiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOEExRkRFIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/63349e5c8e6e9aa4651290e8_ClarityCity-Regular.otf","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.464Z","timestamp":1785139285464,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/63349e5c8e6e9aa4651290e8_ClarityCity-Regular.otf HTTP/1.1\r\nHost: cdn.prod.website-files.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mobichain.co/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: application/x-font-otf\r\ncontent-length: 22724\r\nx-amz-id-2: PSSFNUN0BCu1wuKLoHLI476iUaBNOWgpFd7LEqQpjZY0iaaPACCNUuOyRBou1mnZaoZthrkd3Fs=\r\nx-amz-request-id: JZ7KASVZSZXWSE4T\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, HEAD\r\naccess-control-max-age: 3000\r\nvary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method\r\nlast-modified: Wed, 28 Sep 2022 19:19:58 GMT\r\netag: \"ed5cdc699eeea519a716d7f37c99acef\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: YPwunopmgUO.6h3q1hhWdNZSPkdHy2RX\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 12926366\r\ncf-cache-status: HIT\r\ncf-ray: a21a1db62b0ba0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":22724,"size_decoded":23555,"mime_type":"application/x-font-otf","magic":"OpenType font data","md5":"ed5cdc699eeea519a716d7f37c99acef","sha1":"54db13cfddc12c6894314d5bf092f15bf157f754","sha256":"68b7a7143a4cec72d4d55ec08d9e11ad0b5bee7ce2663fddc6af048b4c8f248b","sha512":"11ce60a690828a67c873867453867cc3d90624f95a8afa89d2e3f03e3ce833d0ebc5e1f34a23a0ba3403965aabce137d74a937ef761d9c6ea121f7fbbc08b25c","ssdeep":"384:Z6adH8XFL1Sb9cNzZWTYOTrNztZG/LdX8wCAVJ+R4CcmYG3:ZviXFL1Sb9cNsTNTrrgJX8wtI4E","tlshash":"0ba29d28534feb98fd43ae7006b243989a37edb99c9ddf47424cc2657d802760d8ca4e","first_seen":"2025-05-14T14:05:38.503629Z","last_seen":"2026-07-27T08:02:19.605656Z","times_seen":33,"resource_available":false,"data":"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AAsAIAC9AAEAAAAAAAwAJgDdAAMAAQQJAAAAQAEDAAMAAQQJAAEAGAFDAAMAAQQJAAIADgFbAAMAAQQJAAMAPAFpAAMAAQQJAAQAKAGlAAMAAQQJAAUAZAHNAAMAAQQJAAYAJgIxAAMAAQQJAAgAGgJXAAMAAQQJAAkADAJxAAMAAQQJAAsAQAJ9AAMAAQQJAAwATAK9Q29weXJpZ2h0IChjKSAyMDE5IFZNd2FyZSwgSW5jLglDbGFyaXR5IENpdHlSZWd1bGFyMS4wMDA7VUtXTjtDbGFyaXR5Q2l0eS1SZWd1bGFyQ2xhcml0eSBDaXR5IFJlZ3VsYXJWZXJzaW9uIDEuMDAwO2hvdGNvbnYgMS4wLjEwOTttYWtlb3RmZXhlIDIuNS42NTU5NkNsYXJpdHlDaXR5LVJlZ3VsYXJDaHJpcyBTaW1wc29uVk13YXJlaHR0cHM6Ly9naXRodWIuY29tL2NocmlzbXNpbXBzb25odHRwczovL2dpdGh1Yi5jb20vdm13YXJlL2NsYXJpdHktY2l0eQBDAG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMgAwADEAOQAgAFYATQB3AGEAcgBlACwAIABJAG4AYwAuAAkAQwBsAGEAcgBpAHQAeQAgAEMAaQB0AHkAUgBlAGcAdQBsAGEAcgAxAC4AMAAwADAAOwBVAEsAVwBOADsAQwBsAGEAcgBpAHQAeQBDAGkAdAB5AC0AUgBlAGcAdQBsAGEAcgBDAGwAYQByAGkAdAB5ACAAQwBpAHQAeQAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMAA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADEAMAA5ADsAbQBhAGsAZQBvAHQAZgBlAHgAZQAgADIALgA1AC4ANgA1ADUAOQA2AEMAbABhAHIAaQB0AHkAQwBpAHQAeQAtAFIAZQBnAHUAbABhAHIAQwBoAHIAaQBzACAAUwBpAG0AcABzAG8AbgBWAE0AdwBhAHIAZQBoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGMAaAByAGkAcwBtAHMAaQBtAHAAcwBvAG4AaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwB2AG0AdwBhAHIAZQAvAGMAbABhAHIAaQB0AHkALQBjAGkAdAB5AAAAAAIAAAADAAAAFAADAAEAAAAUAAQDugAAAGAAQAAFACAALwA5AH4AowClAKkAqwCvALQAuAC7AQcBEwEbAR8BIwErATEBNwE6AT4BSAFNAVsBZQFrAX4CNwLHAt0DBwMmHoUeuR69HvMgBiAUIBkgHiAiICYgMCA6IKwhIiIS//8AAAAgADAAOgChAKUAqACrAK4AtAC2ALsAvwEMARYBHgEiASoBLgE2ATkBPQFBAUwBUAFeAWoBbgI3AsYC2AMHAyYegB64Hrwe8iACIBMgGCAcICIgJiAvIDkgrCEiIhL//wAAALIAAAAAAHUAAABfAAAAewAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP5iAAAAAP4m/ggAAAAAAAAAAAAA4O/g8AAA4NTgygAA4NPgbOAJ3woAAQBgAAAAfAEEAAABBgAAAQYAAAEGAAABCAGYAaYBsAGyAbQBtgG8Ab4BwAHCAdAB0gHoAfYB+AAAAhYCGAAAAAACHgIoAioCLAIuAAAAAAIyAAAAAAIyAAAAAAAAAAAAAAABAPEBDgD4ARcBJAEnAQ8A+wD8APcBGwDtAQEA7AD5AO4A7wEhAR8BIADzASYAAgANAA4AEgAWACEAIgAlACYALgAvADEANQA2ADsARQBHAEgATABQAFMAXABdAGIAYwBoAP8A+gEAASMBBAE2AGwAdwB4AHwAgACLAIwAjwCQAJgAmgCcAKAAoQCmALAAsgCzALcAvAC/AMgAyQDOAM8A1AD9ASwA/gEiAPIBFgEZATQBKQEqATgBKAD1ATIA9AAHAAMABQALAAYACgAMABEAHQAXABkAGgArACcAKAApABMAOgA/ADwAPQBDAD4BHQBCAFcAVABVAFYAZABGALsAcQBtAG8AdQBwAHQAdgB7AIcAgQCDAIQAlQCSAJMAlAB9AKUAqgCnAKgArgCpAR4ArQDDAMAAwQDCANAAsQDSAAgAcgAEAG4ACQBzAA8AeQAQAHoAFAB+ABUAfwAeAIgAGwCFAB8AiQAYAIIAIwCNACQAjgAsAJYALQCXACoAkQAwAJsAMgCdADMAngA0AJ8ANwCiADkApAA4AKMAQQCsAEAAqwBEAK8ASQC0AEsAtgBKALUATQC4AE8AugBOALkAUgC+AFEAvQBZAMUAWwDHAFgAxABaAMYAXwDLAGUA0QBmAGkA1QBrANcAagDWATMBMQEwATUBOgE5ATsBNwBhAM0AXgDKAGAAzAAcAIYAIACKAGcA0wERARABFQESARQBBgEHAQUBEwElAAAAAwAAAAAAAP+FABQAAAAAAAAAAAAAAAAAAAAAAAAAAAEABAIAAQEBFENsYXJpdHlDaXR5LVJlZ3VsYXIAAQEBLvgPAPiIAfiJAvgYBPsZDAOfDAQc/1Ic/u0cBHscA8UFHA1YDxwPzxG5HDvFEgBvAgABAAgADwAVABsAIQAnAC0ANAA+AEUATABTAFoAYABmAHAAdwB9AIMAiQCPAJYAowCqALEAuAC+AMQAywDTANkA5gDrAPIA+QD/AQUBEAEZAR8BKgEwAToBQQFHAU4BVQFbAWEBZwFtAXMBegGEAYoBkQGYAZ8BpgGsAbMBugHBAcgBzwHVAdsB4QHnAfQB+wIBAgkCDwIWAhwCIgIpAjYCPQJEAkkCVAJaAmUCawJ0AnoChAKOApQCmQKjAq0CvALHAtIC2wLlAvIC+QMAAwcDDgMVAxwDIAMnAy4DTwNjQW9nb25la0FtYWNyb25DY2Fyb25DYWN1dGVEY2Fyb25FY2Fyb25EY3JvYXR1bmkxRUI4RWRvdGFjY2VudEVvZ29uZWtFbWFjcm9udW5pMUVCQ3VuaTAxMjJHYnJldmVBYnJldmVJZG90YWNjZW50SW1hY3JvbkxjYXJvbkxhY3V0ZU5jYXJvbk5hY3V0ZXVuaTAxNDVPaHVuZ2FydW1sYXV0dW5pMDEzNklvZ29uZWtPbWFjcm9uUmNhcm9uUmFjdXRldW5pMDE1NlNjZWRpbGxhU2FjdXRlVWh1bmdhcnVtbGF1dFVyaW5nVW1hY3JvblVvZ29uZWtXYWN1dGVXZ3JhdmVXY2lyY3VtZmxleFdkaWVyZXNpc1lncmF2ZVljaXJjdW1mbGV4WmFjdXRlWmRvdGFjY2VudHVuaTAxNjJUY2Fyb25hb2dvbmVrYW1hY3JvbmNhY3V0ZWNjYXJvbmFicmV2ZWRjcm9hdGRjYXJvbnVuaTFFQjllZG90YWNjZW50ZWNhcm9uZW9nb25la2VtYWNyb251bmkxRUJEdW5pMDEyM2dicmV2ZXVuaTAyMzd1bmkwMTM3aW9nb25la2ltYWNyb251bmkw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"}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-B-VHc1K4.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:29.367Z","timestamp":1785139289367,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/main-B-VHc1K4.js HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 08:01:29 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a670743-3f99\"\r\nexpires: Tue, 27 Jul 2027 07:27:08 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: k3KxQbpP4KDOQRRM793ZqT9dgN9zwxwfVmGIhll0JsRmT2VZc72unxl5s8dQg3k01DykaH4\r\nx-77-nzt-ray: e2f75420ade4d1455910676ac58afb15\r\nx-77-cache: HIT\r\nx-77-age: 2028\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":16281,"size_decoded":6833,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (15873)","md5":"44df6240c839beea4111582dddf02793","sha1":"4b4dd2241d5ff95eba46fb8893058404630825cd","sha256":"a4019ee0c737ef5d214e80e5a87a5a6e839ff2cf4e286cdad9ed6ff397eba250","sha512":"2f30c45b38eeb4a1900f295893fa30362dce2af015cb8eac6b997795ff4b72db55a92d8d38bb7a8cc8f529c612906aa9d2a2a41539c6a67052ae569733ff7e02","ssdeep":"384:Xrgi5RFMkSjJOE/0BW2rvZZ795P6nrnBOVmPCRkXQbpaIF2x:XEizlSjJOEiWYPR5P6rnBOVmycQbpaIi","tlshash":"6c72d7742700783f712f489e15ade546b232c29dd693892d8b2fec0976c5cc0a8b37b9","first_seen":"2026-07-27T07:28:16.135673Z","last_seen":"2026-07-29T06:17:50.042235Z","times_seen":1081,"resource_available":true,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1bd2luZG93LnBhcmVudC5zbWFydHN1cHAuZ2V0QXNzZXRVcmwoImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL3NoYXJlZC1rYjF5cUhhQS5qcyIpLHdpbmRvdy5wYXJlbnQuc21hcnRzdXBwLmdldEFzc2V0VXJsKCJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtREhyNXVId2QuanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL1dpZGdldFBvcHVwLUJBMWpjSG51LmpzIildKSkpPT5pLm1hcChpPT5kW2ldKTsKaW1wb3J0e0EgYXMgZSxBaSBhcyB0LEFyIGFzIG4sQXQgYXMgcixCIGFzIGksQmkgYXMgYSxDIGFzIG8sQ2kgYXMgcyxEIGFzIGMsRGkgYXMgbCxFIGFzIHUsRWkgYXMgZCxHaSBhcyBmLEdyIGFzIHAsSGkgYXMgbSxIbiBhcyBoLEhyIGFzIGcsSSBhcyBfLElpIGFzIHYsSiBhcyB5LEppIGFzIGIsS2kgYXMgeCxLciBhcyBTLExpIGFzIEMsTSBhcyBlZSxOIGFzIHRlLE5pIGFzIHcsTyBhcyBuZSxPciBhcyByZSxQaSBhcyBpZSxQciBhcyBhZSxQdCBhcyBvZSxSIGFzIHNlLFMgYXMgY2UsU2kgYXMgbGUsVCBhcyB1ZSxUaSBhcyBULFVpIGFzIGRlLFVyIGFzIEUsVmkgYXMgRCxXaSBhcyBmZSxXbiBhcyBwZSxXdCBhcyBtZSxYaSBhcyBPLFhyIGFzIGssWHQgYXMgaGUsWSBhcyBnZSxZaSBhcyBBLFluIGFzIGosWXIgYXMgX2UsWmkgYXMgTSxaciBhcyB2ZSxfIGFzIHllLGEgYXMgYmUsYWEgYXMgTixiIGFzIHhlLGJpIGFzIFAsY2EgYXMgRixkIGFzIFNlLGRpIGFzIENlLGR0IGFzIHdlLGVhIGFzIFRlLGVpIGFzIEksZiBhcyBFZSxmaSBhcyBMLGggYXMgRGUsaGkgYXMgUixpIGFzIHosaWEgYXMgQixqIGFzIE9lLGppIGFzIFYsam4gYXMga2Usa2kgYXMgQWUsa3IgYXMgamUsbCBhcyBNZSxsYSBhcyBOZSxsaSBhcyBILG0gYXMgUGUsbWkgYXMgRmUsbiBhcyBJZSxuYSBhcyBMZSxvIGFzIFUsb2kgYXMgVyxvciBhcyBHLHBpIGFzIEsscSBhcyBSZSxxbiBhcyB6ZSxyIGFzIHEscyBhcyBCZSx0IGFzIFZlLHRhIGFzIEhlLHRpIGFzIEosdSBhcyBVZSx1aSBhcyBZLHcgYXMgWCx3aSBhcyBaLHggYXMgV2UseGkgYXMgR2UseSBhcyBLZSx5aSBhcyBxZX1mcm9tIi4vc2hhcmVkLWtiMXlxSGFBLmpzIjt2YXIgSmU9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBZZShlLHQpe04odCwhMCk7bGV0IG49eChudWxsKSxyPWAke1MoKS5TTUFSVFNVUFBfQVVUT0NSRUFURT09PSExP2cod2luZG93KS5pZDpgc21hcnRzdXBwYH0td2lkZ2V0LWNvbnRhaW5lcmA7aygoKT0+e3cobikmJnAoKS5ib2R5LmFwcGVuZENoaWxkKHcobikpfSksX2UoKCk9PntwKCkuZ2V0RWxlbWVudEJ5SWQocik/LnJlbW92ZSgpfSk7dmFyIGk9SmUoKTtSKGEoaSksKCk9PnQuY2hpbGRyZW4/P05lKSxGKGkpLEooaSxlPT5mKG4sZSksKCk9PncobikpLHYoKCk9PlcoaSxgaWRgLHIpKSxaKGUsaSksQigpfXZhciBYZT1kKGA8aWZyYW1lIGFsbG93ZnVsbHNjcmVlbj0iIiBzY3JvbGxpbmc9Im5vIj48L2lmcmFtZT5gKTtmdW5jdGlvbiBRKGUsdCl7Tih0LCEwKTtsZXQgbj0oKT0+TShjLGAkdGhlbWVDb2xvcmAsciksW3IsaV09TygpLGE9eCh2b2lkIDApLG89eChudWxsKSxsO0MoKCk9Pnt3KG8pJiZ1KHcobykpfSksQygoKT0+e3cobykmJmQobigpKX0pO2xldCB1PWFzeW5jIGU9PntsJiZhd2FpdCBzKGwpLGUmJnQuY29tcG9uZW50JiYobD1HZSh0LmNvbXBvbmVudCx7dGFyZ2V0OmUuYm9keX0pKX0sZD1lPT57dyhvKSYmbmUodyhvKSxlKX0scD1lPT57aWYoIXcobykpcmV0dXJuO2xldCB0PXcobykuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHcobykuaGVhZC5hcHBlbmRDaGlsZCh0KSx0fSxtPSgpPT57Zm9yKGxldCBlIG9mIHdpbmRvdy5kb2N1bWVudC5zdHlsZVNoZWV0cyl7bGV0IHQ9YGA7dHJ5e3Q9Wy4uLmUuY3NzUnVsZXNdLm1hcChlPT5lLmNzc1RleHQpLmpvaW4oYGApfWNhdGNoe2NvbnRpbnVlfWlmKCFwKHQpKXJldHVybn19LGg9KCk9PnshdyhhKXx8IXcoYSkuY29udGVudERvY3VtZW50fHwoZihvLHcoYSkuY29udGVudERvY3VtZW50LCEwKSxtKCkpfTtrKGFzeW5jKCk9Pnthd2FpdCBpZSgpLHcoYSk/LmNvbnRlbnREb2N1bWVudCYmdyhhKS5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PWBjb21wbGV0ZWAmJncoYSkuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3P2goKTp3KGEpPy5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCxoKX0pLF9lKGFzeW5jKCk9Pnt3KGEpJiZ3KGEpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGxvYWRgLGgpLGwmJmF3YWl0IHMobCl9KTt2YXIgZz1YZSgpO0ooZyxlPT5mKGEsZSksKCk9PncoYSkpLHYoKCk9PntXKGcsYGlkYCx0LmlkKSxXKGcsYHRpdGxlYCx0LnRpdGxlKSxIKGcsdC5mcmFtZVN0eWxlKX0pLFooZSxnKSxCKCksaSgpfXZhciBaZT1sKGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPjxwYXRoIGQ9Ik02My4xMTMsMTguNTF2LS4xNkM2MC4zMjMsNy4wNSw0NC41ODIsMywzMS45NzIsM1MzLjU4Miw3LC43OTIsMTguNWE2Ni4yMiw2Ni4yMiwwLDAsMCwwLDIwLjQ2YzEuMTgsNC43NCw1LjA1LDguNjMsMTEuMzYsMTEuNDFsLTQsNUEzLjQ3LDMuNDcsMCwwLDAsMTAuODgyLDYxYTMuMzksMy4zOSwwLDAsMCwxLjQ0LS4zMUwyNi44NjIsNTRjMS43OS4xOCwzLjQ5LjI3LDUuMDcuMjcsMTEuMDQuMDQsMjguNDEtNC4wNCwzMS4xOC0xNS40M2E2MC4zMyw2MC4zMywwLDAsMCwwLTIwLjMzWiI+PC9wYXRoPjwvc3ZnPmApO2Z1bmN0aW9uIFFlKGUsdCl7bGV0IG49dmUodCxgaWNvblNpemVgLDMsMTYpO3ZhciByPVplKCk7digoKT0+e1cocixgd2lkdGhgLG4oKSksVyhyLGBoZWlnaHRgLG4oKSl9KSxaKGUscil9ZnVuY3Rpb24gJGUoZSx0KXtOKHQsITApO2xldCBuPXgoITEpO2soKCk9PntmKG4sITApfSk7dmFyIHI9VCgpLGk9RChyKSxhPWU9Pnt2YXIgbj1UKCk7UihEKG4pLCgpPT50LmNoaWxkcmVuPz9OZSksWihlLG4pfTtQKGksZT0+e3cobikmJmUoYSl9KSxaKGUsciksQigpfXZhciBldD1kKGA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0gdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIGdyb3VwLWhvdmVyOnNjYWxlLTExNSI+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gdHQoZSl7JGUoZSx7Y2hpbGRyZW46KGUsdCk9Pnt2YXIgbj1ldCgpO1FlKGEobikse2ljb25TaXplOjI0fSksRihuKSxLKDMsbiwoKT0+QmUsKCk9Pih7ZGVsYXk6MjAwLGR1cmF0aW9uOjMwMCxzdGFydDouNixvcGFjaXR5Oi44fSkpLFooZSxuKX0sJCRzbG90czp7ZGVmYXVsdDohMH19KX12YXIgbnQ9ZChgPGRpdiBjbGFzcz0icC0xIj48ZGl2IGNsYXNzPSJmbGV4LWNlbnRlciB3LTEyIGgtMTIgYmctd2hpdGUgYmctb3BhY2l0eS0xMCByb3VuZGVkLWZ1bGwiPjwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIHJ0KGUpe3ZhciB0PW50KCksbj1hKHQpO3R0KGEobikse30pLEYobiksRih0KSxaKGUsdCl9dmFyIGl0PWQoYDxkaXYgY2xhc3M9ImZsZXgiPjxkaXYgY2xhc3M9ImZsZXgtY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHBsLTQgcHItMSI+IDwvZGl2PiA8IT48L2Rpdj5gKTtmdW5jdGlvbiBhdChlLHQpe04odCwhMSk7bGV0IG49KCk9Pk0oaixgJHRgLHIpLFtyLGldPU8oKSxvPWZlKCk7aygoKT0+e2xldCBlPU1hdGguY2VpbCh3KG8pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtVZS5zZXQoZSl9KSxJKCk7dmFyIHM9aXQoKSxjPWEocyksbD1hKGMsITApO0YoYykscnQobShjLDIpLHt9KSxGKHMpLEoocyxlPT5mKG8sZSksKCk9PncobykpLHYoZT0+e1coYyxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0QnV0dG9uVGV4dCksbGUobCxlKX0sWygpPT5uKCkoYGJ1dHRvbi5ncmVldGluZ2ApXSksWihlLHMpLEIoKSxpKCl9dmFyIG90PWQoYDxkaXYgaWQ9IndpZGdldC1vbmxpbmUtYmFkZ2UiIGNsYXNzPSJhYnNvbHV0ZSBsZWZ0LTAgYm90dG9tLTAgdy0yIGgtMiBwLTEuNSBiZy1ncmVlbi00MDAgcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci13aGl0ZSI+PC9kaXY+YCk7ZnVuY3Rpb24gc3QoZSx0KXtOKHQsITEpO2xldCBuPSgpPT5NKGtlLGAkaXNXaWRnZXRPbmxpbmVgLHIpLFtyLGldPU8oKTtJKCk7dmFyIGE9VCgpLG89RChhKSxzPWU9Pnt2YXIgdD1vdCgpO3YoKCk9PlcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0T25saW5lQmFkZ2UpKSxLKDMsdCwoKT0+QmUpLFooZSx0KX07UChvLGU9PntuKCkmJmUocyl9KSxaKGUsYSksQigpLGkoKX12YXIgY3Q9ZChgPGRpdiBpZD0id2lkZ2V0LXVucmVhZC1tZXNzYWdlcy1iYWRnZSIgY2xhc3M9ImFic29sdXRlIHJpZ2h0LTAgdG9wLTAgbWluLXctNSBoLTUgZmxleC1jZW50ZXIgcHgtMSB0ZXh0LXdoaXRlIGJnLXJlZC02MDAgdGV4dC14cyByb3VuZGVkLWZ1bGwgc2hhZG93Ij4gPC9kaXY+YCk7ZnVuY3Rpb24gbHQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKGhlLGAkdW5yZWFkTWVzc2FnZXNDb3VudGAsciksW3IsaV09TygpLG89QSgoKT0+bigpPjApO3ZhciBzPVQoKSxjPUQocyksbD1lPT57dmFyIHQ9Y3QoKSxyPWEodCwhMCk7Rih0KSx2KCgpPT57Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRVbnJlYWRNZXNzYWdlc0JhZGdlKSxsZShyLG4oKT45OT9gOTkrYDpuKCkpfSksSygzLHQsKCk9PkJlKSxaKGUsdCl9O1AoYyxlPT57dyhvKSYmZShsKX0pLFooZSxzKSxCKCksaSgpfXZhciB1dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgdy1mdWxsIGZpeGVkIGZsZXgganVzdGlmeS1lbmQgYm9yZGVyLXJvdW5kZWQtZnVsbCI+PGRpdiByb2xlPSJidXR0b24iIGNsYXNzPSJncm91cCBmbGV4LWNlbnRlciB3LWZ1bGwgYmctcHJpbWFyeS1ncmFkaWVudCBiZy1wcmltYXJ5LWdyYWRpZW50LWhvdmVyIHRleHQtcHJpbWFyeS1jb250ZW50IHJvdW5kZWQtZnVsbCBvdmVyZmxvdy1oaWRkZW4gY3Vyc29yLXBvaW50ZXIgY29udGVudC1mb2N1cy1zZWNvbmRhcnkiPjwhPiA8IT48L2Rpdj4gPCE+PC9kaXY+YCk7ZnVuY3Rpb24gZHQoZSxuKXtOKG4sITEpO2xldCBpPSgpPT5NKGosYCR0YCxzKSxvPSgpPT5NKERlLGAkaXNXaWRnZXRCdXR0b25CdWJibGVgLHMpLFtzLGNdPU8oKTtJKCk7dmFyIGw9dXQoKSx1PWEobCk7Vyh1LGB0YWJpbmRleGAsMCk7dmFyIGQ9YSh1KSxmPWU9Pnt0dChlLHt9KX0scD1lPT57YXQoZSx7fSl9O1AoZCxlPT57bygpP2UoZik6ZShwLC0xKX0pLHN0KG0oZCwyKSx7fSksRih1KSxsdChtKHUsMikse30pLEYobCksdihlPT57Vyh1LGBhcmlhLWxhYmVsYCxlKSxXKHUsYGRhdGEtdGVzdGlkYCxHLndpZGdldEJ1dHRvbil9LFsoKT0+aSgpKGBhcmlhTGFiZWwub3BlbkNoYXRgKV0pLHQoYGNsaWNrYCx1LCgpPT5zZSgpKSxWKGBrZXlwcmVzc2AsdSxlPT5lLmtleT09PXIuRW50ZXImJnNlKCkpLFooZSxsKSxCKCksYygpfUFlKFtgY2xpY2tgXSk7dmFyIGZ0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gcHQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKFNlLGAkYnV0dG9uRnJhbWVXaWR0aGAscykscj0oKT0+TSh0ZSxgJHNob3VsZFJlbmRlckJ1dHRvbkZyYW1lYCxzKSxpPSgpPT5NKERlLGAkaXNXaWRnZXRCdXR0b25CdWJibGVgLHMpLG89KCk9Pk0oaixgJHRgLHMpLFtzLGNdPU8oKSxsPXgodm9pZCAwKSxkPWU9Pnt3KGwpJiYodyhsKS5zdHlsZS53aWR0aD1gJHtlfXB4YCl9LHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6cH09RS5nZXRPcHRpb25zKCk7QygoKT0+e3cobCkmJmQobigpKX0pO3ZhciBtPVQoKSxoPUQobSksZz1lPT57dmFyIHQ9ZnQoKTtsZXQgbjtxZShhKHQpLCgpPT5pKCl8fG8oKSxlPT57e2xldCB0PUEoWCk7UShlLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIGR0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRCdXR0b25GcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgYnV0dG9uYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KHQpfX0pfX0pLEYodCksSih0LGU9PmYobCxlKSwoKT0+dyhsKSksTCh0LGU9PktlPy4oZSkpLHYoZT0+e249SCh0LGBib3JkZXItcmFkaXVzOiA5OTk5cHg7IGJveC1zaGFkb3c6IHJnYigwIDAgMCAvIDYlKSAwcHggMXB4IDZweCwgcmdiKDAgMCAwIC8gJHtwPy5saW1pdFNoYWRvdz9gMjAlKSAwcHggMnB4IDEycHhgOmAxMiUpIDBweCAycHggMzJweGB9OyBjb2xvci1zY2hlbWU6IG5vcm1hbDtgLG4sZSksVyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRCdXR0b25GcmFtZSl9LFsoKT0+KHtoZWlnaHQ6dSg1Nil9KV0pLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZGVsYXk6MTUwLGR1cmF0aW9uOjMwMH0pKSxLKDIsdCwoKT0+YmUsKCk9Pih7ZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChoLGU9PntyKCkmJmUoZyl9KSxaKGUsbSksQigpLGMoKX12YXIgJD1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLkluaXRpYWxpemVkPTBdPWBJbml0aWFsaXplZGAsZVtlLkxvYWRpbmc9MV09YExvYWRpbmdgLGVbZS5TdWNjZXNzPTJdPWBTdWNjZXNzYCxlW2UuRXJyb3I9M109YEVycm9yYCxlfSh7fSksbXQ9bmV3IE1hcCxodD1hc3luYyBlPT57bGV0IHQ9KGF3YWl0IGUoKSkuZGVmYXVsdDtyZXR1cm4gbXQuc2V0KGUsdCksdH07ZnVuY3Rpb24gZ3QoZSx0KXtOKHQsITApO2xldCBuPXZlKHQsYGRlbGF5YCwzLDIwMCkscj14KGRlKCQuSW5pdGlhbGl6ZWQpKSxpPXgodm9pZCAwKSxhPXgodm9pZCAwKSxvPXgodm9pZCAwKSxzPUEoKCk9PncoaSkpLGM9KCk9Pnt3aW5kb3cuY2xlYXJUaW1lb3V0KHcobykpfSxsPWFzeW5jKCk9PntjKCksZihhLHZvaWQgMCksZihpLHZvaWQgMCksbigpPjA/KGYociwkLkluaXRpYWxpemVkLCEwKSxmKG8sd2luZG93LnNldFRpbWVvdXQoKCk9PntmKHIsJC5Mb2FkaW5nLCEwKX0sbigpKSwhMCkpOmYociwkLkxvYWRpbmcsITApO3RyeXtmKGksYXdhaXQgaHQodC5sb2FkZXIpLCEwKSxmKHIsJC5TdWNjZXNzLCEwKX1jYXRjaChlKXtpZihmKHIsJC5FcnJvciwhMCksZSBpbnN0YW5jZW9mIEVycm9yKWYoYSxlLCEwKTtlbHNlIHRocm93IGV9YygpfTttdC5oYXModC5sb2FkZXIpPyhmKHIsJC5TdWNjZXNzLCEwKSxmKGksbXQuZ2V0KHQubG9hZGVyKSwhMCkpOmsoKCk9PntsKCl9KTt2YXIgdT1UKCksZD1EKHUpLHA9ZT0+e3ZhciBuPVQoKTtSKEQobiksKCk9PnQuZXJyb3IsKCk9Pih7ZXJyb3I6dyhhKX0pKSxaKGUsbil9LG09ZT0+e3ZhciBuPVQoKTtSKEQobiksKCk9PnQubG9hZGluZyksWihlLG4pfSxoPWU9Pnt2YXIgdD1UKCk7RmUoRCh0KSwoKT0+dyhzKSwoZSx0KT0+e3QoZSx7fSl9KSxaKGUsdCl9O1AoZCxlPT57dyhyKT09PSQuRXJyb3ImJnQuZXJyb3I/ZShwKTp3KHIpPT09JC5Mb2FkaW5nP2UobSwxKTp3KHIpPT09JC5TdWNjZXNzJiZlKGgsMil9KSxaKGUsdSksQigpfXZhciBfdD0oKT0+YWUoKCk9PmltcG9ydChgLi9XaWRnZXRNZXNzZW5nZXItRDFpVlkzTGouanNgKSxfX3ZpdGVfX21hcERlcHMoWzAsMSwyXSksaW1wb3J0Lm1ldGEudXJsKSx2dD1lPT57dmFyIHQ9YnQoKSxuPWEodCkscj1hKG4pO3EoYShyKSx7c2l6ZTozMn0pLEYocik7dmFyIGk9bShyLDIpLG89YShpKTtxKG8se3NpemU6MzJ9KTt2YXIgcz1tKG8sMik7cShzLHtzaXplOjMyfSkscShtKHMsMikse3NpemU6MzJ9KSxGKGkpLEYobik7dmFyIGM9bShuLDIpLGw9YShjKTtxKGEobCkse3NpemU6NDR9KSxGKGwpO3ZhciB1PW0obCwyKSxkPWEodSk7eihkLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSkseihtKGQsMikse2hlaWdodDoyMCx3aWR0aDoxMjJ9KSxGKHUpLEYoYyk7dmFyIGY9bShjLDIpLHA9YShmKTtxKGEocCkse3NpemU6Mjh9KSxGKHApO3ZhciBoPW0ocCwyKTt6KGEoaCkse2hlaWdodDoxMTIsd2lkdGg6Mjk1LHJvdW5kZWRTdHlsZTpgcm91bmRlZC02YH0pLEYoaCksRihmKTt2YXIgZz1tKGYsMiksXz1hKGcpO3ooXyx7aGVpZ2h0OjMyLHdpZHRoOjI5NX0pO3ZhciB2PW0oXywyKTt6KHYse2hlaWdodDozMix3aWR0aDoxNDh9KSx6KG0odiwyKSx7aGVpZ2h0OjMyLHdpZHRoOjIyNH0pLEYoZyksRih0KSxaKGUsdCl9LHl0PShlLHQpPT57bGV0IG49KCk9PnQ/LigpLmVycm9yO3ZhciByPXh0KCksaT1tKGEociksMiksbz1hKGksITApO0YoaSksRihyKSx2KCgpPT5sZShvLG4oKSkpLFooZSxyKX0sYnQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSIgaWQ9IlRPRE8gdGVzdCI+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXgiPjwhPjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtMiI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBtdC0yIj48ZGl2IGNsYXNzPSJmbGV4IG1sLTEgbXItMiI+PCE+PC9kaXY+IDxkaXYgY2xhc3M9ImZsZXgtYm90dG9tIHNwYWNlLXktMiI+PCE+IDwhPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWJhc2VsaW5lIG10LTgiPjxkaXYgY2xhc3M9ImZsZXggbWwtMSBtci0yIj48IT48L2Rpdj4gPGRpdiBjbGFzcz0ic3BhY2UteS0yIj48IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBpdGVtcy1lbmQgc3BhY2UteS01IG10LTggbXItMSI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj5gKSx4dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgcC00IGJnLXdoaXRlIHRleHQtcmVkLTUwMCI+PGRpdiBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQiPkZhaWxlZCB0byBsb2FkIHdpZGdldDwvZGl2PiA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIj4gPC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gU3QoZSl7Z3QoZSx7Z2V0IGxvYWRlcigpe3JldHVybiBfdH0sZGVsYXk6MCxnZXQgZXJyb3IoKXtyZXR1cm4geXR9LGdldCBsb2FkaW5nKCl7cmV0dXJuIHZ0fX0pfXZhciBDdD1kKGA8ZGl2PjwhPjwvZGl2PmApO2Z1bmN0aW9uIHd0KGUsdCl7Tih0LCEwKTtsZXQgcj0oKT0+TShqZSxgJGlzRnVsbFNjcmVlbkVuYWJsZWRgLGwpLG89KCk9Pk0oUGUsYCRpc01lc3NlbmdlckZyYW1lRXhwYW5kZWRgLGwpLHM9KCk9Pk0obixgJGlzTW9iaWxlRGV2aWNlYCxsKSxjPSgpPT5NKGksYCRzaG91bGRSZW5kZXJNZXNzZW5nZXJGcmFtZWAsbCksW2wsZF09TygpLG09eCh2b2lkIDApLGc9YE1vYmlsZVdpZGdldE1lc3Nlbmdlck9wZW5gLF89KGUsdCk9PntpZighdyhtKSlyZXR1cm47bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1FLmdldE9wdGlvbnMoKSx7d2lkdGg6cixoZWlnaHQ6aX09dWUoZSx0KTt3KG0pLnN0eWxlLm1heEhlaWdodD1oKGkpP2k6dShpKSx3KG0pLnN0eWxlLndpZHRoPWgocik/cjp1KHIpLHcobSkuc3R5bGUuaGVpZ2h0PWV8fG4/LmhlYWRsZXNzTW9kZT9gMTAwJWA6YGNhbGMoMTAwJSAtIDQwcHgpYH07QygoKT0+e3cobSkmJl8ocigpLG8oKSl9KTtsZXQgeT14KCExKTtDKCgpPT57aWYocygpKXtpZihjKCkmJiF3KHkpKXtsZXQgZT1wKCkuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtlLnRleHRDb250ZW50PWAqIHtvdmVyZmxvdzogaGlkZGVufWAsZS5jbGFzc05hbWU9ZyxwKCkuaGVhZC5hcHBlbmRDaGlsZChlKSxmKHksITApfWlmKCFjKCkmJncoeSkpe2xldCBlPXAoKS5oZWFkLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZyk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspcCgpLmhlYWQucmVtb3ZlQ2hpbGQoZVt0XSk7Zih5LCExKX19fSk7dmFyIGI9VCgpLFM9RChiKSxlZT1lPT57dmFyIHQ9Q3QoKTtIKHQsYGAse30se3RyYW5zaXRpb246YG1heC1oZWlnaHQgMjUwbXMgZWFzZS1pbi1vdXQsIHdpZHRoIDI1MG1zIGVhc2UtaW4tb3V0YCxvdmVyZmxvdzpgaGlkZGVuYH0pO3ZhciBuPWEodCk7e2xldCBlPUEoWCk7UShuLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIFN0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRNZXNzZW5nZXJGcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgbWVzc2VuZ2VyYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LChlLHQpPT54ZT8uKGUsdCksciksSih0LGU9PmYobSxlKSwoKT0+dyhtKSksdigoKT0+Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRNZXNzZW5nZXJGcmFtZSkpLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZHVyYXRpb246MjAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MTUwfSkpLFooZSx0KX07UChTLGU9PntjKCkmJmUoZWUpfSksWihlLGIpLEIoKSxkKCl9dmFyIFR0PSgpPT5hZSgoKT0+aW1wb3J0KGAuL1dpZGdldFBvcHVwLUJBMWpjSG51LmpzYCksX192aXRlX19tYXBEZXBzKFszLDEsMl0pLGltcG9ydC5tZXRhLnVybCksRXQ9ZT0+e3ZhciB0PUR0KCksbj1hKHQpO3Eobix7c2l6ZTo0NH0pO3ZhciByPW0obiwyKSxpPWEocik7eihpLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSk7dmFyIG89bShpLDIpO3oobyx7aGVpZ2h0OjIwLHdpZHRoOjI3MH0pLHoobShvLDIpLHtoZWlnaHQ6MjAsd2lkdGg6MTIyfSksRihyKSxGKHQpLFooZSx0KX0sRHQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSI+PCE+IDxkaXYgY2xhc3M9Im10LTQgc3BhY2UteS0yIj48IT4gPCE+IDwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIE90KGUpe2d0KGUse2dldCBsb2FkZXIoKXtyZXR1cm4gVHR9LGRlbGF5OjAsZ2V0IGxvYWRpbmcoKXtyZXR1cm4gRXR9fSl9dmFyIGt0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gQXQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKHllLGAkcG9wdXBGcmFtZUhlaWdodGAsbykscj0oKT0+TShFZSxgJGhhc1BvcHVwRnJhbWVIb3ZlcmAsbyksaT0oKT0+TShPZSxgJHNob3VsZFJlbmRlclBvcHVwRnJhbWVgLG8pLFtvLHNdPU8oKSxjPXgodm9pZCAwKSxsPWU9Pnt3KGMpJiYodyhjKS5zdHlsZS5tYXhIZWlnaHQ9YCR7ZX1weGApfSx7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOmR9PUUuZ2V0T3B0aW9ucygpO0MoKCk9Pnt3KGMpJiZsKG4oKSl9KTtsZXQgcD1BKCgpPT5yKCk/LjI4Oi4xNik7dmFyIG09VCgpLGg9RChtKSxnPWU9Pnt2YXIgdD1rdCgpO2xldCBuO3ZhciByPWEodCk7e2xldCBlPUEoWCk7UShyLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIE90fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRQb3B1cEZyYW1lfSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCBwb3B1cGAsZ2V0IGZyYW1lU3R5bGUoKXtyZXR1cm4gdyhlKX19KX1GKHQpLEoodCxlPT5mKGMsZSksKCk9PncoYykpLEwodCxlPT5jZT8uKGUpKSx2KGU9PntuPUgodCxgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KTsgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UtaW4tb3V0LCBtYXgtaGVpZ2h0IDI1MG1zIGVhc2UtaW4tb3V0YCxuLGUpLFcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0UG9wdXBGcmFtZSl9LFsoKT0+KHt3aWR0aDp1KDMwMCksImJvcmRlci1yYWRpdXMiOnUoMjApLG92ZXJmbG93OmBoaWRkZW5gLCJib3gtc2hhZG93IjpgcmdiYSgwLCAwLCAwLCAke2Q/LmxpbWl0U2hhZG93P2AwLjIpIDBweCAzcHggMTJweGA6YCR7dyhwKX0pIDBweCAzcHggMTZweGB9YH0pXSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheTozMDAsZHVyYXRpb246NDAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246NDAwfSkpLFooZSx0KX07UChoLGU9PntpKCkmJmUoZyl9KSxaKGUsbSksQigpLHMoKX12YXIganQ9ZChgPGRpdiBjbGFzcz0iZmxleCBwLTIiPjxkaXY+PC9kaXY+IDxkaXY+PC9kaXY+IDxkaXY+PC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gTXQoZSx0KXtsZXQgbj12ZSh0LGBzaXplYCwzLGBtZGApLHI9dmUodCxgY29sb3JgLDMsYGJsYWNrYCksaT1BKCgpPT50Lml0ZXJhdGlvbnM/P2BpbmZpbml0ZWApO3ZhciBvPWp0KCkscz1hKG8pO2xldCBjO3ZhciBsPW0ocywyKTtsZXQgdTt2YXIgZD1tKGwsMik7bGV0IGY7RihvKSx2KCgpPT57WShzLDEsYHR5cGluZy1pbmRpY2F0b3IgJHtuKCl9IGluZGljYXRvci1jb2xvci0ke3IoKX0gYW5pbWF0ZS10eXBpbmdgLGBzdmVsdGUtczQweGdrYCksYz1IKHMsYGAsYyx7ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOncoaSl9KSxZKGwsMSxgdHlwaW5nLWluZGljYXRvciAke24oKX0gaW5kaWNhdG9yLWNvbG9yLSR7cigpfSB0eXBpbmctaW5kaWNhdG9yLXNlY29uZCBhbmltYXRlLXR5cGluZ2AsYHN2ZWx0ZS1zNDB4Z2tgKSx1PUgobCxgYCx1LHsiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCI6dyhpKX0pLFkoZCwxLGB0eXBpbmctaW5kaWNhdG9yICR7bigpfSBpbmRpY2F0b3ItY29sb3ItJHtyKCl9IHR5cGluZy1pbmRpY2F0b3ItdGhpcmQgYW5pbWF0ZS10eXBpbmdgLGBzdmVsdGUtczQweGdrYCksZj1IKGQsYGAsZix7ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOncoaSl9KX0pLFooZSxvKX12YXIgTnQ9ZChgPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgaC1mdWxsIGJnLXdoaXRlIHJvdW5kZWQtbGciPjwhPjwvZGl2PmApO2Z1bmN0aW9uIFB0KGUpe3ZhciB0PU50KCk7TXQoYSh0KSx7aXRlcmF0aW9uczoyfSksRih0KSxaKGUsdCl9dmFyIEZ0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gSXQoZSx0KXtOKHQsITEpO2xldCBuPSgpPT5NKGVlLGAkc2hvdWxkUmVuZGVyVHlwaW5nRnJhbWVgLHIpLFtyLGldPU8oKSx7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnN9PUUuZ2V0T3B0aW9ucygpO0koKTt2YXIgYz1UKCksbD1EKGMpLGQ9ZT0+e3ZhciB0PUZ0KCk7bGV0IG47dmFyIHI9YSh0KTt7bGV0IGU9YihYKTtRKHIse2dldCBjb21wb25lbnQoKXtyZXR1cm4gUHR9LGdldCBpZCgpe3JldHVybiBHLndpZGdldFR5cGluZ0ZyYW1lfSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCB0eXBpbmdgLGdldCBmcmFtZVN0eWxlKCl7cmV0dXJuIHcoZSl9fSl9Rih0KSxMKHQsZT0+bz8uKGUpKSx2KGU9PntuPUgodCxgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjIpICR7cz8ubGltaXRTaGFkb3c/YDBweCAzcHggMTJweGA6YDBweCAzcHggMTZweGB9OyBib3JkZXItcmFkaXVzOiAyNHB4O2AsbixlKSxXKHQsYGRhdGEtdGVzdGlkYCxHLndpZGdldFR5cGluZ0ZyYW1lKX0sWygpPT4oe2hlaWdodDp1KDQwKSx3aWR0aDp1KDcwKSxvdmVyZmxvdzpgaGlkZGVuYH0pXSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheTozMDAsZHVyYXRpb246NDAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChsLGU9PntuKCkmJmUoZCl9KSxaKGUsYyksQigpLGkoKX12YXIgTHQ9TGUobnVsbCksUnQ9VGUoW0x0XSwoW2VdKT0+ISFlKSx6dD1kKGA8aW1nIGNsYXNzPSJtLWF1dG8gbWF4LWgtZnVsbCBtYXgtdy1mdWxsIHNlbGVjdC1ub25lIGJnLWJsYWNrIiB3aWR0aD0iYXV0byIgaGVpZ2h0PSJhdXRvIi8+YCksQnQ9ZChgPHZpZGVvIGNvbnRyb2xzPSIiIGNsYXNzPSJtLWF1dG8gbWF4LWgtZnVsbCBtYXgtdy1mdWxsIGJnLWJsYWNrIG9iamVjdC1jb250YWluIj48dHJhY2sga2luZD0iY2FwdGlvbnMiLz4gPHNvdXJjZS8+PC92aWRlbz5gLDIpLFZ0PWQoYDxkaXYgY2xhc3M9InctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbCI+PGRpdiBjbGFzcz0iZmxleC1zaHJpbmsgZmxleCBmbGV4LXJvdyB3LWZ1bGwgYmctYmxhY2sgdGV4dC13aGl0ZSI+PGRpdiBjbGFzcz0iZmxleC1ncm93IGZsZXggaXRlbXMtY2VudGVyIHRleHQtbWQgcHgtNCBvdmVyZmxvdy1oaWRkZW4iPjxzcGFuIGNsYXNzPSJ3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiI+IDwvc3Bhbj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleC1zaHJpbmsiPjwhPjwvZGl2PjwvZGl2PiA8ZGl2PjwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIEh0KGUsbil7TihuLCEwKTtsZXQgcj0oKT0+TShyZSxgJGlzRGVza3RvcGAscyksaT0oKT0+TShMdCxgJHByZXZpZXdlZE1lZGlhYCxzKSxvPSgpPT5NKGosYCR0YCxzKSxbcyxjXT1PKCksbD1BKHIpLHU9ZT0+e2U9PT1gb3ZlcmxheWAmJiF3KGwpfHxMdC5zZXQobnVsbCl9O3ZhciBkPVZ0KCksZj1hKGQpLHA9YShmKSxoPWEocCksZz1hKGgsITApO0YoaCksRihwKTt2YXIgXz1tKHAsMikseT1hKF8pO3tsZXQgZT1BKCgpPT5vKCkoYHRvb2x0aXAuY2xvc2VgKSk7VmUoeSx7b25DbGljazooKT0+dShgYnV0dG9uYCksZ2V0IGljb24oKXtyZXR1cm4gSWV9LGdldCBpY29uRGVzY3JpcHRpb24oKXtyZXR1cm4gdyhlKX0saWNvblNjYWxlOiEwLHNpemU6YHhsYH0pfUYoXyksRihmKTt2YXIgYj1tKGYsMikseD1hKGIpLFM9ZT0+e3ZhciBuPXp0KCk7digoKT0+e1cobixgc3JjYCxpKCk/LmF0dGFjaG1lbnQudXJsKSxXKG4sYGFsdGAsaSgpPy5hdHRhY2htZW50LmZpbGVOYW1lKX0pLHQoYGNsaWNrYCxuLGU9PmUuc3RvcFByb3BhZ2F0aW9uKCkpLFYoYGtleXByZXNzYCxuLCgpPT57fSksWihlLG4pfSxDPWU9Pnt2YXIgbj1CdCgpO24uYXV0b3BsYXk9ITAsbi5sb29wPSEwO3ZhciByPW0oYShuKSwyKTtGKG4pLHYoKCk9Plcocixgc3JjYCxpKCkuYXR0YWNobWVudC51cmwpKSx0KGBjbGlja2AsbixlPT5lLnN0b3BQcm9wYWdhdGlvbigpKSxWKGBrZXlwcmVzc2AsbiwoKT0+e30pLFooZSxuKX07UCh4LGU9PntpKCk/LnR5cGU9PT13ZS5JbWFnZT9lKFMpOmkoKT8udHlwZT09PXdlLlZpZGVvJiZlKEMsMSl9KSxGKGIpLEYoZCksdigoKT0+e2xlKGcsaSgpPy5hdHRhY2htZW50LmZpbGVOYW1lKSxZKGIsMSxDZShbYHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiBmbGV4LWdyb3cgZmxleCBpdGVtcy1jZW50ZXIgYmctYmxhY2svODAgei0xMGAscigpP2BwLThgOmBwLTRgXSkpfSksdChgY2xpY2tgLGIsKCk9PnUoYG92ZXJsYXlgKSksVihga2V5cHJlc3NgLGIsKCk9Pnt9KSxLKDEsZCwoKT0+VSwoKT0+KHt5OjIwLGRlbGF5OjMwMCxkdXJhdGlvbjo0MDB9KSksSygyLGQsKCk9PlUsKCk9Pih7eToxMCxkdXJhdGlvbjoyNTB9KSksWihlLGQpLEIoKSxjKCl9QWUoW2BjbGlja2BdKTt2YXIgVXQ9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBXdChlLHQpe04odCwhMSk7bGV0IG49KCk9Pk0oUnQsYCRzaG91bGRSZW5kZXJNZWRpYVByZXZpZXdgLHIpLFtyLGldPU8oKTtJKCk7dmFyIG89VCgpLHM9RChvKSxjPWU9Pnt2YXIgdD1VdCgpO0godCxgYCx7fSx7dHJhbnNpdGlvbjpgbWF4LWhlaWdodCAyNTBtcyBlYXNlLWluLW91dCwgd2lkdGggMjUwbXMgZWFzZS1pbi1vdXRgfSk7dmFyIG49YSh0KTt7bGV0IGU9YigoKT0+WChlPT57ZS5zdHlsZS5wb3NpdGlvbj1gZml4ZWRgfSkpO1Eobix7Z2V0IGNvbXBvbmVudCgpe3JldHVybiBIdH0sZ2V0IGlkKCl7cmV0dXJuIEcud2lkZ2V0SW1hZ2VQcmV2aWV3fSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCBpbWFnZSBwcmV2aWV3YCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LGU9PldlPy4oZSkpLHYoKCk9PlcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0SW1hZ2VQcmV2aWV3KSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheToxMDAsZHVyYXRpb246MjUwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChzLGU9PntuKCkmJmUoYyl9KSxaKGUsbyksQigpLGkoKX12YXIgR3Q9ZChgPCE+IDwhPiA8IT4gPCE+IDwhPmAsMSk7ZnVuY3Rpb24gS3QodCxyKXtOKHIsITApO2xldCBpPSgpPT5NKG1lLGAkbGFzdFVucmVhZE1lc3NhZ2VgLG8pLGE9KCk9Pk0oXyxgJGlzTWVzc2VuZ2VyRnJhbWVPcGVuYCxvKSxbbyxzXT1PKCk7aygoKT0+eyhhc3luYygpPT57YXdhaXQgemUoKSxhd2FpdCBwZS5pbml0Q2xpZW50KCl9KSgpfSksQygoKT0+e2koKSYmIWEoKSYmZSgpfSksZ2UoUygpKSxIZShuKSYmeShTKCkpLFllKHQse2NoaWxkcmVuOihlLHQpPT57dmFyIG49R3QoKSxyPUQobik7SXQocix7fSk7dmFyIGk9bShyLDIpO0F0KGkse30pO3ZhciBhPW0oaSwyKTtwdChhLHt9KTt2YXIgbz1tKGEsMik7d3Qobyx7fSksV3QobShvLDIpLHt9KSxaKGUsbil9LCQkc2xvdHM6e2RlZmF1bHQ6ITB9fSksQigpLHMoKX12YXIgcXQ9Zyh3aW5kb3cpO0UuaW5pdChxdC5vcHRpb25zKSxxdC5pbnN0YWxsQXBpKE1lKSxjLnNldFRoZW1lQ29sb3IocXQub3B0aW9ucyksUmUoKSxvZSgpLEdlKEt0LHt0YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGFwcGApfSk7ZXhwb3J0e010IGFzIG4sTHQgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW1haW4tQi1WSGMxSzQuanMubWFw"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"wss","addr":"wss://websocket-visitors.smartsupp.com/socket/?EIO=3\u0026transport=websocket","fqdn":"websocket-visitors.smartsupp.com","domain":"smartsupp.com","tld":"com"},"ip":{"addr":"3.122.197.123","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:32.816Z","timestamp":1785139292816,"http_version":"HTTP/1.1","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":"*.smartsupp.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Wed, 24 Jun 2026 00:00:00 GMT","end":"Thu, 07 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"4F:1A:3B:79:00:E3:DC:1F:92:62:7C:DC:85:3A:BE:8C:D1:68:F2:57","sha256":"7F:93:E6:29:5D:CA:78:BD:30:0D:25:11:3B:E2:01:C9:DC:80:3C:80:90:3F:84:D2:72:1B:0D:42:F1:20:13:D9"}}},"request":{"raw":"GET /socket/?EIO=3\u0026transport=websocket HTTP/1.1\r\nHost: websocket-visitors.smartsupp.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-WebSocket-Version: 13\r\nOrigin: https://mobichain.co\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: bSQl932VVOSy9Y7wtWejKQ==\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: Upgrade\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: websocket\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 101 Switching Protocols\r\nDate: Mon, 27 Jul 2026 08:01:32 GMT\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Accept: gLMFkqhoU49bZuBiFQ8OMcG3y4A=\r\nSec-WebSocket-Version: 13\r\nWebSocket-Server: uWebSockets\r\n\r\n","headers":null,"cookies":null,"status_code":"101","status_text":"Switching Protocols","fingerprints":null,"data":{"size":0,"size_decoded":224,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-01T09:15:58.32755Z","times_seen":17650415,"resource_available":true,"data":""}},"time_used":236,"timings":{"blocked":0,"dns":80,"connect":102,"send":0,"wait":27,"receive":0,"ssl":27},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/wallet.png","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.210Z","timestamp":1785139285210,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /wallet.png HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\nserver: cloudflare\r\nlast-modified: Fri, 05 Sep 2025 23:56:59 GMT\r\naccept-ranges: bytes\r\nserver-timing: cfExtPri\r\ncontent-type: image/png\r\ncache-control: max-age=14400\r\ncf-cache-status: REVALIDATED\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=wzXZ4YEAJcGBI%2BfDzHvp9kMKckSsKs%2F5SDguShSaDUfgvFuajXcJZ2GalOyVmHH9oXlFoWsqy%2BK4aE%2BaV6o3dClRDIvd7k27tlgUOwurZ7%2FruRJiKwiNXEe%2FUGgU4qc%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=5,i\r\ncf-ray: a21a1db498112efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 182744\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"]}],"data":{"size":182744,"size_decoded":183420,"mime_type":"image/png","magic":"PNG image data, 886 x 1163, 8-bit/color RGBA, non-interlaced","md5":"a8114dbc3d8b12d5c951426d6091b401","sha1":"d6412917ef54dbff0e02f6d9fefa635d9daf2be3","sha256":"bab91c87830ba7c67310421da77f3812dcabe80799ce719f31980eeac1f695fd","sha512":"c1e9c4a2abb332d972e4570afbfc3486d15a45d187602b6bcde90e80febacac846846d0509c184ccc915295ee94a95db5ca4d43d5d086a4fd448b1bf77ab051c","ssdeep":"3072:kKnzxIZo+InCVjYDRLMdzWz9j8xlARptF3VwVl8XsntvsbTt6yVBZPHUcxtuJ5th:TzxIy+InCKDRLMdSB8xlARDD+8XEtkbO","tlshash":"ef04df5b0395d86bdb4aff3a170cca383eb1989061594b20abb02d9f2d165fd0f439d5","first_seen":"2026-07-25T05:39:21.871409Z","last_seen":"2026-07-27T08:02:19.574138Z","times_seen":5,"resource_available":false,"data":"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/lJLX9e6f6NvxT1V75g44qoxrjBk3wpClaq+SFldTUhUVA2DVTymfDx3rjjxFkwl6atlamH3fvL+wofFP60qfqwYl/dRnBz07Ym284UTbM3te4zLId2Y3pMWk23y5gm292cn2AFf59LHFKVNXLdV4yp5MIYljnzUMgfsMuyepreN7yKCGQ85MX898KNem/OiM9X3Az/ptecfNyOCVyvGi52uN908wQ761qREB35zYtrdYwy5p3Cq4pDi+iByPXZM4uDJbPrWnlTAbemF21Kry6ZNl217Ro9t54XddmdNtG293eGCCbbnlRPtzd+ebAf4OBu+rig7ynEpjO75Wm+Kmg+/+mivVeYVUvIt2Maj5yjPS43aPlKyV32zEV1jXJ+kG9EXOCXONWZe2zkVdiu9kofHNUucdcurQLhbsok8ug6BHv+mZtddd63lde0Xv2h33H57kldbfXXbaqutEh+HQCAQCAQCgUAgEBgnCPhaVb5gZdHNjGS+XJQv7avrWwkB2RXOaoi+XhcYLw0Y18f1IcxfqvpOXqpi6+3RY+vvOdEmLlLdUZF5BmXfpCjW6GYmueyFU5qPsyKWx/W3yf/wZo2e5JLv5gdPsP86daJNXVOGj/XzWnXrHnvjjZNshU3IyUx08G6t4hJGOQcfVG19i4IH37T7Z31fkvxEMGav/enGit3y5jn220/Ps+8fN9e+d/w8mzfLzT6Gv02STV7SbJ3de2zdPeu01Kpm8j+8++Zbz8H8hT35EtDlwbwnL2G2ystl+3x+gq21XY8nVORLXzkO/3vyXPvf9821331unl23y1z789e9sPMPiaSqb9/BMNXy7Wt2k/c17+42ucTbQ/pnAoXc0JiDu7rN3E2WYrtb+ryYhuBrHX85uh3PYVQT4OEVL33pS22HHXawAw44wPbdd197zWteY2uvvXb6qYX+kqHvOuusY+uuu65Nnz695srTKNdcc82kxwZNmzatZm/FSDLut9pmm21SDm9961tt7733TrnwcBLJP0itOo6ybumll7bNt9gijfrQQw/Zb37zG/vZz35W2z094MADjfknhyEeuIxz/fXXt5133tne9KY32Rvf+EbbZZddjIfRDDUmscA9x+LcUpDywJJFFllkiJkV7jwc5uUvf7ntscce6bOy0047GU8fXXTRRQuHNscpU6akzxP5rLXWWjUviuTVvRhG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OvKhyy2SLKxNMTMmfJvZtizl9kpZ4+PZmLGVOHa4nZFZJ8iOa/wMPzV+iJ8t3Dlub1z548Z44LfD8fa/99ix3D3+7ZTqHor2DC3VChEQAREQAREQARHoGQQaohPxb/OveG38LXj09xNx3Q9b48Sv52sN8+Okb+bHiV/Ni5MsLr4+H078mvHz+bisspanU2WtfOoVSgfJxvdbZ3P4hscHA4+R+LHD/eOPHavbHw+29PutE2Sv+mFTXPfj1rjWjuMvJ43yx3ZzrLFbnawy7LrV7pKyvYKAGikCIiACIiACIiACIiACeRKQYZcnMImLgAiIQDkQkA4iIAIiIAIiIAIikEpAhl0qDa2LgAiIgAiIQM8hoJaIgAiIgAj0IgIy7HrRzlZTRUAEREAEREAERKAtAW2JgAj0FAIy7HrKnlQ7REAEREAEREAEREAERKAzCKjMbkFAhl232E1SUgREQAREQAREQAREQAREQASCCXS1YResmVJEQAREQAREQAREQAREQAREQARCEZBhFwqThLqWgGoXAREQAREQAREQAREQARHIRkCGXTY6ShMBEeg+BKSpCIiACIiACIiACPRiAjLsevHOV9NFQAREoLcRUHtFQAREQAREoKcSkGHXU/es2iUCIiACIiACIlAIAeURAREQgW5JQIZdt9xtUloEREAEREAEREAERKDrCKhmESg/AjLsym+fSCMREAEREAEREAEREAEREIHuTqDE+suwKzFwVScCIiACIiACIiACIiACIiACxSYgw67YREtTnmoRAREQAREQAREQAREQAREQgSQBGXZJFFoRgZ5GQO0RAREQAREQAREQARHoLQRk2PWWPa12ioAIiEAmAooTAREQAREQARHoEQRk2PWI3ahGiIAIiIAIiEDnEVDJIiACIiAC5U9Ahl357yNpKAIiIAIiIAIiIALlTkD6iYAIdDEBGXZdvANUvQiIgAiIgAiIgAiIgAj0DgJqZWcSkGHXmXRVtgiIgAiIgAiIgAiIgAiIgAiUgECPMexKwEpViIAIiIAIiIAIiIAIiIAIiEBZEpBhV5a7RUp1EgEVKwIiIAIiIAIiIAIiIAI9koAMux65W9UoERCBwgkopwiIgAiIgAiIgAh0PwIy7LrfPpPGIiACIiACXU1A9YuACIiACIhAmRGQYVdmO0TqiIAIiIAIiIAI9AwCaoUIiIAIlJKADLtS0lZdIiACIiACIiACIiACIjCFgNZEoGgEZNgVDaUKEgEREAEREAEREAEREAEREIFiEwhXngy7cJwkJQIiIAIiIAIiIAIiIAIiIAJlS0CGXdnumtIoplpEQAREQAREQAREQAREQAS6PwEZdt1/H6oFItDZBFS+CIiACIiACIiACIhAmRPocYbdqaeeinPPPdeH3XbbDc65Mt8FUk8EREAEegIBtUEEREAEREAERKArCfQow845hz332gv7H3CAD+uvv35XslXdIiACIiACIiACqQS0LgIiIAIi0GkEepRh12mUVLAIiIAIiIAIiIAIiEBJCKgSERCBwgjIsCuMm3KJgAiIQEEE+vbti1lmmQULLbQQll56aayxxhpYbfXVseSSS2KBBRbAjDPOiNra2oLKLmammpoazDDDDJh//vm9bquuthrWWmstLL3MMlh44YUxZMgQ9OvXr5hVqiwREAEREAERCEtAchkIRDLEKarIBOaaay4stdRSWcO8885bcK0DBw7MWnauuvNJX2KJJVBdXV2wrukZnXMIw2fo0KHpWTt1e6qppsKyyy6L5ZZbruSBHfxiN47tyWc/U7bUzNlmHlvDhg3L63imgVRVVcXsZR3I85BDDsETTz6Jxx5/HI8+9hgefuQRPPTww3jooYfwyKOP+rjHLe3BBx8E3xGefvrpS96maaaZBttuuy3uvucejBgxAo+aXl5P05F6PWI6U3fqybYce+yx/hwuuaKqUAREQAREQAREoA2Bbm3YsTM33XTT+afcK620EjbaaCMwDq1/g+3JN58ws6PMTlX//v1zT6bSmrcYCz7N3mmnnfDSyy9j1EsvZQ177LFHwVUutthiWcvOVXc+6U888QRoJBSsbEpGlrP77rtj5MiROfXffvvtU3J2/upss82Gp595Bs+bbqUOl156aVEbWFlZiVNOOSUn4/TjYOONNy6qHmEKW2WVVTz3dF2ybV99zTVFOybD6JiPjHMOPJbOOOMMvPnWWzjjzDO9l26++ebDjHZ94kMZ7h8atIMGDcLMM8+MBRZcEPSOXX7FFXjL8hxy6KHecxaJdN7l2jmHaaedFnvvvTfeePNN3HDjjVhnnXWwoHkVZzHPHI09evAq7FiaeuqpMXjwYMxjD6P4AOD4E07weS6++GIf15l65sNesiIgAiIgAiLQ2whEumODOQSIT5Svu+468Gn3888/7zuDd919NzjMKdEmepf4pHnkCy/4p+T32BNoPl1mZ4SdlIRcZyw5fOmWW2/FhRddhIEDB3ZGFcky2SFMbnSTlQWt83r9DTfgIuMzXRd4JTqKqTvl33DDDbHLrruWvcp9+vTBUUcfXbZGWr4AKyoqsOOOO3qvHI2zAQMG5FsEpp9hBtAovP+BB7D22mvnnT9shhVWWAF33nUXLjLjjMZl2HwJOe67vcwopOfxf//7X1G9+ok6tBQBERABERABEchOoNsYds45sGO08y674JVXXvFPlLfaemvQeJt64MCsreQT8TnmmAN8j+W444/Hi6NG4aabbgKfpDMta+Y8E2kw8kn3gw89hPXWW6+NoZlnUaHF+aQ9tHAXC9bW1mKLLbYAvWEbbLAB6AHoYpV6dPWzzjorTjZvHY/Lcm5ohRlBRx55JGhglLOeYXWjoXPEEUeA3sSODLNO1MdRB7ym0FBMHZWQSC90yesfPbMcbslRD4WWk8jH6+x555/vPcQcIZGI11IEREAEREAERKDzCXQbw45eh/vvvx9XXXUVOurhcc5hk003xbPPPYeTTj4ZHGZUDNR80n3OueeCHTAajcUoM0wZXfEeThi90mXY6aOH7lrztBaLeXod2m5LgO9pkXvb2PLbokF3wIEHlp9iBWhEw+uwww7D4UccUUDu7FkuuPBC7LzzztmF8kjdfPPNcc2116LWvKV5ZMspuo957U466STwQU5O4V4vIAAiIAIiIAIiUBwCZW/YOecwfPhw/yL/SiuvXJxWt5bCmenYAbvWOjZ8H641Ou8F3ynh0+63334be+21V0nf46OyQ2ebjYuyDc45P/Mf392hx1WdvdLsKs64yKGN9MqUpsbCauH5c9BBB5XEu12YhuFzsS18T+3Y447rlPbQC3bpZZdh9dVXD69UgCTfzeWDMr7rGiBScDQ9xPvtvz8OP/wO+2SEAAAQAElEQVRwlPvxV3AjlVEESklAdYmACIhACAJlb9htv8MO/t2PEG0pWGS99dfHZZdf7icPyLeQmWaaCSfak2m+n5JrSGi+ZYeR5xA2zioZRrYrZDgUkF66W2+9VVOjl3AHcHKL8y+4oIQ1FlaVcw6cOIgPbworobxyccjkoeatC6NVS0sLvvvuO7wwciReeukl/Pjjj2GyeZkrrrwSHRniyfOSw0TDeurGjRuH0aNH4/nnnsPXX32F5uZmr0euH3ruVll11VxiShcBERABESgCARUhAmVt2HG43plnngk+/e3sXbXVVluB3rt86uEEIHw3hU+lu+o9Nw77YshH71LJ8ltXnPRhr733xqBppilVtarHCPBdLL5/aqsZ/x979FGMHTMmY1opI/mpAr6T5QJmfPzzzz9BT3gpdSq0LnrrjjnmGHC2y1xlfP/999jAHigtv9xy2HLLLbH5Zpth6aWWwk477pgrq0/nLL/77refXy/kZ8899/TfoguTd3+rZ8kllsCmm2yCrbfeGhydsPpqq+HDDz7ImZ3X8BNPOEGTqeQkJQEREAEREAER6DiBEIZdxysppAQO3+FscPycQbb8TU1NeNmedl944YXYcostMHHixKT4u++8g0MPOQT87tIvv/ySjM+0wk7ZXmaALLLIIpmS28Vtt912/ltUnA6cedFFf5wmvaqyMrD25559FrPMPHPRAqdp//vvvwPrYwJ50Avz4osvhu48Ml85hc8++wxDZ50VM804Y1EDj9Fc7fzgww9ziWRNn3POOcGOO/dDJkFOob///vvjhx9+yJRcsjgeuwfb+Rn0YILn9pFHHOE/h1EypTpQEY2edYcPz1nCvffei3XXWcdPAjVp0iQ0NjaioaHBX7sefvhhLDpsGJ55+mnEYrHAspxz3sgqxGvHd4F3MAPSORdYPhPefOMNrLjCCqC3/d9///U6Ulfq/P7774OTrtx4440UzRqWXmYZ/xkF57LXl7UQJYqACIiACIiACOQkULaG3eKLLw4Ow8zWgp9++gnbbrMNtrFwyskn45lnngGHNyXy/P7777jhhhuwx+67Y6MNN8TDDz2USMq45KcSTrCny2E8hGuutVaoJ/M3Wv1nnnFGxvqKEcnOcWWWjzNzqNc///yDYgV28KLRaHvVU2I4PJTvAPXp2zclNvPqFZdfjssvuyxzYhfG8jj677//UMwwefJkbGDHYbZmjTej+a4778wmkjWNxzCH2M06dGhGOXbKLzj/fHCZUaCEkRyix8k7gqq88447QEMnm4ETlLfU8fRM8T3BXPV++sknOPqoo5DtQdO3334LXody7SN+T+50u7bwfMtVb2o6Zx/N5VWst2P1+OOPx4dZHjL89ddfOMFkRr34YmrxGdf5oCdXnRkzKlIEREAEREAERCA0gbI07Jxz2Gjj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gAiIgAiIgAiIgAiIQFkRkGFXVrtDyohAzyGgloiACIiACIiACIiACJSOgAy70rFWTSIgAiIgAm0JaEsEREAEREAERKBIBGTYFQmkihEBERABERABEegMAipTBERABEQgDAEZdmEoSUYEREAEREAEREAERKB8CUgzERAByLDTQSACIiACIiACIiACIiACItDjCfT0Bsqw6+l7WO0TAREQAREQAREQAREQARHo8QRk2BVlF6sQERABERABERABERABERABEeg6AjLsuo69au5tBNReERABERABERABERABEegkAjLsOgmsihUBERCBQggojwiIgAiIgAiIgAgUQkCGXSHUlEcEREAEREAEuo6AahYBERABERCBdgS6rWE313QRMKy7QBWWmLWiXcM6EjHjjDNivvnmx1prr4PZZ5+jI0W1yxuNRtHS0uJDLBZrl15oxNxWFMPwmMOStl5oOconAiIgAiIgAiLQEwioDSIgAr2NQLcx7PpWO6w4ZyWe2Lc/vj91arx15FQ+3LVrPzx3wAD8de5AfHTsVDhl/T5YZOYK1FQ6hPmrqKhAnz59sNfe/8ODDz+GH375HW+99xGee/HhB6C+AAAQAElEQVRl3HTrHXj5tTd9HON3231PTDvttKisrAxTtJeh8dbQ0IDJkyejrq4O9fX14DZDalxzc7OXD/NDM7avCa5sBtybUYd/WyJ4LxoP99n2i7bOuM8s/nQz9IaZXI3J618EREAEREAEREAEREAEkgS00qMIlL1hN2RgBEesWYvXDhuAB/fsj+Vmr8RUtZmNtllM9sBVa/DE//rjkb37Ye8VawJlYX/LLrc8LrjoEjz5zPM48ZTTsPSyy1ls8P+pZ5yF9z/+HJdfdS3WXnd4sKCl0FCj8UZDjh46GngWnfGfXrzGxkZv/DU1NYHbGQUtclYLF5vx9pYZb49YWMAMN4vK+D/EYg822adNboSF/5nsVBanfxEQAREQAREQAREQAREQgZ5FoLMMu6JQWsE8dA+YMXfsOrWYdVAEVRUI9devxmGZ2Spx1kZ9wPz04KVmjEQiOOjgQ3DH3fdhi622wVxzz5OanHN9gw03wnU33Ixzz7sQAwcOROofjTIaczTUchl0qfm4TuOPhh0NQhqGjEsNK5nn7WEz1HY1A22orVelJmZZ729py5r8uZaXHrxFbN2i9C8CIiACIiAC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XJ4uGDGjjsZdwjhzziyqdKG0beapqKjwXjoads61z/MHgLvN2zZ9RRRnmXH2hYnkMtA4+f2rludKk9/AjLrXLY+6iwZS/yIgAiIgAiIgAiUloMpEQAQ6l0BZG3apTT9/ZD22uHESNr9hEjY1g+2EEZNxrRlv97zbiItfqAe397m7DptfPxFbmdzxj0/Gj+OneOlSy0pd//6777DvPntih+22wnZbb4Hdd9kRp59yIh64/14fuH7gfvtg26029zK77Lgdbrv1ZtTX5x7ISEONBh4DjTx682i0cbgmA9cZn0jnOvOk6he0fo4Za5uaobaxGXkbmtF2rIWrLdxl4QILR1tgPNM3t/VjTb54k7MHaaV4ERABERABERABERABESiYgDJ2gEC3MezYxnH/RL3XbvS3zbh6dAOOM+Nt//vqcMYz9X77gQ8a8eHPLZic5qFj3lyBHrx33n4Lzz/3LK6/7locdvCBPnD90UcexmuvvoKxY8YgGs1tLKbX5ZwDDbaEMUcDj4GGHePprXPOXGnI7+8XE//CwstmtF1p4WgL/7NwmoWrLTD+A0ufbEH/IiACIiACIiACIiACIiACPZdAtzLsOrQblFkEREAEREAEREAEREAEREAEeigBGXY9dMeqWYURUC4REAEREAEREAEREAER6I4EZNh1x70mnUVABLqSgOoWAREQAREQAREQgbIjIMOu7HaJFBIBERABEej+BNQCERABERABESgtARl2peWt2kRABERABERABEQgTkC/IiACIlBEAjLsighTRYmACIiACIiACIiACIhAMQmoLBEIS0CGXVhSkhMBERABERABERABERABERCB8iPgNZJh5zHoRwREQAREQAREQAREQAREQAS6LwEZdt1335VGc9UiAiIgAiIgAiIgAkEpSAAAEABJREFUAiIgAiJQ9gRk2JX9LpKCIlD+BKShCIiACIiACIiACIhA1xKQYde1/FW7CIiACPQWAmqnCIiACIiACIhAJxKQYdeJcFW0CIiACIiACIhAPgQkKwIiIAIiUCgBGXaFklM+ERABERABERABERCB0hNQjSIgAhkJyLDLiEWRIiACIiACIiACIiACIiAC3ZVAb9Rbhl1v3OtqswiIgAiIgAiIgAiIgAiIQI8iIMMu792pDCIgAiIgAiIgAiIgAiIgAiJQXgRk2JXX/pA2PYWA2iECIiACIiACIiACIiACJSQgw66EsFWVCIiACKQS0LoIiIAIiIAIiIAIFIuADLtikVQ5IiACIiACIlB8AipRBERABERABEIRkGEXCpOEREAEREAEREAERKBcCUgvERABEQBk2OkoEAEREAEREAEREAEREIGeTkDt6/EEZNj1+F2sBoqACIiACIiACIiACIiACPR0AsUw7Ho6I7VPBERABERABERABERABERABMqagAy7st49PUk5tUUEREAEREAEREAEREAERKCzCMiw6yyyKlcERCB/AsohAiIgAiIgAiIgAiJQEAEZdgVhUyYREAEREIGuIqB6RUAEREAEREAE2hOQYdeeiWJEQAREQAREQAS6NwFpLwIiIAK9joAMu163y9VgERABERABERABERABQAxEoGcRkGHXs/anWiMCIiACIiACIiACIiACIlAsAt2oHBl23WhnSVUREAEREAEREAEREAEREAERyERAhl0mKqWJUy0iIAIiIAIiIAIiIAIiIAIiUBQCMuyKglGFiEBnEVC5IiACIiACIiACIiACIpCbgAy73IwkIQIiIALlTUDaiYAIiIAIiIAI9HoCMux6/SEgACIgAiIgAr2BgNooAiIgAiLQswnIsOvZ+1etEwEREAEREAEREIGwBCQnAiLQjQnIsOvGO0+qi4AIiIAIiIAIiIAIiEBpCai2ciUgw65c94z0EgEREAEREAEREAEREAEREIGQBMrKsAups8REQAREQAREQAREQAREQAREQARSCMiwS4Gh1W5BQEqKgAiIgAiIgAiIgAiIgAikEZBhlwZEmyIgAj2BgNogAiIgAiIgAiIgAr2LgAy73rW/1VoREAEREIEEAS1FQAREQAREoAcRkGHXg3ammiICIiACIiACIlBcAipNBERABLoLARl23WVPSU8REAEREAEREAEREIFyJCCdRKAsCMiwK4vdICVEQAREQAREQAREQAREQAR6LoHOb5kMu85nrBpEQAREQAREQAREQAREQAREoFMJyLDrVLylKVy1iIAIiIAIiIAIiIAIiIAI9G4CMux69/5X63sPAbVUBERABERABERABESgBxOQYdeDd66aJgIiIAL5EZC0CIiACIiACIhAdyUgw6677jnpLQIiIAIiIAJdQUB1ioAIiIAIlCUBGXZluVuklAiIgAiIgAiIgAh0XwLSXAREoPQEZNiVnrlqFAEREAEREAEREAEREIHeTkDtLzIBGXZFBqriREAEREAEREAEREAEREAERKDUBHqmYVdqiqpPBERABERABERABERABERABLqQgAy7LoSvqruWgGoXAREQAREQAREQAREQgZ5CQIZdT9mTaocIiEBnEFCZIiACIiACIiACItAtCMiw6xa7SUqKgAiIgAiULwFpJgIiIAIiIAJdT0CGXdfvA2kgAiIgAiIgAiLQ0wmofSIgAiLQyQRk2HUyYBUvAiIgAiIgAiIgAiIgAmEISEYEOkJAhl1H6CmvCIiACIiACIiACIiACIiACJSOQGBNMuwC0ShBBERABERABERABERABERABLoHARl23WM/lUZL1SICIiACIiACIiACIiACItAtCciw65a7TUqLQNcRUM0iIAIiIAIiIAIiIALlR0CGXfntE2kkAiIgAt2dgPQXAREQAREQAREoMQEZdiUGrupEQAREQAREQARIQEEEREAERKCYBGTYFZOmyhIBERABERABERABESgeAZUkAiIQmoAMu9CoJCgCIiACIiACIiACIiACIlBuBKRPnIAMuzgH/YqACIiACIiACIiACIiACIhAtyUgwy7rrlOiCIiACIiACIiACIiACIiACJQ/ARl2AfsoFotBQQxCHQM6VnSu6BjQMaBjQMeAjgEdAzoGSnYMBHTfe320DLvWQyC9A98arYUIiIAIFIWAChEBERABERABESgOAfXbM3PslYZd+sHA7XQ8kUgEiVBZWYmqqioFMdAxoGNAx4COgc48BlS2ji8dAzoGdAwEHAMVFRXJvnl6v519+fSQLtMbtiO9oZGJNiZ2eGKbS+ccnHP+JOrXrx+mmmoqDBo0CFNPPXUyDBgwAP3791cQAx0DOgZ0DOgY0DGgY6CLjwH1R9Qn653HAPvoif45++rc7tOnD6qrq31f3jnHrn0yZOr3JxN76EqvMOxSd6xzzlv7tbW16Nu3rzfkBg4c6C/SPDD4NAD6EwEREAEREAEREAEREIHuSqAX6M0+O/vzdMywL09Dj84YxnGknXNxQy/VDujpWHqsYZfYiVwmdiJ3Mnc6rX1a+DU1Nd7IS6RrKQIiIAIiIAIiIAIiIAIi0P0I8BUqvj7FPj69uuzzcz3REtoEiZCI62nLfA27btF+7jQq6tyUIZa05LmTudOZpiACIiACIiACIiACIiACItAzCbDPT+8dbQAuafQ5N8WL1xNb3WMMOxpzicAdRfcsDTm6ZznE0rn4jmSaQmcTUPkiIAIiIAIiIAIiIAIi0PUEnHOg5452AZcJjRJ2A5eJuO6+7BGGXeoOoUHHnUb3a6pl3t13lPQXgR5HQA0SAREQAREQAREQgRIRcM6Br2ElPHi0GRJVp9oSibjuuIx0R6VTdU7dEdxZtMbpbk2V0boIiIAIiED3JCCtRUAEREAERKCYBJyb4sGj7ZAoO9WmSMR1t2W3NewIn4HAOYaWQy45yyXXGacgAiIgAiIgAiLQKwiokSIgAiKQNwHaDLQdaEM4F39li7YFQ96FlUmGbmnYpQLncEt66fgeXZkwlRoiIAIiIAIiIAIiIAJlRUDKiEBmArQhaEv0BO9dtzPsUo067gB+ryJ1jGzmXaZYERABERABERABERABERABEWhPgI4ieu9qamqSiak2RzKyzFe6jWFHuAwJnjTqOElKYltLERABERABERABERABERABESiUAG0L2hiJ/LQ9GBLb5b7sFoZdOlACp1XtXHw8bLlDBiAVRUAEREAEREAEREAEREAEypiAcw60MWhrpKqZboukppXTetkbdukgOeMlgZcTROkiAsUhoFJEQAREQAREQAREQAS6mgBtDdocqXqk2ySpaeWyXtaGXTpAWs90kZYLPOkhAiIgAiUnoApFQAREQAREQAQ6nQBtDtoeqRWl2yapaeWwXtaGXSoggiXg1Diti4AIiIAIiIAItCegGBEQAREQgY4ToO1BG6TjJZWmhLI17FItYs56SbDO6Z260hwWqkUEREAEREAERKCHE1DzREAEchBwzoE2CG2RhGiqjZKIK5dlWRp2qcCcc0j9cGC5gJMeIiACIiACIiACIiACItCzCah1zrW3RVJtlXIiVHaGXToovryYaiWXEzzpIgIiIAIiIAIiIAIiIAIi0LMJ0BbpDpOpdJlhF2b3E2J1dXUYUcmIgAiIgAiIgAiIgAiIgAiIQKcQoGFXWVnZKWUXq9CyMuxSvXUE179//2K1U+V0TwLSWgREQAREQAREQAREQATKggBtk0hkivmUaruUg4JTNOtibdLB0FOXCq6L1VP1IiACZUtAiomACIiACIiACIhA5xNwzoE2SmpN6TZMalqp1yOlrjBMfc65dtDC5JOMCIiACIiACGQkoEgREAEREAER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6Fw2DXQy2QhkjcuYCHGufHhPOumkwd3BaNg40XLbbbe1mWeeOTXBaNcQ3k4//XQbPHiwsbrjtttu6/IzySSTGId+MTnYZVl5+e9//2uPPfZY5a37//PPP9/dogVfzrlUwY4oqc0DhfxGgp3lByuLsqyFD83d+eefb2y4fe2114JkODd8P49zLvgO/9BQMCMUtkOtH/5u13ca+bS4I4ykucutfgg45zIb9PqF1lpO1CeWRXN6Le+tjU2x0LPatawDpYqFJuo0BJxzac5yKwEC1BfnkvPJOacl/9a8P/KjeaElh+TccM0Td80xFmM11aBBg4y93UkH1NFX0G989tlnwaEp3PXI/XSM0d55551ugSHUob2bbrrputmj2TvyyCPt66+/7mZPX/TUU091s2vVR9a4LMu9VfEua7gS7ArkTNagvywNSFySEO7efffdwIkZrjXWWMMOO+ww42j3wDLyEz0pafbZZ7dxxx03QtV+n1kNhHMJHXL7JbXlMQZr54QnGXHqqacGp21yzxCdL50t9u1gstq1H+17bAAAEABJREFULPd2SGNZ4pglJDun+lSWvEqKh3PZeeRcNk0Sf9l3R4B+prtN969Wt09cF7XssssG19mcffbZwbgr675G+gc0c9dcc41tt912wT676JgsnEqEOjR4UY3/l19+GezTgx/LNcN+4B3+buV72fOwldhUE7YEuwKoOZfeGGcVzgJBNZSUw1AGDhwYXN2w2WabGUJeNED22oXtxhxzTJtmmmnCVm35ntXIZ7m3ZaJbFGnn0usL0eo0vElT1LDc5Y477jCWQvv3J598MkpW2m/n0vOxXdq90gIcilgWlr2hvoTgaMtX59LrC4lyLpsGOplsBLLqRFadyg6heoqllloq2ArDHaVcZzPRRBOlMnv//feDlVV77LFHIJBdcsklxgEnUW1bmAlC3T/+8Q/j0JWwPXvnDj30UHviiSdix27XX399mLyl71l56JzqS5EMkmCXE61OmklF88habZLOO8IdVyE4N7LyRDfVssGXo3fx0+7GuZHpjEsLmMTZy64YAlkdqnPp+VAstPJS0zGHY8fyGvY8hO3K/O5cdj5ldcxlTl8L4hYbZFZ9ifUky1IikFUfstxLmagSRiprXNbKKHP4ye67724cWpdUtxHYEOauvvpqQzjbddddA0HsvffeC040Z7lkWhq4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QAgIASEgBBqAgAS7BoAqlkJACNSCgPwKASEgBISAEBACQkAIFEVAgl1RxEQvBISAEBACrUdAMRACQkAICAEhIAS6ISDBrhsc+hACQkAICAEhIAQ6BQGlQwgIASHQmxCQYNebcltpFQJCQAgIASEgBISAEAgjoHch0DEISLDrmKxUF766iQAAEABJREFUQoSAEBACQkAICAEhIASEgBCoPwLtwVGCXXvkk2IpBISAEBACQkAICAEhIASEgBBIRECCXSI0zXFQKEJACAgBISAEhIAQEAJCQAgIgVoRkGBXK4LyLwQaj4BCEAJCQAgIASEgBISAEBACqQhIsEuFR45CQAgIgXZBQPEUAkJACAgBISAEejMCEux6c+4r7UJACAgBIdC7EFBqhYAQEAJCoGMRkGDXsVmrhAkBISAEhIAQEAJCoDgC8iEEhEB7IiDBrj3zTbEWAkJACAgBISAEhIAQEAKtQkDhlhABCXYlzBRFSQgIASEgBISAEBACQkAICAEhUASB8gl2RWIvWiEgBISAEBACQkAICAEhIASEgBAwCXYqBG2JgCItBISAEBACQkAICAEhIASEwEgEJNiNxEJvQkAIdBYCSo0QEAJCQAgIASEgBHoNAhLsek1WK6FCQAgIASHQEwHZCAEhIASEgBDoDAQk2HVGPjY9FTPNNJPNMcccgRlzzDG7hT/uuOPajjvuaHvssYdNOeWU3dz0IQR6KwLTTTddUF9mnnlmG2WUUXorDEq3EGg6As45m2qqqYL6R79VVf1reqwVoBBoLQKM7agvmMkmm6y1kVHouRGQYJcbqnISjjPOOLbaaqvZAQccYOdfcIEdffTRtsUWW9iMM85of/pT47J3u+22szPOOCMwUeFt2WWXtc0228w22GADW3vttcsJnGLVdghMNNFENtdcc3WZMcYYw/L8jTrqqF1+8E9nlcdfvWm23377oL7sv//+1qo41DtN4tdZCEwwwQTd6gr1JclMMcUUbZP4//u//7Mtt9wyqH/0W3369GmbuCui7YEAdWeNNdawAw880M4991w78sgjg3HQNNNM0x4JiIklcae+YDbccMOGjiljgpdVlQj8qUp/8tZiBOiY6KiuuuoqO+igg4wGpW9l0ItQtcMOO9gVV1xhRx11lE077bQNiSkznqOPPrphogLkV199Zb/++qv973//M96jEZh66qlt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QAgIASEgBIRAbgScK7cskTchHSHYkVjnnLR3ACEjBISAEBACQkAICAEhIASEQCYCznWW/NAxgp3POec6K4N8uhrzFFchIASEgBAQAkJACAgBIdC7EHCuM+WFjhPsfLF0rjMzzKdPTyHQNAQUkBAQAkJACAgBISAEOgAB5zpbPuhYwc6XPeeGZ6BzzlvpKQSEgBAQAnVGQOyEgBAQAkJACJQRAedcsF3LOVfG6NU1Th0v2IXRcs4FGRu207sQEAJCQAgIASHQFAQUiBAQAkKgaQg41/vG/b1KsPMlybnhGe3cyKd301MICAEhIASEgBAQAkKgVQgoXCFQHAHnRo7pnRv+XpxL+/volYJdXLY5N7wQOOfinGUnBISAEBACQkAICAEhIASEQBkQqMTBOResxHPOVb70DwIS7EAhYpxzXQXFOb07JwycEwbOCQPnhIFzwsA5YeCcMHBOGDgnDJwTBs61BoPI8F2fFQQk2FVACP3rVQgIASEgBISAEBACQkAICAEh0HYISLBruyxThFuPgGIgBISAEBACQkAICAEhIATKhYAEu3Llh2IjBIRApyCgdAgBISAEhIAQEAJCoIkISLBrItgKSggIASEgBIRAGAG9CwEhIASEgBCoFwIS7OqFpPgIASEgBISAEBACQqD+CIijEBACQiAXAhLscsEkIiEgBISAEBACQkAICAEhUFYEFC8hYCbBTqVACAgBISAEhIAQEAJCQAgIASHQ5ghkCnZtnj5FXwgIASEgBISAEBACQkAICAEh0PEISLDr+CxuSgIViBAQAkJACAgBISAEhIAQEAItRECCXQvBV9BCoHchoNQKASEgBISAEBACQkAINAoBCXaNQlZ8hYAQEAJCoDgC8iEEhIAQEAJCQAhUhYAEu6pgkychIASEgBAQAkKgVQgoXCEgBISAEOiJgAS7npjIRggIASEgBISAEBACQqC9EVDshUCvQ0CCXa/LciVYCAgBISAEhIAQEAJCQAgIAbPOwkCCXWflp1IjBISAEBACQkAICAEhIASEQC9EQIJdgzJdbIWAEBACQkAICAEhIASEgBAQAs1CQIJds5BWOEKgJwKyEQJCQAgIASEgBISAEBACdUFAgl1dYBQTISAEhECjEBBfISAEhIAQEAJCQAhkIyDBLhsjUQgBISAEhIAQKDcCip0QEAJCQAj0egQk2PX6IiAAhIAQEAJCQAgIgd6AgNIoBIRAZyMgwa6z81epEwJCQAgIASEgBISAEBACeREQXRsjIMGujTNPURcCQkAICAEhIASEgBAQAkJACIBA8wQ7QpMRAkJACAgBISAEhIAQEAJCQAgIgbojIMGu7pCKYS0IyK8QEAJCQAgIASEgBISAEBACxRGQYFccM/kQAkKgtQgodCEgBISAEBACQkAICIEIAhLsIoDoUwgIASEgBDoBAaVBCAgBISAEhEDvQkCCXe/Kb6VWCAgBISAEhIAQ8AjoKQSEgBDoIAQk2HVQZiopQkAICAEhIASEgBAQAvVFQNyEQLsgIMGuXXJK8RQCQkAICAEhIASEgBAQAkKgjAiUIk4S7EqRDYqEEBACQkAICAEhIASEgBAQAkKgegQk2FWPXXN8KhQhIASEgBAQAkJACAgBISAEhEAGAhLsMgCSsxBoBwQURyEgBISAEBACQkAICIHejYAEu96d/0q9EBACvQcBpVQICAEhIASEgBDoYAQk2HVw5ippQkAICAEhIASKISBqISAEhIAQaFcEJNi1a84p3kJACAgBISAEhIAQaAUCClMICIFSIiDBrpTZokgJASEgBISAEBACQkAICIH2RUAxbz4CpRLsRhllFJthhhls5plnTjQzzjijjTrqqFUjhd80/t4NuqoDKZHH//u//+uB5Zxzzmmbb765bb/99jbXXHMF7lNNNZU550oUc0VFCAgBISAEhIAQEAJCQAgIgbwIlEqwG3/88e2iiy+2+x94INHcc++9tsACC+RNXw+6fv36JfIOhzvxxBP38NuOFn379u2R3rvvvttOPOkkO/qYY+yuyjvpPu+88+wvf/lLOyZRcRYCQkAICAEhIASEgBAQAr0egVIJds45G3300e1vf/tbohl33HFt5QEDqsq4P//5z7byyisn8g6H61z7a6/+9Kc/2RZbbNEjvWNU8AUL55yNMcYYgfuCCy0UaO+qAraMnkocJ8rwlltuaUlmjjnmKHHsFTUhIASEgBAQAkJACAiBMiJQKsEuL0CbbLKJ9enTJy95Fx2C2/w1aPu6GLXJC1rHVVdbLXdswTU3sQirRmCSSSaxk04+OdH0X3LJqnnLYzEERC0EhIAQEAJCQAgIgU5BoC0FOwS0FVZYoXAeTD/99DbXnHMW9teuHuaZZ55AA5o3/pttvrkhdOSlF50QEAJCoBcgoCQKASEgBISAEGgLBNpSsAPZgZttZqONNhqvuc1aa69to40+em76diZkGeaSFc1P0X1zCy64YDsnW3EXAkJACAgBIdACBBSkEBACQqD1CLStYDfttNPa1FNPnRvB8cYbz7beaqvc9O1OiEA3//zzF07GKqusokNUCqMmD0JACAgBISAEhIAQyEBAzkKgwQi0rWA34YQT2kILLZQbnqWWWspGLajhy828hIQcwDFHwrLTr7/+OjHGM88yS3CYSiJBTgcOCOFahcUWW8wGDBhgq622mvXv39/mnntum3zyyWu+WoHDXxDu55tvPltmmWVs9dVXN5bnUiZmm202G3PMMXPGNJ2M6yJYnjr77LMbZYh0LL744jbrrLPaRBNNlO65Ba5jjz22kfeLLLKIrbTSSgEuaG5ZljvllFPWjHsLkqQghYAQEAJCQAgIASHQaxCoJaFtK9gx4GZA71z26ZV//etfbaONNqoap7XXXttuve02uy3BXHXVVcb9emkBsGz0+BNOSOQB7zXWWCONRW4355z9/e9/NzCK83TIkCHGlQdxbghjCDFxbml2zrngQBuEuDPPPNNefOkle/Sxx+z2O+6wKyv4XHb55XbLrbfaQw8/bK++9prdeOONQRwRjhDS0nh7N9LDPsmdd97ZHnroIXv+hRfsX/ffbzf+85926WWX2bXXXWd333OPPfHkk/ZaJYyjjz7aECw5adXzyPN0zhmCKSeo3nzzzfb6G2/Y4088YTdV3knHbbffbk8+9ZS99fbbdnklXQh8CFQsf43jzzUeXCdBHmNOPfXUOLIuuy232KJHOVluueW63KMv7DmlLpx44okBJo89/rjdeddddvU11wS43HzLLfZgBa+XX3nF7rzzzuA0ToTVvLhHw9O3EBACQkAICAEhIASEQPkQaFvBDiiXrmhq8izHRHiYZppp8FKVefXVV23hhRe2xZdYItYsu+yygZYkjTlLQdFYJfHA/oWKoJLGI68bp2Fu2EOQHen7norw86/77htpEXljL2LEKvVz1FFHtfXWWy8QJC6+5BLbuCJUjjXWWKl+yLszKgIggt9OO+0UXLuQ5oF8PvzwwwNB8Ygjj7Q555orjdzGqmiudthxx0AYI05o2ZIErzAj0rLpppsGgjwC6WIV7ZxzyZMHnDp63fXX20033WRrrrWWxQlL2KE9JY8x82Us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PcB0QnT4Lr/iCtx73324/Y478Kf998fQoUNLGrnCiiuWlEnKtiY89C9/aeLY0VFk2bvuvhsH/fnPoP7E+Zt1ttmw4047hbawXbwYMKveRVFJx5QQAkKgVyPQb8CMWGWzazsNgxmH1mG1ZfvjtxtMU/U6Fl31cMy3xG5V19ucwm222aZNtmDfffctOna/3333NpWljUhoM3fGzGI7wJ0dCZ/hJptu2lyTw2TlX/7612Ldxx57LGaeeeZmyyizVyOgzguBqiAgx66VML7y5whrzNtK4RoU23k54Owtau+hKlxB46rdoYceCq6idRZ0M844Iy644AJsscUWmH766StWw0elc7b34osvBlcdKwoqQwgIASHQTgTW+N29GDT9Au0s3XKxY/ebLghxxW6JBaq/vWSBFffH8CV2CXXoIASEgBAQAl2FQMv1yLFrGSMctFqEwf3iWbtWiLdZpG7pP6BumX1R54aybvGd21y+tQU2XMiwzBytla6u3C0334wDfFWOdOABB+Dkk0/GY48+WqzEzLC5O12z+cpZwvz0k09wp6/mZemTUaMSkRDee++9TeSou6GhIeRPO+20OPe887D4EkuENA9ffP45brjhBhx6yCH480EH4eqrr8Zrr73GrEDTDh2KK668MmwVDQwdhIAQEAIdRMBydVhug3ORq+/TQU2Vi2+30SD0qW+0VwvP2xf1dZXl25djWGj5A1FfP6h9xTtQatKkSXjiiSeajPlpO/HU008jGf+ff+65srLffvttSSvS5ZP4m2++WSKjhBAQAkKg1hGQY9fCGZrGJzt3Xq7RSLYg3o5sQ918G6F+lcNRv8Y/Ub/m/6GzPu474dwtmmrvCs7jjz+OW265JdDN7uSddeaZ2HPPPfHvaxu3I0033XRYdtlli83hfW/7uzOYpefcUBeFPPK3v/4VWRneLzd+/PiwHeZ3226LVVdtvI+FjuHuu+8Olrvuuutw44034sgjjsBuu+6Khx56yDXGX67yUU733MV46CgEhEDHEJhu5hGYftblO6akmdJzzVqPXy3Tv0RigE9KbrpW9bdkWs7wq61vKamrKxLjxo3DGaef3mTMT9uAs886CxMnTgzNufTSS8vKfvjBByE/OaTLJ3HarCiqvZ0uSZsVCgEhIASyCMixyyKSSi8+C/DawcCQUjuZkqhO1GZpvEEbUeNTLG3YEui3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EBACQqC3INCT+ynHriefXfVNCAgBISAEhIAQEAJCQAgIgV6BgBy7qp1mKRICQkAICAEhIASEgBAQAkJACEwdBOTYTR3cVWtvRUD9FgJCQAgIASEgBISAEBACnYCAHLtOAFUqhYAQEAIdQUBlhYAQEAJCQAgIASHQVgTk2LUVMckLASEgBISAEJj6CKgFQkAICAEhIARKEJBjVwKHEkJACAgBISAEhIAQ6CkIqB9CQAj0JgTk2PWms62+CgEhIASEgBAQAkJACAiBNAKK9xgE5Nj1mFOpjggBISAEhIAQEAJCQAgIASHQWxHoTMeut2KqfgsBISAEhIAQEAJCQAgIASEgBLoUATl2XQq3KmuKgDhCQAgIASEgBISAEBACQkAIdBQBOXYdRVDlhYAQ6HwEVIMQEAJCQAgIASEgBIRAswjIsWsWHmUKASEgBIRAd0FA7RQCQkAICAEh0JsRkGPXm8+++i4EhIAQEAJCoHchoN4KASEgBHosAnLseuypVceEgBAQAkJACAgBISAE2o6ASgiB7omAHLvued7UaiEgBISAEBACQkAICAEhIASmFgI1WK8cuxo8KWqSEBACQkAICAEhIASEgBAQAkKgLQjIsWsLWl0jq1qEgBAQAkJACAgBISAEhIAQEAJtQkCOXZvgkrAQqBUE1A4hIASEgBAQAkJACAgBIdCIgBy7RiwUEwJCQAj0LATUGyEgBISAEBACQqDXICDHrtecanVUCAgBISAEhEBTBMQRAkJACAiBnoGAHLuecR7VCyEgBISAEBACQkAIdBYC0isEhEA3QECOXTc4SWqiEBACQkAICAEhIASEgBCobQTUuqmNgBy7Fs5Av379MOuss2K22WYroUGDBrVQsnXZuVwOs88+O9Zaay1sv/32OOigg/D73/8eG220ERZaaCEMGDCgdYpSUmaG6aefHssvvzy22mor/HHfffGHP/wBm2++OZZZZhkMHToUZpYq0XLUzDDttNNi6aWXDnqob7/99gv6V1xxRcwwwwxt1sla+/fvjwUXXBAbbrhh6PfBBx+M7XfYAWuvvTbmmGMO1NfXU6xNVFdXFzBdY401QEwPOOCAoJt1sK72YEqdM888M1ZffXX87ne/w/77748999wTm2yyCRZffHFMM800bWpjVpjnhL+xueaaK2BMnEnkpYm/xWHDhmHIkCFgm7J6kjTz0+XaG2/ud25m4Xe27LLLYuONNw4Y8/ztvvvu4Tey5JJLht8Mf+NJuxQKgd6MQN++fTHPPPNg/fXXx84774w/+3i30047Yb311sPw4cPRp0+fqsMz3XTTYaWVVsKWW26Jfd0W0B4wvvwKK4DjTnsqHDhwIBZbbDH85je/wR577IEDDzwQ2267LdZcc03MMssszY5Nlepj3zn+rbPuuiAmHLd32WUX/HqDDTDvvPOCtrhS2Up8jpEc+2hft9tuu2BfOT7RFiyyyCLtsq+si5iu4PgRxwTTLbbYAuQRU7O22VfqJKZsU4IpbQzbTJvTXkypl8TfHXUQi7YS7Q11kKplVwYPHkx1gfr7NUC2TWwrz10QqHDg74H2MFu2Pfa9QhViC4FuiUCuO7R6arWRhvb000/Hdddd14TWWWedDjeLRuyYY47Bv13/lVddhZNOPhkHH3IIjj3uOFx08cW44cYbcdbZZ2PVVVdttdPEwY6O4VVXXx30nnnWWTj88MNxxJFH4pxzz8X1N9yASy+7DDQYrb3gpsH97W9/i8u83I3eJuqhvr8ddhio/9///jeu9vro6KQH7OYAYt282Dj//PNDmy6+5JLQ74P+/GecdNJJYPuJ+9FHHx0uhJrTlc6jk3yc48c2UQcxPfQvfwm6WQcxPePMM8OFTrpcc3Ea8T97u6659tqA6amnnYa//PWvOPof/8D5F1wQ2n/55ZeHi7OWjFGlenZwZ5b9ZfvuvOsuJERemvhbYTv4eznNf5vLLbdcWZVbb711k99sWk9r47yoKlcBndyDfBKCGLPNF1x4YcCY5++YY48Nv7Xrrr8ebOfee+8NXrSU0yOeEOgtCCyxxBJhbLvBx+DLfLz45//9Hziu/N+//oXLr7gC1/v/y8mnnIJFF120KpBwsmnXXXcNY+mNN90UbMlhbgtoD2hXWB//fzn2ULY1lXJ8W9OdN9oC/t9feNFF+IfbsEMOPRSnnHoqODZxjPqLj7kzzTRTa1QGGTq7/+d4hDHjyitBTDhun/DPf+LSSy8FMeN4x8miUKAVB9oC9pXtufqaa0BsaV85PtEWJLZwtdVWa7UjyokuYkp7xzGUOCaYnn3OOcFmX+W2nJjSYWlFM4MIMb3AbQn7mWBKG8M2s+3Xuo09/IgjQFsUCrTxwGsZjtFsc1vpSL92SKqj897W8uXkOXGd6OT/RVbm9DPOaLGvdPaJdbZsW34jSRsUCoGehIAcuzJnk7NbnCXjYLrpZpth/gUWwHzzz19CHODLFG01i0aHTs1uvjo333zzgY5OtvCMM84YVrKucEPHWTyz5mcB2SY6ijRcI0aMKDsbyQtsrrDR4eGA3ZJBpzwvPujMrOizvgN8pjbbzn4+47bkUkvhKHfCaORb0sm+cgb1QncG1vOZ60oXAPP4LC3xYf8X8HOQrTedNrOwwkdHa2ef5eX54kVIWoZxzj4Sy5tvuSWstpWToVxCPE+8CDjAZ6Q5m5rw0yFnaFdx5/vc884Ls+J0hNP5rYlTB9s855xzloiTlybisJjPlCersbfdfjsO8cmA7EXEUJ+lT5drb3xaXxlMN4jnjuflEnfEudrA31m27kSeK7x0PDkJQAxpiM2a/w0nZRUKgZ6EACex6PRsvc02mG322ct2bQ7/3+eEDC/suQvArP3/K7QFdASOP+EEcOWf/7fZSjkJyB0cdDA5IcN0Viad5u4JXpBznPuVO0Mcs9L5SZy7Ivbdb7/grM4999wJu2zIdtGRpfOyra+oVZKfdbbZsJnbYtrkVVZZpUVHjGPNtT4Rt/c++2B+t93lKucuE9p59mddXzFtyRZwJYiYHnf88Rix9NKg3cvq5di/zLLL4l8nnoi/+uRfS7aQ8lz14wTY2j5ZPP0MM2RVhr5y9w4nyGgLuZPFrG2/DdZDbNtjB2b2FdikUWxfe3RkywxO2ZV+/fqVXFtRln1s6XywT/P6tRPl08Trt6S9CoVAb0RAjl3mrPNCnis+vBDlQJjJrkqSRocD9FLufLVGIQ3K8W5M1l133YriNCD/8BWkHXfaqaJMNoNO05/+9KcsuyT9xz/+EXvsuWcJr7kEtyme5itavKivJPfrX/86zO7O4I5rJZk0n44vZzOHDx+eZpfEKcNVTl6olGQ0k+AFTXMrr3RYTvTVQ26vaUZNMYtOMOW5YtqSUSoWqkKEW6s4Q1wFVS2qWNkvqjhbvfQyy7QomxbgtljObvM8pfldH1eNQqBrEaBjxRUIOhKtqXmeeeYJOzZYrjXyWRle2B7tk2zclZHNK5fmWMXtlFwx45hXToYOGPVxBam5sT1dlisn3NHRnPzCCy8MOlbNje1pnVyx4o4R7mJJ89Nx7iagveCEbJpfKc7bFk7xldLNN9+84s4YOspcMeT2WTOrpKqEv9POO4cdOMS3JCOVoL3kpGlzMilxcNs729ra31K6rOJCQAj0DgTk2KXO81K+6nSLr+TssOOOHb5nKqW2JMpZJu7Jz67+5PN5fPzxxzj3nHPw6COPYPLkySXlZhw2DHQ2abRKMgoJOh9bbLllIRUHURRh4sSJuPaaa3D9dddh/LhxIC/ORbifYz937DhjmvDSIY3IgQcd1GTl76cffwz6rrziCowZM6ZEJ8vzHgleyDOeJe6d//tRR4ErZ+k89vfxxx/H6e4UvvP22yAe6fyF/ALg0EMPDW1O85M4DS4vJJI0Q+r48MMPccH55+OhBx/ElClTyC4SLxKOOOKIsufazMB7MbhFhhc1SSHiN3LkSFx80UW45+67m5wnXlTx/hDu/U/KtDdsaGjAzz/9VKQJEyZg0qRJTfBmnbxAKGmn/57Y3yxRZ7n2kJ+VZTrvv6FEnjP2f/bfw/DhwxNWMWR5/taSNjJdzCxEuLrHSZN0OwtZCoRAbSFQpdbQITj11FORXYnn/8cLL7yAM884A2+8/nqT8Y7b9I/8+9/Ljk0tNY336223/fbguJCW/fabb3D1VfUMglQAABAASURBVFfh376S9aOP4ek8/m9v4fajksPECU9utWd/0uU4Rjz4wAM479xz8f7775eMTWYGrthz8tCsqTNkZthrr73AXQhpnRy3icmFF1yAp/73PxCrdD53ePAe73LjCHm8z3fRxRZLFwntevfdd3H2WWfh4YceajJu0xbwnj7er1VSsJDgds31fVWvkCwGP/n4fI3b12uuvhrfffttkc8InWT271e/+hWTTYgrVbvvsUcTm0ZM77/vvmBjPv7ooya/Da6WckukWVNMm1TSAoPYsr7miOcjUcN4OVnqSWTSIfnl5CO3T2k5xYWAEKgeArnqqer+mrjFg9th0j156623kDWC6fy2xunQcdtHthzv0dp0k03AWdPddtsNNDK8SE7LcVaPDwOh8UrzeV8bt4jQUKT5vHBYZ+21w5YQbtfjzd0ffPBBWiTETz755PAwjpAoHHiTNO9HKCSLwejPPsOO7vhSH50iGrsnn3yymM8IDRpX+hgynabfbLxxeBhNmjd27FgcdOCB2G3XXcGLID7whfdVpGUYX8v7wm2kjKeJs768KEnzaEwuveQSbPyb34Crnbu67kMOPriJc8ctHAd63cQ2XZ46uQU1zWP8Pje4W26xBbjldZ999sGOO+yAzz//nFlFGu4z7rwIKjLaGbnnnnvC/TZ0vEmLLbooNvDVzjvvuCNcqKTV8kIm7Uzedddd2MtXWrN0/HHHpYuF+LhffsFf3GnOyjL9yMMPBxn+5g477DBwO25gpA5vvvkm6PCtucYaWGbppUMb/+DYvPfeeympOLra6qtj0003jRM6CoEejsAm/lvn1uVsN0844QRsv9124NjLrXjHHXtsE2eD//O0SdmyzaXpoOzt/3tZmXffeQe8T5r3nHGL4FbuxL3l/7dpOU46VtptwImjbD++/vpr7LzTTmEC7J///Ce23mor3OFjU1on41y54qQp42laa621sKWXSfM4bp915plhmzwngejAHPOPf2D8+PFpMXAcoS0sYXqCjuTGbkc9WvK95eabsc3WW+PEE08M7eXY9t1335XIzDX33GG7ZwnTExz7uGslu/XylZdfBm323/76V3BsZHs4OetFSr58yNjQoUNLeGaGv7vjnnVqv3XncJ+99wZXUGlj+HAutr2ksCe41ZXXEh7t0Je/O2LRHNEZTir5z623lrUrxx5zDH7++edErBge9re/lZV/xCevi0KKCAEhUFUE5NhVgJMzTVf77CaNwUe+6lNBrM3sNddcMzxBMl3w9ddewynuXP3www+BzdUrXrxf6StigVE4mBl4L1d2JpYra9lBngbynLPPxkhfXSoUxxtvvBFWxJJ0Ei7iDgP38Cdphpwx5oUF42misX355ZeLrE8//TTozDq/iy+xRLi3oyhYiHA2mRcQhWQIbvVV0ttvvz2sLpLBWdATjj8e6XrIp7NZbkaZFx28oKFMQp+5A8r7wLiiSB5X2m51o0TDxHSa+ATOrOElr2+/fmmxEKcB4wUNE5y9fOqpp3CzXzQwnaZdd9ut3U+cS+tJx7kiRmfpbD+vX3/1VTorxNOz6Zw9/+9//4ssPfvss0E2fZjkq8NcLc3KMj1q1KggSqeRW3dDInXg+f/TfvuBK92M07izjXRK9/bZeJ7LlHiI/mn//cHJiJDQQQj0YARW89Wa7Hh337334pKLL8a4ceNCzxnyYSSPPfZYSCcH/j9zvEzSrQnn8UmlRRdZpIkoV7H4f8lxkMTVKzpjHFPSwnSY+L+e5tHecBeCWekK0R0+Zj/xxBPFFTU6Skccfji4oyNdnrcJcDxN8ziRxnvG6DSl+bQjnNSjDSSfYywfhPW2T7AynSbuNuFtCmne6j65RDuR5o38+OPgeH3//feBTd0P+Cpj1hZw1ZL38ZmV9pO2kTtiQuHCgZORnITljhCyiCknuA495BAmS2hhPx+0p2kmVx15L3iax/hdd94Jto36mCYeZ555JqMlxPGT9zuWMNuReOaZZ5rYCI77aXr66aeLmivZFcpwN0lRsBDhpG9aVxL/yFciCyK9IVAfhUCXIpDr0tq6QWU0JByg99t3X/zDZwq5apYMsh1tPg3k5r7ak9XzkjtKNO5pPuu87/77i8Y/yeNN9eltjDSMfBhIkp+EdGheeumlJFkMH330UXzjM61Fhkd44cGVMLNGg0ZnMbuPn87Sgw8+6CVKvxzsOdNYygXYV7NGndyOlJ2BnuAzsbygYX/T5emY0tlI8xjnPV5mjTp5/wZnopmXphdfeAFffvllmhW2tFx55ZUlPCaIJ9vGOIkGfokll2xyvwUdODovlEmI7eZWJP5uEh5DXrhkLwbIrwZx9nripEklqj795BOUW40tEepAgjPhxCWr4irHs1K9/F2cduqp2SLBqeN9LU0yxBACPQgB7ljgQ47SXeKE4b2+6p8dL8jnxXGWv76v0PMiPq2jufjKK6+M/plX5Dz//PPgzpNsOfKyk5a0JxtssEGJKP/3s/dD0y7yIp3jX1qYjggnedI8xjl5yDAhbsnnzoYknYSXXXopkgnOhMe66Owl6SSk45u9D37pESOS7GJ4rzvSHDOLjELk4YcfbmJfF1t88bBLoiASgnLOHm0hHeUgkDpw4uz1119PcRCe7rjc8suX8PgkSGJdwvQEJzj5W/Bo8TvKJ9duv+22YjqJcJKXGCRphUJACHRnBKrXdjl2GSz56Nxdd9kFd/rMWXY2MyPa5iRnU/nEsGzBl90Byw7mlOHFOrc+Mp4QjTydsCTN2Uk+kTJJJ+Fj7sBlDSTzuKLCWVbGEzIzcCtf2tDwfjWzRgeKsnSWaGQZTxON+Zu+GpjmMc6HpLB9jJN4r0G6DvJ+/Omnig4JVzKz54APFOATs1iWNHz4cGS3yJBPB7Qcpq/56ugXma2T000/PbjCyHIkOjALL7QQoyX0XJnVLgpw+032Aod8zqialWJIfkeJq7NZp5szo+X629G6WJ5OKh3q7LljHp3d7MUo+QnxIo+zs3SIE+IqXnaFNZFXKAR6CgIcQ/k0x3R/uGpUbvWJMq+9+mq4h5bxhPhkZOpJ0i2F5e5t5v9fubGBtuDbzHZE6t9tt91KJrW4y4T8NHHVi+NempfEOcYm8SSkzUqPH1zBStuGRC5rmxI+bytI4klIp4YTnUmauy7o7CTpJHz77beTaElIh6mcw0c7lQhyRbDcyhrHsHL2lXaA94gn5ZOQznESJw68Zy9Jp0NOKqfTjFMnbwFgPE0zDRsWnMY0T3EhIASEgBy71G+A28e4J/yLL75IcasXzV6MUzMHbV7wMp4lGp0ffvwxyw4v306YnBXmSmCSTsIXX3wRSTwbllth4WPtzRqdEK5iZctl7yVL8tmH7LZJ5rFdNL6Mk9IOGdMkOoo0koxnieeB93+l+XQyuI0l4XHFjoYySSdhpYsOOiHZ/psZZnDnLinLdpd7JPknviqWyKRDOrbl6uP9mnQS07JtiXNLFC9cEuJsPJ+AyddKcHsTdRF7OpxnnHEGk51CZgZeNGWV8yEE33zzTZZdkiY2q6+2GlZeaaUirbfuunjllVdK5JQQAj0NgXIP4uDDkCqNd9zizZ0KWRzS4102L53mOMgJujSPcT7Ug+Me42nipNnIkSPTrBCf2yfLaFeYMDPw9SqMp4mOIp3UNC+Jj/JxkrYrSTPkCn3akRs200xNHspFuWRrI+Npoi34KrP9nGNrGhvaV+4+SZfj+FOuj5ShYzY5s/OBfE4WMiTxScd07hhP0zNPP93kfu0kn+cxiSfhHKlXXPA8DZl22iSrGP7vf/9rsoKYZHLrbBJPwmkGDSqLYZLfmpC2hTtLmiPaw9boqqYMfyu8l3+vvfdGJeIzA3g9UM16pUsI9AQE5NilziJn8MoZwJRIh6LlLo6pkPv1GWaJRn7SxIlZNmaeeeYij4MuqcgoRMptjSxk4aefm97kPGjw4JJZWj6FM5FPwl9++SWJNgl5f0WWSQOWNorlHDteIJTbm09dvDggBoyniQY8SVdy7Dgbnchkw3J5aUNLnTTo6XJsIy8S0rwkTufqvXffTZLFkBcZpCKjjRHO8oYnrvGpa9deiyuuuAK8ST/ZNsqLi4MOPBC8V2X06NFt1F4UbzHC8zjYLyKyglkHOZuvtBDozQiknY4EB97PytWuJJ0OOclV7mmBXLVLy1WKc7Ina2M4NnHcYpgtR152R0gik0zIcfzKbsOkzA/ff1+8J5rpNNGelbMV6X5wxZ6OWbrcL2PHhqcsp3lJnHaZ2x+TdBKyz0k8rT/h0XmlHUnS6ZB5DWWezshto2bxJCf1m8XxdNlyzluSn72tgnw+pMss1sPxNG0XmU/6spkJZTqhlEkT7RR38KR5bY0fc+yx4Dv0miM6WW3V21F52ni+W/Goo45CJdpzr72Q/Q11tF6VFwI9AQE5dl14FrNGN6maTkMST4c0ZuUcG96fkMj169evyeOSmVfOsJJP4n1tDNPEC3ez2PCQX84Jq9ROypcznmZWMqO4wIILUrSEKvWRQux7+nH75JF4UcCQRGNOQ8l4mniRlE6n49n705g3xB1bhqRy54nGmhcCzC9H5Wbh+9TXlz035cpX4tHBDjTjjOAMrVnjOeIKKs8/ndDONHDEl3Vn21iuz1kZpXsKAupHWxEo59g1TJlSfNhIVh/H1yjL9DTHOA9a/Ja7yKfzRseuUmGOa+XyOKaQz0nDcmPLp599xuyyxD5y7M5mctUu4U0zcGASLYacjGR7i4xMJLt7g9kDp5mGQaC0XQgMP3DisFxbPCusuJWrj05F0udyDhjLlrN35JPKOe50whJMzQzJiijlE2rOZperj+emo04XHVf+bpqjpH0KhYAQ6B4IyLHrwvNEw12uOl44l+ObGSzX9BSNG9/46Gc6RqRs+cQwZflMl8vLGiPOnlI2TZXaSZlKWyLSRjX7tDSWM/M+OjGepUr1pR0sOnDljHOlsqyjLtcU0/S5SccpT6qvq0OlPjKfRpZhmuiUljs3aZmOxPmo8BNPOgnX+Gre+uuv3xFVzZYlvunzmAiX63OSp1AI9HYEODZlMeB4bmZZdkhXGl/S410QrHDIjuGJWHP/p+VsAcsl/+8cv8qtIpZzzFgOfjAz5JyQ+aT7MaWhIZMLlLtXOi1Urq1JOymX1s80ycxKdqKQl5BZ+TyOd+w35egYMsxSpXNFuUq2J31+yukt1z/qI1WqL62TciIhIASEQE4QdB0Cle5JKDd7x1bRQHDVh/E0pR/+wYuHco4IZ+DSZdLxcrOQP48ZU/JutHJb+5ozvMnWnXQ9NI7pmcZyW/dCH/v0SRcrxrkNqJxBS2/75Cwv6ykWKkSS2dFCsiTIPjWOmentmTxPNO7kJ8StqunZ4YSfhOXuSeT9Gx0xvA899BD46PKEll9uOfx2m23A9xql9fKhPP/8v//D8iuskDSnqiHx5VNWs0o5s53lKS0EhECMAO8Li2ONx+YmiDi4WQJbAAAQAElEQVTemVmjcCHW3La/gkgIOIbxfzUkCgeOr82t+FVa8UlWj+gsldvhMO9884G6C9WUBHQk+/TtW8JjgmM1Q9LYjL0hjztRmnNuuOpFuTSlJyDT+hMZ6iOuSTodkm/WFO933nmnuKqa4JAux3hz9rXca3L4AJvETvMcjS+86oK6EkrfDpDwkrCcfeX5LncPflKmNeHno0eD94c3R+Wc0Nbobk6mpTw67NyRwucPVCLec5m10y3pVb4Q6A0IyLHrwrNcbuuamaHSBTINJLdKZJuYNvQ0FumL/ESWF/tJPBvSgGZ5vC8iPUjSucnKpB8wks3LPnaa+TRg6a0+5S50+rpTV8kJoyHvV+YCId02Ohysh/WlKX0fYprP+CypexSZJqXvO2Sby10k8ClklM1Sv379wNcjZPk8Lzw/WX5r02wHjXdCxI/vzTv88MNx7z33lKjhxdu5554LhiUZVUjwd8HfR1YVnx7Hi6MsP5teZpllwPsFE+KrNMptd82WU1oIdGcEyj1YaMDAgWhuvCvnLKUnsprDg07YqJEjm4jQeTNr6sBw0mz++edvIk9G4tDwop4X/eSlie2s5NxwkqtcXrofxKbc2FjONrFe2sFyr0dI2kmZtF1gmkSHqJJ9ZR4dP8qlie+9S9Icgzn+JekkXGjhhSuuBA4t82CU9L2MtFfjJ0xIVBXDxRdbrKKzPHvq4StJAY7J5RzEJL814Z577ok1Vl+9WSp3f19rdHdEhhPL2227LdZfb72KtO8f/9jkKbIdqVNlaw4BNaidCMixaydw7SnGpyrSUGbLlnsFAmVoeLI3rtPIcEaR+SQO7pz9ZDxNa6+zTlkjYWbh1QZpWca//uqr8J43xkkfjxzJoIT4iOoSRiFB47jOuusWUo0Bb7BPG4Vyj3LmhU4lw0tcBg8Z0qjQY7zPIn2hwVm7cpgu7IbXxZt8eYGw1IgRJXzODn4yalSRR4fs448+KqaTyHw+S53E0yGdKV48pXmMP/bYYyWYklcN4sUMX8eR1cV7eiq1MSvbljTxJc7ZMrzQWnTRRbPskjTP4R133onbbr+9SJdddhnK3cNZUlAJIdDNEeBj9nkRn+4GxzqOF2leEudTNLMTJRzvudqTyLQUPvfcc01EOC7QictmcOcGn06Z5d/2n/+AY2DC51N3k3gScsyv1I/hw4c3eagFX13D3SVJea7G0HYl6SRcqMxrZphHnVmHmE5X2hZy4ourO5RPiH2sNMnJc5HFm+XeSL26h5Nqr77yCtkltIA7xJV22sw622wlskyk33nH8bTcw7Y4ntIppnyW+N67LI+3NpTDMCvXXJpt4W+0OWqufGflsT3sGyduKxHPf2fVL71CoDsj0Lscu6l8pjhLmV1pYZO4ksHVOcbTtMyyy4LGPs377NNPkX5PELc63n333WmREKdjM++884Z4+kDeKiuvnGaFbSfPP/98iRPy0osvIm2IWWD55ZdH8kRGphPibCJX15J0El5++eUlFwh8F1HWQeDKDfuZlEmHI0aMSCdD/IEHHih5JDRn9t5///2Qlz5s9JvflJ0Z57vl0nKMf/nll0hfINDRK6dz0802A1fnWCZNbCdnsNM8xh9//HEGnUK84MsqNjPQcc3yO5pmXfffd1/4nWR1/eEPf6hYJy+a9t5nn2wR8B7R9Ox9EwExhEAPQIBPccy+Bob/n6uuumqT3pkZyM/aATpE5bawN1FQYPCR+YVoMVjaV8zLraDR4Ss3wXLrrbcWyzJS7t1yHAe58s78NJkZOKmY5jGetllMExtesDOepu23376JU2hm2HjjjdNiIc4L+/TrEegMPP3UUyEvfSj3bjvmcycBHxrGeEJsE3dFJGmOfVdddVWSLIYzzTwz+DqaIqMQoT2jnSwkQ0An+dnMO1Cz6SDoh3Lvt6NzWu5deh99/DGaezCOq9NXCAiBXoiAHLsqn3SuYBxzzDE47bTTwBd0m5VugaFjkq1y1V/9CtmVFg7mfIx91mF43WcTadDSOrgylE4zzovqzdwRMWusn7Ose+y5J+r7lN7TRsOTfa8YHZ1vM+8o45MRDz744CYPEeGDO7IOKNtw//33MygSV5qyzg5nknnfGNtbFPQI8dhiyy09Vvp98aWXShjcznPtNdeU8JjgS7yzs5ycoT366KOZXULff/cd6NwlTF4gPPnkk8hnbvDn+5w22GCDRCyEvBDb0ttp1ogzM95/7z2UW6FkXkeJv41tfvvbJmp4EVJuu28TwXYwOIs9scz2oQ023BC8GCuncvsddsAWW2zRJOvtt94CJzmaZIghBHoQAvx/zDo07N4uu+6K7MoMHa/1yjwA6b///W/JhAodql29/FlnnYVDDz20iXNBR5KrYawnIU687bzzzkmyGG62+eZgXpHhEY6DTz/9tMcavyNHjsT/fDxs5AC0JZtsskmT7YhrrLEGSGlZTpRx4jDN4zh13733plkhTieMNjQkCgfuFNlmm20Kqcbg1VdeAVfpGjnAq6++WjJByTxO5mWdLTMD7WPWFtKWZrfh8xxkXztE3KiX+hMyM/zpT39qsh2ebXzLx7xEjiHfS5e+P5A8Eh04OoeMJ7Tmmms2uT5g3gP+26D9Y1wkBISAEEgQyCURhR1HYOmll8bV7mTsvsce+O3vfodLL7sMhxxySMkj7zn7+aY7Z+naaNTPPPNM0EHiihhXgP71r38h65jQ4fjPf/4THtOcLs/Vpaszs4pmBl5Y8yWfdJJ4LwX309OYpcsyzrLp7Y3k8eLgnsx9XORv5hcDf9p/f1AfV/922HHH8ALRtAPKC5rr/v1vcFaWZdJ0x+23N3lX0VIjRuCss88GZ1A5g7zuuuvinHPOKcGNOniB8dCDDzJaQtyWSMcjzaRxPPof/8CabhR5/x9fxHrk3/+O7A3qvOigE551ljnzTec2rZNxvhx8c8dg+PDh4AUI37Gz1tprM6tI1HXGGWc0ucAoCrQyMs8884Cz4gmtssoqYN2nn356k4snquQFCbf7Ml5t4srw73//e2RniHmB9/ejjsLFF1+M3XffHXR899tvP5x+xhk44ogjQMc33RZuryHexD3N74ZxNVkItIgAtzVyQistSKeO/8Mrr7xy2JLMlbpLLrkEdGDSchw/7005P9z6d9JJJ+H4E04An4h7wIEH4tprrw06knJ0IrKTZ8w79C9/wT6+ep7Ygv3cAeFqO/MSSuwL79VLeEnIVatsPzjusT20U2w7V9X4ECezzCTX+++Ddi/RlYTUyR0XSZohbeFxxx+PFVdcERy3R4wYAb5rjStkzE+I99OdfPLJoK1JeAwfdPuQXsUjz8xw8imnYEOfhKJ9XWqppUD8OaHK/IQ4NmVXK5lHPp88THyYJplZwJM2NcH0j3/8Y7CFzE/TE48/DtrTNI8Yc5zkuJrmc/Lwb3/7W7Atw93G8Jrgb4cdlhYJcU6Osa8h0YEDJ2qJRXNEZ7UDVaioEBACXYyAHLsqAr7rrrsi+9CO9dZbD3Qykmq4UsF7jJJ0Ei662GLgwy/uuvtu/Pu661ButYrb4R584IEmxowG56KLLkL2xnm25djjjgPvb/rPbbfhL3/9K7L3gtFA0Dhzr33SFoZcxaNzwpUnphPiytoBBxwA6qPe490IZ7ekcJvdlVdemRQpCekwPfzQQyU8JnhRwIuUu92ZPO/888s+jOS8c89FOceF22cuvOCCJltHl1xySVzkDsedd92FG268EVtttVWT+w5vvOEGPPLII2xCCfHC4c9//nPJbDkFiOkpp54K3jd20803Y9fddmvivHDW+OGHH6Z4h4jOKC8oErr8iiuCw7Sxz5TzIi+r/Ax3+OjcZfnVSvPc3eQ4Zi+m6NRvuNFGoCN97nnn4a9+YcIZ9uw9MSx30YUXdtpKZrX6KT1CoFoIvPLKK7jS/2+z+tbwCSf+P3O84wQgV6qyMvxfS2/DnGXWWcHt4Gm5BRZcMGzhTHjcPn+2r+ZNmTw5YRVD/l9yzObYzdW+7P8nV+T/7Y4i7UmxUCHy2GOPldwCUGBju+23x/U+ht7lYywnc+jgJXlJeOwxxyC7BZ95HMvP9/GC4wLTCXEi68qrrgLHbdpCTvRxjEnyGXLisNyOCDpQp7oTR5k0cSKSk4e0r9ddfz22LrMCyC2YT7gTli6XxLkrhHYmSTMcOt10OOLII4v29RBfQTUrdWq5Anqq24tyK2t86nHWFnJFlpOltC20MRxP6TiyvoToaP7dJymzk2xJfltCrhJz90dzlHWA26JfskJACHQ9AnLsqoh5uSd6caDmqkZSDY3Y7b5qdYE7ItkZ0ORBInS+0oaMhpazsHwaIh2uRFc6pJGkAUk/MZP5dMT44lYS4+QlxBvNuTKYnTVM8nnj+JFuuLKredRDfXzhLOOJPEPW/3///Cf44ACms0QDR2eQ/Uk7k2YGPiiF2yWzFxxs38XuuN7sjhTxy+pkmltceVFCWaYToi62k/cApjFlPmeRz/aVwnQ7yE+Iq4B0etnmhMeQTlWik+k0vfvOOzjenensRUBapi1xzmAnxPtzsnhTF38Tl7gDS8e4Ej6U6yhR93l+IXbXnXciizN1E1/+3s1KL26YxxW6m2+6KazsUQ95IiHQ0xHg2MJtk7f5xBr/B5L+mhnCw7FmmCGECZ8hV3NuueUWcBWP5ckj8d1x3LrOeEJmBo5tSZrhqFGjwmoSJxGZTohjB8dtUlYPH3vPFbzsWJ+UDc6E24JyzhTrn977wS3iiTxDOpm0SRxnmS5HxKXcKhmx4RhLW5gtx10bvH+73DhCHneacFzPjlFsH+1LViftK7ew0gHNlknq5sNPDvMJK66IJjyGtO3Ek0R8yUuIryU69JBDQJuY8NIh6+VOHd5HiVSGWXxO2X+2OZUV7lm/7NJL8VLmloS0jOJCQAj0bgTk2FXx/NNhy6r7/IsvQAcpzafBO/mkk3DmGWek2RXjXP2hgcga6nQBXgCw/j/+4Q/49JNP0lll4zRU3JpTbrUqXYD3W+z/pz+B2z3Rwuebr7/GIQcfjJv8Ap7tqSRO4/jngw5CeptRJVnyuVLHbTdZB4t5CfHC44QTTgBx5VbIhF8pvO+++3DQgQeW3S6aLkOH6bDDDmtyDlHm8+wzz2A3X8Hjil2Z7E5hcdvRgb6CSnx4UdMplaSU8jfIlUw6r+WexpoSLUY5a83fL2eZq+XwFpUrIgRqHAGOTUf5Cgt3B7Smqdwa/3d3ongfWlqe2xZ5b1aaR5ns/WvM531hHN9as4L/pduoA30sbGlrH7em77H77uDqHetojnhP2gnHHw+uyDUnx1WnIw4/HFxlpEPbnCxtyvXXXYcDfLzjmFJJlg7TWWeeidN8paySTJrPVbN99t4bI0eOTLNL4hxbueWfdqs1mPL1Bvvvv3+LWPHeO9qMx31FtKTCMgmea07u0hlszhaWKSpWD0FA3RACrUEg1xqh3ixDI/H666+D2zTSVG5rbQsFMwAAEABJREFUCWdZuQWRF9vcFvniCy+As4DZlTniSSPG1Y8111gD3ObBFS6W4ewe762g4/XkE09g1112wW677goadZZrjmj4nnHnYtNNNw2rRmw3H5VNR4qzh2wXebxo2GLzzcGbz9m/5nQyn7OZm2y8MThjydnFDz/4INwzQONK/VzZOvHEE8PDYuiEskxzOpnHsnwPzY477ABuL2V/+cRPOoejfMaZFxHEc9111gH3/7fGWSOmvNdr0002wVVXXhlWDYkpz1WCKWc6d9l5Z9CQsw002GxPJaLOG66/Hhv8+tfgNkIaYs5qf/Xll+GcfPD+++HBAn/YZx/stNNOZbeKVtKd5rPP6d9Xc/FLL7kk/K623mqr0C469OV+Y2n9SZwXmVndfEQ6+5nItBRyVpu/87XWWgvHHXssXnzxxeD4h/P3zTfgRQ1/a+TTAdxqyy2Ds8+6oY8Q6IUIcGv3X//6V2y5xRag00UHjbssON4zZPr2224Dx9ljjjmm7EQSL+z/6ZNXHIM4XnCyjQ4Mx98spByDH330Uay+2mqxLXjtNXz04YfhYSO0B/z/5Fh49NFHYx0fYzkmZHWUS3OXx+932w108KifbeDYyjGWjhHt2BVXXBF0clWNk5jl9KR5HBc4MUVsbvWVSo797B91sj6+GoCY8b1mvP+MzmC6fLk4x6jzzz8fa7p95U4OtovtI95sL28xoK2ifd1rr73QGvtKW8HVx7V93OO49srLLzfBlOeCmHL7KCdFeR7KtS/Nox3i/ct77rFHuM4oYuo2hm1m23n7Bu0aHdu2jNVJPbQPnADgeW4rlVulTfQmYSX9rTn//F1n2/Syr0i25Lyyzmeefjpgli5PfUm7FAqBXogA5Ni1cNa5zY3bEfnkxjSVm93kgEtHjgZou+22ww7utHBQbq4K3kNB/cUy22+P7b0s0xzsWQ8NSnM6snlcVeFWz21/9ztQzw7U6cQ4eTS4bR38aHyvvvpq/I46vX1Bp4eJznPPOafilpNs+5I0HdFH/eKDW4Coh09XJGbsP9vJ1T8a+US+NSGxYhmuDlFHOA/ed+pkHb/77W/BexvS26Jao5cXX9xCSh3UxbYy3HbbbcHzxNnc1jifleq65pprkP59NRfnhQPvqaQTzwuYSjrL8emIZ3XzQo0XnuXkm+PxApHt2GnHHcPvjJiE34XjTZzotPN3yIu05vQoTwj0BgQ4NnEShZNA/P/g+BH+X3wc5VjFlXBOolGuHB7kc4dFUpYht2vSRpWTJ4+7RS688EJwHCSxPhLL8v+W2/raagto57jjYa899wT1UB+J/WH66KOOAie/WH9riQ4QdzoQA+qgrkQnx1hixov3to7btK9c5Sqnk5N7tK8tORDZPnCs5LhHW5XFlOeRmLZ1ZwIdIO5g4aQj2xr67uMocaBOYkpnnL+BbHtak6aDyPOVHftbk+bkXUt1cIynY5rVR0e6pbKcbM6W42pn+h245XQQD56DbNlyT6ItV148IdBTEZBjV+UzS6PHG7jpCNAZao16GmZu72AZOoK8+OZsZUccBdZLg82ZSK6GcRaQ7SKPeW2ilDAvFKiH+qiX+n/88ccOPQGSzgn7y34ns9HEg7ikqm5TlE4jH+JCTOnoUTfrYF1tUpQS5sUHdXIWmTPsNCycbeXMYUqsV0V5ocHfBHEgxjx/xIW/kbZe3PQq4NTZXosAbQQveHmxzfGeISfjyG8NKByDeCHN/zmOcy2V4f8ox2iO1RyzSfz/pC1gXkvlK+XTPrEN/H/nGMuxluN2a9pUSScdN2LB/lEnHURi1VpsyumlTraL7SPeHKdoC9j+cvKt4dEWEL8spsS5I5jSPiWY0sawzTzfHdHZmv5IRggIgZ6DgBy7nnMu1RMhMFURUOVCQAgIASEgBISAEBACUw8BOXZTD3vVLASEgBDobQiov0JACAgBISAEhEAnISDHrpOAlVohIASEgBAQAkKgPQiojBAQAkJACLQHATl27UFNZYSAEBACQkAICAEhIASmHgKqWQgIgSYIyLFrAokYQkAICAEhIASEgBAQAkJACHR3BHpb++XY9bYzrv4KASEgBISAEBACQkAICAEh0OMQkGPXrlOqQkJACAgBISAEhIAQEAJCQAgIgdpBQI5d7ZwLtaSnIaD+CAEhIASEgBAQAkJACAiBLkJAjl0XAa1qhIAQEALlEBBPCAgBISAEhIAQEALVQECOXTVQpI6cAfU5oC6HqG8d4GT96kMY0oU4+YFCuh5RnzowXSLbNy6HQh4K6aiP66depj0vcmLZQIyTmOcyEdviaWPawyDrYalsHVhHE9lCWeZlKZFlP8E+s+8iISAEhIAQqBoCEcdWtyUcZ4P96FuHEhtB+0EqjO9hXPd4GOd9/A/jvodxWbcnQbauaG9oU4Ks2wRzOZYP6RB3eQ+jgr1pIutlIqdgG7xOhlFRtlAH811HMY/pAgVZj4d6vVySDrK0PfWxXZJ9qdrPSYqEgBDoRQjkelFfq9tVGl43QNGAPsC0/RENHYBocP8Qx6B+iJzyA/sC0/SDOUUej6aJ0+SFckwP6gvy89TjMuYUDewDyoP5hTQ8REFPkPU8c6IeUsh3mWiAG+UBrMfJ9eT7e9rDoNfriPr3ATyNJO6heTmmg2whHXk5EvnwMiHuoXk+mEcdXj8Ge189jHjhQEzMqouztAkBISAEejICHDI5drqzQ1sAtyWkaIjbFSdzW0KbkvdxOnIbENKMF8Zg2pqIY/A0fWBuT+DxvOdFLmMuD8Y5bnuaeeRHzjOXYzrvfPJC2m1HsCHOw0Af270c0+by1BNsj8ct5LudclsAplnO7UPkFGwEy3k88nzzPIR0PRhaf7d5zs/TZriMOVGOZEHWJzyZx/a5fWEb4fJh4lT2pYX/BGULASHQ2xGQY9fWXwANsBu14MTR6LohCrOrEWBGCw0gisAYkxHivzhtnuVp5jPTRT3bZQ1mnufpyMmjcdrlQhrmXP96mjHmRx4nmRnMvCzTrszMXNC/LAiDGfPYpMjjcGLa2wCEOPxDPR7A/MA4ycxglsiyrHmu6wlHgxXCIOuYcIY4cgMPGnAaZS8bRHQQAkJACAiB8ghwVY72ZMgAcJIsODkcXCOAQyjJh/ZgNxgnccyFf8zi8dkzYYW/WBYwc45TkLU4HeIAPBkolo1CnLyQ7xGzgl7aE881pwg+9vuBcTDNwgDMDPx4FhgjMU4Lw7hZogswI8f1UK/HzTwPTANW+AttAGBm4CdU4/YlrOa5A0gnkiuILsBskRAQAu1BQGV6NAJy7Fp7emlo3Gmx6QYi368OqDPAv8EsMY9xkjMbjVOONhfhwzxaPIYJeUYsG8HMjVywYs6ECzCe8DwJ58WyHrNYL0XAT+QHl0nyXdTrzTszgpnrdUMa5wUh5zsvKcz8QtxyrtdzI6fwTSKFfLB4Pk9tCLIR45T0DOfCBSKP0snjDHPYYuNp6CMEhIAQEAKNCLizwlU24+qcT4RFRleokG0cNAuDr8eTsdt8fOUwy+E4zjWQheTjyZQW53rKhf3rcf+6LjcMHvGvxz2XkQK5JXOlsawrci7rYsA6QhsKbJf0LC/t8sxnmZDPBPWSwUIeJ4tiJDiPciRXAH5CnJGg26U89CNcNDQ1chuD8GGG10mdjhdX8SJf4aRcyNZBCAgBISAEAgLVcuyCsh574JZLbnHh6px30syNjIfB8jBMKBi0CGZxPo1SIUpbmEjFYRQHSX7kZc3icmm9Zs7zPCow87gXi2Xh9YBsP8Rfg8Vp123u/JEbZGEwM096hh/5jZOedt1mzPOijHtmnEpFmO+iNMZ06JhPvYCFPy+J4sc85npCH/rWI3JnOGyhcba+QkAICIFejwDHRW6vdAeFQyXxMB9JGXKMDWExHYHDL3nu1jAopsMYGziFQwQU9SD+mFkcSY5J2ituzPGCnp9kFcfzRMCzzTU3tg2eMqQ/ZoV0Wq/HKVPI8agr8qNZI8esEC/IFuuIRWEFOxbaVBAt9pv4uU023pfnevUVAkJACAgBQI5dS7+CPg6RO3VchaJhpUNjZjAvR9tDYpzEPGfDLF4RY9rMwL9Q1q0W4yTmkcwNF21aHGdOMGEuCRgQiHkkM3I832cxzczzvB6XpO6Qch7lSGYGuEQSZzLUA4Bxg5d1RpIP/0S+GmfmOU7kk8wKadbj8mbmkl42H8HMnNiemDzpac9LZH1W2rgK6AaYDwEAvKi+QkAICIHeioCPhWGlzlebfPR0HyXe9WDGFMdRH1cdGzMfR6NC2uP+dVmO9FEYY81lwvgMgxllPa8wPpsx7XojhDwzpiMYADOPo4zeYtlCHgxmlG2n3kIdoY2uxwppM2uqF16P1x+5jJnnF9IehRnzCm3yuLkMdXqrwLi5jQn36nFLq+fpKwSEgBDo7Qi419LbIajcfz4QJOK9D2408u70UNLMDY3HEyNEHuNul2AWTA3y7vQABrMcIo8HI1TIY5zEpJm5LLdMurTHo4JeFD5Br8fNCrq8EvLMrFEvjBJ0pQJ5FsyNXeTOn5tDmLmsx70oYknnuhL/wswQHC9mUotR1lvnac+BOS/yOInxoNfb6BpgRtnCxYPLMd9FQTL4Hx26pO9sj1/Q8D4JF9VXCDSPgHKFQE9DwHzUHNAHEScJfTzM+zjqIy04/rKrjDP0odPHcSDvYzbjZm5DfFD1L8zjAMddjt4eM4+7dD5kFtJeLozXQRY+Hrus53v1LgmwXviH9VLOs2BB1nUx4eIGj7t05OO3i8K8vRH1Os8sBzMEvZHLe9S5nvb+MF7U6wUZN3NdLhdkk7jrDbJMezn2Pch6GcZjWU/Ay3p+LOs4eDlvHmJZz/OaKW/mEny4ijvLLCUSAkJACPRmBHK9ufPN9t2dOe7jz9FoFATNDY0xTp4bK7duMYdx55sxl6YnAqNMgYfIM50YdVvkVhAwN5AofIIsMxlxXSEKP3o81EG+FwwGz8uYeZ5/PRq+THp2Qa9neF0sysyQR10U8Kw46gKeNnOGC1JvLOtpRkiMhnwmnApxF/eSAJN+9Oa5riAL/3icuUy7YNDrLIOB3zxXP7VtBvoIASHQcQS6lYa+9UD/Pj4M+ljoDTcrhOR4PHIHxtnI0S742MlcUhjUmeHjqouBFLmDQ5blXCKMr4D5H8LH4qMLmrnzU9BrPtHmg3Wcx6PXwSDR76KeTTcpQqKXeUa9ESWNSUacXK87eh5xWV5CxOUo6kpQDAt1BDsAwMx1gGqo0OMhKISMg3pDBGbuyHl5aoaLeDGE0HmhDviHok5mXs6TtC9Gu+1xfYWAEBACvRUBjsq9te+V++3GIeJjll2iOMPpxiOYJBoW5yOkGQmWhRGfDfW4x8zcEnk0MWjwpLPjL+NO+cQwNpH1zCDpCpjnlC/UaRbnFfUGOT+4aKjDsyvLeqaL+vUBEPQYKsuCXY0pKZZqA1lJG8w8xfpJ8DgpxAEzC0RZj4Z4eN5xsKQAABAASURBVKIZL0igjxAQAkKgFyBAe+KrdbCmfeXYSEeFjheHzXywC2UEvWgsCxRl6bSVF3WVrs3H7FJZK9cEhIHexc2dKcDtQlGvofwnggVZgPbRzGBmCLaFBSIeGsmCbKzXzGBmjZmMFZNRMS/WizgdwXXz4GFRlnFP+DdyzMwsyHKXDUrtiwvqKwSEgBDoPQjIscueazcK4R4IN8bMitw4MjQenArmxWNua/zIfIN5zNNB1jxlcTocGTe3eT736PlmTCeyQCHphhjFD+sIeouZcZZZUpZpxpvq9YqY2USvmcu64lK93iYvYEZdbFMo6mVd1vklsp5F6YJosb1mlGXZKJSjJsqRzJjyPNflxUM+n5oZXppLhkgICAEh0JMRcDsSDe4LriSZ+VjpNoDjatJljpOMmxXGSs83s3isjHzsdAIMcErKmTHNvMi5BjPX62Nskg//JHEz81RB1uNmlPV04DLP014n22HGtOd52swa9bpumBdwol6SmSecxTg805wieFknMM+JeSQzI9dtBiUA8z/WR0Lhw3hTWUp6+1yGJeMU0y6dtJG6mOkyZp5n3gaujnpaXyHQegQkKQR6DgJy7DLnMqrPwfrUFY1QrrCFJbYd5mbE3HJ4IRoWD8xnIyOfMSQzl/M8N4JudgCP+tfZXjLIGszc8HAbjbPClhvKetwz/GsInyALT+cQceaU6WIWhZkH/3iceTCY1xsV9JpZyPMsDw1m5qE3w3UxZrm0XgP/olgYBVEwTX6JXpDjeuJq0SibD/Gg13Fg3ylJoh5SHGfZyGU9VV8H3W8XTosOQkAI9GAEOIlldbE9CWOhD5xmVuxxiHk6KozPOcY5jkaIx8og4Am3FQZzpo+jRVkfy33sDno9z8zzEX9CzNOR62I86PVyLk5JJ8oV9LqcmdsmyrowbV7k9iQ9lnv1XnEEF3NivXlXECGX83LU6ykvCpIbkIKswczzXa8zXNbLVdLL8sb8vMeAoNfLRZ5yFa6HGrxF3gGD/zkzYr1Me9zFvNoIZp7nNhzc9k+mSAgIASFQLQS6iZ5cN2lnlzXTpunnNixqUl/kBsTNCmDwj+e7AYFT4IFMkmf510XdyHgkYTF0imWdn/oGvSyQ8FwnnIKshwk7hF5tWhSuMxCZjAeh5JAW9niR7fGs3iQvG1bSG+RYoesKcT9Qlo1JWMx2Nr9mqQQZLhvR8PpFAZMiISAEhECPRKB/n2K3SsZ6HwNDho+N5Id48eDOEK1QkPGxM4ypHgbZolAccTZtBSlmBGEgyBbiKHzIo14nwAuCH4ZeXyKahGSH+hMGQzKdAj8ua9TjemOD5zzGPUASMl6gWNYTobzrM4+zLZQlMU5WkVyAsi4KMA6Ach5FuU+QDcKIOHko+1IOJfGEgBDo4QjIsUuf4AF9wK2CcNtgFluP2Oia2xMLkiHteUyFuBsTTyJOBxGYMeUzjCHPwL9YFjDzlMV5gIU0/MN8Z4PEOA0l42Ypo+txF/WsyOUsEGW9mhBnNtOIU+CH6SDpmZEzeAFgHpq5Xg/5NSMnbpOxrKcpR/k47XkExYXNnGOe9kqtIMssylshn3HyzAxmlrkPI+Q63396nudF9BUCQkAI9DwEfJIQ7lyEMdjHOjMLfWTaB8DGuMfMjEOmj+0IWWaNsmYGQzzmegAzpuK0wf+Y9sGaej3lnDgvyIYU0wgxM/OEfzl+e9y/Xme8SmZBopDHODPhaW+Zmeeax72cs2BmMI/kPc3QjMc438xCHtvjIjBj2pD3FbgQ8zT5zDcjJy5HnpmnjWl4OZInwHTkaYMV4h7AzAJRT5JmyLQ57nrFDtEQCQEh0NsQ8Kvr3tblCv11Q8Abr83KGwuWMj+Q3M65MQQYNzOP01mh4UHh43GPmUuEnGD8PJXIRoCZIflYnZ+GYYOQX2gm5JeaHVh4ZmCWIYjYJpYtikZg1PwY9HpDGDcrtCECzAz8eBTsD4b0R0TiY7Y9w5DIRh5zhn/5EvHI6+NqJZnBMHrELJEFU+CHpaKBfUG9oCNMpgFmBdlCm+Af6vEg5DEMaZczi2W1XYaotIYkIwSEQLdCwMf0qF8dfGiEWWG88w4Y4j+Phq/50ZzHsdEYT2QL474nfUSNR/uQ7zKU9QBmBb0RQtzM03AnyMm4HXH2ocgvMjPyi88KzDcDooHx6qGLubzLeR3UZWbFtBf1uDFwAQYG/rmol+8HzDM9oiVmC7Yq2AwvSynqYWh+YJxkxpSroZ2YdTCCfWG+E4JWb6+3nbpjSU/DP25fjDarXz0icwFnMT9GIQolnRXsLkMz5no9TITcgh7uCgk8HYSAEBACvQcB9yh6T2eb7ak7URXz3W5wPz/zLZcDDQzjcCOC8HGBEGfoBiYfxVzXSaMVEhUO0aB+yG+2BPI7LY/oN4shWmdB5DdaFPkdlkO0xZLBKUPQndUb1xFnedyrDu3yEKx39iFBR36vVRBosyVdDTMBuCH0EkB9HfKrzYf8vqshv+NyaPjjr5Bfe0FEvCigKBvvYdALftxgDvb2eluDztmmLRjXIATqdXA8RPjQuJPMvFzeZ4WpjzkMWcTbqVlVAiISAlVAQCpqBwE6dj4YcvwrNorjnvPAsS/EATNPOI/jMQlMxgfEHx87QwZgFjKDdBiT4yTcMhTIY+TNMwPy2y2H/O+WRrThoojWXxj5zZdEfqcVkJ9vRsRjbqNeL+wF+aXWuDLGyAnkfcn7ZGN+5+WR32oE8r9eGNHGi4M2I08b5ZOSQQcP3sZYgyf6uH1Zc/6CfVk+ti9rLYDIbWjQay7jveERYMJrnW4gGnZZAQ17rgzM6vbFzQb4cb1FUaYLRHxZksko2F2vnQzHN2IZbzvzREJACAiB3oJArrd0tMV+0tjQ0Sgn6EbCjNbCzZE7KIWYS7oR8WPj19P+NStIuKGJY40S6Vg06xBE2y6DaPj0jewpiSXzuuZy/qZLIJpxmpBvFmsLxoxxrys2djHfaBx9djS/+nyItl4amH5gKFc8eD+SuHkkv9gsiJaeA/jiJ9gTH8I++QHRkrMBy83tlbtA4WvU6/Gov8+gbro4uFqXe/FT2MjvYKENPLhA8i0kzSxw2F4wTmIew5Dj+TK8AQkdhIAQ6EEI+OSYwUo7xHGP5GOgFfLC2OhS5hS+qTE6HtsjsAjzGmUL0hG5pEKa0cVmRX6DRRANi20GWUWapi+w8WLIrzYv0LeuqDeuBzD/Az9pvd6P/ApzARssDLA881MUzetO5MaLAcMGxVxvv8UxRL5SGHEHyuiCffnsR0RLzQYsN2csEeopSoM7R+CTm/DJztzznwCjvkfSd59BjMuUOQY1zg/bLz2MvwW93v44raMQEAJCoHcgIMcuOc/cNuNWhMaTZGZuVDirGZsNc8ePsdI893+c6aIuy7jPOLo+GpjI4rSZeV6sp6SsO5ERDdyQ/l7Cv6N/RO6q51B33hOwm18Bfp4AmOuYeTDynOWkHpaB84LDaDBL6YUBLtuw3bKIlnXD6bOlpcaQbYvJJRHauII7cG7g6+57B7lnR8HufAOczY3c8PPhJt4112ow83pY74jZAV+lMzfQeOwDGNsR8lJ6mXbjXtJXT5u5HlCPyzLtcTNPe59ctb5CQAgIgZ6BAMc1dyjMLPQnOxb6CAgzg3ku83w4hJnBCmmPwszHRve4whjscTNPu2Bj2ThtZrGsC+aHDgirc9wiD47NL32K3MVPI3fRU7CH33PD4UI+kcbJPE4mmnlZxHqa6HW+mecNGxxP/tXXeXnAnh6J3LlPIHf5szB32MDPDNMg4k4PH8vZHzPX6/H88u4Quh3K/bdgX+54HdwlEq0xPyLXV5Q1V01aZk5wspMTjHjcJxrZB9fFthVlvV2Mk8wMZt5Gx8WhiuPeHq7cmXke4+YHfduDgMoIASHQTRHIddN2V73ZkRuCxFhQOeMkxt1iIO8rdYwHB88NiX+dHVsNxklmDuciM6OBhmvVeWG8R8AzaJjMXNa/1EkKee4kUSe++wV197wFfDMWka/Y2ac/hhW0kMcDV+wG9wMNFpPmRpM6Yr0AVYe0z9bCjTvGTYI994nTKLeYKHwMyZ+bd3ALKKZ1p/KXiYi+HRvkbPxk4KufY/lpB7g82azFS8ziBn6Er+41+IoinUBnsT0euFysOZaMYOZpp9Am77+ZG1/Hj/nm2kmMkzwLXgD6CAEhIAR6DAI+sHH8S/rDeNGGhLw8fRHQnsAHRB8mg6iZj5UR3N74wZ0fLDtXsCf5lecBx324MMdNeGkL5SKX9THZHTasPBzJx7ja9dTHwJgJsLETkXtlNOzB9xD43Jkx/cBgTyLqcXuCrF7nR5G3cYnZEBxFAPbaaOSe/hjBTrjNsofeZTPATzTXdIjmnRFmbL9rHey2hZOWXjftW+QdtF8mgTaO8rQ97E/EOryrmG1ovJo3uQH2zEh41wDqonMHQyzrer1djJsV6qFe+Me8KW5jPADzg16yfULWi3tMXyEgBKqPgDTWIgLuidRis6ZCm4wmIa7XzOM0Np7M0TC48XB7EuyD5ziXRwpEoKibFOd53A1kNOdQYOk5wjYUo2H2HJZlYDAGgZhn738DvOrG0snGuVPFfK/LSO7kBcHCwcwNmSuiBqOceUbkxHigkAAmTEHuDl95e9xX1Ma6IfUylIrbGMfg+uEzqUzZpAZPxmWNeui4MSPkmxfzvLocorUWBNy5xAufwj76Ft4cIGR7Pvzj8VBVIemcRr0UdopYLwt53DNdN2DGn2CqEPQRAkJACHRvBIy2wMc7M0OONgSAmQUKYx8sHv8Aj/nY7g4O/GPmfB9IGZiv+uUXHBbbk0VnDnIh150dMGUcOz3mwjZNX0QzD0byyT38PmySO2bu7JBnZrDXPwdufRW5215H2OpozCEZPBvFiTrq9SE5qvNxf/4ZKRDsCt74IrSZwhH1fj0W9qbzYglEC88EeL9D0tvOMNgXynrCiENDg8f8y3zHBzDA49Ga8wN8iugLnyBswXQ9tBd05ZD+eLscnsBhPiPUyzizQjocXK/r9yPAzkEfISAEhEDvQCBXa92cau2pCyYgrt4NAgrJ9CwrM2lAGCIRCNaEwoZ8KMc4wqeJUUoskufmfx6P3EPvBTKfTY0Sh6qgN0pW81yWK3ARV+EKBiq0gfUWqyokRn6H3JXcIuMrfl6OzfEgfK2gN04YwlbPiVPCw1lsUL/A5vZLDB0Y4vhpvIeul8bdZ4KjOaYFVxJzPgvspRHa4BJmTHnERcE4yZP8mpmzLMiaM8x4dEE2jHFPBowY93x9hYAQEALdHgEf1+COiVk89iU2JPSLYx8jlHGKx9HIx0l3oiIgX3DaKJKIMk6KZQFz3Rw38wWHCf6JuELmzp1Hgc9/AsfvyNO20MzIrzA3Gnif3MLuHHKsp60hBWE/sCKvm3o9hXzBycTMQ4qrdZgwGWGljjbM5Y1OGoU//ZHHQMGOhAlBT/JWAtqXafsXn4b0HScGAAAQAElEQVSZ7+OXG9MO8EzAmA//0L6sOi9o72zUD8j5al2ownFweBwXHl3O2+fHkq9ZnEcn08yKsglOgONPZdBHCAgBIdB7EPCRtvd0tjU9pVEgmVkQZxwe92+cDsf44PbNzUbk2SnZOCscIx6Z5UQ9JDNPOJ9xL4g4BdfjTCacIjeG4T45Z/Fr//sINrnBZT3TGTTqnvCvGy5vBHWZma+kfYfIDaazPM8FY62MBGK5IMvcyXnY218hvqduPoQ63YEDLwY++BYYPyk4ZJhpMKIlZwfcSBuduikNobGsA67Hq/VaXLMzzMw5nu3xUI+n4R/GPYCZt9cjTJsVZL20s9r6lbwQEAJCoKYRMLPQvtLxzsfHwI0PPlSGiFlaFjD/8wGYR8Qfjp3BosDMAqtEr4/b6Fsf+Pb9OES8723zJcITlqNfuePkzlP+14sgz3uwhw2iapelnlhvosuZnheFOow7NMggTckDbjPY3rQswgQgBZzcqeMqH+B6Xdbe+xrBvnj9cIcuv8o8AF9l8P43iMZPDiN/xC3+S8zq9sYdR9q5KV43HCNWZHBNbJ+nAZhZINZPMvM0PI+yHppTVCDGPdv7wpgz9RUCQkAI9BIE5NglJ5oWweNmBs5G0nDQ8uTMIXLD4V/PBQz8UDiC9a2D+UxpNE0fYHBf5Ib0R+Q8SqDOEGYwOUPqxPfy2OABbmiikJ3jjKcrjVOI9TLtBjpadyHADbNPncJe+xw5Olou6O4T+HHNbs386/JmgHkbQ3sBUK956OIwY8wT/mVZg/85LwozshG4+oaP3BlcfFaE1xf4zK59+gPsgbfBp11a/77gEzaDs8ftop/94O33ev3CAC4bbeAXCjTWw2cAtw1x5jQKbUrq8VoLabaH+eZtCfj6jKxnsUXO0VcIdAYC0ikEpgICYbBrHPs4Jkcc77wpZhaPeUEG8CQAd144JvevR84dIK60RYP6Apzgq3P7A//U52C0NW5L8u4cYVB/5IbQnuRppmBe1qXCN+K93T42R26P7NtfgC9/Bnivm9skPnEy/5vFYMOmcdm4EaFFOW+Dt5HxnOV8nHe9/fu4TPw1rvBNmeItBeLxO++GIEKO980h/kRso+vxDGd43v8+Dvf0RUvOFuwLlpsrpO1+ty+uyVx/tPp8CM7eK6NhX/wc1zvTIGCl4QiOKO3LXNN5nd4+NxhN7IvXxPZ4wRgH6nVyUWdFMBoyl9FXCAgBIdBbEMj1lo622M/0thZaBRYwHmJyMx0MB5Aw3dAMnx4NWy2F/NYjwvt9GrZYEph7eoSPz542bLxYnLf1iFhuPXfYQmbjgYYqYtJcrxtubLI4ooIO+/yncCM5swN5u9iOYhMC08sVWhaSycFly7GT7BCOm4TcfW5kb3oZuQffQ92tr8VPxuS9ee545rl9h20Z9T1yT48E8kC46OB79tac39s5HaKV50F+U28zX83ApgTFhQPb4FGzTAb5gRV67kpdSF8hIASEwNRAoBPqpCMX1HKsY8THuzDWM+3xMOiF0O1IMlAvNTsatlyyaDPymywBTFfYGj+gD2JbsxSibdzebL0U8j4Gw40B9SL9WWBY2IGRu/ct4JZXkfNxPfef14CvxsRS0w9Efuk5QhMCw9uR6Aj2pZEZYuHgMuA4TmIfyGQ8OHJMOBWGc4/FX3cmc3e/Bbv5VfBBKzlvi/EhYW534Fceee4QmdOdNt5C8NwowJ1HOqORO555PoBsbrcvq7p92WwJhHvXY63xMWlDnIqPgeeNYFuJKdsHTzgrFtBRCAgBIdDzEfDhted3slU9LAz+iYFzcxCKJYbOLOaEfMaZ7FMXG14a34TICyX94LOvwTAX8qLB/ZAUDXpcxIyK3Ma64Y7c8eO9BmGlzlfOcne9CRszMcw8uihYmNIsy2IkLwl+GE/y4rS5aSt0yhkG82P8NTOYeb4bQnMjmxv1A+zlTxF9+A345DJzsWj2aRH5hQbGTQa3gkYTp5AL0ODOPDg4nHUXP4VwweBObP7XC8N8dtks1uvCoQ7q4r0gDM1ngsn3ahGn/cgEmSIhIASEQE9BwMc1Mx8LvT9hvPYRz8zHO0/7gA54nCnmwT9mLus2IG0vuGKHOkq5AL8FO5LIRL56Z2auystObqBEkfjwFIz8HrkJPn474esx8f1r3FLpUhGfoNy3Dl7amxN5CJgx5Ral0HaO/Sh8whbL+rogS5ZZLJt3m8Y0yaY0gPeKM4cU+vbLROTYjpc+Az78FuaThmbeXnfoosVnA3zFz574CLF9cS2r+4ThsEFucz5G3cVPw+iQ+gpkfsNFYRXsS6gHXqOZK2hsf0h5X5wT+B09qLwQEAJCoDsgIMeucJasYBjNDGZueNwgmOcZzI/+jRBinuV2whOeH4wSnxCZkBswpD7mK11GY5ZQ2GoSu4pmiV7XNXQAIq56zTNDKB2eOnnfO4jcKFLarCAb53o72L64GfAUicbNNcEslmU5lHyYGzOCrLffLJEl38A/+DFy5zTymVI+5tpe/Qz2xRgE0focIp8Nhn/sxU+9AR7xvuObMcCQ/j5L7P2opNcVJG0yY/s9xSa5vF8tuCJ9hYAQEAI9AAEf06yB41vk46aPqoXxjj0zHkiRD59OngXyXBr4/hcEe+FjarABbi8omlDIS2wJQ3fWink+Acj7oJM0t18Gvd4W8sw89cM4oGDnwJU2boX06T8LLYjHZHjczMCPpe+fc6eOT68MOX6gDQkynLxkhDTJnUuuurlO9sfMBZ1iWYOZUQpRn3pE3GLZvx72ymjQ6QxZfXKI5oufwmkvuX3h1lDvJ779pWBf+rupiGI9XqCJ3iioB2tht0mcJPXmxBk6CoHOR0A1CIGpjoAcu+QUuEFKom49ABoO+IdWAjR6eU/wyzhDhPsFcre/AStQiCePfx4/GTl3znDba57/engFQe6/7wCuC8mHdfisKe+pS1bq8N43oVz81LBQeSzt0WR7j7lRpuGMM3ikRWO7GHqaemkUU3VFqbhLhC4yJMV6XcL15i1CfqXhiHxG1T77Efb0KMBnYuHlIz6O2mdPwb5N9NlZr4OG08ZMQvi4g+qXKyHKA/VGblVDe7nVlZbW2xZkkrAwg0x5kRAQAkKgRyDgYyMdD1Loj4/fxUHXxz6Oi+SbMcNHRDcv9toXyN35ZrAXxlcScLUq2T45ZgL4GhtS0aY8/L6rjLxwBPN8jCuMw66Y93R74KNvyPaoIXJHKjh0nuK4HU2czBh8aAc/kTcltIshx2pO2NEZZObAPoimGwCwvZHrhJPHo4WGeazw5bvtJufjNhVYngCojy1hSBuzqtuXOYaGpyzjmY8Bd4IpVLQv3o/chClewlvjdsN8ghP+iXzy0IP4y/Z5zCWoHjxEvE8R/vF2ees8ApifB+gjBISAEKgpBDq3MXLsEnxpXOjcFQyGW5U4x40YjYSZW6XAiZCKBk4wXqFA0czEfD+aFcolep0Xvp6O3BGKtl4a0VzTBZaN/hG5B935mzQFCMUiFD8eNQtMr84T884IvvsnOIRuLCkXZ3ue6zajrMeZUYZCNvkuQscrRL1cuEdwmTmBsRNhj32I4NRRlffPxvuFAw2lO3e8UZ5lAvGCgREvg7jh4KdEb1Ih60jJgJhTWCQEhIAQ6CkI+OqVWRg4G3uUpH0MTHI8GvKTLNqamBGOjQcfp+NEBLOkdMxxBuArdsaHbBVY+eXmih9KUkgHh27RWQGfSCTLPv4OfMcc48yL5nYbtN7CiGafNrDig6Gos08dMGIOJON+aIKXieYs3FPuBeydr7z5qfZFzuQ3FUbDXX5pty/uiOYeeR+WjP8EwicM6XCCK4n18aWJtwBwe0M1vE2AYUwWB34M6r285eIybiCdy6/b40Q/kyIhIASEQC9AoDAS9oKettRFNwDmq0c0EiQzg3mZZBbQLBfsRUQDEvLMXR03HH40M/AvzvNChW/kM4hmnmNu75xXotcNV379hYFZh3hO/I1mGIT85kuhYdtlnJZFfrvlEG23LBp+686fG1GzuM78LEMQbbkUIjfe0a/dGE/TD54FM8/39oV63MgxjDXz6G1lnpOZpWSjEAe8rAF8GhmNv732OfDFT3BRJ8/zcpHPonKLENyRzM8zPcxD3u8RzTEUNMj2w/hGWZc3szjtzqDH4ngExzGCeVVGZzryiL5CQAgIgZ6EwJQG0J6wSxHHQo+YcRwtjH8e96+PhVzhAswMhkKex8xclrbFeeHrmdTjqmBmMGcyzdDMZTnG8gEkYyd4jutxByq/yWKAO3PRwjOhYdPFwKdTwmW5HdNe/gxW+ItmnAZ5PqBkydmAXy+KyGX8CzOXeOML4OeCzvlmjOV4y8Bis4H3VcO8Oh/Dg7347EfvTwQzA//YvsizzZjyNvJqY6XhCFs6XxmN6KufYeZ55u2FS/oKIh3Oon1h3gzTIExesn8/peyLy5tZKM+dIV5NHHc1rNfM89ye0y4xTyQEhIAQ6C0I5HpLR1vVz9Qsq7tBbjq8lBsIwNw+cK+Mx8wdPDcybj9gHneOy8XSZkYLheRjMDd0seFOeDQ6oaw7dkjdeB7yB/YBZnNHbzafNQ2hO3CMuyMHnzGN3FGknPFR2Iw48dHWdMRo8Ems08zr5RYWz2/8eo7z/eht8va6MONmsSx4kz5vXOcWzNHu0L34Kcxl/Ovy8J64tDuLeHpkMPTRegshv9FiyPNJoL7CaA++i8jDyAsYALNYb0i7Axh520O/PdOzgk5MdkyhTxcioKqEgBDoKgR8IiypimMfHyKFMP65DfFx0r+wYEPcbFDAhQ0+brpFybuNQWTOafyaxemIBZ3NFIvlfaz3ZFiBs/vfAb4ZyySi2Yciv+Ei4FMmMW987xpo454dBfMxnnrcEoCvG6B9YaHw6p6BfcP4HLle+2Ecco9+AK4IMh90GPkkaNcLPsXZmeHevyc/8pYbzLz93nbqNR/3zfMZj2hf1lzA2+S27dMfkDiWEWW9E2Y5GP+8bawr4jv33L40bL4EeO8gb2OIvO1ssxkliZlrdiw8CfghYnuN0Rhf0LGDPkJACAiB3oVArnd1t4Xe8sbyiVNg/hdbNvjkISFyy0MD4sXdfoDZblZACmnPhpM5x978AnbvW24M3y/M2JILUM7M464nlqVetOnDogZD7uPvAZ8dhX9s9I+wMRM95g3wo5l5s2KD58nUN8734kWeGWVd3DnRXNMjv8wcYQsm7n4DNmGycz2fjWUsyLoOX8XjY7TtqzGIFpsFfAEtn8CWe/0Llyp8KetRl/Yj4iqdF7kRR/gY0NAAuCEOSR2EgBCoIQTUlKog4BNdXB3LcULMB28f9Xws5JEjYxz6sAhS5BNfrNPcGeKQy1zjLpJnRgZ7Yk986HIWKHJdMMCol8IAzJzhfBv5A3I3v4JkWyRSH/Ox2/hqm+c/QXB6vAiL574YA7gdoai5bcmN49jvNoQMb6q9/w3s5pdhmYeDBYfrcW/X0EsT2gAAEABJREFUPW8iGuuretTHMgy9HKOAIYz7vsqX5xb/nyfC+LTniT7+wz9sNxtB8nKRO33hFTzf/hLbF8/PPfQe7M0vXTj1dX7Q6yziQEy8+54CPMttC0CVftRXCAgBIdCrEGi7d9HT4RnvRo0OB62DG5p8YnCZ9r7TgHgQf2m8SC4HJ86cms+E2ttfBcMa0VGMJeMjLQ/1UHbCJNRd8jRypz6MutMeCcQ4KaRPfSTkMZ0789Fwr4OZF3RrFU1pAN8JlGP5e94OM5pgAwDkWYeHZgZ7ZTTqqOfkh5C75gXn+pft9YDffKpv9vG3cRvOexL2oxtpCnhdKOhN+m0AbJRfPNzwMnJnP47cpc8gbMPxixAkn3QbnFcs623ypH8jmFbrHAd9hYAQ6MkImE8U0i4gjH0cPaNUd93p4VjpLLNcGG3znPyiGKV8TLWPvkNsT75GPI5GMGM5H+tpp2AwM3gmS8TkjlnunrdQ52N57qrnkfv3i8hd/izMx2z78me4kYjleGRRn8Sru+VVH8ufdifybeQ56QaDmSHo9Tbad+Ngt7oMbc61LyB35XPIeRxcYfM+mlGWCgvkydAhP5g7q/bBN8id8hDqLnT7UpyIjBqFGXUy84Iff4fcdS+ijvblMrcv3A7qWBSE44Btcr1MRI6Dl4rb6wziZHSqXcaT+goBISAEehUCcuyyp9sNSORGwYymgnbNrQ0MZrExjW2FeSlPu9EKRsTznOE2kLJwWYQP80LEDyzHtBnLlur1bC/Lo3lZ1+vCTWXheQgfzwbcabSfJoBOXlaWrTCzWJZHj5sV9HqbzQp5rojzsnHK2xRk4fVQ1tOebxbnUifJYOAnxN0JNpdh/SQzC7nMC2kKOjFtHpoV9HKLDC9gnKevEBACQqDHIjDJV6Y4VvvY518ffX1cTXXWh8+QMuMI6XnOMDOY+Vjp0hyfYS7ixDGVZOYJZyVxpjjGkhplXZc7bOYrX/jiZ0R8YqWPueYC1ElyFeFLPcHmcULPJw2ZNqOk63CJoNfD4BD+OB74/CcEvT7+U4+ZyzoxzrIUJSVpM/bFdXnf4PV7Mti7kASc43lwcoaZ6yrE+fRl88qpk2TOJzFOMrO4rJeDxzzpiAFhNdL76jF9awABNUEICIGuRUCOXRm8zWc8IzeKtD45Wgs3F7EhAULS08yjWeFsZEQj4gYoZzGcwc7Ac2NhWixPedlcDpHPLsIF0nrhn1jUTaHneUlYzhC1oDfyFTdjWer1OLxszizUFXncs0KcfKbNPM+JceZxi5B5xJvuR3NZ87b613W5GMy8vR53DkLapbyF3vsILulqPeX1mBnMvL0ej1zGzNMeMk5iyrNcPo+wvcgdZ8/WVwgIASHQ4xHgVnk6ThwDORZa6DFHxsjHTU84I/Jx1odNcPzmuO8jK6zw5wMuh2CYOSeMySxn4PgduT2JgDgP/mElTi4aeEW9OR+f3Z4EvZ7pmoJO6jbzlHGsj0KZoNfbE7k6z4J56IO3y0chbkZd+ZDOMe71RU5mBjOjtOcBxj/q9XpZD+1jRL2R51lMFIxYFoDlYr0hbR53fhI38zRcmmWplzbP9boIzGh3vWfM46ShryC6qL5CQAh0HwTU0ioiwBGxiurapyrvxql9JTuvlPlsZJj5g1sgr4YGhORRty5+JNsp8DwsiHmGZzuTBqmQANwokQKvEEfhQ57boziVRFyfqwA8RMmHAqQUk/rKC6eEUtFMcRTLRx7NVJjVG2RjXWYZWVruOCs+Mj+UR6NevxYAnboI+ggBIdDDEGgIW/imbqc4ntakPeFkods5dz8coGTsZOgOi4+HbHdxCHU2h85Y1sWLGbFtISc4Woz4OMuyJB9oyXFyBYj1esILwVPO8y9VxbLwj1dMHokZ5HjFIeklQh0uAq/DsxDCJI74YxZLh+JeNnAZkk0KGYEbigPOZD71hjgA6iAFHgAXMeMBhU8hg+WczfzQtkKcokHQ8Q32JSR0EAJCoDsjUCv2JIyX3QzImnDsOgW4jp4Inw2kc8etjlRlRiviMbcxZua2pdFwximLM/1oxrhH3KiZmcu6baVRcpYVyIPwNZ95dLE4HmRdwuvwEl7O4CzPCwyPm8f5jcCY8ZjWGwtTAGYWQh7MLE4HWZb1NDOYjhDnwWv02VQXjdPOdxbMD8Yj0y5vxhT7HsHM407ByEaI0/CPy7FPZp4fknmYG12bONkrcYa+QkAI9DgEanIcrxWUG/LIcbLQQw6CHBnN25ZgxtUsT4avwf987AwJP5gx7aU4rjLtFL6eNo+Y8egRpj3uXx9+I2cAZnEe6zGYMxB/PNvMyKHiwPNkSAdZA8z8AP8kej0axnoPzSzkx7Jx3NmuC4Fv8I+X86OnESiWZTzkumzkfIPBP0VZ83TBvjBmnlf4mplzPJHIetScqDeiveZTSCNn6CsEhIAQ6MUI/D9756LYNsqEUfjf/2F3e2/Srf7vIJG43WyaxHYM0nGNuY/goM5okBwP4dgNy/9HHJJP30vhscyYSowIY2UnlUCegGGhvKxmp/CKDSJKr9ivpGhHeGybQt4xUr0t3ZFLcU2GtqlOtiZEzqnRSqeWpSqhtW1Ha01jf1vtmskn9SV9CKTX2nRsdfl4eGNUk6EqgfEQUtLe9G2J7aPl/0vu1qbd+eTxmPWgvdRYAhKQwHEI3P2z/gXjxOhUwqY6H/V1dG4DEsVfS+3J1JdSa22h6dySV/L5bIahtgTJSG19S9qu+UIloayv2gqoW0NpefR+FHQtpWxyI6n0F+mH46bwNJ1sLE/6FjpHZgrIlZbf5BZej/WtKkVNbnon2d7/ktsEPfZrWTpnjA9tsdPNRjcRfkhAAhI4NIEhHLsHBT3iUmQnsHzJnaYvd7FYMSvNoGwDXe1Nwc5goMr2WnLna7VVJ0Yt/Vp14kgpJXHJa4kRTpTs/8pPjtUyfCQgn5Ak7wW5SdRK259J8U4DBEbeJorCXAhQWEqt9VFuyYvidEmDUogTTuUuubNW2osKEsSJE9F+yUGaCL4PkXSgpDJvChM1uUye9uxO49ARej1tDBKQwO4I/PjxY4g5oaOGGMhTg0DHt83CsCJNm+jGvNGa5BKTa8n28ct8onOpJVDZY9Iluv6XfDJpvqrkNGg2KmVJlhL93PKlv5JLHe0paXHypAtye7oV8FEf5dK41yOX/Nokn6mgf1K8WxUfKUZuJktxKelXeCXOSEq6RD6NKNwC/UimTSpX0xMnmZ9deJBDvUECEpiewCj2ZEaQQzh29/dxnAanV/ndnQ/fCkYEu9IMSbc7PW5zWErNv5bMR611NUDdKBH30OsTY7xp+i+5Syrbeym1RlbSa9uku5ytPCWpXd+1rrm1bcqWLazFySTRypZf5CaTumUNaZLE+u5FkUsxctcKcklt0do/U+YvwWF0s5uaWt9HIOAcD03g58Om0G0xjPDdjD8R4DH/+imbhdGTtO3qs+l/Ck5CrQ+1rbTWLY/+X0vaJ87OVrPm89mbJrm+e4Po81rqWrYdtNZf86Xnc5xes3VIFAFbv2RK6Q1SXMkkZjyFF2ni3r7LJV9TQT0hSYpa1PNkeuj9Mh6eAqlsGG78ehNjCUhgHwRGsCeMgTAb0SEcuxkMcVtYdlg/f2+P09RvP8qSPA5OrTWmjB3M1RrxvTlSrY6aGkcnAiirtZZa17bYp1p7+mcrrzX5WLd11/L3tlmuCFly5y7NWvtkyxJBNfJrTd+kKauVkhw3+Vrr1jZSyZctn/TaNnLTfzmVm4pUp2UptXa5S0uXvJh7rSdy0pg/TV0xtJ/vSjO64ZOmviUggQMQuLu7e9Esr91oGkPMEw38plsC+rL/dEy0atOzS3QqodaU1OjyOM5L4NVaS03c6hLXin5OfdrXWkut5KPrY0dqTT5t1rZJJ0+aUCv5tV+6pl9podWVknTklLW+Vtomn4at/iSfmq1tjpn6WlNS6beGZEuyq51KotbI6XJTU2vy6fcgN2UP6dO6TL7ZF76riFOnfQlF3xLYJ4ER7tihh6axJyenwXpFf1JwqyQAb3XsVx8Xg/ztvtTcwas8VhNnj+/hNaNz/7Pwp63bjmLaLfdxAHPXqiYUfiMo9e036P5Z2p/+f2wboxiniD/WUtOWQLqkT/uJgE1WSVz/icGMnIV25BOTXo8ZueQjq/WN8VuSRlbtx+Sv1yE3FwqUUd/6/oxc+iZU5CYsCe2YkVPTHzlr26UwD/rW3JnD0S1fc2GX9Kt52kECEpiawEj6e6SxvGhRo4sLzkq3J1/uSvu5nejtpnOxIdH3NfoZ3XtqM1o+9U1Ho5/TZ6Ft0mtdjEXk1x/R14npW6PTa+qX9MNuYE9qdD79yi99fxTKOS56v7XNGFrfyEI+aY695LgVubETre2Wpox+rW3qiJccl/IHub1t6lvbNb/al7uMITblF/uSdi/iaiMJSGBKAiM5U9PZk6z4EI7djODCLl4QxjKWLoanGebcqSpx9Gri5vCxE9vTlH+6KxUnMGW0I/CbebRv6ZS3dOKScJpueb7rl/ISGTXGn0B56enEpAk86lO29qQJpdXHIaWcCwnilNU4qW38pFPe2iam7DTd8rlTiRNLuj2Wys5pjDrGPRvEDYsfEpDAsQiM9NTFtPYEhyUOVtOr0b8VXf/xW6nYjdiP0tLfSysnvwXyzd4k39KxD+UhfVeajaAs8io6P3FJnnTd0tiGGv1P3NonXWmbuPS2W5o2D3WUJTQ7sbUn/VDPPBKavaA+6dVJuy9NTuwJ7Vt9q0t54paPbWHTkA1E7cux9MnLZ2vLPRIY4W5d5zqjPRnCscM7H+nCoC+osQQkIAEJ/JkAOvzPrd6nBd/ZntEYvw8djyIBCUhgbAIX9wfOmO7379/P6H2brkM4dhjhkRbyNkvhUSUgAQnMSWC0HVbtyZznkaOWgASOTQB/YCR7wqblbPZkCMeO03iUL94zlhcEm0hAAhKQQAhgiEczfN++fcvIfEtAAhKQwEwEcKSwKSONeba7dsM4dizmaBcHI51YjmVGAo5ZAscgMJruZjzYlGPQd5YSkIAE9kEAp2403Y09YVyzEB7GsQPaaIs5yyI6TglIYGICkw/969evw81AezLckjggCUhAAn8kMOLTFtgTwh8HP0iDYRw7eLCgM8FjzAYJSEACRyXAdyFGfYx+1HG99VyxnwQkIIE9E+APX2FTRpsjN50Y22jj+q/xDOXYAW/ERf0veJZLQAISODIBdPao88cQjzy+Ubk5rqkJOHgJTEuARx5HHTzfs5vlxtNQjh3QMMajLqzjkoAEJCCBlQD6euS7YqOPb6XopwQkIIH3JjDe8diEG9meML5Z/JOhHDtONe7YYZBJGyQgAQlIYEwCGDr09ZijW0c1iyFeR+unBCQggWMSQFdjU0aePWMceXx9bBdz7LrAc2MW9suXL+eKsb8EJCABCVyRwAx6mkd7+O72FTEoWgISkIAEziTAo45ninItbqgAAAd9SURBVLh6dxy7ke8qdgDDOXYMjF1gAmnDrgg4GQlIYAcEMG44TTNMBWPMhuEMY3WMEpCABI5GAKduFh2N7Rt9fYZ07HgUk4UeHZ7jk4AErkFAmSMTQD/PYNw6QxxQ7UmnYSwBCUhgHAI4dDM9VcFNp9HHO6RjxynHLisASRskIAEJSGAMAhi1IXTzK3Dg2OHgvaKLTSUgAQlI4MoE+B1UNguvfJiLiscG4pBeVOgFhQ3r2DFHFnxkeIzRIAEJSOAoBNDHOEkzzhdjPNsFxIycRxuz45GABMYkwGYbN3HGHN3zoxrZDg7t2LHoI8N7ftmtlYAEJLAfAjh1nz9/nnZCXEDM9AjptKAduATmI+CI35kAT318+vTpnY96ucNhS5jD5SReTtLQjh3TxLEjkDZIQAISkMBtCOAYsdl2m6Nf5qg8BcI8LiNNKRKQgAQk8BYCOEbzPUHxOFPGjmM6onM3vGMHRh6hGREeYzNIQAIS2DsBnCH08B7miXPH3cc9zMU5SEACEpiNADdrsCmzjfup8WIXcfKeqrtV2RSOHdD4zaTZd4ufWmTLJCABCYxMAAOM/kUPjzzOl44Np25P83npvG0nAQlI4NYEcOrYXNuLPeGm02j2ZArHjhMRY8z3O4jJGyRwIAJOVQI3IYBTtycj3CFijHmMZi8XF31exhKQgARGJYBTxx2uUcf31nGNZiencewAjlOncwcJgwQkIIHfCVw2zxMSe9a3zG+PTutlzwKlSUACEjifAJtpe9a3fGcQx/V8UudLmMqxY7oYY257cpKQN0hAAhKQwGUJsAOJnr2s1PGkYYyZJ3ZlvNFdaUSKlYAEJPCOBNCzbBK+4yFvcqhR7kZO59ixWjh1GmNIGCQgAQlclgBOHUb4KM4O88We+FjmZc8jpc1NwNFL4BIEuIulfr0EyZfLmNKxY3o8lsnJcpSLD+ZskIAEJHBNAjg5PC5zzWOMKBs7gjOLXRlxfI5JAhKQwIAEnh0STt0od7GeHejOKqd17FgHjDFfgPfEgYZBAhKQwNsIcLcKh47NsqM6NzwJ8vHjx8JjQ2+jaC8JSEACEsCGYEuwKdgWibwvgfEcu1fOn5MGx87d1leCs7kEJCCBEMChQX+yu4o+TdFh38zfC5LDLr8Tl4AEziCA/uSpD+yJG2RngDyz6/SOXZ8/JxN377g46WXG+yXgzCQggfMJsKOKEca5O1/afiRgR7x7t5/1dCYSkMB1CeDUsSlG4Gm66x5N6c8R2I1jxyS5/cuFyocPHwoXKuQpN0hAAock4KSfIIABPt0II/9Es8MXYT+4SMHBIy2nw58SApCABH4jgG7k7hw3VrAr6snfAN0guyvHrvPjRMMgEzzJOhVjCUjg6AS6AUY3svl1dB7r/J//ZPeZixY2DZ9vaa0EJCCBYxDg2ponG3jiA3uCnjzGzMef5S4dO7Dj3HHh8vfffxdOOncSoGKQgASORADjiy5E/3HnCV2IAab8SBzOnSsMcYr/+uuvZk+wLTI8l+pk/R2uBA5OAJ3XdSH2hM0u7MnBsQw3/d06dqekMcjsKrDryg4DFzmn9aYlIAEJ7IkAxhfnA0cOvYf+0wBfZoWxJ50paThfRrJSJCCB2QnscfzYDq6bsSPoPuwKNmaPc93DnA7h2PWF4uRkh4GTk51X0hhmdiF66G2NJSABCcxAoOsuDC3GF8PLbioxecpnmMdsY8Sh4wIHzt2ewLuvx2zzcbwSkIAEuv7CbnB9jH7DnnDdjM6jXEpnE7iqgEM5dr+T5O4dhpk/tsLJSxpnj59PoI6AoTbcFxnIwHNgjHMAvURAT2FsCRheAmmML8b5d31n/roEWBP4sw7YE9LYE8p78P/QGP+HXAfXwXPgvv1mZ9dN6Cp0FgEdRuCaGHtyXc2p9EsTOLRj12FyEcTdPP6jc5JzwcRJTuAknyJ8/lwcpww8B/Z/DqCXCOgpdBaGl11U9FjXaca3I8BanNoT1qoH/3/u//+na+waz3IO4Lh13cS1r/bkdnbjkkfWsbskTWVJYHACDk8CEpCABCQgAQlIYJ8EdOz2ua7OSgISkMBbCdhPAhKQgAQkIIEJCejYTbhoDlkCEpCABCRwWwIeXQISkIAERiOgYzfaijgeCUhAAhKQgAQksAcCzkECEnhXAjp274rbg0lAAhKQgAQkIAEJSEACnYDx5Qjo2F2OpZIkIAEJSEACEpCABCQgAQnchMCOHbub8PSgEpCABCQgAQlIQAISkIAE3p2Ajt27I/eAQxFwMBKQgAQkIAEJSEACEtgBAR27HSyiU5CABK5LQOkSkIAEJCABCUhgdAI6dqOvkOOTgAQkIIEZCDhGCUhAAhKQwE0J6NjdFL8Hl4AEJCABCUjgOAScqQQkIIHrEdCxux5bJUtAAhKQgAQkIAEJSOB1BGwtgTcS0LF7Izi7SUACEpCABCQgAQlIQAISuAWBp46pY/cUFcskIAEJSEACEpCABCQgAQlMREDHbqLFep+hehQJSEACEpCABCQgAQlIYDYCOnazrZjjlcAIBByDBCQgAQlIQAISkMBQBP4PAAD//28Y8q8AAAAGSURBVAMAcO4GT84Yzd8AAAAASUVORK5CYII="}},"time_used":363,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":359,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/icon.png","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:26.122Z","timestamp":1785139286122,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /icon.png HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:26 GMT\r\nserver: cloudflare\r\nlast-modified: Sat, 23 Aug 2025 18:47:21 GMT\r\naccept-ranges: bytes\r\nserver-timing: cfExtPri\r\ncontent-type: image/png\r\nage: 0\r\ncache-control: max-age=14400\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=y5GeZD0ICr%2Bs4Oh%2BYaOQW2BHy0fvYxnUQENwY0s2xeKX6p%2BBjLV8SCzMxTD2HL%2FIbSsYU4jI84loe8faURLNMr3bN8ibpCfRcrdkF0PfCMvJLAD%2FPvSy8qx5YuCv9hs%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=6,i=?0\r\ncf-ray: a21a1dba48d72efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 72115\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"]}],"data":{"size":72115,"size_decoded":72791,"mime_type":"image/png","magic":"PNG image data, 512 x 512, 8-bit/color RGBA, non-interlaced","md5":"6f3a269f1786d9a13f5fc15b9d6cefde","sha1":"4b4ba3c9ae9f421048b4e75cefcf89bc6b5699af","sha256":"c80436b5bf9ba69e8e3b1e7b20d0b7397b20142d71bdc77393f48ab97c43c74e","sha512":"4e0ee1b74c5c55c77e9cd8bb2785dc0e67b4173f70a948d6e5e423714e0670fbd44fe27e12dcd7efc8c2e9919c059b534bfb49fe1823d0f17f5b69884e492be8","ssdeep":"1536:v+jyOpaeFLA9DsGYfg9Kw+eHbslpJ/wbeXpW+c:vyeyAFj9VB7s53Z9c","tlshash":"8163f16dc2e2c0654fc934b967256ab8db23558655caba54c37cf3308d6883e4e92fcc","first_seen":"2026-07-25T05:39:21.879776Z","last_seen":"2026-07-27T08:02:19.570595Z","times_seen":5,"resource_available":false,"data":"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"}},"time_used":339,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":338,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/icon.png","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:26.121Z","timestamp":1785139286121,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /icon.png HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:26 GMT\r\nserver: cloudflare\r\nlast-modified: Sat, 23 Aug 2025 18:47:21 GMT\r\naccept-ranges: bytes\r\nserver-timing: cfExtPri\r\ncontent-type: image/png\r\ncache-control: max-age=14400\r\ncf-cache-status: REVALIDATED\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=DRbc2Hj0myBi4wFCUMA8xAyVA3vpB1KK9VoRxTzphzfq9o0sRHoLhujzY7IkHioa5hHdIQcAq2psQjI17Pqt%2BDYtjJdYYOV8bME7CTkgbAgP89zcJhCe7IbtX%2BABHuI%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=6,i=?0\r\ncf-ray: a21a1dba48d62efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 72115\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"]}],"data":{"size":72115,"size_decoded":72785,"mime_type":"image/png","magic":"PNG image data, 512 x 512, 8-bit/color RGBA, non-interlaced","md5":"6f3a269f1786d9a13f5fc15b9d6cefde","sha1":"4b4ba3c9ae9f421048b4e75cefcf89bc6b5699af","sha256":"c80436b5bf9ba69e8e3b1e7b20d0b7397b20142d71bdc77393f48ab97c43c74e","sha512":"4e0ee1b74c5c55c77e9cd8bb2785dc0e67b4173f70a948d6e5e423714e0670fbd44fe27e12dcd7efc8c2e9919c059b534bfb49fe1823d0f17f5b69884e492be8","ssdeep":"1536:v+jyOpaeFLA9DsGYfg9Kw+eHbslpJ/wbeXpW+c:vyeyAFj9VB7s53Z9c","tlshash":"8163f16dc2e2c0654fc934b967256ab8db23558655caba54c37cf3308d6883e4e92fcc","first_seen":"2026-07-25T05:39:21.879776Z","last_seen":"2026-07-27T08:02:19.570595Z","times_seen":5,"resource_available":false,"data":"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"}},"time_used":340,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":339,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-kb1yqHaA.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:29.368Z","timestamp":1785139289368,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/shared-kb1yqHaA.js HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 08:01:29 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a670743-42705\"\r\nexpires: Tue, 27 Jul 2027 07:27:08 GMT\r\nlast-modified: Mon, 27 Jul 2026 07:22:43 GMT\r\nx-77-nzt: k86G9sQXW+2fKdMOpxA5TNDBwUF+Ggd1G2T8oGu1VQ10watCXtgQmr90yZa+5mTEetnwtYg\r\nx-77-nzt-ray: e2f75420ade4d1455910676af6160b16\r\nage: 19\r\nx-77-cache: HIT\r\nx-77-age: 2027\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":272133,"size_decoded":92600,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (44710)","md5":"4a99d6fd0e84ed566d578d0ed5dea128","sha1":"c729468068793db7ca783d243b2ec065b6e2f202","sha256":"99501ff83cea2d37fb29f4ff7e0bfc1a93655e56db91bce74171fe29f0821884","sha512":"fcab2b13f37fe49c7a500be1285445ec1dfb120ed4f6d909925ea5616ee9f62d999fe83c1f8210dcc1742528ee3469e5671b34191317836ab4ed3b020ade8608","ssdeep":"6144:mLjnOEIL18ad2jJKaQF+tRkYcuBa+y+mFJW:iOEIZRd29Uqj4r+mF4","tlshash":"b3443ad53294b03543db51e6906f1106b33e5c58580d812cf269ede638baec8a2f7fb8","first_seen":"2026-07-27T07:28:16.16312Z","last_seen":"2026-07-29T06:17:50.104199Z","times_seen":1066,"resource_available":true,"data":"dmFyIGU9T2JqZWN0LmNyZWF0ZSx0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxpPU9iamVjdC5nZXRQcm90b3R5cGVPZixhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbz0oZSx0KT0+KCk9PihlJiYodD1lKGU9MCkpLHQpLHM9KGUsdCk9PigpPT4odHx8KGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLGU9bnVsbCksdC5leHBvcnRzKSxjPShlLG4pPT57bGV0IHI9e307Zm9yKHZhciBpIGluIGUpdChyLGkse2dldDplW2ldLGVudW1lcmFibGU6ITB9KTtyZXR1cm4gbnx8dChyLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6YE1vZHVsZWB9KSxyfSxsPShlLGksbyxzKT0+e2lmKGkmJnR5cGVvZiBpPT1gb2JqZWN0YHx8dHlwZW9mIGk9PWBmdW5jdGlvbmApZm9yKHZhciBjPXIoaSksbD0wLHU9Yy5sZW5ndGgsZDtsPHU7bCsrKWQ9Y1tsXSwhYS5jYWxsKGUsZCkmJmQhPT1vJiZ0KGUsZCx7Z2V0OihlPT5pW2VdKS5iaW5kKG51bGwsZCksZW51bWVyYWJsZTohKHM9bihpLGQpKXx8cy5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9LHU9KG4scixhKT0+KGE9bj09bnVsbD97fTplKGkobikpLGwocnx8IW58fCFuLl9fZXNNb2R1bGU/dChhLGBkZWZhdWx0YCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwfSk6YSxuKSksZD1lPT5hLmNhbGwoZSxgbW9kdWxlLmV4cG9ydHNgKT9lW2Btb2R1bGUuZXhwb3J0c2BdOmwodCh7fSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZSksZj1BcnJheS5pc0FycmF5LHA9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsbT1BcnJheS5wcm90b3R5cGUuaW5jbHVkZXMsaD1BcnJheS5mcm9tLGc9T2JqZWN0LmRlZmluZVByb3BlcnR5LF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLHk9T2JqZWN0LnByb3RvdHlwZSxlZT1BcnJheS5wcm90b3R5cGUsYj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsdGU9T2JqZWN0LmlzRXh0ZW5zaWJsZTtmdW5jdGlvbiBuZShlKXtyZXR1cm4gdHlwZW9mIGU9PWBmdW5jdGlvbmB9dmFyIHg9KCk9Pnt9O2Z1bmN0aW9uIHJlKGUpe3JldHVybiBlKCl9ZnVuY3Rpb24gaWUoZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWZ1bmN0aW9uIGFlKCl7dmFyIGUsdDtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZSgobixyKT0+e2U9bix0PXJ9KSxyZXNvbHZlOmUscmVqZWN0OnR9fXZhciBvZT0xPDwyNCxzZT0xMDI0LGNlPTIwNDgsbGU9NDA5Nix1ZT04MTkyLGRlPTE2Mzg0LGZlPTMyNzY4LHBlPTE8PDI1LG1lPTY1NTM2LGhlPTE8PDE5LGdlPTE8PDIwLF9lPTE8PDI1LHZlPTY1NTM2LHllPTE8PDIxLGJlPTE8PDIyLHhlPTE8PDIzLFNlPVN5bWJvbChgJHN0YXRlYCksQ2U9U3ltYm9sKGBsZWdhY3kgcHJvcHNgKSx3ZT1TeW1ib2woYGApLFRlPW5ldyBjbGFzcyBleHRlbmRzIEVycm9ye25hbWU9YFN0YWxlUmVhY3Rpb25FcnJvcmA7bWVzc2FnZT0iVGhlIHJlYWN0aW9uIHRoYXQgY2FsbGVkIGBnZXRBYm9ydFNpZ25hbCgpYCB3YXMgcmUtcnVuIG9yIGRlc3Ryb3llZCJ9LEVlPSEhZ2xvYmFsVGhpcy5kb2N1bWVudD8uY29udGVudFR5cGUmJmdsb2JhbFRoaXMuZG9jdW1lbnQuY29udGVudFR5cGUuaW5jbHVkZXMoYHhtbGApO2Z1bmN0aW9uIERlKGUpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9saWZlY3ljbGVfb3V0c2lkZV9jb21wb25lbnRgKX1mdW5jdGlvbiBPZSgpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9hc3luY19kZXJpdmVkX29ycGhhbmApfWZ1bmN0aW9uIGtlKGUsdCxuKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvZWFjaF9rZXlfZHVwbGljYXRlYCl9ZnVuY3Rpb24gQWUoZSl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF9pbl90ZWFyZG93bmApfWZ1bmN0aW9uIGplKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF9pbl91bm93bmVkX2Rlcml2ZWRgKX1mdW5jdGlvbiBNZShlKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvZWZmZWN0X29ycGhhbmApfWZ1bmN0aW9uIE5lKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF91cGRhdGVfZGVwdGhfZXhjZWVkZWRgKX1mdW5jdGlvbiBQZShlKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvcHJvcHNfaW52YWxpZF92YWx1ZWApfWZ1bmN0aW9uIEZlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3NldF9jb250ZXh0X2FmdGVyX2luaXRgKX1mdW5jdGlvbiBJZSgpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9zdGF0ZV9kZXNjcmlwdG9yc19maXhlZGApfWZ1bmN0aW9uIExlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N0YXRlX3Byb3RvdHlwZV9maXhlZGApfWZ1bmN0aW9uIFJlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N0YXRlX3Vuc2FmZV9tdXRhdGlvbmApfWZ1bmN0aW9uIHplKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N2ZWx0ZV9ib3VuZGFyeV9yZXNldF9vbmVycm9yYCl9dmFyIEJlPXt9LFM9U3ltYm9sKCksVmU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxgLEhlPWBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z2AsVWU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxgO2Z1bmN0aW9uIFdlKCl7Y29uc29sZS53YXJuKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9kZXJpdmVkX2luZXJ0YCl9ZnVuY3Rpb24gR2UoZSl7Y29uc29sZS53YXJuKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9oeWRyYXRpb25fbWlzbWF0Y2hgKX1mdW5jdGlvbiBLZSgpe2NvbnNvbGUud2FybihgaHR0cHM6Ly9zdmVsdGUuZGV2L2Uvc2VsZWN0X211bHRpcGxlX2ludmFsaWRfdmFsdWVgKX1mdW5jdGlvbiBxZSgpe2NvbnNvbGUud2FybihgaHR0cHM6Ly9zdmVsdGUuZGV2L2Uvc3ZlbHRlX2JvdW5kYXJ5X3Jlc2V0X25vb3BgKX12YXIgQz0hMTtmdW5jdGlvbiBKZShlKXtDPWV9dmFyIHc7ZnVuY3Rpb24gVChlKXtpZihlPT09bnVsbCl0aHJvdyBHZSgpLEJlO3JldHVybiB3PWV9ZnVuY3Rpb24gWWUoKXtyZXR1cm4gVChCbih3KSl9ZnVuY3Rpb24gWGUoZSl7aWYoQyl7aWYoQm4odykhPT1udWxsKXRocm93IEdlKCksQmU7dz1lfX1mdW5jdGlvbiBaZShlPTEpe2lmKEMpe2Zvcih2YXIgdD1lLG49dzt0LS07KW49Qm4obik7dz1ufX1mdW5jdGlvbiBRZShlPSEwKXtmb3IodmFyIHQ9MCxuPXc7Oyl7aWYobi5ub2RlVHlwZT09PTgpe3ZhciByPW4uZGF0YTtpZihyPT09YF1gKXtpZih0PT09MClyZXR1cm4gbjstLXR9ZWxzZSAocj09PWBbYHx8cj09PWBbIWB8fHJbMF09PT1gW2AmJiFpc05hTihOdW1iZXIoci5zbGljZSgxKSkpKSYmKHQrPTEpfXZhciBpPUJuKG4pO2UmJm4ucmVtb3ZlKCksbj1pfX1mdW5jdGlvbiAkZShlKXtpZighZXx8ZS5ub2RlVHlwZSE9PTgpdGhyb3cgR2UoKSxCZTtyZXR1cm4gZS5kYXRhfWZ1bmN0aW9uIGV0KGUpe3JldHVybiBlPT09dGhpcy52fWZ1bmN0aW9uIHR0KGUsdCl7cmV0dXJuIGU9PWU/ZSE9PXR8fHR5cGVvZiBlPT1gb2JqZWN0YCYmISFlfHx0eXBlb2YgZT09YGZ1bmN0aW9uYDp0PT10fWZ1bmN0aW9uIG50KGUpe3JldHVybiF0dChlLHRoaXMudil9dmFyIHJ0PSExLGl0PSExO2Z1bmN0aW9uIGF0KCl7aXQ9ITB9dmFyIEU9bnVsbDtmdW5jdGlvbiBvdChlKXtFPWV9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIGZ0KGBnZXRDb250ZXh0YCkuZ2V0KGUpfWZ1bmN0aW9uIGN0KGUsdCl7bGV0IG49ZnQoYHNldENvbnRleHRgKTtpZihydCl7dmFyIHI9SS5mOyFGJiZyJjMyJiYhRS5pfHxGZSgpfXJldHVybiBuLnNldChlLHQpLHR9ZnVuY3Rpb24gbHQoZSx0PSExLG4pe0U9e3A6RSxpOiExLGM6bnVsbCxlOm51bGwsczplLHg6bnVsbCxyOkksbDppdCYmIXQ/e3M6bnVsbCx1Om51bGwsJDpbXX06bnVsbH19ZnVuY3Rpb24gdXQoZSl7dmFyIHQ9RSxuPXQuZTtpZihuIT09bnVsbCl7dC5lPW51bGw7Zm9yKHZhciByIG9mIG4pc3Iocil9cmV0dXJuIGUhPT12b2lkIDAmJih0Lng9ZSksdC5pPSEwLEU9dC5wLGU/P3t9fWZ1bmN0aW9uIGR0KCl7cmV0dXJuIWl0fHxFIT09bnVsbCYmRS5sPT09bnVsbH1mdW5jdGlvbiBmdChlKXtyZXR1cm4gRT09PW51bGwmJkRlKGUpLEUuYz8/PW5ldyBNYXAocHQoRSl8fHZvaWQgMCl9ZnVuY3Rpb24gcHQoZSl7bGV0IHQ9ZS5wO2Zvcig7dCE9PW51bGw7KXtsZXQgZT10LmM7aWYoZSE9PW51bGwpcmV0dXJuIGU7dD10LnB9cmV0dXJuIG51bGx9dmFyIG10PVtdO2Z1bmN0aW9uIGh0KCl7dmFyIGU9bXQ7bXQ9W10saWUoZSl9ZnVuY3Rpb24gZ3QoZSl7aWYobXQubGVuZ3RoPT09MCYmIXp0KXt2YXIgdD1tdDtxdWV1ZU1pY3JvdGFzaygoKT0+e3Q9PT1tdCYmaHQoKX0pfW10LnB1c2goZSl9ZnVuY3Rpb24gX3QoKXtmb3IoO210Lmxlbmd0aD4wOylodCgpfWZ1bmN0aW9uIHZ0KGUpe3ZhciB0PUk7aWYodD09PW51bGwpcmV0dXJuIEYuZnw9eGUsZTtpZighKHQuZiYzMjc2OCkmJiEodC5mJjQpKXRocm93IGU7eXQoZSx0KX1mdW5jdGlvbiB5dChlLHQpe2Zvcig7dCE9PW51bGw7KXtpZih0LmYmMTI4KXtpZighKHQuZiYzMjc2OCkpdGhyb3cgZTt0cnl7dC5iLmVycm9yKGUpO3JldHVybn1jYXRjaCh0KXtlPXR9fXQ9dC5wYXJlbnR9dGhyb3cgZX12YXIgYnQ9fihjZXxsZXxzZSk7ZnVuY3Rpb24gRChlLHQpe2UuZj1lLmYmYnR8dH1mdW5jdGlvbiB4dChlKXtlLmYmNTEyfHxlLmRlcHM9PT1udWxsP0QoZSxzZSk6RChlLGxlKX1mdW5jdGlvbiBTdChlKXtpZihlIT09bnVsbClmb3IobGV0IHQgb2YgZSkhKHQuZiYyKXx8ISh0LmYmNjU1MzYpfHwodC5mXj12ZSxTdCh0LmRlcHMpKX1mdW5jdGlvbiBDdChlLHQsbil7ZS5mJjIwNDg/dC5hZGQoZSk6ZS5mJjQwOTYmJm4uYWRkKGUpLFN0KGUuZGVwcyksRChlLHNlKX1mdW5jdGlvbiB3dChlLHQsbil7aWYoZT09bnVsbClyZXR1cm4gdCh2b2lkIDApLG4mJm4odm9pZCAwKSx4O2xldCByPSRyKCgpPT5lLnN1YnNjcmliZSh0LG4pKTtyZXR1cm4gci51bnN1YnNjcmliZT8oKT0+ci51bnN1YnNjcmliZSgpOnJ9dmFyIFR0PVtdO2Z1bmN0aW9uIEV0KGUsdCl7cmV0dXJue3N1YnNjcmliZTpPKGUsdCkuc3Vic2NyaWJlfX1mdW5jdGlvbiBPKGUsdD14KXtsZXQgbj1udWxsLHI9bmV3IFNldDtmdW5jdGlvbiBpKHQpe2lmKHR0KGUsdCkmJihlPXQsbikpe2xldCB0PSFUdC5sZW5ndGg7Zm9yKGxldCB0IG9mIHIpdFsxXSgpLFR0LnB1c2godCxlKTtpZih0KXtmb3IobGV0IGU9MDtlPFR0Lmxlbmd0aDtlKz0yKVR0W2VdWzBdKFR0W2UrMV0pO1R0Lmxlbmd0aD0wfX19ZnVuY3Rpb24gYSh0KXtpKHQoZSkpfWZ1bmN0aW9uIG8obyxzPXgpe2xldCBjPVtvLHNdO3JldHVybiByLmFkZChjKSxyLnNpemU9PT0xJiYobj10KGksYSl8fHgpLG8oZSksKCk9PntyLmRlbGV0ZShjKSxyLnNpemU9PT0wJiZuJiYobigpLG49bnVsbCl9fXJldHVybntzZXQ6aSx1cGRhdGU6YSxzdWJzY3JpYmU6b319ZnVuY3Rpb24gayhlLHQsbil7bGV0IHI9IUFycmF5LmlzQXJyYXkoZSksaT1yP1tlXTplO2lmKCFpLmV2ZXJ5KEJvb2xlYW4pKXRocm93IEVycm9yKGBkZXJpdmVkKCkgZXhwZWN0cyBzdG9yZXMgYXMgaW5wdXQsIGdvdCBhIGZhbHN5IHZhbHVlYCk7bGV0IGE9dC5sZW5ndGg8MjtyZXR1cm4gRXQobiwoZSxuKT0+e2xldCBvPSExLHM9W10sYz0wLGw9eCx1PSgpPT57aWYoYylyZXR1cm47bCgpO2xldCBpPXQocj9zWzBdOnMsZSxuKTthP2UoaSk6bD10eXBlb2YgaT09YGZ1bmN0aW9uYD9pOnh9LGQ9aS5tYXAoKGUsdCk9Pnd0KGUsZT0+e3NbdF09ZSxjJj1+KDE8PHQpLG8mJnUoKX0sKCk9PntjfD0xPDx0fSkpO3JldHVybiBvPSEwLHUoKSxmdW5jdGlvbigpe2llKGQpLGwoKSxvPSExfX0pfWZ1bmN0aW9uIEEoZSl7bGV0IHQ7cmV0dXJuIHd0KGUsZT0+dD1lKSgpLHR9dmFyIER0PSExLE90PSExLGt0PVN5bWJvbCgpO2Z1bmN0aW9uIEF0KGUsdCxuKXtsZXQgcj1uW3RdPz89e3N0b3JlOm51bGwsc291cmNlOnduKHZvaWQgMCksdW5zdWJzY3JpYmU6eH07aWYoci5zdG9yZSE9PWUmJiEoa3QgaW4gbikpaWYoci51bnN1YnNjcmliZSgpLHIuc3RvcmU9ZT8/bnVsbCxlPT1udWxsKXIuc291cmNlLnY9dm9pZCAwLHIudW5zdWJzY3JpYmU9eDtlbHNle3ZhciBpPSEwO3IudW5zdWJzY3JpYmU9d3QoZSxlPT57aT9yLnNvdXJjZS52PWU6VG4oci5zb3VyY2UsZSl9KSxpPSExfXJldHVybiBlJiZrdCBpbiBuP0EoZSk6UihyLnNvdXJjZSl9ZnVuY3Rpb24ganQoZSx0KXtyZXR1cm4gTnQoZSx0KSx0fWZ1bmN0aW9uIE10KCl7bGV0IGU9e307ZnVuY3Rpb24gdCgpe2FyKCgpPT57Zm9yKHZhciB0IGluIGUpZVt0XS51bnN1YnNjcmliZSgpO2coZSxrdCx7ZW51bWVyYWJsZTohMSx2YWx1ZTohMH0pfSl9cmV0dXJuW2UsdF19ZnVuY3Rpb24gTnQoZSx0KXtEdD0hMDt0cnl7ZS5zZXQodCl9ZmluYWxseXtEdD0hMX19ZnVuY3Rpb24gUHQoZSx0LG4pe3JldHVybiBOdChlLG4pLHR9ZnVuY3Rpb24gRnQoZSl7dmFyIHQ9T3Q7dHJ5e3JldHVybiBPdD0hMSxbZSgpLE90XX1maW5hbGx5e090PXR9fXZhciBJdD1uZXcgU2V0LGo9bnVsbCxMdD1udWxsLE09bnVsbCxSdD1udWxsLHp0PSExLEJ0PSExLFZ0PW51bGwsSHQ9bnVsbCxVdD0wLFd0PTEsR3Q9Y2xhc3MgZXtpZD1XdCsrO2N1cnJlbnQ9bmV3IE1hcDtwcmV2aW91cz1uZXcgTWFwOyNlPW5ldyBTZXQ7I3Q9bmV3IFNldDsjbj1uZXcgU2V0OyNyPW5ldyBNYXA7I2k9bmV3IE1hcDsjYT1udWxsOyNvPVtdOyNzPVtdOyNjPW5ldyBTZXQ7I2w9bmV3IFNldDsjdT1uZXcgTWFwOyNkPW5ldyBTZXQ7aXNfZm9yaz0hMTsjZj0hMTsjcD1uZXcgU2V0OyNtKCl7cmV0dXJuIHRoaXMuaXNfZm9ya3x8dGhpcy4jaS5zaXplPjB9I2goKXtmb3IobGV0IG4gb2YgdGhpcy4jcClmb3IobGV0IHIgb2Ygbi4jaS5rZXlzKCkpe2Zvcih2YXIgZT0hMSx0PXI7dC5wYXJlbnQhPT1udWxsOyl7aWYodGhpcy4jdS5oYXModCkpe2U9ITA7YnJlYWt9dD10LnBhcmVudH1pZighZSlyZXR1cm4hMH1yZXR1cm4hMX1za2lwX2VmZmVjdChlKXt0aGlzLiN1LmhhcyhlKXx8dGhpcy4jdS5zZXQoZSx7ZDpbXSxtOltdfSksdGhpcy4jZC5kZWxldGUoZSl9dW5za2lwX2VmZmVjdChlLHQ9ZT0+dGhpcy5zY2hlZHVsZShlKSl7dmFyIG49dGhpcy4jdS5nZXQoZSk7aWYobil7dGhpcy4jdS5kZWxldGUoZSk7Zm9yKHZhciByIG9mIG4uZClEKHIsY2UpLHQocik7Zm9yKHIgb2Ygbi5tKUQocixsZSksdChyKX10aGlzLiNkLmFkZChlKX0jZygpe2lmKFV0Kys+MWUzJiYoSXQuZGVsZXRlKHRoaXMpLHF0KCkpLCF0aGlzLiNtKCkpe2ZvcihsZXQgZSBvZiB0aGlzLiNjKXRoaXMuI2wuZGVsZXRlKGUpLEQoZSxjZSksdGhpcy5zY2hlZHVsZShlKTtmb3IobGV0IGUgb2YgdGhpcy4jbClEKGUsbGUpLHRoaXMuc2NoZWR1bGUoZSl9bGV0IHQ9dGhpcy4jbzt0aGlzLiNvPVtdLHRoaXMuYXBwbHkoKTt2YXIgbj1WdD1bXSxyPVtdLGk9SHQ9W107Zm9yKGxldCBlIG9mIHQpdHJ5e3RoaXMuI18oZSxuLHIpfWNhdGNoKHQpe3Rocm93IGVuKGUpLHR9aWYoaj1udWxsLGkubGVuZ3RoPjApe3ZhciBhPWUuZW5zdXJlKCk7Zm9yKGxldCBlIG9mIGkpYS5zY2hlZHVsZShlKX1pZihWdD1udWxsLEh0PW51bGwsdGhpcy4jbSgpfHx0aGlzLiNoKCkpe3RoaXMuI3YociksdGhpcy4jdihuKTtmb3IobGV0W2UsdF1vZiB0aGlzLiN1KSR0KGUsdCl9ZWxzZXt0aGlzLiNyLnNpemU9PT0wJiZJdC5kZWxldGUodGhpcyksdGhpcy4jYy5jbGVhcigpLHRoaXMuI2wuY2xlYXIoKTtmb3IobGV0IGUgb2YgdGhpcy4jZSllKHRoaXMpO3RoaXMuI2UuY2xlYXIoKSxMdD10aGlzLFl0KHIpLFl0KG4pLEx0PW51bGwsdGhpcy4jYT8ucmVzb2x2ZSgpfXZhciBvPWo7aWYodGhpcy4jby5sZW5ndGg+MCl7bGV0IGU9bz8/PXRoaXM7ZS4jby5wdXNoKC4uLnRoaXMuI28uZmlsdGVyKHQ9PiFlLiNvLmluY2x1ZGVzKHQpKSl9byE9PW51bGwmJihJdC5hZGQobyksby4jZygpKSxydCYmIUl0Lmhhcyh0aGlzKSYmdGhpcy4jeSgpfSNfKGUsdCxuKXtlLmZePXNlO2Zvcih2YXIgcj1lLmZpcnN0O3IhPT1udWxsOyl7dmFyIGk9ci5mLGE9KGkmOTYpIT0wO2lmKCEoYSYmaSYxMDI0fHxpJjgxOTJ8fHRoaXMuI3UuaGFzKHIpKSYmci5mbiE9PW51bGwpe2E/ci5mXj1zZTppJjQ/dC5wdXNoKHIpOnJ0JiZpJjE2Nzc3MjI0P24ucHVzaChyKTpXcihyKSYmKGkmMTYmJnRoaXMuI2wuYWRkKHIpLFlyKHIpKTt2YXIgbz1yLmZpcnN0O2lmKG8hPT1udWxsKXtyPW87Y29udGludWV9fWZvcig7ciE9PW51bGw7KXt2YXIgcz1yLm5leHQ7aWYocyE9PW51bGwpe3I9czticmVha31yPXIucGFyZW50fX19I3YoZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kz0xKUN0KGVbdF0sdGhpcy4jYyx0aGlzLiNsKX1jYXB0dXJlKGUsdCxuPSExKXtlLnYhPT1TJiYhdGhpcy5wcmV2aW91cy5oYXMoZSkmJnRoaXMucHJldmlvdXMuc2V0KGUsZS52KSxlLmYmODM4ODYwOHx8KHRoaXMuY3VycmVudC5zZXQoZSxbdCxuXSksTT8uc2V0KGUsdCkpLHRoaXMuaXNfZm9ya3x8KGUudj10KX1hY3RpdmF0ZSgpe2o9dGhpc31kZWFjdGl2YXRlKCl7aj1udWxsLE09bnVsbH1mbHVzaCgpe3RyeXtCdD0hMCxqPXRoaXMsdGhpcy4jZygpfWZpbmFsbHl7VXQ9MCxSdD1udWxsLFZ0PW51bGwsSHQ9bnVsbCxCdD0hMSxqPW51bGwsTT1udWxsLGJuLmNsZWFyKCl9fWRpc2NhcmQoKXtmb3IobGV0IGUgb2YgdGhpcy4jdCllKHRoaXMpO3RoaXMuI3QuY2xlYXIoKSx0aGlzLiNuLmNsZWFyKCksSXQuZGVsZXRlKHRoaXMpfXJlZ2lzdGVyX2NyZWF0ZWRfZWZmZWN0KGUpe3RoaXMuI3MucHVzaChlKX0jeSgpe2ZvcihsZXQgbCBvZiBJdCl7dmFyIGU9bC5pZDx0aGlzLmlkLHQ9W107Zm9yKGxldFtyLFtpLGFdXW9mIHRoaXMuY3VycmVudCl7aWYobC5jdXJyZW50LmhhcyhyKSl7dmFyIG49bC5jdXJyZW50LmdldChyKVswXTtpZihlJiZpIT09bilsLmN1cnJlbnQuc2V0KHIsW2ksYV0pO2Vsc2UgY29udGludWV9dC5wdXNoKHIpfXZhciByPVsuLi5sLmN1cnJlbnQua2V5cygpXS5maWx0ZXIoZT0+IXRoaXMuY3VycmVudC5oYXMoZSkpO2lmKHIubGVuZ3RoPT09MCllJiZsLmRpc2NhcmQoKTtlbHNlIGlmKHQubGVuZ3RoPjApe2lmKGUpZm9yKGxldCBlIG9mIHRoaXMuI2QpbC51bnNraXBfZWZmZWN0KGUsZT0+e2UuZiY0MTk0MzIwP2wuc2NoZWR1bGUoZSk6bC4jdihbZV0pfSk7bC5hY3RpdmF0ZSgpO3ZhciBpPW5ldyBTZXQsYT1uZXcgTWFwO2Zvcih2YXIgbyBvZiB0KVh0KG8scixpLGEpO2E9bmV3IE1hcDt2YXIgcz1bLi4ubC5jdXJyZW50LmtleXMoKV0uZmlsdGVyKGU9PnRoaXMuY3VycmVudC5oYXMoZSk/dGhpcy5jdXJyZW50LmdldChlKVswXSE9PWU6ITApO2ZvcihsZXQgZSBvZiB0aGlzLiNzKSEoZS5mJjE1NTY0OCkmJlp0KGUscyxhKSYmKGUuZiY0MTk0MzIwPyhEKGUsY2UpLGwuc2NoZWR1bGUoZSkpOmwuI2MuYWRkKGUpKTtpZihsLiNvLmxlbmd0aD4wKXtsLmFwcGx5KCk7Zm9yKHZhciBjIG9mIGwuI28pbC4jXyhjLFtdLFtdKTtsLiNvPVtdfWwuZGVhY3RpdmF0ZSgpfX1mb3IobGV0IGUgb2YgSXQpZS4jcC5oYXModGhpcykmJihlLiNwLmRlbGV0ZSh0aGlzKSxlLiNwLnNpemU9PT0wJiYhZS4jbSgpJiYoZS5hY3RpdmF0ZSgpLGUuI2coKSkpfWluY3JlbWVudChlLHQpe2xldCBuPXRoaXMuI3IuZ2V0KHQpPz8wO2lmKHRoaXMuI3Iuc2V0KHQsbisxKSxlKXtsZXQgZT10aGlzLiNpLmdldCh0KT8/MDt0aGlzLiNpLnNldCh0LGUrMSl9fWRlY3JlbWVudChlLHQsbil7bGV0IHI9dGhpcy4jci5nZXQodCk/PzA7aWYocj09PTE/dGhpcy4jci5kZWxldGUodCk6dGhpcy4jci5zZXQodCxyLTEpLGUpe2xldCBlPXRoaXMuI2kuZ2V0KHQpPz8wO2U9PT0xP3RoaXMuI2kuZGVsZXRlKHQpOnRoaXMuI2kuc2V0KHQsZS0xKX10aGlzLiNmfHxufHwodGhpcy4jZj0hMCxndCgoKT0+e3RoaXMuI2Y9ITEsdGhpcy5mbHVzaCgpfSkpfXRyYW5zZmVyX2VmZmVjdHMoZSx0KXtmb3IobGV0IHQgb2YgZSl0aGlzLiNjLmFkZCh0KTtmb3IobGV0IGUgb2YgdCl0aGlzLiNsLmFkZChlKTtlLmNsZWFyKCksdC5jbGVhcigpfW9uY29tbWl0KGUpe3RoaXMuI2UuYWRkKGUpfW9uZGlzY2FyZChlKXt0aGlzLiN0LmFkZChlKX1vbl9mb3JrX2NvbW1pdChlKXt0aGlzLiNuLmFkZChlKX1ydW5fZm9ya19jb21taXRfY2FsbGJhY2tzKCl7Zm9yKGxldCBlIG9mIHRoaXMuI24pZSh0aGlzKTt0aGlzLiNuLmNsZWFyKCl9c2V0dGxlZCgpe3JldHVybih0aGlzLiNhPz89YWUoKSkucHJvbWlzZX1zdGF0aWMgZW5zdXJlKCl7aWYoaj09PW51bGwpe2xldCB0PWo9bmV3IGU7QnR8fChJdC5hZGQoaiksenR8fGd0KCgpPT57aj09PXQmJnQuZmx1c2goKX0pKX1yZXR1cm4gan1hcHBseSgpe2lmKCFydHx8IXRoaXMuaXNfZm9yayYmSXQuc2l6ZT09PTEpe009bnVsbDtyZXR1cm59TT1uZXcgTWFwO2ZvcihsZXRbZSxbdF1db2YgdGhpcy5jdXJyZW50KU0uc2V0KGUsdCk7Zm9yKGxldCBuIG9mIEl0KWlmKCEobj09PXRoaXN8fG4uaXNfZm9yaykpe3ZhciBlPSExLHQ9ITE7aWYobi5pZDx0aGlzLmlkKWZvcihsZXRbcixbLGldXW9mIG4uY3VycmVudClpfHwoZXx8PXRoaXMuY3VycmVudC5oYXMociksdHx8PSF0aGlzLmN1cnJlbnQuaGFzKHIpKTtpZihlJiZ0KXRoaXMuI3AuYWRkKG4pO2Vsc2UgZm9yKGxldFtlLHRdb2Ygbi5wcmV2aW91cylNLmhhcyhlKXx8TS5zZXQoZSx0KX19c2NoZWR1bGUoZSl7aWYoUnQ9ZSxlLmI/LmlzX3BlbmRpbmcmJmUuZiYxNjc3NzIyOCYmIShlLmYmMzI3NjgpKXtlLmIuZGVmZXJfZWZmZWN0KGUpO3JldHVybn1mb3IodmFyIHQ9ZTt0LnBhcmVudCE9PW51bGw7KXt0PXQucGFyZW50O3ZhciBuPXQuZjtpZihWdCE9PW51bGwmJnQ9PT1JJiYocnR8fChGPT09bnVsbHx8IShGLmYmMikpJiYhRHQpKXJldHVybjtpZihuJjk2KXtpZighKG4mMTAyNCkpcmV0dXJuO3QuZl49c2V9fXRoaXMuI28ucHVzaCh0KX19O2Z1bmN0aW9uIEt0KGUpe3ZhciB0PXp0O3p0PSEwO3RyeXt2YXIgbjtmb3IoZSYmKGohPT1udWxsJiYhai5pc19mb3JrJiZqLmZsdXNoKCksbj1lKCkpOzspe2lmKF90KCksaj09PW51bGwpcmV0dXJuIG47ai5mbHVzaCgpfX1maW5hbGx5e3p0PXR9fWZ1bmN0aW9uIHF0KCl7dHJ5e05lKCl9Y2F0Y2goZSl7eXQoZSxSdCl9fXZhciBKdD1udWxsO2Z1bmN0aW9uIFl0KGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQhPT0wKXtmb3IodmFyIG49MDtuPHQ7KXt2YXIgcj1lW24rK107aWYoIShyLmYmMjQ1NzYpJiZXcihyKSYmKEp0PW5ldyBTZXQsWXIociksci5kZXBzPT09bnVsbCYmci5maXJzdD09PW51bGwmJnIubm9kZXM9PT1udWxsJiZyLnRlYXJkb3duPT09bnVsbCYmci5hYz09PW51bGwmJnhyKHIpLEp0Py5zaXplPjApKXtibi5jbGVhcigpO2ZvcihsZXQgZSBvZiBKdCl7aWYoZS5mJjI0NTc2KWNvbnRpbnVlO2xldCB0PVtlXSxuPWUucGFyZW50O2Zvcig7biE9PW51bGw7KUp0LmhhcyhuKSYmKEp0LmRlbGV0ZShuKSx0LnB1c2gobikpLG49bi5wYXJlbnQ7Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49MDtlLS0pe2xldCBuPXRbZV07bi5mJjI0NTc2fHxZcihuKX19SnQuY2xlYXIoKX19SnQ9bnVsbH19ZnVuY3Rpb24gWHQoZSx0LG4scil7aWYoIW4uaGFzKGUpJiYobi5hZGQoZSksZS5yZWFjdGlvbnMhPT1udWxsKSlmb3IobGV0IGkgb2YgZS5yZWFjdGlvbnMpe2xldCBlPWkuZjtlJjI/WHQoaSx0LG4scik6ZSY0MTk0MzIwJiYhKGUmMjA0OCkmJlp0KGksdCxyKSYmKEQoaSxjZSksUXQoaSkpfX1mdW5jdGlvbiBadChlLHQsbil7bGV0IHI9bi5nZXQoZSk7aWYociE9PXZvaWQgMClyZXR1cm4gcjtpZihlLmRlcHMhPT1udWxsKWZvcihsZXQgciBvZiBlLmRlcHMpe2lmKG0uY2FsbCh0LHIpKXJldHVybiEwO2lmKHIuZiYyJiZadChyLHQsbikpcmV0dXJuIG4uc2V0KHIsITApLCEwfXJldHVybiBuLnNldChlLCExKSwhMX1mdW5jdGlvbiBRdChlKXtqLnNjaGVkdWxlKGUpfWZ1bmN0aW9uICR0KGUsdCl7aWYoIShlLmYmMzImJmUuZiYxMDI0KSl7ZS5mJjIwNDg/dC5kLnB1c2goZSk6ZS5mJjQwOTYmJnQubS5wdXNoKGUpLEQoZSxzZSk7Zm9yKHZhciBuPWUuZmlyc3Q7biE9PW51bGw7KSR0KG4sdCksbj1uLm5leHR9fWZ1bmN0aW9uIGVuKGUpe0QoZSxzZSk7Zm9yKHZhciB0PWUuZmlyc3Q7dCE9PW51bGw7KWVuKHQpLHQ9dC5uZXh0fWZ1bmN0aW9uIHRuKGUpe2xldCB0PTAsbj1TbigwKSxyO3JldHVybigpPT57aXIoKSYmKFIobiksZnIoKCk9Pih0PT09MCYmKHI9JHIoKCk9PmUoKCk9PmtuKG4pKSkpLHQrPTEsKCk9PntndCgoKT0+ey0tdCx0PT09MCYmKHI/LigpLHI9dm9pZCAwLGtuKG4pKX0pfSkpKX19dmFyIG5uPW1lfGhlO2Z1bmN0aW9uIHJuKGUsdCxuLHIpe25ldyBhbihlLHQsbixyKX12YXIgYW49Y2xhc3N7cGFyZW50O2lzX3BlbmRpbmc9ITE7dHJhbnNmb3JtX2Vycm9yOyNlOyN0PUM/dzpudWxsOyNuOyNyOyNpOyNhPW51bGw7I289bnVsbDsjcz1udWxsOyNjPW51bGw7I2w9MDsjdT0wOyNkPSExOyNmPW5ldyBTZXQ7I3A9bmV3IFNldDsjbT1udWxsOyNoPXRuKCgpPT4odGhpcy4jbT1Tbih0aGlzLiNsKSwoKT0+e3RoaXMuI209bnVsbH0pKTtjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLiNlPWUsdGhpcy4jbj10LHRoaXMuI3I9ZT0+e3ZhciB0PUk7dC5iPXRoaXMsdC5mfD0xMjgsbihlKX0sdGhpcy5wYXJlbnQ9SS5iLHRoaXMudHJhbnNmb3JtX2Vycm9yPXI/P3RoaXMucGFyZW50Py50cmFuc2Zvcm1fZXJyb3I/PyhlPT5lKSx0aGlzLiNpPW1yKCgpPT57aWYoQyl7bGV0IGU9dGhpcy4jdDtZZSgpO2xldCB0PWUuZGF0YT09PWBbIWA7aWYoZS5kYXRhLnN0YXJ0c1dpdGgoYFs/YCkpe2xldCB0PUpTT04ucGFyc2UoZS5kYXRhLnNsaWNlKDIpKTt0aGlzLiNfKHQpfWVsc2UgdD90aGlzLiN2KCk6dGhpcy4jZygpfWVsc2UgdGhpcy4jeSgpfSxubiksQyYmKHRoaXMuI2U9dyl9I2coKXt0cnl7dGhpcy4jYT1ncigoKT0+dGhpcy4jcih0aGlzLiNlKSl9Y2F0Y2goZSl7dGhpcy5lcnJvcihlKX19I18oZSl7bGV0IHQ9dGhpcy4jbi5mYWlsZWQ7dCYmKHRoaXMuI3M9Z3IoKCk9Pnt0KHRoaXMuI2UsKCk9PmUsKCk9PigpPT57fSl9KSl9I3YoKXtsZXQgZT10aGlzLiNuLnBlbmRpbmc7ZSYmKHRoaXMuaXNfcGVuZGluZz0hMCx0aGlzLiNvPWdyKCgpPT5lKHRoaXMuI2UpKSxndCgoKT0+e3ZhciBlPXRoaXMuI2M9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9em4oKTtlLmFwcGVuZCh0KSx0aGlzLiNhPXRoaXMuI3goKCk9PmdyKCgpPT50aGlzLiNyKHQpKSksdGhpcy4jdT09PTAmJih0aGlzLiNlLmJlZm9yZShlKSx0aGlzLiNjPW51bGwsU3IodGhpcy4jbywoKT0+e3RoaXMuI289bnVsbH0pLHRoaXMuI2IoaikpfSkpfSN5KCl7dHJ5e2lmKHRoaXMuaXNfcGVuZGluZz10aGlzLmhhc19wZW5kaW5nX3NuaXBwZXQoKSx0aGlzLiN1PTAsdGhpcy4jbD0wLHRoaXMuI2E9Z3IoKCk9Pnt0aGlzLiNyKHRoaXMuI2UpfSksdGhpcy4jdT4wKXt2YXIgZT10aGlzLiNjPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtFcih0aGlzLiNhLGUpO2xldCB0PXRoaXMuI24ucGVuZGluZzt0aGlzLiNvPWdyKCgpPT50KHRoaXMuI2UpKX1lbHNlIHRoaXMuI2Ioail9Y2F0Y2goZSl7dGhpcy5lcnJvcihlKX19I2IoZSl7dGhpcy5pc19wZW5kaW5nPSExLGUudHJhbnNmZXJfZWZmZWN0cyh0aGlzLiNmLHRoaXMuI3ApfWRlZmVyX2VmZmVjdChlKXtDdChlLHRoaXMuI2YsdGhpcy4jcCl9aXNfcmVuZGVyZWQoKXtyZXR1cm4hdGhpcy5pc19wZW5kaW5nJiYoIXRoaXMucGFyZW50fHx0aGlzLnBhcmVudC5pc19yZW5kZXJlZCgpKX1oYXNfcGVuZGluZ19zbmlwcGV0KCl7cmV0dXJuISF0aGlzLiNuLnBlbmRpbmd9I3goZSl7dmFyIHQ9SSxuPUYscj1FO05yKHRoaXMuI2kpLE1yKHRoaXMuI2kpLG90KHRoaXMuI2kuY3R4KTt0cnl7cmV0dXJuIEd0LmVuc3VyZSgpLGUoKX1jYXRjaChlKXtyZXR1cm4gdnQoZSksbnVsbH1maW5hbGx5e05yKHQpLE1yKG4pLG90KHIpfX0jUyhlLHQpe2lmKCF0aGlzLmhhc19wZW5kaW5nX3NuaXBwZXQoKSl7dGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LiNTKGUsdCk7cmV0dXJufXRoaXMuI3UrPWUsdGhpcy4jdT09PTAmJih0aGlzLiNiKHQpLHRoaXMuI28mJlNyKHRoaXMuI28sKCk9Pnt0aGlzLiNvPW51bGx9KSx0aGlzLiNjJiY9KHRoaXMuI2UuYmVmb3JlKHRoaXMuI2MpLG51bGwpKX11cGRhdGVfcGVuZGluZ19jb3VudChlLHQpe3RoaXMuI1MoZSx0KSx0aGlzLiNsKz1lLCEoIXRoaXMuI218fHRoaXMuI2QpJiYodGhpcy4jZD0hMCxndCgoKT0+e3RoaXMuI2Q9ITEsdGhpcy4jbSYmRW4odGhpcy4jbSx0aGlzLiNsKX0pKX1nZXRfZWZmZWN0X3BlbmRpbmcoKXtyZXR1cm4gdGhpcy4jaCgpLFIodGhpcy4jbSl9ZXJyb3IoZSl7aWYoIXRoaXMuI24ub25lcnJvciYmIXRoaXMuI24uZmFpbGVkKXRocm93IGU7aj8uaXNfZm9yaz8odGhpcy4jYSYmai5za2lwX2VmZmVjdCh0aGlzLiNhKSx0aGlzLiNvJiZqLnNraXBfZWZmZWN0KHRoaXMuI28pLHRoaXMuI3MmJmouc2tpcF9lZmZlY3QodGhpcy4jcyksai5vbl9mb3JrX2NvbW1pdCgoKT0+e3RoaXMuI0MoZSl9KSk6dGhpcy4jQyhlKX0jQyhlKXt0aGlzLiNhJiY9KFAodGhpcy4jYSksbnVsbCksdGhpcy4jbyYmPShQKHRoaXMuI28pLG51bGwpLHRoaXMuI3MmJj0oUCh0aGlzLiNzKSxudWxsKSxDJiYoVCh0aGlzLiN0KSxaZSgpLFQoUWUoKSkpO3ZhciB0PXRoaXMuI24ub25lcnJvcjtsZXQgbj10aGlzLiNuLmZhaWxlZDt2YXIgcj0hMSxpPSExO2xldCBhPSgpPT57aWYocil7cWUoKTtyZXR1cm59cj0hMCxpJiZ6ZSgpLHRoaXMuI3MhPT1udWxsJiZTcih0aGlzLiNzLCgpPT57dGhpcy4jcz1udWxsfSksdGhpcy4jeCgoKT0+e3RoaXMuI3koKX0pfSxvPWU9Pnt0cnl7aT0hMCx0Py4oZSxhKSxpPSExfWNhdGNoKGUpe3l0KGUsdGhpcy4jaSYmdGhpcy4jaS5wYXJlbnQpfW4mJih0aGlzLiNzPXRoaXMuI3goKCk9Pnt0cnl7cmV0dXJuIGdyKCgpPT57dmFyIHQ9STt0LmI9dGhpcyx0LmZ8PTEyOCxuKHRoaXMuI2UsKCk9PmUsKCk9PmEpfSl9Y2F0Y2goZSl7cmV0dXJuIHl0KGUsdGhpcy4jaS5wYXJlbnQpLG51bGx9fSkpfTtndCgoKT0+e3ZhciB0O3RyeXt0PXRoaXMudHJhbnNmb3JtX2Vycm9yKGUpfWNhdGNoKGUpe3l0KGUsdGhpcy4jaSYmdGhpcy4jaS5wYXJlbnQpO3JldHVybn10eXBlb2YgdD09YG9iamVjdGAmJnQmJnR5cGVvZiB0LnRoZW49PWBmdW5jdGlvbmA/dC50aGVuKG8sZT0+eXQoZSx0aGlzLiNpJiZ0aGlzLiNpLnBhcmVudCkpOm8odCl9KX19O2Z1bmN0aW9uIG9uKGUsdCxuLHIpe2xldCBpPWR0KCk/dW46cG47dmFyIGE9ZS5maWx0ZXIoZT0+IWUuc2V0dGxlZCk7aWYobi5sZW5ndGg9PT0wJiZhLmxlbmd0aD09PTApe3IodC5tYXAoaSkpO3JldHVybn12YXIgbz1JLHM9c24oKSxjPWEubGVuZ3RoPT09MT9hWzBdLnByb21pc2U6YS5sZW5ndGg+MT9Qcm9taXNlLmFsbChhLm1hcChlPT5lLnByb21pc2UpKTpudWxsO2Z1bmN0aW9uIGwoZSl7cygpO3RyeXtyKGUpfWNhdGNoKGUpe28uZiYxNjM4NHx8eXQoZSxvKX1jbigpfWlmKG4ubGVuZ3RoPT09MCl7Yy50aGVuKCgpPT5sKHQubWFwKGkpKSk7cmV0dXJufXZhciB1PWxuKCk7ZnVuY3Rpb24gZCgpe1Byb21pc2UuYWxsKG4ubWFwKGU9PmRuKGUpKSkudGhlbihlPT5sKFsuLi50Lm1hcChpKSwuLi5lXSkpLmNhdGNoKGU9Pnl0KGUsbykpLmZpbmFsbHkoKCk9PnUoKSl9Yz9jLnRoZW4oKCk9PntzKCksZCgpLGNuKCl9KTpkKCl9ZnVuY3Rpb24gc24oKXt2YXIgZT1JLHQ9RixuPUUscj1qO3JldHVybiBmdW5jdGlvbihpPSEwKXtOcihlKSxNcih0KSxvdChuKSxpJiYhKGUuZiYxNjM4NCkmJihyPy5hY3RpdmF0ZSgpLHI/LmFwcGx5KCkpfX1mdW5jdGlvbiBjbihlPSEwKXtOcihudWxsKSxNcihudWxsKSxvdChudWxsKSxlJiZqPy5kZWFjdGl2YXRlKCl9ZnVuY3Rpb24gbG4oKXt2YXIgZT1JLHQ9ZS5iLG49aixyPXQuaXNfcmVuZGVyZWQoKTtyZXR1cm4gdC51cGRhdGVfcGVuZGluZ19jb3VudCgxLG4pLG4uaW5jcmVtZW50KHIsZSksKGk9ITEpPT57dC51cGRhdGVfcGVuZGluZ19jb3VudCgtMSxuKSxuLmRlY3JlbWVudChyLGUsaSl9fWZ1bmN0aW9uIHVuKGUpe3ZhciB0PTJ8Y2U7cmV0dXJuIEkhPT1udWxsJiYoSS5mfD1oZSkse2N0eDpFLGRlcHM6bnVsbCxlZmZlY3RzOm51bGwsZXF1YWxzOmV0LGY6dCxmbjplLHJlYWN0aW9uczpudWxsLHJ2OjAsdjpTLHd2OjAscGFyZW50OkksYWM6bnVsbH19ZnVuY3Rpb24gZG4oZSx0LG4pe2xldCByPUk7cj09PW51bGwmJk9lKCk7dmFyIGk9dm9pZCAwLGE9U24oUyksbz0hRixzPW5ldyBNYXA7cmV0dXJuIGRyKCgpPT57dmFyIHQ9SSxuPWFlKCk7aT1uLnByb21pc2U7dHJ5e1Byb21pc2UucmVzb2x2ZShlKCkpLnRoZW4obi5yZXNvbHZlLG4ucmVqZWN0KS5maW5hbGx5KGNuKX1jYXRjaChlKXtuLnJlamVjdChlKSxjbigpfXZhciBjPWo7aWYobyl7aWYodC5mJjMyNzY4KXZhciBsPWxuKCk7aWYoci5iLmlzX3JlbmRlcmVkKCkpcy5nZXQoYyk/LnJlamVjdChUZSkscy5kZWxldGUoYyk7ZWxzZXtmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSllLnJlamVjdChUZSk7cy5jbGVhcigpfXMuc2V0KGMsbil9bGV0IHU9KGUsbj12b2lkIDApPT57aWYobCYmbChuPT09VGUpLCEobj09PVRlfHx0LmYmMTYzODQpKXtpZihjLmFjdGl2YXRlKCksbilhLmZ8PXhlLEVuKGEsbik7ZWxzZXthLmYmODM4ODYwOCYmKGEuZl49eGUpLEVuKGEsZSk7Zm9yKGxldFtlLHRdb2Ygcyl7aWYocy5kZWxldGUoZSksZT09PWMpYnJlYWs7dC5yZWplY3QoVGUpfX1jLmRlYWN0aXZhdGUoKX19O24ucHJvbWlzZS50aGVuKHUsZT0+dShudWxsLGV8fGB1bmtub3duYCkpfSksYXIoKCk9Pntmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSllLnJlamVjdChUZSl9KSxuZXcgUHJvbWlzZShlPT57ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiByKCl7bj09PWk/ZShhKTp0KGkpfW4udGhlbihyLHIpfXQoaSl9KX1mdW5jdGlvbiBmbihlKXtsZXQgdD11bihlKTtyZXR1cm4gcnR8fEZyKHQpLHR9ZnVuY3Rpb24gcG4oZSl7bGV0IHQ9dW4oZSk7cmV0dXJuIHQuZXF1YWxzPW50LHR9ZnVuY3Rpb24gbW4oZSl7dmFyIHQ9ZS5lZmZlY3RzO2lmKHQhPT1udWxsKXtlLmVmZmVjdHM9bnVsbDtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTEpUCh0W25dKX19ZnVuY3Rpb24gaG4oZSl7dmFyIHQsbj1JLHI9ZS5wYXJlbnQ7aWYoIWtyJiZyIT09bnVsbCYmci5mJjI0NTc2KXJldHVybiBXZSgpLGUudjtOcihyKTt0cnl7ZS5mJj1+dmUsbW4oZSksdD1LcihlKX1maW5hbGx5e05yKG4pfXJldHVybiB0fWZ1bmN0aW9uIGduKGUpe3ZhciB0PWhuKGUpO2lmKCFlLmVxdWFscyh0KSYmKGUud3Y9VXIoKSwoIWo/LmlzX2Zvcmt8fGUuZGVwcz09PW51bGwpJiYoaj09PW51bGw/ZS52PXQ6ai5jYXB0dXJlKGUsdCwhMCksZS5kZXBzPT09bnVsbCkpKXtEKGUsc2UpO3JldHVybn1rcnx8KE09PT1udWxsP3h0KGUpOihpcigpfHxqPy5pc19mb3JrKSYmTS5zZXQoZSx0KSl9ZnVuY3Rpb24gX24oZSl7aWYoZS5lZmZlY3RzIT09bnVsbClmb3IobGV0IHQgb2YgZS5lZmZlY3RzKSh0LnRlYXJkb3dufHx0LmFjKSYmKHQudGVhcmRvd24/LigpLHQuYWM/LmFib3J0KFRlKSx0LnRlYXJkb3duPXgsdC5hYz1udWxsLEpyKHQsMCksdnIodCkpfWZ1bmN0aW9uIHZuKGUpe2lmKGUuZWZmZWN0cyE9PW51bGwpZm9yKGxldCB0IG9mIGUuZWZmZWN0cyl0LnRlYXJkb3duJiZZcih0KX12YXIgeW49bmV3IFNldCxibj1uZXcgTWFwLHhuPSExO2Z1bmN0aW9uIFNuKGUsdCl7cmV0dXJue2Y6MCx2OmUscmVhY3Rpb25zOm51bGwsZXF1YWxzOmV0LHJ2OjAsd3Y6MH19ZnVuY3Rpb24gQ24oZSx0KXtsZXQgbj1TbihlLHQpO3JldHVybiBGcihuKSxufWZ1bmN0aW9uIHduKGUsdD0hMSxuPSEwKXtsZXQgcj1TbihlKTtyZXR1cm4gdHx8KHIuZXF1YWxzPW50KSxpdCYmbiYmRSE9PW51bGwmJkUubCE9PW51bGwmJihFLmwucz8/PVtdKS5wdXNoKHIpLHJ9ZnVuY3Rpb24gVG4oZSx0LG49ITEpe3JldHVybiBGIT09bnVsbCYmKCFqcnx8Ri5mJjEzMTA3MikmJmR0KCkmJkYuZiY0MzI1Mzk0JiYoUHI9PT1udWxsfHwhbS5jYWxsKFByLGUpKSYmUmUoKSxFbihlLG4/am4odCk6dCxIdCl9ZnVuY3Rpb24gRW4oZSx0LG49bnVsbCl7aWYoIWUuZXF1YWxzKHQpKXtibi5zZXQoZSxrcj90OmUudik7dmFyIHI9R3QuZW5zdXJlKCk7aWYoci5jYXB0dXJlKGUsdCksZS5mJjIpe2xldCB0PWU7ZS5mJjIwNDgmJmhuKHQpLE09PT1udWxsJiZ4dCh0KX1lLnd2PVVyKCksQW4oZSxjZSxuKSxkdCgpJiZJIT09bnVsbCYmSS5mJjEwMjQmJiEoSS5mJjk2KSYmKExyPT09bnVsbD9ScihbZV0pOkxyLnB1c2goZSkpLCFyLmlzX2ZvcmsmJnluLnNpemU+MCYmIXhuJiZEbigpfXJldHVybiB0fWZ1bmN0aW9uIERuKCl7eG49ITE7Zm9yKGxldCBlIG9mIHluKWUuZiYxMDI0JiZEKGUsbGUpLFdyKGUpJiZZcihlKTt5bi5jbGVhcigpfWZ1bmN0aW9uIE9uKGUsdD0xKXt2YXIgbj1SKGUpLHI9dD09PTE/bisrOm4tLTtyZXR1cm4gVG4oZSxuKSxyfWZ1bmN0aW9uIGtuKGUpe1RuKGUsZS52KzEpfWZ1bmN0aW9uIEFuKGUsdCxuKXt2YXIgcj1lLnJlYWN0aW9ucztpZihyIT09bnVsbClmb3IodmFyIGk9ZHQoKSxhPXIubGVuZ3RoLG89MDtvPGE7bysrKXt2YXIgcz1yW29dLGM9cy5mO2lmKCEoIWkmJnM9PT1JKSl7dmFyIGw9KGMmY2UpPT09MDtpZihsJiZEKHMsdCksYyYyKXt2YXIgdT1zO00/LmRlbGV0ZSh1KSxjJjY1NTM2fHwoYyY1MTImJihJPT09bnVsbHx8IShJLmYmMjA5NzE1MikpJiYocy5mfD12ZSksQW4odSxsZSxuKSl9ZWxzZSBpZihsKXt2YXIgZD1zO2MmMTYmJkp0IT09bnVsbCYmSnQuYWRkKGQpLG49PT1udWxsP1F0KGQpOm4ucHVzaChkKX19fX1mdW5jdGlvbiBqbihlKXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxTZSBpbiBlKXJldHVybiBlO2xldCB0PWIoZSk7aWYodCE9PXkmJnQhPT1lZSlyZXR1cm4gZTt2YXIgbj1uZXcgTWFwLHI9ZihlKSxpPUNuKDApLGE9bnVsbCxvPVZyLHM9ZT0+e2lmKFZyPT09bylyZXR1cm4gZSgpO3ZhciB0PUYsbj1WcjtNcihudWxsKSxIcihvKTt2YXIgcj1lKCk7cmV0dXJuIE1yKHQpLEhyKG4pLHJ9O3JldHVybiByJiZuLnNldChgbGVuZ3RoYCxDbihlLmxlbmd0aCxhKSksbmV3IFByb3h5KGUse2RlZmluZVByb3BlcnR5KGUsdCxyKXsoIShgdmFsdWVgaW4gcil8fHIuY29uZmlndXJhYmxlPT09ITF8fHIuZW51bWVyYWJsZT09PSExfHxyLndyaXRhYmxlPT09ITEpJiZJZSgpO3ZhciBpPW4uZ2V0KHQpO3JldHVybiBpPT09dm9pZCAwP3MoKCk9Pnt2YXIgZT1DbihyLnZhbHVlLGEpO3JldHVybiBuLnNldCh0LGUpLGV9KTpUbihpLHIudmFsdWUsITApLCEwfSxkZWxldGVQcm9wZXJ0eShlLHQpe3ZhciByPW4uZ2V0KHQpO2lmKHI9PT12b2lkIDApe2lmKHQgaW4gZSl7bGV0IGU9cygoKT0+Q24oUyxhKSk7bi5zZXQodCxlKSxrbihpKX19ZWxzZSBUbihyLFMpLGtuKGkpO3JldHVybiEwfSxnZXQodCxyLGkpe2lmKHI9PT1TZSlyZXR1cm4gZTt2YXIgbz1uLmdldChyKSxjPXIgaW4gdDtpZihvPT09dm9pZCAwJiYoIWN8fF8odCxyKT8ud3JpdGFibGUpJiYobz1zKCgpPT5DbihqbihjP3Rbcl06UyksYSkpLG4uc2V0KHIsbykpLG8hPT12b2lkIDApe3ZhciBsPVIobyk7cmV0dXJuIGw9PT1TP3ZvaWQgMDpsfXJldHVybiBSZWZsZWN0LmdldCh0LHIsaSl9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe3ZhciByPVJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYociYmYHZhbHVlYGluIHIpe3ZhciBpPW4uZ2V0KHQpO2kmJihyLnZhbHVlPVIoaSkpfWVsc2UgaWYocj09PXZvaWQgMCl7dmFyIGE9bi5nZXQodCksbz1hPy52O2lmKGEhPT12b2lkIDAmJm8hPT1TKXJldHVybntlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpvLHdyaXRhYmxlOiEwfX1yZXR1cm4gcn0saGFzKGUsdCl7aWYodD09PVNlKXJldHVybiEwO3ZhciByPW4uZ2V0KHQpLGk9ciE9PXZvaWQgMCYmci52IT09U3x8UmVmbGVjdC5oYXMoZSx0KTtyZXR1cm4ociE9PXZvaWQgMHx8SSE9PW51bGwmJighaXx8XyhlLHQpPy53cml0YWJsZSkpJiYocj09PXZvaWQgMCYmKHI9cygoKT0+Q24oaT9qbihlW3RdKTpTLGEpKSxuLnNldCh0LHIpKSxSKHIpPT09Uyk/ITE6aX0sc2V0KGUsdCxvLGMpe3ZhciBsPW4uZ2V0KHQpLHU9dCBpbiBlO2lmKHImJnQ9PT1gbGVuZ3RoYClmb3IodmFyIGQ9bztkPGwudjtkKz0xKXt2YXIgZj1uLmdldChkK2BgKTtmPT09dm9pZCAwP2QgaW4gZSYmKGY9cygoKT0+Q24oUyxhKSksbi5zZXQoZCtgYCxmKSk6VG4oZixTKX1pZihsPT09dm9pZCAwKSghdXx8XyhlLHQpPy53cml0YWJsZSkmJihsPXMoKCk9PkNuKHZvaWQgMCxhKSksVG4obCxqbihvKSksbi5zZXQodCxsKSk7ZWxzZXt1PWwudiE9PVM7dmFyIHA9cygoKT0+am4obykpO1RuKGwscCl9dmFyIG09UmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtpZihtPy5zZXQmJm0uc2V0LmNhbGwoYyxvKSwhdSl7aWYociYmdHlwZW9mIHQ9PWBzdHJpbmdgKXt2YXIgaD1uLmdldChgbGVuZ3RoYCksZz1OdW1iZXIodCk7TnVtYmVyLmlzSW50ZWdlcihnKSYmZz49aC52JiZUbihoLGcrMSl9a24oaSl9cmV0dXJuITB9LG93bktleXMoZSl7UihpKTt2YXIgdD1SZWZsZWN0Lm93bktleXMoZSkuZmlsdGVyKGU9Pnt2YXIgdD1uLmdldChlKTtyZXR1cm4gdD09PXZvaWQgMHx8dC52IT09U30pO2Zvcih2YXJbcixhXW9mIG4pYS52IT09UyYmIShyIGluIGUpJiZ0LnB1c2gocik7cmV0dXJuIHR9LHNldFByb3RvdHlwZU9mKCl7TGUoKX19KX1mdW5jdGlvbiBNbihlKXt0cnl7aWYodHlwZW9mIGU9PWBvYmplY3RgJiZlJiZTZSBpbiBlKXJldHVybiBlW1NlXX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gTm4oZSx0KXtyZXR1cm4gT2JqZWN0LmlzKE1uKGUpLE1uKHQpKX12YXIgUG4sRm4sSW4sTG47ZnVuY3Rpb24gUm4oKXtpZihQbj09PXZvaWQgMCl7UG49d2luZG93LEZuPS9GaXJlZm94Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO3ZhciBlPUVsZW1lbnQucHJvdG90eXBlLHQ9Tm9kZS5wcm90b3R5cGUsbj1UZXh0LnByb3RvdHlwZTtJbj1fKHQsYGZpcnN0Q2hpbGRgKS5nZXQsTG49Xyh0LGBuZXh0U2libGluZ2ApLmdldCx0ZShlKSYmKGUuX19jbGljaz12b2lkIDAsZS5fX2NsYXNzTmFtZT12b2lkIDAsZS5fX2F0dHJpYnV0ZXM9bnVsbCxlLl9fc3R5bGU9dm9pZCAwLGUuX19lPXZvaWQgMCksdGUobikmJihuLl9fdD12b2lkIDApfX1mdW5jdGlvbiB6bihlPWBgKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9ZnVuY3Rpb24gTihlKXtyZXR1cm4gSW4uY2FsbChlKX1mdW5jdGlvbiBCbihlKXtyZXR1cm4gTG4uY2FsbChlKX1mdW5jdGlvbiBWbihlLHQpe2lmKCFDKXJldHVybiBOKGUpO3ZhciBuPU4odyk7aWYobj09PW51bGwpbj13LmFwcGVuZENoaWxkKHpuKCkpO2Vsc2UgaWYodCYmbi5ub2RlVHlwZSE9PTMpe3ZhciByPXpuKCk7cmV0dXJuIG4/LmJlZm9yZShyKSxUKHIpLHJ9cmV0dXJuIHQmJkpuKG4pLFQobiksbn1mdW5jdGlvbiBIbihlLHQ9ITEpe2lmKCFDKXt2YXIgbj1OKGUpO3JldHVybiBuIGluc3RhbmNlb2YgQ29tbWVudCYmbi5kYXRhPT09YGA/Qm4obik6bn1pZih0KXtpZih3Py5ub2RlVHlwZSE9PTMpe3ZhciByPXpuKCk7cmV0dXJuIHc/LmJlZm9yZShyKSxUKHIpLHJ9Sm4odyl9cmV0dXJuIHd9ZnVuY3Rpb24gVW4oZSx0PTEsbj0hMSl7bGV0IHI9Qz93OmU7Zm9yKHZhciBpO3QtLTspaT1yLHI9Qm4ocik7aWYoIUMpcmV0dXJuIHI7aWYobil7aWYocj8ubm9kZVR5cGUhPT0zKXt2YXIgYT16bigpO3JldHVybiByPT09bnVsbD9pPy5hZnRlcihhKTpyLmJlZm9yZShhKSxUKGEpLGF9Sm4ocil9cmV0dXJuIFQocikscn1mdW5jdGlvbiBXbihlKXtlLnRleHRDb250ZW50PWBgfWZ1bmN0aW9uIEduKCl7cmV0dXJuIXJ0fHxKdCE9PW51bGw/ITE6KEkuZiZmZSkhPT0wfWZ1bmN0aW9uIEtuKGUsdCxuKXtsZXQgcj1uP3tpczpufTp2b2lkIDA7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0Pz9gaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbGAsZSxyKX1mdW5jdGlvbiBxbihlPWBgKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChlKX1mdW5jdGlvbiBKbihlKXtpZihlLm5vZGVWYWx1ZS5sZW5ndGg8NjU1MzYpcmV0dXJuO2xldCB0PWUubmV4dFNpYmxpbmc7Zm9yKDt0IT09bnVsbCYmdC5ub2RlVHlwZT09PTM7KXQucmVtb3ZlKCksZS5ub2RlVmFsdWUrPXQubm9kZVZhbHVlLHQ9ZS5uZXh0U2libGluZ31mdW5jdGlvbiBZbihlLHQpe2lmKHQpe2xldCB0PWRvY3VtZW50LmJvZHk7ZS5hdXRvZm9jdXM9ITAsZ3QoKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dCYmZS5mb2N1cygpfSl9fWZ1bmN0aW9uIFhuKGUpe0MmJk4oZSkhPT1udWxsJiZXbihlKX12YXIgWm49ITE7ZnVuY3Rpb24gUW4oKXtabnx8KFpuPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYHJlc2V0YCxlPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2lmKCFlLmRlZmF1bHRQcmV2ZW50ZWQpZm9yKGxldCB0IG9mIGUudGFyZ2V0LmVsZW1lbnRzKXQuX19vbl9yPy4oKX0pfSx7Y2FwdHVyZTohMH0pKX1mdW5jdGlvbiAkbihlKXt2YXIgdD1GLG49STtNcihudWxsKSxOcihudWxsKTt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e01yKHQpLE5yKG4pfX1mdW5jdGlvbiBlcihlLHQsbixyPW4pe2UuYWRkRXZlbnRMaXN0ZW5lcih0LCgpPT4kbihuKSk7bGV0IGk9ZS5fX29uX3I7aT9lLl9fb25fcj0oKT0+e2koKSxyKCEwKX06ZS5fX29uX3I9KCk9PnIoITApLFFuKCl9ZnVuY3Rpb24gdHIoZSl7ST09PW51bGwmJihGPT09bnVsbCYmTWUoZSksamUoKSksa3ImJkFlKGUpfWZ1bmN0aW9uIG5yKGUsdCl7dmFyIG49dC5sYXN0O249PT1udWxsP3QubGFzdD10LmZpcnN0PWU6KG4ubmV4dD1lLGUucHJldj1uLHQubGFzdD1lKX1mdW5jdGlvbiBycihlLHQpe3ZhciBuPUk7biE9PW51bGwmJm4uZiY4MTkyJiYoZXw9dWUpO3ZhciByPXtjdHg6RSxkZXBzOm51bGwsbm9kZXM6bnVsbCxmOmV8Y2V8NTEyLGZpcnN0Om51bGwsZm46dCxsYXN0Om51bGwsbmV4dDpudWxsLHBhcmVudDpuLGI6biYmbi5iLHByZXY6bnVsbCx0ZWFyZG93bjpudWxsLHd2OjAsYWM6bnVsbH07aj8ucmVnaXN0ZXJfY3JlYXRlZF9lZmZlY3Qocik7dmFyIGk9cjtpZihlJjQpVnQ9PT1udWxsP0d0LmVuc3VyZSgpLnNjaGVkdWxlKHIpOlZ0LnB1c2gocik7ZWxzZSBpZih0IT09bnVsbCl7dHJ5e1lyKHIpfWNhdGNoKGUpe3Rocm93IFAociksZX1pLmRlcHM9PT1udWxsJiZpLnRlYXJkb3duPT09bnVsbCYmaS5ub2Rlcz09PW51bGwmJmkuZmlyc3Q9PT1pLmxhc3QmJiEoaS5mJjUyNDI4OCkmJihpPWkuZmlyc3QsZSYxNiYmZSY2NTUzNiYmaSE9PW51bGwmJihpLmZ8PW1lKSl9aWYoaSE9PW51bGwmJihpLnBhcmVudD1uLG4hPT1udWxsJiZucihpLG4pLEYhPT1udWxsJiZGLmYmMiYmIShlJjY0KSkpe3ZhciBhPUY7KGEuZWZmZWN0cz8/PVtdKS5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIGlyKCl7cmV0dXJuIEYhPT1udWxsJiYhanJ9ZnVuY3Rpb24gYXIoZSl7bGV0IHQ9cnIoOCxudWxsKTtyZXR1cm4gRCh0LHNlKSx0LnRlYXJkb3duPWUsdH1mdW5jdGlvbiBvcihlKXt0cihgJGVmZmVjdGApO3ZhciB0PUkuZjtpZighRiYmdCYzMiYmISh0JjMyNzY4KSl7dmFyIG49RTsobi5lPz89W10pLnB1c2goZSl9ZWxzZSByZXR1cm4gc3IoZSl9ZnVuY3Rpb24gc3IoZSl7cmV0dXJuIHJyKDR8Z2UsZSl9ZnVuY3Rpb24gY3IoZSl7cmV0dXJuIHRyKGAkZWZmZWN0LnByZWApLHJyKDh8Z2UsZSl9ZnVuY3Rpb24gbHIoZSl7R3QuZW5zdXJlKCk7bGV0IHQ9cnIoNjR8aGUsZSk7cmV0dXJuKGU9e30pPT5uZXcgUHJvbWlzZShuPT57ZS5vdXRybz9Tcih0LCgpPT57UCh0KSxuKHZvaWQgMCl9KTooUCh0KSxuKHZvaWQgMCkpfSl9ZnVuY3Rpb24gdXIoZSl7cmV0dXJuIHJyKDQsZSl9ZnVuY3Rpb24gZHIoZSl7cmV0dXJuIHJyKGJlfGhlLGUpfWZ1bmN0aW9uIGZyKGUsdD0wKXtyZXR1cm4gcnIoOHx0LGUpfWZ1bmN0aW9uIHByKGUsdD1bXSxuPVtdLHI9W10pe29uKHIsdCxuLHQ9Pntycig4LCgpPT5lKC4uLnQubWFwKFIpKSl9KX1mdW5jdGlvbiBtcihlLHQ9MCl7cmV0dXJuIHJyKDE2fHQsZSl9ZnVuY3Rpb24gaHIoZSx0PTApe3JldHVybiBycihvZXx0LGUpfWZ1bmN0aW9uIGdyKGUpe3JldHVybiBycigzMnxoZSxlKX1mdW5jdGlvbiBfcihlKXt2YXIgdD1lLnRlYXJkb3duO2lmKHQhPT1udWxsKXtsZXQgZT1rcixuPUY7QXIoITApLE1yKG51bGwpO3RyeXt0LmNhbGwobnVsbCl9ZmluYWxseXtBcihlKSxNcihuKX19fWZ1bmN0aW9uIHZyKGUsdD0hMSl7dmFyIG49ZS5maXJzdDtmb3IoZS5maXJzdD1lLmxhc3Q9bnVsbDtuIT09bnVsbDspe2xldCBlPW4uYWM7ZSE9PW51bGwmJiRuKCgpPT57ZS5hYm9ydChUZSl9KTt2YXIgcj1uLm5leHQ7bi5mJjY0P24ucGFyZW50PW51bGw6UChuLHQpLG49cn19ZnVuY3Rpb24geXIoZSl7Zm9yKHZhciB0PWUuZmlyc3Q7dCE9PW51bGw7KXt2YXIgbj10Lm5leHQ7dC5mJjMyfHxQKHQpLHQ9bn19ZnVuY3Rpb24gUChlLHQ9ITApe3ZhciBuPSExOyh0fHxlLmYmMjYyMTQ0KSYmZS5ub2RlcyE9PW51bGwmJmUubm9kZXMuZW5kIT09bnVsbCYmKGJyKGUubm9kZXMuc3RhcnQsZS5ub2Rlcy5lbmQpLG49ITApLEQoZSxwZSksdnIoZSx0JiYhbiksSnIoZSwwKTt2YXIgcj1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYociE9PW51bGwpZm9yKGxldCBlIG9mIHIpZS5zdG9wKCk7X3IoZSksZS5mXj1wZSxlLmZ8PWRlO3ZhciBpPWUucGFyZW50O2khPT1udWxsJiZpLmZpcnN0IT09bnVsbCYmeHIoZSksZS5uZXh0PWUucHJldj1lLnRlYXJkb3duPWUuY3R4PWUuZGVwcz1lLmZuPWUubm9kZXM9ZS5hYz1lLmI9bnVsbH1mdW5jdGlvbiBicihlLHQpe2Zvcig7ZSE9PW51bGw7KXt2YXIgbj1lPT09dD9udWxsOkJuKGUpO2UucmVtb3ZlKCksZT1ufX1mdW5jdGlvbiB4cihlKXt2YXIgdD1lLnBhcmVudCxuPWUucHJldixyPWUubmV4dDtuIT09bnVsbCYmKG4ubmV4dD1yKSxyIT09bnVsbCYmKHIucHJldj1uKSx0IT09bnVsbCYmKHQuZmlyc3Q9PT1lJiYodC5maXJzdD1yKSx0Lmxhc3Q9PT1lJiYodC5sYXN0PW4pKX1mdW5jdGlvbiBTcihlLHQsbj0hMCl7dmFyIHI9W107Q3IoZSxyLCEwKTt2YXIgaT0oKT0+e24mJlAoZSksdCYmdCgpfSxhPXIubGVuZ3RoO2lmKGE+MCl7dmFyIG89KCk9Pi0tYXx8aSgpO2Zvcih2YXIgcyBvZiByKXMub3V0KG8pfWVsc2UgaSgpfWZ1bmN0aW9uIENyKGUsdCxuKXtpZighKGUuZiY4MTkyKSl7ZS5mXj11ZTt2YXIgcj1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYociE9PW51bGwpZm9yKGxldCBlIG9mIHIpKGUuaXNfZ2xvYmFsfHxuKSYmdC5wdXNoKGUpO2Zvcih2YXIgaT1lLmZpcnN0O2khPT1udWxsOyl7dmFyIGE9aS5uZXh0O2lmKCEoaS5mJjY0KSl7dmFyIG89KGkuZiY2NTUzNikhPTB8fChpLmYmMzIpIT0wJiYoZS5mJjE2KSE9MDtDcihpLHQsbz9uOiExKX1pPWF9fX1mdW5jdGlvbiB3cihlKXtUcihlLCEwKX1mdW5jdGlvbiBUcihlLHQpe2lmKGUuZiY4MTkyKXtlLmZePXVlLGUuZiYxMDI0fHwoRChlLGNlKSxHdC5lbnN1cmUoKS5zY2hlZHVsZShlKSk7Zm9yKHZhciBuPWUuZmlyc3Q7biE9PW51bGw7KXt2YXIgcj1uLm5leHQsaT0obi5mJjY1NTM2KSE9MHx8KG4uZiYzMikhPTA7VHIobixpP3Q6ITEpLG49cn12YXIgYT1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYoYSE9PW51bGwpZm9yKGxldCBlIG9mIGEpKGUuaXNfZ2xvYmFsfHx0KSYmZS5pbigpfX1mdW5jdGlvbiBFcihlLHQpe2lmKGUubm9kZXMpZm9yKHZhciBuPWUubm9kZXMuc3RhcnQscj1lLm5vZGVzLmVuZDtuIT09bnVsbDspe3ZhciBpPW49PT1yP251bGw6Qm4obik7dC5hcHBlbmQobiksbj1pfX12YXIgRHI9bnVsbCxPcj0hMSxrcj0hMTtmdW5jdGlvbiBBcihlKXtrcj1lfXZhciBGPW51bGwsanI9ITE7ZnVuY3Rpb24gTXIoZSl7Rj1lfXZhciBJPW51bGw7ZnVuY3Rpb24gTnIoZSl7ST1lfXZhciBQcj1udWxsO2Z1bmN0aW9uIEZyKGUpe0YhPT1udWxsJiYoIXJ0fHxGLmYmMikmJihQcj09PW51bGw/UHI9W2VdOlByLnB1c2goZSkpfXZhciBMPW51bGwsSXI9MCxMcj1udWxsO2Z1bmN0aW9uIFJyKGUpe0xyPWV9dmFyIHpyPTEsQnI9MCxWcj1CcjtmdW5jdGlvbiBIcihlKXtWcj1lfWZ1bmN0aW9uIFVyKCl7cmV0dXJuKyt6cn1mdW5jdGlvbiBXcihlKXt2YXIgdD1lLmY7aWYodCYyMDQ4KXJldHVybiEwO2lmKHQmMiYmKGUuZiY9fnZlKSx0JjQwOTYpe2Zvcih2YXIgbj1lLmRlcHMscj1uLmxlbmd0aCxpPTA7aTxyO2krKyl7dmFyIGE9bltpXTtpZihXcihhKSYmZ24oYSksYS53dj5lLnd2KXJldHVybiEwfXQmNTEyJiZNPT09bnVsbCYmRChlLHNlKX1yZXR1cm4hMX1mdW5jdGlvbiBHcihlLHQsbj0hMCl7dmFyIHI9ZS5yZWFjdGlvbnM7aWYociE9PW51bGwmJiEoIXJ0JiZQciE9PW51bGwmJm0uY2FsbChQcixlKSkpZm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV07YS5mJjI/R3IoYSx0LCExKTp0PT09YSYmKG4/RChhLGNlKTphLmYmMTAyNCYmRChhLGxlKSxRdChhKSl9fWZ1bmN0aW9uIEtyKGUpe3ZhciB0PUwsbj1JcixyPUxyLGk9RixhPVByLG89RSxzPWpyLGM9VnIsbD1lLmY7TD1udWxsLElyPTAsTHI9bnVsbCxGPWwmOTY/bnVsbDplLFByPW51bGwsb3QoZS5jdHgpLGpyPSExLFZyPSsrQnIsZS5hYyE9PW51bGwmJigkbigoKT0+e2UuYWMuYWJvcnQoVGUpfSksZS5hYz1udWxsKTt0cnl7ZS5mfD15ZTt2YXIgdT1lLmZuLGQ9dSgpO2UuZnw9ZmU7dmFyIGY9ZS5kZXBzLHA9aj8uaXNfZm9yaztpZihMIT09bnVsbCl7dmFyIG07aWYocHx8SnIoZSxJciksZiE9PW51bGwmJklyPjApZm9yKGYubGVuZ3RoPUlyK0wubGVuZ3RoLG09MDttPEwubGVuZ3RoO20rKylmW0lyK21dPUxbbV07ZWxzZSBlLmRlcHM9Zj1MO2lmKGlyKCkmJmUuZiY1MTIpZm9yKG09SXI7bTxmLmxlbmd0aDttKyspKGZbbV0ucmVhY3Rpb25zPz89W10pLnB1c2goZSl9ZWxzZSAhcCYmZiE9PW51bGwmJklyPGYubGVuZ3RoJiYoSnIoZSxJciksZi5sZW5ndGg9SXIpO2lmKGR0KCkmJkxyIT09bnVsbCYmIWpyJiZmIT09bnVsbCYmIShlLmYmNjE0NikpZm9yKG09MDttPExyLmxlbmd0aDttKyspR3IoTHJbbV0sZSk7aWYoaSE9PW51bGwmJmkhPT1lKXtpZihCcisrLGkuZGVwcyE9PW51bGwpZm9yKGxldCBlPTA7ZTxuO2UrPTEpaS5kZXBzW2VdLnJ2PUJyO2lmKHQhPT1udWxsKWZvcihsZXQgZSBvZiB0KWUucnY9QnI7THIhPT1udWxsJiYocj09PW51bGw/cj1McjpyLnB1c2goLi4uTHIpKX1yZXR1cm4gZS5mJjgzODg2MDgmJihlLmZePXhlKSxkfWNhdGNoKGUpe3JldHVybiB2dChlKX1maW5hbGx5e2UuZl49eWUsTD10LElyPW4sTHI9cixGPWksUHI9YSxvdChvKSxqcj1zLFZyPWN9fWZ1bmN0aW9uIHFyKGUsdCl7bGV0IG49dC5yZWFjdGlvbnM7aWYobiE9PW51bGwpe3ZhciByPXAuY2FsbChuLGUpO2lmKHIhPT0tMSl7dmFyIGk9bi5sZW5ndGgtMTtpPT09MD9uPXQucmVhY3Rpb25zPW51bGw6KG5bcl09bltpXSxuLnBvcCgpKX19aWYobj09PW51bGwmJnQuZiYyJiYoTD09PW51bGx8fCFtLmNhbGwoTCx0KSkpe3ZhciBhPXQ7YS5mJjUxMiYmKGEuZl49NTEyLGEuZiY9fnZlKSxhLnYhPT1TJiZ4dChhKSxfbihhKSxKcihhLDApfX1mdW5jdGlvbiBKcihlLHQpe3ZhciBuPWUuZGVwcztpZihuIT09bnVsbClmb3IodmFyIHI9dDtyPG4ubGVuZ3RoO3IrKylxcihlLG5bcl0pfWZ1bmN0aW9uIFlyKGUpe3ZhciB0PWUuZjtpZighKHQmMTYzODQpKXtEKGUsc2UpO3ZhciBuPUkscj1PcjtJPWUsT3I9ITA7dHJ5e3QmMTY3NzcyMzI/eXIoZSk6dnIoZSksX3IoZSk7dmFyIGk9S3IoZSk7ZS50ZWFyZG93bj10eXBlb2YgaT09YGZ1bmN0aW9uYD9pOm51bGwsZS53dj16cn1maW5hbGx5e09yPXIsST1ufX19YXN5bmMgZnVuY3Rpb24gWHIoKXtpZihydClyZXR1cm4gbmV3IFByb21pc2UoZT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+ZSgpKSxzZXRUaW1lb3V0KCgpPT5lKCkpfSk7YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCksS3QoKX1mdW5jdGlvbiBSKGUpe3ZhciB0PShlLmYmMikhPTA7aWYoRHI/LmFkZChlKSxGIT09bnVsbCYmIWpyJiYhKEkhPT1udWxsJiZJLmYmMTYzODQpJiYoUHI9PT1udWxsfHwhbS5jYWxsKFByLGUpKSl7dmFyIG49Ri5kZXBzO2lmKEYuZiYyMDk3MTUyKWUucnY8QnImJihlLnJ2PUJyLEw9PT1udWxsJiZuIT09bnVsbCYmbltJcl09PT1lP0lyKys6TD09PW51bGw/TD1bZV06TC5wdXNoKGUpKTtlbHNleyhGLmRlcHM/Pz1bXSkucHVzaChlKTt2YXIgcj1lLnJlYWN0aW9ucztyPT09bnVsbD9lLnJlYWN0aW9ucz1bRl06bS5jYWxsKHIsRil8fHIucHVzaChGKX19aWYoa3ImJmJuLmhhcyhlKSlyZXR1cm4gYm4uZ2V0KGUpO2lmKHQpe3ZhciBpPWU7aWYoa3Ipe3ZhciBhPWkudjtyZXR1cm4oIShpLmYmMTAyNCkmJmkucmVhY3Rpb25zIT09bnVsbHx8UXIoaSkpJiYoYT1obihpKSksYm4uc2V0KGksYSksYX12YXIgbz0oaS5mJjUxMik9PTAmJiFqciYmRiE9PW51bGwmJihPcnx8KEYuZiY1MTIpIT0wKSxzPShpLmYmZmUpPT09MDtXcihpKSYmKG8mJihpLmZ8PTUxMiksZ24oaSkpLG8mJiFzJiYodm4oaSksWnIoaSkpfWlmKE0/LmhhcyhlKSlyZXR1cm4gTS5nZXQoZSk7aWYoZS5mJjgzODg2MDgpdGhyb3cgZS52O3JldHVybiBlLnZ9ZnVuY3Rpb24gWnIoZSl7aWYoZS5mfD01MTIsZS5kZXBzIT09bnVsbClmb3IobGV0IHQgb2YgZS5kZXBzKSh0LnJlYWN0aW9ucz8/PVtdKS5wdXNoKGUpLHQuZiYyJiYhKHQuZiY1MTIpJiYodm4odCksWnIodCkpfWZ1bmN0aW9uIFFyKGUpe2lmKGUudj09PVMpcmV0dXJuITA7aWYoZS5kZXBzPT09bnVsbClyZXR1cm4hMTtmb3IobGV0IHQgb2YgZS5kZXBzKWlmKGJuLmhhcyh0KXx8dC5mJjImJlFyKHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uICRyKGUpe3ZhciB0PWpyO3RyeXtyZXR1cm4ganI9ITAsZSgpfWZpbmFsbHl7anI9dH19ZnVuY3Rpb24gZWkoZSl7aWYoISh0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxlIGluc3RhbmNlb2YgRXZlbnRUYXJnZXQpKXtpZihTZSBpbiBlKXRpKGUpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCB0IGluIGUpe2xldCBuPWVbdF07dHlwZW9mIG49PWBvYmplY3RgJiZuJiZTZSBpbiBuJiZ0aShuKX19fWZ1bmN0aW9uIHRpKGUsdD1uZXcgU2V0KXtpZih0eXBlb2YgZT09YG9iamVjdGAmJmUmJiEoZSBpbnN0YW5jZW9mIEV2ZW50VGFyZ2V0KSYmIXQuaGFzKGUpKXt0LmFkZChlKSxlIGluc3RhbmNlb2YgRGF0ZSYmZS5nZXRUaW1lKCk7Zm9yKGxldCBuIGluIGUpdHJ5e3RpKGVbbl0sdCl9Y2F0Y2h7fWxldCBuPWIoZSk7aWYobiE9PU9iamVjdC5wcm90b3R5cGUmJm4hPT1BcnJheS5wcm90b3R5cGUmJm4hPT1NYXAucHJvdG90eXBlJiZuIT09U2V0LnByb3RvdHlwZSYmbiE9PURhdGUucHJvdG90eXBlKXtsZXQgdD12KG4pO2ZvcihsZXQgbiBpbiB0KXtsZXQgcj10W25dLmdldDtpZihyKXRyeXtyLmNhbGwoZSl9Y2F0Y2h7fX19fX1mdW5jdGlvbiBuaShlKXtyZXR1cm4gZS5lbmRzV2l0aChgY2FwdHVyZWApJiZlIT09YGdvdHBvaW50ZXJjYXB0dXJlYCYmZSE9PWBsb3N0cG9pbnRlcmNhcHR1cmVgfXZhciByaT1bYGJlZm9yZWlucHV0YCxgY2xpY2tgLGBjaGFuZ2VgLGBkYmxjbGlja2AsYGNvbnRleHRtZW51YCxgZm9jdXNpbmAsYGZvY3Vzb3V0YCxgaW5wdXRgLGBrZXlkb3duYCxga2V5dXBgLGBtb3VzZWRvd25gLGBtb3VzZW1vdmVgLGBtb3VzZW91dGAsYG1vdXNlb3ZlcmAsYG1vdXNldXBgLGBwb2ludGVyZG93bmAsYHBvaW50ZXJtb3ZlYCxgcG9pbnRlcm91dGAsYHBvaW50ZXJvdmVyYCxgcG9pbnRlcnVwYCxgdG91Y2hlbmRgLGB0b3VjaG1vdmVgLGB0b3VjaHN0YXJ0YF07ZnVuY3Rpb24gaWkoZSl7cmV0dXJuIHJpLmluY2x1ZGVzKGUpfXZhciBhaT1gYWxsb3dmdWxsc2NyZWVuLmFzeW5jLmF1dG9mb2N1cy5hdXRvcGxheS5jaGVja2VkLmNvbnRyb2xzLmRlZmF1bHQuZGlzYWJsZWQuZm9ybW5vdmFsaWRhdGUuaW5kZXRlcm1pbmF0ZS5pbmVydC5pc21hcC5sb29wLm11bHRpcGxlLm11dGVkLm5vbW9kdWxlLm5vdmFsaWRhdGUub3Blbi5wbGF5c2lubGluZS5yZWFkb25seS5yZXF1aXJlZC5yZXZlcnNlZC5zZWFtbGVzcy5zZWxlY3RlZC53ZWJraXRkaXJlY3RvcnkuZGVmZXIuZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUuZGlzYWJsZXJlbW90ZXBsYXliYWNrYC5zcGxpdChgLmApLG9pPXtmb3Jtbm92YWxpZGF0ZTpgZm9ybU5vVmFsaWRhdGVgLGlzbWFwOmBpc01hcGAsbm9tb2R1bGU6YG5vTW9kdWxlYCxwbGF5c2lubGluZTpgcGxheXNJbmxpbmVgLHJlYWRvbmx5OmByZWFkT25seWAsZGVmYXVsdHZhbHVlOmBkZWZhdWx0VmFsdWVgLGRlZmF1bHRjaGVja2VkOmBkZWZhdWx0Q2hlY2tlZGAsc3Jjb2JqZWN0OmBzcmNPYmplY3RgLG5vdmFsaWRhdGU6YG5vVmFsaWRhdGVgLGFsbG93ZnVsbHNjcmVlbjpgYWxsb3dGdWxsc2NyZWVuYCxkaXNhYmxlcGljdHVyZWlucGljdHVyZTpgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVgLGRpc2FibGVyZW1vdGVwbGF5YmFjazpgZGlzYWJsZVJlbW90ZVBsYXliYWNrYH07ZnVuY3Rpb24gc2koZSl7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLG9pW2VdPz9lfVsuLi5haV07dmFyIGNpPVtgdG91Y2hzdGFydGAsYHRvdWNobW92ZWBdO2Z1bmN0aW9uIGxpKGUpe3JldHVybiBjaS5pbmNsdWRlcyhlKX12YXIgdWk9U3ltYm9sKGBldmVudHNgKSxkaT1uZXcgU2V0LGZpPW5ldyBTZXQ7ZnVuY3Rpb24gcGkoZSl7aWYoIUMpcmV0dXJuO2UucmVtb3ZlQXR0cmlidXRlKGBvbmxvYWRgKSxlLnJlbW92ZUF0dHJpYnV0ZShgb25lcnJvcmApO2xldCB0PWUuX19lO3QhPT12b2lkIDAmJihlLl9fZT12b2lkIDAscXVldWVNaWNyb3Rhc2soKCk9PntlLmlzQ29ubmVjdGVkJiZlLmRpc3BhdGNoRXZlbnQodCl9KSl9ZnVuY3Rpb24gbWkoZSx0LG4scj17fSl7ZnVuY3Rpb24gaShlKXtpZihyLmNhcHR1cmV8fHlpLmNhbGwodCxlKSwhZS5jYW5jZWxCdWJibGUpcmV0dXJuICRuKCgpPT5uPy5jYWxsKHRoaXMsZSkpfXJldHVybiBlLnN0YXJ0c1dpdGgoYHBvaW50ZXJgKXx8ZS5zdGFydHNXaXRoKGB0b3VjaGApfHxlPT09YHdoZWVsYD9ndCgoKT0+e3QuYWRkRXZlbnRMaXN0ZW5lcihlLGkscil9KTp0LmFkZEV2ZW50TGlzdGVuZXIoZSxpLHIpLGl9ZnVuY3Rpb24gaGkoZSx0LG4scixpKXt2YXIgYT17Y2FwdHVyZTpyLHBhc3NpdmU6aX0sbz1taShlLHQsbixhKTsodD09PWRvY3VtZW50LmJvZHl8fHQ9PT13aW5kb3d8fHQ9PT1kb2N1bWVudHx8dCBpbnN0YW5jZW9mIEhUTUxNZWRpYUVsZW1lbnQpJiZhcigoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG8sYSl9KX1mdW5jdGlvbiBnaShlLHQsbil7KHRbdWldPz89e30pW2VdPW59ZnVuY3Rpb24gX2koZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZGkuYWRkKGVbdF0pO2Zvcih2YXIgbiBvZiBmaSluKGUpfXZhciB2aT1udWxsO2Z1bmN0aW9uIHlpKGUpe3ZhciB0PXRoaXMsbj10Lm93bmVyRG9jdW1lbnQscj1lLnR5cGUsaT1lLmNvbXBvc2VkUGF0aD8uKCl8fFtdLGE9aVswXXx8ZS50YXJnZXQ7dmk9ZTt2YXIgbz0wLHM9dmk9PT1lJiZlW3VpXTtpZihzKXt2YXIgYz1pLmluZGV4T2Yocyk7aWYoYyE9PS0xJiYodD09PWRvY3VtZW50fHx0PT09d2luZG93KSl7ZVt1aV09dDtyZXR1cm59dmFyIGw9aS5pbmRleE9mKHQpO2lmKGw9PT0tMSlyZXR1cm47Yzw9bCYmKG89Yyl9aWYoYT1pW29dfHxlLnRhcmdldCxhIT09dCl7ZyhlLGBjdXJyZW50VGFyZ2V0YCx7Y29uZmlndXJhYmxlOiEwLGdldCgpe3JldHVybiBhfHxufX0pO3ZhciB1PUYsZD1JO01yKG51bGwpLE5yKG51bGwpO3RyeXtmb3IodmFyIGYscD1bXTthIT09bnVsbDspe3ZhciBtPWEuYXNzaWduZWRTbG90fHxhLnBhcmVudE5vZGV8fGEuaG9zdHx8bnVsbDt0cnl7dmFyIGg9YVt1aV0/LltyXTtoIT1udWxsJiYoIWEuZGlzYWJsZWR8fGUudGFyZ2V0PT09YSkmJmguY2FsbChhLGUpfWNhdGNoKGUpe2Y/cC5wdXNoKGUpOmY9ZX1pZihlLmNhbmNlbEJ1YmJsZXx8bT09PXR8fG09PT1udWxsKWJyZWFrO2E9bX1pZihmKXtmb3IobGV0IGUgb2YgcClxdWV1ZU1pY3JvdGFzaygoKT0+e3Rocm93IGV9KTt0aHJvdyBmfX1maW5hbGx5e2VbdWldPXQsZGVsZXRlIGUuY3VycmVudFRhcmdldCxNcih1KSxOcihkKX19fXZhciBiaT1nbG9iYWxUaGlzPy53aW5kb3c/LnRydXN0ZWRUeXBlcyYmZ2xvYmFsVGhpcy53aW5kb3cudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeShgc3ZlbHRlLXRydXN0ZWQtaHRtbGAse2NyZWF0ZUhUTUw6ZT0+ZX0pO2Z1bmN0aW9uIHhpKGUpe3JldHVybiBiaT8uY3JlYXRlSFRNTChlKT8/ZX1mdW5jdGlvbiBTaShlKXt2YXIgdD1LbihgdGVtcGxhdGVgKTtyZXR1cm4gdC5pbm5lckhUTUw9eGkoZS5yZXBsYWNlQWxsKGA8IT5gLGA8IS0tLS0+YCkpLHQuY29udGVudH1mdW5jdGlvbiBDaShlLHQpe3ZhciBuPUk7bi5ub2Rlcz09PW51bGwmJihuLm5vZGVzPXtzdGFydDplLGVuZDp0LGE6bnVsbCx0Om51bGx9KX1mdW5jdGlvbiB3aShlLHQpe3ZhciBuPSh0JjEpIT0wLHI9KHQmMikhPTAsaSxhPSFlLnN0YXJ0c1dpdGgoYDwhPmApO3JldHVybigpPT57aWYoQylyZXR1cm4gQ2kodyxudWxsKSx3O2k9PT12b2lkIDAmJihpPVNpKGE/ZTpgPCE+YCtlKSxufHwoaT1OKGkpKSk7dmFyIHQ9cnx8Rm4/ZG9jdW1lbnQuaW1wb3J0Tm9kZShpLCEwKTppLmNsb25lTm9kZSghMCk7aWYobil7dmFyIG89Tih0KSxzPXQubGFzdENoaWxkO0NpKG8scyl9ZWxzZSBDaSh0LHQpO3JldHVybiB0fX1mdW5jdGlvbiBUaShlLHQsbj1gc3ZnYCl7dmFyIHI9IWUuc3RhcnRzV2l0aChgPCE+YCksaT0odCYxKSE9MCxhPWA8JHtufT4ke3I/ZTpgPCE+YCtlfTwvJHtufT5gLG87cmV0dXJuKCk9PntpZihDKXJldHVybiBDaSh3LG51bGwpLHc7aWYoIW8pe3ZhciBlPU4oU2koYSkpO2lmKGkpZm9yKG89ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO04oZSk7KW8uYXBwZW5kQ2hpbGQoTihlKSk7ZWxzZSBvPU4oZSl9dmFyIHQ9by5jbG9uZU5vZGUoITApO2lmKGkpe3ZhciBuPU4odCkscj10Lmxhc3RDaGlsZDtDaShuLHIpfWVsc2UgQ2kodCx0KTtyZXR1cm4gdH19ZnVuY3Rpb24gRWkoZSx0KXtyZXR1cm4gVGkoZSx0LGBzdmdgKX1mdW5jdGlvbiBEaShlPWBgKXtpZighQyl7dmFyIHQ9em4oZStgYCk7cmV0dXJuIENpKHQsdCksdH12YXIgbj13O3JldHVybiBuLm5vZGVUeXBlPT09Mz9KbihuKToobi5iZWZvcmUobj16bigpKSxUKG4pKSxDaShuLG4pLG59ZnVuY3Rpb24gT2koKXtpZihDKXJldHVybiBDaSh3LG51bGwpLHc7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9ZG9jdW1lbnQuY3JlYXRlQ29tbWVudChgYCksbj16bigpO3JldHVybiBlLmFwcGVuZCh0LG4pLENpKHQsbiksZX1mdW5jdGlvbiBraShlLHQpe2lmKEMpe3ZhciBuPUk7KCEobi5mJjMyNzY4KXx8bi5ub2Rlcy5lbmQ9PT1udWxsKSYmKG4ubm9kZXMuZW5kPXcpLFllKCk7cmV0dXJufWUhPT1udWxsJiZlLmJlZm9yZSh0KX12YXIgQWk9ITA7ZnVuY3Rpb24gamkoZSx0KXt2YXIgbj10PT1udWxsP2BgOnR5cGVvZiB0PT1gb2JqZWN0YD9gJHt0fWA6dDtuIT09KGUuX190Pz89ZS5ub2RlVmFsdWUpJiYoZS5fX3Q9bixlLm5vZGVWYWx1ZT1gJHtufWApfWZ1bmN0aW9uIE1pKGUsdCl7cmV0dXJuIFBpKGUsdCl9dmFyIE5pPW5ldyBNYXA7ZnVuY3Rpb24gUGkoZSx7dGFyZ2V0OnQsYW5jaG9yOm4scHJvcHM6cj17fSxldmVudHM6aSxjb250ZXh0OmEsaW50cm86bz0hMCx0cmFuc2Zvcm1FcnJvcjpzfSl7Um4oKTt2YXIgYz12b2lkIDAsbD1scigoKT0+e3ZhciBsPW4/P3QuYXBwZW5kQ2hpbGQoem4oKSk7cm4obCx7cGVuZGluZzooKT0+e319LHQ9PntsdCh7fSk7dmFyIG49RTtpZihhJiYobi5jPWEpLGkmJihyLiQkZXZlbnRzPWkpLEMmJkNpKHQsbnVsbCksQWk9byxjPWUodCxyKXx8e30sQWk9ITAsQyYmKEkubm9kZXMuZW5kPXcsdz09PW51bGx8fHcubm9kZVR5cGUhPT04fHx3LmRhdGEhPT1gXWApKXRocm93IEdlKCksQmU7dXQoKX0scyk7dmFyIHU9bmV3IFNldCxkPWU9Pntmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtpZighdS5oYXMocikpe3UuYWRkKHIpO3ZhciBpPWxpKHIpO2ZvcihsZXQgZSBvZlt0LGRvY3VtZW50XSl7dmFyIGE9TmkuZ2V0KGUpO2E9PT12b2lkIDAmJihhPW5ldyBNYXAsTmkuc2V0KGUsYSkpO3ZhciBvPWEuZ2V0KHIpO289PT12b2lkIDA/KGUuYWRkRXZlbnRMaXN0ZW5lcihyLHlpLHtwYXNzaXZlOml9KSxhLnNldChyLDEpKTphLnNldChyLG8rMSl9fX19O3JldHVybiBkKGgoZGkpKSxmaS5hZGQoZCksKCk9Pntmb3IodmFyIGUgb2YgdSlmb3IobGV0IG4gb2ZbdCxkb2N1bWVudF0pe3ZhciByPU5pLmdldChuKSxpPXIuZ2V0KGUpOy0taT09MD8obi5yZW1vdmVFdmVudExpc3RlbmVyKGUseWkpLHIuZGVsZXRlKGUpLHIuc2l6ZT09PTAmJk5pLmRlbGV0ZShuKSk6ci5zZXQoZSxpKX1maS5kZWxldGUoZCksbCE9PW4mJmwucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobCl9fSk7cmV0dXJuIEZpLnNldChjLGwpLGN9dmFyIEZpPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIElpKGUsdCl7bGV0IG49RmkuZ2V0KGUpO3JldHVybiBuPyhGaS5kZWxldGUoZSksbih0KSk6UHJvbWlzZS5yZXNvbHZlKCl9dmFyIExpPWNsYXNze2FuY2hvcjsjZT1uZXcgTWFwOyN0PW5ldyBNYXA7I249bmV3IE1hcDsjcj1uZXcgU2V0OyNpPSEwO2NvbnN0cnVjdG9yKGUsdD0hMCl7dGhpcy5hbmNob3I9ZSx0aGlzLiNpPXR9I2E9ZT0+e2lmKHRoaXMuI2UuaGFzKGUpKXt2YXIgdD10aGlzLiNlLmdldChlKSxuPXRoaXMuI3QuZ2V0KHQpO2lmKG4pd3IobiksdGhpcy4jci5kZWxldGUodCk7ZWxzZXt2YXIgcj10aGlzLiNuLmdldCh0KTtyJiYodGhpcy4jdC5zZXQodCxyLmVmZmVjdCksdGhpcy4jbi5kZWxldGUodCksci5mcmFnbWVudC5sYXN0Q2hpbGQucmVtb3ZlKCksdGhpcy5hbmNob3IuYmVmb3JlKHIuZnJhZ21lbnQpLG49ci5lZmZlY3QpfWZvcihsZXRbdCxuXW9mIHRoaXMuI2Upe2lmKHRoaXMuI2UuZGVsZXRlKHQpLHQ9PT1lKWJyZWFrO2xldCByPXRoaXMuI24uZ2V0KG4pO3ImJihQKHIuZWZmZWN0KSx0aGlzLiNuLmRlbGV0ZShuKSl9Zm9yKGxldFtlLHJdb2YgdGhpcy4jdCl7aWYoZT09PXR8fHRoaXMuI3IuaGFzKGUpKWNvbnRpbnVlO2xldCBpPSgpPT57aWYoQXJyYXkuZnJvbSh0aGlzLiNlLnZhbHVlcygpKS5pbmNsdWRlcyhlKSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO0VyKHIsdCksdC5hcHBlbmQoem4oKSksdGhpcy4jbi5zZXQoZSx7ZWZmZWN0OnIsZnJhZ21lbnQ6dH0pfWVsc2UgUChyKTt0aGlzLiNyLmRlbGV0ZShlKSx0aGlzLiN0LmRlbGV0ZShlKX07dGhpcy4jaXx8IW4/KHRoaXMuI3IuYWRkKGUpLFNyKHIsaSwhMSkpOmkoKX19fTsjbz1lPT57dGhpcy4jZS5kZWxldGUoZSk7bGV0IHQ9QXJyYXkuZnJvbSh0aGlzLiNlLnZhbHVlcygpKTtmb3IobGV0W2Usbl1vZiB0aGlzLiNuKXQuaW5jbHVkZXMoZSl8fChQKG4uZWZmZWN0KSx0aGlzLiNuLmRlbGV0ZShlKSl9O2Vuc3VyZShlLHQpe3ZhciBuPWoscj1HbigpO2lmKHQmJiF0aGlzLiN0LmhhcyhlKSYmIXRoaXMuI24uaGFzKGUpKWlmKHIpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxhPXpuKCk7aS5hcHBlbmQoYSksdGhpcy4jbi5zZXQoZSx7ZWZmZWN0OmdyKCgpPT50KGEpKSxmcmFnbWVudDppfSl9ZWxzZSB0aGlzLiN0LnNldChlLGdyKCgpPT50KHRoaXMuYW5jaG9yKSkpO2lmKHRoaXMuI2Uuc2V0KG4sZSkscil7Zm9yKGxldFt0LHJdb2YgdGhpcy4jdCl0PT09ZT9uLnVuc2tpcF9lZmZlY3Qocik6bi5za2lwX2VmZmVjdChyKTtmb3IobGV0W3Qscl1vZiB0aGlzLiNuKXQ9PT1lP24udW5za2lwX2VmZmVjdChyLmVmZmVjdCk6bi5za2lwX2VmZmVjdChyLmVmZmVjdCk7bi5vbmNvbW1pdCh0aGlzLiNhKSxuLm9uZGlzY2FyZCh0aGlzLiNvKX1lbHNlIEMmJih0aGlzLmFuY2hvcj13KSx0aGlzLiNhKG4pfX07ZnVuY3Rpb24gUmkoZSx0LG49ITEpe3ZhciByO0MmJihyPXcsWWUoKSk7dmFyIGk9bmV3IExpKGUpLGE9bj9tZTowO2Z1bmN0aW9uIG8oZSx0KXtpZihDKXt2YXIgbj0kZShyKTtpZihlIT09cGFyc2VJbnQobi5zdWJzdHJpbmcoMSkpKXt2YXIgYT1RZSgpO1QoYSksaS5hbmNob3I9YSxKZSghMSksaS5lbnN1cmUoZSx0KSxKZSghMCk7cmV0dXJufX1pLmVuc3VyZShlLHQpfW1yKCgpPT57dmFyIGU9ITE7dCgodCxuPTApPT57ZT0hMCxvKG4sdCl9KSxlfHxvKC0xLG51bGwpfSxhKX12YXIgemk9U3ltYm9sKGBOYU5gKTtmdW5jdGlvbiBCaShlLHQsbil7QyYmWWUoKTt2YXIgcj1uZXcgTGkoZSksaT0hZHQoKTttcigoKT0+e3ZhciBlPXQoKTtlIT09ZSYmKGU9emkpLGkmJnR5cGVvZiBlPT1gb2JqZWN0YCYmZSYmKGU9e30pLHIuZW5zdXJlKGUsbil9KX1mdW5jdGlvbiBWaShlLHQpe3JldHVybiB0fWZ1bmN0aW9uIEhpKGUsdCxuKXtmb3IodmFyIHI9W10saT10Lmxlbmd0aCxhLG89dC5sZW5ndGgscz0wO3M8aTtzKyspe2xldCBuPXRbc107U3IobiwoKT0+e2lmKGEpe2lmKGEucGVuZGluZy5kZWxldGUobiksYS5kb25lLmFkZChuKSxhLnBlbmRpbmcuc2l6ZT09PTApe3ZhciB0PWUub3V0cm9ncm91cHM7VWkoZSxoKGEuZG9uZSkpLHQuZGVsZXRlKGEpLHQuc2l6ZT09PTAmJihlLm91dHJvZ3JvdXBzPW51bGwpfX1lbHNlIC0tb30sITEpfWlmKG89PT0wKXt2YXIgYz1yLmxlbmd0aD09PTAmJm4hPT1udWxsO2lmKGMpe3ZhciBsPW4sdT1sLnBhcmVudE5vZGU7V24odSksdS5hcHBlbmQobCksZS5pdGVtcy5jbGVhcigpfVVpKGUsdCwhYyl9ZWxzZSBhPXtwZW5kaW5nOm5ldyBTZXQodCksZG9uZTpuZXcgU2V0fSwoZS5vdXRyb2dyb3Vwcz8/PW5ldyBTZXQpLmFkZChhKX1mdW5jdGlvbiBVaShlLHQsbj0hMCl7dmFyIHI7aWYoZS5wZW5kaW5nLnNpemU+MCl7cj1uZXcgU2V0O2ZvcihsZXQgdCBvZiBlLnBlbmRpbmcudmFsdWVzKCkpZm9yKGxldCBuIG9mIHQpci5hZGQoZS5pdGVtcy5nZXQobikuZSl9Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07cj8uaGFzKGEpPyhhLmZ8PV9lLEVyKGEsZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKSk6UCh0W2ldLG4pfX12YXIgV2k7ZnVuY3Rpb24gR2koZSx0LG4scixpLGE9bnVsbCl7dmFyIG89ZSxzPW5ldyBNYXA7aWYodCY0KXt2YXIgYz1lO289Qz9UKE4oYykpOmMuYXBwZW5kQ2hpbGQoem4oKSl9QyYmWWUoKTt2YXIgbD1udWxsLHU9cG4oKCk9Pnt2YXIgZT1uKCk7cmV0dXJuIGYoZSk/ZTplPT1udWxsP1tdOmgoZSl9KSxkLHA9bmV3IE1hcCxtPSEwO2Z1bmN0aW9uIGcoZSl7di5lZmZlY3QuZiYxNjM4NHx8KHYucGVuZGluZy5kZWxldGUoZSksdi5mYWxsYmFjaz1sLHFpKHYsZCxvLHQsciksbCE9PW51bGwmJihkLmxlbmd0aD09PTA/bC5mJjMzNTU0NDMyPyhsLmZePV9lLFlpKGwsbnVsbCxvKSk6d3IobCk6U3IobCwoKT0+e2w9bnVsbH0pKSl9ZnVuY3Rpb24gXyhlKXt2LnBlbmRpbmcuZGVsZXRlKGUpfXZhciB2PXtlZmZlY3Q6bXIoKCk9PntkPVIodSk7dmFyIGU9ZC5sZW5ndGg7bGV0IGM9ITE7QyYmJGUobyk9PT1gWyFgIT0oZT09PTApJiYobz1RZSgpLFQobyksSmUoITEpLGM9ITApO2Zvcih2YXIgZj1uZXcgU2V0LGg9aix2PUduKCkseT0wO3k8ZTt5Kz0xKXtDJiZ3Lm5vZGVUeXBlPT09OCYmdy5kYXRhPT09YF1gJiYobz13LGM9ITAsSmUoITEpKTt2YXIgZWU9ZFt5XSxiPXIoZWUseSksdGU9bT9udWxsOnMuZ2V0KGIpO3RlPyh0ZS52JiZFbih0ZS52LGVlKSx0ZS5pJiZFbih0ZS5pLHkpLHYmJmgudW5za2lwX2VmZmVjdCh0ZS5lKSk6KHRlPUppKHMsbT9vOldpPz89em4oKSxlZSxiLHksaSx0LG4pLG18fCh0ZS5lLmZ8PV9lKSxzLnNldChiLHRlKSksZi5hZGQoYil9aWYoZT09PTAmJmEmJiFsJiYobT9sPWdyKCgpPT5hKG8pKToobD1ncigoKT0+YShXaT8/PXpuKCkpKSxsLmZ8PV9lKSksZT5mLnNpemUmJmtlKGBgLGBgLGBgKSxDJiZlPjAmJlQoUWUoKSksIW0paWYocC5zZXQoaCxmKSx2KXtmb3IobGV0W2UsdF1vZiBzKWYuaGFzKGUpfHxoLnNraXBfZWZmZWN0KHQuZSk7aC5vbmNvbW1pdChnKSxoLm9uZGlzY2FyZChfKX1lbHNlIGcoaCk7YyYmSmUoITApLFIodSl9KSxmbGFnczp0LGl0ZW1zOnMscGVuZGluZzpwLG91dHJvZ3JvdXBzOm51bGwsZmFsbGJhY2s6bH07bT0hMSxDJiYobz13KX1mdW5jdGlvbiBLaShlKXtmb3IoO2UhPT1udWxsJiYhKGUuZiYzMik7KWU9ZS5uZXh0O3JldHVybiBlfWZ1bmN0aW9uIHFpKGUsdCxuLHIsaSl7dmFyIGE9KHImOCkhPTAsbz10Lmxlbmd0aCxzPWUuaXRlbXMsYz1LaShlLmVmZmVjdC5maXJzdCksbCx1PW51bGwsZCxmPVtdLHA9W10sbSxnLF8sdjtpZihhKWZvcih2PTA7djxvO3YrPTEpbT10W3ZdLGc9aShtLHYpLF89cy5nZXQoZykuZSxfLmYmMzM1NTQ0MzJ8fChfLm5vZGVzPy5hPy5tZWFzdXJlKCksKGQ/Pz1uZXcgU2V0KS5hZGQoXykpO2Zvcih2PTA7djxvO3YrPTEpe2lmKG09dFt2XSxnPWkobSx2KSxfPXMuZ2V0KGcpLmUsZS5vdXRyb2dyb3VwcyE9PW51bGwpZm9yKGxldCB0IG9mIGUub3V0cm9ncm91cHMpdC5wZW5kaW5nLmRlbGV0ZShfKSx0LmRvbmUuZGVsZXRlKF8pO2lmKF8uZiY4MTkyJiYod3IoXyksYSYmKF8ubm9kZXM/LmE/LnVuZml4KCksKGQ/Pz1uZXcgU2V0KS5kZWxldGUoXykpKSxfLmYmMzM1NTQ0MzIpaWYoXy5mXj1fZSxfPT09YylZaShfLG51bGwsbik7ZWxzZXt2YXIgeT11P3UubmV4dDpjO189PT1lLmVmZmVjdC5sYXN0JiYoZS5lZmZlY3QubGFzdD1fLnByZXYpLF8ucHJldiYmKF8ucHJldi5uZXh0PV8ubmV4dCksXy5uZXh0JiYoXy5uZXh0LnByZXY9Xy5wcmV2KSxYaShlLHUsXyksWGkoZSxfLHkpLFlpKF8seSxuKSx1PV8sZj1bXSxwPVtdLGM9S2kodS5uZXh0KTtjb250aW51ZX1pZihfIT09Yyl7aWYobCE9PXZvaWQgMCYmbC5oYXMoXykpe2lmKGYubGVuZ3RoPHAubGVuZ3RoKXt2YXIgZWU9cFswXSxiO3U9ZWUucHJldjt2YXIgdGU9ZlswXSxuZT1mW2YubGVuZ3RoLTFdO2ZvcihiPTA7YjxmLmxlbmd0aDtiKz0xKVlpKGZbYl0sZWUsbik7Zm9yKGI9MDtiPHAubGVuZ3RoO2IrPTEpbC5kZWxldGUocFtiXSk7WGkoZSx0ZS5wcmV2LG5lLm5leHQpLFhpKGUsdSx0ZSksWGkoZSxuZSxlZSksYz1lZSx1PW5lLC0tdixmPVtdLHA9W119ZWxzZSBsLmRlbGV0ZShfKSxZaShfLGMsbiksWGkoZSxfLnByZXYsXy5uZXh0KSxYaShlLF8sdT09PW51bGw/ZS5lZmZlY3QuZmlyc3Q6dS5uZXh0KSxYaShlLHUsXyksdT1fO2NvbnRpbnVlfWZvcihmPVtdLHA9W107YyE9PW51bGwmJmMhPT1fOykobD8/PW5ldyBTZXQpLmFkZChjKSxwLnB1c2goYyksYz1LaShjLm5leHQpO2lmKGM9PT1udWxsKWNvbnRpbnVlfV8uZiYzMzU1NDQzMnx8Zi5wdXNoKF8pLHU9XyxjPUtpKF8ubmV4dCl9aWYoZS5vdXRyb2dyb3VwcyE9PW51bGwpe2ZvcihsZXQgdCBvZiBlLm91dHJvZ3JvdXBzKXQucGVuZGluZy5zaXplPT09MCYmKFVpKGUsaCh0LmRvbmUpKSxlLm91dHJvZ3JvdXBzPy5kZWxldGUodCkpO2Uub3V0cm9ncm91cHMuc2l6ZT09PTAmJihlLm91dHJvZ3JvdXBzPW51bGwpfWlmKGMhPT1udWxsfHxsIT09dm9pZCAwKXt2YXIgeD1bXTtpZihsIT09dm9pZCAwKWZvcihfIG9mIGwpXy5mJjgxOTJ8fHgucHVzaChfKTtmb3IoO2MhPT1udWxsOykhKGMuZiY4MTkyKSYmYyE9PWUuZmFsbGJhY2smJngucHVzaChjKSxjPUtpKGMubmV4dCk7dmFyIHJlPXgubGVuZ3RoO2lmKHJlPjApe3ZhciBpZT1yJjQmJm89PT0wP246bnVsbDtpZihhKXtmb3Iodj0wO3Y8cmU7dis9MSl4W3ZdLm5vZGVzPy5hPy5tZWFzdXJlKCk7Zm9yKHY9MDt2PHJlO3YrPTEpeFt2XS5ub2Rlcz8uYT8uZml4KCl9SGkoZSx4LGllKX19YSYmZ3QoKCk9PntpZihkIT09dm9pZCAwKWZvcihfIG9mIGQpXy5ub2Rlcz8uYT8uYXBwbHkoKX0pfWZ1bmN0aW9uIEppKGUsdCxuLHIsaSxhLG8scyl7dmFyIGM9byYxP28mMTY/U24obik6d24obiwhMSwhMSk6bnVsbCxsPW8mMj9TbihpKTpudWxsO3JldHVybnt2OmMsaTpsLGU6Z3IoKCk9PihhKHQsYz8/bixsPz9pLHMpLCgpPT57ZS5kZWxldGUocil9KSl9fWZ1bmN0aW9uIFlpKGUsdCxuKXtpZihlLm5vZGVzKWZvcih2YXIgcj1lLm5vZGVzLnN0YXJ0LGk9ZS5ub2Rlcy5lbmQsYT10JiYhKHQuZiYzMzU1NDQzMik/dC5ub2Rlcy5zdGFydDpuO3IhPT1udWxsOyl7dmFyIG89Qm4ocik7aWYoYS5iZWZvcmUocikscj09PWkpcmV0dXJuO3I9b319ZnVuY3Rpb24gWGkoZSx0LG4pe3Q9PT1udWxsP2UuZWZmZWN0LmZpcnN0PW46dC5uZXh0PW4sbj09PW51bGw/ZS5lZmZlY3QubGFzdD10Om4ucHJldj10fWZ1bmN0aW9uIFppKGUsdCxuPSExLHI9ITEsaT0hMSxhPSExKXt2YXIgbz1lLHM9YGA7aWYobil7dmFyIGM9ZTtDJiYobz1UKE4oYykpKX1wcigoKT0+e3ZhciBlPUk7aWYocz09PShzPXQoKT8/YGApKXtDJiZZZSgpO3JldHVybn1pZihuJiYhQyl7ZS5ub2Rlcz1udWxsLGMuaW5uZXJIVE1MPXMscyE9PWBgJiZDaShOKGMpLGMubGFzdENoaWxkKTtyZXR1cm59aWYoZS5ub2RlcyE9PW51bGwmJihicihlLm5vZGVzLnN0YXJ0LGUubm9kZXMuZW5kKSxlLm5vZGVzPW51bGwpLHMhPT1gYCl7aWYoQyl7Zm9yKHZhciBhPXcuZGF0YSxsPVllKCksdT1sO2whPT1udWxsJiYobC5ub2RlVHlwZSE9PTh8fGwuZGF0YSE9PWBgKTspdT1sLGw9Qm4obCk7aWYobD09PW51bGwpdGhyb3cgR2UoKSxCZTtDaSh3LHUpLG89VChsKTtyZXR1cm59dmFyIGQ9S24ocj9gc3ZnYDppP2BtYXRoYDpgdGVtcGxhdGVgLHI/SGU6aT9VZTp2b2lkIDApO2QuaW5uZXJIVE1MPXM7dmFyIGY9cnx8aT9kOmQuY29udGVudDtpZihDaShOKGYpLGYubGFzdENoaWxkKSxyfHxpKWZvcig7TihmKTspby5iZWZvcmUoTihmKSk7ZWxzZSBvLmJlZm9yZShmKX19KX1mdW5jdGlvbiBRaShlLHQsLi4ubil7dmFyIHI9bmV3IExpKGUpO21yKCgpPT57bGV0IGU9dCgpPz9udWxsO3IuZW5zdXJlKGUsZSYmKHQ9PmUodCwuLi5uKSkpfSxtZSl9ZnVuY3Rpb24gJGkoZSx0LG4pe3ZhciByO0MmJihyPXcsWWUoKSk7dmFyIGk9bmV3IExpKGUpO21yKCgpPT57dmFyIGU9dCgpPz9udWxsO2lmKEMmJiRlKHIpPT09YFtgIT0oZSE9PW51bGwpKXt2YXIgYT1RZSgpO1QoYSksaS5hbmNob3I9YSxKZSghMSksaS5lbnN1cmUoZSxlJiYodD0+bih0LGUpKSksSmUoITApO3JldHVybn1pLmVuc3VyZShlLGUmJih0PT5uKHQsZSkpKX0sbWUpfXZhciBlYT0oKT0+cGVyZm9ybWFuY2Uubm93KCksdGE9e3RpY2s6ZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpLG5vdzooKT0+ZWEoKSx0YXNrczpuZXcgU2V0fTtmdW5jdGlvbiBuYSgpe2xldCBlPXRhLm5vdygpO3RhLnRhc2tzLmZvckVhY2godD0+e3QuYyhlKXx8KHRhLnRhc2tzLmRlbGV0ZSh0KSx0LmYoKSl9KSx0YS50YXNrcy5zaXplIT09MCYmdGEudGljayhuYSl9ZnVuY3Rpb24gcmEoZSl7bGV0IHQ7cmV0dXJuIHRhLnRhc2tzLnNpemU9PT0wJiZ0YS50aWNrKG5hKSx7cHJvbWlzZTpuZXcgUHJvbWlzZShuPT57dGEudGFza3MuYWRkKHQ9e2M6ZSxmOm59KX0pLGFib3J0KCl7dGEudGFza3MuZGVsZXRlKHQpfX19ZnVuY3Rpb24gaWEoZSx0KXskbigoKT0+e2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQodCkpfSl9ZnVuY3Rpb24gYWEoZSl7aWYoZT09PWBmbG9hdGApcmV0dXJuYGNzc0Zsb2F0YDtpZihlPT09YG9mZnNldGApcmV0dXJuYGNzc09mZnNldGA7aWYoZS5zdGFydHNXaXRoKGAtLWApKXJldHVybiBlO2xldCB0PWUuc3BsaXQoYC1gKTtyZXR1cm4gdC5sZW5ndGg9PT0xP3RbMF06dFswXSt0LnNsaWNlKDEpLm1hcChlPT5lWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSkuam9pbihgYCl9ZnVuY3Rpb24gb2EoZSl7bGV0IHQ9e30sbj1lLnNwbGl0KGA7YCk7Zm9yKGxldCBlIG9mIG4pe2xldFtuLHJdPWUuc3BsaXQoYDpgKTtpZighbnx8cj09PXZvaWQgMClicmVhaztsZXQgaT1hYShuLnRyaW0oKSk7dFtpXT1yLnRyaW0oKX1yZXR1cm4gdH12YXIgc2E9ZT0+ZTtmdW5jdGlvbiBjYShlLHQsbixyKXt2YXIgaT0oZSYxKSE9MCxhPShlJjIpIT0wLG89aSYmYSxzPShlJjQpIT0wLGM9bz9gYm90aGA6aT9gaW5gOmBvdXRgLGwsdT10LmluZXJ0LGQ9dC5zdHlsZS5vdmVyZmxvdyxmLHA7ZnVuY3Rpb24gbSgpe3JldHVybiAkbigoKT0+bD8/PW4oKSh0LHI/LigpPz97fSx7ZGlyZWN0aW9uOmN9KSl9dmFyIGg9e2lzX2dsb2JhbDpzLGluKCl7aWYodC5pbmVydD11LCFpKXtwPy5hYm9ydCgpLHA/LnJlc2V0Py4oKTtyZXR1cm59YXx8Zj8uYWJvcnQoKSxmPWxhKHQsbSgpLHAsMSwoKT0+e2lhKHQsYGludHJvc3RhcnRgKX0sKCk9PntpYSh0LGBpbnRyb2VuZGApLGY/LmFib3J0KCksZj1sPXZvaWQgMCx0LnN0eWxlLm92ZXJmbG93PWR9KX0sb3V0KGUpe2lmKCFhKXtlPy4oKSxsPXZvaWQgMDtyZXR1cm59dC5pbmVydD0hMCxwPWxhKHQsbSgpLGYsMCwoKT0+e2lhKHQsYG91dHJvc3RhcnRgKX0sKCk9PntpYSh0LGBvdXRyb2VuZGApLGU/LigpfSl9LHN0b3A6KCk9PntmPy5hYm9ydCgpLHA/LmFib3J0KCl9fSxnPUk7aWYoKGcubm9kZXMudD8/PVtdKS5wdXNoKGgpLGkmJkFpKXt2YXIgXz1zO2lmKCFfKXtmb3IodmFyIHY9Zy5wYXJlbnQ7diYmdi5mJjY1NTM2Oylmb3IoOyh2PXYucGFyZW50KSYmISh2LmYmMTYpOyk7Xz0hdnx8KHYuZiYzMjc2OCkhPTB9XyYmdXIoKCk9PnskcigoKT0+aC5pbigpKX0pfX1mdW5jdGlvbiBsYShlLHQsbixyLGksYSl7dmFyIG89cj09PTE7aWYobmUodCkpe3ZhciBzLGM9ITE7cmV0dXJuIGd0KCgpPT57Y3x8KHM9bGEoZSx0KHtkaXJlY3Rpb246bz9gaW5gOmBvdXRgfSksbixyLGksYSkpfSkse2Fib3J0OigpPT57Yz0hMCxzPy5hYm9ydCgpfSxkZWFjdGl2YXRlOigpPT5zLmRlYWN0aXZhdGUoKSxyZXNldDooKT0+cy5yZXNldCgpLHQ6KCk9PnMudCgpfX1pZihuPy5kZWFjdGl2YXRlKCksIXQ/LmR1cmF0aW9uJiYhdD8uZGVsYXkpcmV0dXJuIGkoKSxhKCkse2Fib3J0OngsZGVhY3RpdmF0ZTp4LHJlc2V0OngsdDooKT0+cn07bGV0e2RlbGF5Omw9MCxjc3M6dSx0aWNrOmQsZWFzaW5nOmY9c2F9PXQ7dmFyIHA9W107aWYobyYmbj09PXZvaWQgMCYmKGQmJmQoMCwxKSx1KSl7dmFyIG09b2EodSgwLDEpKTtwLnB1c2gobSxtKX12YXIgaD0oKT0+MS1yLGc9ZS5hbmltYXRlKHAse2R1cmF0aW9uOmwsZmlsbDpgZm9yd2FyZHNgfSk7cmV0dXJuIGcub25maW5pc2g9KCk9PntnLmNhbmNlbCgpLGkoKTt2YXIgbz1uPy50KCk/PzEtcjtuPy5hYm9ydCgpO3ZhciBzPXItbyxjPXQuZHVyYXRpb24qTWF0aC5hYnMocyksbD1bXTtpZihjPjApe3ZhciBwPSExO2lmKHUpZm9yKHZhciBtPU1hdGguY2VpbChjLygxZTMvNjApKSxfPTA7Xzw9bTtfKz0xKXt2YXIgdj1vK3MqZihfL20pLHk9b2EodSh2LDEtdikpO2wucHVzaCh5KSxwfHw9eS5vdmVyZmxvdz09PWBoaWRkZW5gfXAmJihlLnN0eWxlLm92ZXJmbG93PWBoaWRkZW5gKSxoPSgpPT57dmFyIGU9Zy5jdXJyZW50VGltZTtyZXR1cm4gbytzKmYoZS9jKX0sZCYmcmEoKCk9PntpZihnLnBsYXlTdGF0ZSE9PWBydW5uaW5nYClyZXR1cm4hMTt2YXIgZT1oKCk7cmV0dXJuIGQoZSwxLWUpLCEwfSl9Zz1lLmFuaW1hdGUobCx7ZHVyYXRpb246YyxmaWxsOmBmb3J3YXJkc2B9KSxnLm9uZmluaXNoPSgpPT57aD0oKT0+cixkPy4ociwxLXIpLGEoKX19LHthYm9ydDooKT0+e2cmJihnLmNhbmNlbCgpLGcuZWZmZWN0PW51bGwsZy5vbmZpbmlzaD14KX0sZGVhY3RpdmF0ZTooKT0+e2E9eH0scmVzZXQ6KCk9PntyPT09MCYmZD8uKDEsMCl9LHQ6KCk9PmgoKX19ZnVuY3Rpb24gdWEoZSx0LG4pe3VyKCgpPT57dmFyIHI9JHIoKCk9PnQoZSxuPy4oKSl8fHt9KTtpZihuJiZyPy51cGRhdGUpe3ZhciBpPSExLGE9e307ZnIoKCk9Pnt2YXIgZT1uKCk7ZWkoZSksaSYmdHQoYSxlKSYmKGE9ZSxyLnVwZGF0ZShlKSl9KSxpPSEwfWlmKHI/LmRlc3Ryb3kpcmV0dXJuKCk9PnIuZGVzdHJveSgpfSl9ZnVuY3Rpb24gZGEoZSx0KXt2YXIgbj12b2lkIDAscjtocigoKT0+e24hPT0obj10KCkpJiYociYmPShQKHIpLG51bGwpLG4mJihyPWdyKCgpPT57dXIoKCk9Pm4oZSkpfSkpKX0pfWZ1bmN0aW9uIGZhKGUpe3ZhciB0LG4scj1gYDtpZih0eXBlb2YgZT09YHN0cmluZ2B8fHR5cGVvZiBlPT1gbnVtYmVyYClyKz1lO2Vsc2UgaWYodHlwZW9mIGU9PWBvYmplY3RgKWlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBpPWUubGVuZ3RoO2Zvcih0PTA7dDxpO3QrKyllW3RdJiYobj1mYShlW3RdKSkmJihyJiYocis9YCBgKSxyKz1uKX1lbHNlIGZvcihuIGluIGUpZVtuXSYmKHImJihyKz1gIGApLHIrPW4pO3JldHVybiByfWZ1bmN0aW9uIHBhKCl7Zm9yKHZhciBlLHQsbj0wLHI9YGAsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspKGU9YXJndW1lbnRzW25dKSYmKHQ9ZmEoZSkpJiYociYmKHIrPWAgYCkscis9dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YD9wYShlKTplPz9gYH12YXIgaGE9Wy4uLmAgCQpcclxmXHhBMFx277u/YF07ZnVuY3Rpb24gZ2EoZSx0LG4pe3ZhciByPWU9PW51bGw/YGA6YGArZTtpZih0JiYocj1yP3IrYCBgK3Q6dCksbil7Zm9yKHZhciBpIG9mIE9iamVjdC5rZXlzKG4pKWlmKG5baV0pcj1yP3IrYCBgK2k6aTtlbHNlIGlmKHIubGVuZ3RoKWZvcih2YXIgYT1pLmxlbmd0aCxvPTA7KG89ci5pbmRleE9mKGksbykpPj0wOyl7dmFyIHM9bythOyhvPT09MHx8aGEuaW5jbHVkZXMocltvLTFdKSkmJihzPT09ci5sZW5ndGh8fGhhLmluY2x1ZGVzKHJbc10pKT9yPShvPT09MD9gYDpyLnN1YnN0cmluZygwLG8pKStyLnN1YnN0cmluZyhzKzEpOm89c319cmV0dXJuIHI9PT1gYD9udWxsOnJ9ZnVuY3Rpb24gX2EoZSx0PSExKXt2YXIgbj10P2AgIWltcG9ydGFudDtgOmA7YCxyPWBgO2Zvcih2YXIgaSBvZiBPYmplY3Qua2V5cyhlKSl7dmFyIGE9ZVtpXTthIT1udWxsJiZhIT09YGAmJihyKz1gIGAraStgOiBgK2Erbil9cmV0dXJuIHJ9ZnVuY3Rpb24gdmEoZSl7cmV0dXJuIGVbMF0hPT1gLWB8fGVbMV0hPT1gLWA/ZS50b0xvd2VyQ2FzZSgpOmV9ZnVuY3Rpb24geWEoZSx0KXtpZih0KXt2YXIgbj1gYCxyLGk7aWYoQXJyYXkuaXNBcnJheSh0KT8ocj10WzBdLGk9dFsxXSk6cj10LGUpe2U9U3RyaW5nKGUpLnJlcGxhY2VBbGwoL1xzKlwvXCouKj9cKlwvXHMqL2csYGApLnRyaW0oKTt2YXIgYT0hMSxvPTAscz0hMSxjPVtdO3ImJmMucHVzaCguLi5PYmplY3Qua2V5cyhyKS5tYXAodmEpKSxpJiZjLnB1c2goLi4uT2JqZWN0LmtleXMoaSkubWFwKHZhKSk7dmFyIGw9MCx1PS0xO2xldCB0PWUubGVuZ3RoO2Zvcih2YXIgZD0wO2Q8dDtkKyspe3ZhciBmPWVbZF07aWYocz9mPT09YC9gJiZlW2QtMV09PT1gKmAmJihzPSExKTphP2E9PT1mJiYoYT0hMSk6Zj09PWAvYCYmZVtkKzFdPT09YCpgP3M9ITA6Zj09PWAiYHx8Zj09PWAnYD9hPWY6Zj09PWAoYD9vKys6Zj09PWApYCYmby0tLCFzJiZhPT09ITEmJm89PT0wKXtpZihmPT09YDpgJiZ1PT09LTEpdT1kO2Vsc2UgaWYoZj09PWA7YHx8ZD09PXQtMSl7aWYodSE9PS0xKXt2YXIgcD12YShlLnN1YnN0cmluZyhsLHUpLnRyaW0oKSk7aWYoIWMuaW5jbHVkZXMocCkpe2YhPT1gO2AmJmQrKzt2YXIgbT1lLnN1YnN0cmluZyhsLGQpLnRyaW0oKTtuKz1gIGArbStgO2B9fWw9ZCsxLHU9LTF9fX19cmV0dXJuIHImJihuKz1fYShyKSksaSYmKG4rPV9hKGksITApKSxuPW4udHJpbSgpLG49PT1gYD9udWxsOm59cmV0dXJuIGU9PW51bGw/bnVsbDpTdHJpbmcoZSl9ZnVuY3Rpb24gYmEoZSx0LG4scixpLGEpe3ZhciBvPWUuX19jbGFzc05hbWU7aWYoQ3x8byE9PW58fG89PT12b2lkIDApe3ZhciBzPWdhKG4scixhKTsoIUN8fHMhPT1lLmdldEF0dHJpYnV0ZShgY2xhc3NgKSkmJihzPT1udWxsP2UucmVtb3ZlQXR0cmlidXRlKGBjbGFzc2ApOnQ/ZS5jbGFzc05hbWU9czplLnNldEF0dHJpYnV0ZShgY2xhc3NgLHMpKSxlLl9fY2xhc3NOYW1lPW59ZWxzZSBpZihhJiZpIT09YSlmb3IodmFyIGMgaW4gYSl7dmFyIGw9ISFhW2NdOyhpPT1udWxsfHxsIT09ISFpW2NdKSYmZS5jbGFzc0xpc3QudG9nZ2xlKGMsbCl9cmV0dXJuIGF9ZnVuY3Rpb24geGEoZSx0PXt9LG4scil7Zm9yKHZhciBpIGluIG4pe3ZhciBhPW5baV07dFtpXSE9PWEmJihuW2ldPT1udWxsP2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoaSk6ZS5zdHlsZS5zZXRQcm9wZXJ0eShpLGEscikpfX1mdW5jdGlvbiBTYShlLHQsbixyKXt2YXIgaT1lLl9fc3R5bGU7aWYoQ3x8aSE9PXQpe3ZhciBhPXlhKHQscik7KCFDfHxhIT09ZS5nZXRBdHRyaWJ1dGUoYHN0eWxlYCkpJiYoYT09bnVsbD9lLnJlbW92ZUF0dHJpYnV0ZShgc3R5bGVgKTplLnN0eWxlLmNzc1RleHQ9YSksZS5fX3N0eWxlPXR9ZWxzZSByJiYoQXJyYXkuaXNBcnJheShyKT8oeGEoZSxuPy5bMF0sclswXSkseGEoZSxuPy5bMV0sclsxXSxgaW1wb3J0YW50YCkpOnhhKGUsbixyKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gQ2EoZSx0LG49ITEpe2lmKGUubXVsdGlwbGUpe2lmKHQ9PW51bGwpcmV0dXJuO2lmKCFmKHQpKXJldHVybiBLZSgpO2Zvcih2YXIgciBvZiBlLm9wdGlvbnMpci5zZWxlY3RlZD10LmluY2x1ZGVzKEVhKHIpKTtyZXR1cm59Zm9yKHIgb2YgZS5vcHRpb25zKWlmKE5uKEVhKHIpLHQpKXtyLnNlbGVjdGVkPSEwO3JldHVybn0oIW58fHQhPT12b2lkIDApJiYoZS5zZWxlY3RlZEluZGV4PS0xKX1mdW5jdGlvbiB3YShlKXt2YXIgdD1uZXcgTXV0YXRpb25PYnNlcnZlcigoKT0+e0NhKGUsZS5fX3ZhbHVlKX0pO3Qub2JzZXJ2ZShlLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbYHZhbHVlYF19KSxhcigoKT0+e3QuZGlzY29ubmVjdCgpfSl9ZnVuY3Rpb24gVGEoZSx0LG49dCl7dmFyIHI9bmV3IFdlYWtTZXQsaT0hMDtlcihlLGBjaGFuZ2VgLHQ9Pnt2YXIgaT10P2Bbc2VsZWN0ZWRdYDpgOmNoZWNrZWRgLGE7aWYoZS5tdWx0aXBsZSlhPVtdLm1hcC5jYWxsKGUucXVlcnlTZWxlY3RvckFsbChpKSxFYSk7ZWxzZXt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoaSk/P2UucXVlcnlTZWxlY3Rvcihgb3B0aW9uOm5vdChbZGlzYWJsZWRdKWApO2E9byYmRWEobyl9bihhKSxlLl9fdmFsdWU9YSxqIT09bnVsbCYmci5hZGQoail9KSx1cigoKT0+e3ZhciBhPXQoKTtpZihlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7dmFyIG89cnQ/THQ6ajtpZihyLmhhcyhvKSlyZXR1cm59aWYoQ2EoZSxhLGkpLGkmJmE9PT12b2lkIDApe3ZhciBzPWUucXVlcnlTZWxlY3RvcihgOmNoZWNrZWRgKTtzIT09bnVsbCYmKGE9RWEocyksbihhKSl9ZS5fX3ZhbHVlPWEsaT0hMX0pLHdhKGUpfWZ1bmN0aW9uIEVhKGUpe3JldHVybmBfX3ZhbHVlYGluIGU/ZS5fX3ZhbHVlOmUudmFsdWV9dmFyIERhPVN5bWJvbChgY2xhc3NgKSxPYT1TeW1ib2woYHN0eWxlYCksa2E9U3ltYm9sKGBpcyBjdXN0b20gZWxlbWVudGApLEFhPVN5bWJvbChgaXMgaHRtbGApLGphPUVlP2BsaW5rYDpgTElOS2AsTWE9RWU/YGlucHV0YDpgSU5QVVRgLE5hPUVlP2BvcHRpb25gOmBPUFRJT05gLFBhPUVlP2BzZWxlY3RgOmBTRUxFQ1RgLEZhPUVlP2Bwcm9ncmVzc2A6YFBST0dSRVNTYDtmdW5jdGlvbiBJYShlKXtpZihDKXt2YXIgdD0hMSxuPSgpPT57aWYoIXQpe2lmKHQ9ITAsZS5oYXNBdHRyaWJ1dGUoYHZhbHVlYCkpe3ZhciBuPWUudmFsdWU7emEoZSxgdmFsdWVgLG51bGwpLGUudmFsdWU9bn1pZihlLmhhc0F0dHJpYnV0ZShgY2hlY2tlZGApKXt2YXIgcj1lLmNoZWNrZWQ7emEoZSxgY2hlY2tlZGAsbnVsbCksZS5jaGVja2VkPXJ9fX07ZS5fX29uX3I9bixndChuKSxRbigpfX1mdW5jdGlvbiBMYShlLHQpe3ZhciBuPUhhKGUpO24udmFsdWU9PT0obi52YWx1ZT10Pz92b2lkIDApfHxlLnZhbHVlPT09dCYmKHQhPT0wfHxlLm5vZGVOYW1lIT09RmEpfHwoZS52YWx1ZT10Pz9gYCl9ZnVuY3Rpb24gUmEoZSx0KXt0P2UuaGFzQXR0cmlidXRlKGBzZWxlY3RlZGApfHxlLnNldEF0dHJpYnV0ZShgc2VsZWN0ZWRgLGBgKTplLnJlbW92ZUF0dHJpYnV0ZShgc2VsZWN0ZWRgKX1mdW5jdGlvbiB6YShlLHQsbixyKXt2YXIgaT1IYShlKTtDJiYoaVt0XT1lLmdldEF0dHJpYnV0ZSh0KSx0PT09YHNyY2B8fHQ9PT1gc3Jjc2V0YHx8dD09PWBocmVmYCYmZS5ub2RlTmFtZT09PWphKXx8aVt0XSE9PShpW3RdPW4pJiYodD09PWBsb2FkaW5nYCYmKGVbd2VdPW4pLG49PW51bGw/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6dHlwZW9mIG4hPWBzdHJpbmdgJiZXYShlKS5pbmNsdWRlcyh0KT9lW3RdPW46ZS5zZXRBdHRyaWJ1dGUodCxuKSl9ZnVuY3Rpb24gQmEoZSx0LG4scixpPSExLGE9ITEpe2lmKEMmJmkmJmUubm9kZU5hbWU9PT1NYSl7dmFyIG89ZTsoby50eXBlPT09YGNoZWNrYm94YD9gZGVmYXVsdENoZWNrZWRgOmBkZWZhdWx0VmFsdWVgKWluIG58fElhKG8pfXZhciBzPUhhKGUpLGM9c1trYV0sbD0hc1tBYV07bGV0IHU9QyYmYzt1JiZKZSghMSk7dmFyIGQ9dHx8e30sZj1lLm5vZGVOYW1lPT09TmE7Zm9yKHZhciBwIGluIHQpcCBpbiBufHwobltwXT1udWxsKTtuLmNsYXNzP24uY2xhc3M9bWEobi5jbGFzcyk6KHJ8fG5bRGFdKSYmKG4uY2xhc3M9bnVsbCksbltPYV0mJihuLnN0eWxlPz89bnVsbCk7dmFyIG09V2EoZSk7Zm9yKGxldCBpIGluIG4pe2xldCBvPW5baV07aWYoZiYmaT09PWB2YWx1ZWAmJm89PW51bGwpe2UudmFsdWU9ZS5fX3ZhbHVlPWBgLGRbaV09bztjb250aW51ZX1pZihpPT09YGNsYXNzYCl7YmEoZSxlLm5hbWVzcGFjZVVSST09PWBodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sYCxvLHIsdD8uW0RhXSxuW0RhXSksZFtpXT1vLGRbRGFdPW5bRGFdO2NvbnRpbnVlfWlmKGk9PT1gc3R5bGVgKXtTYShlLG8sdD8uW09hXSxuW09hXSksZFtpXT1vLGRbT2FdPW5bT2FdO2NvbnRpbnVlfXZhciBoPWRbaV07aWYoIShvPT09aCYmIShvPT09dm9pZCAwJiZlLmhhc0F0dHJpYnV0ZShpKSkpKXtkW2ldPW87dmFyIGc9aVswXStpWzFdO2lmKGchPT1gJCRgKWlmKGc9PT1gb25gKXtsZXQgdD17fSxuPWAkJGAraSxyPWkuc2xpY2UoMik7dmFyIF89aWkocik7aWYobmkocikmJihyPXIuc2xpY2UoMCwtNyksdC5jYXB0dXJlPSEwKSwhXyYmaCl7aWYobyE9bnVsbCljb250aW51ZTtlLnJlbW92ZUV2ZW50TGlzdGVuZXIocixkW25dLHQpLGRbbl09bnVsbH1pZihfKWdpKHIsZSxvKSxfaShbcl0pO2Vsc2UgaWYobyE9bnVsbCl7ZnVuY3Rpb24gYShlKXtkW2ldLmNhbGwodGhpcyxlKX1kW25dPW1pKHIsZSxhLHQpfX1lbHNlIGlmKGk9PT1gc3R5bGVgKXphKGUsaSxvKTtlbHNlIGlmKGk9PT1gYXV0b2ZvY3VzYClZbihlLCEhbyk7ZWxzZSBpZighYyYmKGk9PT1gX192YWx1ZWB8fGk9PT1gdmFsdWVgJiZvIT1udWxsKSllLnZhbHVlPWUuX192YWx1ZT1vO2Vsc2UgaWYoaT09PWBzZWxlY3RlZGAmJmYpUmEoZSxvKTtlbHNle3ZhciB2PWk7bHx8KHY9c2kodikpO3ZhciB5PXY9PT1gZGVmYXVsdFZhbHVlYHx8dj09PWBkZWZhdWx0Q2hlY2tlZGA7aWYobz09bnVsbCYmIWMmJiF5KWlmKHNbaV09bnVsbCx2PT09YHZhbHVlYHx8dj09PWBjaGVja2VkYCl7bGV0IG49ZSxyPXQ9PT12b2lkIDA7aWYodj09PWB2YWx1ZWApe2xldCBlPW4uZGVmYXVsdFZhbHVlO24ucmVtb3ZlQXR0cmlidXRlKHYpLG4uZGVmYXVsdFZhbHVlPWUsbi52YWx1ZT1uLl9fdmFsdWU9cj9lOm51bGx9ZWxzZXtsZXQgZT1uLmRlZmF1bHRDaGVja2VkO24ucmVtb3ZlQXR0cmlidXRlKHYpLG4uZGVmYXVsdENoZWNrZWQ9ZSxuLmNoZWNrZWQ9cj9lOiExfX1lbHNlIGUucmVtb3ZlQXR0cmlidXRlKGkpO2Vsc2UgeXx8bS5pbmNsdWRlcyh2KSYmKGN8fHR5cGVvZiBvIT1gc3RyaW5nYCk/KGVbdl09byx2IGluIHMmJihzW3ZdPVMpKTp0eXBlb2YgbyE9YGZ1bmN0aW9uYCYmemEoZSx2LG8sYSl9fX1yZXR1cm4gdSYmSmUoITApLGR9ZnVuY3Rpb24gVmEoZSx0LG49W10scj1bXSxpPVtdLGEsbz0hMSxzPSExKXtvbihpLG4scixuPT57dmFyIHI9dm9pZCAwLGk9e30sYz1lLm5vZGVOYW1lPT09UGEsbD0hMTtpZihocigoKT0+e3ZhciB1PXQoLi4ubi5tYXAoUikpLGQ9QmEoZSxyLHUsYSxvLHMpO2wmJmMmJmB2YWx1ZWBpbiB1JiZDYShlLHUudmFsdWUpO2ZvcihsZXQgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGkpKXVbZV18fFAoaVtlXSk7Zm9yKGxldCB0IG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModSkpe3ZhciBmPXVbdF07dC5kZXNjcmlwdGlvbj09PWBAYXR0YWNoYCYmKCFyfHxmIT09clt0XSkmJihpW3RdJiZQKGlbdF0pLGlbdF09Z3IoKCk9PmRhKGUsKCk9PmYpKSksZFt0XT1mfXI9ZH0pLGMpe3ZhciB1PWU7dXIoKCk9PntDYSh1LHIudmFsdWUsITApLHdhKHUpfSl9bD0hMH0pfWZ1bmN0aW9uIEhhKGUpe3JldHVybiBlLl9fYXR0cmlidXRlcz8/PXtba2FdOmUubm9kZU5hbWUuaW5jbHVkZXMoYC1gKSxbQWFdOmUubmFtZXNwYWNlVVJJPT09VmV9fXZhciBVYT1uZXcgTWFwO2Z1bmN0aW9uIFdhKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKGBpc2ApfHxlLm5vZGVOYW1lLG49VWEuZ2V0KHQpO2lmKG4pcmV0dXJuIG47VWEuc2V0KHQsbj1bXSk7Zm9yKHZhciByLGk9ZSxhPUVsZW1lbnQucHJvdG90eXBlO2EhPT1pOyl7Zm9yKHZhciBvIGluIHI9dihpKSxyKXJbb10uc2V0JiZuLnB1c2gobyk7aT1iKGkpfXJldHVybiBufXZhciBHYT1udWxsO2Z1bmN0aW9uIEthKCl7aWYoR2E9PT1udWxsKXt2YXIgZT1Lbihgc2VsZWN0YCk7ZS5pbm5lckhUTUw9eGkoYDxvcHRpb24+PHNwYW4+dDwvc3Bhbj48L29wdGlvbj5gKSxHYT1lLmZpcnN0Q2hpbGQ/LmZpcnN0Q2hpbGQ/Lm5vZGVUeXBlPT09MX1yZXR1cm4gR2F9ZnVuY3Rpb24gcWEoZSx0KXt2YXIgbj1DO0thKCl8fChKZSghMSksZS50ZXh0Q29udGVudD1gYCxlLmFwcGVuZChxbihgYCkpKTt0cnl7dCgpfWZpbmFsbHl7biYmKEM/WGUoZSk6KEplKCEwKSxUKGUpKSl9fWZ1bmN0aW9uIEphKGUsdCxuPXQpe3ZhciByPW5ldyBXZWFrU2V0O2VyKGUsYGlucHV0YCxhc3luYyBpPT57dmFyIGE9aT9lLmRlZmF1bHRWYWx1ZTplLnZhbHVlO2lmKGE9WGEoZSk/WmEoYSk6YSxuKGEpLGohPT1udWxsJiZyLmFkZChqKSxhd2FpdCBYcigpLGEhPT0oYT10KCkpKXt2YXIgbz1lLnNlbGVjdGlvblN0YXJ0LHM9ZS5zZWxlY3Rpb25FbmQsYz1lLnZhbHVlLmxlbmd0aDtpZihlLnZhbHVlPWE/P2BgLHMhPT1udWxsKXt2YXIgbD1lLnZhbHVlLmxlbmd0aDtvPT09cyYmcz09PWMmJmw+Yz8oZS5zZWxlY3Rpb25TdGFydD1sLGUuc2VsZWN0aW9uRW5kPWwpOihlLnNlbGVjdGlvblN0YXJ0PW8sZS5zZWxlY3Rpb25FbmQ9TWF0aC5taW4ocyxsKSl9fX0pLChDJiZlLmRlZmF1bHRWYWx1ZSE9PWUudmFsdWV8fCRyKHQpPT1udWxsJiZlLnZhbHVlKSYmKG4oWGEoZSk/WmEoZS52YWx1ZSk6ZS52YWx1ZSksaiE9PW51bGwmJnIuYWRkKGopKSxmcigoKT0+e3ZhciBuPXQoKTtpZihlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7dmFyIGk9cnQ/THQ6ajtpZihyLmhhcyhpKSlyZXR1cm59WGEoZSkmJm49PT1aYShlLnZhbHVlKXx8ZS50eXBlPT09YGRhdGVgJiYhbiYmIWUudmFsdWV8fG4hPT1lLnZhbHVlJiYoZS52YWx1ZT1uPz9gYCl9KX1mdW5jdGlvbiBZYShlLHQsbj10KXtlcihlLGBjaGFuZ2VgLHQ9PntuKHQ/ZS5kZWZhdWx0Q2hlY2tlZDplLmNoZWNrZWQpfSksKEMmJmUuZGVmYXVsdENoZWNrZWQhPT1lLmNoZWNrZWR8fCRyKHQpPT1udWxsKSYmbihlLmNoZWNrZWQpLGZyKCgpPT57ZS5jaGVja2VkPSEhdCgpfSl9ZnVuY3Rpb24gWGEoZSl7dmFyIHQ9ZS50eXBlO3JldHVybiB0PT09YG51bWJlcmB8fHQ9PT1gcmFuZ2VgfWZ1bmN0aW9uIFphKGUpe3JldHVybiBlPT09YGA/bnVsbDorZX1mdW5jdGlvbiBRYShlLHQpe3JldHVybiBlPT09dHx8ZT8uW1NlXT09PXR9ZnVuY3Rpb24gJGEoZT17fSx0LG4scil7dmFyIGk9RS5yLGE9STtyZXR1cm4gdXIoKCk9Pnt2YXIgbyxzO3JldHVybiBmcigoKT0+e289cyxzPXI/LigpfHxbXSwkcigoKT0+e2UhPT1uKC4uLnMpJiYodChlLC4uLnMpLG8mJlFhKG4oLi4ubyksZSkmJnQobnVsbCwuLi5vKSl9KX0pLCgpPT57bGV0IHI9YTtmb3IoO3IhPT1pJiZyLnBhcmVudCE9PW51bGwmJnIucGFyZW50LmYmMzM1NTQ0MzI7KXI9ci5wYXJlbnQ7bGV0IG89KCk9PntzJiZRYShuKC4uLnMpLGUpJiZ0KG51bGwsLi4ucyl9LGM9ci50ZWFyZG93bjtyLnRlYXJkb3duPSgpPT57bygpLGM/LigpfX19KSxlfWZ1bmN0aW9uIGVvKGU9ITEpe2xldCB0PUUsbj10LmwudTtpZighbilyZXR1cm47bGV0IHI9KCk9PmVpKHQucyk7aWYoZSl7bGV0IGU9MCxuPXt9LGk9dW4oKCk9PntsZXQgcj0hMSxpPXQucztmb3IobGV0IGUgaW4gaSlpW2VdIT09bltlXSYmKG5bZV09aVtlXSxyPSEwKTtyZXR1cm4gciYmZSsrLGV9KTtyPSgpPT5SKGkpfW4uYi5sZW5ndGgmJmNyKCgpPT57dG8odCxyKSxpZShuLmIpfSksb3IoKCk9PntsZXQgZT0kcigoKT0+bi5tLm1hcChyZSkpO3JldHVybigpPT57Zm9yKGxldCB0IG9mIGUpdHlwZW9mIHQ9PWBmdW5jdGlvbmAmJnQoKX19KSxuLmEubGVuZ3RoJiZvcigoKT0+e3RvKHQsciksaWUobi5hKX0pfWZ1bmN0aW9uIHRvKGUsdCl7aWYoZS5sLnMpZm9yKGxldCB0IG9mIGUubC5zKVIodCk7dCgpfXZhciBubz17Z2V0KGUsdCl7aWYoIWUuZXhjbHVkZS5pbmNsdWRlcyh0KSlyZXR1cm4gZS5wcm9wc1t0XX0sc2V0KGUsdCl7cmV0dXJuITF9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe2lmKCFlLmV4Y2x1ZGUuaW5jbHVkZXModCkmJnQgaW4gZS5wcm9wcylyZXR1cm57ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6ZS5wcm9wc1t0XX19LGhhcyhlLHQpe3JldHVybiBlLmV4Y2x1ZGUuaW5jbHVkZXModCk/ITE6dCBpbiBlLnByb3BzfSxvd25LZXlzKGUpe3JldHVybiBSZWZsZWN0Lm93bktleXMoZS5wcm9wcykuZmlsdGVyKHQ9PiFlLmV4Y2x1ZGUuaW5jbHVkZXModCkpfX07ZnVuY3Rpb24gcm8oZSx0LG4pe3JldHVybiBuZXcgUHJveHkoe3Byb3BzOmUsZXhjbHVkZTp0fSxubyl9dmFyIGlvPXtnZXQoZSx0KXtsZXQgbj1lLnByb3BzLmxlbmd0aDtmb3IoO24tLTspe2xldCByPWUucHJvcHNbbl07aWYobmUocikmJihyPXIoKSksdHlwZW9mIHI9PWBvYmplY3RgJiZyJiZ0IGluIHIpcmV0dXJuIHJbdF19fSxzZXQoZSx0LG4pe2xldCByPWUucHJvcHMubGVuZ3RoO2Zvcig7ci0tOyl7bGV0IGk9ZS5wcm9wc1tyXTtuZShpKSYmKGk9aSgpKTtsZXQgYT1fKGksdCk7aWYoYSYmYS5zZXQpcmV0dXJuIGEuc2V0KG4pLCEwfXJldHVybiExfSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KXtsZXQgbj1lLnByb3BzLmxlbmd0aDtmb3IoO24tLTspe2xldCByPWUucHJvcHNbbl07aWYobmUocikmJihyPXIoKSksdHlwZW9mIHI9PWBvYmplY3RgJiZyJiZ0IGluIHIpe2xldCBlPV8ocix0KTtyZXR1cm4gZSYmIWUuY29uZmlndXJhYmxlJiYoZS5jb25maWd1cmFibGU9ITApLGV9fX0saGFzKGUsdCl7aWYodD09PVNlfHx0PT09Q2UpcmV0dXJuITE7Zm9yKGxldCBuIG9mIGUucHJvcHMpaWYobmUobikmJihuPW4oKSksbiE9bnVsbCYmdCBpbiBuKXJldHVybiEwO3JldHVybiExfSxvd25LZXlzKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlLnByb3BzKWlmKG5lKG4pJiYobj1uKCkpLG4pe2ZvcihsZXQgZSBpbiBuKXQuaW5jbHVkZXMoZSl8fHQucHVzaChlKTtmb3IobGV0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKSl0LmluY2x1ZGVzKGUpfHx0LnB1c2goZSl9cmV0dXJuIHR9fTtmdW5jdGlvbiBhbyguLi5lKXtyZXR1cm4gbmV3IFByb3h5KHtwcm9wczplfSxpbyl9ZnVuY3Rpb24gb28oZSx0LG4scil7dmFyIGk9IWl0fHwobiYyKSE9MCxhPShuJjgpIT0wLG89KG4mMTYpIT0wLHM9cixjPSEwLGw9KCk9PihjJiYoYz0hMSxzPW8/JHIocik6cikscyk7bGV0IHU7aWYoYSl7dmFyIGQ9U2UgaW4gZXx8Q2UgaW4gZTt1PV8oZSx0KT8uc2V0Pz8oZCYmdCBpbiBlP249PmVbdF09bjp2b2lkIDApfXZhciBmLHA9ITE7YT9bZixwXT1GdCgoKT0+ZVt0XSk6Zj1lW3RdLGY9PT12b2lkIDAmJnIhPT12b2lkIDAmJihmPWwoKSx1JiYoaSYmUGUodCksdShmKSkpO3ZhciBtPWk/KCk9Pnt2YXIgbj1lW3RdO3JldHVybiBuPT09dm9pZCAwP2woKTooYz0hMCxuKX06KCk9Pnt2YXIgbj1lW3RdO3JldHVybiBuIT09dm9pZCAwJiYocz12b2lkIDApLG49PT12b2lkIDA/czpufTtpZihpJiYhKG4mNCkpcmV0dXJuIG07aWYodSl7dmFyIGg9ZS4kJGxlZ2FjeTtyZXR1cm4oZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wPygoIWl8fCF0fHxofHxwKSYmdSh0P20oKTplKSxlKTptKCl9KX12YXIgZz0hMSx2PShuJjE/dW46cG4pKCgpPT4oZz0hMSxtKCkpKTthJiZSKHYpO3ZhciB5PUk7cmV0dXJuKGZ1bmN0aW9uKGUsdCl7aWYoYXJndW1lbnRzLmxlbmd0aD4wKXtsZXQgbj10P1Iodik6aSYmYT9qbihlKTplO3JldHVybiBUbih2LG4pLGc9ITAscyE9PXZvaWQgMCYmKHM9biksZX1yZXR1cm4ga3ImJmd8fHkuZiYxNjM4ND92LnY6Uih2KX0pfWZ1bmN0aW9uIHNvKGUpe0U9PT1udWxsJiZEZShgb25Nb3VudGApLGl0JiZFLmwhPT1udWxsP2xvKEUpLm0ucHVzaChlKTpvcigoKT0+e2xldCB0PSRyKGUpO2lmKHR5cGVvZiB0PT1gZnVuY3Rpb25gKXJldHVybiB0fSl9ZnVuY3Rpb24gY28oZSl7RT09PW51bGwmJkRlKGBvbkRlc3Ryb3lgKSxzbygoKT0+KCk9PiRyKGUpKX1mdW5jdGlvbiBsbyhlKXt2YXIgdD1lLmw7cmV0dXJuIHQudT8/PXthOltdLGI6W10sbTpbXX19dmFyIHo9KCgpPT57bGV0IGU9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7b246KHQsbik9PntsZXQgcj1lLmdldCh0KTtyP3IucHVzaChuKTplLnNldCh0LFtuXSl9LG9mZjoodCxuKT0+e2xldCByPWUuZ2V0KHQpO3ImJmUuc2V0KHQsci5maWx0ZXIoZT0+ZSE9PW4pKX0sZW1pdDoodCxuKT0+e2xldCByPWUuZ2V0KHQpO3ImJnIuZm9yRWFjaChlPT5lKG4pKX19KX0pKCksdW89YGRhdGEtc21hcnRzdXBwLWlkYCxmbz0oKT0+d2luZG93LnRvcD8/d2luZG93LnBhcmVudCxCPSgpPT53aW5kb3cucGFyZW50LHBvPSgpPT5CKCkuZG9jdW1lbnQsbW89ZT0+ZSYmZS5vd25lckRvY3VtZW50fHxkb2N1bWVudCxobz0oe3ZpZDplfSk9PntsZXQgdD1CKCkuc21hcnRzdXBwfHx7fTt0LnZpZD1lLEIoKS5zbWFydHN1cHA9dH0sZ289YGRlYnVnYCxfbz1lPT57dHJ5e2xldCB0PUIoKS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShnbyk7aWYoIXQpcmV0dXJuITE7aWYodD09PWV8fHQ9PT1gKmApcmV0dXJuITA7bGV0IG49ZS5tYXRjaCgvXlx3KzovZyk7cmV0dXJuIG4/dD09PWAke25bMF19KmA6ITF9Y2F0Y2h7cmV0dXJuITF9fSx2bz0oKGUsdCk9PihuLC4uLnIpPT57X28oZSkmJmNvbnNvbGUuZGVidWcoYCVjJHtlfWAsYGNvbG9yOiAke3R9O2AsbiwuLi5yKX0pKGBzbWFydHN1cHA6d2lkZ2V0YCxgIzEyMzNkZmApLFY9KCgpPT57bGV0IGU9bnVsbCx0PVtdO3JldHVybiBPYmplY3QuZnJlZXplKHtpbml0Om49PntlPW4sdm8oYHdpZGdldCBvcHRpb25zYCxuKSx0LmZvckVhY2goZT0+ZShuKSl9LGdldE9wdGlvbnM6KCk9PntpZighZSl0aHJvdyBFcnJvcihgV2lkZ2V0IG9wdGlvbnMgbm90IGluaXRpYWxpemVkYCk7cmV0dXJuIGV9LGF3YWl0T3B0aW9uczphc3luYygpPT5lfHxuZXcgUHJvbWlzZShlPT57dC5wdXNoKGUpfSksdXBkYXRlT3B0aW9uczp0PT57ZT17Li4uZSwuLi50fX19KX0pKCkseW89ZT0+e2xldCB0PWUuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYGJvZHlgKVswXS5nZXRBdHRyaWJ1dGUodW8pO2lmKCF0KXRocm93IEVycm9yKGBNaXNzaW5nIGNoYXQgSUQgYXR0cmlidXRlIG9uIGJvZHkgZWxlbWVudC5gKTtpZighZS5wYXJlbnQuJHNtYXJ0c3VwcCl0aHJvdyBFcnJvcihgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFNlZW1zIGxpa2UgbG9hZGVyLmpzIGRpZCBub3QgaW5pdGlhbGl6ZSB3aWRnZXQuYCk7aWYoIWUucGFyZW50LiRzbWFydHN1cHAuZ2V0V2lkZ2V0KXRocm93IEVycm9yKGBHZXQgd2lkZ2V0IGZ1bmN0aW9uIHdhcyBub3Qgc3VwcGxpZWQgYnkgbG9hZGVyLmpzLmApO3JldHVybiBlLnBhcmVudC4kc21hcnRzdXBwLmdldFdpZGdldCh0KX07ZnVuY3Rpb24gYm8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXX1yZXR1cm4gZX12YXIgeG89e3JlYWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT1gImAmJihlPWUuc2xpY2UoMSwtMSkpLGUucmVwbGFjZSgvKCVbXGRBLUZdezJ9KSsvZ2ksZGVjb2RlVVJJQ29tcG9uZW50KX0sd3JpdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lKDJbMzQ2QkZdfDNbQUMtRl18NDB8NVtCREVdfDYwfDdbQkNEXSkvZyxkZWNvZGVVUklDb21wb25lbnQpfX07ZnVuY3Rpb24gU28oZSx0KXtmdW5jdGlvbiBuKG4scixpKXtpZighKHR5cGVvZiBkb2N1bWVudD5gdWApKXtpPWJvKHt9LHQsaSksdHlwZW9mIGkuZXhwaXJlcz09YG51bWJlcmAmJihpLmV4cGlyZXM9bmV3IERhdGUoRGF0ZS5ub3coKStpLmV4cGlyZXMqODY0ZTUpKSxpLmV4cGlyZXMmJj1pLmV4cGlyZXMudG9VVENTdHJpbmcoKSxuPWVuY29kZVVSSUNvbXBvbmVudChuKS5yZXBsYWNlKC8lKDJbMzQ2Ql18NUV8NjB8N0MpL2csZGVjb2RlVVJJQ29tcG9uZW50KS5yZXBsYWNlKC9bKCldL2csZXNjYXBlKTt2YXIgYT1gYDtmb3IodmFyIG8gaW4gaSlpW29dJiYoYSs9YDsgYCtvLGlbb10hPT0hMCYmKGErPWA9YCtpW29dLnNwbGl0KGA7YClbMF0pKTtyZXR1cm4gZG9jdW1lbnQuY29va2llPW4rYD1gK2Uud3JpdGUocixuKSthfX1mdW5jdGlvbiByKHQpe2lmKCEodHlwZW9mIGRvY3VtZW50PmB1YHx8YXJndW1lbnRzLmxlbmd0aCYmIXQpKXtmb3IodmFyIG49ZG9jdW1lbnQuY29va2llP2RvY3VtZW50LmNvb2tpZS5zcGxpdChgOyBgKTpbXSxyPXt9LGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9bltpXS5zcGxpdChgPWApLG89YS5zbGljZSgxKS5qb2luKGA9YCk7dHJ5e3ZhciBzPWRlY29kZVVSSUNvbXBvbmVudChhWzBdKTtpZihyW3NdPWUucmVhZChvLHMpLHQ9PT1zKWJyZWFrfWNhdGNoe319cmV0dXJuIHQ/clt0XTpyfX1yZXR1cm4gT2JqZWN0LmNyZWF0ZSh7c2V0Om4sZ2V0OnIscmVtb3ZlOmZ1bmN0aW9uKGUsdCl7bihlLGBgLGJvKHt9LHQse2V4cGlyZXM6LTF9KSl9LHdpdGhBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybiBTbyh0aGlzLmNvbnZlcnRlcixibyh7fSx0aGlzLmF0dHJpYnV0ZXMsZSkpfSx3aXRoQ29udmVydGVyOmZ1bmN0aW9uKGUpe3JldHVybiBTbyhibyh7fSx0aGlzLmNvbnZlcnRlcixlKSx0aGlzLmF0dHJpYnV0ZXMpfX0se2F0dHJpYnV0ZXM6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9LGNvbnZlcnRlcjp7dmFsdWU6T2JqZWN0LmZyZWV6ZShlKX19KX12YXIgQ289U28oeG8se3BhdGg6YC9gfSksd289YHNzdXBwYCxUbz0oZT0xODIpPT4oe2V4cGlyZXM6ZSxkb21haW46Vi5nZXRPcHRpb25zKCkuY29va2llRG9tYWluLHBhdGg6Vi5nZXRPcHRpb25zKCkuY29va2llUGF0aHx8YC9gLHNhbWVTaXRlOmBzdHJpY3RgLHNlY3VyZTpCKCkubG9jYXRpb24ucHJvdG9jb2w9PT1gaHR0cHM6YH0pLEVvPWU9PmAke1YuZ2V0T3B0aW9ucygpLmNvb2tpZVByZWZpeHx8YGB9JHt3b30uJHtlfWAsRG89KHtuYW1lOmUsdmFsdWU6dCxleHBpcmF0aW9uSW5EYXlzOm49MTgyLG9wdGlvbnM6cn0pPT57Q28uc2V0KEVvKGUpLHQsey4uLlRvKG4pLC4uLnJ9KX0sT289ZT0+Q28uZ2V0KEVvKGUpKSxrbz1lPT57bGV0IHQ9RW8oZSk7aWYoQ28uZ2V0KHQpKXtsZXR7cGF0aDplLGRvbWFpbjpufT1UbygpO0NvLnJlbW92ZSh0LHtwYXRoOmUsZG9tYWluOm59KX19LEFvPWU9Pih0LC4uLm4pPT57ZShgW1NtYXJ0c3VwcF0gJHt0fWAsLi4ubil9LEg9QW8oY29uc29sZS53YXJuKSxqbz1Bbyhjb25zb2xlLmVycm9yKSxNbz0oKT0+e2xldHtrZXk6ZX09Vi5nZXRPcHRpb25zKCk7cmV0dXJuYCR7QigpLlNNQVJUU1VQUF9BVVRPQ1JFQVRFPT09ITE/YCR7eW8od2luZG93KS5pZH1fJHt3b31gOndvfV8ke2V9YH0sTm89ZT0+YCR7TW8oKX0ke2U/YF8ke2V9YDpgYH1gLFBvPWU9Pnt0cnl7bGV0IHQ9d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKE5vKGUpKT8/YHt9YDtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaHtyZXR1cm57fX19LEZvPShlLHQpPT57dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShObyh0KSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2goZSl7SChgU2V0IHRvIGxvY2FsIHN0b3JhZ2UgZmFpbGVkYCxlKX19LElvPShlLHQpPT57Rm8oey4uLlBvKCksW2VdOlN0cmluZyh0KX0pfSxMbz1lPT57bGV0IHQ9UG8oKTt0W2VdJiYoZGVsZXRlIHRbZV0sRm8odCkpfSxSbz0oKT0+e3dpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShObygpKSx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oTm8oYGNhcmRzYCkpfSxVPWZ1bmN0aW9uKGUpe3JldHVybiBlLkFuYWx5dGljc0NvbnNlbnQ9YGFuYWx5dGljc0NvbnNlbnRgLGUuQXV0aEZvcm09YGF1dGhGb3JtYCxlLklzTWVzc2VuZ2VyRnJhbWVFeHBhbmRlZD1gaXNNZXNzZW5nZXJGcmFtZUV4cGFuZGVkYCxlLklzTWVzc2VuZ2VyRnJhbWVPcGVuZWQ9YG9wZW5lZGAsZS5NYXJrZXRpbmdDb25zZW50PWBtYXJrZXRpbmdDb25zZW50YCxlLk1lc3NhZ2U9YG1lc3NhZ2VgLGUuUG9wdXBDbG9zZWRBdD1gcG9wdXBDbG9zZWRBdGAsZS5SYXRpbmdUZXh0PWByYXRpbmdUZXh0YCxlLlNvdW5kc0VuYWJsZWQ9YGVuYWJsZVNvdW5kc2AsZS5WaXNpdG9ySWQ9YHZpZGAsZS5WaXNpdHM9YHZpc2l0c2AsZS5UaWNrZXRGb3JtPWB0aWNrZXRGb3JtYCxlLlNlc3Npb25JZD1gc2Vzc2lvbklkYCxlfSh7fSksem89ZT0+e2xldCB0PWBgO3JldHVybiBlPT09VS5WaXNpdG9ySWQmJlYuZ2V0T3B0aW9ucygpLmNvb2tpZURvbWFpbiYmKHQ9T28oZSkpLHR8fFBvKClbZV19LEJvPSh7bmFtZTplLHZhbHVlOnR9KT0+e2U9PT1VLlZpc2l0b3JJZCYmVi5nZXRPcHRpb25zKCkuY29va2llRG9tYWluJiZEbyh7bmFtZTplLHZhbHVlOnR9KSxJbyhlLHQpfSxWbz1lPT57TG8oZSl9O3oub24oYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCxlPT57Qm8oe25hbWU6VS5BbmFseXRpY3NDb25zZW50LHZhbHVlOlN0cmluZyhlKX0pfSksei5vbihgbWFya2V0aW5nQ29uc2VudENoYW5nZWRgLGU9PntCbyh7bmFtZTpVLk1hcmtldGluZ0NvbnNlbnQsdmFsdWU6U3RyaW5nKGUpfSl9KTt2YXIgSG89KCk9PiEhVi5nZXRPcHRpb25zKCkuY29uc2VudE1vZGVFbmFibGVkLFVvPSgpPT57bGV0IGU9em8oVS5BbmFseXRpY3NDb25zZW50KT09PWB0cnVlYDtyZXR1cm4hKEhvKCkmJiFlKX0sV289KCk9PntsZXQgZT16byhVLk1hcmtldGluZ0NvbnNlbnQpPT09YHRydWVgO3JldHVybiEoSG8oKSYmIWUpfSxHbz1gbW9kdWxlcHJlbG9hZGAsS289ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFVSTChlLHQpLmhyZWZ9LHFvPXt9LEpvPWZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1Qcm9taXNlLnJlc29sdmUoKTtpZih0JiZ0Lmxlbmd0aD4wKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgbGlua2ApLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdYCksYT1pPy5ub25jZXx8aT8uZ2V0QXR0cmlidXRlKGBub25jZWApO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUubWFwKGU9PlByb21pc2UucmVzb2x2ZShlKS50aGVuKGU9Pih7c3RhdHVzOmBmdWxmaWxsZWRgLHZhbHVlOmV9KSxlPT4oe3N0YXR1czpgcmVqZWN0ZWRgLHJlYXNvbjplfSkpKSl9cj1vKHQubWFwKHQ9PntpZih0PUtvKHQsbiksdCBpbiBxbylyZXR1cm47cW9bdF09ITA7bGV0IHI9dC5lbmRzV2l0aChgLmNzc2ApLGk9cj9gW3JlbD0ic3R5bGVzaGVldCJdYDpgYDtpZihuKWZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtsZXQgaT1lW25dO2lmKGkuaHJlZj09PXQmJighcnx8aS5yZWw9PT1gc3R5bGVzaGVldGApKXJldHVybn1lbHNlIGlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj0iJHt0fSJdJHtpfWApKXJldHVybjtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBsaW5rYCk7aWYoby5yZWw9cj9gc3R5bGVzaGVldGA6R28scnx8KG8uYXM9YHNjcmlwdGApLG8uY3Jvc3NPcmlnaW49YGAsby5ocmVmPXQsYSYmby5zZXRBdHRyaWJ1dGUoYG5vbmNlYCxhKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pLHIpcmV0dXJuIG5ldyBQcm9taXNlKChlLG4pPT57by5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCxlKSxvLmFkZEV2ZW50TGlzdGVuZXIoYGVycm9yYCwoKT0+bihFcnJvcihgVW5hYmxlIHRvIHByZWxvYWQgQ1NTIGZvciAke3R9YCkpKX0pfSkpfWZ1bmN0aW9uIGkoZSl7bGV0IHQ9bmV3IEV2ZW50KGB2aXRlOnByZWxvYWRFcnJvcmAse2NhbmNlbGFibGU6ITB9KTtpZih0LnBheWxvYWQ9ZSx3aW5kb3cuZGlzcGF0Y2hFdmVudCh0KSwhdC5kZWZhdWx0UHJldmVudGVkKXRocm93IGV9cmV0dXJuIHIudGhlbih0PT57Zm9yKGxldCBlIG9mIHR8fFtdKWUuc3RhdHVzPT09YHJlamVjdGVkYCYmaShlLnJlYXNvbik7cmV0dXJuIGUoKS5jYXRjaChpKX0pfSxZbz0oKT0+ISFWLmdldE9wdGlvbnMoKS5jcm9zc0RvbWFpbkVuYWJsZWQsWG89KCk9PlYuZ2V0T3B0aW9ucygpLmFsbG93ZWREb21haW5zLmxlbmd0aD4wLFpvPWFzeW5jKCk9Pnt0cnl7bGV0IGU9YXdhaXQgbmV3KGF3YWl0KEpvKCgpPT5pbXBvcnQoYC4vdGh1bWJtYXJrLmVzbS1DUDRDVTB5TC5qc2ApLFtdLGltcG9ydC5tZXRhLnVybCkpKS5UaHVtYm1hcmsoKS5nZXQoKTtyZXR1cm4gdm8oYFZpc2l0b3IgZmluZ2VycHJpbnQgY3JlYXRlZGAsZS50aHVtYm1hcmspLGUudGh1bWJtYXJrfWNhdGNoKGUpe0goYEZhaWxlZCB0byBnZW5lcmF0ZSBmaW5nZXJwcmludDpgLGUpfX0sUW89YXN5bmMoKT0+e2lmKCEoIVlvKCl8fCFYbygpKSlyZXR1cm4gWm8oKX0sJG89KCk9PnpvKFUuVmlzaXRvcklkKXx8bnVsbCxlcz1lPT5Cbyh7bmFtZTpVLlZpc2l0b3JJZCx2YWx1ZTpTdHJpbmcoZSl9KSx0cz0oKT0+e2lmKFdvKCkpcmV0dXJuIHpvKFUuVmlzaXRzKT9OdW1iZXIoem8oVS5WaXNpdHMpKTowfSxucz1lPT57V28oKSYmQm8oe25hbWU6VS5WaXNpdHMsdmFsdWU6U3RyaW5nKGUpfSl9O3oub24oYG1hcmtldGluZ0NvbnNlbnRDaGFuZ2VkYCxlPT57ZXx8Vm8oVS5WaXNpdHMpfSk7dmFyIHJzPShlLHQsbik9PntsZXR7c2V0OnIsc3Vic2NyaWJlOml9PU8odCx0PT57bGV0IHI9em8oZSk7ciYmdChuP24ocik6cil9KSxhPXQ9PntCbyh7bmFtZTplLHZhbHVlOlN0cmluZyh0KX0pfTtyZXR1cm57c2V0OmU9PnthKGUpLHIoZSl9LHN1YnNjcmliZTppfX0saXM9KCk9PmBvbnRvdWNoc3RhcnRgaW4gd2luZG93fHxuYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz4wLGFzPSgpPT5bYGlQYWQgU2ltdWxhdG9yYCxgaVBob25lIFNpbXVsYXRvcmAsYGlQb2QgU2ltdWxhdG9yYCxgaVBhZGAsYGlQaG9uZWAsYGlQb2RgXS5pbmNsdWRlcyhuYXZpZ2F0b3IucGxhdGZvcm0pfHxuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKGBNYWNgKSYmYG9udG91Y2hlbmRgaW4gZG9jdW1lbnQsb3M9TyhudWxsKSxzcz1rKFtvcyxPKHt3aWR0aDpCKCkuaW5uZXJXaWR0aCxoZWlnaHQ6QigpLmlubmVySGVpZ2h0fSldLChbZSx0XSk9PntsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOm59PVYuZ2V0T3B0aW9ucygpO2lmKG4/LmVuZm9yY2VEZXNrdG9wTW9kZSlyZXR1cm4hMTtpZihlKXtsZXR7aXNNb2JpbGU6dCxpc1RhYmxldDpufT1lO2lmKG4pcmV0dXJuITE7aWYodClyZXR1cm4hMH1yZXR1cm4gdC53aWR0aDw0NTB8fHQuaGVpZ2h0PDUwMH0pLGNzPWsoW3NzXSwoW2VdKT0+e2xldHtmdWxsU2NyZWVuRW5hYmxlZDp0fT1WLmdldE9wdGlvbnMoKTtyZXR1cm4hIShlfHx0KX0pLGxzPWsoW29zXSwoW2VdKT0+ZT8hIWU/LmlzRGVza3RvcCYmIWFzKCk6IWlzKCkpLHVzPWsoW2xzLGNzXSwoW2UsdF0pPT5lJiYhdCk7ayhbb3NdLChbZV0pPT4hIWU/LmlzVGFibGV0KTt2YXIgZHM9KCgpPT57bGV0IGU9Tyh7fSkse3N1YnNjcmliZTp0LHVwZGF0ZTpufT1lO3JldHVybntzdWJzY3JpYmU6dCxhZGQ6ZT0+e24odD0+KHsuLi50LFtlLmlkXTplfSkpfSxyZW1vdmU6ZT0+e24odD0+e2xldHtbZV06biwuLi5yfT10O3JldHVybiByfSl9LGZpbmQ6dD0+QShlKVt0XXx8bnVsbH19KSgpLGZzPWsoW2RzXSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKSkscHM9ZT0+KHQsbj0zZTMpPT57bGV0IHI9YGZtLSR7ZX0tJHt0fWAsaT1kcy5maW5kKHIpLGE9MTtpJiYoY2xlYXJUaW1lb3V0KGkudGltZW91dCksYT1pLnJlY3VycmVuY2UrMSk7bGV0IG87cmV0dXJuIG4+MCYmKG89d2luZG93LnNldFRpbWVvdXQoKCk9PnttcyhyKX0sbikpLGRzLmFkZCh7aWQ6cix0eXBlOmUsdGV4dDp0LHRpbWVvdXQ6byxyZWN1cnJlbmNlOmF9KSwoKT0+bXMocil9LG1zPWU9Pntkcy5yZW1vdmUoZSl9LGhzPXBzKGBzdWNjZXNzYCksZ3M9cHMoYGVycm9yYCksX3M9cHMoYHdhcm5pbmdgKSx2cz1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLkdvb2Q9NV09YEdvb2RgLGVbZS5Ob3JtYWw9M109YE5vcm1hbGAsZVtlLkJhZD0xXT1gQmFkYCxlfSh7fSkseXM9e1t2cy5Hb29kXTp7dmFsdWU6dnMuR29vZCx0ZXh0OmBhZ2VudFJhdGluZy5nb29kLmZvcm1UZXh0YCxuYW1lOmBnb29kYH0sW3ZzLk5vcm1hbF06e3ZhbHVlOnZzLk5vcm1hbCx0ZXh0OmBhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHRgLG5hbWU6YG5ldXRyYWxgfSxbdnMuQmFkXTp7dmFsdWU6dnMuQmFkLHRleHQ6YGFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dGAsbmFtZTpgYmFkYH19LGJzPU9iamVjdC52YWx1ZXMoeXMpLnNvcnQoKGUsdCk9PnQudmFsdWUtZS52YWx1ZSkseHM9YHJhdGVfZm9ybV9pZGAsU3M9e2lkOnhzLHR5cGU6YG1lc3NhZ2VgLHN1YlR5cGU6YHN5c3RlbWAsY2hhbm5lbDp7dHlwZTpgZGVmYXVsdGAsaWQ6bnVsbH0sY2hhdElkOmBgLHZpc2l0b3JJZDpgYCxncm91cElkOm51bGwsYWdlbnRJZDpudWxsLHRyaWdnZXI6bnVsbCxjcmVhdGVkQXQ6YGAsY29udGVudDp7dHlwZTpgcmF0ZV9mb3JtYCxkYXRhOnt9fSxhdHRhY2htZW50czpbXSxzdWJqZWN0Om51bGwsZm9yd2FyZGVkTWVzc2FnZUlkOm51bGwscGFydGljaXBhbnRzOltdLHJlcGx5VG9NZXNzYWdlSWQ6bnVsbCxkZWxldGVkQXQ6bnVsbCx3aWRnZXRPcHRpb25zOntkaXNhYmxlSW5wdXQ6ITEsZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiExLGRpc2FibGVBdHRhY2htZW50czohMX19LENzPU8obnVsbCksd3M9cygoKGUsdCk9Pnt2YXIgbj0xZTMscj1uKjYwLGk9cio2MCxhPWkqMjQsbz1hKjcscz1hKjM2NS4yNTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHw9e307dmFyIG49dHlwZW9mIGU7aWYobj09PWBzdHJpbmdgJiZlLmxlbmd0aD4wKXJldHVybiBjKGUpO2lmKG49PT1gbnVtYmVyYCYmaXNGaW5pdGUoZSkpcmV0dXJuIHQubG9uZz91KGUpOmwoZSk7dGhyb3cgRXJyb3IoYHZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9YCtKU09OLnN0cmluZ2lmeShlKSl9O2Z1bmN0aW9uIGMoZSl7aWYoZT1TdHJpbmcoZSksIShlLmxlbmd0aD4xMDApKXt2YXIgdD0vXigtPyg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8d2Vla3M/fHd8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYodCl7dmFyIGM9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fGBtc2ApLnRvTG93ZXJDYXNlKCkpe2Nhc2VgeWVhcnNgOmNhc2VgeWVhcmA6Y2FzZWB5cnNgOmNhc2VgeXJgOmNhc2VgeWA6cmV0dXJuIGMqcztjYXNlYHdlZWtzYDpjYXNlYHdlZWtgOmNhc2Vgd2A6cmV0dXJuIGMqbztjYXNlYGRheXNgOmNhc2VgZGF5YDpjYXNlYGRgOnJldHVybiBjKmE7Y2FzZWBob3Vyc2A6Y2FzZWBob3VyYDpjYXNlYGhyc2A6Y2FzZWBocmA6Y2FzZWBoYDpyZXR1cm4gYyppO2Nhc2VgbWludXRlc2A6Y2FzZWBtaW51dGVgOmNhc2VgbWluc2A6Y2FzZWBtaW5gOmNhc2VgbWA6cmV0dXJuIGMqcjtjYXNlYHNlY29uZHNgOmNhc2Vgc2Vjb25kYDpjYXNlYHNlY3NgOmNhc2Vgc2VjYDpjYXNlYHNgOnJldHVybiBjKm47Y2FzZWBtaWxsaXNlY29uZHNgOmNhc2VgbWlsbGlzZWNvbmRgOmNhc2VgbXNlY3NgOmNhc2VgbXNlY2A6Y2FzZWBtc2A6cmV0dXJuIGM7ZGVmYXVsdDpyZXR1cm59fX19ZnVuY3Rpb24gbChlKXt2YXIgdD1NYXRoLmFicyhlKTtyZXR1cm4gdD49YT9NYXRoLnJvdW5kKGUvYSkrYGRgOnQ+PWk/TWF0aC5yb3VuZChlL2kpK2BoYDp0Pj1yP01hdGgucm91bmQoZS9yKStgbWA6dD49bj9NYXRoLnJvdW5kKGUvbikrYHNgOmUrYG1zYH1mdW5jdGlvbiB1KGUpe3ZhciB0PU1hdGguYWJzKGUpO3JldHVybiB0Pj1hP2QoZSx0LGEsYGRheWApOnQ+PWk/ZChlLHQsaSxgaG91cmApOnQ+PXI/ZChlLHQscixgbWludXRlYCk6dD49bj9kKGUsdCxuLGBzZWNvbmRgKTplK2AgbXNgfWZ1bmN0aW9uIGQoZSx0LG4scil7dmFyIGk9dD49bioxLjU7cmV0dXJuIE1hdGgucm91bmQoZS9uKStgIGArcisoaT9gc2A6YGApfX0pKSxUcz1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7bi5kZWJ1Zz1uLG4uZGVmYXVsdD1uLG4uY29lcmNlPWMsbi5kaXNhYmxlPW8sbi5lbmFibGU9aSxuLmVuYWJsZWQ9cyxuLmh1bWFuaXplPXdzKCksbi5kZXN0cm95PWwsT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57blt0XT1lW3RdfSksbi5uYW1lcz1bXSxuLnNraXBzPVtdLG4uZm9ybWF0dGVycz17fTtmdW5jdGlvbiB0KGUpe2xldCB0PTA7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdD0odDw8NSktdCtlLmNoYXJDb2RlQXQobiksdHw9MDtyZXR1cm4gbi5jb2xvcnNbTWF0aC5hYnModCklbi5jb2xvcnMubGVuZ3RoXX1uLnNlbGVjdENvbG9yPXQ7ZnVuY3Rpb24gbihlKXtsZXQgdCxpPW51bGwsYSxvO2Z1bmN0aW9uIHMoLi4uZSl7aWYoIXMuZW5hYmxlZClyZXR1cm47bGV0IHI9cyxpPU51bWJlcihuZXcgRGF0ZSk7ci5kaWZmPWktKHR8fGkpLHIucHJldj10LHIuY3Vycj1pLHQ9aSxlWzBdPW4uY29lcmNlKGVbMF0pLHR5cGVvZiBlWzBdIT1gc3RyaW5nYCYmZS51bnNoaWZ0KGAlT2ApO2xldCBhPTA7ZVswXT1lWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCh0LGkpPT57aWYodD09PWAlJWApcmV0dXJuYCVgO2ErKztsZXQgbz1uLmZvcm1hdHRlcnNbaV07aWYodHlwZW9mIG89PWBmdW5jdGlvbmApe2xldCBuPWVbYV07dD1vLmNhbGwocixuKSxlLnNwbGljZShhLDEpLGEtLX1yZXR1cm4gdH0pLG4uZm9ybWF0QXJncy5jYWxsKHIsZSksKHIubG9nfHxuLmxvZykuYXBwbHkocixlKX1yZXR1cm4gcy5uYW1lc3BhY2U9ZSxzLnVzZUNvbG9ycz1uLnVzZUNvbG9ycygpLHMuY29sb3I9bi5zZWxlY3RDb2xvcihlKSxzLmV4dGVuZD1yLHMuZGVzdHJveT1uLmRlc3Ryb3ksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYGVuYWJsZWRgLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6KCk9Pmk9PT1udWxsPyhhIT09bi5uYW1lc3BhY2VzJiYoYT1uLm5hbWVzcGFjZXMsbz1uLmVuYWJsZWQoZSkpLG8pOmksc2V0OmU9PntpPWV9fSksdHlwZW9mIG4uaW5pdD09YGZ1bmN0aW9uYCYmbi5pbml0KHMpLHN9ZnVuY3Rpb24gcihlLHQpe2xldCByPW4odGhpcy5uYW1lc3BhY2UrKHQ9PT12b2lkIDA/YDpgOnQpK2UpO3JldHVybiByLmxvZz10aGlzLmxvZyxyfWZ1bmN0aW9uIGkoZSl7bi5zYXZlKGUpLG4ubmFtZXNwYWNlcz1lLG4ubmFtZXM9W10sbi5za2lwcz1bXTtsZXQgdD0odHlwZW9mIGU9PWBzdHJpbmdgP2U6YGApLnRyaW0oKS5yZXBsYWNlKC9ccysvZyxgLGApLnNwbGl0KGAsYCkuZmlsdGVyKEJvb2xlYW4pO2ZvcihsZXQgZSBvZiB0KWVbMF09PT1gLWA/bi5za2lwcy5wdXNoKGUuc2xpY2UoMSkpOm4ubmFtZXMucHVzaChlKX1mdW5jdGlvbiBhKGUsdCl7bGV0IG49MCxyPTAsaT0tMSxhPTA7Zm9yKDtuPGUubGVuZ3RoOylpZihyPHQubGVuZ3RoJiYodFtyXT09PWVbbl18fHRbcl09PT1gKmApKXRbcl09PT1gKmA/KGk9cixhPW4scisrKToobisrLHIrKyk7ZWxzZSBpZihpIT09LTEpcj1pKzEsYSsrLG49YTtlbHNlIHJldHVybiExO2Zvcig7cjx0Lmxlbmd0aCYmdFtyXT09PWAqYDspcisrO3JldHVybiByPT09dC5sZW5ndGh9ZnVuY3Rpb24gbygpe2xldCBlPVsuLi5uLm5hbWVzLC4uLm4uc2tpcHMubWFwKGU9PmAtYCtlKV0uam9pbihgLGApO3JldHVybiBuLmVuYWJsZShgYCksZX1mdW5jdGlvbiBzKGUpe2ZvcihsZXQgdCBvZiBuLnNraXBzKWlmKGEoZSx0KSlyZXR1cm4hMTtmb3IobGV0IHQgb2Ygbi5uYW1lcylpZihhKGUsdCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2t8fGUubWVzc2FnZTplfWZ1bmN0aW9uIGwoKXtjb25zb2xlLndhcm4oIkluc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4iKX1yZXR1cm4gbi5lbmFibGUobi5sb2FkKCkpLG59dC5leHBvcnRzPW59KSksRXM9cygoKGUsdCk9PntlLmZvcm1hdEFyZ3M9cixlLnNhdmU9aSxlLmxvYWQ9YSxlLnVzZUNvbG9ycz1uLGUuc3RvcmFnZT1vKCksZS5kZXN0cm95PSgoKT0+e2xldCBlPSExO3JldHVybigpPT57ZXx8KGU9ITAsY29uc29sZS53YXJuKCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuIikpfX0pKCksZS5jb2xvcnM9YCMwMDAwQ0MuIzAwMDBGRi4jMDAzM0NDLiMwMDMzRkYuIzAwNjZDQy4jMDA2NkZGLiMwMDk5Q0MuIzAwOTlGRi4jMDBDQzAwLiMwMENDMzMuIzAwQ0M2Ni4jMDBDQzk5LiMwMENDQ0MuIzAwQ0NGRi4jMzMwMENDLiMzMzAwRkYuIzMzMzNDQy4jMzMzM0ZGLiMzMzY2Q0MuIzMzNjZGRi4jMzM5OUNDLiMzMzk5RkYuIzMzQ0MwMC4jMzNDQzMzLiMzM0NDNjYuIzMzQ0M5OS4jMzNDQ0NDLiMzM0NDRkYuIzY2MDBDQy4jNjYwMEZGLiM2NjMzQ0MuIzY2MzNGRi4jNjZDQzAwLiM2NkNDMzMuIzk5MDBDQy4jOTkwMEZGLiM5OTMzQ0MuIzk5MzNGRi4jOTlDQzAwLiM5OUNDMzMuI0NDMDAwMC4jQ0MwMDMzLiNDQzAwNjYuI0NDMDA5OS4jQ0MwMENDLiNDQzAwRkYuI0NDMzMwMC4jQ0MzMzMzLiNDQzMzNjYuI0NDMzM5OS4jQ0MzM0NDLiNDQzMzRkYuI0NDNjYwMC4jQ0M2NjMzLiNDQzk5MDAuI0NDOTkzMy4jQ0NDQzAwLiNDQ0NDMzMuI0ZGMDAwMC4jRkYwMDMzLiNGRjAwNjYuI0ZGMDA5OS4jRkYwMENDLiNGRjAwRkYuI0ZGMzMwMC4jRkYzMzMzLiNGRjMzNjYuI0ZGMzM5OS4jRkYzM0NDLiNGRjMzRkYuI0ZGNjYwMC4jRkY2NjMzLiNGRjk5MDAuI0ZGOTkzMy4jRkZDQzAwLiNGRkNDMzNgLnNwbGl0KGAuYCk7ZnVuY3Rpb24gbigpe2lmKHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmKHdpbmRvdy5wcm9jZXNzLnR5cGU9PT1gcmVuZGVyZXJgfHx3aW5kb3cucHJvY2Vzcy5fX253anMpKXJldHVybiEwO2lmKHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pKXJldHVybiExO2xldCBlO3JldHVybiB0eXBlb2YgZG9jdW1lbnQ8YHVgJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cuY29uc29sZSYmKHdpbmRvdy5jb25zb2xlLmZpcmVidWd8fHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiYmd2luZG93LmNvbnNvbGUudGFibGUpfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmKGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pKSYmcGFyc2VJbnQoZVsxXSwxMCk+PTMxfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX1mdW5jdGlvbiByKGUpe2lmKGVbMF09KHRoaXMudXNlQ29sb3JzP2AlY2A6YGApK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9gICVjYDpgIGApK2VbMF0rKHRoaXMudXNlQ29sb3JzP2AlYyBgOmAgYCkrYCtgK3QuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47bGV0IG49YGNvbG9yOiBgK3RoaXMuY29sb3I7ZS5zcGxpY2UoMSwwLG4sYGNvbG9yOiBpbmhlcml0YCk7bGV0IHI9MCxpPTA7ZVswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e2UhPT1gJSVgJiYocisrLGU9PT1gJWNgJiYoaT1yKSl9KSxlLnNwbGljZShpLDAsbil9ZS5sb2c9Y29uc29sZS5kZWJ1Z3x8Y29uc29sZS5sb2d8fCgoKT0+e30pO2Z1bmN0aW9uIGkodCl7dHJ5e3Q/ZS5zdG9yYWdlLnNldEl0ZW0oYGRlYnVnYCx0KTplLnN0b3JhZ2UucmVtb3ZlSXRlbShgZGVidWdgKX1jYXRjaHt9fWZ1bmN0aW9uIGEoKXtsZXQgdDt0cnl7dD1lLnN0b3JhZ2UuZ2V0SXRlbShgZGVidWdgKXx8ZS5zdG9yYWdlLmdldEl0ZW0oYERFQlVHYCl9Y2F0Y2h7fXJldHVybiF0JiZ0eXBlb2YgcHJvY2VzczxgdWAmJmBlbnZgaW4gcHJvY2VzcyYmKHQ9e30uREVCVUcpLHR9ZnVuY3Rpb24gbygpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlfWNhdGNoe319dC5leHBvcnRzPVRzKCkoZSk7dmFye2Zvcm1hdHRlcnM6c309dC5leHBvcnRzO3Muaj1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKGUpe3JldHVybmBbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogYCtlLm1lc3NhZ2V9fX0pKSxEcz1zKChlPT57dmFyIHQ9ZSYmZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT1gZnVuY3Rpb25gJiZuIT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcobikrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuY3JlYXRlRW1pdHRlcj1lLmNyZWF0ZUNhbGxiYWNrPWUuYm91bmQ9ZS5jcmVhdGVTb2NrZXRFcnJvcj1lLlNvY2tldEVycm9yPWUuZGVidWc9dm9pZCAwLGUuZGVidWc9bigpO2Z1bmN0aW9uIG4oKXt0cnl7cmV0dXJuIEVzKCkoYHNtYXJ0c3VwcDpjbGllbnRgKX1jYXRjaHtyZXR1cm4gZnVuY3Rpb24oKXt9fX12YXIgcj1mdW5jdGlvbihlKXt0KG4sZSk7ZnVuY3Rpb24gbih0LHIpe3ZhciBpPWUuY2FsbCh0aGlzLHQpfHx0aGlzO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoaSxuLnByb3RvdHlwZSksaS5uYW1lPWkuY29uc3RydWN0b3IubmFtZSxpLmNvZGU9ci5jb2RlLGkudHlwZT1yLnR5cGUsaS5ldmVudD1yLmV2ZW50LHImJnIuc3RhY2smJihpLnN0YWNrPWAke2kuc3RhY2t9CkNhdXNlZCBCeTogJHtyLnN0YWNrfWApLGl9cmV0dXJuIG59KEVycm9yKTtlLlNvY2tldEVycm9yPXI7ZnVuY3Rpb24gaShlKXtyZXR1cm4gbmV3IHIoZS5tZXNzYWdlLGUpfWUuY3JlYXRlU29ja2V0RXJyb3I9aTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Wy4uLmFyZ3VtZW50c107ZVt0XS5hcHBseShlLG4pfX1lLmJvdW5kPWE7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe24/dChpKG4pKTplKHIpfX1lLmNyZWF0ZUNhbGxiYWNrPW87ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBmdW5jdGlvbihuKXtlLmVtaXQodCxuKX19ZS5jcmVhdGVFbWl0dGVyPXN9KSksT3M9cygoKGUsdCk9Pnt2YXIgbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHI9YH5gO2Z1bmN0aW9uIGkoKXt9T2JqZWN0LmNyZWF0ZSYmKGkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobnVsbCksbmV3IGkoKS5fX3Byb3RvX198fChyPSExKSk7ZnVuY3Rpb24gYShlLHQsbil7dGhpcy5mbj1lLHRoaXMuY29udGV4dD10LHRoaXMub25jZT1ufHwhMX1mdW5jdGlvbiBvKGUsdCxuLGksbyl7aWYodHlwZW9mIG4hPWBmdW5jdGlvbmApdGhyb3cgVHlwZUVycm9yKGBUaGUgbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uYCk7dmFyIHM9bmV3IGEobixpfHxlLG8pLGM9cj9yK3Q6dDtyZXR1cm4gZS5fZXZlbnRzW2NdP2UuX2V2ZW50c1tjXS5mbj9lLl9ldmVudHNbY109W2UuX2V2ZW50c1tjXSxzXTplLl9ldmVudHNbY10ucHVzaChzKTooZS5fZXZlbnRzW2NdPXMsZS5fZXZlbnRzQ291bnQrKyksZX1mdW5jdGlvbiBzKGUsdCl7LS1lLl9ldmVudHNDb3VudD09PTA/ZS5fZXZlbnRzPW5ldyBpOmRlbGV0ZSBlLl9ldmVudHNbdF19ZnVuY3Rpb24gYygpe3RoaXMuX2V2ZW50cz1uZXcgaSx0aGlzLl9ldmVudHNDb3VudD0wfWMucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0LGk7aWYodGhpcy5fZXZlbnRzQ291bnQ9PT0wKXJldHVybiBlO2ZvcihpIGluIHQ9dGhpcy5fZXZlbnRzKW4uY2FsbCh0LGkpJiZlLnB1c2gocj9pLnNsaWNlKDEpOmkpO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2UuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkpOmV9LGMucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXt2YXIgdD1yP3IrZTplLG49dGhpcy5fZXZlbnRzW3RdO2lmKCFuKXJldHVybltdO2lmKG4uZm4pcmV0dXJuW24uZm5dO2Zvcih2YXIgaT0wLGE9bi5sZW5ndGgsbz1BcnJheShhKTtpPGE7aSsrKW9baV09bltpXS5mbjtyZXR1cm4gb30sYy5wcm90b3R5cGUubGlzdGVuZXJDb3VudD1mdW5jdGlvbihlKXt2YXIgdD1yP3IrZTplLG49dGhpcy5fZXZlbnRzW3RdO3JldHVybiBuP24uZm4/MTpuLmxlbmd0aDowfSxjLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUsdCxuLGksYSxvKXt2YXIgcz1yP3IrZTplO2lmKCF0aGlzLl9ldmVudHNbc10pcmV0dXJuITE7dmFyIGM9dGhpcy5fZXZlbnRzW3NdLGw9YXJndW1lbnRzLmxlbmd0aCx1LGQ7aWYoYy5mbil7c3dpdGNoKGMub25jZSYmdGhpcy5yZW1vdmVMaXN0ZW5lcihlLGMuZm4sdm9pZCAwLCEwKSxsKXtjYXNlIDE6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQpLCEwO2Nhc2UgMjpyZXR1cm4gYy5mbi5jYWxsKGMuY29udGV4dCx0KSwhMDtjYXNlIDM6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuKSwhMDtjYXNlIDQ6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuLGkpLCEwO2Nhc2UgNTpyZXR1cm4gYy5mbi5jYWxsKGMuY29udGV4dCx0LG4saSxhKSwhMDtjYXNlIDY6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuLGksYSxvKSwhMH1mb3IoZD0xLHU9QXJyYXkobC0xKTtkPGw7ZCsrKXVbZC0xXT1hcmd1bWVudHNbZF07Yy5mbi5hcHBseShjLmNvbnRleHQsdSl9ZWxzZXt2YXIgZj1jLmxlbmd0aCxwO2ZvcihkPTA7ZDxmO2QrKylzd2l0Y2goY1tkXS5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGUsY1tkXS5mbix2b2lkIDAsITApLGwpe2Nhc2UgMTpjW2RdLmZuLmNhbGwoY1tkXS5jb250ZXh0KTticmVhaztjYXNlIDI6Y1tkXS5mbi5jYWxsKGNbZF0uY29udGV4dCx0KTticmVhaztjYXNlIDM6Y1tkXS5mbi5jYWxsKGNbZF0uY29udGV4dCx0LG4pO2JyZWFrO2Nhc2UgNDpjW2RdLmZuLmNhbGwoY1tkXS5jb250ZXh0LHQsbixpKTticmVhaztkZWZhdWx0OmlmKCF1KWZvcihwPTEsdT1BcnJheShsLTEpO3A8bDtwKyspdVtwLTFdPWFyZ3VtZW50c1twXTtjW2RdLmZuLmFwcGx5KGNbZF0uY29udGV4dCx1KX19cmV0dXJuITB9LGMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbyh0aGlzLGUsdCxuLCExKX0sYy5wcm90b3R5cGUub25jZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG8odGhpcyxlLHQsbiwhMCl9LGMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBhPXI/citlOmU7aWYoIXRoaXMuX2V2ZW50c1thXSlyZXR1cm4gdGhpcztpZighdClyZXR1cm4gcyh0aGlzLGEpLHRoaXM7dmFyIG89dGhpcy5fZXZlbnRzW2FdO2lmKG8uZm4pby5mbj09PXQmJighaXx8by5vbmNlKSYmKCFufHxvLmNvbnRleHQ9PT1uKSYmcyh0aGlzLGEpO2Vsc2V7Zm9yKHZhciBjPTAsbD1bXSx1PW8ubGVuZ3RoO2M8dTtjKyspKG9bY10uZm4hPT10fHxpJiYhb1tjXS5vbmNlfHxuJiZvW2NdLmNvbnRleHQhPT1uKSYmbC5wdXNoKG9bY10pO2wubGVuZ3RoP3RoaXMuX2V2ZW50c1thXT1sLmxlbmd0aD09PTE/bFswXTpsOnModGhpcyxhKX1yZXR1cm4gdGhpc30sYy5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBlPyh0PXI/citlOmUsdGhpcy5fZXZlbnRzW3RdJiZzKHRoaXMsdCkpOih0aGlzLl9ldmVudHM9bmV3IGksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhpc30sYy5wcm90b3R5cGUub2ZmPWMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLGMucHJvdG90eXBlLmFkZExpc3RlbmVyPWMucHJvdG90eXBlLm9uLGMucHJlZml4ZWQ9cixjLkV2ZW50RW1pdHRlcj1jLHQhPT12b2lkIDAmJih0LmV4cG9ydHM9Yyl9KSksa3M9cygoKGUsdCk9Pnt2YXIgbj0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcL1wvKT8oKD86KChbXjpAXSopKD86OihbXjpAXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XC8/I10qKSg/OjooXGQqKSk/KSgoKFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNcL10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxyPVtgc291cmNlYCxgcHJvdG9jb2xgLGBhdXRob3JpdHlgLGB1c2VySW5mb2AsYHVzZXJgLGBwYXNzd29yZGAsYGhvc3RgLGBwb3J0YCxgcmVsYXRpdmVgLGBwYXRoYCxgZGlyZWN0b3J5YCxgZmlsZWAsYHF1ZXJ5YCxgYW5jaG9yYF07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUsaT1lLmluZGV4T2YoYFtgKSxhPWUuaW5kZXhPZihgXWApO2khPS0xJiZhIT0tMSYmKGU9ZS5zdWJzdHJpbmcoMCxpKStlLnN1YnN0cmluZyhpLGEpLnJlcGxhY2UoLzovZyxgO2ApK2Uuc3Vic3RyaW5nKGEsZS5sZW5ndGgpKTtmb3IodmFyIG89bi5leGVjKGV8fGBgKSxzPXt9LGM9MTQ7Yy0tOylzW3JbY11dPW9bY118fGBgO3JldHVybiBpIT0tMSYmYSE9LTEmJihzLnNvdXJjZT10LHMuaG9zdD1zLmhvc3Quc3Vic3RyaW5nKDEscy5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csYDpgKSxzLmF1dGhvcml0eT1zLmF1dGhvcml0eS5yZXBsYWNlKGBbYCxgYCkucmVwbGFjZShgXWAsYGApLnJlcGxhY2UoLzsvZyxgOmApLHMuaXB2NnVyaT0hMCksc319KSksQXM9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe24uZGVidWc9bixuLmRlZmF1bHQ9bixuLmNvZXJjZT1sLG4uZGlzYWJsZT1vLG4uZW5hYmxlPWEsbi5lbmFibGVkPXMsbi5odW1hbml6ZT13cygpLE9iamVjdC5rZXlzKGUpLmZvckVhY2godD0+e25bdF09ZVt0XX0pLG4uaW5zdGFuY2VzPVtdLG4ubmFtZXM9W10sbi5za2lwcz1bXSxuLmZvcm1hdHRlcnM9e307ZnVuY3Rpb24gdChlKXtsZXQgdD0wO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQ9KHQ8PDUpLXQrZS5jaGFyQ29kZUF0KG4pLHR8PTA7cmV0dXJuIG4uY29sb3JzW01hdGguYWJzKHQpJW4uY29sb3JzLmxlbmd0aF19bi5zZWxlY3RDb2xvcj10O2Z1bmN0aW9uIG4oZSl7bGV0IGE7ZnVuY3Rpb24gbyguLi5lKXtpZighby5lbmFibGVkKXJldHVybjtsZXQgdD1vLHI9TnVtYmVyKG5ldyBEYXRlKTt0LmRpZmY9ci0oYXx8ciksdC5wcmV2PWEsdC5jdXJyPXIsYT1yLGVbMF09bi5jb2VyY2UoZVswXSksdHlwZW9mIGVbMF0hPWBzdHJpbmdgJiZlLnVuc2hpZnQoYCVPYCk7bGV0IGk9MDtlWzBdPWVbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csKHIsYSk9PntpZihyPT09YCUlYClyZXR1cm4gcjtpKys7bGV0IG89bi5mb3JtYXR0ZXJzW2FdO2lmKHR5cGVvZiBvPT1gZnVuY3Rpb25gKXtsZXQgbj1lW2ldO3I9by5jYWxsKHQsbiksZS5zcGxpY2UoaSwxKSxpLS19cmV0dXJuIHJ9KSxuLmZvcm1hdEFyZ3MuY2FsbCh0LGUpLCh0LmxvZ3x8bi5sb2cpLmFwcGx5KHQsZSl9cmV0dXJuIG8ubmFtZXNwYWNlPWUsby5lbmFibGVkPW4uZW5hYmxlZChlKSxvLnVzZUNvbG9ycz1uLnVzZUNvbG9ycygpLG8uY29sb3I9dChlKSxvLmRlc3Ryb3k9cixvLmV4dGVuZD1pLHR5cGVvZiBuLmluaXQ9PWBmdW5jdGlvbmAmJm4uaW5pdChvKSxuLmluc3RhbmNlcy5wdXNoKG8pLG99ZnVuY3Rpb24gcigpe2xldCBlPW4uaW5zdGFuY2VzLmluZGV4T2YodGhpcyk7cmV0dXJuIGU9PT0tMT8hMToobi5pbnN0YW5jZXMuc3BsaWNlKGUsMSksITApfWZ1bmN0aW9uIGkoZSx0KXtsZXQgcj1uKHRoaXMubmFtZXNwYWNlKyh0PT09dm9pZCAwP2A6YDp0KStlKTtyZXR1cm4gci5sb2c9dGhpcy5sb2cscn1mdW5jdGlvbiBhKGUpe24uc2F2ZShlKSxuLm5hbWVzPVtdLG4uc2tpcHM9W107bGV0IHQscj0odHlwZW9mIGU9PWBzdHJpbmdgP2U6YGApLnNwbGl0KC9bXHMsXSsvKSxpPXIubGVuZ3RoO2Zvcih0PTA7dDxpO3QrKylyW3RdJiYoZT1yW3RdLnJlcGxhY2UoL1wqL2csYC4qP2ApLGVbMF09PT1gLWA/bi5za2lwcy5wdXNoKFJlZ0V4cChgXmArZS5zdWJzdHIoMSkrYCRgKSk6bi5uYW1lcy5wdXNoKFJlZ0V4cChgXmArZStgJGApKSk7Zm9yKHQ9MDt0PG4uaW5zdGFuY2VzLmxlbmd0aDt0Kyspe2xldCBlPW4uaW5zdGFuY2VzW3RdO2UuZW5hYmxlZD1uLmVuYWJsZWQoZS5uYW1lc3BhY2UpfX1mdW5jdGlvbiBvKCl7bGV0IGU9Wy4uLm4ubmFtZXMubWFwKGMpLC4uLm4uc2tpcHMubWFwKGMpLm1hcChlPT5gLWArZSldLmpvaW4oYCxgKTtyZXR1cm4gbi5lbmFibGUoYGApLGV9ZnVuY3Rpb24gcyhlKXtpZihlW2UubGVuZ3RoLTFdPT09YCpgKXJldHVybiEwO2xldCB0LHI7Zm9yKHQ9MCxyPW4uc2tpcHMubGVuZ3RoO3Q8cjt0KyspaWYobi5za2lwc1t0XS50ZXN0KGUpKXJldHVybiExO2Zvcih0PTAscj1uLm5hbWVzLmxlbmd0aDt0PHI7dCsrKWlmKG4ubmFtZXNbdF0udGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBjKGUpe3JldHVybiBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIsZS50b1N0cmluZygpLmxlbmd0aC0yKS5yZXBsYWNlKC9cLlwqXD8kLyxgKmApfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX1yZXR1cm4gbi5lbmFibGUobi5sb2FkKCkpLG59dC5leHBvcnRzPW59KSksanM9cygoKGUsdCk9PntlLmxvZz1pLGUuZm9ybWF0QXJncz1yLGUuc2F2ZT1hLGUubG9hZD1vLGUudXNlQ29sb3JzPW4sZS5zdG9yYWdlPXMoKSxlLmNvbG9ycz1gIzAwMDBDQy4jMDAwMEZGLiMwMDMzQ0MuIzAwMzNGRi4jMDA2NkNDLiMwMDY2RkYuIzAwOTlDQy4jMDA5OUZGLiMwMENDMDAuIzAwQ0MzMy4jMDBDQzY2LiMwMENDOTkuIzAwQ0NDQy4jMDBDQ0ZGLiMzMzAwQ0MuIzMzMDBGRi4jMzMzM0NDLiMzMzMzRkYuIzMzNjZDQy4jMzM2NkZGLiMzMzk5Q0MuIzMzOTlGRi4jMzNDQzAwLiMzM0NDMzMuIzMzQ0M2Ni4jMzNDQzk5LiMzM0NDQ0MuIzMzQ0NGRi4jNjYwMENDLiM2NjAwRkYuIzY2MzNDQy4jNjYzM0ZGLiM2NkNDMDAuIzY2Q0MzMy4jOTkwMENDLiM5OTAwRkYuIzk5MzNDQy4jOTkzM0ZGLiM5OUNDMDAuIzk5Q0MzMy4jQ0MwMDAwLiNDQzAwMzMuI0NDMDA2Ni4jQ0MwMDk5LiNDQzAwQ0MuI0NDMDBGRi4jQ0MzMzAwLiNDQzMzMzMuI0NDMzM2Ni4jQ0MzMzk5LiNDQzMzQ0MuI0NDMzNGRi4jQ0M2NjAwLiNDQzY2MzMuI0NDOTkwMC4jQ0M5OTMzLiNDQ0NDMDAuI0NDQ0MzMy4jRkYwMDAwLiNGRjAwMzMuI0ZGMDA2Ni4jRkYwMDk5LiNGRjAwQ0MuI0ZGMDBGRi4jRkYzMzAwLiNGRjMzMzMuI0ZGMzM2Ni4jRkYzMzk5LiNGRjMzQ0MuI0ZGMzNGRi4jRkY2NjAwLiNGRjY2MzMuI0ZGOTkwMC4jRkY5OTMzLiNGRkNDMDAuI0ZGQ0MzM2Auc3BsaXQoYC5gKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmKHdpbmRvdy5wcm9jZXNzLnR5cGU9PT1gcmVuZGVyZXJgfHx3aW5kb3cucHJvY2Vzcy5fX253anMpPyEwOnR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pPyExOnR5cGVvZiBkb2N1bWVudDxgdWAmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZXx8dHlwZW9mIHdpbmRvdzxgdWAmJndpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUuZmlyZWJ1Z3x8d2luZG93LmNvbnNvbGUuZXhjZXB0aW9uJiZ3aW5kb3cuY29uc29sZS50YWJsZSl8fHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykmJnBhcnNlSW50KFJlZ0V4cC4kMSwxMCk+PTMxfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX1mdW5jdGlvbiByKGUpe2lmKGVbMF09KHRoaXMudXNlQ29sb3JzP2AlY2A6YGApK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9gICVjYDpgIGApK2VbMF0rKHRoaXMudXNlQ29sb3JzP2AlYyBgOmAgYCkrYCtgK3QuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47bGV0IG49YGNvbG9yOiBgK3RoaXMuY29sb3I7ZS5zcGxpY2UoMSwwLG4sYGNvbG9yOiBpbmhlcml0YCk7bGV0IHI9MCxpPTA7ZVswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e2UhPT1gJSVgJiYocisrLGU9PT1gJWNgJiYoaT1yKSl9KSxlLnNwbGljZShpLDAsbil9ZnVuY3Rpb24gaSguLi5lKXtyZXR1cm4gdHlwZW9mIGNvbnNvbGU9PWBvYmplY3RgJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coLi4uZSl9ZnVuY3Rpb24gYSh0KXt0cnl7dD9lLnN0b3JhZ2Uuc2V0SXRlbShgZGVidWdgLHQpOmUuc3RvcmFnZS5yZW1vdmVJdGVtKGBkZWJ1Z2ApfWNhdGNoe319ZnVuY3Rpb24gbygpe2xldCB0O3RyeXt0PWUuc3RvcmFnZS5nZXRJdGVtKGBkZWJ1Z2ApfWNhdGNoe31yZXR1cm4hdCYmdHlwZW9mIHByb2Nlc3M8YHVgJiZgZW52YGluIHByb2Nlc3MmJih0PXt9LkRFQlVHKSx0fWZ1bmN0aW9uIHMoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZX1jYXRjaHt9fXQuZXhwb3J0cz1BcygpKGUpO3Zhcntmb3JtYXR0ZXJzOmN9PXQuZXhwb3J0cztjLmo9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1jYXRjaChlKXtyZXR1cm5gW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06IGArZS5tZXNzYWdlfX19KSksTXM9cygoKGUsdCk9Pnt2YXIgbj1rcygpLHI9anMoKShgc29ja2V0LmlvLWNsaWVudDp1cmxgKTt0LmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUsdCl7dmFyIGk9ZTt0fHw9dHlwZW9mIGxvY2F0aW9uPGB1YCYmbG9jYXRpb24sZT8/PXQucHJvdG9jb2wrYC8vYCt0Lmhvc3QsdHlwZW9mIGU9PWBzdHJpbmdgJiYoZS5jaGFyQXQoMCk9PT1gL2AmJihlPWUuY2hhckF0KDEpPT09YC9gP3QucHJvdG9jb2wrZTp0Lmhvc3QrZSksL14oaHR0cHM/fHdzcz8pOlwvXC8vLnRlc3QoZSl8fChyKGBwcm90b2NvbC1sZXNzIHVybCAlc2AsZSksZT10PT09dm9pZCAwP2BodHRwczovL2ArZTp0LnByb3RvY29sK2AvL2ArZSkscihgcGFyc2UgJXNgLGUpLGk9bihlKSksaS5wb3J0fHwoL14oaHR0cHx3cykkLy50ZXN0KGkucHJvdG9jb2wpP2kucG9ydD1gODBgOi9eKGh0dHB8d3MpcyQvLnRlc3QoaS5wcm90b2NvbCkmJihpLnBvcnQ9YDQ0M2ApKSxpLnBhdGg9aS5wYXRofHxgL2A7dmFyIGE9aS5ob3N0LmluZGV4T2YoYDpgKT09PS0xP2kuaG9zdDpgW2AraS5ob3N0K2BdYDtyZXR1cm4gaS5pZD1pLnByb3RvY29sK2A6Ly9gK2ErYDpgK2kucG9ydCxpLmhyZWY9aS5wcm90b2NvbCtgOi8vYCthKyh0JiZ0LnBvcnQ9PT1pLnBvcnQ/YGA6YDpgK2kucG9ydCksaX19KSksTnM9cygoKGUsdCk9Pnt2YXIgbj0xZTMscj1uKjYwLGk9cio2MCxhPWkqMjQsbz1hKjM2NS4yNTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHw9e307dmFyIG49dHlwZW9mIGU7aWYobj09PWBzdHJpbmdgJiZlLmxlbmd0aD4wKXJldHVybiBzKGUpO2lmKG49PT1gbnVtYmVyYCYmaXNOYU4oZSk9PT0hMSlyZXR1cm4gdC5sb25nP2woZSk6YyhlKTt0aHJvdyBFcnJvcihgdmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD1gK0pTT04uc3RyaW5naWZ5KGUpKX07ZnVuY3Rpb24gcyhlKXtpZihlPVN0cmluZyhlKSwhKGUubGVuZ3RoPjEwMCkpe3ZhciB0PS9eKCg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYodCl7dmFyIHM9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fGBtc2ApLnRvTG93ZXJDYXNlKCkpe2Nhc2VgeWVhcnNgOmNhc2VgeWVhcmA6Y2FzZWB5cnNgOmNhc2VgeXJgOmNhc2VgeWA6cmV0dXJuIHMqbztjYXNlYGRheXNgOmNhc2VgZGF5YDpjYXNlYGRgOnJldHVybiBzKmE7Y2FzZWBob3Vyc2A6Y2FzZWBob3VyYDpjYXNlYGhyc2A6Y2FzZWBocmA6Y2FzZWBoYDpyZXR1cm4gcyppO2Nhc2VgbWludXRlc2A6Y2FzZWBtaW51dGVgOmNhc2VgbWluc2A6Y2FzZWBtaW5gOmNhc2VgbWA6cmV0dXJuIHMqcjtjYXNlYHNlY29uZHNgOmNhc2Vgc2Vjb25kYDpjYXNlYHNlY3NgOmNhc2Vgc2VjYDpjYXNlYHNgOnJldHVybiBzKm47Y2FzZWBtaWxsaXNlY29uZHNgOmNhc2VgbWlsbGlzZWNvbmRgOmNhc2VgbXNlY3NgOmNhc2VgbXNlY2A6Y2FzZWBtc2A6cmV0dXJuIHM7ZGVmYXVsdDpyZXR1cm59fX19ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZT49YT9NYXRoLnJvdW5kKGUvYSkrYGRgOmU+PWk/TWF0aC5yb3VuZChlL2kpK2BoYDplPj1yP01hdGgucm91bmQoZS9yKStgbWA6ZT49bj9NYXRoLnJvdW5kKGUvbikrYHNgOmUrYG1zYH1mdW5jdGlvbiBsKGUpe3JldHVybiB1KGUsYSxgZGF5YCl8fHUoZSxpLGBob3VyYCl8fHUoZSxyLGBtaW51dGVgKXx8dShlLG4sYHNlY29uZGApfHxlK2AgbXNgfWZ1bmN0aW9uIHUoZSx0LG4pe2lmKCEoZTx0KSlyZXR1cm4gZTx0KjEuNT9NYXRoLmZsb29yKGUvdCkrYCBgK246TWF0aC5jZWlsKGUvdCkrYCBgK24rYHNgfX0pKSxQcz1zKCgoZSx0KT0+e2U9dC5leHBvcnRzPXIuZGVidWc9ci5kZWZhdWx0PXIsZS5jb2VyY2U9YyxlLmRpc2FibGU9byxlLmVuYWJsZT1hLGUuZW5hYmxlZD1zLGUuaHVtYW5pemU9TnMoKSxlLmluc3RhbmNlcz1bXSxlLm5hbWVzPVtdLGUuc2tpcHM9W10sZS5mb3JtYXR0ZXJzPXt9O2Z1bmN0aW9uIG4odCl7dmFyIG49MCxyO2ZvcihyIGluIHQpbj0objw8NSktbit0LmNoYXJDb2RlQXQociksbnw9MDtyZXR1cm4gZS5jb2xvcnNbTWF0aC5hYnMobiklZS5jb2xvcnMubGVuZ3RoXX1mdW5jdGlvbiByKHQpe3ZhciByO2Z1bmN0aW9uIGEoKXtpZihhLmVuYWJsZWQpe3ZhciB0PWEsbj0rbmV3IERhdGU7dC5kaWZmPW4tKHJ8fG4pLHQucHJldj1yLHQuY3Vycj1uLHI9bjtmb3IodmFyIGk9QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksbz0wO288aS5sZW5ndGg7bysrKWlbb109YXJndW1lbnRzW29dO2lbMF09ZS5jb2VyY2UoaVswXSksdHlwZW9mIGlbMF0hPWBzdHJpbmdgJiZpLnVuc2hpZnQoYCVPYCk7dmFyIHM9MDtpWzBdPWlbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csZnVuY3Rpb24obixyKXtpZihuPT09YCUlYClyZXR1cm4gbjtzKys7dmFyIGE9ZS5mb3JtYXR0ZXJzW3JdO2lmKHR5cGVvZiBhPT1gZnVuY3Rpb25gKXt2YXIgbz1pW3NdO249YS5jYWxsKHQsbyksaS5zcGxpY2UocywxKSxzLS19cmV0dXJuIG59KSxlLmZvcm1hdEFyZ3MuY2FsbCh0LGkpLChhLmxvZ3x8ZS5sb2d8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSkpLmFwcGx5KHQsaSl9fXJldHVybiBhLm5hbWVzcGFjZT10LGEuZW5hYmxlZD1lLmVuYWJsZWQodCksYS51c2VDb2xvcnM9ZS51c2VDb2xvcnMoKSxhLmNvbG9yPW4odCksYS5kZXN0cm95PWksdHlwZW9mIGUuaW5pdD09YGZ1bmN0aW9uYCYmZS5pbml0KGEpLGUuaW5zdGFuY2VzLnB1c2goYSksYX1mdW5jdGlvbiBpKCl7dmFyIHQ9ZS5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKTtyZXR1cm4gdD09PS0xPyExOihlLmluc3RhbmNlcy5zcGxpY2UodCwxKSwhMCl9ZnVuY3Rpb24gYSh0KXtlLnNhdmUodCksZS5uYW1lcz1bXSxlLnNraXBzPVtdO3ZhciBuLHI9KHR5cGVvZiB0PT1gc3RyaW5nYD90OmBgKS5zcGxpdCgvW1xzLF0rLyksaT1yLmxlbmd0aDtmb3Iobj0wO248aTtuKyspcltuXSYmKHQ9cltuXS5yZXBsYWNlKC9cKi9nLGAuKj9gKSx0WzBdPT09YC1gP2Uuc2tpcHMucHVzaChSZWdFeHAoYF5gK3Quc3Vic3RyKDEpK2AkYCkpOmUubmFtZXMucHVzaChSZWdFeHAoYF5gK3QrYCRgKSkpO2ZvcihuPTA7bjxlLmluc3RhbmNlcy5sZW5ndGg7bisrKXt2YXIgYT1lLmluc3RhbmNlc1tuXTthLmVuYWJsZWQ9ZS5lbmFibGVkKGEubmFtZXNwYWNlKX19ZnVuY3Rpb24gbygpe2UuZW5hYmxlKGBgKX1mdW5jdGlvbiBzKHQpe2lmKHRbdC5sZW5ndGgtMV09PT1gKmApcmV0dXJuITA7dmFyIG4scjtmb3Iobj0wLHI9ZS5za2lwcy5sZW5ndGg7bjxyO24rKylpZihlLnNraXBzW25dLnRlc3QodCkpcmV0dXJuITE7Zm9yKG49MCxyPWUubmFtZXMubGVuZ3RoO248cjtuKyspaWYoZS5uYW1lc1tuXS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX19KSksRnM9cygoKGUsdCk9PntlPXQuZXhwb3J0cz1QcygpLGUubG9nPWksZS5mb3JtYXRBcmdzPXIsZS5zYXZlPWEsZS5sb2FkPW8sZS51c2VDb2xvcnM9bixlLnN0b3JhZ2U9dHlwZW9mIGNocm9tZTxgdWAmJmNocm9tZS5zdG9yYWdlIT09dm9pZCAwP2Nocm9tZS5zdG9yYWdlLmxvY2FsOnMoKSxlLmNvbG9ycz1gIzAwMDBDQy4jMDAwMEZGLiMwMDMzQ0MuIzAwMzNGRi4jMDA2NkNDLiMwMDY2RkYuIzAwOTlDQy4jMDA5OUZGLiMwMENDMDAuIzAwQ0MzMy4jMDBDQzY2LiMwMENDOTkuIzAwQ0NDQy4jMDBDQ0ZGLiMzMzAwQ0MuIzMzMDBGRi4jMzMzM0NDLiMzMzMzRkYuIzMzNjZDQy4jMzM2NkZGLiMzMzk5Q0MuIzMzOTlGRi4jMzNDQzAwLiMzM0NDMzMuIzMzQ0M2Ni4jMzNDQzk5LiMzM0NDQ0MuIzMzQ0NGRi4jNjYwMENDLiM2NjAwRkYuIzY2MzNDQy4jNjYzM0ZGLiM2NkNDMDAuIzY2Q0MzMy4jOTkwMENDLiM5OTAwRkYuIzk5MzNDQy4jOTkzM0ZGLiM5OUNDMDAuIzk5Q0MzMy4jQ0MwMDAwLiNDQzAwMzMuI0NDMDA2Ni4jQ0MwMDk5LiNDQzAwQ0MuI0NDMDBGRi4jQ0MzMzAwLiNDQzMzMzMuI0NDMzM2Ni4jQ0MzMzk5LiNDQzMzQ0MuI0NDMzNGRi4jQ0M2NjAwLiNDQzY2MzMuI0NDOTkwMC4jQ0M5OTMzLiNDQ0NDMDAuI0NDQ0MzMy4jRkYwMDAwLiNGRjAwMzMuI0ZGMDA2Ni4jRkYwMDk5LiNGRjAwQ0MuI0ZGMDBGRi4jRkYzMzAwLiNGRjMzMzMuI0ZGMzM2Ni4jRkYzMzk5LiNGRjMzQ0MuI0ZGMzNGRi4jRkY2NjAwLiNGRjY2MzMuI0ZGOTkwMC4jRkY5OTMzLiNGRkNDMDAuI0ZGQ0MzM2Auc3BsaXQoYC5gKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmd2luZG93LnByb2Nlc3MudHlwZT09PWByZW5kZXJlcmA/ITA6dHlwZW9mIG5hdmlnYXRvcjxgdWAmJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcLyhcZCspLyk/ITE6dHlwZW9mIGRvY3VtZW50PGB1YCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlfHx0eXBlb2Ygd2luZG93PGB1YCYmd2luZG93LmNvbnNvbGUmJih3aW5kb3cuY29uc29sZS5maXJlYnVnfHx3aW5kb3cuY29uc29sZS5leGNlcHRpb24mJndpbmRvdy5jb25zb2xlLnRhYmxlKXx8dHlwZW9mIG5hdmlnYXRvcjxgdWAmJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFwvKFxkKykvKSYmcGFyc2VJbnQoUmVnRXhwLiQxLDEwKT49MzF8fHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XC8oXGQrKS8pfWUuZm9ybWF0dGVycy5qPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2goZSl7cmV0dXJuYFtVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiBgK2UubWVzc2FnZX19O2Z1bmN0aW9uIHIodCl7dmFyIG49dGhpcy51c2VDb2xvcnM7aWYodFswXT0obj9gJWNgOmBgKSt0aGlzLm5hbWVzcGFjZSsobj9gICVjYDpgIGApK3RbMF0rKG4/YCVjIGA6YCBgKStgK2ArZS5odW1hbml6ZSh0aGlzLmRpZmYpLG4pe3ZhciByPWBjb2xvcjogYCt0aGlzLmNvbG9yO3Quc3BsaWNlKDEsMCxyLGBjb2xvcjogaW5oZXJpdGApO3ZhciBpPTAsYT0wO3RbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLGZ1bmN0aW9uKGUpe2UhPT1gJSVgJiYoaSsrLGU9PT1gJWNgJiYoYT1pKSl9KSx0LnNwbGljZShhLDAscil9fWZ1bmN0aW9uIGkoKXtyZXR1cm4gdHlwZW9mIGNvbnNvbGU9PWBvYmplY3RgJiZjb25zb2xlLmxvZyYmRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZS5sb2csY29uc29sZSxhcmd1bWVudHMpfWZ1bmN0aW9uIGEodCl7dHJ5e3Q9PW51bGw/ZS5zdG9yYWdlLnJlbW92ZUl0ZW0oYGRlYnVnYCk6ZS5zdG9yYWdlLmRlYnVnPXR9Y2F0Y2h7fX1mdW5jdGlvbiBvKCl7dmFyIHQ7dHJ5e3Q9ZS5zdG9yYWdlLmRlYnVnfWNhdGNoe31yZXR1cm4hdCYmdHlwZW9mIHByb2Nlc3M8YHVgJiZgZW52YGluIHByb2Nlc3MmJih0PXt9LkRFQlVHKSx0fWUuZW5hYmxlKG8oKSk7ZnVuY3Rpb24gcygpe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaHt9fX0pKSxJcz1zKCgoZSx0KT0+e3QhPT12b2lkIDAmJih0LmV4cG9ydHM9bik7ZnVuY3Rpb24gbihlKXtpZihlKXJldHVybiByKGUpfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0IGluIG4ucHJvdG90eXBlKWVbdF09bi5wcm90b3R5cGVbdF07cmV0dXJuIGV9bi5wcm90b3R5cGUub249bi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwodGhpcy5fY2FsbGJhY2tzW2AkYCtlXT10aGlzLl9jYWxsYmFja3NbYCRgK2VdfHxbXSkucHVzaCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMub2ZmKGUsbiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4uZm49dCx0aGlzLm9uKGUsbiksdGhpc30sbi5wcm90b3R5cGUub2ZmPW4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPW4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1uLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sYXJndW1lbnRzLmxlbmd0aD09MClyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXt9LHRoaXM7dmFyIG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXTtpZighbilyZXR1cm4gdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzO2Zvcih2YXIgcixpPTA7aTxuLmxlbmd0aDtpKyspaWYocj1uW2ldLHI9PT10fHxyLmZuPT09dCl7bi5zcGxpY2UoaSwxKTticmVha31yZXR1cm4gbi5sZW5ndGg9PT0wJiZkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzfSxuLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9O2Zvcih2YXIgdD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3ItMV09YXJndW1lbnRzW3JdO2lmKG4pe249bi5zbGljZSgwKTtmb3IodmFyIHI9MCxpPW4ubGVuZ3RoO3I8aTsrK3IpbltyXS5hcHBseSh0aGlzLHQpfXJldHVybiB0aGlzfSxuLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9LHRoaXMuX2NhbGxiYWNrc1tgJGArZV18fFtdfSxuLnByb3RvdHlwZS5oYXNMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLmxpc3RlbmVycyhlKS5sZW5ndGh9fSkpLExzPXMoKChlLHQpPT57dmFyIG49e30udG9TdHJpbmc7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwoZSk9PWBbb2JqZWN0IEFycmF5XWB9fSkpLFJzPXMoKChlLHQpPT57dC5leHBvcnRzPWE7dmFyIG49dHlwZW9mIEJ1ZmZlcj09YGZ1bmN0aW9uYCYmdHlwZW9mIEJ1ZmZlci5pc0J1ZmZlcj09YGZ1bmN0aW9uYCxyPXR5cGVvZiBBcnJheUJ1ZmZlcj09YGZ1bmN0aW9uYCxpPWZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3PT1gZnVuY3Rpb25gP0FycmF5QnVmZmVyLmlzVmlldyhlKTplLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfTtmdW5jdGlvbiBhKGUpe3JldHVybiBuJiZCdWZmZXIuaXNCdWZmZXIoZSl8fHImJihlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGkoZSkpfX0pKSx6cz1zKChlPT57dmFyIHQ9THMoKSxuPVJzKCkscj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGk9dHlwZW9mIEJsb2I9PWBmdW5jdGlvbmB8fHR5cGVvZiBCbG9iPGB1YCYmci5jYWxsKEJsb2IpPT09YFtvYmplY3QgQmxvYkNvbnN0cnVjdG9yXWAsYT10eXBlb2YgRmlsZT09YGZ1bmN0aW9uYHx8dHlwZW9mIEZpbGU8YHVgJiZyLmNhbGwoRmlsZSk9PT1gW29iamVjdCBGaWxlQ29uc3RydWN0b3JdYDtlLmRlY29uc3RydWN0UGFja2V0PWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49ZS5kYXRhLHI9ZTtyZXR1cm4gci5kYXRhPW8obix0KSxyLmF0dGFjaG1lbnRzPXQubGVuZ3RoLHtwYWNrZXQ6cixidWZmZXJzOnR9fTtmdW5jdGlvbiBvKGUscil7aWYoIWUpcmV0dXJuIGU7aWYobihlKSl7dmFyIGk9e19wbGFjZWhvbGRlcjohMCxudW06ci5sZW5ndGh9O3JldHVybiByLnB1c2goZSksaX1lbHNlIGlmKHQoZSkpe2Zvcih2YXIgYT1BcnJheShlLmxlbmd0aCkscz0wO3M8ZS5sZW5ndGg7cysrKWFbc109byhlW3NdLHIpO3JldHVybiBhfWVsc2UgaWYodHlwZW9mIGU9PWBvYmplY3RgJiYhKGUgaW5zdGFuY2VvZiBEYXRlKSl7dmFyIGE9e307Zm9yKHZhciBjIGluIGUpYVtjXT1vKGVbY10scik7cmV0dXJuIGF9cmV0dXJuIGV9ZS5yZWNvbnN0cnVjdFBhY2tldD1mdW5jdGlvbihlLHQpe3JldHVybiBlLmRhdGE9cyhlLmRhdGEsdCksZS5hdHRhY2htZW50cz12b2lkIDAsZX07ZnVuY3Rpb24gcyhlLG4pe2lmKCFlKXJldHVybiBlO2lmKGUmJmUuX3BsYWNlaG9sZGVyPT09ITApe2lmKHR5cGVvZiBlLm51bT09YG51bWJlcmAmJmUubnVtPj0wJiZlLm51bTxuLmxlbmd0aClyZXR1cm4gbltlLm51bV07dGhyb3cgRXJyb3IoYGlsbGVnYWwgYXR0YWNobWVudHNgKX1lbHNlIGlmKHQoZSkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXT1zKGVbcl0sbik7ZWxzZSBpZih0eXBlb2YgZT09YG9iamVjdGApZm9yKHZhciBpIGluIGUpZVtpXT1zKGVbaV0sbik7cmV0dXJuIGV9ZS5yZW1vdmVCbG9icz1mdW5jdGlvbihlLHIpe2Z1bmN0aW9uIG8oZSxsLHUpe2lmKCFlKXJldHVybiBlO2lmKGkmJmUgaW5zdGFuY2VvZiBCbG9ifHxhJiZlIGluc3RhbmNlb2YgRmlsZSl7cysrO3ZhciBkPW5ldyBGaWxlUmVhZGVyO2Qub25sb2FkPWZ1bmN0aW9uKCl7dT91W2xdPXRoaXMucmVzdWx0OmM9dGhpcy5yZXN1bHQsLS1zfHxyKGMpfSxkLnJlYWRBc0FycmF5QnVmZmVyKGUpfWVsc2UgaWYodChlKSlmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKylvKGVbZl0sZixlKTtlbHNlIGlmKHR5cGVvZiBlPT1gb2JqZWN0YCYmIW4oZSkpZm9yKHZhciBwIGluIGUpbyhlW3BdLHAsZSl9dmFyIHM9MCxjPWU7byhjKSxzfHxyKGMpfX0pKSxCcz1zKChlPT57dmFyIHQ9RnMoKShgc29ja2V0LmlvLXBhcnNlcmApLG49SXMoKSxyPXpzKCksaT1McygpLGE9UnMoKTtlLnByb3RvY29sPTQsZS50eXBlcz1bYENPTk5FQ1RgLGBESVNDT05ORUNUYCxgRVZFTlRgLGBBQ0tgLGBFUlJPUmAsYEJJTkFSWV9FVkVOVGAsYEJJTkFSWV9BQ0tgXSxlLkNPTk5FQ1Q9MCxlLkRJU0NPTk5FQ1Q9MSxlLkVWRU5UPTIsZS5BQ0s9MyxlLkVSUk9SPTQsZS5CSU5BUllfRVZFTlQ9NSxlLkJJTkFSWV9BQ0s9NixlLkVuY29kZXI9byxlLkRlY29kZXI9ZDtmdW5jdGlvbiBvKCl7fXZhciBzPWUuRVJST1IrYCJlbmNvZGUgZXJyb3IiYDtvLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24obixyKXt0KGBlbmNvZGluZyBwYWNrZXQgJWpgLG4pLGUuQklOQVJZX0VWRU5UPT09bi50eXBlfHxlLkJJTkFSWV9BQ0s9PT1uLnR5cGU/dShuLHIpOnIoW2MobildKX07ZnVuY3Rpb24gYyhuKXt2YXIgcj1gYCtuLnR5cGU7aWYoKGUuQklOQVJZX0VWRU5UPT09bi50eXBlfHxlLkJJTkFSWV9BQ0s9PT1uLnR5cGUpJiYocis9bi5hdHRhY2htZW50cytgLWApLG4ubnNwJiZuLm5zcCE9PWAvYCYmKHIrPW4ubnNwK2AsYCksbi5pZCE9bnVsbCYmKHIrPW4uaWQpLG4uZGF0YSE9bnVsbCl7dmFyIGk9bChuLmRhdGEpO2lmKGkhPT0hMSlyKz1pO2Vsc2UgcmV0dXJuIHN9cmV0dXJuIHQoYGVuY29kZWQgJWogYXMgJXNgLG4scikscn1mdW5jdGlvbiBsKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHUoZSx0KXtmdW5jdGlvbiBuKGUpe3ZhciBuPXIuZGVjb25zdHJ1Y3RQYWNrZXQoZSksaT1jKG4ucGFja2V0KSxhPW4uYnVmZmVyczthLnVuc2hpZnQoaSksdChhKX1yLnJlbW92ZUJsb2JzKGUsbil9ZnVuY3Rpb24gZCgpe3RoaXMucmVjb25zdHJ1Y3Rvcj1udWxsfW4oZC5wcm90b3R5cGUpLGQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgbjtpZih0eXBlb2YgdD09YHN0cmluZ2Ape2lmKHRoaXMucmVjb25zdHJ1Y3Rvcil0aHJvdyBFcnJvcihgZ290IHBsYWludGV4dCBkYXRhIHdoZW4gcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRgKTtuPWYodCksZS5CSU5BUllfRVZFTlQ9PT1uLnR5cGV8fGUuQklOQVJZX0FDSz09PW4udHlwZT8odGhpcy5yZWNvbnN0cnVjdG9yPW5ldyBtKG4pLHRoaXMucmVjb25zdHJ1Y3Rvci5yZWNvblBhY2suYXR0YWNobWVudHM9PT0wJiZ0aGlzLmVtaXQoYGRlY29kZWRgLG4pKTp0aGlzLmVtaXQoYGRlY29kZWRgLG4pfWVsc2UgaWYoYSh0KXx8dC5iYXNlNjQpaWYodGhpcy5yZWNvbnN0cnVjdG9yKW49dGhpcy5yZWNvbnN0cnVjdG9yLnRha2VCaW5hcnlEYXRhKHQpLG4mJih0aGlzLnJlY29uc3RydWN0b3I9bnVsbCx0aGlzLmVtaXQoYGRlY29kZWRgLG4pKTtlbHNlIHRocm93IEVycm9yKGBnb3QgYmluYXJ5IGRhdGEgd2hlbiBub3QgcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRgKTtlbHNlIHRocm93IEVycm9yKGBVbmtub3duIHR5cGU6IGArdCl9O2Z1bmN0aW9uIGYobil7dmFyIHI9MCxhPXt0eXBlOk51bWJlcihuLmNoYXJBdCgwKSl9O2lmKGUudHlwZXNbYS50eXBlXT09bnVsbClyZXR1cm4gaChgdW5rbm93biBwYWNrZXQgdHlwZSBgK2EudHlwZSk7aWYoZS5CSU5BUllfRVZFTlQ9PT1hLnR5cGV8fGUuQklOQVJZX0FDSz09PWEudHlwZSl7Zm9yKHZhciBvPXIrMTtuLmNoYXJBdCgrK3IpIT09YC1gJiZyIT1uLmxlbmd0aDspO3ZhciBzPW4uc3Vic3RyaW5nKG8scik7aWYocyE9TnVtYmVyKHMpfHxuLmNoYXJBdChyKSE9PWAtYCl0aHJvdyBFcnJvcihgSWxsZWdhbCBhdHRhY2htZW50c2ApO2EuYXR0YWNobWVudHM9TnVtYmVyKHMpfWlmKG4uY2hhckF0KHIrMSk9PT1gL2Ape2Zvcih2YXIgbz1yKzE7KytyOyl7dmFyIGM9bi5jaGFyQXQocik7aWYoYz09PWAsYHx8cj09PW4ubGVuZ3RoKWJyZWFrfWEubnNwPW4uc3Vic3RyaW5nKG8scil9ZWxzZSBhLm5zcD1gL2A7dmFyIGw9bi5jaGFyQXQocisxKTtpZihsIT09YGAmJk51bWJlcihsKT09bCl7Zm9yKHZhciBvPXIrMTsrK3I7KXt2YXIgYz1uLmNoYXJBdChyKTtpZihjPT1udWxsfHxOdW1iZXIoYykhPWMpey0tcjticmVha31pZihyPT09bi5sZW5ndGgpYnJlYWt9YS5pZD1OdW1iZXIobi5zdWJzdHJpbmcobyxyKzEpKX1pZihuLmNoYXJBdCgrK3IpKXt2YXIgdT1wKG4uc3Vic3RyKHIpKTtpZih1IT09ITEmJihhLnR5cGU9PT1lLkVSUk9SfHxpKHUpKSlhLmRhdGE9dTtlbHNlIHJldHVybiBoKGBpbnZhbGlkIHBheWxvYWRgKX1yZXR1cm4gdChgZGVjb2RlZCAlcyBhcyAlamAsbixhKSxhfWZ1bmN0aW9uIHAoZSl7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoe3JldHVybiExfX1kLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5yZWNvbnN0cnVjdG9yJiZ0aGlzLnJlY29uc3RydWN0b3IuZmluaXNoZWRSZWNvbnN0cnVjdGlvbigpfTtmdW5jdGlvbiBtKGUpe3RoaXMucmVjb25QYWNrPWUsdGhpcy5idWZmZXJzPVtdfW0ucHJvdG90eXBlLnRha2VCaW5hcnlEYXRhPWZ1bmN0aW9uKGUpe2lmKHRoaXMuYnVmZmVycy5wdXNoKGUpLHRoaXMuYnVmZmVycy5sZW5ndGg9PT10aGlzLnJlY29uUGFjay5hdHRhY2htZW50cyl7dmFyIHQ9ci5yZWNvbnN0cnVjdFBhY2tldCh0aGlzLnJlY29uUGFjayx0aGlzLmJ1ZmZlcnMpO3JldHVybiB0aGlzLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKSx0fXJldHVybiBudWxsfSxtLnByb3RvdHlwZS5maW5pc2hlZFJlY29uc3RydWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy5yZWNvblBhY2s9bnVsbCx0aGlzLmJ1ZmZlcnM9W119O2Z1bmN0aW9uIGgodCl7cmV0dXJue3R5cGU6ZS5FUlJPUixkYXRhOmBwYXJzZXIgZXJyb3I6IGArdH19fSkpLFZzPXMoKChlLHQpPT57dHJ5e3QuZXhwb3J0cz10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8YHVgJiZgd2l0aENyZWRlbnRpYWxzYGluIG5ldyBYTUxIdHRwUmVxdWVzdH1jYXRjaHt0LmV4cG9ydHM9ITF9fSkpLEhzPXMoKChlLHQpPT57dC5leHBvcnRzPShmdW5jdGlvbigpe3JldHVybiB0eXBlb2Ygc2VsZjxgdWA/c2VsZjp0eXBlb2Ygd2luZG93PGB1YD93aW5kb3c6RnVuY3Rpb24oYHJldHVybiB0aGlzYCkoKX0pKCl9KSksVXM9cygoKGUsdCk9Pnt2YXIgbj1WcygpLHI9SHMoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS54ZG9tYWluLGk9ZS54c2NoZW1lLGE9ZS5lbmFibGVzWERSO3RyeXtpZih0eXBlb2YgWE1MSHR0cFJlcXVlc3Q8YHVgJiYoIXR8fG4pKXJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9Y2F0Y2h7fXRyeXtpZih0eXBlb2YgWERvbWFpblJlcXVlc3Q8YHVgJiYhaSYmYSlyZXR1cm4gbmV3IFhEb21haW5SZXF1ZXN0fWNhdGNoe31pZighdCl0cnl7cmV0dXJuIG5ldyByW1tgQWN0aXZlYCxgT2JqZWN0YF0uam9pbihgWGApXShgTWljcm9zb2Z0LlhNTEhUVFBgKX1jYXRjaHt9fX0pKSxXcz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Zvcih2YXIgciBpbiBlKW4uY2FsbChlLHIpJiZ0LnB1c2gocik7cmV0dXJuIHR9fSkpLEdzPXMoKChlLHQpPT57dmFyIG49THMoKSxyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaT10eXBlb2YgQmxvYj09YGZ1bmN0aW9uYHx8dHlwZW9mIEJsb2I8YHVgJiZyLmNhbGwoQmxvYik9PT1gW29iamVjdCBCbG9iQ29uc3RydWN0b3JdYCxhPXR5cGVvZiBGaWxlPT1gZnVuY3Rpb25gfHx0eXBlb2YgRmlsZTxgdWAmJnIuY2FsbChGaWxlKT09PWBbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl1gO3QuZXhwb3J0cz1vO2Z1bmN0aW9uIG8oZSl7aWYoIWV8fHR5cGVvZiBlIT1gb2JqZWN0YClyZXR1cm4hMTtpZihuKGUpKXtmb3IodmFyIHQ9MCxyPWUubGVuZ3RoO3Q8cjt0KyspaWYobyhlW3RdKSlyZXR1cm4hMDtyZXR1cm4hMX1pZih0eXBlb2YgQnVmZmVyPT1gZnVuY3Rpb25gJiZCdWZmZXIuaXNCdWZmZXImJkJ1ZmZlci5pc0J1ZmZlcihlKXx8dHlwZW9mIEFycmF5QnVmZmVyPT1gZnVuY3Rpb25gJiZlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGkmJmUgaW5zdGFuY2VvZiBCbG9ifHxhJiZlIGluc3RhbmNlb2YgRmlsZSlyZXR1cm4hMDtpZihlLnRvSlNPTiYmdHlwZW9mIGUudG9KU09OPT1gZnVuY3Rpb25gJiZhcmd1bWVudHMubGVuZ3RoPT09MSlyZXR1cm4gbyhlLnRvSlNPTigpLCEwKTtmb3IodmFyIHMgaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxzKSYmbyhlW3NdKSlyZXR1cm4hMDtyZXR1cm4hMX19KSksS3M9cygoKGUsdCk9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYnl0ZUxlbmd0aDtpZih0fHw9MCxufHw9cixlLnNsaWNlKXJldHVybiBlLnNsaWNlKHQsbik7aWYodDwwJiYodCs9ciksbjwwJiYobis9ciksbj5yJiYobj1yKSx0Pj1yfHx0Pj1ufHxyPT09MClyZXR1cm4gbmV3IEFycmF5QnVmZmVyKDApO2Zvcih2YXIgaT1uZXcgVWludDhBcnJheShlKSxhPW5ldyBVaW50OEFycmF5KG4tdCksbz10LHM9MDtvPG47bysrLHMrKylhW3NdPWlbb107cmV0dXJuIGEuYnVmZmVyfX0pKSxxcz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1uO2Z1bmN0aW9uIG4oZSx0LG4pe3ZhciBpPSExO3JldHVybiBufHw9cixhLmNvdW50PWUsZT09PTA/dCgpOmE7ZnVuY3Rpb24gYShlLHIpe2lmKGEuY291bnQ8PTApdGhyb3cgRXJyb3IoYGFmdGVyIGNhbGxlZCB0b28gbWFueSB0aW1lc2ApOy0tYS5jb3VudCxlPyhpPSEwLHQoZSksdD1uKTphLmNvdW50PT09MCYmIWkmJnQobnVsbCxyKX19ZnVuY3Rpb24gcigpe319KSksSnM9cygoKGUsdCk9Pnt2YXIgbj1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIHIoZSl7Zm9yKHZhciB0PVtdLG49MCxyPWUubGVuZ3RoLGksYTtuPHI7KWk9ZS5jaGFyQ29kZUF0KG4rKyksaT49NTUyOTYmJmk8PTU2MzE5JiZuPHI/KGE9ZS5jaGFyQ29kZUF0KG4rKyksKGEmNjQ1MTIpPT01NjMyMD90LnB1c2goKChpJjEwMjMpPDwxMCkrKGEmMTAyMykrNjU1MzYpOih0LnB1c2goaSksbi0tKSk6dC5wdXNoKGkpO3JldHVybiB0fWZ1bmN0aW9uIGkoZSl7Zm9yKHZhciB0PWUubGVuZ3RoLHI9LTEsaSxhPWBgOysrcjx0OylpPWVbcl0saT42NTUzNSYmKGktPTY1NTM2LGErPW4oaT4+PjEwJjEwMjN8NTUyOTYpLGk9NTYzMjB8aSYxMDIzKSxhKz1uKGkpO3JldHVybiBhfWZ1bmN0aW9uIGEoZSx0KXtpZihlPj01NTI5NiYmZTw9NTczNDMpe2lmKHQpdGhyb3cgRXJyb3IoYExvbmUgc3Vycm9nYXRlIFUrYCtlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpK2AgaXMgbm90IGEgc2NhbGFyIHZhbHVlYCk7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBuKGU+PnQmNjN8MTI4KX1mdW5jdGlvbiBzKGUsdCl7aWYoIShlJjQyOTQ5NjcxNjgpKXJldHVybiBuKGUpO3ZhciByPWBgO3JldHVybiBlJjQyOTQ5NjUyNDg/ZSY0Mjk0OTAxNzYwP2UmNDI5Mjg3MDE0NHx8KHI9bihlPj4xOCY3fDI0MCkscis9byhlLDEyKSxyKz1vKGUsNikpOihhKGUsdCl8fChlPTY1NTMzKSxyPW4oZT4+MTImMTV8MjI0KSxyKz1vKGUsNikpOnI9bihlPj42JjMxfDE5Mikscis9bihlJjYzfDEyOCkscn1mdW5jdGlvbiBjKGUsdCl7dHx8PXt9O2Zvcih2YXIgbj0hMSE9PXQuc3RyaWN0LGk9cihlKSxhPWkubGVuZ3RoLG89LTEsYyxsPWBgOysrbzxhOyljPWlbb10sbCs9cyhjLG4pO3JldHVybiBsfWZ1bmN0aW9uIGwoKXtpZihwPj1mKXRocm93IEVycm9yKGBJbnZhbGlkIGJ5dGUgaW5kZXhgKTt2YXIgZT1kW3BdJjI1NTtpZihwKyssKGUmMTkyKT09MTI4KXJldHVybiBlJjYzO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9ZnVuY3Rpb24gdShlKXt2YXIgdCxuLHIsaSxvO2lmKHA+Zil0aHJvdyBFcnJvcihgSW52YWxpZCBieXRlIGluZGV4YCk7aWYocD09ZilyZXR1cm4hMTtpZih0PWRbcF0mMjU1LHArKywhKHQmMTI4KSlyZXR1cm4gdDtpZigodCYyMjQpPT0xOTIpe2lmKG49bCgpLG89KHQmMzEpPDw2fG4sbz49MTI4KXJldHVybiBvO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9aWYoKHQmMjQwKT09MjI0KXtpZihuPWwoKSxyPWwoKSxvPSh0JjE1KTw8MTJ8bjw8NnxyLG8+PTIwNDgpcmV0dXJuIGEobyxlKT9vOjY1NTMzO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9aWYoKHQmMjQ4KT09MjQwJiYobj1sKCkscj1sKCksaT1sKCksbz0odCY3KTw8MTh8bjw8MTJ8cjw8NnxpLG8+PTY1NTM2JiZvPD0xMTE0MTExKSlyZXR1cm4gbzt0aHJvdyBFcnJvcihgSW52YWxpZCBVVEYtOCBkZXRlY3RlZGApfXZhciBkLGYscDtmdW5jdGlvbiBtKGUsdCl7dHx8PXt9O3ZhciBuPSExIT09dC5zdHJpY3Q7ZD1yKGUpLGY9ZC5sZW5ndGgscD0wO2Zvcih2YXIgYT1bXSxvOyhvPXUobikpIT09ITE7KWEucHVzaChvKTtyZXR1cm4gaShhKX10LmV4cG9ydHM9e3ZlcnNpb246YDIuMS4yYCxlbmNvZGU6YyxkZWNvZGU6bX19KSksWXM9cygoZT0+eyhmdW5jdGlvbih0KXtlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgbj1uZXcgVWludDhBcnJheShlKSxyLGk9bi5sZW5ndGgsYT1gYDtmb3Iocj0wO3I8aTtyKz0zKWErPXRbbltyXT4+Ml0sYSs9dFsobltyXSYzKTw8NHxuW3IrMV0+PjRdLGErPXRbKG5bcisxXSYxNSk8PDJ8bltyKzJdPj42XSxhKz10W25bcisyXSY2M107cmV0dXJuIGklMz09Mj9hPWEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMSkrYD1gOmklMz09MSYmKGE9YS5zdWJzdHJpbmcoMCxhLmxlbmd0aC0yKStgPT1gKSxhfSxlLmRlY29kZT1mdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCouNzUscj1lLmxlbmd0aCxpLGE9MCxvLHMsYyxsO2VbZS5sZW5ndGgtMV09PT1gPWAmJihuLS0sZVtlLmxlbmd0aC0yXT09PWA9YCYmbi0tKTt2YXIgdT1uZXcgQXJyYXlCdWZmZXIobiksZD1uZXcgVWludDhBcnJheSh1KTtmb3IoaT0wO2k8cjtpKz00KW89dC5pbmRleE9mKGVbaV0pLHM9dC5pbmRleE9mKGVbaSsxXSksYz10LmluZGV4T2YoZVtpKzJdKSxsPXQuaW5kZXhPZihlW2krM10pLGRbYSsrXT1vPDwyfHM+PjQsZFthKytdPShzJjE1KTw8NHxjPj4yLGRbYSsrXT0oYyYzKTw8NnxsJjYzO3JldHVybiB1fX0pKGBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvYCl9KSksWHM9cygoKGUsdCk9Pnt2YXIgbj1uPT09dm9pZCAwP3R5cGVvZiBXZWJLaXRCbG9iQnVpbGRlcjxgdWA/V2ViS2l0QmxvYkJ1aWxkZXI6dHlwZW9mIE1TQmxvYkJ1aWxkZXI8YHVgP01TQmxvYkJ1aWxkZXI6dHlwZW9mIE1vekJsb2JCdWlsZGVyPGB1YD9Nb3pCbG9iQnVpbGRlcjohMTpuLHI9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYihbYGhpYF0pLnNpemU9PT0yfWNhdGNoe3JldHVybiExfX0pKCksaT1yJiYoZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBCbG9iKFtuZXcgVWludDhBcnJheShbMSwyXSldKS5zaXplPT09Mn1jYXRjaHtyZXR1cm4hMX19KSgpLGE9biYmbi5wcm90b3R5cGUuYXBwZW5kJiZuLnByb3RvdHlwZS5nZXRCbG9iO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe2lmKGUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PWUuYnVmZmVyO2lmKGUuYnl0ZUxlbmd0aCE9PXQuYnl0ZUxlbmd0aCl7dmFyIG49bmV3IFVpbnQ4QXJyYXkoZS5ieXRlTGVuZ3RoKTtuLnNldChuZXcgVWludDhBcnJheSh0LGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpKSx0PW4uYnVmZmVyfXJldHVybiB0fXJldHVybiBlfSl9ZnVuY3Rpb24gcyhlLHQpe3R8fD17fTt2YXIgcj1uZXcgbjtyZXR1cm4gbyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3IuYXBwZW5kKGUpfSksdC50eXBlP3IuZ2V0QmxvYih0LnR5cGUpOnIuZ2V0QmxvYigpfWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gbmV3IEJsb2IobyhlKSx0fHx7fSl9dHlwZW9mIEJsb2I8YHVgJiYocy5wcm90b3R5cGU9QmxvYi5wcm90b3R5cGUsYy5wcm90b3R5cGU9QmxvYi5wcm90b3R5cGUpLHQuZXhwb3J0cz0oZnVuY3Rpb24oKXtpZihyKXJldHVybiBpP0Jsb2I6YztpZihhKXJldHVybiBzfSkoKX0pKSxacz1zKChlPT57dmFyIHQ9V3MoKSxuPUdzKCkscj1LcygpLGk9cXMoKSxhPUpzKCksbzt0eXBlb2YgQXJyYXlCdWZmZXI8YHVgJiYobz1ZcygpKTt2YXIgcz10eXBlb2YgbmF2aWdhdG9yPGB1YCYmL0FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGM9dHlwZW9mIG5hdmlnYXRvcjxgdWAmJi9QaGFudG9tSlMvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGw9c3x8YztlLnByb3RvY29sPTM7dmFyIHU9ZS5wYWNrZXRzPXtvcGVuOjAsY2xvc2U6MSxwaW5nOjIscG9uZzozLG1lc3NhZ2U6NCx1cGdyYWRlOjUsbm9vcDo2fSxkPXQodSksZj17dHlwZTpgZXJyb3JgLGRhdGE6YHBhcnNlciBlcnJvcmB9LHA9WHMoKTtlLmVuY29kZVBhY2tldD1mdW5jdGlvbihlLHQsbixyKXt0eXBlb2YgdD09YGZ1bmN0aW9uYCYmKHI9dCx0PSExKSx0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKHI9bixuPW51bGwpO3ZhciBpPWUuZGF0YT09PXZvaWQgMD92b2lkIDA6ZS5kYXRhLmJ1ZmZlcnx8ZS5kYXRhO2lmKHR5cGVvZiBBcnJheUJ1ZmZlcjxgdWAmJmkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gaChlLHQscik7aWYocCE9PXZvaWQgMCYmaSBpbnN0YW5jZW9mIHApcmV0dXJuIF8oZSx0LHIpO2lmKGkmJmkuYmFzZTY0KXJldHVybiBtKGUscik7dmFyIG89dVtlLnR5cGVdO3JldHVybiBlLmRhdGEhPT12b2lkIDAmJihvKz1uP2EuZW5jb2RlKFN0cmluZyhlLmRhdGEpLHtzdHJpY3Q6ITF9KTpTdHJpbmcoZS5kYXRhKSkscihgYCtvKX07ZnVuY3Rpb24gbSh0LG4pe3JldHVybiBuKGBiYCtlLnBhY2tldHNbdC50eXBlXSt0LmRhdGEuZGF0YSl9ZnVuY3Rpb24gaCh0LG4scil7aWYoIW4pcmV0dXJuIGUuZW5jb2RlQmFzZTY0UGFja2V0KHQscik7dmFyIGk9dC5kYXRhLGE9bmV3IFVpbnQ4QXJyYXkoaSksbz1uZXcgVWludDhBcnJheSgxK2kuYnl0ZUxlbmd0aCk7b1swXT11W3QudHlwZV07Zm9yKHZhciBzPTA7czxhLmxlbmd0aDtzKyspb1tzKzFdPWFbc107cmV0dXJuIHIoby5idWZmZXIpfWZ1bmN0aW9uIGcodCxuLHIpe2lmKCFuKXJldHVybiBlLmVuY29kZUJhc2U2NFBhY2tldCh0LHIpO3ZhciBpPW5ldyBGaWxlUmVhZGVyO3JldHVybiBpLm9ubG9hZD1mdW5jdGlvbigpe2UuZW5jb2RlUGFja2V0KHt0eXBlOnQudHlwZSxkYXRhOmkucmVzdWx0fSxuLCEwLHIpfSxpLnJlYWRBc0FycmF5QnVmZmVyKHQuZGF0YSl9ZnVuY3Rpb24gXyh0LG4scil7aWYoIW4pcmV0dXJuIGUuZW5jb2RlQmFzZTY0UGFja2V0KHQscik7aWYobClyZXR1cm4gZyh0LG4scik7dmFyIGk9bmV3IFVpbnQ4QXJyYXkoMSk7cmV0dXJuIGlbMF09dVt0LnR5cGVdLHIobmV3IHAoW2kuYnVmZmVyLHQuZGF0YV0pKX1lLmVuY29kZUJhc2U2NFBhY2tldD1mdW5jdGlvbih0LG4pe3ZhciByPWBiYCtlLnBhY2tldHNbdC50eXBlXTtpZihwIT09dm9pZCAwJiZ0LmRhdGEgaW5zdGFuY2VvZiBwKXt2YXIgaT1uZXcgRmlsZVJlYWRlcjtyZXR1cm4gaS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT1pLnJlc3VsdC5zcGxpdChgLGApWzFdO24ocitlKX0saS5yZWFkQXNEYXRhVVJMKHQuZGF0YSl9dmFyIGE7dHJ5e2E9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KHQuZGF0YSkpfWNhdGNoe2Zvcih2YXIgbz1uZXcgVWludDhBcnJheSh0LmRhdGEpLHM9QXJyYXkoby5sZW5ndGgpLGM9MDtjPG8ubGVuZ3RoO2MrKylzW2NdPW9bY107YT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwscyl9cmV0dXJuIHIrPWJ0b2EoYSksbihyKX0sZS5kZWNvZGVQYWNrZXQ9ZnVuY3Rpb24odCxuLGkpe2lmKHQ9PT12b2lkIDApcmV0dXJuIGY7aWYodHlwZW9mIHQ9PWBzdHJpbmdgKXtpZih0LmNoYXJBdCgwKT09PWBiYClyZXR1cm4gZS5kZWNvZGVCYXNlNjRQYWNrZXQodC5zdWJzdHIoMSksbik7aWYoaSYmKHQ9dih0KSx0PT09ITEpKXJldHVybiBmO3ZhciBhPXQuY2hhckF0KDApO3JldHVybiBOdW1iZXIoYSkhPWF8fCFkW2FdP2Y6dC5sZW5ndGg+MT97dHlwZTpkW2FdLGRhdGE6dC5zdWJzdHJpbmcoMSl9Ont0eXBlOmRbYV19fXZhciBhPW5ldyBVaW50OEFycmF5KHQpWzBdLG89cih0LDEpO3JldHVybiBwJiZuPT09YGJsb2JgJiYobz1uZXcgcChbb10pKSx7dHlwZTpkW2FdLGRhdGE6b319O2Z1bmN0aW9uIHYoZSl7dHJ5e2U9YS5kZWNvZGUoZSx7c3RyaWN0OiExfSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuIGV9ZS5kZWNvZGVCYXNlNjRQYWNrZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1kW2UuY2hhckF0KDApXTtpZighbylyZXR1cm57dHlwZTpuLGRhdGE6e2Jhc2U2NDohMCxkYXRhOmUuc3Vic3RyKDEpfX07dmFyIHI9by5kZWNvZGUoZS5zdWJzdHIoMSkpO3JldHVybiB0PT09YGJsb2JgJiZwJiYocj1uZXcgcChbcl0pKSx7dHlwZTpuLGRhdGE6cn19LGUuZW5jb2RlUGF5bG9hZD1mdW5jdGlvbih0LHIsaSl7dHlwZW9mIHI9PWBmdW5jdGlvbmAmJihpPXIscj1udWxsKTt2YXIgYT1uKHQpO2lmKHImJmEpcmV0dXJuIHAmJiFsP2UuZW5jb2RlUGF5bG9hZEFzQmxvYih0LGkpOmUuZW5jb2RlUGF5bG9hZEFzQXJyYXlCdWZmZXIodCxpKTtpZighdC5sZW5ndGgpcmV0dXJuIGkoYDA6YCk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5sZW5ndGgrYDpgK2V9ZnVuY3Rpb24gcyh0LG4pe2UuZW5jb2RlUGFja2V0KHQsYT9yOiExLCExLGZ1bmN0aW9uKGUpe24obnVsbCxvKGUpKX0pfXkodCxzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkodC5qb2luKGBgKSl9KX07ZnVuY3Rpb24geShlLHQsbil7Zm9yKHZhciByPUFycmF5KGUubGVuZ3RoKSxhPWkoZS5sZW5ndGgsbiksbz1mdW5jdGlvbihlLG4saSl7dChuLGZ1bmN0aW9uKHQsbil7cltlXT1uLGkodCxyKX0pfSxzPTA7czxlLmxlbmd0aDtzKyspbyhzLGVbc10sYSl9ZS5kZWNvZGVQYXlsb2FkPWZ1bmN0aW9uKHQsbixyKXtpZih0eXBlb2YgdCE9YHN0cmluZ2ApcmV0dXJuIGUuZGVjb2RlUGF5bG9hZEFzQmluYXJ5KHQsbixyKTt0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKHI9bixuPW51bGwpO3ZhciBpO2lmKHQ9PT1gYClyZXR1cm4gcihmLDAsMSk7Zm9yKHZhciBhPWBgLG8scyxjPTAsbD10Lmxlbmd0aDtjPGw7YysrKXt2YXIgdT10LmNoYXJBdChjKTtpZih1IT09YDpgKXthKz11O2NvbnRpbnVlfWlmKGE9PT1gYHx8YSE9KG89TnVtYmVyKGEpKXx8KHM9dC5zdWJzdHIoYysxLG8pLGEhPXMubGVuZ3RoKSlyZXR1cm4gcihmLDAsMSk7aWYocy5sZW5ndGgpe2lmKGk9ZS5kZWNvZGVQYWNrZXQocyxuLCExKSxmLnR5cGU9PT1pLnR5cGUmJmYuZGF0YT09PWkuZGF0YSlyZXR1cm4gcihmLDAsMSk7aWYoITE9PT1yKGksYytvLGwpKXJldHVybn1jKz1vLGE9YGB9aWYoYSE9PWBgKXJldHVybiByKGYsMCwxKX0sZS5lbmNvZGVQYXlsb2FkQXNBcnJheUJ1ZmZlcj1mdW5jdGlvbih0LG4pe2lmKCF0Lmxlbmd0aClyZXR1cm4gbihuZXcgQXJyYXlCdWZmZXIoMCkpO2Z1bmN0aW9uIHIodCxuKXtlLmVuY29kZVBhY2tldCh0LCEwLCEwLGZ1bmN0aW9uKGUpe3JldHVybiBuKG51bGwsZSl9KX15KHQscixmdW5jdGlvbihlLHQpe3ZhciByPXQucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIHQ9PWBzdHJpbmdgP3QubGVuZ3RoOnQuYnl0ZUxlbmd0aDtyZXR1cm4gZStuLnRvU3RyaW5nKCkubGVuZ3RoK24rMn0sMCksaT1uZXcgVWludDhBcnJheShyKSxhPTA7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZT09YHN0cmluZ2Asbj1lO2lmKHQpe2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCksbz0wO288ZS5sZW5ndGg7bysrKXJbb109ZS5jaGFyQ29kZUF0KG8pO249ci5idWZmZXJ9dD9pW2ErK109MDppW2ErK109MTtmb3IodmFyIHM9bi5ieXRlTGVuZ3RoLnRvU3RyaW5nKCksbz0wO288cy5sZW5ndGg7bysrKWlbYSsrXT1wYXJzZUludChzW29dKTtpW2ErK109MjU1O2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShuKSxvPTA7bzxyLmxlbmd0aDtvKyspaVthKytdPXJbb119KSxuKGkuYnVmZmVyKX0pfSxlLmVuY29kZVBheWxvYWRBc0Jsb2I9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiByKHQsbil7ZS5lbmNvZGVQYWNrZXQodCwhMCwhMCxmdW5jdGlvbihlKXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtpZih0WzBdPTEsdHlwZW9mIGU9PWBzdHJpbmdgKXtmb3IodmFyIHI9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLGk9MDtpPGUubGVuZ3RoO2krKylyW2ldPWUuY2hhckNvZGVBdChpKTtlPXIuYnVmZmVyLHRbMF09MH1mb3IodmFyIGE9KGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9lLmJ5dGVMZW5ndGg6ZS5zaXplKS50b1N0cmluZygpLG89bmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgrMSksaT0wO2k8YS5sZW5ndGg7aSsrKW9baV09cGFyc2VJbnQoYVtpXSk7b1thLmxlbmd0aF09MjU1LHAmJm4obnVsbCxuZXcgcChbdC5idWZmZXIsby5idWZmZXIsZV0pKX0pfXkodCxyLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4obmV3IHAodCkpfSl9LGUuZGVjb2RlUGF5bG9hZEFzQmluYXJ5PWZ1bmN0aW9uKHQsbixpKXt0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKGk9bixuPW51bGwpO2Zvcih2YXIgYT10LG89W107YS5ieXRlTGVuZ3RoPjA7KXtmb3IodmFyIHM9bmV3IFVpbnQ4QXJyYXkoYSksYz1zWzBdPT09MCxsPWBgLHU9MTtzW3VdIT09MjU1O3UrKyl7aWYobC5sZW5ndGg+MzEwKXJldHVybiBpKGYsMCwxKTtsKz1zW3VdfWE9cihhLDIrbC5sZW5ndGgpLGw9cGFyc2VJbnQobCk7dmFyIGQ9cihhLDAsbCk7aWYoYyl0cnl7ZD1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoZCkpfWNhdGNoe3ZhciBwPW5ldyBVaW50OEFycmF5KGQpO2Q9YGA7Zm9yKHZhciB1PTA7dTxwLmxlbmd0aDt1KyspZCs9U3RyaW5nLmZyb21DaGFyQ29kZShwW3VdKX1vLnB1c2goZCksYT1yKGEsbCl9dmFyIG09by5sZW5ndGg7by5mb3JFYWNoKGZ1bmN0aW9uKHQscil7aShlLmRlY29kZVBhY2tldCh0LG4sITApLHIsbSl9KX19KSksUXM9cygoKGUsdCk9Pnt2YXIgbj1acygpLHI9SXMoKTt0LmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUpe3RoaXMucGF0aD1lLnBhdGgsdGhpcy5ob3N0bmFtZT1lLmhvc3RuYW1lLHRoaXMucG9ydD1lLnBvcnQsdGhpcy5zZWN1cmU9ZS5zZWN1cmUsdGhpcy5xdWVyeT1lLnF1ZXJ5LHRoaXMudGltZXN0YW1wUGFyYW09ZS50aW1lc3RhbXBQYXJhbSx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPWUudGltZXN0YW1wUmVxdWVzdHMsdGhpcy5yZWFkeVN0YXRlPWBgLHRoaXMuYWdlbnQ9ZS5hZ2VudHx8ITEsdGhpcy5zb2NrZXQ9ZS5zb2NrZXQsdGhpcy5lbmFibGVzWERSPWUuZW5hYmxlc1hEUix0aGlzLndpdGhDcmVkZW50aWFscz1lLndpdGhDcmVkZW50aWFscyx0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5mb3JjZU5vZGU9ZS5mb3JjZU5vZGUsdGhpcy5pc1JlYWN0TmF0aXZlPWUuaXNSZWFjdE5hdGl2ZSx0aGlzLmV4dHJhSGVhZGVycz1lLmV4dHJhSGVhZGVycyx0aGlzLmxvY2FsQWRkcmVzcz1lLmxvY2FsQWRkcmVzc31yKGkucHJvdG90eXBlKSxpLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKGUsdCl7dmFyIG49RXJyb3IoZSk7cmV0dXJuIG4udHlwZT1gVHJhbnNwb3J0RXJyb3JgLG4uZGVzY3JpcHRpb249dCx0aGlzLmVtaXQoYGVycm9yYCxuKSx0aGlzfSxpLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zZWRgfHx0aGlzLnJlYWR5U3RhdGU9PT1gYCkmJih0aGlzLnJlYWR5U3RhdGU9YG9wZW5pbmdgLHRoaXMuZG9PcGVuKCkpLHRoaXN9LGkucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuaW5nYHx8dGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gKSYmKHRoaXMuZG9DbG9zZSgpLHRoaXMub25DbG9zZSgpKSx0aGlzfSxpLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYCl0aGlzLndyaXRlKGUpO2Vsc2UgdGhyb3cgRXJyb3IoYFRyYW5zcG9ydCBub3Qgb3BlbmApfSxpLnByb3RvdHlwZS5vbk9wZW49ZnVuY3Rpb24oKXt0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLHRoaXMud3JpdGFibGU9ITAsdGhpcy5lbWl0KGBvcGVuYCl9LGkucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt2YXIgdD1uLmRlY29kZVBhY2tldChlLHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpO3RoaXMub25QYWNrZXQodCl9LGkucHJvdG90eXBlLm9uUGFja2V0PWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgcGFja2V0YCxlKX0saS5wcm90b3R5cGUub25DbG9zZT1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLmVtaXQoYGNsb3NlYCl9fSkpLCRzPXMoKGU9PntlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgdD1gYDtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodC5sZW5ndGgmJih0Kz1gJmApLHQrPWVuY29kZVVSSUNvbXBvbmVudChuKStgPWArZW5jb2RlVVJJQ29tcG9uZW50KGVbbl0pKTtyZXR1cm4gdH0sZS5kZWNvZGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49ZS5zcGxpdChgJmApLHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe3ZhciBhPW5bcl0uc3BsaXQoYD1gKTt0W2RlY29kZVVSSUNvbXBvbmVudChhWzBdKV09ZGVjb2RlVVJJQ29tcG9uZW50KGFbMV0pfXJldHVybiB0fX0pKSxlYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKCl7fTtuLnByb3RvdHlwZT10LnByb3RvdHlwZSxlLnByb3RvdHlwZT1uZXcgbixlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lfX0pKSx0Yz1zKCgoZSx0KT0+e3ZhciBuPWAwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fYC5zcGxpdChgYCkscj02NCxpPXt9LGE9MCxvPTAscztmdW5jdGlvbiBjKGUpe3ZhciB0PWBgO2RvIHQ9bltlJXJdK3QsZT1NYXRoLmZsb29yKGUvcik7d2hpbGUoZT4wKTtyZXR1cm4gdH1mdW5jdGlvbiBsKGUpe3ZhciB0PTA7Zm9yKG89MDtvPGUubGVuZ3RoO28rKyl0PXQqcitpW2UuY2hhckF0KG8pXTtyZXR1cm4gdH1mdW5jdGlvbiB1KCl7dmFyIGU9YygrbmV3IERhdGUpO3JldHVybiBlPT09cz9lK2AuYCtjKGErKyk6KGE9MCxzPWUpfWZvcig7bzxyO28rKylpW25bb11dPW87dS5lbmNvZGU9Yyx1LmRlY29kZT1sLHQuZXhwb3J0cz11fSkpLG5jPXMoKChlLHQpPT57dmFyIG49UXMoKSxyPSRzKCksaT1acygpLGE9ZWMoKSxvPXRjKCkscz1GcygpKGBlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmdgKTt0LmV4cG9ydHM9bDt2YXIgYz0oZnVuY3Rpb24oKXtyZXR1cm4gbmV3KFVzKCkpKHt4ZG9tYWluOiExfSkucmVzcG9uc2VUeXBlIT1udWxsfSkoKTtmdW5jdGlvbiBsKGUpe3ZhciB0PWUmJmUuZm9yY2VCYXNlNjQ7KCFjfHx0KSYmKHRoaXMuc3VwcG9ydHNCaW5hcnk9ITEpLG4uY2FsbCh0aGlzLGUpfWEobCxuKSxsLnByb3RvdHlwZS5uYW1lPWBwb2xsaW5nYCxsLnByb3RvdHlwZS5kb09wZW49ZnVuY3Rpb24oKXt0aGlzLnBvbGwoKX0sbC5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLnJlYWR5U3RhdGU9YHBhdXNpbmdgO2Z1bmN0aW9uIG4oKXtzKGBwYXVzZWRgKSx0LnJlYWR5U3RhdGU9YHBhdXNlZGAsZSgpfWlmKHRoaXMucG9sbGluZ3x8IXRoaXMud3JpdGFibGUpe3ZhciByPTA7dGhpcy5wb2xsaW5nJiYocyhgd2UgYXJlIGN1cnJlbnRseSBwb2xsaW5nIC0gd2FpdGluZyB0byBwYXVzZWApLHIrKyx0aGlzLm9uY2UoYHBvbGxDb21wbGV0ZWAsZnVuY3Rpb24oKXtzKGBwcmUtcGF1c2UgcG9sbGluZyBjb21wbGV0ZWApLC0tcnx8bigpfSkpLHRoaXMud3JpdGFibGV8fChzKGB3ZSBhcmUgY3VycmVudGx5IHdyaXRpbmcgLSB3YWl0aW5nIHRvIHBhdXNlYCkscisrLHRoaXMub25jZShgZHJhaW5gLGZ1bmN0aW9uKCl7cyhgcHJlLXBhdXNlIHdyaXRpbmcgY29tcGxldGVgKSwtLXJ8fG4oKX0pKX1lbHNlIG4oKX0sbC5wcm90b3R5cGUucG9sbD1mdW5jdGlvbigpe3MoYHBvbGxpbmdgKSx0aGlzLnBvbGxpbmc9ITAsdGhpcy5kb1BvbGwoKSx0aGlzLmVtaXQoYHBvbGxgKX0sbC5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cyhgcG9sbGluZyBnb3QgZGF0YSAlc2AsZSksaS5kZWNvZGVQYXlsb2FkKGUsdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSxmdW5jdGlvbihlLG4scil7aWYodC5yZWFkeVN0YXRlPT09YG9wZW5pbmdgJiZ0Lm9uT3BlbigpLGUudHlwZT09PWBjbG9zZWApcmV0dXJuIHQub25DbG9zZSgpLCExO3Qub25QYWNrZXQoZSl9KSx0aGlzLnJlYWR5U3RhdGUhPT1gY2xvc2VkYCYmKHRoaXMucG9sbGluZz0hMSx0aGlzLmVtaXQoYHBvbGxDb21wbGV0ZWApLHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYD90aGlzLnBvbGwoKTpzKGBpZ25vcmluZyBwb2xsIC0gdHJhbnNwb3J0IHN0YXRlICIlcyJgLHRoaXMucmVhZHlTdGF0ZSkpfSxsLnByb3RvdHlwZS5kb0Nsb3NlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztmdW5jdGlvbiB0KCl7cyhgd3JpdGluZyBjbG9zZSBwYWNrZXRgKSxlLndyaXRlKFt7dHlwZTpgY2xvc2VgfV0pfXRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYD8ocyhgdHJhbnNwb3J0IG9wZW4gLSBjbG9zaW5nYCksdCgpKToocyhgdHJhbnNwb3J0IG5vdCBvcGVuIC0gZGVmZXJyaW5nIGNsb3NlYCksdGhpcy5vbmNlKGBvcGVuYCx0KSl9LGwucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy53cml0YWJsZT0hMTt2YXIgbj1mdW5jdGlvbigpe3Qud3JpdGFibGU9ITAsdC5lbWl0KGBkcmFpbmApfTtpLmVuY29kZVBheWxvYWQoZSx0aGlzLnN1cHBvcnRzQmluYXJ5LGZ1bmN0aW9uKGUpe3QuZG9Xcml0ZShlLG4pfSl9LGwucHJvdG90eXBlLnVyaT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucXVlcnl8fHt9LHQ9dGhpcy5zZWN1cmU/YGh0dHBzYDpgaHR0cGAsbj1gYDshMSE9PXRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPW8oKSksIXRoaXMuc3VwcG9ydHNCaW5hcnkmJiFlLnNpZCYmKGUuYjY0PTEpLGU9ci5lbmNvZGUoZSksdGhpcy5wb3J0JiYodD09PWBodHRwc2AmJk51bWJlcih0aGlzLnBvcnQpIT09NDQzfHx0PT09YGh0dHBgJiZOdW1iZXIodGhpcy5wb3J0KSE9PTgwKSYmKG49YDpgK3RoaXMucG9ydCksZS5sZW5ndGgmJihlPWA/YCtlKTt2YXIgaT10aGlzLmhvc3RuYW1lLmluZGV4T2YoYDpgKSE9PS0xO3JldHVybiB0K2A6Ly9gKyhpP2BbYCt0aGlzLmhvc3RuYW1lK2BdYDp0aGlzLmhvc3RuYW1lKStuK3RoaXMucGF0aCtlfX0pKSxyYz1zKCgoZSx0KT0+e3ZhciBuPVVzKCkscj1uYygpLGk9SXMoKSxhPWVjKCksbz1GcygpKGBlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmcteGhyYCkscz1IcygpO3QuZXhwb3J0cz1sLHQuZXhwb3J0cy5SZXF1ZXN0PXU7ZnVuY3Rpb24gYygpe31mdW5jdGlvbiBsKGUpe2lmKHIuY2FsbCh0aGlzLGUpLHRoaXMucmVxdWVzdFRpbWVvdXQ9ZS5yZXF1ZXN0VGltZW91dCx0aGlzLmV4dHJhSGVhZGVycz1lLmV4dHJhSGVhZGVycyx0eXBlb2YgbG9jYXRpb248YHVgKXt2YXIgdD1sb2NhdGlvbi5wcm90b2NvbD09PWBodHRwczpgLG49bG9jYXRpb24ucG9ydDtufHw9dD80NDM6ODAsdGhpcy54ZD10eXBlb2YgbG9jYXRpb248YHVgJiZlLmhvc3RuYW1lIT09bG9jYXRpb24uaG9zdG5hbWV8fG4hPT1lLnBvcnQsdGhpcy54cz1lLnNlY3VyZSE9PXR9fWEobCxyKSxsLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeT0hMCxsLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiBlfHw9e30sZS51cmk9dGhpcy51cmkoKSxlLnhkPXRoaXMueGQsZS54cz10aGlzLnhzLGUuYWdlbnQ9dGhpcy5hZ2VudHx8ITEsZS5zdXBwb3J0c0JpbmFyeT10aGlzLnN1cHBvcnRzQmluYXJ5LGUuZW5hYmxlc1hEUj10aGlzLmVuYWJsZXNYRFIsZS53aXRoQ3JlZGVudGlhbHM9dGhpcy53aXRoQ3JlZGVudGlhbHMsZS5wZng9dGhpcy5wZngsZS5rZXk9dGhpcy5rZXksZS5wYXNzcGhyYXNlPXRoaXMucGFzc3BocmFzZSxlLmNlcnQ9dGhpcy5jZXJ0LGUuY2E9dGhpcy5jYSxlLmNpcGhlcnM9dGhpcy5jaXBoZXJzLGUucmVqZWN0VW5hdXRob3JpemVkPXRoaXMucmVqZWN0VW5hdXRob3JpemVkLGUucmVxdWVzdFRpbWVvdXQ9dGhpcy5yZXF1ZXN0VGltZW91dCxlLmV4dHJhSGVhZGVycz10aGlzLmV4dHJhSGVhZGVycyxuZXcgdShlKX0sbC5wcm90b3R5cGUuZG9Xcml0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBlIT1gc3RyaW5nYCYmZSE9PXZvaWQgMCxyPXRoaXMucmVxdWVzdCh7bWV0aG9kOmBQT1NUYCxkYXRhOmUsaXNCaW5hcnk6bn0pLGk9dGhpcztyLm9uKGBzdWNjZXNzYCx0KSxyLm9uKGBlcnJvcmAsZnVuY3Rpb24oZSl7aS5vbkVycm9yKGB4aHIgcG9zdCBlcnJvcmAsZSl9KSx0aGlzLnNlbmRYaHI9cn0sbC5wcm90b3R5cGUuZG9Qb2xsPWZ1bmN0aW9uKCl7byhgeGhyIHBvbGxgKTt2YXIgZT10aGlzLnJlcXVlc3QoKSx0PXRoaXM7ZS5vbihgZGF0YWAsZnVuY3Rpb24oZSl7dC5vbkRhdGEoZSl9KSxlLm9uKGBlcnJvcmAsZnVuY3Rpb24oZSl7dC5vbkVycm9yKGB4aHIgcG9sbCBlcnJvcmAsZSl9KSx0aGlzLnBvbGxYaHI9ZX07ZnVuY3Rpb24gdShlKXt0aGlzLm1ldGhvZD1lLm1ldGhvZHx8YEdFVGAsdGhpcy51cmk9ZS51cmksdGhpcy54ZD0hIWUueGQsdGhpcy54cz0hIWUueHMsdGhpcy5hc3luYz0hMSE9PWUuYXN5bmMsdGhpcy5kYXRhPWUuZGF0YT09PXZvaWQgMD9udWxsOmUuZGF0YSx0aGlzLmFnZW50PWUuYWdlbnQsdGhpcy5pc0JpbmFyeT1lLmlzQmluYXJ5LHRoaXMuc3VwcG9ydHNCaW5hcnk9ZS5zdXBwb3J0c0JpbmFyeSx0aGlzLmVuYWJsZXNYRFI9ZS5lbmFibGVzWERSLHRoaXMud2l0aENyZWRlbnRpYWxzPWUud2l0aENyZWRlbnRpYWxzLHRoaXMucmVxdWVzdFRpbWVvdXQ9ZS5yZXF1ZXN0VGltZW91dCx0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5leHRyYUhlYWRlcnM9ZS5leHRyYUhlYWRlcnMsdGhpcy5jcmVhdGUoKX1pZihpKHUucHJvdG90eXBlKSx1LnByb3RvdHlwZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgZT17YWdlbnQ6dGhpcy5hZ2VudCx4ZG9tYWluOnRoaXMueGQseHNjaGVtZTp0aGlzLnhzLGVuYWJsZXNYRFI6dGhpcy5lbmFibGVzWERSfTtlLnBmeD10aGlzLnBmeCxlLmtleT10aGlzLmtleSxlLnBhc3NwaHJhc2U9dGhpcy5wYXNzcGhyYXNlLGUuY2VydD10aGlzLmNlcnQsZS5jYT10aGlzLmNhLGUuY2lwaGVycz10aGlzLmNpcGhlcnMsZS5yZWplY3RVbmF1dGhvcml6ZWQ9dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ7dmFyIHQ9dGhpcy54aHI9bmV3IG4oZSkscj10aGlzO3RyeXtvKGB4aHIgb3BlbiAlczogJXNgLHRoaXMubWV0aG9kLHRoaXMudXJpKSx0Lm9wZW4odGhpcy5tZXRob2QsdGhpcy51cmksdGhpcy5hc3luYyk7dHJ5e2lmKHRoaXMuZXh0cmFIZWFkZXJzKWZvcih2YXIgaSBpbiB0LnNldERpc2FibGVIZWFkZXJDaGVjayYmdC5zZXREaXNhYmxlSGVhZGVyQ2hlY2soITApLHRoaXMuZXh0cmFIZWFkZXJzKXRoaXMuZXh0cmFIZWFkZXJzLmhhc093blByb3BlcnR5KGkpJiZ0LnNldFJlcXVlc3RIZWFkZXIoaSx0aGlzLmV4dHJhSGVhZGVyc1tpXSl9Y2F0Y2h7fWlmKHRoaXMubWV0aG9kPT09YFBPU1RgKXRyeXt0aGlzLmlzQmluYXJ5P3Quc2V0UmVxdWVzdEhlYWRlcihgQ29udGVudC10eXBlYCxgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYCk6dC5zZXRSZXF1ZXN0SGVhZGVyKGBDb250ZW50LXR5cGVgLGB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThgKX1jYXRjaHt9dHJ5e3Quc2V0UmVxdWVzdEhlYWRlcihgQWNjZXB0YCxgKi8qYCl9Y2F0Y2h7fWB3aXRoQ3JlZGVudGlhbHNgaW4gdCYmKHQud2l0aENyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzKSx0aGlzLnJlcXVlc3RUaW1lb3V0JiYodC50aW1lb3V0PXRoaXMucmVxdWVzdFRpbWVvdXQpLHRoaXMuaGFzWERSKCk/KHQub25sb2FkPWZ1bmN0aW9uKCl7ci5vbkxvYWQoKX0sdC5vbmVycm9yPWZ1bmN0aW9uKCl7ci5vbkVycm9yKHQucmVzcG9uc2VUZXh0KX0pOnQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYodC5yZWFkeVN0YXRlPT09Mil0cnl7dmFyIGU9dC5nZXRSZXNwb25zZUhlYWRlcihgQ29udGVudC1UeXBlYCk7KHIuc3VwcG9ydHNCaW5hcnkmJmU9PT1gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYHx8ZT09PWBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9VVRGLThgKSYmKHQucmVzcG9uc2VUeXBlPWBhcnJheWJ1ZmZlcmApfWNhdGNoe310LnJlYWR5U3RhdGU9PT00JiYodC5zdGF0dXM9PT0yMDB8fHQuc3RhdHVzPT09MTIyMz9yLm9uTG9hZCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLm9uRXJyb3IodHlwZW9mIHQuc3RhdHVzPT1gbnVtYmVyYD90LnN0YXR1czowKX0sMCkpfSxvKGB4aHIgZGF0YSAlc2AsdGhpcy5kYXRhKSx0LnNlbmQodGhpcy5kYXRhKX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5vbkVycm9yKGUpfSwwKTtyZXR1cm59dHlwZW9mIGRvY3VtZW50PGB1YCYmKHRoaXMuaW5kZXg9dS5yZXF1ZXN0c0NvdW50KyssdS5yZXF1ZXN0c1t0aGlzLmluZGV4XT10aGlzKX0sdS5wcm90b3R5cGUub25TdWNjZXNzPWZ1bmN0aW9uKCl7dGhpcy5lbWl0KGBzdWNjZXNzYCksdGhpcy5jbGVhbnVwKCl9LHUucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt0aGlzLmVtaXQoYGRhdGFgLGUpLHRoaXMub25TdWNjZXNzKCl9LHUucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5lbWl0KGBlcnJvcmAsZSksdGhpcy5jbGVhbnVwKCEwKX0sdS5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbihlKXtpZighKHRoaXMueGhyPT09dm9pZCAwfHx0aGlzLnhocj09PW51bGwpKXtpZih0aGlzLmhhc1hEUigpP3RoaXMueGhyLm9ubG9hZD10aGlzLnhoci5vbmVycm9yPWM6dGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlPWMsZSl0cnl7dGhpcy54aHIuYWJvcnQoKX1jYXRjaHt9dHlwZW9mIGRvY3VtZW50PGB1YCYmZGVsZXRlIHUucmVxdWVzdHNbdGhpcy5pbmRleF0sdGhpcy54aHI9bnVsbH19LHUucHJvdG90eXBlLm9uTG9hZD1mdW5jdGlvbigpe3ZhciBlO3RyeXt2YXIgdDt0cnl7dD10aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcihgQ29udGVudC1UeXBlYCl9Y2F0Y2h7fWU9KHQ9PT1gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYHx8dD09PWBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9VVRGLThgKSYmdGhpcy54aHIucmVzcG9uc2V8fHRoaXMueGhyLnJlc3BvbnNlVGV4dH1jYXRjaChlKXt0aGlzLm9uRXJyb3IoZSl9ZSE9bnVsbCYmdGhpcy5vbkRhdGEoZSl9LHUucHJvdG90eXBlLmhhc1hEUj1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgWERvbWFpblJlcXVlc3Q8YHVgJiYhdGhpcy54cyYmdGhpcy5lbmFibGVzWERSfSx1LnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuY2xlYW51cCgpfSx1LnJlcXVlc3RzQ291bnQ9MCx1LnJlcXVlc3RzPXt9LHR5cGVvZiBkb2N1bWVudDxgdWApe2lmKHR5cGVvZiBhdHRhY2hFdmVudD09YGZ1bmN0aW9uYClhdHRhY2hFdmVudChgb251bmxvYWRgLGYpO2Vsc2UgaWYodHlwZW9mIGFkZEV2ZW50TGlzdGVuZXI9PWBmdW5jdGlvbmApe3ZhciBkPWBvbnBhZ2VoaWRlYGluIHM/YHBhZ2VoaWRlYDpgdW5sb2FkYDthZGRFdmVudExpc3RlbmVyKGQsZiwhMSl9fWZ1bmN0aW9uIGYoKXtmb3IodmFyIGUgaW4gdS5yZXF1ZXN0cyl1LnJlcXVlc3RzLmhhc093blByb3BlcnR5KGUpJiZ1LnJlcXVlc3RzW2VdLmFib3J0KCl9fSkpLGljPXMoKChlLHQpPT57dmFyIG49bmMoKSxyPWVjKCksaT1IcygpO3QuZXhwb3J0cz1sO3ZhciBhPS9cbi9nLG89L1xcbi9nLHM7ZnVuY3Rpb24gYygpe31mdW5jdGlvbiBsKGUpe24uY2FsbCh0aGlzLGUpLHRoaXMucXVlcnk9dGhpcy5xdWVyeXx8e30sc3x8PWkuX19fZWlvPWkuX19fZWlvfHxbXSx0aGlzLmluZGV4PXMubGVuZ3RoO3ZhciB0PXRoaXM7cy5wdXNoKGZ1bmN0aW9uKGUpe3Qub25EYXRhKGUpfSksdGhpcy5xdWVyeS5qPXRoaXMuaW5kZXgsdHlwZW9mIGFkZEV2ZW50TGlzdGVuZXI9PWBmdW5jdGlvbmAmJmFkZEV2ZW50TGlzdGVuZXIoYGJlZm9yZXVubG9hZGAsZnVuY3Rpb24oKXt0LnNjcmlwdCYmKHQuc2NyaXB0Lm9uZXJyb3I9Yyl9LCExKX1yKGwsbiksbC5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITEsbC5wcm90b3R5cGUuZG9DbG9zZT1mdW5jdGlvbigpe3RoaXMuc2NyaXB0JiY9KHRoaXMuc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zY3JpcHQpLG51bGwpLHRoaXMuZm9ybSYmKHRoaXMuZm9ybS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZm9ybSksdGhpcy5mb3JtPW51bGwsdGhpcy5pZnJhbWU9bnVsbCksbi5wcm90b3R5cGUuZG9DbG9zZS5jYWxsKHRoaXMpfSxsLnByb3RvdHlwZS5kb1BvbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgc2NyaXB0YCk7dGhpcy5zY3JpcHQmJj0odGhpcy5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnNjcmlwdCksbnVsbCksdC5hc3luYz0hMCx0LnNyYz10aGlzLnVyaSgpLHQub25lcnJvcj1mdW5jdGlvbih0KXtlLm9uRXJyb3IoYGpzb25wIHBvbGwgZXJyb3JgLHQpfTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgc2NyaXB0YClbMF07bj9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsbik6KGRvY3VtZW50LmhlYWR8fGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHQpLHRoaXMuc2NyaXB0PXQsdHlwZW9mIG5hdmlnYXRvcjxgdWAmJi9nZWNrby9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSl9LDEwMCl9LGwucHJvdG90eXBlLmRvV3JpdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKCF0aGlzLmZvcm0pe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGZvcm1gKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYHRleHRhcmVhYCkscz10aGlzLmlmcmFtZUlkPWBlaW9faWZyYW1lX2ArdGhpcy5pbmRleCxjO3IuY2xhc3NOYW1lPWBzb2NrZXRpb2Asci5zdHlsZS5wb3NpdGlvbj1gYWJzb2x1dGVgLHIuc3R5bGUudG9wPWAtMTAwMHB4YCxyLnN0eWxlLmxlZnQ9YC0xMDAwcHhgLHIudGFyZ2V0PXMsci5tZXRob2Q9YFBPU1RgLHIuc2V0QXR0cmlidXRlKGBhY2NlcHQtY2hhcnNldGAsYHV0Zi04YCksaS5uYW1lPWBkYCxyLmFwcGVuZENoaWxkKGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQociksdGhpcy5mb3JtPXIsdGhpcy5hcmVhPWl9dGhpcy5mb3JtLmFjdGlvbj10aGlzLnVyaSgpO2Z1bmN0aW9uIGwoKXt1KCksdCgpfWZ1bmN0aW9uIHUoKXtpZihuLmlmcmFtZSl0cnl7bi5mb3JtLnJlbW92ZUNoaWxkKG4uaWZyYW1lKX1jYXRjaChlKXtuLm9uRXJyb3IoYGpzb25wIHBvbGxpbmcgaWZyYW1lIHJlbW92YWwgZXJyb3JgLGUpfXRyeXt2YXIgZT1gPGlmcmFtZSBzcmM9ImphdmFzY3JpcHQ6MCIgbmFtZT0iYCtuLmlmcmFtZUlkK2AiPmA7Yz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpfWNhdGNoe2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaWZyYW1lYCksYy5uYW1lPW4uaWZyYW1lSWQsYy5zcmM9YGphdmFzY3JpcHQ6MGB9Yy5pZD1uLmlmcmFtZUlkLG4uZm9ybS5hcHBlbmRDaGlsZChjKSxuLmlmcmFtZT1jfXUoKSxlPWUucmVwbGFjZShvLGBcXApgKSx0aGlzLmFyZWEudmFsdWU9ZS5yZXBsYWNlKGEsYFxcbmApO3RyeXt0aGlzLmZvcm0uc3VibWl0KCl9Y2F0Y2h7fXRoaXMuaWZyYW1lLmF0dGFjaEV2ZW50P3RoaXMuaWZyYW1lLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe24uaWZyYW1lLnJlYWR5U3RhdGU9PT1gY29tcGxldGVgJiZsKCl9OnRoaXMuaWZyYW1lLm9ubG9hZD1sfX0pKSxhYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz17fX0pKSxvYz1zKCgoZSx0KT0+e3ZhciBuPVFzKCkscj1acygpLGk9JHMoKSxhPWVjKCksbz10YygpLHM9RnMoKShgZW5naW5lLmlvLWNsaWVudDp3ZWJzb2NrZXRgKSxjLGw7aWYodHlwZW9mIFdlYlNvY2tldDxgdWA/Yz1XZWJTb2NrZXQ6dHlwZW9mIHNlbGY8YHVgJiYoYz1zZWxmLldlYlNvY2tldHx8c2VsZi5Nb3pXZWJTb2NrZXQpLHR5cGVvZiB3aW5kb3c+YHVgKXRyeXtsPWFjKCl9Y2F0Y2h7fXZhciB1PWN8fGw7dC5leHBvcnRzPWQ7ZnVuY3Rpb24gZChlKXtlJiZlLmZvcmNlQmFzZTY0JiYodGhpcy5zdXBwb3J0c0JpbmFyeT0hMSksdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZT1lLnBlck1lc3NhZ2VEZWZsYXRlLHRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0PWMmJiFlLmZvcmNlTm9kZSx0aGlzLnByb3RvY29scz1lLnByb3RvY29scyx0aGlzLnVzaW5nQnJvd3NlcldlYlNvY2tldHx8KHU9bCksbi5jYWxsKHRoaXMsZSl9YShkLG4pLGQucHJvdG90eXBlLm5hbWU9YHdlYnNvY2tldGAsZC5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITAsZC5wcm90b3R5cGUuZG9PcGVuPWZ1bmN0aW9uKCl7aWYodGhpcy5jaGVjaygpKXt2YXIgZT10aGlzLnVyaSgpLHQ9dGhpcy5wcm90b2NvbHMsbj17fTt0aGlzLmlzUmVhY3ROYXRpdmV8fChuLmFnZW50PXRoaXMuYWdlbnQsbi5wZXJNZXNzYWdlRGVmbGF0ZT10aGlzLnBlck1lc3NhZ2VEZWZsYXRlLG4ucGZ4PXRoaXMucGZ4LG4ua2V5PXRoaXMua2V5LG4ucGFzc3BocmFzZT10aGlzLnBhc3NwaHJhc2Usbi5jZXJ0PXRoaXMuY2VydCxuLmNhPXRoaXMuY2Esbi5jaXBoZXJzPXRoaXMuY2lwaGVycyxuLnJlamVjdFVuYXV0aG9yaXplZD10aGlzLnJlamVjdFVuYXV0aG9yaXplZCksdGhpcy5leHRyYUhlYWRlcnMmJihuLmhlYWRlcnM9dGhpcy5leHRyYUhlYWRlcnMpLHRoaXMubG9jYWxBZGRyZXNzJiYobi5sb2NhbEFkZHJlc3M9dGhpcy5sb2NhbEFkZHJlc3MpO3RyeXt0aGlzLndzPXRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0JiYhdGhpcy5pc1JlYWN0TmF0aXZlP3Q/bmV3IHUoZSx0KTpuZXcgdShlKTpuZXcgdShlLHQsbil9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuZW1pdChgZXJyb3JgLGUpfXRoaXMud3MuYmluYXJ5VHlwZT09PXZvaWQgMCYmKHRoaXMuc3VwcG9ydHNCaW5hcnk9ITEpLHRoaXMud3Muc3VwcG9ydHMmJnRoaXMud3Muc3VwcG9ydHMuYmluYXJ5Pyh0aGlzLnN1cHBvcnRzQmluYXJ5PSEwLHRoaXMud3MuYmluYXJ5VHlwZT1gbm9kZWJ1ZmZlcmApOnRoaXMud3MuYmluYXJ5VHlwZT1gYXJyYXlidWZmZXJgLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKX19LGQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLndzLm9ub3Blbj1mdW5jdGlvbigpe2Uub25PcGVuKCl9LHRoaXMud3Mub25jbG9zZT1mdW5jdGlvbigpe2Uub25DbG9zZSgpfSx0aGlzLndzLm9ubWVzc2FnZT1mdW5jdGlvbih0KXtlLm9uRGF0YSh0LmRhdGEpfSx0aGlzLndzLm9uZXJyb3I9ZnVuY3Rpb24odCl7ZS5vbkVycm9yKGB3ZWJzb2NrZXQgZXJyb3JgLHQpfX0sZC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLndyaXRhYmxlPSExO2Zvcih2YXIgbj1lLmxlbmd0aCxpPTAsYT1uO2k8YTtpKyspKGZ1bmN0aW9uKGUpe3IuZW5jb2RlUGFja2V0KGUsdC5zdXBwb3J0c0JpbmFyeSxmdW5jdGlvbihyKXtpZighdC51c2luZ0Jyb3dzZXJXZWJTb2NrZXQpe3ZhciBpPXt9O2Uub3B0aW9ucyYmKGkuY29tcHJlc3M9ZS5vcHRpb25zLmNvbXByZXNzKSx0LnBlck1lc3NhZ2VEZWZsYXRlJiYodHlwZW9mIHI9PWBzdHJpbmdgP0J1ZmZlci5ieXRlTGVuZ3RoKHIpOnIubGVuZ3RoKTx0LnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZCYmKGkuY29tcHJlc3M9ITEpfXRyeXt0LnVzaW5nQnJvd3NlcldlYlNvY2tldD90LndzLnNlbmQocik6dC53cy5zZW5kKHIsaSl9Y2F0Y2h7cyhgd2Vic29ja2V0IGNsb3NlZCBiZWZvcmUgb25jbG9zZSBldmVudGApfS0tbnx8bygpfSl9KShlW2ldKTtmdW5jdGlvbiBvKCl7dC5lbWl0KGBmbHVzaGApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LndyaXRhYmxlPSEwLHQuZW1pdChgZHJhaW5gKX0sMCl9fSxkLnByb3RvdHlwZS5vbkNsb3NlPWZ1bmN0aW9uKCl7bi5wcm90b3R5cGUub25DbG9zZS5jYWxsKHRoaXMpfSxkLnByb3RvdHlwZS5kb0Nsb3NlPWZ1bmN0aW9uKCl7dGhpcy53cyE9PXZvaWQgMCYmdGhpcy53cy5jbG9zZSgpfSxkLnByb3RvdHlwZS51cmk9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnF1ZXJ5fHx7fSx0PXRoaXMuc2VjdXJlP2B3c3NgOmB3c2Asbj1gYDt0aGlzLnBvcnQmJih0PT09YHdzc2AmJk51bWJlcih0aGlzLnBvcnQpIT09NDQzfHx0PT09YHdzYCYmTnVtYmVyKHRoaXMucG9ydCkhPT04MCkmJihuPWA6YCt0aGlzLnBvcnQpLHRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPW8oKSksdGhpcy5zdXBwb3J0c0JpbmFyeXx8KGUuYjY0PTEpLGU9aS5lbmNvZGUoZSksZS5sZW5ndGgmJihlPWA/YCtlKTt2YXIgcj10aGlzLmhvc3RuYW1lLmluZGV4T2YoYDpgKSE9PS0xO3JldHVybiB0K2A6Ly9gKyhyP2BbYCt0aGlzLmhvc3RuYW1lK2BdYDp0aGlzLmhvc3RuYW1lKStuK3RoaXMucGF0aCtlfSxkLnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe3JldHVybiEhdSYmIShgX19pbml0aWFsaXplYGluIHUmJnRoaXMubmFtZT09PWQucHJvdG90eXBlLm5hbWUpfX0pKSxzYz1zKChlPT57dmFyIHQ9VXMoKSxuPXJjKCkscj1pYygpLGk9b2MoKTtlLnBvbGxpbmc9YSxlLndlYnNvY2tldD1pO2Z1bmN0aW9uIGEoZSl7dmFyIGksYT0hMSxvPSExLHM9ITEhPT1lLmpzb25wO2lmKHR5cGVvZiBsb2NhdGlvbjxgdWApe3ZhciBjPWxvY2F0aW9uLnByb3RvY29sPT09YGh0dHBzOmAsbD1sb2NhdGlvbi5wb3J0O2x8fD1jPzQ0Mzo4MCxhPWUuaG9zdG5hbWUhPT1sb2NhdGlvbi5ob3N0bmFtZXx8bCE9PWUucG9ydCxvPWUuc2VjdXJlIT09Y31pZihlLnhkb21haW49YSxlLnhzY2hlbWU9byxpPW5ldyB0KGUpLGBvcGVuYGluIGkmJiFlLmZvcmNlSlNPTlApcmV0dXJuIG5ldyBuKGUpO2lmKCFzKXRocm93IEVycm9yKGBKU09OUCBkaXNhYmxlZGApO3JldHVybiBuZXcgcihlKX19KSksY2M9cygoKGUsdCk9Pnt2YXIgbj1bXS5pbmRleE9mO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKG4pcmV0dXJuIGUuaW5kZXhPZih0KTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcilpZihlW3JdPT09dClyZXR1cm4gcjtyZXR1cm4tMX19KSksbGM9cygoKGUsdCk9Pnt2YXIgbj0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcL1wvKT8oKD86KChbXjpAXSopKD86OihbXjpAXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XC8/I10qKSg/OjooXGQqKSk/KSgoKFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNcL10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxyPVtgc291cmNlYCxgcHJvdG9jb2xgLGBhdXRob3JpdHlgLGB1c2VySW5mb2AsYHVzZXJgLGBwYXNzd29yZGAsYGhvc3RgLGBwb3J0YCxgcmVsYXRpdmVgLGBwYXRoYCxgZGlyZWN0b3J5YCxgZmlsZWAsYHF1ZXJ5YCxgYW5jaG9yYF07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUsbz1lLmluZGV4T2YoYFtgKSxzPWUuaW5kZXhPZihgXWApO28hPS0xJiZzIT0tMSYmKGU9ZS5zdWJzdHJpbmcoMCxvKStlLnN1YnN0cmluZyhvLHMpLnJlcGxhY2UoLzovZyxgO2ApK2Uuc3Vic3RyaW5nKHMsZS5sZW5ndGgpKTtmb3IodmFyIGM9bi5leGVjKGV8fGBgKSxsPXt9LHU9MTQ7dS0tOylsW3JbdV1dPWNbdV18fGBgO3JldHVybiBvIT0tMSYmcyE9LTEmJihsLnNvdXJjZT10LGwuaG9zdD1sLmhvc3Quc3Vic3RyaW5nKDEsbC5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csYDpgKSxsLmF1dGhvcml0eT1sLmF1dGhvcml0eS5yZXBsYWNlKGBbYCxgYCkucmVwbGFjZShgXWAsYGApLnJlcGxhY2UoLzsvZyxgOmApLGwuaXB2NnVyaT0hMCksbC5wYXRoTmFtZXM9aShsLGwucGF0aCksbC5xdWVyeUtleT1hKGwsbC5xdWVyeSksbH07ZnVuY3Rpb24gaShlLHQpe3ZhciBuPXQucmVwbGFjZSgvXC97Miw5fS9nLGAvYCkuc3BsaXQoYC9gKTtyZXR1cm4odC5zdWJzdHIoMCwxKT09YC9gfHx0Lmxlbmd0aD09PTApJiZuLnNwbGljZSgwLDEpLHQuc3Vic3RyKHQubGVuZ3RoLTEsMSk9PWAvYCYmbi5zcGxpY2Uobi5sZW5ndGgtMSwxKSxufWZ1bmN0aW9uIGEoZSx0KXt2YXIgbj17fTtyZXR1cm4gdC5yZXBsYWNlKC8oPzpefCYpKFteJj1dKik9PyhbXiZdKikvZyxmdW5jdGlvbihlLHQscil7dCYmKG5bdF09cil9KSxufX0pKSx1Yz1zKCgoZSx0KT0+e3ZhciBuPXNjKCkscj1JcygpLGk9RnMoKShgZW5naW5lLmlvLWNsaWVudDpzb2NrZXRgKSxhPWNjKCksbz1acygpLHM9bGMoKSxjPSRzKCk7dC5leHBvcnRzPWw7ZnVuY3Rpb24gbChlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXJldHVybiBuZXcgbChlLHQpO3R8fD17fSxlJiZ0eXBlb2YgZT09YG9iamVjdGAmJih0PWUsZT1udWxsKSxlPyhlPXMoZSksdC5ob3N0bmFtZT1lLmhvc3QsdC5zZWN1cmU9ZS5wcm90b2NvbD09PWBodHRwc2B8fGUucHJvdG9jb2w9PT1gd3NzYCx0LnBvcnQ9ZS5wb3J0LGUucXVlcnkmJih0LnF1ZXJ5PWUucXVlcnkpKTp0Lmhvc3QmJih0Lmhvc3RuYW1lPXModC5ob3N0KS5ob3N0KSx0aGlzLnNlY3VyZT10LnNlY3VyZT09bnVsbD90eXBlb2YgbG9jYXRpb248YHVgJiZsb2NhdGlvbi5wcm90b2NvbD09PWBodHRwczpgOnQuc2VjdXJlLHQuaG9zdG5hbWUmJiF0LnBvcnQmJih0LnBvcnQ9dGhpcy5zZWN1cmU/YDQ0M2A6YDgwYCksdGhpcy5hZ2VudD10LmFnZW50fHwhMSx0aGlzLmhvc3RuYW1lPXQuaG9zdG5hbWV8fCh0eXBlb2YgbG9jYXRpb248YHVgP2xvY2F0aW9uLmhvc3RuYW1lOmBsb2NhbGhvc3RgKSx0aGlzLnBvcnQ9dC5wb3J0fHwodHlwZW9mIGxvY2F0aW9uPGB1YCYmbG9jYXRpb24ucG9ydD9sb2NhdGlvbi5wb3J0OnRoaXMuc2VjdXJlPzQ0Mzo4MCksdGhpcy5xdWVyeT10LnF1ZXJ5fHx7fSx0eXBlb2YgdGhpcy5xdWVyeT09YHN0cmluZ2AmJih0aGlzLnF1ZXJ5PWMuZGVjb2RlKHRoaXMucXVlcnkpKSx0aGlzLnVwZ3JhZGU9ITEhPT10LnVwZ3JhZGUsdGhpcy5wYXRoPSh0LnBhdGh8fGAvZW5naW5lLmlvYCkucmVwbGFjZSgvXC8kLyxgYCkrYC9gLHRoaXMuZm9yY2VKU09OUD0hIXQuZm9yY2VKU09OUCx0aGlzLmpzb25wPSExIT09dC5qc29ucCx0aGlzLmZvcmNlQmFzZTY0PSEhdC5mb3JjZUJhc2U2NCx0aGlzLmVuYWJsZXNYRFI9ISF0LmVuYWJsZXNYRFIsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEhPT10LndpdGhDcmVkZW50aWFscyx0aGlzLnRpbWVzdGFtcFBhcmFtPXQudGltZXN0YW1wUGFyYW18fGB0YCx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPXQudGltZXN0YW1wUmVxdWVzdHMsdGhpcy50cmFuc3BvcnRzPXQudHJhbnNwb3J0c3x8W2Bwb2xsaW5nYCxgd2Vic29ja2V0YF0sdGhpcy50cmFuc3BvcnRPcHRpb25zPXQudHJhbnNwb3J0T3B0aW9uc3x8e30sdGhpcy5yZWFkeVN0YXRlPWBgLHRoaXMud3JpdGVCdWZmZXI9W10sdGhpcy5wcmV2QnVmZmVyTGVuPTAsdGhpcy5wb2xpY3lQb3J0PXQucG9saWN5UG9ydHx8ODQzLHRoaXMucmVtZW1iZXJVcGdyYWRlPXQucmVtZW1iZXJVcGdyYWRlfHwhMSx0aGlzLmJpbmFyeVR5cGU9bnVsbCx0aGlzLm9ubHlCaW5hcnlVcGdyYWRlcz10Lm9ubHlCaW5hcnlVcGdyYWRlcyx0aGlzLnBlck1lc3NhZ2VEZWZsYXRlPSExPT09dC5wZXJNZXNzYWdlRGVmbGF0ZT8hMTp0LnBlck1lc3NhZ2VEZWZsYXRlfHx7fSwhMD09PXRoaXMucGVyTWVzc2FnZURlZmxhdGUmJih0aGlzLnBlck1lc3NhZ2VEZWZsYXRlPXt9KSx0aGlzLnBlck1lc3NhZ2VEZWZsYXRlJiZ0aGlzLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZD09bnVsbCYmKHRoaXMucGVyTWVzc2FnZURlZmxhdGUudGhyZXNob2xkPTEwMjQpLHRoaXMucGZ4PXQucGZ4fHxudWxsLHRoaXMua2V5PXQua2V5fHxudWxsLHRoaXMucGFzc3BocmFzZT10LnBhc3NwaHJhc2V8fG51bGwsdGhpcy5jZXJ0PXQuY2VydHx8bnVsbCx0aGlzLmNhPXQuY2F8fG51bGwsdGhpcy5jaXBoZXJzPXQuY2lwaGVyc3x8bnVsbCx0aGlzLnJlamVjdFVuYXV0aG9yaXplZD10LnJlamVjdFVuYXV0aG9yaXplZD09PXZvaWQgMD8hMDp0LnJlamVjdFVuYXV0aG9yaXplZCx0aGlzLmZvcmNlTm9kZT0hIXQuZm9yY2VOb2RlLHRoaXMuaXNSZWFjdE5hdGl2ZT10eXBlb2YgbmF2aWdhdG9yPGB1YCYmdHlwZW9mIG5hdmlnYXRvci5wcm9kdWN0PT1gc3RyaW5nYCYmbmF2aWdhdG9yLnByb2R1Y3QudG9Mb3dlckNhc2UoKT09PWByZWFjdG5hdGl2ZWAsKHR5cGVvZiBzZWxmPmB1YHx8dGhpcy5pc1JlYWN0TmF0aXZlKSYmKHQuZXh0cmFIZWFkZXJzJiZPYmplY3Qua2V5cyh0LmV4dHJhSGVhZGVycykubGVuZ3RoPjAmJih0aGlzLmV4dHJhSGVhZGVycz10LmV4dHJhSGVhZGVycyksdC5sb2NhbEFkZHJlc3MmJih0aGlzLmxvY2FsQWRkcmVzcz10LmxvY2FsQWRkcmVzcykpLHRoaXMuaWQ9bnVsbCx0aGlzLnVwZ3JhZGVzPW51bGwsdGhpcy5waW5nSW50ZXJ2YWw9bnVsbCx0aGlzLnBpbmdUaW1lb3V0PW51bGwsdGhpcy5waW5nSW50ZXJ2YWxUaW1lcj1udWxsLHRoaXMucGluZ1RpbWVvdXRUaW1lcj1udWxsLHRoaXMub3BlbigpfWwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPSExLHIobC5wcm90b3R5cGUpLGwucHJvdG9jb2w9by5wcm90b2NvbCxsLlNvY2tldD1sLGwuVHJhbnNwb3J0PVFzKCksbC50cmFuc3BvcnRzPXNjKCksbC5wYXJzZXI9WnMoKSxsLnByb3RvdHlwZS5jcmVhdGVUcmFuc3BvcnQ9ZnVuY3Rpb24oZSl7aShgY3JlYXRpbmcgdHJhbnNwb3J0ICIlcyJgLGUpO3ZhciB0PXUodGhpcy5xdWVyeSk7dC5FSU89by5wcm90b2NvbCx0LnRyYW5zcG9ydD1lO3ZhciByPXRoaXMudHJhbnNwb3J0T3B0aW9uc1tlXXx8e307cmV0dXJuIHRoaXMuaWQmJih0LnNpZD10aGlzLmlkKSxuZXcgbltlXSh7cXVlcnk6dCxzb2NrZXQ6dGhpcyxhZ2VudDpyLmFnZW50fHx0aGlzLmFnZW50LGhvc3RuYW1lOnIuaG9zdG5hbWV8fHRoaXMuaG9zdG5hbWUscG9ydDpyLnBvcnR8fHRoaXMucG9ydCxzZWN1cmU6ci5zZWN1cmV8fHRoaXMuc2VjdXJlLHBhdGg6ci5wYXRofHx0aGlzLnBhdGgsZm9yY2VKU09OUDpyLmZvcmNlSlNPTlB8fHRoaXMuZm9yY2VKU09OUCxqc29ucDpyLmpzb25wfHx0aGlzLmpzb25wLGZvcmNlQmFzZTY0OnIuZm9yY2VCYXNlNjR8fHRoaXMuZm9yY2VCYXNlNjQsZW5hYmxlc1hEUjpyLmVuYWJsZXNYRFJ8fHRoaXMuZW5hYmxlc1hEUix3aXRoQ3JlZGVudGlhbHM6ci53aXRoQ3JlZGVudGlhbHN8fHRoaXMud2l0aENyZWRlbnRpYWxzLHRpbWVzdGFtcFJlcXVlc3RzOnIudGltZXN0YW1wUmVxdWVzdHN8fHRoaXMudGltZXN0YW1wUmVxdWVzdHMsdGltZXN0YW1wUGFyYW06ci50aW1lc3RhbXBQYXJhbXx8dGhpcy50aW1lc3RhbXBQYXJhbSxwb2xpY3lQb3J0OnIucG9saWN5UG9ydHx8dGhpcy5wb2xpY3lQb3J0LHBmeDpyLnBmeHx8dGhpcy5wZngsa2V5OnIua2V5fHx0aGlzLmtleSxwYXNzcGhyYXNlOnIucGFzc3BocmFzZXx8dGhpcy5wYXNzcGhyYXNlLGNlcnQ6ci5jZXJ0fHx0aGlzLmNlcnQsY2E6ci5jYXx8dGhpcy5jYSxjaXBoZXJzOnIuY2lwaGVyc3x8dGhpcy5jaXBoZXJzLHJlamVjdFVuYXV0aG9yaXplZDpyLnJlamVjdFVuYXV0aG9yaXplZHx8dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQscGVyTWVzc2FnZURlZmxhdGU6ci5wZXJNZXNzYWdlRGVmbGF0ZXx8dGhpcy5wZXJNZXNzYWdlRGVmbGF0ZSxleHRyYUhlYWRlcnM6ci5leHRyYUhlYWRlcnN8fHRoaXMuZXh0cmFIZWFkZXJzLGZvcmNlTm9kZTpyLmZvcmNlTm9kZXx8dGhpcy5mb3JjZU5vZGUsbG9jYWxBZGRyZXNzOnIubG9jYWxBZGRyZXNzfHx0aGlzLmxvY2FsQWRkcmVzcyxyZXF1ZXN0VGltZW91dDpyLnJlcXVlc3RUaW1lb3V0fHx0aGlzLnJlcXVlc3RUaW1lb3V0LHByb3RvY29sczpyLnByb3RvY29sc3x8dm9pZCAwLGlzUmVhY3ROYXRpdmU6dGhpcy5pc1JlYWN0TmF0aXZlfSl9O2Z1bmN0aW9uIHUoZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9bC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBlO2lmKHRoaXMucmVtZW1iZXJVcGdyYWRlJiZsLnByaW9yV2Vic29ja2V0U3VjY2VzcyYmdGhpcy50cmFuc3BvcnRzLmluZGV4T2YoYHdlYnNvY2tldGApIT09LTEpZT1gd2Vic29ja2V0YDtlbHNlIGlmKHRoaXMudHJhbnNwb3J0cy5sZW5ndGg9PT0wKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmVtaXQoYGVycm9yYCxgTm8gdHJhbnNwb3J0cyBhdmFpbGFibGVgKX0sMCk7cmV0dXJufWVsc2UgZT10aGlzLnRyYW5zcG9ydHNbMF07dGhpcy5yZWFkeVN0YXRlPWBvcGVuaW5nYDt0cnl7ZT10aGlzLmNyZWF0ZVRyYW5zcG9ydChlKX1jYXRjaHt0aGlzLnRyYW5zcG9ydHMuc2hpZnQoKSx0aGlzLm9wZW4oKTtyZXR1cm59ZS5vcGVuKCksdGhpcy5zZXRUcmFuc3BvcnQoZSl9LGwucHJvdG90eXBlLnNldFRyYW5zcG9ydD1mdW5jdGlvbihlKXtpKGBzZXR0aW5nIHRyYW5zcG9ydCAlc2AsZS5uYW1lKTt2YXIgdD10aGlzO3RoaXMudHJhbnNwb3J0JiYoaShgY2xlYXJpbmcgZXhpc3RpbmcgdHJhbnNwb3J0ICVzYCx0aGlzLnRyYW5zcG9ydC5uYW1lKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSksdGhpcy50cmFuc3BvcnQ9ZSxlLm9uKGBkcmFpbmAsZnVuY3Rpb24oKXt0Lm9uRHJhaW4oKX0pLm9uKGBwYWNrZXRgLGZ1bmN0aW9uKGUpe3Qub25QYWNrZXQoZSl9KS5vbihgZXJyb3JgLGZ1bmN0aW9uKGUpe3Qub25FcnJvcihlKX0pLm9uKGBjbG9zZWAsZnVuY3Rpb24oKXt0Lm9uQ2xvc2UoYHRyYW5zcG9ydCBjbG9zZWApfSl9LGwucHJvdG90eXBlLnByb2JlPWZ1bmN0aW9uKGUpe2koYHByb2JpbmcgdHJhbnNwb3J0ICIlcyJgLGUpO3ZhciB0PXRoaXMuY3JlYXRlVHJhbnNwb3J0KGUse3Byb2JlOjF9KSxuPSExLHI9dGhpcztsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz0hMTtmdW5jdGlvbiBhKCl7aWYoci5vbmx5QmluYXJ5VXBncmFkZXMpe3ZhciBhPSF0aGlzLnN1cHBvcnRzQmluYXJ5JiZyLnRyYW5zcG9ydC5zdXBwb3J0c0JpbmFyeTtufHw9YX1ufHwoaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgb3BlbmVkYCxlKSx0LnNlbmQoW3t0eXBlOmBwaW5nYCxkYXRhOmBwcm9iZWB9XSksdC5vbmNlKGBwYWNrZXRgLGZ1bmN0aW9uKGEpe2lmKCFuKWlmKGEudHlwZT09PWBwb25nYCYmYS5kYXRhPT09YHByb2JlYCl7aWYoaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgcG9uZ2AsZSksci51cGdyYWRpbmc9ITAsci5lbWl0KGB1cGdyYWRpbmdgLHQpLCF0KXJldHVybjtsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz10Lm5hbWU9PT1gd2Vic29ja2V0YCxpKGBwYXVzaW5nIGN1cnJlbnQgdHJhbnNwb3J0ICIlcyJgLHIudHJhbnNwb3J0Lm5hbWUpLHIudHJhbnNwb3J0LnBhdXNlKGZ1bmN0aW9uKCl7bnx8ci5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJihpKGBjaGFuZ2luZyB0cmFuc3BvcnQgYW5kIHNlbmRpbmcgdXBncmFkZSBwYWNrZXRgKSxmKCksci5zZXRUcmFuc3BvcnQodCksdC5zZW5kKFt7dHlwZTpgdXBncmFkZWB9XSksci5lbWl0KGB1cGdyYWRlYCx0KSx0PW51bGwsci51cGdyYWRpbmc9ITEsci5mbHVzaCgpKX0pfWVsc2V7aShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgZmFpbGVkYCxlKTt2YXIgbz1FcnJvcihgcHJvYmUgZXJyb3JgKTtvLnRyYW5zcG9ydD10Lm5hbWUsci5lbWl0KGB1cGdyYWRlRXJyb3JgLG8pfX0pKX1mdW5jdGlvbiBvKCl7bnx8KG49ITAsZigpLHQuY2xvc2UoKSx0PW51bGwpfWZ1bmN0aW9uIHMobil7dmFyIGE9RXJyb3IoYHByb2JlIGVycm9yOiBgK24pO2EudHJhbnNwb3J0PXQubmFtZSxvKCksaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgZmFpbGVkIGJlY2F1c2Ugb2YgZXJyb3I6ICVzYCxlLG4pLHIuZW1pdChgdXBncmFkZUVycm9yYCxhKX1mdW5jdGlvbiBjKCl7cyhgdHJhbnNwb3J0IGNsb3NlZGApfWZ1bmN0aW9uIHUoKXtzKGBzb2NrZXQgY2xvc2VkYCl9ZnVuY3Rpb24gZChlKXt0JiZlLm5hbWUhPT10Lm5hbWUmJihpKGAiJXMiIHdvcmtzIC0gYWJvcnRpbmcgIiVzImAsZS5uYW1lLHQubmFtZSksbygpKX1mdW5jdGlvbiBmKCl7dC5yZW1vdmVMaXN0ZW5lcihgb3BlbmAsYSksdC5yZW1vdmVMaXN0ZW5lcihgZXJyb3JgLHMpLHQucmVtb3ZlTGlzdGVuZXIoYGNsb3NlYCxjKSxyLnJlbW92ZUxpc3RlbmVyKGBjbG9zZWAsdSksci5yZW1vdmVMaXN0ZW5lcihgdXBncmFkaW5nYCxkKX10Lm9uY2UoYG9wZW5gLGEpLHQub25jZShgZXJyb3JgLHMpLHQub25jZShgY2xvc2VgLGMpLHRoaXMub25jZShgY2xvc2VgLHUpLHRoaXMub25jZShgdXBncmFkaW5nYCxkKSx0Lm9wZW4oKX0sbC5wcm90b3R5cGUub25PcGVuPWZ1bmN0aW9uKCl7aWYoaShgc29ja2V0IG9wZW5gKSx0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLGwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPXRoaXMudHJhbnNwb3J0Lm5hbWU9PT1gd2Vic29ja2V0YCx0aGlzLmVtaXQoYG9wZW5gKSx0aGlzLmZsdXNoKCksdGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gJiZ0aGlzLnVwZ3JhZGUmJnRoaXMudHJhbnNwb3J0LnBhdXNlKXtpKGBzdGFydGluZyB1cGdyYWRlIHByb2Jlc2ApO2Zvcih2YXIgZT0wLHQ9dGhpcy51cGdyYWRlcy5sZW5ndGg7ZTx0O2UrKyl0aGlzLnByb2JlKHRoaXMudXBncmFkZXNbZV0pfX0sbC5wcm90b3R5cGUub25QYWNrZXQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgfHx0aGlzLnJlYWR5U3RhdGU9PT1gb3BlbmB8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zaW5nYClzd2l0Y2goaShgc29ja2V0IHJlY2VpdmU6IHR5cGUgIiVzIiwgZGF0YSAiJXMiYCxlLnR5cGUsZS5kYXRhKSx0aGlzLmVtaXQoYHBhY2tldGAsZSksdGhpcy5lbWl0KGBoZWFydGJlYXRgKSxlLnR5cGUpe2Nhc2Vgb3BlbmA6dGhpcy5vbkhhbmRzaGFrZShKU09OLnBhcnNlKGUuZGF0YSkpO2JyZWFrO2Nhc2VgcG9uZ2A6dGhpcy5zZXRQaW5nKCksdGhpcy5lbWl0KGBwb25nYCk7YnJlYWs7Y2FzZWBlcnJvcmA6dmFyIHQ9RXJyb3IoYHNlcnZlciBlcnJvcmApO3QuY29kZT1lLmRhdGEsdGhpcy5vbkVycm9yKHQpO2JyZWFrO2Nhc2VgbWVzc2FnZWA6dGhpcy5lbWl0KGBkYXRhYCxlLmRhdGEpLHRoaXMuZW1pdChgbWVzc2FnZWAsZS5kYXRhKTticmVha31lbHNlIGkoYHBhY2tldCByZWNlaXZlZCB3aXRoIHNvY2tldCByZWFkeVN0YXRlICIlcyJgLHRoaXMucmVhZHlTdGF0ZSl9LGwucHJvdG90eXBlLm9uSGFuZHNoYWtlPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgaGFuZHNoYWtlYCxlKSx0aGlzLmlkPWUuc2lkLHRoaXMudHJhbnNwb3J0LnF1ZXJ5LnNpZD1lLnNpZCx0aGlzLnVwZ3JhZGVzPXRoaXMuZmlsdGVyVXBncmFkZXMoZS51cGdyYWRlcyksdGhpcy5waW5nSW50ZXJ2YWw9ZS5waW5nSW50ZXJ2YWwsdGhpcy5waW5nVGltZW91dD1lLnBpbmdUaW1lb3V0LHRoaXMub25PcGVuKCksdGhpcy5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJih0aGlzLnNldFBpbmcoKSx0aGlzLnJlbW92ZUxpc3RlbmVyKGBoZWFydGJlYXRgLHRoaXMub25IZWFydGJlYXQpLHRoaXMub24oYGhlYXJ0YmVhdGAsdGhpcy5vbkhlYXJ0YmVhdCkpfSxsLnByb3RvdHlwZS5vbkhlYXJ0YmVhdD1mdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKTt2YXIgdD10aGlzO3QucGluZ1RpbWVvdXRUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJnQub25DbG9zZShgcGluZyB0aW1lb3V0YCl9LGV8fHQucGluZ0ludGVydmFsK3QucGluZ1RpbWVvdXQpfSxsLnByb3RvdHlwZS5zZXRQaW5nPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztjbGVhclRpbWVvdXQoZS5waW5nSW50ZXJ2YWxUaW1lciksZS5waW5nSW50ZXJ2YWxUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aShgd3JpdGluZyBwaW5nIHBhY2tldCAtIGV4cGVjdGluZyBwb25nIHdpdGhpbiAlc21zYCxlLnBpbmdUaW1lb3V0KSxlLnBpbmcoKSxlLm9uSGVhcnRiZWF0KGUucGluZ1RpbWVvdXQpfSxlLnBpbmdJbnRlcnZhbCl9LGwucHJvdG90eXBlLnBpbmc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2VuZFBhY2tldChgcGluZ2AsZnVuY3Rpb24oKXtlLmVtaXQoYHBpbmdgKX0pfSxsLnByb3RvdHlwZS5vbkRyYWluPWZ1bmN0aW9uKCl7dGhpcy53cml0ZUJ1ZmZlci5zcGxpY2UoMCx0aGlzLnByZXZCdWZmZXJMZW4pLHRoaXMucHJldkJ1ZmZlckxlbj0wLHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoPT09MD90aGlzLmVtaXQoYGRyYWluYCk6dGhpcy5mbHVzaCgpfSxsLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZSE9PWBjbG9zZWRgJiZ0aGlzLnRyYW5zcG9ydC53cml0YWJsZSYmIXRoaXMudXBncmFkaW5nJiZ0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCYmKGkoYGZsdXNoaW5nICVkIHBhY2tldHMgaW4gc29ja2V0YCx0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCksdGhpcy50cmFuc3BvcnQuc2VuZCh0aGlzLndyaXRlQnVmZmVyKSx0aGlzLnByZXZCdWZmZXJMZW49dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgsdGhpcy5lbWl0KGBmbHVzaGApKX0sbC5wcm90b3R5cGUud3JpdGU9bC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuc2VuZFBhY2tldChgbWVzc2FnZWAsZSx0LG4pLHRoaXN9LGwucHJvdG90eXBlLnNlbmRQYWNrZXQ9ZnVuY3Rpb24oZSx0LG4scil7aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmAmJihyPXQsdD12b2lkIDApLHR5cGVvZiBuPT1gZnVuY3Rpb25gJiYocj1uLG49bnVsbCksISh0aGlzLnJlYWR5U3RhdGU9PT1gY2xvc2luZ2B8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zZWRgKSl7bnx8PXt9LG4uY29tcHJlc3M9ITEhPT1uLmNvbXByZXNzO3ZhciBpPXt0eXBlOmUsZGF0YTp0LG9wdGlvbnM6bn07dGhpcy5lbWl0KGBwYWNrZXRDcmVhdGVgLGkpLHRoaXMud3JpdGVCdWZmZXIucHVzaChpKSxyJiZ0aGlzLm9uY2UoYGZsdXNoYCxyKSx0aGlzLmZsdXNoKCl9fSxsLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe2lmKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuaW5nYHx8dGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gKXt0aGlzLnJlYWR5U3RhdGU9YGNsb3NpbmdgO3ZhciBlPXRoaXM7dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg/dGhpcy5vbmNlKGBkcmFpbmAsZnVuY3Rpb24oKXt0aGlzLnVwZ3JhZGluZz9yKCk6dCgpfSk6dGhpcy51cGdyYWRpbmc/cigpOnQoKX1mdW5jdGlvbiB0KCl7ZS5vbkNsb3NlKGBmb3JjZWQgY2xvc2VgKSxpKGBzb2NrZXQgY2xvc2luZyAtIHRlbGxpbmcgdHJhbnNwb3J0IHRvIGNsb3NlYCksZS50cmFuc3BvcnQuY2xvc2UoKX1mdW5jdGlvbiBuKCl7ZS5yZW1vdmVMaXN0ZW5lcihgdXBncmFkZWAsbiksZS5yZW1vdmVMaXN0ZW5lcihgdXBncmFkZUVycm9yYCxuKSx0KCl9ZnVuY3Rpb24gcigpe2Uub25jZShgdXBncmFkZWAsbiksZS5vbmNlKGB1cGdyYWRlRXJyb3JgLG4pfXJldHVybiB0aGlzfSxsLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKGUpe2koYHNvY2tldCBlcnJvciAlamAsZSksbC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9ITEsdGhpcy5lbWl0KGBlcnJvcmAsZSksdGhpcy5vbkNsb3NlKGB0cmFuc3BvcnQgZXJyb3JgLGUpfSxsLnByb3RvdHlwZS5vbkNsb3NlPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgfHx0aGlzLnJlYWR5U3RhdGU9PT1gb3BlbmB8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zaW5nYCl7aShgc29ja2V0IGNsb3NlIHdpdGggcmVhc29uOiAiJXMiYCxlKTt2YXIgbj10aGlzO2NsZWFyVGltZW91dCh0aGlzLnBpbmdJbnRlcnZhbFRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoYGNsb3NlYCksdGhpcy50cmFuc3BvcnQuY2xvc2UoKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSx0aGlzLnJlYWR5U3RhdGU9YGNsb3NlZGAsdGhpcy5pZD1udWxsLHRoaXMuZW1pdChgY2xvc2VgLGUsdCksbi53cml0ZUJ1ZmZlcj1bXSxuLnByZXZCdWZmZXJMZW49MH19LGwucHJvdG90eXBlLmZpbHRlclVwZ3JhZGVzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTAscj1lLmxlbmd0aDtuPHI7bisrKX5hKHRoaXMudHJhbnNwb3J0cyxlW25dKSYmdC5wdXNoKGVbbl0pO3JldHVybiB0fX0pKSxkYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz11YygpLHQuZXhwb3J0cy5wYXJzZXI9WnMoKX0pKSxmYz1zKCgoZSx0KT0+e3QhPT12b2lkIDAmJih0LmV4cG9ydHM9bik7ZnVuY3Rpb24gbihlKXtpZihlKXJldHVybiByKGUpfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0IGluIG4ucHJvdG90eXBlKWVbdF09bi5wcm90b3R5cGVbdF07cmV0dXJuIGV9bi5wcm90b3R5cGUub249bi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwodGhpcy5fY2FsbGJhY2tzW2AkYCtlXT10aGlzLl9jYWxsYmFja3NbYCRgK2VdfHxbXSkucHVzaCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMub2ZmKGUsbiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4uZm49dCx0aGlzLm9uKGUsbiksdGhpc30sbi5wcm90b3R5cGUub2ZmPW4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPW4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1uLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sYXJndW1lbnRzLmxlbmd0aD09MClyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXt9LHRoaXM7dmFyIG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXTtpZighbilyZXR1cm4gdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzO2Zvcih2YXIgcixpPTA7aTxuLmxlbmd0aDtpKyspaWYocj1uW2ldLHI9PT10fHxyLmZuPT09dCl7bi5zcGxpY2UoaSwxKTticmVha31yZXR1cm4gdGhpc30sbi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihlKXt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fTt2YXIgdD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxuPXRoaXMuX2NhbGxiYWNrc1tgJGArZV07aWYobil7bj1uLnNsaWNlKDApO2Zvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpOysrciluW3JdLmFwcGx5KHRoaXMsdCl9cmV0dXJuIHRoaXN9LG4ucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sdGhpcy5fY2FsbGJhY2tzW2AkYCtlXXx8W119LG4ucHJvdG90eXBlLmhhc0xpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMubGlzdGVuZXJzKGUpLmxlbmd0aH19KSkscGM9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bjtmdW5jdGlvbiBuKGUsdCl7dmFyIG49W107dHx8PTA7Zm9yKHZhciByPXR8fDA7cjxlLmxlbmd0aDtyKyspbltyLXRdPWVbcl07cmV0dXJuIG59fSkpLG1jPXMoKChlLHQpPT57dC5leHBvcnRzPW47ZnVuY3Rpb24gbihlLHQsbil7cmV0dXJuIGUub24odCxuKSx7ZGVzdHJveTpmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIodCxuKX19fX0pKSxoYz1zKCgoZSx0KT0+e3ZhciBuPVtdLnNsaWNlO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiB0PT1gc3RyaW5nYCYmKHQ9ZVt0XSksdHlwZW9mIHQhPWBmdW5jdGlvbmApdGhyb3cgRXJyb3IoYGJpbmQoKSByZXF1aXJlcyBhIGZ1bmN0aW9uYCk7dmFyIHI9bi5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLHIuY29uY2F0KG4uY2FsbChhcmd1bWVudHMpKSl9fX0pKSxnYz1zKChlPT57ZS5lbmNvZGU9ZnVuY3Rpb24oZSl7dmFyIHQ9YGA7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHQubGVuZ3RoJiYodCs9YCZgKSx0Kz1lbmNvZGVVUklDb21wb25lbnQobikrYD1gK2VuY29kZVVSSUNvbXBvbmVudChlW25dKSk7cmV0dXJuIHR9LGUuZGVjb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxuPWUuc3BsaXQoYCZgKSxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgYT1uW3JdLnNwbGl0KGA9YCk7dFtkZWNvZGVVUklDb21wb25lbnQoYVswXSldPWRlY29kZVVSSUNvbXBvbmVudChhWzFdKX1yZXR1cm4gdH19KSksX2M9cygoKGUsdCk9Pnt2YXIgbj1CcygpLHI9ZmMoKSxpPXBjKCksYT1tYygpLG89aGMoKSxzPWpzKCkoYHNvY2tldC5pby1jbGllbnQ6c29ja2V0YCksYz1nYygpLGw9R3MoKTt0LmV4cG9ydHM9ZT1mO3ZhciB1PXtjb25uZWN0OjEsY29ubmVjdF9lcnJvcjoxLGNvbm5lY3RfdGltZW91dDoxLGNvbm5lY3Rpbmc6MSxkaXNjb25uZWN0OjEsZXJyb3I6MSxyZWNvbm5lY3Q6MSxyZWNvbm5lY3RfYXR0ZW1wdDoxLHJlY29ubmVjdF9mYWlsZWQ6MSxyZWNvbm5lY3RfZXJyb3I6MSxyZWNvbm5lY3Rpbmc6MSxwaW5nOjEscG9uZzoxfSxkPXIucHJvdG90eXBlLmVtaXQ7ZnVuY3Rpb24gZihlLHQsbil7dGhpcy5pbz1lLHRoaXMubnNwPXQsdGhpcy5qc29uPXRoaXMsdGhpcy5pZHM9MCx0aGlzLmFja3M9e30sdGhpcy5yZWNlaXZlQnVmZmVyPVtdLHRoaXMuc2VuZEJ1ZmZlcj1bXSx0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLmRpc2Nvbm5lY3RlZD0hMCx0aGlzLmZsYWdzPXt9LG4mJm4ucXVlcnkmJih0aGlzLnF1ZXJ5PW4ucXVlcnkpLHRoaXMuaW8uYXV0b0Nvbm5lY3QmJnRoaXMub3BlbigpfXIoZi5wcm90b3R5cGUpLGYucHJvdG90eXBlLnN1YkV2ZW50cz1mdW5jdGlvbigpe2lmKCF0aGlzLnN1YnMpe3ZhciBlPXRoaXMuaW87dGhpcy5zdWJzPVthKGUsYG9wZW5gLG8odGhpcyxgb25vcGVuYCkpLGEoZSxgcGFja2V0YCxvKHRoaXMsYG9ucGFja2V0YCkpLGEoZSxgY2xvc2VgLG8odGhpcyxgb25jbG9zZWApKV19fSxmLnByb3RvdHlwZS5vcGVuPWYucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWQ/dGhpczoodGhpcy5zdWJFdmVudHMoKSx0aGlzLmlvLm9wZW4oKSx0aGlzLmlvLnJlYWR5U3RhdGU9PT1gb3BlbmAmJnRoaXMub25vcGVuKCksdGhpcy5lbWl0KGBjb25uZWN0aW5nYCksdGhpcyl9LGYucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXt2YXIgZT1pKGFyZ3VtZW50cyk7cmV0dXJuIGUudW5zaGlmdChgbWVzc2FnZWApLHRoaXMuZW1pdC5hcHBseSh0aGlzLGUpLHRoaXN9LGYucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24oZSl7aWYodS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpczt2YXIgdD1pKGFyZ3VtZW50cykscj17dHlwZToodGhpcy5mbGFncy5iaW5hcnk9PT12b2lkIDA/bCh0KTp0aGlzLmZsYWdzLmJpbmFyeSk/bi5CSU5BUllfRVZFTlQ6bi5FVkVOVCxkYXRhOnR9O3JldHVybiByLm9wdGlvbnM9e30sci5vcHRpb25zLmNvbXByZXNzPSF0aGlzLmZsYWdzfHwhMSE9PXRoaXMuZmxhZ3MuY29tcHJlc3MsdHlwZW9mIHRbdC5sZW5ndGgtMV09PWBmdW5jdGlvbmAmJihzKGBlbWl0dGluZyBwYWNrZXQgd2l0aCBhY2sgaWQgJWRgLHRoaXMuaWRzKSx0aGlzLmFja3NbdGhpcy5pZHNdPXQucG9wKCksci5pZD10aGlzLmlkcysrKSx0aGlzLmNvbm5lY3RlZD90aGlzLnBhY2tldChyKTp0aGlzLnNlbmRCdWZmZXIucHVzaChyKSx0aGlzLmZsYWdzPXt9LHRoaXN9LGYucHJvdG90eXBlLnBhY2tldD1mdW5jdGlvbihlKXtlLm5zcD10aGlzLm5zcCx0aGlzLmlvLnBhY2tldChlKX0sZi5wcm90b3R5cGUub25vcGVuPWZ1bmN0aW9uKCl7aWYocyhgdHJhbnNwb3J0IGlzIG9wZW4gLSBjb25uZWN0aW5nYCksdGhpcy5uc3AhPT1gL2ApaWYodGhpcy5xdWVyeSl7dmFyIGU9dHlwZW9mIHRoaXMucXVlcnk9PWBvYmplY3RgP2MuZW5jb2RlKHRoaXMucXVlcnkpOnRoaXMucXVlcnk7cyhgc2VuZGluZyBjb25uZWN0IHBhY2tldCB3aXRoIHF1ZXJ5ICVzYCxlKSx0aGlzLnBhY2tldCh7dHlwZTpuLkNPTk5FQ1QscXVlcnk6ZX0pfWVsc2UgdGhpcy5wYWNrZXQoe3R5cGU6bi5DT05ORUNUfSl9LGYucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7cyhgY2xvc2UgKCVzKWAsZSksdGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITAsZGVsZXRlIHRoaXMuaWQsdGhpcy5lbWl0KGBkaXNjb25uZWN0YCxlKX0sZi5wcm90b3R5cGUub25wYWNrZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uc3A9PT10aGlzLm5zcCxyPWUudHlwZT09PW4uRVJST1ImJmUubnNwPT09YC9gO2lmKCEoIXQmJiFyKSlzd2l0Y2goZS50eXBlKXtjYXNlIG4uQ09OTkVDVDp0aGlzLm9uY29ubmVjdCgpO2JyZWFrO2Nhc2Ugbi5FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBuLkJJTkFSWV9FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBuLkFDSzp0aGlzLm9uYWNrKGUpO2JyZWFrO2Nhc2Ugbi5CSU5BUllfQUNLOnRoaXMub25hY2soZSk7YnJlYWs7Y2FzZSBuLkRJU0NPTk5FQ1Q6dGhpcy5vbmRpc2Nvbm5lY3QoKTticmVhaztjYXNlIG4uRVJST1I6dGhpcy5lbWl0KGBlcnJvcmAsZS5kYXRhKTticmVha319LGYucHJvdG90eXBlLm9uZXZlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhfHxbXTtzKGBlbWl0dGluZyBldmVudCAlamAsdCksZS5pZCE9bnVsbCYmKHMoYGF0dGFjaGluZyBhY2sgY2FsbGJhY2sgdG8gZXZlbnRgKSx0LnB1c2godGhpcy5hY2soZS5pZCkpKSx0aGlzLmNvbm5lY3RlZD9kLmFwcGx5KHRoaXMsdCk6dGhpcy5yZWNlaXZlQnVmZmVyLnB1c2godCl9LGYucHJvdG90eXBlLmFjaz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXIpe3I9ITA7dmFyIGE9aShhcmd1bWVudHMpO3MoYHNlbmRpbmcgYWNrICVqYCxhKSx0LnBhY2tldCh7dHlwZTpsKGEpP24uQklOQVJZX0FDSzpuLkFDSyxpZDplLGRhdGE6YX0pfX19LGYucHJvdG90eXBlLm9uYWNrPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWNrc1tlLmlkXTt0eXBlb2YgdD09YGZ1bmN0aW9uYD8ocyhgY2FsbGluZyBhY2sgJXMgd2l0aCAlamAsZS5pZCxlLmRhdGEpLHQuYXBwbHkodGhpcyxlLmRhdGEpLGRlbGV0ZSB0aGlzLmFja3NbZS5pZF0pOnMoYGJhZCBhY2sgJXNgLGUuaWQpfSxmLnByb3RvdHlwZS5vbmNvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmNvbm5lY3RlZD0hMCx0aGlzLmRpc2Nvbm5lY3RlZD0hMSx0aGlzLmVtaXQoYGNvbm5lY3RgKSx0aGlzLmVtaXRCdWZmZXJlZCgpfSxmLnByb3RvdHlwZS5lbWl0QnVmZmVyZWQ9ZnVuY3Rpb24oKXt2YXIgZTtmb3IoZT0wO2U8dGhpcy5yZWNlaXZlQnVmZmVyLmxlbmd0aDtlKyspZC5hcHBseSh0aGlzLHRoaXMucmVjZWl2ZUJ1ZmZlcltlXSk7Zm9yKHRoaXMucmVjZWl2ZUJ1ZmZlcj1bXSxlPTA7ZTx0aGlzLnNlbmRCdWZmZXIubGVuZ3RoO2UrKyl0aGlzLnBhY2tldCh0aGlzLnNlbmRCdWZmZXJbZV0pO3RoaXMuc2VuZEJ1ZmZlcj1bXX0sZi5wcm90b3R5cGUub25kaXNjb25uZWN0PWZ1bmN0aW9uKCl7cyhgc2VydmVyIGRpc2Nvbm5lY3QgKCVzKWAsdGhpcy5uc3ApLHRoaXMuZGVzdHJveSgpLHRoaXMub25jbG9zZShgaW8gc2VydmVyIGRpc2Nvbm5lY3RgKX0sZi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2lmKHRoaXMuc3Vicyl7Zm9yKHZhciBlPTA7ZTx0aGlzLnN1YnMubGVuZ3RoO2UrKyl0aGlzLnN1YnNbZV0uZGVzdHJveSgpO3RoaXMuc3Vicz1udWxsfXRoaXMuaW8uZGVzdHJveSh0aGlzKX0sZi5wcm90b3R5cGUuY2xvc2U9Zi5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbm5lY3RlZCYmKHMoYHBlcmZvcm1pbmcgZGlzY29ubmVjdCAoJXMpYCx0aGlzLm5zcCksdGhpcy5wYWNrZXQoe3R5cGU6bi5ESVNDT05ORUNUfSkpLHRoaXMuZGVzdHJveSgpLHRoaXMuY29ubmVjdGVkJiZ0aGlzLm9uY2xvc2UoYGlvIGNsaWVudCBkaXNjb25uZWN0YCksdGhpc30sZi5wcm90b3R5cGUuY29tcHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmxhZ3MuY29tcHJlc3M9ZSx0aGlzfSxmLnByb3RvdHlwZS5iaW5hcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmxhZ3MuYmluYXJ5PWUsdGhpc319KSksdmM9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bjtmdW5jdGlvbiBuKGUpe2V8fD17fSx0aGlzLm1zPWUubWlufHwxMDAsdGhpcy5tYXg9ZS5tYXh8fDFlNCx0aGlzLmZhY3Rvcj1lLmZhY3Rvcnx8Mix0aGlzLmppdHRlcj1lLmppdHRlcj4wJiZlLmppdHRlcjw9MT9lLmppdHRlcjowLHRoaXMuYXR0ZW1wdHM9MH1uLnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubXMqdGhpcy5mYWN0b3IqKisgdGhpcy5hdHRlbXB0cysrO2lmKHRoaXMuaml0dGVyKXt2YXIgdD1NYXRoLnJhbmRvbSgpLG49TWF0aC5mbG9vcih0KnRoaXMuaml0dGVyKmUpO2U9TWF0aC5mbG9vcih0KjEwKSYxP2UrbjplLW59cmV0dXJuIE1hdGgubWluKGUsdGhpcy5tYXgpfDB9LG4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5hdHRlbXB0cz0wfSxuLnByb3RvdHlwZS5zZXRNaW49ZnVuY3Rpb24oZSl7dGhpcy5tcz1lfSxuLnByb3RvdHlwZS5zZXRNYXg9ZnVuY3Rpb24oZSl7dGhpcy5tYXg9ZX0sbi5wcm90b3R5cGUuc2V0Sml0dGVyPWZ1bmN0aW9uKGUpe3RoaXMuaml0dGVyPWV9fSkpLHljPXMoKChlLHQpPT57dmFyIG49ZGMoKSxyPV9jKCksaT1mYygpLGE9QnMoKSxvPW1jKCkscz1oYygpLGM9anMoKShgc29ja2V0LmlvLWNsaWVudDptYW5hZ2VyYCksbD1jYygpLHU9dmMoKSxkPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWY7ZnVuY3Rpb24gZihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGYpKXJldHVybiBuZXcgZihlLHQpO2UmJnR5cGVvZiBlPT1gb2JqZWN0YCYmKHQ9ZSxlPXZvaWQgMCksdHx8PXt9LHQucGF0aD10LnBhdGh8fGAvc29ja2V0LmlvYCx0aGlzLm5zcHM9e30sdGhpcy5zdWJzPVtdLHRoaXMub3B0cz10LHRoaXMucmVjb25uZWN0aW9uKHQucmVjb25uZWN0aW9uIT09ITEpLHRoaXMucmVjb25uZWN0aW9uQXR0ZW1wdHModC5yZWNvbm5lY3Rpb25BdHRlbXB0c3x8MS8wKSx0aGlzLnJlY29ubmVjdGlvbkRlbGF5KHQucmVjb25uZWN0aW9uRGVsYXl8fDFlMyksdGhpcy5yZWNvbm5lY3Rpb25EZWxheU1heCh0LnJlY29ubmVjdGlvbkRlbGF5TWF4fHw1ZTMpLHRoaXMucmFuZG9taXphdGlvbkZhY3Rvcih0LnJhbmRvbWl6YXRpb25GYWN0b3J8fC41KSx0aGlzLmJhY2tvZmY9bmV3IHUoe21pbjp0aGlzLnJlY29ubmVjdGlvbkRlbGF5KCksbWF4OnRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgoKSxqaXR0ZXI6dGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKCl9KSx0aGlzLnRpbWVvdXQodC50aW1lb3V0PT1udWxsPzJlNDp0LnRpbWVvdXQpLHRoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLnVyaT1lLHRoaXMuY29ubmVjdGluZz1bXSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5lbmNvZGluZz0hMSx0aGlzLnBhY2tldEJ1ZmZlcj1bXTt2YXIgbj10LnBhcnNlcnx8YTt0aGlzLmVuY29kZXI9bmV3IG4uRW5jb2Rlcix0aGlzLmRlY29kZXI9bmV3IG4uRGVjb2Rlcix0aGlzLmF1dG9Db25uZWN0PXQuYXV0b0Nvbm5lY3QhPT0hMSx0aGlzLmF1dG9Db25uZWN0JiZ0aGlzLm9wZW4oKX1mLnByb3RvdHlwZS5lbWl0QWxsPWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuZW1pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5uc3BzKWQuY2FsbCh0aGlzLm5zcHMsZSkmJnRoaXMubnNwc1tlXS5lbWl0LmFwcGx5KHRoaXMubnNwc1tlXSxhcmd1bWVudHMpfSxmLnByb3RvdHlwZS51cGRhdGVTb2NrZXRJZHM9ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5uc3BzKWQuY2FsbCh0aGlzLm5zcHMsZSkmJih0aGlzLm5zcHNbZV0uaWQ9dGhpcy5nZW5lcmF0ZUlkKGUpKX0sZi5wcm90b3R5cGUuZ2VuZXJhdGVJZD1mdW5jdGlvbihlKXtyZXR1cm4oZT09PWAvYD9gYDplK2AjYCkrdGhpcy5lbmdpbmUuaWR9LGkoZi5wcm90b3R5cGUpLGYucHJvdG90eXBlLnJlY29ubmVjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uPSEhZSx0aGlzKTp0aGlzLl9yZWNvbm5lY3Rpb259LGYucHJvdG90eXBlLnJlY29ubmVjdGlvbkF0dGVtcHRzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0cz1lLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzfSxmLnByb3RvdHlwZS5yZWNvbm5lY3Rpb25EZWxheT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uRGVsYXk9ZSx0aGlzLmJhY2tvZmYmJnRoaXMuYmFja29mZi5zZXRNaW4oZSksdGhpcyk6dGhpcy5fcmVjb25uZWN0aW9uRGVsYXl9LGYucHJvdG90eXBlLnJhbmRvbWl6YXRpb25GYWN0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JhbmRvbWl6YXRpb25GYWN0b3I9ZSx0aGlzLmJhY2tvZmYmJnRoaXMuYmFja29mZi5zZXRKaXR0ZXIoZSksdGhpcyk6dGhpcy5fcmFuZG9taXphdGlvbkZhY3Rvcn0sZi5wcm90b3R5cGUucmVjb25uZWN0aW9uRGVsYXlNYXg9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4PWUsdGhpcy5iYWNrb2ZmJiZ0aGlzLmJhY2tvZmYuc2V0TWF4KGUpLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4fSxmLnByb3RvdHlwZS50aW1lb3V0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl90aW1lb3V0PWUsdGhpcyk6dGhpcy5fdGltZW91dH0sZi5wcm90b3R5cGUubWF5YmVSZWNvbm5lY3RPbk9wZW49ZnVuY3Rpb24oKXshdGhpcy5yZWNvbm5lY3RpbmcmJnRoaXMuX3JlY29ubmVjdGlvbiYmdGhpcy5iYWNrb2ZmLmF0dGVtcHRzPT09MCYmdGhpcy5yZWNvbm5lY3QoKX0sZi5wcm90b3R5cGUub3Blbj1mLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKGUsdCl7aWYoYyhgcmVhZHlTdGF0ZSAlc2AsdGhpcy5yZWFkeVN0YXRlKSx+dGhpcy5yZWFkeVN0YXRlLmluZGV4T2YoYG9wZW5gKSlyZXR1cm4gdGhpcztjKGBvcGVuaW5nICVzYCx0aGlzLnVyaSksdGhpcy5lbmdpbmU9bih0aGlzLnVyaSx0aGlzLm9wdHMpO3ZhciByPXRoaXMuZW5naW5lLGk9dGhpczt0aGlzLnJlYWR5U3RhdGU9YG9wZW5pbmdgLHRoaXMuc2tpcFJlY29ubmVjdD0hMTt2YXIgYT1vKHIsYG9wZW5gLGZ1bmN0aW9uKCl7aS5vbm9wZW4oKSxlJiZlKCl9KSxzPW8ocixgZXJyb3JgLGZ1bmN0aW9uKHQpe2lmKGMoYGNvbm5lY3RfZXJyb3JgKSxpLmNsZWFudXAoKSxpLnJlYWR5U3RhdGU9YGNsb3NlZGAsaS5lbWl0QWxsKGBjb25uZWN0X2Vycm9yYCx0KSxlKXt2YXIgbj1FcnJvcihgQ29ubmVjdGlvbiBlcnJvcmApO24uZGF0YT10LGUobil9ZWxzZSBpLm1heWJlUmVjb25uZWN0T25PcGVuKCl9KTtpZighMSE9PXRoaXMuX3RpbWVvdXQpe3ZhciBsPXRoaXMuX3RpbWVvdXQ7YyhgY29ubmVjdCBhdHRlbXB0IHdpbGwgdGltZW91dCBhZnRlciAlZGAsbCk7dmFyIHU9c2V0VGltZW91dChmdW5jdGlvbigpe2MoYGNvbm5lY3QgYXR0ZW1wdCB0aW1lZCBvdXQgYWZ0ZXIgJWRgLGwpLGEuZGVzdHJveSgpLHIuY2xvc2UoKSxyLmVtaXQoYGVycm9yYCxgdGltZW91dGApLGkuZW1pdEFsbChgY29ubmVjdF90aW1lb3V0YCxsKX0sbCk7dGhpcy5zdWJzLnB1c2goe2Rlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodSl9fSl9cmV0dXJuIHRoaXMuc3Vicy5wdXNoKGEpLHRoaXMuc3Vicy5wdXNoKHMpLHRoaXN9LGYucHJvdG90eXBlLm9ub3Blbj1mdW5jdGlvbigpe2MoYG9wZW5gKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLHRoaXMuZW1pdChgb3BlbmApO3ZhciBlPXRoaXMuZW5naW5lO3RoaXMuc3Vicy5wdXNoKG8oZSxgZGF0YWAscyh0aGlzLGBvbmRhdGFgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgcGluZ2Ascyh0aGlzLGBvbnBpbmdgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgcG9uZ2Ascyh0aGlzLGBvbnBvbmdgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgZXJyb3JgLHModGhpcyxgb25lcnJvcmApKSksdGhpcy5zdWJzLnB1c2gobyhlLGBjbG9zZWAscyh0aGlzLGBvbmNsb3NlYCkpKSx0aGlzLnN1YnMucHVzaChvKHRoaXMuZGVjb2RlcixgZGVjb2RlZGAscyh0aGlzLGBvbmRlY29kZWRgKSkpfSxmLnByb3RvdHlwZS5vbnBpbmc9ZnVuY3Rpb24oKXt0aGlzLmxhc3RQaW5nPW5ldyBEYXRlLHRoaXMuZW1pdEFsbChgcGluZ2ApfSxmLnByb3RvdHlwZS5vbnBvbmc9ZnVuY3Rpb24oKXt0aGlzLmVtaXRBbGwoYHBvbmdgLG5ldyBEYXRlLXRoaXMubGFzdFBpbmcpfSxmLnByb3RvdHlwZS5vbmRhdGE9ZnVuY3Rpb24oZSl7dGhpcy5kZWNvZGVyLmFkZChlKX0sZi5wcm90b3R5cGUub25kZWNvZGVkPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgcGFja2V0YCxlKX0sZi5wcm90b3R5cGUub25lcnJvcj1mdW5jdGlvbihlKXtjKGBlcnJvcmAsZSksdGhpcy5lbWl0QWxsKGBlcnJvcmAsZSl9LGYucHJvdG90eXBlLnNvY2tldD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMubnNwc1tlXTtpZighbil7bj1uZXcgcih0aGlzLGUsdCksdGhpcy5uc3BzW2VdPW47dmFyIGk9dGhpcztuLm9uKGBjb25uZWN0aW5nYCxhKSxuLm9uKGBjb25uZWN0YCxmdW5jdGlvbigpe24uaWQ9aS5nZW5lcmF0ZUlkKGUpfSksdGhpcy5hdXRvQ29ubmVjdCYmYSgpfWZ1bmN0aW9uIGEoKXt+bChpLmNvbm5lY3Rpbmcsbil8fGkuY29ubmVjdGluZy5wdXNoKG4pfXJldHVybiBufSxmLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKGUpe3ZhciB0PWwodGhpcy5jb25uZWN0aW5nLGUpO350JiZ0aGlzLmNvbm5lY3Rpbmcuc3BsaWNlKHQsMSksIXRoaXMuY29ubmVjdGluZy5sZW5ndGgmJnRoaXMuY2xvc2UoKX0sZi5wcm90b3R5cGUucGFja2V0PWZ1bmN0aW9uKGUpe2MoYHdyaXRpbmcgcGFja2V0ICVqYCxlKTt2YXIgdD10aGlzO2UucXVlcnkmJmUudHlwZT09PTAmJihlLm5zcCs9YD9gK2UucXVlcnkpLHQuZW5jb2Rpbmc/dC5wYWNrZXRCdWZmZXIucHVzaChlKToodC5lbmNvZGluZz0hMCx0aGlzLmVuY29kZXIuZW5jb2RlKGUsZnVuY3Rpb24obil7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspdC5lbmdpbmUud3JpdGUobltyXSxlLm9wdGlvbnMpO3QuZW5jb2Rpbmc9ITEsdC5wcm9jZXNzUGFja2V0UXVldWUoKX0pKX0sZi5wcm90b3R5cGUucHJvY2Vzc1BhY2tldFF1ZXVlPWZ1bmN0aW9uKCl7aWYodGhpcy5wYWNrZXRCdWZmZXIubGVuZ3RoPjAmJiF0aGlzLmVuY29kaW5nKXt2YXIgZT10aGlzLnBhY2tldEJ1ZmZlci5zaGlmdCgpO3RoaXMucGFja2V0KGUpfX0sZi5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbigpe2MoYGNsZWFudXBgKTtmb3IodmFyIGU9dGhpcy5zdWJzLmxlbmd0aCx0PTA7dDxlO3QrKyl0aGlzLnN1YnMuc2hpZnQoKS5kZXN0cm95KCk7dGhpcy5wYWNrZXRCdWZmZXI9W10sdGhpcy5lbmNvZGluZz0hMSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5kZWNvZGVyLmRlc3Ryb3koKX0sZi5wcm90b3R5cGUuY2xvc2U9Zi5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe2MoYGRpc2Nvbm5lY3RgKSx0aGlzLnNraXBSZWNvbm5lY3Q9ITAsdGhpcy5yZWNvbm5lY3Rpbmc9ITEsdGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgJiZ0aGlzLmNsZWFudXAoKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLnJlYWR5U3RhdGU9YGNsb3NlZGAsdGhpcy5lbmdpbmUmJnRoaXMuZW5naW5lLmNsb3NlKCl9LGYucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7Yyhgb25jbG9zZWApLHRoaXMuY2xlYW51cCgpLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLmVtaXQoYGNsb3NlYCxlKSx0aGlzLl9yZWNvbm5lY3Rpb24mJiF0aGlzLnNraXBSZWNvbm5lY3QmJnRoaXMucmVjb25uZWN0KCl9LGYucHJvdG90eXBlLnJlY29ubmVjdD1mdW5jdGlvbigpe2lmKHRoaXMucmVjb25uZWN0aW5nfHx0aGlzLnNraXBSZWNvbm5lY3QpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcztpZih0aGlzLmJhY2tvZmYuYXR0ZW1wdHM+PXRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzKWMoYHJlY29ubmVjdCBmYWlsZWRgKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLmVtaXRBbGwoYHJlY29ubmVjdF9mYWlsZWRgKSx0aGlzLnJlY29ubmVjdGluZz0hMTtlbHNle3ZhciB0PXRoaXMuYmFja29mZi5kdXJhdGlvbigpO2MoYHdpbGwgd2FpdCAlZG1zIGJlZm9yZSByZWNvbm5lY3QgYXR0ZW1wdGAsdCksdGhpcy5yZWNvbm5lY3Rpbmc9ITA7dmFyIG49c2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2tpcFJlY29ubmVjdHx8KGMoYGF0dGVtcHRpbmcgcmVjb25uZWN0YCksZS5lbWl0QWxsKGByZWNvbm5lY3RfYXR0ZW1wdGAsZS5iYWNrb2ZmLmF0dGVtcHRzKSxlLmVtaXRBbGwoYHJlY29ubmVjdGluZ2AsZS5iYWNrb2ZmLmF0dGVtcHRzKSwhZS5za2lwUmVjb25uZWN0JiZlLm9wZW4oZnVuY3Rpb24odCl7dD8oYyhgcmVjb25uZWN0IGF0dGVtcHQgZXJyb3JgKSxlLnJlY29ubmVjdGluZz0hMSxlLnJlY29ubmVjdCgpLGUuZW1pdEFsbChgcmVjb25uZWN0X2Vycm9yYCx0LmRhdGEpKTooYyhgcmVjb25uZWN0IHN1Y2Nlc3NgKSxlLm9ucmVjb25uZWN0KCkpfSkpfSx0KTt0aGlzLnN1YnMucHVzaCh7ZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dChuKX19KX19LGYucHJvdG90eXBlLm9ucmVjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iYWNrb2ZmLmF0dGVtcHRzO3RoaXMucmVjb25uZWN0aW5nPSExLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMudXBkYXRlU29ja2V0SWRzKCksdGhpcy5lbWl0QWxsKGByZWNvbm5lY3RgLGUpfX0pKSxiYz1zKCgoZSx0KT0+e3ZhciBuPU1zKCkscj1CcygpLGk9eWMoKSxhPWpzKCkoYHNvY2tldC5pby1jbGllbnRgKTt0LmV4cG9ydHM9ZT1zO3ZhciBvPWUubWFuYWdlcnM9e307ZnVuY3Rpb24gcyhlLHQpe3R5cGVvZiBlPT1gb2JqZWN0YCYmKHQ9ZSxlPXZvaWQgMCksdHx8PXt9O3ZhciByPW4oZSkscz1yLnNvdXJjZSxjPXIuaWQsbD1yLnBhdGgsdT1vW2NdJiZsIGluIG9bY10ubnNwcyxkPXQuZm9yY2VOZXd8fHRbYGZvcmNlIG5ldyBjb25uZWN0aW9uYF18fCExPT09dC5tdWx0aXBsZXh8fHUsZjtyZXR1cm4gZD8oYShgaWdub3Jpbmcgc29ja2V0IGNhY2hlIGZvciAlc2AscyksZj1pKHMsdCkpOihvW2NdfHwoYShgbmV3IGlvIGluc3RhbmNlIGZvciAlc2Ascyksb1tjXT1pKHMsdCkpLGY9b1tjXSksci5xdWVyeSYmIXQucXVlcnkmJih0LnF1ZXJ5PXIucXVlcnkpLGYuc29ja2V0KHIucGF0aCx0KX1lLnByb3RvY29sPXIucHJvdG9jb2wsZS5jb25uZWN0PXMsZS5NYW5hZ2VyPXljKCksZS5Tb2NrZXQ9X2MoKX0pKSx4Yz1jKHtkZWZhdWx0OigpPT5TY30pO2Z1bmN0aW9uIFNjKGUsdCl7cmV0dXJuIHR8fD17fSxuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe3ZhciBpPW5ldyBYTUxIdHRwUmVxdWVzdCxhPVtdLG89W10scz17fSxjPWZ1bmN0aW9uKCl7cmV0dXJue29rOihpLnN0YXR1cy8xMDB8MCk9PTIsc3RhdHVzVGV4dDppLnN0YXR1c1RleHQsc3RhdHVzOmkuc3RhdHVzLHVybDppLnJlc3BvbnNlVVJMLHRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkucmVzcG9uc2VUZXh0KX0sanNvbjpmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoaS5yZXNwb25zZVRleHQpLnRoZW4oSlNPTi5wYXJzZSl9LGJsb2I6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFtpLnJlc3BvbnNlXSkpfSxjbG9uZTpjLGhlYWRlcnM6e2tleXM6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZW50cmllczpmdW5jdGlvbigpe3JldHVybiBvfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHNbZS50b0xvd2VyQ2FzZSgpXX0saGFzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKClpbiBzfX19fTtmb3IodmFyIGwgaW4gaS5vcGVuKHQubWV0aG9kfHxgZ2V0YCxlLCEwKSxpLm9ubG9hZD1mdW5jdGlvbigpe2kuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkucmVwbGFjZSgvXiguKj8pOlteXFNcbl0qKFtcc1xTXSo/KSQvZ20sZnVuY3Rpb24oZSx0LG4pe2EucHVzaCh0PXQudG9Mb3dlckNhc2UoKSksby5wdXNoKFt0LG5dKSxzW3RdPXNbdF0/c1t0XStgLGArbjpufSksbihjKCkpfSxpLm9uZXJyb3I9cixpLndpdGhDcmVkZW50aWFscz10LmNyZWRlbnRpYWxzPT1gaW5jbHVkZWAsdC5oZWFkZXJzKWkuc2V0UmVxdWVzdEhlYWRlcihsLHQuaGVhZGVyc1tsXSk7aS5zZW5kKHQuYm9keXx8bnVsbCl9KX12YXIgQ2M9bygoKCk9Pnt9KSksd2M9cygoKGUsdCk9Pnt0LmV4cG9ydHM9c2VsZi5mZXRjaHx8KHNlbGYuZmV0Y2g9KENjKCksZCh4YykpLmRlZmF1bHR8fChDYygpLGQoeGMpKSl9KSksVGM9cygoZT0+e3ZhciB0PWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLmZldGNoQmFsYW5jZXJDb25maWc9dm9pZCAwO3ZhciBuPURzKCkscj10KHdjKCkpO2UuZmV0Y2hCYWxhbmNlckNvbmZpZz1mdW5jdGlvbihlKXtyZXR1cm4oMCxuLmRlYnVnKShgdXNpbmcgYmFsYW5jZXIgJHtlfSB0byBnZXQgd2Vic29ja2V0IHVybGApLCgwLHIuZGVmYXVsdCkoYCR7ZX1gKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGU/LnVybCYmZT8udG9rZW4/KCgwLG4uZGVidWcpKGBiYWxhbmNlciByZXR1cm5zIHVybCAke2U/LnVybH0gYW5kIHRva2VuICR7ZT8udG9rZW59YCksZSk6KCgwLG4uZGVidWcpKGBiYWxhbmNlciByZXR1cm5zIGludmFsaWQgcmVzcG9uc2VgKSxudWxsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybigwLG4uZGVidWcpKGBmYWlsZWQgdG8gcmVzb2x2ZSB1cmw6ICR7ZS5tZXNzYWdlfWApLG51bGx9KX19KSksRWM9cygoZT0+e3ZhciB0PWUmJmUuX19leHRlbmRzfHwoZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbih0LG4pe3JldHVybiBlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKX0sZSh0LG4pfTtyZXR1cm4gZnVuY3Rpb24odCxuKXtpZih0eXBlb2YgbiE9YGZ1bmN0aW9uYCYmbiE9PW51bGwpdGhyb3cgVHlwZUVycm9yKGBDbGFzcyBleHRlbmRzIHZhbHVlIGArU3RyaW5nKG4pK2AgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbGApO2UodCxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fXQucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KSgpLG49ZSYmZS5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihlLHQsbil7aWYobnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciByPTAsaT10Lmxlbmd0aCxhO3I8aTtyKyspKGF8fCEociBpbiB0KSkmJihhfHw9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLHIpLGFbcl09dFtyXSk7cmV0dXJuIGUuY29uY2F0KGF8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0scj1lJiZlLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRNb2NrPXZvaWQgMDt2YXIgaT1EcygpO2UuU29ja2V0TW9jaz1mdW5jdGlvbihlKXt0KHIsZSk7ZnVuY3Rpb24gcih0KXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4ub3B0aW9ucz10LG4uaWQ9YG1vY2tgLG4uY29ubmVjdGVkPSExLG4uZGlzY29ubmVjdGVkPSEwLG4uYmluYXJ5VHlwZT1gYmxvYmAsbn1yZXR1cm4gci5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuKDAsaS5kZWJ1ZykoYFNvY2tldElPTW9jazogY29ubmVjdGApLHRoaXMub25jZShgdmlzaXRvci5jb25uZWN0YCxmdW5jdGlvbih0LG4pe24obnVsbCxlLm9wdGlvbnMuY29ubmVjdERhdGEpfSksdGhpcy5jb25uZWN0ZWQ9ITAsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KGBjb25uZWN0YCksdGhpc30sci5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLmRlYnVnKShgU29ja2V0SU9Nb2NrOiBkaXNjb25uZWN0YCksdGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KGBkaXNjb25uZWN0YCxgaW8gY2xpZW50IGRpc2Nvbm5lY3RgKSx0aGlzfSxyLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKHQpe3ZhciByPVsuLi5hcmd1bWVudHNdLnNsaWNlKDEpO3JldHVybiBpLmRlYnVnLmFwcGx5KHZvaWQgMCxuKFtgU29ja2V0SU9Nb2NrOiBlbWl0YF0sciwhMSkpLCh0PT09YGNvbm5lY3RgfHx0PT09YGRpc2Nvbm5lY3RgfHx0PT09YHZpc2l0b3IuY29ubmVjdGApJiZlLnByb3RvdHlwZS5lbWl0LmFwcGx5KHRoaXMsbihbdF0sciwhMSkpLHRoaXN9LHIucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXt2YXIgZT1bLi4uYXJndW1lbnRzXTtyZXR1cm4gdGhpcy5lbWl0LmFwcGx5KHRoaXMsbihbZVswXV0sZS5zbGljZSgxKSwhMSkpfSxyLnByb3RvdHlwZS5jb21wcmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BlbigpfSxyLnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvc2UoKX0sci5wcm90b3R5cGUuaGFzTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxpc3RlbmVyQ291bnQoZSk9PT0wfSxyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIoZSx0KSx0aGlzfSxyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucmVtb3ZlTGlzdGVuZXIoZSx0KSx0aGlzfSxyfShyKE9zKCkpLmRlZmF1bHQpfSkpLERjPXMoKGU9Pnt2YXIgdD1lJiZlLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbj1lJiZlLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPW4pO3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTsoIWl8fChgZ2V0YGluIGk/IXQuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSkpJiYoaT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLGkpfSk6KGZ1bmN0aW9uKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPW4pLGVbcl09dFtuXX0pKSxyPWUmJmUuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKXIhPT1gZGVmYXVsdGAmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmbih0LGUscil9LGk9ZSYmZS5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pfXJldHVybiBuZXcobnx8PVByb21pc2UpKGZ1bmN0aW9uKG4sYSl7ZnVuY3Rpb24gbyhlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKGUpe2EoZSl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gYyhlKXtlLmRvbmU/bihlLnZhbHVlKTppKGUudmFsdWUpLnRoZW4obyxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KX0sYT1lJiZlLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihhWzBdJjEpdGhyb3cgYVsxXTtyZXR1cm4gYVsxXX0sdHJ5czpbXSxvcHM6W119LHIsaSxhLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT1gZnVuY3Rpb25gP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PXMoMCksby50aHJvdz1zKDEpLG8ucmV0dXJuPXMoMiksdHlwZW9mIFN5bWJvbD09YGZ1bmN0aW9uYCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYyhbZSx0XSl9fWZ1bmN0aW9uIGMocyl7aWYocil0aHJvdyBUeXBlRXJyb3IoYEdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5gKTtmb3IoO28mJihvPTAsc1swXSYmKG49MCkpLG47KXRyeXtpZihyPTEsaSYmKGE9c1swXSYyP2kucmV0dXJuOnNbMF0/aS50aHJvd3x8KChhPWkucmV0dXJuKSYmYS5jYWxsKGkpLDApOmkubmV4dCkmJiEoYT1hLmNhbGwoaSxzWzFdKSkuZG9uZSlyZXR1cm4gYTtzd2l0Y2goaT0wLGEmJihzPVtzWzBdJjIsYS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6YT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gbi5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTpuLmxhYmVsKyssaT1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPW4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKChhPW4udHJ5cywhKGE9YS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXSkpJiYoc1swXT09PTZ8fHNbMF09PT0yKSl7bj0wO2NvbnRpbnVlfWlmKHNbMF09PT0zJiYoIWF8fHNbMV0+YVswXSYmc1sxXTxhWzNdKSl7bi5sYWJlbD1zWzFdO2JyZWFrfWlmKHNbMF09PT02JiZuLmxhYmVsPGFbMV0pe24ubGFiZWw9YVsxXSxhPXM7YnJlYWt9aWYoYSYmbi5sYWJlbDxhWzJdKXtuLmxhYmVsPWFbMl0sbi5vcHMucHVzaChzKTticmVha31hWzJdJiZuLm9wcy5wb3AoKSxuLnRyeXMucG9wKCk7Y29udGludWV9cz10LmNhbGwoZSxuKX1jYXRjaChlKXtzPVs2LGVdLGk9MH1maW5hbGx5e3I9YT0wfWlmKHNbMF0mNSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fX0sbz1lJiZlLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRFcnJvcj12b2lkIDA7dmFyIHM9RHMoKSxjPW8oT3MoKSksbD1vKGJjKCkpLHU9VGMoKSxkPXt0cmFuc3BvcnRzOltgd2Vic29ja2V0YF0scGF0aDpgL3NvY2tldGAscmVjb25uZWN0aW9uOiEwLHJlY29ubmVjdGlvbkRlbGF5OjFlMyxyZWNvbm5lY3Rpb25EZWxheU1heDo1ZTMscmVjb25uZWN0aW9uQXR0ZW1wdHM6MS8wfTtlLmRlZmF1bHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5mb3JjZVJlY29ubmVjdD0hMSx0aGlzLmlkZW50aXR5PW51bGwsdGhpcy5jb25uZWN0aW9uPW51bGwsdGhpcy5jb25uZWN0Q2FsbGJhY2s9bnVsbCx0aGlzLmRpc2Nvbm5lY3RDYWxsYmFjaz1udWxsLHRoaXMuaW5pdERhdGE9bnVsbCx0aGlzLmludGVybmFsUmVjb25uZWN0aW9uPSExLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpbmc9ITEsdGhpcy5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQ9MCx0aGlzLmVtaXR0ZXI9bmV3IGMuZGVmYXVsdCx0aGlzLnNlbmRCdWZmZXI9W10sdGhpcy5vcHRpb25zLm9wdGlvbnM9dCh0KHQoe30sZCksdGhpcy5vcHRpb25zLm9wdGlvbnMpLHthdXRvQ29ubmVjdDohMX0pfXJldHVybiBlLnByb3RvdHlwZS5pbml0Q29ubmVjdGlvbj1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBhKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDppZih0aGlzLmNvbm5lY3Rpb24pdGhyb3cgRXJyb3IoYENvbm5lY3Rpb24gYWxyZWFkeSBleGlzdHNgKTtyZXR1cm4gdGhpcy5vcHRpb25zLnNvY2tldD8oKDAscy5kZWJ1ZykoYHVzaW5nIHNvY2tldCAke3RoaXMub3B0aW9ucy5zb2NrZXQuaWR9YCksdGhpcy5pbnRlcm5hbFJlY29ubmVjdGlvbj0hMSx0aGlzLnNldENvbm5lY3Rpb24odGhpcy5vcHRpb25zLnNvY2tldCksWzMsNF0pOlszLDFdO2Nhc2UgMTpyZXR1cm4gdGhpcy5vcHRpb25zLmJhbGFuY2VyVXJsP1s0LCgwLHUuZmV0Y2hCYWxhbmNlckNvbmZpZykodGhpcy5vcHRpb25zLmJhbGFuY2VyVXJsKV06WzMsM107Y2FzZSAyOnJldHVybiBlPW4uc2VudCgpLCgwLHMuZGVidWcpKGBjcmVhdGluZyBzb2NrZXQgdG8gJHtlLnVybH0gd2l0aCB0b2tlbiAke2UudG9rZW59YCksdGhpcy5pbnRlcm5hbFJlY29ubmVjdGlvbj0hMCx0aGlzLnNldENvbm5lY3Rpb24oKDAsbC5kZWZhdWx0KShlLnVybCx0KHQoe30sdGhpcy5vcHRpb25zLm9wdGlvbnMpLHthdXRvQ29ubmVjdDohMSxyZWNvbm5lY3Rpb246ITEscXVlcnk6e3Rva2VuOmUudG9rZW59fSkpLCEwKSxbMyw0XTtjYXNlIDM6aWYodGhpcy5vcHRpb25zLnVybCkoMCxzLmRlYnVnKShgY3JlYXRpbmcgc29ja2V0IHRvICR7dGhpcy5vcHRpb25zLnVybH1gKSx0aGlzLmludGVybmFsUmVjb25uZWN0aW9uPSExLHRoaXMuc2V0Q29ubmVjdGlvbigoMCxsLmRlZmF1bHQpKHRoaXMub3B0aW9ucy51cmwsdCh0KHt9LHRoaXMub3B0aW9ucy5vcHRpb25zKSx7YXV0b0Nvbm5lY3Q6ITF9KSkpO2Vsc2UgdGhyb3cgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIHVybGApO24ubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LGUucHJvdG90eXBlLnNldENvbm5lY3Rpb249ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO249PT12b2lkIDAmJihuPSExKSx0aGlzLmNvbm5lY3Rpb249ZSx0aGlzLmZvcmNlUmVjb25uZWN0PSExLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpb249bixlLm9uKGBjb25uZWN0X2Vycm9yYCxmdW5jdGlvbihlKXtyLmludGVybmFsUmVjb25uZWN0aW9uJiYoci5jb25uZWN0Q2FsbGJhY2s9bnVsbCwoMCxzLmRlYnVnKShgY29ubmVjdGlvbiB3YXMgbm90IHJlY29ubmVjdGVkYCksci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdF9lcnJvcmAsZSksci5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uQXR0ZW1wdHM+ci5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQrMT9yLnJlY29ubmVjdChyLmludGVybmFsUmVjb25uZWN0aW5nQXR0ZW1wdCsxKTpyLmVtaXR0ZXIuZW1pdChgcmVjb25uZWN0X2ZhaWxlZGAsci5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQpKX0pLGUub24oYGNvbm5lY3RgLGZ1bmN0aW9uKCl7KDAscy5kZWJ1ZykoYHNvY2tldCB3YXMgY29ubmVjdGVkYCksci5pbml0aWFsaXplZD0hMSxyLmludGVybmFsUmVjb25uZWN0aW5nPygoMCxzLmRlYnVnKShgY29ubmVjdGlvbiBpcyByZWNvbm5lY3RlZGApLHIuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RgKSxyLmludGVybmFsUmVjb25uZWN0aW5nPSExLHIuaW50ZXJuYWxSZWNvbm5lY3RpbmdBdHRlbXB0PTApOnIuZW1pdHRlci5lbWl0KGBjb25uZWN0YCksci5pbml0aWFsaXplKCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmRlYnVnKShgc29ja2V0IHdhcyBpbml0aWFsaXplZGApLHIub25Jbml0aWFsaXplZChlKSxyLmNvbm5lY3RDYWxsYmFjayYmPShyLmNvbm5lY3RDYWxsYmFjayhudWxsLGUpLG51bGwpLGV9KS5jYXRjaChmdW5jdGlvbihlKXsoMCxzLmRlYnVnKShgc29ja2V0IHdhcyBub3QgaW5pdGlhbGl6ZWQgYCx0KHt9LGUpKSxyLm9uSW5pdGlhbGl6ZUVycm9yKGUpLHIuY29ubmVjdENhbGxiYWNrJiY9KHIuY29ubmVjdENhbGxiYWNrKGUpLG51bGwpfSl9KSxlLm9uKGBkaXNjb25uZWN0YCxmdW5jdGlvbihlKXsoMCxzLmRlYnVnKShgc29ja2V0IHdhcyBkaXNjb25uZWN0ZWQgcmVhc29uPScke2V9J2ApLHIuaW5pdGlhbGl6ZWQ9ITEsKCFyLmludGVybmFsUmVjb25uZWN0aW5nfHxyLmludGVybmFsUmVjb25uZWN0aW5nQXR0ZW1wdD09PTEpJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5lbWl0dGVyLmVtaXQoYGRpc2Nvbm5lY3RgLGUpLHIuZGlzY29ubmVjdENhbGxiYWNrJiY9KHIuZGlzY29ubmVjdENhbGxiYWNrKCksbnVsbCl9LDEwMCksci5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uJiZyLmludGVybmFsUmVjb25uZWN0aW9uJiYhci5pbnRlcm5hbFJlY29ubmVjdGluZyYmKHIuZm9yY2VSZWNvbm5lY3R8fGUhPT1gaW8gc2VydmVyIGRpc2Nvbm5lY3RgKSYmci5yZWNvbm5lY3QoKX0pLGUub24oYHJlY29ubmVjdGluZ2AsZnVuY3Rpb24oZSl7ci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdGluZ2AsZSl9KSxlLm9uKGByZWNvbm5lY3RgLGZ1bmN0aW9uKCl7ci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdGApfSksZS5vbihgcmVjb25uZWN0X2F0dGVtcHRgLGZ1bmN0aW9uKGUpe3IuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfYXR0ZW1wdGAsZSl9KSxlLm9uKGByZWNvbm5lY3RfZXJyb3JgLGZ1bmN0aW9uKGUpe3IuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfZXJyb3JgLGUpfSksZS5vbihgcmVjb25uZWN0X2ZhaWxlZGAsZnVuY3Rpb24oKXtyLmVtaXR0ZXIuZW1pdChgcmVjb25uZWN0X2ZhaWxlZGApfSksZS5vbihgZm9yY2VfcmVjb25uZWN0YCxmdW5jdGlvbigpeygwLHMuZGVidWcpKGByZWNlaXZlZCBldmVudCBmb3JjZV9yZWNvbm5lY3QsIHNldHRpbmcgZmxhZyBmb3JjZVJlY29ubmVjdCA9IHRydWVgKSxyLmZvcmNlUmVjb25uZWN0PSEwfSl9LGUucHJvdG90eXBlLmdldENvbm5lY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0aW9ufSxlLnByb3RvdHlwZS5pc0Nvbm5lY3RlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbm5lY3Rpb24/LmNvbm5lY3RlZHx8ITF9LGUucHJvdG90eXBlLmlzSW5pdGlhbGl6ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0aWFsaXplZH0sZS5wcm90b3R5cGUuZ2V0SW5pdERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0RGF0YX0sZS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGEodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbm5lY3Rpb24/WzMsMl06WzQsdGhpcy5pbml0Q29ubmVjdGlvbigpXTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2UuaW5pdGlhbGl6ZWQ/dChlLmluaXREYXRhKTooKDAscy5kZWJ1ZykoYHN0YXJ0aW5nIGNvbm5lY3RpbmdgKSxlLmNvbm5lY3RDYWxsYmFjaz0oMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pLGUuY29ubmVjdGlvbi5vcGVuKCkpfSldfX0pfSl9LGUucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4peyFlLmNvbm5lY3Rpb258fGUuY29ubmVjdGlvbi5kaXNjb25uZWN0ZWQ/KGUuY29ubmVjdGlvbj1udWxsLHQoKSk6KCgwLHMuZGVidWcpKGBzdGFydGluZyBkaXNjb25uZWN0aW5nYCksZS5kaXNjb25uZWN0Q2FsbGJhY2s9KDAscy5jcmVhdGVDYWxsYmFjaykodCxuKSxlLmNvbm5lY3Rpb24uY2xvc2UoKSxlLmNvbm5lY3Rpb249bnVsbCl9KX0sZS5wcm90b3R5cGUucmVjb25uZWN0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGU9PT12b2lkIDAmJihlPTEpLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpbmc9ITAsdGhpcy5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQ9ZSx0aGlzLmRpc2Nvbm5lY3QoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0Lm9wdGlvbnMub3B0aW9ucy5yZWNvbm5lY3Rpb25EZWxheU1heC10Lm9wdGlvbnMub3B0aW9ucy5yZWNvbm5lY3Rpb25EZWxheSkrdC5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uRGVsYXkpO3JldHVybigwLHMuZGVidWcpKGBjb25uZWN0aW9uIHdpbGwgcmVjb25uZWN0IGluICR7bn1tc2ApLHQuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RpbmdgLGUpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZSxuKX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybigwLHMuZGVidWcpKGBjb25uZWN0aW9uIGlzIHN0YXJ0aW5nIHJlY29ubmVjdGApLHQuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfYXR0ZW1wdGAsZSksdC5jb25uZWN0KCl9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtlKHt9KX0pfSxlLnByb3RvdHlwZS5vbkluaXRpYWxpemVkPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbml0RGF0YT1lLCgwLHMuZGVidWcpKGBlbWl0IGluaXRpYWxpemVkYCksdGhpcy5lbWl0dGVyLmVtaXQoYGluaXRpYWxpemVkYCxlKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodC5zZW5kQnVmZmVyLmxlbmd0aD4wKXsoMCxzLmRlYnVnKShgc2VuZGluZyBidWZmZXJlZCAke3Quc2VuZEJ1ZmZlci5sZW5ndGh9IGV2ZW50c2ApO2Zvcih2YXIgZT0wO2U8dC5zZW5kQnVmZmVyLmxlbmd0aDtlKyspe3ZhciBuPXQuc2VuZEJ1ZmZlcltlXTt0LmNvbm5lY3Rpb24uZW1pdChuLm5hbWUsbi5kYXRhLG4uY2FsbGJhY2spfXQuc2VuZEJ1ZmZlcj1bXX19LDEpKX0sZS5wcm90b3R5cGUub25Jbml0aWFsaXplRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5kaXNjb25uZWN0KCksKDAscy5kZWJ1ZykoYGVtaXQgaW5pdGlhbGl6ZV9lcnJvcmAsdCh7fSxlKSksdGhpcy5lbWl0dGVyLmVtaXQoYGluaXRpYWxpemVfZXJyb3JgLGUpfSxlLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUsdCxuKXt0aGlzLmluaXRpYWxpemVkP3RoaXMuY29ubmVjdGlvbi5lbWl0KGUsdCxuKTp0aGlzLnNlbmRCdWZmZXIucHVzaCh7bmFtZTplLGRhdGE6dCxjYWxsYmFjazpufSl9LGUucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbihlLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uY2UoZSx0KSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4oZT10aGlzLmVtaXR0ZXIpLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseShlLHQpLHRoaXN9LGV9KCk7dmFyIGY9RHMoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgU29ja2V0RXJyb3JgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmLlNvY2tldEVycm9yfX0pLHIoRWMoKSxlKX0pKSxPYz1zKChlPT57dmFyIHQ9ZSYmZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT1gZnVuY3Rpb25gJiZuIT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcobikrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCksbj1lJiZlLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBuPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scj1lJiZlLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LG4scil7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIG4/ZTpuZXcgbihmdW5jdGlvbih0KXt0KGUpfSl9cmV0dXJuIG5ldyhufHw9UHJvbWlzZSkoZnVuY3Rpb24obixhKXtmdW5jdGlvbiBvKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gcyhlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaChlKXthKGUpfX1mdW5jdGlvbiBjKGUpe2UuZG9uZT9uKGUudmFsdWUpOmkoZS52YWx1ZSkudGhlbihvLHMpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pfSxpPWUmJmUuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG49e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKGFbMF0mMSl0aHJvdyBhWzFdO3JldHVybiBhWzFdfSx0cnlzOltdLG9wczpbXX0scixpLGEsbz1PYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3I9PWBmdW5jdGlvbmA/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBvLm5leHQ9cygwKSxvLnRocm93PXMoMSksby5yZXR1cm49cygyKSx0eXBlb2YgU3ltYm9sPT1gZnVuY3Rpb25gJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBjKFtlLHRdKX19ZnVuY3Rpb24gYyhzKXtpZihyKXRocm93IFR5cGVFcnJvcihgR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLmApO2Zvcig7byYmKG89MCxzWzBdJiYobj0wKSksbjspdHJ5e2lmKHI9MSxpJiYoYT1zWzBdJjI/aS5yZXR1cm46c1swXT9pLnRocm93fHwoKGE9aS5yZXR1cm4pJiZhLmNhbGwoaSksMCk6aS5uZXh0KSYmIShhPWEuY2FsbChpLHNbMV0pKS5kb25lKXJldHVybiBhO3N3aXRjaChpPTAsYSYmKHM9W3NbMF0mMixhLnZhbHVlXSksc1swXSl7Y2FzZSAwOmNhc2UgMTphPXM7YnJlYWs7Y2FzZSA0OnJldHVybiBuLmxhYmVsKysse3ZhbHVlOnNbMV0sZG9uZTohMX07Y2FzZSA1Om4ubGFiZWwrKyxpPXNbMV0scz1bMF07Y29udGludWU7Y2FzZSA3OnM9bi5vcHMucG9wKCksbi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoKGE9bi50cnlzLCEoYT1hLmxlbmd0aD4wJiZhW2EubGVuZ3RoLTFdKSkmJihzWzBdPT09Nnx8c1swXT09PTIpKXtuPTA7Y29udGludWV9aWYoc1swXT09PTMmJighYXx8c1sxXT5hWzBdJiZzWzFdPGFbM10pKXtuLmxhYmVsPXNbMV07YnJlYWt9aWYoc1swXT09PTYmJm4ubGFiZWw8YVsxXSl7bi5sYWJlbD1hWzFdLGE9czticmVha31pZihhJiZuLmxhYmVsPGFbMl0pe24ubGFiZWw9YVsyXSxuLm9wcy5wdXNoKHMpO2JyZWFrfWFbMl0mJm4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZX1zPXQuY2FsbChlLG4pfWNhdGNoKGUpe3M9WzYsZV0saT0wfWZpbmFsbHl7cj1hPTB9aWYoc1swXSY1KXRocm93IHNbMV07cmV0dXJue3ZhbHVlOnNbMF0/c1sxXTp2b2lkIDAsZG9uZTohMH19fSxhPWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLldlYnNvY2tldFZpc2l0b3JDbGllbnQ9dm9pZCAwO3ZhciBvPWEoRGMoKSkscz1EcygpLGM9ZnVuY3Rpb24oZSl7dChhLGUpO2Z1bmN0aW9uIGEodCl7dmFyIG49ZS5jYWxsKHRoaXMsdC5jb25uZWN0aW9uKXx8dGhpcztyZXR1cm4gbi5zZXJ2ZXJWZXJzaW9uPW51bGwsbi51cGRhdGVkVmFsdWVzPXt9LG4uY29ubmVjdERhdGE9dC5kYXRhLG4uaWRlbnRpdHk9bnVsbCxufXJldHVybiBhLnByb3RvdHlwZS5zZXRDb25uZWN0aW9uPWZ1bmN0aW9uKHQpe2UucHJvdG90eXBlLnNldENvbm5lY3Rpb24uY2FsbCh0aGlzLHQpLHQub24oYHNlcnZlci5lcnJvcmAsKDAscy5ib3VuZCkodGhpcyxgb25TZXJ2ZXJFcnJvcmApKSx0Lm9uKGBhY2NvdW50LnVwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBhY2NvdW50LnVwZGF0ZWRgKSksdC5vbihgYWdlbnQudXBkYXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGFnZW50LnVwZGF0ZWRgKSksdC5vbihgYWdlbnQuc3RhdHVzX3VwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBhZ2VudC5zdGF0dXNfdXBkYXRlZGApKSx0Lm9uKGBhZ2VudC5yZW1vdmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgYWdlbnQucmVtb3ZlZGApKSx0Lm9uKGB2aXNpdG9yLnVwZGF0ZWRgLCgwLHMuYm91bmQpKHRoaXMsYG9uVmlzaXRvclVwZGF0ZWRgKSksdC5vbihgY2hhdC51cGRhdGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC51cGRhdGVkYCkpLHQub24oYGNoYXQuYWdlbnRfam9pbmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF9qb2luZWRgKSksdC5vbihgY2hhdC5hZ2VudF9hc3NpZ25lZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuYWdlbnRfYXNzaWduZWRgKSksdC5vbihgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCkpLHQub24oYGNoYXQuYWdlbnRfbGVmdGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuYWdlbnRfbGVmdGApKSx0Lm9uKGBjaGF0Lm9wZW5lZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQub3BlbmVkYCkpLHQub24oYGNoYXQuc2VydmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5zZXJ2ZWRgKSksdC5vbihgY2hhdC5jbG9zZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0LmNsb3NlZGApKSx0Lm9uKGBjaGF0LnZpc2l0b3JfY2xvc2VkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC52aXNpdG9yX2Nsb3NlZGApKSx0Lm9uKGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgKSksdC5vbihgY2hhdC5tZXNzYWdlX3VwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0Lm1lc3NhZ2VfdXBkYXRlZGApKSx0Lm9uKGBjaGF0Lm1lc3NhZ2VfZGVsZXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQubWVzc2FnZV9kZWxldGVkYCkpLHQub24oYGNoYXQuYWdlbnRfdHlwaW5nYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF90eXBpbmdgKSksdC5vbihgY2hhdC5yYXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQucmF0ZWRgKSksdC5vbihgY2hhdC5yYXRpbmdfY2FuY2VsbGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5yYXRpbmdfY2FuY2VsbGVkYCkpLHQub24oYGNoYXQucmF0aW5nX3N1Z2dlc3RlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQucmF0aW5nX3N1Z2dlc3RlZGApKSx0Lm9uKGBjaGF0LmNvbnRhY3RfcmVhZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuY29udGFjdF9yZWFkYCkpLHQub24oYGNoYXQuZGVsZXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuZGVsZXRlZGApKSx0Lm9uKGBjaGF0LnRpY2tldF9mb3JtX2ZpbmlzaGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQudGlja2V0X2Zvcm1fZmluaXNoYCkpLHQub24oYGNoYXQudHJhbnNjcmlwdF9wZGZgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0LnRyYW5zY3JpcHRfcGRmYCkpLHQub24oYGNvbnRhY3QuYWNxdWlyZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjb250YWN0LmFjcXVpcmVkYCkpLHQub24oYGlkZW50aXR5LnN0YXR1c191cGRhdGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgaWRlbnRpdHkuc3RhdHVzX3VwZGF0ZWRgKSl9LGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbihlLHQpLHRoaXN9LGEucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uY2UoZSx0KSx0aGlzfSxhLnByb3RvdHlwZS5nZXRJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlkZW50aXR5P3RoaXMuaWRlbnRpdHkuaWQ6bnVsbH0sYS5wcm90b3R5cGUuZ2V0SWRlbnRpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZGVudGl0eX0sYS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiBlLnByb3RvdHlwZS5jb25uZWN0LmNhbGwodGhpcyl9LGEucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cyx2b2lkIDAsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ITEpLGkodGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybiB0P1s0LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7bi5zZW5kKGB2aXNpdG9yLmxvZ291dGAse30sKDAscy5jcmVhdGVDYWxsYmFjaykoZSx0KSl9KV06WzMsMl07Y2FzZSAxOnIuc2VudCgpLHIubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsZS5wcm90b3R5cGUuZGlzY29ubmVjdC5jYWxsKHRoaXMpXX19KX0pfSxhLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGU9PT12b2lkIDAmJihlPXt9KSx0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLGUpdGhpcy5pZGVudGl0eVt0XT1lW3RdLHRoaXMudXBkYXRlZFZhbHVlc1t0XT1lW3RdO3RoaXMuc2F2ZVZpc2l0b3JWYWx1ZXMoKX0sYS5wcm90b3R5cGUuYXV0aGVudGljYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYHZpc2l0b3IuYXV0aGVudGljYXRlYCx7dmFsdWVzOmV9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLm5vdGlmeT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7cmV0dXJuIHQ9PT12b2lkIDAmJih0PW51bGwpLHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24ocixpKXtuLnNlbmQoYHZpc2l0b3Iubm90aWZ5YCx7bmFtZTplLHZhbHVlOnR9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKHIsaSkpfSl9LGEucHJvdG90eXBlLmNoYXRSZWFkPWZ1bmN0aW9uKCl7dGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSx0aGlzLnNlbmQoYGNoYXQucmVhZGAsbnVsbCl9LGEucHJvdG90eXBlLmNoYXRUeXBpbmc9ZnVuY3Rpb24oZSx0KXt0PT09dm9pZCAwJiYodD1udWxsKSx0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLHRoaXMuc2VuZChgY2hhdC50eXBpbmdgLHt0eXBpbmc6e2lzOmUsdGV4dDp0fX0pfSxhLnByb3RvdHlwZS5jaGF0TWVzc2FnZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7dC5zZW5kKGBjaGF0Lm1lc3NhZ2VgLGUsKDAscy5jcmVhdGVDYWxsYmFjaykobixyKSl9KX0sYS5wcm90b3R5cGUuY2hhdENsb3NlPWZ1bmN0aW9uKGUpe2U9PT12b2lkIDAmJihlPW51bGwpLHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksdGhpcy5zZW5kKGBjaGF0LmNsb3NlYCx7dHlwZTplfSl9LGEucHJvdG90eXBlLmNoYXRVcGxvYWRJbml0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSxuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2Uuc2VuZChgY2hhdC51cGxvYWRfaW5pdGAsbnVsbCwoMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pKX0pfSxhLnByb3RvdHlwZS5jaGF0VXBsb2FkRmluaXNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQudXBsb2FkX2ZpbmlzaGAse3VwbG9hZFRva2VuOmV9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLmNoYXRUcmFuc2NyaXB0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSxuZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe24uc2VuZChgY2hhdC50cmFuc2NyaXB0YCx7ZW1haWw6ZSxsYW5nOnR9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKHIsaSkpfSl9LGEucHJvdG90eXBlLmNoYXRUaWNrZXRGb3JtRmluaXNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQudGlja2V0X2Zvcm1fZmluaXNoYCxlLCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLmNoYXRSYXRlSW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLnNlbmQoYGNoYXQucmF0ZV9pbml0YCxudWxsLCgwLHMuY3JlYXRlQ2FsbGJhY2spKHQsbikpfSl9LGEucHJvdG90eXBlLmNoYXRSYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQucmF0ZWAsZSwoMCxzLmNyZWF0ZUNhbGxiYWNrKShuLHIpKX0pfSxhLnByb3RvdHlwZS5jaGF0VHJhbnNjcmlwdFBkZj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLnNlbmQoYGNoYXQudHJhbnNjcmlwdF9wZGZgLG51bGwsKDAscy5jcmVhdGVDYWxsYmFjaykodCxuKSl9KX0sYS5wcm90b3R5cGUubGlua09wZW5lZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7dC5zZW5kKGBjaGF0Lmxpbmtfb3BlbmVkYCxlLCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLnZpc2l0b3JDb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PW4oe3ZlcnNpb246YS5DTElFTlRfVkVSU0lPTn0sdGhpcy5jb25uZWN0RGF0YSk7Zm9yKHZhciByIGluIHRoaXMudXBkYXRlZFZhbHVlcyl0W3JdPXRoaXMudXBkYXRlZFZhbHVlc1tyXTtpZih0aGlzLnVwZGF0ZWRWYWx1ZXM9e30sdGhpcy5pZGVudGl0eSlmb3IodmFyIHIgaW4gdGhpcy5pZGVudGl0eSlbYGJhbm5lZEF0YCxgY2hhdElkYCxgc3RhdHVzYF0uaW5jbHVkZXMocil8fCh0W3JdPXRoaXMuaWRlbnRpdHlbcl0pO3JldHVybiB0aGlzLmVtaXR0ZXIuZW1pdChgaW5pdGlhbGl6ZWAsdCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXtlLmNvbm5lY3Rpb24uZW1pdChgdmlzaXRvci5jb25uZWN0YCx0LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLnZpc2l0b3JEaXNjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLmNvbm5lY3Rpb24uZW1pdChgdmlzaXRvci5kaXNjb25uZWN0YCx7fSwoMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pKX0pfSxhLnByb3RvdHlwZS5vblZpc2l0b3JVcGRhdGVkPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlLmNoYW5nZXMpYS5pZGVudGl0eVByb3BlcnRpZXMuaW5jbHVkZXMobikmJih0aGlzLmlkZW50aXR5JiYodGhpcy5pZGVudGl0eVtuXT1lLmNoYW5nZXNbbl0pLHRbbl09ZS5jaGFuZ2VzW25dKTtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5sZW5ndGg+MCYmdGhpcy5lbWl0dGVyLmVtaXQoYHZpc2l0b3IudXBkYXRlZGAsdCl9LGEucHJvdG90eXBlLm9uU2VydmVyRXJyb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9KDAscy5jcmVhdGVTb2NrZXRFcnJvcikoZSk7dGhpcy5lbWl0dGVyLmVtaXQoYGVycm9yYCx0KX0sYS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMudmlzaXRvckNvbm5lY3QoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLnNlcnZlclZlcnNpb249dC5zZXJ2ZXJWZXJzaW9uLGUuaWRlbnRpdHk9bihuKHt9LHQudmlzaXRvcikse3ZhcmlhYmxlczpuKHt9LHQudmlzaXRvci52YXJpYWJsZXMpfSksdH0pfSxhLnByb3RvdHlwZS5zYXZlVmlzaXRvclZhbHVlcz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5pbml0aWFsaXplZCYmc2V0VGltZW91dChmdW5jdGlvbigpe2lmKCEoIWUuaW5pdGlhbGl6ZWR8fE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUudXBkYXRlZFZhbHVlcykubGVuZ3RoPT09MCkpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlLnVwZGF0ZWRWYWx1ZXMpdFtuXT1lLnVwZGF0ZWRWYWx1ZXNbbl07ZS5zZW5kKGB2aXNpdG9yLnVwZGF0ZWAse3ZhbHVlczp0fSksZS51cGRhdGVkVmFsdWVzPXt9fX0sMSl9LGEucHJvdG90eXBlLmNoZWNrU2VydmVyVmVyc2lvbj1mdW5jdGlvbigpe2lmKHRoaXMuc2VydmVyVmVyc2lvbj09PW51bGwpdGhyb3cgRXJyb3IoYENsaWVudCBub3QgeWV0IGNvbm5lY3RlZCB0byBzZXJ2ZXJgKX0sYS5DTElFTlRfVkVSU0lPTj02LGEuaWRlbnRpdHlQcm9wZXJ0aWVzPVtgaWRgLGBuYW1lYCxgZW1haWxgLGBwaG9uZWAsYGNoYXRJZGAsYHZhcmlhYmxlc2AsYGxhbmdgLGBncm91cGAsYGJhbm5lZEF0YCxgdHJpZ2dlcmFibGVgLGB2aXNpdHNgLGBnZHByQXBwcm92ZWRgXSxhfShvLmRlZmF1bHQpO2UuV2Vic29ja2V0VmlzaXRvckNsaWVudD1jLChmdW5jdGlvbihlKXsoZnVuY3Rpb24oZSl7ZS5XaWRnZXRPcGVuPWB3aWRnZXRfb3BlbmAsZS5XaWRnZXRTaG93PWB3aWRnZXRfc2hvd2AsZS5WaXNpdG9yQWN0aXZlPWB2aXNpdG9yX2FjdGl2ZWAsZS5WaXNpdG9ySW5hY3RpdmU9YHZpc2l0b3JfaW5hY3RpdmVgfSkoZS5FdmVudE5hbWV8fD17fSl9KShjfHwoZS5XZWJzb2NrZXRWaXNpdG9yQ2xpZW50PWM9e30pKX0pKSxrYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pfSkpLEFjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5SYXRpbmdUYXJnZXQ9dm9pZCAwO3ZhciB0OyhmdW5jdGlvbihlKXtlLkFnZW50PWBhZ2VudGAsZS5BaT1gYWlgfSkodHx8KGUuUmF0aW5nVGFyZ2V0PXQ9e30pKX0pKSxqYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuTWVzc2FnZURlbGl2ZXJ5RmFpbFJlYXNvbj1lLk1lc3NhZ2VEZWxpdmVyeVN0YXR1cz1lLkFnZW50RGV2aWNlUGxhdGZvcm09ZS5BZ2VudERldmljZVR5cGU9ZS5WaXNpdG9yU3RhdHVzPWUuQ2hhdFJlYWRJbmZvVHlwZT1lLkNoYXRTdGF0dXM9ZS5BZ2VudFN0YXR1cz1lLkFjY291bnRTdGF0dXM9dm9pZCAwLGUuQWNjb3VudFN0YXR1cz17T25saW5lOmBvbmxpbmVgLE9mZmxpbmU6YG9mZmxpbmVgLE9mZmxpbmVXaXRoQUk6YG9mZmxpbmVXaXRoQWlgfSxlLkFnZW50U3RhdHVzPXtPbmxpbmU6YG9ubGluZWAsT2ZmbGluZTpgb2ZmbGluZWB9LGUuQ2hhdFN0YXR1cz17UGVuZGluZzpgcGVuZGluZ2AsT3Blbjpgb3BlbmAsQ2xvc2VkOmBjbG9zZWRgLFNlcnZlZDpgc2VydmVkYH0sZS5DaGF0UmVhZEluZm9UeXBlPXtBZ2VudDpgYWdlbnRgLENvbnRhY3Q6YGNvbnRhY3RgfSxlLlZpc2l0b3JTdGF0dXM9e0FjdGl2ZTpgYWN0aXZlYCxDbGlja2VkOmBjbGlja2VkYCxJZGxlOmBpZGxlYCxTZXJ2ZWQ6YHNlcnZlZGAsVW5zZXJ2ZWQ6YHVuc2VydmVkYCxUcmlnZ2VyZWQ6YHRyaWdnZXJlZGB9LGUuQWdlbnREZXZpY2VUeXBlPXtCcm93c2VyOmBicm93c2VyYCxNb2JpbGU6YG1vYmlsZWAsWG1wcDpgeG1wcGAsT3RoZXI6YG90aGVyYH0sZS5BZ2VudERldmljZVBsYXRmb3JtPXtJT1M6YGlvc2AsQU5EUk9JRDpgYW5kcm9pZGB9LGUuTWVzc2FnZURlbGl2ZXJ5U3RhdHVzPXtPazpgb2tgLFBlcm1hbmVudEZhaWw6YHBlcm1hbmVudF9mYWlsYCxUZW1wb3JhcnlGYWlsOmB0ZW1wb3JhcnlfZmFpbGAsQ29tcGxhaW5lZDpgY29tcGxhaW5lZGAsU2Vlbjpgc2VlbmB9LGUuTWVzc2FnZURlbGl2ZXJ5RmFpbFJlYXNvbj17RmFjZWJvb2syNGhXaW5kb3c6YGZhY2Vib29rLm91dHNpZGVfYWxsb3dlZF93aW5kb3dgLEluc3RhZ3JhbUV4Y2VlZGVkRmlsZVNpemU6YGluc3RhZ3JhbS5leGNlZWRlZF9maWxlX3NpemVgLEluc3RhZ3JhbVVua25vd246YGluc3RhZ3JhbS51bmtub3duYCxJbnN0YWdyYW1VbnN1cHBvcnRlZEZpbGVUeXBlOmBpbnN0YWdyYW0udW5zdXBwb3J0ZWRfZmlsZV90eXBlYCxXaGF0c2FwcFVuc3VwcG9ydGVkRmlsZTpgd2hhdHNhcHAudW5zdXBwb3J0ZWRfZmlsZV90eXBlYCxXaGF0c2FwcFVua25vd246YHdoYXRzYXBwLnVua25vd25gfX0pKSxNYz1zKChlPT57dmFyIHQ9ZSYmZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFpfHwoYGdldGBpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX0pOihmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKSxlW3JdPXRbbl19KSksbj1lJiZlLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIgaW4gZSlyIT09YGRlZmF1bHRgJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJnQobixlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRFcnJvcj1lLmRlZmF1bHQ9dm9pZCAwO3ZhciByPU9jKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYGRlZmF1bHRgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLldlYnNvY2tldFZpc2l0b3JDbGllbnR9fSksbihPYygpLGUpLG4oa2MoKSxlKSxuKEFjKCksZSk7dmFyIGk9RHMoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgU29ja2V0RXJyb3JgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLlNvY2tldEVycm9yfX0pLG4oamMoKSxlKX0pKSxOYz1PKG51bGwpLFBjPU8oITEpLEZjPU8oW10pLEljPWU9PntGYy51cGRhdGUodD0+Wy4uLnQsZV0pfSxMYz0oKT0+e2xldCBlO3JldHVybiBGYy51cGRhdGUodD0+KGU9dC5wb3AoKSx0KSksZT8/bnVsbH0sUmM9KCk9PkEoRmMpLmxlbmd0aD09PTAsemM9ayhOYyxlPT5lIT09bnVsbCksQmM9KGUse3VzZVN0YWNrOnQ9ITF9PXt9KT0+e05jLnVwZGF0ZShuPT4odCYmbiYmSWMobiksUGMuc2V0KG4hPT1udWxsKSxlKSl9LFZjPSgpPT57bGV0IGU9bnVsbDtSYygpfHwoZT1MYygpKSxOYy5zZXQoZSl9LEhjPWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuT3B0aW9ucz0wXT1gT3B0aW9uc2AsZVtlLkdkcHJBbmRQcml2YWN5PTFdPWBHZHByQW5kUHJpdmFjeWAsZVtlLkF1dGhGb3JtPTJdPWBBdXRoRm9ybWAsZVtlLkNsb3NlQ2hhdD0zXT1gQ2xvc2VDaGF0YCxlW2UuQ2hhdFJhdGluZz00XT1gQ2hhdFJhdGluZ2AsZVtlLlRpY2tldEZvcm09NV09YFRpY2tldEZvcm1gLGV9KHt9KSxVYz0xZTMsV2M9U3ltYm9sKGBjb250ZW50TGlzdEl0ZW1gKSxHYz1TeW1ib2woYGNvbnRlbnRNZXNzYWdlQXR0YWNobWVudGApLEtjPWAtcmVwbGllc2AscWM9LjM1LEpjPTVlMyxZYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pfSkpLFhjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5DYXJkQWN0aW9uVHlwZT1lLkNhcmRzTGF5b3V0PXZvaWQgMCxlLkNhcmRzTGF5b3V0PXtDYXJvdXNlbDpgY2Fyb3VzZWxgfSxlLkNhcmRBY3Rpb25UeXBlPXtPcGVuVXJsOmBvcGVuX3VybGB9fSkpLFpjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSl9KSksUWM9cygoZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLlJhdGluZ1RhcmdldD1lLkdyb3VwVHlwZT1lLkNoYW5uZWxUeXBlPWUuTWVzc2FnZVN1YlR5cGU9ZS5NZXNzYWdlVHlwZT1lLkF0dGFjaG1lbnRJbnZhbGlkUmVhc29uPWUuQXR0YWNobWVudFR5cGU9ZS5NZXNzYWdlQWN0aW9uVHlwZT12b2lkIDAsZS5NZXNzYWdlQWN0aW9uVHlwZT17VGV4dDpgdGV4dGAsT3BlblVybDpgb3Blbl91cmxgfSxlLkF0dGFjaG1lbnRUeXBlPXtDYXJkczpgY2FyZHNgLEZpbGU6YGZpbGVgLEltYWdlOmBpbWFnZWAsTWVkaWE6YG1lZGlhYCxJbnZhbGlkOmBpbnZhbGlkYH0sZS5BdHRhY2htZW50SW52YWxpZFJlYXNvbj17SW52YWxpZFNpemU6YGludmFsaWRfc2l6ZWAsSW52YWxpZFR5cGU6YGludmFsaWRfdHlwZWB9LGUuTWVzc2FnZVR5cGU9e01lc3NhZ2U6YG1lc3NhZ2VgLE5vdGU6YG5vdGVgLEV2ZW50OmBldmVudGAsSGVscDpgaGVscGB9LGUuTWVzc2FnZVN1YlR5cGU9e0FnZW50OmBhZ2VudGAsQ29udGFjdDpgY29udGFjdGAsVHJpZ2dlcjpgdHJpZ2dlcmAsQm90OmBib3RgLFN5c3RlbTpgc3lzdGVtYCxBZ2VudEV4dGVybmFsOmBhZ2VudF9leHRlcm5hbGAsRm91bmRFbWFpbDpgZm91bmRfZW1haWxgLENoYXRSZXNvbHZlOmBjaGF0X3Jlc29sdmVgLEVtYWlsOmBlbWFpbGB9LGUuQ2hhbm5lbFR5cGU9e0RlZmF1bHQ6YGRlZmF1bHRgLEVtYWlsOmBlbWFpbGAsRW1haWxJbnRlZ3JhdGlvbjpgZW1haWxfaW50ZWdyYXRpb25gLEZhY2Vib29rTWVzc2VuZ2VyOmBmYWNlYm9va19tZXNzZW5nZXJgLEdtYWlsOmBnbWFpbGAsU21hcnRzdXBwOmBzbWFydHN1cHBgLEluc3RhZ3JhbTpgaW5zdGFncmFtYCxXaGF0c2FwcDpgd2hhdHNhcHBgfTt2YXIgdDsoZnVuY3Rpb24oZSl7ZS5haT1gYWlgLGUuY2hhdGJvdD1gY2hhdGJvdGAsZS5tZXNzYWdlPWBtZXNzYWdlYH0pKHR8fChlLkdyb3VwVHlwZT10PXt9KSk7dmFyIG47KGZ1bmN0aW9uKGUpe2UuQWdlbnQ9YGFnZW50YCxlLkFpPWBhaWB9KShufHwoZS5SYXRpbmdUYXJnZXQ9bj17fSkpfSkpLCRjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5QYXJ0aWNpcGFudFR5cGU9dm9pZCAwO3ZhciB0OyhmdW5jdGlvbihlKXtlLmZyb209YGZyb21gLGUudG89YHRvYCxlLmNjPWBjY2AsZS5iY2M9YGJjY2B9KSh0fHwoZS5QYXJ0aWNpcGFudFR5cGU9dD17fSkpfSkpLGVsPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5NZXNzYWdlQ29udGVudFR5cGU9ZS5NZXNzYWdlQ29udGVudD12b2lkIDA7dmFyIHQ7KGZ1bmN0aW9uKGUpeyhmdW5jdGlvbihlKXtlLlR5cGU9e1RleHQ6YHRleHRgLFVwbG9hZDpgdXBsb2FkYCxSYXRlRm9ybTpgcmF0ZV9mb3JtYCxUaWNrZXRGb3JtOmB0aWNrZXRfZm9ybWAsRW1haWw6YGVtYWlsYH19KShlLk1lc3NhZ2V8fD17fSksKGZ1bmN0aW9uKGUpe2UuVHlwZT17QWdlbnRKb2luOmBhZ2VudF9qb2luYCxBZ2VudEFzc2lnbjpgYWdlbnRfYXNzaWduYCxBZ2VudFVuYXNzaWduOmBhZ2VudF91bmFzc2lnbmAsQWdlbnRMZWF2ZTpgYWdlbnRfbGVhdmVgLENoYXRDbG9zZTpgY2hhdF9jbG9zZWAsQ2hhdFZpc2l0b3JDbG9zZTpgY2hhdF92aXNpdG9yX2Nsb3NlYH19KShlLkV2ZW50fHw9e30pLChmdW5jdGlvbihlKXtlLlR5cGU9e1RleHQ6YHRleHRgLEZvdW5kRW1haWw6YGZvdW5kX2VtYWlsYH19KShlLkhlbHB8fD17fSl9KSh0fHwoZS5NZXNzYWdlQ29udGVudD10PXt9KSksZS5NZXNzYWdlQ29udGVudFR5cGU9ey4uLnQuTWVzc2FnZS5UeXBlLC4uLnQuRXZlbnQuVHlwZSwuLi50LkhlbHAuVHlwZX19KSksdGw9cygoZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KX0pKSxubD1zKChlPT57dmFyIHQ9ZSYmZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFpfHwoYGdldGBpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX0pOihmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKSxlW3JdPXRbbl19KSksbj1lJiZlLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIgaW4gZSlyIT09YGRlZmF1bHRgJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJnQobixlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksbihZYygpLGUpLG4oWGMoKSxlKSxuKFpjKCksZSksbihRYygpLGUpLG4oJGMoKSxlKSxuKGVsKCksZSksbih0bCgpLGUpfSkpLHJsPShlLHQpPT57bGV0IG49e307Zm9yKGxldCByIG9mIHQpe2xldCB0PVN0cmluZyhyW2VdKTtuW3RdPXJ9cmV0dXJuIG59LGlsPSgoKT0+e2xldHtzdWJzY3JpYmU6ZSxzZXQ6dH09Tyh7fSk7cmV0dXJue3N1YnNjcmliZTplLHNldEdyb3VwczplPT57dChybChga2V5YCxlKSl9fX0pKCksYWw9ayhbaWxdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpKSxvbD17YXV0aEZvcm1EcmF3ZXI6YGF1dGhGb3JtRHJhd2VyYCxhdXRoRm9ybVByaXZhY3lOb3RpY2U6YGF1dGhGb3JtUHJpdmFjeU5vdGljZWAsYXV0aEZvcm1Qcml2YWN5Tm90aWNlU3dpdGNoOmBhdXRoRm9ybVByaXZhY3lOb3RpY2VTd2l0Y2hgLGF1dGhGb3JtU3VibWl0QnV0dG9uOmBhdXRoRm9ybVN1Ym1pdEJ1dHRvbmAsYXZhdGFyQWdlbnQ6YGF2YXRhckFnZW50YCxhdmF0YXJCb3Q6YGF2YXRhckJvdGAsYXZhdGFyR3JvdXA6YGF2YXRhckdyb3VwYCxhdmF0YXJJbmZvOmBhdmF0YXJJbmZvYCxidXR0b25BdHRhY2htZW50OmBidXR0b25BdHRhY2htZW50YCxidXR0b25DbG9zZUNoYXQ6YGJ1dHRvbkNsb3NlQ2hhdGAsYnV0dG9uQ2xvc2VEcmF3ZXI6YGJ1dHRvbkNsb3NlRHJhd2VyYCxidXR0b25Db2xsYXBzZUNoYXQ6YGJ1dHRvbkNvbGxhcHNlQ2hhdGAsYnV0dG9uRW1vamk6YGJ1dHRvbkVtb2ppYCxidXR0b25FeHBhbmRDaGF0OmBidXR0b25FeHBhbmRDaGF0YCxidXR0b25NaW5pbWl6ZUNoYXQ6YGJ1dHRvbk1pbmltaXplQ2hhdGAsYnV0dG9uT3B0aW9uczpgYnV0dG9uT3B0aW9uc2AsYnV0dG9uU2VuZDpgYnV0dG9uU2VuZGAsY2hhdFJhdGluZ0RyYXdlcjpgY2hhdFJhdGluZ0RyYXdlcmAsY2hhdFJhdGluZ0Vtb2ppQnV0dG9uOmBjaGF0UmF0aW5nRW1vamlgLGNoYXRSYXRpbmdTZW5kQnV0dG9uOmBjaGF0UmF0aW5nU2VuZEJ1dHRvbmAsY2hhdFJhdGluZ1RleHRhcmVhOmBjaGF0UmF0aW5nVGV4dGFyZWFgLGNoYXRSYXRpbmdGZWVkYmFja0J1dHRvbjpgY2hhdFJhdGluZ0ZlZWRiYWNrQnV0dG9uYCxjaGF0UmF0aW5nQnV0dG9uQWk6YGNoYXRSYXRpbmdCdXR0b25BaWAsY2hhdFJhdGluZ0J1dHRvbkFnZW50OmBjaGF0UmF0aW5nQnV0dG9uQWdlbnRgLGNsb3NlQ2hhdENvbmZpcm1CdXR0b246YGNsb3NlQ2hhdENvbmZpcm1CdXR0b25gLGNsb3NlQ2hhdERlY2xpbmVCdXR0b246YGNsb3NlQ2hhdERlY2xpbmVCdXR0b25gLGNsb3NlQ2hhdERyYXdlcjpgY2xvc2VDaGF0RHJhd2VyYCxmbGFzaE1lc3NhZ2U6YGZsYXNoTWVzc2FnZWAsZ2RwckRyYXdlcjpgZ2RwckRyYXdlcmAsaGVhZGVyVGl0bGU6YGhlYWRlclRpdGxlYCxoZWFkZXJTdGF0dXM6YGhlYWRlclN0YXR1c2AsaGVhZGVyQmFkZ2U6YGhlYWRlckJhZGdlYCxpbmxpbmVFbW9qaVBpY2tlcjpgaW5saW5lRW1vamlQaWNrZXJgLG1lc3NhZ2VBdHRhY2htZW50OmBtZXNzYWdlQXR0YWNobWVudGAsbWVzc2FnZUFnZW50OmBtZXNzYWdlQWdlbnRgLG1lc3NhZ2VCb3Q6YG1lc3NhZ2VCb3RgLG1lc3NhZ2VCb3RSZXBseTpgbWVzc2FnZUJvdFJlcGx5YCxtZXNzYWdlQm90QmFjazpgbWVzc2FnZUJvdEJhY2tgLG1lc3NhZ2VDb250YWN0OmBtZXNzYWdlQ29udGFjdGAsbWVzc2FnZUZpbGU6YG1lc3NhZ2VGaWxlYCxtZXNzYWdlR3JvdXA6YG1lc3NhZ2VHcm91cGAsbWVzc2FnZUltYWdlOmBtZXNzYWdlSW1hZ2VgLG9wdGlvbnNBY2Nlc3NpYmlsaXR5OmBvcHRpb25zQWNjZXNzaWJpbGl0eWAsb3B0aW9uc0RyYXdlcjpgb3B0aW9uc0RyYXdlcmAsb3B0aW9uc0V4cGFuZENoYXQ6YG9wdGlvbnNFeHBhbmRDaGF0YCxvcHRpb25zUHJpdmFjeU5vdGljZTpgb3B0aW9uc1ByaXZhY3lOb3RpY2VgLG9wdGlvbnNTb3VuZHM6YG9wdGlvbnNTb3VuZHNgLG9wdGlvbnNUcmFuc2NyaXB0OmBvcHRpb25zVHJhbnNjcmlwdGAscG9wdXA6YHBvcHVwYCxwb3B1cE1lc3NhZ2U6YHBvcHVwTWVzc2FnZWAscG9wdXBCdXR0b246YHBvcHVwQnV0dG9uYCxwb3B1cEJ1dHRvbkNsb3NlOmBwb3B1cEJ1dHRvbkNsb3NlYCxwcm9kdWN0Q2FyZDpgcHJvZHVjdENhcmRgLHByb2R1Y3RDYXJkQXJyb3dMZWZ0OmBwcm9kdWN0Q2FyZEFycm93TGVmdGAscHJvZHVjdENhcmRBcnJvd1JpZ2h0OmBwcm9kdWN0Q2FyZEFycm93UmlnaHRgLHByb2R1Y3RDYXJkQnV0dG9uOmBwcm9kdWN0Q2FyZEJ1dHRvbmAscHJvZHVjdENhcmRDYXJvdXNlbDpgcHJvZHVjdENhcmRDYXJvdXNlbGAscHJvZHVjdENhcmREZXNjcmlwdGlvbjpgcHJvZHVjdENhcmREZXNjcmlwdGlvbmAscHJvZHVjdENhcmRJbWFnZTpgcHJvZHVjdENhcmRJbWFnZWAscHJvZHVjdENhcmRJbmZvOmBwcm9kdWN0Q2FyZEluZm9gLHByb2R1Y3RDYXJkVGl0bGU6YHByb2R1Y3RDYXJkVGl0bGVgLHN5c3RlbU1lc3NhZ2U6YHN5c3RlbU1lc3NhZ2VgLHRleHRhcmVhOmB0ZXh0YXJlYWAsdGV4dGFyZWFQcmV2aWV3RmlsZTpgdGV4dGFyZWFQcmV2aWV3RmlsZWAsdGV4dGFyZWFQcmV2aWV3SW1hZ2U6YHRleHRhcmVhUHJldmlld0ltYWdlYCx0cmFuc2NyaXB0SW5wdXQ6YHRyYW5zY3JpcHRJbnB1dGAsdHJhbnNjcmlwdFNlbmRCdXR0b246YHRyYW5zY3JpcHRTZW5kYCx0aWNrZXRGb3JtRHJhd2VyOmB0aWNrZXRGb3JtRHJhd2VyYCx0aWNrZXRGb3JtU3VibWl0QnV0dG9uOmB0aWNrZXRGb3JtU3VibWl0QnV0dG9uYCx3aWRnZXRCdXR0b246YHdpZGdldEJ1dHRvbmAsd2lkZ2V0QnV0dG9uRnJhbWU6YHdpZGdldEJ1dHRvbkZyYW1lYCx3aWRnZXRCdXR0b25UZXh0OmB3aWRnZXRCdXR0b250ZXh0YCx3aWRnZXRJbWFnZVByZXZpZXc6YHdpZGdldEltYWdlUHJldmlld2Asd2lkZ2V0TWVzc2VuZ2VyOmB3aWRnZXRNZXNzZW5nZXJgLHdpZGdldE1lc3NlbmdlckZyYW1lOmB3aWRnZXRNZXNzZW5nZXJGcmFtZWAsd2lkZ2V0T25saW5lQmFkZ2U6YHdpZGdldE9ubGluZUJhZGdlYCx3aWRnZXRQb3B1cEZyYW1lOmB3aWRnZXRQb3B1cEZyYW1lYCx3aWRnZXRUeXBpbmdGcmFtZTpgd2lkZ2V0VHlwaW5nRnJhbWVgLHdpZGdldFVucmVhZE1lc3NhZ2VzQmFkZ2U6YHdpZGdldFVucmVhZE1lc3NhZ2VzQmFkZ2VgLHdpZGdldEhlYWRlcjpgd2lkZ2V0SGVhZGVyYH0sc2w9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb21gLGNsPWAvcG93ZXJlZC1ieS1zbWFydHN1cHBgLGxsPVtgY3NgLGBlc2AsYGZyYCxgaHVgLGBpdGAsYGRlYCxgbmxgLGBwbGBdLHVsPWBodHRwczovL3d3dy5zbWFydHN1cHAuY29tL215LWRhdGEtYW5kLWdkcHJgLGRsPU8oITEpLGZsPXJzKFUuU2Vzc2lvbklkLGBgKSxwbD0oKT0+e2xldHtwcm90b2NvbDplLGhvc3Q6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuYCR7ZT09PWBodHRwYD9gaHR0cGA6YGh0dHBzYH06Ly8ke3R9YH0sbWw9KCk9PntsZXR7bW9iaWxlU2RrOmUsdmlzaXRvcklkOnR9PVYuZ2V0T3B0aW9ucygpO2lmKGUmJnQpcmV0dXJuIHQ7dHJ5e3JldHVybiAkbygpfWNhdGNoKGUpe3JldHVybiBIKFN0cmluZyhlKSksbnVsbH19LGhsPShlLHQpPT57bGV0IG49Zm8oKS5sb2NhdGlvbi5ocmVmO3JldHVybiBlJiZ0JiYobj1gJHtufSR7bi5pbmNsdWRlcyhgP2ApP2AmYDpgP2B9c3MtYm90LXJ1bj0ke3R9YCksbn0sZ2w9KCk9PntKLmNsZWFyTWVzc2FnZXMoKSxtZCgpLEd1LmNsZWFyQXNzaWduZWRBZ2VudElkcygpLFJvKCksa28oVS5WaXNpdG9ySWQpfSxfbD1lPT57dHJ5e2VzKGUpfWNhdGNoKGUpe0goU3RyaW5nKGUpKX19LHZsPWFzeW5jKGU9ITEpPT57bGV0e2tleTp0LGxhbmc6bixpc1ByZXZpZXdNb2RlOnIscHJldmlld1dpdGhvdXRSZXNldDppLHNpdGVQbGF0Zm9ybTphLHRyaWdnZXJhYmxlOm8sX2NoYXRNYXhSZW9wZW5UaW1lOnMsYm90SWQ6Y309Vi5nZXRPcHRpb25zKCk7KHImJiFpfHxlKSYmZ2woKTtsZXQgbD1tbCgpLHU9QShsYik7cmV0dXJue2tleTp0LGlkOmwsY2xpZW50RmluZ2VycHJpbnQ6YXdhaXQgUW8oKSxpc1ByZXZpZXdNb2RlOnIsc2l0ZVBsYXRmb3JtOmEsdHJpZ2dlcmFibGU6byxfY2hhdE1heFJlb3BlblRpbWU6cyxuYW1lOnUubmFtZSxlbWFpbDp1LmVtYWlsLHBob25lOnUucGhvbmUsZ3JvdXA6dS5ncm91cCxsYW5nOnUubGFuZz8/bix2YXJpYWJsZXM6dS52YXJpYWJsZXMsd2lkZ2V0VmVyc2lvbjpgMy4wYCx2aXNpdHM6dHMoKSxpc1dpZGdldFZpc2libGU6QShSXyksaXNXaWRnZXRPcGVuOkEoWCkscGFnZVVybDpobChyLGMpLHBhZ2VUaXRsZTpmbygpLmRvY3VtZW50LnRpdGxlLGRvbWFpbjpmbygpLmxvY2F0aW9uLmhvc3RuYW1lfHxgdW5rbm93bmAscmVmZXJlcjpmbygpLmRvY3VtZW50LnJlZmVycmVyLGJ1bmRsZVZlcnNpb246YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjVgfX0seWw9KGUsdCk9PntsZXR7aXNQcmV2aWV3TW9kZTpufT1WLmdldE9wdGlvbnMoKTshZSYmdCE9PUEoZmwpJiYhbiYmKGdsKCksQShYKSYmWC5zZXQoITEpKSxmbC5zZXQodCl9LGJsPSgoKT0+e2xldHtzdWJzY3JpYmU6ZSxzZXQ6dH09TygpO3JldHVybntzdWJzY3JpYmU6ZSxpbml0aWFsaXplOmU9PnQoZSl9fSkoKSx4bD1gRklMRWAsU2w9MmUzLENsPWU9PmUuc3BsaXQoYC9gKVswXT09PWBpbWFnZWAsd2w9ZT0+ISFlLm1hdGNoKC9edmlkZW9cLyg/Om1wNHx3ZWJtfG9nZyl7MX0kLyk7YXN5bmMgZnVuY3Rpb24gVGwoZSl7aWYoIUZpbGVSZWFkZXIpcmV0dXJuIGpvKGBGaWxlUmVhZGVyIG5vdCBzdXBwb3J0ZWRgKSxudWxsO2xldCB0PW5ldyBGaWxlUmVhZGVyO3JldHVybiBuZXcgUHJvbWlzZShuPT57dC5vbmxvYWQ9KCk9PntpZighdC5yZXN1bHQpe24obnVsbCk7cmV0dXJufW4odHlwZW9mIHQucmVzdWx0PT1gc3RyaW5nYCYmdC5yZXN1bHQuc3RhcnRzV2l0aChgZGF0YTppbWFnZWApP3QucmVzdWx0Om51bGwpfSx0Lm9uZXJyb3I9KCk9PntqbyhgRmFpbGVkIHRvIGxvYWQgaW1hZ2UgZGF0YWApLG4obnVsbCl9LHQucmVhZEFzRGF0YVVSTChlKX0pfWFzeW5jIGZ1bmN0aW9uIEVsKGUpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaW1nYCk7bi5vbmxvYWQ9KCk9Pnt0KHt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0pfSxuLm9uZXJyb3I9KCk9PntqbyhgRmFpbGVkIHRvIG9idGFpbiBpbWFnZSBkaW1lbnNpb25zYCksdChudWxsKX0sbi5zcmM9ZX0pfWZ1bmN0aW9uIERsKGUpe3JldHVybntob3Jpem9udGFsOmUud2lkdGg+ZS5oZWlnaHQsdmVydGljYWw6ZS5oZWlnaHQ+ZS53aWR0aH19dmFyIE9sPWBhci5hei5iZy5ici5icy5jYS5jbi5jcy5kYS5kZS5lbC5lbi5lcy5ldC5mYS5maS5maWwuZnIuaGUuaGkuaHIuaHUuaXMuaXQuamEua2EubHQubHYubWsubmwubm8ucGwucHQucm8ucnUuc2suc2wuc3Iuc3YudGgudHIudHcudWtgLnNwbGl0KGAuYCksa2w9cygoZT0+e3ZhciB0PWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLkZldGNoQWRhcHRlcj12b2lkIDA7dmFyIG49dChhYygpKTtlLkZldGNoQWRhcHRlcj1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17fSx0aGlzLm9wdGlvbnM9ZX1hc3luYyByZXF1ZXN0KGUsdCxyLGksYSl7bGV0IG89ey4uLnRoaXMub3B0aW9ucywuLi5hfSxzPWk/YD9gK24uZGVmYXVsdC5zdHJpbmdpZnkoaSk6YGA7dHJ5e2xldCBuPWF3YWl0IGZldGNoKGAke28uYmFzZVVSTHx8YGB9JHt0fSR7c31gLHttZXRob2Q6ZSxib2R5OnI/SlNPTi5zdHJpbmdpZnkocik6bnVsbCwuLi5vfSk7cmV0dXJue3N0YXR1czpuLnN0YXR1cyxzdGF0dXNUZXh0Om4uc3RhdHVzVGV4dCxkYXRhOmF3YWl0IG4uanNvbigpLGhlYWRlcnM6Wy4uLm4uaGVhZGVycy5lbnRyaWVzKCldLnJlZHVjZSgoZSxbdCxuXSk9PihlW3RdPW4sZSkse30pfX1jYXRjaChlKXt0aHJvdyBlLmlzT3BlbkFwaUVycm9yPSEwLGV9fXdpdGhPcHRpb25zKHQpe3JldHVybiBuZXcgZSh0KX19fSkpLEFsPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Qcm9qZWN0TmFtZT1lLkVycm9yQ29kZT12b2lkIDAsZS5FcnJvckNvZGU9e0JhZFJlcXVlc3Q6YGJhZF9yZXF1ZXN0YCxOb3RBbGxvd2VkOmBub3RfYWxsb3dlZGAsTm90Rm91bmQ6YG5vdF9mb3VuZGAsRm9yYmlkZGVuOmBmb3JiaWRkZW5gLFRvb01hbnlSZXF1ZXN0czpgdG9vX21hbnlfcmVxdWVzdHNgLFVuYXV0aG9yaXplZDpgdW5hdXRob3JpemVkYCxVbnByb2Nlc3NhYmxlOmB1bnByb2Nlc3NhYmxlYH0sZS5Qcm9qZWN0TmFtZT17V2lkZ2V0OmB3aWRnZXRgLENoYXRib3Q6YGNoYXRib3RgfX0pKSxqbD1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuVHJhbnNsYXRpb25zQ2xpZW50UmF3PWUuVHJhbnNsYXRpb25zQ2xpZW50PXZvaWQgMCxlLlRyYW5zbGF0aW9uc0NsaWVudD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmFkYXB0ZXI9ZSx0aGlzLnJhdz1uZXcgdCh0aGlzLmFkYXB0ZXIpfWdldERlZmF1bHRzKGUsdCxyKXtyZXR1cm4gdGhpcy5hZGFwdGVyLnJlcXVlc3QoYGdldGAsYC8ke2V9L3RyYW5zbGF0aW9ucy9sYW5nLyR7dH0vZGVmYXVsdHNgLG51bGwsbnVsbCxyKS50aGVuKG4pfX07dmFyIHQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5hZGFwdGVyPWV9Z2V0RGVmYXVsdHMoZSx0LG4pe3JldHVybiB0aGlzLmFkYXB0ZXIucmVxdWVzdChgZ2V0YCxgLyR7ZX0vdHJhbnNsYXRpb25zL2xhbmcvJHt0fS9kZWZhdWx0c2AsbnVsbCxudWxsLG4pfX07ZS5UcmFuc2xhdGlvbnNDbGllbnRSYXc9dDtmdW5jdGlvbiBuKGUpe3JldHVybiBlLmRhdGF9fSkpLE1sPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5TbWFydHN1cHBUcmFuc2xhdGlvbnNDbGllbnRBcGk9dm9pZCAwO3ZhciB0PWpsKCksbj1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMuYWRhcHRlcj1lLHRoaXMudHJhbnNsYXRpb25zPW5ldyB0LlRyYW5zbGF0aW9uc0NsaWVudChlKX13aXRoT3B0aW9ucyh0KXtyZXR1cm4gbmV3IGUodGhpcy5hZGFwdGVyLndpdGhPcHRpb25zKHQpKX19O2UuU21hcnRzdXBwVHJhbnNsYXRpb25zQ2xpZW50QXBpPW4sZS5kZWZhdWx0PW59KSksTmw9cygoZT0+e3ZhciB0PWUmJmUuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pOyghaXx8KGBnZXRgaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKSkmJihpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9KTooZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9biksZVtyXT10W25dfSkpLG49ZSYmZS5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsbil7Zm9yKHZhciByIGluIGUpciE9PWBkZWZhdWx0YCYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiZ0KG4sZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLG4oQWwoKSxlKSxuKE1sKCksZSksbihqbCgpLGUpLGUuZGVmYXVsdD1NbCgpLlNtYXJ0c3VwcFRyYW5zbGF0aW9uc0NsaWVudEFwaX0pKSxQbD1rbCgpLEZsPU5sKCksSWw9ZT0+T2wuaW5jbHVkZXMoZSksTGw9ZT0+SWwoZSk/ZTpgZW5gLFJsPSgpPT57bGV0e2xhbmc6ZX09Vi5nZXRPcHRpb25zKCkse2xhbmc6dH09QShsYik7cmV0dXJuIExsKHQ/P2UpfTtmdW5jdGlvbiB6bCgpe3JldHVybiBuZXcgRmwuVHJhbnNsYXRpb25zQ2xpZW50KG5ldyBQbC5GZXRjaEFkYXB0ZXIoe2Jhc2VVUkw6YCR7Vi5nZXRPcHRpb25zKCkudHJhbnNsYXRpb25zQmFzZVVybH0vYXBpL3YxYH0pKX12YXIgQmw9YXN5bmMgZT0+emwoKS5nZXREZWZhdWx0cyhGbC5Qcm9qZWN0TmFtZS5XaWRnZXQsZSksVmw9KGUsdCk9PntsZXR7dHJhbnNsYXRlczpufT1WLmdldE9wdGlvbnMoKTtyZXR1cm57Li4uZSwuLi5uW3RdJiZuW3RdfX0sSGw9TyhgZW5gKSxVbD1PKHt9KSxXbD1hc3luYyBlPT57dHJ5e2xldCB0PVZsKGF3YWl0IEJsKGUpLGUpO1VsLnVwZGF0ZShuPT4oey4uLm4sW2VdOnR9KSl9Y2F0Y2h7am8oYEZldGNoIHRyYW5zbGF0aW9ucyBvZiAnJHtlfScgbGFuZ3VhZ2UgZmFpbGVkLmApfX0sR2w9YXN5bmMgZT0+e0EoVWwpW2VdfHxhd2FpdCBXbChlKSxIbC5zZXQoZSl9LEtsPWFzeW5jKCk9PntsZXQgZT1SbCgpO0hsLnNldChlKSxhd2FpdCBXbChlKX0scWw9ZT0+e2xldCB0PUEoSGwpLG49ey4uLkEoVWwpW3RdLC4uLmV9O1VsLnVwZGF0ZShlPT4oey4uLmUsW3RdOm59KSl9LEpsPShlLHQsbik9PntsZXQgcj1BKFVsKSxpPWB8JHt0fXxgO2lmKE9iamVjdC5rZXlzKHIpLmxlbmd0aD09PTApcmV0dXJuIGk7bGV0IGE9cltlXT8uW3RdfHxpO3JldHVybiBPYmplY3Qua2V5cyhuKS5tYXAoZT0+e2xldCB0PVJlZ0V4cChgeyR7ZX19YCxgZ2ApO2E9YS5yZXBsYWNlKHQsbltlXSl9KSxhfSxXPWsoW0hsLFVsXSwoW2VdKT0+KHQsbj17fSk9PkpsKGUsdCxuKSksWWw9KCgpPT57bGV0IGU9TyhbXSkse3N1YnNjcmliZTp0LHVwZGF0ZTpufT1lLHI9KCk9PkEoZSkubWFwKGU9PmUuZmlsZSksaT0odCxuKT0+KG58fEEoZSkpLmZpbmQoZT0+ZS5maWxlLm5hbWU9PT10KXx8bnVsbCxhPWU9Pih7ZmlsZTplLHByZXZpZXc6e30scHJldmlld1N0YXRlOmBub25lYCx1cGxvYWRTdGF0dXM6YG5vbmVgfSksbz1lPT57bGV0IHQ9QXJyYXkuaXNBcnJheShlKT9lOltlXTtuKGU9PmUubGVuZ3RoK3QubGVuZ3RoPjU/KGdzKGAke0EoVykoYGZpbGVVcGxvYWQudG9vTWFueUZpbGVzYCl9IDVgKSxlKTpbLi4uZSwuLi50Lm1hcChhKV0pLG0odCl9LHM9ZT0+e24odD0+dC5maWx0ZXIodD0+dC5maWxlIT09ZSkpfSxjPSgpPT5BKGUpLmxlbmd0aCxsPSgpPT5jKCk+PTUsdT0oKT0+ZS5zZXQoW10pLGQ9KCk9PntlLnVwZGF0ZShlPT4oZS5mb3JFYWNoKGU9PmUudXBsb2FkU3RhdHVzPWBpbi1wcm9ncmVzc2ApLGUpKX0sZj10PT57ZS51cGRhdGUoZT0+e2xldCBuPWkodCxlKTtyZXR1cm4gbiYmKG4udXBsb2FkU3RhdHVzPWBkb25lYCksZX0pfSxwPWU9PmkoZS5uYW1lKT8ucHJldmlld1N0YXRlIT09YG5vbmVgLG09ZT0+e2UuZm9yRWFjaChlPT52b2lkIGgoZSkpfSxoPWFzeW5jIHQ9PntpZihwKHQpKXJldHVybjtsZXQgbj1hd2FpdCBUbCh0KSxyPW4/YXdhaXQgRWwobik6bnVsbCxhPXI/RGwocik6bnVsbDtlLnVwZGF0ZShlPT57bGV0IG89aSh0Lm5hbWUsZSk7cmV0dXJuIG8/KG8ucHJldmlld1N0YXRlPWByZWFkeWAsby5wcmV2aWV3PXtkYXRhOm4sZGltZW5zaW9uczpyLG9yaWVudGF0aW9uOmF9LFsuLi5lXSk6ZX0pfTtyZXR1cm57c3Vic2NyaWJlOnQsZ2V0RmlsZXM6cixmaW5kOmksYWRkOm8scmVtb3ZlOnMsY291bnQ6Yyxpc0xpbWl0UmVhY2hlZDpsLGNsZWFyOnUsc2V0VXBsb2FkaW5nU3RhdHVzOmQsc2V0RmlsZVVwbG9hZGVkOmZ9fSkoKSxYbD0oKCk9PntsZXQgZT1bXTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7cHVzaDp0PT57ZS5wdXNoKHQpfSxleGVjdXRlQWxsOigpPT57Zm9yKDtlLmxlbmd0aD4wOyl7bGV0IHQ9ZS5zaGlmdCgpO3QmJnQoKX19fSl9KSgpLFpsPSgpPT57bGV0e3dpZGdldFYzVXJsOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke2V9L2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1haS1pZGVudGl0eS5wbmdgfSxRbD1lPT4oey4uLmUsYXZhdGFyVXJsOmUuYXZhdGFyVXJsfHxabCgpfSksJGw9KCgpPT57bGV0e3VwZGF0ZTplLHN1YnNjcmliZTp0LHNldDpufT1PKHt9KTtyZXR1cm57c3Vic2NyaWJlOnQsc2V0SWRlbnRpdGllczplPT57bihybChgaWRgLGUubWFwKFFsKSkpfSxhZGRJZGVudGl0eTp0PT57ZShlPT4oey4uLmUsW3QuaWRdOnR9KSl9LHVwZGF0ZUlkZW50aXR5Oih0LG4pPT57ZShlPT5lW3RdP3suLi5lLFt0XTp7Li4uZVt0XSwuLi5ufX06ZSl9fX0pKCksRz1ubCgpLEs9dShNYygpLDEpLGV1PWU9Pnt2byhgaW5pdCBkYXRhYCxlKSxkbC5zZXQoITApLHlsKGUuY2hhdCxlLnNlc3Npb25JZCk7bGV0IHQ9ZS52aXNpdG9yLmlkO19sKHQpLG5zKGUudmlzaXRvci52aXNpdHMpLE11LnNldFZpc2l0b3JEYXRhKGUudmlzaXRvciksaG8oe3ZpZDp0fSksYmwuaW5pdGlhbGl6ZShlLmZpbGVVcGxvYWQpLG9zLnNldChlLmJyb3dzZXIpLEJ1LnNldEFnZW50cyhlLmFjY291bnQuYWdlbnRzKSwkbC5zZXRJZGVudGl0aWVzKGUuYWNjb3VudC5ib3RJZGVudGl0aWVzKSxlLmNoYXQ/LnZpcnR1YWxBZ2VudCE9PXZvaWQgMCYmQnUuc2V0VmlydHVhbEFnZW50KGUuY2hhdD8udmlydHVhbEFnZW50KSxpbC5zZXRHcm91cHMoZS5hY2NvdW50Lmdyb3VwcyksaGQoZS5hY2NvdW50LnN0YXR1cyksZS5jaGF0JiYocXAoKSYmaWQuc2V0KGUuY2hhdC5yYXRpbmdTdWdnZXN0ZWRUYXJnZXR8fG51bGwpLGVkLnNldChlLmNoYXQuc3RhdHVzKSxkZChlLmNoYXQuaXNDbG9zZWQpLHJkLnNldChlLmNoYXQudW5yZWFkSW5mby5sYXN0UmVhZEF0KSxKLnNldE1lc3NhZ2VzKGUuY2hhdC5tZXNzYWdlcy5maWx0ZXIoZT0+IVpmKGUpKSksR3Uuc2V0QXNzaWduZWRBZ2VudElkcyhlLmNoYXQuYXNzaWduZWRJZHM/P1tdKSxlLmNoYXQud2lkZ2V0T3B0aW9ucyYmWHUudXBkYXRlR2VuZXJhbE9wdGlvbnMoZS5jaGF0LndpZGdldE9wdGlvbnMpKSxDXy5zZXQoITApLHouZW1pdChgd2lkZ2V0SW5pdGAsITApLFhsLmV4ZWN1dGVBbGwoKX0sdHU9ZT0+e2NvbnNvbGUuZXJyb3IoZSl9LG51PSgpPT57ZGwuc2V0KCExKX0scnU9KHtjaGF0SWQ6ZX0pPT57TXAuc2V0KCExKSxhZC5zZXQoZSksZWQuc2V0KEsuQ2hhdFN0YXR1cy5PcGVuKSxYdS5zZXRNZXNzYWdlT3B0aW9ucyh7ZGlzYWJsZUF0dGFjaG1lbnRzOiExfSl9LGl1PSgpPT57ZWQuc2V0KEsuQ2hhdFN0YXR1cy5TZXJ2ZWQpLGRkKCExKX0sYXU9KHttZXNzYWdlOmV9KT0+e2xldHtjbG9zZVR5cGU6dCxhZ2VudElkOm59PWUuY29udGVudC5kYXRhOyh0PT09YGFnZW50X2Nsb3NlYHx8dD09PWBib3RfY2xvc2VgKSYmKEd1LnNldEFzc2lnbmVkQWdlbnRJZHMoW10pLGVkLnNldChLLkNoYXRTdGF0dXMuQ2xvc2VkKSxKLmFkZE1lc3NhZ2UoZSksei5lbWl0KGBjaGF0Q2xvc2VkYCxlKSx0PT09YGFnZW50X2Nsb3NlYCYmUW0obj9BKFZ1KG4pKT8uZnVsbG5hbWU6dm9pZCAwKSl9LG91PSh7bWVzc2FnZTplfSk9PntxcCgpJiZZcCh4cyksZGQoITAse2J5VmlzaXRvcjohMH0pLEouYWRkTWVzc2FnZShlKSx6LmVtaXQoYGNoYXRWaXNpdG9yQ2xvc2VkYCxlKSxabSgpfSxzdT0oe2NoYW5nZXM6ZX0pPT57ZS53aWRnZXRPcHRpb25zJiZYdS51cGRhdGVHZW5lcmFsT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpLGUuaXNDbG9zZWQhPT12b2lkIDAmJmRkKGUuaXNDbG9zZWQpLGUudmlydHVhbEFnZW50IT09dm9pZCAwJiZCdS5zZXRWaXJ0dWFsQWdlbnQoZS52aXJ0dWFsQWdlbnQpfSxjdT1hc3luYyh7bWVzc2FnZTplfSk9PntpZihaZihlKSlyZXR1cm47bGV0IHQ9QSh6XykmJllmKGUpOyFBKFgpJiZRZihlKSYmIXQ/QXAoZSk6YXdhaXQgSi5hZGRNZXNzYWdlKGUpLF9kKCksZS53aWRnZXRPcHRpb25zJiZYdS5zZXRNZXNzYWdlT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpLHQmJlVfKCksei5lbWl0KGBtZXNzYWdlUmVjZWl2ZWRgLGUpfSxsdT1lPT57Y3UoZSl9LHV1PSh7bWVzc2FnZUlkOmUsZGVsZXRlZEF0OnR9KT0+e0EoSilbZV0/LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNoYXRSZXNvbHZlP0ouZGVsZXRlTWVzc2FnZShlKTpKLm1hcmtNZXNzYWdlQXNEZWxldGVkKGUsdCl9LGR1PSh7bWVzc2FnZTplfSk9PntKLnJlcGxhY2VNZXNzYWdlKGUpLGUud2lkZ2V0T3B0aW9ucyYmZS5pZD09PUEoQnApJiZYdS5zZXRNZXNzYWdlT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpfSxmdT0oe21lc3NhZ2U6ZSxhZ2VudDp0fSk9PntHdS5hZGRBc3NpZ25lZEFnZW50SWQoZS5jb250ZW50LmRhdGEuYWdlbnRJZCksSi5hZGRNZXNzYWdlKGUpLHouZW1pdChgYWdlbnRKb2luZWRgLHQpfSxwdT0oe21lc3NhZ2U6ZX0pPT57R3UucmVtb3ZlQXNzaWduZWRBZ2VudElkKGUuY29udGVudC5kYXRhLmFnZW50SWQpLEouYWRkTWVzc2FnZShlKX0sbXU9KHttZXNzYWdlOmV9KT0+e0d1LmFkZEFzc2lnbmVkQWdlbnRJZChlLmNvbnRlbnQuZGF0YS5hc3NpZ25lZCksSi5hZGRNZXNzYWdlKGUpfSxodT0oe21lc3NhZ2U6ZX0pPT57R3UucmVtb3ZlQXNzaWduZWRBZ2VudElkKGUuY29udGVudC5kYXRhLnVuYXNzaWduZWQpLEouYWRkTWVzc2FnZShlKX0sZ3U9ZT0+eyFlLnR5cGluZy5pcyYmQShNcCl8fG5kLnNldChlLnR5cGluZy5pcyl9LF91PWU9PntyZC5zZXQoZS5sYXN0UmVhZEF0KX0sdnU9KHttZXNzYWdlOmUscmF0aW5nOnR9KT0+e0oudXBkYXRlTWVzc2FnZVJhdGluZyhlKSx6LmVtaXQoYGNoYXRSYXRlZGAsdCl9LHl1PWU9Pnt6LmVtaXQoYHRyYW5zY3JpcHRQZGZgLGUpfSxidT0oe2lkOmUsY2hhbmdlczp0fSk9PntCdS51cGRhdGVBZ2VudChlLHQpfSx4dT0oe2lkOmUsc3RhdHVzOnR9KT0+e0J1LnVwZGF0ZUFnZW50KGUse3N0YXR1czp0fSl9LFN1PSh7c3RhdHVzOmV9KT0+e2hkKGUpfSxDdT1lPT57TXUudXBkYXRlVmlzaXRvckRhdGEoZSl9LHd1PWU9Pnt6LmVtaXQoYGNvbnRhY3RBY3F1aXJlZGAsZSl9LFR1PWU9PnsocXAoKXx8SnAoKSkmJmlkLnNldChlLnJhdGluZ1N1Z2dlc3RlZFRhcmdldCl9LEV1PSgpPT57QShpZCkmJmlkLnNldChudWxsKX0sRHU9KHtpZDplLGlzQWN0aXZlOnR9KT0+eyRsLnVwZGF0ZUlkZW50aXR5KGUse2lzQWN0aXZlOnR9KX0sT3U9RGMoKSxrdT1hc3luYyBlPT57bGV0IHQ9YXdhaXQgVi5hd2FpdE9wdGlvbnMoKTtyZXR1cm4gbmV3IEsuV2Vic29ja2V0VmlzaXRvckNsaWVudCh7ZGF0YTplLGNvbm5lY3Rpb246e3VybDpwbCgpLHNvY2tldDp0Lm1vY2s/bmV3IE91LlNvY2tldE1vY2sodC5tb2NrKTp2b2lkIDAsYmFsYW5jZXJVcmw6dC5iYWxhbmNlclVybCxvcHRpb25zOntwYXRoOmAvc29ja2V0YCxhdXRvQ29ubmVjdDohMSxyZWNvbm5lY3Rpb246ITB9fX0pfSxBdT0oKT0+e2xldCBlPW51bGwsdD0oKT0+ISFlLG49KCk9PntpZighZSl0aHJvdyBFcnJvcihgVmlzaXRvciBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkYCk7cmV0dXJuIGV9LHI9YXN5bmMgdD0+e2U9YXdhaXQga3UoYXdhaXQgdmwodCkpLGUmJihqdShlKSxhd2FpdCBlLmNvbm5lY3QoKS5jYXRjaChlPT57am8oYEZhaWxlZCBjb25uZWN0IHRvIHNlcnZlci5gLGUpfSkpfTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Z2V0Q2xpZW50Om4saW5pdENsaWVudDpyLHJlbG9hZENsaWVudDphc3luYyh0LG4pPT57YXdhaXQgZT8uZGlzY29ubmVjdCgpLHQmJlYudXBkYXRlT3B0aW9ucyh7bW9jazp0fSksYXdhaXQgcihuKX0saXNJbml0aWFsaXplZDp0fSl9LGp1PWU9PntlLm9uKGBpbml0aWFsaXplZGAsZXUpLGUub24oYGVycm9yYCx0dSksZS5vbihgZGlzY29ubmVjdGAsbnUpLGUub24oYGNoYXQub3BlbmVkYCxydSksZS5vbihgY2hhdC5zZXJ2ZWRgLGl1KSxlLm9uKGBjaGF0LmNsb3NlZGAsYXUpLGUub24oYGNoYXQudmlzaXRvcl9jbG9zZWRgLG91KSxlLm9uKGBjaGF0LnVwZGF0ZWRgLHN1KSxlLm9uKGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgLGx1KSxlLm9uKGBjaGF0Lm1lc3NhZ2VfdXBkYXRlZGAsZHUpLGUub24oYGNoYXQubWVzc2FnZV9kZWxldGVkYCx1dSksZS5vbihgY2hhdC5hZ2VudF9qb2luZWRgLGZ1KSxlLm9uKGBjaGF0LmFnZW50X2xlZnRgLHB1KSxlLm9uKGBjaGF0LmFnZW50X2Fzc2lnbmVkYCxtdSksZS5vbihgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCxodSksZS5vbihgY2hhdC5hZ2VudF90eXBpbmdgLGd1KSxlLm9uKGBjaGF0LmNvbnRhY3RfcmVhZGAsX3UpLGUub24oYGNoYXQucmF0ZWRgLHZ1KSxlLm9uKGBjaGF0LnJhdGluZ19zdWdnZXN0ZWRgLFR1KSxlLm9uKGBjaGF0LnJhdGluZ19jYW5jZWxsZWRgLEV1KSxlLm9uKGBjaGF0LnRyYW5zY3JpcHRfcGRmYCx5dSksZS5vbihgYWdlbnQudXBkYXRlZGAsYnUpLGUub24oYGFnZW50LnN0YXR1c191cGRhdGVkYCx4dSksZS5vbihgYWNjb3VudC51cGRhdGVkYCxTdSksZS5vbihgdmlzaXRvci51cGRhdGVkYCxDdSksZS5vbihgY29udGFjdC5hY3F1aXJlZGAsd3UpLGUub24oYGlkZW50aXR5LnN0YXR1c191cGRhdGVkYCxEdSl9LHE9QXUoKSxNdT0oKCk9PntsZXQgZT1PKG51bGwpLHtzdWJzY3JpYmU6dCxzZXQ6bix1cGRhdGU6cn09ZSxpPWU9PntuKGUpfSxhPWU9PntyKHQ9PnQ/ey4uLnQsLi4uZX06bnVsbCl9LG89KGUsdCk9Pnt0cnl7cS5nZXRDbGllbnQoKS51cGRhdGUoe1tlXTp0fSl9Y2F0Y2godCl7am8oYFVwZGF0ZSBvZiB2aXNpdG9yIHByb3BlcnR5ICcke2V9JyBmYWlsZWQuYCxTdHJpbmcodCkpfX07cmV0dXJue3N1YnNjcmliZTp0LHNldFZpc2l0b3JEYXRhOmksdXBkYXRlVmlzaXRvckRhdGE6YSx1cGRhdGVWaXNpdG9yUHJvcGVydHk6KGUsdCk9PntpZighQShDXykpe3ViKGUsdCk7cmV0dXJufWEoe1tlXTp0fSksbyhlLHQpfSx1cGRhdGVWaXNpdG9yVmFyaWFibGVzOnQ9PntpZighQShDXykpe3ViKGB2YXJpYWJsZXNgLHQpO3JldHVybn1sZXQgbj1BKGUpO2lmKCFuKXJldHVybjtsZXQgcj1uLnZhcmlhYmxlczthKHt2YXJpYWJsZXM6ey4uLnIsLi4udH19KTtsZXQgaT17fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGU9Pnt0W2VdIT09cltlXSYmKGk9ey4uLmksW2VdOnRbZV19KX0pLE9iamVjdC5rZXlzKGkpLmxlbmd0aCE9PTAmJm8oYHZhcmlhYmxlc2AsaSl9LHVwZGF0ZVZpc2l0b3JDb250YWN0RGF0YTp0PT57aWYoIUEoQ18pKXt1YihgY29udGFjdERhdGFgLHtwcm9wZXJ0aWVzOnR9KTtyZXR1cm59bGV0IG49QShlKTtpZighbilyZXR1cm47bGV0IHI9bj8uY29udGFjdERhdGE/LnByb3BlcnRpZXM7YSh7dmFyaWFibGVzOnsuLi5yLC4uLnR9fSk7bGV0IGk9e307T2JqZWN0LmtleXModCkuZm9yRWFjaChlPT57KCFyfHx0W2VdIT09cltlXSkmJihpPXsuLi5pLFtlXTp0W2VdfSl9KSxPYmplY3Qua2V5cyhpKS5sZW5ndGghPT0wJiZvKGBjb250YWN0RGF0YWAse3Byb3BlcnRpZXM6dH0pfX19KSgpLE51PShlLHQpPT5lLmhhc093blByb3BlcnR5KHQpLFB1PWU9PnR5cGVvZiBlPT1gYm9vbGVhbmAsRnU9ZT0+dHlwZW9mIGU9PWBudW1iZXJgLEl1PWU9PnR5cGVvZiBlPT1gb2JqZWN0YCYmISFlJiYhQXJyYXkuaXNBcnJheShlKSxMdT1lPT50eXBlb2YgZT09YHN0cmluZ2B8fGUgaW5zdGFuY2VvZiBTdHJpbmcsUnU9ZT0+THUoZSl8fEZ1KGUpfHxQdShlKSx6dT1lPT57bGV0IHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e2xldCByPWVbbl07UnUocik/dFtuXT1yOkl1KHIpJiZOdShyLGB2YWx1ZWApJiZSdShyLnZhbHVlKSYmKHRbbl09ci52YWx1ZSl9KSx0fSxCdT0oKCk9PntsZXR7dXBkYXRlOmUsc3Vic2NyaWJlOnQsc2V0Om59PU8oe30pO3JldHVybntzdWJzY3JpYmU6dCxzZXRBZ2VudHM6ZT0+e24ocmwoYGlkYCxlKSl9LGFkZEFnZW50OnQ9PntlKGU9Pih7Li4uZSxbdC5pZF06dH0pKX0sdXBkYXRlQWdlbnQ6KHQsbik9PntlKGU9PmVbdF0/ey4uLmUsW3RdOnsuLi5lW3RdLC4uLm59fTplKX0sc2V0VmlydHVhbEFnZW50OnQ9PntsZXR7ZGVzY3JpcHRpb246bixhdmF0YXI6cixuYW1lOml9PXQsYT17fTtuJiYoYS5kZXNjcmlwdGlvbj1uKSxyJiYoYS5hdmF0YXI9ciksaSYmKGEuZnVsbG5hbWU9aSksZShlPT4oT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57ZVt0XT17Li4uZVt0XSwuLi5hfX0pLGUpKX19fSkoKSxWdT1lPT5rKFtCdV0sKFt0XSk9PnRbZV0/P251bGwpLEh1PWsoW2soW0J1XSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoZT0+IWUuZGlzYWJsZWQpKSxNdV0sKFtlLHRdKT0+e2xldCBuPXQ/Lmdyb3VwO3JldHVybiFufHxuPT09YGRlZmF1bHRgP2U6ZS5maWx0ZXIoZT0+ZS5ncm91cHMubGVuZ3RoPT09MHx8ZS5ncm91cHMuaW5jbHVkZXMobikpfSksVXU9ayhbSHVdLChbZV0pPT5lLmZpbHRlcihlPT5lLnN0YXR1cz09PUsuQWdlbnRTdGF0dXMuT25saW5lKSksV3U9ZT0+e2lmKGUpcmV0dXJuYCR7ZX0/c2l6ZT04MGA7bGV0e3dpZGdldFYzVXJsOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke3R9L2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1hdmF0YXIucG5nYH0sR3U9KCgpPT57bGV0e3N1YnNjcmliZTplLHNldDp0LHVwZGF0ZTpufT1PKFtdKTtyZXR1cm57c3Vic2NyaWJlOmUsc2V0QXNzaWduZWRBZ2VudElkczplPT57dChlKX0sYWRkQXNzaWduZWRBZ2VudElkOmU9PntuKHQ9PlsuLi5uZXcgU2V0KFsuLi50LGVdKV0pfSxyZW1vdmVBc3NpZ25lZEFnZW50SWQ6ZT0+e24odD0+dC5maWx0ZXIodD0+dCE9PWUpKX0sY2xlYXJBc3NpZ25lZEFnZW50SWRzOigpPT57dChbXSl9fX0pKCksS3U9ayhbR3UsQnVdLChbZSx0XSk9PmUubWFwKGU9PnRbZV0pLmZpbHRlcihCb29sZWFuKSkscXU9ayhbS3VdLChbZV0pPT5lLmxlbmd0aD4wKSxKdT1rKFtLdV0sKFtlXSk9PmUuZmlsdGVyKGU9PiFlLmRpc2FibGVkKSksWXU9ayhbS3VdLChbZV0pPT5lLnNvbWUoZT0+ZS5zdGF0dXM9PT1LLkFnZW50U3RhdHVzLk9ubGluZSkpLFh1PSgoKT0+e2xldCBlPU8oe2Rpc2FibGVBdHRhY2htZW50czohMSxkaXNhYmxlQXV0aGVudGljYXRpb246ITEsZGlzYWJsZUlucHV0OiExfSksdD1PKHt9KTtyZXR1cm57c3Vic2NyaWJlOmsoW2UsdF0sKFtlLHRdKT0+KHsuLi5lLC4uLnR9KSkuc3Vic2NyaWJlLHVwZGF0ZUdlbmVyYWxPcHRpb25zOnQ9PntlLnVwZGF0ZShlPT4oey4uLmUsLi4udH0pKX0sc2V0TWVzc2FnZU9wdGlvbnM6ZT0+e3Quc2V0KGUpfX19KSgpLFp1PWsoW1h1XSwoW2VdKT0+ZS5kaXNhYmxlQXR0YWNobWVudHMpLFF1PWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuT3Blbj0wXT1gT3BlbmAsZVtlLkNsb3NlZD0xXT1gQ2xvc2VkYCxlW2UuQ2xvc2VkQnlWaXNpdG9yPTJdPWBDbG9zZWRCeVZpc2l0b3JgLGV9KHt9KSwkdT1PKEsuQWNjb3VudFN0YXR1cy5PZmZsaW5lKSxlZD1PKG51bGwpLHRkPU8oUXUuT3BlbiksbmQ9TyghMSkscmQ9TyhudWxsKSxpZD1PKG51bGwpLGFkPU8oYGApLG9kPWsoW2VkXSwoW2VdKT0+ZT09PUsuQ2hhdFN0YXR1cy5QZW5kaW5nKTtrKFtlZF0sKFtlXSk9PmUhPT1udWxsKTt2YXIgc2Q9ayhbZWRdLChbZV0pPT5lPT09Sy5DaGF0U3RhdHVzLlNlcnZlZCksY2Q9ayhbZWRdLChbZV0pPT5lPT09Sy5DaGF0U3RhdHVzLk9wZW4pLGxkPWsoW2VkXSwoW2VdKT0+ZT09PUsuQ2hhdFN0YXR1cy5DbG9zZWQpLHVkPWsoW3NkLHRkXSwoW2UsdF0pPT5lJiZ0PT09UXUuT3BlbiksZGQ9KGUse2J5VmlzaXRvcjp0PSExfT17fSk9PntlP3RkLnNldCh0P1F1LkNsb3NlZEJ5VmlzaXRvcjpRdS5DbG9zZWQpOnRkLnNldChRdS5PcGVuKX0sZmQ9ayhbJHUsSnVdLChbZSx0XSk9PnQubGVuZ3RoPT09MD9lPT09Sy5BY2NvdW50U3RhdHVzLk9ubGluZTp0LnNvbWUoZT0+ZS5zdGF0dXM9PT1LLkFnZW50U3RhdHVzLk9ubGluZSkpLHBkPWsoW1h1XSwoW2VdKT0+ZS5kaXNhYmxlQXV0aGVudGljYXRpb24pLG1kPSgpPT57bmQuc2V0KCExKSxlZC5zZXQobnVsbCksZGQoITEpLHJkLnNldChudWxsKX0saGQ9ZT0+e2U9PT1LLkFjY291bnRTdGF0dXMuT2ZmbGluZVdpdGhBST8kdS5zZXQoSy5BY2NvdW50U3RhdHVzLk9ubGluZSk6JHUuc2V0KGUpfSxnZD0oKT0+e3JkLnNldChuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLHEuZ2V0Q2xpZW50KCkuY2hhdFJlYWQoKX0sX2Q9KCk9PntsZXQgZT1wbygpLnZpc2liaWxpdHlTdGF0ZT09PWB2aXNpYmxlYDshQShMcCl8fCFBKFgpfHwhZXx8IUEoTl8pfHxnZCgpfSx2ZD1lPT4oey4uLlNzLGNoYXRJZDpBKGFkKSxjcmVhdGVkQXQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGNvbnRlbnQ6ey4uLlNzLmNvbnRlbnQsZGF0YTp7dGFyZ2V0OmV9fX0pLHlkPSgpPT57ZGQoITAse2J5VmlzaXRvcjohMH0pLHEuZ2V0Q2xpZW50KCkuY2hhdENsb3NlKCksVmMoKSxxcCgpfHxXXygpfSxiZD1hc3luYyBlPT57YXdhaXQgSi5hZGRNZXNzYWdlKHZkKGUpKX0seGQ9KCk9PntKLmRlbGV0ZU1lc3NhZ2UoeHMpfTtmdW5jdGlvbiBTZChlKXtyZXR1cm4gZS5sZW5ndGg9PT0wP251bGw6ZVtlLmxlbmd0aC0xXX12YXIgQ2Q9ZT0+ZS5zbGljZSgoZS5sYXN0SW5kZXhPZihgLmApLTE+Pj4wKSsyKS50b0xvd2VyQ2FzZSgpLHdkPWU9PntsZXQgdD1lLG49MCxyPVtgQmAsYEtCYCxgTUJgLGBHQmBdO2Zvcig7dD49MTAyNCYmbjxyLmxlbmd0aC0xOyl0Lz0xMDI0LG4rKztyZXR1cm57c2l6ZTpNYXRoLmZsb29yKHQpLHVuaXQ6cltuXX19LFRkPWU9PntsZXQgdD1TZChlLnNwbGl0KGAuYCkpO3JldHVybiB0P3QudG9VcHBlckNhc2UoKTp4bH0sRWQ9KGUsdCk9PmAke2V9P25hbWU9JHt0fWAsRGQ9YXN5bmMoZSx0KT0+e2xldCBuPXEuZ2V0Q2xpZW50KCkscj1bXTtmb3IobGV0e2ZpbGU6aX1vZiBlKXtsZXQgZT1hd2FpdCBuLmNoYXRVcGxvYWRJbml0KCksYT1uZXcgRm9ybURhdGE7YS5hcHBlbmQoYGZpbGVgLGksaS5uYW1lKTt0cnl7aWYoIShhd2FpdCBmZXRjaChlLnVybCx7bWV0aG9kOmBwb3N0YCxib2R5OmF9KSkub2spdGhyb3cgRXJyb3IoYFVwbG9hZCBmYWlsZWRgKTtyLnB1c2goZS50b2tlbil9Y2F0Y2h7am8oYEZpbGUgWyR7aS5uYW1lfV0gdXBsb2FkIGZhaWxlZGApLGdzKEEoVykoYGZpbGVVcGxvYWQuZmlsZXNXZXJlbnRQcm9jZXNzZWRgKSl9ZmluYWxseXt0KGkpfX1yZXR1cm4gcn0sT2Q9YXN5bmMgZT0+e2xldCB0PXEuZ2V0Q2xpZW50KCk7dHJ5e2F3YWl0IHQuY2hhdFVwbG9hZEZpbmlzaChlKX1jYXRjaHtqbyhgRmFpbGVkIHRvIGZpbmlzaCBmaWxlIHVwbG9hZCBmb3IgJHtlfWApfX0sa2Q9MWUzLEFkPTZlNCxqZD0zNmU1LE1kPTg2NGU1LE5kPTI2MjhlNixQZD0zMTUzNmU2LEZkPWU9Pk1hdGguZmxvb3IoZS9BZCkqQWQsSWQ9KGUsdCk9PkZkKG5ldyBEYXRlKGUpLmdldFRpbWUoKSk9PT1GZChuZXcgRGF0ZSh0KS5nZXRUaW1lKCkpLExkPShlLHQpPT57bGV0IG49bmV3IERhdGUoZSkscj1uZXcgRGF0ZSh0KTtyZXR1cm4gbi5nZXREYXRlKCk9PT1yLmdldERhdGUoKSYmbi5nZXRNb250aCgpPT09ci5nZXRNb250aCgpJiZuLmdldEZ1bGxZZWFyKCk9PT1yLmdldEZ1bGxZZWFyKCl9LFJkPShlLHQpPT5lLmdldFRpbWUoKS10LmdldFRpbWUoKSx6ZD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh2b2lkIDAse2hvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2B9KSxCZD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh2b2lkIDAse3llYXI6YG51bWVyaWNgLG1vbnRoOmBudW1lcmljYCxkYXk6YG51bWVyaWNgLGhvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2B9KSxWZD1lPT5MZChuZXcgRGF0ZSxlKT96ZDpCZCxIZD0oKT0+dHlwZW9mIEludGw8YHVgJiZgUmVsYXRpdmVUaW1lRm9ybWF0YGluIEludGwsVWQ9ZT0+SGQoKT9uZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQoZSx7bnVtZXJpYzpgYXV0b2B9KTpudWxsLFdkPVt7dW5pdDpgeWVhcmAsYW1vdW50OlBkfSx7dW5pdDpgbW9udGhgLGFtb3VudDpOZH0se3VuaXQ6YGRheWAsYW1vdW50Ok1kfSx7dW5pdDpgaG91cmAsYW1vdW50OmpkfSx7dW5pdDpgbWludXRlYCxhbW91bnQ6QWR9LHt1bml0OmBzZWNvbmRgLGFtb3VudDprZH1dLEdkPShlLHQpPT57bGV0IG49VWQodCk7aWYoIW4pcmV0dXJuIEgoYFJlbGF0aXZlIHRpbWUgZm9ybWF0IG5vdCBzdXBwb3J0ZWRgKSxgYDtmb3IobGV0e3VuaXQ6dCxhbW91bnQ6cn1vZiBXZCl7aWYodD09PWBzZWNvbmRgKXJldHVybiBuLmZvcm1hdCgwLGBzZWNvbmRgKTtpZihNYXRoLmFicyhlKT5yKXJldHVybiBuLmZvcm1hdChNYXRoLnJvdW5kKGUvciksdCl9cmV0dXJuYGB9LEtkPShlLHQ9MzAwKT0+e2xldCBuO3JldHVybiguLi5yKT0+e258fD0oZSguLi5yKSxzZXRUaW1lb3V0KCgpPT5uPW51bGwsdCkpfX0scWQ9L1tcMC1cdUQ3RkZcdUUwMDAtXHVGRkZGXXxbXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyxKZD0vW1wwLVx4MUZceDdGLVx4OUZdLyxZZD0vWyEtIyUtXCosLVwvOjtcP0BcWy1cXV9ce1x9XHhBMVx4QTdceEFCXHhCNlx4QjdceEJCXHhCRlx1MDM3RVx1MDM4N1x1MDU1QS1cdTA1NUZcdTA1ODlcdTA1OEFcdTA1QkVcdTA1QzBcdTA1QzNcdTA1QzZcdTA1RjNcdTA1RjRcdTA2MDlcdTA2MEFcdTA2MENcdTA2MERcdTA2MUJcdTA2MUQtXHUwNjFGXHUwNjZBLVx1MDY2RFx1MDZENFx1MDcwMC1cdTA3MERcdTA3RjctXHUwN0Y5XHUwODMwLVx1MDgzRVx1MDg1RVx1MDk2NFx1MDk2NVx1MDk3MFx1MDlGRFx1MEE3Nlx1MEFGMFx1MEM3N1x1MEM4NFx1MERGNFx1MEU0Rlx1MEU1QVx1MEU1Qlx1MEYwNC1cdTBGMTJcdTBGMTRcdTBGM0EtXHUwRjNEXHUwRjg1XHUwRkQwLVx1MEZENFx1MEZEOVx1MEZEQVx1MTA0QS1cdTEwNEZcdTEwRkJcdTEzNjAtXHUxMzY4XHUxNDAwXHUxNjZFXHUxNjlCXHUxNjlDXHUxNkVCLVx1MTZFRFx1MTczNVx1MTczNlx1MTdENC1cdTE3RDZcdTE3RDgtXHUxN0RBXHUxODAwLVx1MTgwQVx1MTk0NFx1MTk0NVx1MUExRVx1MUExRlx1MUFBMC1cdTFBQTZcdTFBQTgtXHUxQUFEXHUxQjVBLVx1MUI2MFx1MUI3RFx1MUI3RVx1MUJGQy1cdTFCRkZcdTFDM0ItXHUxQzNGXHUxQzdFXHUxQzdGXHUxQ0MwLVx1MUNDN1x1MUNEM1x1MjAxMC1cdTIwMjdcdTIwMzAtXHUyMDQzXHUyMDQ1LVx1MjA1MVx1MjA1My1cdTIwNUVcdTIwN0RcdTIwN0VcdTIwOERcdTIwOEVcdTIzMDgtXHUyMzBCXHUyMzI5XHUyMzJBXHUyNzY4LVx1Mjc3NVx1MjdDNVx1MjdDNlx1MjdFNi1cdTI3RUZcdTI5ODMtXHUyOTk4XHUyOUQ4LVx1MjlEQlx1MjlGQ1x1MjlGRFx1MkNGOS1cdTJDRkNcdTJDRkVcdTJDRkZcdTJENzBcdTJFMDAtXHUyRTJFXHUyRTMwLVx1MkU0Rlx1MkU1Mi1cdTJFNURcdTMwMDEtXHUzMDAzXHUzMDA4LVx1MzAxMVx1MzAxNC1cdTMwMUZcdTMwMzBcdTMwM0RcdTMwQTBcdTMwRkJcdUE0RkVcdUE0RkZcdUE2MEQtXHVBNjBGXHVBNjczXHVBNjdFXHVBNkYyLVx1QTZGN1x1QTg3NC1cdUE4NzdcdUE4Q0VcdUE4Q0ZcdUE4RjgtXHVBOEZBXHVBOEZDXHVBOTJFXHVBOTJGXHVBOTVGXHVBOUMxLVx1QTlDRFx1QTlERVx1QTlERlx1QUE1Qy1cdUFBNUZcdUFBREVcdUFBREZcdUFBRjBcdUFBRjFcdUFCRUJcdUZEM0VcdUZEM0ZcdUZFMTAtXHVGRTE5XHVGRTMwLVx1RkU1Mlx1RkU1NC1cdUZFNjFcdUZFNjNcdUZFNjhcdUZFNkFcdUZFNkJcdUZGMDEtXHVGRjAzXHVGRjA1LVx1RkYwQVx1RkYwQy1cdUZGMEZcdUZGMUFcdUZGMUJcdUZGMUZcdUZGMjBcdUZGM0ItXHVGRjNEXHVGRjNGXHVGRjVCXHVGRjVEXHVGRjVGLVx1RkY2NV18XHVEODAwW1x1REQwMC1cdUREMDJcdURGOUZcdURGRDBdfFx1RDgwMVx1REQ2RnxcdUQ4MDJbXHVEQzU3XHVERDFGXHVERDNGXHVERTUwLVx1REU1OFx1REU3Rlx1REVGMC1cdURFRjZcdURGMzktXHVERjNGXHVERjk5LVx1REY5Q118XHVEODAzW1x1REVBRFx1REY1NS1cdURGNTlcdURGODYtXHVERjg5XXxcdUQ4MDRbXHVEQzQ3LVx1REM0RFx1RENCQlx1RENCQ1x1RENCRS1cdURDQzFcdURENDAtXHVERDQzXHVERDc0XHVERDc1XHVEREM1LVx1RERDOFx1RERDRFx1REREQlx1RERERC1cdUREREZcdURFMzgtXHVERTNEXHVERUE5XXxcdUQ4MDVbXHVEQzRCLVx1REM0Rlx1REM1QVx1REM1Qlx1REM1RFx1RENDNlx1RERDMS1cdURERDdcdURFNDEtXHVERTQzXHVERTYwLVx1REU2Q1x1REVCOVx1REYzQy1cdURGM0VdfFx1RDgwNltcdURDM0JcdURENDQtXHVERDQ2XHVEREUyXHVERTNGLVx1REU0Nlx1REU5QS1cdURFOUNcdURFOUUtXHVERUEyXHVERjAwLVx1REYwOV18XHVEODA3W1x1REM0MS1cdURDNDVcdURDNzBcdURDNzFcdURFRjdcdURFRjhcdURGNDMtXHVERjRGXHVERkZGXXxcdUQ4MDlbXHVEQzcwLVx1REM3NF18XHVEODBCW1x1REZGMVx1REZGMl18XHVEODFBW1x1REU2RVx1REU2Rlx1REVGNVx1REYzNy1cdURGM0JcdURGNDRdfFx1RDgxQltcdURFOTctXHVERTlBXHVERkUyXXxcdUQ4MkZcdURDOUZ8XHVEODM2W1x1REU4Ny1cdURFOEJdfFx1RDgzQVtcdURENUVcdURENUZdLyxYZD0vWyBceEEwXHUxNjgwXHUyMDAwLVx1MjAwQVx1MjAyOFx1MjAyOVx1MjAyRlx1MjA1Rlx1MzAwMF0vO2Z1bmN0aW9uIFpkKGUpe2xldCB0PXt9O2V8fD17fSx0LnNyY19Bbnk9cWQuc291cmNlLHQuc3JjX0NjPUpkLnNvdXJjZSx0LnNyY19aPVhkLnNvdXJjZSx0LnNyY19QPVlkLnNvdXJjZSx0LnNyY19aUENjPVt0LnNyY19aLHQuc3JjX1AsdC5zcmNfQ2NdLmpvaW4oYHxgKSx0LnNyY19aQ2M9W3Quc3JjX1osdC5zcmNfQ2NdLmpvaW4oYHxgKTtsZXQgbj1gWz48772cXWA7cmV0dXJuIHQuc3JjX3BzZXVkb19sZXR0ZXI9YCg/Oig/IWArbitgfGArdC5zcmNfWlBDYytgKWArdC5zcmNfQW55K2ApYCx0LnNyY19pcDQ9YCg/OigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKXszfSgyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pYCx0LnNyY19hdXRoPWAoPzooPzooPyFgK3Quc3JjX1pDYytgfFtAL1xcW1xcXSgpXSkuKStAKT9gLHQuc3JjX3BvcnQ9YCg/OjooPzo2KD86WzAtNF1cXGR7M318NSg/OlswLTRdXFxkezJ9fDUoPzpbMC0yXVxcZHwzWzAtNV0pKSl8WzEtNV0/XFxkezEsNH0pKT9gLHQuc3JjX2hvc3RfdGVybWluYXRvcj1gKD89JHxgK24rYHxgK3Quc3JjX1pQQ2MrYCkoPyFgKyhlW2AtLS1gXT9gLSg/IS0tKXxgOmAtfGApK2BffDpcXGR8XFwuLXxcXC4oPyEkfGArdC5zcmNfWlBDYytgKSlgLHQuc3JjX3BhdGg9YCg/OlsvPyNdKD86KD8hYCt0LnNyY19aQ2MrYHxbPjzvvZxdfFsoKVtcXF17fS4sIic/IVxcLTtdKS58XFxbKD86KD8hYCt0LnNyY19aQ2MrYHxcXF0pLikqXFxdfFxcKCg/Oig/IWArdC5zcmNfWkNjK2B8WyldKS4pKlxcKXxcXHsoPzooPyFgK3Quc3JjX1pDYytgfFt9XSkuKSpcXH18XFwiKD86KD8hYCt0LnNyY19aQ2MrYHxbIl0pLikrXFwifFxcJyg/Oig/IWArdC5zcmNfWkNjK2B8WyddKS4pK1xcJ3xcXCcoPz1gK3Quc3JjX3BzZXVkb19sZXR0ZXIrYHxbLV0pfFxcLnsyLH1bYS16QS1aMC05JS8mXXxcXC4oPyFgK3Quc3JjX1pDYytgfFsuXXwkKXxgKyhlW2AtLS1gXT9gXFwtKD8hLS0oPzpbXi1dfCQpKSg/Oi0qKXxgOmBcXC0rfGApK2AsKD8hYCt0LnNyY19aQ2MrYHwkKXw7KD8hYCt0LnNyY19aQ2MrYHwkKXxcXCErKD8hYCt0LnNyY19aQ2MrYHxbIV18JCl8XFw/KD8hYCt0LnNyY19aQ2MrYHxbP118JCkpK3xcXC8pP2AsdC5zcmNfZW1haWxfbmFtZT1gW1xcLTs6Jj1cXCtcXCQsXFwuYS16QS1aMC05X11bXFwtOzomPVxcK1xcJCxcXCJcXC5hLXpBLVowLTlfXSpgLHQuc3JjX3huPWB4bi0tW2EtejAtOVxcLV17MSw1OX1gLHQuc3JjX2RvbWFpbl9yb290PWAoPzpgK3Quc3JjX3huK2B8YCt0LnNyY19wc2V1ZG9fbGV0dGVyK2B7MSw2M30pYCx0LnNyY19kb21haW49YCg/OmArdC5zcmNfeG4rYHwoPzpgK3Quc3JjX3BzZXVkb19sZXR0ZXIrYCl8KD86YCt0LnNyY19wc2V1ZG9fbGV0dGVyK2AoPzotfGArdC5zcmNfcHNldWRvX2xldHRlcitgKXswLDYxfWArdC5zcmNfcHNldWRvX2xldHRlcitgKSlgLHQuc3JjX2hvc3Q9YCg/Oig/Oig/Oig/OmArdC5zcmNfZG9tYWluK2ApXFwuKSpgK3Quc3JjX2RvbWFpbitgKSlgLHQudHBsX2hvc3RfZnV6enk9YCg/OmArdC5zcmNfaXA0K2B8KD86KD86KD86YCt0LnNyY19kb21haW4rYClcXC4pKyg/OiVUTERTJSkpKWAsdC50cGxfaG9zdF9ub19pcF9mdXp6eT1gKD86KD86KD86YCt0LnNyY19kb21haW4rYClcXC4pKyg/OiVUTERTJSkpYCx0LnNyY19ob3N0X3N0cmljdD10LnNyY19ob3N0K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnRwbF9ob3N0X2Z1enp5X3N0cmljdD10LnRwbF9ob3N0X2Z1enp5K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnNyY19ob3N0X3BvcnRfc3RyaWN0PXQuc3JjX2hvc3QrdC5zcmNfcG9ydCt0LnNyY19ob3N0X3Rlcm1pbmF0b3IsdC50cGxfaG9zdF9wb3J0X2Z1enp5X3N0cmljdD10LnRwbF9ob3N0X2Z1enp5K3Quc3JjX3BvcnQrdC5zcmNfaG9zdF90ZXJtaW5hdG9yLHQudHBsX2hvc3RfcG9ydF9ub19pcF9mdXp6eV9zdHJpY3Q9dC50cGxfaG9zdF9ub19pcF9mdXp6eSt0LnNyY19wb3J0K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnRwbF9ob3N0X2Z1enp5X3Rlc3Q9YGxvY2FsaG9zdHx3d3dcXC58XFwuXFxkezEsM31cXC58KD86XFwuKD86JVRMRFMlKSg/OmArdC5zcmNfWlBDYytgfD58JCkpYCx0LnRwbF9lbWFpbF9mdXp6eT1gKF58YCtuK2B8InxcXCh8YCt0LnNyY19aQ2MrYCkoYCt0LnNyY19lbWFpbF9uYW1lK2BAYCt0LnRwbF9ob3N0X2Z1enp5X3N0cmljdCtgKWAsdC50cGxfbGlua19mdXp6eT0iKF58KD8hWy46L1xcLV9AXSkoPzpbJCs8PT5eYHzvvZxdfCIrdC5zcmNfWlBDYysiKSkoKD8hWyQrPD0+XmB8772cXSkiK3QudHBsX2hvc3RfcG9ydF9mdXp6eV9zdHJpY3QrdC5zcmNfcGF0aCtgKWAsdC50cGxfbGlua19ub19pcF9mdXp6eT0iKF58KD8hWy46L1xcLV9AXSkoPzpbJCs8PT5eYHzvvZxdfCIrdC5zcmNfWlBDYysiKSkoKD8hWyQrPD0+XmB8772cXSkiK3QudHBsX2hvc3RfcG9ydF9ub19pcF9mdXp6eV9zdHJpY3QrdC5zcmNfcGF0aCtgKWAsdH1mdW5jdGlvbiBRZChlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLmZvckVhY2goZnVuY3Rpb24odCl7dCYmT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXtlW25dPXRbbl19KX0pLGV9ZnVuY3Rpb24gJGQoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBlZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBTdHJpbmddYH1mdW5jdGlvbiB0ZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBPYmplY3RdYH1mdW5jdGlvbiBuZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBSZWdFeHBdYH1mdW5jdGlvbiByZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBGdW5jdGlvbl1gfWZ1bmN0aW9uIGFmKGUpe3JldHVybiBlLnJlcGxhY2UoL1suPyorXiRbXF1cXCgpe318LV0vZyxgXFwkJmApfXZhciBvZj17ZnV6enlMaW5rOiEwLGZ1enp5RW1haWw6ITAsZnV6enlJUDohMX07ZnVuY3Rpb24gc2YoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGV8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8b2YuaGFzT3duUHJvcGVydHkodCl9LCExKX12YXIgY2Y9eyJodHRwOiI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLmh0dHB8fChuLnJlLmh0dHA9UmVnRXhwKGBeXFwvXFwvYCtuLnJlLnNyY19hdXRoK24ucmUuc3JjX2hvc3RfcG9ydF9zdHJpY3Qrbi5yZS5zcmNfcGF0aCxgaWApKSxuLnJlLmh0dHAudGVzdChyKT9yLm1hdGNoKG4ucmUuaHR0cClbMF0ubGVuZ3RoOjB9fSwiaHR0cHM6IjpgaHR0cDpgLCJmdHA6IjpgaHR0cDpgLCIvLyI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLm5vX2h0dHB8fChuLnJlLm5vX2h0dHA9UmVnRXhwKGBeYCtuLnJlLnNyY19hdXRoK2AoPzpsb2NhbGhvc3R8KD86KD86YCtuLnJlLnNyY19kb21haW4rYClcXC4pK2Arbi5yZS5zcmNfZG9tYWluX3Jvb3QrYClgK24ucmUuc3JjX3BvcnQrbi5yZS5zcmNfaG9zdF90ZXJtaW5hdG9yK24ucmUuc3JjX3BhdGgsYGlgKSksbi5yZS5ub19odHRwLnRlc3Qocik/dD49MyYmZVt0LTNdPT09YDpgfHx0Pj0zJiZlW3QtM109PT1gL2A/MDpyLm1hdGNoKG4ucmUubm9faHR0cClbMF0ubGVuZ3RoOjB9fSwibWFpbHRvOiI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLm1haWx0b3x8KG4ucmUubWFpbHRvPVJlZ0V4cChgXmArbi5yZS5zcmNfZW1haWxfbmFtZStgQGArbi5yZS5zcmNfaG9zdF9zdHJpY3QsYGlgKSksbi5yZS5tYWlsdG8udGVzdChyKT9yLm1hdGNoKG4ucmUubWFpbHRvKVswXS5sZW5ndGg6MH19fSxsZj1gYVtjZGVmZ2lsbW5vcXJzdHV3eHpdfGJbYWJkZWZnaGlqbW5vcnN0dnd5el18Y1thY2RmZ2hpa2xtbm9ydXZ3eHl6XXxkW2Vqa21vel18ZVtjZWdyc3R1XXxmW2lqa21vcl18Z1thYmRlZmdoaWxtbnBxcnN0dXd5XXxoW2ttbnJ0dV18aVtkZWxtbm9xcnN0XXxqW2Vtb3BdfGtbZWdoaW1ucHJ3eXpdfGxbYWJjaWtyc3R1dnldfG1bYWNkZWdoa2xtbm9wcXJzdHV2d3h5el18blthY2VmZ2lsb3BydXpdfG9tfHBbYWVmZ2hrbG1ucnN0d3ldfHFhfHJbZW9zdXddfHNbYWJjZGVnaGlqa2xtbm9ydHV2eHl6XXx0W2NkZmdoamtsbW5vcnR2d3pdfHVbYWdrc3l6XXx2W2FjZWdpbnVdfHdbZnNdfHlbZXRdfHpbYW13XWAsdWY9YGJpenxjb218ZWR1fGdvdnxuZXR8b3JnfHByb3x3ZWJ8eHh4fGFlcm98YXNpYXxjb29wfGluZm98bXVzZXVtfG5hbWV8c2hvcHzRgNGEYC5zcGxpdChgfGApO2Z1bmN0aW9uIGRmKGUpe2UuX19pbmRleF9fPS0xLGUuX190ZXh0X2NhY2hlX189YGB9ZnVuY3Rpb24gZmYoZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7bGV0IHI9dC5zbGljZShuKTtyZXR1cm4gZS50ZXN0KHIpP3IubWF0Y2goZSlbMF0ubGVuZ3RoOjB9fWZ1bmN0aW9uIHBmKCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dC5ub3JtYWxpemUoZSl9fWZ1bmN0aW9uIG1mKGUpe2xldCB0PWUucmU9WmQoZS5fX29wdHNfXyksbj1lLl9fdGxkc19fLnNsaWNlKCk7ZS5vbkNvbXBpbGUoKSxlLl9fdGxkc19yZXBsYWNlZF9ffHxuLnB1c2gobGYpLG4ucHVzaCh0LnNyY194biksdC5zcmNfdGxkcz1uLmpvaW4oYHxgKTtmdW5jdGlvbiByKGUpe3JldHVybiBlLnJlcGxhY2UoYCVUTERTJWAsdC5zcmNfdGxkcyl9dC5lbWFpbF9mdXp6eT1SZWdFeHAocih0LnRwbF9lbWFpbF9mdXp6eSksYGlgKSx0LmxpbmtfZnV6enk9UmVnRXhwKHIodC50cGxfbGlua19mdXp6eSksYGlgKSx0Lmxpbmtfbm9faXBfZnV6enk9UmVnRXhwKHIodC50cGxfbGlua19ub19pcF9mdXp6eSksYGlgKSx0Lmhvc3RfZnV6enlfdGVzdD1SZWdFeHAocih0LnRwbF9ob3N0X2Z1enp5X3Rlc3QpLGBpYCk7bGV0IGk9W107ZS5fX2NvbXBpbGVkX189e307ZnVuY3Rpb24gYShlLHQpe3Rocm93IEVycm9yKGAoTGlua2lmeUl0KSBJbnZhbGlkIHNjaGVtYSAiYCtlK2AiOiBgK3QpfU9iamVjdC5rZXlzKGUuX19zY2hlbWFzX18pLmZvckVhY2goZnVuY3Rpb24odCl7bGV0IG49ZS5fX3NjaGVtYXNfX1t0XTtpZihuPT09bnVsbClyZXR1cm47bGV0IHI9e3ZhbGlkYXRlOm51bGwsbGluazpudWxsfTtpZihlLl9fY29tcGlsZWRfX1t0XT1yLHRmKG4pKXtuZihuLnZhbGlkYXRlKT9yLnZhbGlkYXRlPWZmKG4udmFsaWRhdGUpOnJmKG4udmFsaWRhdGUpP3IudmFsaWRhdGU9bi52YWxpZGF0ZTphKHQsbikscmYobi5ub3JtYWxpemUpP3Iubm9ybWFsaXplPW4ubm9ybWFsaXplOm4ubm9ybWFsaXplP2EodCxuKTpyLm5vcm1hbGl6ZT1wZigpO3JldHVybn1pZihlZihuKSl7aS5wdXNoKHQpO3JldHVybn1hKHQsbil9KSxpLmZvckVhY2goZnVuY3Rpb24odCl7ZS5fX2NvbXBpbGVkX19bZS5fX3NjaGVtYXNfX1t0XV0mJihlLl9fY29tcGlsZWRfX1t0XS52YWxpZGF0ZT1lLl9fY29tcGlsZWRfX1tlLl9fc2NoZW1hc19fW3RdXS52YWxpZGF0ZSxlLl9fY29tcGlsZWRfX1t0XS5ub3JtYWxpemU9ZS5fX2NvbXBpbGVkX19bZS5fX3NjaGVtYXNfX1t0XV0ubm9ybWFsaXplKX0pLGUuX19jb21waWxlZF9fW2BgXT17dmFsaWRhdGU6bnVsbCxub3JtYWxpemU6cGYoKX07bGV0IG89T2JqZWN0LmtleXMoZS5fX2NvbXBpbGVkX18pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MCYmZS5fX2NvbXBpbGVkX19bdF19KS5tYXAoYWYpLmpvaW4oYHxgKTtlLnJlLnNjaGVtYV90ZXN0PVJlZ0V4cChgKF58KD8hXykoPzpbPjzvvZxdfGArdC5zcmNfWlBDYytgKSkoYCtvK2ApYCxgaWApLGUucmUuc2NoZW1hX3NlYXJjaD1SZWdFeHAoYChefCg/IV8pKD86Wz48772cXXxgK3Quc3JjX1pQQ2MrYCkpKGArbytgKWAsYGlnYCksZS5yZS5zY2hlbWFfYXRfc3RhcnQ9UmVnRXhwKGBeYCtlLnJlLnNjaGVtYV9zZWFyY2guc291cmNlLGBpYCksZS5yZS5wcmV0ZXN0PVJlZ0V4cChgKGArZS5yZS5zY2hlbWFfdGVzdC5zb3VyY2UrYCl8KGArZS5yZS5ob3N0X2Z1enp5X3Rlc3Quc291cmNlK2ApfEBgLGBpYCksZGYoZSl9ZnVuY3Rpb24gaGYoZSx0KXtsZXQgbj1lLl9faW5kZXhfXyxyPWUuX19sYXN0X2luZGV4X18saT1lLl9fdGV4dF9jYWNoZV9fLnNsaWNlKG4scik7dGhpcy5zY2hlbWE9ZS5fX3NjaGVtYV9fLnRvTG93ZXJDYXNlKCksdGhpcy5pbmRleD1uK3QsdGhpcy5sYXN0SW5kZXg9cit0LHRoaXMucmF3PWksdGhpcy50ZXh0PWksdGhpcy51cmw9aX1mdW5jdGlvbiBnZihlLHQpe2xldCBuPW5ldyBoZihlLHQpO3JldHVybiBlLl9fY29tcGlsZWRfX1tuLnNjaGVtYV0ubm9ybWFsaXplKG4sZSksbn1mdW5jdGlvbiBfZihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIF9mKSlyZXR1cm4gbmV3IF9mKGUsdCk7dHx8c2YoZSkmJih0PWUsZT17fSksdGhpcy5fX29wdHNfXz1RZCh7fSxvZix0KSx0aGlzLl9faW5kZXhfXz0tMSx0aGlzLl9fbGFzdF9pbmRleF9fPS0xLHRoaXMuX19zY2hlbWFfXz1gYCx0aGlzLl9fdGV4dF9jYWNoZV9fPWBgLHRoaXMuX19zY2hlbWFzX189UWQoe30sY2YsZSksdGhpcy5fX2NvbXBpbGVkX189e30sdGhpcy5fX3RsZHNfXz11Zix0aGlzLl9fdGxkc19yZXBsYWNlZF9fPSExLHRoaXMucmU9e30sbWYodGhpcyl9X2YucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9fc2NoZW1hc19fW2VdPXQsbWYodGhpcyksdGhpc30sX2YucHJvdG90eXBlLnNldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX29wdHNfXz1RZCh0aGlzLl9fb3B0c19fLGUpLHRoaXN9LF9mLnByb3RvdHlwZS50ZXN0PWZ1bmN0aW9uKGUpe2lmKHRoaXMuX190ZXh0X2NhY2hlX189ZSx0aGlzLl9faW5kZXhfXz0tMSwhZS5sZW5ndGgpcmV0dXJuITE7bGV0IHQsbixyLGksYSxvLHMsYyxsO2lmKHRoaXMucmUuc2NoZW1hX3Rlc3QudGVzdChlKSl7Zm9yKHM9dGhpcy5yZS5zY2hlbWFfc2VhcmNoLHMubGFzdEluZGV4PTA7KHQ9cy5leGVjKGUpKSE9PW51bGw7KWlmKGk9dGhpcy50ZXN0U2NoZW1hQXQoZSx0WzJdLHMubGFzdEluZGV4KSxpKXt0aGlzLl9fc2NoZW1hX189dFsyXSx0aGlzLl9faW5kZXhfXz10LmluZGV4K3RbMV0ubGVuZ3RoLHRoaXMuX19sYXN0X2luZGV4X189dC5pbmRleCt0WzBdLmxlbmd0aCtpO2JyZWFrfX1yZXR1cm4gdGhpcy5fX29wdHNfXy5mdXp6eUxpbmsmJnRoaXMuX19jb21waWxlZF9fW2BodHRwOmBdJiYoYz1lLnNlYXJjaCh0aGlzLnJlLmhvc3RfZnV6enlfdGVzdCksYz49MCYmKHRoaXMuX19pbmRleF9fPDB8fGM8dGhpcy5fX2luZGV4X18pJiYobj1lLm1hdGNoKHRoaXMuX19vcHRzX18uZnV6enlJUD90aGlzLnJlLmxpbmtfZnV6enk6dGhpcy5yZS5saW5rX25vX2lwX2Z1enp5KSkhPT1udWxsJiYoYT1uLmluZGV4K25bMV0ubGVuZ3RoLCh0aGlzLl9faW5kZXhfXzwwfHxhPHRoaXMuX19pbmRleF9fKSYmKHRoaXMuX19zY2hlbWFfXz1gYCx0aGlzLl9faW5kZXhfXz1hLHRoaXMuX19sYXN0X2luZGV4X189bi5pbmRleCtuWzBdLmxlbmd0aCkpKSx0aGlzLl9fb3B0c19fLmZ1enp5RW1haWwmJnRoaXMuX19jb21waWxlZF9fW2BtYWlsdG86YF0mJihsPWUuaW5kZXhPZihgQGApLGw+PTAmJihyPWUubWF0Y2godGhpcy5yZS5lbWFpbF9mdXp6eSkpIT09bnVsbCYmKGE9ci5pbmRleCtyWzFdLmxlbmd0aCxvPXIuaW5kZXgrclswXS5sZW5ndGgsKHRoaXMuX19pbmRleF9fPDB8fGE8dGhpcy5fX2luZGV4X198fGE9PT10aGlzLl9faW5kZXhfXyYmbz50aGlzLl9fbGFzdF9pbmRleF9fKSYmKHRoaXMuX19zY2hlbWFfXz1gbWFpbHRvOmAsdGhpcy5fX2luZGV4X189YSx0aGlzLl9fbGFzdF9pbmRleF9fPW8pKSksdGhpcy5fX2luZGV4X18+PTB9LF9mLnByb3RvdHlwZS5wcmV0ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlLnByZXRlc3QudGVzdChlKX0sX2YucHJvdG90eXBlLnRlc3RTY2hlbWFBdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuX19jb21waWxlZF9fW3QudG9Mb3dlckNhc2UoKV0/dGhpcy5fX2NvbXBpbGVkX19bdC50b0xvd2VyQ2FzZSgpXS52YWxpZGF0ZShlLG4sdGhpcyk6MH0sX2YucHJvdG90eXBlLm1hdGNoPWZ1bmN0aW9uKGUpe2xldCB0PVtdLG49MDt0aGlzLl9faW5kZXhfXz49MCYmdGhpcy5fX3RleHRfY2FjaGVfXz09PWUmJih0LnB1c2goZ2YodGhpcyxuKSksbj10aGlzLl9fbGFzdF9pbmRleF9fKTtsZXQgcj1uP2Uuc2xpY2Uobik6ZTtmb3IoO3RoaXMudGVzdChyKTspdC5wdXNoKGdmKHRoaXMsbikpLHI9ci5zbGljZSh0aGlzLl9fbGFzdF9pbmRleF9fKSxuKz10aGlzLl9fbGFzdF9pbmRleF9fO3JldHVybiB0Lmxlbmd0aD90Om51bGx9LF9mLnByb3RvdHlwZS5tYXRjaEF0U3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fX3RleHRfY2FjaGVfXz1lLHRoaXMuX19pbmRleF9fPS0xLCFlLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgdD10aGlzLnJlLnNjaGVtYV9hdF9zdGFydC5leGVjKGUpO2lmKCF0KXJldHVybiBudWxsO2xldCBuPXRoaXMudGVzdFNjaGVtYUF0KGUsdFsyXSx0WzBdLmxlbmd0aCk7cmV0dXJuIG4/KHRoaXMuX19zY2hlbWFfXz10WzJdLHRoaXMuX19pbmRleF9fPXQuaW5kZXgrdFsxXS5sZW5ndGgsdGhpcy5fX2xhc3RfaW5kZXhfXz10LmluZGV4K3RbMF0ubGVuZ3RoK24sZ2YodGhpcywwKSk6bnVsbH0sX2YucHJvdG90eXBlLnRsZHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdLHQ/KHRoaXMuX190bGRzX189dGhpcy5fX3RsZHNfXy5jb25jYXQoZSkuc29ydCgpLmZpbHRlcihmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUhPT1uW3QtMV19KS5yZXZlcnNlKCksbWYodGhpcyksdGhpcyk6KHRoaXMuX190bGRzX189ZS5zbGljZSgpLHRoaXMuX190bGRzX3JlcGxhY2VkX189ITAsbWYodGhpcyksdGhpcyl9LF9mLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7ZS5zY2hlbWF8fChlLnVybD1gaHR0cDovL2ArZS51cmwpLGUuc2NoZW1hPT09YG1haWx0bzpgJiYhL15tYWlsdG86L2kudGVzdChlLnVybCkmJihlLnVybD1gbWFpbHRvOmArZS51cmwpfSxfZi5wcm90b3R5cGUub25Db21waWxlPWZ1bmN0aW9uKCl7fTt2YXIgdmY9SlNPTi5wYXJzZShgWyJhYWEiLCJhYXJwIiwiYWJiIiwiYWJib3R0IiwiYWJidmllIiwiYWJjIiwiYWJsZSIsImFib2dhZG8iLCJhYnVkaGFiaSIsImFjIiwiYWNhZGVteSIsImFjY2VudHVyZSIsImFjY291bnRhbnQiLCJhY2NvdW50YW50cyIsImFjbyIsImFjdG9yIiwiYWQiLCJhZHMiLCJhZHVsdCIsImFlIiwiYWVnIiwiYWVybyIsImFldG5hIiwiYWYiLCJhZmwiLCJhZnJpY2EiLCJhZyIsImFnYWtoYW4iLCJhZ2VuY3kiLCJhaSIsImFpZyIsImFpcmJ1cyIsImFpcmZvcmNlIiwiYWlydGVsIiwiYWtkbiIsImFsIiwiYWxpYmFiYSIsImFsaXBheSIsImFsbGZpbmFueiIsImFsbHN0YXRlIiwiYWxseSIsImFsc2FjZSIsImFsc3RvbSIsImFtIiwiYW1hem9uIiwiYW1lcmljYW5leHByZXNzIiwiYW1lcmljYW5mYW1pbHkiLCJhbWV4IiwiYW1mYW0iLCJhbWljYSIsImFtc3RlcmRhbSIsImFuYWx5dGljcyIsImFuZHJvaWQiLCJhbnF1YW4iLCJhbnoiLCJhbyIsImFvbCIsImFwYXJ0bWVudHMiLCJhcHAiLCJhcHBsZSIsImFxIiwiYXF1YXJlbGxlIiwiYXIiLCJhcmFiIiwiYXJhbWNvIiwiYXJjaGkiLCJhcm15IiwiYXJwYSIsImFydCIsImFydGUiLCJhcyIsImFzZGEiLCJhc2lhIiwiYXNzb2NpYXRlcyIsImF0IiwiYXRobGV0YSIsImF0dG9ybmV5IiwiYXUiLCJhdWN0aW9uIiwiYXVkaSIsImF1ZGlibGUiLCJhdWRpbyIsImF1c3Bvc3QiLCJhdXRob3IiLCJhdXRvIiwiYXV0b3MiLCJhdyIsImF3cyIsImF4IiwiYXhhIiwiYXoiLCJhenVyZSIsImJhIiwiYmFieSIsImJhaWR1IiwiYmFuYW1leCIsImJhbmQiLCJiYW5rIiwiYmFyIiwiYmFyY2Vsb25hIiwiYmFyY2xheWNhcmQiLCJiYXJjbGF5cyIsImJhcmVmb290IiwiYmFyZ2FpbnMiLCJiYXNlYmFsbCIsImJhc2tldGJhbGwiLCJiYXVoYXVzIiwiYmF5ZXJuIiwiYmIiLCJiYmMiLCJiYnQiLCJiYnZhIiwiYmNnIiwiYmNuIiwiYmQiLCJiZSIsImJlYXRzIiwiYmVhdXR5IiwiYmVlciIsImJlcmxpbiIsImJlc3QiLCJiZXN0YnV5IiwiYmV0IiwiYmYiLCJiZyIsImJoIiwiYmhhcnRpIiwiYmkiLCJiaWJsZSIsImJpZCIsImJpa2UiLCJiaW5nIiwiYmluZ28iLCJiaW8iLCJiaXoiLCJiaiIsImJsYWNrIiwiYmxhY2tmcmlkYXkiLCJibG9ja2J1c3RlciIsImJsb2ciLCJibG9vbWJlcmciLCJibHVlIiwiYm0iLCJibXMiLCJibXciLCJibiIsImJucHBhcmliYXMiLCJibyIsImJvYXRzIiwiYm9laHJpbmdlciIsImJvZmEiLCJib20iLCJib25kIiwiYm9vIiwiYm9vayIsImJvb2tpbmciLCJib3NjaCIsImJvc3RpayIsImJvc3RvbiIsImJvdCIsImJvdXRpcXVlIiwiYm94IiwiYnIiLCJicmFkZXNjbyIsImJyaWRnZXN0b25lIiwiYnJvYWR3YXkiLCJicm9rZXIiLCJicm90aGVyIiwiYnJ1c3NlbHMiLCJicyIsImJ0IiwiYnVpbGQiLCJidWlsZGVycyIsImJ1c2luZXNzIiwiYnV5IiwiYnV6eiIsImJ2IiwiYnciLCJieSIsImJ6IiwiYnpoIiwiY2EiLCJjYWIiLCJjYWZlIiwiY2FsIiwiY2FsbCIsImNhbHZpbmtsZWluIiwiY2FtIiwiY2FtZXJhIiwiY2FtcCIsImNhbm9uIiwiY2FwZXRvd24iLCJjYXBpdGFsIiwiY2FwaXRhbG9uZSIsImNhciIsImNhcmF2YW4iLCJjYXJkcyIsImNhcmUiLCJjYXJlZXIiLCJjYXJlZXJzIiwiY2FycyIsImNhc2EiLCJjYXNlIiwiY2FzaCIsImNhc2lubyIsImNhdCIsImNhdGVyaW5nIiwiY2F0aG9saWMiLCJjYmEiLCJjYm4iLCJjYnJlIiwiY2MiLCJjZCIsImNlbnRlciIsImNlbyIsImNlcm4iLCJjZiIsImNmYSIsImNmZCIsImNnIiwiY2giLCJjaGFuZWwiLCJjaGFubmVsIiwiY2hhcml0eSIsImNoYXNlIiwiY2hhdCIsImNoZWFwIiwiY2hpbnRhaSIsImNocmlzdG1hcyIsImNocm9tZSIsImNodXJjaCIsImNpIiwiY2lwcmlhbmkiLCJjaXJjbGUiLCJjaXNjbyIsImNpdGFkZWwiLCJjaXRpIiwiY2l0aWMiLCJjaXR5IiwiY2siLCJjbCIsImNsYWltcyIsImNsZWFuaW5nIiwiY2xpY2siLCJjbGluaWMiLCJjbGluaXF1ZSIsImNsb3RoaW5nIiwiY2xvdWQiLCJjbHViIiwiY2x1Ym1lZCIsImNtIiwiY24iLCJjbyIsImNvYWNoIiwiY29kZXMiLCJjb2ZmZWUiLCJjb2xsZWdlIiwiY29sb2duZSIsImNvbSIsImNvbW1iYW5rIiwiY29tbXVuaXR5IiwiY29tcGFueSIsImNvbXBhcmUiLCJjb21wdXRlciIsImNvbXNlYyIsImNvbmRvcyIsImNvbnN0cnVjdGlvbiIsImNvbnN1bHRpbmciLCJjb250YWN0IiwiY29udHJhY3RvcnMiLCJjb29raW5nIiwiY29vbCIsImNvb3AiLCJjb3JzaWNhIiwiY291bnRyeSIsImNvdXBvbiIsImNvdXBvbnMiLCJjb3Vyc2VzIiwiY3BhIiwiY3IiLCJjcmVkaXQiLCJjcmVkaXRjYXJkIiwiY3JlZGl0dW5pb24iLCJjcmlja2V0IiwiY3Jvd24iLCJjcnMiLCJjcnVpc2UiLCJjcnVpc2VzIiwiY3UiLCJjdWlzaW5lbGxhIiwiY3YiLCJjdyIsImN4IiwiY3kiLCJjeW1ydSIsImN5b3UiLCJjeiIsImRhZCIsImRhbmNlIiwiZGF0YSIsImRhdGUiLCJkYXRpbmciLCJkYXRzdW4iLCJkYXkiLCJkY2xrIiwiZGRzIiwiZGUiLCJkZWFsIiwiZGVhbGVyIiwiZGVhbHMiLCJkZWdyZWUiLCJkZWxpdmVyeSIsImRlbGwiLCJkZWxvaXR0ZSIsImRlbHRhIiwiZGVtb2NyYXQiLCJkZW50YWwiLCJkZW50aXN0IiwiZGVzaSIsImRlc2lnbiIsImRldiIsImRobCIsImRpYW1vbmRzIiwiZGlldCIsImRpZ2l0YWwiLCJkaXJlY3QiLCJkaXJlY3RvcnkiLCJkaXNjb3VudCIsImRpc2NvdmVyIiwiZGlzaCIsImRpeSIsImRqIiwiZGsiLCJkbSIsImRucCIsImRvIiwiZG9jcyIsImRvY3RvciIsImRvZyIsImRvbWFpbnMiLCJkb3QiLCJkb3dubG9hZCIsImRyaXZlIiwiZHR2IiwiZHViYWkiLCJkdXBvbnQiLCJkdXJiYW4iLCJkdmFnIiwiZHZyIiwiZHoiLCJlYXJ0aCIsImVhdCIsImVjIiwiZWNvIiwiZWRla2EiLCJlZHUiLCJlZHVjYXRpb24iLCJlZSIsImVnIiwiZW1haWwiLCJlbWVyY2siLCJlbmVyZ3kiLCJlbmdpbmVlciIsImVuZ2luZWVyaW5nIiwiZW50ZXJwcmlzZXMiLCJlcHNvbiIsImVxdWlwbWVudCIsImVyIiwiZXJpY3Nzb24iLCJlcm5pIiwiZXMiLCJlc3EiLCJlc3RhdGUiLCJldCIsImV1IiwiZXVyb3Zpc2lvbiIsImV1cyIsImV2ZW50cyIsImV4Y2hhbmdlIiwiZXhwZXJ0IiwiZXhwb3NlZCIsImV4cHJlc3MiLCJleHRyYXNwYWNlIiwiZmFnZSIsImZhaWwiLCJmYWlyd2luZHMiLCJmYWl0aCIsImZhbWlseSIsImZhbiIsImZhbnMiLCJmYXJtIiwiZmFybWVycyIsImZhc2hpb24iLCJmYXN0IiwiZmVkZXgiLCJmZWVkYmFjayIsImZlcnJhcmkiLCJmZXJyZXJvIiwiZmkiLCJmaWRlbGl0eSIsImZpZG8iLCJmaWxtIiwiZmluYWwiLCJmaW5hbmNlIiwiZmluYW5jaWFsIiwiZmlyZSIsImZpcmVzdG9uZSIsImZpcm1kYWxlIiwiZmlzaCIsImZpc2hpbmciLCJmaXQiLCJmaXRuZXNzIiwiZmoiLCJmayIsImZsaWNrciIsImZsaWdodHMiLCJmbGlyIiwiZmxvcmlzdCIsImZsb3dlcnMiLCJmbHkiLCJmbSIsImZvIiwiZm9vIiwiZm9vZCIsImZvb3RiYWxsIiwiZm9yZCIsImZvcmV4IiwiZm9yc2FsZSIsImZvcnVtIiwiZm91bmRhdGlvbiIsImZveCIsImZyIiwiZnJlZSIsImZyZXNlbml1cyIsImZybCIsImZyb2dhbnMiLCJmcm9udGllciIsImZ0ciIsImZ1aml0c3UiLCJmdW4iLCJmdW5kIiwiZnVybml0dXJlIiwiZnV0Ym9sIiwiZnlpIiwiZ2EiLCJnYWwiLCJnYWxsZXJ5IiwiZ2FsbG8iLCJnYWxsdXAiLCJnYW1lIiwiZ2FtZXMiLCJnYXAiLCJnYXJkZW4iLCJnYXkiLCJnYiIsImdiaXoiLCJnZCIsImdkbiIsImdlIiwiZ2VhIiwiZ2VudCIsImdlbnRpbmciLCJnZW9yZ2UiLCJnZiIsImdnIiwiZ2dlZSIsImdoIiwiZ2kiLCJnaWZ0IiwiZ2lmdHMiLCJnaXZlcyIsImdpdmluZyIsImdsIiwiZ2xhc3MiLCJnbGUiLCJnbG9iYWwiLCJnbG9ibyIsImdtIiwiZ21haWwiLCJnbWJoIiwiZ21vIiwiZ214IiwiZ24iLCJnb2RhZGR5IiwiZ29sZCIsImdvbGRwb2ludCIsImdvbGYiLCJnb28iLCJnb29keWVhciIsImdvb2ciLCJnb29nbGUiLCJnb3AiLCJnb3QiLCJnb3YiLCJncCIsImdxIiwiZ3IiLCJncmFpbmdlciIsImdyYXBoaWNzIiwiZ3JhdGlzIiwiZ3JlZW4iLCJncmlwZSIsImdyb2NlcnkiLCJncm91cCIsImdzIiwiZ3QiLCJndSIsImd1Y2NpIiwiZ3VnZSIsImd1aWRlIiwiZ3VpdGFycyIsImd1cnUiLCJndyIsImd5IiwiaGFpciIsImhhbWJ1cmciLCJoYW5nb3V0IiwiaGF1cyIsImhibyIsImhkZmMiLCJoZGZjYmFuayIsImhlYWx0aCIsImhlYWx0aGNhcmUiLCJoZWxwIiwiaGVsc2lua2kiLCJoZXJlIiwiaGVybWVzIiwiaGlwaG9wIiwiaGlzYW1pdHN1IiwiaGl0YWNoaSIsImhpdiIsImhrIiwiaGt0IiwiaG0iLCJobiIsImhvY2tleSIsImhvbGRpbmdzIiwiaG9saWRheSIsImhvbWVkZXBvdCIsImhvbWVnb29kcyIsImhvbWVzIiwiaG9tZXNlbnNlIiwiaG9uZGEiLCJob3JzZSIsImhvc3BpdGFsIiwiaG9zdCIsImhvc3RpbmciLCJob3QiLCJob3RlbHMiLCJob3RtYWlsIiwiaG91c2UiLCJob3ciLCJociIsImhzYmMiLCJodCIsImh1IiwiaHVnaGVzIiwiaHlhdHQiLCJoeXVuZGFpIiwiaWJtIiwiaWNiYyIsImljZSIsImljdSIsImlkIiwiaWUiLCJpZWVlIiwiaWZtIiwiaWthbm8iLCJpbCIsImltIiwiaW1hbWF0IiwiaW1kYiIsImltbW8iLCJpbW1vYmlsaWVuIiwiaW4iLCJpbmMiLCJpbmR1c3RyaWVzIiwiaW5maW5pdGkiLCJpbmZvIiwiaW5nIiwiaW5rIiwiaW5zdGl0dXRlIiwiaW5zdXJhbmNlIiwiaW5zdXJlIiwiaW50IiwiaW50ZXJuYXRpb25hbCIsImludHVpdCIsImludmVzdG1lbnRzIiwiaW8iLCJpcGlyYW5nYSIsImlxIiwiaXIiLCJpcmlzaCIsImlzIiwiaXNtYWlsaSIsImlzdCIsImlzdGFuYnVsIiwiaXQiLCJpdGF1IiwiaXR2IiwiamFndWFyIiwiamF2YSIsImpjYiIsImplIiwiamVlcCIsImpldHp0IiwiamV3ZWxyeSIsImppbyIsImpsbCIsImptIiwiam1wIiwiam5qIiwiam8iLCJqb2JzIiwiam9idXJnIiwiam90Iiwiam95IiwianAiLCJqcG1vcmdhbiIsImpwcnMiLCJqdWVnb3MiLCJqdW5pcGVyIiwia2F1ZmVuIiwia2RkaSIsImtlIiwia2Vycnlob3RlbHMiLCJrZXJyeXByb3BlcnRpZXMiLCJrZmgiLCJrZyIsImtoIiwia2kiLCJraWEiLCJraWRzIiwia2ltIiwia2luZGxlIiwia2l0Y2hlbiIsImtpd2kiLCJrbSIsImtuIiwia29lbG4iLCJrb21hdHN1Iiwia29zaGVyIiwia3AiLCJrcG1nIiwia3BuIiwia3IiLCJrcmQiLCJrcmVkIiwia3Vva2dyb3VwIiwia3ciLCJreSIsImt5b3RvIiwia3oiLCJsYSIsImxhY2FpeGEiLCJsYW1ib3JnaGluaSIsImxhbWVyIiwibGFuZCIsImxhbmRyb3ZlciIsImxhbnhlc3MiLCJsYXNhbGxlIiwibGF0IiwibGF0aW5vIiwibGF0cm9iZSIsImxhdyIsImxhd3llciIsImxiIiwibGMiLCJsZHMiLCJsZWFzZSIsImxlY2xlcmMiLCJsZWZyYWsiLCJsZWdhbCIsImxlZ28iLCJsZXh1cyIsImxnYnQiLCJsaSIsImxpZGwiLCJsaWZlIiwibGlmZWluc3VyYW5jZSIsImxpZmVzdHlsZSIsImxpZ2h0aW5nIiwibGlrZSIsImxpbGx5IiwibGltaXRlZCIsImxpbW8iLCJsaW5jb2xuIiwibGluayIsImxpdmUiLCJsaXZpbmciLCJsayIsImxsYyIsImxscCIsImxvYW4iLCJsb2FucyIsImxvY2tlciIsImxvY3VzIiwibG9sIiwibG9uZG9uIiwibG90dGUiLCJsb3R0byIsImxvdmUiLCJscGwiLCJscGxmaW5hbmNpYWwiLCJsciIsImxzIiwibHQiLCJsdGQiLCJsdGRhIiwibHUiLCJsdW5kYmVjayIsImx1eGUiLCJsdXh1cnkiLCJsdiIsImx5IiwibWEiLCJtYWRyaWQiLCJtYWlmIiwibWFpc29uIiwibWFrZXVwIiwibWFuIiwibWFuYWdlbWVudCIsIm1hbmdvIiwibWFwIiwibWFya2V0IiwibWFya2V0aW5nIiwibWFya2V0cyIsIm1hcnJpb3R0IiwibWFyc2hhbGxzIiwibWF0dGVsIiwibWJhIiwibWMiLCJtY2tpbnNleSIsIm1kIiwibWUiLCJtZWQiLCJtZWRpYSIsIm1lZXQiLCJtZWxib3VybmUiLCJtZW1lIiwibWVtb3JpYWwiLCJtZW4iLCJtZW51IiwibWVyY2ttc2QiLCJtZyIsIm1oIiwibWlhbWkiLCJtaWNyb3NvZnQiLCJtaWwiLCJtaW5pIiwibWludCIsIm1pdCIsIm1pdHN1YmlzaGkiLCJtayIsIm1sIiwibWxiIiwibWxzIiwibW0iLCJtbWEiLCJtbiIsIm1vIiwibW9iaSIsIm1vYmlsZSIsIm1vZGEiLCJtb2UiLCJtb2kiLCJtb20iLCJtb25hc2giLCJtb25leSIsIm1vbnN0ZXIiLCJtb3Jtb24iLCJtb3J0Z2FnZSIsIm1vc2NvdyIsIm1vdG8iLCJtb3RvcmN5Y2xlcyIsIm1vdiIsIm1vdmllIiwibXAiLCJtcSIsIm1yIiwibXMiLCJtc2QiLCJtdCIsIm10biIsIm10ciIsIm11IiwibXVzZXVtIiwibXVzaWMiLCJtdiIsIm13IiwibXgiLCJteSIsIm16IiwibmEiLCJuYWIiLCJuYWdveWEiLCJuYW1lIiwibmF2eSIsIm5iYSIsIm5jIiwibmUiLCJuZWMiLCJuZXQiLCJuZXRiYW5rIiwibmV0ZmxpeCIsIm5ldHdvcmsiLCJuZXVzdGFyIiwibmV3IiwibmV3cyIsIm5leHQiLCJuZXh0ZGlyZWN0IiwibmV4dXMiLCJuZiIsIm5mbCIsIm5nIiwibmdvIiwibmhrIiwibmkiLCJuaWNvIiwibmlrZSIsIm5pa29uIiwibmluamEiLCJuaXNzYW4iLCJuaXNzYXkiLCJubCIsIm5vIiwibm9raWEiLCJub3J0b24iLCJub3ciLCJub3dydXoiLCJub3d0diIsIm5wIiwibnIiLCJucmEiLCJucnciLCJudHQiLCJudSIsIm55YyIsIm56Iiwib2JpIiwib2JzZXJ2ZXIiLCJvZmZpY2UiLCJva2luYXdhIiwib2xheWFuIiwib2xheWFuZ3JvdXAiLCJvbGxvIiwib20iLCJvbWVnYSIsIm9uZSIsIm9uZyIsIm9ubCIsIm9ubGluZSIsIm9vbyIsIm9wZW4iLCJvcmFjbGUiLCJvcmFuZ2UiLCJvcmciLCJvcmdhbmljIiwib3JpZ2lucyIsIm9zYWthIiwib3RzdWthIiwib3R0Iiwib3ZoIiwicGEiLCJwYWdlIiwicGFuYXNvbmljIiwicGFyaXMiLCJwYXJzIiwicGFydG5lcnMiLCJwYXJ0cyIsInBhcnR5IiwicGF5IiwicGNjdyIsInBlIiwicGV0IiwicGYiLCJwZml6ZXIiLCJwZyIsInBoIiwicGhhcm1hY3kiLCJwaGQiLCJwaGlsaXBzIiwicGhvbmUiLCJwaG90byIsInBob3RvZ3JhcGh5IiwicGhvdG9zIiwicGh5c2lvIiwicGljcyIsInBpY3RldCIsInBpY3R1cmVzIiwicGlkIiwicGluIiwicGluZyIsInBpbmsiLCJwaW9uZWVyIiwicGl6emEiLCJwayIsInBsIiwicGxhY2UiLCJwbGF5IiwicGxheXN0YXRpb24iLCJwbHVtYmluZyIsInBsdXMiLCJwbSIsInBuIiwicG5jIiwicG9obCIsInBva2VyIiwicG9saXRpZSIsInBvcm4iLCJwb3N0IiwicHIiLCJwcmF4aSIsInByZXNzIiwicHJpbWUiLCJwcm8iLCJwcm9kIiwicHJvZHVjdGlvbnMiLCJwcm9mIiwicHJvZ3Jlc3NpdmUiLCJwcm9tbyIsInByb3BlcnRpZXMiLCJwcm9wZXJ0eSIsInByb3RlY3Rpb24iLCJwcnUiLCJwcnVkZW50aWFsIiwicHMiLCJwdCIsInB1YiIsInB3IiwicHdjIiwicHkiLCJxYSIsInFwb24iLCJxdWViZWMiLCJxdWVzdCIsInJhY2luZyIsInJhZGlvIiwicmUiLCJyZWFkIiwicmVhbGVzdGF0ZSIsInJlYWx0b3IiLCJyZWFsdHkiLCJyZWNpcGVzIiwicmVkIiwicmVkdW1icmVsbGEiLCJyZWhhYiIsInJlaXNlIiwicmVpc2VuIiwicmVpdCIsInJlbGlhbmNlIiwicmVuIiwicmVudCIsInJlbnRhbHMiLCJyZXBhaXIiLCJyZXBvcnQiLCJyZXB1YmxpY2FuIiwicmVzdCIsInJlc3RhdXJhbnQiLCJyZXZpZXciLCJyZXZpZXdzIiwicmV4cm90aCIsInJpY2giLCJyaWNoYXJkbGkiLCJyaWNvaCIsInJpbCIsInJpbyIsInJpcCIsInJvIiwicm9ja3MiLCJyb2RlbyIsInJvZ2VycyIsInJvb20iLCJycyIsInJzdnAiLCJydSIsInJ1Z2J5IiwicnVociIsInJ1biIsInJ3IiwicndlIiwicnl1a3l1Iiwic2EiLCJzYWFybGFuZCIsInNhZmUiLCJzYWZldHkiLCJzYWt1cmEiLCJzYWxlIiwic2Fsb24iLCJzYW1zY2x1YiIsInNhbXN1bmciLCJzYW5kdmlrIiwic2FuZHZpa2Nvcm9tYW50Iiwic2Fub2ZpIiwic2FwIiwic2FybCIsInNhcyIsInNhdmUiLCJzYXhvIiwic2IiLCJzYmkiLCJzYnMiLCJzYyIsInNjYiIsInNjaGFlZmZsZXIiLCJzY2htaWR0Iiwic2Nob2xhcnNoaXBzIiwic2Nob29sIiwic2NodWxlIiwic2Nod2FyeiIsInNjaWVuY2UiLCJzY290Iiwic2QiLCJzZSIsInNlYXJjaCIsInNlYXQiLCJzZWN1cmUiLCJzZWN1cml0eSIsInNlZWsiLCJzZWxlY3QiLCJzZW5lciIsInNlcnZpY2VzIiwic2V2ZW4iLCJzZXciLCJzZXgiLCJzZXh5Iiwic2ZyIiwic2ciLCJzaCIsInNoYW5ncmlsYSIsInNoYXJwIiwic2hlbGwiLCJzaGlhIiwic2hpa3NoYSIsInNob2VzIiwic2hvcCIsInNob3BwaW5nIiwic2hvdWppIiwic2hvdyIsInNpIiwic2lsayIsInNpbmEiLCJzaW5nbGVzIiwic2l0ZSIsInNqIiwic2siLCJza2kiLCJza2luIiwic2t5Iiwic2t5cGUiLCJzbCIsInNsaW5nIiwic20iLCJzbWFydCIsInNtaWxlIiwic24iLCJzbmNmIiwic28iLCJzb2NjZXIiLCJzb2NpYWwiLCJzb2Z0YmFuayIsInNvZnR3YXJlIiwic29odSIsInNvbGFyIiwic29sdXRpb25zIiwic29uZyIsInNvbnkiLCJzb3kiLCJzcGEiLCJzcGFjZSIsInNwb3J0Iiwic3BvdCIsInNyIiwic3JsIiwic3MiLCJzdCIsInN0YWRhIiwic3RhcGxlcyIsInN0YXIiLCJzdGF0ZWJhbmsiLCJzdGF0ZWZhcm0iLCJzdGMiLCJzdGNncm91cCIsInN0b2NraG9sbSIsInN0b3JhZ2UiLCJzdG9yZSIsInN0cmVhbSIsInN0dWRpbyIsInN0dWR5Iiwic3R5bGUiLCJzdSIsInN1Y2tzIiwic3VwcGxpZXMiLCJzdXBwbHkiLCJzdXBwb3J0Iiwic3VyZiIsInN1cmdlcnkiLCJzdXp1a2kiLCJzdiIsInN3YXRjaCIsInN3aXNzIiwic3giLCJzeSIsInN5ZG5leSIsInN5c3RlbXMiLCJzeiIsInRhYiIsInRhaXBlaSIsInRhbGsiLCJ0YW9iYW8iLCJ0YXJnZXQiLCJ0YXRhbW90b3JzIiwidGF0YXIiLCJ0YXR0b28iLCJ0YXgiLCJ0YXhpIiwidGMiLCJ0Y2kiLCJ0ZCIsInRkayIsInRlYW0iLCJ0ZWNoIiwidGVjaG5vbG9neSIsInRlbCIsInRlbWFzZWsiLCJ0ZW5uaXMiLCJ0ZXZhIiwidGYiLCJ0ZyIsInRoIiwidGhkIiwidGhlYXRlciIsInRoZWF0cmUiLCJ0aWFhIiwidGlja2V0cyIsInRpZW5kYSIsInRpcHMiLCJ0aXJlcyIsInRpcm9sIiwidGoiLCJ0am1heHgiLCJ0angiLCJ0ayIsInRrbWF4eCIsInRsIiwidG0iLCJ0bWFsbCIsInRuIiwidG8iLCJ0b2RheSIsInRva3lvIiwidG9vbHMiLCJ0b3AiLCJ0b3JheSIsInRvc2hpYmEiLCJ0b3RhbCIsInRvdXJzIiwidG93biIsInRveW90YSIsInRveXMiLCJ0ciIsInRyYWRlIiwidHJhZGluZyIsInRyYWluaW5nIiwidHJhdmVsIiwidHJhdmVsZXJzIiwidHJhdmVsZXJzaW5zdXJhbmNlIiwidHJ1c3QiLCJ0cnYiLCJ0dCIsInR1YmUiLCJ0dWkiLCJ0dW5lcyIsInR1c2h1IiwidHYiLCJ0dnMiLCJ0dyIsInR6IiwidWEiLCJ1YmFuayIsInVicyIsInVnIiwidWsiLCJ1bmljb20iLCJ1bml2ZXJzaXR5IiwidW5vIiwidW9sIiwidXBzIiwidXMiLCJ1eSIsInV6IiwidmEiLCJ2YWNhdGlvbnMiLCJ2YW5hIiwidmFuZ3VhcmQiLCJ2YyIsInZlIiwidmVnYXMiLCJ2ZW50dXJlcyIsInZlcmlzaWduIiwidmVybcO2Z2Vuc2JlcmF0ZXIiLCJ2ZXJtw7ZnZW5zYmVyYXR1bmciLCJ2ZXJzaWNoZXJ1bmciLCJ2ZXQiLCJ2ZyIsInZpIiwidmlhamVzIiwidmlkZW8iLCJ2aWciLCJ2aWtpbmciLCJ2aWxsYXMiLCJ2aW4iLCJ2aXAiLCJ2aXJnaW4iLCJ2aXNhIiwidmlzaW9uIiwidml2YSIsInZpdm8iLCJ2bGFhbmRlcmVuIiwidm4iLCJ2b2RrYSIsInZvbHZvIiwidm90ZSIsInZvdGluZyIsInZvdG8iLCJ2b3lhZ2UiLCJ2dSIsIndhbGVzIiwid2FsbWFydCIsIndhbHRlciIsIndhbmciLCJ3YW5nZ291Iiwid2F0Y2giLCJ3YXRjaGVzIiwid2VhdGhlciIsIndlYXRoZXJjaGFubmVsIiwid2ViY2FtIiwid2ViZXIiLCJ3ZWJzaXRlIiwid2VkIiwid2VkZGluZyIsIndlaWJvIiwid2VpciIsIndmIiwid2hvc3dobyIsIndpZW4iLCJ3aWtpIiwid2lsbGlhbWhpbGwiLCJ3aW4iLCJ3aW5kb3dzIiwid2luZSIsIndpbm5lcnMiLCJ3bWUiLCJ3b2x0ZXJza2x1d2VyIiwid29vZHNpZGUiLCJ3b3JrIiwid29ya3MiLCJ3b3JsZCIsIndvdyIsIndzIiwid3RjIiwid3RmIiwieGJveCIsInhlcm94IiwieGlodWFuIiwieGluIiwieHh4IiwieHl6IiwieWFjaHRzIiwieWFob28iLCJ5YW1heHVuIiwieWFuZGV4IiwieWUiLCJ5b2RvYmFzaGkiLCJ5b2dhIiwieW9rb2hhbWEiLCJ5b3UiLCJ5b3V0dWJlIiwieXQiLCJ5dW4iLCJ6YSIsInphcHBvcyIsInphcmEiLCJ6ZXJvIiwiemlwIiwiem0iLCJ6b25lIiwienVlcmljaCIsInp3IiwizrXOuyIsIs61z4UiLCLQsdCzIiwi0LHQtdC7Iiwi0LTQtdGC0LgiLCLQtdGOIiwi0LrQsNGC0L7Qu9C40LoiLCLQutC+0LwiLCLQvNC60LQiLCLQvNC+0L0iLCLQvNC+0YHQutCy0LAiLCLQvtC90LvQsNC50L0iLCLQvtGA0LMiLCLRgNGD0YEiLCLRgNGEIiwi0YHQsNC50YIiLCLRgdGA0LEiLCLRg9C60YAiLCLSm9Cw0LciLCLVsNWh1bUiLCLXmdep16jXkNecIiwi16fXldedIiwi2KfYqNmI2LjYqNmKIiwi2KfYsdin2YXZg9mIIiwi2KfZhNin2LHYr9mGIiwi2KfZhNio2K3YsdmK2YYiLCLYp9mE2KzYstin2KbYsSIsItin2YTYs9i52YjYr9mK2KkiLCLYp9mE2LnZhNmK2KfZhiIsItin2YTZhdi62LHYqCIsItin2YXYp9ix2KfYqiIsItin24zYsdin2YYiLCLYqNin2LHYqiIsItio2KfYstin2LEiLCLYqNmK2KrZgyIsItio2r7Yp9ix2KoiLCLYqtmI2YbYsyIsItiz2YjYr9in2YYiLCLYs9mI2LHZitipIiwi2LTYqNmD2KkiLCLYudix2KfZgiIsIti52LHYqCIsIti52YXYp9mGIiwi2YHZhNiz2LfZitmGIiwi2YLYt9ixIiwi2YPYp9ir2YjZhNmK2YMiLCLZg9mI2YUiLCLZhdi12LEiLCLZhdmE2YrYs9mK2KciLCLZhdmI2LHZitiq2KfZhtmK2KciLCLZhdmI2YLYuSIsItmH2YXYsdin2YciLCLZvtin2qnYs9iq2KfZhiIsItqA2KfYsdiqIiwi4KSV4KWJ4KSuIiwi4KSo4KWH4KSfIiwi4KSt4KS+4KSw4KSkIiwi4KSt4KS+4KSw4KSk4KSu4KWNIiwi4KSt4KS+4KSw4KWL4KSkIiwi4KS44KSC4KSX4KSg4KSoIiwi4Kas4Ka+4KaC4Kay4Ka+Iiwi4Kat4Ka+4Kaw4KakIiwi4Kat4Ka+4Kew4KakIiwi4Kit4Ki+4Kiw4KikIiwi4Kqt4Kq+4Kqw4KqkIiwi4Kyt4Ky+4Kyw4KykIiwi4K6H4K6o4K+N4K6k4K6/4K6v4K6+Iiwi4K6H4K6y4K6Z4K+N4K6V4K+IIiwi4K6a4K6/4K6Z4K+N4K6V4K6q4K+N4K6q4K+C4K6w4K+NIiwi4LCt4LC+4LCw4LCk4LGNIiwi4LKt4LK+4LKw4LKkIiwi4LSt4LS+4LSw4LSk4LSCIiwi4La94LaC4Laa4LePIiwi4LiE4Lit4LihIiwi4LmE4LiX4LiiIiwi4Lql4Lqy4LqnIiwi4YOS4YOUIiwi44G/44KT44GqIiwi44Ki44Oe44K+44OzIiwi44Kv44Op44Km44OJIiwi44Kw44O844Kw44OrIiwi44Kz44OgIiwi44K544OI44KiIiwi44K744O844OrIiwi44OV44Kh44OD44K344On44OzIiwi44Od44Kk44Oz44OIIiwi5LiW55WMIiwi5Lit5L+hIiwi5Lit5Zu9Iiwi5Lit5ZyLIiwi5Lit5paH572RIiwi5Lqa6ams6YCKIiwi5LyB5LiaIiwi5L2b5bGxIiwi5L+h5oGvIiwi5YGl5bq3Iiwi5YWr5Y2mIiwi5YWs5Y+4Iiwi5YWs55uKIiwi5Y+w5rm+Iiwi5Y+w54GjIiwi5ZWG5Z+OIiwi5ZWG5bqXIiwi5ZWG5qCHIiwi5ZiJ6YeMIiwi5ZiJ6YeM5aSn6YWS5bqXIiwi5Zyo57q/Iiwi5aSn5ou/Iiwi5aSp5Li75pWZIiwi5aix5LmQIiwi5a626Zu7Iiwi5bm/5LicIiwi5b6u5Y2aIiwi5oWI5ZaEIiwi5oiR54ix5L2gIiwi5omL5py6Iiwi5oub6IGYIiwi5pS/5YqhIiwi5pS/5bqcIiwi5paw5Yqg5Z2hIiwi5paw6Ze7Iiwi5pe25bCaIiwi5pu457GNIiwi5py65p6EIiwi5reh6ams6ZShIiwi5ri45oiPIiwi5r6z6ZaAIiwi54K555yLIiwi56e75YqoIiwi57uE57uH5py65p6EIiwi572R5Z2AIiwi572R5bqXIiwi572R56uZIiwi572R57ucIiwi6IGU6YCaIiwi6LC35q2MIiwi6LSt54mpIiwi6YCa6LKpIiwi6ZuG5ZuiIiwi6Zu76KiK55uI56eRIiwi6aOe5Yip5rWmIiwi6aOf5ZOBIiwi6aSQ5Y6FIiwi6aaZ5qC86YeM5ouJIiwi6aaZ5rivIiwi64u364S3Iiwi64u37Lu0Iiwi7IK87ISxIiwi7ZWc6rWtIl1gKSx5Zj0vXlstISMkJSYnKisvMC05PT9BLVpeX2EtemB7fH1+XShcLj9bLSEjJCUmJyorLzAtOT0/QS1aXl9hLXpge3x9fl0pKkBbYS16QS1aMC05XSgtKlwuP1thLXpBLVowLTldKSpcLlthLXpBLVpdKC0/W2EtekEtWjAtOV0pKyQvLGJmPS8oKD86d3d3Lik/W15ccy5dK1wuW15ccy9dK1wvW15ccy5dKykvLHhmPS9bJjw+IiddL2csU2Y9ZT0+e2xldCB0PXsiJiI6YCZhbXA7YCwiPCI6YCZsdDtgLCI+IjpgJmd0O2AsJyInOmAmcXVvdDtgLCInIjpgJiMzOTtgfSxuPVJlZ0V4cCh4Zi5zb3VyY2UpO3JldHVybiBlJiZuLnRlc3QoZSk/ZS5yZXBsYWNlKHhmLGU9PnRbZV0pOmV8fGBgfSxDZj1gb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94OyAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOyAtd2Via2l0LWxpbmUtY2xhbXA6IDE7IGxpbmUtY2xhbXA6IDE7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtgLHdmPW5ldyBfZigpLnRsZHModmYpLnNldCh7ZnV6enlJUDohMH0pLFRmPW5ldyBfZigpLnRsZHModmYpLEVmPShlLHQsbik9PntsZXQgcj1CKCkubG9jYXRpb24uaG9zdG5hbWU7cmV0dXJuYDxhIGhyZWY9IiR7ZX0iIHRhcmdldD0iJHtyLmxlbmd0aD4wJiZlLmluY2x1ZGVzKHIpP2BfcGFyZW50YDpgX2JsYW5rYH0iIHJlbD0ibm9yZWZlcnJlciBub29wZW5lciIgdGl0bGU9IiR7ZX0iIHN0eWxlPSIke24/LmNsYW1wJiYhbj8ucmVwbGFjZVRleHQ/Q2Y6YGB9Ij4ke3R9PC9hPmB9LERmPShlLHQpPT57aWYoZT09PWBgKXJldHVybiBlO2xldCBuPXdmLm1hdGNoKGUpO2lmKCFuKXJldHVybiBTZihlKTtsZXQgcj1gYCxpPTA7cmV0dXJuIG4uZm9yRWFjaChuPT57bGV0IGE9YGAsbz1gYCxzPU9mKGUsbiksYz10Py5jbGFtcCYmbi50ZXh0Lmxlbmd0aD4zMCYmIXM7bi5pbmRleD5pJiYoYT1lLnN1YnN0cmluZyhpLG4uaW5kZXgpKSxvPUVmKG4udXJsLG4udGV4dCx7Li4udCxjbGFtcDpjfSksaT1uLmxhc3RJbmRleCxzJiYoYT1hLnN1YnN0cmluZygwLGEubGVuZ3RoLTEpLGkrPTEpLGMmJiFrZihlLG4pJiYobz1gXG4ke299XG5gLGE9YS50cmltRW5kKCksZVtpXT8ubWF0Y2goL1xzLykmJihpKz0xKSkscis9U2YoYSkrb30pLGUubGVuZ3RoPmkmJihyKz1TZihlLnN1YnN0cmluZyhpKSkpLHJ9LE9mPShlLHQpPT5lW3QuaW5kZXgtMV09PT1gImAmJmVbdC5sYXN0SW5kZXhdPT09YCJgLGtmPShlLHQpPT4hISh0LmluZGV4PD0xJiZlLnN1YnN0cmluZyh0Lmxhc3RJbmRleCx0Lmxhc3RJbmRleCszKS5tYXRjaCgvW1xuXHJdKy8pfHxlLnN1YnN0cmluZyh0LmluZGV4LTMsdC5pbmRleCkubWF0Y2goL1tcblxyXSsvKSYmZS5zdWJzdHJpbmcodC5sYXN0SW5kZXgsdC5sYXN0SW5kZXgrMykubWF0Y2goL1tcblxyXSsvKXx8ZS5zdWJzdHJpbmcodC5pbmRleC0zLHQuaW5kZXgpLm1hdGNoKC9bXG5ccl0rLykmJnQubGFzdEluZGV4PmUubGVuZ3RoLTN8fHQuaW5kZXg8PTEmJnQubGFzdEluZGV4Pj1lLmxlbmd0aC0yKSxBZj1lPT5lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sYGApLnJlcGxhY2UoL153d3dcLi8sYGApLnJlcGxhY2UoL1wvKyQvLGBgKS50b0xvd2VyQ2FzZSgpLGpmPWU9PntsZXQgdD1bYG1haWx0bzpgLGBmdHA6YCxgLy9gXSxuPVRmLm1hdGNoKGUpO2lmKCFuKXJldHVybiBudWxsO2xldCByPW5ldyBTZXQ7cmV0dXJuIG4uZmlsdGVyKGU9PntpZih0LmluY2x1ZGVzKGUuc2NoZW1hKSlyZXR1cm4hMTtsZXQgbj1BZihlLnVybCk7cmV0dXJuIHIuaGFzKG4pPyExOihyLmFkZChuKSwhMCl9KX0sTWY9KCk9PlBvKGBjYXJkc2ApLE5mPWU9PntGbyh7Li4uZX0sYGNhcmRzYCl9LFBmPWFzeW5jIGU9PntsZXQgdD1uZXcgSGVhZGVycyx7d2lkZ2V0QXBpVXJsOm59PVYuZ2V0T3B0aW9ucygpO3QuYXBwZW5kKGBDb250ZW50LVR5cGVgLGBhcHBsaWNhdGlvbi9qc29uYCk7bGV0IHI9SlNPTi5zdHJpbmdpZnkoe2xpbmtzOmV9KTt0cnl7bGV0IGU9YXdhaXQgZmV0Y2goYCR7bn0vbGlua3MvcHJldmlld2Ase21ldGhvZDpgUE9TVGAsaGVhZGVyczp0LGJvZHk6cn0pO3JldHVybiBlLm9rJiZlLmpzb24/YXdhaXQgZS5qc29uKCk6bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19LEZmPWU9PmUuZmluZChlPT5lLnR5cGU9PT1gb3Blbl91cmxgKT8udmFsdWV8fGBgLElmPWU9PntsZXQgdD1lLmZpbHRlcihlPT5lLnRpdGxlJiZlLmltYWdlJiYhUmYoRmYoZS5hY3Rpb25zKSkpO3JldHVybiB0Lmxlbmd0aCYmZS5sZW5ndGg+MT9lOnQubGVuZ3RoPT09MT90OltdfSxMZj1lPT57bGV0IHQ9bmV3IERhdGUoKS5nZXRUaW1lKCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+eyghZVtuXS5leHBpcmF0aW9ufHxlW25dLmV4cGlyYXRpb24mJmVbbl0uZXhwaXJhdGlvbjx0KSYmZGVsZXRlIGVbbl19KSxlfSxSZj1lPT57bGV0e2FjY2VwdGVkRmlsZUV4dGVuc2lvbnM6dH09QShibCksbj1lLm1hdGNoKC8oXC4pKFteLl17Myw0fSkkL20pO3JldHVybiBuJiZuWzJdJiZ0LmluY2x1ZGVzKG5bMl0pfSx6Zj1hc3luYyBlPT57dHJ5e2F3YWl0IHEuZ2V0Q2xpZW50KCkubGlua09wZW5lZCh7dXJsOmV9KX1jYXRjaChlKXtqbyhgU2VuZGluZyBsaW5rIG9wZW5lZCBhbmFseXRpY3MgZXZlbnQgZmFpbGVkYCxTdHJpbmcoZSkpfX0sQmY9KGUsdCk9PntpZighdClyZXR1cm47bGV0IG49YXN5bmMgbj0+e2xldCByPW4udGFyZ2V0LmNsb3Nlc3QoYGFgKTtyJiZlLmNvbnRhaW5zKHIpJiZ0JiZhd2FpdCB6ZihyLmhyZWYpfSxyPWU9PnZvaWQgbihlKSxpPWU9PntlLmJ1dHRvbiE9PTImJm4oZSl9LGE9ZT0+dm9pZCBuKGUpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoYGNsaWNrYCxyKSxlLmFkZEV2ZW50TGlzdGVuZXIoYGF1eGNsaWNrYCxpKSxlLmFkZEV2ZW50TGlzdGVuZXIoYGNvbnRleHRtZW51YCxhKSx7ZGVzdHJveSgpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHIpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgYXV4Y2xpY2tgLGkpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY29udGV4dG1lbnVgLGEpfX19LFZmPSExLEhmPU8oKSxVZj1PKCExKSxXZj1PKCExKSxHZj0oZSx0LG4pPT57bGV0IHI9e30saT1uZXcgRGF0ZSgpLmdldFRpbWUoKStNZDtlLmZvckVhY2goKGUsbik9PnJbZV09e2V4cGlyYXRpb246aSxjYXJkOnRbbl19KTtsZXQgYT17Li4ubiwuLi5yfTtIZi5zZXQoYSksTmYoYSl9LEtmPWFzeW5jKGUsdCxuPSExKT0+e2xldCByPVtdLGk9e3R5cGU6YGNhcmRzYCxsYXlvdXQ6YGNhcm91c2VsYCxpdGVtczpbXX07VmZ8fD0oSGYuc2V0KE1mKCkpLCEwKTtsZXQgYT1qZihlKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1MZihBKEhmKSkscz1bXTtpZihhLmZvckVhY2godD0+e09mKGUsdCl8fChvW3QudXJsXT9yLnB1c2gob1t0LnVybF0uY2FyZCk6cy5wdXNoKHQudXJsKSl9KSxzLmxlbmd0aD4wKXt0JiZVZi5zZXQoITApLG4mJldmLnNldCghMCk7bGV0IGU9YXdhaXQgUGYocyk7ZSYmKEdmKHMsZSxvKSxyPVsuLi5yLC4uLmVdKX1yZXR1cm4gaS5pdGVtcz1JZihyKSxVZi5zZXQoITEpLFdmLnNldCghMSksaS5pdGVtcy5sZW5ndGg+MD9pOm51bGx9LHFmPWZ1bmN0aW9uKGUpe3JldHVybiBlLkNvbnRhY3RNZXNzYWdlPWBjb250YWN0LW1lc3NhZ2VgLGUuQWdlbnRNZXNzYWdlPWBhZ2VudC1tZXNzYWdlYCxlLkJvdE1lc3NhZ2U9YGJvdC1tZXNzYWdlYCxlLkJvdFJlcGxpZXM9YGJvdC1yZXBsaWVzYCxlfSh7fSksSmY9YXN5bmMoe3RleHQ6ZSxxdWlja1JlcGx5OnR9KT0+e3RyeXtsZXQgbj1CKCkubG9jYXRpb24uaHJlZjtyZXR1cm4gYXdhaXQgcS5nZXRDbGllbnQoKS5jaGF0TWVzc2FnZSh7Y29udGVudDp7dHlwZTpHLk1lc3NhZ2VDb250ZW50VHlwZS5UZXh0LHRleHQ6ZX0scXVpY2tSZXBseTp0LHBhZ2VVcmw6bn0pPz9udWxsfWNhdGNoe3JldHVybiBudWxsfX0sWWY9ZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3R8fGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuVHJpZ2dlcixYZj1lPT5lLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlN5c3RlbSxaZj1lPT5lLnR5cGU9PT1HLk1lc3NhZ2VUeXBlLk5vdGUsUWY9ZT0+IWUuZGVsZXRlZEF0JiYhWmYoZSkmJihlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkFnZW50fHxZZihlKSksJGY9ZT0+YGh0bWxgaW4gZSYmISFlLmh0bWwsZXA9ZT0+YHRleHRgaW4gZSYmISFlLnRleHQsdHA9KGUsdCk9Pm5ldyBEYXRlKGUuY3JlYXRlZEF0KS5nZXRUaW1lKCktbmV3IERhdGUodC5jcmVhdGVkQXQpLmdldFRpbWUoKSxucD0oZSx0KT0+dD09PXFmLkJvdFJlcGxpZXM/YCR7ZS5pZH0tcmVwbGllc2A6ZS5pZCxycD1lPT57bGV0IHQ9e2lzUmlnaHQ6ITEsaXNMZWZ0OiExfSxuPXtpc1ByaW1hcnk6ITEsaXNTZWNvbmRhcnk6ITF9O3N3aXRjaChlKXtjYXNlIHFmLkNvbnRhY3RNZXNzYWdlOnQuaXNSaWdodD0hMCxuLmlzUHJpbWFyeT0hMDticmVhaztkZWZhdWx0OnQuaXNMZWZ0PSEwLG4uaXNTZWNvbmRhcnk9ITB9cmV0dXJue2FsaWduOnQsdmFyaWFudDpufX0saXA9ZT0+ISFlLmFnZW50SWR8fGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90JiZlLmNvbnRlbnQudHlwZSE9PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlRpY2tldEZvcm0sYXA9KGUsdCk9PmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuU3lzdGVtfHx0PT09cWYuQm90UmVwbGllc3x8ZS5jb250ZW50LnR5cGU9PT1HLk1lc3NhZ2VDb250ZW50VHlwZS5UaWNrZXRGb3JtLG9wPWU9PntsZXQgdD1bXSxuPW51bGwscj1udWxsO2ZvcihsZXQgaSBvZiBlKXtpZihpLmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtJiYoaS5jb250ZW50LmRhdGEudGFyZ2V0PT09Ry5SYXRpbmdUYXJnZXQuQWkmJiFKcCgpfHxpLmNvbnRlbnQuZGF0YS50YXJnZXQ9PT1HLlJhdGluZ1RhcmdldC5BZ2VudCYmIXFwKCkpKWNvbnRpbnVlO24mJiFocChpLG4pJiYodC5wdXNoKG4pLG49bnVsbCxyPW51bGwpLG58fD1zcChpKTtsZXQgZT1scChpLG4pO2lmKHIpe2xldCB0PV9wKHIpLG49ZHAocik7ZS5uZWlnaGJvcnMuaGFzVG9wPXQsbi5hbnkubmVpZ2hib3JzLmhhc0JvdHRvbT10LG4uYXR0YWNobWVudENvbnRleHQmJihuLmF0dGFjaG1lbnRDb250ZXh0LmV4dHJhU3BhY2VzLmhhc0JvdHRvbT15cChuLmF0dGFjaG1lbnRDb250ZXh0LmF0dGFjaG1lbnQpKX1sZXQgYT1mcChpKTtpZihhJiZ1cChhLGUsciksbi5tZXNzYWdlc0NvbnRleHQucHVzaChlKSxyPWUsKFlmKGkpfHxYZihpKSkmJlRwKGkpKXt0LnB1c2gobik7bGV0IGU9Y3AoaSk7ZS5tZXNzYWdlc0NvbnRleHQucHVzaChscChpLGUpKSx0LnB1c2goZSksbj1udWxsfX1yZXR1cm4gbiYmdC5wdXNoKG4pLHR9LHNwPWU9PntsZXQgdD1ncChlKSxuPWUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90fHxlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXIse2FsaWduOnIsdmFyaWFudDppfT1ycCh0KTtyZXR1cm57dHlwZTp0LGlzQm90Om4saWQ6bnAoZSx0KSxkYXRlOmUuY3JlYXRlZEF0LGFnZW50SWQ6ZS5hZ2VudElkLGFsaWduOnIsdmFyaWFudDppLG1lc3NhZ2VzQ29udGV4dDpbXSxzaG93QXZhdGFyOmlwKGUpLHVzZUZ1bGxXaWR0aDphcChlLHQpfX0sY3A9ZT0+e2xldCB0PXFmLkJvdFJlcGxpZXMse2FsaWduOm4sdmFyaWFudDpyfT1ycCh0KTtyZXR1cm57dHlwZTpxZi5Cb3RSZXBsaWVzLGlzQm90OiEwLGlkOm5wKGUsdCksZGF0ZTplLmNyZWF0ZWRBdCxhZ2VudElkOmUuYWdlbnRJZCxhbGlnbjpuLHZhcmlhbnQ6cixtZXNzYWdlc0NvbnRleHQ6W10sc2hvd0F2YXRhcjohMSx1c2VGdWxsV2lkdGg6YXAoZSx0KX19LGxwPShlLHQpPT4oe2dyb3VwOnQsbWVzc2FnZTplLG5laWdoYm9yczp7aGFzVG9wOiExLGhhc0JvdHRvbTohMX0sYXR0YWNobWVudHNDb250ZXh0OltdfSksdXA9KGUsdCxuKT0+e2xldCByPW51bGw7Zm9yKGxldCBpIG9mIGUpe2xldCBlPXZwKGkpLGE9e2hhc1RvcDohMSxoYXNCb3R0b206ITF9LG89eXAoaSkscz17aGFzVG9wOm8saGFzQm90dG9tOiExfTtpZihyKXtsZXQgdD12cChyLmF0dGFjaG1lbnQpLG49eXAoci5hdHRhY2htZW50KTtyLm5laWdoYm9ycy5oYXNCb3R0b209dCYmZSxhLmhhc1RvcD10JiZlLHIuZXh0cmFTcGFjZXMuaGFzQm90dG9tPSFvJiZufWVsc2UgaWYodC5uZWlnaGJvcnMuaGFzQm90dG9tPWUsYS5oYXNUb3A9ZSxwcCh0Lm1lc3NhZ2UpKWlmKGEuaGFzVG9wPSExLHQubmVpZ2hib3JzLmhhc1RvcD0hMSx0Lm5laWdoYm9ycy5oYXNCb3R0b209ITEsbil7bGV0IHQ9X3Aobikscj1kcChuKTthLmhhc1RvcD10JiZlLHIuYW55Lm5laWdoYm9ycy5oYXNCb3R0b209dCYmZTtsZXQgaT1yLmF0dGFjaG1lbnRDb250ZXh0O2kmJihpLmV4dHJhU3BhY2VzLmhhc0JvdHRvbT0hbyYmeXAoaS5hdHRhY2htZW50KSl9ZWxzZSBzLmhhc1RvcD0hMTtsZXQgYz17YXR0YWNobWVudDppLG5laWdoYm9yczphLGV4dHJhU3BhY2VzOnMsbWVzc2FnZUNvbnRleHQ6dH07dC5hdHRhY2htZW50c0NvbnRleHQucHVzaChjKSxyPXsuLi5jfX19LGRwPWU9PntsZXQgdD1TZChlLmF0dGFjaG1lbnRzQ29udGV4dCl8fHZvaWQgMDtyZXR1cm57YXR0YWNobWVudENvbnRleHQ6dCxhbnk6dHx8ZX19LGZwPWU9PmU/ZS5jb250ZW50Py50eXBlPT09Ry5NZXNzYWdlQ29udGVudFR5cGUuVXBsb2FkP1tlLmNvbnRlbnQuZGF0YV06ZS5hdHRhY2htZW50czpbXSxwcD1lPT4hZS5jb250ZW50LnRleHQsbXA9ZT0+e3RyeXtsZXQgdD1CKCkubG9jYXRpb24uaG9zdG5hbWUsbj1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsYHRleHQvaHRtbGApO3JldHVybiBuLnF1ZXJ5U2VsZWN0b3JBbGwoYGFbaHJlZl1gKS5mb3JFYWNoKGU9PntsZXQgbj1lLmdldEF0dHJpYnV0ZShgaHJlZmApfHxgYDtuPW4ucmVwbGFjZSgvXmh0dHBzPzpcL1wvIj9odHRwcz86XC9cLy8sYGh0dHBzOi8vYCksbj1uLnJlcGxhY2UoL14iK3wiKyQvZyxgYCksZS5zZXRBdHRyaWJ1dGUoYGhyZWZgLG4pO2xldCByPXQubGVuZ3RoPjAmJm4uaW5jbHVkZXModCk7ZS5oYXNBdHRyaWJ1dGUoYHRhcmdldGApfHxlLnNldEF0dHJpYnV0ZShgdGFyZ2V0YCxyP2BfcGFyZW50YDpgX2JsYW5rYCksZS5oYXNBdHRyaWJ1dGUoYHJlbGApfHxlLnNldEF0dHJpYnV0ZShgcmVsYCxgbm9vcGVuZXIgbm9yZWZlcnJlcmApfSksbi5ib2R5LmlubmVySFRNTH1jYXRjaHtyZXR1cm4gZX19LGhwPShlLHQpPT57bGV0IG49Z3AoZSkscj1uPT09cWYuQWdlbnRNZXNzYWdlJiZlLmFnZW50SWQ9PT10LmFnZW50SWQsaT1uPT09cWYuQ29udGFjdE1lc3NhZ2UsYT1lLnN1YlR5cGUhPT1HLk1lc3NhZ2VTdWJUeXBlLkJvdHx8KGUuY29udGVudC5xdWlja1JlcGxpZXN8fFtdKS5sZW5ndGg9PT0wO3JldHVybiB0LnR5cGU9PT1uJiYocnx8aSkmJmEmJklkKHQuZGF0ZSxlLmNyZWF0ZWRBdCl9LGdwPWU9Pntzd2l0Y2goZS5zdWJUeXBlKXtjYXNlIEcuTWVzc2FnZVN1YlR5cGUuQWdlbnQ6cmV0dXJuIHFmLkFnZW50TWVzc2FnZTtjYXNlIEcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdDpyZXR1cm4gcWYuQ29udGFjdE1lc3NhZ2U7Y2FzZSBHLk1lc3NhZ2VTdWJUeXBlLkJvdDpyZXR1cm4gcWYuQm90TWVzc2FnZX1yZXR1cm4gbnVsbH0sX3A9ZT0+e2xldCB0PWUuYXR0YWNobWVudHNDb250ZXh0Lmxlbmd0aDtyZXR1cm4hKHQ+MCYmZS5hdHRhY2htZW50c0NvbnRleHRbdC0xXS5hdHRhY2htZW50LnR5cGU9PT1HLkF0dGFjaG1lbnRUeXBlLkZpbGUpfSx2cD1lPT5lLnR5cGUhPT1HLkF0dGFjaG1lbnRUeXBlLkZpbGUmJmUudHlwZSE9PUcuQXR0YWNobWVudFR5cGUuQ2FyZHMseXA9ZT0+ISFlJiYoZS50eXBlPT09Ry5BdHRhY2htZW50VHlwZS5GaWxlfHxlLnR5cGU9PT1HLkF0dGFjaG1lbnRUeXBlLkNhcmRzKSxicD0oKT0+e2xldCBlPWdfKCk7ZS52b2x1bWU9cWMsZS5hZGRFdmVudExpc3RlbmVyKGBjYW5wbGF5dGhyb3VnaGAsKCk9PntlLnBsYXkoKS5jYXRjaChlPT5IKGBDb3VsZCBub3QgcGxheSBtZXNzYWdlIHNvdW5kLmAsZSkpfSl9LHhwPUtkKGJwLEpjKSxTcD1lPT5lLmZpbHRlcihlPT5lLnR5cGU9PT1HLk1lc3NhZ2VUeXBlLk1lc3NhZ2UmJihlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkFnZW50fHxlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNvbnRhY3QpKSxDcD0oZSx0PSEwKT0+e2xldCBuPWUucmVkdWNlKChlLHQpPT4oZS5wdXNoKHQpLHQuY29udGVudC50eXBlPT09Ry5NZXNzYWdlQ29udGVudFR5cGUuQ2hhdENsb3NlfHx0LmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLkNoYXRWaXNpdG9yQ2xvc2U/W106ZSksW10pO3JldHVybiB0P24uZmlsdGVyKGU9PmUudHlwZT09PUcuTWVzc2FnZVR5cGUuTWVzc2FnZSYmZS5zdWJUeXBlIT09Ry5NZXNzYWdlU3ViVHlwZS5TeXN0ZW0pOm59LHdwPWU9PntsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKGU9PntlLnRyaWdnZXImJih0W2UudHJpZ2dlci5pZF09e3NlbnQ6ITB9KX0pLHR9LFRwPWU9PiEhKGUuY29udGVudC5xdWlja1JlcGxpZXMmJmUuY29udGVudC5xdWlja1JlcGxpZXMubGVuZ3RoPjApLEVwPWFzeW5jKGUsdD0hMSk9PntsZXQgbj1RZihlKSxyPSF0JiZuO2lmKGBodG1sYGluIGUuY29udGVudCYmZS5jb250ZW50Lmh0bWwmJihlLmNvbnRlbnQuaHRtbD1tcChlLmNvbnRlbnQuaHRtbCkpLGUuY29udGVudD8udGV4dCYmVi5nZXRPcHRpb25zKCkudXJsQ2FyZHNFbmFibGVkJiZlLmF0dGFjaG1lbnRzLmxlbmd0aD09PTApe2xldCB0PWF3YWl0IEtmKGUuY29udGVudC50ZXh0LGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCxyKTt0JiZ0Lml0ZW1zLmxlbmd0aD4wJiZlLmF0dGFjaG1lbnRzLnB1c2godCl9cmV0dXJuIG5kLnNldCghMSksZX0sRHA9YXN5bmMgZT0+KFYuZ2V0T3B0aW9ucygpLnVybENhcmRzRW5hYmxlZCYmYXdhaXQgUHJvbWlzZS5hbGwoZS5tYXAoYXN5bmMgZT0+YXdhaXQgRXAoZSkpKSxlKSxPcD1lPT5lLmZpbmRJbmRleChlPT5lLm1lc3NhZ2UuY2hhbm5lbC50eXBlPT09YGVtYWlsYCk+LTEsa3A9ZT0+ZS5maW5kKGU9PmUubWVzc2FnZT8udHJpZ2dlcj8uaWRlbnRpdHlJZCk/Lm1lc3NhZ2U/LnRyaWdnZXI/LmlkZW50aXR5SWQsSj0oKCk9PntsZXQgZT1PKHt9KSx7c3Vic2NyaWJlOnQsdXBkYXRlOm4sc2V0OnJ9PWUsaT1hc3luYyBlPT57cihybChgaWRgLGF3YWl0IERwKGUpKSl9LGE9YXN5bmMgZT0+e2xldCB0PWF3YWl0IEVwKGUpO1lmKGUpJiZNcC5zZXQoITEpLG4obj0+KHsuLi5uLFtlLmlkXTp0fSkpLGpwKHQpfSxvPWFzeW5jIGU9PntpZighQShScCkuc29tZSh0PT50LmlkPT09ZS5pZCkpcmV0dXJuO2xldCB0PUEoQnApPT09ZS5pZD9hd2FpdCBFcChlLCEwKTplO24obj0+KHsuLi5uLFtlLmlkXTp0fSkpfTtyZXR1cm57c3Vic2NyaWJlOnQsc2V0TWVzc2FnZXM6aSxhZGRNZXNzYWdlOmEsZGVsZXRlTWVzc2FnZTplPT57bih0PT57bGV0e1tlXTpuLC4uLnJ9PXQ7cmV0dXJuIHJ9KX0sbWFya01lc3NhZ2VBc0RlbGV0ZWQ6KHQscik9PntsZXQgaT1BKGUpW3RdO2kmJm4oZT0+KHsuLi5lLFtpLmlkXTp7Li4uaSxkZWxldGVkQXQ6cj8/bmV3IERhdGUoKS50b0lTT1N0cmluZygpfX0pKX0scmVwbGFjZU1lc3NhZ2U6byx1cGRhdGVNZXNzYWdlUmF0aW5nOmU9PntBKGlkKT09PWUuY29udGVudC5kYXRhPy50YXJnZXQmJnhkKCksbih0PT4hZXx8ZS5jb250ZW50LnR5cGUhPT1HLk1lc3NhZ2VDb250ZW50VHlwZS5SYXRlRm9ybT97Li4udH06KHRbZS5pZF18fFlwKGUuaWQpLHsuLi50LFtlLmlkXTplfSkpfSxzZW5kTWVzc2FnZTphc3luYyhlLHQpPT57S3Auc2V0KGUpO2xldCBuPWF3YWl0IEpmKHt0ZXh0OmV9KTtuJiYoS3Auc2V0KG51bGwpLGF3YWl0IGEobiksei5lbWl0KGBtZXNzYWdlU2VudGAsbiksd2goQSgkdSkpKSxhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChlPT5PZChlKSkpfSxzZW5kQm90UmVwbHk6YXN5bmMoZSx0LG4pPT57bGV0IHI9YXdhaXQgSmYoe3RleHQ6dCxxdWlja1JlcGx5OntyZXBseVRvOmUscGF5bG9hZDpufX0pO24uaXNHb0JhY2tCdXR0b258fEptKHQpLHImJmF3YWl0IG8ocil9LGNsZWFyTWVzc2FnZXM6KCk9PntyKHt9KX19fSkoKSxBcD1lPT57QShSXyl8fElfKCksUV8oKSxzZXRUaW1lb3V0KCgpPT57Si5hZGRNZXNzYWdlKGUpLCRfKCl9LDE2MDApfSxqcD1lPT57ZSYmQShEXykmJkEoUl8pJiYhKEEoa18pJiZBKFgpKSYmX18oZSkmJnhwKCl9LE1wPU8oITEpLE5wPWsoW0pdLChbZV0pPT57bGV0IHQ9T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoUWYpO3JldHVybiB0P1NkKHQuc29ydCgoZSx0KT0+bmV3IERhdGUoZS5jcmVhdGVkQXQpLmdldFRpbWUoKS1uZXcgRGF0ZSh0LmNyZWF0ZWRBdCkuZ2V0VGltZSgpKSk6bnVsbH0pLFBwPWsoW0oscmRdLChbZSx0XSk9PntsZXQgbj1PYmplY3QudmFsdWVzKGUpLmZpbHRlcihRZik7cmV0dXJuIHQ/bi5maWx0ZXIoZT0+bmV3IERhdGUoZS5jcmVhdGVkQXQpPm5ldyBEYXRlKHQpKTpufSksRnA9ayhbUHBdLChbZV0pPT5TZChlKSksSXA9ayhbUHBdLChbZV0pPT5lLmxlbmd0aCksTHA9ayhbSXBdLChbZV0pPT5lPjApLFJwPWsoW0pdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpLnNvcnQodHApKSx6cD1rKFtScF0sKFtlXSk9Pm9wKGUpKSxCcD1rKFtScF0sKFtlXSk9PlNkKGUpPy5pZD8/bnVsbCksVnA9ayhbSl0sKFtlXSk9PlNkKE9iamVjdC52YWx1ZXMoZSkuZmlsdGVyKGU9PnR5cGVvZiBlLndpZGdldE9wdGlvbnM/LmRpc2FibGVJbnB1dD09YGJvb2xlYW5gKSk/LndpZGdldE9wdGlvbnM/LmRpc2FibGVJbnB1dD8/ITEpLEhwPWsoW0pdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpLmZpbHRlcihlPT5lLnN1YlR5cGU9PT1gY29udGFjdGB8fGUuc3ViVHlwZT09PWBhZ2VudGApLmxlbmd0aD4wKSxVcD1rKFtKXSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0KS5sZW5ndGg+MCksV3A9ayhbSixDc10sKFtlLHRdLG4pPT57aWYodCl7bGV0IHI9ZVt0XTtyJiZyLmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtJiZuKHttZXNzYWdlSWQ6ci5pZCx2YWx1ZTpyLmNvbnRlbnQuZGF0YT8udmFsdWUsdGV4dDpyLmNvbnRlbnQuZGF0YT8udGV4dCx0YXJnZXQ6ci5jb250ZW50LmRhdGE/LnRhcmdldH0pfWVsc2UgbihudWxsKX0pLEdwPWsoW1JwXSwoW2VdKT0+ZS5zbGljZSgpLnJldmVyc2UoKS5maW5kKGU9PmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCl8fG51bGwpLEtwPU8obnVsbCkscXA9KCk9PiEhVi5nZXRPcHRpb25zKCkucmF0aW5nRW5hYmxlZCxKcD0oKT0+ISFWLmdldE9wdGlvbnMoKS5haVJhdGluZ0VuYWJsZWQsWXA9ZT0+e0NzLnNldChlKSxCYyhIYy5DaGF0UmF0aW5nKX0sWHA9YXN5bmMoe21lc3NhZ2VJZDplLHJhdGluZzp7dGV4dDp0LHZhbHVlOm59LG9uU3VjY2VzczpyfSk9PntsZXQgaT1BKEopW2VdLGE9ZT09PWByYXRlX2Zvcm1faWRgP3ZvaWQgMDplO3RyeXthd2FpdCBxLmdldENsaWVudCgpLmNoYXRSYXRlKHttZXNzYWdlSWQ6YSx2YWx1ZTpuLHRleHQ6dD8/dm9pZCAwfSksciYmcigpfWNhdGNoKGUpe2kmJmF3YWl0IEoucmVwbGFjZU1lc3NhZ2UoaSksam8oYENoYXQgcmF0aW5nIGZhaWxlZC5gLFN0cmluZyhlKSksZ3MoQShXKShgZm9ybS5zdWJtaXQuZXJyb3JgKSl9fSxacD1lPT57bGV0e3dpZGdldFYzVXJsOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke3R9L2Fzc2V0cy9pbWFnZXMvcmF0aW5nLyR7ZX0uc3ZnYH0sUXA9LyhHLShbQS1aLDAtOV0qKSkvZywkcD1bXSxlbT0hMSx0bSxubT0hMSxybSxpbT1lPT5lLm1hdGNoKFFwKSxhbT0oKT0+e2xldHtnb29nbGVBbmFseXRpY3NFbmFibGVkOmV9PVYuZ2V0T3B0aW9ucygpO3RtPXdpbmRvdy50b3B8fHdpbmRvdyxlJiYodG0uZ3RhZyYmKHJtPXRtLmd0YWcsbm09ITApLHoub24oYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCxvbSksIWVtJiZVbygpJiZzbSgpKX0sb209ZT0+eyFlbSYmZSYmc20oKX0sc209KCk9PntsZXR7Z2FLZXk6ZSxnYU9wdGlvbnM6dCxnb29nbGVBbmFseXRpY3NNYW51YWw6bixnb29nbGVBbmFseXRpY3NNZWFzdXJlbWVudElkczpyfT1WLmdldE9wdGlvbnMoKSxpPXR8fHtjb29raWVEb21haW46YGF1dG9gfTtpZihlKWltKGUpJiYkcC5wdXNoKHtrZXk6ZSxvcHRpb25zOml9KTtlbHNlIGlmKG4mJnIpci5mb3JFYWNoKGU9PntpbShlKSYmJHAucHVzaCh7a2V5OmUsb3B0aW9uczppfSl9KTtlbHNlIHRyeXskcC5wdXNoKC4uLmNtKCkpfWNhdGNoKGUpe3ZvKGBFcnJvciBkdXJpbmcgZ2V0dGluZyBHQSB0b3AgdHJhY2tlcnNgLGUgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZSl9JHAubGVuZ3RoPjAmJiFubSYmbG0oKSwkcC5sZW5ndGg9PT0wP3ZvKGBObyBHQSB0byBzZXR1cGApOihkbSgpLGVtPSEwLHZvKGBHQSBpbml0aWFsaXplZGApKX0sY209KCk9PntsZXQgZT1bXTtyZXR1cm4gdG0uZ29vZ2xlX3RhZ19tYW5hZ2VyJiZPYmplY3Qua2V5cyh0bS5nb29nbGVfdGFnX21hbmFnZXIpLmZvckVhY2godD0+e2ltKHQpJiZlLnB1c2goe2tleTp0LG9wdGlvbnM6e2Nvb2tpZURvbWFpbjpgYXV0b2B9fSl9KSxlfSxsbT0oKT0+e2xldCBlPXRtLmRvY3VtZW50LHtoZWFkOnR9PWUsbj1lLmNyZWF0ZUVsZW1lbnQoYHNjcmlwdGApO24uaWQ9YGd0YWdgLG4udHlwZT1gdGV4dC9qYXZhc2NyaXB0YCxuLmFzeW5jPSEwLG4uc3JjPWBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzYCx0Lmluc2VydEJlZm9yZShuLHQuZmlyc3RDaGlsZCksdG0uZGF0YUxheWVyPXRtLmRhdGFMYXllcnx8W10sdG0uZ3RhZz1mdW5jdGlvbigpe3RtLmRhdGFMYXllci5wdXNoKGFyZ3VtZW50cyl9LHJtPXRtLmd0YWcscm0oYGpzYCxuZXcgRGF0ZSl9LHVtPSgpPT57bGV0IGU9W107aWYobm0pe2xldCB0PWNtKCk7JHAuZm9yRWFjaChuPT57dC5maW5kKCh7a2V5OmV9KT0+ZT09PW4ua2V5KXx8ZS5wdXNoKG4pfSl9ZWxzZSBlPVsuLi4kcF07cmV0dXJuIGV9LGRtPSgpPT57dW0oKS5mb3JFYWNoKGU9PntsZXR7a2V5OnQsb3B0aW9uczpufT1lLHI9e307bj8ocj17Y29va2llX2RvbWFpbjpuLmNvb2tpZURvbWFpbn0sbi5uYW1lJiYoci5uYW1lPW4ubmFtZSkpOnI9e2Nvb2tpZV9kb21haW46dG0/LmxvY2F0aW9uLmhvc3RuYW1lfHxgYH0sci5zZW5kX3BhZ2Vfdmlldz0hMSxybShgY29uZmlnYCx0LHIpfSl9LGZtPShlLHQpPT57bGV0e2dvb2dsZUFuYWx5dGljc0VuYWJsZWQ6bn09Vi5nZXRPcHRpb25zKCk7aWYoISghbnx8IXRtLmd0YWd8fCFVbygpfHx0bS5kb2N1bWVudC5oaWRkZW4pKXRyeXskcC5mb3JFYWNoKG49Pnt0LnNlbmRfdG89bi5rZXkscm0oYGV2ZW50YCxlLHQpLHZvKGBTbWFydHN1cHA6IEdBIGV2ZW50ICR7ZX0gLSAke0pTT04uc3RyaW5naWZ5KHQpfWApfSl9Y2F0Y2goZSl7dm8oYFNtYXJ0c3VwcDogR0EgZXJyb3I6YCxlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUpfX0scG09YFZpc2l0b3Jfc3RhcnRlZF9jb252ZXJzYXRpb25gLG1tPWBWaXNpdG9yX2Nsb3NlZF9jb252ZXJzYXRpb25gLGhtPWBUcmlnZ2VyX21lc3NhZ2Vfc2VudGAsZ209YFRyaWdnZXJfbWVzc2FnZV92aWV3ZWRgLF9tPWBUcmlnZ2VyX3Zpc2l0b3JfcmVhY3Rpb25gLHZtPWBBdXRvX21lc3NhZ2Vfc2VudGAseW09YEF1dG9fbWVzc2FnZV92aWV3ZWRgLGJtPWBBdXRvX21lc3NhZ2VfdmlzaXRvcl9yZWFjdGlvbmAseG09YENoYXRib3Rfc2VudGAsU209YENoYXRib3Rfdmlld2VkYCxDbT1gQ2hhdGJvdF9pbnRlcmFjdGlvbmAsd209YENoYXRib3RfYnV0dG9uX2ludGVyYWN0aW9uYCxUbT1gQ2hhdGJvdF92aXNpdG9yX3JlYWN0aW9uYCxFbT1gQWlfY2hhdGJvdF9zZW50YCxEbT1gQWlfY2hhdGJvdF9pbnRlcmFjdGlvbmAsT209YEFpX2NoYXRib3RfdmlzaXRvcl9yZWFjdGlvbmAsa209YEFnZW50X3NlcnZlZF9jb252ZXJzYXRpb25gLEFtPWBBZ2VudF9jbG9zZWRfY29udmVyc2F0aW9uYCxqbT1gQ29udGFjdF9hY3F1aXJlZGAsTW09YEF1dGhfZm9ybV9maWxsZWRgLE5tPWBPZmZsaW5lX21lc3NhZ2Vfc2VudGAsUG09YEZlZWRiYWNrX3NlbnRgLEZtPWBGZWVkYmFja190ZXh0X3NlbnRgLEltPWBVcmxfY2FyZF9vcGVuZWRgLExtPWBDaGF0Ym94X29wZW5lZGAsUm09e2V2ZW50X2NhdGVnb3J5OmBTbWFydHN1cHBfdjNgLG5vbl9pbnRlcmFjdGlvbjohMH0sWT0oZSx0KT0+e2ZtKGUsey4uLlJtLC4uLnR9KX0sem09KGU9YGApPT5ZKGhtLHtldmVudF9sYWJlbDplfSksQm09ZT0+WShnbSx7ZXZlbnRfbGFiZWw6ZX0pLFZtPShlPWBgKT0+WShfbSx7ZXZlbnRfbGFiZWw6ZX0pLEhtPShlPWBgKT0+WSh2bSx7ZXZlbnRfbGFiZWw6ZX0pLFVtPWU9PlkoeW0se2V2ZW50X2xhYmVsOmV9KSxXbT0oZT1gYCk9PlkoYm0se2V2ZW50X2xhYmVsOmV9KSxHbT0oZT1gYCk9PlkoeG0se2V2ZW50X2xhYmVsOmV9KSxLbT1lPT5ZKFNtLHtldmVudF9sYWJlbDplfSkscW09KGU9YGApPT5ZKENtLHtldmVudF9sYWJlbDplfSksSm09KGU9YGApPT5ZKHdtLHtldmVudF9sYWJlbDplfSksWW09KGU9YGApPT5ZKFRtLHtldmVudF9sYWJlbDplfSksWG09KCk9PlkocG0pLFptPSgpPT5ZKG1tKSxRbT1lPT5ZKEFtLHtldmVudF9sYWJlbDplfSksJG09ZT0+WShrbSx7ZXZlbnRfbGFiZWw6ZX0pLGVoPSgpPT5ZKE1tKSx0aD0oKT0+WShObSksbmg9KGUsdCk9PntsZXQgbj17ZXZlbnRfbGFiZWw6dHx8dnNbZV18fGBgLHZhbHVlOmV9O1kodD9GbTpQbSxuKX0scmg9ZT0+WShqbSx7ZXZlbnRfbGFiZWw6ZX0pLGloPWU9PlkoSW0se2V2ZW50X2xhYmVsOmV9KSxhaD0oZT1gYCk9PlkoRW0se2V2ZW50X2xhYmVsOmV9KSxvaD0oZT1gYCk9PlkoRG0se2V2ZW50X2xhYmVsOmV9KSxzaD0oZT1gYCk9PlkoT20se2V2ZW50X2xhYmVsOmV9KSxjaD0oKT0+WShMbSksbGg9ITEsdWg9e30sZGg9KCk9PntsaD0hMX0sZmg9KCk9Pnt1aD13cChBKFJwKSl9LHBoPShlLHQpPT5saD8hMTpDcChlKS5sZW5ndGg9PT0xJiZ0PT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0PyhsaD0hMCwhMCk6ITEsbWg9KGUsdCk9PntsZXQgbj1lLnRyaWdnZXI/LmlkfHxgYDtyZXR1cm4gdC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0JiZlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXImJiF1aFtuXT8udmlzaXRvclJlc3BvbmRlZD8odWhbbl0udmlzaXRvclJlc3BvbmRlZD0hMCwhMCk6ITF9LGhoPShlLHQpPT57bGV0IG49ZS50cmlnZ2VyPy5pZHx8YGA7cmV0dXJuIHQuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCYmISh0LmNvbnRlbnQucXVpY2tSZXBsaWVzfHx0LmNvbnRlbnQucXVpY2tSZXBseSkmJmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90JiYhdWhbbl0/LnZpc2l0b3JSZXNwb25kZWQmJm4/KHVoW25dLnZpc2l0b3JSZXNwb25kZWQ9ITAsITApOiExfSxnaD0oZSx0KT0+e2xldCBuPWUudHJpZ2dlcj8uaWR8fGBgO3JldHVybiB0LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNvbnRhY3QmJmUudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuY2hhdGJvdCYmIXVoW25dPy5yZWFjdGVkPyh1aFtuXS5yZWFjdGVkPSEwLCEwKTohMX0sX2g9ZT0+e2xldCB0PWUudHJpZ2dlcj8uaWR8fGBgO3JldHVybiBlLnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLmFpJiYhdWhbdF0/LnJlYWN0ZWQ/KHVoW3RdLnJlYWN0ZWQ9ITAsITApOiExfSx2aD0oZSx0LG49ITEpPT57aWYoZS5sZW5ndGg+MCYmIW4pe2xldCB0PWUuc2xpY2UoLTIpLmZpbHRlcihlPT5lLnRyaWdnZXIpO3JldHVybiB0P3RbdC5sZW5ndGgtMV0udHJpZ2dlcj8ubmFtZTpgYH1lbHNlIHJldHVybiB0LnRyaWdnZXI/dC50cmlnZ2VyLm5hbWU6YGB9LHloPWU9PntsZXQgdD1BKFJwKTt4aCh0LGUpLFNoKHQsZSkscGgodCxlLnN1YlR5cGUpJiZYbSgpfSxiaD1lPT57bGV0IHQ9ZSxuPUEoUnApLmZpbHRlcihlPT5lLnRyaWdnZXIpO24mJm4ubGVuZ3RoPjAmJih0PW5bbi5sZW5ndGgtMV0udHJpZ2dlcj8ubmFtZT8/ZSkscmgodCl9LHhoPShlLHQpPT57bGV0IG49dC50cmlnZ2VyPy5pZHx8YGA7dC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3QmJiF1aFtuXT8uc2VudCYmKHQudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuY2hhdGJvdCYmKEdtKHZoKGUsdCwhMCkpLHVoW25dPXtzZW50OiEwfSksdC50cmlnZ2VyPy5ncm91cFR5cGU9PT1HLkdyb3VwVHlwZS5tZXNzYWdlJiYoSG0odmgoZSx0LCEwKSksdWhbbl09e3NlbnQ6ITB9KSx0LnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLmFpJiYoYWgodmgoZSx0LCEwKSksdWhbbl09e3NlbnQ6ITB9KSk7bGV0IHI9ZS5sZW5ndGg+MT9lW2UubGVuZ3RoLTJdOnZvaWQgMDtyJiYoaGgocix0KT8oci50cmlnZ2VyPy5ncm91cFR5cGU9PT1HLkdyb3VwVHlwZS5jaGF0Ym90JiZZbSh2aChlLHQpKSxyLnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLm1lc3NhZ2UmJldtKHZoKGUsdCkpLHIudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuYWkmJnNoKHZoKGUsdCkpKTpnaChyLHQpP3FtKHZoKGUsdCkpOl9oKHQpJiZvaCh2aChlLHQpKSl9LFNoPShlLHQpPT57dC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5UcmlnZ2VyJiYoem0odD8udHJpZ2dlcj8ubmFtZSksdWhbdC50cmlnZ2VyPy5pZHx8YGBdPXtzZW50OiEwfSk7bGV0IG49ZS5sZW5ndGg+MT9lW2UubGVuZ3RoLTJdOnZvaWQgMDtuJiZtaChuLHQpJiZWbSh2aChlLHQpKX0sQ2g9KCk9PntsZXQgZT1BKFBwKS5maWx0ZXIoZT0+ZS50cmlnZ2VyKSx0PWVbZS5sZW5ndGgtMV07dCYmdC50cmlnZ2VyJiYodC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3QmJnQuY29udGVudC5xdWlja1JlcGxpZXM/S20odC50cmlnZ2VyLm5hbWUpOnQuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90P1VtKHQudHJpZ2dlci5uYW1lKTp0LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXImJkJtKHQudHJpZ2dlci5uYW1lKSl9LHdoPWU9PntlPT09Sy5BY2NvdW50U3RhdHVzLk9mZmxpbmUmJnRoKCl9O3oub24oYG1lc3NhZ2VSZWNlaXZlZGAseWgpLHoub24oYGFnZW50Sm9pbmVkYCxlPT57JG0oZS5mdWxsbmFtZSl9KSx6Lm9uKGBjaGF0UmF0ZWRgLGU9PntuaChlLnZhbHVlLGUudGV4dCl9KSx6Lm9uKGBjaGF0Q2xvc2VkYCwoKT0+e2RoKCl9KSx6Lm9uKGBjaGF0VmlzaXRvckNsb3NlZGAsKCk9PntkaCgpfSksei5vbihgY29udGFjdEFjcXVpcmVkYCwoe2FjcXVpcmVkQnk6ZX0pPT57YmgoZSl9KSxYbC5wdXNoKGZoKTt2YXIgVGg9e0Fycm93RG93bjpgQXJyb3dEb3duYCxBcnJvd1VwOmBBcnJvd1VwYCxFbnRlcjpgRW50ZXJgLEVzY2FwZTpgRXNjYXBlYCxUYWI6YFRhYmB9LEVoPTJlMyxEaD0yZTMsT2g9ZT0+ZS5maWx0ZXIoZT0+IWUuaXNIaWRkZW4pLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LnZhbHVlLGUpLHt9KSxraD1lPT5lLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LnZhbGlkYXRvcnMsZSkse30pLEFoPShlLHQsbik9PntlLnVwZGF0ZShlPT4oey4uLmUsW3RdOm59KSl9LGpoPShlLHQpPT57bGV0IG49e307Zm9yKGxldCByIGluIGUpbltyXT10O3JldHVybiBufSxNaD0oKT0+TWF0aC5yYW5kb20oKS50b1N0cmluZygzNiksTmg9ZT0+e2lmKCFlKXJldHVybiExO2xldCB0PWUuc3BsaXQoYEBgKTtpZih0Lmxlbmd0aCE9PTIpcmV0dXJuITE7bGV0IG49dFswXSxyPXRbMV07cmV0dXJuIG4ubGVuZ3RoPjY0fHxyLmxlbmd0aD4yNTV8fHIuc3BsaXQoYC5gKS5zb21lKGU9PmUubGVuZ3RoPjYzKT8hMTp5Zi50ZXN0KGUpfSxQaD1udWxsLEZoPWU9PntsZXQgdD1lLmluaXRpYWxWYWx1ZXN8fHt9LHt2YWxpZGF0b3JzOm4sb25DaGFuZ2U6cixvblN1Ym1pdDppfT1lLGE9KCk9Pih7Li4udH0pLG89amgodCxQaCkscz1PKGEoKSksYz1PKG8pLGw9TyhqaCh0LCExKSksdT1PKCExKSxkPWsoYyxlPT5PYmplY3QudmFsdWVzKGUpLmV2ZXJ5KGU9PmU9PT1QaCkpLGY9KCk9PntPYmplY3QuZW50cmllcyhBKHMpKS5mb3JFYWNoKChbZSx0XSk9PntlZShlLHQpfSl9LHA9ZT0+e2xldCB0PWUudGFyZ2V0O3QmJl8odC5uYW1lfHx0LmlkLHQudmFsdWUpfSxtPWFzeW5jIGU9PntpZihlJiZlLnByZXZlbnREZWZhdWx0JiZlLnByZXZlbnREZWZhdWx0KCksdS5zZXQoITApLGYoKSwhQShkKSl7dS5zZXQoITEpO3JldHVybn1jLnNldChvKSxhd2FpdCBpKEEocykpLHUuc2V0KCExKX0saD0oZSx7c2hvdWxkVmFsaWRhdGU6dD0hMX09e30pPT57cy51cGRhdGUodD0+KHsuLi50LC4uLmV9KSksdCYmZigpfSxnPShlLHQpPT57XyhlLHQpfSxfPShlLHQpPT57dihlLHQpLGVlKGUsdCksciYmcihlLHQpfSx2PShlLHQpPT57QWgocyxlLHQpfSx5PShlLHQpPT57QWgobCxlLHQpfSxlZT0oZSx0KT0+e3koZSx0KTtsZXQgcj1uW2VdO2lmKHIpZm9yKGxldCBuIG9mIHIpe2xldHt0eXBlOnIsaXNWYWxpZDppfT1uKHQpO2lmKEFoKGMsZSxpP1BoOnIpLCFpKXJldHVybn19O3JldHVybntmb3JtOnMsZXJyb3JzOmMsaXNWYWxpZDpkLGlzU3VibWl0dGluZzp1LGhhbmRsZUNoYW5nZTpwLGhhbmRsZVN1Ym1pdDptLHNldEZpZWxkVmFsdWU6ZyxzZXRWYWx1ZXM6aH19LEloPWZ1bmN0aW9uKGUpe3JldHVybiBlLlRleHQ9YHRleHRgLGUuQ2hlY2tib3g9YGNoZWNrYm94YCxlLlNlbGVjdD1gc2VsZWN0YCxlfSh7fSksTGg9KCk9PmU9PntsZXQgdD0hMDtyZXR1cm4gZT8/KHQ9ITEpLEx1KGUpJiYodD1lLnRyaW0oKS5sZW5ndGg+MCkse3R5cGU6YHJlcXVpcmVkYCxpc1ZhbGlkOnR9fSxSaD0oKT0+ZT0+KHt0eXBlOmBjaGVja2VkYCxpc1ZhbGlkOkx1KGUpP2U9PT1gdHJ1ZWA6ZT09PSEwfSksemg9KCk9PmU9Pih7dHlwZTpgZW1haWxgLGlzVmFsaWQ6TmgoU3RyaW5nKGUpKX0pLEJoPSgpPT5lPT4oe3R5cGU6YHBob25lYCxpc1ZhbGlkOi9eWytdKlsoXXswLDF9WzAtOV17MSw0fVspXXswLDF9Wy1zLi8wLTldKiQvLnRlc3QoU3RyaW5nKGUpKX0pLFZoPU8odm9pZCAwKSxIaD1lPT57bGV0e2VtYWlsQ29udHJvbDp0fT1WLmdldE9wdGlvbnMoKSxuPSEhZT8uZW1haWw7cmV0dXJuIHQmJiFufSxVaD1lPT57bGV0e25hbWVDb250cm9sOnR9PVYuZ2V0T3B0aW9ucygpLG49ISFlPy5uYW1lO3JldHVybiB0JiYhbn0sV2g9ZT0+e2xldHtudW1iZXJDb250cm9sOnR9PVYuZ2V0T3B0aW9ucygpLG49ISFlPy5waG9uZTtyZXR1cm4hIXQmJiFufSxHaD0oKT0+e2xldHtncm91cFNlbGVjdEVuYWJsZWQ6ZX09Vi5nZXRPcHRpb25zKCksdD1BKGFsKTtyZXR1cm4hIWUmJnQubGVuZ3RoPjB9LEtoPSgpPT57bGV0e3ByaXZhY3lOb3RpY2VFbmFibGVkOmUscHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQ6dH09Vi5nZXRPcHRpb25zKCksbj1jZygpO3JldHVybiEhZSYmdCYmIW59LHFoPWU9PntsZXR7cHJpdmFjeU5vdGljZUVuYWJsZWQ6dH09Vi5nZXRPcHRpb25zKCksbj0hIWU/LnZhcmlhYmxlcz8ucGVyc29uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQ7cmV0dXJuISF0JiYhbn0sSmg9KCk9Pih7dHlwZTpJaC5UZXh0LHN1YlR5cGU6YGVtYWlsYCxuYW1lOmBlbWFpbGAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLmVtYWlsYCxwbGFjZWhvbGRlcjpgYXV0aEZvcm0ueW91ckVtYWlsYCx2YWx1ZTpgYCx2YWxpZGF0b3JzOltMaCgpLHpoKCldLG1heExlbmd0aDoyNTV9KSxZaD0oKT0+KHt0eXBlOkloLlRleHQsc3ViVHlwZTpgdGV4dGAsbmFtZTpgbmFtZWAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLm5hbWVgLHBsYWNlaG9sZGVyOmBhdXRoRm9ybS55b3VyTmFtZWAsdmFsdWU6YGAsdmFsaWRhdG9yczpbTGgoKV0sbWF4TGVuZ3RoOjI1NX0pLFhoPSgpPT4oe3R5cGU6SWguVGV4dCxzdWJUeXBlOmB0ZWxgLG5hbWU6YHBob25lYCxsYWJlbDpgYXV0aEZvcm0ubGFiZWwucGhvbmVgLHBsYWNlaG9sZGVyOmBhdXRoRm9ybS55b3VyUGhvbmVgLHZhbHVlOmBgLHZhbGlkYXRvcnM6W0xoKCksQmgoKV0sbWF4TGVuZ3RoOjMyfSksWmg9ZT0+e2xldCB0PUEoYWwpO3JldHVybnt0eXBlOkloLlNlbGVjdCxuYW1lOmBncm91cGAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLmdyb3VwYCxwbGFjZWhvbGRlcjpgYXV0aEZvcm0uZ3JvdXBgLHZhbHVlOmU/Lmdyb3VwPz9gYCx2YWxpZGF0b3JzOltMaCgpXSxvcHRpb25zOnQubWFwKGU9Pih7dGV4dDplLm5hbWUsdmFsdWU6ZS5rZXl9KSl9fSxRaD0oKT0+KHt0eXBlOkloLkNoZWNrYm94LG5hbWU6YHBlcnNvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50YCxsYWJlbDpgYXV0aEZvcm0uYWNjZXB0VGVybXNgLHZhbHVlOiExLHZhbGlkYXRvcnM6W1JoKCldfSksJGg9KCk9Pih7dHlwZTpJaC5DaGVja2JveCxuYW1lOmBwZXJzb25hbERhdGFQcm9jZXNzaW5nQ29uc2VudGAsbGFiZWw6YHRvcEJhci5nZHByVGl0bGVgLHZhbHVlOiExLHZhbGlkYXRvcnM6W10saXNIaWRkZW46ITB9KSxlZz1lPT4oe3Nob3dFbWFpbDpIaChlKSxzaG93TmFtZTpVaChlKSxzaG93UGhvbmU6V2goZSksc2hvd0dyb3VwczpHaCgpLHNob3dDb25zZW50OktoKCl9KSx0Zz1lPT4oe3Nob3dFbWFpbDohIWUuZW1haWxDb250cm9sLHNob3dOYW1lOiEhZS5uYW1lQ29udHJvbCxzaG93UGhvbmU6ISFlLm51bWJlckNvbnRyb2wsc2hvd0dyb3VwczohIWUuZ3JvdXBTZWxlY3RFbmFibGVkLHNob3dDb25zZW50OiEhZS5wcml2YWN5Tm90aWNlRW5hYmxlZCYmZS5wcml2YWN5Tm90aWNlQ2hlY2tSZXF1aXJlZH0pLG5nPWU9Pk9iamVjdC52YWx1ZXMoZWcoZSkpLnNvbWUoZT0+ZSkscmc9KGUsdCk9PntsZXQgbj1bXSx7c2hvd0VtYWlsOnIsc2hvd05hbWU6aSxzaG93UGhvbmU6YSxzaG93R3JvdXBzOm8sc2hvd0NvbnNlbnQ6c309dD90Zyh0KTplZyhlKTtyZXR1cm4gaSYmbi5wdXNoKFloKCkpLHImJm4ucHVzaChKaCgpKSxhJiZuLnB1c2goWGgoKSksbyYmbi5wdXNoKFpoKGUpKSxzP24ucHVzaChRaCgpKTpuLmxlbmd0aD4wJiYodD90Py5wcml2YWN5Tm90aWNlRW5hYmxlZDpxaChlKSkmJm4ucHVzaCgkaCgpKSxufSxpZz0oKT0+e2xldCBlPXpvKFUuQXV0aEZvcm0pO2lmKCFlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaHtyZXR1cm4gbnVsbH19LGFnPShlLHQpPT57bGV0IG49aWcoKSxyPXtbZV06dH0saT1uP3suLi5uLC4uLnJ9OnI7Qm8oe25hbWU6VS5BdXRoRm9ybSx2YWx1ZTpKU09OLnN0cmluZ2lmeShpKX0pfSxvZz0oKT0+e0xvKFUuQXV0aEZvcm0pfSxzZz0oKT0+ISFBKE11KT8udmFyaWFibGVzPy5hdXRoZW50aWNhdGVkLGNnPSgpPT5BKE11KT8uZ2RwckFwcHJvdmVkfHwhMSxsZz0oKT0+e2xldHtpc1ByZXZpZXdNb2RlOmV9PVYuZ2V0T3B0aW9ucygpO2lmKGV8fEEocGQpfHxzZygpfHwhbmcoQShNdSkpKXJldHVybiExO2xldHtyZXF1aXJlTG9naW46dH09Vi5nZXRPcHRpb25zKCksbj1BKCR1KT09PUsuQWNjb3VudFN0YXR1cy5PZmZsaW5lLHI9QShVdSkubGVuZ3RoPjA7cmV0dXJuISF0fHxufHwhbiYmIXJ9LHVnPWFzeW5jIGU9PntsZXR7cHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQ6dH09Vi5nZXRPcHRpb25zKCksbj1BKE11KSxyPW4/Lm5hbWU/P2UubmFtZSxpPW4/LmVtYWlsPz9lLmVtYWlsLGE9bj8ucGhvbmU/P2UucGhvbmUsbz1lLmdyb3VwPz9uPy5ncm91cCxzPWUucGVyc29uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQsYz17Li4uciYme25hbWU6cn0sLi4uaSYme2VtYWlsOml9LC4uLmEmJntwaG9uZTphfSwuLi5vJiZ7Z3JvdXA6b30sLi4ucyYmdCYme3BlcnNvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50OnN9fTthd2FpdCBxLmdldENsaWVudCgpLmF1dGhlbnRpY2F0ZShjKSxlaCgpLGF3YWl0IHVfKCksVmMoKX0sZGc9YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGVtb2ppLW1hcnQvZGF0YWAsZmc9UmVnRXhwKGA6KFthLXpBLVowLTlfLV0rKTpgLGBnYCkscGc9bnVsbCxtZz1udWxsLGhnPW51bGwsZ2c9TyhbXSksX2c9YXN5bmMoKT0+cGd8fGhnfHwoaGc9ZmV0Y2goZGcpLnRoZW4oZT0+ZS5qc29uKCkpLnRoZW4oZT0+KHBnPWUsZSkpLmNhdGNoKGU9Pnt0aHJvdyB2byhgRmFpbGVkIHRvIGxvYWQgZW1vamkgZGF0YWAsZSksaGc9bnVsbCxlfSksaGcpLHZnPWU9Pk9iamVjdC52YWx1ZXMoZS5lbW9qaXMpLm1hcChlPT4oe2lkOmUuaWQsbmFtZTplLm5hbWUsbmF0aXZlOmUuc2tpbnNbMF0/Lm5hdGl2ZT8/YGAsa2V5d29yZHM6ZS5rZXl3b3Jkcz8/W119KSkseWc9e3N1YnNjcmliZTpnZy5zdWJzY3JpYmUsYXN5bmMgbG9hZFJhd0RhdGEoKXtyZXR1cm4gX2coKX0sYXN5bmMgbG9hZERhdGEoKXtyZXR1cm4gbWd8fChtZz12Zyhhd2FpdCBfZygpKSxnZy5zZXQobWcpLG1nKX0sZ2V0QnlJZChlKXtsZXQgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG1nPy5maW5kKGU9PmUuaWQudG9Mb3dlckNhc2UoKT09PXQpfSxpc0xvYWRlZCgpe3JldHVybiBtZyE9PW51bGx9fSxiZz1lPT55Zy5pc0xvYWRlZCgpP2UucmVwbGFjZShmZywoZSx0KT0+e2xldCBuPXlnLmdldEJ5SWQodCk7cmV0dXJuIG4/bi5uYXRpdmU6ZX0pOmUseGc9MjAsU2c9eyI6KSI6YPCfmYJgLCI6LSkiOmDwn5mCYCwiOkQiOmDwn5iAYCwiOi1EIjpg8J+YgGAsIjspIjpg8J+YiWAsIjstKSI6YPCfmIlgLCI8MyI6YOKdpO+4j2AsIjooIjpg8J+YnmAsIjotKCI6YPCfmJ5gLCI6UCI6YPCfmJtgLCI6LVAiOmDwn5ibYCwiOi1vIjpg8J+YrmAsIjpPIjpg8J+YrmAsIjovIjpg8J+YlWAsIjotLyI6YPCfmJVgfSxDZz1lPT57bGV0IHQ9YCgke2U/YCR8YDpgYH0gKWA7cmV0dXJuIG5ldyBSZWdFeHAoT2JqZWN0LmtleXMoU2cpLm1hcChlPT5gJHtlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLGBcXCQmYCl9JHt0fWApLmpvaW4oYHxgKSxgZ2lgKX0sd2c9KGUsdD0hMSk9PntsZXQgbj1DZyh0KTtyZXR1cm4gZS5yZXBsYWNlKG4sZT0+e2xldCB0PU9iamVjdC5rZXlzKFNnKS5maW5kKHQ9PmUudG9VcHBlckNhc2UoKS5pbmNsdWRlcyh0KSk7aWYoIXQpcmV0dXJuIGU7bGV0IG49ZS5lbmRzV2l0aChgIGApP2AgYDpgYDtyZXR1cm5gJHtTZ1t0XX0ke259YH0pfSxUZz0oZSx0LG49eGcpPT57aWYoIWV8fGUubGVuZ3RoPDIpcmV0dXJuW107bGV0IHI9ZS50b0xvd2VyQ2FzZSgpLGk9W10sYT1bXSxvPVtdLHM9W107Zm9yKGxldCBlIG9mIHQpe2xldCB0PWUuaWQudG9Mb3dlckNhc2UoKSxuPWUubmFtZS50b0xvd2VyQ2FzZSgpO2lmKHQuc3RhcnRzV2l0aChyKSl7aS5wdXNoKGUpO2NvbnRpbnVlfWlmKHQuaW5jbHVkZXMocikpe2EucHVzaChlKTtjb250aW51ZX1pZihuLmluY2x1ZGVzKHIpKXtvLnB1c2goZSk7Y29udGludWV9ZS5rZXl3b3Jkcy5zb21lKGU9PmUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhyKSkmJnMucHVzaChlKX1yZXR1cm5bLi4uaSwuLi5hLC4uLm8sLi4uc10uc2xpY2UoMCxuKX0sRWc9KGUsdCk9PntsZXQgbj1lLnNsaWNlKDAsdCkscj1uLmxhc3RJbmRleE9mKGA6YCk7aWYocj09PS0xKXJldHVybiBudWxsO2xldCBpPW4uc2xpY2UocisxKTtyZXR1cm4gUmVnRXhwKGBeW2EtekEtWjAtOV8tXSokYCkudGVzdChpKSYmaS5sZW5ndGg+PTI/aTpudWxsfSxEZz0oZSx0LG4pPT57bGV0IHI9ZS5zbGljZSgwLHQpLGk9ZS5zbGljZSh0KSxhPXIubGFzdEluZGV4T2YoYDpgKTtpZihhPT09LTEpcmV0dXJue25ld1RleHQ6ZSxuZXdDdXJzb3JQb3NpdGlvbjp0fTtsZXQgbz1lLnNsaWNlKDAsYSkscz1pLmxlbmd0aD09PTA/bitgIGA6bjtyZXR1cm57bmV3VGV4dDpvK3MraSxuZXdDdXJzb3JQb3NpdGlvbjphK3MubGVuZ3RofX0sT2c9KGUsdD0zMDApPT57bGV0IG47cmV0dXJuKC4uLnIpPT57Y2xlYXJUaW1lb3V0KG4pLG49c2V0VGltZW91dCgoKT0+ZSguLi5yKSx0KX19LGtnPTNlMyxBZz1bYHNtYXJ0c3VwcC5kZXZgLGBzbWFydHN1cHBjaGF0LmxvY2BdLGpnPWZ1bmN0aW9uKGUpe3JldHVybiBlLkRlZmF1bHQ9YGJsYWNrYmVycnkyLm1wM2AsZX0oe30pLE1nPWZ1bmN0aW9uKGUpe3JldHVybiBlLkNvbm5lY3Rpbmc9YGNvbm5lY3RpbmdgLGUuQ29ubmVjdGVkPWBjb25uZWN0ZWRgLGUuRGlzY29ubmVjdGVkPWBkaXNjb25uZWN0ZWRgLGV9KHt9KSxOZz1mdW5jdGlvbihlKXtyZXR1cm4gZS5JbWFnZT1gaW1hZ2VgLGUuVmlkZW89YHZpZGVvYCxlfSh7fSksUGc9TyghMSksRmc9TyghMSksSWc9TyghMSk7QigpLmFkZEV2ZW50TGlzdGVuZXIoYG9mZmxpbmVgLCgpPT5QZy5zZXQoITApKSxCKCkuYWRkRXZlbnRMaXN0ZW5lcihgb25saW5lYCwoKT0+UGcuc2V0KCExKSk7dmFyIExnPWsoW2RsLFBnLElnXSwoW2UsdCxuXSk9Pm4/TWcuQ29ubmVjdGVkOiFlfHx0P01nLkRpc2Nvbm5lY3RlZDpNZy5Db25uZWN0ZWQsTWcuQ29ubmVjdGluZyksUmcsemc9T2coZT0+e2UmJiFSZyYmKFJnPV9zKEEoVykoYGVycm9yLm5vSW50ZXJuZXRgKSwwKSksIWUmJlJnJiYoUmcoKSxSZz12b2lkIDApfSxrZyk7TGcuc3Vic2NyaWJlKGU9PntlPT09TWcuRGlzY29ubmVjdGVkJiYoRmcuc2V0KCEwKSx6ZyghMCkpLGU9PT1NZy5Db25uZWN0ZWQmJihGZy5zZXQoITEpLHpnKCExKSl9KTt2YXIgQmc9KGUsdCxuKT0+ZT09PU1nLkRpc2Nvbm5lY3RlZHx8IXR8fG4sVmc9KCk9PkJnKEEoTGcpLEEoSHApLEEoWHUpLmRpc2FibGVBdHRhY2htZW50cyksSGc9TyghMSksVWc9ZT0+e2lmKEEoSGcpKXtIKGBUaGVyZSBpcyBhbHJlYWR5IGZpbGUgdXBsb2FkIGluIHByb2dyZXNzYCk7cmV0dXJufWlmKGUubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9V2coZSk7dC5sZW5ndGg+MCYmWWwuYWRkKHQpfSxXZz1lPT5lLmxlbmd0aD41PyhncyhgJHtBKFcpKGBmaWxlVXBsb2FkLnRvb01hbnlGaWxlc2ApfSA1YCksW10pOmUuZmlsdGVyKGU9PkdnKGUpKSxHZz1lPT57bGV0e2FjY2VwdGVkRmlsZUV4dGVuc2lvbnM6dCxhY2NlcHRlZEZpbGVUeXBlczpuLG1heEZpbGVTaXplOnJ9PUEoYmwpO2lmKCFlKXJldHVybiExO2xldCBpPXQuaW5jbHVkZXMoQ2QoZS5uYW1lKSksYT1uLnNvbWUodD0+dD09PWUudHlwZSk7aWYoVmcoKSlyZXR1cm4gSChgRmlsZSB1cGxvYWQgaXMgZGlzYWJsZWRgKSwhMTtpZighQShIcCkpcmV0dXJuIGdzKEEoVykoYHdhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0YCkpLCExO2lmKGUuc2l6ZT5yKXtsZXQgZT13ZChyKTtyZXR1cm4gZ3MoYCR7QShXKShgZmlsZVVwbG9hZC5maWxlVG9vQmlnYCl9ICR7ZS5zaXplfSAke2UudW5pdH1gKSwhMX1yZXR1cm4gaXx8YT8hMDooZ3MoQShXKShgZmlsZVVwbG9hZC5iYWRGaWxlVHlwZWApKSwhMSl9LEtnPSgpPT5ZbC5jb3VudCgpPT09MD9bXTooWWwuc2V0VXBsb2FkaW5nU3RhdHVzKCksRGQoQShZbCksZT0+WWwuc2V0RmlsZVVwbG9hZGVkKGUubmFtZSkpKSxxZz0xMCxKZz0xZTQsWWc9M2U0LFhnPTIwLFpnPWU9PntpZihlLmxlbmd0aD4wJiZlLmxlbmd0aCVxZz09PTApe2xldCB0PWUuc2xpY2UoLXFnKSxuPW5ldyBEYXRlKGVbZS5sZW5ndGgtMV0uY3JlYXRlZEF0KS5nZXRUaW1lKCk7aWYobmV3IERhdGUoKS5nZXRUaW1lKCktbj5ZZ3x8IXQuZXZlcnkoZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0KSlyZXR1cm4hMTtpZihuLW5ldyBEYXRlKHRbMF0uY3JlYXRlZEF0KS5nZXRUaW1lKCk8SmcpcmV0dXJuITB9cmV0dXJuITF9LFFnPWU9PntsZXQgdD1qZihlKTtyZXR1cm4gdD90Lmxlbmd0aD5YZzohMX0sJGc9TygpLGVfPU8oITEpLHRfPU8oKSxuXz0yMDAscl89TyghMSksaV89ayhbJGddLChbZV0pPT5lPT09dm9pZCAwP3pvKFUuTWVzc2FnZSk/P2BgOmUpLGFfPWsoW2lfXSwoW2VdKT0+ZS50cmltKCkubGVuZ3RoPT09MCksb189ZT0+eyRnLnNldChiZyh3ZyhlKSkpfSxzXz0oZSx0KT0+e2xldCBuPUEoaV8pPz9gYCxyPWAke24uc2xpY2UoMCx0KX0ke2V9JHtuLnNsaWNlKHQpfWA7JGcuc2V0KHIpfSxjXz0oKT0+e0EoZV8pfHwocS5nZXRDbGllbnQoKS5jaGF0VHlwaW5nKCEwKSxlXy5zZXQoITApKX0sbF89KCk9PntBKGVfKSYmKHEuZ2V0Q2xpZW50KCkuY2hhdFR5cGluZyghMSksZV8uc2V0KCExKSl9LHVfPWFzeW5jKGU9W10pPT57aWYoQShhXykmJmUubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9Ymcod2coQShpXyksITApKS50cmltKCk7YXdhaXQgSi5zZW5kTWVzc2FnZSh0LGUpLG9fKGBgKSxsXygpLHJfLnNldCghMCksZ2QoKX0sZF89T2coYXN5bmMoKT0+e2xldCBlPVlsLmNvdW50KCk+MDtpZihBKGFfKSYmIWUpcmV0dXJuO2lmKCFBKFgpJiZsZygpJiZVXygpLGZfKCkmJiFlKXtfcyhBKFcpKGB3YXJuaW5nQmFyLnNhbWVNZXNzYWdlVHdpY2VgKSk7cmV0dXJufWlmKFpnKEEoUnApKSl7X3MoQShXKShgd2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbmApKTtyZXR1cm59aWYoQShIZykpe2pvKEEoVykoYGNoYXQuZmlsZVVwbG9hZC5lcnJvci5zdGlsbFVwbG9hZGluZ2ApKTtyZXR1cm59aWYoQShVZikpe19zKEEoVykoYGNhcmQuc2VuZGluZ0luUHJvZ3Jlc3NgKSk7cmV0dXJufWlmKFFnKEEoaV8pKSl7X3MoQShXKShgY2FyZC5saW5rc0xpbWl0UmVhY2hlZGApKTtyZXR1cm59aWYobGcoKSl7QmMoSGMuQXV0aEZvcm0pO3JldHVybn1sZXQgdD1bXTtlJiYoSGcuc2V0KCEwKSx0PWF3YWl0IEtnKCksWWwuY2xlYXIoKSxIZy5zZXQoITEpKSxhd2FpdCB1Xyh0KX0sbl8pLGZfPSgpPT57bGV0IGU9QShHcCksdD1BKEtwKSxuPUEoaV8pLnRyaW0oKTtyZXR1cm4gZSYmbj09PWUuY29udGVudC50ZXh0fHx0JiZuPT09dH0scF89ZT0+e2xldCB0PSgpPT57X2QoKX07c28oKCk9PihlLmFkZEV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHQpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHQpKSl9LG1fPWU9PntsZXQgdD0oKT0+e0EoWCkmJldfKCEwKX07c28oKCk9PihlLmFkZEV2ZW50TGlzdGVuZXIoYHBvcHN0YXRlYCx0KSwoKT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKGBwb3BzdGF0ZWAsdCkpKX0saF89KCk9PntsZXQgZT1CKCkuX3NtYXJ0c3VwcHx8e307ZS5hcHBWZXJzaW9uPWAwLjAuMWAsZS5jb21taXRIYXNoPWBlMDdjMjA4YTM4ZTZmNTA4NGM4ZWI0NjBiOTU4YTQyZjc3OGE1OTY1YCxlLmNvbW1pdEluZm89YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjUgLSBNZXJnZSBwdWxsIHJlcXVlc3QgIzQ1NyBmcm9tIHNtYXJ0c3VwcC9kZXZlbG9wIC0gMjAyNi0wNy0yNyAwOToxOTozMiArMDIwMGAsQigpLl9zbWFydHN1cHA9ZX0sZ189KGU9amcuRGVmYXVsdCk9PntsZXR7d2lkZ2V0VjNVcmw6dH09Vi5nZXRPcHRpb25zKCksbj1uZXcgQXVkaW8oYCR7dH0vYXNzZXRzL3NvdW5kcy8ke2V9YCk7cmV0dXJuIG4uY3Jvc3NPcmlnaW49YGFub255bW91c2Asbi5sb2FkKCksbn0sX189ZT0+ZS5zdWJUeXBlIT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0JiYhW0cuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50Sm9pbixHLk1lc3NhZ2VDb250ZW50VHlwZS5BZ2VudExlYXZlLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50QXNzaWduLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50VW5hc3NpZ25dLmluY2x1ZGVzKGUuY29udGVudC50eXBlKSx2Xz1lPT57cS5pc0luaXRpYWxpemVkKCkmJnEuZ2V0Q2xpZW50KCkubm90aWZ5KGUpfSx5Xz0oKT0+e1YuZ2V0T3B0aW9ucygpLmlzUHJldmlld01vZGV8fHZfKEsuV2Vic29ja2V0VmlzaXRvckNsaWVudC5FdmVudE5hbWUuV2lkZ2V0T3Blbil9LGJfPSgpPT52XyhLLldlYnNvY2tldFZpc2l0b3JDbGllbnQuRXZlbnROYW1lLldpZGdldFNob3cpLHhfPSgpPT5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT1gdmlzaWJsZWAsU189KCk9PntpZihBKHNzKSl7VF8uc2V0KCEwKTtsZXQgZT1CKCk7ZS5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLGBgLGUubG9jYXRpb24uaHJlZil9fSxDXz1PKCExKSx3Xz1PKCExKSxUXz1PKCExKSxFXz1lPT4hIUFnLmZpbmQodD0+ZS5pbmNsdWRlcyh0KSksRF89TyghMCk7Vi5hd2FpdE9wdGlvbnMoKS50aGVuKGU9PntsZXQgdD16byhVLlNvdW5kc0VuYWJsZWQpO3Q/RF8uc2V0KHQ9PT1gdHJ1ZWApOnR5cGVvZiBlLmVuYWJsZVNvdW5kcz09YGJvb2xlYW5gJiZEXy5zZXQoZS5lbmFibGVTb3VuZHMpLHdfLnNldChFXyhlLmJvb3RzdHJhcFVybCkpfSk7dmFyIE9fPWU9PntEXy5zZXQoZSksQm8oe25hbWU6VS5Tb3VuZHNFbmFibGVkLHZhbHVlOmUudG9TdHJpbmcoKX0pLGUmJmJwKCl9LGtfPU8oeF8oKSksQV89T2coKCk9PmtfLnNldCh4XygpKSw1MDApO0IoKS5hZGRFdmVudExpc3RlbmVyKGB2aXNpYmlsaXR5Y2hhbmdlYCwoKT0+e0FfKCl9KTt2YXIgal89TygwKSxNXz0oKT0+al8udXBkYXRlKGU9PmUrMSksTl89TyghMCksUF89KGUsdCk9Pih2byhgd2lkZ2V0IHZpc2libGU6ICR7U3RyaW5nKHQpfSA9PiByZWFzb246ICR7ZX1gKSx0JiZ0IT09QShSXykmJmJfKCksdCksRl89TygpLElfPSgpPT5GXy5zZXQoITApLExfPSgpPT5GXy5zZXQoITEpLFJfPWsoW011LHNzLEZfLGVkLG9kLGsoWyR1LFJwLGFfLG9kXSwoW2UsdCxuLHJdKT0+e2xldHtoaWRlT2ZmbGluZUNoYXQ6aSxpc1ByZXZpZXdNb2RlOmF9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPT09Sy5BY2NvdW50U3RhdHVzLk9mZmxpbmUmJiEhaSYmU3AodCkubGVuZ3RoPT09MCYmbiYmIXImJiFhfSldLChbZSx0LG4scixpLGFdKT0+e2xldHtoaWRlTW9iaWxlV2lkZ2V0Om8saGlkZVdpZGdldDpzfT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZT8uYmFubmVkQXQ/UF8oYHZpc2l0b3IgaXMgYmFubmVkYCwhMSk6dCYmbz9QXyhgb3B0aW9uICdoaWRlTW9iaWxlV2lkZ2V0JyBpcyB0cnVlYCwhMSk6dHlwZW9mIG49PWBib29sZWFuYD9QXyhgc2V0IGJ5IEFQSSBjb21tYW5kYCxuKTpyJiYhaT9QXyhgY2hhdCBzdGF0dXMgaXMgbm90IHBlbmRpbmdgLCEwKTphP1BfKGBvcHRpb24gJ2hpZGVPZmZsaW5lQ2hhdCcgaXMgdHJ1ZWAsITEpOlBfKGBvcHRpb24gJ2hpZGVXaWRnZXQnIGlzICR7U3RyaW5nKHMpfWAsIXMpfSksel89ayhbc3NdLChbZV0pPT57bGV0e29wZW5PblRyaWdnZXI6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIHQmJiFlfSksQl89W10sVl89ZT0+KEJfLnB1c2goZSksKCk9PntsZXQgdD1CXy5pbmRleE9mKGUpO3QhPT0tMSYmQl8uc3BsaWNlKHQsMSl9KSxIXz0oKT0+Ql8ubGVuZ3RoPT09MD8hMTooQl8ucG9wKCkoKSwhMCksWD1ycyhVLklzTWVzc2VuZ2VyRnJhbWVPcGVuZWQsITEsZT0+IUEoc3MpJiZlPT09YHRydWVgKSxVXz0oZT0hMSk9PntsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnR9PVYuZ2V0T3B0aW9ucygpO3Q/LmRpc2FibGVPcGVuTWVzc2VuZ2VyJiYhZXx8KGNoKCksU18oKSxYLnNldCghMCksZXYoKSxDaCgpLHlfKCkpfSxXXz1lPT57aWYoQShzcykmJkEoVF8pJiYhZSlyZXR1cm4gVF8uc2V0KCExKSxCKCkuaGlzdG9yeS5iYWNrKCk7ei5lbWl0KGBtZXNzZW5nZXJDbG9zZWAsITApLFguc2V0KCExKX0sR189ZT0+e2lmKCFlKXJldHVybjtsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnR9PVYuZ2V0T3B0aW9ucygpLG49ZT0+e2lmKGUua2V5PT09VGguRXNjYXBlKXtpZihIXygpfHx0Py5kaXNhYmxlQ2xvc2VCdXR0b24pcmV0dXJuO1dfKCl9fSxyPWUub3duZXJEb2N1bWVudDtyZXR1cm4gci5hZGRFdmVudExpc3RlbmVyKGBrZXlkb3duYCxuLCEwKSx7ZGVzdHJveSgpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAsbiwhMCl9fX0sS189ayhbQ18sUl8sWF0sKFtlLHQsbl0pPT5lJiZ0JiZuKTtmdW5jdGlvbiBxXygpe2xldCBlPU8oITEpLHtzdWJzY3JpYmU6dH09ZSxuPW51bGw7cmV0dXJue3N1YnNjcmliZTp0LGhhbmRsZURyYWdPdmVyOih0LHI9ITApPT57ciYmdC5wcmV2ZW50RGVmYXVsdCgpLEEoZSl8fGUuc2V0KCEwKSxuJiZjbGVhclRpbWVvdXQobiksbj13aW5kb3cuc2V0VGltZW91dCgoKT0+e2Uuc2V0KCExKX0sMjAwKX0saGFuZGxlRHJvcDp0PT57dC5wcmV2ZW50RGVmYXVsdCgpLG4mJmNsZWFyVGltZW91dChuKSxlLnNldCghMSk7bGV0IHI9dC5kYXRhVHJhbnNmZXI/LmZpbGVzP1suLi50LmRhdGFUcmFuc2Zlci5maWxlc106W107cmV0dXJuIHIubGVuZ3RoPT09MCYmX3MoYERyb3BwZWQgaXRlbShzKSBhcmUgbm90IHByb2Nlc3NhYmxlIGZpbGVzYCkse2Ryb3BwZWRGaWxlczpyfX19fXZhciBKXz1xXygpLFlfPWsoW0NfLFJfLFhdLChbZSx0LG5dKT0+ZSYmdCYmIW4pLFhfPU8oITEpLFpfPU8oITEpLFFfPSgpPT57WF8uc2V0KCEwKSxaXy5zZXQoITEpfSwkXz0oKT0+e1pfLnNldCghMCksWF8uc2V0KCExKX0sZXY9KGU9ITEpPT57Wl8uc2V0KCExKSxlJiZCbyh7bmFtZTpVLlBvcHVwQ2xvc2VkQXQsdmFsdWU6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSl9LHR2PWsoW3NzXSwoW2VdKT0+e2xldHttb2JpbGVQb3B1cHNFbmFibGVkOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPyEhdDohMH0pLG52PWsoW05wXSwoW2VdKT0+e2xldCB0PXpvKFUuUG9wdXBDbG9zZWRBdCk/P251bGw7cmV0dXJuIXR8fCFlPyEwOm5ldyBEYXRlKGUuY3JlYXRlZEF0KS5nZXRUaW1lKCk+bmV3IERhdGUodCkuZ2V0VGltZSgpfSkscnY9ayhbQ18sUl8sWF8sWCx0dl0sKFtlLHQsbixyLGldKT0+ZSYmdCYmbiYmIXImJmkpLGl2PWsoW0NfLFJfLFpfLFgsTnAsbnYsdHYsV2ZdLChbZSx0LG4scixpLGEsbyxzXSk9PmUmJnQmJm4mJmkmJmEmJiFyJiZvJiYhcyksYXY9e3doaXRlOmAjZmZmZmZmYCxzbGF0ZTEwMDpgI2YxZjVmOWAsc2xhdGUyMDA6YCNlMmU4ZjBgLHNsYXRlMzAwOmAjY2JkNWUxYCxzbGF0ZTkwMDpgIzBmMTcyYWAsYmx1ZTcwMDpgIzFkNGVkOGAsc21hcnRzdXBwQmx1ZTpgIzEyMzNkZmB9O2Z1bmN0aW9uIFooZSx0KXtzdihlKSYmKGU9YDEwMCVgKTtsZXQgbj1jdihlKTtyZXR1cm4gZT10PT09MzYwP2U6TWF0aC5taW4odCxNYXRoLm1heCgwLHBhcnNlRmxvYXQoZSkpKSxuJiYoZT1wYXJzZUludChTdHJpbmcoZSp0KSwxMCkvMTAwKSxNYXRoLmFicyhlLXQpPDFlLTY/MTooZT10PT09MzYwPyhlPDA/ZSV0K3Q6ZSV0KS9wYXJzZUZsb2F0KFN0cmluZyh0KSk6ZSV0L3BhcnNlRmxvYXQoU3RyaW5nKHQpKSxlKX1mdW5jdGlvbiBvdihlKXtyZXR1cm4gTWF0aC5taW4oMSxNYXRoLm1heCgwLGUpKX1mdW5jdGlvbiBzdihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmluZGV4T2YoYC5gKSE9PS0xJiZwYXJzZUZsb2F0KGUpPT09MX1mdW5jdGlvbiBjdihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmluZGV4T2YoYCVgKSE9PS0xfWZ1bmN0aW9uIGx2KGUpe3JldHVybiBlPXBhcnNlRmxvYXQoZSksKGlzTmFOKGUpfHxlPDB8fGU+MSkmJihlPTEpLGV9ZnVuY3Rpb24gdXYoZSl7cmV0dXJuIE51bWJlcihlKTw9MT9gJHtOdW1iZXIoZSkqMTAwfSVgOmV9ZnVuY3Rpb24gZHYoZSl7cmV0dXJuIGUubGVuZ3RoPT09MT9gMGArZTpTdHJpbmcoZSl9ZnVuY3Rpb24gZnYoZSx0LG4pe3JldHVybntyOlooZSwyNTUpKjI1NSxnOloodCwyNTUpKjI1NSxiOloobiwyNTUpKjI1NX19ZnVuY3Rpb24gcHYoZSx0LG4pe2U9WihlLDI1NSksdD1aKHQsMjU1KSxuPVoobiwyNTUpO2xldCByPU1hdGgubWF4KGUsdCxuKSxpPU1hdGgubWluKGUsdCxuKSxhPTAsbz0wLHM9KHIraSkvMjtpZihyPT09aSlvPTAsYT0wO2Vsc2V7bGV0IGM9ci1pO3N3aXRjaChvPXM+LjU/Yy8oMi1yLWkpOmMvKHIraSkscil7Y2FzZSBlOmE9KHQtbikvYysodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OmE9KG4tZSkvYysyO2JyZWFrO2Nhc2UgbjphPShlLXQpL2MrNDticmVhaztkZWZhdWx0OmJyZWFrfWEvPTZ9cmV0dXJue2g6YSxzOm8sbDpzfX1mdW5jdGlvbiBtdihlLHQsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmLS1uLG48MS82P2UrKHQtZSkqKDYqbik6bjwxLzI/dDpuPDIvMz9lKyh0LWUpKigyLzMtbikqNjplfWZ1bmN0aW9uIGh2KGUsdCxuKXtsZXQgcixpLGE7aWYoZT1aKGUsMzYwKSx0PVoodCwxMDApLG49WihuLDEwMCksdD09PTApaT1uLGE9bixyPW47ZWxzZXtsZXQgbz1uPC41P24qKDErdCk6bit0LW4qdCxzPTIqbi1vO3I9bXYocyxvLGUrMS8zKSxpPW12KHMsbyxlKSxhPW12KHMsbyxlLTEvMyl9cmV0dXJue3I6cioyNTUsZzppKjI1NSxiOmEqMjU1fX1mdW5jdGlvbiBndihlLHQsbil7ZT1aKGUsMjU1KSx0PVoodCwyNTUpLG49WihuLDI1NSk7bGV0IHI9TWF0aC5tYXgoZSx0LG4pLGk9TWF0aC5taW4oZSx0LG4pLGE9MCxvPXIscz1yLWksYz1yPT09MD8wOnMvcjtpZihyPT09aSlhPTA7ZWxzZXtzd2l0Y2gocil7Y2FzZSBlOmE9KHQtbikvcysodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OmE9KG4tZSkvcysyO2JyZWFrO2Nhc2UgbjphPShlLXQpL3MrNDticmVhaztkZWZhdWx0OmJyZWFrfWEvPTZ9cmV0dXJue2g6YSxzOmMsdjpvfX1mdW5jdGlvbiBfdihlLHQsbil7ZT1aKGUsMzYwKSo2LHQ9Wih0LDEwMCksbj1aKG4sMTAwKTtsZXQgcj1NYXRoLmZsb29yKGUpLGk9ZS1yLGE9biooMS10KSxvPW4qKDEtaSp0KSxzPW4qKDEtKDEtaSkqdCksYz1yJTYsbD1bbixvLGEsYSxzLG5dW2NdLHU9W3MsbixuLG8sYSxhXVtjXSxkPVthLGEscyxuLG4sb11bY107cmV0dXJue3I6bCoyNTUsZzp1KjI1NSxiOmQqMjU1fX1mdW5jdGlvbiB2dihlLHQsbixyKXtsZXQgaT1bZHYoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGR2KE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxkdihNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSldO3JldHVybiByJiZpWzBdLnN0YXJ0c1dpdGgoaVswXS5jaGFyQXQoMSkpJiZpWzFdLnN0YXJ0c1dpdGgoaVsxXS5jaGFyQXQoMSkpJiZpWzJdLnN0YXJ0c1dpdGgoaVsyXS5jaGFyQXQoMSkpP2lbMF0uY2hhckF0KDApK2lbMV0uY2hhckF0KDApK2lbMl0uY2hhckF0KDApOmkuam9pbihgYCl9ZnVuY3Rpb24geXYoZSx0LG4scixpKXtsZXQgYT1bZHYoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGR2KE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxkdihNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSksZHYoU3YocikpXTtyZXR1cm4gaSYmYVswXS5zdGFydHNXaXRoKGFbMF0uY2hhckF0KDEpKSYmYVsxXS5zdGFydHNXaXRoKGFbMV0uY2hhckF0KDEpKSYmYVsyXS5zdGFydHNXaXRoKGFbMl0uY2hhckF0KDEpKSYmYVszXS5zdGFydHNXaXRoKGFbM10uY2hhckF0KDEpKT9hWzBdLmNoYXJBdCgwKSthWzFdLmNoYXJBdCgwKSthWzJdLmNoYXJBdCgwKSthWzNdLmNoYXJBdCgwKTphLmpvaW4oYGApfWZ1bmN0aW9uIGJ2KGUsdCxuLHIpe2xldCBpPWUvMTAwLGE9dC8xMDAsbz1uLzEwMCxzPXIvMTAwO3JldHVybntyOjI1NSooMS1pKSooMS1zKSxnOjI1NSooMS1hKSooMS1zKSxiOjI1NSooMS1vKSooMS1zKX19ZnVuY3Rpb24geHYoZSx0LG4pe2xldCByPTEtZS8yNTUsaT0xLXQvMjU1LGE9MS1uLzI1NSxvPU1hdGgubWluKHIsaSxhKTtyZXR1cm4gbz09PTE/KHI9MCxpPTAsYT0wKToocj0oci1vKS8oMS1vKSoxMDAsaT0oaS1vKS8oMS1vKSoxMDAsYT0oYS1vKS8oMS1vKSoxMDApLG8qPTEwMCx7YzpNYXRoLnJvdW5kKHIpLG06TWF0aC5yb3VuZChpKSx5Ok1hdGgucm91bmQoYSksazpNYXRoLnJvdW5kKG8pfX1mdW5jdGlvbiBTdihlKXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KGUpKjI1NSkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEN2KGUpe3JldHVybiB3dihlKS8yNTV9ZnVuY3Rpb24gd3YoZSl7cmV0dXJuIHBhcnNlSW50KGUsMTYpfWZ1bmN0aW9uIFR2KGUpe3JldHVybntyOmU+PjE2LGc6KGUmNjUyODApPj44LGI6ZSYyNTV9fXZhciBFdj17YWxpY2VibHVlOmAjZjBmOGZmYCxhbnRpcXVld2hpdGU6YCNmYWViZDdgLGFxdWE6YCMwMGZmZmZgLGFxdWFtYXJpbmU6YCM3ZmZmZDRgLGF6dXJlOmAjZjBmZmZmYCxiZWlnZTpgI2Y1ZjVkY2AsYmlzcXVlOmAjZmZlNGM0YCxibGFjazpgIzAwMDAwMGAsYmxhbmNoZWRhbG1vbmQ6YCNmZmViY2RgLGJsdWU6YCMwMDAwZmZgLGJsdWV2aW9sZXQ6YCM4YTJiZTJgLGJyb3duOmAjYTUyYTJhYCxidXJseXdvb2Q6YCNkZWI4ODdgLGNhZGV0Ymx1ZTpgIzVmOWVhMGAsY2hhcnRyZXVzZTpgIzdmZmYwMGAsY2hvY29sYXRlOmAjZDI2OTFlYCxjb3JhbDpgI2ZmN2Y1MGAsY29ybmZsb3dlcmJsdWU6YCM2NDk1ZWRgLGNvcm5zaWxrOmAjZmZmOGRjYCxjcmltc29uOmAjZGMxNDNjYCxjeWFuOmAjMDBmZmZmYCxkYXJrYmx1ZTpgIzAwMDA4YmAsZGFya2N5YW46YCMwMDhiOGJgLGRhcmtnb2xkZW5yb2Q6YCNiODg2MGJgLGRhcmtncmF5OmAjYTlhOWE5YCxkYXJrZ3JlZW46YCMwMDY0MDBgLGRhcmtncmV5OmAjYTlhOWE5YCxkYXJra2hha2k6YCNiZGI3NmJgLGRhcmttYWdlbnRhOmAjOGIwMDhiYCxkYXJrb2xpdmVncmVlbjpgIzU1NmIyZmAsZGFya29yYW5nZTpgI2ZmOGMwMGAsZGFya29yY2hpZDpgIzk5MzJjY2AsZGFya3JlZDpgIzhiMDAwMGAsZGFya3NhbG1vbjpgI2U5OTY3YWAsZGFya3NlYWdyZWVuOmAjOGZiYzhmYCxkYXJrc2xhdGVibHVlOmAjNDgzZDhiYCxkYXJrc2xhdGVncmF5OmAjMmY0ZjRmYCxkYXJrc2xhdGVncmV5OmAjMmY0ZjRmYCxkYXJrdHVycXVvaXNlOmAjMDBjZWQxYCxkYXJrdmlvbGV0OmAjOTQwMGQzYCxkZWVwcGluazpgI2ZmMTQ5M2AsZGVlcHNreWJsdWU6YCMwMGJmZmZgLGRpbWdyYXk6YCM2OTY5NjlgLGRpbWdyZXk6YCM2OTY5NjlgLGRvZGdlcmJsdWU6YCMxZTkwZmZgLGZpcmVicmljazpgI2IyMjIyMmAsZmxvcmFsd2hpdGU6YCNmZmZhZjBgLGZvcmVzdGdyZWVuOmAjMjI4YjIyYCxmdWNoc2lhOmAjZmYwMGZmYCxnYWluc2Jvcm86YCNkY2RjZGNgLGdob3N0d2hpdGU6YCNmOGY4ZmZgLGdvbGRlbnJvZDpgI2RhYTUyMGAsZ29sZDpgI2ZmZDcwMGAsZ3JheTpgIzgwODA4MGAsZ3JlZW46YCMwMDgwMDBgLGdyZWVueWVsbG93OmAjYWRmZjJmYCxncmV5OmAjODA4MDgwYCxob25leWRldzpgI2YwZmZmMGAsaG90cGluazpgI2ZmNjliNGAsaW5kaWFucmVkOmAjY2Q1YzVjYCxpbmRpZ286YCM0YjAwODJgLGl2b3J5OmAjZmZmZmYwYCxraGFraTpgI2YwZTY4Y2AsbGF2ZW5kZXJibHVzaDpgI2ZmZjBmNWAsbGF2ZW5kZXI6YCNlNmU2ZmFgLGxhd25ncmVlbjpgIzdjZmMwMGAsbGVtb25jaGlmZm9uOmAjZmZmYWNkYCxsaWdodGJsdWU6YCNhZGQ4ZTZgLGxpZ2h0Y29yYWw6YCNmMDgwODBgLGxpZ2h0Y3lhbjpgI2UwZmZmZmAsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6YCNmYWZhZDJgLGxpZ2h0Z3JheTpgI2QzZDNkM2AsbGlnaHRncmVlbjpgIzkwZWU5MGAsbGlnaHRncmV5OmAjZDNkM2QzYCxsaWdodHBpbms6YCNmZmI2YzFgLGxpZ2h0c2FsbW9uOmAjZmZhMDdhYCxsaWdodHNlYWdyZWVuOmAjMjBiMmFhYCxsaWdodHNreWJsdWU6YCM4N2NlZmFgLGxpZ2h0c2xhdGVncmF5OmAjNzc4ODk5YCxsaWdodHNsYXRlZ3JleTpgIzc3ODg5OWAsbGlnaHRzdGVlbGJsdWU6YCNiMGM0ZGVgLGxpZ2h0eWVsbG93OmAjZmZmZmUwYCxsaW1lOmAjMDBmZjAwYCxsaW1lZ3JlZW46YCMzMmNkMzJgLGxpbmVuOmAjZmFmMGU2YCxtYWdlbnRhOmAjZmYwMGZmYCxtYXJvb246YCM4MDAwMDBgLG1lZGl1bWFxdWFtYXJpbmU6YCM2NmNkYWFgLG1lZGl1bWJsdWU6YCMwMDAwY2RgLG1lZGl1bW9yY2hpZDpgI2JhNTVkM2AsbWVkaXVtcHVycGxlOmAjOTM3MGRiYCxtZWRpdW1zZWFncmVlbjpgIzNjYjM3MWAsbWVkaXVtc2xhdGVibHVlOmAjN2I2OGVlYCxtZWRpdW1zcHJpbmdncmVlbjpgIzAwZmE5YWAsbWVkaXVtdHVycXVvaXNlOmAjNDhkMWNjYCxtZWRpdW12aW9sZXRyZWQ6YCNjNzE1ODVgLG1pZG5pZ2h0Ymx1ZTpgIzE5MTk3MGAsbWludGNyZWFtOmAjZjVmZmZhYCxtaXN0eXJvc2U6YCNmZmU0ZTFgLG1vY2Nhc2luOmAjZmZlNGI1YCxuYXZham93aGl0ZTpgI2ZmZGVhZGAsbmF2eTpgIzAwMDA4MGAsb2xkbGFjZTpgI2ZkZjVlNmAsb2xpdmU6YCM4MDgwMDBgLG9saXZlZHJhYjpgIzZiOGUyM2Asb3JhbmdlOmAjZmZhNTAwYCxvcmFuZ2VyZWQ6YCNmZjQ1MDBgLG9yY2hpZDpgI2RhNzBkNmAscGFsZWdvbGRlbnJvZDpgI2VlZThhYWAscGFsZWdyZWVuOmAjOThmYjk4YCxwYWxldHVycXVvaXNlOmAjYWZlZWVlYCxwYWxldmlvbGV0cmVkOmAjZGI3MDkzYCxwYXBheWF3aGlwOmAjZmZlZmQ1YCxwZWFjaHB1ZmY6YCNmZmRhYjlgLHBlcnU6YCNjZDg1M2ZgLHBpbms6YCNmZmMwY2JgLHBsdW06YCNkZGEwZGRgLHBvd2RlcmJsdWU6YCNiMGUwZTZgLHB1cnBsZTpgIzgwMDA4MGAscmViZWNjYXB1cnBsZTpgIzY2MzM5OWAscmVkOmAjZmYwMDAwYCxyb3N5YnJvd246YCNiYzhmOGZgLHJveWFsYmx1ZTpgIzQxNjllMWAsc2FkZGxlYnJvd246YCM4YjQ1MTNgLHNhbG1vbjpgI2ZhODA3MmAsc2FuZHlicm93bjpgI2Y0YTQ2MGAsc2VhZ3JlZW46YCMyZThiNTdgLHNlYXNoZWxsOmAjZmZmNWVlYCxzaWVubmE6YCNhMDUyMmRgLHNpbHZlcjpgI2MwYzBjMGAsc2t5Ymx1ZTpgIzg3Y2VlYmAsc2xhdGVibHVlOmAjNmE1YWNkYCxzbGF0ZWdyYXk6YCM3MDgwOTBgLHNsYXRlZ3JleTpgIzcwODA5MGAsc25vdzpgI2ZmZmFmYWAsc3ByaW5nZ3JlZW46YCMwMGZmN2ZgLHN0ZWVsYmx1ZTpgIzQ2ODJiNGAsdGFuOmAjZDJiNDhjYCx0ZWFsOmAjMDA4MDgwYCx0aGlzdGxlOmAjZDhiZmQ4YCx0b21hdG86YCNmZjYzNDdgLHR1cnF1b2lzZTpgIzQwZTBkMGAsdmlvbGV0OmAjZWU4MmVlYCx3aGVhdDpgI2Y1ZGViM2Asd2hpdGU6YCNmZmZmZmZgLHdoaXRlc21va2U6YCNmNWY1ZjVgLHllbGxvdzpgI2ZmZmYwMGAseWVsbG93Z3JlZW46YCM5YWNkMzJgfTtmdW5jdGlvbiBEdihlKXtsZXQgdD17cjowLGc6MCxiOjB9LG49MSxyPW51bGwsaT1udWxsLGE9bnVsbCxvPSExLHM9ITE7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYCYmKGU9TXYoZSkpLHR5cGVvZiBlPT1gb2JqZWN0YCYmKE52KGUucikmJk52KGUuZykmJk52KGUuYik/KHQ9ZnYoZS5yLGUuZyxlLmIpLG89ITAscz1TdHJpbmcoZS5yKS5zdWJzdHIoLTEpPT09YCVgP2BwcmdiYDpgcmdiYCk6TnYoZS5oKSYmTnYoZS5zKSYmTnYoZS52KT8ocj11dihlLnMpLGk9dXYoZS52KSx0PV92KGUuaCxyLGkpLG89ITAscz1gaHN2YCk6TnYoZS5oKSYmTnYoZS5zKSYmTnYoZS5sKT8ocj11dihlLnMpLGE9dXYoZS5sKSx0PWh2KGUuaCxyLGEpLG89ITAscz1gaHNsYCk6TnYoZS5jKSYmTnYoZS5tKSYmTnYoZS55KSYmTnYoZS5rKSYmKHQ9YnYoZS5jLGUubSxlLnksZS5rKSxvPSEwLHM9YGNteWtgKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxgYWApJiYobj1lLmEpKSxuPWx2KG4pLHtvazpvLGZvcm1hdDplLmZvcm1hdHx8cyxyOk1hdGgubWluKDI1NSxNYXRoLm1heCh0LnIsMCkpLGc6TWF0aC5taW4oMjU1LE1hdGgubWF4KHQuZywwKSksYjpNYXRoLm1pbigyNTUsTWF0aC5tYXgodC5iLDApKSxhOm59fXZhciBPdj1gKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pYCxrdj1gW1xcc3xcXChdKyhgK092K2ApWyx8XFxzXSsoKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pKVssfFxcc10rKCg/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSlcXHMqXFwpP2AsQXY9YFtcXHN8XFwoXSsoYCtPditgKVssfFxcc10rKCg/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSlbLHxcXHNdKygoPzpbLVxcK10/XFxkKlxcLlxcZCslPyl8KD86Wy1cXCtdP1xcZCslPykpWyx8XFxzXSsoKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pKVxccypcXCk/YCxqdj17Q1NTX1VOSVQ6bmV3IFJlZ0V4cChPdikscmdiOlJlZ0V4cChgcmdiYCtrdikscmdiYTpSZWdFeHAoYHJnYmFgK0F2KSxoc2w6UmVnRXhwKGBoc2xgK2t2KSxoc2xhOlJlZ0V4cChgaHNsYWArQXYpLGhzdjpSZWdFeHAoYGhzdmAra3YpLGhzdmE6UmVnRXhwKGBoc3ZhYCtBdiksY215azpSZWdFeHAoYGNteWtgK0F2KSxoZXgzOi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxoZXg2Oi9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkLyxoZXg0Oi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4ODovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvfTtmdW5jdGlvbiBNdihlKXtpZihlPWUudHJpbSgpLnRvTG93ZXJDYXNlKCksZS5sZW5ndGg9PT0wKXJldHVybiExO2xldCB0PSExO2lmKEV2W2VdKWU9RXZbZV0sdD0hMDtlbHNlIGlmKGU9PT1gdHJhbnNwYXJlbnRgKXJldHVybntyOjAsZzowLGI6MCxhOjAsZm9ybWF0OmBuYW1lYH07bGV0IG49anYucmdiLmV4ZWMoZSk7cmV0dXJuIG4/e3I6blsxXSxnOm5bMl0sYjpuWzNdfToobj1qdi5yZ2JhLmV4ZWMoZSksbj97cjpuWzFdLGc6blsyXSxiOm5bM10sYTpuWzRdfToobj1qdi5oc2wuZXhlYyhlKSxuP3toOm5bMV0sczpuWzJdLGw6blszXX06KG49anYuaHNsYS5leGVjKGUpLG4/e2g6blsxXSxzOm5bMl0sbDpuWzNdLGE6bls0XX06KG49anYuaHN2LmV4ZWMoZSksbj97aDpuWzFdLHM6blsyXSx2Om5bM119OihuPWp2LmhzdmEuZXhlYyhlKSxuP3toOm5bMV0sczpuWzJdLHY6blszXSxhOm5bNF19OihuPWp2LmNteWsuZXhlYyhlKSxuP3tjOm5bMV0sbTpuWzJdLHk6blszXSxrOm5bNF19OihuPWp2LmhleDguZXhlYyhlKSxuP3tyOnd2KG5bMV0pLGc6d3YoblsyXSksYjp3dihuWzNdKSxhOkN2KG5bNF0pLGZvcm1hdDp0P2BuYW1lYDpgaGV4OGB9OihuPWp2LmhleDYuZXhlYyhlKSxuP3tyOnd2KG5bMV0pLGc6d3YoblsyXSksYjp3dihuWzNdKSxmb3JtYXQ6dD9gbmFtZWA6YGhleGB9OihuPWp2LmhleDQuZXhlYyhlKSxuP3tyOnd2KG5bMV0rblsxXSksZzp3dihuWzJdK25bMl0pLGI6d3YoblszXStuWzNdKSxhOkN2KG5bNF0rbls0XSksZm9ybWF0OnQ/YG5hbWVgOmBoZXg4YH06KG49anYuaGV4My5leGVjKGUpLG4/e3I6d3YoblsxXStuWzFdKSxnOnd2KG5bMl0rblsyXSksYjp3dihuWzNdK25bM10pLGZvcm1hdDp0P2BuYW1lYDpgaGV4YH06ITEpKSkpKSkpKSkpfWZ1bmN0aW9uIE52KGUpe3JldHVybiB0eXBlb2YgZT09YG51bWJlcmA/IU51bWJlci5pc05hTihlKTpqdi5DU1NfVU5JVC50ZXN0KGUpfXZhciBQdj1jbGFzcyBle2NvbnN0cnVjdG9yKHQ9YGAsbj17fSl7aWYodCBpbnN0YW5jZW9mIGUpcmV0dXJuIHQ7dHlwZW9mIHQ9PWBudW1iZXJgJiYodD1Udih0KSksdGhpcy5vcmlnaW5hbElucHV0PXQ7bGV0IHI9RHYodCk7dGhpcy5vcmlnaW5hbElucHV0PXQsdGhpcy5yPXIucix0aGlzLmc9ci5nLHRoaXMuYj1yLmIsdGhpcy5hPXIuYSx0aGlzLnJvdW5kQT1NYXRoLnJvdW5kKDEwMCp0aGlzLmEpLzEwMCx0aGlzLmZvcm1hdD1uLmZvcm1hdD8/ci5mb3JtYXQsdGhpcy5ncmFkaWVudFR5cGU9bi5ncmFkaWVudFR5cGUsdGhpcy5yPDEmJih0aGlzLnI9TWF0aC5yb3VuZCh0aGlzLnIpKSx0aGlzLmc8MSYmKHRoaXMuZz1NYXRoLnJvdW5kKHRoaXMuZykpLHRoaXMuYjwxJiYodGhpcy5iPU1hdGgucm91bmQodGhpcy5iKSksdGhpcy5pc1ZhbGlkPXIub2t9aXNEYXJrKCl7cmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpPDEyOH1pc0xpZ2h0KCl7cmV0dXJuIXRoaXMuaXNEYXJrKCl9Z2V0QnJpZ2h0bmVzcygpe2xldCBlPXRoaXMudG9SZ2IoKTtyZXR1cm4oZS5yKjI5OStlLmcqNTg3K2UuYioxMTQpLzFlM31nZXRMdW1pbmFuY2UoKXtsZXQgZT10aGlzLnRvUmdiKCksdCxuLHIsaT1lLnIvMjU1LGE9ZS5nLzI1NSxvPWUuYi8yNTU7cmV0dXJuIHQ9aTw9LjAzOTI4P2kvMTIuOTI6KChpKy4wNTUpLzEuMDU1KSoqMi40LG49YTw9LjAzOTI4P2EvMTIuOTI6KChhKy4wNTUpLzEuMDU1KSoqMi40LHI9bzw9LjAzOTI4P28vMTIuOTI6KChvKy4wNTUpLzEuMDU1KSoqMi40LC4yMTI2KnQrLjcxNTIqbisuMDcyMipyfWdldEFscGhhKCl7cmV0dXJuIHRoaXMuYX1zZXRBbHBoYShlKXtyZXR1cm4gdGhpcy5hPWx2KGUpLHRoaXMucm91bmRBPU1hdGgucm91bmQoMTAwKnRoaXMuYSkvMTAwLHRoaXN9aXNNb25vY2hyb21lKCl7bGV0e3M6ZX09dGhpcy50b0hzbCgpO3JldHVybiBlPT09MH10b0hzdigpe2xldCBlPWd2KHRoaXMucix0aGlzLmcsdGhpcy5iKTtyZXR1cm57aDplLmgqMzYwLHM6ZS5zLHY6ZS52LGE6dGhpcy5hfX10b0hzdlN0cmluZygpe2xldCBlPWd2KHRoaXMucix0aGlzLmcsdGhpcy5iKSx0PU1hdGgucm91bmQoZS5oKjM2MCksbj1NYXRoLnJvdW5kKGUucyoxMDApLHI9TWF0aC5yb3VuZChlLnYqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT9gaHN2KCR7dH0sICR7bn0lLCAke3J9JSlgOmBoc3ZhKCR7dH0sICR7bn0lLCAke3J9JSwgJHt0aGlzLnJvdW5kQX0pYH10b0hzbCgpe2xldCBlPXB2KHRoaXMucix0aGlzLmcsdGhpcy5iKTtyZXR1cm57aDplLmgqMzYwLHM6ZS5zLGw6ZS5sLGE6dGhpcy5hfX10b0hzbFN0cmluZygpe2xldCBlPXB2KHRoaXMucix0aGlzLmcsdGhpcy5iKSx0PU1hdGgucm91bmQoZS5oKjM2MCksbj1NYXRoLnJvdW5kKGUucyoxMDApLHI9TWF0aC5yb3VuZChlLmwqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT9gaHNsKCR7dH0sICR7bn0lLCAke3J9JSlgOmBoc2xhKCR7dH0sICR7bn0lLCAke3J9JSwgJHt0aGlzLnJvdW5kQX0pYH10b0hleChlPSExKXtyZXR1cm4gdnYodGhpcy5yLHRoaXMuZyx0aGlzLmIsZSl9dG9IZXhTdHJpbmcoZT0hMSl7cmV0dXJuYCNgK3RoaXMudG9IZXgoZSl9dG9IZXg4KGU9ITEpe3JldHVybiB5dih0aGlzLnIsdGhpcy5nLHRoaXMuYix0aGlzLmEsZSl9dG9IZXg4U3RyaW5nKGU9ITEpe3JldHVybmAjYCt0aGlzLnRvSGV4OChlKX10b0hleFNob3J0U3RyaW5nKGU9ITEpe3JldHVybiB0aGlzLmE9PT0xP3RoaXMudG9IZXhTdHJpbmcoZSk6dGhpcy50b0hleDhTdHJpbmcoZSl9dG9SZ2IoKXtyZXR1cm57cjpNYXRoLnJvdW5kKHRoaXMuciksZzpNYXRoLnJvdW5kKHRoaXMuZyksYjpNYXRoLnJvdW5kKHRoaXMuYiksYTp0aGlzLmF9fXRvUmdiU3RyaW5nKCl7bGV0IGU9TWF0aC5yb3VuZCh0aGlzLnIpLHQ9TWF0aC5yb3VuZCh0aGlzLmcpLG49TWF0aC5yb3VuZCh0aGlzLmIpO3JldHVybiB0aGlzLmE9PT0xP2ByZ2IoJHtlfSwgJHt0fSwgJHtufSlgOmByZ2JhKCR7ZX0sICR7dH0sICR7bn0sICR7dGhpcy5yb3VuZEF9KWB9dG9QZXJjZW50YWdlUmdiKCl7bGV0IGU9ZT0+YCR7TWF0aC5yb3VuZChaKGUsMjU1KSoxMDApfSVgO3JldHVybntyOmUodGhpcy5yKSxnOmUodGhpcy5nKSxiOmUodGhpcy5iKSxhOnRoaXMuYX19dG9QZXJjZW50YWdlUmdiU3RyaW5nKCl7bGV0IGU9ZT0+TWF0aC5yb3VuZChaKGUsMjU1KSoxMDApO3JldHVybiB0aGlzLmE9PT0xP2ByZ2IoJHtlKHRoaXMucil9JSwgJHtlKHRoaXMuZyl9JSwgJHtlKHRoaXMuYil9JSlgOmByZ2JhKCR7ZSh0aGlzLnIpfSUsICR7ZSh0aGlzLmcpfSUsICR7ZSh0aGlzLmIpfSUsICR7dGhpcy5yb3VuZEF9KWB9dG9DbXlrKCl7cmV0dXJuey4uLnh2KHRoaXMucix0aGlzLmcsdGhpcy5iKX19dG9DbXlrU3RyaW5nKCl7bGV0e2M6ZSxtOnQseTpuLGs6cn09eHYodGhpcy5yLHRoaXMuZyx0aGlzLmIpO3JldHVybmBjbXlrKCR7ZX0sICR7dH0sICR7bn0sICR7cn0pYH10b05hbWUoKXtpZih0aGlzLmE9PT0wKXJldHVybmB0cmFuc3BhcmVudGA7aWYodGhpcy5hPDEpcmV0dXJuITE7bGV0IGU9YCNgK3Z2KHRoaXMucix0aGlzLmcsdGhpcy5iLCExKTtmb3IobGV0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhFdikpaWYoZT09PW4pcmV0dXJuIHQ7cmV0dXJuITF9dG9TdHJpbmcoZSl7bGV0IHQ9ISFlO2U/Pz10aGlzLmZvcm1hdDtsZXQgbj0hMSxyPXRoaXMuYTwxJiZ0aGlzLmE+PTA7cmV0dXJuIXQmJnImJihlLnN0YXJ0c1dpdGgoYGhleGApfHxlPT09YG5hbWVgKT9lPT09YG5hbWVgJiZ0aGlzLmE9PT0wP3RoaXMudG9OYW1lKCk6dGhpcy50b1JnYlN0cmluZygpOihlPT09YHJnYmAmJihuPXRoaXMudG9SZ2JTdHJpbmcoKSksZT09PWBwcmdiYCYmKG49dGhpcy50b1BlcmNlbnRhZ2VSZ2JTdHJpbmcoKSksKGU9PT1gaGV4YHx8ZT09PWBoZXg2YCkmJihuPXRoaXMudG9IZXhTdHJpbmcoKSksZT09PWBoZXgzYCYmKG49dGhpcy50b0hleFN0cmluZyghMCkpLGU9PT1gaGV4NGAmJihuPXRoaXMudG9IZXg4U3RyaW5nKCEwKSksZT09PWBoZXg4YCYmKG49dGhpcy50b0hleDhTdHJpbmcoKSksZT09PWBuYW1lYCYmKG49dGhpcy50b05hbWUoKSksZT09PWBoc2xgJiYobj10aGlzLnRvSHNsU3RyaW5nKCkpLGU9PT1gaHN2YCYmKG49dGhpcy50b0hzdlN0cmluZygpKSxlPT09YGNteWtgJiYobj10aGlzLnRvQ215a1N0cmluZygpKSxufHx0aGlzLnRvSGV4U3RyaW5nKCkpfXRvTnVtYmVyKCl7cmV0dXJuKE1hdGgucm91bmQodGhpcy5yKTw8MTYpKyhNYXRoLnJvdW5kKHRoaXMuZyk8PDgpK01hdGgucm91bmQodGhpcy5iKX1jbG9uZSgpe3JldHVybiBuZXcgZSh0aGlzLnRvU3RyaW5nKCkpfWxpZ2h0ZW4odD0xMCl7bGV0IG49dGhpcy50b0hzbCgpO3JldHVybiBuLmwrPXQvMTAwLG4ubD1vdihuLmwpLG5ldyBlKG4pfWJyaWdodGVuKHQ9MTApe2xldCBuPXRoaXMudG9SZ2IoKTtyZXR1cm4gbi5yPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LG4uci1NYXRoLnJvdW5kKDI1NSotKHQvMTAwKSkpKSxuLmc9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsbi5nLU1hdGgucm91bmQoMjU1Ki0odC8xMDApKSkpLG4uYj1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxuLmItTWF0aC5yb3VuZCgyNTUqLSh0LzEwMCkpKSksbmV3IGUobil9ZGFya2VuKHQ9MTApe2xldCBuPXRoaXMudG9Ic2woKTtyZXR1cm4gbi5sLT10LzEwMCxuLmw9b3Yobi5sKSxuZXcgZShuKX10aW50KGU9MTApe3JldHVybiB0aGlzLm1peChgd2hpdGVgLGUpfXNoYWRlKGU9MTApe3JldHVybiB0aGlzLm1peChgYmxhY2tgLGUpfWRlc2F0dXJhdGUodD0xMCl7bGV0IG49dGhpcy50b0hzbCgpO3JldHVybiBuLnMtPXQvMTAwLG4ucz1vdihuLnMpLG5ldyBlKG4pfXNhdHVyYXRlKHQ9MTApe2xldCBuPXRoaXMudG9Ic2woKTtyZXR1cm4gbi5zKz10LzEwMCxuLnM9b3Yobi5zKSxuZXcgZShuKX1ncmV5c2NhbGUoKXtyZXR1cm4gdGhpcy5kZXNhdHVyYXRlKDEwMCl9c3Bpbih0KXtsZXQgbj10aGlzLnRvSHNsKCkscj0obi5oK3QpJTM2MDtyZXR1cm4gbi5oPXI8MD8zNjArcjpyLG5ldyBlKG4pfW1peCh0LG49NTApe2xldCByPXRoaXMudG9SZ2IoKSxpPW5ldyBlKHQpLnRvUmdiKCksYT1uLzEwMDtyZXR1cm4gbmV3IGUoe3I6KGkuci1yLnIpKmErci5yLGc6KGkuZy1yLmcpKmErci5nLGI6KGkuYi1yLmIpKmErci5iLGE6KGkuYS1yLmEpKmErci5hfSl9YW5hbG9nb3VzKHQ9NixuPTMwKXtsZXQgcj10aGlzLnRvSHNsKCksaT0zNjAvbixhPVt0aGlzXTtmb3Ioci5oPShyLmgtKGkqdD4+MSkrNzIwKSUzNjA7LS10OylyLmg9KHIuaCtpKSUzNjAsYS5wdXNoKG5ldyBlKHIpKTtyZXR1cm4gYX1jb21wbGVtZW50KCl7bGV0IHQ9dGhpcy50b0hzbCgpO3JldHVybiB0Lmg9KHQuaCsxODApJTM2MCxuZXcgZSh0KX1tb25vY2hyb21hdGljKHQ9Nil7bGV0IG49dGhpcy50b0hzdigpLHtoOnJ9PW4se3M6aX09bix7djphfT1uLG89W10scz0xL3Q7Zm9yKDt0LS07KW8ucHVzaChuZXcgZSh7aDpyLHM6aSx2OmF9KSksYT0oYStzKSUxO3JldHVybiBvfXNwbGl0Y29tcGxlbWVudCgpe2xldCB0PXRoaXMudG9Ic2woKSx7aDpufT10O3JldHVyblt0aGlzLG5ldyBlKHtoOihuKzcyKSUzNjAsczp0LnMsbDp0Lmx9KSxuZXcgZSh7aDoobisyMTYpJTM2MCxzOnQucyxsOnQubH0pXX1vbkJhY2tncm91bmQodCl7bGV0IG49dGhpcy50b1JnYigpLHI9bmV3IGUodCkudG9SZ2IoKSxpPW4uYStyLmEqKDEtbi5hKTtyZXR1cm4gbmV3IGUoe3I6KG4ucipuLmErci5yKnIuYSooMS1uLmEpKS9pLGc6KG4uZypuLmErci5nKnIuYSooMS1uLmEpKS9pLGI6KG4uYipuLmErci5iKnIuYSooMS1uLmEpKS9pLGE6aX0pfXRyaWFkKCl7cmV0dXJuIHRoaXMucG9seWFkKDMpfXRldHJhZCgpe3JldHVybiB0aGlzLnBvbHlhZCg0KX1wb2x5YWQodCl7bGV0IG49dGhpcy50b0hzbCgpLHtoOnJ9PW4saT1bdGhpc10sYT0zNjAvdDtmb3IobGV0IG89MTtvPHQ7bysrKWkucHVzaChuZXcgZSh7aDoocitvKmEpJTM2MCxzOm4ucyxsOm4ubH0pKTtyZXR1cm4gaX1lcXVhbHModCl7bGV0IG49bmV3IGUodCk7cmV0dXJuIHRoaXMuZm9ybWF0PT09YGNteWtgfHxuLmZvcm1hdD09PWBjbXlrYD90aGlzLnRvQ215a1N0cmluZygpPT09bi50b0NteWtTdHJpbmcoKTp0aGlzLnRvUmdiU3RyaW5nKCk9PT1uLnRvUmdiU3RyaW5nKCl9fTtmdW5jdGlvbiBGdihlLHQpe2xldCBuPW5ldyBQdihlKSxyPW5ldyBQdih0KTtyZXR1cm4oTWF0aC5tYXgobi5nZXRMdW1pbmFuY2UoKSxyLmdldEx1bWluYW5jZSgpKSsuMDUpLyhNYXRoLm1pbihuLmdldEx1bWluYW5jZSgpLHIuZ2V0THVtaW5hbmNlKCkpKy4wNSl9dmFyIEl2PS4yOTksTHY9LjU4NyxSdj0uMTE0LHp2PTE4MCxCdj0tMjAsVnY9LS4yNSxIdj0uMixVdj0tNSxXdj0uMDMsR3Y9LjUsS3Y9NSxxdj0oZSx0KT0+bmV3IFB2KGUpLmRhcmtlbih0KS50b0hleFN0cmluZygpLEp2PWU9PntsZXQgdD1uZXcgUHYoZSkudG9SZ2IoKTtyZXR1cm5gJHt0LnJ9LCAke3QuZ30sICR7dC5ifWB9LFl2PWU9Pi9eI1swLTlBLUZdezZ9JC9pLnRlc3QoZSksWHY9ZT0+e2xldHtyOnQsZzpuLGI6cn09bmV3IFB2KGUpLnRvUmdiKCk7cmV0dXJuIE1hdGguc3FydCh0KnQqSXYrbipuKkx2K3IqcipSdik+enZ9LFp2PWU9PntsZXQgdD1uZXcgUHYoZSkse3M6bixsOnJ9PXQudG9Ic2woKTtyZXR1cm4gdC5zcGluKEJ2KS5kZXNhdHVyYXRlKG4qVnYpLmxpZ2h0ZW4ocipIdikudG9IZXhTdHJpbmcoKX0sUXY9KGUsdD1Hdik9PntsZXQgbj1uZXcgUHYoZSkse3M6cixsOml9PW4udG9Ic2woKTtyZXR1cm4gbi5zcGluKFV2KS5zYXR1cmF0ZShyKld2KS5kYXJrZW4oaSp0KS50b0hleFN0cmluZygpfSwkdj1lPT57bGV0e2NvbG9yOnQsY29sb3IyOm4sY29sb3JHcmFkaWVudDpyfT1lO3JldHVybiByP24/e2Zyb206dCx0bzpufTpYdih0KT97ZnJvbTp0LHRvOlF2KHQpfTp7ZnJvbTpadih0KSx0bzp0fTp7ZnJvbTp0LHRvOnR9fSxleT1lPT5YdihlKT9hdi5zbGF0ZTkwMDphdi53aGl0ZSx0eT1lPT5YdihlKT8uMTouMixueT1lPT57aWYoWHYoZSkpe2xldCB0PW5ldyBQdihlKS5nZXRMdW1pbmFuY2UoKTtyZXR1cm4gdD4uOD9xdihlLCgxMCp0KSoqdCk6ZX1yZXR1cm4gZX0scnk9KGUsdCk9PntsZXQgbj10Py5iYWNrZ3JvdW5kQ29sb3I/P2Uscj0wLGk9bmV3IFB2KGUpLGE9RnYobixpKSxvPXQ/LmZvcmNlTGlnaHRCZz8/bmV3IFB2KG4pLmlzTGlnaHQoKTtmb3IoO2E8My43NSYmcjwyMDspaT1vP2kuZGFya2VuKDUpOmkubGlnaHRlbig1KSxhPUZ2KG4saSkscisrO3JldHVybiBpLnRvSGV4U3RyaW5nKCl9LGl5PShlLHQpPT57bGV0IG49cnkoZSx7YmFja2dyb3VuZENvbG9yOmF2LndoaXRlfSkscj1yeShlKSxpPW5ldyBQdihlKS5pc0xpZ2h0KCksYT1uZXcgUHYodCkuaXNMaWdodCgpO3JldHVybiBpJiZhP3I9cnkodCk6IWkmJiFhP3I9cnkoZSk6aSYmIWE/cj1yeSh0LHtmb3JjZUxpZ2h0Qmc6ITB9KTohaSYmYSYmKHI9cnkoZSx7Zm9yY2VMaWdodEJnOiExfSkpLHtwcmltYXJ5Om4sc2Vjb25kYXJ5OnJ9fSxRPShlLHQsbik9PntlLmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pfSxheT0oZSx0KT0+e2xldHtjb2xvcjpufT10LHI9JHYodCksaT1yLmZyb209PT1gI2ZmZmZmZmAmJnIuZnJvbT09PXIudG8/e2Zyb206YXYuc2xhdGUzMDAsdG86YXYuc2xhdGUzMDB9OnIsYT1leShuKTtRKGUsYC0tY29sb3ItcHJpbWFyeWAsbiksUShlLGAtLWNvbG9yLXByaW1hcnktY29udGVudGAsYSksUShlLGAtLWNvbG9yLXByaW1hcnktY29udGVudC1yZ2JgLEp2KGEpKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1mcm9tYCxyLmZyb20pLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvYCxyLnRvKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1idXR0b24tZnJvbWAsaS5mcm9tKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1idXR0b24tdG9gLGkudG8pLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWhvdmVyLWZyb21gLHF2KHIuZnJvbSxLdikpLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWhvdmVyLXRvYCxxdihyLnRvLEt2KSk7bGV0IG89bnkobik7UShlLGAtLWNvbG9yLXByaW1hcnktYnV0dG9uYCxvKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1idXR0b24taG92ZXJgLHF2KG8sMTApKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudGAsYSksUShlLGAtLW9wYWNpdHktcHJpbWFyeS1jb250ZW50YCxTdHJpbmcodHkobikpKTtsZXQgcz1peShyLmZyb20sci50byk7UShlLGAtLWNvbG9yLXByaW1hcnktZm9jdXNgLHMucHJpbWFyeSksUShlLGAtLWNvbG9yLXNlY29uZGFyeS1mb2N1c2Ascy5zZWNvbmRhcnkpfSxveT0oKCk9PntsZXR7c3Vic2NyaWJlOmUsc2V0OnR9PU8oe2NvbG9yOmF2LnNtYXJ0c3VwcEJsdWUsY29sb3IyOm51bGwsY29sb3JHcmFkaWVudDohMH0pO3JldHVybntzdWJzY3JpYmU6ZSxzZXRUaGVtZUNvbG9yOmU9PntsZXR7Y29sb3I6bixjb2xvcjI6cixjb2xvckdyYWRpZW50Oml9PWU7aWYoIVl2KG4pKXtIKGBQcm92aWRlZCBjb2xvciAnJHtufScgaXMgbm90IHZhbGlkLiBEZWZhdWx0IGNvbG9yIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLmApO3JldHVybn1lbHNlIGlmKGkmJnImJiFZdihyKSl7SChgUHJvdmlkZWQgY29sb3IgJyR7cn0nIGlzIG5vdCB2YWxpZC4gRGVmYXVsdCBjb2xvciB3aWxsIGJlIHVzZWQgaW5zdGVhZC5gKTtyZXR1cm59dCh7Y29sb3I6bixjb2xvcjI6cixjb2xvckdyYWRpZW50Oml9KX19fSkoKSxzeT0yNCxjeT0xMixseT03Mix1eT0zODAsZHk9NjcyLGZ5PTU2MCxweT04NDAsbXk9ZT0+YCR7ZX1weGAsaHk9ZT0+e2lmKGUpcmV0dXJuIEx1KGUpP3BhcnNlSW50KGUsMTApOmV9LGd5PShlLHQpPT57bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZXx8bj8uaGVhZGxlc3NNb2RlP3t3aWR0aDpgMTAwJWAsaGVpZ2h0OmAxMDAlYH06dD97d2lkdGg6ZnksaGVpZ2h0OnB5fTp7d2lkdGg6dXksaGVpZ2h0OmR5fX0sX3k9ZT0+e2xldHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6dH09Vi5nZXRPcHRpb25zKCk7ZS5zdHlsZS5ib3JkZXJSYWRpdXM9bXkoMjApLHQ/LmhlYWRsZXNzTW9kZT9lLnN0eWxlLmJveFNoYWRvdz1gbm9uZWA6dD8ubGltaXRTaGFkb3c/ZS5zdHlsZS5ib3hTaGFkb3c9YHJnYmEoMCwgMCwgMCwgMC4yNSkgMHB4IDVweCAxMnB4YDplLnN0eWxlLmJveFNoYWRvdz1gcmdiYSgwLCAwLCAwLCAwLjE2KSAwcHggNXB4IDQwcHhgfSx2eT0oKT0+e2xldHtvZmZzZXRZOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBoeShlKT8/c3l9LHl5PSgpPT57bGV0e29mZnNldFg6ZX09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIGh5KGUpPz9jeX0sYnk9ZT0+e2xldHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIGV8fHQ/LmhlYWRsZXNzTW9kZT8wOnN5fSx4eT1lPT57bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczp0fT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZXx8dD8uaGVhZGxlc3NNb2RlPzA6Y3l9LFN5PSgpPT57bGV0e3Bvc2l0aW9uOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPT09YGZpeGVkYH0sQ3k9ZT0+e1N5KCkmJihlLnN0eWxlLnBvc2l0aW9uPWBmaXhlZGApfSx3eT0oZSx0KT0+e1N5KCkmJihlLnN0eWxlLmJvdHRvbT1teSh0KSl9LFR5PShlLHQpPT57aWYoU3koKSl7bGV0e29yaWVudGF0aW9uOm59PVYuZ2V0T3B0aW9ucygpO249PT1gcmlnaHRgPyhlLnN0eWxlLmxlZnQ9YGluaXRpYWxgLGUuc3R5bGUucmlnaHQ9bXkodCkpOihlLnN0eWxlLmxlZnQ9bXkodCksZS5zdHlsZS5yaWdodD1gaW5pdGlhbGApfX0sRXk9ZT0+e2xldHt6SW5kZXg6dH09Vi5nZXRPcHRpb25zKCk7ZS5zdHlsZS56SW5kZXg9U3RyaW5nKHQ/P2BhdXRvYCl9LER5PWU9PntsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj1gYWJzb2x1dGVgLHQuc3R5bGUud2lkdGg9YDEwMCVgLHQuc3R5bGUuaGVpZ2h0PWAxMDAlYCx0LnN0eWxlLmJvcmRlcj1gbm9uZWAsdC5zdHlsZS5kaXNwbGF5PWBibG9ja2AsdC5zdHlsZS50ZXh0QWxpZ249YGxlZnRgLHQuc3R5bGUubWFyZ2luPWAwYCx0LnN0eWxlLnBhZGRpbmc9YDBgLHQuc3R5bGUudG9wPWAwYCx0LnN0eWxlLmxlZnQ9YDBgLHQuc3R5bGUub3BhY2l0eT1gMWAsZSYmZSh0KSx0LmdldEF0dHJpYnV0ZShgc3R5bGVgKT8/YGB9LE95PWU9PntDeShlKSx3eShlLHZ5KCkpLFR5KGUseXkoKSksRXkoZSl9LGt5PShlLHQpPT57Q3koZSksd3koZSxieSh0KSksVHkoZSx4eSh0KSksRXkoZSksdHx8X3koZSl9LEF5PWU9PntDeShlKSx3eShlLHZ5KCkrbHkpLFR5KGUseXkoKSksRXkoZSl9LGp5PWU9PntlLnN0eWxlLnBvc2l0aW9uPWBmaXhlZGAsZS5zdHlsZS53aWR0aD1gMTAwJWAsZS5zdHlsZS5oZWlnaHQ9YDEwMCVgLHd5KGUsMCksVHkoZSwwKSxFeShlKX0sTXk9ZT0+e095KGUpfSxOeT0oZSx0KT0+e2t5KGUsdCl9LFB5PWU9PntBeShlKX0sRnk9ZT0+e0F5KGUpfSxJeT1lPT57ankoZSl9LEx5PU8oMzAwKSxSeT1PKDE2Niksenk9TyghMSksQnk9Tyh2b2lkIDApLFZ5PWsoW3NzLEJ5XSwoW2UsdF0pPT57bGV0e2J1dHRvblN0eWxlOm59PVYuZ2V0T3B0aW9ucygpO3JldHVybiB0P3Q9PT1gYnViYmxlYDplfHxuPT09YGJ1YmJsZWB9KSxIeT1rKFtWeSxMeV0sKFtlLHRdKT0+ZT81Njp0KSxVeT1PKHZvaWQgMCksV3k9ayhbY3MsVXldLChbZSx0XSk9PmU/ITA6KHQ/P1YuZ2V0T3B0aW9ucygpLmhlYWRlclN0eWxlKT09PWBjb21wYWN0YCksR3k9ayhbV3ldLChbZV0pPT5lPzc2OjExNCksS3k9TygpLHF5PWsoW0t5XSwoW2VdKT0+ZT09PXZvaWQgMD96byhVLklzTWVzc2VuZ2VyRnJhbWVFeHBhbmRlZCk9PT1gdHJ1ZWA6ZSksSnk9ZT0+e0JvKHtuYW1lOlUuSXNNZXNzZW5nZXJGcmFtZUV4cGFuZGVkLHZhbHVlOmUudG9TdHJpbmcoKX0pLEt5LnNldChlKX0sJD1mdW5jdGlvbihlKXtyZXR1cm4gZS5OYW1lPWBuYW1lYCxlLkdyb3VwPWBncm91cGAsZS5FbWFpbD1gZW1haWxgLGUuUGhvbmU9YHBob25lYCxlLlZhcmlhYmxlcz1gdmFyaWFibGVzYCxlLkNvbnRhY3REYXRhPWBjb250YWN0RGF0YWAsZS5MYW5ndWFnZT1gbGFuZ3VhZ2VgLGUuQ2hhdENsb3NlPWBjaGF0OmNsb3NlYCxlLkNoYXRPcGVuPWBjaGF0Om9wZW5gLGUuQ2hhdFNob3c9YGNoYXQ6c2hvd2AsZS5DaGF0SGlkZT1gY2hhdDpoaWRlYCxlLlRoZW1lQ29sb3I9YHRoZW1lOmNvbG9yYCxlLkNoYXRNZXNzYWdlPWBjaGF0Om1lc3NhZ2VgLGUuQ2hhdFNlbmQ9YGNoYXQ6c2VuZGAsZS5IdG1sQXBwbHk9YGh0bWw6YXBwbHlgLGUuT249YG9uYCxlLkFuYWx5dGljc0NvbnNlbnQ9YGFuYWx5dGljc0NvbnNlbnRgLGUuTWFya2V0aW5nQ29uc2VudD1gbWFya2V0aW5nQ29uc2VudGAsZS5PcGVuUmF0ZUZvcm09YG9wZW5SYXRlRm9ybWAsZS5PcGVuQXV0aEZvcm09YG9wZW5BdXRoRm9ybWAsZS5XaWRnZXRTdGF0dXM9YHdpZGdldFN0YXR1c2AsZS5UcmFuc2xhdGlvbnM9YHRyYW5zbGF0aW9uc2AsZS5BdXRoRm9ybUZpZWxkcz1gYXV0aEZvcm1GaWVsZHNgLGUuQnV0dG9uU3R5bGU9YGJ1dHRvblN0eWxlYCxlLkhlYWRlclN0eWxlPWBoZWFkZXJTdHlsZWAsZS5QcmV2aWV3VHJhbnNsYXRlPWBwcmV2aWV3VHJhbnNsYXRlYCxlLkRpc2FibGVDb25uZWN0aW9uU3RhdHVzPWBkaXNhYmxlQ29ubmVjdGlvblN0YXR1c2AsZS5SZWxvYWRXaXRoTW9ja0RhdGE9YHJlbG9hZFdpdGhNb2NrRGF0YWAsZS5SZWxvYWQ9YHJlbG9hZGAsZS5Cb3RJZGVudGl0eVVwZGF0ZT1gYm90SWRlbnRpdHk6dXBkYXRlYCxlfSh7fSksWXk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuTWVzc2FnZVNlbnQ9YG1lc3NhZ2Vfc2VudGAsZS5NZXNzYWdlUmVjZWl2ZWQ9YG1lc3NhZ2VfcmVjZWl2ZWRgLGUuTWVzc2VuZ2VyQ2xvc2U9YG1lc3Nlbmdlcl9jbG9zZWAsZS5XaWRnZXRJbml0PWB3aWRnZXRfaW5pdGAsZX0oe30pLFh5PWU9Pnt6Lm9uKGBtZXNzYWdlU2VudGAsZSl9LFp5PWU9Pnt6Lm9uKGBtZXNzYWdlUmVjZWl2ZWRgLGUpfSxReT1lPT57ei5vbihgbWVzc2VuZ2VyQ2xvc2VgLGUpfSwkeT1lPT57ei5vbihgd2lkZ2V0SW5pdGAsZSl9LGViPXtbWXkuTWVzc2FnZVNlbnRdOlh5LFtZeS5NZXNzYWdlUmVjZWl2ZWRdOlp5LFtZeS5NZXNzZW5nZXJDbG9zZV06UXksW1l5LldpZGdldEluaXRdOiR5fSx0Yj0oZSx0KT0+e2xldCBuPWViW2VdO24mJm4odCl9LG5iPWBodHRwczovL2RvY3Muc21hcnRzdXBwLmNvbS9jaGF0LWJveC9gLHJiPWAke25ifWxvY2FsaXphdGlvbi8jc3VwcG9ydGVkLWxhbmd1YWdlc2AsaWI9YCR7bmJ9dmlzaXRvci1pZGVudGlmaWNhdGlvbi8jY3VzdG9tLXZpc2l0b3ItZGF0YWAsYWI9YCR7bmJ9dmlzaXRvci1pZGVudGlmaWNhdGlvbi8jY3VzdG9tLWNvbnRhY3QtZGF0YWAsb2I9YCR7bmJ9amF2YXNjcmlwdC1hcGkvZXZlbnRzL2Asc2I9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20vaGVscC9jb29raWUtY29uc2VudC8jd2hlcmUtdG8tZW5hYmxlLWNvb2tpZS1jb25zZW50LWluLXNtYXJ0c3VwcGAsY2I9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20vcHJpY2luZ2AsbGI9Tyh7fSksdWI9KGUsdCk9PntsYi51cGRhdGUobj0+KHsuLi5uLFtlXTp0fSkpfSxkYj1lPT5PYmplY3QudmFsdWVzKCQpLnNvbWUodD0+dD09PWUpLGZiPShlLHQpPT5MdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgc3RyaW5nLiBTZWUgJHtuYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLHBiPShlLHQpPT5QdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgYm9vbGVhbi4gU2VlICR7bmJ9IGZvciBtb3JlIGluZm9ybWF0aW9uLmApLCExKSxtYj0oZSx0KT0+dHlwZW9mIHQ9PWBmdW5jdGlvbmA/ITA6KEgoYFBhcmFtZXRlciBvZiAnJHtlfScgQVBJIGNvbW1hbmQgbXVzdCBiZSB0eXBlIGZ1bmN0aW9uLiBTZWUgJHtuYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLGhiPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LiBTZWUgJHtpYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLGdiPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LiBTZWUgJHthYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLF9iPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LmApLCExKSx2Yj0oZSx0KT0+IUl1KHQpfHwhKGBpZGBpbiB0KXx8IUx1KHQuaWQpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgYmUgdHlwZSBvYmplY3QgYW5kIGhhcyBhIHZhbGlkICdpZCcgcHJvcGVydHkuYCksITEpOmBuYW1lYGluIHQmJiFMdSh0Lm5hbWUpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgaGF2ZSBhIHZhbGlkICduYW1lJyBwcm9wZXJ0eS5gKSwhMSk6YGF2YXRhclVybGBpbiB0JiYhTHUodC5hdmF0YXJVcmwpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgaGF2ZSBhIHZhbGlkICdhdmF0YXJVcmwnIHByb3BlcnR5LmApLCExKTohMCx5Yj0oZSx0KT0+e2xldCBuPU9iamVjdC52YWx1ZXMoWXkpO3JldHVybiBuLmluY2x1ZGVzKHQpPyEwOihIKGBVbmtub3duIGV2ZW50OiAnJHt0fScuIEF2YWlsYWJsZSBldmVudCBuYW1lcyBhcmU6ICR7bi5qb2luKGAsIGApfS4gU2VlICR7b2J9IGZvciBtb3JlIGluZm9ybWF0aW9uLmApLCExKX0sYmI9ZT0+e0goYFVua25vd24gQVBJIGNvbW1hbmQ6ICcke2V9Jy4gU2VlICR7bmJ9IHRvIGNoZWNrIGF2YWlsYWJsZSBBUEkgY29tbWFuZHMuYCl9LHhiPSgpPT4hIVYuZ2V0T3B0aW9ucygpLmZlYXR1cmVzPy5hcGksU2I9KCk9PiEhVi5nZXRPcHRpb25zKCkuZmVhdHVyZXM/Lmdyb3VwcyxDYj0oKT0+Vi5nZXRPcHRpb25zKCkuaXNQcmV2aWV3TW9kZSx3Yj0oKT0+IXhiKCkmJiFDYigpPyhIKGBDaGF0IGJveCBBUEkgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC4gU2VlICR7Y2J9IHRvIHVwZ3JhZGUgeW91ciBwYWNrYWdlLmApLCExKTohMCxUYj0oKT0+IXhiKCl8fCFTYigpPyhIKGBDaGF0IGJveCBHcm91cHMgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC4gU2VlICR7Y2J9IHRvIHVwZ3JhZGUgeW91ciBwYWNrYWdlLmApLCExKTohMCxFYj0oKT0+e0hvKCl8fEgoYEVuYWJsZSBtYW5hZ2luZyBjb29raWUgY29uc2VudCBpbiB3aWRnZXQgc2V0dGluZ3MgdG8gYWxsb3cgdGhpcyBjb21tYW5kLiBTZWUgJHtzYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCl9LERiPSgpPT57bGV0IGU9KCk9PntVXyghMCksSV8oKX07aWYoIUEoQ18pKXtYbC5wdXNoKGUpO3JldHVybn1lKCl9LE9iPSgpPT57aWYod2IoKSl7aWYoIUEoQ18pKXtYbC5wdXNoKFdfKTtyZXR1cm59V18oKX19LGtiPSgpPT57d2IoKSYmSV8oKX0sQWI9KCk9Pnt3YigpJiZMXygpfSxqYj0oZSx0KT0+e2lmKHdiKCkmJmU9PT0kLkxhbmd1YWdlJiZmYihlLHQpKXtpZighSWwodCkpe0goYFByb3ZpZGVkIGxhbmd1YWdlICcke3R9JyBpcyBub3Qgc3VwcG9ydGVkLiBTZWUgJHtyYn0gdG8gY2hlY2sgc3VwcG9ydGVkIGxhbmd1YWdlcy5gKTtyZXR1cm59aWYoIUEoQ18pKXt1YihgbGFuZ2AsdCk7cmV0dXJufUdsKHQpfX0sTWI9KGUsdCk9PntsZXQgbixyPW51bGwsaT0hMDtpZih3YigpKXtpZih0eXBlb2YgdD09YHN0cmluZ2AmJmZiKGUsdCkpbj10O2Vsc2UgaWYoaGIoZSx0KSl7aWYobj10LmNvbG9yLHI9dC5jb2xvcjIsaT10LmNvbG9yR3JhZGllbnQsIXBiKGUsaSkpcmV0dXJufWVsc2UgcmV0dXJuO2lmKCFZdihuKSl7SChgUHJvdmlkZWQgY29sb3IgJyR7bn0nIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHVzZSBoZXggY29sb3IgY29kZS5gKTtyZXR1cm59ZWxzZSBpZihpJiZyJiYhWXYocikpe0goYFByb3ZpZGVkIGNvbG9yICcke3J9JyBpcyBub3QgdmFsaWQuIERlZmF1bHQgY29sb3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuYCk7cmV0dXJufW95LnNldFRoZW1lQ29sb3Ioe2NvbG9yOm4sY29sb3IyOnIsY29sb3JHcmFkaWVudDppfSl9fSxOYj0oZSx0KT0+e3diKCkmJmZiKGUsdCkmJm9fKHQpfSxQYj0oZSx0KT0+e3diKCkmJmZiKGUsdCkmJihvXyh0KSxkXygpKX0sRmI9KGUsdCxuKT0+e2ZiKGUsdCkmJnliKGUsdCkmJm1iKGUsbikmJnRiKHQsbil9LEliPShlLHQpPT57aGIoZSx0KSYmTXUudXBkYXRlVmlzaXRvclZhcmlhYmxlcyh6dSh0KSl9LExiPShlLHQpPT57ZSE9PSQuTmFtZSYmZSE9PSQuRW1haWwmJmUhPT0kLlBob25lJiZlIT09JC5Hcm91cHx8ZmIoZSx0KSYmTXUudXBkYXRlVmlzaXRvclByb3BlcnR5KGUsdCl9LFJiPShlLHQpPT57aWYoIVRiKCl8fCFmYihlLHQpKXJldHVybjtsZXQgbj1BKGlsKVt0XTtpZihBKENfKSYmIW4pe0goYEdyb3VwIHdpdGgga2V5ICcke3R9JyBkb2VzIG5vdCBleGlzdC4gUGxlYXNlIHByb3ZpZGUgY29ycmVjdCBncm91cCBrZXkgZnJvbSB5b3VyIGdyb3VwIHNldHRpbmdzLmApO3JldHVybn1MYihlLHQpfSx6Yj0oZSx0KT0+e2diKGUsdCkmJk11LnVwZGF0ZVZpc2l0b3JDb250YWN0RGF0YSh0KX0sQmI9KGUsdCk9PntwYihlLHQpJiYoRWIoKSx6LmVtaXQoYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCwhIXQpKX0sVmI9KGUsdCk9PntwYihlLHQpJiYoRWIoKSx6LmVtaXQoYG1hcmtldGluZ0NvbnNlbnRDaGFuZ2VkYCwhIXQpKX0sSGI9KCk9PntZcChBKEJwKXx8YGApfSxVYj0oKT0+e0JjKEhjLkF1dGhGb3JtKX0sV2I9KGUsdCk9PntmYihlLHQpJiYodCE9PUsuQWNjb3VudFN0YXR1cy5PbmxpbmUmJnQhPT1LLkFjY291bnRTdGF0dXMuT2ZmbGluZXx8JHUuc2V0KHQpKX0sR2I9KGUsdCk9PntoYihlLHQpJiZxbCh0KX0sS2I9KGUsdCk9PntoYihlLHQpJiYoQShWaCl8fFZoLnNldChWLmdldE9wdGlvbnMoKSksVmgudXBkYXRlKGU9Pih7Li4uZSwuLi50fSkpKX0scWI9KGUsdCk9PntmYihlLHQpJiZCeS5zZXQodCl9LEpiPShlLHQpPT57aWYoZT09PSQuSGVhZGVyU3R5bGUmJmZiKGUsdCkpe2lmKHQhPT1gY29tcGFjdGAmJnQhPT1gc3RhbmRhcmRgKXtIKGBQcm92aWRlZCBoZWFkZXIgc3R5bGUgJyR7dH0nIGlzIG5vdCB2YWxpZC4gVXNlICdjb21wYWN0JyBvciAnc3RhbmRhcmQnLmApO3JldHVybn1VeS5zZXQodCl9fSxZYj0oKT0+e2xldCBlPSgpPT57fTtlPUhsLnN1YnNjcmliZSgoKT0+e0EoUnApLmZvckVhY2goZT0+e2xldCB0PWUuY29udGVudD8uZGF0YXx8YGA7dHlwZW9mIHQ9PWBzdHJpbmdgJiZ0Lm1hdGNoKC93aWRnZXRQcmV2aWV3XC4uKi8pJiYoZS5jb250ZW50LnRleHQ9QShXKSh0KSxKLnJlcGxhY2VNZXNzYWdlKGUpKX0pLGUoKX0pfSxYYj0oZSx0KT0+e3BiKGUsdCkmJklnLnNldCh0KX0sWmI9KGUsdCk9PntfYihlLHQpJiZxLnJlbG9hZENsaWVudCh0KX0sUWI9KGUsdCk9PntwYihlLHQpJiZxLnJlbG9hZENsaWVudCh2b2lkIDAsdCl9LCRiPShlLHQpPT57aWYoIXZiKGUsdCkpcmV0dXJuO2xldHtpZDpuLC4uLnJ9PXQ7JGwudXBkYXRlSWRlbnRpdHkobixyKX0sZXg9e3ZlcnNpb246YGUwN2MyMDhhMzhlNmY1MDg0YzhlYjQ2MGI5NThhNDJmNzc4YTU5NjVgLGV4ZWN1dGU6ZT0+e2xldCB0PWVbMF07aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmApe3J4KHQpO3JldHVybn1pZighZGIodCkpe2JiKFN0cmluZyh0KSk7cmV0dXJufW54KHQsZVsxXSwuLi5lLnNsaWNlKDIpKX0sZXhlYzpmdW5jdGlvbiguLi5lKXt0aGlzLmV4ZWN1dGUoZSl9fSx0eD17WyQuQ2hhdE9wZW5dOkRiLFskLkNoYXRDbG9zZV06T2IsWyQuQ2hhdFNob3ddOmtiLFskLkNoYXRIaWRlXTpBYixbJC5DaGF0TWVzc2FnZV06TmIsWyQuQ2hhdFNlbmRdOlBiLFskLkxhbmd1YWdlXTpqYixbJC5UaGVtZUNvbG9yXTpNYixbJC5IZWFkZXJTdHlsZV06SmIsWyQuT25dOkZiLFskLlZhcmlhYmxlc106SWIsWyQuQ29udGFjdERhdGFdOnpiLFskLk5hbWVdOkxiLFskLkdyb3VwXTpSYixbJC5FbWFpbF06TGIsWyQuUGhvbmVdOkxiLFskLkFuYWx5dGljc0NvbnNlbnRdOkJiLFskLk1hcmtldGluZ0NvbnNlbnRdOlZiLFskLkh0bWxBcHBseV06bnVsbCxbJC5PcGVuUmF0ZUZvcm1dOkhiLFskLk9wZW5BdXRoRm9ybV06VWIsWyQuV2lkZ2V0U3RhdHVzXTpXYixbJC5UcmFuc2xhdGlvbnNdOkdiLFskLkF1dGhGb3JtRmllbGRzXTpLYixbJC5CdXR0b25TdHlsZV06cWIsWyQuUHJldmlld1RyYW5zbGF0ZV06WWIsWyQuRGlzYWJsZUNvbm5lY3Rpb25TdGF0dXNdOlhiLFskLlJlbG9hZFdpdGhNb2NrRGF0YV06WmIsWyQuUmVsb2FkXTpRYixbJC5Cb3RJZGVudGl0eVVwZGF0ZV06JGJ9LG54PShlLHQsLi4ubik9PntsZXQgcj10eFtlXTtpZihyPT09dm9pZCAwKXtiYihlKTtyZXR1cm59ciE9PW51bGwmJihyKGUsdCwuLi5uKSx2byhg8J+nmeKAjeKZgu+4j1tBUEldICR7ZX0ke3Q/YDpgOmBgfWAsdD8/YGApKX0scng9ZT0+e0EoQ18pP2UoKTpYbC5wdXNoKGUpfTt0eXBlb2Ygd2luZG93PGB1YCYmKCh3aW5kb3cuX19zdmVsdGU/Pz17fSkudj8/PW5ldyBTZXQpLmFkZChgNWApO3ZhciBpeD1lPT5lO2Z1bmN0aW9uIGF4KGUpe2xldCB0PWUtMTtyZXR1cm4gdCp0KnQrMX1mdW5jdGlvbiBveChlKXtsZXQgdD10eXBlb2YgZT09YHN0cmluZ2AmJmUubWF0Y2goL15ccyooLT9bXGQuXSspKFteXHNdKilccyokLyk7cmV0dXJuIHQ/W3BhcnNlRmxvYXQodFsxXSksdFsyXXx8YHB4YF06W2UsYHB4YF19ZnVuY3Rpb24gc3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWl4fT17fSl7bGV0IGk9K2dldENvbXB1dGVkU3R5bGUoZSkub3BhY2l0eTtyZXR1cm57ZGVsYXk6dCxkdXJhdGlvbjpuLGVhc2luZzpyLGNzczplPT5gb3BhY2l0eTogJHtlKml9YH19ZnVuY3Rpb24gY3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHg6aT0wLHk6YT0wLG9wYWNpdHk6bz0wfT17fSl7bGV0IHM9Z2V0Q29tcHV0ZWRTdHlsZShlKSxjPStzLm9wYWNpdHksbD1zLnRyYW5zZm9ybT09PWBub25lYD9gYDpzLnRyYW5zZm9ybSx1PWMqKDEtbyksW2QsZl09b3goaSksW3AsbV09b3goYSk7cmV0dXJue2RlbGF5OnQsZHVyYXRpb246bixlYXNpbmc6cixjc3M6KGUsdCk9PmAKCQkJdHJhbnNmb3JtOiAke2x9IHRyYW5zbGF0ZSgkeygxLWUpKmR9JHtmfSwgJHsoMS1lKSpwfSR7bX0pOwoJCQlvcGFjaXR5OiAke2MtdSp0fWB9fWZ1bmN0aW9uIGx4KGUse2RlbGF5OnQ9MCxkdXJhdGlvbjpuPTQwMCxlYXNpbmc6cj1heCxheGlzOmk9YHlgfT17fSl7bGV0IGE9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPSthLm9wYWNpdHkscz1pPT09YHlgP2BoZWlnaHRgOmB3aWR0aGAsYz1wYXJzZUZsb2F0KGFbc10pLGw9aT09PWB5YD9bYHRvcGAsYGJvdHRvbWBdOltgbGVmdGAsYHJpZ2h0YF0sdT1sLm1hcChlPT5gJHtlWzBdLnRvVXBwZXJDYXNlKCl9JHtlLnNsaWNlKDEpfWApLGQ9cGFyc2VGbG9hdChhW2BwYWRkaW5nJHt1WzBdfWBdKSxmPXBhcnNlRmxvYXQoYVtgcGFkZGluZyR7dVsxXX1gXSkscD1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVswXX1gXSksbT1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVsxXX1gXSksaD1wYXJzZUZsb2F0KGFbYGJvcmRlciR7dVswXX1XaWR0aGBdKSxnPXBhcnNlRmxvYXQoYVtgYm9yZGVyJHt1WzFdfVdpZHRoYF0pO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOmU9PmBvdmVyZmxvdzogaGlkZGVuO29wYWNpdHk6ICR7TWF0aC5taW4oZSoyMCwxKSpvfTske3N9OiAke2UqY31weDtwYWRkaW5nLSR7bFswXX06ICR7ZSpkfXB4O3BhZGRpbmctJHtsWzFdfTogJHtlKmZ9cHg7bWFyZ2luLSR7bFswXX06ICR7ZSpwfXB4O21hcmdpbi0ke2xbMV19OiAke2UqbX1weDtib3JkZXItJHtsWzBdfS13aWR0aDogJHtlKmh9cHg7Ym9yZGVyLSR7bFsxXX0td2lkdGg6ICR7ZSpnfXB4O21pbi0ke3N9OiAwYH19ZnVuY3Rpb24gdXgoZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHN0YXJ0Omk9MCxvcGFjaXR5OmE9MH09e30pe2xldCBvPWdldENvbXB1dGVkU3R5bGUoZSkscz0rby5vcGFjaXR5LGM9by50cmFuc2Zvcm09PT1gbm9uZWA/YGA6by50cmFuc2Zvcm0sbD0xLWksdT1zKigxLWEpO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOihlLHQpPT5gCgkJCXRyYW5zZm9ybTogJHtjfSBzY2FsZSgkezEtbCp0fSk7CgkJCW9wYWNpdHk6ICR7cy11KnR9CgkJYH19YXQoKTt2YXIgZHg9d2koYDxkaXY+PC9kaXY+YCk7ZnVuY3Rpb24gZngoZSx0KXtsdCh0LCEwKTtsZXQgbj1vbyh0LGBoZWlnaHRgLDMsMjApLHI9b28odCxgd2lkdGhgLDMsYDEwMCVgKSxpPW9vKHQsYGNvbG9yU2NoZW1lYCwzLGBncmF5YCksYT1vbyh0LGByb3VuZGVkU3R5bGVgLDMsYHJvdW5kZWQtZnVsbGApLG89Zm4oKCk9PmAke2EoKX0gYW5pbWF0ZS1wdWxzZWApO3ZhciBzPWR4KCk7bGV0IGM7cHIoZT0+e2JhKHMsMSxtYShbUihvKSxpKCk9PT1gZ3JheWAmJmBiZy1ncmF5LTIwMGAsaSgpPT09YGRhcmtHcmF5YCYmYGJnLWdyYXktMzAwYF0pKSxjPVNhKHMsYGAsYyxlKX0sWygpPT4oe2hlaWdodDpteShuKCkpLHdpZHRoOkZ1KHIoKSk/bXkocigpKTpyKCl9KV0pLGtpKGUscyksdXQoKX1mdW5jdGlvbiBweChlLHQpe2xldCBuPW9vKHQsYHNpemVgLDMsMjApO2Z4KGUse2NvbG9yU2NoZW1lOmBkYXJrR3JheWAsZ2V0IHdpZHRoKCl7cmV0dXJuIG4oKX0sZ2V0IGhlaWdodCgpe3JldHVybiBuKCl9fSl9dmFyIG14PUVpKGA8c3ZnPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE4IDZMNiAxOE02IDZsMTIgMTIiPjwvcGF0aD48L3N2Zz5gKTtmdW5jdGlvbiBoeChlLHQpe2xldCBuPXJvKHQsW2AkJHNsb3RzYCxgJCRldmVudHNgLGAkJGxlZ2FjeWBdKTt2YXIgcj1teCgpO1ZhKHIsKCk9Pih7dmlld0JveDpgMCAwIDI0IDI0YCx3aWR0aDpgMS4yZW1gLGhlaWdodDpgMS4yZW1gLC4uLm59KSksa2koZSxyKX12YXIgZ3g9d2koYDxidXR0b24gdHlwZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdj48IT48L2Rpdj48L2J1dHRvbj5gKTtmdW5jdGlvbiBfeChlLHQpe2x0KHQsITApO2xldCBuPW9vKHQsYGljb25PcmllbnRhdGlvbmAsMyxgcmlnaHRgKSxyPW9vKHQsYGljb25BbmltYXRpb25gLDMsYG5vbmVgKSxpPW9vKHQsYGljb25TY2FsZWAsMywhMSksYT1vbyh0LGBzaXplYCwzLGBtZGApLG89b28odCxgdmFyaWFudGAsMyxgZ2hvc3RgKSxzPW9vKHQsYGZvY3VzYCwzLGBwcmltYXJ5YCksYz1mbigoKT0+bigpPT09YHJpZ2h0YD8xOi0xKSxsPWZuKCgpPT5pKCk/MS40OjEuMiksdT1mbigoKT0+dC5pY29uKSxkPWU9PntlLnN0b3BQcm9wYWdhdGlvbigpLHQub25DbGljayYmdC5vbkNsaWNrKGUpfTt2YXIgZj1neCgpLHA9Vm4oZik7JGkoVm4ocCksKCk9PlIodSksKGUsdCk9Pnt0KGUse3dpZHRoOmAxZW1gLGhlaWdodDpgMWVtYH0pfSksWGUocCksWGUoZikscHIoZT0+e2JhKGYsMSxlLGBzdmVsdGUteXdvZm1sYCksZi5kaXNhYmxlZD10LmRpc2FibGVkLHphKGYsYGRhdGEtdGVzdGlkYCx0LnRlc3RJZCksemEoZixgYXJpYS1sYWJlbGAsdC5pY29uRGVzY3JpcHRpb24pLHphKGYsYGFyaWEtZGlzYWJsZWRgLHQuZGlzYWJsZWQpLGJhKHAsMSxtYShbYHctZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJgLHIoKT09PWBzcGluYCYmYGFuaW1hdGUtc3BpbmBdKSksU2EocCxgdHJhbnNmb3JtOiBzY2FsZSgke1IobCl9KSBzY2FsZVgoJHtSKGMpfSk7YCl9LFsoKT0+bWEoW2BidG4gYnRuLSR7bygpfSBidG4tJHthKCl9YCwhIXQuZGlzYWJsZWQmJmBidG4tZGlzYWJsZWRgLGlzKCk/YGN1cnNvci1hdXRvYDpgY3Vyc29yLXBvaW50ZXJgLHMoKT09PWBwcmltYXJ5YCYmYGJ1dHRvbi1mb2N1c2AscygpPT09YHNlY29uZGFyeWAmJmBidXR0b24tZm9jdXMtc2Vjb25kYXJ5YF0pXSksZ2koYGNsaWNrYCxmLGQpLGtpKGUsZiksdXQoKX1faShbYGNsaWNrYF0pO2V4cG9ydHtkXyBhcyAkLGp0IGFzICRpLFNsIGFzICRuLGFvIGFzICRyLCRmIGFzICR0LCRfIGFzIEEsZ2kgYXMgQWksc2QgYXMgQW4sc3MgYXMgQXIsVGggYXMgQXQsS18gYXMgQixWbiBhcyBCaSxVdSBhcyBCbixqbyBhcyBCcixIcCBhcyBCdCxGeSBhcyBDLElpIGFzIENpLF9kIGFzIENuLGJzIGFzIENyLHpoIGFzIEN0LG95IGFzIEQsRWkgYXMgRGksbmQgYXMgRG4sX3MgYXMgRHIsTWggYXMgRHQsbXkgYXMgRSx3aSBhcyBFaSxlZCBhcyBFbixocyBhcyBFcixGaCBhcyBFdCxKXyBhcyBGLCRyIGFzIEZpLEt1IGFzIEZuLHpvIGFzIEZyLFpwIGFzIEZ0LE9fIGFzIEcsVG4gYXMgR2ksJGwgYXMgR24scG8gYXMgR3IsenAgYXMgR3QsTl8gYXMgSCxVbiBhcyBIaSxMdSBhcyBIbix5byBhcyBIcixNcCBhcyBIdCxYIGFzIEkscHIgYXMgSWksWXUgYXMgSW4sVm8gYXMgSXIsWXAgYXMgSXQsbV8gYXMgSixwbiBhcyBKaSxIbCBhcyBKbix6IGFzIEpyLFJwIGFzIEp0LGdfIGFzIEssQ24gYXMgS2ksWWwgYXMgS24sQiBhcyBLcixKIGFzIEt0LEdfIGFzIEwsb3IgYXMgTGkscXUgYXMgTG4sQm8gYXMgTHIsWHAgYXMgTHQscnYgYXMgTSxwaSBhcyBNaSxpZCBhcyBNbixhcyBhcyBNcixFaCBhcyBNdCxZXyBhcyBOLFIgYXMgTmksWnUgYXMgTm4saXMgYXMgTnIsaWggYXMgTnQsYXkgYXMgTyxEaSBhcyBPaSxsZCBhcyBPbixscyBhcyBPcixraCBhcyBPdCxXXyBhcyBQLFhyIGFzIFBpLEd1IGFzIFBuLEpvIGFzIFByLGFtIGFzIFB0LGlfIGFzIFEsUHQgYXMgUWksd2wgYXMgUW4scm8gYXMgUXIsT3AgYXMgUXQsVV8gYXMgUixjciBhcyBSaSxXdSBhcyBSbixVIGFzIFJyLFdwIGFzIFJ0LFB5IGFzIFMsamkgYXMgU2ksZ2QgYXMgU24seXMgYXMgU3IsYWcgYXMgU3QsZ3kgYXMgVCxPaSBhcyBUaSx1ZCBhcyBUbixmcyBhcyBUcixJaCBhcyBUdCxqXyBhcyBVLGpuIGFzIFVpLE11IGFzIFVuLFYgYXMgVXIsQnAgYXMgVXQsTV8gYXMgVixIbiBhcyBWaSxWdSBhcyBWbixIIGFzIFZyLFZwIGFzIFZ0LERfIGFzIFcsd24gYXMgV2kscSBhcyBXbix2byBhcyBXcixGcCBhcyBXdCxzXyBhcyBYLE10IGFzIFhpLFJsIGFzIFhuLHNvIGFzIFhyLElwIGFzIFh0LHBfIGFzIFksZm4gYXMgWWksVyBhcyBZbixjbyBhcyBZcixQcCBhcyBZdCxhXyBhcyBaLEF0IGFzIFppLENsIGFzIFpuLG9vIGFzIFpyLGtwIGFzIFp0LFJ5IGFzIF8sR2kgYXMgX2ksVGQgYXMgX24sTmMgYXMgX3IsdWcgYXMgX3Qsc3ggYXMgYSxsdCBhcyBhYSxWYSBhcyBhaSxCZiBhcyBhbixsbCBhcyBhcixVZyBhcyBhdCxOeSBhcyBiLFJpIGFzIGJpLHlkIGFzIGJuLENzIGFzIGJyLGlnIGFzIGJ0LGx4IGFzIGMsWGUgYXMgY2EsVGEgYXMgY2ksU2YgYXMgY24sUWMgYXMgY3IsVmcgYXMgY3QsSHkgYXMgZCxtYSBhcyBkaSxHZCBhcyBkbixXYyBhcyBkcixOZyBhcyBkdCxrIGFzIGVhLGVvIGFzIGVpLGVwIGFzIGVuLGJsIGFzIGVyLG9fIGFzIGV0LHp5IGFzIGYsdWEgYXMgZmksVmQgYXMgZm4sR2MgYXMgZnIsT2cgYXMgZnQsR3kgYXMgZyxaaSBhcyBnaSx3ZCBhcyBnbixCYyBhcyBncix5ZyBhcyBndCxWeSBhcyBoLFFpIGFzIGhpLEVkIGFzIGhuLHpjIGFzIGhyLFRnIGFzIGh0LGZ4IGFzIGksdXQgYXMgaWEscWEgYXMgaWksRmYgYXMgaW4sc2wgYXMgaXIsdF8gYXMgaXQsaXYgYXMgaixoaSBhcyBqaSxmZCBhcyBqbix1cyBhcyBqcixEaCBhcyBqdCxldiBhcyBrLF9pIGFzIGtpLGNkIGFzIGtuLGNzIGFzIGtyLE9oIGFzIGt0LGV4IGFzIGwseCBhcyBsYSxTYSBhcyBsaSxiZiBhcyBsbixVYyBhcyBscixMZyBhcyBsdCxxeSBhcyBtLCRpIGFzIG1pLHpkIGFzIG1uLFZjIGFzIG1yLERnIGFzIG10LGh4IGFzIG4sTyBhcyBuYSxZYSBhcyBuaSxxZiBhcyBubix1bCBhcyBucixjXyBhcyBudCxjeCBhcyBvLGN0IGFzIG9hLHphIGFzIG9pLHpmIGFzIG9uLG9sIGFzIG9yLEhnIGFzIG90LFd5IGFzIHAsY2EgYXMgcGksSGQgYXMgcG4sSGMgYXMgcHIsRWcgYXMgcHQsaF8gYXMgcSxPbiBhcyBxaSxLbCBhcyBxbixtbyBhcyBxcixOcCBhcyBxdCxweCBhcyByLHN0IGFzIHJhLEphIGFzIHJpLFVmIGFzIHJuLGNsIGFzIHJyLGxfIGFzIHJ0LHV4IGFzIHMsWmUgYXMgc2EsTGEgYXMgc2ksRGYgYXMgc24sbmwgYXMgc3IsQmcgYXMgc3QsX3ggYXMgdCxBIGFzIHRhLCRhIGFzIHRpLFRwIGFzIHRuLGRsIGFzIHRyLHJfIGFzIHR0LEx5IGFzIHUsdSBhcyB1YSxiYSBhcyB1aSxSZCBhcyB1bixLYyBhcyB1cixGZyBhcyB1dCxKeSBhcyB2LFZpIGFzIHZpLFNkIGFzIHZuLFBjIGFzIHZyLHJnIGFzIHZ0LER5IGFzIHcsa2kgYXMgd2ksJHUgYXMgd24sZ3MgYXMgd3IsTGggYXMgd3QsSXkgYXMgeCxNaSBhcyB4aSx4ZCBhcyB4bix4cyBhcyB4cixvZyBhcyB4dCxNeSBhcyB5LEJpIGFzIHlpLGJkIGFzIHluLE1jIGFzIHlyLFZoIGFzIHl0LFZfIGFzIHosWG4gYXMgemksSHUgYXMgem4sTG8gYXMgenIsVXAgYXMgenR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1zaGFyZWQta2IxeXFIYUEuanMubWFw"}},"time_used":15,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":15,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/script.js","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.191Z","timestamp":1785139285191,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /script.js HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\nserver: cloudflare\r\nlast-modified: Sat, 06 Sep 2025 01:07:46 GMT\r\naccept-ranges: bytes\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\npriority: u=3,i=?0\r\ncontent-type: text/javascript\r\ncache-control: max-age=14400\r\ncf-cache-status: REVALIDATED\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=gn04%2FkK6ltXTNe1rrJVLWu4I1t4JyN%2FdWelNGp2Duye0yRv%2FPgCHyqCaqQJmv2GLZNNiL3IAEttoV8Y6W0XOhNq9ejtsVm%2FAqRLGOtb%2BR4oV07DRjFGaTKAYfha6l7I%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-ray: a21a1db4780a2efa-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"]}],"data":{"size":2571226,"size_decoded":468724,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text","md5":"8e440750b8105df8dec4124b66c0912c","sha1":"5e3d9ac9b08d752b8c23ae422d4216c7eb6d914f","sha256":"96e435e096fc1361b7297ebd257f69917fda49d169774bd56c286913a71f5222","sha512":"db0920bbf5b72110b32fc5a0c3203a797dff3bc95431360cd9ae5078486a9eaee4f28a15f8b2672b3bc1ac29c59013d49f65a7e43e11d52bcee88a8193248ecc","ssdeep":"24576:pINHaYepyV42BSH9WrIQLqxWUXvNF6vR4HVZW:pIRaYepyV42BSH9WrIQLqxWUXvNF6vRn","tlshash":"a0254e4aaae72030a213b03d8e5f98057a25441f1d4afd483e5ca2e58f5c93c57f9fe9","first_seen":"2026-07-25T05:39:21.876844Z","last_seen":"2026-07-27T08:02:19.576438Z","times_seen":5,"resource_available":false,"data":"LyohCiAqIFdlYmZsb3c6IEZyb250LWVuZCBzaXRlIGxpYnJhcnkKICogQGxpY2Vuc2UgTUlUCiAqIElubGluZSBzY3JpcHRzIG1heSBhY2Nlc3MgdGhlIGFwaSB1c2luZyBhbiBhc3luYyBoYW5kbGVyOgogKiAgIHZhciBXZWJmbG93ID0gV2ViZmxvdyB8fCBbXTsKICogICBXZWJmbG93LnB1c2gocmVhZHlGdW5jdGlvbik7CiAqLwoKKCgpID0+IHsKICB2YXIgRnRlID0gT2JqZWN0LmNyZWF0ZTsKICB2YXIgUjEgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7CiAgdmFyIGt0ZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7CiAgdmFyIEJ0ZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzOwogIHZhciBXdGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YsCiAgICBVdGUgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5OwogIHZhciBYdGUgPSAoZSwgdCwgcikgPT4KICAgIHQgaW4gZQogICAgICA/IFIxKGUsIHQsIHsgZW51bWVyYWJsZTogITAsIGNvbmZpZ3VyYWJsZTogITAsIHdyaXRhYmxlOiAhMCwgdmFsdWU6IHIgfSkKICAgICAgOiAoZVt0XSA9IHIpOwogIHZhciBTUyA9ICgoZSkgPT4KICAgIHR5cGVvZiByZXF1aXJlIDwgInUiCiAgICAgID8gcmVxdWlyZQogICAgICA6IHR5cGVvZiBQcm94eSA8ICJ1IgogICAgICA/IG5ldyBQcm94eShlLCB7IGdldDogKHQsIHIpID0+ICh0eXBlb2YgcmVxdWlyZSA8ICJ1IiA/IHJlcXVpcmUgOiB0KVtyXSB9KQogICAgICA6IGUpKGZ1bmN0aW9uIChlKSB7CiAgICBpZiAodHlwZW9mIHJlcXVpcmUgPCAidSIpIHJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICB0aHJvdyBuZXcgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJyArIGUgKyAnIiBpcyBub3Qgc3VwcG9ydGVkJyk7CiAgfSk7CiAgdmFyIFYgPSAoZSwgdCkgPT4gKCkgPT4gKGUgJiYgKHQgPSBlKChlID0gMCkpKSwgdCk7CiAgdmFyIEUgPSAoZSwgdCkgPT4gKCkgPT4gKHQgfHwgZSgodCA9IHsgZXhwb3J0czoge30gfSkuZXhwb3J0cywgdCksIHQuZXhwb3J0cyksCiAgICB1dCA9IChlLCB0KSA9PiB7CiAgICAgIGZvciAodmFyIHIgaW4gdCkgUjEoZSwgciwgeyBnZXQ6IHRbcl0sIGVudW1lcmFibGU6ICEwIH0pOwogICAgfSwKICAgIE9TID0gKGUsIHQsIHIsIG4pID0+IHsKICAgICAgaWYgKCh0ICYmIHR5cGVvZiB0ID09ICJvYmplY3QiKSB8fCB0eXBlb2YgdCA9PSAiZnVuY3Rpb24iKQogICAgICAgIGZvciAobGV0IGkgb2YgQnRlKHQpKQogICAgICAgICAgIVV0ZS5jYWxsKGUsIGkpICYmCiAgICAgICAgICAgIGkgIT09IHIgJiYKICAgICAgICAgICAgUjEoZSwgaSwgewogICAgICAgICAgICAgIGdldDogKCkgPT4gdFtpXSwKICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhKG4gPSBrdGUodCwgaSkpIHx8IG4uZW51bWVyYWJsZSwKICAgICAgICAgICAgfSk7CiAgICAgIHJldHVybiBlOwogICAgfTsKICB2YXIgYmUgPSAoZSwgdCwgcikgPT4gKAogICAgICAociA9IGUgIT0gbnVsbCA/IEZ0ZShXdGUoZSkpIDoge30pLAogICAgICBPUygKICAgICAgICB0IHx8ICFlIHx8ICFlLl9fZXNNb2R1bGUKICAgICAgICAgID8gUjEociwgImRlZmF1bHQiLCB7IHZhbHVlOiBlLCBlbnVtZXJhYmxlOiAhMCB9KQogICAgICAgICAgOiByLAogICAgICAgIGUKICAgICAgKQogICAgKSwKICAgIG90ID0gKGUpID0+IE9TKFIxKHt9LCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pLCBlKTsKICB2YXIgeFMgPSAoZSwgdCwgcikgPT4gKFh0ZShlLCB0eXBlb2YgdCAhPSAic3ltYm9sIiA/IHQgKyAiIiA6IHQsIHIpLCByKSwKICAgIENTID0gKGUsIHQsIHIpID0+IHsKICAgICAgaWYgKCF0LmhhcyhlKSkgdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgIiArIHIpOwogICAgfTsKICB2YXIgUlMgPSAoZSwgdCwgcikgPT4gKAogICAgICBDUyhlLCB0LCAicmVhZCBmcm9tIHByaXZhdGUgZmllbGQiKSwgciA/IHIuY2FsbChlKSA6IHQuZ2V0KGUpCiAgICApLAogICAgSVMgPSAoZSwgdCwgcikgPT4gewogICAgICBpZiAodC5oYXMoZSkpCiAgICAgICAgdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlIik7CiAgICAgIHQgaW5zdGFuY2VvZiBXZWFrU2V0ID8gdC5hZGQoZSkgOiB0LnNldChlLCByKTsKICAgIH0sCiAgICBueSA9IChlLCB0LCByLCBuKSA9PiAoCiAgICAgIENTKGUsIHQsICJ3cml0ZSB0byBwcml2YXRlIGZpZWxkIiksIG4gPyBuLmNhbGwoZSwgcikgOiB0LnNldChlLCByKSwgcgogICAgKTsKICB2YXIgaXkgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHdpbmRvdy50cmFtID0gKGZ1bmN0aW9uIChlKSB7CiAgICAgIGZ1bmN0aW9uIHQoeiwgaikgewogICAgICAgIHZhciBKID0gbmV3IHNlLkJhcmUoKTsKICAgICAgICByZXR1cm4gSi5pbml0KHosIGopOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHIoeikgewogICAgICAgIHJldHVybiB6LnJlcGxhY2UoL1tBLVpdL2csIGZ1bmN0aW9uIChqKSB7CiAgICAgICAgICByZXR1cm4gIi0iICsgai50b0xvd2VyQ2FzZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIG4oeikgewogICAgICAgIHZhciBqID0gcGFyc2VJbnQoei5zbGljZSgxKSwgMTYpLAogICAgICAgICAgSiA9IChqID4+IDE2KSAmIDI1NSwKICAgICAgICAgIGFlID0gKGogPj4gOCkgJiAyNTUsCiAgICAgICAgICB1ZSA9IDI1NSAmIGo7CiAgICAgICAgcmV0dXJuIFtKLCBhZSwgdWVdOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGkoeiwgaiwgSikgewogICAgICAgIHJldHVybiAoCiAgICAgICAgICAiIyIgKyAoKDEgPDwgMjQpIHwgKHogPDwgMTYpIHwgKGogPDwgOCkgfCBKKS50b1N0cmluZygxNikuc2xpY2UoMSkKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGEoKSB7fQogICAgICBmdW5jdGlvbiBvKHosIGopIHsKICAgICAgICB1KCJUeXBlIHdhcm5pbmc6IEV4cGVjdGVkOiBbIiArIHogKyAiXSBHb3Q6IFsiICsgdHlwZW9mIGogKyAiXSAiICsgaik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gcyh6LCBqLCBKKSB7CiAgICAgICAgdSgiVW5pdHMgZG8gbm90IG1hdGNoIFsiICsgeiArICJdOiAiICsgaiArICIsICIgKyBKKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBjKHosIGosIEopIHsKICAgICAgICBpZiAoKGogIT09IHZvaWQgMCAmJiAoSiA9IGopLCB6ID09PSB2b2lkIDApKSByZXR1cm4gSjsKICAgICAgICB2YXIgYWUgPSBKOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBwZS50ZXN0KHopIHx8ICFtZS50ZXN0KHopCiAgICAgICAgICAgID8gKGFlID0gcGFyc2VJbnQoeiwgMTApKQogICAgICAgICAgICA6IG1lLnRlc3QoeikgJiYgKGFlID0gMWUzICogcGFyc2VGbG9hdCh6KSksCiAgICAgICAgICAwID4gYWUgJiYgKGFlID0gMCksCiAgICAgICAgICBhZSA9PT0gYWUgPyBhZSA6IEoKICAgICAgICApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHUoeikgewogICAgICAgIGdlLmRlYnVnICYmIHdpbmRvdyAmJiB3aW5kb3cuY29uc29sZS53YXJuKHopOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGwoeikgewogICAgICAgIGZvciAodmFyIGogPSAtMSwgSiA9IHogPyB6Lmxlbmd0aCA6IDAsIGFlID0gW107ICsraiA8IEo7ICkgewogICAgICAgICAgdmFyIHVlID0geltqXTsKICAgICAgICAgIHVlICYmIGFlLnB1c2godWUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYWU7CiAgICAgIH0KICAgICAgdmFyIHAgPSAoZnVuY3Rpb24gKHosIGosIEopIHsKICAgICAgICAgIGZ1bmN0aW9uIGFlKE9lKSB7CiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgT2UgPT0gIm9iamVjdCI7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiB1ZShPZSkgewogICAgICAgICAgICByZXR1cm4gdHlwZW9mIE9lID09ICJmdW5jdGlvbiI7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBpZSgpIHt9CiAgICAgICAgICBmdW5jdGlvbiBfZShPZSwgQWUpIHsKICAgICAgICAgICAgZnVuY3Rpb24gbGUoKSB7CiAgICAgICAgICAgICAgdmFyIEp0ID0gbmV3IEllKCk7CiAgICAgICAgICAgICAgcmV0dXJuIHVlKEp0LmluaXQpICYmIEp0LmluaXQuYXBwbHkoSnQsIGFyZ3VtZW50cyksIEp0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIEllKCkge30KICAgICAgICAgICAgQWUgPT09IEogJiYgKChBZSA9IE9lKSwgKE9lID0gT2JqZWN0KSksIChsZS5CYXJlID0gSWUpOwogICAgICAgICAgICB2YXIgUGUsCiAgICAgICAgICAgICAgdHQgPSAoaWVbel0gPSBPZVt6XSksCiAgICAgICAgICAgICAgQXIgPSAoSWVbel0gPSBsZVt6XSA9IG5ldyBpZSgpKTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAoQXIuY29uc3RydWN0b3IgPSBsZSksCiAgICAgICAgICAgICAgKGxlLm1peGluID0gZnVuY3Rpb24gKEp0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKEllW3pdID0gbGVbel0gPSBfZShsZSwgSnQpW3pdKSwgbGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKGxlLm9wZW4gPSBmdW5jdGlvbiAoSnQpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKChQZSA9IHt9KSwKICAgICAgICAgICAgICAgICAgdWUoSnQpCiAgICAgICAgICAgICAgICAgICAgPyAoUGUgPSBKdC5jYWxsKGxlLCBBciwgdHQsIGxlLCBPZSkpCiAgICAgICAgICAgICAgICAgICAgOiBhZShKdCkgJiYgKFBlID0gSnQpLAogICAgICAgICAgICAgICAgICBhZShQZSkpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIGZvciAodmFyIEdpIGluIFBlKSBqLmNhbGwoUGUsIEdpKSAmJiAoQXJbR2ldID0gUGVbR2ldKTsKICAgICAgICAgICAgICAgIHJldHVybiB1ZShBci5pbml0KSB8fCAoQXIuaW5pdCA9IE9lKSwgbGU7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgbGUub3BlbihBZSkKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBfZTsKICAgICAgICB9KSgicHJvdG90eXBlIiwge30uaGFzT3duUHJvcGVydHkpLAogICAgICAgIGQgPSB7CiAgICAgICAgICBlYXNlOiBbCiAgICAgICAgICAgICJlYXNlIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlKSB7CiAgICAgICAgICAgICAgdmFyIHVlID0gKHogLz0gYWUpICogeiwKICAgICAgICAgICAgICAgIGllID0gdWUgKiB6OwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBqICsKICAgICAgICAgICAgICAgIEogKgogICAgICAgICAgICAgICAgICAoLTIuNzUgKiBpZSAqIHVlICsKICAgICAgICAgICAgICAgICAgICAxMSAqIHVlICogdWUgKwogICAgICAgICAgICAgICAgICAgIC0xNS41ICogaWUgKwogICAgICAgICAgICAgICAgICAgIDggKiB1ZSArCiAgICAgICAgICAgICAgICAgICAgMC4yNSAqIHopCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgICAiZWFzZS1pbiI6IFsKICAgICAgICAgICAgImVhc2UtaW4iLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICB2YXIgdWUgPSAoeiAvPSBhZSkgKiB6LAogICAgICAgICAgICAgICAgaWUgPSB1ZSAqIHo7CiAgICAgICAgICAgICAgcmV0dXJuIGogKyBKICogKC0xICogaWUgKiB1ZSArIDMgKiB1ZSAqIHVlICsgLTMgKiBpZSArIDIgKiB1ZSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2Utb3V0IjogWwogICAgICAgICAgICAiZWFzZS1vdXQiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICB2YXIgdWUgPSAoeiAvPSBhZSkgKiB6LAogICAgICAgICAgICAgICAgaWUgPSB1ZSAqIHo7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGogKwogICAgICAgICAgICAgICAgSiAqCiAgICAgICAgICAgICAgICAgICgwLjMgKiBpZSAqIHVlICsKICAgICAgICAgICAgICAgICAgICAtMS42ICogdWUgKiB1ZSArCiAgICAgICAgICAgICAgICAgICAgMi4yICogaWUgKwogICAgICAgICAgICAgICAgICAgIC0xLjggKiB1ZSArCiAgICAgICAgICAgICAgICAgICAgMS45ICogeikKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICAgICJlYXNlLWluLW91dCI6IFsKICAgICAgICAgICAgImVhc2UtaW4tb3V0IiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlKSB7CiAgICAgICAgICAgICAgdmFyIHVlID0gKHogLz0gYWUpICogeiwKICAgICAgICAgICAgICAgIGllID0gdWUgKiB6OwogICAgICAgICAgICAgIHJldHVybiBqICsgSiAqICgyICogaWUgKiB1ZSArIC01ICogdWUgKiB1ZSArIDIgKiBpZSArIDIgKiB1ZSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgbGluZWFyOiBbCiAgICAgICAgICAgICJsaW5lYXIiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gKEogKiB6KSAvIGFlICsgajsKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgICAiZWFzZS1pbi1xdWFkIjogWwogICAgICAgICAgICAiY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA4NSwgMC42ODAsIDAuNTMwKSIsCiAgICAgICAgICAgIGZ1bmN0aW9uICh6LCBqLCBKLCBhZSkgewogICAgICAgICAgICAgIHJldHVybiBKICogKHogLz0gYWUpICogeiArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2Utb3V0LXF1YWQiOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC4yNTAsIDAuNDYwLCAwLjQ1MCwgMC45NDApIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIC1KICogKHogLz0gYWUpICogKHogLSAyKSArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2UtaW4tb3V0LXF1YWQiOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMwLCAwLjUxNSwgMC45NTUpIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlKSB7CiAgICAgICAgICAgICAgcmV0dXJuICh6IC89IGFlIC8gMikgPCAxCiAgICAgICAgICAgICAgICA/IChKIC8gMikgKiB6ICogeiArIGoKICAgICAgICAgICAgICAgIDogKC1KIC8gMikgKiAoLS16ICogKHogLSAyKSAtIDEpICsgajsKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgICAiZWFzZS1pbi1jdWJpYyI6IFsKICAgICAgICAgICAgImN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gSiAqICh6IC89IGFlKSAqIHogKiB6ICsgajsKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgICAiZWFzZS1vdXQtY3ViaWMiOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMSkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gSiAqICgoeiA9IHogLyBhZSAtIDEpICogeiAqIHogKyAxKSArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2UtaW4tb3V0LWN1YmljIjogWwogICAgICAgICAgICAiY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEpIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlKSB7CiAgICAgICAgICAgICAgcmV0dXJuICh6IC89IGFlIC8gMikgPCAxCiAgICAgICAgICAgICAgICA/IChKIC8gMikgKiB6ICogeiAqIHogKyBqCiAgICAgICAgICAgICAgICA6IChKIC8gMikgKiAoKHogLT0gMikgKiB6ICogeiArIDIpICsgajsKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgICAiZWFzZS1pbi1xdWFydCI6IFsKICAgICAgICAgICAgImN1YmljLWJlemllcigwLjg5NSwgMC4wMzAsIDAuNjg1LCAwLjIyMCkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gSiAqICh6IC89IGFlKSAqIHogKiB6ICogeiArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2Utb3V0LXF1YXJ0IjogWwogICAgICAgICAgICAiY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0MCwgMC40NDAsIDEpIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIC1KICogKCh6ID0geiAvIGFlIC0gMSkgKiB6ICogeiAqIHogLSAxKSArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2UtaW4tb3V0LXF1YXJ0IjogWwogICAgICAgICAgICAiY3ViaWMtYmV6aWVyKDAuNzcwLCAwLCAwLjE3NSwgMSkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gKHogLz0gYWUgLyAyKSA8IDEKICAgICAgICAgICAgICAgID8gKEogLyAyKSAqIHogKiB6ICogeiAqIHogKyBqCiAgICAgICAgICAgICAgICA6ICgtSiAvIDIpICogKCh6IC09IDIpICogeiAqIHogKiB6IC0gMikgKyBqOwogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICAgICJlYXNlLWluLXF1aW50IjogWwogICAgICAgICAgICAiY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKSIsCiAgICAgICAgICAgIGZ1bmN0aW9uICh6LCBqLCBKLCBhZSkgewogICAgICAgICAgICAgIHJldHVybiBKICogKHogLz0gYWUpICogeiAqIHogKiB6ICogeiArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2Utb3V0LXF1aW50IjogWwogICAgICAgICAgICAiY3ViaWMtYmV6aWVyKDAuMjMwLCAxLCAwLjMyMCwgMSkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gSiAqICgoeiA9IHogLyBhZSAtIDEpICogeiAqIHogKiB6ICogeiArIDEpICsgajsKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgICAiZWFzZS1pbi1vdXQtcXVpbnQiOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC44NjAsIDAsIDAuMDcwLCAxKSIsCiAgICAgICAgICAgIGZ1bmN0aW9uICh6LCBqLCBKLCBhZSkgewogICAgICAgICAgICAgIHJldHVybiAoeiAvPSBhZSAvIDIpIDwgMQogICAgICAgICAgICAgICAgPyAoSiAvIDIpICogeiAqIHogKiB6ICogeiAqIHogKyBqCiAgICAgICAgICAgICAgICA6IChKIC8gMikgKiAoKHogLT0gMikgKiB6ICogeiAqIHogKiB6ICsgMikgKyBqOwogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICAgICJlYXNlLWluLXNpbmUiOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC40NzAsIDAsIDAuNzQ1LCAwLjcxNSkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gLUogKiBNYXRoLmNvcygoeiAvIGFlKSAqIChNYXRoLlBJIC8gMikpICsgSiArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2Utb3V0LXNpbmUiOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC4zOTAsIDAuNTc1LCAwLjU2NSwgMSkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gSiAqIE1hdGguc2luKCh6IC8gYWUpICogKE1hdGguUEkgLyAyKSkgKyBqOwogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICAgICJlYXNlLWluLW91dC1zaW5lIjogWwogICAgICAgICAgICAiY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1MCwgMC41NTAsIDAuOTUwKSIsCiAgICAgICAgICAgIGZ1bmN0aW9uICh6LCBqLCBKLCBhZSkgewogICAgICAgICAgICAgIHJldHVybiAoLUogLyAyKSAqIChNYXRoLmNvcygoTWF0aC5QSSAqIHopIC8gYWUpIC0gMSkgKyBqOwogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICAgICJlYXNlLWluLWV4cG8iOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC45NTAsIDAuMDUwLCAwLjc5NSwgMC4wMzUpIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHogPT09IDAgPyBqIDogSiAqIE1hdGgucG93KDIsIDEwICogKHogLyBhZSAtIDEpKSArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2Utb3V0LWV4cG8iOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC4xOTAsIDEsIDAuMjIwLCAxKSIsCiAgICAgICAgICAgIGZ1bmN0aW9uICh6LCBqLCBKLCBhZSkgewogICAgICAgICAgICAgIHJldHVybiB6ID09PSBhZQogICAgICAgICAgICAgICAgPyBqICsgSgogICAgICAgICAgICAgICAgOiBKICogKC1NYXRoLnBvdygyLCAoLTEwICogeikgLyBhZSkgKyAxKSArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2UtaW4tb3V0LWV4cG8iOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMSwgMCwgMCwgMSkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4geiA9PT0gMAogICAgICAgICAgICAgICAgPyBqCiAgICAgICAgICAgICAgICA6IHogPT09IGFlCiAgICAgICAgICAgICAgICA/IGogKyBKCiAgICAgICAgICAgICAgICA6ICh6IC89IGFlIC8gMikgPCAxCiAgICAgICAgICAgICAgICA/IChKIC8gMikgKiBNYXRoLnBvdygyLCAxMCAqICh6IC0gMSkpICsgagogICAgICAgICAgICAgICAgOiAoSiAvIDIpICogKC1NYXRoLnBvdygyLCAtMTAgKiAtLXopICsgMikgKyBqOwogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICAgICJlYXNlLWluLWNpcmMiOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC42MDAsIDAuMDQwLCAwLjk4MCwgMC4zMzUpIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIC1KICogKE1hdGguc3FydCgxIC0gKHogLz0gYWUpICogeikgLSAxKSArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2Utb3V0LWNpcmMiOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIwLCAwLjE2NSwgMSkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gSiAqIE1hdGguc3FydCgxIC0gKHogPSB6IC8gYWUgLSAxKSAqIHopICsgajsKICAgICAgICAgICAgfSwKICAgICAgICAgIF0sCiAgICAgICAgICAiZWFzZS1pbi1vdXQtY2lyYyI6IFsKICAgICAgICAgICAgImN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUwLCAwLjg2MCkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUpIHsKICAgICAgICAgICAgICByZXR1cm4gKHogLz0gYWUgLyAyKSA8IDEKICAgICAgICAgICAgICAgID8gKC1KIC8gMikgKiAoTWF0aC5zcXJ0KDEgLSB6ICogeikgLSAxKSArIGoKICAgICAgICAgICAgICAgIDogKEogLyAyKSAqIChNYXRoLnNxcnQoMSAtICh6IC09IDIpICogeikgKyAxKSArIGo7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2UtaW4tYmFjayI6IFsKICAgICAgICAgICAgImN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlLCB1ZSkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICB1ZSA9PT0gdm9pZCAwICYmICh1ZSA9IDEuNzAxNTgpLAogICAgICAgICAgICAgICAgSiAqICh6IC89IGFlKSAqIHogKiAoKHVlICsgMSkgKiB6IC0gdWUpICsgagogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgICAgImVhc2Utb3V0LWJhY2siOiBbCiAgICAgICAgICAgICJjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMS4yNzUpIiwKICAgICAgICAgICAgZnVuY3Rpb24gKHosIGosIEosIGFlLCB1ZSkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICB1ZSA9PT0gdm9pZCAwICYmICh1ZSA9IDEuNzAxNTgpLAogICAgICAgICAgICAgICAgSiAqICgoeiA9IHogLyBhZSAtIDEpICogeiAqICgodWUgKyAxKSAqIHogKyB1ZSkgKyAxKSArIGoKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9LAogICAgICAgICAgXSwKICAgICAgICAgICJlYXNlLWluLW91dC1iYWNrIjogWwogICAgICAgICAgICAiY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCkiLAogICAgICAgICAgICBmdW5jdGlvbiAoeiwgaiwgSiwgYWUsIHVlKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHVlID09PSB2b2lkIDAgJiYgKHVlID0gMS43MDE1OCksCiAgICAgICAgICAgICAgICAoeiAvPSBhZSAvIDIpIDwgMQogICAgICAgICAgICAgICAgICA/IChKIC8gMikgKiB6ICogeiAqICgoKHVlICo9IDEuNTI1KSArIDEpICogeiAtIHVlKSArIGoKICAgICAgICAgICAgICAgICAgOiAoSiAvIDIpICoKICAgICAgICAgICAgICAgICAgICAgICgoeiAtPSAyKSAqIHogKiAoKCh1ZSAqPSAxLjUyNSkgKyAxKSAqIHogKyB1ZSkgKyAyKSArCiAgICAgICAgICAgICAgICAgICAgagogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICBdLAogICAgICAgIH0sCiAgICAgICAgaCA9IHsKICAgICAgICAgICJlYXNlLWluLWJhY2siOiAiY3ViaWMtYmV6aWVyKDAuNjAwLCAwLCAwLjczNSwgMC4wNDUpIiwKICAgICAgICAgICJlYXNlLW91dC1iYWNrIjogImN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKSIsCiAgICAgICAgICAiZWFzZS1pbi1vdXQtYmFjayI6ICJjdWJpYy1iZXppZXIoMC42ODAsIDAsIDAuMjY1LCAxKSIsCiAgICAgICAgfSwKICAgICAgICBtID0gZG9jdW1lbnQsCiAgICAgICAgdiA9IHdpbmRvdywKICAgICAgICB5ID0gImJrd2xkLXRyYW0iLAogICAgICAgIGcgPSAvW1wtXC4wLTldL2csCiAgICAgICAgTSA9IC9bQS1aXS8sCiAgICAgICAgQSA9ICJudW1iZXIiLAogICAgICAgIF8gPSAvXihyZ2J8IykvLAogICAgICAgIEMgPSAvKGVtfGNtfG1tfGlufHB0fHBjfHB4KSQvLAogICAgICAgIFIgPSAvKGVtfGNtfG1tfGlufHB0fHBjfHB4fCUpJC8sCiAgICAgICAgTCA9IC8oZGVnfHJhZHx0dXJuKSQvLAogICAgICAgIE4gPSAidW5pdGxlc3MiLAogICAgICAgIFcgPSAvKGFsbHxub25lKSAwcyBlYXNlIDBzLywKICAgICAgICBrID0gL14od2lkdGh8aGVpZ2h0KSQvLAogICAgICAgIHEgPSAiICIsCiAgICAgICAgSCA9IG0uY3JlYXRlRWxlbWVudCgiYSIpLAogICAgICAgIFggPSBbIldlYmtpdCIsICJNb3oiLCAiTyIsICJtcyJdLAogICAgICAgIFUgPSBbIi13ZWJraXQtIiwgIi1tb3otIiwgIi1vLSIsICItbXMtIl0sCiAgICAgICAgdGUgPSBmdW5jdGlvbiAoeikgewogICAgICAgICAgaWYgKHogaW4gSC5zdHlsZSkgcmV0dXJuIHsgZG9tOiB6LCBjc3M6IHogfTsKICAgICAgICAgIHZhciBqLAogICAgICAgICAgICBKLAogICAgICAgICAgICBhZSA9ICIiLAogICAgICAgICAgICB1ZSA9IHouc3BsaXQoIi0iKTsKICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB1ZS5sZW5ndGg7IGorKykKICAgICAgICAgICAgYWUgKz0gdWVbal0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB1ZVtqXS5zbGljZSgxKTsKICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBYLmxlbmd0aDsgaisrKQogICAgICAgICAgICBpZiAoKChKID0gWFtqXSArIGFlKSwgSiBpbiBILnN0eWxlKSkKICAgICAgICAgICAgICByZXR1cm4geyBkb206IEosIGNzczogVVtqXSArIHogfTsKICAgICAgICB9LAogICAgICAgIG9lID0gKHQuc3VwcG9ydCA9IHsKICAgICAgICAgIGJpbmQ6IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLAogICAgICAgICAgdHJhbnNmb3JtOiB0ZSgidHJhbnNmb3JtIiksCiAgICAgICAgICB0cmFuc2l0aW9uOiB0ZSgidHJhbnNpdGlvbiIpLAogICAgICAgICAgYmFja2ZhY2U6IHRlKCJiYWNrZmFjZS12aXNpYmlsaXR5IiksCiAgICAgICAgICB0aW1pbmc6IHRlKCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiIpLAogICAgICAgIH0pOwogICAgICBpZiAob2UudHJhbnNpdGlvbikgewogICAgICAgIHZhciB5ZSA9IG9lLnRpbWluZy5kb207CiAgICAgICAgaWYgKCgoSC5zdHlsZVt5ZV0gPSBkWyJlYXNlLWluLWJhY2siXVswXSksICFILnN0eWxlW3llXSkpCiAgICAgICAgICBmb3IgKHZhciBGIGluIGgpIGRbRl1bMF0gPSBoW0ZdOwogICAgICB9CiAgICAgIHZhciBZID0gKHQuZnJhbWUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIHogPQogICAgICAgICAgICB2LnJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAogICAgICAgICAgICB2LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAogICAgICAgICAgICB2Lm1velJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAogICAgICAgICAgICB2Lm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHwKICAgICAgICAgICAgdi5tc1JlcXVlc3RBbmltYXRpb25GcmFtZTsKICAgICAgICAgIHJldHVybiB6ICYmIG9lLmJpbmQKICAgICAgICAgICAgPyB6LmJpbmQodikKICAgICAgICAgICAgOiBmdW5jdGlvbiAoaikgewogICAgICAgICAgICAgICAgdi5zZXRUaW1lb3V0KGosIDE2KTsKICAgICAgICAgICAgICB9OwogICAgICAgIH0pKCkpLAogICAgICAgIGZlID0gKHQubm93ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciB6ID0gdi5wZXJmb3JtYW5jZSwKICAgICAgICAgICAgaiA9IHogJiYgKHoubm93IHx8IHoud2Via2l0Tm93IHx8IHoubXNOb3cgfHwgei5tb3pOb3cpOwogICAgICAgICAgcmV0dXJuIGogJiYgb2UuYmluZAogICAgICAgICAgICA/IGouYmluZCh6KQogICAgICAgICAgICA6IERhdGUubm93IHx8CiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiArbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgfSkoKSksCiAgICAgICAgRyA9IHAoZnVuY3Rpb24gKHopIHsKICAgICAgICAgIGZ1bmN0aW9uIGooTmUsIFJlKSB7CiAgICAgICAgICAgIHZhciBtdCA9IGwoKCIiICsgTmUpLnNwbGl0KHEpKSwKICAgICAgICAgICAgICBldCA9IG10WzBdOwogICAgICAgICAgICBSZSA9IFJlIHx8IHt9OwogICAgICAgICAgICB2YXIgRHQgPSB4W2V0XTsKICAgICAgICAgICAgaWYgKCFEdCkgcmV0dXJuIHUoIlVuc3VwcG9ydGVkIHByb3BlcnR5OiAiICsgZXQpOwogICAgICAgICAgICBpZiAoIVJlLndlYWsgfHwgIXRoaXMucHJvcHNbZXRdKSB7CiAgICAgICAgICAgICAgdmFyIGRyID0gRHRbMF0sCiAgICAgICAgICAgICAgICBCdCA9IHRoaXMucHJvcHNbZXRdOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBCdCB8fCAoQnQgPSB0aGlzLnByb3BzW2V0XSA9IG5ldyBkci5CYXJlKCkpLAogICAgICAgICAgICAgICAgQnQuaW5pdCh0aGlzLiRlbCwgbXQsIER0LCBSZSksCiAgICAgICAgICAgICAgICBCdAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIEooTmUsIFJlLCBtdCkgewogICAgICAgICAgICBpZiAoTmUpIHsKICAgICAgICAgICAgICB2YXIgZXQgPSB0eXBlb2YgTmU7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKFJlIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLnRpbWVyICYmIHRoaXMudGltZXIuZGVzdHJveSgpLAogICAgICAgICAgICAgICAgICAodGhpcy5xdWV1ZSA9IFtdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYWN0aXZlID0gITEpKSwKICAgICAgICAgICAgICAgIGV0ID09ICJudW1iZXIiICYmIFJlKQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICh0aGlzLnRpbWVyID0gbmV3IGhlKHsKICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogTmUsCiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogdGhpcywKICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogaWUsCiAgICAgICAgICAgICAgICAgIH0pKSwKICAgICAgICAgICAgICAgICAgdm9pZCAodGhpcy5hY3RpdmUgPSAhMCkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgaWYgKGV0ID09ICJzdHJpbmciICYmIFJlKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKE5lKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgImhpZGUiOgogICAgICAgICAgICAgICAgICAgIGxlLmNhbGwodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgInN0b3AiOgogICAgICAgICAgICAgICAgICAgIF9lLmNhbGwodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgInJlZHJhdyI6CiAgICAgICAgICAgICAgICAgICAgSWUuY2FsbCh0aGlzKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBqLmNhbGwodGhpcywgTmUsIG10ICYmIG10WzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBpZS5jYWxsKHRoaXMpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoZXQgPT0gImZ1bmN0aW9uIikgcmV0dXJuIHZvaWQgTmUuY2FsbCh0aGlzLCB0aGlzKTsKICAgICAgICAgICAgICBpZiAoZXQgPT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICAgIHZhciBEdCA9IDA7CiAgICAgICAgICAgICAgICBBci5jYWxsKAogICAgICAgICAgICAgICAgICB0aGlzLAogICAgICAgICAgICAgICAgICBOZSwKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHZ0LCBGbSkgewogICAgICAgICAgICAgICAgICAgIHZ0LnNwYW4gPiBEdCAmJiAoRHQgPSB2dC5zcGFuKSwgdnQuc3RvcCgpLCB2dC5hbmltYXRlKEZtKTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHZ0KSB7CiAgICAgICAgICAgICAgICAgICAgIndhaXQiIGluIHZ0ICYmIChEdCA9IGModnQud2FpdCwgMCkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0dC5jYWxsKHRoaXMpLAogICAgICAgICAgICAgICAgICBEdCA+IDAgJiYKICAgICAgICAgICAgICAgICAgICAoKHRoaXMudGltZXIgPSBuZXcgaGUoeyBkdXJhdGlvbjogRHQsIGNvbnRleHQ6IHRoaXMgfSkpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmFjdGl2ZSA9ICEwKSwKICAgICAgICAgICAgICAgICAgICBSZSAmJiAodGhpcy50aW1lci5jb21wbGV0ZSA9IGllKSk7CiAgICAgICAgICAgICAgICB2YXIgZHIgPSB0aGlzLAogICAgICAgICAgICAgICAgICBCdCA9ICExLAogICAgICAgICAgICAgICAgICBvbiA9IHt9OwogICAgICAgICAgICAgICAgWShmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIEFyLmNhbGwoZHIsIE5lLCBmdW5jdGlvbiAodnQpIHsKICAgICAgICAgICAgICAgICAgICB2dC5hY3RpdmUgJiYgKChCdCA9ICEwKSwgKG9uW3Z0Lm5hbWVdID0gdnQubmV4dFN0eWxlKSk7CiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgIEJ0ICYmIGRyLiRlbC5jc3Mob24pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZShOZSkgewogICAgICAgICAgICAoTmUgPSBjKE5lLCAwKSksCiAgICAgICAgICAgICAgdGhpcy5hY3RpdmUKICAgICAgICAgICAgICAgID8gdGhpcy5xdWV1ZS5wdXNoKHsgb3B0aW9uczogTmUgfSkKICAgICAgICAgICAgICAgIDogKCh0aGlzLnRpbWVyID0gbmV3IGhlKHsKICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogTmUsCiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogdGhpcywKICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogaWUsCiAgICAgICAgICAgICAgICAgIH0pKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuYWN0aXZlID0gITApKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIHVlKE5lKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZQogICAgICAgICAgICAgID8gKHRoaXMucXVldWUucHVzaCh7IG9wdGlvbnM6IE5lLCBhcmdzOiBhcmd1bWVudHMgfSksCiAgICAgICAgICAgICAgICB2b2lkICh0aGlzLnRpbWVyLmNvbXBsZXRlID0gaWUpKQogICAgICAgICAgICAgIDogdSgKICAgICAgICAgICAgICAgICAgIk5vIGFjdGl2ZSB0cmFuc2l0aW9uIHRpbWVyLiBVc2Ugc3RhcnQoKSBvciB3YWl0KCkgYmVmb3JlIHRoZW4oKS4iCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gaWUoKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAodGhpcy50aW1lciAmJiB0aGlzLnRpbWVyLmRlc3Ryb3koKSwKICAgICAgICAgICAgICAodGhpcy5hY3RpdmUgPSAhMSksCiAgICAgICAgICAgICAgdGhpcy5xdWV1ZS5sZW5ndGgpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHZhciBOZSA9IHRoaXMucXVldWUuc2hpZnQoKTsKICAgICAgICAgICAgICBKLmNhbGwodGhpcywgTmUub3B0aW9ucywgITAsIE5lLmFyZ3MpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBfZShOZSkgewogICAgICAgICAgICB0aGlzLnRpbWVyICYmIHRoaXMudGltZXIuZGVzdHJveSgpLAogICAgICAgICAgICAgICh0aGlzLnF1ZXVlID0gW10pLAogICAgICAgICAgICAgICh0aGlzLmFjdGl2ZSA9ICExKTsKICAgICAgICAgICAgdmFyIFJlOwogICAgICAgICAgICB0eXBlb2YgTmUgPT0gInN0cmluZyIKICAgICAgICAgICAgICA/ICgoUmUgPSB7fSksIChSZVtOZV0gPSAxKSkKICAgICAgICAgICAgICA6IChSZSA9IHR5cGVvZiBOZSA9PSAib2JqZWN0IiAmJiBOZSAhPSBudWxsID8gTmUgOiB0aGlzLnByb3BzKSwKICAgICAgICAgICAgICBBci5jYWxsKHRoaXMsIFJlLCBKdCksCiAgICAgICAgICAgICAgdHQuY2FsbCh0aGlzKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIE9lKE5lKSB7CiAgICAgICAgICAgIF9lLmNhbGwodGhpcywgTmUpLCBBci5jYWxsKHRoaXMsIE5lLCBHaSwgcHIpOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gQWUoTmUpIHsKICAgICAgICAgICAgdHlwZW9mIE5lICE9ICJzdHJpbmciICYmIChOZSA9ICJibG9jayIpLAogICAgICAgICAgICAgICh0aGlzLmVsLnN0eWxlLmRpc3BsYXkgPSBOZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBsZSgpIHsKICAgICAgICAgICAgX2UuY2FsbCh0aGlzKSwgKHRoaXMuZWwuc3R5bGUuZGlzcGxheSA9ICJub25lIik7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBJZSgpIHsKICAgICAgICAgICAgdGhpcy5lbC5vZmZzZXRIZWlnaHQ7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBQZSgpIHsKICAgICAgICAgICAgX2UuY2FsbCh0aGlzKSwKICAgICAgICAgICAgICBlLnJlbW92ZURhdGEodGhpcy5lbCwgeSksCiAgICAgICAgICAgICAgKHRoaXMuJGVsID0gdGhpcy5lbCA9IG51bGwpOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gdHQoKSB7CiAgICAgICAgICAgIHZhciBOZSwKICAgICAgICAgICAgICBSZSwKICAgICAgICAgICAgICBtdCA9IFtdOwogICAgICAgICAgICB0aGlzLnVwc3RyZWFtICYmIG10LnB1c2godGhpcy51cHN0cmVhbSk7CiAgICAgICAgICAgIGZvciAoTmUgaW4gdGhpcy5wcm9wcykKICAgICAgICAgICAgICAoUmUgPSB0aGlzLnByb3BzW05lXSksIFJlLmFjdGl2ZSAmJiBtdC5wdXNoKFJlLnN0cmluZyk7CiAgICAgICAgICAgIChtdCA9IG10LmpvaW4oIiwiKSksCiAgICAgICAgICAgICAgdGhpcy5zdHlsZSAhPT0gbXQgJiYKICAgICAgICAgICAgICAgICgodGhpcy5zdHlsZSA9IG10KSwgKHRoaXMuZWwuc3R5bGVbb2UudHJhbnNpdGlvbi5kb21dID0gbXQpKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIEFyKE5lLCBSZSwgbXQpIHsKICAgICAgICAgICAgdmFyIGV0LAogICAgICAgICAgICAgIER0LAogICAgICAgICAgICAgIGRyLAogICAgICAgICAgICAgIEJ0LAogICAgICAgICAgICAgIG9uID0gUmUgIT09IEp0LAogICAgICAgICAgICAgIHZ0ID0ge307CiAgICAgICAgICAgIGZvciAoZXQgaW4gTmUpCiAgICAgICAgICAgICAgKGRyID0gTmVbZXRdKSwKICAgICAgICAgICAgICAgIGV0IGluIFoKICAgICAgICAgICAgICAgICAgPyAodnQudHJhbnNmb3JtIHx8ICh2dC50cmFuc2Zvcm0gPSB7fSksCiAgICAgICAgICAgICAgICAgICAgKHZ0LnRyYW5zZm9ybVtldF0gPSBkcikpCiAgICAgICAgICAgICAgICAgIDogKE0udGVzdChldCkgJiYgKGV0ID0gcihldCkpLAogICAgICAgICAgICAgICAgICAgIGV0IGluIHggPyAodnRbZXRdID0gZHIpIDogKEJ0IHx8IChCdCA9IHt9KSwgKEJ0W2V0XSA9IGRyKSkpOwogICAgICAgICAgICBmb3IgKGV0IGluIHZ0KSB7CiAgICAgICAgICAgICAgaWYgKCgoZHIgPSB2dFtldF0pLCAoRHQgPSB0aGlzLnByb3BzW2V0XSksICFEdCkpIHsKICAgICAgICAgICAgICAgIGlmICghb24pIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgRHQgPSBqLmNhbGwodGhpcywgZXQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBSZS5jYWxsKHRoaXMsIER0LCBkcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXQgJiYgQnQgJiYgbXQuY2FsbCh0aGlzLCBCdCk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBKdChOZSkgewogICAgICAgICAgICBOZS5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBHaShOZSwgUmUpIHsKICAgICAgICAgICAgTmUuc2V0KFJlKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIHByKE5lKSB7CiAgICAgICAgICAgIHRoaXMuJGVsLmNzcyhOZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBFcihOZSwgUmUpIHsKICAgICAgICAgICAgeltOZV0gPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4KICAgICAgICAgICAgICAgID8gTTEuY2FsbCh0aGlzLCBSZSwgYXJndW1lbnRzKQogICAgICAgICAgICAgICAgOiAodGhpcy5lbCAmJiBSZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCB0aGlzKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIE0xKE5lLCBSZSkgewogICAgICAgICAgICB2YXIgbXQsCiAgICAgICAgICAgICAgZXQgPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDsKICAgICAgICAgICAgZm9yIChtdCA9IDA7IGV0ID4gbXQ7IG10KyspIE5lLmFwcGx5KHRoaXMuY2hpbGRyZW5bbXRdLCBSZSk7CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICAgfQogICAgICAgICAgKHouaW5pdCA9IGZ1bmN0aW9uIChOZSkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKCh0aGlzLiRlbCA9IGUoTmUpKSwKICAgICAgICAgICAgICAodGhpcy5lbCA9IHRoaXMuJGVsWzBdKSwKICAgICAgICAgICAgICAodGhpcy5wcm9wcyA9IHt9KSwKICAgICAgICAgICAgICAodGhpcy5xdWV1ZSA9IFtdKSwKICAgICAgICAgICAgICAodGhpcy5zdHlsZSA9ICIiKSwKICAgICAgICAgICAgICAodGhpcy5hY3RpdmUgPSAhMSksCiAgICAgICAgICAgICAgZ2Uua2VlcEluaGVyaXRlZCAmJiAhZ2UuZmFsbGJhY2spCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHZhciBSZSA9IE8odGhpcy5lbCwgInRyYW5zaXRpb24iKTsKICAgICAgICAgICAgICBSZSAmJiAhVy50ZXN0KFJlKSAmJiAodGhpcy51cHN0cmVhbSA9IFJlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBvZS5iYWNrZmFjZSAmJgogICAgICAgICAgICAgIGdlLmhpZGVCYWNrZmFjZSAmJgogICAgICAgICAgICAgIEkodGhpcy5lbCwgb2UuYmFja2ZhY2UuY3NzLCAiaGlkZGVuIik7CiAgICAgICAgICB9KSwKICAgICAgICAgICAgRXIoImFkZCIsIGopLAogICAgICAgICAgICBFcigic3RhcnQiLCBKKSwKICAgICAgICAgICAgRXIoIndhaXQiLCBhZSksCiAgICAgICAgICAgIEVyKCJ0aGVuIiwgdWUpLAogICAgICAgICAgICBFcigibmV4dCIsIGllKSwKICAgICAgICAgICAgRXIoInN0b3AiLCBfZSksCiAgICAgICAgICAgIEVyKCJzZXQiLCBPZSksCiAgICAgICAgICAgIEVyKCJzaG93IiwgQWUpLAogICAgICAgICAgICBFcigiaGlkZSIsIGxlKSwKICAgICAgICAgICAgRXIoInJlZHJhdyIsIEllKSwKICAgICAgICAgICAgRXIoImRlc3Ryb3kiLCBQZSk7CiAgICAgICAgfSksCiAgICAgICAgc2UgPSBwKEcsIGZ1bmN0aW9uICh6KSB7CiAgICAgICAgICBmdW5jdGlvbiBqKEosIGFlKSB7CiAgICAgICAgICAgIHZhciB1ZSA9IGUuZGF0YShKLCB5KSB8fCBlLmRhdGEoSiwgeSwgbmV3IEcuQmFyZSgpKTsKICAgICAgICAgICAgcmV0dXJuIHVlLmVsIHx8IHVlLmluaXQoSiksIGFlID8gdWUuc3RhcnQoYWUpIDogdWU7CiAgICAgICAgICB9CiAgICAgICAgICB6LmluaXQgPSBmdW5jdGlvbiAoSiwgYWUpIHsKICAgICAgICAgICAgdmFyIHVlID0gZShKKTsKICAgICAgICAgICAgaWYgKCF1ZS5sZW5ndGgpIHJldHVybiB0aGlzOwogICAgICAgICAgICBpZiAodWUubGVuZ3RoID09PSAxKSByZXR1cm4gaih1ZVswXSwgYWUpOwogICAgICAgICAgICB2YXIgaWUgPSBbXTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICB1ZS5lYWNoKGZ1bmN0aW9uIChfZSwgT2UpIHsKICAgICAgICAgICAgICAgIGllLnB1c2goaihPZSwgYWUpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAodGhpcy5jaGlsZHJlbiA9IGllKSwKICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICk7CiAgICAgICAgICB9OwogICAgICAgIH0pLAogICAgICAgIEIgPSBwKGZ1bmN0aW9uICh6KSB7CiAgICAgICAgICBmdW5jdGlvbiBqKCkgewogICAgICAgICAgICB2YXIgaWUgPSB0aGlzLmdldCgpOwogICAgICAgICAgICB0aGlzLnVwZGF0ZSgiYXV0byIpOwogICAgICAgICAgICB2YXIgX2UgPSB0aGlzLmdldCgpOwogICAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoaWUpLCBfZTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIEooaWUsIF9lLCBPZSkgewogICAgICAgICAgICByZXR1cm4gX2UgIT09IHZvaWQgMCAmJiAoT2UgPSBfZSksIGllIGluIGQgPyBpZSA6IE9lOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gYWUoaWUpIHsKICAgICAgICAgICAgdmFyIF9lID0gL3JnYmE/XCgoXGQrKSxccyooXGQrKSxccyooXGQrKS8uZXhlYyhpZSk7CiAgICAgICAgICAgIHJldHVybiAoX2UgPyBpKF9lWzFdLCBfZVsyXSwgX2VbM10pIDogaWUpLnJlcGxhY2UoCiAgICAgICAgICAgICAgLyMoXHcpKFx3KShcdykkLywKICAgICAgICAgICAgICAiIyQxJDEkMiQyJDMkMyIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciB1ZSA9IHsgZHVyYXRpb246IDUwMCwgZWFzZTogImVhc2UiLCBkZWxheTogMCB9OwogICAgICAgICAgKHouaW5pdCA9IGZ1bmN0aW9uIChpZSwgX2UsIE9lLCBBZSkgewogICAgICAgICAgICAodGhpcy4kZWwgPSBpZSksICh0aGlzLmVsID0gaWVbMF0pOwogICAgICAgICAgICB2YXIgbGUgPSBfZVswXTsKICAgICAgICAgICAgT2VbMl0gJiYgKGxlID0gT2VbMl0pLAogICAgICAgICAgICAgIHdbbGVdICYmIChsZSA9IHdbbGVdKSwKICAgICAgICAgICAgICAodGhpcy5uYW1lID0gbGUpLAogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBPZVsxXSksCiAgICAgICAgICAgICAgKHRoaXMuZHVyYXRpb24gPSBjKF9lWzFdLCB0aGlzLmR1cmF0aW9uLCB1ZS5kdXJhdGlvbikpLAogICAgICAgICAgICAgICh0aGlzLmVhc2UgPSBKKF9lWzJdLCB0aGlzLmVhc2UsIHVlLmVhc2UpKSwKICAgICAgICAgICAgICAodGhpcy5kZWxheSA9IGMoX2VbM10sIHRoaXMuZGVsYXksIHVlLmRlbGF5KSksCiAgICAgICAgICAgICAgKHRoaXMuc3BhbiA9IHRoaXMuZHVyYXRpb24gKyB0aGlzLmRlbGF5KSwKICAgICAgICAgICAgICAodGhpcy5hY3RpdmUgPSAhMSksCiAgICAgICAgICAgICAgKHRoaXMubmV4dFN0eWxlID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuYXV0byA9IGsudGVzdCh0aGlzLm5hbWUpKSwKICAgICAgICAgICAgICAodGhpcy51bml0ID0gQWUudW5pdCB8fCB0aGlzLnVuaXQgfHwgZ2UuZGVmYXVsdFVuaXQpLAogICAgICAgICAgICAgICh0aGlzLmFuZ2xlID0gQWUuYW5nbGUgfHwgdGhpcy5hbmdsZSB8fCBnZS5kZWZhdWx0QW5nbGUpLAogICAgICAgICAgICAgIGdlLmZhbGxiYWNrIHx8IEFlLmZhbGxiYWNrCiAgICAgICAgICAgICAgICA/ICh0aGlzLmFuaW1hdGUgPSB0aGlzLmZhbGxiYWNrKQogICAgICAgICAgICAgICAgOiAoKHRoaXMuYW5pbWF0ZSA9IHRoaXMudHJhbnNpdGlvbiksCiAgICAgICAgICAgICAgICAgICh0aGlzLnN0cmluZyA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lICsKICAgICAgICAgICAgICAgICAgICBxICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmR1cmF0aW9uICsKICAgICAgICAgICAgICAgICAgICAibXMiICsKICAgICAgICAgICAgICAgICAgICAodGhpcy5lYXNlICE9ICJlYXNlIiA/IHEgKyBkW3RoaXMuZWFzZV1bMF0gOiAiIikgKwogICAgICAgICAgICAgICAgICAgICh0aGlzLmRlbGF5ID8gcSArIHRoaXMuZGVsYXkgKyAibXMiIDogIiIpKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgICAgKHouc2V0ID0gZnVuY3Rpb24gKGllKSB7CiAgICAgICAgICAgICAgKGllID0gdGhpcy5jb252ZXJ0KGllLCB0aGlzLnR5cGUpKSwKICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKGllKSwKICAgICAgICAgICAgICAgIHRoaXMucmVkcmF3KCk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoei50cmFuc2l0aW9uID0gZnVuY3Rpb24gKGllKSB7CiAgICAgICAgICAgICAgKHRoaXMuYWN0aXZlID0gITApLAogICAgICAgICAgICAgICAgKGllID0gdGhpcy5jb252ZXJ0KGllLCB0aGlzLnR5cGUpKSwKICAgICAgICAgICAgICAgIHRoaXMuYXV0byAmJgogICAgICAgICAgICAgICAgICAodGhpcy5lbC5zdHlsZVt0aGlzLm5hbWVdID09ICJhdXRvIiAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLnVwZGF0ZSh0aGlzLmdldCgpKSwgdGhpcy5yZWRyYXcoKSksCiAgICAgICAgICAgICAgICAgIGllID09ICJhdXRvIiAmJiAoaWUgPSBqLmNhbGwodGhpcykpKSwKICAgICAgICAgICAgICAgICh0aGlzLm5leHRTdHlsZSA9IGllKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICh6LmZhbGxiYWNrID0gZnVuY3Rpb24gKGllKSB7CiAgICAgICAgICAgICAgdmFyIF9lID0KICAgICAgICAgICAgICAgIHRoaXMuZWwuc3R5bGVbdGhpcy5uYW1lXSB8fCB0aGlzLmNvbnZlcnQodGhpcy5nZXQoKSwgdGhpcy50eXBlKTsKICAgICAgICAgICAgICAoaWUgPSB0aGlzLmNvbnZlcnQoaWUsIHRoaXMudHlwZSkpLAogICAgICAgICAgICAgICAgdGhpcy5hdXRvICYmCiAgICAgICAgICAgICAgICAgIChfZSA9PSAiYXV0byIgJiYgKF9lID0gdGhpcy5jb252ZXJ0KHRoaXMuZ2V0KCksIHRoaXMudHlwZSkpLAogICAgICAgICAgICAgICAgICBpZSA9PSAiYXV0byIgJiYgKGllID0gai5jYWxsKHRoaXMpKSksCiAgICAgICAgICAgICAgICAodGhpcy50d2VlbiA9IG5ldyBuZSh7CiAgICAgICAgICAgICAgICAgIGZyb206IF9lLAogICAgICAgICAgICAgICAgICB0bzogaWUsCiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLAogICAgICAgICAgICAgICAgICBkZWxheTogdGhpcy5kZWxheSwKICAgICAgICAgICAgICAgICAgZWFzZTogdGhpcy5lYXNlLAogICAgICAgICAgICAgICAgICB1cGRhdGU6IHRoaXMudXBkYXRlLAogICAgICAgICAgICAgICAgICBjb250ZXh0OiB0aGlzLAogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHouZ2V0ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiBPKHRoaXMuZWwsIHRoaXMubmFtZSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoei51cGRhdGUgPSBmdW5jdGlvbiAoaWUpIHsKICAgICAgICAgICAgICBJKHRoaXMuZWwsIHRoaXMubmFtZSwgaWUpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHouc3RvcCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAodGhpcy5hY3RpdmUgfHwgdGhpcy5uZXh0U3R5bGUpICYmCiAgICAgICAgICAgICAgICAoKHRoaXMuYWN0aXZlID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMubmV4dFN0eWxlID0gbnVsbCksCiAgICAgICAgICAgICAgICBJKHRoaXMuZWwsIHRoaXMubmFtZSwgdGhpcy5nZXQoKSkpOwogICAgICAgICAgICAgIHZhciBpZSA9IHRoaXMudHdlZW47CiAgICAgICAgICAgICAgaWUgJiYgaWUuY29udGV4dCAmJiBpZS5kZXN0cm95KCk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoei5jb252ZXJ0ID0gZnVuY3Rpb24gKGllLCBfZSkgewogICAgICAgICAgICAgIGlmIChpZSA9PSAiYXV0byIgJiYgdGhpcy5hdXRvKSByZXR1cm4gaWU7CiAgICAgICAgICAgICAgdmFyIE9lLAogICAgICAgICAgICAgICAgQWUgPSB0eXBlb2YgaWUgPT0gIm51bWJlciIsCiAgICAgICAgICAgICAgICBsZSA9IHR5cGVvZiBpZSA9PSAic3RyaW5nIjsKICAgICAgICAgICAgICBzd2l0Y2ggKF9lKSB7CiAgICAgICAgICAgICAgICBjYXNlIEE6CiAgICAgICAgICAgICAgICAgIGlmIChBZSkgcmV0dXJuIGllOwogICAgICAgICAgICAgICAgICBpZiAobGUgJiYgaWUucmVwbGFjZShnLCAiIikgPT09ICIiKSByZXR1cm4gK2llOwogICAgICAgICAgICAgICAgICBPZSA9ICJudW1iZXIodW5pdGxlc3MpIjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIF86CiAgICAgICAgICAgICAgICAgIGlmIChsZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChpZSA9PT0gIiIgJiYgdGhpcy5vcmlnaW5hbCkgcmV0dXJuIHRoaXMub3JpZ2luYWw7CiAgICAgICAgICAgICAgICAgICAgaWYgKF9lLnRlc3QoaWUpKQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGllLmNoYXJBdCgwKSA9PSAiIyIgJiYgaWUubGVuZ3RoID09IDcKICAgICAgICAgICAgICAgICAgICAgICAgPyBpZQogICAgICAgICAgICAgICAgICAgICAgICA6IGFlKGllKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBPZSA9ICJoZXggb3IgcmdiIHN0cmluZyI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBDOgogICAgICAgICAgICAgICAgICBpZiAoQWUpIHJldHVybiBpZSArIHRoaXMudW5pdDsKICAgICAgICAgICAgICAgICAgaWYgKGxlICYmIF9lLnRlc3QoaWUpKSByZXR1cm4gaWU7CiAgICAgICAgICAgICAgICAgIE9lID0gIm51bWJlcihweCkgb3Igc3RyaW5nKHVuaXQpIjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIFI6CiAgICAgICAgICAgICAgICAgIGlmIChBZSkgcmV0dXJuIGllICsgdGhpcy51bml0OwogICAgICAgICAgICAgICAgICBpZiAobGUgJiYgX2UudGVzdChpZSkpIHJldHVybiBpZTsKICAgICAgICAgICAgICAgICAgT2UgPSAibnVtYmVyKHB4KSBvciBzdHJpbmcodW5pdCBvciAlKSI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBMOgogICAgICAgICAgICAgICAgICBpZiAoQWUpIHJldHVybiBpZSArIHRoaXMuYW5nbGU7CiAgICAgICAgICAgICAgICAgIGlmIChsZSAmJiBfZS50ZXN0KGllKSkgcmV0dXJuIGllOwogICAgICAgICAgICAgICAgICBPZSA9ICJudW1iZXIoZGVnKSBvciBzdHJpbmcoYW5nbGUpIjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIE46CiAgICAgICAgICAgICAgICAgIGlmIChBZSB8fCAobGUgJiYgUi50ZXN0KGllKSkpIHJldHVybiBpZTsKICAgICAgICAgICAgICAgICAgT2UgPSAibnVtYmVyKHVuaXRsZXNzKSBvciBzdHJpbmcodW5pdCBvciAlKSI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBvKE9lLCBpZSksIGllOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHoucmVkcmF3ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHRoaXMuZWwub2Zmc2V0SGVpZ2h0OwogICAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICBEID0gcChCLCBmdW5jdGlvbiAoeiwgaikgewogICAgICAgICAgei5pbml0ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBqLmluaXQuYXBwbHkodGhpcywgYXJndW1lbnRzKSwKICAgICAgICAgICAgICB0aGlzLm9yaWdpbmFsIHx8ICh0aGlzLm9yaWdpbmFsID0gdGhpcy5jb252ZXJ0KHRoaXMuZ2V0KCksIF8pKTsKICAgICAgICAgIH07CiAgICAgICAgfSksCiAgICAgICAgUSA9IHAoQiwgZnVuY3Rpb24gKHosIGopIHsKICAgICAgICAgICh6LmluaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGouaW5pdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCAodGhpcy5hbmltYXRlID0gdGhpcy5mYWxsYmFjayk7CiAgICAgICAgICB9KSwKICAgICAgICAgICAgKHouZ2V0ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLiRlbFt0aGlzLm5hbWVdKCk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoei51cGRhdGUgPSBmdW5jdGlvbiAoSikgewogICAgICAgICAgICAgIHRoaXMuJGVsW3RoaXMubmFtZV0oSik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pLAogICAgICAgIHJlID0gcChCLCBmdW5jdGlvbiAoeiwgaikgewogICAgICAgICAgZnVuY3Rpb24gSihhZSwgdWUpIHsKICAgICAgICAgICAgdmFyIGllLCBfZSwgT2UsIEFlLCBsZTsKICAgICAgICAgICAgZm9yIChpZSBpbiBhZSkKICAgICAgICAgICAgICAoQWUgPSBaW2llXSksCiAgICAgICAgICAgICAgICAoT2UgPSBBZVswXSksCiAgICAgICAgICAgICAgICAoX2UgPSBBZVsxXSB8fCBpZSksCiAgICAgICAgICAgICAgICAobGUgPSB0aGlzLmNvbnZlcnQoYWVbaWVdLCBPZSkpLAogICAgICAgICAgICAgICAgdWUuY2FsbCh0aGlzLCBfZSwgbGUsIE9lKTsKICAgICAgICAgIH0KICAgICAgICAgICh6LmluaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGouaW5pdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpLAogICAgICAgICAgICAgIHRoaXMuY3VycmVudCB8fAogICAgICAgICAgICAgICAgKCh0aGlzLmN1cnJlbnQgPSB7fSksCiAgICAgICAgICAgICAgICBaLnBlcnNwZWN0aXZlICYmCiAgICAgICAgICAgICAgICAgIGdlLnBlcnNwZWN0aXZlICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5jdXJyZW50LnBlcnNwZWN0aXZlID0gZ2UucGVyc3BlY3RpdmUpLAogICAgICAgICAgICAgICAgICBJKHRoaXMuZWwsIHRoaXMubmFtZSwgdGhpcy5zdHlsZSh0aGlzLmN1cnJlbnQpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZWRyYXcoKSkpOwogICAgICAgICAgfSksCiAgICAgICAgICAgICh6LnNldCA9IGZ1bmN0aW9uIChhZSkgewogICAgICAgICAgICAgIEouY2FsbCh0aGlzLCBhZSwgZnVuY3Rpb24gKHVlLCBpZSkgewogICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50W3VlXSA9IGllOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgSSh0aGlzLmVsLCB0aGlzLm5hbWUsIHRoaXMuc3R5bGUodGhpcy5jdXJyZW50KSksCiAgICAgICAgICAgICAgICB0aGlzLnJlZHJhdygpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHoudHJhbnNpdGlvbiA9IGZ1bmN0aW9uIChhZSkgewogICAgICAgICAgICAgIHZhciB1ZSA9IHRoaXMudmFsdWVzKGFlKTsKICAgICAgICAgICAgICB0aGlzLnR3ZWVuID0gbmV3IE1lKHsKICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHRoaXMuY3VycmVudCwKICAgICAgICAgICAgICAgIHZhbHVlczogdWUsCiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbiwKICAgICAgICAgICAgICAgIGRlbGF5OiB0aGlzLmRlbGF5LAogICAgICAgICAgICAgICAgZWFzZTogdGhpcy5lYXNlLAogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHZhciBpZSwKICAgICAgICAgICAgICAgIF9lID0ge307CiAgICAgICAgICAgICAgZm9yIChpZSBpbiB0aGlzLmN1cnJlbnQpCiAgICAgICAgICAgICAgICBfZVtpZV0gPSBpZSBpbiB1ZSA/IHVlW2llXSA6IHRoaXMuY3VycmVudFtpZV07CiAgICAgICAgICAgICAgKHRoaXMuYWN0aXZlID0gITApLCAodGhpcy5uZXh0U3R5bGUgPSB0aGlzLnN0eWxlKF9lKSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoei5mYWxsYmFjayA9IGZ1bmN0aW9uIChhZSkgewogICAgICAgICAgICAgIHZhciB1ZSA9IHRoaXMudmFsdWVzKGFlKTsKICAgICAgICAgICAgICB0aGlzLnR3ZWVuID0gbmV3IE1lKHsKICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHRoaXMuY3VycmVudCwKICAgICAgICAgICAgICAgIHZhbHVlczogdWUsCiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbiwKICAgICAgICAgICAgICAgIGRlbGF5OiB0aGlzLmRlbGF5LAogICAgICAgICAgICAgICAgZWFzZTogdGhpcy5lYXNlLAogICAgICAgICAgICAgICAgdXBkYXRlOiB0aGlzLnVwZGF0ZSwKICAgICAgICAgICAgICAgIGNvbnRleHQ6IHRoaXMsCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoei51cGRhdGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgSSh0aGlzLmVsLCB0aGlzLm5hbWUsIHRoaXMuc3R5bGUodGhpcy5jdXJyZW50KSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoei5zdHlsZSA9IGZ1bmN0aW9uIChhZSkgewogICAgICAgICAgICAgIHZhciB1ZSwKICAgICAgICAgICAgICAgIGllID0gIiI7CiAgICAgICAgICAgICAgZm9yICh1ZSBpbiBhZSkgaWUgKz0gdWUgKyAiKCIgKyBhZVt1ZV0gKyAiKSAiOwogICAgICAgICAgICAgIHJldHVybiBpZTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICh6LnZhbHVlcyA9IGZ1bmN0aW9uIChhZSkgewogICAgICAgICAgICAgIHZhciB1ZSwKICAgICAgICAgICAgICAgIGllID0ge307CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIEouY2FsbCh0aGlzLCBhZSwgZnVuY3Rpb24gKF9lLCBPZSwgQWUpIHsKICAgICAgICAgICAgICAgICAgKGllW19lXSA9IE9lKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRbX2VdID09PSB2b2lkIDAgJiYKICAgICAgICAgICAgICAgICAgICAgICgodWUgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgIH5fZS5pbmRleE9mKCJzY2FsZSIpICYmICh1ZSA9IDEpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudFtfZV0gPSB0aGlzLmNvbnZlcnQodWUsIEFlKSkpOwogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICBpZQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pLAogICAgICAgIG5lID0gcChmdW5jdGlvbiAoeikgewogICAgICAgICAgZnVuY3Rpb24gaihsZSkgewogICAgICAgICAgICBPZS5wdXNoKGxlKSA9PT0gMSAmJiBZKEopOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gSigpIHsKICAgICAgICAgICAgdmFyIGxlLAogICAgICAgICAgICAgIEllLAogICAgICAgICAgICAgIFBlLAogICAgICAgICAgICAgIHR0ID0gT2UubGVuZ3RoOwogICAgICAgICAgICBpZiAodHQpCiAgICAgICAgICAgICAgZm9yIChZKEopLCBJZSA9IGZlKCksIGxlID0gdHQ7IGxlLS07ICkKICAgICAgICAgICAgICAgIChQZSA9IE9lW2xlXSksIFBlICYmIFBlLnJlbmRlcihJZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZShsZSkgewogICAgICAgICAgICB2YXIgSWUsCiAgICAgICAgICAgICAgUGUgPSBlLmluQXJyYXkobGUsIE9lKTsKICAgICAgICAgICAgUGUgPj0gMCAmJgogICAgICAgICAgICAgICgoSWUgPSBPZS5zbGljZShQZSArIDEpKSwKICAgICAgICAgICAgICAoT2UubGVuZ3RoID0gUGUpLAogICAgICAgICAgICAgIEllLmxlbmd0aCAmJiAoT2UgPSBPZS5jb25jYXQoSWUpKSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiB1ZShsZSkgewogICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChsZSAqIEFlKSAvIEFlOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gaWUobGUsIEllLCBQZSkgewogICAgICAgICAgICByZXR1cm4gaSgKICAgICAgICAgICAgICBsZVswXSArIFBlICogKEllWzBdIC0gbGVbMF0pLAogICAgICAgICAgICAgIGxlWzFdICsgUGUgKiAoSWVbMV0gLSBsZVsxXSksCiAgICAgICAgICAgICAgbGVbMl0gKyBQZSAqIChJZVsyXSAtIGxlWzJdKQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgdmFyIF9lID0geyBlYXNlOiBkLmVhc2VbMV0sIGZyb206IDAsIHRvOiAxIH07CiAgICAgICAgICAoei5pbml0ID0gZnVuY3Rpb24gKGxlKSB7CiAgICAgICAgICAgICh0aGlzLmR1cmF0aW9uID0gbGUuZHVyYXRpb24gfHwgMCksICh0aGlzLmRlbGF5ID0gbGUuZGVsYXkgfHwgMCk7CiAgICAgICAgICAgIHZhciBJZSA9IGxlLmVhc2UgfHwgX2UuZWFzZTsKICAgICAgICAgICAgZFtJZV0gJiYgKEllID0gZFtJZV1bMV0pLAogICAgICAgICAgICAgIHR5cGVvZiBJZSAhPSAiZnVuY3Rpb24iICYmIChJZSA9IF9lLmVhc2UpLAogICAgICAgICAgICAgICh0aGlzLmVhc2UgPSBJZSksCiAgICAgICAgICAgICAgKHRoaXMudXBkYXRlID0gbGUudXBkYXRlIHx8IGEpLAogICAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlID0gbGUuY29tcGxldGUgfHwgYSksCiAgICAgICAgICAgICAgKHRoaXMuY29udGV4dCA9IGxlLmNvbnRleHQgfHwgdGhpcyksCiAgICAgICAgICAgICAgKHRoaXMubmFtZSA9IGxlLm5hbWUpOwogICAgICAgICAgICB2YXIgUGUgPSBsZS5mcm9tLAogICAgICAgICAgICAgIHR0ID0gbGUudG87CiAgICAgICAgICAgIFBlID09PSB2b2lkIDAgJiYgKFBlID0gX2UuZnJvbSksCiAgICAgICAgICAgICAgdHQgPT09IHZvaWQgMCAmJiAodHQgPSBfZS50byksCiAgICAgICAgICAgICAgKHRoaXMudW5pdCA9IGxlLnVuaXQgfHwgIiIpLAogICAgICAgICAgICAgIHR5cGVvZiBQZSA9PSAibnVtYmVyIiAmJiB0eXBlb2YgdHQgPT0gIm51bWJlciIKICAgICAgICAgICAgICAgID8gKCh0aGlzLmJlZ2luID0gUGUpLCAodGhpcy5jaGFuZ2UgPSB0dCAtIFBlKSkKICAgICAgICAgICAgICAgIDogdGhpcy5mb3JtYXQodHQsIFBlKSwKICAgICAgICAgICAgICAodGhpcy52YWx1ZSA9IHRoaXMuYmVnaW4gKyB0aGlzLnVuaXQpLAogICAgICAgICAgICAgICh0aGlzLnN0YXJ0ID0gZmUoKSksCiAgICAgICAgICAgICAgbGUuYXV0b3BsYXkgIT09ICExICYmIHRoaXMucGxheSgpOwogICAgICAgICAgfSksCiAgICAgICAgICAgICh6LnBsYXkgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgfHwKICAgICAgICAgICAgICAgICh0aGlzLnN0YXJ0IHx8ICh0aGlzLnN0YXJ0ID0gZmUoKSksCiAgICAgICAgICAgICAgICAodGhpcy5hY3RpdmUgPSAhMCksCiAgICAgICAgICAgICAgICBqKHRoaXMpKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICh6LnN0b3AgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgJiYgKCh0aGlzLmFjdGl2ZSA9ICExKSwgYWUodGhpcykpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHoucmVuZGVyID0gZnVuY3Rpb24gKGxlKSB7CiAgICAgICAgICAgICAgdmFyIEllLAogICAgICAgICAgICAgICAgUGUgPSBsZSAtIHRoaXMuc3RhcnQ7CiAgICAgICAgICAgICAgaWYgKHRoaXMuZGVsYXkpIHsKICAgICAgICAgICAgICAgIGlmIChQZSA8PSB0aGlzLmRlbGF5KSByZXR1cm47CiAgICAgICAgICAgICAgICBQZSAtPSB0aGlzLmRlbGF5OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoUGUgPCB0aGlzLmR1cmF0aW9uKSB7CiAgICAgICAgICAgICAgICB2YXIgdHQgPSB0aGlzLmVhc2UoUGUsIDAsIDEsIHRoaXMuZHVyYXRpb24pOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgKEllID0gdGhpcy5zdGFydFJHQgogICAgICAgICAgICAgICAgICAgID8gaWUodGhpcy5zdGFydFJHQiwgdGhpcy5lbmRSR0IsIHR0KQogICAgICAgICAgICAgICAgICAgIDogdWUodGhpcy5iZWdpbiArIHR0ICogdGhpcy5jaGFuZ2UpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudmFsdWUgPSBJZSArIHRoaXMudW5pdCksCiAgICAgICAgICAgICAgICAgIHZvaWQgdGhpcy51cGRhdGUuY2FsbCh0aGlzLmNvbnRleHQsIHRoaXMudmFsdWUpCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAoSWUgPSB0aGlzLmVuZEhleCB8fCB0aGlzLmJlZ2luICsgdGhpcy5jaGFuZ2UpLAogICAgICAgICAgICAgICAgKHRoaXMudmFsdWUgPSBJZSArIHRoaXMudW5pdCksCiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZS5jYWxsKHRoaXMuY29udGV4dCwgdGhpcy52YWx1ZSksCiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlLmNhbGwodGhpcy5jb250ZXh0KSwKICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHouZm9ybWF0ID0gZnVuY3Rpb24gKGxlLCBJZSkgewogICAgICAgICAgICAgIGlmICgoKEllICs9ICIiKSwgKGxlICs9ICIiKSwgbGUuY2hhckF0KDApID09ICIjIikpCiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAodGhpcy5zdGFydFJHQiA9IG4oSWUpKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZW5kUkdCID0gbihsZSkpLAogICAgICAgICAgICAgICAgICAodGhpcy5lbmRIZXggPSBsZSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmJlZ2luID0gMCksCiAgICAgICAgICAgICAgICAgIHZvaWQgKHRoaXMuY2hhbmdlID0gMSkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgaWYgKCF0aGlzLnVuaXQpIHsKICAgICAgICAgICAgICAgIHZhciBQZSA9IEllLnJlcGxhY2UoZywgIiIpLAogICAgICAgICAgICAgICAgICB0dCA9IGxlLnJlcGxhY2UoZywgIiIpOwogICAgICAgICAgICAgICAgUGUgIT09IHR0ICYmIHMoInR3ZWVuIiwgSWUsIGxlKSwgKHRoaXMudW5pdCA9IFBlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKEllID0gcGFyc2VGbG9hdChJZSkpLAogICAgICAgICAgICAgICAgKGxlID0gcGFyc2VGbG9hdChsZSkpLAogICAgICAgICAgICAgICAgKHRoaXMuYmVnaW4gPSB0aGlzLnZhbHVlID0gSWUpLAogICAgICAgICAgICAgICAgKHRoaXMuY2hhbmdlID0gbGUgLSBJZSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoei5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHRoaXMuc3RvcCgpLAogICAgICAgICAgICAgICAgKHRoaXMuY29udGV4dCA9IG51bGwpLAogICAgICAgICAgICAgICAgKHRoaXMuZWFzZSA9IHRoaXMudXBkYXRlID0gdGhpcy5jb21wbGV0ZSA9IGEpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIHZhciBPZSA9IFtdLAogICAgICAgICAgICBBZSA9IDFlMzsKICAgICAgICB9KSwKICAgICAgICBoZSA9IHAobmUsIGZ1bmN0aW9uICh6KSB7CiAgICAgICAgICAoei5pbml0ID0gZnVuY3Rpb24gKGopIHsKICAgICAgICAgICAgKHRoaXMuZHVyYXRpb24gPSBqLmR1cmF0aW9uIHx8IDApLAogICAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlID0gai5jb21wbGV0ZSB8fCBhKSwKICAgICAgICAgICAgICAodGhpcy5jb250ZXh0ID0gai5jb250ZXh0KSwKICAgICAgICAgICAgICB0aGlzLnBsYXkoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgICAoei5yZW5kZXIgPSBmdW5jdGlvbiAoaikgewogICAgICAgICAgICAgIHZhciBKID0gaiAtIHRoaXMuc3RhcnQ7CiAgICAgICAgICAgICAgSiA8IHRoaXMuZHVyYXRpb24gfHwKICAgICAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlLmNhbGwodGhpcy5jb250ZXh0KSwgdGhpcy5kZXN0cm95KCkpOwogICAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICBNZSA9IHAobmUsIGZ1bmN0aW9uICh6LCBqKSB7CiAgICAgICAgICAoei5pbml0ID0gZnVuY3Rpb24gKEopIHsKICAgICAgICAgICAgKHRoaXMuY29udGV4dCA9IEouY29udGV4dCksCiAgICAgICAgICAgICAgKHRoaXMudXBkYXRlID0gSi51cGRhdGUpLAogICAgICAgICAgICAgICh0aGlzLnR3ZWVucyA9IFtdKSwKICAgICAgICAgICAgICAodGhpcy5jdXJyZW50ID0gSi5jdXJyZW50KTsKICAgICAgICAgICAgdmFyIGFlLCB1ZTsKICAgICAgICAgICAgZm9yIChhZSBpbiBKLnZhbHVlcykKICAgICAgICAgICAgICAodWUgPSBKLnZhbHVlc1thZV0pLAogICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50W2FlXSAhPT0gdWUgJiYKICAgICAgICAgICAgICAgICAgdGhpcy50d2VlbnMucHVzaCgKICAgICAgICAgICAgICAgICAgICBuZXcgbmUoewogICAgICAgICAgICAgICAgICAgICAgbmFtZTogYWUsCiAgICAgICAgICAgICAgICAgICAgICBmcm9tOiB0aGlzLmN1cnJlbnRbYWVdLAogICAgICAgICAgICAgICAgICAgICAgdG86IHVlLAogICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IEouZHVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICBkZWxheTogSi5kZWxheSwKICAgICAgICAgICAgICAgICAgICAgIGVhc2U6IEouZWFzZSwKICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiAhMSwKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB0aGlzLnBsYXkoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgICAoei5yZW5kZXIgPSBmdW5jdGlvbiAoSikgewogICAgICAgICAgICAgIHZhciBhZSwKICAgICAgICAgICAgICAgIHVlLAogICAgICAgICAgICAgICAgaWUgPSB0aGlzLnR3ZWVucy5sZW5ndGgsCiAgICAgICAgICAgICAgICBfZSA9ICExOwogICAgICAgICAgICAgIGZvciAoYWUgPSBpZTsgYWUtLTsgKQogICAgICAgICAgICAgICAgKHVlID0gdGhpcy50d2VlbnNbYWVdKSwKICAgICAgICAgICAgICAgICAgdWUuY29udGV4dCAmJgogICAgICAgICAgICAgICAgICAgICh1ZS5yZW5kZXIoSiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY3VycmVudFt1ZS5uYW1lXSA9IHVlLnZhbHVlKSwKICAgICAgICAgICAgICAgICAgICAoX2UgPSAhMCkpOwogICAgICAgICAgICAgIHJldHVybiBfZQogICAgICAgICAgICAgICAgPyB2b2lkICh0aGlzLnVwZGF0ZSAmJiB0aGlzLnVwZGF0ZS5jYWxsKHRoaXMuY29udGV4dCkpCiAgICAgICAgICAgICAgICA6IHRoaXMuZGVzdHJveSgpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHouZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBpZiAoKGouZGVzdHJveS5jYWxsKHRoaXMpLCB0aGlzLnR3ZWVucykpIHsKICAgICAgICAgICAgICAgIHZhciBKLAogICAgICAgICAgICAgICAgICBhZSA9IHRoaXMudHdlZW5zLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoSiA9IGFlOyBKLS07ICkgdGhpcy50d2VlbnNbSl0uZGVzdHJveSgpOwogICAgICAgICAgICAgICAgKHRoaXMudHdlZW5zID0gbnVsbCksICh0aGlzLmN1cnJlbnQgPSBudWxsKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pLAogICAgICAgIGdlID0gKHQuY29uZmlnID0gewogICAgICAgICAgZGVidWc6ICExLAogICAgICAgICAgZGVmYXVsdFVuaXQ6ICJweCIsCiAgICAgICAgICBkZWZhdWx0QW5nbGU6ICJkZWciLAogICAgICAgICAga2VlcEluaGVyaXRlZDogITEsCiAgICAgICAgICBoaWRlQmFja2ZhY2U6ICExLAogICAgICAgICAgcGVyc3BlY3RpdmU6ICIiLAogICAgICAgICAgZmFsbGJhY2s6ICFvZS50cmFuc2l0aW9uLAogICAgICAgICAgYWdlbnRUZXN0czogW10sCiAgICAgICAgfSk7CiAgICAgICh0LmZhbGxiYWNrID0gZnVuY3Rpb24gKHopIHsKICAgICAgICBpZiAoIW9lLnRyYW5zaXRpb24pIHJldHVybiAoZ2UuZmFsbGJhY2sgPSAhMCk7CiAgICAgICAgZ2UuYWdlbnRUZXN0cy5wdXNoKCIoIiArIHogKyAiKSIpOwogICAgICAgIHZhciBqID0gbmV3IFJlZ0V4cChnZS5hZ2VudFRlc3RzLmpvaW4oInwiKSwgImkiKTsKICAgICAgICBnZS5mYWxsYmFjayA9IGoudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTsKICAgICAgfSksCiAgICAgICAgdC5mYWxsYmFjaygiNi4wLlsyLTVdIFNhZmFyaSIpLAogICAgICAgICh0LnR3ZWVuID0gZnVuY3Rpb24gKHopIHsKICAgICAgICAgIHJldHVybiBuZXcgbmUoeik7CiAgICAgICAgfSksCiAgICAgICAgKHQuZGVsYXkgPSBmdW5jdGlvbiAoeiwgaiwgSikgewogICAgICAgICAgcmV0dXJuIG5ldyBoZSh7IGNvbXBsZXRlOiBqLCBkdXJhdGlvbjogeiwgY29udGV4dDogSiB9KTsKICAgICAgICB9KSwKICAgICAgICAoZS5mbi50cmFtID0gZnVuY3Rpb24gKHopIHsKICAgICAgICAgIHJldHVybiB0LmNhbGwobnVsbCwgdGhpcywgeik7CiAgICAgICAgfSk7CiAgICAgIHZhciBJID0gZS5zdHlsZSwKICAgICAgICBPID0gZS5jc3MsCiAgICAgICAgdyA9IHsgdHJhbnNmb3JtOiBvZS50cmFuc2Zvcm0gJiYgb2UudHJhbnNmb3JtLmNzcyB9LAogICAgICAgIHggPSB7CiAgICAgICAgICBjb2xvcjogW0QsIF9dLAogICAgICAgICAgYmFja2dyb3VuZDogW0QsIF8sICJiYWNrZ3JvdW5kLWNvbG9yIl0sCiAgICAgICAgICAib3V0bGluZS1jb2xvciI6IFtELCBfXSwKICAgICAgICAgICJib3JkZXItY29sb3IiOiBbRCwgX10sCiAgICAgICAgICAiYm9yZGVyLXRvcC1jb2xvciI6IFtELCBfXSwKICAgICAgICAgICJib3JkZXItcmlnaHQtY29sb3IiOiBbRCwgX10sCiAgICAgICAgICAiYm9yZGVyLWJvdHRvbS1jb2xvciI6IFtELCBfXSwKICAgICAgICAgICJib3JkZXItbGVmdC1jb2xvciI6IFtELCBfXSwKICAgICAgICAgICJib3JkZXItd2lkdGgiOiBbQiwgQ10sCiAgICAgICAgICAiYm9yZGVyLXRvcC13aWR0aCI6IFtCLCBDXSwKICAgICAgICAgICJib3JkZXItcmlnaHQtd2lkdGgiOiBbQiwgQ10sCiAgICAgICAgICAiYm9yZGVyLWJvdHRvbS13aWR0aCI6IFtCLCBDXSwKICAgICAgICAgICJib3JkZXItbGVmdC13aWR0aCI6IFtCLCBDXSwKICAgICAgICAgICJib3JkZXItc3BhY2luZyI6IFtCLCBDXSwKICAgICAgICAgICJsZXR0ZXItc3BhY2luZyI6IFtCLCBDXSwKICAgICAgICAgIG1hcmdpbjogW0IsIENdLAogICAgICAgICAgIm1hcmdpbi10b3AiOiBbQiwgQ10sCiAgICAgICAgICAibWFyZ2luLXJpZ2h0IjogW0IsIENdLAogICAgICAgICAgIm1hcmdpbi1ib3R0b20iOiBbQiwgQ10sCiAgICAgICAgICAibWFyZ2luLWxlZnQiOiBbQiwgQ10sCiAgICAgICAgICBwYWRkaW5nOiBbQiwgQ10sCiAgICAgICAgICAicGFkZGluZy10b3AiOiBbQiwgQ10sCiAgICAgICAgICAicGFkZGluZy1yaWdodCI6IFtCLCBDXSwKICAgICAgICAgICJwYWRkaW5nLWJvdHRvbSI6IFtCLCBDXSwKICAgICAgICAgICJwYWRkaW5nLWxlZnQiOiBbQiwgQ10sCiAgICAgICAgICAib3V0bGluZS13aWR0aCI6IFtCLCBDXSwKICAgICAgICAgIG9wYWNpdHk6IFtCLCBBXSwKICAgICAgICAgIHRvcDogW0IsIFJdLAogICAgICAgICAgcmlnaHQ6IFtCLCBSXSwKICAgICAgICAgIGJvdHRvbTogW0IsIFJdLAogICAgICAgICAgbGVmdDogW0IsIFJdLAogICAgICAgICAgImZvbnQtc2l6ZSI6IFtCLCBSXSwKICAgICAgICAgICJ0ZXh0LWluZGVudCI6IFtCLCBSXSwKICAgICAgICAgICJ3b3JkLXNwYWNpbmciOiBbQiwgUl0sCiAgICAgICAgICB3aWR0aDogW0IsIFJdLAogICAgICAgICAgIm1pbi13aWR0aCI6IFtCLCBSXSwKICAgICAgICAgICJtYXgtd2lkdGgiOiBbQiwgUl0sCiAgICAgICAgICBoZWlnaHQ6IFtCLCBSXSwKICAgICAgICAgICJtaW4taGVpZ2h0IjogW0IsIFJdLAogICAgICAgICAgIm1heC1oZWlnaHQiOiBbQiwgUl0sCiAgICAgICAgICAibGluZS1oZWlnaHQiOiBbQiwgTl0sCiAgICAgICAgICAic2Nyb2xsLXRvcCI6IFtRLCBBLCAic2Nyb2xsVG9wIl0sCiAgICAgICAgICAic2Nyb2xsLWxlZnQiOiBbUSwgQSwgInNjcm9sbExlZnQiXSwKICAgICAgICB9LAogICAgICAgIFogPSB7fTsKICAgICAgb2UudHJhbnNmb3JtICYmCiAgICAgICAgKCh4LnRyYW5zZm9ybSA9IFtyZV0pLAogICAgICAgIChaID0gewogICAgICAgICAgeDogW1IsICJ0cmFuc2xhdGVYIl0sCiAgICAgICAgICB5OiBbUiwgInRyYW5zbGF0ZVkiXSwKICAgICAgICAgIHJvdGF0ZTogW0xdLAogICAgICAgICAgcm90YXRlWDogW0xdLAogICAgICAgICAgcm90YXRlWTogW0xdLAogICAgICAgICAgc2NhbGU6IFtBXSwKICAgICAgICAgIHNjYWxlWDogW0FdLAogICAgICAgICAgc2NhbGVZOiBbQV0sCiAgICAgICAgICBza2V3OiBbTF0sCiAgICAgICAgICBza2V3WDogW0xdLAogICAgICAgICAgc2tld1k6IFtMXSwKICAgICAgICB9KSksCiAgICAgICAgb2UudHJhbnNmb3JtICYmCiAgICAgICAgICBvZS5iYWNrZmFjZSAmJgogICAgICAgICAgKChaLnogPSBbUiwgInRyYW5zbGF0ZVoiXSksCiAgICAgICAgICAoWi5yb3RhdGVaID0gW0xdKSwKICAgICAgICAgIChaLnNjYWxlWiA9IFtBXSksCiAgICAgICAgICAoWi5wZXJzcGVjdGl2ZSA9IFtDXSkpOwogICAgICB2YXIgcGUgPSAvbXMvLAogICAgICAgIG1lID0gL3N8XC4vOwogICAgICByZXR1cm4gKGUudHJhbSA9IHQpOwogICAgfSkod2luZG93LmpRdWVyeSk7CiAgfSk7CiAgdmFyIE5TID0gRSgoSzdlLCBMUykgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFZ0ZSA9IHdpbmRvdy4kLAogICAgICBIdGUgPSBpeSgpICYmIFZ0ZS50cmFtOwogICAgTFMuZXhwb3J0cyA9IChmdW5jdGlvbiAoKSB7CiAgICAgIHZhciBlID0ge307CiAgICAgIGUuVkVSU0lPTiA9ICIxLjYuMC1XZWJmbG93IjsKICAgICAgdmFyIHQgPSB7fSwKICAgICAgICByID0gQXJyYXkucHJvdG90eXBlLAogICAgICAgIG4gPSBPYmplY3QucHJvdG90eXBlLAogICAgICAgIGkgPSBGdW5jdGlvbi5wcm90b3R5cGUsCiAgICAgICAgYSA9IHIucHVzaCwKICAgICAgICBvID0gci5zbGljZSwKICAgICAgICBzID0gci5jb25jYXQsCiAgICAgICAgYyA9IG4udG9TdHJpbmcsCiAgICAgICAgdSA9IG4uaGFzT3duUHJvcGVydHksCiAgICAgICAgbCA9IHIuZm9yRWFjaCwKICAgICAgICBwID0gci5tYXAsCiAgICAgICAgZCA9IHIucmVkdWNlLAogICAgICAgIGggPSByLnJlZHVjZVJpZ2h0LAogICAgICAgIG0gPSByLmZpbHRlciwKICAgICAgICB2ID0gci5ldmVyeSwKICAgICAgICB5ID0gci5zb21lLAogICAgICAgIGcgPSByLmluZGV4T2YsCiAgICAgICAgTSA9IHIubGFzdEluZGV4T2YsCiAgICAgICAgQSA9IEFycmF5LmlzQXJyYXksCiAgICAgICAgXyA9IE9iamVjdC5rZXlzLAogICAgICAgIEMgPSBpLmJpbmQsCiAgICAgICAgUiA9CiAgICAgICAgICAoZS5lYWNoID0KICAgICAgICAgIGUuZm9yRWFjaCA9CiAgICAgICAgICAgIGZ1bmN0aW9uIChYLCBVLCB0ZSkgewogICAgICAgICAgICAgIGlmIChYID09IG51bGwpIHJldHVybiBYOwogICAgICAgICAgICAgIGlmIChsICYmIFguZm9yRWFjaCA9PT0gbCkgWC5mb3JFYWNoKFUsIHRlKTsKICAgICAgICAgICAgICBlbHNlIGlmIChYLmxlbmd0aCA9PT0gK1gubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBvZSA9IDAsIHllID0gWC5sZW5ndGg7IG9lIDwgeWU7IG9lKyspCiAgICAgICAgICAgICAgICAgIGlmIChVLmNhbGwodGUsIFhbb2VdLCBvZSwgWCkgPT09IHQpIHJldHVybjsKICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIGZvciAodmFyIEYgPSBlLmtleXMoWCksIG9lID0gMCwgeWUgPSBGLmxlbmd0aDsgb2UgPCB5ZTsgb2UrKykKICAgICAgICAgICAgICAgICAgaWYgKFUuY2FsbCh0ZSwgWFtGW29lXV0sIEZbb2VdLCBYKSA9PT0gdCkgcmV0dXJuOwogICAgICAgICAgICAgIHJldHVybiBYOwogICAgICAgICAgICB9KTsKICAgICAgKGUubWFwID0gZS5jb2xsZWN0ID0KICAgICAgICBmdW5jdGlvbiAoWCwgVSwgdGUpIHsKICAgICAgICAgIHZhciBvZSA9IFtdOwogICAgICAgICAgcmV0dXJuIFggPT0gbnVsbAogICAgICAgICAgICA/IG9lCiAgICAgICAgICAgIDogcCAmJiBYLm1hcCA9PT0gcAogICAgICAgICAgICA/IFgubWFwKFUsIHRlKQogICAgICAgICAgICA6IChSKFgsIGZ1bmN0aW9uICh5ZSwgRiwgWSkgewogICAgICAgICAgICAgICAgb2UucHVzaChVLmNhbGwodGUsIHllLCBGLCBZKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgb2UpOwogICAgICAgIH0pLAogICAgICAgIChlLmZpbmQgPSBlLmRldGVjdCA9CiAgICAgICAgICBmdW5jdGlvbiAoWCwgVSwgdGUpIHsKICAgICAgICAgICAgdmFyIG9lOwogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIEwoWCwgZnVuY3Rpb24gKHllLCBGLCBZKSB7CiAgICAgICAgICAgICAgICBpZiAoVS5jYWxsKHRlLCB5ZSwgRiwgWSkpIHJldHVybiAob2UgPSB5ZSksICEwOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG9lCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAoZS5maWx0ZXIgPSBlLnNlbGVjdCA9CiAgICAgICAgICBmdW5jdGlvbiAoWCwgVSwgdGUpIHsKICAgICAgICAgICAgdmFyIG9lID0gW107CiAgICAgICAgICAgIHJldHVybiBYID09IG51bGwKICAgICAgICAgICAgICA/IG9lCiAgICAgICAgICAgICAgOiBtICYmIFguZmlsdGVyID09PSBtCiAgICAgICAgICAgICAgPyBYLmZpbHRlcihVLCB0ZSkKICAgICAgICAgICAgICA6IChSKFgsIGZ1bmN0aW9uICh5ZSwgRiwgWSkgewogICAgICAgICAgICAgICAgICBVLmNhbGwodGUsIHllLCBGLCBZKSAmJiBvZS5wdXNoKHllKTsKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgb2UpOwogICAgICAgICAgfSk7CiAgICAgIHZhciBMID0KICAgICAgICAoZS5zb21lID0KICAgICAgICBlLmFueSA9CiAgICAgICAgICBmdW5jdGlvbiAoWCwgVSwgdGUpIHsKICAgICAgICAgICAgVSB8fCAoVSA9IGUuaWRlbnRpdHkpOwogICAgICAgICAgICB2YXIgb2UgPSAhMTsKICAgICAgICAgICAgcmV0dXJuIFggPT0gbnVsbAogICAgICAgICAgICAgID8gb2UKICAgICAgICAgICAgICA6IHkgJiYgWC5zb21lID09PSB5CiAgICAgICAgICAgICAgPyBYLnNvbWUoVSwgdGUpCiAgICAgICAgICAgICAgOiAoUihYLCBmdW5jdGlvbiAoeWUsIEYsIFkpIHsKICAgICAgICAgICAgICAgICAgaWYgKG9lIHx8IChvZSA9IFUuY2FsbCh0ZSwgeWUsIEYsIFkpKSkgcmV0dXJuIHQ7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICEhb2UpOwogICAgICAgICAgfSk7CiAgICAgIChlLmNvbnRhaW5zID0gZS5pbmNsdWRlID0KICAgICAgICBmdW5jdGlvbiAoWCwgVSkgewogICAgICAgICAgcmV0dXJuIFggPT0gbnVsbAogICAgICAgICAgICA/ICExCiAgICAgICAgICAgIDogZyAmJiBYLmluZGV4T2YgPT09IGcKICAgICAgICAgICAgPyBYLmluZGV4T2YoVSkgIT0gLTEKICAgICAgICAgICAgOiBMKFgsIGZ1bmN0aW9uICh0ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRlID09PSBVOwogICAgICAgICAgICAgIH0pOwogICAgICAgIH0pLAogICAgICAgIChlLmRlbGF5ID0gZnVuY3Rpb24gKFgsIFUpIHsKICAgICAgICAgIHZhciB0ZSA9IG8uY2FsbChhcmd1bWVudHMsIDIpOwogICAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gWC5hcHBseShudWxsLCB0ZSk7CiAgICAgICAgICB9LCBVKTsKICAgICAgICB9KSwKICAgICAgICAoZS5kZWZlciA9IGZ1bmN0aW9uIChYKSB7CiAgICAgICAgICByZXR1cm4gZS5kZWxheS5hcHBseShlLCBbWCwgMV0uY29uY2F0KG8uY2FsbChhcmd1bWVudHMsIDEpKSk7CiAgICAgICAgfSksCiAgICAgICAgKGUudGhyb3R0bGUgPSBmdW5jdGlvbiAoWCkgewogICAgICAgICAgdmFyIFUsIHRlLCBvZTsKICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIFUgfHwKICAgICAgICAgICAgICAoKFUgPSAhMCksCiAgICAgICAgICAgICAgKHRlID0gYXJndW1lbnRzKSwKICAgICAgICAgICAgICAob2UgPSB0aGlzKSwKICAgICAgICAgICAgICBIdGUuZnJhbWUoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgKFUgPSAhMSksIFguYXBwbHkob2UsIHRlKTsKICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICB9OwogICAgICAgIH0pLAogICAgICAgIChlLmRlYm91bmNlID0gZnVuY3Rpb24gKFgsIFUsIHRlKSB7CiAgICAgICAgICB2YXIgb2UsCiAgICAgICAgICAgIHllLAogICAgICAgICAgICBGLAogICAgICAgICAgICBZLAogICAgICAgICAgICBmZSwKICAgICAgICAgICAgRyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgc2UgPSBlLm5vdygpIC0gWTsKICAgICAgICAgICAgICBzZSA8IFUKICAgICAgICAgICAgICAgID8gKG9lID0gc2V0VGltZW91dChHLCBVIC0gc2UpKQogICAgICAgICAgICAgICAgOiAoKG9lID0gbnVsbCksIHRlIHx8ICgoZmUgPSBYLmFwcGx5KEYsIHllKSksIChGID0geWUgPSBudWxsKSkpOwogICAgICAgICAgICB9OwogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgKEYgPSB0aGlzKSwgKHllID0gYXJndW1lbnRzKSwgKFkgPSBlLm5vdygpKTsKICAgICAgICAgICAgdmFyIHNlID0gdGUgJiYgIW9lOwogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIG9lIHx8IChvZSA9IHNldFRpbWVvdXQoRywgVSkpLAogICAgICAgICAgICAgIHNlICYmICgoZmUgPSBYLmFwcGx5KEYsIHllKSksIChGID0geWUgPSBudWxsKSksCiAgICAgICAgICAgICAgZmUKICAgICAgICAgICAgKTsKICAgICAgICAgIH07CiAgICAgICAgfSksCiAgICAgICAgKGUuZGVmYXVsdHMgPSBmdW5jdGlvbiAoWCkgewogICAgICAgICAgaWYgKCFlLmlzT2JqZWN0KFgpKSByZXR1cm4gWDsKICAgICAgICAgIGZvciAodmFyIFUgPSAxLCB0ZSA9IGFyZ3VtZW50cy5sZW5ndGg7IFUgPCB0ZTsgVSsrKSB7CiAgICAgICAgICAgIHZhciBvZSA9IGFyZ3VtZW50c1tVXTsKICAgICAgICAgICAgZm9yICh2YXIgeWUgaW4gb2UpIFhbeWVdID09PSB2b2lkIDAgJiYgKFhbeWVdID0gb2VbeWVdKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBYOwogICAgICAgIH0pLAogICAgICAgIChlLmtleXMgPSBmdW5jdGlvbiAoWCkgewogICAgICAgICAgaWYgKCFlLmlzT2JqZWN0KFgpKSByZXR1cm4gW107CiAgICAgICAgICBpZiAoXykgcmV0dXJuIF8oWCk7CiAgICAgICAgICB2YXIgVSA9IFtdOwogICAgICAgICAgZm9yICh2YXIgdGUgaW4gWCkgZS5oYXMoWCwgdGUpICYmIFUucHVzaCh0ZSk7CiAgICAgICAgICByZXR1cm4gVTsKICAgICAgICB9KSwKICAgICAgICAoZS5oYXMgPSBmdW5jdGlvbiAoWCwgVSkgewogICAgICAgICAgcmV0dXJuIHUuY2FsbChYLCBVKTsKICAgICAgICB9KSwKICAgICAgICAoZS5pc09iamVjdCA9IGZ1bmN0aW9uIChYKSB7CiAgICAgICAgICByZXR1cm4gWCA9PT0gT2JqZWN0KFgpOwogICAgICAgIH0pLAogICAgICAgIChlLm5vdyA9CiAgICAgICAgICBEYXRlLm5vdyB8fAogICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgICAgICB9KSwKICAgICAgICAoZS50ZW1wbGF0ZVNldHRpbmdzID0gewogICAgICAgICAgZXZhbHVhdGU6IC88JShbXHNcU10rPyklPi9nLAogICAgICAgICAgaW50ZXJwb2xhdGU6IC88JT0oW1xzXFNdKz8pJT4vZywKICAgICAgICAgIGVzY2FwZTogLzwlLShbXHNcU10rPyklPi9nLAogICAgICAgIH0pOwogICAgICB2YXIgTiA9IC8oLileLywKICAgICAgICBXID0gewogICAgICAgICAgIiciOiAiJyIsCiAgICAgICAgICAiXFwiOiAiXFwiLAogICAgICAgICAgIlxyIjogInIiLAogICAgICAgICAgIlxuIjogIm4iLAogICAgICAgICAgIlx1MjAyOCI6ICJ1MjAyOCIsCiAgICAgICAgICAiXHUyMDI5IjogInUyMDI5IiwKICAgICAgICB9LAogICAgICAgIGsgPSAvXFx8J3xccnxcbnxcdTIwMjh8XHUyMDI5L2csCiAgICAgICAgcSA9IGZ1bmN0aW9uIChYKSB7CiAgICAgICAgICByZXR1cm4gIlxcIiArIFdbWF07CiAgICAgICAgfSwKICAgICAgICBIID0gL15ccyooXHd8XCQpK1xzKiQvOwogICAgICByZXR1cm4gKAogICAgICAgIChlLnRlbXBsYXRlID0gZnVuY3Rpb24gKFgsIFUsIHRlKSB7CiAgICAgICAgICAhVSAmJiB0ZSAmJiAoVSA9IHRlKSwgKFUgPSBlLmRlZmF1bHRzKHt9LCBVLCBlLnRlbXBsYXRlU2V0dGluZ3MpKTsKICAgICAgICAgIHZhciBvZSA9IFJlZ0V4cCgKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAoVS5lc2NhcGUgfHwgTikuc291cmNlLAogICAgICAgICAgICAgICAgKFUuaW50ZXJwb2xhdGUgfHwgTikuc291cmNlLAogICAgICAgICAgICAgICAgKFUuZXZhbHVhdGUgfHwgTikuc291cmNlLAogICAgICAgICAgICAgIF0uam9pbigifCIpICsgInwkIiwKICAgICAgICAgICAgICAiZyIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgeWUgPSAwLAogICAgICAgICAgICBGID0gIl9fcCs9JyI7CiAgICAgICAgICBYLnJlcGxhY2Uob2UsIGZ1bmN0aW9uIChzZSwgQiwgRCwgUSwgcmUpIHsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAoRiArPSBYLnNsaWNlKHllLCByZSkucmVwbGFjZShrLCBxKSksCiAgICAgICAgICAgICAgKHllID0gcmUgKyBzZS5sZW5ndGgpLAogICAgICAgICAgICAgIEIKICAgICAgICAgICAgICAgID8gKEYgKz0KICAgICAgICAgICAgICAgICAgICBgJysKICAgICgoX190PShgICsKICAgICAgICAgICAgICAgICAgICBCICsKICAgICAgICAgICAgICAgICAgICBgKSk9PW51bGw/Jyc6Xy5lc2NhcGUoX190KSkrCiAgICAnYCkKICAgICAgICAgICAgICAgIDogRAogICAgICAgICAgICAgICAgPyAoRiArPQogICAgICAgICAgICAgICAgICAgIGAnKwogICAgKChfX3Q9KGAgKwogICAgICAgICAgICAgICAgICAgIEQgKwogICAgICAgICAgICAgICAgICAgIGApKT09bnVsbD8nJzpfX3QpKwogICAgJ2ApCiAgICAgICAgICAgICAgICA6IFEgJiYKICAgICAgICAgICAgICAgICAgKEYgKz0KICAgICAgICAgICAgICAgICAgICBgJzsKICAgIGAgKwogICAgICAgICAgICAgICAgICAgIFEgKwogICAgICAgICAgICAgICAgICAgIGAKICAgIF9fcCs9J2ApLAogICAgICAgICAgICAgIHNlCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgICAgKEYgKz0gYCc7CiAgICBgKTsKICAgICAgICAgIHZhciBZID0gVS52YXJpYWJsZTsKICAgICAgICAgIGlmIChZKSB7CiAgICAgICAgICAgIGlmICghSC50ZXN0KFkpKQogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidmFyaWFibGUgaXMgbm90IGEgYmFyZSBpZGVudGlmaWVyOiAiICsgWSk7CiAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgKEYgPQogICAgICAgICAgICAgIGB3aXRoKG9ianx8e30pewogICAgYCArCiAgICAgICAgICAgICAgRiArCiAgICAgICAgICAgICAgYH0KICAgIGApLAogICAgICAgICAgICAgIChZID0gIm9iaiIpOwogICAgICAgICAgRiA9CiAgICAgICAgICAgIGB2YXIgX190LF9fcD0nJyxfX2o9QXJyYXkucHJvdG90eXBlLmpvaW4scHJpbnQ9ZnVuY3Rpb24oKXtfX3ArPV9fai5jYWxsKGFyZ3VtZW50cywnJyk7fTsKICAgIGAgKwogICAgICAgICAgICBGICsKICAgICAgICAgICAgYHJldHVybiBfX3A7CiAgICBgOwogICAgICAgICAgdmFyIGZlOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZmUgPSBuZXcgRnVuY3Rpb24oVS52YXJpYWJsZSB8fCAib2JqIiwgIl8iLCBGKTsKICAgICAgICAgIH0gY2F0Y2ggKHNlKSB7CiAgICAgICAgICAgIHRocm93ICgoc2Uuc291cmNlID0gRiksIHNlKTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBHID0gZnVuY3Rpb24gKHNlKSB7CiAgICAgICAgICAgIHJldHVybiBmZS5jYWxsKHRoaXMsIHNlLCBlKTsKICAgICAgICAgIH07CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoRy5zb3VyY2UgPQogICAgICAgICAgICAgICJmdW5jdGlvbigiICsKICAgICAgICAgICAgICBZICsKICAgICAgICAgICAgICBgKXsKICAgIGAgKwogICAgICAgICAgICAgIEYgKwogICAgICAgICAgICAgICJ9IiksCiAgICAgICAgICAgIEcKICAgICAgICAgICk7CiAgICAgICAgfSksCiAgICAgICAgZQogICAgICApOwogICAgfSkoKTsKICB9KTsKICB2YXIgbXIgPSBFKCgkN2UsIEJTKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc3QgPSB7fSwKICAgICAgbnMgPSB7fSwKICAgICAgaXMgPSBbXSwKICAgICAgb3kgPSB3aW5kb3cuV2ViZmxvdyB8fCBbXSwKICAgICAgJGkgPSB3aW5kb3cualF1ZXJ5LAogICAgICBsbiA9ICRpKHdpbmRvdyksCiAgICAgIEd0ZSA9ICRpKGRvY3VtZW50KSwKICAgICAgUG4gPSAkaS5pc0Z1bmN0aW9uLAogICAgICB1biA9IChzdC5fID0gTlMoKSksCiAgICAgIFBTID0gKHN0LnRyYW0gPSBpeSgpICYmICRpLnRyYW0pLAogICAgICBHbCA9ICExLAogICAgICBzeSA9ICExOwogICAgUFMuY29uZmlnLmhpZGVCYWNrZmFjZSA9ICExOwogICAgUFMuY29uZmlnLmtlZXBJbmhlcml0ZWQgPSAhMDsKICAgIHN0LmRlZmluZSA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgIG5zW2VdICYmIHFTKG5zW2VdKTsKICAgICAgdmFyIG4gPSAobnNbZV0gPSB0KCRpLCB1biwgcikgfHwge30pOwogICAgICByZXR1cm4gRFMobiksIG47CiAgICB9OwogICAgc3QucmVxdWlyZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHJldHVybiBuc1tlXTsKICAgIH07CiAgICBmdW5jdGlvbiBEUyhlKSB7CiAgICAgIHN0LmVudigpICYmCiAgICAgICAgKFBuKGUuZGVzaWduKSAmJiBsbi5vbigiX193Zl9kZXNpZ24iLCBlLmRlc2lnbiksCiAgICAgICAgUG4oZS5wcmV2aWV3KSAmJiBsbi5vbigiX193Zl9wcmV2aWV3IiwgZS5wcmV2aWV3KSksCiAgICAgICAgUG4oZS5kZXN0cm95KSAmJiBsbi5vbigiX193Zl9kZXN0cm95IiwgZS5kZXN0cm95KSwKICAgICAgICBlLnJlYWR5ICYmIFBuKGUucmVhZHkpICYmIGp0ZShlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGp0ZShlKSB7CiAgICAgIGlmIChHbCkgewogICAgICAgIGUucmVhZHkoKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdW4uY29udGFpbnMoaXMsIGUucmVhZHkpIHx8IGlzLnB1c2goZS5yZWFkeSk7CiAgICB9CiAgICBmdW5jdGlvbiBxUyhlKSB7CiAgICAgIFBuKGUuZGVzaWduKSAmJiBsbi5vZmYoIl9fd2ZfZGVzaWduIiwgZS5kZXNpZ24pLAogICAgICAgIFBuKGUucHJldmlldykgJiYgbG4ub2ZmKCJfX3dmX3ByZXZpZXciLCBlLnByZXZpZXcpLAogICAgICAgIFBuKGUuZGVzdHJveSkgJiYgbG4ub2ZmKCJfX3dmX2Rlc3Ryb3kiLCBlLmRlc3Ryb3kpLAogICAgICAgIGUucmVhZHkgJiYgUG4oZS5yZWFkeSkgJiYgWXRlKGUpOwogICAgfQogICAgZnVuY3Rpb24gWXRlKGUpIHsKICAgICAgaXMgPSB1bi5maWx0ZXIoaXMsIGZ1bmN0aW9uICh0KSB7CiAgICAgICAgcmV0dXJuIHQgIT09IGUucmVhZHk7CiAgICAgIH0pOwogICAgfQogICAgc3QucHVzaCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIGlmIChHbCkgewogICAgICAgIFBuKGUpICYmIGUoKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgb3kucHVzaChlKTsKICAgIH07CiAgICBzdC5lbnYgPSBmdW5jdGlvbiAoZSkgewogICAgICB2YXIgdCA9IHdpbmRvdy5fX3dmX2Rlc2lnbiwKICAgICAgICByID0gdHlwZW9mIHQgPCAidSI7CiAgICAgIGlmICghZSkgcmV0dXJuIHI7CiAgICAgIGlmIChlID09PSAiZGVzaWduIikgcmV0dXJuIHIgJiYgdDsKICAgICAgaWYgKGUgPT09ICJwcmV2aWV3IikgcmV0dXJuIHIgJiYgIXQ7CiAgICAgIGlmIChlID09PSAic2x1ZyIpIHJldHVybiByICYmIHdpbmRvdy5fX3dmX3NsdWc7CiAgICAgIGlmIChlID09PSAiZWRpdG9yIikgcmV0dXJuIHdpbmRvdy5XZWJmbG93RWRpdG9yOwogICAgICBpZiAoZSA9PT0gInRlc3QiKSByZXR1cm4gd2luZG93Ll9fd2ZfdGVzdDsKICAgICAgaWYgKGUgPT09ICJmcmFtZSIpIHJldHVybiB3aW5kb3cgIT09IHdpbmRvdy50b3A7CiAgICB9OwogICAgdmFyIEhsID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLAogICAgICB6UyA9IChzdC5lbnYudG91Y2ggPQogICAgICAgICJvbnRvdWNoc3RhcnQiIGluIHdpbmRvdyB8fAogICAgICAgICh3aW5kb3cuRG9jdW1lbnRUb3VjaCAmJiBkb2N1bWVudCBpbnN0YW5jZW9mIHdpbmRvdy5Eb2N1bWVudFRvdWNoKSksCiAgICAgIEt0ZSA9IChzdC5lbnYuY2hyb21lID0KICAgICAgICAvY2hyb21lLy50ZXN0KEhsKSAmJgogICAgICAgIC9Hb29nbGUvLnRlc3QobmF2aWdhdG9yLnZlbmRvcikgJiYKICAgICAgICBwYXJzZUludChIbC5tYXRjaCgvY2hyb21lXC8oXGQrKVwuLylbMV0sIDEwKSksCiAgICAgICR0ZSA9IChzdC5lbnYuaW9zID0gLyhpcG9kfGlwaG9uZXxpcGFkKS8udGVzdChIbCkpOwogICAgc3QuZW52LnNhZmFyaSA9IC9zYWZhcmkvLnRlc3QoSGwpICYmICFLdGUgJiYgISR0ZTsKICAgIHZhciBheTsKICAgIHpTICYmCiAgICAgIEd0ZS5vbigidG91Y2hzdGFydCBtb3VzZWRvd24iLCBmdW5jdGlvbiAoZSkgewogICAgICAgIGF5ID0gZS50YXJnZXQ7CiAgICAgIH0pOwogICAgc3QudmFsaWRDbGljayA9IHpTCiAgICAgID8gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHJldHVybiBlID09PSBheSB8fCAkaS5jb250YWlucyhlLCBheSk7CiAgICAgICAgfQogICAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiAhMDsKICAgICAgICB9OwogICAgdmFyIEZTID0gInJlc2l6ZS53ZWJmbG93IG9yaWVudGF0aW9uY2hhbmdlLndlYmZsb3cgbG9hZC53ZWJmbG93IiwKICAgICAgUXRlID0gInNjcm9sbC53ZWJmbG93ICIgKyBGUzsKICAgIHN0LnJlc2l6ZSA9IGN5KGxuLCBGUyk7CiAgICBzdC5zY3JvbGwgPSBjeShsbiwgUXRlKTsKICAgIHN0LnJlZHJhdyA9IGN5KCk7CiAgICBmdW5jdGlvbiBjeShlLCB0KSB7CiAgICAgIHZhciByID0gW10sCiAgICAgICAgbiA9IHt9OwogICAgICByZXR1cm4gKAogICAgICAgIChuLnVwID0gdW4udGhyb3R0bGUoZnVuY3Rpb24gKGkpIHsKICAgICAgICAgIHVuLmVhY2gociwgZnVuY3Rpb24gKGEpIHsKICAgICAgICAgICAgYShpKTsKICAgICAgICAgIH0pOwogICAgICAgIH0pKSwKICAgICAgICBlICYmIHQgJiYgZS5vbih0LCBuLnVwKSwKICAgICAgICAobi5vbiA9IGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICB0eXBlb2YgaSA9PSAiZnVuY3Rpb24iICYmICh1bi5jb250YWlucyhyLCBpKSB8fCByLnB1c2goaSkpOwogICAgICAgIH0pLAogICAgICAgIChuLm9mZiA9IGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHsKICAgICAgICAgICAgciA9IFtdOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICByID0gdW4uZmlsdGVyKHIsIGZ1bmN0aW9uIChhKSB7CiAgICAgICAgICAgIHJldHVybiBhICE9PSBpOwogICAgICAgICAgfSk7CiAgICAgICAgfSksCiAgICAgICAgbgogICAgICApOwogICAgfQogICAgc3QubG9jYXRpb24gPSBmdW5jdGlvbiAoZSkgewogICAgICB3aW5kb3cubG9jYXRpb24gPSBlOwogICAgfTsKICAgIHN0LmVudigpICYmIChzdC5sb2NhdGlvbiA9IGZ1bmN0aW9uICgpIHt9KTsKICAgIHN0LnJlYWR5ID0gZnVuY3Rpb24gKCkgewogICAgICAoR2wgPSAhMCksIHN5ID8gSnRlKCkgOiB1bi5lYWNoKGlzLCB3UyksIHVuLmVhY2gob3ksIHdTKSwgc3QucmVzaXplLnVwKCk7CiAgICB9OwogICAgZnVuY3Rpb24gd1MoZSkgewogICAgICBQbihlKSAmJiBlKCk7CiAgICB9CiAgICBmdW5jdGlvbiBKdGUoKSB7CiAgICAgIChzeSA9ICExKSwgdW4uZWFjaChucywgRFMpOwogICAgfQogICAgdmFyIEJhOwogICAgc3QubG9hZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIEJhLnRoZW4oZSk7CiAgICB9OwogICAgZnVuY3Rpb24ga1MoKSB7CiAgICAgIEJhICYmIChCYS5yZWplY3QoKSwgbG4ub2ZmKCJsb2FkIiwgQmEucmVzb2x2ZSkpLAogICAgICAgIChCYSA9IG5ldyAkaS5EZWZlcnJlZCgpKSwKICAgICAgICBsbi5vbigibG9hZCIsIEJhLnJlc29sdmUpOwogICAgfQogICAgc3QuZGVzdHJveSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIChlID0gZSB8fCB7fSksCiAgICAgICAgKHN5ID0gITApLAogICAgICAgIGxuLnRyaWdnZXJIYW5kbGVyKCJfX3dmX2Rlc3Ryb3kiKSwKICAgICAgICBlLmRvbXJlYWR5ICE9IG51bGwgJiYgKEdsID0gZS5kb21yZWFkeSksCiAgICAgICAgdW4uZWFjaChucywgcVMpLAogICAgICAgIHN0LnJlc2l6ZS5vZmYoKSwKICAgICAgICBzdC5zY3JvbGwub2ZmKCksCiAgICAgICAgc3QucmVkcmF3Lm9mZigpLAogICAgICAgIChpcyA9IFtdKSwKICAgICAgICAob3kgPSBbXSksCiAgICAgICAgQmEuc3RhdGUoKSA9PT0gInBlbmRpbmciICYmIGtTKCk7CiAgICB9OwogICAgJGkoc3QucmVhZHkpOwogICAga1MoKTsKICAgIEJTLmV4cG9ydHMgPSB3aW5kb3cuV2ViZmxvdyA9IHN0OwogIH0pOwogIHZhciB1eSA9IEUoKFE3ZSwgV1MpID0+IHsKICAgIGZ1bmN0aW9uIFp0ZShlLCB0LCByLCBuKSB7CiAgICAgIGZvciAodmFyIGkgPSBlLmxlbmd0aCwgYSA9IHIgKyAobiA/IDEgOiAtMSk7IG4gPyBhLS0gOiArK2EgPCBpOyApCiAgICAgICAgaWYgKHQoZVthXSwgYSwgZSkpIHJldHVybiBhOwogICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBXUy5leHBvcnRzID0gWnRlOwogIH0pOwogIHZhciBYUyA9IEUoKEo3ZSwgVVMpID0+IHsKICAgIGZ1bmN0aW9uIGVyZSgpIHsKICAgICAgKHRoaXMuX19kYXRhX18gPSBbXSksICh0aGlzLnNpemUgPSAwKTsKICAgIH0KICAgIFVTLmV4cG9ydHMgPSBlcmU7CiAgfSk7CiAgdmFyIGFzID0gRSgoWjdlLCBWUykgPT4gewogICAgZnVuY3Rpb24gdHJlKGUsIHQpIHsKICAgICAgcmV0dXJuIGUgPT09IHQgfHwgKGUgIT09IGUgJiYgdCAhPT0gdCk7CiAgICB9CiAgICBWUy5leHBvcnRzID0gdHJlOwogIH0pOwogIHZhciBJMSA9IEUoKGVqZSwgSFMpID0+IHsKICAgIHZhciBycmUgPSBhcygpOwogICAgZnVuY3Rpb24gbnJlKGUsIHQpIHsKICAgICAgZm9yICh2YXIgciA9IGUubGVuZ3RoOyByLS07ICkgaWYgKHJyZShlW3JdWzBdLCB0KSkgcmV0dXJuIHI7CiAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIEhTLmV4cG9ydHMgPSBucmU7CiAgfSk7CiAgdmFyIGpTID0gRSgodGplLCBHUykgPT4gewogICAgdmFyIGlyZSA9IEkxKCksCiAgICAgIGFyZSA9IEFycmF5LnByb3RvdHlwZSwKICAgICAgb3JlID0gYXJlLnNwbGljZTsKICAgIGZ1bmN0aW9uIHNyZShlKSB7CiAgICAgIHZhciB0ID0gdGhpcy5fX2RhdGFfXywKICAgICAgICByID0gaXJlKHQsIGUpOwogICAgICBpZiAociA8IDApIHJldHVybiAhMTsKICAgICAgdmFyIG4gPSB0Lmxlbmd0aCAtIDE7CiAgICAgIHJldHVybiByID09IG4gPyB0LnBvcCgpIDogb3JlLmNhbGwodCwgciwgMSksIC0tdGhpcy5zaXplLCAhMDsKICAgIH0KICAgIEdTLmV4cG9ydHMgPSBzcmU7CiAgfSk7CiAgdmFyIEtTID0gRSgocmplLCBZUykgPT4gewogICAgdmFyIGNyZSA9IEkxKCk7CiAgICBmdW5jdGlvbiB1cmUoZSkgewogICAgICB2YXIgdCA9IHRoaXMuX19kYXRhX18sCiAgICAgICAgciA9IGNyZSh0LCBlKTsKICAgICAgcmV0dXJuIHIgPCAwID8gdm9pZCAwIDogdFtyXVsxXTsKICAgIH0KICAgIFlTLmV4cG9ydHMgPSB1cmU7CiAgfSk7CiAgdmFyIFFTID0gRSgobmplLCAkUykgPT4gewogICAgdmFyIGxyZSA9IEkxKCk7CiAgICBmdW5jdGlvbiBmcmUoZSkgewogICAgICByZXR1cm4gbHJlKHRoaXMuX19kYXRhX18sIGUpID4gLTE7CiAgICB9CiAgICAkUy5leHBvcnRzID0gZnJlOwogIH0pOwogIHZhciBaUyA9IEUoKGlqZSwgSlMpID0+IHsKICAgIHZhciBwcmUgPSBJMSgpOwogICAgZnVuY3Rpb24gZHJlKGUsIHQpIHsKICAgICAgdmFyIHIgPSB0aGlzLl9fZGF0YV9fLAogICAgICAgIG4gPSBwcmUociwgZSk7CiAgICAgIHJldHVybiBuIDwgMCA/ICgrK3RoaXMuc2l6ZSwgci5wdXNoKFtlLCB0XSkpIDogKHJbbl1bMV0gPSB0KSwgdGhpczsKICAgIH0KICAgIEpTLmV4cG9ydHMgPSBkcmU7CiAgfSk7CiAgdmFyIEwxID0gRSgoYWplLCBlTykgPT4gewogICAgdmFyIGhyZSA9IFhTKCksCiAgICAgIG1yZSA9IGpTKCksCiAgICAgIHlyZSA9IEtTKCksCiAgICAgIGdyZSA9IFFTKCksCiAgICAgIHZyZSA9IFpTKCk7CiAgICBmdW5jdGlvbiBvcyhlKSB7CiAgICAgIHZhciB0ID0gLTEsCiAgICAgICAgciA9IGUgPT0gbnVsbCA/IDAgOiBlLmxlbmd0aDsKICAgICAgZm9yICh0aGlzLmNsZWFyKCk7ICsrdCA8IHI7ICkgewogICAgICAgIHZhciBuID0gZVt0XTsKICAgICAgICB0aGlzLnNldChuWzBdLCBuWzFdKTsKICAgICAgfQogICAgfQogICAgb3MucHJvdG90eXBlLmNsZWFyID0gaHJlOwogICAgb3MucHJvdG90eXBlLmRlbGV0ZSA9IG1yZTsKICAgIG9zLnByb3RvdHlwZS5nZXQgPSB5cmU7CiAgICBvcy5wcm90b3R5cGUuaGFzID0gZ3JlOwogICAgb3MucHJvdG90eXBlLnNldCA9IHZyZTsKICAgIGVPLmV4cG9ydHMgPSBvczsKICB9KTsKICB2YXIgck8gPSBFKChvamUsIHRPKSA9PiB7CiAgICB2YXIgYnJlID0gTDEoKTsKICAgIGZ1bmN0aW9uIE1yZSgpIHsKICAgICAgKHRoaXMuX19kYXRhX18gPSBuZXcgYnJlKCkpLCAodGhpcy5zaXplID0gMCk7CiAgICB9CiAgICB0Ty5leHBvcnRzID0gTXJlOwogIH0pOwogIHZhciBpTyA9IEUoKHNqZSwgbk8pID0+IHsKICAgIGZ1bmN0aW9uIEFyZShlKSB7CiAgICAgIHZhciB0ID0gdGhpcy5fX2RhdGFfXywKICAgICAgICByID0gdC5kZWxldGUoZSk7CiAgICAgIHJldHVybiAodGhpcy5zaXplID0gdC5zaXplKSwgcjsKICAgIH0KICAgIG5PLmV4cG9ydHMgPSBBcmU7CiAgfSk7CiAgdmFyIG9PID0gRSgoY2plLCBhTykgPT4gewogICAgZnVuY3Rpb24gRXJlKGUpIHsKICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGUpOwogICAgfQogICAgYU8uZXhwb3J0cyA9IEVyZTsKICB9KTsKICB2YXIgY08gPSBFKCh1amUsIHNPKSA9PiB7CiAgICBmdW5jdGlvbiBUcmUoZSkgewogICAgICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoZSk7CiAgICB9CiAgICBzTy5leHBvcnRzID0gVHJlOwogIH0pOwogIHZhciBseSA9IEUoKGxqZSwgdU8pID0+IHsKICAgIHZhciBfcmUgPQogICAgICB0eXBlb2YgZ2xvYmFsID09ICJvYmplY3QiICYmIGdsb2JhbCAmJiBnbG9iYWwuT2JqZWN0ID09PSBPYmplY3QgJiYgZ2xvYmFsOwogICAgdU8uZXhwb3J0cyA9IF9yZTsKICB9KTsKICB2YXIgS3IgPSBFKChmamUsIGxPKSA9PiB7CiAgICB2YXIgU3JlID0gbHkoKSwKICAgICAgT3JlID0gdHlwZW9mIHNlbGYgPT0gIm9iamVjdCIgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGYsCiAgICAgIHhyZSA9IFNyZSB8fCBPcmUgfHwgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKTsKICAgIGxPLmV4cG9ydHMgPSB4cmU7CiAgfSk7CiAgdmFyIFdhID0gRSgocGplLCBmTykgPT4gewogICAgdmFyIENyZSA9IEtyKCksCiAgICAgIFJyZSA9IENyZS5TeW1ib2w7CiAgICBmTy5leHBvcnRzID0gUnJlOwogIH0pOwogIHZhciBtTyA9IEUoKGRqZSwgaE8pID0+IHsKICAgIHZhciBwTyA9IFdhKCksCiAgICAgIGRPID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgSXJlID0gZE8uaGFzT3duUHJvcGVydHksCiAgICAgIExyZSA9IGRPLnRvU3RyaW5nLAogICAgICBOMSA9IHBPID8gcE8udG9TdHJpbmdUYWcgOiB2b2lkIDA7CiAgICBmdW5jdGlvbiBOcmUoZSkgewogICAgICB2YXIgdCA9IElyZS5jYWxsKGUsIE4xKSwKICAgICAgICByID0gZVtOMV07CiAgICAgIHRyeSB7CiAgICAgICAgZVtOMV0gPSB2b2lkIDA7CiAgICAgICAgdmFyIG4gPSAhMDsKICAgICAgfSBjYXRjaCB7fQogICAgICB2YXIgaSA9IExyZS5jYWxsKGUpOwogICAgICByZXR1cm4gbiAmJiAodCA/IChlW04xXSA9IHIpIDogZGVsZXRlIGVbTjFdKSwgaTsKICAgIH0KICAgIGhPLmV4cG9ydHMgPSBOcmU7CiAgfSk7CiAgdmFyIGdPID0gRSgoaGplLCB5TykgPT4gewogICAgdmFyIHdyZSA9IE9iamVjdC5wcm90b3R5cGUsCiAgICAgIFByZSA9IHdyZS50b1N0cmluZzsKICAgIGZ1bmN0aW9uIERyZShlKSB7CiAgICAgIHJldHVybiBQcmUuY2FsbChlKTsKICAgIH0KICAgIHlPLmV4cG9ydHMgPSBEcmU7CiAgfSk7CiAgdmFyIERuID0gRSgobWplLCBNTykgPT4gewogICAgdmFyIHZPID0gV2EoKSwKICAgICAgcXJlID0gbU8oKSwKICAgICAgenJlID0gZ08oKSwKICAgICAgRnJlID0gIltvYmplY3QgTnVsbF0iLAogICAgICBrcmUgPSAiW29iamVjdCBVbmRlZmluZWRdIiwKICAgICAgYk8gPSB2TyA/IHZPLnRvU3RyaW5nVGFnIDogdm9pZCAwOwogICAgZnVuY3Rpb24gQnJlKGUpIHsKICAgICAgcmV0dXJuIGUgPT0gbnVsbAogICAgICAgID8gZSA9PT0gdm9pZCAwCiAgICAgICAgICA/IGtyZQogICAgICAgICAgOiBGcmUKICAgICAgICA6IGJPICYmIGJPIGluIE9iamVjdChlKQogICAgICAgID8gcXJlKGUpCiAgICAgICAgOiB6cmUoZSk7CiAgICB9CiAgICBNTy5leHBvcnRzID0gQnJlOwogIH0pOwogIHZhciBlciA9IEUoKHlqZSwgQU8pID0+IHsKICAgIGZ1bmN0aW9uIFdyZShlKSB7CiAgICAgIHZhciB0ID0gdHlwZW9mIGU7CiAgICAgIHJldHVybiBlICE9IG51bGwgJiYgKHQgPT0gIm9iamVjdCIgfHwgdCA9PSAiZnVuY3Rpb24iKTsKICAgIH0KICAgIEFPLmV4cG9ydHMgPSBXcmU7CiAgfSk7CiAgdmFyIFVhID0gRSgoZ2plLCBFTykgPT4gewogICAgdmFyIFVyZSA9IERuKCksCiAgICAgIFhyZSA9IGVyKCksCiAgICAgIFZyZSA9ICJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIiwKICAgICAgSHJlID0gIltvYmplY3QgRnVuY3Rpb25dIiwKICAgICAgR3JlID0gIltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIiwKICAgICAganJlID0gIltvYmplY3QgUHJveHldIjsKICAgIGZ1bmN0aW9uIFlyZShlKSB7CiAgICAgIGlmICghWHJlKGUpKSByZXR1cm4gITE7CiAgICAgIHZhciB0ID0gVXJlKGUpOwogICAgICByZXR1cm4gdCA9PSBIcmUgfHwgdCA9PSBHcmUgfHwgdCA9PSBWcmUgfHwgdCA9PSBqcmU7CiAgICB9CiAgICBFTy5leHBvcnRzID0gWXJlOwogIH0pOwogIHZhciBfTyA9IEUoKHZqZSwgVE8pID0+IHsKICAgIHZhciBLcmUgPSBLcigpLAogICAgICAkcmUgPSBLcmVbIl9fY29yZS1qc19zaGFyZWRfXyJdOwogICAgVE8uZXhwb3J0cyA9ICRyZTsKICB9KTsKICB2YXIgeE8gPSBFKChiamUsIE9PKSA9PiB7CiAgICB2YXIgZnkgPSBfTygpLAogICAgICBTTyA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGUgPSAvW14uXSskLy5leGVjKChmeSAmJiBmeS5rZXlzICYmIGZ5LmtleXMuSUVfUFJPVE8pIHx8ICIiKTsKICAgICAgICByZXR1cm4gZSA/ICJTeW1ib2woc3JjKV8xLiIgKyBlIDogIiI7CiAgICAgIH0pKCk7CiAgICBmdW5jdGlvbiBRcmUoZSkgewogICAgICByZXR1cm4gISFTTyAmJiBTTyBpbiBlOwogICAgfQogICAgT08uZXhwb3J0cyA9IFFyZTsKICB9KTsKICB2YXIgcHkgPSBFKChNamUsIENPKSA9PiB7CiAgICB2YXIgSnJlID0gRnVuY3Rpb24ucHJvdG90eXBlLAogICAgICBacmUgPSBKcmUudG9TdHJpbmc7CiAgICBmdW5jdGlvbiBlbmUoZSkgewogICAgICBpZiAoZSAhPSBudWxsKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiBacmUuY2FsbChlKTsKICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiBlICsgIiI7CiAgICAgICAgfSBjYXRjaCB7fQogICAgICB9CiAgICAgIHJldHVybiAiIjsKICAgIH0KICAgIENPLmV4cG9ydHMgPSBlbmU7CiAgfSk7CiAgdmFyIElPID0gRSgoQWplLCBSTykgPT4gewogICAgdmFyIHRuZSA9IFVhKCksCiAgICAgIHJuZSA9IHhPKCksCiAgICAgIG5uZSA9IGVyKCksCiAgICAgIGluZSA9IHB5KCksCiAgICAgIGFuZSA9IC9bXFxeJC4qKz8oKVtcXXt9fF0vZywKICAgICAgb25lID0gL15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sCiAgICAgIHNuZSA9IEZ1bmN0aW9uLnByb3RvdHlwZSwKICAgICAgY25lID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgdW5lID0gc25lLnRvU3RyaW5nLAogICAgICBsbmUgPSBjbmUuaGFzT3duUHJvcGVydHksCiAgICAgIGZuZSA9IFJlZ0V4cCgKICAgICAgICAiXiIgKwogICAgICAgICAgdW5lCiAgICAgICAgICAgIC5jYWxsKGxuZSkKICAgICAgICAgICAgLnJlcGxhY2UoYW5lLCAiXFwkJiIpCiAgICAgICAgICAgIC5yZXBsYWNlKAogICAgICAgICAgICAgIC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLAogICAgICAgICAgICAgICIkMS4qPyIKICAgICAgICAgICAgKSArCiAgICAgICAgICAiJCIKICAgICAgKTsKICAgIGZ1bmN0aW9uIHBuZShlKSB7CiAgICAgIGlmICghbm5lKGUpIHx8IHJuZShlKSkgcmV0dXJuICExOwogICAgICB2YXIgdCA9IHRuZShlKSA/IGZuZSA6IG9uZTsKICAgICAgcmV0dXJuIHQudGVzdChpbmUoZSkpOwogICAgfQogICAgUk8uZXhwb3J0cyA9IHBuZTsKICB9KTsKICB2YXIgTk8gPSBFKChFamUsIExPKSA9PiB7CiAgICBmdW5jdGlvbiBkbmUoZSwgdCkgewogICAgICByZXR1cm4gZT8uW3RdOwogICAgfQogICAgTE8uZXhwb3J0cyA9IGRuZTsKICB9KTsKICB2YXIgUWkgPSBFKChUamUsIHdPKSA9PiB7CiAgICB2YXIgaG5lID0gSU8oKSwKICAgICAgbW5lID0gTk8oKTsKICAgIGZ1bmN0aW9uIHluZShlLCB0KSB7CiAgICAgIHZhciByID0gbW5lKGUsIHQpOwogICAgICByZXR1cm4gaG5lKHIpID8gciA6IHZvaWQgMDsKICAgIH0KICAgIHdPLmV4cG9ydHMgPSB5bmU7CiAgfSk7CiAgdmFyIGpsID0gRSgoX2plLCBQTykgPT4gewogICAgdmFyIGduZSA9IFFpKCksCiAgICAgIHZuZSA9IEtyKCksCiAgICAgIGJuZSA9IGduZSh2bmUsICJNYXAiKTsKICAgIFBPLmV4cG9ydHMgPSBibmU7CiAgfSk7CiAgdmFyIHcxID0gRSgoU2plLCBETykgPT4gewogICAgdmFyIE1uZSA9IFFpKCksCiAgICAgIEFuZSA9IE1uZShPYmplY3QsICJjcmVhdGUiKTsKICAgIERPLmV4cG9ydHMgPSBBbmU7CiAgfSk7CiAgdmFyIEZPID0gRSgoT2plLCB6TykgPT4gewogICAgdmFyIHFPID0gdzEoKTsKICAgIGZ1bmN0aW9uIEVuZSgpIHsKICAgICAgKHRoaXMuX19kYXRhX18gPSBxTyA/IHFPKG51bGwpIDoge30pLCAodGhpcy5zaXplID0gMCk7CiAgICB9CiAgICB6Ty5leHBvcnRzID0gRW5lOwogIH0pOwogIHZhciBCTyA9IEUoKHhqZSwga08pID0+IHsKICAgIGZ1bmN0aW9uIFRuZShlKSB7CiAgICAgIHZhciB0ID0gdGhpcy5oYXMoZSkgJiYgZGVsZXRlIHRoaXMuX19kYXRhX19bZV07CiAgICAgIHJldHVybiAodGhpcy5zaXplIC09IHQgPyAxIDogMCksIHQ7CiAgICB9CiAgICBrTy5leHBvcnRzID0gVG5lOwogIH0pOwogIHZhciBVTyA9IEUoKENqZSwgV08pID0+IHsKICAgIHZhciBfbmUgPSB3MSgpLAogICAgICBTbmUgPSAiX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyIsCiAgICAgIE9uZSA9IE9iamVjdC5wcm90b3R5cGUsCiAgICAgIHhuZSA9IE9uZS5oYXNPd25Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIENuZShlKSB7CiAgICAgIHZhciB0ID0gdGhpcy5fX2RhdGFfXzsKICAgICAgaWYgKF9uZSkgewogICAgICAgIHZhciByID0gdFtlXTsKICAgICAgICByZXR1cm4gciA9PT0gU25lID8gdm9pZCAwIDogcjsKICAgICAgfQogICAgICByZXR1cm4geG5lLmNhbGwodCwgZSkgPyB0W2VdIDogdm9pZCAwOwogICAgfQogICAgV08uZXhwb3J0cyA9IENuZTsKICB9KTsKICB2YXIgVk8gPSBFKChSamUsIFhPKSA9PiB7CiAgICB2YXIgUm5lID0gdzEoKSwKICAgICAgSW5lID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgTG5lID0gSW5lLmhhc093blByb3BlcnR5OwogICAgZnVuY3Rpb24gTm5lKGUpIHsKICAgICAgdmFyIHQgPSB0aGlzLl9fZGF0YV9fOwogICAgICByZXR1cm4gUm5lID8gdFtlXSAhPT0gdm9pZCAwIDogTG5lLmNhbGwodCwgZSk7CiAgICB9CiAgICBYTy5leHBvcnRzID0gTm5lOwogIH0pOwogIHZhciBHTyA9IEUoKElqZSwgSE8pID0+IHsKICAgIHZhciB3bmUgPSB3MSgpLAogICAgICBQbmUgPSAiX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI7CiAgICBmdW5jdGlvbiBEbmUoZSwgdCkgewogICAgICB2YXIgciA9IHRoaXMuX19kYXRhX187CiAgICAgIHJldHVybiAoCiAgICAgICAgKHRoaXMuc2l6ZSArPSB0aGlzLmhhcyhlKSA/IDAgOiAxKSwKICAgICAgICAocltlXSA9IHduZSAmJiB0ID09PSB2b2lkIDAgPyBQbmUgOiB0KSwKICAgICAgICB0aGlzCiAgICAgICk7CiAgICB9CiAgICBITy5leHBvcnRzID0gRG5lOwogIH0pOwogIHZhciBZTyA9IEUoKExqZSwgak8pID0+IHsKICAgIHZhciBxbmUgPSBGTygpLAogICAgICB6bmUgPSBCTygpLAogICAgICBGbmUgPSBVTygpLAogICAgICBrbmUgPSBWTygpLAogICAgICBCbmUgPSBHTygpOwogICAgZnVuY3Rpb24gc3MoZSkgewogICAgICB2YXIgdCA9IC0xLAogICAgICAgIHIgPSBlID09IG51bGwgPyAwIDogZS5sZW5ndGg7CiAgICAgIGZvciAodGhpcy5jbGVhcigpOyArK3QgPCByOyApIHsKICAgICAgICB2YXIgbiA9IGVbdF07CiAgICAgICAgdGhpcy5zZXQoblswXSwgblsxXSk7CiAgICAgIH0KICAgIH0KICAgIHNzLnByb3RvdHlwZS5jbGVhciA9IHFuZTsKICAgIHNzLnByb3RvdHlwZS5kZWxldGUgPSB6bmU7CiAgICBzcy5wcm90b3R5cGUuZ2V0ID0gRm5lOwogICAgc3MucHJvdG90eXBlLmhhcyA9IGtuZTsKICAgIHNzLnByb3RvdHlwZS5zZXQgPSBCbmU7CiAgICBqTy5leHBvcnRzID0gc3M7CiAgfSk7CiAgdmFyIFFPID0gRSgoTmplLCAkTykgPT4gewogICAgdmFyIEtPID0gWU8oKSwKICAgICAgV25lID0gTDEoKSwKICAgICAgVW5lID0gamwoKTsKICAgIGZ1bmN0aW9uIFhuZSgpIHsKICAgICAgKHRoaXMuc2l6ZSA9IDApLAogICAgICAgICh0aGlzLl9fZGF0YV9fID0gewogICAgICAgICAgaGFzaDogbmV3IEtPKCksCiAgICAgICAgICBtYXA6IG5ldyAoVW5lIHx8IFduZSkoKSwKICAgICAgICAgIHN0cmluZzogbmV3IEtPKCksCiAgICAgICAgfSk7CiAgICB9CiAgICAkTy5leHBvcnRzID0gWG5lOwogIH0pOwogIHZhciBaTyA9IEUoKHdqZSwgSk8pID0+IHsKICAgIGZ1bmN0aW9uIFZuZShlKSB7CiAgICAgIHZhciB0ID0gdHlwZW9mIGU7CiAgICAgIHJldHVybiB0ID09ICJzdHJpbmciIHx8IHQgPT0gIm51bWJlciIgfHwgdCA9PSAic3ltYm9sIiB8fCB0ID09ICJib29sZWFuIgogICAgICAgID8gZSAhPT0gIl9fcHJvdG9fXyIKICAgICAgICA6IGUgPT09IG51bGw7CiAgICB9CiAgICBKTy5leHBvcnRzID0gVm5lOwogIH0pOwogIHZhciBQMSA9IEUoKFBqZSwgZXgpID0+IHsKICAgIHZhciBIbmUgPSBaTygpOwogICAgZnVuY3Rpb24gR25lKGUsIHQpIHsKICAgICAgdmFyIHIgPSBlLl9fZGF0YV9fOwogICAgICByZXR1cm4gSG5lKHQpID8gclt0eXBlb2YgdCA9PSAic3RyaW5nIiA/ICJzdHJpbmciIDogImhhc2giXSA6IHIubWFwOwogICAgfQogICAgZXguZXhwb3J0cyA9IEduZTsKICB9KTsKICB2YXIgcnggPSBFKChEamUsIHR4KSA9PiB7CiAgICB2YXIgam5lID0gUDEoKTsKICAgIGZ1bmN0aW9uIFluZShlKSB7CiAgICAgIHZhciB0ID0gam5lKHRoaXMsIGUpLmRlbGV0ZShlKTsKICAgICAgcmV0dXJuICh0aGlzLnNpemUgLT0gdCA/IDEgOiAwKSwgdDsKICAgIH0KICAgIHR4LmV4cG9ydHMgPSBZbmU7CiAgfSk7CiAgdmFyIGl4ID0gRSgocWplLCBueCkgPT4gewogICAgdmFyIEtuZSA9IFAxKCk7CiAgICBmdW5jdGlvbiAkbmUoZSkgewogICAgICByZXR1cm4gS25lKHRoaXMsIGUpLmdldChlKTsKICAgIH0KICAgIG54LmV4cG9ydHMgPSAkbmU7CiAgfSk7CiAgdmFyIG94ID0gRSgoemplLCBheCkgPT4gewogICAgdmFyIFFuZSA9IFAxKCk7CiAgICBmdW5jdGlvbiBKbmUoZSkgewogICAgICByZXR1cm4gUW5lKHRoaXMsIGUpLmhhcyhlKTsKICAgIH0KICAgIGF4LmV4cG9ydHMgPSBKbmU7CiAgfSk7CiAgdmFyIGN4ID0gRSgoRmplLCBzeCkgPT4gewogICAgdmFyIFpuZSA9IFAxKCk7CiAgICBmdW5jdGlvbiBlaWUoZSwgdCkgewogICAgICB2YXIgciA9IFpuZSh0aGlzLCBlKSwKICAgICAgICBuID0gci5zaXplOwogICAgICByZXR1cm4gci5zZXQoZSwgdCksICh0aGlzLnNpemUgKz0gci5zaXplID09IG4gPyAwIDogMSksIHRoaXM7CiAgICB9CiAgICBzeC5leHBvcnRzID0gZWllOwogIH0pOwogIHZhciBZbCA9IEUoKGtqZSwgdXgpID0+IHsKICAgIHZhciB0aWUgPSBRTygpLAogICAgICByaWUgPSByeCgpLAogICAgICBuaWUgPSBpeCgpLAogICAgICBpaWUgPSBveCgpLAogICAgICBhaWUgPSBjeCgpOwogICAgZnVuY3Rpb24gY3MoZSkgewogICAgICB2YXIgdCA9IC0xLAogICAgICAgIHIgPSBlID09IG51bGwgPyAwIDogZS5sZW5ndGg7CiAgICAgIGZvciAodGhpcy5jbGVhcigpOyArK3QgPCByOyApIHsKICAgICAgICB2YXIgbiA9IGVbdF07CiAgICAgICAgdGhpcy5zZXQoblswXSwgblsxXSk7CiAgICAgIH0KICAgIH0KICAgIGNzLnByb3RvdHlwZS5jbGVhciA9IHRpZTsKICAgIGNzLnByb3RvdHlwZS5kZWxldGUgPSByaWU7CiAgICBjcy5wcm90b3R5cGUuZ2V0ID0gbmllOwogICAgY3MucHJvdG90eXBlLmhhcyA9IGlpZTsKICAgIGNzLnByb3RvdHlwZS5zZXQgPSBhaWU7CiAgICB1eC5leHBvcnRzID0gY3M7CiAgfSk7CiAgdmFyIGZ4ID0gRSgoQmplLCBseCkgPT4gewogICAgdmFyIG9pZSA9IEwxKCksCiAgICAgIHNpZSA9IGpsKCksCiAgICAgIGNpZSA9IFlsKCksCiAgICAgIHVpZSA9IDIwMDsKICAgIGZ1bmN0aW9uIGxpZShlLCB0KSB7CiAgICAgIHZhciByID0gdGhpcy5fX2RhdGFfXzsKICAgICAgaWYgKHIgaW5zdGFuY2VvZiBvaWUpIHsKICAgICAgICB2YXIgbiA9IHIuX19kYXRhX187CiAgICAgICAgaWYgKCFzaWUgfHwgbi5sZW5ndGggPCB1aWUgLSAxKQogICAgICAgICAgcmV0dXJuIG4ucHVzaChbZSwgdF0pLCAodGhpcy5zaXplID0gKytyLnNpemUpLCB0aGlzOwogICAgICAgIHIgPSB0aGlzLl9fZGF0YV9fID0gbmV3IGNpZShuKTsKICAgICAgfQogICAgICByZXR1cm4gci5zZXQoZSwgdCksICh0aGlzLnNpemUgPSByLnNpemUpLCB0aGlzOwogICAgfQogICAgbHguZXhwb3J0cyA9IGxpZTsKICB9KTsKICB2YXIgRDEgPSBFKChXamUsIHB4KSA9PiB7CiAgICB2YXIgZmllID0gTDEoKSwKICAgICAgcGllID0gck8oKSwKICAgICAgZGllID0gaU8oKSwKICAgICAgaGllID0gb08oKSwKICAgICAgbWllID0gY08oKSwKICAgICAgeWllID0gZngoKTsKICAgIGZ1bmN0aW9uIHVzKGUpIHsKICAgICAgdmFyIHQgPSAodGhpcy5fX2RhdGFfXyA9IG5ldyBmaWUoZSkpOwogICAgICB0aGlzLnNpemUgPSB0LnNpemU7CiAgICB9CiAgICB1cy5wcm90b3R5cGUuY2xlYXIgPSBwaWU7CiAgICB1cy5wcm90b3R5cGUuZGVsZXRlID0gZGllOwogICAgdXMucHJvdG90eXBlLmdldCA9IGhpZTsKICAgIHVzLnByb3RvdHlwZS5oYXMgPSBtaWU7CiAgICB1cy5wcm90b3R5cGUuc2V0ID0geWllOwogICAgcHguZXhwb3J0cyA9IHVzOwogIH0pOwogIHZhciBoeCA9IEUoKFVqZSwgZHgpID0+IHsKICAgIHZhciBnaWUgPSAiX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI7CiAgICBmdW5jdGlvbiB2aWUoZSkgewogICAgICByZXR1cm4gdGhpcy5fX2RhdGFfXy5zZXQoZSwgZ2llKSwgdGhpczsKICAgIH0KICAgIGR4LmV4cG9ydHMgPSB2aWU7CiAgfSk7CiAgdmFyIHl4ID0gRSgoWGplLCBteCkgPT4gewogICAgZnVuY3Rpb24gYmllKGUpIHsKICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGUpOwogICAgfQogICAgbXguZXhwb3J0cyA9IGJpZTsKICB9KTsKICB2YXIgdnggPSBFKChWamUsIGd4KSA9PiB7CiAgICB2YXIgTWllID0gWWwoKSwKICAgICAgQWllID0gaHgoKSwKICAgICAgRWllID0geXgoKTsKICAgIGZ1bmN0aW9uIEtsKGUpIHsKICAgICAgdmFyIHQgPSAtMSwKICAgICAgICByID0gZSA9PSBudWxsID8gMCA6IGUubGVuZ3RoOwogICAgICBmb3IgKHRoaXMuX19kYXRhX18gPSBuZXcgTWllKCk7ICsrdCA8IHI7ICkgdGhpcy5hZGQoZVt0XSk7CiAgICB9CiAgICBLbC5wcm90b3R5cGUuYWRkID0gS2wucHJvdG90eXBlLnB1c2ggPSBBaWU7CiAgICBLbC5wcm90b3R5cGUuaGFzID0gRWllOwogICAgZ3guZXhwb3J0cyA9IEtsOwogIH0pOwogIHZhciBNeCA9IEUoKEhqZSwgYngpID0+IHsKICAgIGZ1bmN0aW9uIFRpZShlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgPSAtMSwgbiA9IGUgPT0gbnVsbCA/IDAgOiBlLmxlbmd0aDsgKytyIDwgbjsgKQogICAgICAgIGlmICh0KGVbcl0sIHIsIGUpKSByZXR1cm4gITA7CiAgICAgIHJldHVybiAhMTsKICAgIH0KICAgIGJ4LmV4cG9ydHMgPSBUaWU7CiAgfSk7CiAgdmFyIEV4ID0gRSgoR2plLCBBeCkgPT4gewogICAgZnVuY3Rpb24gX2llKGUsIHQpIHsKICAgICAgcmV0dXJuIGUuaGFzKHQpOwogICAgfQogICAgQXguZXhwb3J0cyA9IF9pZTsKICB9KTsKICB2YXIgZHkgPSBFKChqamUsIFR4KSA9PiB7CiAgICB2YXIgU2llID0gdngoKSwKICAgICAgT2llID0gTXgoKSwKICAgICAgeGllID0gRXgoKSwKICAgICAgQ2llID0gMSwKICAgICAgUmllID0gMjsKICAgIGZ1bmN0aW9uIElpZShlLCB0LCByLCBuLCBpLCBhKSB7CiAgICAgIHZhciBvID0gciAmIENpZSwKICAgICAgICBzID0gZS5sZW5ndGgsCiAgICAgICAgYyA9IHQubGVuZ3RoOwogICAgICBpZiAocyAhPSBjICYmICEobyAmJiBjID4gcykpIHJldHVybiAhMTsKICAgICAgdmFyIHUgPSBhLmdldChlKSwKICAgICAgICBsID0gYS5nZXQodCk7CiAgICAgIGlmICh1ICYmIGwpIHJldHVybiB1ID09IHQgJiYgbCA9PSBlOwogICAgICB2YXIgcCA9IC0xLAogICAgICAgIGQgPSAhMCwKICAgICAgICBoID0gciAmIFJpZSA/IG5ldyBTaWUoKSA6IHZvaWQgMDsKICAgICAgZm9yIChhLnNldChlLCB0KSwgYS5zZXQodCwgZSk7ICsrcCA8IHM7ICkgewogICAgICAgIHZhciBtID0gZVtwXSwKICAgICAgICAgIHYgPSB0W3BdOwogICAgICAgIGlmIChuKSB2YXIgeSA9IG8gPyBuKHYsIG0sIHAsIHQsIGUsIGEpIDogbihtLCB2LCBwLCBlLCB0LCBhKTsKICAgICAgICBpZiAoeSAhPT0gdm9pZCAwKSB7CiAgICAgICAgICBpZiAoeSkgY29udGludWU7CiAgICAgICAgICBkID0gITE7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKGgpIHsKICAgICAgICAgIGlmICgKICAgICAgICAgICAgIU9pZSh0LCBmdW5jdGlvbiAoZywgTSkgewogICAgICAgICAgICAgIGlmICgheGllKGgsIE0pICYmIChtID09PSBnIHx8IGkobSwgZywgciwgbiwgYSkpKSByZXR1cm4gaC5wdXNoKE0pOwogICAgICAgICAgICB9KQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGQgPSAhMTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmICghKG0gPT09IHYgfHwgaShtLCB2LCByLCBuLCBhKSkpIHsKICAgICAgICAgIGQgPSAhMTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYS5kZWxldGUoZSksIGEuZGVsZXRlKHQpLCBkOwogICAgfQogICAgVHguZXhwb3J0cyA9IElpZTsKICB9KTsKICB2YXIgaHkgPSBFKChZamUsIF94KSA9PiB7CiAgICB2YXIgTGllID0gS3IoKSwKICAgICAgTmllID0gTGllLlVpbnQ4QXJyYXk7CiAgICBfeC5leHBvcnRzID0gTmllOwogIH0pOwogIHZhciBPeCA9IEUoKEtqZSwgU3gpID0+IHsKICAgIGZ1bmN0aW9uIHdpZShlKSB7CiAgICAgIHZhciB0ID0gLTEsCiAgICAgICAgciA9IEFycmF5KGUuc2l6ZSk7CiAgICAgIHJldHVybiAoCiAgICAgICAgZS5mb3JFYWNoKGZ1bmN0aW9uIChuLCBpKSB7CiAgICAgICAgICByWysrdF0gPSBbaSwgbl07CiAgICAgICAgfSksCiAgICAgICAgcgogICAgICApOwogICAgfQogICAgU3guZXhwb3J0cyA9IHdpZTsKICB9KTsKICB2YXIgQ3ggPSBFKCgkamUsIHh4KSA9PiB7CiAgICBmdW5jdGlvbiBQaWUoZSkgewogICAgICB2YXIgdCA9IC0xLAogICAgICAgIHIgPSBBcnJheShlLnNpemUpOwogICAgICByZXR1cm4gKAogICAgICAgIGUuZm9yRWFjaChmdW5jdGlvbiAobikgewogICAgICAgICAgclsrK3RdID0gbjsKICAgICAgICB9KSwKICAgICAgICByCiAgICAgICk7CiAgICB9CiAgICB4eC5leHBvcnRzID0gUGllOwogIH0pOwogIHZhciB3eCA9IEUoKFFqZSwgTngpID0+IHsKICAgIHZhciBSeCA9IFdhKCksCiAgICAgIEl4ID0gaHkoKSwKICAgICAgRGllID0gYXMoKSwKICAgICAgcWllID0gZHkoKSwKICAgICAgemllID0gT3goKSwKICAgICAgRmllID0gQ3goKSwKICAgICAga2llID0gMSwKICAgICAgQmllID0gMiwKICAgICAgV2llID0gIltvYmplY3QgQm9vbGVhbl0iLAogICAgICBVaWUgPSAiW29iamVjdCBEYXRlXSIsCiAgICAgIFhpZSA9ICJbb2JqZWN0IEVycm9yXSIsCiAgICAgIFZpZSA9ICJbb2JqZWN0IE1hcF0iLAogICAgICBIaWUgPSAiW29iamVjdCBOdW1iZXJdIiwKICAgICAgR2llID0gIltvYmplY3QgUmVnRXhwXSIsCiAgICAgIGppZSA9ICJbb2JqZWN0IFNldF0iLAogICAgICBZaWUgPSAiW29iamVjdCBTdHJpbmddIiwKICAgICAgS2llID0gIltvYmplY3QgU3ltYm9sXSIsCiAgICAgICRpZSA9ICJbb2JqZWN0IEFycmF5QnVmZmVyXSIsCiAgICAgIFFpZSA9ICJbb2JqZWN0IERhdGFWaWV3XSIsCiAgICAgIEx4ID0gUnggPyBSeC5wcm90b3R5cGUgOiB2b2lkIDAsCiAgICAgIG15ID0gTHggPyBMeC52YWx1ZU9mIDogdm9pZCAwOwogICAgZnVuY3Rpb24gSmllKGUsIHQsIHIsIG4sIGksIGEsIG8pIHsKICAgICAgc3dpdGNoIChyKSB7CiAgICAgICAgY2FzZSBRaWU6CiAgICAgICAgICBpZiAoZS5ieXRlTGVuZ3RoICE9IHQuYnl0ZUxlbmd0aCB8fCBlLmJ5dGVPZmZzZXQgIT0gdC5ieXRlT2Zmc2V0KQogICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgICAoZSA9IGUuYnVmZmVyKSwgKHQgPSB0LmJ1ZmZlcik7CiAgICAgICAgY2FzZSAkaWU6CiAgICAgICAgICByZXR1cm4gIShlLmJ5dGVMZW5ndGggIT0gdC5ieXRlTGVuZ3RoIHx8ICFhKG5ldyBJeChlKSwgbmV3IEl4KHQpKSk7CiAgICAgICAgY2FzZSBXaWU6CiAgICAgICAgY2FzZSBVaWU6CiAgICAgICAgY2FzZSBIaWU6CiAgICAgICAgICByZXR1cm4gRGllKCtlLCArdCk7CiAgICAgICAgY2FzZSBYaWU6CiAgICAgICAgICByZXR1cm4gZS5uYW1lID09IHQubmFtZSAmJiBlLm1lc3NhZ2UgPT0gdC5tZXNzYWdlOwogICAgICAgIGNhc2UgR2llOgogICAgICAgIGNhc2UgWWllOgogICAgICAgICAgcmV0dXJuIGUgPT0gdCArICIiOwogICAgICAgIGNhc2UgVmllOgogICAgICAgICAgdmFyIHMgPSB6aWU7CiAgICAgICAgY2FzZSBqaWU6CiAgICAgICAgICB2YXIgYyA9IG4gJiBraWU7CiAgICAgICAgICBpZiAoKHMgfHwgKHMgPSBGaWUpLCBlLnNpemUgIT0gdC5zaXplICYmICFjKSkgcmV0dXJuICExOwogICAgICAgICAgdmFyIHUgPSBvLmdldChlKTsKICAgICAgICAgIGlmICh1KSByZXR1cm4gdSA9PSB0OwogICAgICAgICAgKG4gfD0gQmllKSwgby5zZXQoZSwgdCk7CiAgICAgICAgICB2YXIgbCA9IHFpZShzKGUpLCBzKHQpLCBuLCBpLCBhLCBvKTsKICAgICAgICAgIHJldHVybiBvLmRlbGV0ZShlKSwgbDsKICAgICAgICBjYXNlIEtpZToKICAgICAgICAgIGlmIChteSkgcmV0dXJuIG15LmNhbGwoZSkgPT0gbXkuY2FsbCh0KTsKICAgICAgfQogICAgICByZXR1cm4gITE7CiAgICB9CiAgICBOeC5leHBvcnRzID0gSmllOwogIH0pOwogIHZhciAkbCA9IEUoKEpqZSwgUHgpID0+IHsKICAgIGZ1bmN0aW9uIFppZShlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgPSAtMSwgbiA9IHQubGVuZ3RoLCBpID0gZS5sZW5ndGg7ICsrciA8IG47ICkgZVtpICsgcl0gPSB0W3JdOwogICAgICByZXR1cm4gZTsKICAgIH0KICAgIFB4LmV4cG9ydHMgPSBaaWU7CiAgfSk7CiAgdmFyIFJ0ID0gRSgoWmplLCBEeCkgPT4gewogICAgdmFyIGVhZSA9IEFycmF5LmlzQXJyYXk7CiAgICBEeC5leHBvcnRzID0gZWFlOwogIH0pOwogIHZhciB5eSA9IEUoKGVZZSwgcXgpID0+IHsKICAgIHZhciB0YWUgPSAkbCgpLAogICAgICByYWUgPSBSdCgpOwogICAgZnVuY3Rpb24gbmFlKGUsIHQsIHIpIHsKICAgICAgdmFyIG4gPSB0KGUpOwogICAgICByZXR1cm4gcmFlKGUpID8gbiA6IHRhZShuLCByKGUpKTsKICAgIH0KICAgIHF4LmV4cG9ydHMgPSBuYWU7CiAgfSk7CiAgdmFyIEZ4ID0gRSgodFllLCB6eCkgPT4gewogICAgZnVuY3Rpb24gaWFlKGUsIHQpIHsKICAgICAgZm9yICh2YXIgciA9IC0xLCBuID0gZSA9PSBudWxsID8gMCA6IGUubGVuZ3RoLCBpID0gMCwgYSA9IFtdOyArK3IgPCBuOyApIHsKICAgICAgICB2YXIgbyA9IGVbcl07CiAgICAgICAgdChvLCByLCBlKSAmJiAoYVtpKytdID0gbyk7CiAgICAgIH0KICAgICAgcmV0dXJuIGE7CiAgICB9CiAgICB6eC5leHBvcnRzID0gaWFlOwogIH0pOwogIHZhciBneSA9IEUoKHJZZSwga3gpID0+IHsKICAgIGZ1bmN0aW9uIGFhZSgpIHsKICAgICAgcmV0dXJuIFtdOwogICAgfQogICAga3guZXhwb3J0cyA9IGFhZTsKICB9KTsKICB2YXIgUWwgPSBFKChuWWUsIFd4KSA9PiB7CiAgICB2YXIgb2FlID0gRngoKSwKICAgICAgc2FlID0gZ3koKSwKICAgICAgY2FlID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgdWFlID0gY2FlLnByb3BlcnR5SXNFbnVtZXJhYmxlLAogICAgICBCeCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsCiAgICAgIGxhZSA9IEJ4CiAgICAgICAgPyBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gZSA9PSBudWxsCiAgICAgICAgICAgICAgPyBbXQogICAgICAgICAgICAgIDogKChlID0gT2JqZWN0KGUpKSwKICAgICAgICAgICAgICAgIG9hZShCeChlKSwgZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHVhZS5jYWxsKGUsIHQpOwogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgfQogICAgICAgIDogc2FlOwogICAgV3guZXhwb3J0cyA9IGxhZTsKICB9KTsKICB2YXIgWHggPSBFKChpWWUsIFV4KSA9PiB7CiAgICBmdW5jdGlvbiBmYWUoZSwgdCkgewogICAgICBmb3IgKHZhciByID0gLTEsIG4gPSBBcnJheShlKTsgKytyIDwgZTsgKSBuW3JdID0gdChyKTsKICAgICAgcmV0dXJuIG47CiAgICB9CiAgICBVeC5leHBvcnRzID0gZmFlOwogIH0pOwogIHZhciBUciA9IEUoKGFZZSwgVngpID0+IHsKICAgIGZ1bmN0aW9uIHBhZShlKSB7CiAgICAgIHJldHVybiBlICE9IG51bGwgJiYgdHlwZW9mIGUgPT0gIm9iamVjdCI7CiAgICB9CiAgICBWeC5leHBvcnRzID0gcGFlOwogIH0pOwogIHZhciBHeCA9IEUoKG9ZZSwgSHgpID0+IHsKICAgIHZhciBkYWUgPSBEbigpLAogICAgICBoYWUgPSBUcigpLAogICAgICBtYWUgPSAiW29iamVjdCBBcmd1bWVudHNdIjsKICAgIGZ1bmN0aW9uIHlhZShlKSB7CiAgICAgIHJldHVybiBoYWUoZSkgJiYgZGFlKGUpID09IG1hZTsKICAgIH0KICAgIEh4LmV4cG9ydHMgPSB5YWU7CiAgfSk7CiAgdmFyIGxzID0gRSgoc1llLCBLeCkgPT4gewogICAgdmFyIGp4ID0gR3goKSwKICAgICAgZ2FlID0gVHIoKSwKICAgICAgWXggPSBPYmplY3QucHJvdG90eXBlLAogICAgICB2YWUgPSBZeC5oYXNPd25Qcm9wZXJ0eSwKICAgICAgYmFlID0gWXgucHJvcGVydHlJc0VudW1lcmFibGUsCiAgICAgIE1hZSA9IGp4KAogICAgICAgIChmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOwogICAgICAgIH0pKCkKICAgICAgKQogICAgICAgID8gangKICAgICAgICA6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiBnYWUoZSkgJiYgdmFlLmNhbGwoZSwgImNhbGxlZSIpICYmICFiYWUuY2FsbChlLCAiY2FsbGVlIik7CiAgICAgICAgICB9OwogICAgS3guZXhwb3J0cyA9IE1hZTsKICB9KTsKICB2YXIgUXggPSBFKChjWWUsICR4KSA9PiB7CiAgICBmdW5jdGlvbiBBYWUoKSB7CiAgICAgIHJldHVybiAhMTsKICAgIH0KICAgICR4LmV4cG9ydHMgPSBBYWU7CiAgfSk7CiAgdmFyIFhhID0gRSgocTEsIGZzKSA9PiB7CiAgICB2YXIgRWFlID0gS3IoKSwKICAgICAgVGFlID0gUXgoKSwKICAgICAgZUMgPSB0eXBlb2YgcTEgPT0gIm9iamVjdCIgJiYgcTEgJiYgIXExLm5vZGVUeXBlICYmIHExLAogICAgICBKeCA9IGVDICYmIHR5cGVvZiBmcyA9PSAib2JqZWN0IiAmJiBmcyAmJiAhZnMubm9kZVR5cGUgJiYgZnMsCiAgICAgIF9hZSA9IEp4ICYmIEp4LmV4cG9ydHMgPT09IGVDLAogICAgICBaeCA9IF9hZSA/IEVhZS5CdWZmZXIgOiB2b2lkIDAsCiAgICAgIFNhZSA9IFp4ID8gWnguaXNCdWZmZXIgOiB2b2lkIDAsCiAgICAgIE9hZSA9IFNhZSB8fCBUYWU7CiAgICBmcy5leHBvcnRzID0gT2FlOwogIH0pOwogIHZhciB6MSA9IEUoKHVZZSwgdEMpID0+IHsKICAgIHZhciB4YWUgPSA5MDA3MTk5MjU0NzQwOTkxLAogICAgICBDYWUgPSAvXig/OjB8WzEtOV1cZCopJC87CiAgICBmdW5jdGlvbiBSYWUoZSwgdCkgewogICAgICB2YXIgciA9IHR5cGVvZiBlOwogICAgICByZXR1cm4gKAogICAgICAgICh0ID0gdCA/PyB4YWUpLAogICAgICAgICEhdCAmJgogICAgICAgICAgKHIgPT0gIm51bWJlciIgfHwgKHIgIT0gInN5bWJvbCIgJiYgQ2FlLnRlc3QoZSkpKSAmJgogICAgICAgICAgZSA+IC0xICYmCiAgICAgICAgICBlICUgMSA9PSAwICYmCiAgICAgICAgICBlIDwgdAogICAgICApOwogICAgfQogICAgdEMuZXhwb3J0cyA9IFJhZTsKICB9KTsKICB2YXIgSmwgPSBFKChsWWUsIHJDKSA9PiB7CiAgICB2YXIgSWFlID0gOTAwNzE5OTI1NDc0MDk5MTsKICAgIGZ1bmN0aW9uIExhZShlKSB7CiAgICAgIHJldHVybiB0eXBlb2YgZSA9PSAibnVtYmVyIiAmJiBlID4gLTEgJiYgZSAlIDEgPT0gMCAmJiBlIDw9IElhZTsKICAgIH0KICAgIHJDLmV4cG9ydHMgPSBMYWU7CiAgfSk7CiAgdmFyIGlDID0gRSgoZlllLCBuQykgPT4gewogICAgdmFyIE5hZSA9IERuKCksCiAgICAgIHdhZSA9IEpsKCksCiAgICAgIFBhZSA9IFRyKCksCiAgICAgIERhZSA9ICJbb2JqZWN0IEFyZ3VtZW50c10iLAogICAgICBxYWUgPSAiW29iamVjdCBBcnJheV0iLAogICAgICB6YWUgPSAiW29iamVjdCBCb29sZWFuXSIsCiAgICAgIEZhZSA9ICJbb2JqZWN0IERhdGVdIiwKICAgICAga2FlID0gIltvYmplY3QgRXJyb3JdIiwKICAgICAgQmFlID0gIltvYmplY3QgRnVuY3Rpb25dIiwKICAgICAgV2FlID0gIltvYmplY3QgTWFwXSIsCiAgICAgIFVhZSA9ICJbb2JqZWN0IE51bWJlcl0iLAogICAgICBYYWUgPSAiW29iamVjdCBPYmplY3RdIiwKICAgICAgVmFlID0gIltvYmplY3QgUmVnRXhwXSIsCiAgICAgIEhhZSA9ICJbb2JqZWN0IFNldF0iLAogICAgICBHYWUgPSAiW29iamVjdCBTdHJpbmddIiwKICAgICAgamFlID0gIltvYmplY3QgV2Vha01hcF0iLAogICAgICBZYWUgPSAiW29iamVjdCBBcnJheUJ1ZmZlcl0iLAogICAgICBLYWUgPSAiW29iamVjdCBEYXRhVmlld10iLAogICAgICAkYWUgPSAiW29iamVjdCBGbG9hdDMyQXJyYXldIiwKICAgICAgUWFlID0gIltvYmplY3QgRmxvYXQ2NEFycmF5XSIsCiAgICAgIEphZSA9ICJbb2JqZWN0IEludDhBcnJheV0iLAogICAgICBaYWUgPSAiW29iamVjdCBJbnQxNkFycmF5XSIsCiAgICAgIGVvZSA9ICJbb2JqZWN0IEludDMyQXJyYXldIiwKICAgICAgdG9lID0gIltvYmplY3QgVWludDhBcnJheV0iLAogICAgICByb2UgPSAiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLAogICAgICBub2UgPSAiW29iamVjdCBVaW50MTZBcnJheV0iLAogICAgICBpb2UgPSAiW29iamVjdCBVaW50MzJBcnJheV0iLAogICAgICBodCA9IHt9OwogICAgaHRbJGFlXSA9CiAgICAgIGh0W1FhZV0gPQogICAgICBodFtKYWVdID0KICAgICAgaHRbWmFlXSA9CiAgICAgIGh0W2VvZV0gPQogICAgICBodFt0b2VdID0KICAgICAgaHRbcm9lXSA9CiAgICAgIGh0W25vZV0gPQogICAgICBodFtpb2VdID0KICAgICAgICAhMDsKICAgIGh0W0RhZV0gPQogICAgICBodFtxYWVdID0KICAgICAgaHRbWWFlXSA9CiAgICAgIGh0W3phZV0gPQogICAgICBodFtLYWVdID0KICAgICAgaHRbRmFlXSA9CiAgICAgIGh0W2thZV0gPQogICAgICBodFtCYWVdID0KICAgICAgaHRbV2FlXSA9CiAgICAgIGh0W1VhZV0gPQogICAgICBodFtYYWVdID0KICAgICAgaHRbVmFlXSA9CiAgICAgIGh0W0hhZV0gPQogICAgICBodFtHYWVdID0KICAgICAgaHRbamFlXSA9CiAgICAgICAgITE7CiAgICBmdW5jdGlvbiBhb2UoZSkgewogICAgICByZXR1cm4gUGFlKGUpICYmIHdhZShlLmxlbmd0aCkgJiYgISFodFtOYWUoZSldOwogICAgfQogICAgbkMuZXhwb3J0cyA9IGFvZTsKICB9KTsKICB2YXIgWmwgPSBFKChwWWUsIGFDKSA9PiB7CiAgICBmdW5jdGlvbiBvb2UoZSkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKHQpIHsKICAgICAgICByZXR1cm4gZSh0KTsKICAgICAgfTsKICAgIH0KICAgIGFDLmV4cG9ydHMgPSBvb2U7CiAgfSk7CiAgdmFyIGVmID0gRSgoRjEsIHBzKSA9PiB7CiAgICB2YXIgc29lID0gbHkoKSwKICAgICAgb0MgPSB0eXBlb2YgRjEgPT0gIm9iamVjdCIgJiYgRjEgJiYgIUYxLm5vZGVUeXBlICYmIEYxLAogICAgICBrMSA9IG9DICYmIHR5cGVvZiBwcyA9PSAib2JqZWN0IiAmJiBwcyAmJiAhcHMubm9kZVR5cGUgJiYgcHMsCiAgICAgIGNvZSA9IGsxICYmIGsxLmV4cG9ydHMgPT09IG9DLAogICAgICB2eSA9IGNvZSAmJiBzb2UucHJvY2VzcywKICAgICAgdW9lID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIGUgPSBrMSAmJiBrMS5yZXF1aXJlICYmIGsxLnJlcXVpcmUoInV0aWwiKS50eXBlczsKICAgICAgICAgIHJldHVybiBlIHx8ICh2eSAmJiB2eS5iaW5kaW5nICYmIHZ5LmJpbmRpbmcoInV0aWwiKSk7CiAgICAgICAgfSBjYXRjaCB7fQogICAgICB9KSgpOwogICAgcHMuZXhwb3J0cyA9IHVvZTsKICB9KTsKICB2YXIgZHMgPSBFKChkWWUsIHVDKSA9PiB7CiAgICB2YXIgbG9lID0gaUMoKSwKICAgICAgZm9lID0gWmwoKSwKICAgICAgc0MgPSBlZigpLAogICAgICBjQyA9IHNDICYmIHNDLmlzVHlwZWRBcnJheSwKICAgICAgcG9lID0gY0MgPyBmb2UoY0MpIDogbG9lOwogICAgdUMuZXhwb3J0cyA9IHBvZTsKICB9KTsKICB2YXIgYnkgPSBFKChoWWUsIGxDKSA9PiB7CiAgICB2YXIgZG9lID0gWHgoKSwKICAgICAgaG9lID0gbHMoKSwKICAgICAgbW9lID0gUnQoKSwKICAgICAgeW9lID0gWGEoKSwKICAgICAgZ29lID0gejEoKSwKICAgICAgdm9lID0gZHMoKSwKICAgICAgYm9lID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgTW9lID0gYm9lLmhhc093blByb3BlcnR5OwogICAgZnVuY3Rpb24gQW9lKGUsIHQpIHsKICAgICAgdmFyIHIgPSBtb2UoZSksCiAgICAgICAgbiA9ICFyICYmIGhvZShlKSwKICAgICAgICBpID0gIXIgJiYgIW4gJiYgeW9lKGUpLAogICAgICAgIGEgPSAhciAmJiAhbiAmJiAhaSAmJiB2b2UoZSksCiAgICAgICAgbyA9IHIgfHwgbiB8fCBpIHx8IGEsCiAgICAgICAgcyA9IG8gPyBkb2UoZS5sZW5ndGgsIFN0cmluZykgOiBbXSwKICAgICAgICBjID0gcy5sZW5ndGg7CiAgICAgIGZvciAodmFyIHUgaW4gZSkKICAgICAgICAodCB8fCBNb2UuY2FsbChlLCB1KSkgJiYKICAgICAgICAgICEoCiAgICAgICAgICAgIG8gJiYKICAgICAgICAgICAgKHUgPT0gImxlbmd0aCIgfHwKICAgICAgICAgICAgICAoaSAmJiAodSA9PSAib2Zmc2V0IiB8fCB1ID09ICJwYXJlbnQiKSkgfHwKICAgICAgICAgICAgICAoYSAmJgogICAgICAgICAgICAgICAgKHUgPT0gImJ1ZmZlciIgfHwgdSA9PSAiYnl0ZUxlbmd0aCIgfHwgdSA9PSAiYnl0ZU9mZnNldCIpKSB8fAogICAgICAgICAgICAgIGdvZSh1LCBjKSkKICAgICAgICAgICkgJiYKICAgICAgICAgIHMucHVzaCh1KTsKICAgICAgcmV0dXJuIHM7CiAgICB9CiAgICBsQy5leHBvcnRzID0gQW9lOwogIH0pOwogIHZhciBCMSA9IEUoKG1ZZSwgZkMpID0+IHsKICAgIHZhciBFb2UgPSBPYmplY3QucHJvdG90eXBlOwogICAgZnVuY3Rpb24gVG9lKGUpIHsKICAgICAgdmFyIHQgPSBlICYmIGUuY29uc3RydWN0b3IsCiAgICAgICAgciA9ICh0eXBlb2YgdCA9PSAiZnVuY3Rpb24iICYmIHQucHJvdG90eXBlKSB8fCBFb2U7CiAgICAgIHJldHVybiBlID09PSByOwogICAgfQogICAgZkMuZXhwb3J0cyA9IFRvZTsKICB9KTsKICB2YXIgTXkgPSBFKCh5WWUsIHBDKSA9PiB7CiAgICBmdW5jdGlvbiBfb2UoZSwgdCkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKHIpIHsKICAgICAgICByZXR1cm4gZSh0KHIpKTsKICAgICAgfTsKICAgIH0KICAgIHBDLmV4cG9ydHMgPSBfb2U7CiAgfSk7CiAgdmFyIGhDID0gRSgoZ1llLCBkQykgPT4gewogICAgdmFyIFNvZSA9IE15KCksCiAgICAgIE9vZSA9IFNvZShPYmplY3Qua2V5cywgT2JqZWN0KTsKICAgIGRDLmV4cG9ydHMgPSBPb2U7CiAgfSk7CiAgdmFyIHRmID0gRSgodlllLCBtQykgPT4gewogICAgdmFyIHhvZSA9IEIxKCksCiAgICAgIENvZSA9IGhDKCksCiAgICAgIFJvZSA9IE9iamVjdC5wcm90b3R5cGUsCiAgICAgIElvZSA9IFJvZS5oYXNPd25Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIExvZShlKSB7CiAgICAgIGlmICgheG9lKGUpKSByZXR1cm4gQ29lKGUpOwogICAgICB2YXIgdCA9IFtdOwogICAgICBmb3IgKHZhciByIGluIE9iamVjdChlKSkKICAgICAgICBJb2UuY2FsbChlLCByKSAmJiByICE9ICJjb25zdHJ1Y3RvciIgJiYgdC5wdXNoKHIpOwogICAgICByZXR1cm4gdDsKICAgIH0KICAgIG1DLmV4cG9ydHMgPSBMb2U7CiAgfSk7CiAgdmFyIHBpID0gRSgoYlllLCB5QykgPT4gewogICAgdmFyIE5vZSA9IFVhKCksCiAgICAgIHdvZSA9IEpsKCk7CiAgICBmdW5jdGlvbiBQb2UoZSkgewogICAgICByZXR1cm4gZSAhPSBudWxsICYmIHdvZShlLmxlbmd0aCkgJiYgIU5vZShlKTsKICAgIH0KICAgIHlDLmV4cG9ydHMgPSBQb2U7CiAgfSk7CiAgdmFyIFZhID0gRSgoTVllLCBnQykgPT4gewogICAgdmFyIERvZSA9IGJ5KCksCiAgICAgIHFvZSA9IHRmKCksCiAgICAgIHpvZSA9IHBpKCk7CiAgICBmdW5jdGlvbiBGb2UoZSkgewogICAgICByZXR1cm4gem9lKGUpID8gRG9lKGUpIDogcW9lKGUpOwogICAgfQogICAgZ0MuZXhwb3J0cyA9IEZvZTsKICB9KTsKICB2YXIgQXkgPSBFKChBWWUsIHZDKSA9PiB7CiAgICB2YXIga29lID0geXkoKSwKICAgICAgQm9lID0gUWwoKSwKICAgICAgV29lID0gVmEoKTsKICAgIGZ1bmN0aW9uIFVvZShlKSB7CiAgICAgIHJldHVybiBrb2UoZSwgV29lLCBCb2UpOwogICAgfQogICAgdkMuZXhwb3J0cyA9IFVvZTsKICB9KTsKICB2YXIgQUMgPSBFKChFWWUsIE1DKSA9PiB7CiAgICB2YXIgYkMgPSBBeSgpLAogICAgICBYb2UgPSAxLAogICAgICBWb2UgPSBPYmplY3QucHJvdG90eXBlLAogICAgICBIb2UgPSBWb2UuaGFzT3duUHJvcGVydHk7CiAgICBmdW5jdGlvbiBHb2UoZSwgdCwgciwgbiwgaSwgYSkgewogICAgICB2YXIgbyA9IHIgJiBYb2UsCiAgICAgICAgcyA9IGJDKGUpLAogICAgICAgIGMgPSBzLmxlbmd0aCwKICAgICAgICB1ID0gYkModCksCiAgICAgICAgbCA9IHUubGVuZ3RoOwogICAgICBpZiAoYyAhPSBsICYmICFvKSByZXR1cm4gITE7CiAgICAgIGZvciAodmFyIHAgPSBjOyBwLS07ICkgewogICAgICAgIHZhciBkID0gc1twXTsKICAgICAgICBpZiAoIShvID8gZCBpbiB0IDogSG9lLmNhbGwodCwgZCkpKSByZXR1cm4gITE7CiAgICAgIH0KICAgICAgdmFyIGggPSBhLmdldChlKSwKICAgICAgICBtID0gYS5nZXQodCk7CiAgICAgIGlmIChoICYmIG0pIHJldHVybiBoID09IHQgJiYgbSA9PSBlOwogICAgICB2YXIgdiA9ICEwOwogICAgICBhLnNldChlLCB0KSwgYS5zZXQodCwgZSk7CiAgICAgIGZvciAodmFyIHkgPSBvOyArK3AgPCBjOyApIHsKICAgICAgICBkID0gc1twXTsKICAgICAgICB2YXIgZyA9IGVbZF0sCiAgICAgICAgICBNID0gdFtkXTsKICAgICAgICBpZiAobikgdmFyIEEgPSBvID8gbihNLCBnLCBkLCB0LCBlLCBhKSA6IG4oZywgTSwgZCwgZSwgdCwgYSk7CiAgICAgICAgaWYgKCEoQSA9PT0gdm9pZCAwID8gZyA9PT0gTSB8fCBpKGcsIE0sIHIsIG4sIGEpIDogQSkpIHsKICAgICAgICAgIHYgPSAhMTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICB5IHx8ICh5ID0gZCA9PSAiY29uc3RydWN0b3IiKTsKICAgICAgfQogICAgICBpZiAodiAmJiAheSkgewogICAgICAgIHZhciBfID0gZS5jb25zdHJ1Y3RvciwKICAgICAgICAgIEMgPSB0LmNvbnN0cnVjdG9yOwogICAgICAgIF8gIT0gQyAmJgogICAgICAgICAgImNvbnN0cnVjdG9yIiBpbiBlICYmCiAgICAgICAgICAiY29uc3RydWN0b3IiIGluIHQgJiYKICAgICAgICAgICEoCiAgICAgICAgICAgIHR5cGVvZiBfID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgXyBpbnN0YW5jZW9mIF8gJiYKICAgICAgICAgICAgdHlwZW9mIEMgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICBDIGluc3RhbmNlb2YgQwogICAgICAgICAgKSAmJgogICAgICAgICAgKHYgPSAhMSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGEuZGVsZXRlKGUpLCBhLmRlbGV0ZSh0KSwgdjsKICAgIH0KICAgIE1DLmV4cG9ydHMgPSBHb2U7CiAgfSk7CiAgdmFyIFRDID0gRSgoVFllLCBFQykgPT4gewogICAgdmFyIGpvZSA9IFFpKCksCiAgICAgIFlvZSA9IEtyKCksCiAgICAgIEtvZSA9IGpvZShZb2UsICJEYXRhVmlldyIpOwogICAgRUMuZXhwb3J0cyA9IEtvZTsKICB9KTsKICB2YXIgU0MgPSBFKChfWWUsIF9DKSA9PiB7CiAgICB2YXIgJG9lID0gUWkoKSwKICAgICAgUW9lID0gS3IoKSwKICAgICAgSm9lID0gJG9lKFFvZSwgIlByb21pc2UiKTsKICAgIF9DLmV4cG9ydHMgPSBKb2U7CiAgfSk7CiAgdmFyIHhDID0gRSgoU1llLCBPQykgPT4gewogICAgdmFyIFpvZSA9IFFpKCksCiAgICAgIGVzZSA9IEtyKCksCiAgICAgIHRzZSA9IFpvZShlc2UsICJTZXQiKTsKICAgIE9DLmV4cG9ydHMgPSB0c2U7CiAgfSk7CiAgdmFyIEV5ID0gRSgoT1llLCBDQykgPT4gewogICAgdmFyIHJzZSA9IFFpKCksCiAgICAgIG5zZSA9IEtyKCksCiAgICAgIGlzZSA9IHJzZShuc2UsICJXZWFrTWFwIik7CiAgICBDQy5leHBvcnRzID0gaXNlOwogIH0pOwogIHZhciBHYSA9IEUoKHhZZSwgREMpID0+IHsKICAgIHZhciBUeSA9IFRDKCksCiAgICAgIF95ID0gamwoKSwKICAgICAgU3kgPSBTQygpLAogICAgICBPeSA9IHhDKCksCiAgICAgIHh5ID0gRXkoKSwKICAgICAgUEMgPSBEbigpLAogICAgICBocyA9IHB5KCksCiAgICAgIFJDID0gIltvYmplY3QgTWFwXSIsCiAgICAgIGFzZSA9ICJbb2JqZWN0IE9iamVjdF0iLAogICAgICBJQyA9ICJbb2JqZWN0IFByb21pc2VdIiwKICAgICAgTEMgPSAiW29iamVjdCBTZXRdIiwKICAgICAgTkMgPSAiW29iamVjdCBXZWFrTWFwXSIsCiAgICAgIHdDID0gIltvYmplY3QgRGF0YVZpZXddIiwKICAgICAgb3NlID0gaHMoVHkpLAogICAgICBzc2UgPSBocyhfeSksCiAgICAgIGNzZSA9IGhzKFN5KSwKICAgICAgdXNlID0gaHMoT3kpLAogICAgICBsc2UgPSBocyh4eSksCiAgICAgIEhhID0gUEM7CiAgICAoKFR5ICYmIEhhKG5ldyBUeShuZXcgQXJyYXlCdWZmZXIoMSkpKSAhPSB3QykgfHwKICAgICAgKF95ICYmIEhhKG5ldyBfeSgpKSAhPSBSQykgfHwKICAgICAgKFN5ICYmIEhhKFN5LnJlc29sdmUoKSkgIT0gSUMpIHx8CiAgICAgIChPeSAmJiBIYShuZXcgT3koKSkgIT0gTEMpIHx8CiAgICAgICh4eSAmJiBIYShuZXcgeHkoKSkgIT0gTkMpKSAmJgogICAgICAoSGEgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0ID0gUEMoZSksCiAgICAgICAgICByID0gdCA9PSBhc2UgPyBlLmNvbnN0cnVjdG9yIDogdm9pZCAwLAogICAgICAgICAgbiA9IHIgPyBocyhyKSA6ICIiOwogICAgICAgIGlmIChuKQogICAgICAgICAgc3dpdGNoIChuKSB7CiAgICAgICAgICAgIGNhc2Ugb3NlOgogICAgICAgICAgICAgIHJldHVybiB3QzsKICAgICAgICAgICAgY2FzZSBzc2U6CiAgICAgICAgICAgICAgcmV0dXJuIFJDOwogICAgICAgICAgICBjYXNlIGNzZToKICAgICAgICAgICAgICByZXR1cm4gSUM7CiAgICAgICAgICAgIGNhc2UgdXNlOgogICAgICAgICAgICAgIHJldHVybiBMQzsKICAgICAgICAgICAgY2FzZSBsc2U6CiAgICAgICAgICAgICAgcmV0dXJuIE5DOwogICAgICAgICAgfQogICAgICAgIHJldHVybiB0OwogICAgICB9KTsKICAgIERDLmV4cG9ydHMgPSBIYTsKICB9KTsKICB2YXIgWEMgPSBFKChDWWUsIFVDKSA9PiB7CiAgICB2YXIgQ3kgPSBEMSgpLAogICAgICBmc2UgPSBkeSgpLAogICAgICBwc2UgPSB3eCgpLAogICAgICBkc2UgPSBBQygpLAogICAgICBxQyA9IEdhKCksCiAgICAgIHpDID0gUnQoKSwKICAgICAgRkMgPSBYYSgpLAogICAgICBoc2UgPSBkcygpLAogICAgICBtc2UgPSAxLAogICAgICBrQyA9ICJbb2JqZWN0IEFyZ3VtZW50c10iLAogICAgICBCQyA9ICJbb2JqZWN0IEFycmF5XSIsCiAgICAgIHJmID0gIltvYmplY3QgT2JqZWN0XSIsCiAgICAgIHlzZSA9IE9iamVjdC5wcm90b3R5cGUsCiAgICAgIFdDID0geXNlLmhhc093blByb3BlcnR5OwogICAgZnVuY3Rpb24gZ3NlKGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgdmFyIG8gPSB6QyhlKSwKICAgICAgICBzID0gekModCksCiAgICAgICAgYyA9IG8gPyBCQyA6IHFDKGUpLAogICAgICAgIHUgPSBzID8gQkMgOiBxQyh0KTsKICAgICAgKGMgPSBjID09IGtDID8gcmYgOiBjKSwgKHUgPSB1ID09IGtDID8gcmYgOiB1KTsKICAgICAgdmFyIGwgPSBjID09IHJmLAogICAgICAgIHAgPSB1ID09IHJmLAogICAgICAgIGQgPSBjID09IHU7CiAgICAgIGlmIChkICYmIEZDKGUpKSB7CiAgICAgICAgaWYgKCFGQyh0KSkgcmV0dXJuICExOwogICAgICAgIChvID0gITApLCAobCA9ICExKTsKICAgICAgfQogICAgICBpZiAoZCAmJiAhbCkKICAgICAgICByZXR1cm4gKAogICAgICAgICAgYSB8fCAoYSA9IG5ldyBDeSgpKSwKICAgICAgICAgIG8gfHwgaHNlKGUpID8gZnNlKGUsIHQsIHIsIG4sIGksIGEpIDogcHNlKGUsIHQsIGMsIHIsIG4sIGksIGEpCiAgICAgICAgKTsKICAgICAgaWYgKCEociAmIG1zZSkpIHsKICAgICAgICB2YXIgaCA9IGwgJiYgV0MuY2FsbChlLCAiX193cmFwcGVkX18iKSwKICAgICAgICAgIG0gPSBwICYmIFdDLmNhbGwodCwgIl9fd3JhcHBlZF9fIik7CiAgICAgICAgaWYgKGggfHwgbSkgewogICAgICAgICAgdmFyIHYgPSBoID8gZS52YWx1ZSgpIDogZSwKICAgICAgICAgICAgeSA9IG0gPyB0LnZhbHVlKCkgOiB0OwogICAgICAgICAgcmV0dXJuIGEgfHwgKGEgPSBuZXcgQ3koKSksIGkodiwgeSwgciwgbiwgYSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBkID8gKGEgfHwgKGEgPSBuZXcgQ3koKSksIGRzZShlLCB0LCByLCBuLCBpLCBhKSkgOiAhMTsKICAgIH0KICAgIFVDLmV4cG9ydHMgPSBnc2U7CiAgfSk7CiAgdmFyIFJ5ID0gRSgoUlllLCBHQykgPT4gewogICAgdmFyIHZzZSA9IFhDKCksCiAgICAgIFZDID0gVHIoKTsKICAgIGZ1bmN0aW9uIEhDKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgcmV0dXJuIGUgPT09IHQKICAgICAgICA/ICEwCiAgICAgICAgOiBlID09IG51bGwgfHwgdCA9PSBudWxsIHx8ICghVkMoZSkgJiYgIVZDKHQpKQogICAgICAgID8gZSAhPT0gZSAmJiB0ICE9PSB0CiAgICAgICAgOiB2c2UoZSwgdCwgciwgbiwgSEMsIGkpOwogICAgfQogICAgR0MuZXhwb3J0cyA9IEhDOwogIH0pOwogIHZhciBZQyA9IEUoKElZZSwgakMpID0+IHsKICAgIHZhciBic2UgPSBEMSgpLAogICAgICBNc2UgPSBSeSgpLAogICAgICBBc2UgPSAxLAogICAgICBFc2UgPSAyOwogICAgZnVuY3Rpb24gVHNlKGUsIHQsIHIsIG4pIHsKICAgICAgdmFyIGkgPSByLmxlbmd0aCwKICAgICAgICBhID0gaSwKICAgICAgICBvID0gIW47CiAgICAgIGlmIChlID09IG51bGwpIHJldHVybiAhYTsKICAgICAgZm9yIChlID0gT2JqZWN0KGUpOyBpLS07ICkgewogICAgICAgIHZhciBzID0gcltpXTsKICAgICAgICBpZiAobyAmJiBzWzJdID8gc1sxXSAhPT0gZVtzWzBdXSA6ICEoc1swXSBpbiBlKSkgcmV0dXJuICExOwogICAgICB9CiAgICAgIGZvciAoOyArK2kgPCBhOyApIHsKICAgICAgICBzID0gcltpXTsKICAgICAgICB2YXIgYyA9IHNbMF0sCiAgICAgICAgICB1ID0gZVtjXSwKICAgICAgICAgIGwgPSBzWzFdOwogICAgICAgIGlmIChvICYmIHNbMl0pIHsKICAgICAgICAgIGlmICh1ID09PSB2b2lkIDAgJiYgIShjIGluIGUpKSByZXR1cm4gITE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhciBwID0gbmV3IGJzZSgpOwogICAgICAgICAgaWYgKG4pIHZhciBkID0gbih1LCBsLCBjLCBlLCB0LCBwKTsKICAgICAgICAgIGlmICghKGQgPT09IHZvaWQgMCA/IE1zZShsLCB1LCBBc2UgfCBFc2UsIG4sIHApIDogZCkpIHJldHVybiAhMTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuICEwOwogICAgfQogICAgakMuZXhwb3J0cyA9IFRzZTsKICB9KTsKICB2YXIgSXkgPSBFKChMWWUsIEtDKSA9PiB7CiAgICB2YXIgX3NlID0gZXIoKTsKICAgIGZ1bmN0aW9uIFNzZShlKSB7CiAgICAgIHJldHVybiBlID09PSBlICYmICFfc2UoZSk7CiAgICB9CiAgICBLQy5leHBvcnRzID0gU3NlOwogIH0pOwogIHZhciBRQyA9IEUoKE5ZZSwgJEMpID0+IHsKICAgIHZhciBPc2UgPSBJeSgpLAogICAgICB4c2UgPSBWYSgpOwogICAgZnVuY3Rpb24gQ3NlKGUpIHsKICAgICAgZm9yICh2YXIgdCA9IHhzZShlKSwgciA9IHQubGVuZ3RoOyByLS07ICkgewogICAgICAgIHZhciBuID0gdFtyXSwKICAgICAgICAgIGkgPSBlW25dOwogICAgICAgIHRbcl0gPSBbbiwgaSwgT3NlKGkpXTsKICAgICAgfQogICAgICByZXR1cm4gdDsKICAgIH0KICAgICRDLmV4cG9ydHMgPSBDc2U7CiAgfSk7CiAgdmFyIEx5ID0gRSgod1llLCBKQykgPT4gewogICAgZnVuY3Rpb24gUnNlKGUsIHQpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIChyKSB7CiAgICAgICAgcmV0dXJuIHIgPT0gbnVsbCA/ICExIDogcltlXSA9PT0gdCAmJiAodCAhPT0gdm9pZCAwIHx8IGUgaW4gT2JqZWN0KHIpKTsKICAgICAgfTsKICAgIH0KICAgIEpDLmV4cG9ydHMgPSBSc2U7CiAgfSk7CiAgdmFyIGVSID0gRSgoUFllLCBaQykgPT4gewogICAgdmFyIElzZSA9IFlDKCksCiAgICAgIExzZSA9IFFDKCksCiAgICAgIE5zZSA9IEx5KCk7CiAgICBmdW5jdGlvbiB3c2UoZSkgewogICAgICB2YXIgdCA9IExzZShlKTsKICAgICAgcmV0dXJuIHQubGVuZ3RoID09IDEgJiYgdFswXVsyXQogICAgICAgID8gTnNlKHRbMF1bMF0sIHRbMF1bMV0pCiAgICAgICAgOiBmdW5jdGlvbiAocikgewogICAgICAgICAgICByZXR1cm4gciA9PT0gZSB8fCBJc2UociwgZSwgdCk7CiAgICAgICAgICB9OwogICAgfQogICAgWkMuZXhwb3J0cyA9IHdzZTsKICB9KTsKICB2YXIgVzEgPSBFKChEWWUsIHRSKSA9PiB7CiAgICB2YXIgUHNlID0gRG4oKSwKICAgICAgRHNlID0gVHIoKSwKICAgICAgcXNlID0gIltvYmplY3QgU3ltYm9sXSI7CiAgICBmdW5jdGlvbiB6c2UoZSkgewogICAgICByZXR1cm4gdHlwZW9mIGUgPT0gInN5bWJvbCIgfHwgKERzZShlKSAmJiBQc2UoZSkgPT0gcXNlKTsKICAgIH0KICAgIHRSLmV4cG9ydHMgPSB6c2U7CiAgfSk7CiAgdmFyIG5mID0gRSgocVllLCByUikgPT4gewogICAgdmFyIEZzZSA9IFJ0KCksCiAgICAgIGtzZSA9IFcxKCksCiAgICAgIEJzZSA9IC9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLAogICAgICBXc2UgPSAvXlx3KiQvOwogICAgZnVuY3Rpb24gVXNlKGUsIHQpIHsKICAgICAgaWYgKEZzZShlKSkgcmV0dXJuICExOwogICAgICB2YXIgciA9IHR5cGVvZiBlOwogICAgICByZXR1cm4gciA9PSAibnVtYmVyIiB8fAogICAgICAgIHIgPT0gInN5bWJvbCIgfHwKICAgICAgICByID09ICJib29sZWFuIiB8fAogICAgICAgIGUgPT0gbnVsbCB8fAogICAgICAgIGtzZShlKQogICAgICAgID8gITAKICAgICAgICA6IFdzZS50ZXN0KGUpIHx8ICFCc2UudGVzdChlKSB8fCAodCAhPSBudWxsICYmIGUgaW4gT2JqZWN0KHQpKTsKICAgIH0KICAgIHJSLmV4cG9ydHMgPSBVc2U7CiAgfSk7CiAgdmFyIHd5ID0gRSgoelllLCBpUikgPT4gewogICAgdmFyIG5SID0gWWwoKSwKICAgICAgWHNlID0gIkV4cGVjdGVkIGEgZnVuY3Rpb24iOwogICAgZnVuY3Rpb24gTnkoZSwgdCkgewogICAgICBpZiAodHlwZW9mIGUgIT0gImZ1bmN0aW9uIiB8fCAodCAhPSBudWxsICYmIHR5cGVvZiB0ICE9ICJmdW5jdGlvbiIpKQogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoWHNlKTsKICAgICAgdmFyIHIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIG4gPSBhcmd1bWVudHMsCiAgICAgICAgICBpID0gdCA/IHQuYXBwbHkodGhpcywgbikgOiBuWzBdLAogICAgICAgICAgYSA9IHIuY2FjaGU7CiAgICAgICAgaWYgKGEuaGFzKGkpKSByZXR1cm4gYS5nZXQoaSk7CiAgICAgICAgdmFyIG8gPSBlLmFwcGx5KHRoaXMsIG4pOwogICAgICAgIHJldHVybiAoci5jYWNoZSA9IGEuc2V0KGksIG8pIHx8IGEpLCBvOwogICAgICB9OwogICAgICByZXR1cm4gKHIuY2FjaGUgPSBuZXcgKE55LkNhY2hlIHx8IG5SKSgpKSwgcjsKICAgIH0KICAgIE55LkNhY2hlID0gblI7CiAgICBpUi5leHBvcnRzID0gTnk7CiAgfSk7CiAgdmFyIG9SID0gRSgoRlllLCBhUikgPT4gewogICAgdmFyIFZzZSA9IHd5KCksCiAgICAgIEhzZSA9IDUwMDsKICAgIGZ1bmN0aW9uIEdzZShlKSB7CiAgICAgIHZhciB0ID0gVnNlKGUsIGZ1bmN0aW9uIChuKSB7CiAgICAgICAgICByZXR1cm4gci5zaXplID09PSBIc2UgJiYgci5jbGVhcigpLCBuOwogICAgICAgIH0pLAogICAgICAgIHIgPSB0LmNhY2hlOwogICAgICByZXR1cm4gdDsKICAgIH0KICAgIGFSLmV4cG9ydHMgPSBHc2U7CiAgfSk7CiAgdmFyIGNSID0gRSgoa1llLCBzUikgPT4gewogICAgdmFyIGpzZSA9IG9SKCksCiAgICAgIFlzZSA9CiAgICAgICAgL1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csCiAgICAgIEtzZSA9IC9cXChcXCk/L2csCiAgICAgICRzZSA9IGpzZShmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0ID0gW107CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGUuY2hhckNvZGVBdCgwKSA9PT0gNDYgJiYgdC5wdXNoKCIiKSwKICAgICAgICAgIGUucmVwbGFjZShZc2UsIGZ1bmN0aW9uIChyLCBuLCBpLCBhKSB7CiAgICAgICAgICAgIHQucHVzaChpID8gYS5yZXBsYWNlKEtzZSwgIiQxIikgOiBuIHx8IHIpOwogICAgICAgICAgfSksCiAgICAgICAgICB0CiAgICAgICAgKTsKICAgICAgfSk7CiAgICBzUi5leHBvcnRzID0gJHNlOwogIH0pOwogIHZhciBQeSA9IEUoKEJZZSwgdVIpID0+IHsKICAgIGZ1bmN0aW9uIFFzZShlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgPSAtMSwgbiA9IGUgPT0gbnVsbCA/IDAgOiBlLmxlbmd0aCwgaSA9IEFycmF5KG4pOyArK3IgPCBuOyApCiAgICAgICAgaVtyXSA9IHQoZVtyXSwgciwgZSk7CiAgICAgIHJldHVybiBpOwogICAgfQogICAgdVIuZXhwb3J0cyA9IFFzZTsKICB9KTsKICB2YXIgbVIgPSBFKChXWWUsIGhSKSA9PiB7CiAgICB2YXIgbFIgPSBXYSgpLAogICAgICBKc2UgPSBQeSgpLAogICAgICBac2UgPSBSdCgpLAogICAgICBlMGUgPSBXMSgpLAogICAgICB0MGUgPSAxIC8gMCwKICAgICAgZlIgPSBsUiA/IGxSLnByb3RvdHlwZSA6IHZvaWQgMCwKICAgICAgcFIgPSBmUiA/IGZSLnRvU3RyaW5nIDogdm9pZCAwOwogICAgZnVuY3Rpb24gZFIoZSkgewogICAgICBpZiAodHlwZW9mIGUgPT0gInN0cmluZyIpIHJldHVybiBlOwogICAgICBpZiAoWnNlKGUpKSByZXR1cm4gSnNlKGUsIGRSKSArICIiOwogICAgICBpZiAoZTBlKGUpKSByZXR1cm4gcFIgPyBwUi5jYWxsKGUpIDogIiI7CiAgICAgIHZhciB0ID0gZSArICIiOwogICAgICByZXR1cm4gdCA9PSAiMCIgJiYgMSAvIGUgPT0gLXQwZSA/ICItMCIgOiB0OwogICAgfQogICAgaFIuZXhwb3J0cyA9IGRSOwogIH0pOwogIHZhciBKaSA9IEUoKFVZZSwgeVIpID0+IHsKICAgIHZhciByMGUgPSBtUigpOwogICAgZnVuY3Rpb24gbjBlKGUpIHsKICAgICAgcmV0dXJuIGUgPT0gbnVsbCA/ICIiIDogcjBlKGUpOwogICAgfQogICAgeVIuZXhwb3J0cyA9IG4wZTsKICB9KTsKICB2YXIgVTEgPSBFKChYWWUsIGdSKSA9PiB7CiAgICB2YXIgaTBlID0gUnQoKSwKICAgICAgYTBlID0gbmYoKSwKICAgICAgbzBlID0gY1IoKSwKICAgICAgczBlID0gSmkoKTsKICAgIGZ1bmN0aW9uIGMwZShlLCB0KSB7CiAgICAgIHJldHVybiBpMGUoZSkgPyBlIDogYTBlKGUsIHQpID8gW2VdIDogbzBlKHMwZShlKSk7CiAgICB9CiAgICBnUi5leHBvcnRzID0gYzBlOwogIH0pOwogIHZhciBtcyA9IEUoKFZZZSwgdlIpID0+IHsKICAgIHZhciB1MGUgPSBXMSgpLAogICAgICBsMGUgPSAxIC8gMDsKICAgIGZ1bmN0aW9uIGYwZShlKSB7CiAgICAgIGlmICh0eXBlb2YgZSA9PSAic3RyaW5nIiB8fCB1MGUoZSkpIHJldHVybiBlOwogICAgICB2YXIgdCA9IGUgKyAiIjsKICAgICAgcmV0dXJuIHQgPT0gIjAiICYmIDEgLyBlID09IC1sMGUgPyAiLTAiIDogdDsKICAgIH0KICAgIHZSLmV4cG9ydHMgPSBmMGU7CiAgfSk7CiAgdmFyIGFmID0gRSgoSFllLCBiUikgPT4gewogICAgdmFyIHAwZSA9IFUxKCksCiAgICAgIGQwZSA9IG1zKCk7CiAgICBmdW5jdGlvbiBoMGUoZSwgdCkgewogICAgICB0ID0gcDBlKHQsIGUpOwogICAgICBmb3IgKHZhciByID0gMCwgbiA9IHQubGVuZ3RoOyBlICE9IG51bGwgJiYgciA8IG47ICkgZSA9IGVbZDBlKHRbcisrXSldOwogICAgICByZXR1cm4gciAmJiByID09IG4gPyBlIDogdm9pZCAwOwogICAgfQogICAgYlIuZXhwb3J0cyA9IGgwZTsKICB9KTsKICB2YXIgWmkgPSBFKChHWWUsIE1SKSA9PiB7CiAgICB2YXIgbTBlID0gYWYoKTsKICAgIGZ1bmN0aW9uIHkwZShlLCB0LCByKSB7CiAgICAgIHZhciBuID0gZSA9PSBudWxsID8gdm9pZCAwIDogbTBlKGUsIHQpOwogICAgICByZXR1cm4gbiA9PT0gdm9pZCAwID8gciA6IG47CiAgICB9CiAgICBNUi5leHBvcnRzID0geTBlOwogIH0pOwogIHZhciBFUiA9IEUoKGpZZSwgQVIpID0+IHsKICAgIGZ1bmN0aW9uIGcwZShlLCB0KSB7CiAgICAgIHJldHVybiBlICE9IG51bGwgJiYgdCBpbiBPYmplY3QoZSk7CiAgICB9CiAgICBBUi5leHBvcnRzID0gZzBlOwogIH0pOwogIHZhciBfUiA9IEUoKFlZZSwgVFIpID0+IHsKICAgIHZhciB2MGUgPSBVMSgpLAogICAgICBiMGUgPSBscygpLAogICAgICBNMGUgPSBSdCgpLAogICAgICBBMGUgPSB6MSgpLAogICAgICBFMGUgPSBKbCgpLAogICAgICBUMGUgPSBtcygpOwogICAgZnVuY3Rpb24gXzBlKGUsIHQsIHIpIHsKICAgICAgdCA9IHYwZSh0LCBlKTsKICAgICAgZm9yICh2YXIgbiA9IC0xLCBpID0gdC5sZW5ndGgsIGEgPSAhMTsgKytuIDwgaTsgKSB7CiAgICAgICAgdmFyIG8gPSBUMGUodFtuXSk7CiAgICAgICAgaWYgKCEoYSA9IGUgIT0gbnVsbCAmJiByKGUsIG8pKSkgYnJlYWs7CiAgICAgICAgZSA9IGVbb107CiAgICAgIH0KICAgICAgcmV0dXJuIGEgfHwgKytuICE9IGkKICAgICAgICA/IGEKICAgICAgICA6ICgoaSA9IGUgPT0gbnVsbCA/IDAgOiBlLmxlbmd0aCksCiAgICAgICAgICAhIWkgJiYgRTBlKGkpICYmIEEwZShvLCBpKSAmJiAoTTBlKGUpIHx8IGIwZShlKSkpOwogICAgfQogICAgVFIuZXhwb3J0cyA9IF8wZTsKICB9KTsKICB2YXIgT1IgPSBFKChLWWUsIFNSKSA9PiB7CiAgICB2YXIgUzBlID0gRVIoKSwKICAgICAgTzBlID0gX1IoKTsKICAgIGZ1bmN0aW9uIHgwZShlLCB0KSB7CiAgICAgIHJldHVybiBlICE9IG51bGwgJiYgTzBlKGUsIHQsIFMwZSk7CiAgICB9CiAgICBTUi5leHBvcnRzID0geDBlOwogIH0pOwogIHZhciBDUiA9IEUoKCRZZSwgeFIpID0+IHsKICAgIHZhciBDMGUgPSBSeSgpLAogICAgICBSMGUgPSBaaSgpLAogICAgICBJMGUgPSBPUigpLAogICAgICBMMGUgPSBuZigpLAogICAgICBOMGUgPSBJeSgpLAogICAgICB3MGUgPSBMeSgpLAogICAgICBQMGUgPSBtcygpLAogICAgICBEMGUgPSAxLAogICAgICBxMGUgPSAyOwogICAgZnVuY3Rpb24gejBlKGUsIHQpIHsKICAgICAgcmV0dXJuIEwwZShlKSAmJiBOMGUodCkKICAgICAgICA/IHcwZShQMGUoZSksIHQpCiAgICAgICAgOiBmdW5jdGlvbiAocikgewogICAgICAgICAgICB2YXIgbiA9IFIwZShyLCBlKTsKICAgICAgICAgICAgcmV0dXJuIG4gPT09IHZvaWQgMCAmJiBuID09PSB0ID8gSTBlKHIsIGUpIDogQzBlKHQsIG4sIEQwZSB8IHEwZSk7CiAgICAgICAgICB9OwogICAgfQogICAgeFIuZXhwb3J0cyA9IHowZTsKICB9KTsKICB2YXIgeXMgPSBFKChRWWUsIFJSKSA9PiB7CiAgICBmdW5jdGlvbiBGMGUoZSkgewogICAgICByZXR1cm4gZTsKICAgIH0KICAgIFJSLmV4cG9ydHMgPSBGMGU7CiAgfSk7CiAgdmFyIER5ID0gRSgoSlllLCBJUikgPT4gewogICAgZnVuY3Rpb24gazBlKGUpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0KSB7CiAgICAgICAgcmV0dXJuIHQ/LltlXTsKICAgICAgfTsKICAgIH0KICAgIElSLmV4cG9ydHMgPSBrMGU7CiAgfSk7CiAgdmFyIE5SID0gRSgoWlllLCBMUikgPT4gewogICAgdmFyIEIwZSA9IGFmKCk7CiAgICBmdW5jdGlvbiBXMGUoZSkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKHQpIHsKICAgICAgICByZXR1cm4gQjBlKHQsIGUpOwogICAgICB9OwogICAgfQogICAgTFIuZXhwb3J0cyA9IFcwZTsKICB9KTsKICB2YXIgUFIgPSBFKChlOGUsIHdSKSA9PiB7CiAgICB2YXIgVTBlID0gRHkoKSwKICAgICAgWDBlID0gTlIoKSwKICAgICAgVjBlID0gbmYoKSwKICAgICAgSDBlID0gbXMoKTsKICAgIGZ1bmN0aW9uIEcwZShlKSB7CiAgICAgIHJldHVybiBWMGUoZSkgPyBVMGUoSDBlKGUpKSA6IFgwZShlKTsKICAgIH0KICAgIHdSLmV4cG9ydHMgPSBHMGU7CiAgfSk7CiAgdmFyIHFuID0gRSgodDhlLCBEUikgPT4gewogICAgdmFyIGowZSA9IGVSKCksCiAgICAgIFkwZSA9IENSKCksCiAgICAgIEswZSA9IHlzKCksCiAgICAgICQwZSA9IFJ0KCksCiAgICAgIFEwZSA9IFBSKCk7CiAgICBmdW5jdGlvbiBKMGUoZSkgewogICAgICByZXR1cm4gdHlwZW9mIGUgPT0gImZ1bmN0aW9uIgogICAgICAgID8gZQogICAgICAgIDogZSA9PSBudWxsCiAgICAgICAgPyBLMGUKICAgICAgICA6IHR5cGVvZiBlID09ICJvYmplY3QiCiAgICAgICAgPyAkMGUoZSkKICAgICAgICAgID8gWTBlKGVbMF0sIGVbMV0pCiAgICAgICAgICA6IGowZShlKQogICAgICAgIDogUTBlKGUpOwogICAgfQogICAgRFIuZXhwb3J0cyA9IEowZTsKICB9KTsKICB2YXIgelIgPSBFKChyOGUsIHFSKSA9PiB7CiAgICB2YXIgWjBlID0gL1xzLzsKICAgIGZ1bmN0aW9uIGUxZShlKSB7CiAgICAgIGZvciAodmFyIHQgPSBlLmxlbmd0aDsgdC0tICYmIFowZS50ZXN0KGUuY2hhckF0KHQpKTsgKTsKICAgICAgcmV0dXJuIHQ7CiAgICB9CiAgICBxUi5leHBvcnRzID0gZTFlOwogIH0pOwogIHZhciBrUiA9IEUoKG44ZSwgRlIpID0+IHsKICAgIHZhciB0MWUgPSB6UigpLAogICAgICByMWUgPSAvXlxzKy87CiAgICBmdW5jdGlvbiBuMWUoZSkgewogICAgICByZXR1cm4gZSAmJiBlLnNsaWNlKDAsIHQxZShlKSArIDEpLnJlcGxhY2UocjFlLCAiIik7CiAgICB9CiAgICBGUi5leHBvcnRzID0gbjFlOwogIH0pOwogIHZhciBvZiA9IEUoKGk4ZSwgVVIpID0+IHsKICAgIHZhciBpMWUgPSBrUigpLAogICAgICBCUiA9IGVyKCksCiAgICAgIGExZSA9IFcxKCksCiAgICAgIFdSID0gMCAvIDAsCiAgICAgIG8xZSA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pLAogICAgICBzMWUgPSAvXjBiWzAxXSskL2ksCiAgICAgIGMxZSA9IC9eMG9bMC03XSskL2ksCiAgICAgIHUxZSA9IHBhcnNlSW50OwogICAgZnVuY3Rpb24gbDFlKGUpIHsKICAgICAgaWYgKHR5cGVvZiBlID09ICJudW1iZXIiKSByZXR1cm4gZTsKICAgICAgaWYgKGExZShlKSkgcmV0dXJuIFdSOwogICAgICBpZiAoQlIoZSkpIHsKICAgICAgICB2YXIgdCA9IHR5cGVvZiBlLnZhbHVlT2YgPT0gImZ1bmN0aW9uIiA/IGUudmFsdWVPZigpIDogZTsKICAgICAgICBlID0gQlIodCkgPyB0ICsgIiIgOiB0OwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgZSAhPSAic3RyaW5nIikgcmV0dXJuIGUgPT09IDAgPyBlIDogK2U7CiAgICAgIGUgPSBpMWUoZSk7CiAgICAgIHZhciByID0gczFlLnRlc3QoZSk7CiAgICAgIHJldHVybiByIHx8IGMxZS50ZXN0KGUpCiAgICAgICAgPyB1MWUoZS5zbGljZSgyKSwgciA/IDIgOiA4KQogICAgICAgIDogbzFlLnRlc3QoZSkKICAgICAgICA/IFdSCiAgICAgICAgOiArZTsKICAgIH0KICAgIFVSLmV4cG9ydHMgPSBsMWU7CiAgfSk7CiAgdmFyIEhSID0gRSgoYThlLCBWUikgPT4gewogICAgdmFyIGYxZSA9IG9mKCksCiAgICAgIFhSID0gMSAvIDAsCiAgICAgIHAxZSA9IDE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjsKICAgIGZ1bmN0aW9uIGQxZShlKSB7CiAgICAgIGlmICghZSkgcmV0dXJuIGUgPT09IDAgPyBlIDogMDsKICAgICAgaWYgKCgoZSA9IGYxZShlKSksIGUgPT09IFhSIHx8IGUgPT09IC1YUikpIHsKICAgICAgICB2YXIgdCA9IGUgPCAwID8gLTEgOiAxOwogICAgICAgIHJldHVybiB0ICogcDFlOwogICAgICB9CiAgICAgIHJldHVybiBlID09PSBlID8gZSA6IDA7CiAgICB9CiAgICBWUi5leHBvcnRzID0gZDFlOwogIH0pOwogIHZhciBzZiA9IEUoKG84ZSwgR1IpID0+IHsKICAgIHZhciBoMWUgPSBIUigpOwogICAgZnVuY3Rpb24gbTFlKGUpIHsKICAgICAgdmFyIHQgPSBoMWUoZSksCiAgICAgICAgciA9IHQgJSAxOwogICAgICByZXR1cm4gdCA9PT0gdCA/IChyID8gdCAtIHIgOiB0KSA6IDA7CiAgICB9CiAgICBHUi5leHBvcnRzID0gbTFlOwogIH0pOwogIHZhciBxeSA9IEUoKHM4ZSwgalIpID0+IHsKICAgIHZhciB5MWUgPSB1eSgpLAogICAgICBnMWUgPSBxbigpLAogICAgICB2MWUgPSBzZigpLAogICAgICBiMWUgPSBNYXRoLm1heDsKICAgIGZ1bmN0aW9uIE0xZShlLCB0LCByKSB7CiAgICAgIHZhciBuID0gZSA9PSBudWxsID8gMCA6IGUubGVuZ3RoOwogICAgICBpZiAoIW4pIHJldHVybiAtMTsKICAgICAgdmFyIGkgPSByID09IG51bGwgPyAwIDogdjFlKHIpOwogICAgICByZXR1cm4gaSA8IDAgJiYgKGkgPSBiMWUobiArIGksIDApKSwgeTFlKGUsIGcxZSh0LCAzKSwgaSk7CiAgICB9CiAgICBqUi5leHBvcnRzID0gTTFlOwogIH0pOwogIHZhciBTZSA9IEUoKGM4ZSwgWVIpID0+IHsKICAgIHZhciBjZiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHJldHVybiBlICYmIGUuTWF0aCA9PSBNYXRoICYmIGU7CiAgICB9OwogICAgWVIuZXhwb3J0cyA9CiAgICAgIGNmKHR5cGVvZiBnbG9iYWxUaGlzID09ICJvYmplY3QiICYmIGdsb2JhbFRoaXMpIHx8CiAgICAgIGNmKHR5cGVvZiB3aW5kb3cgPT0gIm9iamVjdCIgJiYgd2luZG93KSB8fAogICAgICBjZih0eXBlb2Ygc2VsZiA9PSAib2JqZWN0IiAmJiBzZWxmKSB8fAogICAgICBjZih0eXBlb2YgZ2xvYmFsID09ICJvYmplY3QiICYmIGdsb2JhbCkgfHwKICAgICAgKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfSkoKSB8fAogICAgICBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpOwogIH0pOwogIHZhciBidCA9IEUoKHU4ZSwgS1IpID0+IHsKICAgIEtSLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICB0cnkgewogICAgICAgIHJldHVybiAhIWUoKTsKICAgICAgfSBjYXRjaCB7CiAgICAgICAgcmV0dXJuICEwOwogICAgICB9CiAgICB9OwogIH0pOwogIHZhciB0ciA9IEUoKGw4ZSwgJFIpID0+IHsKICAgIHZhciBBMWUgPSBidCgpOwogICAgJFIuZXhwb3J0cyA9ICFBMWUoZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gKAogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgMSwgewogICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiA3OwogICAgICAgICAgfSwKICAgICAgICB9KVsxXSAhPSA3CiAgICAgICk7CiAgICB9KTsKICB9KTsKICB2YXIgcXIgPSBFKChmOGUsIFFSKSA9PiB7CiAgICB2YXIgWDEgPSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDsKICAgIFFSLmV4cG9ydHMgPSBYMS5iaW5kCiAgICAgID8gWDEuYmluZChYMSkKICAgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gWDEuYXBwbHkoWDEsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICB9KTsKICB2YXIgdWYgPSBFKChlSSkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIEpSID0ge30ucHJvcGVydHlJc0VudW1lcmFibGUsCiAgICAgIFpSID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciwKICAgICAgRTFlID0gWlIgJiYgIUpSLmNhbGwoeyAxOiAyIH0sIDEpOwogICAgZUkuZiA9IEUxZQogICAgICA/IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICB2YXIgciA9IFpSKHRoaXMsIHQpOwogICAgICAgICAgcmV0dXJuICEhciAmJiByLmVudW1lcmFibGU7CiAgICAgICAgfQogICAgICA6IEpSOwogIH0pOwogIHZhciBncyA9IEUoKGQ4ZSwgdEkpID0+IHsKICAgIHRJLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICByZXR1cm4gewogICAgICAgIGVudW1lcmFibGU6ICEoZSAmIDEpLAogICAgICAgIGNvbmZpZ3VyYWJsZTogIShlICYgMiksCiAgICAgICAgd3JpdGFibGU6ICEoZSAmIDQpLAogICAgICAgIHZhbHVlOiB0LAogICAgICB9OwogICAgfTsKICB9KTsKICB2YXIgWGUgPSBFKChoOGUsIG5JKSA9PiB7CiAgICB2YXIgckkgPSBGdW5jdGlvbi5wcm90b3R5cGUsCiAgICAgIHp5ID0gckkuYmluZCwKICAgICAgRnkgPSBySS5jYWxsLAogICAgICBUMWUgPSB6eSAmJiB6eS5iaW5kKEZ5KTsKICAgIG5JLmV4cG9ydHMgPSB6eQogICAgICA/IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICByZXR1cm4gZSAmJiBUMWUoRnksIGUpOwogICAgICAgIH0KICAgICAgOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgZSAmJgogICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIEZ5LmFwcGx5KGUsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICk7CiAgICAgICAgfTsKICB9KTsKICB2YXIgdnMgPSBFKChtOGUsIGFJKSA9PiB7CiAgICB2YXIgaUkgPSBYZSgpLAogICAgICBfMWUgPSBpSSh7fS50b1N0cmluZyksCiAgICAgIFMxZSA9IGlJKCIiLnNsaWNlKTsKICAgIGFJLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICByZXR1cm4gUzFlKF8xZShlKSwgOCwgLTEpOwogICAgfTsKICB9KTsKICB2YXIgamEgPSBFKCh5OGUsIG9JKSA9PiB7CiAgICB2YXIgTzFlID0gU2UoKSwKICAgICAgeDFlID0gWGUoKSwKICAgICAgQzFlID0gYnQoKSwKICAgICAgUjFlID0gdnMoKSwKICAgICAga3kgPSBPMWUuT2JqZWN0LAogICAgICBJMWUgPSB4MWUoIiIuc3BsaXQpOwogICAgb0kuZXhwb3J0cyA9IEMxZShmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAha3koInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKTsKICAgIH0pCiAgICAgID8gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHJldHVybiBSMWUoZSkgPT0gIlN0cmluZyIgPyBJMWUoZSwgIiIpIDoga3koZSk7CiAgICAgICAgfQogICAgICA6IGt5OwogIH0pOwogIHZhciBicyA9IEUoKGc4ZSwgc0kpID0+IHsKICAgIHZhciBMMWUgPSBTZSgpLAogICAgICBOMWUgPSBMMWUuVHlwZUVycm9yOwogICAgc0kuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIGlmIChlID09IG51bGwpIHRocm93IE4xZSgiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIiArIGUpOwogICAgICByZXR1cm4gZTsKICAgIH07CiAgfSk7CiAgdmFyICRyID0gRSgodjhlLCBjSSkgPT4gewogICAgdmFyIHcxZSA9IGphKCksCiAgICAgIFAxZSA9IGJzKCk7CiAgICBjSS5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgcmV0dXJuIHcxZShQMWUoZSkpOwogICAgfTsKICB9KTsKICB2YXIgTXQgPSBFKChiOGUsIHVJKSA9PiB7CiAgICB1SS5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBlID09ICJmdW5jdGlvbiI7CiAgICB9OwogIH0pOwogIHZhciBVdCA9IEUoKE04ZSwgbEkpID0+IHsKICAgIHZhciBEMWUgPSBNdCgpOwogICAgbEkuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHJldHVybiB0eXBlb2YgZSA9PSAib2JqZWN0IiA/IGUgIT09IG51bGwgOiBEMWUoZSk7CiAgICB9OwogIH0pOwogIHZhciB6ciA9IEUoKEE4ZSwgZkkpID0+IHsKICAgIHZhciBCeSA9IFNlKCksCiAgICAgIHExZSA9IE10KCksCiAgICAgIHoxZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIHExZShlKSA/IGUgOiB2b2lkIDA7CiAgICAgIH07CiAgICBmSS5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPCAyID8gejFlKEJ5W2VdKSA6IEJ5W2VdICYmIEJ5W2VdW3RdOwogICAgfTsKICB9KTsKICB2YXIgWWEgPSBFKChFOGUsIHBJKSA9PiB7CiAgICB2YXIgRjFlID0gWGUoKTsKICAgIHBJLmV4cG9ydHMgPSBGMWUoe30uaXNQcm90b3R5cGVPZik7CiAgfSk7CiAgdmFyIGVhID0gRSgoVDhlLCBkSSkgPT4gewogICAgdmFyIGsxZSA9IHpyKCk7CiAgICBkSS5leHBvcnRzID0gazFlKCJuYXZpZ2F0b3IiLCAidXNlckFnZW50IikgfHwgIiI7CiAgfSk7CiAgdmFyIHRhID0gRSgoXzhlLCBiSSkgPT4gewogICAgdmFyIHZJID0gU2UoKSwKICAgICAgV3kgPSBlYSgpLAogICAgICBoSSA9IHZJLnByb2Nlc3MsCiAgICAgIG1JID0gdkkuRGVubywKICAgICAgeUkgPSAoaEkgJiYgaEkudmVyc2lvbnMpIHx8IChtSSAmJiBtSS52ZXJzaW9uKSwKICAgICAgZ0kgPSB5SSAmJiB5SS52OCwKICAgICAgZm4sCiAgICAgIGxmOwogICAgZ0kgJiYKICAgICAgKChmbiA9IGdJLnNwbGl0KCIuIikpLAogICAgICAobGYgPSBmblswXSA+IDAgJiYgZm5bMF0gPCA0ID8gMSA6ICsoZm5bMF0gKyBmblsxXSkpKTsKICAgICFsZiAmJgogICAgICBXeSAmJgogICAgICAoKGZuID0gV3kubWF0Y2goL0VkZ2VcLyhcZCspLykpLAogICAgICAoIWZuIHx8IGZuWzFdID49IDc0KSAmJgogICAgICAgICgoZm4gPSBXeS5tYXRjaCgvQ2hyb21lXC8oXGQrKS8pKSwgZm4gJiYgKGxmID0gK2ZuWzFdKSkpOwogICAgYkkuZXhwb3J0cyA9IGxmOwogIH0pOwogIHZhciBmZiA9IEUoKFM4ZSwgQUkpID0+IHsKICAgIHZhciBNSSA9IHRhKCksCiAgICAgIEIxZSA9IGJ0KCk7CiAgICBBSS5leHBvcnRzID0KICAgICAgISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzICYmCiAgICAgICFCMWUoZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBlID0gU3ltYm9sKCk7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICFTdHJpbmcoZSkgfHwKICAgICAgICAgICEoT2JqZWN0KGUpIGluc3RhbmNlb2YgU3ltYm9sKSB8fAogICAgICAgICAgKCFTeW1ib2wuc2hhbSAmJiBNSSAmJiBNSSA8IDQxKQogICAgICAgICk7CiAgICAgIH0pOwogIH0pOwogIHZhciBVeSA9IEUoKE84ZSwgRUkpID0+IHsKICAgIHZhciBXMWUgPSBmZigpOwogICAgRUkuZXhwb3J0cyA9IFcxZSAmJiAhU3ltYm9sLnNoYW0gJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PSAic3ltYm9sIjsKICB9KTsKICB2YXIgVjEgPSBFKCh4OGUsIFRJKSA9PiB7CiAgICB2YXIgVTFlID0gU2UoKSwKICAgICAgWDFlID0genIoKSwKICAgICAgVjFlID0gTXQoKSwKICAgICAgSDFlID0gWWEoKSwKICAgICAgRzFlID0gVXkoKSwKICAgICAgajFlID0gVTFlLk9iamVjdDsKICAgIFRJLmV4cG9ydHMgPSBHMWUKICAgICAgPyBmdW5jdGlvbiAoZSkgewogICAgICAgICAgcmV0dXJuIHR5cGVvZiBlID09ICJzeW1ib2wiOwogICAgICAgIH0KICAgICAgOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgdmFyIHQgPSBYMWUoIlN5bWJvbCIpOwogICAgICAgICAgcmV0dXJuIFYxZSh0KSAmJiBIMWUodC5wcm90b3R5cGUsIGoxZShlKSk7CiAgICAgICAgfTsKICB9KTsKICB2YXIgSDEgPSBFKChDOGUsIF9JKSA9PiB7CiAgICB2YXIgWTFlID0gU2UoKSwKICAgICAgSzFlID0gWTFlLlN0cmluZzsKICAgIF9JLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICB0cnkgewogICAgICAgIHJldHVybiBLMWUoZSk7CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHJldHVybiAiT2JqZWN0IjsKICAgICAgfQogICAgfTsKICB9KTsKICB2YXIgcG4gPSBFKChSOGUsIFNJKSA9PiB7CiAgICB2YXIgJDFlID0gU2UoKSwKICAgICAgUTFlID0gTXQoKSwKICAgICAgSjFlID0gSDEoKSwKICAgICAgWjFlID0gJDFlLlR5cGVFcnJvcjsKICAgIFNJLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICBpZiAoUTFlKGUpKSByZXR1cm4gZTsKICAgICAgdGhyb3cgWjFlKEoxZShlKSArICIgaXMgbm90IGEgZnVuY3Rpb24iKTsKICAgIH07CiAgfSk7CiAgdmFyIHJhID0gRSgoSThlLCBPSSkgPT4gewogICAgdmFyIGVjZSA9IHBuKCk7CiAgICBPSS5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgdmFyIHIgPSBlW3RdOwogICAgICByZXR1cm4gciA9PSBudWxsID8gdm9pZCAwIDogZWNlKHIpOwogICAgfTsKICB9KTsKICB2YXIgQ0kgPSBFKChMOGUsIHhJKSA9PiB7CiAgICB2YXIgdGNlID0gU2UoKSwKICAgICAgWHkgPSBxcigpLAogICAgICBWeSA9IE10KCksCiAgICAgIEh5ID0gVXQoKSwKICAgICAgcmNlID0gdGNlLlR5cGVFcnJvcjsKICAgIHhJLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICB2YXIgciwgbjsKICAgICAgaWYgKAogICAgICAgICh0ID09PSAic3RyaW5nIiAmJiBWeSgociA9IGUudG9TdHJpbmcpKSAmJiAhSHkoKG4gPSBYeShyLCBlKSkpKSB8fAogICAgICAgIChWeSgociA9IGUudmFsdWVPZikpICYmICFIeSgobiA9IFh5KHIsIGUpKSkpIHx8CiAgICAgICAgKHQgIT09ICJzdHJpbmciICYmIFZ5KChyID0gZS50b1N0cmluZykpICYmICFIeSgobiA9IFh5KHIsIGUpKSkpCiAgICAgICkKICAgICAgICByZXR1cm4gbjsKICAgICAgdGhyb3cgcmNlKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKTsKICAgIH07CiAgfSk7CiAgdmFyIEthID0gRSgoTjhlLCBSSSkgPT4gewogICAgUkkuZXhwb3J0cyA9ICExOwogIH0pOwogIHZhciBwZiA9IEUoKHc4ZSwgTEkpID0+IHsKICAgIHZhciBJSSA9IFNlKCksCiAgICAgIG5jZSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTsKICAgIExJLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICB0cnkgewogICAgICAgIG5jZShJSSwgZSwgeyB2YWx1ZTogdCwgY29uZmlndXJhYmxlOiAhMCwgd3JpdGFibGU6ICEwIH0pOwogICAgICB9IGNhdGNoIHsKICAgICAgICBJSVtlXSA9IHQ7CiAgICAgIH0KICAgICAgcmV0dXJuIHQ7CiAgICB9OwogIH0pOwogIHZhciBHMSA9IEUoKFA4ZSwgd0kpID0+IHsKICAgIHZhciBpY2UgPSBTZSgpLAogICAgICBhY2UgPSBwZigpLAogICAgICBOSSA9ICJfX2NvcmUtanNfc2hhcmVkX18iLAogICAgICBvY2UgPSBpY2VbTkldIHx8IGFjZShOSSwge30pOwogICAgd0kuZXhwb3J0cyA9IG9jZTsKICB9KTsKICB2YXIgZGYgPSBFKChEOGUsIERJKSA9PiB7CiAgICB2YXIgc2NlID0gS2EoKSwKICAgICAgUEkgPSBHMSgpOwogICAgKERJLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICByZXR1cm4gUElbZV0gfHwgKFBJW2VdID0gdCAhPT0gdm9pZCAwID8gdCA6IHt9KTsKICAgIH0pKCJ2ZXJzaW9ucyIsIFtdKS5wdXNoKHsKICAgICAgdmVyc2lvbjogIjMuMTkuMCIsCiAgICAgIG1vZGU6IHNjZSA/ICJwdXJlIiA6ICJnbG9iYWwiLAogICAgICBjb3B5cmlnaHQ6ICJceEE5IDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkiLAogICAgfSk7CiAgfSk7CiAgdmFyIE90ID0gRSgocThlLCBxSSkgPT4gewogICAgdmFyIGNjZSA9IFNlKCksCiAgICAgIHVjZSA9IGJzKCksCiAgICAgIGxjZSA9IGNjZS5PYmplY3Q7CiAgICBxSS5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgcmV0dXJuIGxjZSh1Y2UoZSkpOwogICAgfTsKICB9KTsKICB2YXIgcnIgPSBFKCh6OGUsIHpJKSA9PiB7CiAgICB2YXIgZmNlID0gWGUoKSwKICAgICAgcGNlID0gT3QoKSwKICAgICAgZGNlID0gZmNlKHt9Lmhhc093blByb3BlcnR5KTsKICAgIHpJLmV4cG9ydHMgPQogICAgICBPYmplY3QuaGFzT3duIHx8CiAgICAgIGZ1bmN0aW9uICh0LCByKSB7CiAgICAgICAgcmV0dXJuIGRjZShwY2UodCksIHIpOwogICAgICB9OwogIH0pOwogIHZhciBqMSA9IEUoKEY4ZSwgRkkpID0+IHsKICAgIHZhciBoY2UgPSBYZSgpLAogICAgICBtY2UgPSAwLAogICAgICB5Y2UgPSBNYXRoLnJhbmRvbSgpLAogICAgICBnY2UgPSBoY2UoKDEpLnRvU3RyaW5nKTsKICAgIEZJLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICByZXR1cm4gIlN5bWJvbCgiICsgKGUgPT09IHZvaWQgMCA/ICIiIDogZSkgKyAiKV8iICsgZ2NlKCsrbWNlICsgeWNlLCAzNik7CiAgICB9OwogIH0pOwogIHZhciBndCA9IEUoKGs4ZSwgWEkpID0+IHsKICAgIHZhciB2Y2UgPSBTZSgpLAogICAgICBiY2UgPSBkZigpLAogICAgICBrSSA9IHJyKCksCiAgICAgIE1jZSA9IGoxKCksCiAgICAgIEJJID0gZmYoKSwKICAgICAgVUkgPSBVeSgpLAogICAgICBNcyA9IGJjZSgid2tzIiksCiAgICAgICRhID0gdmNlLlN5bWJvbCwKICAgICAgV0kgPSAkYSAmJiAkYS5mb3IsCiAgICAgIEFjZSA9IFVJID8gJGEgOiAoJGEgJiYgJGEud2l0aG91dFNldHRlcikgfHwgTWNlOwogICAgWEkuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIGlmICgha0koTXMsIGUpIHx8ICEoQkkgfHwgdHlwZW9mIE1zW2VdID09ICJzdHJpbmciKSkgewogICAgICAgIHZhciB0ID0gIlN5bWJvbC4iICsgZTsKICAgICAgICBCSSAmJiBrSSgkYSwgZSkKICAgICAgICAgID8gKE1zW2VdID0gJGFbZV0pCiAgICAgICAgICA6IFVJICYmIFdJCiAgICAgICAgICA/IChNc1tlXSA9IFdJKHQpKQogICAgICAgICAgOiAoTXNbZV0gPSBBY2UodCkpOwogICAgICB9CiAgICAgIHJldHVybiBNc1tlXTsKICAgIH07CiAgfSk7CiAgdmFyIEd5ID0gRSgoQjhlLCBHSSkgPT4gewogICAgdmFyIEVjZSA9IFNlKCksCiAgICAgIFRjZSA9IHFyKCksCiAgICAgIFZJID0gVXQoKSwKICAgICAgSEkgPSBWMSgpLAogICAgICBfY2UgPSByYSgpLAogICAgICBTY2UgPSBDSSgpLAogICAgICBPY2UgPSBndCgpLAogICAgICB4Y2UgPSBFY2UuVHlwZUVycm9yLAogICAgICBDY2UgPSBPY2UoInRvUHJpbWl0aXZlIik7CiAgICBHSS5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgaWYgKCFWSShlKSB8fCBISShlKSkgcmV0dXJuIGU7CiAgICAgIHZhciByID0gX2NlKGUsIENjZSksCiAgICAgICAgbjsKICAgICAgaWYgKHIpIHsKICAgICAgICBpZiAoCiAgICAgICAgICAodCA9PT0gdm9pZCAwICYmICh0ID0gImRlZmF1bHQiKSwgKG4gPSBUY2UociwgZSwgdCkpLCAhVkkobikgfHwgSEkobikpCiAgICAgICAgKQogICAgICAgICAgcmV0dXJuIG47CiAgICAgICAgdGhyb3cgeGNlKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKTsKICAgICAgfQogICAgICByZXR1cm4gdCA9PT0gdm9pZCAwICYmICh0ID0gIm51bWJlciIpLCBTY2UoZSwgdCk7CiAgICB9OwogIH0pOwogIHZhciBBcyA9IEUoKFc4ZSwgakkpID0+IHsKICAgIHZhciBSY2UgPSBHeSgpLAogICAgICBJY2UgPSBWMSgpOwogICAgakkuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHZhciB0ID0gUmNlKGUsICJzdHJpbmciKTsKICAgICAgcmV0dXJuIEljZSh0KSA/IHQgOiB0ICsgIiI7CiAgICB9OwogIH0pOwogIHZhciBZMSA9IEUoKFU4ZSwgS0kpID0+IHsKICAgIHZhciBMY2UgPSBTZSgpLAogICAgICBZSSA9IFV0KCksCiAgICAgIGp5ID0gTGNlLmRvY3VtZW50LAogICAgICBOY2UgPSBZSShqeSkgJiYgWUkoankuY3JlYXRlRWxlbWVudCk7CiAgICBLSS5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgcmV0dXJuIE5jZSA/IGp5LmNyZWF0ZUVsZW1lbnQoZSkgOiB7fTsKICAgIH07CiAgfSk7CiAgdmFyIFl5ID0gRSgoWDhlLCAkSSkgPT4gewogICAgdmFyIHdjZSA9IHRyKCksCiAgICAgIFBjZSA9IGJ0KCksCiAgICAgIERjZSA9IFkxKCk7CiAgICAkSS5leHBvcnRzID0KICAgICAgIXdjZSAmJgogICAgICAhUGNlKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERjZSgiZGl2IiksICJhIiwgewogICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gNzsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pLmEgIT0gNwogICAgICAgICk7CiAgICAgIH0pOwogIH0pOwogIHZhciBFcyA9IEUoKEpJKSA9PiB7CiAgICB2YXIgcWNlID0gdHIoKSwKICAgICAgemNlID0gcXIoKSwKICAgICAgRmNlID0gdWYoKSwKICAgICAga2NlID0gZ3MoKSwKICAgICAgQmNlID0gJHIoKSwKICAgICAgV2NlID0gQXMoKSwKICAgICAgVWNlID0gcnIoKSwKICAgICAgWGNlID0gWXkoKSwKICAgICAgUUkgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOwogICAgSkkuZiA9IHFjZQogICAgICA/IFFJCiAgICAgIDogZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICAgIGlmICgoKHQgPSBCY2UodCkpLCAociA9IFdjZShyKSksIFhjZSkpCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgcmV0dXJuIFFJKHQsIHIpOwogICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgICBpZiAoVWNlKHQsIHIpKSByZXR1cm4ga2NlKCF6Y2UoRmNlLmYsIHQsIHIpLCB0W3JdKTsKICAgICAgICB9OwogIH0pOwogIHZhciBuciA9IEUoKEg4ZSwgZUwpID0+IHsKICAgIHZhciBaSSA9IFNlKCksCiAgICAgIFZjZSA9IFV0KCksCiAgICAgIEhjZSA9IFpJLlN0cmluZywKICAgICAgR2NlID0gWkkuVHlwZUVycm9yOwogICAgZUwuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIGlmIChWY2UoZSkpIHJldHVybiBlOwogICAgICB0aHJvdyBHY2UoSGNlKGUpICsgIiBpcyBub3QgYW4gb2JqZWN0Iik7CiAgICB9OwogIH0pOwogIHZhciBpciA9IEUoKG5MKSA9PiB7CiAgICB2YXIgamNlID0gU2UoKSwKICAgICAgWWNlID0gdHIoKSwKICAgICAgS2NlID0gWXkoKSwKICAgICAgdEwgPSBucigpLAogICAgICAkY2UgPSBBcygpLAogICAgICBRY2UgPSBqY2UuVHlwZUVycm9yLAogICAgICByTCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTsKICAgIG5MLmYgPSBZY2UKICAgICAgPyByTAogICAgICA6IGZ1bmN0aW9uICh0LCByLCBuKSB7CiAgICAgICAgICBpZiAoKHRMKHQpLCAociA9ICRjZShyKSksIHRMKG4pLCBLY2UpKQogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIHJldHVybiByTCh0LCByLCBuKTsKICAgICAgICAgICAgfSBjYXRjaCB7fQogICAgICAgICAgaWYgKCJnZXQiIGluIG4gfHwgInNldCIgaW4gbikgdGhyb3cgUWNlKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpOwogICAgICAgICAgcmV0dXJuICJ2YWx1ZSIgaW4gbiAmJiAodFtyXSA9IG4udmFsdWUpLCB0OwogICAgICAgIH07CiAgfSk7CiAgdmFyIFFhID0gRSgoajhlLCBpTCkgPT4gewogICAgdmFyIEpjZSA9IHRyKCksCiAgICAgIFpjZSA9IGlyKCksCiAgICAgIGV1ZSA9IGdzKCk7CiAgICBpTC5leHBvcnRzID0gSmNlCiAgICAgID8gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgIHJldHVybiBaY2UuZihlLCB0LCBldWUoMSwgcikpOwogICAgICAgIH0KICAgICAgOiBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgcmV0dXJuIChlW3RdID0gciksIGU7CiAgICAgICAgfTsKICB9KTsKICB2YXIgSzEgPSBFKChZOGUsIGFMKSA9PiB7CiAgICB2YXIgdHVlID0gWGUoKSwKICAgICAgcnVlID0gTXQoKSwKICAgICAgS3kgPSBHMSgpLAogICAgICBudWUgPSB0dWUoRnVuY3Rpb24udG9TdHJpbmcpOwogICAgcnVlKEt5Lmluc3BlY3RTb3VyY2UpIHx8CiAgICAgIChLeS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICByZXR1cm4gbnVlKGUpOwogICAgICB9KTsKICAgIGFMLmV4cG9ydHMgPSBLeS5pbnNwZWN0U291cmNlOwogIH0pOwogIHZhciBjTCA9IEUoKEs4ZSwgc0wpID0+IHsKICAgIHZhciBpdWUgPSBTZSgpLAogICAgICBhdWUgPSBNdCgpLAogICAgICBvdWUgPSBLMSgpLAogICAgICBvTCA9IGl1ZS5XZWFrTWFwOwogICAgc0wuZXhwb3J0cyA9IGF1ZShvTCkgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KG91ZShvTCkpOwogIH0pOwogIHZhciAkMSA9IEUoKCQ4ZSwgbEwpID0+IHsKICAgIHZhciBzdWUgPSBkZigpLAogICAgICBjdWUgPSBqMSgpLAogICAgICB1TCA9IHN1ZSgia2V5cyIpOwogICAgbEwuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHJldHVybiB1TFtlXSB8fCAodUxbZV0gPSBjdWUoZSkpOwogICAgfTsKICB9KTsKICB2YXIgVHMgPSBFKChROGUsIGZMKSA9PiB7CiAgICBmTC5leHBvcnRzID0ge307CiAgfSk7CiAgdmFyIGRpID0gRSgoSjhlLCB5TCkgPT4gewogICAgdmFyIHV1ZSA9IGNMKCksCiAgICAgIG1MID0gU2UoKSwKICAgICAgJHkgPSBYZSgpLAogICAgICBsdWUgPSBVdCgpLAogICAgICBmdWUgPSBRYSgpLAogICAgICBReSA9IHJyKCksCiAgICAgIEp5ID0gRzEoKSwKICAgICAgcHVlID0gJDEoKSwKICAgICAgZHVlID0gVHMoKSwKICAgICAgcEwgPSAiT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiLAogICAgICBlZyA9IG1MLlR5cGVFcnJvciwKICAgICAgaHVlID0gbUwuV2Vha01hcCwKICAgICAgaGYsCiAgICAgIFExLAogICAgICBtZiwKICAgICAgbXVlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICByZXR1cm4gbWYoZSkgPyBRMShlKSA6IGhmKGUsIHt9KTsKICAgICAgfSwKICAgICAgeXVlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIHZhciByOwogICAgICAgICAgaWYgKCFsdWUodCkgfHwgKHIgPSBRMSh0KSkudHlwZSAhPT0gZSkKICAgICAgICAgICAgdGhyb3cgZWcoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIiArIGUgKyAiIHJlcXVpcmVkIik7CiAgICAgICAgICByZXR1cm4gcjsKICAgICAgICB9OwogICAgICB9OwogICAgdXVlIHx8IEp5LnN0YXRlCiAgICAgID8gKChuYSA9IEp5LnN0YXRlIHx8IChKeS5zdGF0ZSA9IG5ldyBodWUoKSkpLAogICAgICAgIChkTCA9ICR5KG5hLmdldCkpLAogICAgICAgIChaeSA9ICR5KG5hLmhhcykpLAogICAgICAgIChoTCA9ICR5KG5hLnNldCkpLAogICAgICAgIChoZiA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICBpZiAoWnkobmEsIGUpKSB0aHJvdyBuZXcgZWcocEwpOwogICAgICAgICAgcmV0dXJuICh0LmZhY2FkZSA9IGUpLCBoTChuYSwgZSwgdCksIHQ7CiAgICAgICAgfSksCiAgICAgICAgKFExID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHJldHVybiBkTChuYSwgZSkgfHwge307CiAgICAgICAgfSksCiAgICAgICAgKG1mID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHJldHVybiBaeShuYSwgZSk7CiAgICAgICAgfSkpCiAgICAgIDogKChKYSA9IHB1ZSgic3RhdGUiKSksCiAgICAgICAgKGR1ZVtKYV0gPSAhMCksCiAgICAgICAgKGhmID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgIGlmIChReShlLCBKYSkpIHRocm93IG5ldyBlZyhwTCk7CiAgICAgICAgICByZXR1cm4gKHQuZmFjYWRlID0gZSksIGZ1ZShlLCBKYSwgdCksIHQ7CiAgICAgICAgfSksCiAgICAgICAgKFExID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHJldHVybiBReShlLCBKYSkgPyBlW0phXSA6IHt9OwogICAgICAgIH0pLAogICAgICAgIChtZiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICByZXR1cm4gUXkoZSwgSmEpOwogICAgICAgIH0pKTsKICAgIHZhciBuYSwgZEwsIFp5LCBoTCwgSmE7CiAgICB5TC5leHBvcnRzID0geyBzZXQ6IGhmLCBnZXQ6IFExLCBoYXM6IG1mLCBlbmZvcmNlOiBtdWUsIGdldHRlckZvcjogeXVlIH07CiAgfSk7CiAgdmFyIG5nID0gRSgoWjhlLCB2TCkgPT4gewogICAgdmFyIHRnID0gdHIoKSwKICAgICAgZ3VlID0gcnIoKSwKICAgICAgZ0wgPSBGdW5jdGlvbi5wcm90b3R5cGUsCiAgICAgIHZ1ZSA9IHRnICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsCiAgICAgIHJnID0gZ3VlKGdMLCAibmFtZSIpLAogICAgICBidWUgPSByZyAmJiBmdW5jdGlvbiAoKSB7fS5uYW1lID09PSAic29tZXRoaW5nIiwKICAgICAgTXVlID0gcmcgJiYgKCF0ZyB8fCAodGcgJiYgdnVlKGdMLCAibmFtZSIpLmNvbmZpZ3VyYWJsZSkpOwogICAgdkwuZXhwb3J0cyA9IHsgRVhJU1RTOiByZywgUFJPUEVSOiBidWUsIENPTkZJR1VSQUJMRTogTXVlIH07CiAgfSk7CiAgdmFyIGRuID0gRSgoZUtlLCBFTCkgPT4gewogICAgdmFyIEF1ZSA9IFNlKCksCiAgICAgIGJMID0gTXQoKSwKICAgICAgRXVlID0gcnIoKSwKICAgICAgTUwgPSBRYSgpLAogICAgICBUdWUgPSBwZigpLAogICAgICBfdWUgPSBLMSgpLAogICAgICBBTCA9IGRpKCksCiAgICAgIFN1ZSA9IG5nKCkuQ09ORklHVVJBQkxFLAogICAgICBPdWUgPSBBTC5nZXQsCiAgICAgIHh1ZSA9IEFMLmVuZm9yY2UsCiAgICAgIEN1ZSA9IFN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKTsKICAgIChFTC5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4pIHsKICAgICAgdmFyIGkgPSBuID8gISFuLnVuc2FmZSA6ICExLAogICAgICAgIGEgPSBuID8gISFuLmVudW1lcmFibGUgOiAhMSwKICAgICAgICBvID0gbiA/ICEhbi5ub1RhcmdldEdldCA6ICExLAogICAgICAgIHMgPSBuICYmIG4ubmFtZSAhPT0gdm9pZCAwID8gbi5uYW1lIDogdCwKICAgICAgICBjOwogICAgICBpZiAoCiAgICAgICAgKGJMKHIpICYmCiAgICAgICAgICAoU3RyaW5nKHMpLnNsaWNlKDAsIDcpID09PSAiU3ltYm9sKCIgJiYKICAgICAgICAgICAgKHMgPSAiWyIgKyBTdHJpbmcocykucmVwbGFjZSgvXlN5bWJvbFwoKFteKV0qKVwpLywgIiQxIikgKyAiXSIpLAogICAgICAgICAgKCFFdWUociwgIm5hbWUiKSB8fCAoU3VlICYmIHIubmFtZSAhPT0gcykpICYmIE1MKHIsICJuYW1lIiwgcyksCiAgICAgICAgICAoYyA9IHh1ZShyKSksCiAgICAgICAgICBjLnNvdXJjZSB8fCAoYy5zb3VyY2UgPSBDdWUuam9pbih0eXBlb2YgcyA9PSAic3RyaW5nIiA/IHMgOiAiIikpKSwKICAgICAgICBlID09PSBBdWUpCiAgICAgICkgewogICAgICAgIGEgPyAoZVt0XSA9IHIpIDogVHVlKHQsIHIpOwogICAgICAgIHJldHVybjsKICAgICAgfSBlbHNlIGkgPyAhbyAmJiBlW3RdICYmIChhID0gITApIDogZGVsZXRlIGVbdF07CiAgICAgIGEgPyAoZVt0XSA9IHIpIDogTUwoZSwgdCwgcik7CiAgICB9KShGdW5jdGlvbi5wcm90b3R5cGUsICJ0b1N0cmluZyIsIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIChiTCh0aGlzKSAmJiBPdWUodGhpcykuc291cmNlKSB8fCBfdWUodGhpcyk7CiAgICB9KTsKICB9KTsKICB2YXIgaG4gPSBFKCh0S2UsIFRMKSA9PiB7CiAgICB2YXIgUnVlID0gTWF0aC5jZWlsLAogICAgICBJdWUgPSBNYXRoLmZsb29yOwogICAgVEwuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHZhciB0ID0gK2U7CiAgICAgIHJldHVybiB0ICE9PSB0IHx8IHQgPT09IDAgPyAwIDogKHQgPiAwID8gSXVlIDogUnVlKSh0KTsKICAgIH07CiAgfSk7CiAgdmFyIF9zID0gRSgocktlLCBfTCkgPT4gewogICAgdmFyIEx1ZSA9IGhuKCksCiAgICAgIE51ZSA9IE1hdGgubWF4LAogICAgICB3dWUgPSBNYXRoLm1pbjsKICAgIF9MLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICB2YXIgciA9IEx1ZShlKTsKICAgICAgcmV0dXJuIHIgPCAwID8gTnVlKHIgKyB0LCAwKSA6IHd1ZShyLCB0KTsKICAgIH07CiAgfSk7CiAgdmFyIE9MID0gRSgobktlLCBTTCkgPT4gewogICAgdmFyIFB1ZSA9IGhuKCksCiAgICAgIER1ZSA9IE1hdGgubWluOwogICAgU0wuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHJldHVybiBlID4gMCA/IER1ZShQdWUoZSksIDkwMDcxOTkyNTQ3NDA5OTEpIDogMDsKICAgIH07CiAgfSk7CiAgdmFyIEV0ID0gRSgoaUtlLCB4TCkgPT4gewogICAgdmFyIHF1ZSA9IE9MKCk7CiAgICB4TC5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgcmV0dXJuIHF1ZShlLmxlbmd0aCk7CiAgICB9OwogIH0pOwogIHZhciB5ZiA9IEUoKGFLZSwgUkwpID0+IHsKICAgIHZhciB6dWUgPSAkcigpLAogICAgICBGdWUgPSBfcygpLAogICAgICBrdWUgPSBFdCgpLAogICAgICBDTCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0LCByLCBuKSB7CiAgICAgICAgICB2YXIgaSA9IHp1ZSh0KSwKICAgICAgICAgICAgYSA9IGt1ZShpKSwKICAgICAgICAgICAgbyA9IEZ1ZShuLCBhKSwKICAgICAgICAgICAgczsKICAgICAgICAgIGlmIChlICYmIHIgIT0gcikgewogICAgICAgICAgICBmb3IgKDsgYSA+IG87ICkgaWYgKCgocyA9IGlbbysrXSksIHMgIT0gcykpIHJldHVybiAhMDsKICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICBmb3IgKDsgYSA+IG87IG8rKykKICAgICAgICAgICAgICBpZiAoKGUgfHwgbyBpbiBpKSAmJiBpW29dID09PSByKSByZXR1cm4gZSB8fCBvIHx8IDA7CiAgICAgICAgICByZXR1cm4gIWUgJiYgLTE7CiAgICAgICAgfTsKICAgICAgfTsKICAgIFJMLmV4cG9ydHMgPSB7IGluY2x1ZGVzOiBDTCghMCksIGluZGV4T2Y6IENMKCExKSB9OwogIH0pOwogIHZhciBhZyA9IEUoKG9LZSwgTEwpID0+IHsKICAgIHZhciBCdWUgPSBYZSgpLAogICAgICBpZyA9IHJyKCksCiAgICAgIFd1ZSA9ICRyKCksCiAgICAgIFV1ZSA9IHlmKCkuaW5kZXhPZiwKICAgICAgWHVlID0gVHMoKSwKICAgICAgSUwgPSBCdWUoW10ucHVzaCk7CiAgICBMTC5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgdmFyIHIgPSBXdWUoZSksCiAgICAgICAgbiA9IDAsCiAgICAgICAgaSA9IFtdLAogICAgICAgIGE7CiAgICAgIGZvciAoYSBpbiByKSAhaWcoWHVlLCBhKSAmJiBpZyhyLCBhKSAmJiBJTChpLCBhKTsKICAgICAgZm9yICg7IHQubGVuZ3RoID4gbjsgKSBpZyhyLCAoYSA9IHRbbisrXSkpICYmICh+VXVlKGksIGEpIHx8IElMKGksIGEpKTsKICAgICAgcmV0dXJuIGk7CiAgICB9OwogIH0pOwogIHZhciBnZiA9IEUoKHNLZSwgTkwpID0+IHsKICAgIE5MLmV4cG9ydHMgPSBbCiAgICAgICJjb25zdHJ1Y3RvciIsCiAgICAgICJoYXNPd25Qcm9wZXJ0eSIsCiAgICAgICJpc1Byb3RvdHlwZU9mIiwKICAgICAgInByb3BlcnR5SXNFbnVtZXJhYmxlIiwKICAgICAgInRvTG9jYWxlU3RyaW5nIiwKICAgICAgInRvU3RyaW5nIiwKICAgICAgInZhbHVlT2YiLAogICAgXTsKICB9KTsKICB2YXIgU3MgPSBFKCh3TCkgPT4gewogICAgdmFyIFZ1ZSA9IGFnKCksCiAgICAgIEh1ZSA9IGdmKCksCiAgICAgIEd1ZSA9IEh1ZS5jb25jYXQoImxlbmd0aCIsICJwcm90b3R5cGUiKTsKICAgIHdMLmYgPQogICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fAogICAgICBmdW5jdGlvbiAodCkgewogICAgICAgIHJldHVybiBWdWUodCwgR3VlKTsKICAgICAgfTsKICB9KTsKICB2YXIgb2cgPSBFKChQTCkgPT4gewogICAgUEwuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7CiAgfSk7CiAgdmFyIHFMID0gRSgobEtlLCBETCkgPT4gewogICAgdmFyIGp1ZSA9IHpyKCksCiAgICAgIFl1ZSA9IFhlKCksCiAgICAgIEt1ZSA9IFNzKCksCiAgICAgICR1ZSA9IG9nKCksCiAgICAgIFF1ZSA9IG5yKCksCiAgICAgIEp1ZSA9IFl1ZShbXS5jb25jYXQpOwogICAgREwuZXhwb3J0cyA9CiAgICAgIGp1ZSgiUmVmbGVjdCIsICJvd25LZXlzIikgfHwKICAgICAgZnVuY3Rpb24gKHQpIHsKICAgICAgICB2YXIgciA9IEt1ZS5mKFF1ZSh0KSksCiAgICAgICAgICBuID0gJHVlLmY7CiAgICAgICAgcmV0dXJuIG4gPyBKdWUociwgbih0KSkgOiByOwogICAgICB9OwogIH0pOwogIHZhciBzZyA9IEUoKGZLZSwgekwpID0+IHsKICAgIHZhciBadWUgPSBycigpLAogICAgICBlbGUgPSBxTCgpLAogICAgICB0bGUgPSBFcygpLAogICAgICBybGUgPSBpcigpOwogICAgekwuZXhwb3J0cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgPSBlbGUodCksIG4gPSBybGUuZiwgaSA9IHRsZS5mLCBhID0gMDsgYSA8IHIubGVuZ3RoOyBhKyspIHsKICAgICAgICB2YXIgbyA9IHJbYV07CiAgICAgICAgWnVlKGUsIG8pIHx8IG4oZSwgbywgaSh0LCBvKSk7CiAgICAgIH0KICAgIH07CiAgfSk7CiAgdmFyIFoxID0gRSgocEtlLCBGTCkgPT4gewogICAgdmFyIG5sZSA9IGJ0KCksCiAgICAgIGlsZSA9IE10KCksCiAgICAgIGFsZSA9IC8jfFwucHJvdG90eXBlXC4vLAogICAgICBKMSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgdmFyIHIgPSBzbGVbb2xlKGUpXTsKICAgICAgICByZXR1cm4gciA9PSB1bGUgPyAhMCA6IHIgPT0gY2xlID8gITEgOiBpbGUodCkgPyBubGUodCkgOiAhIXQ7CiAgICAgIH0sCiAgICAgIG9sZSA9IChKMS5ub3JtYWxpemUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHJldHVybiBTdHJpbmcoZSkucmVwbGFjZShhbGUsICIuIikudG9Mb3dlckNhc2UoKTsKICAgICAgfSksCiAgICAgIHNsZSA9IChKMS5kYXRhID0ge30pLAogICAgICBjbGUgPSAoSjEuTkFUSVZFID0gIk4iKSwKICAgICAgdWxlID0gKEoxLlBPTFlGSUxMID0gIlAiKTsKICAgIEZMLmV4cG9ydHMgPSBKMTsKICB9KTsKICB2YXIgTGUgPSBFKChkS2UsIGtMKSA9PiB7CiAgICB2YXIgY2cgPSBTZSgpLAogICAgICBsbGUgPSBFcygpLmYsCiAgICAgIGZsZSA9IFFhKCksCiAgICAgIHBsZSA9IGRuKCksCiAgICAgIGRsZSA9IHBmKCksCiAgICAgIGhsZSA9IHNnKCksCiAgICAgIG1sZSA9IFoxKCk7CiAgICBrTC5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgdmFyIHIgPSBlLnRhcmdldCwKICAgICAgICBuID0gZS5nbG9iYWwsCiAgICAgICAgaSA9IGUuc3RhdCwKICAgICAgICBhLAogICAgICAgIG8sCiAgICAgICAgcywKICAgICAgICBjLAogICAgICAgIHUsCiAgICAgICAgbDsKICAgICAgaWYgKAogICAgICAgIChuCiAgICAgICAgICA/IChvID0gY2cpCiAgICAgICAgICA6IGkKICAgICAgICAgID8gKG8gPSBjZ1tyXSB8fCBkbGUociwge30pKQogICAgICAgICAgOiAobyA9IChjZ1tyXSB8fCB7fSkucHJvdG90eXBlKSwKICAgICAgICBvKQogICAgICApCiAgICAgICAgZm9yIChzIGluIHQpIHsKICAgICAgICAgIGlmICgKICAgICAgICAgICAgKCh1ID0gdFtzXSksCiAgICAgICAgICAgIGUubm9UYXJnZXRHZXQgPyAoKGwgPSBsbGUobywgcykpLCAoYyA9IGwgJiYgbC52YWx1ZSkpIDogKGMgPSBvW3NdKSwKICAgICAgICAgICAgKGEgPSBtbGUobiA/IHMgOiByICsgKGkgPyAiLiIgOiAiIyIpICsgcywgZS5mb3JjZWQpKSwKICAgICAgICAgICAgIWEgJiYgYyAhPT0gdm9pZCAwKQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgdSA9PSB0eXBlb2YgYykgY29udGludWU7CiAgICAgICAgICAgIGhsZSh1LCBjKTsKICAgICAgICAgIH0KICAgICAgICAgIChlLnNoYW0gfHwgKGMgJiYgYy5zaGFtKSkgJiYgZmxlKHUsICJzaGFtIiwgITApLCBwbGUobywgcywgdSwgZSk7CiAgICAgICAgfQogICAgfTsKICB9KTsKICB2YXIgbW4gPSBFKChoS2UsIFVMKSA9PiB7CiAgICB2YXIgQkwgPSBYZSgpLAogICAgICB5bGUgPSBwbigpLAogICAgICBXTCA9IEJMKEJMLmJpbmQpOwogICAgVUwuZXhwb3J0cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgIHJldHVybiAoCiAgICAgICAgeWxlKGUpLAogICAgICAgIHQgPT09IHZvaWQgMAogICAgICAgICAgPyBlCiAgICAgICAgICA6IFdMCiAgICAgICAgICA/IFdMKGUsIHQpCiAgICAgICAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gZS5hcHBseSh0LCBhcmd1bWVudHMpOwogICAgICAgICAgICB9CiAgICAgICk7CiAgICB9OwogIH0pOwogIHZhciB1ZyA9IEUoKG1LZSwgVkwpID0+IHsKICAgIHZhciBnbGUgPSBxcigpLAogICAgICBYTCA9IG5yKCksCiAgICAgIHZsZSA9IHJhKCk7CiAgICBWTC5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgdmFyIG4sIGk7CiAgICAgIFhMKGUpOwogICAgICB0cnkgewogICAgICAgIGlmICgoKG4gPSB2bGUoZSwgInJldHVybiIpKSwgIW4pKSB7CiAgICAgICAgICBpZiAodCA9PT0gInRocm93IikgdGhyb3cgcjsKICAgICAgICAgIHJldHVybiByOwogICAgICAgIH0KICAgICAgICBuID0gZ2xlKG4sIGUpOwogICAgICB9IGNhdGNoIChhKSB7CiAgICAgICAgKGkgPSAhMCksIChuID0gYSk7CiAgICAgIH0KICAgICAgaWYgKHQgPT09ICJ0aHJvdyIpIHRocm93IHI7CiAgICAgIGlmIChpKSB0aHJvdyBuOwogICAgICByZXR1cm4gWEwobiksIHI7CiAgICB9OwogIH0pOwogIHZhciBHTCA9IEUoKHlLZSwgSEwpID0+IHsKICAgIHZhciBibGUgPSBucigpLAogICAgICBNbGUgPSB1ZygpOwogICAgSEwuZXhwb3J0cyA9IGZ1bmN0aW9uIChlLCB0LCByLCBuKSB7CiAgICAgIHRyeSB7CiAgICAgICAgcmV0dXJuIG4gPyB0KGJsZShyKVswXSwgclsxXSkgOiB0KHIpOwogICAgICB9IGNhdGNoIChpKSB7CiAgICAgICAgTWxlKGUsICJ0aHJvdyIsIGkpOwogICAgICB9CiAgICB9OwogIH0pOwogIHZhciBPcyA9IEUoKGdLZSwgakwpID0+IHsKICAgIGpMLmV4cG9ydHMgPSB7fTsKICB9KTsKICB2YXIgbGcgPSBFKCh2S2UsIFlMKSA9PiB7CiAgICB2YXIgQWxlID0gZ3QoKSwKICAgICAgRWxlID0gT3MoKSwKICAgICAgVGxlID0gQWxlKCJpdGVyYXRvciIpLAogICAgICBfbGUgPSBBcnJheS5wcm90b3R5cGU7CiAgICBZTC5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgcmV0dXJuIGUgIT09IHZvaWQgMCAmJiAoRWxlLkFycmF5ID09PSBlIHx8IF9sZVtUbGVdID09PSBlKTsKICAgIH07CiAgfSk7CiAgdmFyIHZmID0gRSgoYktlLCAkTCkgPT4gewogICAgdmFyIFNsZSA9IGd0KCksCiAgICAgIE9sZSA9IFNsZSgidG9TdHJpbmdUYWciKSwKICAgICAgS0wgPSB7fTsKICAgIEtMW09sZV0gPSAieiI7CiAgICAkTC5leHBvcnRzID0gU3RyaW5nKEtMKSA9PT0gIltvYmplY3Qgel0iOwogIH0pOwogIHZhciBlYyA9IEUoKE1LZSwgUUwpID0+IHsKICAgIHZhciB4bGUgPSBTZSgpLAogICAgICBDbGUgPSB2ZigpLAogICAgICBSbGUgPSBNdCgpLAogICAgICBiZiA9IHZzKCksCiAgICAgIElsZSA9IGd0KCksCiAgICAgIExsZSA9IElsZSgidG9TdHJpbmdUYWciKSwKICAgICAgTmxlID0geGxlLk9iamVjdCwKICAgICAgd2xlID0KICAgICAgICBiZigKICAgICAgICAgIChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAgICAgICB9KSgpCiAgICAgICAgKSA9PSAiQXJndW1lbnRzIiwKICAgICAgUGxlID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGVbdF07CiAgICAgICAgfSBjYXRjaCB7fQogICAgICB9OwogICAgUUwuZXhwb3J0cyA9IENsZQogICAgICA/IGJmCiAgICAgIDogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHZhciB0LCByLCBuOwogICAgICAgICAgcmV0dXJuIGUgPT09IHZvaWQgMAogICAgICAgICAgICA/ICJVbmRlZmluZWQiCiAgICAgICAgICAgIDogZSA9PT0gbnVsbAogICAgICAgICAgICA/ICJOdWxsIgogICAgICAgICAgICA6IHR5cGVvZiAociA9IFBsZSgodCA9IE5sZShlKSksIExsZSkpID09ICJzdHJpbmciCiAgICAgICAgICAgID8gcgogICAgICAgICAgICA6IHdsZQogICAgICAgICAgICA/IGJmKHQpCiAgICAgICAgICAgIDogKG4gPSBiZih0KSkgPT0gIk9iamVjdCIgJiYgUmxlKHQuY2FsbGVlKQogICAgICAgICAgICA/ICJBcmd1bWVudHMiCiAgICAgICAgICAgIDogbjsKICAgICAgICB9OwogIH0pOwogIHZhciBaYSA9IEUoKEFLZSwgdE4pID0+IHsKICAgIHZhciBEbGUgPSBYZSgpLAogICAgICBxbGUgPSBidCgpLAogICAgICBKTCA9IE10KCksCiAgICAgIHpsZSA9IGVjKCksCiAgICAgIEZsZSA9IHpyKCksCiAgICAgIGtsZSA9IEsxKCksCiAgICAgIFpMID0gZnVuY3Rpb24gKCkge30sCiAgICAgIEJsZSA9IFtdLAogICAgICBlTiA9IEZsZSgiUmVmbGVjdCIsICJjb25zdHJ1Y3QiKSwKICAgICAgZmcgPSAvXlxzKig/OmNsYXNzfGZ1bmN0aW9uKVxiLywKICAgICAgV2xlID0gRGxlKGZnLmV4ZWMpLAogICAgICBVbGUgPSAhZmcuZXhlYyhaTCksCiAgICAgIHRjID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICBpZiAoIUpMKGUpKSByZXR1cm4gITE7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiBlTihaTCwgQmxlLCBlKSwgITA7CiAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgfQogICAgICB9LAogICAgICBYbGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIGlmICghSkwoZSkpIHJldHVybiAhMTsKICAgICAgICBzd2l0Y2ggKHpsZShlKSkgewogICAgICAgICAgY2FzZSAiQXN5bmNGdW5jdGlvbiI6CiAgICAgICAgICBjYXNlICJHZW5lcmF0b3JGdW5jdGlvbiI6CiAgICAgICAgICBjYXNlICJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIjoKICAgICAgICAgICAgcmV0dXJuICExOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVWxlIHx8ICEhV2xlKGZnLCBrbGUoZSkpOwogICAgICB9OwogICAgdE4uZXhwb3J0cyA9CiAgICAgICFlTiB8fAogICAgICBxbGUoZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBlOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICB0Yyh0Yy5jYWxsKSB8fAogICAgICAgICAgIXRjKE9iamVjdCkgfHwKICAgICAgICAgICF0YyhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGUgPSAhMDsKICAgICAgICAgIH0pIHx8CiAgICAgICAgICBlCiAgICAgICAgKTsKICAgICAgfSkKICAgICAgICA/IFhsZQogICAgICAgIDogdGM7CiAgfSk7CiAgdmFyIHhzID0gRSgoRUtlLCByTikgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFZsZSA9IEFzKCksCiAgICAgIEhsZSA9IGlyKCksCiAgICAgIEdsZSA9IGdzKCk7CiAgICByTi5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgdmFyIG4gPSBWbGUodCk7CiAgICAgIG4gaW4gZSA/IEhsZS5mKGUsIG4sIEdsZSgwLCByKSkgOiAoZVtuXSA9IHIpOwogICAgfTsKICB9KTsKICB2YXIgcmMgPSBFKChUS2UsIGlOKSA9PiB7CiAgICB2YXIgamxlID0gZWMoKSwKICAgICAgbk4gPSByYSgpLAogICAgICBZbGUgPSBPcygpLAogICAgICBLbGUgPSBndCgpLAogICAgICAkbGUgPSBLbGUoIml0ZXJhdG9yIik7CiAgICBpTi5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgaWYgKGUgIT0gbnVsbCkgcmV0dXJuIG5OKGUsICRsZSkgfHwgbk4oZSwgIkBAaXRlcmF0b3IiKSB8fCBZbGVbamxlKGUpXTsKICAgIH07CiAgfSk7CiAgdmFyIG5jID0gRSgoX0tlLCBhTikgPT4gewogICAgdmFyIFFsZSA9IFNlKCksCiAgICAgIEpsZSA9IHFyKCksCiAgICAgIFpsZSA9IHBuKCksCiAgICAgIGVmZSA9IG5yKCksCiAgICAgIHRmZSA9IEgxKCksCiAgICAgIHJmZSA9IHJjKCksCiAgICAgIG5mZSA9IFFsZS5UeXBlRXJyb3I7CiAgICBhTi5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgdmFyIHIgPSBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IHJmZShlKSA6IHQ7CiAgICAgIGlmIChabGUocikpIHJldHVybiBlZmUoSmxlKHIsIGUpKTsKICAgICAgdGhyb3cgbmZlKHRmZShlKSArICIgaXMgbm90IGl0ZXJhYmxlIik7CiAgICB9OwogIH0pOwogIHZhciB1TiA9IEUoKFNLZSwgY04pID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBpZmUgPSBTZSgpLAogICAgICBhZmUgPSBtbigpLAogICAgICBvZmUgPSBxcigpLAogICAgICBzZmUgPSBPdCgpLAogICAgICBjZmUgPSBHTCgpLAogICAgICB1ZmUgPSBsZygpLAogICAgICBsZmUgPSBaYSgpLAogICAgICBmZmUgPSBFdCgpLAogICAgICBvTiA9IHhzKCksCiAgICAgIHBmZSA9IG5jKCksCiAgICAgIGRmZSA9IHJjKCksCiAgICAgIHNOID0gaWZlLkFycmF5OwogICAgY04uZXhwb3J0cyA9IGZ1bmN0aW9uICh0KSB7CiAgICAgIHZhciByID0gc2ZlKHQpLAogICAgICAgIG4gPSBsZmUodGhpcyksCiAgICAgICAgaSA9IGFyZ3VtZW50cy5sZW5ndGgsCiAgICAgICAgYSA9IGkgPiAxID8gYXJndW1lbnRzWzFdIDogdm9pZCAwLAogICAgICAgIG8gPSBhICE9PSB2b2lkIDA7CiAgICAgIG8gJiYgKGEgPSBhZmUoYSwgaSA+IDIgPyBhcmd1bWVudHNbMl0gOiB2b2lkIDApKTsKICAgICAgdmFyIHMgPSBkZmUociksCiAgICAgICAgYyA9IDAsCiAgICAgICAgdSwKICAgICAgICBsLAogICAgICAgIHAsCiAgICAgICAgZCwKICAgICAgICBoLAogICAgICAgIG07CiAgICAgIGlmIChzICYmICEodGhpcyA9PSBzTiAmJiB1ZmUocykpKQogICAgICAgIGZvciAoCiAgICAgICAgICBkID0gcGZlKHIsIHMpLCBoID0gZC5uZXh0LCBsID0gbiA/IG5ldyB0aGlzKCkgOiBbXTsKICAgICAgICAgICEocCA9IG9mZShoLCBkKSkuZG9uZTsKICAgICAgICAgIGMrKwogICAgICAgICkKICAgICAgICAgIChtID0gbyA/IGNmZShkLCBhLCBbcC52YWx1ZSwgY10sICEwKSA6IHAudmFsdWUpLCBvTihsLCBjLCBtKTsKICAgICAgZWxzZQogICAgICAgIGZvciAodSA9IGZmZShyKSwgbCA9IG4gPyBuZXcgdGhpcyh1KSA6IHNOKHUpOyB1ID4gYzsgYysrKQogICAgICAgICAgKG0gPSBvID8gYShyW2NdLCBjKSA6IHJbY10pLCBvTihsLCBjLCBtKTsKICAgICAgcmV0dXJuIChsLmxlbmd0aCA9IGMpLCBsOwogICAgfTsKICB9KTsKICB2YXIgTWYgPSBFKChPS2UsIGROKSA9PiB7CiAgICB2YXIgaGZlID0gZ3QoKSwKICAgICAgZk4gPSBoZmUoIml0ZXJhdG9yIiksCiAgICAgIHBOID0gITE7CiAgICB0cnkgewogICAgICAobE4gPSAwKSwKICAgICAgICAocGcgPSB7CiAgICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB7IGRvbmU6ICEhbE4rKyB9OwogICAgICAgICAgfSwKICAgICAgICAgIHJldHVybjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBwTiA9ICEwOwogICAgICAgICAgfSwKICAgICAgICB9KSwKICAgICAgICAocGdbZk5dID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgfSksCiAgICAgICAgQXJyYXkuZnJvbShwZywgZnVuY3Rpb24gKCkgewogICAgICAgICAgdGhyb3cgMjsKICAgICAgICB9KTsKICAgIH0gY2F0Y2gge30KICAgIHZhciBsTiwgcGc7CiAgICBkTi5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgaWYgKCF0ICYmICFwTikgcmV0dXJuICExOwogICAgICB2YXIgciA9ICExOwogICAgICB0cnkgewogICAgICAgIHZhciBuID0ge307CiAgICAgICAgKG5bZk5dID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IChyID0gITApIH07CiAgICAgICAgICAgIH0sCiAgICAgICAgICB9OwogICAgICAgIH0pLAogICAgICAgICAgZShuKTsKICAgICAgfSBjYXRjaCB7fQogICAgICByZXR1cm4gcjsKICAgIH07CiAgfSk7CiAgdmFyIGhOID0gRSgoKSA9PiB7CiAgICB2YXIgbWZlID0gTGUoKSwKICAgICAgeWZlID0gdU4oKSwKICAgICAgZ2ZlID0gTWYoKSwKICAgICAgdmZlID0gIWdmZShmdW5jdGlvbiAoZSkgewogICAgICAgIEFycmF5LmZyb20oZSk7CiAgICAgIH0pOwogICAgbWZlKHsgdGFyZ2V0OiAiQXJyYXkiLCBzdGF0OiAhMCwgZm9yY2VkOiB2ZmUgfSwgeyBmcm9tOiB5ZmUgfSk7CiAgfSk7CiAgdmFyIGhpID0gRSgoUktlLCBtTikgPT4gewogICAgdmFyIGJmZSA9IHZzKCk7CiAgICBtTi5leHBvcnRzID0KICAgICAgQXJyYXkuaXNBcnJheSB8fAogICAgICBmdW5jdGlvbiAodCkgewogICAgICAgIHJldHVybiBiZmUodCkgPT0gIkFycmF5IjsKICAgICAgfTsKICB9KTsKICB2YXIgeU4gPSBFKCgpID0+IHsKICAgIHZhciBNZmUgPSBMZSgpLAogICAgICBBZmUgPSBoaSgpOwogICAgTWZlKHsgdGFyZ2V0OiAiQXJyYXkiLCBzdGF0OiAhMCB9LCB7IGlzQXJyYXk6IEFmZSB9KTsKICB9KTsKICB2YXIgdk4gPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBFZmUgPSBMZSgpLAogICAgICBUZmUgPSBTZSgpLAogICAgICBfZmUgPSBidCgpLAogICAgICBTZmUgPSBaYSgpLAogICAgICBPZmUgPSB4cygpLAogICAgICBnTiA9IFRmZS5BcnJheSwKICAgICAgeGZlID0gX2ZlKGZ1bmN0aW9uICgpIHsKICAgICAgICBmdW5jdGlvbiBlKCkge30KICAgICAgICByZXR1cm4gIShnTi5vZi5jYWxsKGUpIGluc3RhbmNlb2YgZSk7CiAgICAgIH0pOwogICAgRWZlKAogICAgICB7IHRhcmdldDogIkFycmF5Iiwgc3RhdDogITAsIGZvcmNlZDogeGZlIH0sCiAgICAgIHsKICAgICAgICBvZjogZnVuY3Rpb24gKCkgewogICAgICAgICAgZm9yICgKICAgICAgICAgICAgdmFyIHQgPSAwLCByID0gYXJndW1lbnRzLmxlbmd0aCwgbiA9IG5ldyAoU2ZlKHRoaXMpID8gdGhpcyA6IGdOKShyKTsKICAgICAgICAgICAgciA+IHQ7CgogICAgICAgICAgKQogICAgICAgICAgICBPZmUobiwgdCwgYXJndW1lbnRzW3QrK10pOwogICAgICAgICAgcmV0dXJuIChuLmxlbmd0aCA9IHIpLCBuOwogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgfSk7CiAgdmFyIEFmID0gRSgoUEtlLCBiTikgPT4gewogICAgdmFyIENmZSA9IGFnKCksCiAgICAgIFJmZSA9IGdmKCk7CiAgICBiTi5leHBvcnRzID0KICAgICAgT2JqZWN0LmtleXMgfHwKICAgICAgZnVuY3Rpb24gKHQpIHsKICAgICAgICByZXR1cm4gQ2ZlKHQsIFJmZSk7CiAgICAgIH07CiAgfSk7CiAgdmFyIGRnID0gRSgoREtlLCBNTikgPT4gewogICAgdmFyIElmZSA9IHRyKCksCiAgICAgIExmZSA9IGlyKCksCiAgICAgIE5mZSA9IG5yKCksCiAgICAgIHdmZSA9ICRyKCksCiAgICAgIFBmZSA9IEFmKCk7CiAgICBNTi5leHBvcnRzID0gSWZlCiAgICAgID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMKICAgICAgOiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgTmZlKHQpOwogICAgICAgICAgZm9yICh2YXIgbiA9IHdmZShyKSwgaSA9IFBmZShyKSwgYSA9IGkubGVuZ3RoLCBvID0gMCwgczsgYSA+IG87ICkKICAgICAgICAgICAgTGZlLmYodCwgKHMgPSBpW28rK10pLCBuW3NdKTsKICAgICAgICAgIHJldHVybiB0OwogICAgICAgIH07CiAgfSk7CiAgdmFyIGhnID0gRSgocUtlLCBBTikgPT4gewogICAgdmFyIERmZSA9IHpyKCk7CiAgICBBTi5leHBvcnRzID0gRGZlKCJkb2N1bWVudCIsICJkb2N1bWVudEVsZW1lbnQiKTsKICB9KTsKICB2YXIgbWkgPSBFKCh6S2UsIENOKSA9PiB7CiAgICB2YXIgcWZlID0gbnIoKSwKICAgICAgemZlID0gZGcoKSwKICAgICAgRU4gPSBnZigpLAogICAgICBGZmUgPSBUcygpLAogICAgICBrZmUgPSBoZygpLAogICAgICBCZmUgPSBZMSgpLAogICAgICBXZmUgPSAkMSgpLAogICAgICBUTiA9ICI+IiwKICAgICAgX04gPSAiPCIsCiAgICAgIHlnID0gInByb3RvdHlwZSIsCiAgICAgIGdnID0gInNjcmlwdCIsCiAgICAgIE9OID0gV2ZlKCJJRV9QUk9UTyIpLAogICAgICBtZyA9IGZ1bmN0aW9uICgpIHt9LAogICAgICB4TiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIF9OICsgZ2cgKyBUTiArIGUgKyBfTiArICIvIiArIGdnICsgVE47CiAgICAgIH0sCiAgICAgIFNOID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICBlLndyaXRlKHhOKCIiKSksIGUuY2xvc2UoKTsKICAgICAgICB2YXIgdCA9IGUucGFyZW50V2luZG93Lk9iamVjdDsKICAgICAgICByZXR1cm4gKGUgPSBudWxsKSwgdDsKICAgICAgfSwKICAgICAgVWZlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBlID0gQmZlKCJpZnJhbWUiKSwKICAgICAgICAgIHQgPSAiamF2YSIgKyBnZyArICI6IiwKICAgICAgICAgIHI7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIChlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpLAogICAgICAgICAga2ZlLmFwcGVuZENoaWxkKGUpLAogICAgICAgICAgKGUuc3JjID0gU3RyaW5nKHQpKSwKICAgICAgICAgIChyID0gZS5jb250ZW50V2luZG93LmRvY3VtZW50KSwKICAgICAgICAgIHIub3BlbigpLAogICAgICAgICAgci53cml0ZSh4TigiZG9jdW1lbnQuRj1PYmplY3QiKSksCiAgICAgICAgICByLmNsb3NlKCksCiAgICAgICAgICByLkYKICAgICAgICApOwogICAgICB9LAogICAgICBFZiwKICAgICAgVGYgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIEVmID0gbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIik7CiAgICAgICAgfSBjYXRjaCB7fQogICAgICAgIFRmID0KICAgICAgICAgIHR5cGVvZiBkb2N1bWVudCA8ICJ1IgogICAgICAgICAgICA/IGRvY3VtZW50LmRvbWFpbiAmJiBFZgogICAgICAgICAgICAgID8gU04oRWYpCiAgICAgICAgICAgICAgOiBVZmUoKQogICAgICAgICAgICA6IFNOKEVmKTsKICAgICAgICBmb3IgKHZhciBlID0gRU4ubGVuZ3RoOyBlLS07ICkgZGVsZXRlIFRmW3lnXVtFTltlXV07CiAgICAgICAgcmV0dXJuIFRmKCk7CiAgICAgIH07CiAgICBGZmVbT05dID0gITA7CiAgICBDTi5leHBvcnRzID0KICAgICAgT2JqZWN0LmNyZWF0ZSB8fAogICAgICBmdW5jdGlvbiAodCwgcikgewogICAgICAgIHZhciBuOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICB0ICE9PSBudWxsCiAgICAgICAgICAgID8gKChtZ1t5Z10gPSBxZmUodCkpLCAobiA9IG5ldyBtZygpKSwgKG1nW3lnXSA9IG51bGwpLCAobltPTl0gPSB0KSkKICAgICAgICAgICAgOiAobiA9IFRmKCkpLAogICAgICAgICAgciA9PT0gdm9pZCAwID8gbiA6IHpmZShuLCByKQogICAgICAgICk7CiAgICAgIH07CiAgfSk7CiAgdmFyIFd0ID0gRSgoRktlLCBSTikgPT4gewogICAgdmFyIFhmZSA9IGd0KCksCiAgICAgIFZmZSA9IG1pKCksCiAgICAgIEhmZSA9IGlyKCksCiAgICAgIHZnID0gWGZlKCJ1bnNjb3BhYmxlcyIpLAogICAgICBiZyA9IEFycmF5LnByb3RvdHlwZTsKICAgIGJnW3ZnXSA9PSBudWxsICYmIEhmZS5mKGJnLCB2ZywgeyBjb25maWd1cmFibGU6ICEwLCB2YWx1ZTogVmZlKG51bGwpIH0pOwogICAgUk4uZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIGJnW3ZnXVtlXSA9ICEwOwogICAgfTsKICB9KTsKICB2YXIgTWcgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBHZmUgPSBMZSgpLAogICAgICBqZmUgPSBPdCgpLAogICAgICBZZmUgPSBFdCgpLAogICAgICBLZmUgPSBobigpLAogICAgICAkZmUgPSBXdCgpOwogICAgR2ZlKAogICAgICB7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwIH0sCiAgICAgIHsKICAgICAgICBhdDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIHZhciByID0gamZlKHRoaXMpLAogICAgICAgICAgICBuID0gWWZlKHIpLAogICAgICAgICAgICBpID0gS2ZlKHQpLAogICAgICAgICAgICBhID0gaSA+PSAwID8gaSA6IG4gKyBpOwogICAgICAgICAgcmV0dXJuIGEgPCAwIHx8IGEgPj0gbiA/IHZvaWQgMCA6IHJbYV07CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICAgICRmZSgiYXQiKTsKICB9KTsKICB2YXIgQWcgPSBFKChXS2UsIE5OKSA9PiB7CiAgICB2YXIgUWZlID0gU2UoKSwKICAgICAgSU4gPSBoaSgpLAogICAgICBKZmUgPSBaYSgpLAogICAgICBaZmUgPSBVdCgpLAogICAgICBlcGUgPSBndCgpLAogICAgICB0cGUgPSBlcGUoInNwZWNpZXMiKSwKICAgICAgTE4gPSBRZmUuQXJyYXk7CiAgICBOTi5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgdmFyIHQ7CiAgICAgIHJldHVybiAoCiAgICAgICAgSU4oZSkgJiYKICAgICAgICAgICgodCA9IGUuY29uc3RydWN0b3IpLAogICAgICAgICAgSmZlKHQpICYmICh0ID09PSBMTiB8fCBJTih0LnByb3RvdHlwZSkpCiAgICAgICAgICAgID8gKHQgPSB2b2lkIDApCiAgICAgICAgICAgIDogWmZlKHQpICYmICgodCA9IHRbdHBlXSksIHQgPT09IG51bGwgJiYgKHQgPSB2b2lkIDApKSksCiAgICAgICAgdCA9PT0gdm9pZCAwID8gTE4gOiB0CiAgICAgICk7CiAgICB9OwogIH0pOwogIHZhciBlbyA9IEUoKFVLZSwgd04pID0+IHsKICAgIHZhciBycGUgPSBBZygpOwogICAgd04uZXhwb3J0cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgIHJldHVybiBuZXcgKHJwZShlKSkodCA9PT0gMCA/IDAgOiB0KTsKICAgIH07CiAgfSk7CiAgdmFyIENzID0gRSgoWEtlLCBQTikgPT4gewogICAgdmFyIG5wZSA9IGJ0KCksCiAgICAgIGlwZSA9IGd0KCksCiAgICAgIGFwZSA9IHRhKCksCiAgICAgIG9wZSA9IGlwZSgic3BlY2llcyIpOwogICAgUE4uZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHJldHVybiAoCiAgICAgICAgYXBlID49IDUxIHx8CiAgICAgICAgIW5wZShmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgdCA9IFtdLAogICAgICAgICAgICByID0gKHQuY29uc3RydWN0b3IgPSB7fSk7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAocltvcGVdID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB7IGZvbzogMSB9OwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgdFtlXShCb29sZWFuKS5mb28gIT09IDEKICAgICAgICAgICk7CiAgICAgICAgfSkKICAgICAgKTsKICAgIH07CiAgfSk7CiAgdmFyIEVnID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc3BlID0gTGUoKSwKICAgICAgY3BlID0gU2UoKSwKICAgICAgdXBlID0gYnQoKSwKICAgICAgbHBlID0gaGkoKSwKICAgICAgZnBlID0gVXQoKSwKICAgICAgcHBlID0gT3QoKSwKICAgICAgZHBlID0gRXQoKSwKICAgICAgRE4gPSB4cygpLAogICAgICBocGUgPSBlbygpLAogICAgICBtcGUgPSBDcygpLAogICAgICB5cGUgPSBndCgpLAogICAgICBncGUgPSB0YSgpLAogICAgICBrTiA9IHlwZSgiaXNDb25jYXRTcHJlYWRhYmxlIiksCiAgICAgIHFOID0gOTAwNzE5OTI1NDc0MDk5MSwKICAgICAgek4gPSAiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIiwKICAgICAgRk4gPSBjcGUuVHlwZUVycm9yLAogICAgICB2cGUgPQogICAgICAgIGdwZSA+PSA1MSB8fAogICAgICAgICF1cGUoZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGUgPSBbXTsKICAgICAgICAgIHJldHVybiAoZVtrTl0gPSAhMSksIGUuY29uY2F0KClbMF0gIT09IGU7CiAgICAgICAgfSksCiAgICAgIGJwZSA9IG1wZSgiY29uY2F0IiksCiAgICAgIE1wZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgaWYgKCFmcGUoZSkpIHJldHVybiAhMTsKICAgICAgICB2YXIgdCA9IGVba05dOwogICAgICAgIHJldHVybiB0ICE9PSB2b2lkIDAgPyAhIXQgOiBscGUoZSk7CiAgICAgIH0sCiAgICAgIEFwZSA9ICF2cGUgfHwgIWJwZTsKICAgIHNwZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiBBcGUgfSwKICAgICAgewogICAgICAgIGNvbmNhdDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIHZhciByID0gcHBlKHRoaXMpLAogICAgICAgICAgICBuID0gaHBlKHIsIDApLAogICAgICAgICAgICBpID0gMCwKICAgICAgICAgICAgYSwKICAgICAgICAgICAgbywKICAgICAgICAgICAgcywKICAgICAgICAgICAgYywKICAgICAgICAgICAgdTsKICAgICAgICAgIGZvciAoYSA9IC0xLCBzID0gYXJndW1lbnRzLmxlbmd0aDsgYSA8IHM7IGErKykKICAgICAgICAgICAgaWYgKCgodSA9IGEgPT09IC0xID8gciA6IGFyZ3VtZW50c1thXSksIE1wZSh1KSkpIHsKICAgICAgICAgICAgICBpZiAoKChjID0gZHBlKHUpKSwgaSArIGMgPiBxTikpIHRocm93IEZOKHpOKTsKICAgICAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgYzsgbysrLCBpKyspIG8gaW4gdSAmJiBETihuLCBpLCB1W29dKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBpZiAoaSA+PSBxTikgdGhyb3cgRk4oek4pOwogICAgICAgICAgICAgIEROKG4sIGkrKywgdSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAobi5sZW5ndGggPSBpKSwgbjsKICAgICAgICB9LAogICAgICB9CiAgICApOwogIH0pOwogIHZhciBXTiA9IEUoKEdLZSwgQk4pID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBFcGUgPSBPdCgpLAogICAgICBUZyA9IF9zKCksCiAgICAgIFRwZSA9IEV0KCksCiAgICAgIF9wZSA9IE1hdGgubWluOwogICAgQk4uZXhwb3J0cyA9CiAgICAgIFtdLmNvcHlXaXRoaW4gfHwKICAgICAgZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICB2YXIgbiA9IEVwZSh0aGlzKSwKICAgICAgICAgIGkgPSBUcGUobiksCiAgICAgICAgICBhID0gVGcodCwgaSksCiAgICAgICAgICBvID0gVGcociwgaSksCiAgICAgICAgICBzID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB2b2lkIDAsCiAgICAgICAgICBjID0gX3BlKChzID09PSB2b2lkIDAgPyBpIDogVGcocywgaSkpIC0gbywgaSAtIGEpLAogICAgICAgICAgdSA9IDE7CiAgICAgICAgZm9yICgKICAgICAgICAgIG8gPCBhICYmIGEgPCBvICsgYyAmJiAoKHUgPSAtMSksIChvICs9IGMgLSAxKSwgKGEgKz0gYyAtIDEpKTsKICAgICAgICAgIGMtLSA+IDA7CgogICAgICAgICkKICAgICAgICAgIG8gaW4gbiA/IChuW2FdID0gbltvXSkgOiBkZWxldGUgblthXSwgKGEgKz0gdSksIChvICs9IHUpOwogICAgICAgIHJldHVybiBuOwogICAgICB9OwogIH0pOwogIHZhciBVTiA9IEUoKCkgPT4gewogICAgdmFyIFNwZSA9IExlKCksCiAgICAgIE9wZSA9IFdOKCksCiAgICAgIHhwZSA9IFd0KCk7CiAgICBTcGUoeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCB9LCB7IGNvcHlXaXRoaW46IE9wZSB9KTsKICAgIHhwZSgiY29weVdpdGhpbiIpOwogIH0pOwogIHZhciB5biA9IEUoKEtLZSwgVk4pID0+IHsKICAgIHZhciBDcGUgPSBtbigpLAogICAgICBScGUgPSBYZSgpLAogICAgICBJcGUgPSBqYSgpLAogICAgICBMcGUgPSBPdCgpLAogICAgICBOcGUgPSBFdCgpLAogICAgICB3cGUgPSBlbygpLAogICAgICBYTiA9IFJwZShbXS5wdXNoKSwKICAgICAgaWEgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0ID0gZSA9PSAxLAogICAgICAgICAgciA9IGUgPT0gMiwKICAgICAgICAgIG4gPSBlID09IDMsCiAgICAgICAgICBpID0gZSA9PSA0LAogICAgICAgICAgYSA9IGUgPT0gNiwKICAgICAgICAgIG8gPSBlID09IDcsCiAgICAgICAgICBzID0gZSA9PSA1IHx8IGE7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChjLCB1LCBsLCBwKSB7CiAgICAgICAgICBmb3IgKAogICAgICAgICAgICB2YXIgZCA9IExwZShjKSwKICAgICAgICAgICAgICBoID0gSXBlKGQpLAogICAgICAgICAgICAgIG0gPSBDcGUodSwgbCksCiAgICAgICAgICAgICAgdiA9IE5wZShoKSwKICAgICAgICAgICAgICB5ID0gMCwKICAgICAgICAgICAgICBnID0gcCB8fCB3cGUsCiAgICAgICAgICAgICAgTSA9IHQgPyBnKGMsIHYpIDogciB8fCBvID8gZyhjLCAwKSA6IHZvaWQgMCwKICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgIF87CiAgICAgICAgICAgIHYgPiB5OwogICAgICAgICAgICB5KysKICAgICAgICAgICkKICAgICAgICAgICAgaWYgKChzIHx8IHkgaW4gaCkgJiYgKChBID0gaFt5XSksIChfID0gbShBLCB5LCBkKSksIGUpKQogICAgICAgICAgICAgIGlmICh0KSBNW3ldID0gXzsKICAgICAgICAgICAgICBlbHNlIGlmIChfKQogICAgICAgICAgICAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gQTsKICAgICAgICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICAgWE4oTSwgQSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgICAgICBYTihNLCBBKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBhID8gLTEgOiBuIHx8IGkgPyBpIDogTTsKICAgICAgICB9OwogICAgICB9OwogICAgVk4uZXhwb3J0cyA9IHsKICAgICAgZm9yRWFjaDogaWEoMCksCiAgICAgIG1hcDogaWEoMSksCiAgICAgIGZpbHRlcjogaWEoMiksCiAgICAgIHNvbWU6IGlhKDMpLAogICAgICBldmVyeTogaWEoNCksCiAgICAgIGZpbmQ6IGlhKDUpLAogICAgICBmaW5kSW5kZXg6IGlhKDYpLAogICAgICBmaWx0ZXJSZWplY3Q6IGlhKDcpLAogICAgfTsKICB9KTsKICB2YXIgem4gPSBFKCgkS2UsIEhOKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgUHBlID0gYnQoKTsKICAgIEhOLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICB2YXIgciA9IFtdW2VdOwogICAgICByZXR1cm4gKAogICAgICAgICEhciAmJgogICAgICAgIFBwZShmdW5jdGlvbiAoKSB7CiAgICAgICAgICByLmNhbGwoCiAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgIHQgfHwKICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aHJvdyAxOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIDEKICAgICAgICAgICk7CiAgICAgICAgfSkKICAgICAgKTsKICAgIH07CiAgfSk7CiAgdmFyIEdOID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgRHBlID0gTGUoKSwKICAgICAgcXBlID0geW4oKS5ldmVyeSwKICAgICAgenBlID0gem4oKSwKICAgICAgRnBlID0genBlKCJldmVyeSIpOwogICAgRHBlKAogICAgICB7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwLCBmb3JjZWQ6ICFGcGUgfSwKICAgICAgewogICAgICAgIGV2ZXJ5OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIHFwZSh0aGlzLCB0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMCk7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9KTsKICB2YXIgS04gPSBFKChaS2UsIFlOKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIga3BlID0gT3QoKSwKICAgICAgak4gPSBfcygpLAogICAgICBCcGUgPSBFdCgpOwogICAgWU4uZXhwb3J0cyA9IGZ1bmN0aW9uICh0KSB7CiAgICAgIGZvciAoCiAgICAgICAgdmFyIHIgPSBrcGUodGhpcyksCiAgICAgICAgICBuID0gQnBlKHIpLAogICAgICAgICAgaSA9IGFyZ3VtZW50cy5sZW5ndGgsCiAgICAgICAgICBhID0gak4oaSA+IDEgPyBhcmd1bWVudHNbMV0gOiB2b2lkIDAsIG4pLAogICAgICAgICAgbyA9IGkgPiAyID8gYXJndW1lbnRzWzJdIDogdm9pZCAwLAogICAgICAgICAgcyA9IG8gPT09IHZvaWQgMCA/IG4gOiBqTihvLCBuKTsKICAgICAgICBzID4gYTsKCiAgICAgICkKICAgICAgICByW2ErK10gPSB0OwogICAgICByZXR1cm4gcjsKICAgIH07CiAgfSk7CiAgdmFyICROID0gRSgoKSA9PiB7CiAgICB2YXIgV3BlID0gTGUoKSwKICAgICAgVXBlID0gS04oKSwKICAgICAgWHBlID0gV3QoKTsKICAgIFdwZSh7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwIH0sIHsgZmlsbDogVXBlIH0pOwogICAgWHBlKCJmaWxsIik7CiAgfSk7CiAgdmFyIFFOID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgVnBlID0gTGUoKSwKICAgICAgSHBlID0geW4oKS5maWx0ZXIsCiAgICAgIEdwZSA9IENzKCksCiAgICAgIGpwZSA9IEdwZSgiZmlsdGVyIik7CiAgICBWcGUoCiAgICAgIHsgdGFyZ2V0OiAiQXJyYXkiLCBwcm90bzogITAsIGZvcmNlZDogIWpwZSB9LAogICAgICB7CiAgICAgICAgZmlsdGVyOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIEhwZSh0aGlzLCB0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMCk7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9KTsKICB2YXIgWk4gPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBZcGUgPSBMZSgpLAogICAgICBLcGUgPSB5bigpLmZpbmQsCiAgICAgICRwZSA9IFd0KCksCiAgICAgIF9nID0gImZpbmQiLAogICAgICBKTiA9ICEwOwogICAgX2cgaW4gW10gJiYKICAgICAgQXJyYXkoMSlbX2ddKGZ1bmN0aW9uICgpIHsKICAgICAgICBKTiA9ICExOwogICAgICB9KTsKICAgIFlwZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiBKTiB9LAogICAgICB7CiAgICAgICAgZmluZDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIHJldHVybiBLcGUodGhpcywgdCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB2b2lkIDApOwogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgICAkcGUoX2cpOwogIH0pOwogIHZhciB0dyA9IEUoKCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFFwZSA9IExlKCksCiAgICAgIEpwZSA9IHluKCkuZmluZEluZGV4LAogICAgICBacGUgPSBXdCgpLAogICAgICBTZyA9ICJmaW5kSW5kZXgiLAogICAgICBldyA9ICEwOwogICAgU2cgaW4gW10gJiYKICAgICAgQXJyYXkoMSlbU2ddKGZ1bmN0aW9uICgpIHsKICAgICAgICBldyA9ICExOwogICAgICB9KTsKICAgIFFwZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiBldyB9LAogICAgICB7CiAgICAgICAgZmluZEluZGV4OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIEpwZSh0aGlzLCB0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMCk7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICAgIFpwZShTZyk7CiAgfSk7CiAgdmFyIE9nID0gRSgoYzllLCBudykgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIGVkZSA9IFNlKCksCiAgICAgIHRkZSA9IGhpKCksCiAgICAgIHJkZSA9IEV0KCksCiAgICAgIG5kZSA9IG1uKCksCiAgICAgIGlkZSA9IGVkZS5UeXBlRXJyb3IsCiAgICAgIHJ3ID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4sIGksIGEsIG8sIHMpIHsKICAgICAgICBmb3IgKHZhciBjID0gaSwgdSA9IDAsIGwgPSBvID8gbmRlKG8sIHMpIDogITEsIHAsIGQ7IHUgPCBuOyApIHsKICAgICAgICAgIGlmICh1IGluIHIpIHsKICAgICAgICAgICAgaWYgKCgocCA9IGwgPyBsKHJbdV0sIHUsIHQpIDogclt1XSksIGEgPiAwICYmIHRkZShwKSkpCiAgICAgICAgICAgICAgKGQgPSByZGUocCkpLCAoYyA9IHJ3KGUsIHQsIHAsIGQsIGMsIGEgLSAxKSAtIDEpOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBpZiAoYyA+PSA5MDA3MTk5MjU0NzQwOTkxKQogICAgICAgICAgICAgICAgdGhyb3cgaWRlKCJFeGNlZWQgdGhlIGFjY2VwdGFibGUgYXJyYXkgbGVuZ3RoIik7CiAgICAgICAgICAgICAgZVtjXSA9IHA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYysrOwogICAgICAgICAgfQogICAgICAgICAgdSsrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYzsKICAgICAgfTsKICAgIG53LmV4cG9ydHMgPSBydzsKICB9KTsKICB2YXIgaXcgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBhZGUgPSBMZSgpLAogICAgICBvZGUgPSBPZygpLAogICAgICBzZGUgPSBPdCgpLAogICAgICBjZGUgPSBFdCgpLAogICAgICB1ZGUgPSBobigpLAogICAgICBsZGUgPSBlbygpOwogICAgYWRlKAogICAgICB7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwIH0sCiAgICAgIHsKICAgICAgICBmbGF0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgdCA9IGFyZ3VtZW50cy5sZW5ndGggPyBhcmd1bWVudHNbMF0gOiB2b2lkIDAsCiAgICAgICAgICAgIHIgPSBzZGUodGhpcyksCiAgICAgICAgICAgIG4gPSBjZGUociksCiAgICAgICAgICAgIGkgPSBsZGUociwgMCk7CiAgICAgICAgICByZXR1cm4gKGkubGVuZ3RoID0gb2RlKGksIHIsIHIsIG4sIDAsIHQgPT09IHZvaWQgMCA/IDEgOiB1ZGUodCkpKSwgaTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogIH0pOwogIHZhciBhdyA9IEUoKCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIGZkZSA9IExlKCksCiAgICAgIHBkZSA9IE9nKCksCiAgICAgIGRkZSA9IHBuKCksCiAgICAgIGhkZSA9IE90KCksCiAgICAgIG1kZSA9IEV0KCksCiAgICAgIHlkZSA9IGVvKCk7CiAgICBmZGUoCiAgICAgIHsgdGFyZ2V0OiAiQXJyYXkiLCBwcm90bzogITAgfSwKICAgICAgewogICAgICAgIGZsYXRNYXA6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICB2YXIgciA9IGhkZSh0aGlzKSwKICAgICAgICAgICAgbiA9IG1kZShyKSwKICAgICAgICAgICAgaTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIGRkZSh0KSwKICAgICAgICAgICAgKGkgPSB5ZGUociwgMCkpLAogICAgICAgICAgICAoaS5sZW5ndGggPSBwZGUoCiAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICByLAogICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMAogICAgICAgICAgICApKSwKICAgICAgICAgICAgaQogICAgICAgICAgKTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogIH0pOwogIHZhciBfZiA9IEUoKGQ5ZSwgb3cpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBnZGUgPSB5bigpLmZvckVhY2gsCiAgICAgIHZkZSA9IHpuKCksCiAgICAgIGJkZSA9IHZkZSgiZm9yRWFjaCIpOwogICAgb3cuZXhwb3J0cyA9IGJkZQogICAgICA/IFtdLmZvckVhY2gKICAgICAgOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIGdkZSh0aGlzLCB0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMCk7CiAgICAgICAgfTsKICB9KTsKICB2YXIgY3cgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBNZGUgPSBMZSgpLAogICAgICBzdyA9IF9mKCk7CiAgICBNZGUoCiAgICAgIHsgdGFyZ2V0OiAiQXJyYXkiLCBwcm90bzogITAsIGZvcmNlZDogW10uZm9yRWFjaCAhPSBzdyB9LAogICAgICB7IGZvckVhY2g6IHN3IH0KICAgICk7CiAgfSk7CiAgdmFyIHV3ID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgQWRlID0gTGUoKSwKICAgICAgRWRlID0geWYoKS5pbmNsdWRlcywKICAgICAgVGRlID0gV3QoKTsKICAgIEFkZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCB9LAogICAgICB7CiAgICAgICAgaW5jbHVkZXM6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICByZXR1cm4gRWRlKHRoaXMsIHQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdm9pZCAwKTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogICAgVGRlKCJpbmNsdWRlcyIpOwogIH0pOwogIHZhciBmdyA9IEUoKCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9kZSA9IExlKCksCiAgICAgIFNkZSA9IFhlKCksCiAgICAgIE9kZSA9IHlmKCkuaW5kZXhPZiwKICAgICAgeGRlID0gem4oKSwKICAgICAgeGcgPSBTZGUoW10uaW5kZXhPZiksCiAgICAgIGx3ID0gISF4ZyAmJiAxIC8geGcoWzFdLCAxLCAtMCkgPCAwLAogICAgICBDZGUgPSB4ZGUoImluZGV4T2YiKTsKICAgIF9kZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiBsdyB8fCAhQ2RlIH0sCiAgICAgIHsKICAgICAgICBpbmRleE9mOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgdmFyIHIgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMDsKICAgICAgICAgIHJldHVybiBsdyA/IHhnKHRoaXMsIHQsIHIpIHx8IDAgOiBPZGUodGhpcywgdCwgcik7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9KTsKICB2YXIgZHcgPSBFKChNOWUsIHB3KSA9PiB7CiAgICB2YXIgUmRlID0gYnQoKTsKICAgIHB3LmV4cG9ydHMgPSAhUmRlKGZ1bmN0aW9uICgpIHsKICAgICAgZnVuY3Rpb24gZSgpIHt9CiAgICAgIHJldHVybiAoCiAgICAgICAgKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gbnVsbCksCiAgICAgICAgT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBlKCkpICE9PSBlLnByb3RvdHlwZQogICAgICApOwogICAgfSk7CiAgfSk7CiAgdmFyIFNmID0gRSgoQTllLCBtdykgPT4gewogICAgdmFyIElkZSA9IFNlKCksCiAgICAgIExkZSA9IHJyKCksCiAgICAgIE5kZSA9IE10KCksCiAgICAgIHdkZSA9IE90KCksCiAgICAgIFBkZSA9ICQxKCksCiAgICAgIERkZSA9IGR3KCksCiAgICAgIGh3ID0gUGRlKCJJRV9QUk9UTyIpLAogICAgICBDZyA9IElkZS5PYmplY3QsCiAgICAgIHFkZSA9IENnLnByb3RvdHlwZTsKICAgIG13LmV4cG9ydHMgPSBEZGUKICAgICAgPyBDZy5nZXRQcm90b3R5cGVPZgogICAgICA6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICB2YXIgdCA9IHdkZShlKTsKICAgICAgICAgIGlmIChMZGUodCwgaHcpKSByZXR1cm4gdFtod107CiAgICAgICAgICB2YXIgciA9IHQuY29uc3RydWN0b3I7CiAgICAgICAgICByZXR1cm4gTmRlKHIpICYmIHQgaW5zdGFuY2VvZiByCiAgICAgICAgICAgID8gci5wcm90b3R5cGUKICAgICAgICAgICAgOiB0IGluc3RhbmNlb2YgQ2cKICAgICAgICAgICAgPyBxZGUKICAgICAgICAgICAgOiBudWxsOwogICAgICAgIH07CiAgfSk7CiAgdmFyIE5nID0gRSgoRTllLCB2dykgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHpkZSA9IGJ0KCksCiAgICAgIEZkZSA9IE10KCksCiAgICAgIGtkZSA9IG1pKCksCiAgICAgIHl3ID0gU2YoKSwKICAgICAgQmRlID0gZG4oKSwKICAgICAgV2RlID0gZ3QoKSwKICAgICAgVWRlID0gS2EoKSwKICAgICAgTGcgPSBXZGUoIml0ZXJhdG9yIiksCiAgICAgIGd3ID0gITEsCiAgICAgIHlpLAogICAgICBSZywKICAgICAgSWc7CiAgICBbXS5rZXlzICYmCiAgICAgICgoSWcgPSBbXS5rZXlzKCkpLAogICAgICAibmV4dCIgaW4gSWcKICAgICAgICA/ICgoUmcgPSB5dyh5dyhJZykpKSwgUmcgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgKHlpID0gUmcpKQogICAgICAgIDogKGd3ID0gITApKTsKICAgIHZhciBYZGUgPQogICAgICB5aSA9PSBudWxsIHx8CiAgICAgIHpkZShmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGUgPSB7fTsKICAgICAgICByZXR1cm4geWlbTGddLmNhbGwoZSkgIT09IGU7CiAgICAgIH0pOwogICAgWGRlID8gKHlpID0ge30pIDogVWRlICYmICh5aSA9IGtkZSh5aSkpOwogICAgRmRlKHlpW0xnXSkgfHwKICAgICAgQmRlKHlpLCBMZywgZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9KTsKICAgIHZ3LmV4cG9ydHMgPSB7IEl0ZXJhdG9yUHJvdG90eXBlOiB5aSwgQlVHR1lfU0FGQVJJX0lURVJBVE9SUzogZ3cgfTsKICB9KTsKICB2YXIgZ2kgPSBFKChUOWUsIE13KSA9PiB7CiAgICB2YXIgVmRlID0gaXIoKS5mLAogICAgICBIZGUgPSBycigpLAogICAgICBHZGUgPSBndCgpLAogICAgICBidyA9IEdkZSgidG9TdHJpbmdUYWciKTsKICAgIE13LmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICBlICYmCiAgICAgICAgIUhkZSgoZSA9IHIgPyBlIDogZS5wcm90b3R5cGUpLCBidykgJiYKICAgICAgICBWZGUoZSwgYncsIHsgY29uZmlndXJhYmxlOiAhMCwgdmFsdWU6IHQgfSk7CiAgICB9OwogIH0pOwogIHZhciB3ZyA9IEUoKF85ZSwgQXcpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBqZGUgPSBOZygpLkl0ZXJhdG9yUHJvdG90eXBlLAogICAgICBZZGUgPSBtaSgpLAogICAgICBLZGUgPSBncygpLAogICAgICAkZGUgPSBnaSgpLAogICAgICBRZGUgPSBPcygpLAogICAgICBKZGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICBBdy5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgdmFyIG4gPSB0ICsgIiBJdGVyYXRvciI7CiAgICAgIHJldHVybiAoCiAgICAgICAgKGUucHJvdG90eXBlID0gWWRlKGpkZSwgeyBuZXh0OiBLZGUoMSwgcikgfSkpLAogICAgICAgICRkZShlLCBuLCAhMSwgITApLAogICAgICAgIChRZGVbbl0gPSBKZGUpLAogICAgICAgIGUKICAgICAgKTsKICAgIH07CiAgfSk7CiAgdmFyIF93ID0gRSgoUzllLCBUdykgPT4gewogICAgdmFyIEV3ID0gU2UoKSwKICAgICAgWmRlID0gTXQoKSwKICAgICAgZWhlID0gRXcuU3RyaW5nLAogICAgICB0aGUgPSBFdy5UeXBlRXJyb3I7CiAgICBUdy5leHBvcnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgaWYgKHR5cGVvZiBlID09ICJvYmplY3QiIHx8IFpkZShlKSkgcmV0dXJuIGU7CiAgICAgIHRocm93IHRoZSgiQ2FuJ3Qgc2V0ICIgKyBlaGUoZSkgKyAiIGFzIGEgcHJvdG90eXBlIik7CiAgICB9OwogIH0pOwogIHZhciBPZiA9IEUoKE85ZSwgU3cpID0+IHsKICAgIHZhciByaGUgPSBYZSgpLAogICAgICBuaGUgPSBucigpLAogICAgICBpaGUgPSBfdygpOwogICAgU3cuZXhwb3J0cyA9CiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fAogICAgICAoIl9fcHJvdG9fXyIgaW4ge30KICAgICAgICA/IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlID0gITEsCiAgICAgICAgICAgICAgdCA9IHt9LAogICAgICAgICAgICAgIHI7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgKHIgPSByaGUoCiAgICAgICAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsICJfX3Byb3RvX18iKQogICAgICAgICAgICAgICAgICAuc2V0CiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICByKHQsIFtdKSwKICAgICAgICAgICAgICAgIChlID0gdCBpbnN0YW5jZW9mIEFycmF5KTsKICAgICAgICAgICAgfSBjYXRjaCB7fQogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEpIHsKICAgICAgICAgICAgICByZXR1cm4gbmhlKGkpLCBpaGUoYSksIGUgPyByKGksIGEpIDogKGkuX19wcm90b19fID0gYSksIGk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9KSgpCiAgICAgICAgOiB2b2lkIDApOwogIH0pOwogIHZhciBSZiA9IEUoKHg5ZSwgRHcpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBhaGUgPSBMZSgpLAogICAgICBvaGUgPSBxcigpLAogICAgICB4ZiA9IEthKCksCiAgICAgIHd3ID0gbmcoKSwKICAgICAgc2hlID0gTXQoKSwKICAgICAgY2hlID0gd2coKSwKICAgICAgT3cgPSBTZigpLAogICAgICB4dyA9IE9mKCksCiAgICAgIHVoZSA9IGdpKCksCiAgICAgIGxoZSA9IFFhKCksCiAgICAgIFBnID0gZG4oKSwKICAgICAgZmhlID0gZ3QoKSwKICAgICAgQ3cgPSBPcygpLAogICAgICBQdyA9IE5nKCksCiAgICAgIHBoZSA9IHd3LlBST1BFUiwKICAgICAgZGhlID0gd3cuQ09ORklHVVJBQkxFLAogICAgICBSdyA9IFB3Lkl0ZXJhdG9yUHJvdG90eXBlLAogICAgICBDZiA9IFB3LkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsCiAgICAgIGljID0gZmhlKCJpdGVyYXRvciIpLAogICAgICBJdyA9ICJrZXlzIiwKICAgICAgYWMgPSAidmFsdWVzIiwKICAgICAgTHcgPSAiZW50cmllcyIsCiAgICAgIE53ID0gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgRHcuZXhwb3J0cyA9IGZ1bmN0aW9uIChlLCB0LCByLCBuLCBpLCBhLCBvKSB7CiAgICAgIGNoZShyLCB0LCBuKTsKICAgICAgdmFyIHMgPSBmdW5jdGlvbiAoZykgewogICAgICAgICAgaWYgKGcgPT09IGkgJiYgZCkgcmV0dXJuIGQ7CiAgICAgICAgICBpZiAoIUNmICYmIGcgaW4gbCkgcmV0dXJuIGxbZ107CiAgICAgICAgICBzd2l0Y2ggKGcpIHsKICAgICAgICAgICAgY2FzZSBJdzoKICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyByKHRoaXMsIGcpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIGNhc2UgYWM6CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgcih0aGlzLCBnKTsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICBjYXNlIEx3OgogICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHIodGhpcywgZyk7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgcih0aGlzKTsKICAgICAgICAgIH07CiAgICAgICAgfSwKICAgICAgICBjID0gdCArICIgSXRlcmF0b3IiLAogICAgICAgIHUgPSAhMSwKICAgICAgICBsID0gZS5wcm90b3R5cGUsCiAgICAgICAgcCA9IGxbaWNdIHx8IGxbIkBAaXRlcmF0b3IiXSB8fCAoaSAmJiBsW2ldKSwKICAgICAgICBkID0gKCFDZiAmJiBwKSB8fCBzKGkpLAogICAgICAgIGggPSAodCA9PSAiQXJyYXkiICYmIGwuZW50cmllcykgfHwgcCwKICAgICAgICBtLAogICAgICAgIHYsCiAgICAgICAgeTsKICAgICAgaWYgKAogICAgICAgIChoICYmCiAgICAgICAgICAoKG0gPSBPdyhoLmNhbGwobmV3IGUoKSkpKSwKICAgICAgICAgIG0gIT09IE9iamVjdC5wcm90b3R5cGUgJiYKICAgICAgICAgICAgbS5uZXh0ICYmCiAgICAgICAgICAgICgheGYgJiYKICAgICAgICAgICAgICBPdyhtKSAhPT0gUncgJiYKICAgICAgICAgICAgICAoeHcgPyB4dyhtLCBSdykgOiBzaGUobVtpY10pIHx8IFBnKG0sIGljLCBOdykpLAogICAgICAgICAgICB1aGUobSwgYywgITAsICEwKSwKICAgICAgICAgICAgeGYgJiYgKEN3W2NdID0gTncpKSksCiAgICAgICAgcGhlICYmCiAgICAgICAgICBpID09IGFjICYmCiAgICAgICAgICBwICYmCiAgICAgICAgICBwLm5hbWUgIT09IGFjICYmCiAgICAgICAgICAoIXhmICYmIGRoZQogICAgICAgICAgICA/IGxoZShsLCAibmFtZSIsIGFjKQogICAgICAgICAgICA6ICgodSA9ICEwKSwKICAgICAgICAgICAgICAoZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBvaGUocCwgdGhpcyk7CiAgICAgICAgICAgICAgfSkpKSwKICAgICAgICBpKQogICAgICApCiAgICAgICAgaWYgKCgodiA9IHsgdmFsdWVzOiBzKGFjKSwga2V5czogYSA/IGQgOiBzKEl3KSwgZW50cmllczogcyhMdykgfSksIG8pKQogICAgICAgICAgZm9yICh5IGluIHYpIChDZiB8fCB1IHx8ICEoeSBpbiBsKSkgJiYgUGcobCwgeSwgdlt5XSk7CiAgICAgICAgZWxzZSBhaGUoeyB0YXJnZXQ6IHQsIHByb3RvOiAhMCwgZm9yY2VkOiBDZiB8fCB1IH0sIHYpOwogICAgICByZXR1cm4gKAogICAgICAgICgheGYgfHwgbykgJiYgbFtpY10gIT09IGQgJiYgUGcobCwgaWMsIGQsIHsgbmFtZTogaSB9KSwgKEN3W3RdID0gZCksIHYKICAgICAgKTsKICAgIH07CiAgfSk7CiAgdmFyIHFnID0gRSgoQzllLCBrdykgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIGhoZSA9ICRyKCksCiAgICAgIERnID0gV3QoKSwKICAgICAgcXcgPSBPcygpLAogICAgICB6dyA9IGRpKCksCiAgICAgIG1oZSA9IFJmKCksCiAgICAgIEZ3ID0gIkFycmF5IEl0ZXJhdG9yIiwKICAgICAgeWhlID0gencuc2V0LAogICAgICBnaGUgPSB6dy5nZXR0ZXJGb3IoRncpOwogICAga3cuZXhwb3J0cyA9IG1oZSgKICAgICAgQXJyYXksCiAgICAgICJBcnJheSIsCiAgICAgIGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgeWhlKHRoaXMsIHsgdHlwZTogRncsIHRhcmdldDogaGhlKGUpLCBpbmRleDogMCwga2luZDogdCB9KTsKICAgICAgfSwKICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBlID0gZ2hlKHRoaXMpLAogICAgICAgICAgdCA9IGUudGFyZ2V0LAogICAgICAgICAgciA9IGUua2luZCwKICAgICAgICAgIG4gPSBlLmluZGV4Kys7CiAgICAgICAgcmV0dXJuICF0IHx8IG4gPj0gdC5sZW5ndGgKICAgICAgICAgID8gKChlLnRhcmdldCA9IHZvaWQgMCksIHsgdmFsdWU6IHZvaWQgMCwgZG9uZTogITAgfSkKICAgICAgICAgIDogciA9PSAia2V5cyIKICAgICAgICAgID8geyB2YWx1ZTogbiwgZG9uZTogITEgfQogICAgICAgICAgOiByID09ICJ2YWx1ZXMiCiAgICAgICAgICA/IHsgdmFsdWU6IHRbbl0sIGRvbmU6ICExIH0KICAgICAgICAgIDogeyB2YWx1ZTogW24sIHRbbl1dLCBkb25lOiAhMSB9OwogICAgICB9LAogICAgICAidmFsdWVzIgogICAgKTsKICAgIHF3LkFyZ3VtZW50cyA9IHF3LkFycmF5OwogICAgRGcoImtleXMiKTsKICAgIERnKCJ2YWx1ZXMiKTsKICAgIERnKCJlbnRyaWVzIik7CiAgfSk7CiAgdmFyIEJ3ID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgdmhlID0gTGUoKSwKICAgICAgYmhlID0gWGUoKSwKICAgICAgTWhlID0gamEoKSwKICAgICAgQWhlID0gJHIoKSwKICAgICAgRWhlID0gem4oKSwKICAgICAgVGhlID0gYmhlKFtdLmpvaW4pLAogICAgICBfaGUgPSBNaGUgIT0gT2JqZWN0LAogICAgICBTaGUgPSBFaGUoImpvaW4iLCAiLCIpOwogICAgdmhlKAogICAgICB7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwLCBmb3JjZWQ6IF9oZSB8fCAhU2hlIH0sCiAgICAgIHsKICAgICAgICBqb2luOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIFRoZShBaGUodGhpcyksIHQgPT09IHZvaWQgMCA/ICIsIiA6IHQpOwogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgfSk7CiAgdmFyIG9jID0gRSgoTDllLCBYdykgPT4gewogICAgdmFyIHpnID0gRnVuY3Rpb24ucHJvdG90eXBlLAogICAgICBXdyA9IHpnLmFwcGx5LAogICAgICBPaGUgPSB6Zy5iaW5kLAogICAgICBVdyA9IHpnLmNhbGw7CiAgICBYdy5leHBvcnRzID0KICAgICAgKHR5cGVvZiBSZWZsZWN0ID09ICJvYmplY3QiICYmIFJlZmxlY3QuYXBwbHkpIHx8CiAgICAgIChPaGUKICAgICAgICA/IFV3LmJpbmQoV3cpCiAgICAgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBVdy5hcHBseShXdywgYXJndW1lbnRzKTsKICAgICAgICAgIH0pOwogIH0pOwogIHZhciBHdyA9IEUoKE45ZSwgSHcpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB4aGUgPSBvYygpLAogICAgICBDaGUgPSAkcigpLAogICAgICBSaGUgPSBobigpLAogICAgICBJaGUgPSBFdCgpLAogICAgICBMaGUgPSB6bigpLAogICAgICBOaGUgPSBNYXRoLm1pbiwKICAgICAgRmcgPSBbXS5sYXN0SW5kZXhPZiwKICAgICAgVncgPSAhIUZnICYmIDEgLyBbMV0ubGFzdEluZGV4T2YoMSwgLTApIDwgMCwKICAgICAgd2hlID0gTGhlKCJsYXN0SW5kZXhPZiIpLAogICAgICBQaGUgPSBWdyB8fCAhd2hlOwogICAgSHcuZXhwb3J0cyA9IFBoZQogICAgICA/IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICBpZiAoVncpIHJldHVybiB4aGUoRmcsIHRoaXMsIGFyZ3VtZW50cykgfHwgMDsKICAgICAgICAgIHZhciByID0gQ2hlKHRoaXMpLAogICAgICAgICAgICBuID0gSWhlKHIpLAogICAgICAgICAgICBpID0gbiAtIDE7CiAgICAgICAgICBmb3IgKAogICAgICAgICAgICBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiAoaSA9IE5oZShpLCBSaGUoYXJndW1lbnRzWzFdKSkpLAogICAgICAgICAgICAgIGkgPCAwICYmIChpID0gbiArIGkpOwogICAgICAgICAgICBpID49IDA7CiAgICAgICAgICAgIGktLQogICAgICAgICAgKQogICAgICAgICAgICBpZiAoaSBpbiByICYmIHJbaV0gPT09IHQpIHJldHVybiBpIHx8IDA7CiAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICA6IEZnOwogIH0pOwogIHZhciBZdyA9IEUoKCkgPT4gewogICAgdmFyIERoZSA9IExlKCksCiAgICAgIGp3ID0gR3coKTsKICAgIERoZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiBqdyAhPT0gW10ubGFzdEluZGV4T2YgfSwKICAgICAgeyBsYXN0SW5kZXhPZjogancgfQogICAgKTsKICB9KTsKICB2YXIgS3cgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBxaGUgPSBMZSgpLAogICAgICB6aGUgPSB5bigpLm1hcCwKICAgICAgRmhlID0gQ3MoKSwKICAgICAga2hlID0gRmhlKCJtYXAiKTsKICAgIHFoZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiAha2hlIH0sCiAgICAgIHsKICAgICAgICBtYXA6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICByZXR1cm4gemhlKHRoaXMsIHQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdm9pZCAwKTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogIH0pOwogIHZhciBrZyA9IEUoKHo5ZSwgUXcpID0+IHsKICAgIHZhciBCaGUgPSBTZSgpLAogICAgICBXaGUgPSBwbigpLAogICAgICBVaGUgPSBPdCgpLAogICAgICBYaGUgPSBqYSgpLAogICAgICBWaGUgPSBFdCgpLAogICAgICBIaGUgPSBCaGUuVHlwZUVycm9yLAogICAgICAkdyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0LCByLCBuLCBpKSB7CiAgICAgICAgICBXaGUocik7CiAgICAgICAgICB2YXIgYSA9IFVoZSh0KSwKICAgICAgICAgICAgbyA9IFhoZShhKSwKICAgICAgICAgICAgcyA9IFZoZShhKSwKICAgICAgICAgICAgYyA9IGUgPyBzIC0gMSA6IDAsCiAgICAgICAgICAgIHUgPSBlID8gLTEgOiAxOwogICAgICAgICAgaWYgKG4gPCAyKQogICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgaWYgKGMgaW4gbykgewogICAgICAgICAgICAgICAgKGkgPSBvW2NdKSwgKGMgKz0gdSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCgoYyArPSB1KSwgZSA/IGMgPCAwIDogcyA8PSBjKSkKICAgICAgICAgICAgICAgIHRocm93IEhoZSgiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICBmb3IgKDsgZSA/IGMgPj0gMCA6IHMgPiBjOyBjICs9IHUpIGMgaW4gbyAmJiAoaSA9IHIoaSwgb1tjXSwgYywgYSkpOwogICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgfTsKICAgICAgfTsKICAgIFF3LmV4cG9ydHMgPSB7IGxlZnQ6ICR3KCExKSwgcmlnaHQ6ICR3KCEwKSB9OwogIH0pOwogIHZhciBScyA9IEUoKEY5ZSwgSncpID0+IHsKICAgIHZhciBHaGUgPSB2cygpLAogICAgICBqaGUgPSBTZSgpOwogICAgSncuZXhwb3J0cyA9IEdoZShqaGUucHJvY2VzcykgPT0gInByb2Nlc3MiOwogIH0pOwogIHZhciBlUCA9IEUoKCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFloZSA9IExlKCksCiAgICAgIEtoZSA9IGtnKCkubGVmdCwKICAgICAgJGhlID0gem4oKSwKICAgICAgWncgPSB0YSgpLAogICAgICBRaGUgPSBScygpLAogICAgICBKaGUgPSAkaGUoInJlZHVjZSIpLAogICAgICBaaGUgPSAhUWhlICYmIFp3ID4gNzkgJiYgWncgPCA4MzsKICAgIFloZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiAhSmhlIHx8IFpoZSB9LAogICAgICB7CiAgICAgICAgcmVkdWNlOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgdmFyIHIgPSBhcmd1bWVudHMubGVuZ3RoOwogICAgICAgICAgcmV0dXJuIEtoZSh0aGlzLCB0LCByLCByID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMCk7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9KTsKICB2YXIgclAgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBlbWUgPSBMZSgpLAogICAgICB0bWUgPSBrZygpLnJpZ2h0LAogICAgICBybWUgPSB6bigpLAogICAgICB0UCA9IHRhKCksCiAgICAgIG5tZSA9IFJzKCksCiAgICAgIGltZSA9IHJtZSgicmVkdWNlUmlnaHQiKSwKICAgICAgYW1lID0gIW5tZSAmJiB0UCA+IDc5ICYmIHRQIDwgODM7CiAgICBlbWUoCiAgICAgIHsgdGFyZ2V0OiAiQXJyYXkiLCBwcm90bzogITAsIGZvcmNlZDogIWltZSB8fCBhbWUgfSwKICAgICAgewogICAgICAgIHJlZHVjZVJpZ2h0OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIHRtZSgKICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgdCwKICAgICAgICAgICAgYXJndW1lbnRzLmxlbmd0aCwKICAgICAgICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB2b2lkIDAKICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9KTsKICB2YXIgaVAgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBvbWUgPSBMZSgpLAogICAgICBzbWUgPSBYZSgpLAogICAgICBjbWUgPSBoaSgpLAogICAgICB1bWUgPSBzbWUoW10ucmV2ZXJzZSksCiAgICAgIG5QID0gWzEsIDJdOwogICAgb21lKAogICAgICB7CiAgICAgICAgdGFyZ2V0OiAiQXJyYXkiLAogICAgICAgIHByb3RvOiAhMCwKICAgICAgICBmb3JjZWQ6IFN0cmluZyhuUCkgPT09IFN0cmluZyhuUC5yZXZlcnNlKCkpLAogICAgICB9LAogICAgICB7CiAgICAgICAgcmV2ZXJzZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIGNtZSh0aGlzKSAmJiAodGhpcy5sZW5ndGggPSB0aGlzLmxlbmd0aCksIHVtZSh0aGlzKTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogIH0pOwogIHZhciBJcyA9IEUoKEg5ZSwgYVApID0+IHsKICAgIHZhciBsbWUgPSBYZSgpOwogICAgYVAuZXhwb3J0cyA9IGxtZShbXS5zbGljZSk7CiAgfSk7CiAgdmFyIGNQID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgZm1lID0gTGUoKSwKICAgICAgcG1lID0gU2UoKSwKICAgICAgb1AgPSBoaSgpLAogICAgICBkbWUgPSBaYSgpLAogICAgICBobWUgPSBVdCgpLAogICAgICBzUCA9IF9zKCksCiAgICAgIG1tZSA9IEV0KCksCiAgICAgIHltZSA9ICRyKCksCiAgICAgIGdtZSA9IHhzKCksCiAgICAgIHZtZSA9IGd0KCksCiAgICAgIGJtZSA9IENzKCksCiAgICAgIE1tZSA9IElzKCksCiAgICAgIEFtZSA9IGJtZSgic2xpY2UiKSwKICAgICAgRW1lID0gdm1lKCJzcGVjaWVzIiksCiAgICAgIEJnID0gcG1lLkFycmF5LAogICAgICBUbWUgPSBNYXRoLm1heDsKICAgIGZtZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiAhQW1lIH0sCiAgICAgIHsKICAgICAgICBzbGljZTogZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICAgIHZhciBuID0geW1lKHRoaXMpLAogICAgICAgICAgICBpID0gbW1lKG4pLAogICAgICAgICAgICBhID0gc1AodCwgaSksCiAgICAgICAgICAgIG8gPSBzUChyID09PSB2b2lkIDAgPyBpIDogciwgaSksCiAgICAgICAgICAgIHMsCiAgICAgICAgICAgIGMsCiAgICAgICAgICAgIHU7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgIG9QKG4pICYmCiAgICAgICAgICAgICgocyA9IG4uY29uc3RydWN0b3IpLAogICAgICAgICAgICBkbWUocykgJiYgKHMgPT09IEJnIHx8IG9QKHMucHJvdG90eXBlKSkKICAgICAgICAgICAgICA/IChzID0gdm9pZCAwKQogICAgICAgICAgICAgIDogaG1lKHMpICYmICgocyA9IHNbRW1lXSksIHMgPT09IG51bGwgJiYgKHMgPSB2b2lkIDApKSwKICAgICAgICAgICAgcyA9PT0gQmcgfHwgcyA9PT0gdm9pZCAwKQogICAgICAgICAgKQogICAgICAgICAgICByZXR1cm4gTW1lKG4sIGEsIG8pOwogICAgICAgICAgZm9yICgKICAgICAgICAgICAgYyA9IG5ldyAocyA9PT0gdm9pZCAwID8gQmcgOiBzKShUbWUobyAtIGEsIDApKSwgdSA9IDA7CiAgICAgICAgICAgIGEgPCBvOwogICAgICAgICAgICBhKyssIHUrKwogICAgICAgICAgKQogICAgICAgICAgICBhIGluIG4gJiYgZ21lKGMsIHUsIG5bYV0pOwogICAgICAgICAgcmV0dXJuIChjLmxlbmd0aCA9IHUpLCBjOwogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgfSk7CiAgdmFyIHVQID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX21lID0gTGUoKSwKICAgICAgU21lID0geW4oKS5zb21lLAogICAgICBPbWUgPSB6bigpLAogICAgICB4bWUgPSBPbWUoInNvbWUiKTsKICAgIF9tZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiAheG1lIH0sCiAgICAgIHsKICAgICAgICBzb21lOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIFNtZSh0aGlzLCB0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMCk7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9KTsKICB2YXIgRm4gPSBFKCgkOWUsIGxQKSA9PiB7CiAgICB2YXIgQ21lID0gU2UoKSwKICAgICAgUm1lID0gZWMoKSwKICAgICAgSW1lID0gQ21lLlN0cmluZzsKICAgIGxQLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICBpZiAoUm1lKGUpID09PSAiU3ltYm9sIikKICAgICAgICB0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7CiAgICAgIHJldHVybiBJbWUoZSk7CiAgICB9OwogIH0pOwogIHZhciBkUCA9IEUoKFE5ZSwgcFApID0+IHsKICAgIHZhciBmUCA9IElzKCksCiAgICAgIExtZSA9IE1hdGguZmxvb3IsCiAgICAgIFdnID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICB2YXIgciA9IGUubGVuZ3RoLAogICAgICAgICAgbiA9IExtZShyIC8gMik7CiAgICAgICAgcmV0dXJuIHIgPCA4CiAgICAgICAgICA/IE5tZShlLCB0KQogICAgICAgICAgOiB3bWUoZSwgV2coZlAoZSwgMCwgbiksIHQpLCBXZyhmUChlLCBuKSwgdCksIHQpOwogICAgICB9LAogICAgICBObWUgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgIGZvciAodmFyIHIgPSBlLmxlbmd0aCwgbiA9IDEsIGksIGE7IG4gPCByOyApIHsKICAgICAgICAgIGZvciAoYSA9IG4sIGkgPSBlW25dOyBhICYmIHQoZVthIC0gMV0sIGkpID4gMDsgKSBlW2FdID0gZVstLWFdOwogICAgICAgICAgYSAhPT0gbisrICYmIChlW2FdID0gaSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBlOwogICAgICB9LAogICAgICB3bWUgPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgIGZvciAodmFyIGkgPSB0Lmxlbmd0aCwgYSA9IHIubGVuZ3RoLCBvID0gMCwgcyA9IDA7IG8gPCBpIHx8IHMgPCBhOyApCiAgICAgICAgICBlW28gKyBzXSA9CiAgICAgICAgICAgIG8gPCBpICYmIHMgPCBhCiAgICAgICAgICAgICAgPyBuKHRbb10sIHJbc10pIDw9IDAKICAgICAgICAgICAgICAgID8gdFtvKytdCiAgICAgICAgICAgICAgICA6IHJbcysrXQogICAgICAgICAgICAgIDogbyA8IGkKICAgICAgICAgICAgICA/IHRbbysrXQogICAgICAgICAgICAgIDogcltzKytdOwogICAgICAgIHJldHVybiBlOwogICAgICB9OwogICAgcFAuZXhwb3J0cyA9IFdnOwogIH0pOwogIHZhciB5UCA9IEUoKEo5ZSwgbVApID0+IHsKICAgIHZhciBQbWUgPSBlYSgpLAogICAgICBoUCA9IFBtZS5tYXRjaCgvZmlyZWZveFwvKFxkKykvaSk7CiAgICBtUC5leHBvcnRzID0gISFoUCAmJiAraFBbMV07CiAgfSk7CiAgdmFyIHZQID0gRSgoWjllLCBnUCkgPT4gewogICAgdmFyIERtZSA9IGVhKCk7CiAgICBnUC5leHBvcnRzID0gL01TSUV8VHJpZGVudC8udGVzdChEbWUpOwogIH0pOwogIHZhciBBUCA9IEUoKGUkZSwgTVApID0+IHsKICAgIHZhciBxbWUgPSBlYSgpLAogICAgICBiUCA9IHFtZS5tYXRjaCgvQXBwbGVXZWJLaXRcLyhcZCspXC4vKTsKICAgIE1QLmV4cG9ydHMgPSAhIWJQICYmICtiUFsxXTsKICB9KTsKICB2YXIgUlAgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB6bWUgPSBMZSgpLAogICAgICB4UCA9IFhlKCksCiAgICAgIEZtZSA9IHBuKCksCiAgICAgIGttZSA9IE90KCksCiAgICAgIEJtZSA9IEV0KCksCiAgICAgIEVQID0gRm4oKSwKICAgICAgVWcgPSBidCgpLAogICAgICBXbWUgPSBkUCgpLAogICAgICBVbWUgPSB6bigpLAogICAgICBUUCA9IHlQKCksCiAgICAgIFhtZSA9IHZQKCksCiAgICAgIF9QID0gdGEoKSwKICAgICAgU1AgPSBBUCgpLAogICAgICBhYSA9IFtdLAogICAgICBPUCA9IHhQKGFhLnNvcnQpLAogICAgICBWbWUgPSB4UChhYS5wdXNoKSwKICAgICAgSG1lID0gVWcoZnVuY3Rpb24gKCkgewogICAgICAgIGFhLnNvcnQodm9pZCAwKTsKICAgICAgfSksCiAgICAgIEdtZSA9IFVnKGZ1bmN0aW9uICgpIHsKICAgICAgICBhYS5zb3J0KG51bGwpOwogICAgICB9KSwKICAgICAgam1lID0gVW1lKCJzb3J0IiksCiAgICAgIENQID0gIVVnKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoX1ApIHJldHVybiBfUCA8IDcwOwogICAgICAgIGlmICghKFRQICYmIFRQID4gMykpIHsKICAgICAgICAgIGlmIChYbWUpIHJldHVybiAhMDsKICAgICAgICAgIGlmIChTUCkgcmV0dXJuIFNQIDwgNjAzOwogICAgICAgICAgdmFyIGUgPSAiIiwKICAgICAgICAgICAgdCwKICAgICAgICAgICAgciwKICAgICAgICAgICAgbiwKICAgICAgICAgICAgaTsKICAgICAgICAgIGZvciAodCA9IDY1OyB0IDwgNzY7IHQrKykgewogICAgICAgICAgICBzd2l0Y2ggKCgociA9IFN0cmluZy5mcm9tQ2hhckNvZGUodCkpLCB0KSkgewogICAgICAgICAgICAgIGNhc2UgNjY6CiAgICAgICAgICAgICAgY2FzZSA2OToKICAgICAgICAgICAgICBjYXNlIDcwOgogICAgICAgICAgICAgIGNhc2UgNzI6CiAgICAgICAgICAgICAgICBuID0gMzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNjg6CiAgICAgICAgICAgICAgY2FzZSA3MToKICAgICAgICAgICAgICAgIG4gPSA0OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIG4gPSAyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA0NzsgaSsrKSBhYS5wdXNoKHsgazogciArIGksIHY6IG4gfSk7CiAgICAgICAgICB9CiAgICAgICAgICBmb3IgKAogICAgICAgICAgICBhYS5zb3J0KGZ1bmN0aW9uIChhLCBvKSB7CiAgICAgICAgICAgICAgcmV0dXJuIG8udiAtIGEudjsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgIGkgPCBhYS5sZW5ndGg7CiAgICAgICAgICAgIGkrKwogICAgICAgICAgKQogICAgICAgICAgICAociA9IGFhW2ldLmsuY2hhckF0KDApKSwgZS5jaGFyQXQoZS5sZW5ndGggLSAxKSAhPT0gciAmJiAoZSArPSByKTsKICAgICAgICAgIHJldHVybiBlICE9PSAiREdCRUZIQUNJSksiOwogICAgICAgIH0KICAgICAgfSksCiAgICAgIFltZSA9IEhtZSB8fCAhR21lIHx8ICFqbWUgfHwgIUNQLAogICAgICBLbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgcmV0dXJuIHIgPT09IHZvaWQgMAogICAgICAgICAgICA/IC0xCiAgICAgICAgICAgIDogdCA9PT0gdm9pZCAwCiAgICAgICAgICAgID8gMQogICAgICAgICAgICA6IGUgIT09IHZvaWQgMAogICAgICAgICAgICA/ICtlKHQsIHIpIHx8IDAKICAgICAgICAgICAgOiBFUCh0KSA+IEVQKHIpCiAgICAgICAgICAgID8gMQogICAgICAgICAgICA6IC0xOwogICAgICAgIH07CiAgICAgIH07CiAgICB6bWUoCiAgICAgIHsgdGFyZ2V0OiAiQXJyYXkiLCBwcm90bzogITAsIGZvcmNlZDogWW1lIH0sCiAgICAgIHsKICAgICAgICBzb3J0OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgdCAhPT0gdm9pZCAwICYmIEZtZSh0KTsKICAgICAgICAgIHZhciByID0ga21lKHRoaXMpOwogICAgICAgICAgaWYgKENQKSByZXR1cm4gdCA9PT0gdm9pZCAwID8gT1AocikgOiBPUChyLCB0KTsKICAgICAgICAgIHZhciBuID0gW10sCiAgICAgICAgICAgIGkgPSBCbWUociksCiAgICAgICAgICAgIGEsCiAgICAgICAgICAgIG87CiAgICAgICAgICBmb3IgKG8gPSAwOyBvIDwgaTsgbysrKSBvIGluIHIgJiYgVm1lKG4sIHJbb10pOwogICAgICAgICAgZm9yIChXbWUobiwgS21lKHQpKSwgYSA9IG4ubGVuZ3RoLCBvID0gMDsgbyA8IGE7ICkgcltvXSA9IG5bbysrXTsKICAgICAgICAgIGZvciAoOyBvIDwgaTsgKSBkZWxldGUgcltvKytdOwogICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9KTsKICB2YXIgSWYgPSBFKChuJGUsIExQKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgJG1lID0genIoKSwKICAgICAgUW1lID0gaXIoKSwKICAgICAgSm1lID0gZ3QoKSwKICAgICAgWm1lID0gdHIoKSwKICAgICAgSVAgPSBKbWUoInNwZWNpZXMiKTsKICAgIExQLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICB2YXIgdCA9ICRtZShlKSwKICAgICAgICByID0gUW1lLmY7CiAgICAgIFptZSAmJgogICAgICAgIHQgJiYKICAgICAgICAhdFtJUF0gJiYKICAgICAgICByKHQsIElQLCB7CiAgICAgICAgICBjb25maWd1cmFibGU6ICEwLAogICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICAgfSwKICAgICAgICB9KTsKICAgIH07CiAgfSk7CiAgdmFyIE5QID0gRSgoKSA9PiB7CiAgICB2YXIgZXllID0gSWYoKTsKICAgIGV5ZSgiQXJyYXkiKTsKICB9KTsKICB2YXIgd1AgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB0eWUgPSBMZSgpLAogICAgICByeWUgPSBTZSgpLAogICAgICBueWUgPSBfcygpLAogICAgICBpeWUgPSBobigpLAogICAgICBheWUgPSBFdCgpLAogICAgICBveWUgPSBPdCgpLAogICAgICBzeWUgPSBlbygpLAogICAgICBjeWUgPSB4cygpLAogICAgICB1eWUgPSBDcygpLAogICAgICBseWUgPSB1eWUoInNwbGljZSIpLAogICAgICBmeWUgPSByeWUuVHlwZUVycm9yLAogICAgICBweWUgPSBNYXRoLm1heCwKICAgICAgZHllID0gTWF0aC5taW4sCiAgICAgIGh5ZSA9IDkwMDcxOTkyNTQ3NDA5OTEsCiAgICAgIG15ZSA9ICJNYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIGV4Y2VlZGVkIjsKICAgIHR5ZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCwgZm9yY2VkOiAhbHllIH0sCiAgICAgIHsKICAgICAgICBzcGxpY2U6IGZ1bmN0aW9uICh0LCByKSB7CiAgICAgICAgICB2YXIgbiA9IG95ZSh0aGlzKSwKICAgICAgICAgICAgaSA9IGF5ZShuKSwKICAgICAgICAgICAgYSA9IG55ZSh0LCBpKSwKICAgICAgICAgICAgbyA9IGFyZ3VtZW50cy5sZW5ndGgsCiAgICAgICAgICAgIHMsCiAgICAgICAgICAgIGMsCiAgICAgICAgICAgIHUsCiAgICAgICAgICAgIGwsCiAgICAgICAgICAgIHAsCiAgICAgICAgICAgIGQ7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgIChvID09PSAwCiAgICAgICAgICAgICAgPyAocyA9IGMgPSAwKQogICAgICAgICAgICAgIDogbyA9PT0gMQogICAgICAgICAgICAgID8gKChzID0gMCksIChjID0gaSAtIGEpKQogICAgICAgICAgICAgIDogKChzID0gbyAtIDIpLCAoYyA9IGR5ZShweWUoaXllKHIpLCAwKSwgaSAtIGEpKSksCiAgICAgICAgICAgIGkgKyBzIC0gYyA+IGh5ZSkKICAgICAgICAgICkKICAgICAgICAgICAgdGhyb3cgZnllKG15ZSk7CiAgICAgICAgICBmb3IgKHUgPSBzeWUobiwgYyksIGwgPSAwOyBsIDwgYzsgbCsrKQogICAgICAgICAgICAocCA9IGEgKyBsKSwgcCBpbiBuICYmIGN5ZSh1LCBsLCBuW3BdKTsKICAgICAgICAgIGlmICgoKHUubGVuZ3RoID0gYyksIHMgPCBjKSkgewogICAgICAgICAgICBmb3IgKGwgPSBhOyBsIDwgaSAtIGM7IGwrKykKICAgICAgICAgICAgICAocCA9IGwgKyBjKSwgKGQgPSBsICsgcyksIHAgaW4gbiA/IChuW2RdID0gbltwXSkgOiBkZWxldGUgbltkXTsKICAgICAgICAgICAgZm9yIChsID0gaTsgbCA+IGkgLSBjICsgczsgbC0tKSBkZWxldGUgbltsIC0gMV07CiAgICAgICAgICB9IGVsc2UgaWYgKHMgPiBjKQogICAgICAgICAgICBmb3IgKGwgPSBpIC0gYzsgbCA+IGE7IGwtLSkKICAgICAgICAgICAgICAocCA9IGwgKyBjIC0gMSksCiAgICAgICAgICAgICAgICAoZCA9IGwgKyBzIC0gMSksCiAgICAgICAgICAgICAgICBwIGluIG4gPyAobltkXSA9IG5bcF0pIDogZGVsZXRlIG5bZF07CiAgICAgICAgICBmb3IgKGwgPSAwOyBsIDwgczsgbCsrKSBuW2wgKyBhXSA9IGFyZ3VtZW50c1tsICsgMl07CiAgICAgICAgICByZXR1cm4gKG4ubGVuZ3RoID0gaSAtIGMgKyBzKSwgdTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogIH0pOwogIHZhciBQUCA9IEUoKCkgPT4gewogICAgdmFyIHl5ZSA9IFd0KCk7CiAgICB5eWUoImZsYXQiKTsKICB9KTsKICB2YXIgRFAgPSBFKCgpID0+IHsKICAgIHZhciBneWUgPSBXdCgpOwogICAgZ3llKCJmbGF0TWFwIik7CiAgfSk7CiAgdmFyIHpQID0gRSgocCRlLCBxUCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHZ5ZSA9IHZmKCksCiAgICAgIGJ5ZSA9IGVjKCk7CiAgICBxUC5leHBvcnRzID0gdnllCiAgICAgID8ge30udG9TdHJpbmcKICAgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gIltvYmplY3QgIiArIGJ5ZSh0aGlzKSArICJdIjsKICAgICAgICB9OwogIH0pOwogIHZhciBMZiA9IEUoKCkgPT4gewogICAgdmFyIE15ZSA9IHZmKCksCiAgICAgIEF5ZSA9IGRuKCksCiAgICAgIEV5ZSA9IHpQKCk7CiAgICBNeWUgfHwgQXllKE9iamVjdC5wcm90b3R5cGUsICJ0b1N0cmluZyIsIEV5ZSwgeyB1bnNhZmU6ICEwIH0pOwogIH0pOwogIHZhciBXUCA9IEUoKG0kZSwgQlApID0+IHsKICAgIHZhciBYZyA9IFhlKCksCiAgICAgIFR5ZSA9IGhuKCksCiAgICAgIF95ZSA9IEZuKCksCiAgICAgIFN5ZSA9IGJzKCksCiAgICAgIE95ZSA9IFhnKCIiLmNoYXJBdCksCiAgICAgIEZQID0gWGcoIiIuY2hhckNvZGVBdCksCiAgICAgIHh5ZSA9IFhnKCIiLnNsaWNlKSwKICAgICAga1AgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgdmFyIG4gPSBfeWUoU3llKHQpKSwKICAgICAgICAgICAgaSA9IFR5ZShyKSwKICAgICAgICAgICAgYSA9IG4ubGVuZ3RoLAogICAgICAgICAgICBvLAogICAgICAgICAgICBzOwogICAgICAgICAgcmV0dXJuIGkgPCAwIHx8IGkgPj0gYQogICAgICAgICAgICA/IGUKICAgICAgICAgICAgICA/ICIiCiAgICAgICAgICAgICAgOiB2b2lkIDAKICAgICAgICAgICAgOiAoKG8gPSBGUChuLCBpKSksCiAgICAgICAgICAgICAgbyA8IDU1Mjk2IHx8CiAgICAgICAgICAgICAgbyA+IDU2MzE5IHx8CiAgICAgICAgICAgICAgaSArIDEgPT09IGEgfHwKICAgICAgICAgICAgICAocyA9IEZQKG4sIGkgKyAxKSkgPCA1NjMyMCB8fAogICAgICAgICAgICAgIHMgPiA1NzM0MwogICAgICAgICAgICAgICAgPyBlCiAgICAgICAgICAgICAgICAgID8gT3llKG4sIGkpCiAgICAgICAgICAgICAgICAgIDogbwogICAgICAgICAgICAgICAgOiBlCiAgICAgICAgICAgICAgICA/IHh5ZShuLCBpLCBpICsgMikKICAgICAgICAgICAgICAgIDogKChvIC0gNTUyOTYpIDw8IDEwKSArIChzIC0gNTYzMjApICsgNjU1MzYpOwogICAgICAgIH07CiAgICAgIH07CiAgICBCUC5leHBvcnRzID0geyBjb2RlQXQ6IGtQKCExKSwgY2hhckF0OiBrUCghMCkgfTsKICB9KTsKICB2YXIgVlAgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBDeWUgPSBXUCgpLmNoYXJBdCwKICAgICAgUnllID0gRm4oKSwKICAgICAgVVAgPSBkaSgpLAogICAgICBJeWUgPSBSZigpLAogICAgICBYUCA9ICJTdHJpbmcgSXRlcmF0b3IiLAogICAgICBMeWUgPSBVUC5zZXQsCiAgICAgIE55ZSA9IFVQLmdldHRlckZvcihYUCk7CiAgICBJeWUoCiAgICAgIFN0cmluZywKICAgICAgIlN0cmluZyIsCiAgICAgIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgTHllKHRoaXMsIHsgdHlwZTogWFAsIHN0cmluZzogUnllKGUpLCBpbmRleDogMCB9KTsKICAgICAgfSwKICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciB0ID0gTnllKHRoaXMpLAogICAgICAgICAgciA9IHQuc3RyaW5nLAogICAgICAgICAgbiA9IHQuaW5kZXgsCiAgICAgICAgICBpOwogICAgICAgIHJldHVybiBuID49IHIubGVuZ3RoCiAgICAgICAgICA/IHsgdmFsdWU6IHZvaWQgMCwgZG9uZTogITAgfQogICAgICAgICAgOiAoKGkgPSBDeWUociwgbikpLCAodC5pbmRleCArPSBpLmxlbmd0aCksIHsgdmFsdWU6IGksIGRvbmU6ICExIH0pOwogICAgICB9CiAgICApOwogIH0pOwogIHZhciBMcyA9IEUoKHYkZSwgSFApID0+IHsKICAgIHZhciB3eWUgPSBTZSgpOwogICAgSFAuZXhwb3J0cyA9IHd5ZTsKICB9KTsKICB2YXIgalAgPSBFKChiJGUsIEdQKSA9PiB7CiAgICBoTigpOwogICAgeU4oKTsKICAgIHZOKCk7CiAgICBNZygpOwogICAgRWcoKTsKICAgIFVOKCk7CiAgICBHTigpOwogICAgJE4oKTsKICAgIFFOKCk7CiAgICBaTigpOwogICAgdHcoKTsKICAgIGl3KCk7CiAgICBhdygpOwogICAgY3coKTsKICAgIHV3KCk7CiAgICBmdygpOwogICAgcWcoKTsKICAgIEJ3KCk7CiAgICBZdygpOwogICAgS3coKTsKICAgIGVQKCk7CiAgICByUCgpOwogICAgaVAoKTsKICAgIGNQKCk7CiAgICB1UCgpOwogICAgUlAoKTsKICAgIE5QKCk7CiAgICB3UCgpOwogICAgUFAoKTsKICAgIERQKCk7CiAgICBMZigpOwogICAgVlAoKTsKICAgIHZhciBQeWUgPSBMcygpOwogICAgR1AuZXhwb3J0cyA9IFB5ZS5BcnJheTsKICB9KTsKICB2YXIgS1AgPSBFKChNJGUsIFlQKSA9PiB7CiAgICB2YXIgRHllID0galAoKTsKICAgIFlQLmV4cG9ydHMgPSBEeWU7CiAgfSk7CiAgdmFyIFZnID0gRSgoQSRlLCBKUCkgPT4gewogICAgdmFyIHF5ZSA9IHZzKCksCiAgICAgIHp5ZSA9ICRyKCksCiAgICAgICRQID0gU3MoKS5mLAogICAgICBGeWUgPSBJcygpLAogICAgICBRUCA9CiAgICAgICAgdHlwZW9mIHdpbmRvdyA9PSAib2JqZWN0IiAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMKICAgICAgICAgID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KQogICAgICAgICAgOiBbXSwKICAgICAga3llID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuICRQKGUpOwogICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgcmV0dXJuIEZ5ZShRUCk7CiAgICAgICAgfQogICAgICB9OwogICAgSlAuZXhwb3J0cy5mID0gZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIFFQICYmIHF5ZSh0KSA9PSAiV2luZG93IiA/IGt5ZSh0KSA6ICRQKHp5ZSh0KSk7CiAgICB9OwogIH0pOwogIHZhciBlMyA9IEUoKEUkZSwgWlApID0+IHsKICAgIHZhciBCeWUgPSBidCgpOwogICAgWlAuZXhwb3J0cyA9ICFCeWUoZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gT2JqZWN0LmlzRXh0ZW5zaWJsZShPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pKTsKICAgIH0pOwogIH0pOwogIHZhciBZZyA9IEUoKFQkZSwgbjMpID0+IHsKICAgIHZhciBXeWUgPSBMZSgpLAogICAgICBVeWUgPSBYZSgpLAogICAgICBYeWUgPSBUcygpLAogICAgICBWeWUgPSBVdCgpLAogICAgICBIZyA9IHJyKCksCiAgICAgIEh5ZSA9IGlyKCkuZiwKICAgICAgdDMgPSBTcygpLAogICAgICBHeWUgPSBWZygpLAogICAgICBqeWUgPSBqMSgpLAogICAgICBZeWUgPSBlMygpLAogICAgICByMyA9ICExLAogICAgICB2aSA9IGp5ZSgibWV0YSIpLAogICAgICBLeWUgPSAwLAogICAgICBHZyA9CiAgICAgICAgT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fAogICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiAhMDsKICAgICAgICB9LAogICAgICBqZyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgSHllKGUsIHZpLCB7IHZhbHVlOiB7IG9iamVjdElEOiAiTyIgKyBLeWUrKywgd2Vha0RhdGE6IHt9IH0gfSk7CiAgICAgIH0sCiAgICAgICR5ZSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgaWYgKCFWeWUoZSkpCiAgICAgICAgICByZXR1cm4gdHlwZW9mIGUgPT0gInN5bWJvbCIKICAgICAgICAgICAgPyBlCiAgICAgICAgICAgIDogKHR5cGVvZiBlID09ICJzdHJpbmciID8gIlMiIDogIlAiKSArIGU7CiAgICAgICAgaWYgKCFIZyhlLCB2aSkpIHsKICAgICAgICAgIGlmICghR2coZSkpIHJldHVybiAiRiI7CiAgICAgICAgICBpZiAoIXQpIHJldHVybiAiRSI7CiAgICAgICAgICBqZyhlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGVbdmldLm9iamVjdElEOwogICAgICB9LAogICAgICBReWUgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgIGlmICghSGcoZSwgdmkpKSB7CiAgICAgICAgICBpZiAoIUdnKGUpKSByZXR1cm4gITA7CiAgICAgICAgICBpZiAoIXQpIHJldHVybiAhMTsKICAgICAgICAgIGpnKGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZVt2aV0ud2Vha0RhdGE7CiAgICAgIH0sCiAgICAgIEp5ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIFl5ZSAmJiByMyAmJiBHZyhlKSAmJiAhSGcoZSwgdmkpICYmIGpnKGUpLCBlOwogICAgICB9LAogICAgICBaeWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgKGVnZS5lbmFibGUgPSBmdW5jdGlvbiAoKSB7fSksIChyMyA9ICEwKTsKICAgICAgICB2YXIgZSA9IHQzLmYsCiAgICAgICAgICB0ID0gVXllKFtdLnNwbGljZSksCiAgICAgICAgICByID0ge307CiAgICAgICAgKHJbdmldID0gMSksCiAgICAgICAgICBlKHIpLmxlbmd0aCAmJgogICAgICAgICAgICAoKHQzLmYgPSBmdW5jdGlvbiAobikgewogICAgICAgICAgICAgIGZvciAodmFyIGkgPSBlKG4pLCBhID0gMCwgbyA9IGkubGVuZ3RoOyBhIDwgbzsgYSsrKQogICAgICAgICAgICAgICAgaWYgKGlbYV0gPT09IHZpKSB7CiAgICAgICAgICAgICAgICAgIHQoaSwgYSwgMSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgV3llKAogICAgICAgICAgICAgIHsgdGFyZ2V0OiAiT2JqZWN0Iiwgc3RhdDogITAsIGZvcmNlZDogITAgfSwKICAgICAgICAgICAgICB7IGdldE93blByb3BlcnR5TmFtZXM6IEd5ZS5mIH0KICAgICAgICAgICAgKSk7CiAgICAgIH0sCiAgICAgIGVnZSA9IChuMy5leHBvcnRzID0gewogICAgICAgIGVuYWJsZTogWnllLAogICAgICAgIGZhc3RLZXk6ICR5ZSwKICAgICAgICBnZXRXZWFrRGF0YTogUXllLAogICAgICAgIG9uRnJlZXplOiBKeWUsCiAgICAgIH0pOwogICAgWHllW3ZpXSA9ICEwOwogIH0pOwogIHZhciB3ZiA9IEUoKF8kZSwgczMpID0+IHsKICAgIHZhciB0Z2UgPSBTZSgpLAogICAgICByZ2UgPSBtbigpLAogICAgICBuZ2UgPSBxcigpLAogICAgICBpZ2UgPSBucigpLAogICAgICBhZ2UgPSBIMSgpLAogICAgICBvZ2UgPSBsZygpLAogICAgICBzZ2UgPSBFdCgpLAogICAgICBpMyA9IFlhKCksCiAgICAgIGNnZSA9IG5jKCksCiAgICAgIHVnZSA9IHJjKCksCiAgICAgIGEzID0gdWcoKSwKICAgICAgbGdlID0gdGdlLlR5cGVFcnJvciwKICAgICAgTmYgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICh0aGlzLnN0b3BwZWQgPSBlKSwgKHRoaXMucmVzdWx0ID0gdCk7CiAgICAgIH0sCiAgICAgIG8zID0gTmYucHJvdG90eXBlOwogICAgczMuZXhwb3J0cyA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgIHZhciBuID0gciAmJiByLnRoYXQsCiAgICAgICAgaSA9ICEhKHIgJiYgci5BU19FTlRSSUVTKSwKICAgICAgICBhID0gISEociAmJiByLklTX0lURVJBVE9SKSwKICAgICAgICBvID0gISEociAmJiByLklOVEVSUlVQVEVEKSwKICAgICAgICBzID0gcmdlKHQsIG4pLAogICAgICAgIGMsCiAgICAgICAgdSwKICAgICAgICBsLAogICAgICAgIHAsCiAgICAgICAgZCwKICAgICAgICBoLAogICAgICAgIG0sCiAgICAgICAgdiA9IGZ1bmN0aW9uIChnKSB7CiAgICAgICAgICByZXR1cm4gYyAmJiBhMyhjLCAibm9ybWFsIiwgZyksIG5ldyBOZighMCwgZyk7CiAgICAgICAgfSwKICAgICAgICB5ID0gZnVuY3Rpb24gKGcpIHsKICAgICAgICAgIHJldHVybiBpCiAgICAgICAgICAgID8gKGlnZShnKSwgbyA/IHMoZ1swXSwgZ1sxXSwgdikgOiBzKGdbMF0sIGdbMV0pKQogICAgICAgICAgICA6IG8KICAgICAgICAgICAgPyBzKGcsIHYpCiAgICAgICAgICAgIDogcyhnKTsKICAgICAgICB9OwogICAgICBpZiAoYSkgYyA9IGU7CiAgICAgIGVsc2UgewogICAgICAgIGlmICgoKHUgPSB1Z2UoZSkpLCAhdSkpIHRocm93IGxnZShhZ2UoZSkgKyAiIGlzIG5vdCBpdGVyYWJsZSIpOwogICAgICAgIGlmIChvZ2UodSkpIHsKICAgICAgICAgIGZvciAobCA9IDAsIHAgPSBzZ2UoZSk7IHAgPiBsOyBsKyspCiAgICAgICAgICAgIGlmICgoKGQgPSB5KGVbbF0pKSwgZCAmJiBpMyhvMywgZCkpKSByZXR1cm4gZDsKICAgICAgICAgIHJldHVybiBuZXcgTmYoITEpOwogICAgICAgIH0KICAgICAgICBjID0gY2dlKGUsIHUpOwogICAgICB9CiAgICAgIGZvciAoaCA9IGMubmV4dDsgIShtID0gbmdlKGgsIGMpKS5kb25lOyApIHsKICAgICAgICB0cnkgewogICAgICAgICAgZCA9IHkobS52YWx1ZSk7CiAgICAgICAgfSBjYXRjaCAoZykgewogICAgICAgICAgYTMoYywgInRocm93IiwgZyk7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZCA9PSAib2JqZWN0IiAmJiBkICYmIGkzKG8zLCBkKSkgcmV0dXJuIGQ7CiAgICAgIH0KICAgICAgcmV0dXJuIG5ldyBOZighMSk7CiAgICB9OwogIH0pOwogIHZhciBQZiA9IEUoKFMkZSwgYzMpID0+IHsKICAgIHZhciBmZ2UgPSBTZSgpLAogICAgICBwZ2UgPSBZYSgpLAogICAgICBkZ2UgPSBmZ2UuVHlwZUVycm9yOwogICAgYzMuZXhwb3J0cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgIGlmIChwZ2UodCwgZSkpIHJldHVybiBlOwogICAgICB0aHJvdyBkZ2UoIkluY29ycmVjdCBpbnZvY2F0aW9uIik7CiAgICB9OwogIH0pOwogIHZhciBLZyA9IEUoKE8kZSwgbDMpID0+IHsKICAgIHZhciBoZ2UgPSBNdCgpLAogICAgICBtZ2UgPSBVdCgpLAogICAgICB1MyA9IE9mKCk7CiAgICBsMy5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgdmFyIG4sIGk7CiAgICAgIHJldHVybiAoCiAgICAgICAgdTMgJiYKICAgICAgICAgIGhnZSgobiA9IHQuY29uc3RydWN0b3IpKSAmJgogICAgICAgICAgbiAhPT0gciAmJgogICAgICAgICAgbWdlKChpID0gbi5wcm90b3R5cGUpKSAmJgogICAgICAgICAgaSAhPT0gci5wcm90b3R5cGUgJiYKICAgICAgICAgIHUzKGUsIGkpLAogICAgICAgIGUKICAgICAgKTsKICAgIH07CiAgfSk7CiAgdmFyIGQzID0gRSgoeCRlLCBwMykgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHlnZSA9IExlKCksCiAgICAgIGdnZSA9IFNlKCksCiAgICAgIHZnZSA9IFhlKCksCiAgICAgIGYzID0gWjEoKSwKICAgICAgYmdlID0gZG4oKSwKICAgICAgTWdlID0gWWcoKSwKICAgICAgQWdlID0gd2YoKSwKICAgICAgRWdlID0gUGYoKSwKICAgICAgVGdlID0gTXQoKSwKICAgICAgJGcgPSBVdCgpLAogICAgICBRZyA9IGJ0KCksCiAgICAgIF9nZSA9IE1mKCksCiAgICAgIFNnZSA9IGdpKCksCiAgICAgIE9nZSA9IEtnKCk7CiAgICBwMy5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgdmFyIG4gPSBlLmluZGV4T2YoIk1hcCIpICE9PSAtMSwKICAgICAgICBpID0gZS5pbmRleE9mKCJXZWFrIikgIT09IC0xLAogICAgICAgIGEgPSBuID8gInNldCIgOiAiYWRkIiwKICAgICAgICBvID0gZ2dlW2VdLAogICAgICAgIHMgPSBvICYmIG8ucHJvdG90eXBlLAogICAgICAgIGMgPSBvLAogICAgICAgIHUgPSB7fSwKICAgICAgICBsID0gZnVuY3Rpb24gKGcpIHsKICAgICAgICAgIHZhciBNID0gdmdlKHNbZ10pOwogICAgICAgICAgYmdlKAogICAgICAgICAgICBzLAogICAgICAgICAgICBnLAogICAgICAgICAgICBnID09ICJhZGQiCiAgICAgICAgICAgICAgPyBmdW5jdGlvbiAoXykgewogICAgICAgICAgICAgICAgICByZXR1cm4gTSh0aGlzLCBfID09PSAwID8gMCA6IF8pLCB0aGlzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIDogZyA9PSAiZGVsZXRlIgogICAgICAgICAgICAgID8gZnVuY3Rpb24gKEEpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGkgJiYgISRnKEEpID8gITEgOiBNKHRoaXMsIEEgPT09IDAgPyAwIDogQSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgOiBnID09ICJnZXQiCiAgICAgICAgICAgICAgPyBmdW5jdGlvbiAoXykgewogICAgICAgICAgICAgICAgICByZXR1cm4gaSAmJiAhJGcoXykgPyB2b2lkIDAgOiBNKHRoaXMsIF8gPT09IDAgPyAwIDogXyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgOiBnID09ICJoYXMiCiAgICAgICAgICAgICAgPyBmdW5jdGlvbiAoXykgewogICAgICAgICAgICAgICAgICByZXR1cm4gaSAmJiAhJGcoXykgPyAhMSA6IE0odGhpcywgXyA9PT0gMCA/IDAgOiBfKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICA6IGZ1bmN0aW9uIChfLCBDKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBNKHRoaXMsIF8gPT09IDAgPyAwIDogXywgQyksIHRoaXM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgcCA9IGYzKAogICAgICAgICAgZSwKICAgICAgICAgICFUZ2UobykgfHwKICAgICAgICAgICAgISgKICAgICAgICAgICAgICBpIHx8CiAgICAgICAgICAgICAgKHMuZm9yRWFjaCAmJgogICAgICAgICAgICAgICAgIVFnKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgbmV3IG8oKS5lbnRyaWVzKCkubmV4dCgpOwogICAgICAgICAgICAgICAgfSkpCiAgICAgICAgICAgICkKICAgICAgICApOwogICAgICBpZiAocCkgKGMgPSByLmdldENvbnN0cnVjdG9yKHQsIGUsIG4sIGEpKSwgTWdlLmVuYWJsZSgpOwogICAgICBlbHNlIGlmIChmMyhlLCAhMCkpIHsKICAgICAgICB2YXIgZCA9IG5ldyBjKCksCiAgICAgICAgICBoID0gZFthXShpID8ge30gOiAtMCwgMSkgIT0gZCwKICAgICAgICAgIG0gPSBRZyhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGQuaGFzKDEpOwogICAgICAgICAgfSksCiAgICAgICAgICB2ID0gX2dlKGZ1bmN0aW9uIChnKSB7CiAgICAgICAgICAgIG5ldyBvKGcpOwogICAgICAgICAgfSksCiAgICAgICAgICB5ID0KICAgICAgICAgICAgIWkgJiYKICAgICAgICAgICAgUWcoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIGZvciAodmFyIGcgPSBuZXcgbygpLCBNID0gNTsgTS0tOyApIGdbYV0oTSwgTSk7CiAgICAgICAgICAgICAgcmV0dXJuICFnLmhhcygtMCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIHYgfHwKICAgICAgICAgICgoYyA9IHQoZnVuY3Rpb24gKGcsIE0pIHsKICAgICAgICAgICAgRWdlKGcsIHMpOwogICAgICAgICAgICB2YXIgQSA9IE9nZShuZXcgbygpLCBnLCBjKTsKICAgICAgICAgICAgcmV0dXJuIE0gIT0gbnVsbCAmJiBBZ2UoTSwgQVthXSwgeyB0aGF0OiBBLCBBU19FTlRSSUVTOiBuIH0pLCBBOwogICAgICAgICAgfSkpLAogICAgICAgICAgKGMucHJvdG90eXBlID0gcyksCiAgICAgICAgICAocy5jb25zdHJ1Y3RvciA9IGMpKSwKICAgICAgICAgIChtIHx8IHkpICYmIChsKCJkZWxldGUiKSwgbCgiaGFzIiksIG4gJiYgbCgiZ2V0IikpLAogICAgICAgICAgKHkgfHwgaCkgJiYgbChhKSwKICAgICAgICAgIGkgJiYgcy5jbGVhciAmJiBkZWxldGUgcy5jbGVhcjsKICAgICAgfQogICAgICByZXR1cm4gKAogICAgICAgICh1W2VdID0gYyksCiAgICAgICAgeWdlKHsgZ2xvYmFsOiAhMCwgZm9yY2VkOiBjICE9IG8gfSwgdSksCiAgICAgICAgU2dlKGMsIGUpLAogICAgICAgIGkgfHwgci5zZXRTdHJvbmcoYywgZSwgbiksCiAgICAgICAgYwogICAgICApOwogICAgfTsKICB9KTsKICB2YXIgRGYgPSBFKChDJGUsIGgzKSA9PiB7CiAgICB2YXIgeGdlID0gZG4oKTsKICAgIGgzLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICBmb3IgKHZhciBuIGluIHQpIHhnZShlLCBuLCB0W25dLCByKTsKICAgICAgcmV0dXJuIGU7CiAgICB9OwogIH0pOwogIHZhciBNMyA9IEUoKFIkZSwgYjMpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBDZ2UgPSBpcigpLmYsCiAgICAgIFJnZSA9IG1pKCksCiAgICAgIG0zID0gRGYoKSwKICAgICAgSWdlID0gbW4oKSwKICAgICAgTGdlID0gUGYoKSwKICAgICAgTmdlID0gd2YoKSwKICAgICAgd2dlID0gUmYoKSwKICAgICAgUGdlID0gSWYoKSwKICAgICAgc2MgPSB0cigpLAogICAgICB5MyA9IFlnKCkuZmFzdEtleSwKICAgICAgdjMgPSBkaSgpLAogICAgICBnMyA9IHYzLnNldCwKICAgICAgSmcgPSB2My5nZXR0ZXJGb3I7CiAgICBiMy5leHBvcnRzID0gewogICAgICBnZXRDb25zdHJ1Y3RvcjogZnVuY3Rpb24gKGUsIHQsIHIsIG4pIHsKICAgICAgICB2YXIgaSA9IGUoZnVuY3Rpb24gKHUsIGwpIHsKICAgICAgICAgICAgTGdlKHUsIGEpLAogICAgICAgICAgICAgIGczKHUsIHsKICAgICAgICAgICAgICAgIHR5cGU6IHQsCiAgICAgICAgICAgICAgICBpbmRleDogUmdlKG51bGwpLAogICAgICAgICAgICAgICAgZmlyc3Q6IHZvaWQgMCwKICAgICAgICAgICAgICAgIGxhc3Q6IHZvaWQgMCwKICAgICAgICAgICAgICAgIHNpemU6IDAsCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgc2MgfHwgKHUuc2l6ZSA9IDApLAogICAgICAgICAgICAgIGwgIT0gbnVsbCAmJiBOZ2UobCwgdVtuXSwgeyB0aGF0OiB1LCBBU19FTlRSSUVTOiByIH0pOwogICAgICAgICAgfSksCiAgICAgICAgICBhID0gaS5wcm90b3R5cGUsCiAgICAgICAgICBvID0gSmcodCksCiAgICAgICAgICBzID0gZnVuY3Rpb24gKHUsIGwsIHApIHsKICAgICAgICAgICAgdmFyIGQgPSBvKHUpLAogICAgICAgICAgICAgIGggPSBjKHUsIGwpLAogICAgICAgICAgICAgIG0sCiAgICAgICAgICAgICAgdjsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICBoCiAgICAgICAgICAgICAgICA/IChoLnZhbHVlID0gcCkKICAgICAgICAgICAgICAgIDogKChkLmxhc3QgPSBoID0KICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBpbmRleDogKHYgPSB5MyhsLCAhMCkpLAogICAgICAgICAgICAgICAgICAgICAga2V5OiBsLAogICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHAsCiAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91czogKG0gPSBkLmxhc3QpLAogICAgICAgICAgICAgICAgICAgICAgbmV4dDogdm9pZCAwLAogICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZDogITEsCiAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgIGQuZmlyc3QgfHwgKGQuZmlyc3QgPSBoKSwKICAgICAgICAgICAgICAgICAgbSAmJiAobS5uZXh0ID0gaCksCiAgICAgICAgICAgICAgICAgIHNjID8gZC5zaXplKysgOiB1LnNpemUrKywKICAgICAgICAgICAgICAgICAgdiAhPT0gIkYiICYmIChkLmluZGV4W3ZdID0gaCkpLAogICAgICAgICAgICAgIHUKICAgICAgICAgICAgKTsKICAgICAgICAgIH0sCiAgICAgICAgICBjID0gZnVuY3Rpb24gKHUsIGwpIHsKICAgICAgICAgICAgdmFyIHAgPSBvKHUpLAogICAgICAgICAgICAgIGQgPSB5MyhsKSwKICAgICAgICAgICAgICBoOwogICAgICAgICAgICBpZiAoZCAhPT0gIkYiKSByZXR1cm4gcC5pbmRleFtkXTsKICAgICAgICAgICAgZm9yIChoID0gcC5maXJzdDsgaDsgaCA9IGgubmV4dCkgaWYgKGgua2V5ID09IGwpIHJldHVybiBoOwogICAgICAgICAgfTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgbTMoYSwgewogICAgICAgICAgICBjbGVhcjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIGZvciAodmFyIGwgPSB0aGlzLCBwID0gbyhsKSwgZCA9IHAuaW5kZXgsIGggPSBwLmZpcnN0OyBoOyApCiAgICAgICAgICAgICAgICAoaC5yZW1vdmVkID0gITApLAogICAgICAgICAgICAgICAgICBoLnByZXZpb3VzICYmIChoLnByZXZpb3VzID0gaC5wcmV2aW91cy5uZXh0ID0gdm9pZCAwKSwKICAgICAgICAgICAgICAgICAgZGVsZXRlIGRbaC5pbmRleF0sCiAgICAgICAgICAgICAgICAgIChoID0gaC5uZXh0KTsKICAgICAgICAgICAgICAocC5maXJzdCA9IHAubGFzdCA9IHZvaWQgMCksIHNjID8gKHAuc2l6ZSA9IDApIDogKGwuc2l6ZSA9IDApOwogICAgICAgICAgICB9LAogICAgICAgICAgICBkZWxldGU6IGZ1bmN0aW9uICh1KSB7CiAgICAgICAgICAgICAgdmFyIGwgPSB0aGlzLAogICAgICAgICAgICAgICAgcCA9IG8obCksCiAgICAgICAgICAgICAgICBkID0gYyhsLCB1KTsKICAgICAgICAgICAgICBpZiAoZCkgewogICAgICAgICAgICAgICAgdmFyIGggPSBkLm5leHQsCiAgICAgICAgICAgICAgICAgIG0gPSBkLnByZXZpb3VzOwogICAgICAgICAgICAgICAgZGVsZXRlIHAuaW5kZXhbZC5pbmRleF0sCiAgICAgICAgICAgICAgICAgIChkLnJlbW92ZWQgPSAhMCksCiAgICAgICAgICAgICAgICAgIG0gJiYgKG0ubmV4dCA9IGgpLAogICAgICAgICAgICAgICAgICBoICYmIChoLnByZXZpb3VzID0gbSksCiAgICAgICAgICAgICAgICAgIHAuZmlyc3QgPT0gZCAmJiAocC5maXJzdCA9IGgpLAogICAgICAgICAgICAgICAgICBwLmxhc3QgPT0gZCAmJiAocC5sYXN0ID0gbSksCiAgICAgICAgICAgICAgICAgIHNjID8gcC5zaXplLS0gOiBsLnNpemUtLTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICEhZDsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZm9yRWFjaDogZnVuY3Rpb24gKGwpIHsKICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdmFyIHAgPSBvKHRoaXMpLAogICAgICAgICAgICAgICAgICBkID0gSWdlKGwsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdm9pZCAwKSwKICAgICAgICAgICAgICAgICAgaDsKICAgICAgICAgICAgICAgIChoID0gaCA/IGgubmV4dCA6IHAuZmlyc3QpOwoKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBmb3IgKGQoaC52YWx1ZSwgaC5rZXksIHRoaXMpOyBoICYmIGgucmVtb3ZlZDsgKSBoID0gaC5wcmV2aW91czsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaGFzOiBmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgIHJldHVybiAhIWModGhpcywgbCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICB9KSwKICAgICAgICAgIG0zKAogICAgICAgICAgICBhLAogICAgICAgICAgICByCiAgICAgICAgICAgICAgPyB7CiAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKGwpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcCA9IGModGhpcywgbCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHAgJiYgcC52YWx1ZTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAobCwgcCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBzKHRoaXMsIGwgPT09IDAgPyAwIDogbCwgcCk7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgOiB7CiAgICAgICAgICAgICAgICAgIGFkZDogZnVuY3Rpb24gKGwpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gcyh0aGlzLCAobCA9IGwgPT09IDAgPyAwIDogbCksIGwpOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfQogICAgICAgICAgKSwKICAgICAgICAgIHNjICYmCiAgICAgICAgICAgIENnZShhLCAic2l6ZSIsIHsKICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBvKHRoaXMpLnNpemU7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSksCiAgICAgICAgICBpCiAgICAgICAgKTsKICAgICAgfSwKICAgICAgc2V0U3Ryb25nOiBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgIHZhciBuID0gdCArICIgSXRlcmF0b3IiLAogICAgICAgICAgaSA9IEpnKHQpLAogICAgICAgICAgYSA9IEpnKG4pOwogICAgICAgIHdnZSgKICAgICAgICAgIGUsCiAgICAgICAgICB0LAogICAgICAgICAgZnVuY3Rpb24gKG8sIHMpIHsKICAgICAgICAgICAgZzModGhpcywgewogICAgICAgICAgICAgIHR5cGU6IG4sCiAgICAgICAgICAgICAgdGFyZ2V0OiBvLAogICAgICAgICAgICAgIHN0YXRlOiBpKG8pLAogICAgICAgICAgICAgIGtpbmQ6IHMsCiAgICAgICAgICAgICAgbGFzdDogdm9pZCAwLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGZvciAodmFyIG8gPSBhKHRoaXMpLCBzID0gby5raW5kLCBjID0gby5sYXN0OyBjICYmIGMucmVtb3ZlZDsgKQogICAgICAgICAgICAgIGMgPSBjLnByZXZpb3VzOwogICAgICAgICAgICByZXR1cm4gIW8udGFyZ2V0IHx8ICEoby5sYXN0ID0gYyA9IGMgPyBjLm5leHQgOiBvLnN0YXRlLmZpcnN0KQogICAgICAgICAgICAgID8gKChvLnRhcmdldCA9IHZvaWQgMCksIHsgdmFsdWU6IHZvaWQgMCwgZG9uZTogITAgfSkKICAgICAgICAgICAgICA6IHMgPT0gImtleXMiCiAgICAgICAgICAgICAgPyB7IHZhbHVlOiBjLmtleSwgZG9uZTogITEgfQogICAgICAgICAgICAgIDogcyA9PSAidmFsdWVzIgogICAgICAgICAgICAgID8geyB2YWx1ZTogYy52YWx1ZSwgZG9uZTogITEgfQogICAgICAgICAgICAgIDogeyB2YWx1ZTogW2Mua2V5LCBjLnZhbHVlXSwgZG9uZTogITEgfTsKICAgICAgICAgIH0sCiAgICAgICAgICByID8gImVudHJpZXMiIDogInZhbHVlcyIsCiAgICAgICAgICAhciwKICAgICAgICAgICEwCiAgICAgICAgKSwKICAgICAgICAgIFBnZSh0KTsKICAgICAgfSwKICAgIH07CiAgfSk7CiAgdmFyIEEzID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgRGdlID0gZDMoKSwKICAgICAgcWdlID0gTTMoKTsKICAgIERnZSgKICAgICAgIk1hcCIsCiAgICAgIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiBlKHRoaXMsIGFyZ3VtZW50cy5sZW5ndGggPyBhcmd1bWVudHNbMF0gOiB2b2lkIDApOwogICAgICAgIH07CiAgICAgIH0sCiAgICAgIHFnZQogICAgKTsKICB9KTsKICB2YXIgVDMgPSBFKChOJGUsIEUzKSA9PiB7CiAgICB2YXIgemdlID0gU2UoKTsKICAgIEUzLmV4cG9ydHMgPSB6Z2UuUHJvbWlzZTsKICB9KTsKICB2YXIgUzMgPSBFKCh3JGUsIF8zKSA9PiB7CiAgICB2YXIgRmdlID0gU2UoKSwKICAgICAga2dlID0gWmEoKSwKICAgICAgQmdlID0gSDEoKSwKICAgICAgV2dlID0gRmdlLlR5cGVFcnJvcjsKICAgIF8zLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICBpZiAoa2dlKGUpKSByZXR1cm4gZTsKICAgICAgdGhyb3cgV2dlKEJnZShlKSArICIgaXMgbm90IGEgY29uc3RydWN0b3IiKTsKICAgIH07CiAgfSk7CiAgdmFyIEMzID0gRSgoUCRlLCB4MykgPT4gewogICAgdmFyIE8zID0gbnIoKSwKICAgICAgVWdlID0gUzMoKSwKICAgICAgWGdlID0gZ3QoKSwKICAgICAgVmdlID0gWGdlKCJzcGVjaWVzIik7CiAgICB4My5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgdmFyIHIgPSBPMyhlKS5jb25zdHJ1Y3RvciwKICAgICAgICBuOwogICAgICByZXR1cm4gciA9PT0gdm9pZCAwIHx8IChuID0gTzMocilbVmdlXSkgPT0gbnVsbCA/IHQgOiBVZ2Uobik7CiAgICB9OwogIH0pOwogIHZhciBaZyA9IEUoKEQkZSwgUjMpID0+IHsKICAgIHZhciBIZ2UgPSBlYSgpOwogICAgUjMuZXhwb3J0cyA9IC8oPzppcGFkfGlwaG9uZXxpcG9kKS4qYXBwbGV3ZWJraXQvaS50ZXN0KEhnZSk7CiAgfSk7CiAgdmFyIGN2ID0gRSgocSRlLCB6MykgPT4gewogICAgdmFyIEZyID0gU2UoKSwKICAgICAgR2dlID0gb2MoKSwKICAgICAgamdlID0gbW4oKSwKICAgICAgSTMgPSBNdCgpLAogICAgICBZZ2UgPSBycigpLAogICAgICBLZ2UgPSBidCgpLAogICAgICBMMyA9IGhnKCksCiAgICAgICRnZSA9IElzKCksCiAgICAgIE4zID0gWTEoKSwKICAgICAgUWdlID0gWmcoKSwKICAgICAgSmdlID0gUnMoKSwKICAgICAgYXYgPSBGci5zZXRJbW1lZGlhdGUsCiAgICAgIG92ID0gRnIuY2xlYXJJbW1lZGlhdGUsCiAgICAgIFpnZSA9IEZyLnByb2Nlc3MsCiAgICAgIGV2ID0gRnIuRGlzcGF0Y2gsCiAgICAgIGV2ZSA9IEZyLkZ1bmN0aW9uLAogICAgICB3MyA9IEZyLk1lc3NhZ2VDaGFubmVsLAogICAgICB0dmUgPSBGci5TdHJpbmcsCiAgICAgIHR2ID0gMCwKICAgICAgY2MgPSB7fSwKICAgICAgUDMgPSAib25yZWFkeXN0YXRlY2hhbmdlIiwKICAgICAgdWMsCiAgICAgIHRvLAogICAgICBydiwKICAgICAgbnY7CiAgICB0cnkgewogICAgICB1YyA9IEZyLmxvY2F0aW9uOwogICAgfSBjYXRjaCB7fQogICAgdmFyIHN2ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICBpZiAoWWdlKGNjLCBlKSkgewogICAgICAgICAgdmFyIHQgPSBjY1tlXTsKICAgICAgICAgIGRlbGV0ZSBjY1tlXSwgdCgpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgaXYgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBzdihlKTsKICAgICAgICB9OwogICAgICB9LAogICAgICBEMyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgc3YoZS5kYXRhKTsKICAgICAgfSwKICAgICAgcTMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIEZyLnBvc3RNZXNzYWdlKHR2ZShlKSwgdWMucHJvdG9jb2wgKyAiLy8iICsgdWMuaG9zdCk7CiAgICAgIH07CiAgICAoIWF2IHx8ICFvdikgJiYKICAgICAgKChhdiA9IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgdmFyIHIgPSAkZ2UoYXJndW1lbnRzLCAxKTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgKGNjWysrdHZdID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBHZ2UoSTModCkgPyB0IDogZXZlKHQpLCB2b2lkIDAsIHIpOwogICAgICAgICAgfSksCiAgICAgICAgICB0byh0diksCiAgICAgICAgICB0dgogICAgICAgICk7CiAgICAgIH0pLAogICAgICAob3YgPSBmdW5jdGlvbiAodCkgewogICAgICAgIGRlbGV0ZSBjY1t0XTsKICAgICAgfSksCiAgICAgIEpnZQogICAgICAgID8gKHRvID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgWmdlLm5leHRUaWNrKGl2KGUpKTsKICAgICAgICAgIH0pCiAgICAgICAgOiBldiAmJiBldi5ub3cKICAgICAgICA/ICh0byA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGV2Lm5vdyhpdihlKSk7CiAgICAgICAgICB9KQogICAgICAgIDogdzMgJiYgIVFnZQogICAgICAgID8gKChydiA9IG5ldyB3MygpKSwKICAgICAgICAgIChudiA9IHJ2LnBvcnQyKSwKICAgICAgICAgIChydi5wb3J0MS5vbm1lc3NhZ2UgPSBEMyksCiAgICAgICAgICAodG8gPSBqZ2UobnYucG9zdE1lc3NhZ2UsIG52KSkpCiAgICAgICAgOiBGci5hZGRFdmVudExpc3RlbmVyICYmCiAgICAgICAgICBJMyhGci5wb3N0TWVzc2FnZSkgJiYKICAgICAgICAgICFGci5pbXBvcnRTY3JpcHRzICYmCiAgICAgICAgICB1YyAmJgogICAgICAgICAgdWMucHJvdG9jb2wgIT09ICJmaWxlOiIgJiYKICAgICAgICAgICFLZ2UocTMpCiAgICAgICAgPyAoKHRvID0gcTMpLCBGci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgRDMsICExKSkKICAgICAgICA6IFAzIGluIE4zKCJzY3JpcHQiKQogICAgICAgID8gKHRvID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgTDMuYXBwZW5kQ2hpbGQoTjMoInNjcmlwdCIpKVtQM10gPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgTDMucmVtb3ZlQ2hpbGQodGhpcyksIHN2KGUpOwogICAgICAgICAgICB9OwogICAgICAgICAgfSkKICAgICAgICA6ICh0byA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHNldFRpbWVvdXQoaXYoZSksIDApOwogICAgICAgICAgfSkpOwogICAgejMuZXhwb3J0cyA9IHsgc2V0OiBhdiwgY2xlYXI6IG92IH07CiAgfSk7CiAgdmFyIGszID0gRSgoeiRlLCBGMykgPT4gewogICAgdmFyIHJ2ZSA9IGVhKCksCiAgICAgIG52ZSA9IFNlKCk7CiAgICBGMy5leHBvcnRzID0gL2lwYWR8aXBob25lfGlwb2QvaS50ZXN0KHJ2ZSkgJiYgbnZlLlBlYmJsZSAhPT0gdm9pZCAwOwogIH0pOwogIHZhciBXMyA9IEUoKEYkZSwgQjMpID0+IHsKICAgIHZhciBpdmUgPSBlYSgpOwogICAgQjMuZXhwb3J0cyA9IC93ZWIwcyg/IS4qY2hyb21lKS9pLnRlc3QoaXZlKTsKICB9KTsKICB2YXIgJDMgPSBFKChrJGUsIEszKSA9PiB7CiAgICB2YXIgbm8gPSBTZSgpLAogICAgICBVMyA9IG1uKCksCiAgICAgIGF2ZSA9IEVzKCkuZiwKICAgICAgdXYgPSBjdigpLnNldCwKICAgICAgb3ZlID0gWmcoKSwKICAgICAgc3ZlID0gazMoKSwKICAgICAgY3ZlID0gVzMoKSwKICAgICAgbHYgPSBScygpLAogICAgICBYMyA9IG5vLk11dGF0aW9uT2JzZXJ2ZXIgfHwgbm8uV2ViS2l0TXV0YXRpb25PYnNlcnZlciwKICAgICAgVjMgPSBuby5kb2N1bWVudCwKICAgICAgSDMgPSBuby5wcm9jZXNzLAogICAgICBxZiA9IG5vLlByb21pc2UsCiAgICAgIEczID0gYXZlKG5vLCAicXVldWVNaWNyb3Rhc2siKSwKICAgICAgWTMgPSBHMyAmJiBHMy52YWx1ZSwKICAgICAgbGMsCiAgICAgIHJvLAogICAgICBmYywKICAgICAgTnMsCiAgICAgIGZ2LAogICAgICBwdiwKICAgICAgemYsCiAgICAgIGozOwogICAgWTMgfHwKICAgICAgKChsYyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZSwgdDsKICAgICAgICBmb3IgKGx2ICYmIChlID0gSDMuZG9tYWluKSAmJiBlLmV4aXQoKTsgcm87ICkgewogICAgICAgICAgKHQgPSByby5mbiksIChybyA9IHJvLm5leHQpOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdCgpOwogICAgICAgICAgfSBjYXRjaCAocikgewogICAgICAgICAgICB0aHJvdyAocm8gPyBOcygpIDogKGZjID0gdm9pZCAwKSwgcik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIChmYyA9IHZvaWQgMCksIGUgJiYgZS5lbnRlcigpOwogICAgICB9KSwKICAgICAgIW92ZSAmJiAhbHYgJiYgIWN2ZSAmJiBYMyAmJiBWMwogICAgICAgID8gKChmdiA9ICEwKSwKICAgICAgICAgIChwdiA9IFYzLmNyZWF0ZVRleHROb2RlKCIiKSksCiAgICAgICAgICBuZXcgWDMobGMpLm9ic2VydmUocHYsIHsgY2hhcmFjdGVyRGF0YTogITAgfSksCiAgICAgICAgICAoTnMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHB2LmRhdGEgPSBmdiA9ICFmdjsKICAgICAgICAgIH0pKQogICAgICAgIDogIXN2ZSAmJiBxZiAmJiBxZi5yZXNvbHZlCiAgICAgICAgPyAoKHpmID0gcWYucmVzb2x2ZSh2b2lkIDApKSwKICAgICAgICAgICh6Zi5jb25zdHJ1Y3RvciA9IHFmKSwKICAgICAgICAgIChqMyA9IFUzKHpmLnRoZW4sIHpmKSksCiAgICAgICAgICAoTnMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGozKGxjKTsKICAgICAgICAgIH0pKQogICAgICAgIDogbHYKICAgICAgICA/IChOcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgSDMubmV4dFRpY2sobGMpOwogICAgICAgICAgfSkKICAgICAgICA6ICgodXYgPSBVMyh1diwgbm8pKSwKICAgICAgICAgIChOcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdXYobGMpOwogICAgICAgICAgfSkpKTsKICAgIEszLmV4cG9ydHMgPQogICAgICBZMyB8fAogICAgICBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0ID0geyBmbjogZSwgbmV4dDogdm9pZCAwIH07CiAgICAgICAgZmMgJiYgKGZjLm5leHQgPSB0KSwgcm8gfHwgKChybyA9IHQpLCBOcygpKSwgKGZjID0gdCk7CiAgICAgIH07CiAgfSk7CiAgdmFyIGR2ID0gRSgoQiRlLCBKMykgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFEzID0gcG4oKSwKICAgICAgdXZlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICB2YXIgdCwgcjsKICAgICAgICAodGhpcy5wcm9taXNlID0gbmV3IGUoZnVuY3Rpb24gKG4sIGkpIHsKICAgICAgICAgIGlmICh0ICE9PSB2b2lkIDAgfHwgciAhPT0gdm9pZCAwKQogICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoIkJhZCBQcm9taXNlIGNvbnN0cnVjdG9yIik7CiAgICAgICAgICAodCA9IG4pLCAociA9IGkpOwogICAgICAgIH0pKSwKICAgICAgICAgICh0aGlzLnJlc29sdmUgPSBRMyh0KSksCiAgICAgICAgICAodGhpcy5yZWplY3QgPSBRMyhyKSk7CiAgICAgIH07CiAgICBKMy5leHBvcnRzLmYgPSBmdW5jdGlvbiAoZSkgewogICAgICByZXR1cm4gbmV3IHV2ZShlKTsKICAgIH07CiAgfSk7CiAgdmFyIGVEID0gRSgoVyRlLCBaMykgPT4gewogICAgdmFyIGx2ZSA9IG5yKCksCiAgICAgIGZ2ZSA9IFV0KCksCiAgICAgIHB2ZSA9IGR2KCk7CiAgICBaMy5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgaWYgKChsdmUoZSksIGZ2ZSh0KSAmJiB0LmNvbnN0cnVjdG9yID09PSBlKSkgcmV0dXJuIHQ7CiAgICAgIHZhciByID0gcHZlLmYoZSksCiAgICAgICAgbiA9IHIucmVzb2x2ZTsKICAgICAgcmV0dXJuIG4odCksIHIucHJvbWlzZTsKICAgIH07CiAgfSk7CiAgdmFyIHJEID0gRSgoVSRlLCB0RCkgPT4gewogICAgdmFyIGR2ZSA9IFNlKCk7CiAgICB0RC5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgdmFyIHIgPSBkdmUuY29uc29sZTsKICAgICAgciAmJiByLmVycm9yICYmIChhcmd1bWVudHMubGVuZ3RoID09IDEgPyByLmVycm9yKGUpIDogci5lcnJvcihlLCB0KSk7CiAgICB9OwogIH0pOwogIHZhciBpRCA9IEUoKFgkZSwgbkQpID0+IHsKICAgIG5ELmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICB0cnkgewogICAgICAgIHJldHVybiB7IGVycm9yOiAhMSwgdmFsdWU6IGUoKSB9OwogICAgICB9IGNhdGNoICh0KSB7CiAgICAgICAgcmV0dXJuIHsgZXJyb3I6ICEwLCB2YWx1ZTogdCB9OwogICAgICB9CiAgICB9OwogIH0pOwogIHZhciBvRCA9IEUoKFYkZSwgYUQpID0+IHsKICAgIGFELmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ID09ICJvYmplY3QiOwogIH0pOwogIHZhciBPRCA9IEUoKCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFVmID0gTGUoKSwKICAgICAga2YgPSBLYSgpLAogICAgICBiaSA9IFNlKCksCiAgICAgIGh2ZSA9IHpyKCksCiAgICAgIE1pID0gcXIoKSwKICAgICAgQmYgPSBUMygpLAogICAgICBzRCA9IGRuKCksCiAgICAgIG12ZSA9IERmKCksCiAgICAgIGNEID0gT2YoKSwKICAgICAgeXZlID0gZ2koKSwKICAgICAgZ3ZlID0gSWYoKSwKICAgICAgaHYgPSBwbigpLAogICAgICBwYyA9IE10KCksCiAgICAgIHZ2ZSA9IFV0KCksCiAgICAgIGJ2ZSA9IFBmKCksCiAgICAgIE12ZSA9IEsxKCksCiAgICAgIHVEID0gd2YoKSwKICAgICAgQXZlID0gTWYoKSwKICAgICAgRXZlID0gQzMoKSwKICAgICAgeUQgPSBjdigpLnNldCwKICAgICAgZ0QgPSAkMygpLAogICAgICBUdmUgPSBlRCgpLAogICAgICBfdmUgPSByRCgpLAogICAgICB2RCA9IGR2KCksCiAgICAgIG12ID0gaUQoKSwKICAgICAgYnYgPSBkaSgpLAogICAgICBTdmUgPSBaMSgpLAogICAgICBPdmUgPSBndCgpLAogICAgICB4dmUgPSBvRCgpLAogICAgICBXZiA9IFJzKCksCiAgICAgIGxEID0gdGEoKSwKICAgICAgQ3ZlID0gT3ZlKCJzcGVjaWVzIiksCiAgICAgIEFpID0gIlByb21pc2UiLAogICAgICBmRCA9IGJ2LmdldCwKICAgICAgUnZlID0gYnYuc2V0LAogICAgICBJdmUgPSBidi5nZXR0ZXJGb3IoQWkpLAogICAgICBpbyA9IEJmICYmIEJmLnByb3RvdHlwZSwKICAgICAgUXIgPSBCZiwKICAgICAgd3MgPSBpbywKICAgICAgYkQgPSBiaS5UeXBlRXJyb3IsCiAgICAgIHl2ID0gYmkuZG9jdW1lbnQsCiAgICAgIE12ID0gYmkucHJvY2VzcywKICAgICAgcXMgPSB2RC5mLAogICAgICBMdmUgPSBxcywKICAgICAgTnZlID0gISEoeXYgJiYgeXYuY3JlYXRlRXZlbnQgJiYgYmkuZGlzcGF0Y2hFdmVudCksCiAgICAgIE1EID0gcGMoYmkuUHJvbWlzZVJlamVjdGlvbkV2ZW50KSwKICAgICAgQUQgPSAidW5oYW5kbGVkcmVqZWN0aW9uIiwKICAgICAgd3ZlID0gInJlamVjdGlvbmhhbmRsZWQiLAogICAgICBwRCA9IDAsCiAgICAgIEVEID0gMSwKICAgICAgUHZlID0gMiwKICAgICAgQXYgPSAxLAogICAgICBURCA9IDIsCiAgICAgIGd2ID0gITEsCiAgICAgIEZmLAogICAgICBkRCwKICAgICAgRXYsCiAgICAgIGhELAogICAgICBkYyA9IFN2ZShBaSwgZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBlID0gTXZlKFFyKSwKICAgICAgICAgIHQgPSBlICE9PSBTdHJpbmcoUXIpOwogICAgICAgIGlmICgoIXQgJiYgbEQgPT09IDY2KSB8fCAoa2YgJiYgIXdzLmZpbmFsbHkpKSByZXR1cm4gITA7CiAgICAgICAgaWYgKGxEID49IDUxICYmIC9uYXRpdmUgY29kZS8udGVzdChlKSkgcmV0dXJuICExOwogICAgICAgIHZhciByID0gbmV3IFFyKGZ1bmN0aW9uIChhKSB7CiAgICAgICAgICAgIGEoMSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIG4gPSBmdW5jdGlvbiAoYSkgewogICAgICAgICAgICBhKAogICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9LAogICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9CiAgICAgICAgICAgICk7CiAgICAgICAgICB9LAogICAgICAgICAgaSA9IChyLmNvbnN0cnVjdG9yID0ge30pOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoaVtDdmVdID0gbiksCiAgICAgICAgICAoZ3YgPSByLnRoZW4oZnVuY3Rpb24gKCkge30pIGluc3RhbmNlb2YgbiksCiAgICAgICAgICBndiA/ICF0ICYmIHh2ZSAmJiAhTUQgOiAhMAogICAgICAgICk7CiAgICAgIH0pLAogICAgICBEdmUgPQogICAgICAgIGRjIHx8CiAgICAgICAgIUF2ZShmdW5jdGlvbiAoZSkgewogICAgICAgICAgUXIuYWxsKGUpLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgICAgICB9KSwKICAgICAgX0QgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0OwogICAgICAgIHJldHVybiB2dmUoZSkgJiYgcGMoKHQgPSBlLnRoZW4pKSA/IHQgOiAhMTsKICAgICAgfSwKICAgICAgVHYgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgIGlmICghZS5ub3RpZmllZCkgewogICAgICAgICAgZS5ub3RpZmllZCA9ICEwOwogICAgICAgICAgdmFyIHIgPSBlLnJlYWN0aW9uczsKICAgICAgICAgIGdEKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgZm9yICh2YXIgbiA9IGUudmFsdWUsIGkgPSBlLnN0YXRlID09IEVELCBhID0gMDsgci5sZW5ndGggPiBhOyApIHsKICAgICAgICAgICAgICB2YXIgbyA9IHJbYSsrXSwKICAgICAgICAgICAgICAgIHMgPSBpID8gby5vayA6IG8uZmFpbCwKICAgICAgICAgICAgICAgIGMgPSBvLnJlc29sdmUsCiAgICAgICAgICAgICAgICB1ID0gby5yZWplY3QsCiAgICAgICAgICAgICAgICBsID0gby5kb21haW4sCiAgICAgICAgICAgICAgICBwLAogICAgICAgICAgICAgICAgZCwKICAgICAgICAgICAgICAgIGg7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHMKICAgICAgICAgICAgICAgICAgPyAoaSB8fCAoZS5yZWplY3Rpb24gPT09IFREICYmIHp2ZShlKSwgKGUucmVqZWN0aW9uID0gQXYpKSwKICAgICAgICAgICAgICAgICAgICBzID09PSAhMAogICAgICAgICAgICAgICAgICAgICAgPyAocCA9IG4pCiAgICAgICAgICAgICAgICAgICAgICA6IChsICYmIGwuZW50ZXIoKSwgKHAgPSBzKG4pKSwgbCAmJiAobC5leGl0KCksIChoID0gITApKSksCiAgICAgICAgICAgICAgICAgICAgcCA9PT0gby5wcm9taXNlCiAgICAgICAgICAgICAgICAgICAgICA/IHUoYkQoIlByb21pc2UtY2hhaW4gY3ljbGUiKSkKICAgICAgICAgICAgICAgICAgICAgIDogKGQgPSBfRChwKSkKICAgICAgICAgICAgICAgICAgICAgID8gTWkoZCwgcCwgYywgdSkKICAgICAgICAgICAgICAgICAgICAgIDogYyhwKSkKICAgICAgICAgICAgICAgICAgOiB1KG4pOwogICAgICAgICAgICAgIH0gY2F0Y2ggKG0pIHsKICAgICAgICAgICAgICAgIGwgJiYgIWggJiYgbC5leGl0KCksIHUobSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIChlLnJlYWN0aW9ucyA9IFtdKSwgKGUubm90aWZpZWQgPSAhMSksIHQgJiYgIWUucmVqZWN0aW9uICYmIHF2ZShlKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSwKICAgICAgU0QgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgIHZhciBuLCBpOwogICAgICAgIE52ZQogICAgICAgICAgPyAoKG4gPSB5di5jcmVhdGVFdmVudCgiRXZlbnQiKSksCiAgICAgICAgICAgIChuLnByb21pc2UgPSB0KSwKICAgICAgICAgICAgKG4ucmVhc29uID0gciksCiAgICAgICAgICAgIG4uaW5pdEV2ZW50KGUsICExLCAhMCksCiAgICAgICAgICAgIGJpLmRpc3BhdGNoRXZlbnQobikpCiAgICAgICAgICA6IChuID0geyBwcm9taXNlOiB0LCByZWFzb246IHIgfSksCiAgICAgICAgICAhTUQgJiYgKGkgPSBiaVsib24iICsgZV0pCiAgICAgICAgICAgID8gaShuKQogICAgICAgICAgICA6IGUgPT09IEFEICYmIF92ZSgiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uIiwgcik7CiAgICAgIH0sCiAgICAgIHF2ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgTWkoeUQsIGJpLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgdCA9IGUuZmFjYWRlLAogICAgICAgICAgICByID0gZS52YWx1ZSwKICAgICAgICAgICAgbiA9IG1EKGUpLAogICAgICAgICAgICBpOwogICAgICAgICAgaWYgKAogICAgICAgICAgICBuICYmCiAgICAgICAgICAgICgoaSA9IG12KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBXZiA/IE12LmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIsIHIsIHQpIDogU0QoQUQsIHQsIHIpOwogICAgICAgICAgICB9KSksCiAgICAgICAgICAgIChlLnJlamVjdGlvbiA9IFdmIHx8IG1EKGUpID8gVEQgOiBBdiksCiAgICAgICAgICAgIGkuZXJyb3IpCiAgICAgICAgICApCiAgICAgICAgICAgIHRocm93IGkudmFsdWU7CiAgICAgICAgfSk7CiAgICAgIH0sCiAgICAgIG1EID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICByZXR1cm4gZS5yZWplY3Rpb24gIT09IEF2ICYmICFlLnBhcmVudDsKICAgICAgfSwKICAgICAgenZlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICBNaSh5RCwgYmksIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciB0ID0gZS5mYWNhZGU7CiAgICAgICAgICBXZiA/IE12LmVtaXQoInJlamVjdGlvbkhhbmRsZWQiLCB0KSA6IFNEKHd2ZSwgdCwgZS52YWx1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0sCiAgICAgIFBzID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG4pIHsKICAgICAgICAgIGUodCwgbiwgcik7CiAgICAgICAgfTsKICAgICAgfSwKICAgICAgRHMgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgIGUuZG9uZSB8fAogICAgICAgICAgKChlLmRvbmUgPSAhMCksCiAgICAgICAgICByICYmIChlID0gciksCiAgICAgICAgICAoZS52YWx1ZSA9IHQpLAogICAgICAgICAgKGUuc3RhdGUgPSBQdmUpLAogICAgICAgICAgVHYoZSwgITApKTsKICAgICAgfSwKICAgICAgdnYgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgIGlmICghZS5kb25lKSB7CiAgICAgICAgICAoZS5kb25lID0gITApLCByICYmIChlID0gcik7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoZS5mYWNhZGUgPT09IHQpIHRocm93IGJEKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpOwogICAgICAgICAgICB2YXIgbiA9IF9EKHQpOwogICAgICAgICAgICBuCiAgICAgICAgICAgICAgPyBnRChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHZhciBpID0geyBkb25lOiAhMSB9OwogICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIE1pKG4sIHQsIFBzKHZ2LCBpLCBlKSwgUHMoRHMsIGksIGUpKTsKICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoYSkgewogICAgICAgICAgICAgICAgICAgIERzKGksIGEsIGUpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgIDogKChlLnZhbHVlID0gdCksIChlLnN0YXRlID0gRUQpLCBUdihlLCAhMSkpOwogICAgICAgICAgfSBjYXRjaCAoaSkgewogICAgICAgICAgICBEcyh7IGRvbmU6ICExIH0sIGksIGUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgIGlmICgKICAgICAgZGMgJiYKICAgICAgKChRciA9IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgYnZlKHRoaXMsIHdzKSwgaHYodCksIE1pKEZmLCB0aGlzKTsKICAgICAgICB2YXIgciA9IGZEKHRoaXMpOwogICAgICAgIHRyeSB7CiAgICAgICAgICB0KFBzKHZ2LCByKSwgUHMoRHMsIHIpKTsKICAgICAgICB9IGNhdGNoIChuKSB7CiAgICAgICAgICBEcyhyLCBuKTsKICAgICAgICB9CiAgICAgIH0pLAogICAgICAod3MgPSBRci5wcm90b3R5cGUpLAogICAgICAoRmYgPSBmdW5jdGlvbiAodCkgewogICAgICAgIFJ2ZSh0aGlzLCB7CiAgICAgICAgICB0eXBlOiBBaSwKICAgICAgICAgIGRvbmU6ICExLAogICAgICAgICAgbm90aWZpZWQ6ICExLAogICAgICAgICAgcGFyZW50OiAhMSwKICAgICAgICAgIHJlYWN0aW9uczogW10sCiAgICAgICAgICByZWplY3Rpb246ICExLAogICAgICAgICAgc3RhdGU6IHBELAogICAgICAgICAgdmFsdWU6IHZvaWQgMCwKICAgICAgICB9KTsKICAgICAgfSksCiAgICAgIChGZi5wcm90b3R5cGUgPSBtdmUod3MsIHsKICAgICAgICB0aGVuOiBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgdmFyIG4gPSBJdmUodGhpcyksCiAgICAgICAgICAgIGkgPSBuLnJlYWN0aW9ucywKICAgICAgICAgICAgYSA9IHFzKEV2ZSh0aGlzLCBRcikpOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgKGEub2sgPSBwYyh0KSA/IHQgOiAhMCksCiAgICAgICAgICAgIChhLmZhaWwgPSBwYyhyKSAmJiByKSwKICAgICAgICAgICAgKGEuZG9tYWluID0gV2YgPyBNdi5kb21haW4gOiB2b2lkIDApLAogICAgICAgICAgICAobi5wYXJlbnQgPSAhMCksCiAgICAgICAgICAgIChpW2kubGVuZ3RoXSA9IGEpLAogICAgICAgICAgICBuLnN0YXRlICE9IHBEICYmIFR2KG4sICExKSwKICAgICAgICAgICAgYS5wcm9taXNlCiAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgY2F0Y2g6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy50aGVuKHZvaWQgMCwgZSk7CiAgICAgICAgfSwKICAgICAgfSkpLAogICAgICAoZEQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGUgPSBuZXcgRmYoKSwKICAgICAgICAgIHQgPSBmRChlKTsKICAgICAgICAodGhpcy5wcm9taXNlID0gZSksCiAgICAgICAgICAodGhpcy5yZXNvbHZlID0gUHModnYsIHQpKSwKICAgICAgICAgICh0aGlzLnJlamVjdCA9IFBzKERzLCB0KSk7CiAgICAgIH0pLAogICAgICAodkQuZiA9IHFzID0KICAgICAgICBmdW5jdGlvbiAoZSkgewogICAgICAgICAgcmV0dXJuIGUgPT09IFFyIHx8IGUgPT09IEV2ID8gbmV3IGREKGUpIDogTHZlKGUpOwogICAgICAgIH0pLAogICAgICAha2YgJiYgcGMoQmYpICYmIGlvICE9PSBPYmplY3QucHJvdG90eXBlKQogICAgKSB7CiAgICAgIChoRCA9IGlvLnRoZW4pLAogICAgICAgIGd2IHx8CiAgICAgICAgICAoc0QoCiAgICAgICAgICAgIGlvLAogICAgICAgICAgICAidGhlbiIsCiAgICAgICAgICAgIGZ1bmN0aW9uICh0LCByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzOwogICAgICAgICAgICAgIHJldHVybiBuZXcgUXIoZnVuY3Rpb24gKGksIGEpIHsKICAgICAgICAgICAgICAgIE1pKGhELCBuLCBpLCBhKTsKICAgICAgICAgICAgICB9KS50aGVuKHQsIHIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICB7IHVuc2FmZTogITAgfQogICAgICAgICAgKSwKICAgICAgICAgIHNEKGlvLCAiY2F0Y2giLCB3cy5jYXRjaCwgeyB1bnNhZmU6ICEwIH0pKTsKICAgICAgdHJ5IHsKICAgICAgICBkZWxldGUgaW8uY29uc3RydWN0b3I7CiAgICAgIH0gY2F0Y2gge30KICAgICAgY0QgJiYgY0QoaW8sIHdzKTsKICAgIH0KICAgIFVmKHsgZ2xvYmFsOiAhMCwgd3JhcDogITAsIGZvcmNlZDogZGMgfSwgeyBQcm9taXNlOiBRciB9KTsKICAgIHl2ZShRciwgQWksICExLCAhMCk7CiAgICBndmUoQWkpOwogICAgRXYgPSBodmUoQWkpOwogICAgVWYoCiAgICAgIHsgdGFyZ2V0OiBBaSwgc3RhdDogITAsIGZvcmNlZDogZGMgfSwKICAgICAgewogICAgICAgIHJlamVjdDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIHZhciByID0gcXModGhpcyk7CiAgICAgICAgICByZXR1cm4gTWkoci5yZWplY3QsIHZvaWQgMCwgdCksIHIucHJvbWlzZTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogICAgVWYoCiAgICAgIHsgdGFyZ2V0OiBBaSwgc3RhdDogITAsIGZvcmNlZDoga2YgfHwgZGMgfSwKICAgICAgewogICAgICAgIHJlc29sdmU6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICByZXR1cm4gVHZlKGtmICYmIHRoaXMgPT09IEV2ID8gUXIgOiB0aGlzLCB0KTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogICAgVWYoCiAgICAgIHsgdGFyZ2V0OiBBaSwgc3RhdDogITAsIGZvcmNlZDogRHZlIH0sCiAgICAgIHsKICAgICAgICBhbGw6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICB2YXIgciA9IHRoaXMsCiAgICAgICAgICAgIG4gPSBxcyhyKSwKICAgICAgICAgICAgaSA9IG4ucmVzb2x2ZSwKICAgICAgICAgICAgYSA9IG4ucmVqZWN0LAogICAgICAgICAgICBvID0gbXYoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBzID0gaHYoci5yZXNvbHZlKSwKICAgICAgICAgICAgICAgIGMgPSBbXSwKICAgICAgICAgICAgICAgIHUgPSAwLAogICAgICAgICAgICAgICAgbCA9IDE7CiAgICAgICAgICAgICAgdUQodCwgZnVuY3Rpb24gKHApIHsKICAgICAgICAgICAgICAgIHZhciBkID0gdSsrLAogICAgICAgICAgICAgICAgICBoID0gITE7CiAgICAgICAgICAgICAgICBsKyssCiAgICAgICAgICAgICAgICAgIE1pKHMsIHIsIHApLnRoZW4oZnVuY3Rpb24gKG0pIHsKICAgICAgICAgICAgICAgICAgICBoIHx8ICgoaCA9ICEwKSwgKGNbZF0gPSBtKSwgLS1sIHx8IGkoYykpOwogICAgICAgICAgICAgICAgICB9LCBhKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIC0tbCB8fCBpKGMpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIHJldHVybiBvLmVycm9yICYmIGEoby52YWx1ZSksIG4ucHJvbWlzZTsKICAgICAgICB9LAogICAgICAgIHJhY2U6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICB2YXIgciA9IHRoaXMsCiAgICAgICAgICAgIG4gPSBxcyhyKSwKICAgICAgICAgICAgaSA9IG4ucmVqZWN0LAogICAgICAgICAgICBhID0gbXYoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBvID0gaHYoci5yZXNvbHZlKTsKICAgICAgICAgICAgICB1RCh0LCBmdW5jdGlvbiAocykgewogICAgICAgICAgICAgICAgTWkobywgciwgcykudGhlbihuLnJlc29sdmUsIGkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgIHJldHVybiBhLmVycm9yICYmIGkoYS52YWx1ZSksIG4ucHJvbWlzZTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogIH0pOwogIHZhciBERCA9IEUoKGokZSwgUEQpID0+IHsKICAgIHZhciBMRCA9IFNlKCksCiAgICAgIE5EID0gRzEoKSwKICAgICAgd0QgPSBNdCgpLAogICAgICBGdmUgPSBtaSgpLAogICAgICBYZiA9IFNmKCksCiAgICAgIGt2ZSA9IGRuKCksCiAgICAgIEJ2ZSA9IGd0KCksCiAgICAgIFd2ZSA9IEthKCksCiAgICAgIHhEID0gIlVTRV9GVU5DVElPTl9DT05TVFJVQ1RPUiIsCiAgICAgIENEID0gQnZlKCJhc3luY0l0ZXJhdG9yIiksCiAgICAgIFJEID0gTEQuQXN5bmNJdGVyYXRvciwKICAgICAgSUQgPSBORC5Bc3luY0l0ZXJhdG9yUHJvdG90eXBlLAogICAgICBrbiwKICAgICAgX3Y7CiAgICBpZiAoSUQpIGtuID0gSUQ7CiAgICBlbHNlIGlmICh3RChSRCkpIGtuID0gUkQucHJvdG90eXBlOwogICAgZWxzZSBpZiAoTkRbeERdIHx8IExEW3hEXSkKICAgICAgdHJ5IHsKICAgICAgICAoX3YgPSBYZihYZihYZihGdW5jdGlvbigicmV0dXJuIGFzeW5jIGZ1bmN0aW9uKigpe30oKSIpKCkpKSkpLAogICAgICAgICAgWGYoX3YpID09PSBPYmplY3QucHJvdG90eXBlICYmIChrbiA9IF92KTsKICAgICAgfSBjYXRjaCB7fQogICAga24gPyBXdmUgJiYgKGtuID0gRnZlKGtuKSkgOiAoa24gPSB7fSk7CiAgICB3RChrbltDRF0pIHx8CiAgICAgIGt2ZShrbiwgQ0QsIGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfSk7CiAgICBQRC5leHBvcnRzID0ga247CiAgfSk7CiAgdmFyIEN2ID0gRSgoWSRlLCBrRCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFN2ID0gb2MoKSwKICAgICAgVmYgPSBucigpLAogICAgICBVdmUgPSBtaSgpLAogICAgICBxRCA9IHJhKCksCiAgICAgIFh2ZSA9IERmKCksCiAgICAgIHpEID0gZGkoKSwKICAgICAgVnZlID0genIoKSwKICAgICAgSHZlID0gREQoKSwKICAgICAgSGYgPSBWdmUoIlByb21pc2UiKSwKICAgICAgR3ZlID0gekQuc2V0LAogICAgICBPdiA9IHpELmdldCwKICAgICAgeHYgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgIHZhciBuID0gZS5kb25lOwogICAgICAgIEhmLnJlc29sdmUoZS52YWx1ZSkudGhlbihmdW5jdGlvbiAoaSkgewogICAgICAgICAgdCh7IGRvbmU6IG4sIHZhbHVlOiBpIH0pOwogICAgICAgIH0sIHIpOwogICAgICB9LAogICAgICBGRCA9IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgR3ZlKHRoaXMsIHsgaXRlcmF0b3I6IFZmKHQpLCBuZXh0OiB0Lm5leHQgfSk7CiAgICAgIH07CiAgICBGRC5wcm90b3R5cGUgPSBYdmUoVXZlKEh2ZSksIHsKICAgICAgbmV4dDogZnVuY3Rpb24gKHQpIHsKICAgICAgICB2YXIgciA9IE92KHRoaXMpLAogICAgICAgICAgbiA9ICEhYXJndW1lbnRzLmxlbmd0aDsKICAgICAgICByZXR1cm4gbmV3IEhmKGZ1bmN0aW9uIChpLCBhKSB7CiAgICAgICAgICB2YXIgbyA9IFZmKFN2KHIubmV4dCwgci5pdGVyYXRvciwgbiA/IFt0XSA6IFtdKSk7CiAgICAgICAgICB4dihvLCBpLCBhKTsKICAgICAgICB9KTsKICAgICAgfSwKICAgICAgcmV0dXJuOiBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0ID0gT3YodGhpcykuaXRlcmF0b3IsCiAgICAgICAgICByID0gISFhcmd1bWVudHMubGVuZ3RoOwogICAgICAgIHJldHVybiBuZXcgSGYoZnVuY3Rpb24gKG4sIGkpIHsKICAgICAgICAgIHZhciBhID0gcUQodCwgInJldHVybiIpOwogICAgICAgICAgaWYgKGEgPT09IHZvaWQgMCkgcmV0dXJuIG4oeyBkb25lOiAhMCwgdmFsdWU6IGUgfSk7CiAgICAgICAgICB2YXIgbyA9IFZmKFN2KGEsIHQsIHIgPyBbZV0gOiBbXSkpOwogICAgICAgICAgeHYobywgbiwgaSk7CiAgICAgICAgfSk7CiAgICAgIH0sCiAgICAgIHRocm93OiBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0ID0gT3YodGhpcykuaXRlcmF0b3IsCiAgICAgICAgICByID0gISFhcmd1bWVudHMubGVuZ3RoOwogICAgICAgIHJldHVybiBuZXcgSGYoZnVuY3Rpb24gKG4sIGkpIHsKICAgICAgICAgIHZhciBhID0gcUQodCwgInRocm93Iik7CiAgICAgICAgICBpZiAoYSA9PT0gdm9pZCAwKSByZXR1cm4gaShlKTsKICAgICAgICAgIHZhciBvID0gVmYoU3YoYSwgdCwgciA/IFtlXSA6IFtdKSk7CiAgICAgICAgICB4dihvLCBuLCBpKTsKICAgICAgICB9KTsKICAgICAgfSwKICAgIH0pOwogICAga0QuZXhwb3J0cyA9IEZEOwogIH0pOwogIHZhciBXRCA9IEUoKEskZSwgQkQpID0+IHsKICAgIHZhciBqdmUgPSBxcigpLAogICAgICBZdmUgPSBDdigpLAogICAgICBLdmUgPSBucigpLAogICAgICAkdmUgPSBuYygpLAogICAgICBRdmUgPSByYSgpLAogICAgICBKdmUgPSBndCgpLAogICAgICBadmUgPSBKdmUoImFzeW5jSXRlcmF0b3IiKTsKICAgIEJELmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICB2YXIgciA9IGFyZ3VtZW50cy5sZW5ndGggPCAyID8gUXZlKGUsIFp2ZSkgOiB0OwogICAgICByZXR1cm4gciA/IEt2ZShqdmUociwgZSkpIDogbmV3IFl2ZSgkdmUoZSkpOwogICAgfTsKICB9KTsKICB2YXIgWEQgPSBFKCgkJGUsIFVEKSA9PiB7CiAgICB2YXIgZWJlID0gU2UoKTsKICAgIFVELmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICByZXR1cm4gZWJlW2VdLnByb3RvdHlwZTsKICAgIH07CiAgfSk7CiAgdmFyIGpEID0gRSgoUSRlLCBHRCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHRiZSA9IFNlKCksCiAgICAgIFZEID0gcXIoKSwKICAgICAgSEQgPSBwbigpLAogICAgICBSdiA9IG5yKCksCiAgICAgIHJiZSA9IHpyKCksCiAgICAgIG5iZSA9IHJhKCksCiAgICAgIGliZSA9IDkwMDcxOTkyNTQ3NDA5OTEsCiAgICAgIGFiZSA9IHRiZS5UeXBlRXJyb3IsCiAgICAgIGhjID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICB2YXIgdCA9IGUgPT0gMCwKICAgICAgICAgIHIgPSBlID09IDEsCiAgICAgICAgICBuID0gZSA9PSAyLAogICAgICAgICAgaSA9IGUgPT0gMzsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGEsIG8sIHMpIHsKICAgICAgICAgIFJ2KGEpOwogICAgICAgICAgdmFyIGMgPSByYmUoIlByb21pc2UiKSwKICAgICAgICAgICAgdSA9IEhEKGEubmV4dCksCiAgICAgICAgICAgIGwgPSAwLAogICAgICAgICAgICBwID0gbyAhPT0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgKHAgfHwgIXQpICYmIEhEKG8pLAogICAgICAgICAgICBuZXcgYyhmdW5jdGlvbiAoZCwgaCkgewogICAgICAgICAgICAgIHZhciBtID0gZnVuY3Rpb24gKGcsIE0pIHsKICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICB2YXIgQSA9IG5iZShhLCAicmV0dXJuIik7CiAgICAgICAgICAgICAgICAgICAgaWYgKEEpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYy5yZXNvbHZlKFZEKEEsIGEpKS50aGVuKAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZyhNKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKF8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBoKF8pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB9IGNhdGNoIChfKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGgoXyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZyhNKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB2ID0gZnVuY3Rpb24gKGcpIHsKICAgICAgICAgICAgICAgICAgbShoLCBnKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB5ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIGwgPiBpYmUgJiYgcCkKICAgICAgICAgICAgICAgICAgICAgIHRocm93IGFiZSgKICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBhbGxvd2VkIG51bWJlciBvZiBpdGVyYXRpb25zIGhhcyBiZWVuIGV4Y2VlZGVkIgogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBjLnJlc29sdmUoUnYoVkQodSwgYSkpKS50aGVuKGZ1bmN0aW9uIChnKSB7CiAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoUnYoZykuZG9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICB0ID8gKChzLmxlbmd0aCA9IGwpLCBkKHMpKSA6IGQoaSA/ICExIDogbiB8fCB2b2lkIDApOwogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgTSA9IGcudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjLnJlc29sdmUodCA/IG8oTSwgbCkgOiBvKE0pKS50aGVuKGZ1bmN0aW9uIChBKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB5KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBBCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbShkLCAhMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKHNbbCsrXSA9IEEpLCB5KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbShkLCBpIHx8IE0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKChzW2wrK10gPSBNKSwgeSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoQSkgewogICAgICAgICAgICAgICAgICAgICAgICB2KEEpOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0sIHYpOwogICAgICAgICAgICAgICAgICB9IGNhdGNoIChnKSB7CiAgICAgICAgICAgICAgICAgICAgdihnKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB5KCk7CiAgICAgICAgICAgIH0pCiAgICAgICAgICApOwogICAgICAgIH07CiAgICAgIH07CiAgICBHRC5leHBvcnRzID0gewogICAgICB0b0FycmF5OiBoYygwKSwKICAgICAgZm9yRWFjaDogaGMoMSksCiAgICAgIGV2ZXJ5OiBoYygyKSwKICAgICAgc29tZTogaGMoMyksCiAgICAgIGZpbmQ6IGhjKDQpLAogICAgfTsKICB9KTsKICB2YXIgS0QgPSBFKChKJGUsIFlEKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgb2JlID0gbW4oKSwKICAgICAgc2JlID0gT3QoKSwKICAgICAgY2JlID0gWmEoKSwKICAgICAgdWJlID0gV0QoKSwKICAgICAgbGJlID0gbmMoKSwKICAgICAgZmJlID0gcmMoKSwKICAgICAgcGJlID0gcmEoKSwKICAgICAgZGJlID0gWEQoKSwKICAgICAgaGJlID0genIoKSwKICAgICAgbWJlID0gZ3QoKSwKICAgICAgeWJlID0gQ3YoKSwKICAgICAgZ2JlID0gakQoKS50b0FycmF5LAogICAgICB2YmUgPSBtYmUoImFzeW5jSXRlcmF0b3IiKSwKICAgICAgYmJlID0gZGJlKCJBcnJheSIpLnZhbHVlczsKICAgIFlELmV4cG9ydHMgPSBmdW5jdGlvbiAodCkgewogICAgICB2YXIgciA9IHRoaXMsCiAgICAgICAgbiA9IGFyZ3VtZW50cy5sZW5ndGgsCiAgICAgICAgaSA9IG4gPiAxID8gYXJndW1lbnRzWzFdIDogdm9pZCAwLAogICAgICAgIGEgPSBuID4gMiA/IGFyZ3VtZW50c1syXSA6IHZvaWQgMDsKICAgICAgcmV0dXJuIG5ldyAoaGJlKCJQcm9taXNlIikpKGZ1bmN0aW9uIChvKSB7CiAgICAgICAgdmFyIHMgPSBzYmUodCk7CiAgICAgICAgaSAhPT0gdm9pZCAwICYmIChpID0gb2JlKGksIGEpKTsKICAgICAgICB2YXIgYyA9IHBiZShzLCB2YmUpLAogICAgICAgICAgdSA9IGMgPyB2b2lkIDAgOiBmYmUocykgfHwgYmJlLAogICAgICAgICAgbCA9IGNiZShyKSA/IG5ldyByKCkgOiBbXSwKICAgICAgICAgIHAgPSBjID8gdWJlKHMsIGMpIDogbmV3IHliZShsYmUocywgdSkpOwogICAgICAgIG8oZ2JlKHAsIGksIGwpKTsKICAgICAgfSk7CiAgICB9OwogIH0pOwogIHZhciBJdiA9IEUoKCkgPT4gewogICAgdmFyIE1iZSA9IExlKCksCiAgICAgIEFiZSA9IEtEKCk7CiAgICBNYmUoeyB0YXJnZXQ6ICJBcnJheSIsIHN0YXQ6ICEwIH0sIHsgZnJvbUFzeW5jOiBBYmUgfSk7CiAgfSk7CiAgdmFyICREID0gRSgoKSA9PiB7CiAgICBNZygpOwogIH0pOwogIHZhciBMdiA9IEUoKCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIEViZSA9IExlKCksCiAgICAgIFRiZSA9IHluKCkuZmlsdGVyUmVqZWN0LAogICAgICBfYmUgPSBXdCgpOwogICAgRWJlKAogICAgICB7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwIH0sCiAgICAgIHsKICAgICAgICBmaWx0ZXJPdXQ6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICByZXR1cm4gVGJlKHRoaXMsIHQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdm9pZCAwKTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogICAgX2JlKCJmaWx0ZXJPdXQiKTsKICB9KTsKICB2YXIgTnYgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBTYmUgPSBMZSgpLAogICAgICBPYmUgPSB5bigpLmZpbHRlclJlamVjdCwKICAgICAgeGJlID0gV3QoKTsKICAgIFNiZSgKICAgICAgeyB0YXJnZXQ6ICJBcnJheSIsIHByb3RvOiAhMCB9LAogICAgICB7CiAgICAgICAgZmlsdGVyUmVqZWN0OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIE9iZSh0aGlzLCB0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMCk7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICAgIHhiZSgiZmlsdGVyUmVqZWN0Iik7CiAgfSk7CiAgdmFyIHd2ID0gRSgoc1FlLCBKRCkgPT4gewogICAgdmFyIENiZSA9IG1uKCksCiAgICAgIFJiZSA9IGphKCksCiAgICAgIEliZSA9IE90KCksCiAgICAgIExiZSA9IEV0KCksCiAgICAgIFFEID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICB2YXIgdCA9IGUgPT0gMTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHIsIG4sIGkpIHsKICAgICAgICAgIGZvciAoCiAgICAgICAgICAgIHZhciBhID0gSWJlKHIpLCBvID0gUmJlKGEpLCBzID0gQ2JlKG4sIGkpLCBjID0gTGJlKG8pLCB1LCBsOwogICAgICAgICAgICBjLS0gPiAwOwoKICAgICAgICAgICkKICAgICAgICAgICAgaWYgKCgodSA9IG9bY10pLCAobCA9IHModSwgYywgYSkpLCBsKSkKICAgICAgICAgICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHU7CiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgIHJldHVybiBjOwogICAgICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0ID8gLTEgOiB2b2lkIDA7CiAgICAgICAgfTsKICAgICAgfTsKICAgIEpELmV4cG9ydHMgPSB7IGZpbmRMYXN0OiBRRCgwKSwgZmluZExhc3RJbmRleDogUUQoMSkgfTsKICB9KTsKICB2YXIgWkQgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBOYmUgPSBMZSgpLAogICAgICB3YmUgPSB3digpLmZpbmRMYXN0LAogICAgICBQYmUgPSBXdCgpOwogICAgTmJlKAogICAgICB7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwIH0sCiAgICAgIHsKICAgICAgICBmaW5kTGFzdDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIHJldHVybiB3YmUodGhpcywgdCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB2b2lkIDApOwogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgICBQYmUoImZpbmRMYXN0Iik7CiAgfSk7CiAgdmFyIGVxID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgRGJlID0gTGUoKSwKICAgICAgcWJlID0gd3YoKS5maW5kTGFzdEluZGV4LAogICAgICB6YmUgPSBXdCgpOwogICAgRGJlKAogICAgICB7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwIH0sCiAgICAgIHsKICAgICAgICBmaW5kTGFzdEluZGV4OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgcmV0dXJuIHFiZSh0aGlzLCB0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMCk7CiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICAgIHpiZSgiZmluZExhc3RJbmRleCIpOwogIH0pOwogIHZhciBycSA9IEUoKHBRZSwgdHEpID0+IHsKICAgIHRxLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICBmb3IgKHZhciByID0gMCwgbiA9IHQubGVuZ3RoLCBpID0gbmV3IGUobik7IG4gPiByOyApIGlbcl0gPSB0W3IrK107CiAgICAgIHJldHVybiBpOwogICAgfTsKICB9KTsKICB2YXIgaXEgPSBFKChkUWUsIG5xKSA9PiB7CiAgICB2YXIgRmJlID0gU2UoKSwKICAgICAga2JlID0gbW4oKSwKICAgICAgQmJlID0gWGUoKSwKICAgICAgV2JlID0gamEoKSwKICAgICAgVWJlID0gT3QoKSwKICAgICAgWGJlID0gQXMoKSwKICAgICAgVmJlID0gRXQoKSwKICAgICAgSGJlID0gbWkoKSwKICAgICAgR2JlID0gcnEoKSwKICAgICAgamJlID0gRmJlLkFycmF5LAogICAgICBZYmUgPSBCYmUoW10ucHVzaCk7CiAgICBucS5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4pIHsKICAgICAgZm9yICgKICAgICAgICB2YXIgaSA9IFViZShlKSwKICAgICAgICAgIGEgPSBXYmUoaSksCiAgICAgICAgICBvID0ga2JlKHQsIHIpLAogICAgICAgICAgcyA9IEhiZShudWxsKSwKICAgICAgICAgIGMgPSBWYmUoYSksCiAgICAgICAgICB1ID0gMCwKICAgICAgICAgIGwsCiAgICAgICAgICBwLAogICAgICAgICAgZDsKICAgICAgICBjID4gdTsKICAgICAgICB1KysKICAgICAgKQogICAgICAgIChkID0gYVt1XSksIChwID0gWGJlKG8oZCwgdSwgaSkpKSwgcCBpbiBzID8gWWJlKHNbcF0sIGQpIDogKHNbcF0gPSBbZF0pOwogICAgICBpZiAobiAmJiAoKGwgPSBuKGkpKSwgbCAhPT0gamJlKSkgZm9yIChwIGluIHMpIHNbcF0gPSBHYmUobCwgc1twXSk7CiAgICAgIHJldHVybiBzOwogICAgfTsKICB9KTsKICB2YXIgUHYgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBLYmUgPSBMZSgpLAogICAgICAkYmUgPSBpcSgpLAogICAgICBRYmUgPSBBZygpLAogICAgICBKYmUgPSBXdCgpOwogICAgS2JlKAogICAgICB7IHRhcmdldDogIkFycmF5IiwgcHJvdG86ICEwIH0sCiAgICAgIHsKICAgICAgICBncm91cEJ5OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgdmFyIHIgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMDsKICAgICAgICAgIHJldHVybiAkYmUodGhpcywgdCwgciwgUWJlKTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogICAgSmJlKCJncm91cEJ5Iik7CiAgfSk7CiAgdmFyIER2ID0gRSgoKSA9PiB7CiAgICB2YXIgWmJlID0gTGUoKSwKICAgICAgZU1lID0gaGkoKSwKICAgICAgYXEgPSBPYmplY3QuaXNGcm96ZW4sCiAgICAgIG9xID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICBpZiAoIWFxIHx8ICFlTWUoZSkgfHwgIWFxKGUpKSByZXR1cm4gITE7CiAgICAgICAgZm9yICh2YXIgciA9IDAsIG4gPSBlLmxlbmd0aCwgaTsgciA8IG47ICkKICAgICAgICAgIGlmICgoKGkgPSBlW3IrK10pLCAhKHR5cGVvZiBpID09ICJzdHJpbmciIHx8ICh0ICYmIHR5cGVvZiBpID4gInUiKSkpKQogICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgcmV0dXJuIG4gIT09IDA7CiAgICAgIH07CiAgICBaYmUoCiAgICAgIHsgdGFyZ2V0OiAiQXJyYXkiLCBzdGF0OiAhMCB9LAogICAgICB7CiAgICAgICAgaXNUZW1wbGF0ZU9iamVjdDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIGlmICghb3EodCwgITApKSByZXR1cm4gITE7CiAgICAgICAgICB2YXIgciA9IHQucmF3OwogICAgICAgICAgcmV0dXJuICEoci5sZW5ndGggIT09IHQubGVuZ3RoIHx8ICFvcShyLCAhMSkpOwogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgfSk7CiAgdmFyIHF2ID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgdE1lID0gdHIoKSwKICAgICAgck1lID0gV3QoKSwKICAgICAgc3EgPSBPdCgpLAogICAgICBjcSA9IEV0KCksCiAgICAgIG5NZSA9IGlyKCkuZjsKICAgIHRNZSAmJgogICAgICAhKCJsYXN0SXRlbSIgaW4gW10pICYmCiAgICAgIChuTWUoQXJyYXkucHJvdG90eXBlLCAibGFzdEl0ZW0iLCB7CiAgICAgICAgY29uZmlndXJhYmxlOiAhMCwKICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciB0ID0gc3EodGhpcyksCiAgICAgICAgICAgIHIgPSBjcSh0KTsKICAgICAgICAgIHJldHVybiByID09IDAgPyB2b2lkIDAgOiB0W3IgLSAxXTsKICAgICAgICB9LAogICAgICAgIHNldDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIHZhciByID0gc3EodGhpcyksCiAgICAgICAgICAgIG4gPSBjcShyKTsKICAgICAgICAgIHJldHVybiAocltuID09IDAgPyAwIDogbiAtIDFdID0gdCk7CiAgICAgICAgfSwKICAgICAgfSksCiAgICAgIHJNZSgibGFzdEl0ZW0iKSk7CiAgfSk7CiAgdmFyIHp2ID0gRSgoKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgaU1lID0gdHIoKSwKICAgICAgYU1lID0gV3QoKSwKICAgICAgb01lID0gT3QoKSwKICAgICAgc01lID0gRXQoKSwKICAgICAgY01lID0gaXIoKS5mOwogICAgaU1lICYmCiAgICAgICEoImxhc3RJbmRleCIgaW4gW10pICYmCiAgICAgIChjTWUoQXJyYXkucHJvdG90eXBlLCAibGFzdEluZGV4IiwgewogICAgICAgIGNvbmZpZ3VyYWJsZTogITAsCiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgdCA9IG9NZSh0aGlzKSwKICAgICAgICAgICAgciA9IHNNZSh0KTsKICAgICAgICAgIHJldHVybiByID09IDAgPyAwIDogciAtIDE7CiAgICAgICAgfSwKICAgICAgfSksCiAgICAgIGFNZSgibGFzdEluZGV4IikpOwogIH0pOwogIHZhciBmcSA9IEUoKEVRZSwgbHEpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB1TWUgPSB6cigpLAogICAgICBHZiA9IFhlKCksCiAgICAgIGxNZSA9IHBuKCksCiAgICAgIGZNZSA9IEV0KCksCiAgICAgIHBNZSA9IE90KCksCiAgICAgIGRNZSA9IGVvKCksCiAgICAgIHVxID0gdU1lKCJNYXAiKSwKICAgICAgRnYgPSB1cS5wcm90b3R5cGUsCiAgICAgIGhNZSA9IEdmKEZ2LmZvckVhY2gpLAogICAgICBtTWUgPSBHZihGdi5oYXMpLAogICAgICB5TWUgPSBHZihGdi5zZXQpLAogICAgICBnTWUgPSBHZihbXS5wdXNoKTsKICAgIGxxLmV4cG9ydHMgPSBmdW5jdGlvbiAodCkgewogICAgICB2YXIgciA9IHBNZSh0aGlzKSwKICAgICAgICBuID0gZk1lKHIpLAogICAgICAgIGkgPSBkTWUociwgMCksCiAgICAgICAgYSA9IG5ldyB1cSgpLAogICAgICAgIG8gPQogICAgICAgICAgdCAhPSBudWxsCiAgICAgICAgICAgID8gbE1lKHQpCiAgICAgICAgICAgIDogZnVuY3Rpb24gKGwpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsOwogICAgICAgICAgICAgIH0sCiAgICAgICAgcywKICAgICAgICBjLAogICAgICAgIHU7CiAgICAgIGZvciAocyA9IDA7IHMgPCBuOyBzKyspIChjID0gcltzXSksICh1ID0gbyhjKSksIG1NZShhLCB1KSB8fCB5TWUoYSwgdSwgYyk7CiAgICAgIHJldHVybiAoCiAgICAgICAgaE1lKGEsIGZ1bmN0aW9uIChsKSB7CiAgICAgICAgICBnTWUoaSwgbCk7CiAgICAgICAgfSksCiAgICAgICAgaQogICAgICApOwogICAgfTsKICB9KTsKICB2YXIga3YgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB2TWUgPSBMZSgpLAogICAgICBiTWUgPSBXdCgpLAogICAgICBNTWUgPSBmcSgpOwogICAgdk1lKHsgdGFyZ2V0OiAiQXJyYXkiLCBwcm90bzogITAgfSwgeyB1bmlxdWVCeTogTU1lIH0pOwogICAgYk1lKCJ1bmlxdWVCeSIpOwogIH0pOwogIHZhciBCdiA9IEUoKFNRZSwgcHEpID0+IHsKICAgIHZhciBBTWUgPSBLUCgpOwogICAgQTMoKTsKICAgIE9EKCk7CiAgICBJdigpOwogICAgJEQoKTsKICAgIEx2KCk7CiAgICBOdigpOwogICAgWkQoKTsKICAgIGVxKCk7CiAgICBQdigpOwogICAgRHYoKTsKICAgIHF2KCk7CiAgICB6digpOwogICAga3YoKTsKICAgIHBxLmV4cG9ydHMgPSBBTWU7CiAgfSk7CiAgdmFyIElxID0gRSgoR3YpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShHdiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsKICAgIGZ1bmN0aW9uIEVNZShlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgaW4gdCkKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgeyBlbnVtZXJhYmxlOiAhMCwgZ2V0OiB0W3JdIH0pOwogICAgfQogICAgRU1lKEd2LCB7CiAgICAgIHN0ckZyb21VODogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBScTsKICAgICAgfSwKICAgICAgdW56aXA6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gRE1lOwogICAgICB9LAogICAgfSk7CiAgICB2YXIgZHEgPSB7fSwKICAgICAgVE1lID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgICBsZXQgYSA9IG5ldyBXb3JrZXIoCiAgICAgICAgICBkcVt0XSB8fAogICAgICAgICAgICAoZHFbdF0gPSBVUkwuY3JlYXRlT2JqZWN0VVJMKAogICAgICAgICAgICAgIG5ldyBCbG9iKAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICBlICsKICAgICAgICAgICAgICAgICAgICAnO2FkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbihlKXtlPWUuZXJyb3I7cG9zdE1lc3NhZ2UoeyRlJDpbZS5tZXNzYWdlLGUuY29kZSxlLnN0YWNrXX0pfSknLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIHsgdHlwZTogInRleHQvamF2YXNjcmlwdCIgfQogICAgICAgICAgICAgICkKICAgICAgICAgICAgKSkKICAgICAgICApOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAoYS5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAobykgewogICAgICAgICAgICBsZXQgcyA9IG8uZGF0YSwKICAgICAgICAgICAgICBjID0gcy4kZSQ7CiAgICAgICAgICAgIGlmIChjKSB7CiAgICAgICAgICAgICAgbGV0IHUgPSBuZXcgRXJyb3IoY1swXSk7CiAgICAgICAgICAgICAgKHUuY29kZSA9IGNbMV0pLCAodS5zdGFjayA9IGNbMl0pLCBpKHUsIG51bGwpOwogICAgICAgICAgICB9IGVsc2UgaShudWxsLCBzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgYS5wb3N0TWVzc2FnZShyLCBuKSwKICAgICAgICAgIGEKICAgICAgICApOwogICAgICB9LAogICAgICBTciA9IFVpbnQ4QXJyYXksCiAgICAgIHNhID0gVWludDE2QXJyYXksCiAgICAgIFd2ID0gVWludDMyQXJyYXksCiAgICAgIFV2ID0gbmV3IFNyKFsKICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAxLCAxLCAxLCAyLCAyLCAyLCAyLCAzLCAzLCAzLCAzLCA0LCA0LCA0LCA0LAogICAgICAgIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsCiAgICAgIF0pLAogICAgICBYdiA9IG5ldyBTcihbCiAgICAgICAgMCwgMCwgMCwgMCwgMSwgMSwgMiwgMiwgMywgMywgNCwgNCwgNSwgNSwgNiwgNiwgNywgNywgOCwgOCwgOSwgOSwgMTAsCiAgICAgICAgMTAsIDExLCAxMSwgMTIsIDEyLCAxMywgMTMsIDAsIDAsCiAgICAgIF0pLAogICAgICBncSA9IG5ldyBTcihbCiAgICAgICAgMTYsIDE3LCAxOCwgMCwgOCwgNywgOSwgNiwgMTAsIDUsIDExLCA0LCAxMiwgMywgMTMsIDIsIDE0LCAxLCAxNSwKICAgICAgXSksCiAgICAgIHZxID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICBsZXQgciA9IG5ldyBzYSgzMSk7CiAgICAgICAgZm9yICh2YXIgbiA9IDA7IG4gPCAzMTsgKytuKSByW25dID0gdCArPSAxIDw8IGVbbiAtIDFdOwogICAgICAgIGxldCBpID0gbmV3IFd2KHJbMzBdKTsKICAgICAgICBmb3IgKG4gPSAxOyBuIDwgMzA7ICsrbikKICAgICAgICAgIGZvciAobGV0IGEgPSByW25dOyBhIDwgcltuICsgMV07ICsrYSkgaVthXSA9ICgoYSAtIHJbbl0pIDw8IDUpIHwgbjsKICAgICAgICByZXR1cm4gW3IsIGldOwogICAgICB9LAogICAgICBicSA9IHZxKFV2LCAyKSwKICAgICAgVnYgPSBicVswXSwKICAgICAgX01lID0gYnFbMV07CiAgICAoVnZbMjhdID0gMjU4KSwgKF9NZVsyNThdID0gMjgpOwogICAgdmFyIFNNZSA9IHZxKFh2LCAwKSwKICAgICAgTXEgPSBTTWVbMF0sCiAgICAgICRmID0gbmV3IHNhKDMyNzY4KTsKICAgIGZvciAobHQgPSAwOyBsdCA8IDMyNzY4OyArK2x0KSB7CiAgICAgIGxldCBlID0gKCg0MzY5MCAmIGx0KSA+Pj4gMSkgfCAoKDIxODQ1ICYgbHQpIDw8IDEpOwogICAgICAoZSA9ICgoNTI0MjggJiBlKSA+Pj4gMikgfCAoKDEzMTA3ICYgZSkgPDwgMikpLAogICAgICAgIChlID0gKCg2MTY4MCAmIGUpID4+PiA0KSB8ICgoMzg1NSAmIGUpIDw8IDQpKSwKICAgICAgICAoJGZbbHRdID0gKCgoNjUyODAgJiBlKSA+Pj4gOCkgfCAoKDI1NSAmIGUpIDw8IDgpKSA+Pj4gMSk7CiAgICB9CiAgICB2YXIgbHQsCiAgICAgIHpzID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICBsZXQgbiA9IGUubGVuZ3RoLAogICAgICAgICAgaSA9IDAsCiAgICAgICAgICBhID0gbmV3IHNhKHQpOwogICAgICAgIGZvciAoOyBpIDwgbjsgKytpKSBlW2ldICYmICsrYVtlW2ldIC0gMV07CiAgICAgICAgbGV0IG8gPSBuZXcgc2EodCk7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IHQ7ICsraSkgb1tpXSA9IChvW2kgLSAxXSArIGFbaSAtIDFdKSA8PCAxOwogICAgICAgIGxldCBzOwogICAgICAgIGlmIChyKSB7CiAgICAgICAgICBzID0gbmV3IHNhKDEgPDwgdCk7CiAgICAgICAgICBsZXQgYyA9IDE1IC0gdDsKICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpCiAgICAgICAgICAgIGlmIChlW2ldKSB7CiAgICAgICAgICAgICAgbGV0IHUgPSAoaSA8PCA0KSB8IGVbaV0sCiAgICAgICAgICAgICAgICBsID0gdCAtIGVbaV0sCiAgICAgICAgICAgICAgICBwID0gb1tlW2ldIC0gMV0rKyA8PCBsOwogICAgICAgICAgICAgIGZvciAobGV0IGQgPSBwIHwgKCgxIDw8IGwpIC0gMSk7IHAgPD0gZDsgKytwKSBzWyRmW3BdID4+PiBjXSA9IHU7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UKICAgICAgICAgIGZvciAocyA9IG5ldyBzYShuKSwgaSA9IDA7IGkgPCBuOyArK2kpCiAgICAgICAgICAgIGVbaV0gJiYgKHNbaV0gPSAkZltvW2VbaV0gLSAxXSsrXSA+Pj4gKDE1IC0gZVtpXSkpOwogICAgICAgIHJldHVybiBzOwogICAgICB9LAogICAgICBtYyA9IG5ldyBTcigyODgpOwogICAgZm9yIChsdCA9IDA7IGx0IDwgMTQ0OyArK2x0KSBtY1tsdF0gPSA4OwogICAgZm9yIChsdCA9IDE0NDsgbHQgPCAyNTY7ICsrbHQpIG1jW2x0XSA9IDk7CiAgICBmb3IgKGx0ID0gMjU2OyBsdCA8IDI4MDsgKytsdCkgbWNbbHRdID0gNzsKICAgIGZvciAobHQgPSAyODA7IGx0IDwgMjg4OyArK2x0KSBtY1tsdF0gPSA4OwogICAgdmFyIEFxID0gbmV3IFNyKDMyKTsKICAgIGZvciAobHQgPSAwOyBsdCA8IDMyOyArK2x0KSBBcVtsdF0gPSA1OwogICAgdmFyIEVxID0genMobWMsIDksIDEpLAogICAgICBUcSA9IHpzKEFxLCA1LCAxKSwKICAgICAgWWYgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIGxldCB0ID0gZVswXTsKICAgICAgICBmb3IgKGxldCByID0gMTsgciA8IGUubGVuZ3RoOyArK3IpIGVbcl0gPiB0ICYmICh0ID0gZVtyXSk7CiAgICAgICAgcmV0dXJuIHQ7CiAgICAgIH0sCiAgICAgIEpyID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICBsZXQgbiA9ICh0IC8gOCkgfCAwOwogICAgICAgIHJldHVybiAoKGVbbl0gfCAoZVtuICsgMV0gPDwgOCkpID4+ICg3ICYgdCkpICYgcjsKICAgICAgfSwKICAgICAgS2YgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgIGxldCByID0gKHQgLyA4KSB8IDA7CiAgICAgICAgcmV0dXJuIChlW3JdIHwgKGVbciArIDFdIDw8IDgpIHwgKGVbciArIDJdIDw8IDE2KSkgPj4gKDcgJiB0KTsKICAgICAgfSwKICAgICAgX3EgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHJldHVybiAoKGUgKyA3KSAvIDgpIHwgMDsKICAgICAgfSwKICAgICAgUWYgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICh0ID09IG51bGwgfHwgdCA8IDApICYmICh0ID0gMCksCiAgICAgICAgICAociA9PSBudWxsIHx8IHIgPiBlLmxlbmd0aCkgJiYgKHIgPSBlLmxlbmd0aCk7CiAgICAgICAgbGV0IG4gPSBuZXcgKAogICAgICAgICAgZS5CWVRFU19QRVJfRUxFTUVOVCA9PT0gMiA/IHNhIDogZS5CWVRFU19QRVJfRUxFTUVOVCA9PT0gNCA/IFd2IDogU3IKICAgICAgICApKHIgLSB0KTsKICAgICAgICByZXR1cm4gbi5zZXQoZS5zdWJhcnJheSh0LCByKSksIG47CiAgICAgIH0sCiAgICAgIFNxID0gWwogICAgICAgICJ1bmV4cGVjdGVkIEVPRiIsCiAgICAgICAgImludmFsaWQgYmxvY2sgdHlwZSIsCiAgICAgICAgImludmFsaWQgbGVuZ3RoL2xpdGVyYWwiLAogICAgICAgICJpbnZhbGlkIGRpc3RhbmNlIiwKICAgICAgICAic3RyZWFtIGZpbmlzaGVkIiwKICAgICAgICAibm8gc3RyZWFtIGhhbmRsZXIiLAogICAgICAgICwKICAgICAgICAibm8gY2FsbGJhY2siLAogICAgICAgICJpbnZhbGlkIFVURi04IGRhdGEiLAogICAgICAgICJleHRyYSBmaWVsZCB0b28gbG9uZyIsCiAgICAgICAgImRhdGUgbm90IGluIHJhbmdlIDE5ODAtMjA5OSIsCiAgICAgICAgImZpbGVuYW1lIHRvbyBsb25nIiwKICAgICAgICAic3RyZWFtIGZpbmlzaGluZyIsCiAgICAgICAgImludmFsaWQgemlwIGRhdGEiLAogICAgICBdLAogICAgICBfciA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgbGV0IG4gPSBuZXcgRXJyb3IodCB8fCBTcVtlXSk7CiAgICAgICAgaWYgKAogICAgICAgICAgKChuLmNvZGUgPSBlKSwKICAgICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlICYmIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKG4sIF9yKSwKICAgICAgICAgICFyKQogICAgICAgICkKICAgICAgICAgIHRocm93IG47CiAgICAgICAgcmV0dXJuIG47CiAgICAgIH0sCiAgICAgIE9xID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICBsZXQgbiA9IGUubGVuZ3RoOwogICAgICAgIGlmICghbiB8fCAociAmJiByLmYgJiYgIXIubCkpIHJldHVybiB0IHx8IG5ldyBTcigwKTsKICAgICAgICBsZXQgaSA9ICF0IHx8IHIsCiAgICAgICAgICBhID0gIXIgfHwgci5pOwogICAgICAgIHIgfHwgKHIgPSB7fSksIHQgfHwgKHQgPSBuZXcgU3IoMyAqIG4pKTsKICAgICAgICBsZXQgbyA9IGZ1bmN0aW9uIChfKSB7CiAgICAgICAgICAgIGxldCBDID0gdC5sZW5ndGg7CiAgICAgICAgICAgIGlmIChfID4gQykgewogICAgICAgICAgICAgIGxldCBSID0gbmV3IFNyKE1hdGgubWF4KDIgKiBDLCBfKSk7CiAgICAgICAgICAgICAgUi5zZXQodCksICh0ID0gUik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBzID0gci5mIHx8IDAsCiAgICAgICAgICBjID0gci5wIHx8IDAsCiAgICAgICAgICB1ID0gci5iIHx8IDAsCiAgICAgICAgICBsID0gci5sLAogICAgICAgICAgcCA9IHIuZCwKICAgICAgICAgIGQgPSByLm0sCiAgICAgICAgICBoID0gci5uLAogICAgICAgICAgbSA9IDggKiBuOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmICghbCkgewogICAgICAgICAgICBzID0gSnIoZSwgYywgMSk7CiAgICAgICAgICAgIGxldCBMID0gSnIoZSwgYyArIDEsIDMpOwogICAgICAgICAgICBpZiAoKChjICs9IDMpLCAhTCkpIHsKICAgICAgICAgICAgICBsZXQgTiA9IGVbKHkgPSBfcShjKSArIDQpIC0gNF0gfCAoZVt5IC0gM10gPDwgOCksCiAgICAgICAgICAgICAgICBXID0geSArIE47CiAgICAgICAgICAgICAgaWYgKFcgPiBuKSB7CiAgICAgICAgICAgICAgICBhICYmIF9yKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGkgJiYgbyh1ICsgTiksCiAgICAgICAgICAgICAgICB0LnNldChlLnN1YmFycmF5KHksIFcpLCB1KSwKICAgICAgICAgICAgICAgIChyLmIgPSB1ICs9IE4pLAogICAgICAgICAgICAgICAgKHIucCA9IGMgPSA4ICogVyksCiAgICAgICAgICAgICAgICAoci5mID0gcyk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKEwgPT09IDEpIChsID0gRXEpLCAocCA9IFRxKSwgKGQgPSA5KSwgKGggPSA1KTsKICAgICAgICAgICAgZWxzZSBpZiAoTCA9PT0gMikgewogICAgICAgICAgICAgIGxldCBOID0gSnIoZSwgYywgMzEpICsgMjU3LAogICAgICAgICAgICAgICAgVyA9IEpyKGUsIGMgKyAxMCwgMTUpICsgNCwKICAgICAgICAgICAgICAgIGsgPSBOICsgSnIoZSwgYyArIDUsIDMxKSArIDE7CiAgICAgICAgICAgICAgYyArPSAxNDsKICAgICAgICAgICAgICBsZXQgcSA9IG5ldyBTcihrKSwKICAgICAgICAgICAgICAgIEggPSBuZXcgU3IoMTkpOwogICAgICAgICAgICAgIGZvciAodmFyIHYgPSAwOyB2IDwgVzsgKyt2KSBIW2dxW3ZdXSA9IEpyKGUsIGMgKyAzICogdiwgNyk7CiAgICAgICAgICAgICAgYyArPSAzICogVzsKICAgICAgICAgICAgICBsZXQgWCA9IFlmKEgpLAogICAgICAgICAgICAgICAgVSA9ICgxIDw8IFgpIC0gMSwKICAgICAgICAgICAgICAgIHRlID0genMoSCwgWCwgMSk7CiAgICAgICAgICAgICAgZm9yICh2ID0gMDsgdiA8IGs7ICkgewogICAgICAgICAgICAgICAgbGV0IHllID0gdGVbSnIoZSwgYywgVSldOwogICAgICAgICAgICAgICAgdmFyIHk7CiAgICAgICAgICAgICAgICBpZiAoKChjICs9IDE1ICYgeWUpLCAoeSA9IHllID4+PiA0KSA8IDE2KSkgcVt2KytdID0geTsKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICB2YXIgZyA9IDA7CiAgICAgICAgICAgICAgICAgIGxldCBGID0gMDsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICB5ID09PSAxNgogICAgICAgICAgICAgICAgICAgICAgPyAoKEYgPSAzICsgSnIoZSwgYywgMykpLCAoYyArPSAyKSwgKGcgPSBxW3YgLSAxXSkpCiAgICAgICAgICAgICAgICAgICAgICA6IHkgPT09IDE3CiAgICAgICAgICAgICAgICAgICAgICA/ICgoRiA9IDMgKyBKcihlLCBjLCA3KSksIChjICs9IDMpKQogICAgICAgICAgICAgICAgICAgICAgOiB5ID09PSAxOCAmJiAoKEYgPSAxMSArIEpyKGUsIGMsIDEyNykpLCAoYyArPSA3KSk7CiAgICAgICAgICAgICAgICAgICAgRi0tOwoKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHFbdisrXSA9IGc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGxldCBvZSA9IHEuc3ViYXJyYXkoMCwgTik7CiAgICAgICAgICAgICAgdmFyIE0gPSBxLnN1YmFycmF5KE4pOwogICAgICAgICAgICAgIChkID0gWWYob2UpKSwgKGggPSBZZihNKSksIChsID0genMob2UsIGQsIDEpKSwgKHAgPSB6cyhNLCBoLCAxKSk7CiAgICAgICAgICAgIH0gZWxzZSBfcigxKTsKICAgICAgICAgICAgaWYgKGMgPiBtKSB7CiAgICAgICAgICAgICAgYSAmJiBfcigwKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaSAmJiBvKHUgKyAxMzEwNzIpOwogICAgICAgICAgbGV0IF8gPSAoMSA8PCBkKSAtIDEsCiAgICAgICAgICAgIEMgPSAoMSA8PCBoKSAtIDEsCiAgICAgICAgICAgIFIgPSBjOwogICAgICAgICAgZm9yICg7IDsgUiA9IGMpIHsKICAgICAgICAgICAgbGV0IEwgPSAoZyA9IGxbS2YoZSwgYykgJiBfXSkgPj4+IDQ7CiAgICAgICAgICAgIGlmICgoKGMgKz0gMTUgJiBnKSwgYyA+IG0pKSB7CiAgICAgICAgICAgICAgYSAmJiBfcigwKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoKGcgfHwgX3IoMiksIEwgPCAyNTYpKSB0W3UrK10gPSBMOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBpZiAoTCA9PT0gMjU2KSB7CiAgICAgICAgICAgICAgICAoUiA9IGMpLCAobCA9IG51bGwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxldCBOID0gTCAtIDI1NDsKICAgICAgICAgICAgICAgIGlmIChMID4gMjY0KSB7CiAgICAgICAgICAgICAgICAgIHZhciBBID0gVXZbKHYgPSBMIC0gMjU3KV07CiAgICAgICAgICAgICAgICAgIChOID0gSnIoZSwgYywgKDEgPDwgQSkgLSAxKSArIFZ2W3ZdKSwgKGMgKz0gQSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZXQgVyA9IHBbS2YoZSwgYykgJiBDXSwKICAgICAgICAgICAgICAgICAgayA9IFcgPj4+IDQ7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgIChXIHx8IF9yKDMpLAogICAgICAgICAgICAgICAgICAoYyArPSAxNSAmIFcpLAogICAgICAgICAgICAgICAgICAoTSA9IE1xW2tdKSwKICAgICAgICAgICAgICAgICAgayA+IDMgJiYKICAgICAgICAgICAgICAgICAgICAoKEEgPSBYdltrXSksIChNICs9IEtmKGUsIGMpICYgKCgxIDw8IEEpIC0gMSkpLCAoYyArPSBBKSksCiAgICAgICAgICAgICAgICAgIGMgPiBtKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGEgJiYgX3IoMCk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaSAmJiBvKHUgKyAxMzEwNzIpOwogICAgICAgICAgICAgICAgbGV0IHEgPSB1ICsgTjsKICAgICAgICAgICAgICAgIGZvciAoOyB1IDwgcTsgdSArPSA0KQogICAgICAgICAgICAgICAgICAodFt1XSA9IHRbdSAtIE1dKSwKICAgICAgICAgICAgICAgICAgICAodFt1ICsgMV0gPSB0W3UgKyAxIC0gTV0pLAogICAgICAgICAgICAgICAgICAgICh0W3UgKyAyXSA9IHRbdSArIDIgLSBNXSksCiAgICAgICAgICAgICAgICAgICAgKHRbdSArIDNdID0gdFt1ICsgMyAtIE1dKTsKICAgICAgICAgICAgICAgIHUgPSBxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgKHIubCA9IGwpLAogICAgICAgICAgICAoci5wID0gUiksCiAgICAgICAgICAgIChyLmIgPSB1KSwKICAgICAgICAgICAgKHIuZiA9IHMpLAogICAgICAgICAgICBsICYmICgocyA9IDEpLCAoci5tID0gZCksIChyLmQgPSBwKSwgKHIubiA9IGgpKTsKICAgICAgICB9IHdoaWxlICghcyk7CiAgICAgICAgcmV0dXJuIHUgPT09IHQubGVuZ3RoID8gdCA6IFFmKHQsIDAsIHUpOwogICAgICB9LAogICAgICBPTWUgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgIGxldCByID0ge307CiAgICAgICAgZm9yICh2YXIgbiBpbiBlKSByW25dID0gZVtuXTsKICAgICAgICBmb3IgKHZhciBuIGluIHQpIHJbbl0gPSB0W25dOwogICAgICAgIHJldHVybiByOwogICAgICB9LAogICAgICBocSA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgbGV0IG4gPSBlKCksCiAgICAgICAgICBpID0gZS50b1N0cmluZygpLAogICAgICAgICAgYSA9IGkKICAgICAgICAgICAgLnNsaWNlKGkuaW5kZXhPZigiWyIpICsgMSwgaS5sYXN0SW5kZXhPZigiXSIpKQogICAgICAgICAgICAucmVwbGFjZSgvXHMrL2csICIiKQogICAgICAgICAgICAuc3BsaXQoIiwiKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG4ubGVuZ3RoOyArK28pIHsKICAgICAgICAgIGxldCBzID0gbltvXSwKICAgICAgICAgICAgYyA9IGFbb107CiAgICAgICAgICBpZiAodHlwZW9mIHMgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0ICs9ICI7IiArIGMgKyAiPSI7CiAgICAgICAgICAgIGxldCB1ID0gcy50b1N0cmluZygpOwogICAgICAgICAgICBpZiAocy5wcm90b3R5cGUpCiAgICAgICAgICAgICAgaWYgKHUuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpICE9PSAtMSkgewogICAgICAgICAgICAgICAgbGV0IGwgPSB1LmluZGV4T2YoIiAiLCA4KSArIDE7CiAgICAgICAgICAgICAgICB0ICs9IHUuc2xpY2UobCwgdS5pbmRleE9mKCIoIiwgbCkpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0ICs9IHU7CiAgICAgICAgICAgICAgICBmb3IgKGxldCBsIGluIHMucHJvdG90eXBlKQogICAgICAgICAgICAgICAgICB0ICs9CiAgICAgICAgICAgICAgICAgICAgIjsiICsKICAgICAgICAgICAgICAgICAgICBjICsKICAgICAgICAgICAgICAgICAgICAiLnByb3RvdHlwZS4iICsKICAgICAgICAgICAgICAgICAgICBsICsKICAgICAgICAgICAgICAgICAgICAiPSIgKwogICAgICAgICAgICAgICAgICAgIHMucHJvdG90eXBlW2xdLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHQgKz0gdTsKICAgICAgICAgIH0gZWxzZSByW2NdID0gczsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFt0LCByXTsKICAgICAgfSwKICAgICAgamYgPSBbXSwKICAgICAgeE1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICBsZXQgdCA9IFtdOwogICAgICAgIGZvciAobGV0IHIgaW4gZSkKICAgICAgICAgIGVbcl0uYnVmZmVyICYmIHQucHVzaCgoZVtyXSA9IG5ldyBlW3JdLmNvbnN0cnVjdG9yKGVbcl0pKS5idWZmZXIpOwogICAgICAgIHJldHVybiB0OwogICAgICB9LAogICAgICBDTWUgPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgIGxldCBpOwogICAgICAgIGlmICghamZbcl0pIHsKICAgICAgICAgIGxldCBvID0gIiIsCiAgICAgICAgICAgIHMgPSB7fSwKICAgICAgICAgICAgYyA9IGUubGVuZ3RoIC0gMTsKICAgICAgICAgIGZvciAobGV0IHUgPSAwOyB1IDwgYzsgKyt1KQogICAgICAgICAgICAoaSA9IGhxKGVbdV0sIG8sIHMpKSwgKG8gPSBpWzBdKSwgKHMgPSBpWzFdKTsKICAgICAgICAgIGpmW3JdID0gaHEoZVtjXSwgbywgcyk7CiAgICAgICAgfQogICAgICAgIGxldCBhID0gT01lKHt9LCBqZltyXVsxXSk7CiAgICAgICAgcmV0dXJuIFRNZSgKICAgICAgICAgIGpmW3JdWzBdICsKICAgICAgICAgICAgIjtvbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7Zm9yKHZhciBreiBpbiBlLmRhdGEpc2VsZltrel09ZS5kYXRhW2t6XTtvbm1lc3NhZ2U9IiArCiAgICAgICAgICAgIHQudG9TdHJpbmcoKSArCiAgICAgICAgICAgICJ9IiwKICAgICAgICAgIHIsCiAgICAgICAgICBhLAogICAgICAgICAgeE1lKGEpLAogICAgICAgICAgbgogICAgICAgICk7CiAgICAgIH0sCiAgICAgIFJNZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgU3IsCiAgICAgICAgICBzYSwKICAgICAgICAgIFd2LAogICAgICAgICAgVXYsCiAgICAgICAgICBYdiwKICAgICAgICAgIGdxLAogICAgICAgICAgVnYsCiAgICAgICAgICBNcSwKICAgICAgICAgIEVxLAogICAgICAgICAgVHEsCiAgICAgICAgICAkZiwKICAgICAgICAgIFNxLAogICAgICAgICAgenMsCiAgICAgICAgICBZZiwKICAgICAgICAgIEpyLAogICAgICAgICAgS2YsCiAgICAgICAgICBfcSwKICAgICAgICAgIFFmLAogICAgICAgICAgX3IsCiAgICAgICAgICBPcSwKICAgICAgICAgIEh2LAogICAgICAgICAgeHEsCiAgICAgICAgICBDcSwKICAgICAgICBdOwogICAgICB9LAogICAgICB4cSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIHBvc3RNZXNzYWdlKGUsIFtlLmJ1ZmZlcl0pOwogICAgICB9LAogICAgICBDcSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIGUgJiYgZS5zaXplICYmIG5ldyBTcihlLnNpemUpOwogICAgICB9LAogICAgICBJTWUgPSBmdW5jdGlvbiAoZSwgdCwgciwgbiwgaSwgYSkgewogICAgICAgIHZhciBvID0gQ01lKHIsIG4sIGksIGZ1bmN0aW9uIChzLCBjKSB7CiAgICAgICAgICBvLnRlcm1pbmF0ZSgpLCBhKHMsIGMpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBvLnBvc3RNZXNzYWdlKFtlLCB0XSwgdC5jb25zdW1lID8gW2UuYnVmZmVyXSA6IFtdKSwKICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgby50ZXJtaW5hdGUoKTsKICAgICAgICAgIH0KICAgICAgICApOwogICAgICB9LAogICAgICBvYSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgcmV0dXJuIGVbdF0gfCAoZVt0ICsgMV0gPDwgOCk7CiAgICAgIH0sCiAgICAgIEVpID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgKGVbdF0gfCAoZVt0ICsgMV0gPDwgOCkgfCAoZVt0ICsgMl0gPDwgMTYpIHwgKGVbdCArIDNdIDw8IDI0KSkgPj4+IDAKICAgICAgICApOwogICAgICB9OwogICAgZnVuY3Rpb24gTE1lKGUsIHQsIHIpIHsKICAgICAgcmV0dXJuICgKICAgICAgICByIHx8ICgociA9IHQpLCAodCA9IHt9KSksCiAgICAgICAgdHlwZW9mIHIgIT0gImZ1bmN0aW9uIiAmJiBfcig3KSwKICAgICAgICBJTWUoCiAgICAgICAgICBlLAogICAgICAgICAgdCwKICAgICAgICAgIFtSTWVdLAogICAgICAgICAgZnVuY3Rpb24gKG4pIHsKICAgICAgICAgICAgcmV0dXJuIHhxKEh2KG4uZGF0YVswXSwgQ3Eobi5kYXRhWzFdKSkpOwogICAgICAgICAgfSwKICAgICAgICAgIDEsCiAgICAgICAgICByCiAgICAgICAgKQogICAgICApOwogICAgfQogICAgZnVuY3Rpb24gSHYoZSwgdCkgewogICAgICByZXR1cm4gT3EoZSwgdCk7CiAgICB9CiAgICB2YXIgbXEgPSB0eXBlb2YgVGV4dERlY29kZXIgPCAidSIgJiYgbmV3IFRleHREZWNvZGVyKCksCiAgICAgIE5NZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgZm9yIChsZXQgdCA9ICIiLCByID0gMDsgOyApIHsKICAgICAgICAgIGxldCBuID0gZVtyKytdLAogICAgICAgICAgICBpID0gKG4gPiAxMjcpICsgKG4gPiAyMjMpICsgKG4gPiAyMzkpOwogICAgICAgICAgaWYgKHIgKyBpID4gZS5sZW5ndGgpIHJldHVybiBbdCwgUWYoZSwgciAtIDEpXTsKICAgICAgICAgIGkKICAgICAgICAgICAgPyBpID09PSAzCiAgICAgICAgICAgICAgPyAoKG4gPQogICAgICAgICAgICAgICAgICAoKCgxNSAmIG4pIDw8IDE4KSB8CiAgICAgICAgICAgICAgICAgICAgKCg2MyAmIGVbcisrXSkgPDwgMTIpIHwKICAgICAgICAgICAgICAgICAgICAoKDYzICYgZVtyKytdKSA8PCA2KSB8CiAgICAgICAgICAgICAgICAgICAgKDYzICYgZVtyKytdKSkgLQogICAgICAgICAgICAgICAgICA2NTUzNiksCiAgICAgICAgICAgICAgICAodCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKAogICAgICAgICAgICAgICAgICA1NTI5NiB8IChuID4+IDEwKSwKICAgICAgICAgICAgICAgICAgNTYzMjAgfCAoMTAyMyAmIG4pCiAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICA6ICh0ICs9CiAgICAgICAgICAgICAgICAgIDEgJiBpCiAgICAgICAgICAgICAgICAgICAgPyBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoMzEgJiBuKSA8PCA2KSB8ICg2MyAmIGVbcisrXSkpCiAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmcuZnJvbUNoYXJDb2RlKAogICAgICAgICAgICAgICAgICAgICAgICAoKDE1ICYgbikgPDwgMTIpIHwgKCg2MyAmIGVbcisrXSkgPDwgNikgfCAoNjMgJiBlW3IrK10pCiAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICA6ICh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUobikpOwogICAgICAgIH0KICAgICAgfTsKICAgIGZ1bmN0aW9uIFJxKGUsIHQpIHsKICAgICAgaWYgKHQpIHsKICAgICAgICBsZXQgciA9ICIiOwogICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgZS5sZW5ndGg7IG4gKz0gMTYzODQpCiAgICAgICAgICByICs9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgZS5zdWJhcnJheShuLCBuICsgMTYzODQpKTsKICAgICAgICByZXR1cm4gcjsKICAgICAgfQogICAgICBpZiAobXEpIHJldHVybiBtcS5kZWNvZGUoZSk7CiAgICAgIHsKICAgICAgICBsZXQgciA9IE5NZShlKSwKICAgICAgICAgIG4gPSByWzBdOwogICAgICAgIHJldHVybiByWzFdLmxlbmd0aCAmJiBfcig4KSwgbjsKICAgICAgfQogICAgfQogICAgdmFyIHdNZSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgcmV0dXJuIHQgKyAzMCArIG9hKGUsIHQgKyAyNikgKyBvYShlLCB0ICsgMjgpOwogICAgICB9LAogICAgICBQTWUgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgIGxldCBuID0gb2EoZSwgdCArIDI4KSwKICAgICAgICAgIGkgPSBScShlLnN1YmFycmF5KHQgKyA0NiwgdCArIDQ2ICsgbiksICEoMjA0OCAmIG9hKGUsIHQgKyA4KSkpLAogICAgICAgICAgYSA9IHQgKyA0NiArIG4sCiAgICAgICAgICBvID0gRWkoZSwgdCArIDIwKSwKICAgICAgICAgIHMgPQogICAgICAgICAgICByICYmIG8gPT09IDQyOTQ5NjcyOTUKICAgICAgICAgICAgICA/IHo2NGUoZSwgYSkKICAgICAgICAgICAgICA6IFtvLCBFaShlLCB0ICsgMjQpLCBFaShlLCB0ICsgNDIpXSwKICAgICAgICAgIGMgPSBzWzBdLAogICAgICAgICAgdSA9IHNbMV0sCiAgICAgICAgICBsID0gc1syXTsKICAgICAgICByZXR1cm4gW29hKGUsIHQgKyAxMCksIGMsIHUsIGksIGEgKyBvYShlLCB0ICsgMzApICsgb2EoZSwgdCArIDMyKSwgbF07CiAgICAgIH0sCiAgICAgIHlxID0KICAgICAgICB0eXBlb2YgcXVldWVNaWNyb3Rhc2sgPT0gImZ1bmN0aW9uIgogICAgICAgICAgPyBxdWV1ZU1pY3JvdGFzawogICAgICAgICAgOiB0eXBlb2Ygc2V0VGltZW91dCA9PSAiZnVuY3Rpb24iCiAgICAgICAgICA/IHNldFRpbWVvdXQKICAgICAgICAgIDogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICBlKCk7CiAgICAgICAgICAgIH07CiAgICBmdW5jdGlvbiBETWUoZSwgdCwgcikgewogICAgICByIHx8ICgociA9IHQpLCAodCA9IHt9KSksIHR5cGVvZiByICE9ICJmdW5jdGlvbiIgJiYgX3IoNyk7CiAgICAgIGxldCBuID0gW10sCiAgICAgICAgaSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGZvciAobGV0IHUgPSAwOyB1IDwgbi5sZW5ndGg7ICsrdSkgblt1XSgpOwogICAgICAgIH0sCiAgICAgICAgYSA9IHt9LAogICAgICAgIG8gPSBmdW5jdGlvbiAodSwgbCkgewogICAgICAgICAgeXEoZnVuY3Rpb24gKCkgewogICAgICAgICAgICByKHUsIGwpOwogICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgeXEoZnVuY3Rpb24gKCkgewogICAgICAgIG8gPSByOwogICAgICB9KTsKICAgICAgbGV0IHMgPSBlLmxlbmd0aCAtIDIyOwogICAgICBmb3IgKDsgRWkoZSwgcykgIT09IDEwMTAxMDI1NjsgLS1zKQogICAgICAgIGlmICghcyB8fCBlLmxlbmd0aCAtIHMgPiA2NTU1OCkgcmV0dXJuIG8oX3IoMTMsIDAsIDEpLCBudWxsKSwgaTsKICAgICAgbGV0IGMgPSBvYShlLCBzICsgOCk7CiAgICAgIGlmIChjKSB7CiAgICAgICAgbGV0IHUgPSBjLAogICAgICAgICAgbCA9IEVpKGUsIHMgKyAxNiksCiAgICAgICAgICBwID0gbCA9PT0gNDI5NDk2NzI5NSB8fCB1ID09PSA2NTUzNTsKICAgICAgICBpZiAocCkgewogICAgICAgICAgbGV0IG0gPSBFaShlLCBzIC0gMTIpOwogICAgICAgICAgKHAgPSBFaShlLCBtKSA9PT0gMTAxMDc1NzkyKSwKICAgICAgICAgICAgcCAmJiAoKHUgPSBjID0gRWkoZSwgbSArIDMyKSksIChsID0gRWkoZSwgbSArIDQ4KSkpOwogICAgICAgIH0KICAgICAgICBsZXQgZCA9IHQgJiYgdC5maWx0ZXIsCiAgICAgICAgICBoID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBsZXQgbSA9IFBNZShlLCBsLCBwKSwKICAgICAgICAgICAgICB2ID0gbVswXSwKICAgICAgICAgICAgICB5ID0gbVsxXSwKICAgICAgICAgICAgICBnID0gbVsyXSwKICAgICAgICAgICAgICBNID0gbVszXSwKICAgICAgICAgICAgICBBID0gbVs0XSwKICAgICAgICAgICAgICBfID0gbVs1XSwKICAgICAgICAgICAgICBDID0gd01lKGUsIF8pOwogICAgICAgICAgICBsID0gQTsKICAgICAgICAgICAgbGV0IFIgPSBmdW5jdGlvbiAoTCwgTikgewogICAgICAgICAgICAgIEwgPyAoaSgpLCBvKEwsIG51bGwpKSA6IChOICYmIChhW01dID0gTiksIC0tYyB8fCBvKG51bGwsIGEpKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKCFkIHx8IGQoeyBuYW1lOiBNLCBzaXplOiB5LCBvcmlnaW5hbFNpemU6IGcsIGNvbXByZXNzaW9uOiB2IH0pKQogICAgICAgICAgICAgIGlmICh2KQogICAgICAgICAgICAgICAgaWYgKHYgPT09IDgpIHsKICAgICAgICAgICAgICAgICAgbGV0IEwgPSBlLnN1YmFycmF5KEMsIEMgKyB5KTsKICAgICAgICAgICAgICAgICAgaWYgKHkgPCAzMmU0KQogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICBSKG51bGwsIEh2KEwsIG5ldyBTcihnKSkpOwogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE4pIHsKICAgICAgICAgICAgICAgICAgICAgIFIoTiwgbnVsbCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIG4ucHVzaChMTWUoTCwgeyBzaXplOiBnIH0sIFIpKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBSKF9yKDE0LCAidW5rbm93biBjb21wcmVzc2lvbiB0eXBlICIgKyB2LCAxKSwgbnVsbCk7CiAgICAgICAgICAgICAgZWxzZSBSKG51bGwsIFFmKGUsIEMsIEMgKyB5KSk7CiAgICAgICAgICAgIGVsc2UgUihudWxsLCBudWxsKTsKICAgICAgICAgIH07CiAgICAgICAgZm9yIChsZXQgbSA9IDA7IG0gPCB1OyArK20pIGgobSk7CiAgICAgIH0gZWxzZSBvKG51bGwsIHt9KTsKICAgICAgcmV0dXJuIGk7CiAgICB9CiAgfSk7CiAgZnVuY3Rpb24gcU1lKGUpIHsKICAgIGxldCB0ID0gSlNPTi5wYXJzZShlKTsKICAgIGlmICghKCJhbmltYXRpb25zIiBpbiB0KSkgdGhyb3cgbmV3IEVycm9yKCJNYW5pZmVzdCBub3QgZm91bmQiKTsKICAgIGlmICh0LmFuaW1hdGlvbnMubGVuZ3RoID09PSAwKQogICAgICB0aHJvdyBuZXcgRXJyb3IoIk5vIGFuaW1hdGlvbnMgbGlzdGVkIGluIHRoZSBtYW5pZmVzdCIpOwogICAgcmV0dXJuIHQ7CiAgfQogIGZ1bmN0aW9uIHpNZShlKSB7CiAgICBsZXQgdCA9IG5ldyBVaW50OEFycmF5KGUsIDAsIDMyKTsKICAgIHJldHVybiB0WzBdID09PSA4MCAmJiB0WzFdID09PSA3NSAmJiB0WzJdID09PSAzICYmIHRbM10gPT09IDQ7CiAgfQogIGFzeW5jIGZ1bmN0aW9uIEZNZShlKSB7CiAgICByZXR1cm4gYXdhaXQgZmV0Y2gobmV3IFVSTChlLCB3aW5kb3c/LmxvY2F0aW9uPy5ocmVmKS5ocmVmKS50aGVuKCh0KSA9PgogICAgICB0LmFycmF5QnVmZmVyKCkKICAgICk7CiAgfQogIGFzeW5jIGZ1bmN0aW9uIGtNZShlKSB7CiAgICByZXR1cm4gKAogICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gewogICAgICAgIGxldCBuID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICBuLnJlYWRBc0RhdGFVUkwobmV3IEJsb2IoW2VdKSksIChuLm9ubG9hZCA9ICgpID0+IHIobi5yZXN1bHQpKTsKICAgICAgfSkKICAgICkuc3BsaXQoIiwiLCAyKVsxXTsKICB9CiAgYXN5bmMgZnVuY3Rpb24gQk1lKGUpIHsKICAgIGxldCB0ID0gbmV3IFVpbnQ4QXJyYXkoZSksCiAgICAgIHIgPSBhd2FpdCBuZXcgUHJvbWlzZSgobiwgaSkgPT4gewogICAgICAgICgwLCBKZi51bnppcCkodCwgKGEsIG8pID0+IChhID8gaShhKSA6IG4obykpKTsKICAgICAgfSk7CiAgICByZXR1cm4gewogICAgICByZWFkOiAobikgPT4gKDAsIEpmLnN0ckZyb21VOCkocltuXSksCiAgICAgIHJlYWRCNjQ6IGFzeW5jIChuKSA9PiBhd2FpdCBrTWUocltuXSksCiAgICB9OwogIH0KICBhc3luYyBmdW5jdGlvbiBXTWUoZSwgdCkgewogICAgaWYgKCEoImFzc2V0cyIgaW4gZSkpIHJldHVybiBlOwogICAgYXN5bmMgZnVuY3Rpb24gcihpKSB7CiAgICAgIGxldCB7IHA6IGEgfSA9IGk7CiAgICAgIGlmIChhID09IG51bGwgfHwgdC5yZWFkKGBpbWFnZXMvJHthfWApID09IG51bGwpIHJldHVybiBpOwogICAgICBsZXQgbyA9IGEuc3BsaXQoIi4iKS5wb3AoKSwKICAgICAgICBzID0gYXdhaXQgdC5yZWFkQjY0KGBpbWFnZXMvJHthfWApOwogICAgICBpZiAobz8uc3RhcnRzV2l0aCgiZGF0YToiKSkgcmV0dXJuIChpLnAgPSBvKSwgKGkuZSA9IDEpLCBpOwogICAgICBzd2l0Y2ggKG8pIHsKICAgICAgICBjYXNlICJzdmciOgogICAgICAgIGNhc2UgInN2Zyt4bWwiOgogICAgICAgICAgaS5wID0gYGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsJHtzfWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJwbmciOgogICAgICAgIGNhc2UgImpwZyI6CiAgICAgICAgY2FzZSAianBlZyI6CiAgICAgICAgY2FzZSAiZ2lmIjoKICAgICAgICBjYXNlICJ3ZWJwIjoKICAgICAgICAgIGkucCA9IGBkYXRhOmltYWdlLyR7b307YmFzZTY0LCR7c31gOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGkucCA9IGBkYXRhOjtiYXNlNjQsJHtzfWA7CiAgICAgIH0KICAgICAgcmV0dXJuIChpLmUgPSAxKSwgaTsKICAgIH0KICAgIHJldHVybiAoCiAgICAgIChhd2FpdCBQcm9taXNlLmFsbChlLmFzc2V0cy5tYXAocikpKS5tYXAoKGksIGEpID0+IHsKICAgICAgICBlLmFzc2V0c1thXSA9IGk7CiAgICAgIH0pLAogICAgICBlCiAgICApOwogIH0KICBhc3luYyBmdW5jdGlvbiBVTWUoZSkgewogICAgbGV0IHQgPSBhd2FpdCBCTWUoZSksCiAgICAgIHIgPSBxTWUodC5yZWFkKCJtYW5pZmVzdC5qc29uIikpOwogICAgcmV0dXJuICgKICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoCiAgICAgICAgci5hbmltYXRpb25zLm1hcCgoaSkgPT4gewogICAgICAgICAgbGV0IGEgPSBKU09OLnBhcnNlKHQucmVhZChgYW5pbWF0aW9ucy8ke2kuaWR9Lmpzb25gKSk7CiAgICAgICAgICByZXR1cm4gV01lKGEsIHQpOwogICAgICAgIH0pCiAgICAgICkKICAgIClbMF07CiAgfQogIGFzeW5jIGZ1bmN0aW9uIExxKGUpIHsKICAgIGxldCB0ID0gYXdhaXQgRk1lKGUpOwogICAgcmV0dXJuIHpNZSh0KSA/IGF3YWl0IFVNZSh0KSA6IEpTT04ucGFyc2UobmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHQpKTsKICB9CiAgdmFyIEpmLAogICAgTnEgPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBKZiA9IGJlKElxKCkpOwogICAgfSk7CiAgdmFyIHpxID0ge307CiAgdXQoenEsIHsKICAgIGNsZWFudXBFbGVtZW50OiAoKSA9PiBLdiwKICAgIGNyZWF0ZUluc3RhbmNlOiAoKSA9PiBEcSwKICAgIGRlc3Ryb3k6ICgpID0+IEhNZSwKICAgIGluaXQ6ICgpID0+IHFxLAogICAgcmVhZHk6ICgpID0+IEdNZSwKICB9KTsKICB2YXIgWmYsCiAgICBDUWUsCiAgICBYTWUsCiAgICBWTWUsCiAgICB5YywKICAgIGp2LAogICAgZXAsCiAgICB3cSwKICAgIFl2LAogICAgUHEsCiAgICBEcSwKICAgIEt2LAogICAgcXEsCiAgICBITWUsCiAgICBHTWUsCiAgICBGcSA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIChaZiA9IGJlKHF5KCkpKSwgKENRZSA9IGJlKEJ2KCkpKTsKICAgICAgTnEoKTsKICAgICAgKFhNZSA9IChlKSA9PiBlLldlYmZsb3cucmVxdWlyZSgibG90dGllIikubG90dGllKSwKICAgICAgICAoVk1lID0gKGUpID0+ICEhKGUuV2ViZmxvdy5lbnYoImRlc2lnbiIpIHx8IGUuV2ViZmxvdy5lbnYoInByZXZpZXciKSkpLAogICAgICAgICh5YyA9IHsgUGxheWluZzogInBsYXlpbmciLCBTdG9wcGVkOiAic3RvcHBlZCIgfSksCiAgICAgICAgKGp2ID0gY2xhc3MgewogICAgICAgICAgX2NhY2hlID0gW107CiAgICAgICAgICBzZXQodCwgcikgewogICAgICAgICAgICBsZXQgbiA9ICgwLCBaZi5kZWZhdWx0KSh0aGlzLl9jYWNoZSwgKHsgd3JhcHBlcjogaSB9KSA9PiBpID09PSB0KTsKICAgICAgICAgICAgbiAhPT0gLTEgJiYgdGhpcy5fY2FjaGUuc3BsaWNlKG4sIDEpLAogICAgICAgICAgICAgIHRoaXMuX2NhY2hlLnB1c2goeyB3cmFwcGVyOiB0LCBpbnN0YW5jZTogciB9KTsKICAgICAgICAgIH0KICAgICAgICAgIGRlbGV0ZSh0KSB7CiAgICAgICAgICAgIGxldCByID0gKDAsIFpmLmRlZmF1bHQpKHRoaXMuX2NhY2hlLCAoeyB3cmFwcGVyOiBuIH0pID0+IG4gPT09IHQpOwogICAgICAgICAgICByICE9PSAtMSAmJiB0aGlzLl9jYWNoZS5zcGxpY2UociwgMSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZXQodCkgewogICAgICAgICAgICBsZXQgciA9ICgwLCBaZi5kZWZhdWx0KSh0aGlzLl9jYWNoZSwgKHsgd3JhcHBlcjogbiB9KSA9PiBuID09PSB0KTsKICAgICAgICAgICAgcmV0dXJuIHIgIT09IC0xID8gdGhpcy5fY2FjaGVbcl0uaW5zdGFuY2UgOiBudWxsOwogICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIChlcCA9IG5ldyBqdigpKSwKICAgICAgICAod3EgPSB7fSksCiAgICAgICAgKFl2ID0gY2xhc3MgewogICAgICAgICAgY29uZmlnID0gbnVsbDsKICAgICAgICAgIGN1cnJlbnRTdGF0ZSA9IHljLlN0b3BwZWQ7CiAgICAgICAgICBhbmltYXRpb25JdGVtOwogICAgICAgICAgaGFuZGxlcnMgPSB7CiAgICAgICAgICAgIGVudGVyRnJhbWU6IFtdLAogICAgICAgICAgICBjb21wbGV0ZTogW10sCiAgICAgICAgICAgIGxvb3A6IFtdLAogICAgICAgICAgICBkYXRhUmVhZHk6IFtdLAogICAgICAgICAgICBkZXN0cm95OiBbXSwKICAgICAgICAgICAgZXJyb3I6IFtdLAogICAgICAgICAgfTsKICAgICAgICAgIGxvYWQodCkgewogICAgICAgICAgICBsZXQgbiA9ICh0LmRhdGFzZXQgfHwgd3EpLnNyYyB8fCAiIjsKICAgICAgICAgICAgbi5lbmRzV2l0aCgiLmxvdHRpZSIpCiAgICAgICAgICAgICAgPyBMcShuKS50aGVuKChpKSA9PiB7CiAgICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRBbmltYXRpb24odCwgaSk7CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgIDogdGhpcy5fbG9hZEFuaW1hdGlvbih0LCB2b2lkIDApLAogICAgICAgICAgICAgIGVwLnNldCh0LCB0aGlzKSwKICAgICAgICAgICAgICAodGhpcy5jb250YWluZXIgPSB0KTsKICAgICAgICAgIH0KICAgICAgICAgIF9sb2FkQW5pbWF0aW9uKHQsIHIpIHsKICAgICAgICAgICAgbGV0IG4gPSB0LmRhdGFzZXQgfHwgd3EsCiAgICAgICAgICAgICAgaSA9IG4uc3JjIHx8ICIiLAogICAgICAgICAgICAgIGEgPSBuLnByZXNlcnZlQXNwZWN0UmF0aW8gfHwgInhNaWRZTWlkIG1lZXQiLAogICAgICAgICAgICAgIG8gPSBuLnJlbmRlcmVyIHx8ICJzdmciLAogICAgICAgICAgICAgIHMgPSBwYXJzZUZsb2F0KG4ubG9vcCkgPT09IDEsCiAgICAgICAgICAgICAgYyA9IHBhcnNlRmxvYXQobi5kaXJlY3Rpb24pIHx8IDEsCiAgICAgICAgICAgICAgdSA9IHBhcnNlRmxvYXQobi5hdXRvcGxheSkgPT09IDEsCiAgICAgICAgICAgICAgbCA9IHBhcnNlRmxvYXQobi5kdXJhdGlvbikgfHwgMCwKICAgICAgICAgICAgICBwID0gcGFyc2VGbG9hdChuLmlzSXgyVGFyZ2V0KSA9PT0gMSwKICAgICAgICAgICAgICBkID0gcGFyc2VGbG9hdChuLml4MkluaXRpYWxTdGF0ZSk7CiAgICAgICAgICAgIGlzTmFOKGQpICYmIChkID0gbnVsbCk7CiAgICAgICAgICAgIGxldCBoID0gewogICAgICAgICAgICAgIHNyYzogaSwKICAgICAgICAgICAgICBsb29wOiBzLAogICAgICAgICAgICAgIGF1dG9wbGF5OiB1LAogICAgICAgICAgICAgIHJlbmRlcmVyOiBvLAogICAgICAgICAgICAgIGRpcmVjdGlvbjogYywKICAgICAgICAgICAgICBkdXJhdGlvbjogbCwKICAgICAgICAgICAgICBoYXNJeDI6IHAsCiAgICAgICAgICAgICAgaXgySW5pdGlhbFZhbHVlOiBkLAogICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW86IGEsCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0gJiYKICAgICAgICAgICAgICB0aGlzLmNvbmZpZyAmJgogICAgICAgICAgICAgIHRoaXMuY29uZmlnLnNyYyA9PT0gaSAmJgogICAgICAgICAgICAgIG8gPT09IHRoaXMuY29uZmlnLnJlbmRlcmVyICYmCiAgICAgICAgICAgICAgYSA9PT0gdGhpcy5jb25maWcucHJlc2VydmVBc3BlY3RSYXRpbwogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAocyAhPT0gdGhpcy5jb25maWcubG9vcCAmJiB0aGlzLnNldExvb3BpbmcocyksCiAgICAgICAgICAgICAgICBwIHx8CiAgICAgICAgICAgICAgICAgIChjICE9PSB0aGlzLmNvbmZpZy5kaXJlY3Rpb24gJiYgdGhpcy5zZXREaXJlY3Rpb24oYyksCiAgICAgICAgICAgICAgICAgIGwgIT09IHRoaXMuY29uZmlnLmR1cmF0aW9uICYmCiAgICAgICAgICAgICAgICAgICAgKGwgPiAwICYmIGwgIT09IHRoaXMuZHVyYXRpb24KICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZXRTcGVlZCh0aGlzLmR1cmF0aW9uIC8gbCkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZXRTcGVlZCgxKSkpLAogICAgICAgICAgICAgICAgdSAmJiB0aGlzLnBsYXkoKSwKICAgICAgICAgICAgICAgIGQgJiYgZCAhPT0gdGhpcy5jb25maWcuaXgySW5pdGlhbFZhbHVlKQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgbGV0IHkgPSBkIC8gMTAwOwogICAgICAgICAgICAgICAgdGhpcy5nb1RvRnJhbWUodGhpcy5mcmFtZXMgKiB5KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5jb25maWcgPSBoOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgbSA9IHsKICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogdCwKICAgICAgICAgICAgICAgIGxvb3A6IHMsCiAgICAgICAgICAgICAgICBhdXRvcGxheTogdSwKICAgICAgICAgICAgICAgIHJlbmRlcmVyOiBvLAogICAgICAgICAgICAgICAgcmVuZGVyZXJTZXR0aW5nczogewogICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBhLAogICAgICAgICAgICAgICAgICBwcm9ncmVzc2l2ZUxvYWQ6ICEwLAogICAgICAgICAgICAgICAgICBoaWRlT25UcmFuc3BhcmVudDogITAsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgdiA9IHQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldzsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0gJiYgdGhpcy5kZXN0cm95KCksCiAgICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtID0gWE1lKHYpLmxvYWRBbmltYXRpb24oewogICAgICAgICAgICAgICAgICAuLi5tLAogICAgICAgICAgICAgICAgICAuLi4ociA/IHsgYW5pbWF0aW9uRGF0YTogciB9IDogeyBwYXRoOiBpIH0pLAogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICB9IGNhdGNoICh5KSB7CiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVycy5lcnJvci5mb3JFYWNoKChnKSA9PiBnKHkpKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtICYmCiAgICAgICAgICAgICAgKFZNZSh2KSAmJgogICAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKCJlbnRlckZyYW1lIiwgKCkgPT4gewogICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNQbGF5aW5nKSByZXR1cm47CiAgICAgICAgICAgICAgICAgIGxldCB7CiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RnJhbWU6IHksCiAgICAgICAgICAgICAgICAgICAgICB0b3RhbEZyYW1lczogZywKICAgICAgICAgICAgICAgICAgICAgIHBsYXlEaXJlY3Rpb246IE0sCiAgICAgICAgICAgICAgICAgICAgfSA9IHRoaXMuYW5pbWF0aW9uSXRlbSwKICAgICAgICAgICAgICAgICAgICBBID0gKHkgLyBnKSAqIDEwMCwKICAgICAgICAgICAgICAgICAgICBfID0gTWF0aC5yb3VuZChNID09PSAxID8gQSA6IDEwMCAtIEEpOwogICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmVudGVyRnJhbWUuZm9yRWFjaCgoQykgPT4gQyhfLCB5KSk7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsICgpID0+IHsKICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFN0YXRlICE9PSB5Yy5QbGF5aW5nKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVycy5jb21wbGV0ZS5mb3JFYWNoKCh5KSA9PiB5KCkpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuYW5pbWF0aW9uSXRlbS5sb29wKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVycy5jb21wbGV0ZS5mb3JFYWNoKCh5KSA9PiB5KCkpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHljLlN0b3BwZWQ7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKCJsb29wQ29tcGxldGUiLCAoeSkgPT4gewogICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmxvb3AuZm9yRWFjaCgoZykgPT4gZyh5KSk7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKCJkYXRhX2ZhaWxlZCIsICh5KSA9PiB7CiAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMuZXJyb3IuZm9yRWFjaCgoZykgPT4gZyh5KSk7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsICh5KSA9PiB7CiAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMuZXJyb3IuZm9yRWFjaCgoZykgPT4gZyh5KSk7CiAgICAgICAgICAgICAgICB9KSksCiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlZAogICAgICAgICAgICAgICAgPyAodGhpcy5oYW5kbGVycy5kYXRhUmVhZHkuZm9yRWFjaCgoeSkgPT4geSgpKSwKICAgICAgICAgICAgICAgICAgdSAmJiB0aGlzLnBsYXkoKSkKICAgICAgICAgICAgICAgIDogdGhpcy5hbmltYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoImRhdGFfcmVhZHkiLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaGFuZGxlcnMuZGF0YVJlYWR5LmZvckVhY2goKHkpID0+IHkoKSksCiAgICAgICAgICAgICAgICAgICAgICBwIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNldERpcmVjdGlvbihjKSwKICAgICAgICAgICAgICAgICAgICAgICAgbCA+IDAgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICBsICE9PSB0aGlzLmR1cmF0aW9uICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTcGVlZCh0aGlzLmR1cmF0aW9uIC8gbCksCiAgICAgICAgICAgICAgICAgICAgICAgIHUgJiYgdGhpcy5wbGF5KCkpLAogICAgICAgICAgICAgICAgICAgICAgZCkKICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgIGxldCB5ID0gZCAvIDEwMDsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ29Ub0ZyYW1lKHRoaXMuZnJhbWVzICogeSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAodGhpcy5jb25maWcgPSBoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBvbkZyYW1lQ2hhbmdlKHQpIHsKICAgICAgICAgICAgdGhpcy5oYW5kbGVycy5lbnRlckZyYW1lLmluZGV4T2YodCkgPT09IC0xICYmCiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVycy5lbnRlckZyYW1lLnB1c2godCk7CiAgICAgICAgICB9CiAgICAgICAgICBvblBsYXliYWNrQ29tcGxldGUodCkgewogICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmNvbXBsZXRlLmluZGV4T2YodCkgPT09IC0xICYmCiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVycy5jb21wbGV0ZS5wdXNoKHQpOwogICAgICAgICAgfQogICAgICAgICAgb25Mb29wQ29tcGxldGUodCkgewogICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmxvb3AuaW5kZXhPZih0KSA9PT0gLTEgJiYgdGhpcy5oYW5kbGVycy5sb29wLnB1c2godCk7CiAgICAgICAgICB9CiAgICAgICAgICBvbkRlc3Ryb3kodCkgewogICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmRlc3Ryb3kuaW5kZXhPZih0KSA9PT0gLTEgJiYKICAgICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmRlc3Ryb3kucHVzaCh0KTsKICAgICAgICAgIH0KICAgICAgICAgIG9uRGF0YVJlYWR5KHQpIHsKICAgICAgICAgICAgdGhpcy5oYW5kbGVycy5kYXRhUmVhZHkuaW5kZXhPZih0KSA9PT0gLTEgJiYKICAgICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmRhdGFSZWFkeS5wdXNoKHQpOwogICAgICAgICAgfQogICAgICAgICAgb25FcnJvcih0KSB7CiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMuZXJyb3IuaW5kZXhPZih0KSA9PT0gLTEgJiYKICAgICAgICAgICAgICB0aGlzLmhhbmRsZXJzLmVycm9yLnB1c2godCk7CiAgICAgICAgICB9CiAgICAgICAgICBwbGF5KCkgewogICAgICAgICAgICBpZiAoIXRoaXMuYW5pbWF0aW9uSXRlbSkgcmV0dXJuOwogICAgICAgICAgICBsZXQgdCA9IHRoaXMuYW5pbWF0aW9uSXRlbS5wbGF5RGlyZWN0aW9uID09PSAxID8gMCA6IHRoaXMuZnJhbWVzOwogICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uZ29Ub0FuZFBsYXkodCwgITApLAogICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRTdGF0ZSA9IHljLlBsYXlpbmcpOwogICAgICAgICAgfQogICAgICAgICAgc3RvcCgpIHsKICAgICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uSXRlbSkgewogICAgICAgICAgICAgIGlmICh0aGlzLmlzUGxheWluZykgewogICAgICAgICAgICAgICAgbGV0IHsgcGxheURpcmVjdGlvbjogdCB9ID0gdGhpcy5hbmltYXRpb25JdGVtLAogICAgICAgICAgICAgICAgICByID0gdCA9PT0gMSA/IDAgOiB0aGlzLmZyYW1lczsKICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5nb1RvQW5kU3RvcChyLCAhMCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMuY3VycmVudFN0YXRlID0geWMuU3RvcHBlZDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZGVzdHJveSgpIHsKICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtICYmCiAgICAgICAgICAgICAgKHRoaXMuaXNQbGF5aW5nICYmIHRoaXMuc3RvcCgpLAogICAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMuZGVzdHJveS5mb3JFYWNoKCh0KSA9PiB0KCkpLAogICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyICYmIGVwLmRlbGV0ZSh0aGlzLmNvbnRhaW5lciksCiAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLmRlc3Ryb3koKSwKICAgICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmhhbmRsZXJzKS5mb3JFYWNoKAogICAgICAgICAgICAgICAgKHQpID0+ICh0aGlzLmhhbmRsZXJzW3RdLmxlbmd0aCA9IDApCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuY29uZmlnID0gbnVsbCkpOwogICAgICAgICAgfQogICAgICAgICAgZ2V0IGlzUGxheWluZygpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uSXRlbSA/ICF0aGlzLmFuaW1hdGlvbkl0ZW0uaXNQYXVzZWQgOiAhMTsKICAgICAgICAgIH0KICAgICAgICAgIGdldCBpc1BhdXNlZCgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uSXRlbSA/IHRoaXMuYW5pbWF0aW9uSXRlbS5pc1BhdXNlZCA6ICExOwogICAgICAgICAgfQogICAgICAgICAgZ2V0IGR1cmF0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb25JdGVtID8gdGhpcy5hbmltYXRpb25JdGVtLmdldER1cmF0aW9uKCkgOiAwOwogICAgICAgICAgfQogICAgICAgICAgZ2V0IGZyYW1lcygpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uSXRlbSA/IHRoaXMuYW5pbWF0aW9uSXRlbS50b3RhbEZyYW1lcyA6IDA7CiAgICAgICAgICB9CiAgICAgICAgICBnZXQgZGlyZWN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb25JdGVtID8gdGhpcy5hbmltYXRpb25JdGVtLnBsYXlEaXJlY3Rpb24gOiAxOwogICAgICAgICAgfQogICAgICAgICAgZ2V0IGlzTG9hZGVkKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb25JdGVtLCB0aGlzLmFuaW1hdGlvbkl0ZW0uaXNMb2FkZWQ7CiAgICAgICAgICB9CiAgICAgICAgICBnZXQgaXgySW5pdGlhbFZhbHVlKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWcgPyB0aGlzLmNvbmZpZy5peDJJbml0aWFsVmFsdWUgOiBudWxsOwogICAgICAgICAgfQogICAgICAgICAgZ29Ub0ZyYW1lKHQpIHsKICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtICYmIHRoaXMuYW5pbWF0aW9uSXRlbS5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSh0KTsKICAgICAgICAgIH0KICAgICAgICAgIHNldFN1YmZyYW1lKHQpIHsKICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtICYmIHRoaXMuYW5pbWF0aW9uSXRlbS5zZXRTdWJmcmFtZSh0KTsKICAgICAgICAgIH0KICAgICAgICAgIHNldFNwZWVkKHQgPSAxKSB7CiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbSAmJgogICAgICAgICAgICAgICh0aGlzLmlzUGxheWluZyAmJiB0aGlzLnN0b3AoKSwgdGhpcy5hbmltYXRpb25JdGVtLnNldFNwZWVkKHQpKTsKICAgICAgICAgIH0KICAgICAgICAgIHNldExvb3BpbmcodCkgewogICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0gJiYKICAgICAgICAgICAgICAodGhpcy5pc1BsYXlpbmcgJiYgdGhpcy5zdG9wKCksICh0aGlzLmFuaW1hdGlvbkl0ZW0ubG9vcCA9IHQpKTsKICAgICAgICAgIH0KICAgICAgICAgIHNldERpcmVjdGlvbih0KSB7CiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbSAmJgogICAgICAgICAgICAgICh0aGlzLmlzUGxheWluZyAmJiB0aGlzLnN0b3AoKSwKICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uc2V0RGlyZWN0aW9uKHQpLAogICAgICAgICAgICAgIHRoaXMuZ29Ub0ZyYW1lKHQgPT09IDEgPyAwIDogdGhpcy5mcmFtZXMpKTsKICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICAoUHEgPSAoKSA9PgogICAgICAgICAgQXJyYXkuZnJvbSgKICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtYW5pbWF0aW9uLXR5cGU9ImxvdHRpZSJdJykKICAgICAgICAgICkpLAogICAgICAgIChEcSA9IChlKSA9PiB7CiAgICAgICAgICBsZXQgdCA9IGVwLmdldChlKTsKICAgICAgICAgIHJldHVybiB0ID09IG51bGwgJiYgKHQgPSBuZXcgWXYoKSksIHQubG9hZChlKSwgdDsKICAgICAgICB9KSwKICAgICAgICAoS3YgPSAoZSkgPT4gewogICAgICAgICAgbGV0IHQgPSBlcC5nZXQoZSk7CiAgICAgICAgICB0ICYmIHQuZGVzdHJveSgpOwogICAgICAgIH0pLAogICAgICAgIChxcSA9ICgpID0+IHsKICAgICAgICAgIFBxKCkuZm9yRWFjaCgoZSkgPT4gewogICAgICAgICAgICBwYXJzZUZsb2F0KGUuZ2V0QXR0cmlidXRlKCJkYXRhLWlzLWl4Mi10YXJnZXQiKSkgPT09IDEgfHwgS3YoZSksCiAgICAgICAgICAgICAgRHEoZSk7CiAgICAgICAgICB9KTsKICAgICAgICB9KSwKICAgICAgICAoSE1lID0gKCkgPT4gewogICAgICAgICAgUHEoKS5mb3JFYWNoKEt2KTsKICAgICAgICB9KSwKICAgICAgICAoR01lID0gcXEpOwogICAgfSk7CiAgdmFyIGtxID0gRSgoZXhwb3J0cywgbW9kdWxlKSA9PiB7CiAgICB0eXBlb2YgbmF2aWdhdG9yIDwgInUiICYmCiAgICAgIChmdW5jdGlvbiAoZSwgdCkgewogICAgICAgIHR5cGVvZiBleHBvcnRzID09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUgPCAidSIKICAgICAgICAgID8gKG1vZHVsZS5leHBvcnRzID0gdCgpKQogICAgICAgICAgOiB0eXBlb2YgZGVmaW5lID09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZAogICAgICAgICAgPyBkZWZpbmUodCkKICAgICAgICAgIDogKChlID0gdHlwZW9mIGdsb2JhbFRoaXMgPCAidSIgPyBnbG9iYWxUaGlzIDogZSB8fCBzZWxmKS5sb3R0aWUgPQogICAgICAgICAgICAgIHQoKSk7CiAgICAgIH0pKGV4cG9ydHMsIGZ1bmN0aW9uICgpIHsKICAgICAgICAidXNlIHN0cmljdCI7CiAgICAgICAgdmFyIHN2Z05TID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwKICAgICAgICAgIGxvY2F0aW9uSHJlZiA9ICIiLAogICAgICAgICAgX3VzZVdlYldvcmtlciA9ICExLAogICAgICAgICAgaW5pdGlhbERlZmF1bHRGcmFtZSA9IC05OTk5OTksCiAgICAgICAgICBzZXRXZWJXb3JrZXIgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBfdXNlV2ViV29ya2VyID0gISFlOwogICAgICAgICAgfSwKICAgICAgICAgIGdldFdlYldvcmtlciA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIF91c2VXZWJXb3JrZXI7CiAgICAgICAgICB9LAogICAgICAgICAgc2V0TG9jYXRpb25IcmVmID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgbG9jYXRpb25IcmVmID0gZTsKICAgICAgICAgIH0sCiAgICAgICAgICBnZXRMb2NhdGlvbkhyZWYgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbkhyZWY7CiAgICAgICAgICB9OwogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVRhZyhlKSB7CiAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZXh0ZW5kUHJvdG90eXBlKGUsIHQpIHsKICAgICAgICAgIHZhciByLAogICAgICAgICAgICBuLAogICAgICAgICAgICBpID0gZS5sZW5ndGg7CiAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgaTsgciArPSAxKQogICAgICAgICAgICBmb3IgKHZhciBhIGluIChuID0gZVtyXS5wcm90b3R5cGUpKQogICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCBhKSAmJgogICAgICAgICAgICAgICAgKHQucHJvdG90eXBlW2FdID0gblthXSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdldERlc2NyaXB0b3IoZSwgdCkgewogICAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgdCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVByb3h5RnVuY3Rpb24oZSkgewogICAgICAgICAgZnVuY3Rpb24gdCgpIHt9CiAgICAgICAgICByZXR1cm4gKHQucHJvdG90eXBlID0gZSksIHQ7CiAgICAgICAgfQogICAgICAgIHZhciBhdWRpb0NvbnRyb2xsZXJGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgZnVuY3Rpb24gZSh0KSB7CiAgICAgICAgICAgICAgKHRoaXMuYXVkaW9zID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuYXVkaW9GYWN0b3J5ID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5fdm9sdW1lID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5faXNNdXRlZCA9ICExKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIChlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgIGFkZEF1ZGlvOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvcy5wdXNoKHQpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHBhdXNlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmF1ZGlvcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpIHRoaXMuYXVkaW9zW3RdLnBhdXNlKCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgcmVzdW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmF1ZGlvcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpIHRoaXMuYXVkaW9zW3RdLnJlc3VtZSgpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHNldFJhdGU6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICAgIG4gPSB0aGlzLmF1ZGlvcy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpIHRoaXMuYXVkaW9zW3JdLnNldFJhdGUodCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgY3JlYXRlQXVkaW86IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmF1ZGlvRmFjdG9yeQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5hdWRpb0ZhY3RvcnkodCkKICAgICAgICAgICAgICAgICAgICA6IHdpbmRvdy5Ib3dsCiAgICAgICAgICAgICAgICAgICAgPyBuZXcgd2luZG93Lkhvd2woeyBzcmM6IFt0XSB9KQogICAgICAgICAgICAgICAgICAgIDogewogICAgICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmc6ICExLAogICAgICAgICAgICAgICAgICAgICAgICBwbGF5OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSAhMDsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgc2VlazogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNQbGF5aW5nID0gITE7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlpbmc6IGZ1bmN0aW9uICgpIHt9LAogICAgICAgICAgICAgICAgICAgICAgICByYXRlOiBmdW5jdGlvbiAoKSB7fSwKICAgICAgICAgICAgICAgICAgICAgICAgc2V0Vm9sdW1lOiBmdW5jdGlvbiAoKSB7fSwKICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgc2V0QXVkaW9GYWN0b3J5OiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvRmFjdG9yeSA9IHQ7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgc2V0Vm9sdW1lOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgICAodGhpcy5fdm9sdW1lID0gdCksIHRoaXMuX3VwZGF0ZVZvbHVtZSgpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIG11dGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lzTXV0ZWQgPSAhMCksIHRoaXMuX3VwZGF0ZVZvbHVtZSgpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHVubXV0ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAodGhpcy5faXNNdXRlZCA9ICExKSwgdGhpcy5fdXBkYXRlVm9sdW1lKCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZ2V0Vm9sdW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl92b2x1bWU7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgX3VwZGF0ZVZvbHVtZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgICByID0gdGhpcy5hdWRpb3MubGVuZ3RoOwogICAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9zW3RdLnZvbHVtZSgKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZvbHVtZSAqICh0aGlzLl9pc011dGVkID8gMCA6IDEpCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBlKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwogICAgICAgICAgfSkoKSwKICAgICAgICAgIGNyZWF0ZVR5cGVkQXJyYXkgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmdW5jdGlvbiBlKHQsIHIpIHsKICAgICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICAgIGkgPSAwLAogICAgICAgICAgICAgICAgYSA9IFtdOwogICAgICAgICAgICAgIHN3aXRjaCAodCkgewogICAgICAgICAgICAgICAgY2FzZSAiaW50MTYiOgogICAgICAgICAgICAgICAgY2FzZSAidWludDhjIjoKICAgICAgICAgICAgICAgICAgbiA9IDE7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgbiA9IDEuMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHI7IGkgKz0gMSkgYS5wdXNoKG4pOwogICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgIHR5cGVvZiBGbG9hdDMyQXJyYXkgPT0gImZ1bmN0aW9uIgogICAgICAgICAgICAgID8gZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHQgPT09ICJmbG9hdDMyIgogICAgICAgICAgICAgICAgICAgID8gbmV3IEZsb2F0MzJBcnJheShyKQogICAgICAgICAgICAgICAgICAgIDogdCA9PT0gImludDE2IgogICAgICAgICAgICAgICAgICAgID8gbmV3IEludDE2QXJyYXkocikKICAgICAgICAgICAgICAgICAgICA6IHQgPT09ICJ1aW50OGMiCiAgICAgICAgICAgICAgICAgICAgPyBuZXcgVWludDhDbGFtcGVkQXJyYXkocikKICAgICAgICAgICAgICAgICAgICA6IGUodCwgcik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgOiBlOwogICAgICAgICAgfSkoKTsKICAgICAgICBmdW5jdGlvbiBjcmVhdGVTaXplZEFycmF5KGUpIHsKICAgICAgICAgIHJldHVybiBBcnJheS5hcHBseShudWxsLCB7IGxlbmd0aDogZSB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gX3R5cGVvZiQ2KGUpIHsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIChfdHlwZW9mJDYgPQogICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09ICJzeW1ib2wiCiAgICAgICAgICAgICAgICA/IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB0OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICA6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHQgJiYKICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICAgICAgdC5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgICAgICAgICB0ICE9PSBTeW1ib2wucHJvdG90eXBlCiAgICAgICAgICAgICAgICAgICAgICA/ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiB0OwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgX3R5cGVvZiQ2KGUpCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICB2YXIgc3ViZnJhbWVFbmFibGVkID0gITAsCiAgICAgICAgICBleHByZXNzaW9uc1BsdWdpbiA9IG51bGwsCiAgICAgICAgICBleHByZXNzaW9uc0ludGVyZmFjZXMgPSBudWxsLAogICAgICAgICAgaWRQcmVmaXgkMSA9ICIiLAogICAgICAgICAgaXNTYWZhcmkgPSAvXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLAogICAgICAgICAgX3Nob3VsZFJvdW5kVmFsdWVzID0gITEsCiAgICAgICAgICBibVBvdyA9IE1hdGgucG93LAogICAgICAgICAgYm1TcXJ0ID0gTWF0aC5zcXJ0LAogICAgICAgICAgYm1GbG9vciA9IE1hdGguZmxvb3IsCiAgICAgICAgICBibU1heCA9IE1hdGgubWF4LAogICAgICAgICAgYm1NaW4gPSBNYXRoLm1pbiwKICAgICAgICAgIEJNTWF0aCA9IHt9OwogICAgICAgIGZ1bmN0aW9uIFByb2plY3RJbnRlcmZhY2UkMSgpIHsKICAgICAgICAgIHJldHVybiB7fTsKICAgICAgICB9CiAgICAgICAgKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBlLAogICAgICAgICAgICB0ID0gWwogICAgICAgICAgICAgICJhYnMiLAogICAgICAgICAgICAgICJhY29zIiwKICAgICAgICAgICAgICAiYWNvc2giLAogICAgICAgICAgICAgICJhc2luIiwKICAgICAgICAgICAgICAiYXNpbmgiLAogICAgICAgICAgICAgICJhdGFuIiwKICAgICAgICAgICAgICAiYXRhbmgiLAogICAgICAgICAgICAgICJhdGFuMiIsCiAgICAgICAgICAgICAgImNlaWwiLAogICAgICAgICAgICAgICJjYnJ0IiwKICAgICAgICAgICAgICAiZXhwbTEiLAogICAgICAgICAgICAgICJjbHozMiIsCiAgICAgICAgICAgICAgImNvcyIsCiAgICAgICAgICAgICAgImNvc2giLAogICAgICAgICAgICAgICJleHAiLAogICAgICAgICAgICAgICJmbG9vciIsCiAgICAgICAgICAgICAgImZyb3VuZCIsCiAgICAgICAgICAgICAgImh5cG90IiwKICAgICAgICAgICAgICAiaW11bCIsCiAgICAgICAgICAgICAgImxvZyIsCiAgICAgICAgICAgICAgImxvZzFwIiwKICAgICAgICAgICAgICAibG9nMiIsCiAgICAgICAgICAgICAgImxvZzEwIiwKICAgICAgICAgICAgICAibWF4IiwKICAgICAgICAgICAgICAibWluIiwKICAgICAgICAgICAgICAicG93IiwKICAgICAgICAgICAgICAicmFuZG9tIiwKICAgICAgICAgICAgICAicm91bmQiLAogICAgICAgICAgICAgICJzaWduIiwKICAgICAgICAgICAgICAic2luIiwKICAgICAgICAgICAgICAic2luaCIsCiAgICAgICAgICAgICAgInNxcnQiLAogICAgICAgICAgICAgICJ0YW4iLAogICAgICAgICAgICAgICJ0YW5oIiwKICAgICAgICAgICAgICAidHJ1bmMiLAogICAgICAgICAgICAgICJFIiwKICAgICAgICAgICAgICAiTE4xMCIsCiAgICAgICAgICAgICAgIkxOMiIsCiAgICAgICAgICAgICAgIkxPRzEwRSIsCiAgICAgICAgICAgICAgIkxPRzJFIiwKICAgICAgICAgICAgICAiUEkiLAogICAgICAgICAgICAgICJTUVJUMV8yIiwKICAgICAgICAgICAgICAiU1FSVDIiLAogICAgICAgICAgICBdLAogICAgICAgICAgICByID0gdC5sZW5ndGg7CiAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgcjsgZSArPSAxKSBCTU1hdGhbdFtlXV0gPSBNYXRoW3RbZV1dOwogICAgICAgIH0pKCksCiAgICAgICAgICAoQk1NYXRoLnJhbmRvbSA9IE1hdGgucmFuZG9tKSwKICAgICAgICAgIChCTU1hdGguYWJzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKF90eXBlb2YkNihlKSA9PT0gIm9iamVjdCIgJiYgZS5sZW5ndGgpIHsKICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgIHIgPSBjcmVhdGVTaXplZEFycmF5KGUubGVuZ3RoKSwKICAgICAgICAgICAgICAgIG4gPSBlLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgbjsgdCArPSAxKSByW3RdID0gTWF0aC5hYnMoZVt0XSk7CiAgICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIE1hdGguYWJzKGUpOwogICAgICAgICAgfSk7CiAgICAgICAgdmFyIGRlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gMTUwLAogICAgICAgICAgZGVnVG9SYWRzID0gTWF0aC5QSSAvIDE4MCwKICAgICAgICAgIHJvdW5kQ29ybmVyID0gMC41NTE5OwogICAgICAgIGZ1bmN0aW9uIHJvdW5kVmFsdWVzKGUpIHsKICAgICAgICAgIF9zaG91bGRSb3VuZFZhbHVlcyA9ICEhZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYm1SbmQoZSkgewogICAgICAgICAgcmV0dXJuIF9zaG91bGRSb3VuZFZhbHVlcyA/IE1hdGgucm91bmQoZSkgOiBlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBzdHlsZURpdihlKSB7CiAgICAgICAgICAoZS5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSIpLAogICAgICAgICAgICAoZS5zdHlsZS50b3AgPSAwKSwKICAgICAgICAgICAgKGUuc3R5bGUubGVmdCA9IDApLAogICAgICAgICAgICAoZS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIiksCiAgICAgICAgICAgIChlLnN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9ICIwIDAiKSwKICAgICAgICAgICAgKGUuc3R5bGUud2Via2l0VHJhbnNmb3JtT3JpZ2luID0gIjAgMCIpLAogICAgICAgICAgICAoZS5zdHlsZS5iYWNrZmFjZVZpc2liaWxpdHkgPSAidmlzaWJsZSIpLAogICAgICAgICAgICAoZS5zdHlsZS53ZWJraXRCYWNrZmFjZVZpc2liaWxpdHkgPSAidmlzaWJsZSIpLAogICAgICAgICAgICAoZS5zdHlsZS50cmFuc2Zvcm1TdHlsZSA9ICJwcmVzZXJ2ZS0zZCIpLAogICAgICAgICAgICAoZS5zdHlsZS53ZWJraXRUcmFuc2Zvcm1TdHlsZSA9ICJwcmVzZXJ2ZS0zZCIpLAogICAgICAgICAgICAoZS5zdHlsZS5tb3pUcmFuc2Zvcm1TdHlsZSA9ICJwcmVzZXJ2ZS0zZCIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBCTUVudGVyRnJhbWVFdmVudChlLCB0LCByLCBuKSB7CiAgICAgICAgICAodGhpcy50eXBlID0gZSksCiAgICAgICAgICAgICh0aGlzLmN1cnJlbnRUaW1lID0gdCksCiAgICAgICAgICAgICh0aGlzLnRvdGFsVGltZSA9IHIpLAogICAgICAgICAgICAodGhpcy5kaXJlY3Rpb24gPSBuIDwgMCA/IC0xIDogMSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIEJNQ29tcGxldGVFdmVudChlLCB0KSB7CiAgICAgICAgICAodGhpcy50eXBlID0gZSksICh0aGlzLmRpcmVjdGlvbiA9IHQgPCAwID8gLTEgOiAxKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQk1Db21wbGV0ZUxvb3BFdmVudChlLCB0LCByLCBuKSB7CiAgICAgICAgICAodGhpcy50eXBlID0gZSksCiAgICAgICAgICAgICh0aGlzLmN1cnJlbnRMb29wID0gciksCiAgICAgICAgICAgICh0aGlzLnRvdGFsTG9vcHMgPSB0KSwKICAgICAgICAgICAgKHRoaXMuZGlyZWN0aW9uID0gbiA8IDAgPyAtMSA6IDEpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBCTVNlZ21lbnRTdGFydEV2ZW50KGUsIHQsIHIpIHsKICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwgKHRoaXMuZmlyc3RGcmFtZSA9IHQpLCAodGhpcy50b3RhbEZyYW1lcyA9IHIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBCTURlc3Ryb3lFdmVudChlLCB0KSB7CiAgICAgICAgICAodGhpcy50eXBlID0gZSksICh0aGlzLnRhcmdldCA9IHQpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBCTVJlbmRlckZyYW1lRXJyb3JFdmVudChlLCB0KSB7CiAgICAgICAgICAodGhpcy50eXBlID0gInJlbmRlckZyYW1lRXJyb3IiKSwKICAgICAgICAgICAgKHRoaXMubmF0aXZlRXJyb3IgPSBlKSwKICAgICAgICAgICAgKHRoaXMuY3VycmVudFRpbWUgPSB0KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQk1Db25maWdFcnJvckV2ZW50KGUpIHsKICAgICAgICAgICh0aGlzLnR5cGUgPSAiY29uZmlnRXJyb3IiKSwgKHRoaXMubmF0aXZlRXJyb3IgPSBlKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQk1BbmltYXRpb25Db25maWdFcnJvckV2ZW50KGUsIHQpIHsKICAgICAgICAgICh0aGlzLnR5cGUgPSBlKSwgKHRoaXMubmF0aXZlRXJyb3IgPSB0KTsKICAgICAgICB9CiAgICAgICAgdmFyIGNyZWF0ZUVsZW1lbnRJRCA9CiAgICAgICAgICAgICgoX2NvdW50ID0gMCksCiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gaWRQcmVmaXgkMSArICJfX2xvdHRpZV9lbGVtZW50XyIgKyAoX2NvdW50ICs9IDEpOwogICAgICAgICAgICB9KSwKICAgICAgICAgIF9jb3VudDsKICAgICAgICBmdW5jdGlvbiBIU1Z0b1JHQihlLCB0LCByKSB7CiAgICAgICAgICB2YXIgbiwgaSwgYSwgbywgcywgYywgdSwgbDsKICAgICAgICAgIHN3aXRjaCAoCiAgICAgICAgICAgICgoYyA9IHIgKiAoMSAtIHQpKSwKICAgICAgICAgICAgKHUgPSByICogKDEgLSAocyA9IDYgKiBlIC0gKG8gPSBNYXRoLmZsb29yKDYgKiBlKSkpICogdCkpLAogICAgICAgICAgICAobCA9IHIgKiAoMSAtICgxIC0gcykgKiB0KSksCiAgICAgICAgICAgIG8gJSA2KQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAobiA9IHIpLCAoaSA9IGwpLCAoYSA9IGMpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgKG4gPSB1KSwgKGkgPSByKSwgKGEgPSBjKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIChuID0gYyksIChpID0gciksIChhID0gbCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAobiA9IGMpLCAoaSA9IHUpLCAoYSA9IHIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgKG4gPSBsKSwgKGkgPSBjKSwgKGEgPSByKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIChuID0gciksIChpID0gYyksIChhID0gdSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gW24sIGksIGFdOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBSR0J0b0hTVihlLCB0LCByKSB7CiAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgaSA9IE1hdGgubWF4KGUsIHQsIHIpLAogICAgICAgICAgICBhID0gTWF0aC5taW4oZSwgdCwgciksCiAgICAgICAgICAgIG8gPSBpIC0gYSwKICAgICAgICAgICAgcyA9IGkgPT09IDAgPyAwIDogbyAvIGksCiAgICAgICAgICAgIGMgPSBpIC8gMjU1OwogICAgICAgICAgc3dpdGNoIChpKSB7CiAgICAgICAgICAgIGNhc2UgYToKICAgICAgICAgICAgICBuID0gMDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBlOgogICAgICAgICAgICAgIChuID0gdCAtIHIgKyBvICogKHQgPCByID8gNiA6IDApKSwgKG4gLz0gNiAqIG8pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIHQ6CiAgICAgICAgICAgICAgKG4gPSByIC0gZSArIDIgKiBvKSwgKG4gLz0gNiAqIG8pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIHI6CiAgICAgICAgICAgICAgKG4gPSBlIC0gdCArIDQgKiBvKSwgKG4gLz0gNiAqIG8pOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIFtuLCBzLCBjXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWRkU2F0dXJhdGlvblRvUkdCKGUsIHQpIHsKICAgICAgICAgIHZhciByID0gUkdCdG9IU1YoMjU1ICogZVswXSwgMjU1ICogZVsxXSwgMjU1ICogZVsyXSk7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoclsxXSArPSB0KSwKICAgICAgICAgICAgclsxXSA+IDEgPyAoclsxXSA9IDEpIDogclsxXSA8PSAwICYmIChyWzFdID0gMCksCiAgICAgICAgICAgIEhTVnRvUkdCKHJbMF0sIHJbMV0sIHJbMl0pCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBhZGRCcmlnaHRuZXNzVG9SR0IoZSwgdCkgewogICAgICAgICAgdmFyIHIgPSBSR0J0b0hTVigyNTUgKiBlWzBdLCAyNTUgKiBlWzFdLCAyNTUgKiBlWzJdKTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIChyWzJdICs9IHQpLAogICAgICAgICAgICByWzJdID4gMSA/IChyWzJdID0gMSkgOiByWzJdIDwgMCAmJiAoclsyXSA9IDApLAogICAgICAgICAgICBIU1Z0b1JHQihyWzBdLCByWzFdLCByWzJdKQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWRkSHVlVG9SR0IoZSwgdCkgewogICAgICAgICAgdmFyIHIgPSBSR0J0b0hTVigyNTUgKiBlWzBdLCAyNTUgKiBlWzFdLCAyNTUgKiBlWzJdKTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIChyWzBdICs9IHQgLyAzNjApLAogICAgICAgICAgICByWzBdID4gMSA/IChyWzBdIC09IDEpIDogclswXSA8IDAgJiYgKHJbMF0gKz0gMSksCiAgICAgICAgICAgIEhTVnRvUkdCKHJbMF0sIHJbMV0sIHJbMl0pCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICB2YXIgcmdiVG9IZXggPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgIHIgPSBbXTsKICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IDI1NjsgZSArPSAxKQogICAgICAgICAgICAgICh0ID0gZS50b1N0cmluZygxNikpLCAocltlXSA9IHQubGVuZ3RoID09PSAxID8gIjAiICsgdCA6IHQpOwogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG4sIGksIGEpIHsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgbiA8IDAgJiYgKG4gPSAwKSwKICAgICAgICAgICAgICAgIGkgPCAwICYmIChpID0gMCksCiAgICAgICAgICAgICAgICBhIDwgMCAmJiAoYSA9IDApLAogICAgICAgICAgICAgICAgIiMiICsgcltuXSArIHJbaV0gKyByW2FdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pKCksCiAgICAgICAgICBzZXRTdWJmcmFtZUVuYWJsZWQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBzdWJmcmFtZUVuYWJsZWQgPSAhIWU7CiAgICAgICAgICB9LAogICAgICAgICAgZ2V0U3ViZnJhbWVFbmFibGVkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gc3ViZnJhbWVFbmFibGVkOwogICAgICAgICAgfSwKICAgICAgICAgIHNldEV4cHJlc3Npb25zUGx1Z2luID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgZXhwcmVzc2lvbnNQbHVnaW4gPSBlOwogICAgICAgICAgfSwKICAgICAgICAgIGdldEV4cHJlc3Npb25zUGx1Z2luID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gZXhwcmVzc2lvbnNQbHVnaW47CiAgICAgICAgICB9LAogICAgICAgICAgc2V0RXhwcmVzc2lvbkludGVyZmFjZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBleHByZXNzaW9uc0ludGVyZmFjZXMgPSBlOwogICAgICAgICAgfSwKICAgICAgICAgIGdldEV4cHJlc3Npb25JbnRlcmZhY2VzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gZXhwcmVzc2lvbnNJbnRlcmZhY2VzOwogICAgICAgICAgfSwKICAgICAgICAgIHNldERlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgZGVmYXVsdEN1cnZlU2VnbWVudHMgPSBlOwogICAgICAgICAgfSwKICAgICAgICAgIGdldERlZmF1bHRDdXJ2ZVNlZ21lbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gZGVmYXVsdEN1cnZlU2VnbWVudHM7CiAgICAgICAgICB9LAogICAgICAgICAgc2V0SWRQcmVmaXggPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBpZFByZWZpeCQxID0gZTsKICAgICAgICAgIH0sCiAgICAgICAgICBnZXRJZFByZWZpeCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIGlkUHJlZml4JDE7CiAgICAgICAgICB9OwogICAgICAgIGZ1bmN0aW9uIGNyZWF0ZU5TKGUpIHsKICAgICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsIGUpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBfdHlwZW9mJDUoZSkgewogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgKF90eXBlb2YkNSA9CiAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdCAmJgogICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgICAgICB0LmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYKICAgICAgICAgICAgICAgICAgICAgIHQgIT09IFN5bWJvbC5wcm90b3R5cGUKICAgICAgICAgICAgICAgICAgICAgID8gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgICAgIDogdHlwZW9mIHQ7CiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICBfdHlwZW9mJDUoZSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHZhciBkYXRhTWFuYWdlciA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgciA9IDEsCiAgICAgICAgICAgICAgbiA9IFtdLAogICAgICAgICAgICAgIGkgPSB7CiAgICAgICAgICAgICAgICBvbm1lc3NhZ2U6IGZ1bmN0aW9uICgpIHt9LAogICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2U6IGZ1bmN0aW9uIChjKSB7CiAgICAgICAgICAgICAgICAgIGUoeyBkYXRhOiBjIH0pOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGEgPSB7CiAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZTogZnVuY3Rpb24gKGMpIHsKICAgICAgICAgICAgICAgICAgaS5vbm1lc3NhZ2UoeyBkYXRhOiBjIH0pOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9OwogICAgICAgICAgICBmdW5jdGlvbiBvKCkgewogICAgICAgICAgICAgIHQgfHwKICAgICAgICAgICAgICAgICgodCA9IChmdW5jdGlvbiAoYykgewogICAgICAgICAgICAgICAgICBpZiAod2luZG93LldvcmtlciAmJiB3aW5kb3cuQmxvYiAmJiBnZXRXZWJXb3JrZXIoKSkgewogICAgICAgICAgICAgICAgICAgIHZhciB1ID0gbmV3IEJsb2IoCiAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAidmFyIF93b3JrZXJTZWxmID0gc2VsZjsgc2VsZi5vbm1lc3NhZ2UgPSAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGMudG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAidGV4dC9qYXZhc2NyaXB0IiB9CiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgbCA9IFVSTC5jcmVhdGVPYmplY3RVUkwodSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXb3JrZXIobCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIChlID0gYyksIGk7CiAgICAgICAgICAgICAgICB9KShmdW5jdGlvbiAoYykgewogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKGEuZGF0YU1hbmFnZXIgfHwKICAgICAgICAgICAgICAgICAgICAgIChhLmRhdGFNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gbChMLCBOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlID0gTC5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IHRlOyBrICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoImtzIiBpbiAoVyA9IExba10pICYmICFXLmNvbXBsZXRlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKChXLmNvbXBsZXRlZCA9ICEwKSwgVy5oYXNNYXNrKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvZSA9IFcubWFza3NQcm9wZXJ0aWVzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoSCA9IG9lLmxlbmd0aCwgcSA9IDA7IHEgPCBIOyBxICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2VbcV0ucHQuay5pKSBoKG9lW3FdLnB0LmspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUgPSBvZVtxXS5wdC5rLmxlbmd0aCwgWCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWCA8IFU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWCArPSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZVtxXS5wdC5rW1hdLnMgJiYgaChvZVtxXS5wdC5rW1hdLnNbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2VbcV0ucHQua1tYXS5lICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgob2VbcV0ucHQua1tYXS5lWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXLnR5ID09PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKFcubGF5ZXJzID0gcChXLnJlZklkLCBOKSksIGwoVy5sYXllcnMsIE4pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVy50eSA9PT0gNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZChXLnNoYXBlcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFcudHkgPT09IDUgJiYgQyhXKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBwKEwsIE4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgVyA9IChmdW5jdGlvbiAoaywgcSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgSCA9IDAsIFggPSBxLmxlbmd0aDsgSCA8IFg7ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocVtIXS5pZCA9PT0gaykgcmV0dXJuIHFbSF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggKz0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgIH0pKEwsIE4pOwogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFcubGF5ZXJzLl9fdXNlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVy5sYXllcnMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoVy5sYXllcnMuX191c2VkID0gITApLCBXLmxheWVycykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBkKEwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgTiwgVywgazsKICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSBMLmxlbmd0aCAtIDE7IE4gPj0gMDsgTiAtPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExbTl0udHkgPT09ICJzaCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMW05dLmtzLmsuaSkgaChMW05dLmtzLmspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gTFtOXS5rcy5rLmxlbmd0aCwgVyA9IDA7IFcgPCBrOyBXICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMW05dLmtzLmtbV10ucyAmJiBoKExbTl0ua3Mua1tXXS5zWzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFtOXS5rcy5rW1ddLmUgJiYgaChMW05dLmtzLmtbV10uZVswXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIExbTl0udHkgPT09ICJnciIgJiYgZChMW05dLml0KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBoKEwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFcgPSBMLmkubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoTiA9IDA7IE4gPCBXOyBOICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTC5pW05dWzBdICs9IEwudltOXVswXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMLmlbTl1bMV0gKz0gTC52W05dWzFdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEwub1tOXVswXSArPSBMLnZbTl1bMF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTC5vW05dWzFdICs9IEwudltOXVsxXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gbShMLCBOKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFcgPSBOID8gTi5zcGxpdCgiLiIpIDogWzEwMCwgMTAwLCAxMDBdOwogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMWzBdID4gV1swXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCEoV1swXSA+IExbMF0pICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMWzFdID4gV1sxXSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICghKFdbMV0gPiBMWzFdKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExbMl0gPiBXWzJdIHx8ICghKFdbMl0gPiBMWzJdKSAmJiBudWxsKSkpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2LAogICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEwgPSBbNCwgNCwgMTRdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gTihXKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYID0gVy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBYOyBrICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1trXS50eSA9PT0gNSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChIID0gdm9pZCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChIID0gKHEgPSBXW2tdKS50LmQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHEudC5kID0geyBrOiBbeyBzOiBILCB0OiAwIH1dIH0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoVykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobShMLCBXLnYpICYmIChOKFcubGF5ZXJzKSwgVy5hc3NldHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxID0gVy5hc3NldHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBxOyBrICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXLmFzc2V0c1trXS5sYXllcnMgJiYgTihXLmFzc2V0c1trXS5sYXllcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZyA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHYgPSBbNCwgNywgOTldKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMLmNoYXJzICYmICFtKHYsIEwudikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFcgPSBMLmNoYXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKE4gPSAwOyBOIDwgVzsgTiArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgayA9IEwuY2hhcnNbTl07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrLmRhdGEgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgay5kYXRhLnNoYXBlcyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZChrLmRhdGEuc2hhcGVzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGsuZGF0YS5pcCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoay5kYXRhLm9wID0gOTk5OTkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoay5kYXRhLnN0ID0gMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrLmRhdGEuc3IgPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGsuZGF0YS5rcyA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwOiB7IGs6IFswLCAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IHsgazogWzEwMCwgMTAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGE6IHsgazogWzAsIDBdLCBhOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcjogeyBrOiAwLCBhOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbzogeyBrOiAxMDAsIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwuY2hhcnNbTl0udCB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrLmRhdGEuc2hhcGVzLnB1c2goeyB0eTogIm5vIiB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrLmRhdGEuc2hhcGVzWzBdLml0LnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDogeyBrOiBbMCwgMF0sIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IHsgazogWzEwMCwgMTAwXSwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYTogeyBrOiBbMCwgMF0sIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHI6IHsgazogMCwgYTogMCB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbzogeyBrOiAxMDAsIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNrOiB7IGs6IDAsIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhOiB7IGs6IDAsIGE6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5OiAidHIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBMID0gWzUsIDcsIDE1XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIE4oVykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggPSBXLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IEg7IGsgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXW2tdLnR5ID09PSA1ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHEgPSB2b2lkIDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIChxID0gV1trXS50LnApLmEgPT0gIm51bWJlciIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHEuYSA9IHsgYTogMCwgazogcS5hIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHEucCA9PSAibnVtYmVyIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocS5wID0geyBhOiAwLCBrOiBxLnAgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgcS5yID09ICJudW1iZXIiICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChxLnIgPSB7IGE6IDAsIGs6IHEuciB9KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKFcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0oTCwgVy52KSAmJiAoTihXLmxheWVycyksIFcuYXNzZXRzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcSA9IFcuYXNzZXRzLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgcTsgayArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVy5hc3NldHNba10ubGF5ZXJzICYmIE4oVy5hc3NldHNba10ubGF5ZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIEEgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEwgPSBbNCwgMSwgOV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBOKGspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUgPSBrLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChxID0gMDsgcSA8IFU7IHEgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa1txXS50eSA9PT0gImdyIikgTihrW3FdLml0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChrW3FdLnR5ID09PSAiZmwiIHx8IGtbcV0udHkgPT09ICJzdCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa1txXS5jLmsgJiYga1txXS5jLmtbMF0uaSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYID0ga1txXS5jLmsubGVuZ3RoLCBIID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIIDwgWDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtbcV0uYy5rW0hdLnMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoa1txXS5jLmtbSF0uc1swXSAvPSAyNTUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtbcV0uYy5rW0hdLnNbMV0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrW3FdLmMua1tIXS5zWzJdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa1txXS5jLmtbSF0uc1szXSAvPSAyNTUpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtbcV0uYy5rW0hdLmUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrW3FdLmMua1tIXS5lWzBdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrW3FdLmMua1tIXS5lWzFdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrW3FdLmMua1tIXS5lWzJdIC89IDI1NSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrW3FdLmMua1tIXS5lWzNdIC89IDI1NSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa1txXS5jLmtbMF0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa1txXS5jLmtbMV0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa1txXS5jLmtbMl0gLz0gMjU1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa1txXS5jLmtbM10gLz0gMjU1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIFcoaykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIID0gay5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAocSA9IDA7IHEgPCBIOyBxICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1txXS50eSA9PT0gNCAmJiBOKGtbcV0uc2hhcGVzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoaykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobShMLCBrLnYpICYmIChXKGsubGF5ZXJzKSwgay5hc3NldHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIID0gay5hc3NldHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAocSA9IDA7IHEgPCBIOyBxICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrLmFzc2V0c1txXS5sYXllcnMgJiYgVyhrLmFzc2V0c1txXS5sYXllcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXyA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgTCA9IFs0LCA0LCAxOF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBOKGspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHEsIEgsIFg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAocSA9IGsubGVuZ3RoIC0gMTsgcSA+PSAwOyBxIC09IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtbcV0udHkgPT09ICJzaCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa1txXS5rcy5rLmkpIGtbcV0ua3Muay5jID0ga1txXS5jbG9zZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWCA9IGtbcV0ua3Muay5sZW5ndGgsIEggPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggPCBYOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggKz0gMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1txXS5rcy5rW0hdLnMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrW3FdLmtzLmtbSF0uc1swXS5jID0ga1txXS5jbG9zZWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1txXS5rcy5rW0hdLmUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtbcV0ua3Mua1tIXS5lWzBdLmMgPSBrW3FdLmNsb3NlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBrW3FdLnR5ID09PSAiZ3IiICYmIE4oa1txXS5pdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBXKGspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWUgPSBrLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChIID0gMDsgSCA8IHllOyBIICs9IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHEgPSBrW0hdKS5oYXNNYXNrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgRiA9IHEubWFza3NQcm9wZXJ0aWVzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChVID0gRi5sZW5ndGgsIFggPSAwOyBYIDwgVTsgWCArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRltYXS5wdC5rLmkpIEZbWF0ucHQuay5jID0gRltYXS5jbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZSA9IEZbWF0ucHQuay5sZW5ndGgsIHRlID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlIDwgb2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZSArPSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRltYXS5wdC5rW3RlXS5zICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChGW1hdLnB0LmtbdGVdLnNbMF0uYyA9IEZbWF0uY2wpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGW1hdLnB0LmtbdGVdLmUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRltYXS5wdC5rW3RlXS5lWzBdLmMgPSBGW1hdLmNsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcS50eSA9PT0gNCAmJiBOKHEuc2hhcGVzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtKEwsIGsudikgJiYgKFcoay5sYXllcnMpLCBrLmFzc2V0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggPSBrLmFzc2V0cy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChxID0gMDsgcSA8IEg7IHEgKz0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGsuYXNzZXRzW3FdLmxheWVycyAmJiBXKGsuYXNzZXRzW3FdLmxheWVycyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gQyhMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgTC50LmEubGVuZ3RoID09PSAwICYmIEwudC5wOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBSID0gewogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlRGF0YTogZnVuY3Rpb24gKEwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwuX19jb21wbGV0ZSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQShMKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeShMKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZyhMKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTShMKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXyhMKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbChMLmxheWVycywgTC5hc3NldHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKE4sIFcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGsgPSAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxID0gTi5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgcTsgayArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOW2tdLnQgPT09IDEgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKE5ba10uZGF0YS5sYXllcnMgPSBwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTltrXS5kYXRhLnJlZklkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwoTltrXS5kYXRhLmxheWVycywgVykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoTC5jaGFycywgTC5hc3NldHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTC5fX2NvbXBsZXRlID0gITApKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgICAgIChSLmNoZWNrQ29sb3JzID0gQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKFIuY2hlY2tDaGFycyA9IGcpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChSLmNoZWNrUGF0aFByb3BlcnRpZXMgPSBNKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoUi5jaGVja1NoYXBlcyA9IF8pLAogICAgICAgICAgICAgICAgICAgICAgICAgIChSLmNvbXBsZXRlTGF5ZXJzID0gbCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgUgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgfSkoKSksCiAgICAgICAgICAgICAgICAgICAgYS5hc3NldExvYWRlciB8fAogICAgICAgICAgICAgICAgICAgICAgKGEuYXNzZXRMb2FkZXIgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBsKHApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZCA9IHAuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5yZXNwb25zZVR5cGUgPT09ICJqc29uIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5pbmRleE9mKCJqc29uIikgIT09IC0xKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHAucmVzcG9uc2UgJiYgX3R5cGVvZiQ1KHAucmVzcG9uc2UpID09PSAib2JqZWN0IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcC5yZXNwb25zZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwLnJlc3BvbnNlICYmIHR5cGVvZiBwLnJlc3BvbnNlID09ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEpTT04ucGFyc2UocC5yZXNwb25zZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcC5yZXNwb25zZVRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gSlNPTi5wYXJzZShwLnJlc3BvbnNlVGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChwLCBkLCBoLCBtKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeS5yZXNwb25zZVR5cGUgPSAianNvbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHkucmVhZHlTdGF0ZSA9PT0gNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeS5zdGF0dXMgPT09IDIwMCkgKHYgPSBsKHkpKSwgaCh2KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodiA9IGwoeSkpLCBoKHYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICYmIG0oZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeS5vcGVuKFsiRyIsICJFIiwgIlQiXS5qb2luKCIiKSwgcCwgITApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkub3BlbihbIkciLCAiRSIsICJUIl0uam9pbigiIiksIGQgKyAiLyIgKyBwLCAhMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5LnNlbmQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgfSkoKSksCiAgICAgICAgICAgICAgICAgICAgYy5kYXRhLnR5cGUgPT09ICJsb2FkQW5pbWF0aW9uIikKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIGEuYXNzZXRMb2FkZXIubG9hZCgKICAgICAgICAgICAgICAgICAgICAgIGMuZGF0YS5wYXRoLAogICAgICAgICAgICAgICAgICAgICAgYy5kYXRhLmZ1bGxQYXRoLAogICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYS5kYXRhTWFuYWdlci5jb21wbGV0ZURhdGEobCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgYS5wb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYy5kYXRhLmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZDogbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogInN1Y2Nlc3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYS5wb3N0TWVzc2FnZSh7IGlkOiBjLmRhdGEuaWQsIHN0YXR1czogImVycm9yIiB9KTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBlbHNlIGlmIChjLmRhdGEudHlwZSA9PT0gImNvbXBsZXRlIikgewogICAgICAgICAgICAgICAgICAgIHZhciB1ID0gYy5kYXRhLmFuaW1hdGlvbjsKICAgICAgICAgICAgICAgICAgICBhLmRhdGFNYW5hZ2VyLmNvbXBsZXRlRGF0YSh1KSwKICAgICAgICAgICAgICAgICAgICAgIGEucG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgICAgICAgICBpZDogYy5kYXRhLmlkLAogICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiB1LAogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICJzdWNjZXNzIiwKICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBjLmRhdGEudHlwZSA9PT0gImxvYWREYXRhIiAmJgogICAgICAgICAgICAgICAgICAgICAgYS5hc3NldExvYWRlci5sb2FkKAogICAgICAgICAgICAgICAgICAgICAgICBjLmRhdGEucGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgYy5kYXRhLmZ1bGxQYXRoLAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGEucG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGMuZGF0YS5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICJzdWNjZXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIGEucG9zdE1lc3NhZ2UoeyBpZDogYy5kYXRhLmlkLCBzdGF0dXM6ICJlcnJvciIgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9KSksCiAgICAgICAgICAgICAgICAodC5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoYykgewogICAgICAgICAgICAgICAgICB2YXIgdSA9IGMuZGF0YSwKICAgICAgICAgICAgICAgICAgICBsID0gdS5pZCwKICAgICAgICAgICAgICAgICAgICBwID0gbltsXTsKICAgICAgICAgICAgICAgICAgKG5bbF0gPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICB1LnN0YXR1cyA9PT0gInN1Y2Nlc3MiCiAgICAgICAgICAgICAgICAgICAgICA/IHAub25Db21wbGV0ZSh1LnBheWxvYWQpCiAgICAgICAgICAgICAgICAgICAgICA6IHAub25FcnJvciAmJiBwLm9uRXJyb3IoKTsKICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBzKGMsIHUpIHsKICAgICAgICAgICAgICB2YXIgbCA9ICJwcm9jZXNzSWRfIiArIChyICs9IDEpOwogICAgICAgICAgICAgIHJldHVybiAobltsXSA9IHsgb25Db21wbGV0ZTogYywgb25FcnJvcjogdSB9KSwgbDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIGxvYWRBbmltYXRpb246IGZ1bmN0aW9uIChjLCB1LCBsKSB7CiAgICAgICAgICAgICAgICBvKCk7CiAgICAgICAgICAgICAgICB2YXIgcCA9IHModSwgbCk7CiAgICAgICAgICAgICAgICB0LnBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgdHlwZTogImxvYWRBbmltYXRpb24iLAogICAgICAgICAgICAgICAgICBwYXRoOiBjLAogICAgICAgICAgICAgICAgICBmdWxsUGF0aDogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwKICAgICAgICAgICAgICAgICAgaWQ6IHAsCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGxvYWREYXRhOiBmdW5jdGlvbiAoYywgdSwgbCkgewogICAgICAgICAgICAgICAgbygpOwogICAgICAgICAgICAgICAgdmFyIHAgPSBzKHUsIGwpOwogICAgICAgICAgICAgICAgdC5wb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICJsb2FkRGF0YSIsCiAgICAgICAgICAgICAgICAgIHBhdGg6IGMsCiAgICAgICAgICAgICAgICAgIGZ1bGxQYXRoOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLAogICAgICAgICAgICAgICAgICBpZDogcCwKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgY29tcGxldGVBbmltYXRpb246IGZ1bmN0aW9uIChjLCB1LCBsKSB7CiAgICAgICAgICAgICAgICBvKCk7CiAgICAgICAgICAgICAgICB2YXIgcCA9IHModSwgbCk7CiAgICAgICAgICAgICAgICB0LnBvc3RNZXNzYWdlKHsgdHlwZTogImNvbXBsZXRlIiwgYW5pbWF0aW9uOiBjLCBpZDogcCB9KTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgICAgfSkoKSwKICAgICAgICAgIEltYWdlUHJlbG9hZGVyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBzID0gY3JlYXRlVGFnKCJjYW52YXMiKTsKICAgICAgICAgICAgICAocy53aWR0aCA9IDEpLCAocy5oZWlnaHQgPSAxKTsKICAgICAgICAgICAgICB2YXIgYyA9IHMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICAgICAgICByZXR1cm4gKGMuZmlsbFN0eWxlID0gInJnYmEoMCwwLDAsMCkiKSwgYy5maWxsUmVjdCgwLCAwLCAxLCAxKSwgczsKICAgICAgICAgICAgfSkoKTsKICAgICAgICAgICAgZnVuY3Rpb24gdCgpIHsKICAgICAgICAgICAgICAodGhpcy5sb2FkZWRBc3NldHMgKz0gMSksCiAgICAgICAgICAgICAgICB0aGlzLmxvYWRlZEFzc2V0cyA9PT0gdGhpcy50b3RhbEltYWdlcyAmJgogICAgICAgICAgICAgICAgICB0aGlzLmxvYWRlZEZvb3RhZ2VzQ291bnQgPT09IHRoaXMudG90YWxGb290YWdlcyAmJgogICAgICAgICAgICAgICAgICB0aGlzLmltYWdlc0xvYWRlZENiICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VzTG9hZGVkQ2IobnVsbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcigpIHsKICAgICAgICAgICAgICAodGhpcy5sb2FkZWRGb290YWdlc0NvdW50ICs9IDEpLAogICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRBc3NldHMgPT09IHRoaXMudG90YWxJbWFnZXMgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWRGb290YWdlc0NvdW50ID09PSB0aGlzLnRvdGFsRm9vdGFnZXMgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZXNMb2FkZWRDYiAmJgogICAgICAgICAgICAgICAgICB0aGlzLmltYWdlc0xvYWRlZENiKG51bGwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG4ocywgYywgdSkgewogICAgICAgICAgICAgIHZhciBsID0gIiI7CiAgICAgICAgICAgICAgaWYgKHMuZSkgbCA9IHMucDsKICAgICAgICAgICAgICBlbHNlIGlmIChjKSB7CiAgICAgICAgICAgICAgICB2YXIgcCA9IHMucDsKICAgICAgICAgICAgICAgIHAuaW5kZXhPZigiaW1hZ2VzLyIpICE9PSAtMSAmJiAocCA9IHAuc3BsaXQoIi8iKVsxXSksCiAgICAgICAgICAgICAgICAgIChsID0gYyArIHApOwogICAgICAgICAgICAgIH0gZWxzZSAobCA9IHUpLCAobCArPSBzLnUgPyBzLnUgOiAiIiksIChsICs9IHMucCk7CiAgICAgICAgICAgICAgcmV0dXJuIGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gaShzKSB7CiAgICAgICAgICAgICAgdmFyIGMgPSAwLAogICAgICAgICAgICAgICAgdSA9IHNldEludGVydmFsKAogICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgKHMuZ2V0QkJveCgpLndpZHRoIHx8IGMgPiA1MDApICYmCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5faW1hZ2VMb2FkZWQoKSwgY2xlYXJJbnRlcnZhbCh1KSksCiAgICAgICAgICAgICAgICAgICAgICAoYyArPSAxKTsKICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpLAogICAgICAgICAgICAgICAgICA1MAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhKHMpIHsKICAgICAgICAgICAgICB2YXIgYyA9IHsgYXNzZXREYXRhOiBzIH0sCiAgICAgICAgICAgICAgICB1ID0gbihzLCB0aGlzLmFzc2V0c1BhdGgsIHRoaXMucGF0aCk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGRhdGFNYW5hZ2VyLmxvYWREYXRhKAogICAgICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgICAgICBmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgICAgICAgIChjLmltZyA9IGwpLCB0aGlzLl9mb290YWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSwKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIChjLmltZyA9IHt9KSwgdGhpcy5fZm9vdGFnZUxvYWRlZCgpOwogICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBjCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBvKCkgewogICAgICAgICAgICAgICh0aGlzLl9pbWFnZUxvYWRlZCA9IHQuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5fZm9vdGFnZUxvYWRlZCA9IHIuYmluZCh0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy50ZXN0SW1hZ2VMb2FkZWQgPSBpLmJpbmQodGhpcykpLAogICAgICAgICAgICAgICAgKHRoaXMuY3JlYXRlRm9vdGFnZURhdGEgPSBhLmJpbmQodGhpcykpLAogICAgICAgICAgICAgICAgKHRoaXMuYXNzZXRzUGF0aCA9ICIiKSwKICAgICAgICAgICAgICAgICh0aGlzLnBhdGggPSAiIiksCiAgICAgICAgICAgICAgICAodGhpcy50b3RhbEltYWdlcyA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMudG90YWxGb290YWdlcyA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMubG9hZGVkQXNzZXRzID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5sb2FkZWRGb290YWdlc0NvdW50ID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5pbWFnZXNMb2FkZWRDYiA9IG51bGwpLAogICAgICAgICAgICAgICAgKHRoaXMuaW1hZ2VzID0gW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgKG8ucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgbG9hZEFzc2V0czogZnVuY3Rpb24gKHMsIGMpIHsKICAgICAgICAgICAgICAgICAgdmFyIHU7CiAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VzTG9hZGVkQ2IgPSBjOwogICAgICAgICAgICAgICAgICB2YXIgbCA9IHMubGVuZ3RoOwogICAgICAgICAgICAgICAgICBmb3IgKHUgPSAwOyB1IDwgbDsgdSArPSAxKQogICAgICAgICAgICAgICAgICAgIHNbdV0ubGF5ZXJzIHx8CiAgICAgICAgICAgICAgICAgICAgICAoc1t1XS50ICYmIHNbdV0udCAhPT0gInNlcSIKICAgICAgICAgICAgICAgICAgICAgICAgPyBzW3VdLnQgPT09IDMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMudG90YWxGb290YWdlcyArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlcy5wdXNoKHRoaXMuY3JlYXRlRm9vdGFnZURhdGEoc1t1XSkpKQogICAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy50b3RhbEltYWdlcyArPSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlcy5wdXNoKHRoaXMuX2NyZWF0ZUltYWdlRGF0YShzW3VdKSkpKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBzZXRBc3NldHNQYXRoOiBmdW5jdGlvbiAocykgewogICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0c1BhdGggPSBzIHx8ICIiOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHNldFBhdGg6IGZ1bmN0aW9uIChzKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMucGF0aCA9IHMgfHwgIiI7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbG9hZGVkSW1hZ2VzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvdGFsSW1hZ2VzID09PSB0aGlzLmxvYWRlZEFzc2V0czsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBsb2FkZWRGb290YWdlczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b3RhbEZvb3RhZ2VzID09PSB0aGlzLmxvYWRlZEZvb3RhZ2VzQ291bnQ7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZGVzdHJveTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAodGhpcy5pbWFnZXNMb2FkZWRDYiA9IG51bGwpLCAodGhpcy5pbWFnZXMubGVuZ3RoID0gMCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZ2V0QXNzZXQ6IGZ1bmN0aW9uIChzKSB7CiAgICAgICAgICAgICAgICAgIGZvciAodmFyIGMgPSAwLCB1ID0gdGhpcy5pbWFnZXMubGVuZ3RoOyBjIDwgdTsgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VzW2NdLmFzc2V0RGF0YSA9PT0gcykKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmltYWdlc1tjXS5pbWc7CiAgICAgICAgICAgICAgICAgICAgYyArPSAxOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGNyZWF0ZUltZ0RhdGE6IGZ1bmN0aW9uIChzKSB7CiAgICAgICAgICAgICAgICAgIHZhciBjID0gbihzLCB0aGlzLmFzc2V0c1BhdGgsIHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgICAgdSA9IGNyZWF0ZVRhZygiaW1nIik7CiAgICAgICAgICAgICAgICAgICh1LmNyb3NzT3JpZ2luID0gImFub255bW91cyIpLAogICAgICAgICAgICAgICAgICAgIHUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRoaXMuX2ltYWdlTG9hZGVkLCAhMSksCiAgICAgICAgICAgICAgICAgICAgdS5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAgICAgImVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgKGwuaW1nID0gZSksIHRoaXMuX2ltYWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKHUuc3JjID0gYyk7CiAgICAgICAgICAgICAgICAgIHZhciBsID0geyBpbWc6IHUsIGFzc2V0RGF0YTogcyB9OwogICAgICAgICAgICAgICAgICByZXR1cm4gbDsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBjcmVhdGVJbWFnZURhdGE6IGZ1bmN0aW9uIChzKSB7CiAgICAgICAgICAgICAgICAgIHZhciBjID0gbihzLCB0aGlzLmFzc2V0c1BhdGgsIHRoaXMucGF0aCksCiAgICAgICAgICAgICAgICAgICAgdSA9IGNyZWF0ZU5TKCJpbWFnZSIpOwogICAgICAgICAgICAgICAgICBpc1NhZmFyaQogICAgICAgICAgICAgICAgICAgID8gdGhpcy50ZXN0SW1hZ2VMb2FkZWQodSkKICAgICAgICAgICAgICAgICAgICA6IHUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRoaXMuX2ltYWdlTG9hZGVkLCAhMSksCiAgICAgICAgICAgICAgICAgICAgdS5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAgICAgImVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgKGwuaW1nID0gZSksIHRoaXMuX2ltYWdlTG9hZGVkKCk7CiAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgdS5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsICJocmVmIiwgYyksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmQKICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmQodSkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fZWxlbWVudEhlbHBlci5hcHBlbmRDaGlsZCh1KTsKICAgICAgICAgICAgICAgICAgdmFyIGwgPSB7IGltZzogdSwgYXNzZXREYXRhOiBzIH07CiAgICAgICAgICAgICAgICAgIHJldHVybiBsOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGltYWdlTG9hZGVkOiB0LAogICAgICAgICAgICAgICAgZm9vdGFnZUxvYWRlZDogciwKICAgICAgICAgICAgICAgIHNldENhY2hlVHlwZTogZnVuY3Rpb24gKHMsIGMpIHsKICAgICAgICAgICAgICAgICAgcyA9PT0gInN2ZyIKICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy5fZWxlbWVudEhlbHBlciA9IGMpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NyZWF0ZUltYWdlRGF0YSA9IHRoaXMuY3JlYXRlSW1hZ2VEYXRhLmJpbmQodGhpcykpKQogICAgICAgICAgICAgICAgICAgIDogKHRoaXMuX2NyZWF0ZUltYWdlRGF0YSA9IHRoaXMuY3JlYXRlSW1nRGF0YS5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgbwogICAgICAgICAgICApOwogICAgICAgICAgfSkoKTsKICAgICAgICBmdW5jdGlvbiBCYXNlRXZlbnQoKSB7fQogICAgICAgIEJhc2VFdmVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICB0cmlnZ2VyRXZlbnQ6IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIGlmICh0aGlzLl9jYnNbZV0pCiAgICAgICAgICAgICAgZm9yICh2YXIgciA9IHRoaXMuX2Nic1tlXSwgbiA9IDA7IG4gPCByLmxlbmd0aDsgbiArPSAxKSByW25dKHQpOwogICAgICAgICAgfSwKICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgdGhpcy5fY2JzW2VdIHx8ICh0aGlzLl9jYnNbZV0gPSBbXSksCiAgICAgICAgICAgICAgdGhpcy5fY2JzW2VdLnB1c2godCksCiAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGUsIHQpOwogICAgICAgICAgICAgIH0uYmluZCh0aGlzKQogICAgICAgICAgICApOwogICAgICAgICAgfSwKICAgICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIGlmICh0KSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuX2Nic1tlXSkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgciA9IDAsIG4gPSB0aGlzLl9jYnNbZV0ubGVuZ3RoOyByIDwgbjsgKQogICAgICAgICAgICAgICAgICB0aGlzLl9jYnNbZV1bcl0gPT09IHQgJiYKICAgICAgICAgICAgICAgICAgICAodGhpcy5fY2JzW2VdLnNwbGljZShyLCAxKSwgKHIgLT0gMSksIChuIC09IDEpKSwKICAgICAgICAgICAgICAgICAgICAociArPSAxKTsKICAgICAgICAgICAgICAgIHRoaXMuX2Nic1tlXS5sZW5ndGggfHwgKHRoaXMuX2Nic1tlXSA9IG51bGwpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHRoaXMuX2Nic1tlXSA9IG51bGw7CiAgICAgICAgICB9LAogICAgICAgIH07CiAgICAgICAgdmFyIG1hcmtlclBhcnNlciA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIGUodCkgewogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgICAgbiA9IHQuc3BsaXQoYFxyCiAgICBgKSwKICAgICAgICAgICAgICAgICAgaSA9IHt9LAogICAgICAgICAgICAgICAgICBhID0gMCwKICAgICAgICAgICAgICAgICAgbyA9IDA7CiAgICAgICAgICAgICAgICBvIDwgbi5sZW5ndGg7CiAgICAgICAgICAgICAgICBvICs9IDEKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAociA9IG5bb10uc3BsaXQoIjoiKSkubGVuZ3RoID09PSAyICYmCiAgICAgICAgICAgICAgICAgICgoaVtyWzBdXSA9IHJbMV0udHJpbSgpKSwgKGEgKz0gMSkpOwogICAgICAgICAgICAgIGlmIChhID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoKTsKICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICBmb3IgKHZhciByID0gW10sIG4gPSAwOyBuIDwgdC5sZW5ndGg7IG4gKz0gMSkgewogICAgICAgICAgICAgICAgdmFyIGkgPSB0W25dLAogICAgICAgICAgICAgICAgICBhID0geyB0aW1lOiBpLnRtLCBkdXJhdGlvbjogaS5kciB9OwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgYS5wYXlsb2FkID0gSlNPTi5wYXJzZSh0W25dLmNtKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGEucGF5bG9hZCA9IGUodFtuXS5jbSk7CiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgICAgIGEucGF5bG9hZCA9IHsgbmFtZTogdFtuXS5jbSB9OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByLnB1c2goYSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICAgICB9OwogICAgICAgICAgfSkoKSwKICAgICAgICAgIFByb2plY3RJbnRlcmZhY2UgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmdW5jdGlvbiBlKHQpIHsKICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9ucy5wdXNoKHQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24gdChyKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBuID0gMCwgaSA9IHRoaXMuY29tcG9zaXRpb25zLmxlbmd0aDsgbiA8IGk7ICkgewogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb3NpdGlvbnNbbl0uZGF0YSAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9zaXRpb25zW25dLmRhdGEubm0gPT09IHIKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9uc1tuXS5wcmVwYXJlRnJhbWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb3NpdGlvbnNbbl0uZGF0YS54dCAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvc2l0aW9uc1tuXS5wcmVwYXJlRnJhbWUodGhpcy5jdXJyZW50RnJhbWUpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb3NpdGlvbnNbbl0uY29tcEludGVyZmFjZQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIG4gKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKHQuY29tcG9zaXRpb25zID0gW10pLAogICAgICAgICAgICAgICAgKHQuY3VycmVudEZyYW1lID0gMCksCiAgICAgICAgICAgICAgICAodC5yZWdpc3RlckNvbXBvc2l0aW9uID0gZSksCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pKCksCiAgICAgICAgICByZW5kZXJlcnMgPSB7fSwKICAgICAgICAgIHJlZ2lzdGVyUmVuZGVyZXIgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICByZW5kZXJlcnNbZV0gPSB0OwogICAgICAgICAgfTsKICAgICAgICBmdW5jdGlvbiBnZXRSZW5kZXJlcihlKSB7CiAgICAgICAgICByZXR1cm4gcmVuZGVyZXJzW2VdOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBnZXRSZWdpc3RlcmVkUmVuZGVyZXIoKSB7CiAgICAgICAgICBpZiAocmVuZGVyZXJzLmNhbnZhcykgcmV0dXJuICJjYW52YXMiOwogICAgICAgICAgZm9yICh2YXIgZSBpbiByZW5kZXJlcnMpIGlmIChyZW5kZXJlcnNbZV0pIHJldHVybiBlOwogICAgICAgICAgcmV0dXJuICIiOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBfdHlwZW9mJDQoZSkgewogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgKF90eXBlb2YkNCA9CiAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdCAmJgogICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgICAgICB0LmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYKICAgICAgICAgICAgICAgICAgICAgIHQgIT09IFN5bWJvbC5wcm90b3R5cGUKICAgICAgICAgICAgICAgICAgICAgID8gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgICAgIDogdHlwZW9mIHQ7CiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICBfdHlwZW9mJDQoZSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHZhciBBbmltYXRpb25JdGVtID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgKHRoaXMuX2NicyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMubmFtZSA9ICIiKSwKICAgICAgICAgICAgKHRoaXMucGF0aCA9ICIiKSwKICAgICAgICAgICAgKHRoaXMuaXNMb2FkZWQgPSAhMSksCiAgICAgICAgICAgICh0aGlzLmN1cnJlbnRGcmFtZSA9IDApLAogICAgICAgICAgICAodGhpcy5jdXJyZW50UmF3RnJhbWUgPSAwKSwKICAgICAgICAgICAgKHRoaXMuZmlyc3RGcmFtZSA9IDApLAogICAgICAgICAgICAodGhpcy50b3RhbEZyYW1lcyA9IDApLAogICAgICAgICAgICAodGhpcy5mcmFtZVJhdGUgPSAwKSwKICAgICAgICAgICAgKHRoaXMuZnJhbWVNdWx0ID0gMCksCiAgICAgICAgICAgICh0aGlzLnBsYXlTcGVlZCA9IDEpLAogICAgICAgICAgICAodGhpcy5wbGF5RGlyZWN0aW9uID0gMSksCiAgICAgICAgICAgICh0aGlzLnBsYXlDb3VudCA9IDApLAogICAgICAgICAgICAodGhpcy5hbmltYXRpb25EYXRhID0ge30pLAogICAgICAgICAgICAodGhpcy5hc3NldHMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLmlzUGF1c2VkID0gITApLAogICAgICAgICAgICAodGhpcy5hdXRvcGxheSA9ICExKSwKICAgICAgICAgICAgKHRoaXMubG9vcCA9ICEwKSwKICAgICAgICAgICAgKHRoaXMucmVuZGVyZXIgPSBudWxsKSwKICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uSUQgPSBjcmVhdGVFbGVtZW50SUQoKSksCiAgICAgICAgICAgICh0aGlzLmFzc2V0c1BhdGggPSAiIiksCiAgICAgICAgICAgICh0aGlzLnRpbWVDb21wbGV0ZWQgPSAwKSwKICAgICAgICAgICAgKHRoaXMuc2VnbWVudFBvcyA9IDApLAogICAgICAgICAgICAodGhpcy5pc1N1YmZyYW1lRW5hYmxlZCA9IGdldFN1YmZyYW1lRW5hYmxlZCgpKSwKICAgICAgICAgICAgKHRoaXMuc2VnbWVudHMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLl9pZGxlID0gITApLAogICAgICAgICAgICAodGhpcy5fY29tcGxldGVkTG9vcCA9ICExKSwKICAgICAgICAgICAgKHRoaXMucHJvamVjdEludGVyZmFjZSA9IFByb2plY3RJbnRlcmZhY2UoKSksCiAgICAgICAgICAgICh0aGlzLmltYWdlUHJlbG9hZGVyID0gbmV3IEltYWdlUHJlbG9hZGVyKCkpLAogICAgICAgICAgICAodGhpcy5hdWRpb0NvbnRyb2xsZXIgPSBhdWRpb0NvbnRyb2xsZXJGYWN0b3J5KCkpLAogICAgICAgICAgICAodGhpcy5tYXJrZXJzID0gW10pLAogICAgICAgICAgICAodGhpcy5jb25maWdBbmltYXRpb24gPSB0aGlzLmNvbmZpZ0FuaW1hdGlvbi5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgKHRoaXMub25TZXR1cEVycm9yID0gdGhpcy5vblNldHVwRXJyb3IuYmluZCh0aGlzKSksCiAgICAgICAgICAgICh0aGlzLm9uU2VnbWVudENvbXBsZXRlID0gdGhpcy5vblNlZ21lbnRDb21wbGV0ZS5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgKHRoaXMuZHJhd25GcmFtZUV2ZW50ID0gbmV3IEJNRW50ZXJGcmFtZUV2ZW50KAogICAgICAgICAgICAgICJkcmF3bkZyYW1lIiwKICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgMAogICAgICAgICAgICApKSwKICAgICAgICAgICAgKHRoaXMuZXhwcmVzc2lvbnNQbHVnaW4gPSBnZXRFeHByZXNzaW9uc1BsdWdpbigpKTsKICAgICAgICB9OwogICAgICAgIGV4dGVuZFByb3RvdHlwZShbQmFzZUV2ZW50XSwgQW5pbWF0aW9uSXRlbSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0UGFyYW1zID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgKGUud3JhcHBlciB8fCBlLmNvbnRhaW5lcikgJiYKICAgICAgICAgICAgICAodGhpcy53cmFwcGVyID0gZS53cmFwcGVyIHx8IGUuY29udGFpbmVyKTsKICAgICAgICAgICAgdmFyIHQgPSAic3ZnIjsKICAgICAgICAgICAgZS5hbmltVHlwZSA/ICh0ID0gZS5hbmltVHlwZSkgOiBlLnJlbmRlcmVyICYmICh0ID0gZS5yZW5kZXJlcik7CiAgICAgICAgICAgIHZhciByID0gZ2V0UmVuZGVyZXIodCk7CiAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyID0gbmV3IHIodGhpcywgZS5yZW5kZXJlclNldHRpbmdzKSksCiAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZWxvYWRlci5zZXRDYWNoZVR5cGUoCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5nbG9iYWxEYXRhLmRlZnMKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvamVjdEludGVyZmFjZSh0aGlzLnByb2plY3RJbnRlcmZhY2UpLAogICAgICAgICAgICAgICh0aGlzLmFuaW1UeXBlID0gdCksCiAgICAgICAgICAgICAgZS5sb29wID09PSAiIiB8fAogICAgICAgICAgICAgIGUubG9vcCA9PT0gbnVsbCB8fAogICAgICAgICAgICAgIGUubG9vcCA9PT0gdm9pZCAwIHx8CiAgICAgICAgICAgICAgZS5sb29wID09PSAhMAogICAgICAgICAgICAgICAgPyAodGhpcy5sb29wID0gITApCiAgICAgICAgICAgICAgICA6IGUubG9vcCA9PT0gITEKICAgICAgICAgICAgICAgID8gKHRoaXMubG9vcCA9ICExKQogICAgICAgICAgICAgICAgOiAodGhpcy5sb29wID0gcGFyc2VJbnQoZS5sb29wLCAxMCkpLAogICAgICAgICAgICAgICh0aGlzLmF1dG9wbGF5ID0gISgiYXV0b3BsYXkiIGluIGUpIHx8IGUuYXV0b3BsYXkpLAogICAgICAgICAgICAgICh0aGlzLm5hbWUgPSBlLm5hbWUgPyBlLm5hbWUgOiAiIiksCiAgICAgICAgICAgICAgKHRoaXMuYXV0b2xvYWRTZWdtZW50cyA9CiAgICAgICAgICAgICAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsICJhdXRvbG9hZFNlZ21lbnRzIikgfHwKICAgICAgICAgICAgICAgIGUuYXV0b2xvYWRTZWdtZW50cyksCiAgICAgICAgICAgICAgKHRoaXMuYXNzZXRzUGF0aCA9IGUuYXNzZXRzUGF0aCksCiAgICAgICAgICAgICAgKHRoaXMuaW5pdGlhbFNlZ21lbnQgPSBlLmluaXRpYWxTZWdtZW50KSwKICAgICAgICAgICAgICBlLmF1ZGlvRmFjdG9yeSAmJgogICAgICAgICAgICAgICAgdGhpcy5hdWRpb0NvbnRyb2xsZXIuc2V0QXVkaW9GYWN0b3J5KGUuYXVkaW9GYWN0b3J5KSwKICAgICAgICAgICAgICBlLmFuaW1hdGlvbkRhdGEKICAgICAgICAgICAgICAgID8gdGhpcy5zZXR1cEFuaW1hdGlvbihlLmFuaW1hdGlvbkRhdGEpCiAgICAgICAgICAgICAgICA6IGUucGF0aCAmJgogICAgICAgICAgICAgICAgICAoZS5wYXRoLmxhc3RJbmRleE9mKCJcXCIpICE9PSAtMQogICAgICAgICAgICAgICAgICAgID8gKHRoaXMucGF0aCA9IGUucGF0aC5zdWJzdHIoCiAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgIGUucGF0aC5sYXN0SW5kZXhPZigiXFwiKSArIDEKICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5wYXRoID0gZS5wYXRoLnN1YnN0cigKICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgZS5wYXRoLmxhc3RJbmRleE9mKCIvIikgKyAxCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZmlsZU5hbWUgPSBlLnBhdGguc3Vic3RyKGUucGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMSkpLAogICAgICAgICAgICAgICAgICAodGhpcy5maWxlTmFtZSA9IHRoaXMuZmlsZU5hbWUuc3Vic3RyKAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlTmFtZS5sYXN0SW5kZXhPZigiLmpzb24iKQogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgZGF0YU1hbmFnZXIubG9hZEFuaW1hdGlvbigKICAgICAgICAgICAgICAgICAgICBlLnBhdGgsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdBbmltYXRpb24sCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNldHVwRXJyb3IKICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5vblNldHVwRXJyb3IgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMudHJpZ2dlcigiZGF0YV9mYWlsZWQiKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnNldHVwQW5pbWF0aW9uID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgZGF0YU1hbmFnZXIuY29tcGxldGVBbmltYXRpb24oZSwgdGhpcy5jb25maWdBbmltYXRpb24pOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuc2V0RGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHQgJiYgX3R5cGVvZiQ0KHQpICE9PSAib2JqZWN0IiAmJiAodCA9IEpTT04ucGFyc2UodCkpOwogICAgICAgICAgICB2YXIgciA9IHsgd3JhcHBlcjogZSwgYW5pbWF0aW9uRGF0YTogdCB9LAogICAgICAgICAgICAgIG4gPSBlLmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIChyLnBhdGggPSBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltYXRpb24tcGF0aCIpCiAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltYXRpb24tcGF0aCIpLnZhbHVlCiAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1wYXRoIikKICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWJtLXBhdGgiKS52YWx1ZQogICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImJtLXBhdGgiKQogICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLXBhdGgiKS52YWx1ZQogICAgICAgICAgICAgIDogIiIpLAogICAgICAgICAgICAgIChyLmFuaW1UeXBlID0gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS10eXBlIikKICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS10eXBlIikudmFsdWUKICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tdHlwZSIpCiAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWJtLXR5cGUiKS52YWx1ZQogICAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiYm0tdHlwZSIpCiAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJibS10eXBlIikudmFsdWUKICAgICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tcmVuZGVyZXIiKQogICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1yZW5kZXJlciIpLnZhbHVlCiAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJibS1yZW5kZXJlciIpCiAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJibS1yZW5kZXJlciIpLnZhbHVlCiAgICAgICAgICAgICAgICA6IGdldFJlZ2lzdGVyZWRSZW5kZXJlcigpIHx8ICJjYW52YXMiKTsKICAgICAgICAgICAgdmFyIGkgPSBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltLWxvb3AiKQogICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS1sb29wIikudmFsdWUKICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWJtLWxvb3AiKQogICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tbG9vcCIpLnZhbHVlCiAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiYm0tbG9vcCIpCiAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiYm0tbG9vcCIpLnZhbHVlCiAgICAgICAgICAgICAgOiAiIjsKICAgICAgICAgICAgaSA9PT0gImZhbHNlIgogICAgICAgICAgICAgID8gKHIubG9vcCA9ICExKQogICAgICAgICAgICAgIDogaSA9PT0gInRydWUiCiAgICAgICAgICAgICAgPyAoci5sb29wID0gITApCiAgICAgICAgICAgICAgOiBpICE9PSAiIiAmJiAoci5sb29wID0gcGFyc2VJbnQoaSwgMTApKTsKICAgICAgICAgICAgdmFyIGEgPSBuLmdldE5hbWVkSXRlbSgiZGF0YS1hbmltLWF1dG9wbGF5IikKICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW0tYXV0b3BsYXkiKS52YWx1ZQogICAgICAgICAgICAgIDogbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tYXV0b3BsYXkiKQogICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tYXV0b3BsYXkiKS52YWx1ZQogICAgICAgICAgICAgIDogIW4uZ2V0TmFtZWRJdGVtKCJibS1hdXRvcGxheSIpIHx8CiAgICAgICAgICAgICAgICBuLmdldE5hbWVkSXRlbSgiYm0tYXV0b3BsYXkiKS52YWx1ZTsKICAgICAgICAgICAgKHIuYXV0b3BsYXkgPSBhICE9PSAiZmFsc2UiKSwKICAgICAgICAgICAgICAoci5uYW1lID0gbi5nZXROYW1lZEl0ZW0oImRhdGEtbmFtZSIpCiAgICAgICAgICAgICAgICA/IG4uZ2V0TmFtZWRJdGVtKCJkYXRhLW5hbWUiKS52YWx1ZQogICAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1uYW1lIikKICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYm0tbmFtZSIpLnZhbHVlCiAgICAgICAgICAgICAgICA6IG4uZ2V0TmFtZWRJdGVtKCJibS1uYW1lIikKICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLW5hbWUiKS52YWx1ZQogICAgICAgICAgICAgICAgOiAiIiksCiAgICAgICAgICAgICAgKG4uZ2V0TmFtZWRJdGVtKCJkYXRhLWFuaW0tcHJlcmVuZGVyIikKICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImRhdGEtYW5pbS1wcmVyZW5kZXIiKS52YWx1ZQogICAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1wcmVyZW5kZXIiKQogICAgICAgICAgICAgICAgPyBuLmdldE5hbWVkSXRlbSgiZGF0YS1ibS1wcmVyZW5kZXIiKS52YWx1ZQogICAgICAgICAgICAgICAgOiBuLmdldE5hbWVkSXRlbSgiYm0tcHJlcmVuZGVyIikKICAgICAgICAgICAgICAgID8gbi5nZXROYW1lZEl0ZW0oImJtLXByZXJlbmRlciIpLnZhbHVlCiAgICAgICAgICAgICAgICA6ICIiKSA9PT0gImZhbHNlIiAmJiAoci5wcmVyZW5kZXIgPSAhMSksCiAgICAgICAgICAgICAgci5wYXRoID8gdGhpcy5zZXRQYXJhbXMocikgOiB0aGlzLnRyaWdnZXIoImRlc3Ryb3kiKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmluY2x1ZGVMYXllcnMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBlLm9wID4gdGhpcy5hbmltYXRpb25EYXRhLm9wICYmCiAgICAgICAgICAgICAgKCh0aGlzLmFuaW1hdGlvbkRhdGEub3AgPSBlLm9wKSwKICAgICAgICAgICAgICAodGhpcy50b3RhbEZyYW1lcyA9IE1hdGguZmxvb3IoZS5vcCAtIHRoaXMuYW5pbWF0aW9uRGF0YS5pcCkpKTsKICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBuID0gdGhpcy5hbmltYXRpb25EYXRhLmxheWVycywKICAgICAgICAgICAgICBpID0gbi5sZW5ndGgsCiAgICAgICAgICAgICAgYSA9IGUubGF5ZXJzLAogICAgICAgICAgICAgIG8gPSBhLmxlbmd0aDsKICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG87IHIgKz0gMSkKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgaTsgKSB7CiAgICAgICAgICAgICAgICBpZiAoblt0XS5pZCA9PT0gYVtyXS5pZCkgewogICAgICAgICAgICAgICAgICBuW3RdID0gYVtyXTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0ICs9IDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKChlLmNoYXJzIHx8IGUuZm9udHMpICYmCiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlci5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmFkZENoYXJzKGUuY2hhcnMpLAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmFkZEZvbnRzKAogICAgICAgICAgICAgICAgICBlLmZvbnRzLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZGVmcwogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgZS5hc3NldHMpCiAgICAgICAgICAgICkKICAgICAgICAgICAgICBmb3IgKGkgPSBlLmFzc2V0cy5sZW5ndGgsIHQgPSAwOyB0IDwgaTsgdCArPSAxKQogICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhLmFzc2V0cy5wdXNoKGUuYXNzZXRzW3RdKTsKICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uRGF0YS5fX2NvbXBsZXRlID0gITEpLAogICAgICAgICAgICAgIGRhdGFNYW5hZ2VyLmNvbXBsZXRlQW5pbWF0aW9uKAogICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25EYXRhLAogICAgICAgICAgICAgICAgdGhpcy5vblNlZ21lbnRDb21wbGV0ZQogICAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5vblNlZ21lbnRDb21wbGV0ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRGF0YSA9IGU7CiAgICAgICAgICAgIHZhciB0ID0gZ2V0RXhwcmVzc2lvbnNQbHVnaW4oKTsKICAgICAgICAgICAgdCAmJiB0LmluaXRFeHByZXNzaW9ucyh0aGlzKSwgdGhpcy5sb2FkTmV4dFNlZ21lbnQoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmxvYWROZXh0U2VnbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmFuaW1hdGlvbkRhdGEuc2VnbWVudHM7CiAgICAgICAgICAgIGlmICghZSB8fCBlLmxlbmd0aCA9PT0gMCB8fCAhdGhpcy5hdXRvbG9hZFNlZ21lbnRzKQogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRhdGFfcmVhZHkiKSwKICAgICAgICAgICAgICAgIHZvaWQgKHRoaXMudGltZUNvbXBsZXRlZCA9IHRoaXMudG90YWxGcmFtZXMpCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgdmFyIHQgPSBlLnNoaWZ0KCk7CiAgICAgICAgICAgIHRoaXMudGltZUNvbXBsZXRlZCA9IHQudGltZSAqIHRoaXMuZnJhbWVSYXRlOwogICAgICAgICAgICB2YXIgciA9IHRoaXMucGF0aCArIHRoaXMuZmlsZU5hbWUgKyAiXyIgKyB0aGlzLnNlZ21lbnRQb3MgKyAiLmpzb24iOwogICAgICAgICAgICAodGhpcy5zZWdtZW50UG9zICs9IDEpLAogICAgICAgICAgICAgIGRhdGFNYW5hZ2VyLmxvYWREYXRhKAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIHRoaXMuaW5jbHVkZUxheWVycy5iaW5kKHRoaXMpLAogICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRhdGFfZmFpbGVkIik7CiAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykKICAgICAgICAgICAgICApOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUubG9hZFNlZ21lbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEuc2VnbWVudHMgfHwKICAgICAgICAgICAgICAodGhpcy50aW1lQ29tcGxldGVkID0gdGhpcy50b3RhbEZyYW1lcyksCiAgICAgICAgICAgICAgdGhpcy5sb2FkTmV4dFNlZ21lbnQoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmltYWdlc0xvYWRlZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJsb2FkZWRfaW1hZ2VzIiksIHRoaXMuY2hlY2tMb2FkZWQoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnByZWxvYWRJbWFnZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmVsb2FkZXIuc2V0QXNzZXRzUGF0aCh0aGlzLmFzc2V0c1BhdGgpLAogICAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmVsb2FkZXIuc2V0UGF0aCh0aGlzLnBhdGgpLAogICAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmVsb2FkZXIubG9hZEFzc2V0cygKICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRGF0YS5hc3NldHMsCiAgICAgICAgICAgICAgICB0aGlzLmltYWdlc0xvYWRlZC5iaW5kKHRoaXMpCiAgICAgICAgICAgICAgKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmNvbmZpZ0FuaW1hdGlvbiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVyKQogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25EYXRhID0gZSksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNlZ21lbnQKICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy50b3RhbEZyYW1lcyA9IE1hdGguZmxvb3IoCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNlZ21lbnRbMV0gLSB0aGlzLmluaXRpYWxTZWdtZW50WzBdCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmZpcnN0RnJhbWUgPSBNYXRoLnJvdW5kKHRoaXMuaW5pdGlhbFNlZ21lbnRbMF0pKSkKICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy50b3RhbEZyYW1lcyA9IE1hdGguZmxvb3IoCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRGF0YS5vcCAtIHRoaXMuYW5pbWF0aW9uRGF0YS5pcAogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5maXJzdEZyYW1lID0gTWF0aC5yb3VuZCh0aGlzLmFuaW1hdGlvbkRhdGEuaXApKSksCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuY29uZmlnQW5pbWF0aW9uKGUpLAogICAgICAgICAgICAgICAgICBlLmFzc2V0cyB8fCAoZS5hc3NldHMgPSBbXSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmFzc2V0cyA9IHRoaXMuYW5pbWF0aW9uRGF0YS5hc3NldHMpLAogICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZVJhdGUgPSB0aGlzLmFuaW1hdGlvbkRhdGEuZnIpLAogICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZU11bHQgPSB0aGlzLmFuaW1hdGlvbkRhdGEuZnIgLyAxZTMpLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNlYXJjaEV4dHJhQ29tcG9zaXRpb25zKGUuYXNzZXRzKSwKICAgICAgICAgICAgICAgICAgKHRoaXMubWFya2VycyA9IG1hcmtlclBhcnNlcihlLm1hcmtlcnMgfHwgW10pKSwKICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJjb25maWdfcmVhZHkiKSwKICAgICAgICAgICAgICAgICAgdGhpcy5wcmVsb2FkSW1hZ2VzKCksCiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZFNlZ21lbnRzKCksCiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYUZyYW1lTW9kaWZpZXIoKSwKICAgICAgICAgICAgICAgICAgdGhpcy53YWl0Rm9yRm9udHNMb2FkZWQoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5pc1BhdXNlZCAmJiB0aGlzLmF1ZGlvQ29udHJvbGxlci5wYXVzZSgpOwogICAgICAgICAgICAgIH0gY2F0Y2ggKHQpIHsKICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckNvbmZpZ0Vycm9yKHQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLndhaXRGb3JGb250c0xvYWRlZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5yZW5kZXJlciAmJgogICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuaXNMb2FkZWQKICAgICAgICAgICAgICAgID8gdGhpcy5jaGVja0xvYWRlZCgpCiAgICAgICAgICAgICAgICA6IHNldFRpbWVvdXQodGhpcy53YWl0Rm9yRm9udHNMb2FkZWQuYmluZCh0aGlzKSwgMjApKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmNoZWNrTG9hZGVkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgIXRoaXMuaXNMb2FkZWQgJiYKICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuaXNMb2FkZWQgJiYKICAgICAgICAgICAgICAodGhpcy5pbWFnZVByZWxvYWRlci5sb2FkZWRJbWFnZXMoKSB8fAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXJlclR5cGUgIT09ICJjYW52YXMiKSAmJgogICAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmVsb2FkZXIubG9hZGVkRm9vdGFnZXMoKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gITA7CiAgICAgICAgICAgICAgdmFyIGUgPSBnZXRFeHByZXNzaW9uc1BsdWdpbigpOwogICAgICAgICAgICAgIGUgJiYgZS5pbml0RXhwcmVzc2lvbnModGhpcyksCiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmluaXRJdGVtcygpLAogICAgICAgICAgICAgICAgc2V0VGltZW91dCgKICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigiRE9NTG9hZGVkIik7CiAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSwKICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIHRoaXMuZ290b0ZyYW1lKCksCiAgICAgICAgICAgICAgICB0aGlzLmF1dG9wbGF5ICYmIHRoaXMucGxheSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5yZXNpemUgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciA9IHR5cGVvZiBlID09ICJudW1iZXIiID8gZSA6IHZvaWQgMCwKICAgICAgICAgICAgICBuID0gdHlwZW9mIHQgPT0gIm51bWJlciIgPyB0IDogdm9pZCAwOwogICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnVwZGF0ZUNvbnRhaW5lclNpemUociwgbik7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRTdWJmcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuaXNTdWJmcmFtZUVuYWJsZWQgPSAhIWU7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5nb3RvRnJhbWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICh0aGlzLmN1cnJlbnRGcmFtZSA9IHRoaXMuaXNTdWJmcmFtZUVuYWJsZWQKICAgICAgICAgICAgICA/IHRoaXMuY3VycmVudFJhd0ZyYW1lCiAgICAgICAgICAgICAgOiB+fnRoaXMuY3VycmVudFJhd0ZyYW1lKSwKICAgICAgICAgICAgICB0aGlzLnRpbWVDb21wbGV0ZWQgIT09IHRoaXMudG90YWxGcmFtZXMgJiYKICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEZyYW1lID4gdGhpcy50aW1lQ29tcGxldGVkICYmCiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50RnJhbWUgPSB0aGlzLnRpbWVDb21wbGV0ZWQpLAogICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigiZW50ZXJGcmFtZSIpLAogICAgICAgICAgICAgIHRoaXMucmVuZGVyRnJhbWUoKSwKICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImRyYXduRnJhbWUiKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5pc0xvYWRlZCAhPT0gITEgJiYgdGhpcy5yZW5kZXJlcikKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc1BsdWdpbiAmJiB0aGlzLmV4cHJlc3Npb25zUGx1Z2luLnJlc2V0RnJhbWUoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXJGcmFtZSgKICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSArIHRoaXMuZmlyc3RGcmFtZQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlclJlbmRlckZyYW1lRXJyb3IoZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIChlICYmIHRoaXMubmFtZSAhPT0gZSkgfHwKICAgICAgICAgICAgICAodGhpcy5pc1BhdXNlZCA9PT0gITAgJiYKICAgICAgICAgICAgICAgICgodGhpcy5pc1BhdXNlZCA9ICExKSwKICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigiX3BsYXkiKSwKICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9Db250cm9sbGVyLnJlc3VtZSgpLAogICAgICAgICAgICAgICAgdGhpcy5faWRsZSAmJiAoKHRoaXMuX2lkbGUgPSAhMSksIHRoaXMudHJpZ2dlcigiX2FjdGl2ZSIpKSkpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucGF1c2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8CiAgICAgICAgICAgICAgKHRoaXMuaXNQYXVzZWQgPT09ICExICYmCiAgICAgICAgICAgICAgICAoKHRoaXMuaXNQYXVzZWQgPSAhMCksCiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoIl9wYXVzZSIpLAogICAgICAgICAgICAgICAgKHRoaXMuX2lkbGUgPSAhMCksCiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoIl9pZGxlIiksCiAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvQ29udHJvbGxlci5wYXVzZSgpKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS50b2dnbGVQYXVzZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIChlICYmIHRoaXMubmFtZSAhPT0gZSkgfHwKICAgICAgICAgICAgICAodGhpcy5pc1BhdXNlZCA9PT0gITAgPyB0aGlzLnBsYXkoKSA6IHRoaXMucGF1c2UoKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgKGUgJiYgdGhpcy5uYW1lICE9PSBlKSB8fAogICAgICAgICAgICAgICh0aGlzLnBhdXNlKCksCiAgICAgICAgICAgICAgKHRoaXMucGxheUNvdW50ID0gMCksCiAgICAgICAgICAgICAgKHRoaXMuX2NvbXBsZXRlZExvb3AgPSAhMSksCiAgICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSgwKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5nZXRNYXJrZXJEYXRhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgZm9yICh2YXIgdCwgciA9IDA7IHIgPCB0aGlzLm1hcmtlcnMubGVuZ3RoOyByICs9IDEpCiAgICAgICAgICAgICAgaWYgKCh0ID0gdGhpcy5tYXJrZXJzW3JdKS5wYXlsb2FkICYmIHQucGF5bG9hZC5uYW1lID09PSBlKQogICAgICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ29Ub0FuZFN0b3AgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICBpZiAoIXIgfHwgdGhpcy5uYW1lID09PSByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSBOdW1iZXIoZSk7CiAgICAgICAgICAgICAgaWYgKGlzTmFOKG4pKSB7CiAgICAgICAgICAgICAgICB2YXIgaSA9IHRoaXMuZ2V0TWFya2VyRGF0YShlKTsKICAgICAgICAgICAgICAgIGkgJiYgdGhpcy5nb1RvQW5kU3RvcChpLnRpbWUsICEwKTsKICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICAgPyB0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKGUpCiAgICAgICAgICAgICAgICAgIDogdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZShlICogdGhpcy5mcmFtZU1vZGlmaWVyKTsKICAgICAgICAgICAgICB0aGlzLnBhdXNlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdvVG9BbmRQbGF5ID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgaWYgKCFyIHx8IHRoaXMubmFtZSA9PT0gcikgewogICAgICAgICAgICAgIHZhciBuID0gTnVtYmVyKGUpOwogICAgICAgICAgICAgIGlmIChpc05hTihuKSkgewogICAgICAgICAgICAgICAgdmFyIGkgPSB0aGlzLmdldE1hcmtlckRhdGEoZSk7CiAgICAgICAgICAgICAgICBpICYmCiAgICAgICAgICAgICAgICAgIChpLmR1cmF0aW9uCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnBsYXlTZWdtZW50cyhbaS50aW1lLCBpLnRpbWUgKyBpLmR1cmF0aW9uXSwgITApCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmdvVG9BbmRTdG9wKGkudGltZSwgITApKTsKICAgICAgICAgICAgICB9IGVsc2UgdGhpcy5nb1RvQW5kU3RvcChuLCB0LCByKTsKICAgICAgICAgICAgICB0aGlzLnBsYXkoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuYWR2YW5jZVRpbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBpZiAodGhpcy5pc1BhdXNlZCAhPT0gITAgJiYgdGhpcy5pc0xvYWRlZCAhPT0gITEpIHsKICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuY3VycmVudFJhd0ZyYW1lICsgZSAqIHRoaXMuZnJhbWVNb2RpZmllciwKICAgICAgICAgICAgICAgIHIgPSAhMTsKICAgICAgICAgICAgICB0ID49IHRoaXMudG90YWxGcmFtZXMgLSAxICYmIHRoaXMuZnJhbWVNb2RpZmllciA+IDAKICAgICAgICAgICAgICAgID8gdGhpcy5sb29wICYmIHRoaXMucGxheUNvdW50ICE9PSB0aGlzLmxvb3AKICAgICAgICAgICAgICAgICAgPyB0ID49IHRoaXMudG90YWxGcmFtZXMKICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy5wbGF5Q291bnQgKz0gMSksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2VnbWVudHModCAlIHRoaXMudG90YWxGcmFtZXMpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKHQgJSB0aGlzLnRvdGFsRnJhbWVzKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2NvbXBsZXRlZExvb3AgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlcigibG9vcENvbXBsZXRlIikpKQogICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSh0KQogICAgICAgICAgICAgICAgICA6IHRoaXMuY2hlY2tTZWdtZW50cygKICAgICAgICAgICAgICAgICAgICAgIHQgPiB0aGlzLnRvdGFsRnJhbWVzID8gdCAlIHRoaXMudG90YWxGcmFtZXMgOiAwCiAgICAgICAgICAgICAgICAgICAgKSB8fCAoKHIgPSAhMCksICh0ID0gdGhpcy50b3RhbEZyYW1lcyAtIDEpKQogICAgICAgICAgICAgICAgOiB0IDwgMAogICAgICAgICAgICAgICAgPyB0aGlzLmNoZWNrU2VnbWVudHModCAlIHRoaXMudG90YWxGcmFtZXMpIHx8CiAgICAgICAgICAgICAgICAgICghdGhpcy5sb29wIHx8ICh0aGlzLnBsYXlDb3VudC0tIDw9IDAgJiYgdGhpcy5sb29wICE9PSAhMCkKICAgICAgICAgICAgICAgICAgICA/ICgociA9ICEwKSwgKHQgPSAwKSkKICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsRnJhbWVzICsgKHQgJSB0aGlzLnRvdGFsRnJhbWVzKQogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRlZExvb3AKICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnRyaWdnZXIoImxvb3BDb21wbGV0ZSIpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMuX2NvbXBsZXRlZExvb3AgPSAhMCkpKQogICAgICAgICAgICAgICAgOiB0aGlzLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlKHQpLAogICAgICAgICAgICAgICAgciAmJgogICAgICAgICAgICAgICAgICAodGhpcy5zZXRDdXJyZW50UmF3RnJhbWVWYWx1ZSh0KSwKICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSgpLAogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoImNvbXBsZXRlIikpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5hZGp1c3RTZWdtZW50ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgKHRoaXMucGxheUNvdW50ID0gMCksCiAgICAgICAgICAgICAgZVsxXSA8IGVbMF0KICAgICAgICAgICAgICAgID8gKHRoaXMuZnJhbWVNb2RpZmllciA+IDAgJiYKICAgICAgICAgICAgICAgICAgICAodGhpcy5wbGF5U3BlZWQgPCAwCiAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2V0U3BlZWQoLXRoaXMucGxheVNwZWVkKQogICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNldERpcmVjdGlvbigtMSkpLAogICAgICAgICAgICAgICAgICAodGhpcy50b3RhbEZyYW1lcyA9IGVbMF0gLSBlWzFdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudGltZUNvbXBsZXRlZCA9IHRoaXMudG90YWxGcmFtZXMpLAogICAgICAgICAgICAgICAgICAodGhpcy5maXJzdEZyYW1lID0gZVsxXSksCiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUodGhpcy50b3RhbEZyYW1lcyAtIDAuMDAxIC0gdCkpCiAgICAgICAgICAgICAgICA6IGVbMV0gPiBlWzBdICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lTW9kaWZpZXIgPCAwICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMucGxheVNwZWVkIDwgMAogICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNldFNwZWVkKC10aGlzLnBsYXlTcGVlZCkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZXREaXJlY3Rpb24oMSkpLAogICAgICAgICAgICAgICAgICAodGhpcy50b3RhbEZyYW1lcyA9IGVbMV0gLSBlWzBdKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudGltZUNvbXBsZXRlZCA9IHRoaXMudG90YWxGcmFtZXMpLAogICAgICAgICAgICAgICAgICAodGhpcy5maXJzdEZyYW1lID0gZVswXSksCiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudFJhd0ZyYW1lVmFsdWUoMC4wMDEgKyB0KSksCiAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJzZWdtZW50U3RhcnQiKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnNldFNlZ21lbnQgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciA9IC0xOwogICAgICAgICAgICB0aGlzLmlzUGF1c2VkICYmCiAgICAgICAgICAgICAgKHRoaXMuY3VycmVudFJhd0ZyYW1lICsgdGhpcy5maXJzdEZyYW1lIDwgZQogICAgICAgICAgICAgICAgPyAociA9IGUpCiAgICAgICAgICAgICAgICA6IHRoaXMuY3VycmVudFJhd0ZyYW1lICsgdGhpcy5maXJzdEZyYW1lID4gdCAmJiAociA9IHQgLSBlKSksCiAgICAgICAgICAgICAgKHRoaXMuZmlyc3RGcmFtZSA9IGUpLAogICAgICAgICAgICAgICh0aGlzLnRvdGFsRnJhbWVzID0gdCAtIGUpLAogICAgICAgICAgICAgICh0aGlzLnRpbWVDb21wbGV0ZWQgPSB0aGlzLnRvdGFsRnJhbWVzKSwKICAgICAgICAgICAgICByICE9PSAtMSAmJiB0aGlzLmdvVG9BbmRTdG9wKHIsICEwKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnBsYXlTZWdtZW50cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAodCAmJiAodGhpcy5zZWdtZW50cy5sZW5ndGggPSAwKSwgX3R5cGVvZiQ0KGVbMF0pID09PSAib2JqZWN0IikKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICBuID0gZS5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgdGhpcy5zZWdtZW50cy5wdXNoKGVbcl0pOwogICAgICAgICAgICB9IGVsc2UgdGhpcy5zZWdtZW50cy5wdXNoKGUpOwogICAgICAgICAgICB0aGlzLnNlZ21lbnRzLmxlbmd0aCAmJgogICAgICAgICAgICAgIHQgJiYKICAgICAgICAgICAgICB0aGlzLmFkanVzdFNlZ21lbnQodGhpcy5zZWdtZW50cy5zaGlmdCgpLCAwKSwKICAgICAgICAgICAgICB0aGlzLmlzUGF1c2VkICYmIHRoaXMucGxheSgpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUucmVzZXRTZWdtZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICh0aGlzLnNlZ21lbnRzLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgIHRoaXMuc2VnbWVudHMucHVzaChbCiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEuaXAsCiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRhdGEub3AsCiAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgZSAmJiB0aGlzLmNoZWNrU2VnbWVudHMoMCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5jaGVja1NlZ21lbnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAhIXRoaXMuc2VnbWVudHMubGVuZ3RoICYmCiAgICAgICAgICAgICAgKHRoaXMuYWRqdXN0U2VnbWVudCh0aGlzLnNlZ21lbnRzLnNoaWZ0KCksIGUpLCAhMCkKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8CiAgICAgICAgICAgICAgIXRoaXMucmVuZGVyZXIgfHwKICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlci5kZXN0cm95KCksCiAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZWxvYWRlci5kZXN0cm95KCksCiAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCJkZXN0cm95IiksCiAgICAgICAgICAgICAgKHRoaXMuX2NicyA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLm9uRW50ZXJGcmFtZSA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLm9uTG9vcENvbXBsZXRlID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMub25Db21wbGV0ZSA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLm9uU2VnbWVudFN0YXJ0ID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMub25EZXN0cm95ID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMucmVuZGVyZXIgPSBudWxsKSwKICAgICAgICAgICAgICAodGhpcy5leHByZXNzaW9uc1BsdWdpbiA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLmltYWdlUHJlbG9hZGVyID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMucHJvamVjdEludGVyZmFjZSA9IG51bGwpKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnNldEN1cnJlbnRSYXdGcmFtZVZhbHVlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgKHRoaXMuY3VycmVudFJhd0ZyYW1lID0gZSksIHRoaXMuZ290b0ZyYW1lKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRTcGVlZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICh0aGlzLnBsYXlTcGVlZCA9IGUpLCB0aGlzLnVwZGFGcmFtZU1vZGlmaWVyKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXREaXJlY3Rpb24gPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAodGhpcy5wbGF5RGlyZWN0aW9uID0gZSA8IDAgPyAtMSA6IDEpLCB0aGlzLnVwZGFGcmFtZU1vZGlmaWVyKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zZXRMb29wID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy5sb29wID0gZTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnNldFZvbHVtZSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICh0ICYmIHRoaXMubmFtZSAhPT0gdCkgfHwgdGhpcy5hdWRpb0NvbnRyb2xsZXIuc2V0Vm9sdW1lKGUpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ2V0Vm9sdW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5hdWRpb0NvbnRyb2xsZXIuZ2V0Vm9sdW1lKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5tdXRlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgKGUgJiYgdGhpcy5uYW1lICE9PSBlKSB8fCB0aGlzLmF1ZGlvQ29udHJvbGxlci5tdXRlKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS51bm11dGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAoZSAmJiB0aGlzLm5hbWUgIT09IGUpIHx8IHRoaXMuYXVkaW9Db250cm9sbGVyLnVubXV0ZSgpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUudXBkYUZyYW1lTW9kaWZpZXIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICh0aGlzLmZyYW1lTW9kaWZpZXIgPQogICAgICAgICAgICAgIHRoaXMuZnJhbWVNdWx0ICogdGhpcy5wbGF5U3BlZWQgKiB0aGlzLnBsYXlEaXJlY3Rpb24pLAogICAgICAgICAgICAgIHRoaXMuYXVkaW9Db250cm9sbGVyLnNldFJhdGUodGhpcy5wbGF5U3BlZWQgKiB0aGlzLnBsYXlEaXJlY3Rpb24pOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuZ2V0UGF0aCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0aDsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdldEFzc2V0c1BhdGggPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCA9ICIiOwogICAgICAgICAgICBpZiAoZS5lKSB0ID0gZS5wOwogICAgICAgICAgICBlbHNlIGlmICh0aGlzLmFzc2V0c1BhdGgpIHsKICAgICAgICAgICAgICB2YXIgciA9IGUucDsKICAgICAgICAgICAgICByLmluZGV4T2YoImltYWdlcy8iKSAhPT0gLTEgJiYgKHIgPSByLnNwbGl0KCIvIilbMV0pLAogICAgICAgICAgICAgICAgKHQgPSB0aGlzLmFzc2V0c1BhdGggKyByKTsKICAgICAgICAgICAgfSBlbHNlICh0ID0gdGhpcy5wYXRoKSwgKHQgKz0gZS51ID8gZS51IDogIiIpLCAodCArPSBlLnApOwogICAgICAgICAgICByZXR1cm4gdDsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdldEFzc2V0RGF0YSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gdGhpcy5hc3NldHMubGVuZ3RoOyB0IDwgcjsgKSB7CiAgICAgICAgICAgICAgaWYgKGUgPT09IHRoaXMuYXNzZXRzW3RdLmlkKSByZXR1cm4gdGhpcy5hc3NldHNbdF07CiAgICAgICAgICAgICAgdCArPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5oaWRlKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNob3coKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLmdldER1cmF0aW9uID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIGUgPyB0aGlzLnRvdGFsRnJhbWVzIDogdGhpcy50b3RhbEZyYW1lcyAvIHRoaXMuZnJhbWVSYXRlOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUudXBkYXRlRG9jdW1lbnREYXRhID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmdldEVsZW1lbnRCeVBhdGgoZSkudXBkYXRlRG9jdW1lbnREYXRhKHQsIHIpOwogICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgICB9KSwKICAgICAgICAgIChBbmltYXRpb25JdGVtLnByb3RvdHlwZS50cmlnZ2VyID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKHRoaXMuX2NicyAmJiB0aGlzLl9jYnNbZV0pCiAgICAgICAgICAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJlbnRlckZyYW1lIjoKICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICBuZXcgQk1FbnRlckZyYW1lRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsRnJhbWVzLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZU1vZGlmaWVyCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImRyYXduRnJhbWUiOgogICAgICAgICAgICAgICAgICAodGhpcy5kcmF3bkZyYW1lRXZlbnQuY3VycmVudFRpbWUgPSB0aGlzLmN1cnJlbnRGcmFtZSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZHJhd25GcmFtZUV2ZW50LnRvdGFsVGltZSA9IHRoaXMudG90YWxGcmFtZXMpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmRyYXduRnJhbWVFdmVudC5kaXJlY3Rpb24gPSB0aGlzLmZyYW1lTW9kaWZpZXIpLAogICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGUsIHRoaXMuZHJhd25GcmFtZUV2ZW50KTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJsb29wQ29tcGxldGUiOgogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgIG5ldyBCTUNvbXBsZXRlTG9vcEV2ZW50KAogICAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9vcCwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGxheUNvdW50LAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZU11bHQKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiY29tcGxldGUiOgogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChlLCBuZXcgQk1Db21wbGV0ZUV2ZW50KGUsIHRoaXMuZnJhbWVNdWx0KSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAic2VnbWVudFN0YXJ0IjoKICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoCiAgICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgICBuZXcgQk1TZWdtZW50U3RhcnRFdmVudCgKICAgICAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpcnN0RnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdGFsRnJhbWVzCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImRlc3Ryb3kiOgogICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChlLCBuZXcgQk1EZXN0cm95RXZlbnQoZSwgdGhpcykpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgZSA9PT0gImVudGVyRnJhbWUiICYmCiAgICAgICAgICAgICAgdGhpcy5vbkVudGVyRnJhbWUgJiYKICAgICAgICAgICAgICB0aGlzLm9uRW50ZXJGcmFtZS5jYWxsKAogICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgIG5ldyBCTUVudGVyRnJhbWVFdmVudCgKICAgICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUsCiAgICAgICAgICAgICAgICAgIHRoaXMudG90YWxGcmFtZXMsCiAgICAgICAgICAgICAgICAgIHRoaXMuZnJhbWVNdWx0CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBlID09PSAibG9vcENvbXBsZXRlIiAmJgogICAgICAgICAgICAgICAgdGhpcy5vbkxvb3BDb21wbGV0ZSAmJgogICAgICAgICAgICAgICAgdGhpcy5vbkxvb3BDb21wbGV0ZS5jYWxsKAogICAgICAgICAgICAgICAgICB0aGlzLAogICAgICAgICAgICAgICAgICBuZXcgQk1Db21wbGV0ZUxvb3BFdmVudCgKICAgICAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgICAgIHRoaXMubG9vcCwKICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXlDb3VudCwKICAgICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lTXVsdAogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIGUgPT09ICJjb21wbGV0ZSIgJiYKICAgICAgICAgICAgICAgIHRoaXMub25Db21wbGV0ZSAmJgogICAgICAgICAgICAgICAgdGhpcy5vbkNvbXBsZXRlLmNhbGwoCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIG5ldyBCTUNvbXBsZXRlRXZlbnQoZSwgdGhpcy5mcmFtZU11bHQpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIGUgPT09ICJzZWdtZW50U3RhcnQiICYmCiAgICAgICAgICAgICAgICB0aGlzLm9uU2VnbWVudFN0YXJ0ICYmCiAgICAgICAgICAgICAgICB0aGlzLm9uU2VnbWVudFN0YXJ0LmNhbGwoCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIG5ldyBCTVNlZ21lbnRTdGFydEV2ZW50KGUsIHRoaXMuZmlyc3RGcmFtZSwgdGhpcy50b3RhbEZyYW1lcykKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgZSA9PT0gImRlc3Ryb3kiICYmCiAgICAgICAgICAgICAgICB0aGlzLm9uRGVzdHJveSAmJgogICAgICAgICAgICAgICAgdGhpcy5vbkRlc3Ryb3kuY2FsbCh0aGlzLCBuZXcgQk1EZXN0cm95RXZlbnQoZSwgdGhpcykpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQW5pbWF0aW9uSXRlbS5wcm90b3R5cGUudHJpZ2dlclJlbmRlckZyYW1lRXJyb3IgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCA9IG5ldyBCTVJlbmRlckZyYW1lRXJyb3JFdmVudChlLCB0aGlzLmN1cnJlbnRGcmFtZSk7CiAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCJlcnJvciIsIHQpLAogICAgICAgICAgICAgIHRoaXMub25FcnJvciAmJiB0aGlzLm9uRXJyb3IuY2FsbCh0aGlzLCB0KTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEFuaW1hdGlvbkl0ZW0ucHJvdG90eXBlLnRyaWdnZXJDb25maWdFcnJvciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0ID0gbmV3IEJNQ29uZmlnRXJyb3JFdmVudChlLCB0aGlzLmN1cnJlbnRGcmFtZSk7CiAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCJlcnJvciIsIHQpLAogICAgICAgICAgICAgIHRoaXMub25FcnJvciAmJiB0aGlzLm9uRXJyb3IuY2FsbCh0aGlzLCB0KTsKICAgICAgICAgIH0pOwogICAgICAgIHZhciBhbmltYXRpb25NYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUgPSB7fSwKICAgICAgICAgICAgICB0ID0gW10sCiAgICAgICAgICAgICAgciA9IDAsCiAgICAgICAgICAgICAgbiA9IDAsCiAgICAgICAgICAgICAgaSA9IDAsCiAgICAgICAgICAgICAgYSA9ICEwLAogICAgICAgICAgICAgIG8gPSAhMTsKICAgICAgICAgICAgZnVuY3Rpb24gcyh2KSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgeSA9IDAsIGcgPSB2LnRhcmdldDsgeSA8IG47ICkKICAgICAgICAgICAgICAgIHRbeV0uYW5pbWF0aW9uID09PSBnICYmCiAgICAgICAgICAgICAgICAgICh0LnNwbGljZSh5LCAxKSwgKHkgLT0gMSksIChuIC09IDEpLCBnLmlzUGF1c2VkIHx8IGwoKSksCiAgICAgICAgICAgICAgICAgICh5ICs9IDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGModiwgeSkgewogICAgICAgICAgICAgIGlmICghdikgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgZm9yICh2YXIgZyA9IDA7IGcgPCBuOyApIHsKICAgICAgICAgICAgICAgIGlmICh0W2ddLmVsZW0gPT09IHYgJiYgdFtnXS5lbGVtICE9PSBudWxsKQogICAgICAgICAgICAgICAgICByZXR1cm4gdFtnXS5hbmltYXRpb247CiAgICAgICAgICAgICAgICBnICs9IDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBNID0gbmV3IEFuaW1hdGlvbkl0ZW0oKTsKICAgICAgICAgICAgICByZXR1cm4gcChNLCB2KSwgTS5zZXREYXRhKHYsIHkpLCBNOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHUoKSB7CiAgICAgICAgICAgICAgKGkgKz0gMSksIG0oKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBsKCkgewogICAgICAgICAgICAgIGkgLT0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBwKHYsIHkpIHsKICAgICAgICAgICAgICB2LmFkZEV2ZW50TGlzdGVuZXIoImRlc3Ryb3kiLCBzKSwKICAgICAgICAgICAgICAgIHYuYWRkRXZlbnRMaXN0ZW5lcigiX2FjdGl2ZSIsIHUpLAogICAgICAgICAgICAgICAgdi5hZGRFdmVudExpc3RlbmVyKCJfaWRsZSIsIGwpLAogICAgICAgICAgICAgICAgdC5wdXNoKHsgZWxlbTogeSwgYW5pbWF0aW9uOiB2IH0pLAogICAgICAgICAgICAgICAgKG4gKz0gMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZCh2KSB7CiAgICAgICAgICAgICAgdmFyIHksCiAgICAgICAgICAgICAgICBnID0gdiAtIHI7CiAgICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8IG47IHkgKz0gMSkgdFt5XS5hbmltYXRpb24uYWR2YW5jZVRpbWUoZyk7CiAgICAgICAgICAgICAgKHIgPSB2KSwgaSAmJiAhbyA/IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZCkgOiAoYSA9ICEwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBoKHYpIHsKICAgICAgICAgICAgICAociA9IHYpLCB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG0oKSB7CiAgICAgICAgICAgICAgIW8gJiYgaSAmJiBhICYmICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGgpLCAoYSA9ICExKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAoZS5yZWdpc3RlckFuaW1hdGlvbiA9IGMpLAogICAgICAgICAgICAgIChlLmxvYWRBbmltYXRpb24gPSBmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgdmFyIHkgPSBuZXcgQW5pbWF0aW9uSXRlbSgpOwogICAgICAgICAgICAgICAgcmV0dXJuIHAoeSwgbnVsbCksIHkuc2V0UGFyYW1zKHYpLCB5OwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChlLnNldFNwZWVkID0gZnVuY3Rpb24gKHYsIHkpIHsKICAgICAgICAgICAgICAgIHZhciBnOwogICAgICAgICAgICAgICAgZm9yIChnID0gMDsgZyA8IG47IGcgKz0gMSkgdFtnXS5hbmltYXRpb24uc2V0U3BlZWQodiwgeSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKGUuc2V0RGlyZWN0aW9uID0gZnVuY3Rpb24gKHYsIHkpIHsKICAgICAgICAgICAgICAgIHZhciBnOwogICAgICAgICAgICAgICAgZm9yIChnID0gMDsgZyA8IG47IGcgKz0gMSkgdFtnXS5hbmltYXRpb24uc2V0RGlyZWN0aW9uKHYsIHkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChlLnBsYXkgPSBmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgdmFyIHk7CiAgICAgICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgbjsgeSArPSAxKSB0W3ldLmFuaW1hdGlvbi5wbGF5KHYpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChlLnBhdXNlID0gZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgIHZhciB5OwogICAgICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8IG47IHkgKz0gMSkgdFt5XS5hbmltYXRpb24ucGF1c2Uodik7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKGUuc3RvcCA9IGZ1bmN0aW9uICh2KSB7CiAgICAgICAgICAgICAgICB2YXIgeTsKICAgICAgICAgICAgICAgIGZvciAoeSA9IDA7IHkgPCBuOyB5ICs9IDEpIHRbeV0uYW5pbWF0aW9uLnN0b3Aodik7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKGUudG9nZ2xlUGF1c2UgPSBmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgdmFyIHk7CiAgICAgICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgbjsgeSArPSAxKSB0W3ldLmFuaW1hdGlvbi50b2dnbGVQYXVzZSh2KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoZS5zZWFyY2hBbmltYXRpb25zID0gZnVuY3Rpb24gKHYsIHksIGcpIHsKICAgICAgICAgICAgICAgIHZhciBNLAogICAgICAgICAgICAgICAgICBBID0gW10uY29uY2F0KAogICAgICAgICAgICAgICAgICAgIFtdLnNsaWNlLmNhbGwoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibG90dGllIikpLAogICAgICAgICAgICAgICAgICAgIFtdLnNsaWNlLmNhbGwoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYm9keW1vdmluIikpCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIF8gPSBBLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoTSA9IDA7IE0gPCBfOyBNICs9IDEpCiAgICAgICAgICAgICAgICAgIGcgJiYgQVtNXS5zZXRBdHRyaWJ1dGUoImRhdGEtYm0tdHlwZSIsIGcpLCBjKEFbTV0sIHYpOwogICAgICAgICAgICAgICAgaWYgKHkgJiYgXyA9PT0gMCkgewogICAgICAgICAgICAgICAgICBnIHx8IChnID0gInN2ZyIpOwogICAgICAgICAgICAgICAgICB2YXIgQyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07CiAgICAgICAgICAgICAgICAgIEMuaW5uZXJUZXh0ID0gIiI7CiAgICAgICAgICAgICAgICAgIHZhciBSID0gY3JlYXRlVGFnKCJkaXYiKTsKICAgICAgICAgICAgICAgICAgKFIuc3R5bGUud2lkdGggPSAiMTAwJSIpLAogICAgICAgICAgICAgICAgICAgIChSLnN0eWxlLmhlaWdodCA9ICIxMDAlIiksCiAgICAgICAgICAgICAgICAgICAgUi5zZXRBdHRyaWJ1dGUoImRhdGEtYm0tdHlwZSIsIGcpLAogICAgICAgICAgICAgICAgICAgIEMuYXBwZW5kQ2hpbGQoUiksCiAgICAgICAgICAgICAgICAgICAgYyhSLCB2KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoZS5yZXNpemUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdjsKICAgICAgICAgICAgICAgIGZvciAodiA9IDA7IHYgPCBuOyB2ICs9IDEpIHRbdl0uYW5pbWF0aW9uLnJlc2l6ZSgpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChlLmdvVG9BbmRTdG9wID0gZnVuY3Rpb24gKHYsIHksIGcpIHsKICAgICAgICAgICAgICAgIHZhciBNOwogICAgICAgICAgICAgICAgZm9yIChNID0gMDsgTSA8IG47IE0gKz0gMSkgdFtNXS5hbmltYXRpb24uZ29Ub0FuZFN0b3AodiwgeSwgZyk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKGUuZGVzdHJveSA9IGZ1bmN0aW9uICh2KSB7CiAgICAgICAgICAgICAgICB2YXIgeTsKICAgICAgICAgICAgICAgIGZvciAoeSA9IG4gLSAxOyB5ID49IDA7IHkgLT0gMSkgdFt5XS5hbmltYXRpb24uZGVzdHJveSh2KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoZS5mcmVlemUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBvID0gITA7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKGUudW5mcmVlemUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAobyA9ICExKSwgbSgpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChlLnNldFZvbHVtZSA9IGZ1bmN0aW9uICh2LCB5KSB7CiAgICAgICAgICAgICAgICB2YXIgZzsKICAgICAgICAgICAgICAgIGZvciAoZyA9IDA7IGcgPCBuOyBnICs9IDEpIHRbZ10uYW5pbWF0aW9uLnNldFZvbHVtZSh2LCB5KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoZS5tdXRlID0gZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgIHZhciB5OwogICAgICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8IG47IHkgKz0gMSkgdFt5XS5hbmltYXRpb24ubXV0ZSh2KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoZS51bm11dGUgPSBmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgdmFyIHk7CiAgICAgICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgbjsgeSArPSAxKSB0W3ldLmFuaW1hdGlvbi51bm11dGUodik7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgKGUuZ2V0UmVnaXN0ZXJlZEFuaW1hdGlvbnMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdiwKICAgICAgICAgICAgICAgICAgeSA9IHQubGVuZ3RoLAogICAgICAgICAgICAgICAgICBnID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHYgPSAwOyB2IDwgeTsgdiArPSAxKSBnLnB1c2godFt2XS5hbmltYXRpb24pOwogICAgICAgICAgICAgICAgcmV0dXJuIGc7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZQogICAgICAgICAgICApOwogICAgICAgICAgfSkoKSwKICAgICAgICAgIEJlemllckZhY3RvcnkgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IHsKICAgICAgICAgICAgICAgIGdldEJlemllckVhc2luZzogZnVuY3Rpb24gKGwsIHAsIGQsIGgsIG0pIHsKICAgICAgICAgICAgICAgICAgdmFyIHYgPQogICAgICAgICAgICAgICAgICAgIG0gfHwKICAgICAgICAgICAgICAgICAgICAoImJlel8iICsgbCArICJfIiArIHAgKyAiXyIgKyBkICsgIl8iICsgaCkucmVwbGFjZSgKICAgICAgICAgICAgICAgICAgICAgIC9cLi9nLAogICAgICAgICAgICAgICAgICAgICAgInAiCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgaWYgKHRbdl0pIHJldHVybiB0W3ZdOwogICAgICAgICAgICAgICAgICB2YXIgeSA9IG5ldyB1KFtsLCBwLCBkLCBoXSk7CiAgICAgICAgICAgICAgICAgIHJldHVybiAodFt2XSA9IHkpLCB5OwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHQgPSB7fSwKICAgICAgICAgICAgICByID0gMC4xLAogICAgICAgICAgICAgIG4gPSB0eXBlb2YgRmxvYXQzMkFycmF5ID09ICJmdW5jdGlvbiI7CiAgICAgICAgICAgIGZ1bmN0aW9uIGkobCwgcCkgewogICAgICAgICAgICAgIHJldHVybiAxIC0gMyAqIHAgKyAzICogbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhKGwsIHApIHsKICAgICAgICAgICAgICByZXR1cm4gMyAqIHAgLSA2ICogbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBvKGwpIHsKICAgICAgICAgICAgICByZXR1cm4gMyAqIGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcyhsLCBwLCBkKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgoaShwLCBkKSAqIGwgKyBhKHAsIGQpKSAqIGwgKyBvKHApKSAqIGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gYyhsLCBwLCBkKSB7CiAgICAgICAgICAgICAgcmV0dXJuIDMgKiBpKHAsIGQpICogbCAqIGwgKyAyICogYShwLCBkKSAqIGwgKyBvKHApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHUobCkgewogICAgICAgICAgICAgICh0aGlzLl9wID0gbCksCiAgICAgICAgICAgICAgICAodGhpcy5fbVNhbXBsZVZhbHVlcyA9IG4KICAgICAgICAgICAgICAgICAgPyBuZXcgRmxvYXQzMkFycmF5KDExKQogICAgICAgICAgICAgICAgICA6IG5ldyBBcnJheSgxMSkpLAogICAgICAgICAgICAgICAgKHRoaXMuX3ByZWNvbXB1dGVkID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuZ2V0ID0gdGhpcy5nZXQuYmluZCh0aGlzKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAodS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uIChsKSB7CiAgICAgICAgICAgICAgICAgIHZhciBwID0gdGhpcy5fcFswXSwKICAgICAgICAgICAgICAgICAgICBkID0gdGhpcy5fcFsxXSwKICAgICAgICAgICAgICAgICAgICBoID0gdGhpcy5fcFsyXSwKICAgICAgICAgICAgICAgICAgICBtID0gdGhpcy5fcFszXTsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmVjb21wdXRlZCB8fCB0aGlzLl9wcmVjb21wdXRlKCksCiAgICAgICAgICAgICAgICAgICAgcCA9PT0gZCAmJiBoID09PSBtCiAgICAgICAgICAgICAgICAgICAgICA/IGwKICAgICAgICAgICAgICAgICAgICAgIDogbCA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgPyAwCiAgICAgICAgICAgICAgICAgICAgICA6IGwgPT09IDEKICAgICAgICAgICAgICAgICAgICAgID8gMQogICAgICAgICAgICAgICAgICAgICAgOiBzKHRoaXMuX2dldFRGb3JYKGwpLCBkLCBtKQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF9wcmVjb21wdXRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHZhciBsID0gdGhpcy5fcFswXSwKICAgICAgICAgICAgICAgICAgICBwID0gdGhpcy5fcFsxXSwKICAgICAgICAgICAgICAgICAgICBkID0gdGhpcy5fcFsyXSwKICAgICAgICAgICAgICAgICAgICBoID0gdGhpcy5fcFszXTsKICAgICAgICAgICAgICAgICAgKHRoaXMuX3ByZWNvbXB1dGVkID0gITApLAogICAgICAgICAgICAgICAgICAgIChsID09PSBwICYmIGQgPT09IGgpIHx8IHRoaXMuX2NhbGNTYW1wbGVWYWx1ZXMoKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBfY2FsY1NhbXBsZVZhbHVlczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICBmb3IgKHZhciBsID0gdGhpcy5fcFswXSwgcCA9IHRoaXMuX3BbMl0sIGQgPSAwOyBkIDwgMTE7ICsrZCkKICAgICAgICAgICAgICAgICAgICB0aGlzLl9tU2FtcGxlVmFsdWVzW2RdID0gcyhkICogciwgbCwgcCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgX2dldFRGb3JYOiBmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIHZhciBwID0gdGhpcy5fcFswXSwKICAgICAgICAgICAgICAgICAgICAgIGQgPSB0aGlzLl9wWzJdLAogICAgICAgICAgICAgICAgICAgICAgaCA9IHRoaXMuX21TYW1wbGVWYWx1ZXMsCiAgICAgICAgICAgICAgICAgICAgICBtID0gMCwKICAgICAgICAgICAgICAgICAgICAgIHYgPSAxOwogICAgICAgICAgICAgICAgICAgIHYgIT09IDEwICYmIGhbdl0gPD0gbDsKICAgICAgICAgICAgICAgICAgICArK3YKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIG0gKz0gcjsKICAgICAgICAgICAgICAgICAgdmFyIHkgPSBtICsgKChsIC0gaFstLXZdKSAvIChoW3YgKyAxXSAtIGhbdl0pKSAqIHIsCiAgICAgICAgICAgICAgICAgICAgZyA9IGMoeSwgcCwgZCk7CiAgICAgICAgICAgICAgICAgIHJldHVybiBnID49IDAuMDAxCiAgICAgICAgICAgICAgICAgICAgPyAoZnVuY3Rpb24gKE0sIEEsIF8sIEMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgUiA9IDA7IFIgPCA0OyArK1IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgTCA9IGMoQSwgXywgQyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEwgPT09IDApIHJldHVybiBBOwogICAgICAgICAgICAgICAgICAgICAgICAgIEEgLT0gKHMoQSwgXywgQykgLSBNKSAvIEw7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEE7CiAgICAgICAgICAgICAgICAgICAgICB9KShsLCB5LCBwLCBkKQogICAgICAgICAgICAgICAgICAgIDogZyA9PT0gMAogICAgICAgICAgICAgICAgICAgID8geQogICAgICAgICAgICAgICAgICAgIDogKGZ1bmN0aW9uIChNLCBBLCBfLCBDLCBSKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBMLAogICAgICAgICAgICAgICAgICAgICAgICAgIE4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgVyA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEwgPSBzKChOID0gQSArIChfIC0gQSkgLyAyKSwgQywgUikgLSBNKSA+IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKF8gPSBOKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoQSA9IE4pOwogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoTWF0aC5hYnMoTCkgPiAxZS03ICYmICsrVyA8IDEwKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE47CiAgICAgICAgICAgICAgICAgICAgICB9KShsLCBtLCBtICsgciwgcCwgZCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIGUKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pKCksCiAgICAgICAgICBwb29saW5nID0gewogICAgICAgICAgICBkb3VibGU6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGUuY29uY2F0KGNyZWF0ZVNpemVkQXJyYXkoZS5sZW5ndGgpKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBwb29sRmFjdG9yeSA9IGZ1bmN0aW9uIChlLCB0LCByKSB7CiAgICAgICAgICAgIHZhciBuID0gMCwKICAgICAgICAgICAgICBpID0gZSwKICAgICAgICAgICAgICBhID0gY3JlYXRlU2l6ZWRBcnJheShpKTsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICBuZXdFbGVtZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbiA/IGFbKG4gLT0gMSldIDogdCgpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcmVsZWFzZTogZnVuY3Rpb24gKG8pIHsKICAgICAgICAgICAgICAgIG4gPT09IGkgJiYgKChhID0gcG9vbGluZy5kb3VibGUoYSkpLCAoaSAqPSAyKSksCiAgICAgICAgICAgICAgICAgIHIgJiYgcihvKSwKICAgICAgICAgICAgICAgICAgKGFbbl0gPSBvKSwKICAgICAgICAgICAgICAgICAgKG4gKz0gMSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgIH0sCiAgICAgICAgICBiZXppZXJMZW5ndGhQb29sID0gcG9vbEZhY3RvcnkoOCwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIGFkZGVkTGVuZ3RoOiAwLAogICAgICAgICAgICAgIHBlcmNlbnRzOiBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgZ2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoKSksCiAgICAgICAgICAgICAgbGVuZ3RoczogY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGdldERlZmF1bHRDdXJ2ZVNlZ21lbnRzKCkpLAogICAgICAgICAgICB9OwogICAgICAgICAgfSksCiAgICAgICAgICBzZWdtZW50c0xlbmd0aFBvb2wgPSBwb29sRmFjdG9yeSgKICAgICAgICAgICAgOCwKICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB7IGxlbmd0aHM6IFtdLCB0b3RhbExlbmd0aDogMCB9OwogICAgICAgICAgICB9LAogICAgICAgICAgICBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgciA9IGUubGVuZ3Rocy5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgYmV6aWVyTGVuZ3RoUG9vbC5yZWxlYXNlKGUubGVuZ3Roc1t0XSk7CiAgICAgICAgICAgICAgZS5sZW5ndGhzLmxlbmd0aCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICk7CiAgICAgICAgZnVuY3Rpb24gYmV6RnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZSA9IE1hdGg7CiAgICAgICAgICBmdW5jdGlvbiB0KHUsIGwsIHAsIGQsIGgsIG0pIHsKICAgICAgICAgICAgdmFyIHYgPSB1ICogZCArIGwgKiBoICsgcCAqIG0gLSBoICogZCAtIG0gKiB1IC0gcCAqIGw7CiAgICAgICAgICAgIHJldHVybiB2ID4gLTAuMDAxICYmIHYgPCAwLjAwMTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciByID0gZnVuY3Rpb24gKHUsIGwsIHAsIGQpIHsKICAgICAgICAgICAgdmFyIGgsCiAgICAgICAgICAgICAgbSwKICAgICAgICAgICAgICB2LAogICAgICAgICAgICAgIHksCiAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgIEEgPSBnZXREZWZhdWx0Q3VydmVTZWdtZW50cygpLAogICAgICAgICAgICAgIF8gPSAwLAogICAgICAgICAgICAgIEMgPSBbXSwKICAgICAgICAgICAgICBSID0gW10sCiAgICAgICAgICAgICAgTCA9IGJlemllckxlbmd0aFBvb2wubmV3RWxlbWVudCgpOwogICAgICAgICAgICBmb3IgKHYgPSBwLmxlbmd0aCwgaCA9IDA7IGggPCBBOyBoICs9IDEpIHsKICAgICAgICAgICAgICBmb3IgKGcgPSBoIC8gKEEgLSAxKSwgTSA9IDAsIG0gPSAwOyBtIDwgdjsgbSArPSAxKQogICAgICAgICAgICAgICAgKHkgPQogICAgICAgICAgICAgICAgICBibVBvdygxIC0gZywgMykgKiB1W21dICsKICAgICAgICAgICAgICAgICAgMyAqIGJtUG93KDEgLSBnLCAyKSAqIGcgKiBwW21dICsKICAgICAgICAgICAgICAgICAgMyAqICgxIC0gZykgKiBibVBvdyhnLCAyKSAqIGRbbV0gKwogICAgICAgICAgICAgICAgICBibVBvdyhnLCAzKSAqIGxbbV0pLAogICAgICAgICAgICAgICAgICAoQ1ttXSA9IHkpLAogICAgICAgICAgICAgICAgICBSW21dICE9PSBudWxsICYmIChNICs9IGJtUG93KENbbV0gLSBSW21dLCAyKSksCiAgICAgICAgICAgICAgICAgIChSW21dID0gQ1ttXSk7CiAgICAgICAgICAgICAgTSAmJiAoXyArPSBNID0gYm1TcXJ0KE0pKSwKICAgICAgICAgICAgICAgIChMLnBlcmNlbnRzW2hdID0gZyksCiAgICAgICAgICAgICAgICAoTC5sZW5ndGhzW2hdID0gXyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIChMLmFkZGVkTGVuZ3RoID0gXyksIEw7CiAgICAgICAgICB9OwogICAgICAgICAgZnVuY3Rpb24gbih1KSB7CiAgICAgICAgICAgICh0aGlzLnNlZ21lbnRMZW5ndGggPSAwKSwgKHRoaXMucG9pbnRzID0gbmV3IEFycmF5KHUpKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIGkodSwgbCkgewogICAgICAgICAgICAodGhpcy5wYXJ0aWFsTGVuZ3RoID0gdSksICh0aGlzLnBvaW50ID0gbCk7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgYSwKICAgICAgICAgICAgbyA9CiAgICAgICAgICAgICAgKChhID0ge30pLAogICAgICAgICAgICAgIGZ1bmN0aW9uICh1LCBsLCBwLCBkKSB7CiAgICAgICAgICAgICAgICB2YXIgaCA9ICgKICAgICAgICAgICAgICAgICAgdVswXSArCiAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgIHVbMV0gKwogICAgICAgICAgICAgICAgICAiXyIgKwogICAgICAgICAgICAgICAgICBsWzBdICsKICAgICAgICAgICAgICAgICAgIl8iICsKICAgICAgICAgICAgICAgICAgbFsxXSArCiAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgIHBbMF0gKwogICAgICAgICAgICAgICAgICAiXyIgKwogICAgICAgICAgICAgICAgICBwWzFdICsKICAgICAgICAgICAgICAgICAgIl8iICsKICAgICAgICAgICAgICAgICAgZFswXSArCiAgICAgICAgICAgICAgICAgICJfIiArCiAgICAgICAgICAgICAgICAgIGRbMV0KICAgICAgICAgICAgICAgICkucmVwbGFjZSgvXC4vZywgInAiKTsKICAgICAgICAgICAgICAgIGlmICghYVtoXSkgewogICAgICAgICAgICAgICAgICB2YXIgbSwKICAgICAgICAgICAgICAgICAgICB2LAogICAgICAgICAgICAgICAgICAgIHksCiAgICAgICAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgICAgICAgIEEsCiAgICAgICAgICAgICAgICAgICAgXywKICAgICAgICAgICAgICAgICAgICBDID0gZ2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoKSwKICAgICAgICAgICAgICAgICAgICBSID0gMCwKICAgICAgICAgICAgICAgICAgICBMID0gbnVsbDsKICAgICAgICAgICAgICAgICAgdS5sZW5ndGggPT09IDIgJiYKICAgICAgICAgICAgICAgICAgICAodVswXSAhPT0gbFswXSB8fCB1WzFdICE9PSBsWzFdKSAmJgogICAgICAgICAgICAgICAgICAgIHQodVswXSwgdVsxXSwgbFswXSwgbFsxXSwgdVswXSArIHBbMF0sIHVbMV0gKyBwWzFdKSAmJgogICAgICAgICAgICAgICAgICAgIHQodVswXSwgdVsxXSwgbFswXSwgbFsxXSwgbFswXSArIGRbMF0sIGxbMV0gKyBkWzFdKSAmJgogICAgICAgICAgICAgICAgICAgIChDID0gMik7CiAgICAgICAgICAgICAgICAgIHZhciBOID0gbmV3IG4oQyk7CiAgICAgICAgICAgICAgICAgIGZvciAoeSA9IHAubGVuZ3RoLCBtID0gMDsgbSA8IEM7IG0gKz0gMSkgewogICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICBfID0gY3JlYXRlU2l6ZWRBcnJheSh5KSwgTSA9IG0gLyAoQyAtIDEpLCBBID0gMCwgdiA9IDA7CiAgICAgICAgICAgICAgICAgICAgICB2IDwgeTsKICAgICAgICAgICAgICAgICAgICAgIHYgKz0gMQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIChnID0KICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coMSAtIE0sIDMpICogdVt2XSArCiAgICAgICAgICAgICAgICAgICAgICAgIDMgKiBibVBvdygxIC0gTSwgMikgKiBNICogKHVbdl0gKyBwW3ZdKSArCiAgICAgICAgICAgICAgICAgICAgICAgIDMgKiAoMSAtIE0pICogYm1Qb3coTSwgMikgKiAobFt2XSArIGRbdl0pICsKICAgICAgICAgICAgICAgICAgICAgICAgYm1Qb3coTSwgMykgKiBsW3ZdKSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9bdl0gPSBnKSwKICAgICAgICAgICAgICAgICAgICAgICAgTCAhPT0gbnVsbCAmJiAoQSArPSBibVBvdyhfW3ZdIC0gTFt2XSwgMikpOwogICAgICAgICAgICAgICAgICAgIChSICs9IEEgPSBibVNxcnQoQSkpLCAoTi5wb2ludHNbbV0gPSBuZXcgaShBLCBfKSksIChMID0gXyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKE4uc2VnbWVudExlbmd0aCA9IFIpLCAoYVtoXSA9IE4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGFbaF07CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICBmdW5jdGlvbiBzKHUsIGwpIHsKICAgICAgICAgICAgdmFyIHAgPSBsLnBlcmNlbnRzLAogICAgICAgICAgICAgIGQgPSBsLmxlbmd0aHMsCiAgICAgICAgICAgICAgaCA9IHAubGVuZ3RoLAogICAgICAgICAgICAgIG0gPSBibUZsb29yKChoIC0gMSkgKiB1KSwKICAgICAgICAgICAgICB2ID0gdSAqIGwuYWRkZWRMZW5ndGgsCiAgICAgICAgICAgICAgeSA9IDA7CiAgICAgICAgICAgIGlmIChtID09PSBoIC0gMSB8fCBtID09PSAwIHx8IHYgPT09IGRbbV0pIHJldHVybiBwW21dOwogICAgICAgICAgICBmb3IgKHZhciBnID0gZFttXSA+IHYgPyAtMSA6IDEsIE0gPSAhMDsgTTsgKQogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIChkW21dIDw9IHYgJiYgZFttICsgMV0gPiB2CiAgICAgICAgICAgICAgICAgID8gKCh5ID0gKHYgLSBkW21dKSAvIChkW20gKyAxXSAtIGRbbV0pKSwgKE0gPSAhMSkpCiAgICAgICAgICAgICAgICAgIDogKG0gKz0gZyksCiAgICAgICAgICAgICAgICBtIDwgMCB8fCBtID49IGggLSAxKQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKG0gPT09IGggLSAxKSByZXR1cm4gcFttXTsKICAgICAgICAgICAgICAgIE0gPSAhMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBwW21dICsgKHBbbSArIDFdIC0gcFttXSkgKiB5OwogICAgICAgICAgfQogICAgICAgICAgdmFyIGMgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgOCk7CiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICBnZXRTZWdtZW50c0xlbmd0aDogZnVuY3Rpb24gKHUpIHsKICAgICAgICAgICAgICB2YXIgbCwKICAgICAgICAgICAgICAgIHAgPSBzZWdtZW50c0xlbmd0aFBvb2wubmV3RWxlbWVudCgpLAogICAgICAgICAgICAgICAgZCA9IHUuYywKICAgICAgICAgICAgICAgIGggPSB1LnYsCiAgICAgICAgICAgICAgICBtID0gdS5vLAogICAgICAgICAgICAgICAgdiA9IHUuaSwKICAgICAgICAgICAgICAgIHkgPSB1Ll9sZW5ndGgsCiAgICAgICAgICAgICAgICBnID0gcC5sZW5ndGhzLAogICAgICAgICAgICAgICAgTSA9IDA7CiAgICAgICAgICAgICAgZm9yIChsID0gMDsgbCA8IHkgLSAxOyBsICs9IDEpCiAgICAgICAgICAgICAgICAoZ1tsXSA9IHIoaFtsXSwgaFtsICsgMV0sIG1bbF0sIHZbbCArIDFdKSksCiAgICAgICAgICAgICAgICAgIChNICs9IGdbbF0uYWRkZWRMZW5ndGgpOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBkICYmCiAgICAgICAgICAgICAgICAgIHkgJiYKICAgICAgICAgICAgICAgICAgKChnW2xdID0gcihoW2xdLCBoWzBdLCBtW2xdLCB2WzBdKSksIChNICs9IGdbbF0uYWRkZWRMZW5ndGgpKSwKICAgICAgICAgICAgICAgIChwLnRvdGFsTGVuZ3RoID0gTSksCiAgICAgICAgICAgICAgICBwCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZ2V0TmV3U2VnbWVudDogZnVuY3Rpb24gKHUsIGwsIHAsIGQsIGgsIG0sIHYpIHsKICAgICAgICAgICAgICBoIDwgMCA/IChoID0gMCkgOiBoID4gMSAmJiAoaCA9IDEpOwogICAgICAgICAgICAgIHZhciB5LAogICAgICAgICAgICAgICAgZyA9IHMoaCwgdiksCiAgICAgICAgICAgICAgICBNID0gcygobSA9IG0gPiAxID8gMSA6IG0pLCB2KSwKICAgICAgICAgICAgICAgIEEgPSB1Lmxlbmd0aCwKICAgICAgICAgICAgICAgIF8gPSAxIC0gZywKICAgICAgICAgICAgICAgIEMgPSAxIC0gTSwKICAgICAgICAgICAgICAgIFIgPSBfICogXyAqIF8sCiAgICAgICAgICAgICAgICBMID0gZyAqIF8gKiBfICogMywKICAgICAgICAgICAgICAgIE4gPSBnICogZyAqIF8gKiAzLAogICAgICAgICAgICAgICAgVyA9IGcgKiBnICogZywKICAgICAgICAgICAgICAgIGsgPSBfICogXyAqIEMsCiAgICAgICAgICAgICAgICBxID0gZyAqIF8gKiBDICsgXyAqIGcgKiBDICsgXyAqIF8gKiBNLAogICAgICAgICAgICAgICAgSCA9IGcgKiBnICogQyArIF8gKiBnICogTSArIGcgKiBfICogTSwKICAgICAgICAgICAgICAgIFggPSBnICogZyAqIE0sCiAgICAgICAgICAgICAgICBVID0gXyAqIEMgKiBDLAogICAgICAgICAgICAgICAgdGUgPSBnICogQyAqIEMgKyBfICogTSAqIEMgKyBfICogQyAqIE0sCiAgICAgICAgICAgICAgICBvZSA9IGcgKiBNICogQyArIF8gKiBNICogTSArIGcgKiBDICogTSwKICAgICAgICAgICAgICAgIHllID0gZyAqIE0gKiBNLAogICAgICAgICAgICAgICAgRiA9IEMgKiBDICogQywKICAgICAgICAgICAgICAgIFkgPSBNICogQyAqIEMgKyBDICogTSAqIEMgKyBDICogQyAqIE0sCiAgICAgICAgICAgICAgICBmZSA9IE0gKiBNICogQyArIEMgKiBNICogTSArIE0gKiBDICogTSwKICAgICAgICAgICAgICAgIEcgPSBNICogTSAqIE07CiAgICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8IEE7IHkgKz0gMSkKICAgICAgICAgICAgICAgIChjWzQgKiB5XSA9CiAgICAgICAgICAgICAgICAgIGUucm91bmQoMWUzICogKFIgKiB1W3ldICsgTCAqIHBbeV0gKyBOICogZFt5XSArIFcgKiBsW3ldKSkgLwogICAgICAgICAgICAgICAgICAxZTMpLAogICAgICAgICAgICAgICAgICAoY1s0ICogeSArIDFdID0KICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKDFlMyAqIChrICogdVt5XSArIHEgKiBwW3ldICsgSCAqIGRbeV0gKyBYICogbFt5XSkpIC8KICAgICAgICAgICAgICAgICAgICAxZTMpLAogICAgICAgICAgICAgICAgICAoY1s0ICogeSArIDJdID0KICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgMWUzICogKFUgKiB1W3ldICsgdGUgKiBwW3ldICsgb2UgKiBkW3ldICsgeWUgKiBsW3ldKQogICAgICAgICAgICAgICAgICAgICkgLyAxZTMpLAogICAgICAgICAgICAgICAgICAoY1s0ICogeSArIDNdID0KICAgICAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAgICAgMWUzICogKEYgKiB1W3ldICsgWSAqIHBbeV0gKyBmZSAqIGRbeV0gKyBHICogbFt5XSkKICAgICAgICAgICAgICAgICAgICApIC8gMWUzKTsKICAgICAgICAgICAgICByZXR1cm4gYzsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZ2V0UG9pbnRJblNlZ21lbnQ6IGZ1bmN0aW9uICh1LCBsLCBwLCBkLCBoLCBtKSB7CiAgICAgICAgICAgICAgdmFyIHYgPSBzKGgsIG0pLAogICAgICAgICAgICAgICAgeSA9IDEgLSB2OwogICAgICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAxZTMgKgogICAgICAgICAgICAgICAgICAgICh5ICogeSAqIHkgKiB1WzBdICsKICAgICAgICAgICAgICAgICAgICAgICh2ICogeSAqIHkgKyB5ICogdiAqIHkgKyB5ICogeSAqIHYpICogcFswXSArCiAgICAgICAgICAgICAgICAgICAgICAodiAqIHYgKiB5ICsgeSAqIHYgKiB2ICsgdiAqIHkgKiB2KSAqIGRbMF0gKwogICAgICAgICAgICAgICAgICAgICAgdiAqIHYgKiB2ICogbFswXSkKICAgICAgICAgICAgICAgICkgLyAxZTMsCiAgICAgICAgICAgICAgICBlLnJvdW5kKAogICAgICAgICAgICAgICAgICAxZTMgKgogICAgICAgICAgICAgICAgICAgICh5ICogeSAqIHkgKiB1WzFdICsKICAgICAgICAgICAgICAgICAgICAgICh2ICogeSAqIHkgKyB5ICogdiAqIHkgKyB5ICogeSAqIHYpICogcFsxXSArCiAgICAgICAgICAgICAgICAgICAgICAodiAqIHYgKiB5ICsgeSAqIHYgKiB2ICsgdiAqIHkgKiB2KSAqIGRbMV0gKwogICAgICAgICAgICAgICAgICAgICAgdiAqIHYgKiB2ICogbFsxXSkKICAgICAgICAgICAgICAgICkgLyAxZTMsCiAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgYnVpbGRCZXppZXJEYXRhOiBvLAogICAgICAgICAgICBwb2ludE9uTGluZTJEOiB0LAogICAgICAgICAgICBwb2ludE9uTGluZTNEOiBmdW5jdGlvbiAodSwgbCwgcCwgZCwgaCwgbSwgdiwgeSwgZykgewogICAgICAgICAgICAgIGlmIChwID09PSAwICYmIG0gPT09IDAgJiYgZyA9PT0gMCkgcmV0dXJuIHQodSwgbCwgZCwgaCwgdiwgeSk7CiAgICAgICAgICAgICAgdmFyIE0sCiAgICAgICAgICAgICAgICBBID0gZS5zcXJ0KGUucG93KGQgLSB1LCAyKSArIGUucG93KGggLSBsLCAyKSArIGUucG93KG0gLSBwLCAyKSksCiAgICAgICAgICAgICAgICBfID0gZS5zcXJ0KGUucG93KHYgLSB1LCAyKSArIGUucG93KHkgLSBsLCAyKSArIGUucG93KGcgLSBwLCAyKSksCiAgICAgICAgICAgICAgICBDID0gZS5zcXJ0KGUucG93KHYgLSBkLCAyKSArIGUucG93KHkgLSBoLCAyKSArIGUucG93KGcgLSBtLCAyKSk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIChNID0KICAgICAgICAgICAgICAgICAgQSA+IF8KICAgICAgICAgICAgICAgICAgICA/IEEgPiBDCiAgICAgICAgICAgICAgICAgICAgICA/IEEgLSBfIC0gQwogICAgICAgICAgICAgICAgICAgICAgOiBDIC0gXyAtIEEKICAgICAgICAgICAgICAgICAgICA6IEMgPiBfCiAgICAgICAgICAgICAgICAgICAgPyBDIC0gXyAtIEEKICAgICAgICAgICAgICAgICAgICA6IF8gLSBBIC0gQykgPiAtMWUtNCAmJiBNIDwgMWUtNAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICB2YXIgYmV6ID0gYmV6RnVuY3Rpb24oKSwKICAgICAgICAgIGluaXRGcmFtZSA9IGluaXRpYWxEZWZhdWx0RnJhbWUsCiAgICAgICAgICBtYXRoQWJzID0gTWF0aC5hYnM7CiAgICAgICAgZnVuY3Rpb24gaW50ZXJwb2xhdGVWYWx1ZShlLCB0KSB7CiAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgbiA9IHRoaXMub2Zmc2V0VGltZTsKICAgICAgICAgIHRoaXMucHJvcFR5cGUgPT09ICJtdWx0aWRpbWVuc2lvbmFsIiAmJgogICAgICAgICAgICAociA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCB0aGlzLnB2Lmxlbmd0aCkpOwogICAgICAgICAgZm9yICgKICAgICAgICAgICAgdmFyIGksCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgIHMsCiAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgcCwKICAgICAgICAgICAgICBkLAogICAgICAgICAgICAgIGggPSB0Lmxhc3RJbmRleCwKICAgICAgICAgICAgICBtID0gaCwKICAgICAgICAgICAgICB2ID0gdGhpcy5rZXlmcmFtZXMubGVuZ3RoIC0gMSwKICAgICAgICAgICAgICB5ID0gITA7CiAgICAgICAgICAgIHk7CgogICAgICAgICAgKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAoKGkgPSB0aGlzLmtleWZyYW1lc1ttXSksCiAgICAgICAgICAgICAgKGEgPSB0aGlzLmtleWZyYW1lc1ttICsgMV0pLAogICAgICAgICAgICAgIG0gPT09IHYgLSAxICYmIGUgPj0gYS50IC0gbikKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgaS5oICYmIChpID0gYSksIChoID0gMCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGEudCAtIG4gPiBlKSB7CiAgICAgICAgICAgICAgaCA9IG07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbSA8IHYgLSAxID8gKG0gKz0gMSkgOiAoKGggPSAwKSwgKHkgPSAhMSkpOwogICAgICAgICAgfQogICAgICAgICAgbyA9IHRoaXMua2V5ZnJhbWVzTWV0YWRhdGFbbV0gfHwge307CiAgICAgICAgICB2YXIgZywKICAgICAgICAgICAgTSA9IGEudCAtIG4sCiAgICAgICAgICAgIEEgPSBpLnQgLSBuOwogICAgICAgICAgaWYgKGkudG8pIHsKICAgICAgICAgICAgby5iZXppZXJEYXRhIHx8CiAgICAgICAgICAgICAgKG8uYmV6aWVyRGF0YSA9IGJlei5idWlsZEJlemllckRhdGEoaS5zLCBhLnMgfHwgaS5lLCBpLnRvLCBpLnRpKSk7CiAgICAgICAgICAgIHZhciBfID0gby5iZXppZXJEYXRhOwogICAgICAgICAgICBpZiAoZSA+PSBNIHx8IGUgPCBBKSB7CiAgICAgICAgICAgICAgdmFyIEMgPSBlID49IE0gPyBfLnBvaW50cy5sZW5ndGggLSAxIDogMDsKICAgICAgICAgICAgICBmb3IgKGMgPSBfLnBvaW50c1tDXS5wb2ludC5sZW5ndGgsIHMgPSAwOyBzIDwgYzsgcyArPSAxKQogICAgICAgICAgICAgICAgcltzXSA9IF8ucG9pbnRzW0NdLnBvaW50W3NdOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG8uX19mbmN0CiAgICAgICAgICAgICAgICA/IChkID0gby5fX2ZuY3QpCiAgICAgICAgICAgICAgICA6ICgoZCA9IEJlemllckZhY3RvcnkuZ2V0QmV6aWVyRWFzaW5nKAogICAgICAgICAgICAgICAgICAgIGkuby54LAogICAgICAgICAgICAgICAgICAgIGkuby55LAogICAgICAgICAgICAgICAgICAgIGkuaS54LAogICAgICAgICAgICAgICAgICAgIGkuaS55LAogICAgICAgICAgICAgICAgICAgIGkubgogICAgICAgICAgICAgICAgICApLmdldCksCiAgICAgICAgICAgICAgICAgIChvLl9fZm5jdCA9IGQpKSwKICAgICAgICAgICAgICAgICh1ID0gZCgoZSAtIEEpIC8gKE0gLSBBKSkpOwogICAgICAgICAgICAgIHZhciBSLAogICAgICAgICAgICAgICAgTCA9IF8uc2VnbWVudExlbmd0aCAqIHUsCiAgICAgICAgICAgICAgICBOID0KICAgICAgICAgICAgICAgICAgdC5sYXN0RnJhbWUgPCBlICYmIHQuX2xhc3RLZXlmcmFtZUluZGV4ID09PSBtCiAgICAgICAgICAgICAgICAgICAgPyB0Ll9sYXN0QWRkZWRMZW5ndGgKICAgICAgICAgICAgICAgICAgICA6IDA7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIHAgPQogICAgICAgICAgICAgICAgICB0Lmxhc3RGcmFtZSA8IGUgJiYgdC5fbGFzdEtleWZyYW1lSW5kZXggPT09IG0KICAgICAgICAgICAgICAgICAgICA/IHQuX2xhc3RQb2ludAogICAgICAgICAgICAgICAgICAgIDogMCwKICAgICAgICAgICAgICAgICAgeSA9ICEwLAogICAgICAgICAgICAgICAgICBsID0gXy5wb2ludHMubGVuZ3RoOwogICAgICAgICAgICAgICAgeTsKCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgoTiArPSBfLnBvaW50c1twXS5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgTCA9PT0gMCB8fCB1ID09PSAwIHx8IHAgPT09IF8ucG9pbnRzLmxlbmd0aCAtIDEpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgZm9yIChjID0gXy5wb2ludHNbcF0ucG9pbnQubGVuZ3RoLCBzID0gMDsgcyA8IGM7IHMgKz0gMSkKICAgICAgICAgICAgICAgICAgICByW3NdID0gXy5wb2ludHNbcF0ucG9pbnRbc107CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKEwgPj0gTiAmJiBMIDwgTiArIF8ucG9pbnRzW3AgKyAxXS5wYXJ0aWFsTGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgUiA9IChMIC0gTikgLyBfLnBvaW50c1twICsgMV0ucGFydGlhbExlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgIGMgPSBfLnBvaW50c1twXS5wb2ludC5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICBzID0gMDsKICAgICAgICAgICAgICAgICAgICBzIDwgYzsKICAgICAgICAgICAgICAgICAgICBzICs9IDEKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHJbc10gPQogICAgICAgICAgICAgICAgICAgICAgXy5wb2ludHNbcF0ucG9pbnRbc10gKwogICAgICAgICAgICAgICAgICAgICAgKF8ucG9pbnRzW3AgKyAxXS5wb2ludFtzXSAtIF8ucG9pbnRzW3BdLnBvaW50W3NdKSAqIFI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcCA8IGwgLSAxID8gKHAgKz0gMSkgOiAoeSA9ICExKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKHQuX2xhc3RQb2ludCA9IHApLAogICAgICAgICAgICAgICAgKHQuX2xhc3RBZGRlZExlbmd0aCA9IE4gLSBfLnBvaW50c1twXS5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICh0Ll9sYXN0S2V5ZnJhbWVJbmRleCA9IG0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgVywgaywgcSwgSCwgWDsKICAgICAgICAgICAgaWYgKCgodiA9IGkucy5sZW5ndGgpLCAoZyA9IGEucyB8fCBpLmUpLCB0aGlzLnNoICYmIGkuaCAhPT0gMSkpCiAgICAgICAgICAgICAgZSA+PSBNCiAgICAgICAgICAgICAgICA/ICgoclswXSA9IGdbMF0pLCAoclsxXSA9IGdbMV0pLCAoclsyXSA9IGdbMl0pKQogICAgICAgICAgICAgICAgOiBlIDw9IEEKICAgICAgICAgICAgICAgID8gKChyWzBdID0gaS5zWzBdKSwgKHJbMV0gPSBpLnNbMV0pLCAoclsyXSA9IGkuc1syXSkpCiAgICAgICAgICAgICAgICA6IHF1YXRlcm5pb25Ub0V1bGVyKAogICAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgICAgc2xlcnAoCiAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVRdWF0ZXJuaW9uKGkucyksCiAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVRdWF0ZXJuaW9uKGcpLAogICAgICAgICAgICAgICAgICAgICAgKGUgLSBBKSAvIChNIC0gQSkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBmb3IgKG0gPSAwOyBtIDwgdjsgbSArPSAxKQogICAgICAgICAgICAgICAgaS5oICE9PSAxICYmCiAgICAgICAgICAgICAgICAgIChlID49IE0KICAgICAgICAgICAgICAgICAgICA/ICh1ID0gMSkKICAgICAgICAgICAgICAgICAgICA6IGUgPCBBCiAgICAgICAgICAgICAgICAgICAgPyAodSA9IDApCiAgICAgICAgICAgICAgICAgICAgOiAoaS5vLnguY29uc3RydWN0b3IgPT09IEFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgID8gKG8uX19mbmN0IHx8IChvLl9fZm5jdCA9IFtdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBvLl9fZm5jdFttXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoZCA9IG8uX19mbmN0W21dKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoKFcgPSBpLm8ueFttXSA9PT0gdm9pZCAwID8gaS5vLnhbMF0gOiBpLm8ueFttXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrID0gaS5vLnlbbV0gPT09IHZvaWQgMCA/IGkuby55WzBdIDogaS5vLnlbbV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocSA9IGkuaS54W21dID09PSB2b2lkIDAgPyBpLmkueFswXSA6IGkuaS54W21dKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEggPSBpLmkueVttXSA9PT0gdm9pZCAwID8gaS5pLnlbMF0gOiBpLmkueVttXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkID0gQmV6aWVyRmFjdG9yeS5nZXRCZXppZXJFYXNpbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvLl9fZm5jdFttXSA9IGQpKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBvLl9fZm5jdAogICAgICAgICAgICAgICAgICAgICAgICA/IChkID0gby5fX2ZuY3QpCiAgICAgICAgICAgICAgICAgICAgICAgIDogKChXID0gaS5vLngpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChrID0gaS5vLnkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChxID0gaS5pLngpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChIID0gaS5pLnkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChkID0gQmV6aWVyRmFjdG9yeS5nZXRCZXppZXJFYXNpbmcoVywgaywgcSwgSCkuZ2V0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoaS5rZXlmcmFtZU1ldGFkYXRhID0gZCkpLAogICAgICAgICAgICAgICAgICAgICAgKHUgPSBkKChlIC0gQSkgLyAoTSAtIEEpKSkpKSwKICAgICAgICAgICAgICAgICAgKGcgPSBhLnMgfHwgaS5lKSwKICAgICAgICAgICAgICAgICAgKFggPSBpLmggPT09IDEgPyBpLnNbbV0gOiBpLnNbbV0gKyAoZ1ttXSAtIGkuc1ttXSkgKiB1KSwKICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wVHlwZSA9PT0gIm11bHRpZGltZW5zaW9uYWwiID8gKHJbbV0gPSBYKSA6IChyID0gWCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gKHQubGFzdEluZGV4ID0gaCksIHI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNsZXJwKGUsIHQsIHIpIHsKICAgICAgICAgIHZhciBuLAogICAgICAgICAgICBpLAogICAgICAgICAgICBhLAogICAgICAgICAgICBvLAogICAgICAgICAgICBzLAogICAgICAgICAgICBjID0gW10sCiAgICAgICAgICAgIHUgPSBlWzBdLAogICAgICAgICAgICBsID0gZVsxXSwKICAgICAgICAgICAgcCA9IGVbMl0sCiAgICAgICAgICAgIGQgPSBlWzNdLAogICAgICAgICAgICBoID0gdFswXSwKICAgICAgICAgICAgbSA9IHRbMV0sCiAgICAgICAgICAgIHYgPSB0WzJdLAogICAgICAgICAgICB5ID0gdFszXTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIChpID0gdSAqIGggKyBsICogbSArIHAgKiB2ICsgZCAqIHkpIDwgMCAmJgogICAgICAgICAgICAgICgoaSA9IC1pKSwgKGggPSAtaCksIChtID0gLW0pLCAodiA9IC12KSwgKHkgPSAteSkpLAogICAgICAgICAgICAxIC0gaSA+IDFlLTYKICAgICAgICAgICAgICA/ICgobiA9IE1hdGguYWNvcyhpKSksCiAgICAgICAgICAgICAgICAoYSA9IE1hdGguc2luKG4pKSwKICAgICAgICAgICAgICAgIChvID0gTWF0aC5zaW4oKDEgLSByKSAqIG4pIC8gYSksCiAgICAgICAgICAgICAgICAocyA9IE1hdGguc2luKHIgKiBuKSAvIGEpKQogICAgICAgICAgICAgIDogKChvID0gMSAtIHIpLCAocyA9IHIpKSwKICAgICAgICAgICAgKGNbMF0gPSBvICogdSArIHMgKiBoKSwKICAgICAgICAgICAgKGNbMV0gPSBvICogbCArIHMgKiBtKSwKICAgICAgICAgICAgKGNbMl0gPSBvICogcCArIHMgKiB2KSwKICAgICAgICAgICAgKGNbM10gPSBvICogZCArIHMgKiB5KSwKICAgICAgICAgICAgYwogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcXVhdGVybmlvblRvRXVsZXIoZSwgdCkgewogICAgICAgICAgdmFyIHIgPSB0WzBdLAogICAgICAgICAgICBuID0gdFsxXSwKICAgICAgICAgICAgaSA9IHRbMl0sCiAgICAgICAgICAgIGEgPSB0WzNdLAogICAgICAgICAgICBvID0gTWF0aC5hdGFuMigyICogbiAqIGEgLSAyICogciAqIGksIDEgLSAyICogbiAqIG4gLSAyICogaSAqIGkpLAogICAgICAgICAgICBzID0gTWF0aC5hc2luKDIgKiByICogbiArIDIgKiBpICogYSksCiAgICAgICAgICAgIGMgPSBNYXRoLmF0YW4yKDIgKiByICogYSAtIDIgKiBuICogaSwgMSAtIDIgKiByICogciAtIDIgKiBpICogaSk7CiAgICAgICAgICAoZVswXSA9IG8gLyBkZWdUb1JhZHMpLAogICAgICAgICAgICAoZVsxXSA9IHMgLyBkZWdUb1JhZHMpLAogICAgICAgICAgICAoZVsyXSA9IGMgLyBkZWdUb1JhZHMpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjcmVhdGVRdWF0ZXJuaW9uKGUpIHsKICAgICAgICAgIHZhciB0ID0gZVswXSAqIGRlZ1RvUmFkcywKICAgICAgICAgICAgciA9IGVbMV0gKiBkZWdUb1JhZHMsCiAgICAgICAgICAgIG4gPSBlWzJdICogZGVnVG9SYWRzLAogICAgICAgICAgICBpID0gTWF0aC5jb3ModCAvIDIpLAogICAgICAgICAgICBhID0gTWF0aC5jb3MociAvIDIpLAogICAgICAgICAgICBvID0gTWF0aC5jb3MobiAvIDIpLAogICAgICAgICAgICBzID0gTWF0aC5zaW4odCAvIDIpLAogICAgICAgICAgICBjID0gTWF0aC5zaW4ociAvIDIpLAogICAgICAgICAgICB1ID0gTWF0aC5zaW4obiAvIDIpOwogICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgcyAqIGMgKiBvICsgaSAqIGEgKiB1LAogICAgICAgICAgICBzICogYSAqIG8gKyBpICogYyAqIHUsCiAgICAgICAgICAgIGkgKiBjICogbyAtIHMgKiBhICogdSwKICAgICAgICAgICAgaSAqIGEgKiBvIC0gcyAqIGMgKiB1LAogICAgICAgICAgXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZ2V0VmFsdWVBdEN1cnJlbnRUaW1lKCkgewogICAgICAgICAgdmFyIGUgPSB0aGlzLmNvbXAucmVuZGVyZWRGcmFtZSAtIHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgdCA9IHRoaXMua2V5ZnJhbWVzWzBdLnQgLSB0aGlzLm9mZnNldFRpbWUsCiAgICAgICAgICAgIHIgPSB0aGlzLmtleWZyYW1lc1t0aGlzLmtleWZyYW1lcy5sZW5ndGggLSAxXS50IC0gdGhpcy5vZmZzZXRUaW1lOwogICAgICAgICAgaWYgKAogICAgICAgICAgICAhKAogICAgICAgICAgICAgIGUgPT09IHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lIHx8CiAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lICE9PSBpbml0RnJhbWUgJiYKICAgICAgICAgICAgICAgICgodGhpcy5fY2FjaGluZy5sYXN0RnJhbWUgPj0gciAmJiBlID49IHIpIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZSA8IHQgJiYgZSA8IHQpKSkKICAgICAgICAgICAgKQogICAgICAgICAgKSB7CiAgICAgICAgICAgIHRoaXMuX2NhY2hpbmcubGFzdEZyYW1lID49IGUgJiYKICAgICAgICAgICAgICAoKHRoaXMuX2NhY2hpbmcuX2xhc3RLZXlmcmFtZUluZGV4ID0gLTEpLAogICAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nLmxhc3RJbmRleCA9IDApKTsKICAgICAgICAgICAgdmFyIG4gPSB0aGlzLmludGVycG9sYXRlVmFsdWUoZSwgdGhpcy5fY2FjaGluZyk7CiAgICAgICAgICAgIHRoaXMucHYgPSBuOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuICh0aGlzLl9jYWNoaW5nLmxhc3RGcmFtZSA9IGUpLCB0aGlzLnB2OwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBzZXRWVmFsdWUoZSkgewogICAgICAgICAgdmFyIHQ7CiAgICAgICAgICBpZiAodGhpcy5wcm9wVHlwZSA9PT0gInVuaWRpbWVuc2lvbmFsIikKICAgICAgICAgICAgKHQgPSBlICogdGhpcy5tdWx0KSwKICAgICAgICAgICAgICBtYXRoQWJzKHRoaXMudiAtIHQpID4gMWUtNSAmJiAoKHRoaXMudiA9IHQpLCAodGhpcy5fbWRmID0gITApKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZm9yICh2YXIgciA9IDAsIG4gPSB0aGlzLnYubGVuZ3RoOyByIDwgbjsgKQogICAgICAgICAgICAgICh0ID0gZVtyXSAqIHRoaXMubXVsdCksCiAgICAgICAgICAgICAgICBtYXRoQWJzKHRoaXMudltyXSAtIHQpID4gMWUtNSAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMudltyXSA9IHQpLCAodGhpcy5fbWRmID0gITApKSwKICAgICAgICAgICAgICAgIChyICs9IDEpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwcm9jZXNzRWZmZWN0c1NlcXVlbmNlKCkgewogICAgICAgICAgaWYgKAogICAgICAgICAgICB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkICE9PSB0aGlzLmZyYW1lSWQgJiYKICAgICAgICAgICAgdGhpcy5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoCiAgICAgICAgICApCiAgICAgICAgICAgIGlmICh0aGlzLmxvY2spIHRoaXMuc2V0VlZhbHVlKHRoaXMucHYpOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICB2YXIgZTsKICAgICAgICAgICAgICAodGhpcy5sb2NrID0gITApLCAodGhpcy5fbWRmID0gdGhpcy5faXNGaXJzdEZyYW1lKTsKICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCwKICAgICAgICAgICAgICAgIHIgPSB0aGlzLmtmID8gdGhpcy5wdiA6IHRoaXMuZGF0YS5rOwogICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHIgPSB0aGlzLmVmZmVjdHNTZXF1ZW5jZVtlXShyKTsKICAgICAgICAgICAgICB0aGlzLnNldFZWYWx1ZShyKSwKICAgICAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5sb2NrID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFkZEVmZmVjdChlKSB7CiAgICAgICAgICB0aGlzLmVmZmVjdHNTZXF1ZW5jZS5wdXNoKGUpLCB0aGlzLmNvbnRhaW5lci5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIFZhbHVlUHJvcGVydHkoZSwgdCwgciwgbikgewogICAgICAgICAgKHRoaXMucHJvcFR5cGUgPSAidW5pZGltZW5zaW9uYWwiKSwKICAgICAgICAgICAgKHRoaXMubXVsdCA9IHIgfHwgMSksCiAgICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwKICAgICAgICAgICAgKHRoaXMudiA9IHIgPyB0LmsgKiByIDogdC5rKSwKICAgICAgICAgICAgKHRoaXMucHYgPSB0LmspLAogICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAodGhpcy5lbGVtID0gZSksCiAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IG4pLAogICAgICAgICAgICAodGhpcy5jb21wID0gZS5jb21wKSwKICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgKHRoaXMua2YgPSAhMSksCiAgICAgICAgICAgICh0aGlzLnZlbCA9IDApLAogICAgICAgICAgICAodGhpcy5lZmZlY3RzU2VxdWVuY2UgPSBbXSksCiAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCksCiAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gcHJvY2Vzc0VmZmVjdHNTZXF1ZW5jZSksCiAgICAgICAgICAgICh0aGlzLnNldFZWYWx1ZSA9IHNldFZWYWx1ZSksCiAgICAgICAgICAgICh0aGlzLmFkZEVmZmVjdCA9IGFkZEVmZmVjdCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIE11bHRpRGltZW5zaW9uYWxQcm9wZXJ0eShlLCB0LCByLCBuKSB7CiAgICAgICAgICB2YXIgaTsKICAgICAgICAgICh0aGlzLnByb3BUeXBlID0gIm11bHRpZGltZW5zaW9uYWwiKSwKICAgICAgICAgICAgKHRoaXMubXVsdCA9IHIgfHwgMSksCiAgICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwKICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGUpLAogICAgICAgICAgICAodGhpcy5jb250YWluZXIgPSBuKSwKICAgICAgICAgICAgKHRoaXMuY29tcCA9IGUuY29tcCksCiAgICAgICAgICAgICh0aGlzLmsgPSAhMSksCiAgICAgICAgICAgICh0aGlzLmtmID0gITEpLAogICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gLTEpOwogICAgICAgICAgdmFyIGEgPSB0LmsubGVuZ3RoOwogICAgICAgICAgZm9yICgKICAgICAgICAgICAgdGhpcy52ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGEpLAogICAgICAgICAgICAgIHRoaXMucHYgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgYSksCiAgICAgICAgICAgICAgdGhpcy52ZWwgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgYSksCiAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgIGkgPCBhOwogICAgICAgICAgICBpICs9IDEKICAgICAgICAgICkKICAgICAgICAgICAgKHRoaXMudltpXSA9IHQua1tpXSAqIHRoaXMubXVsdCksICh0aGlzLnB2W2ldID0gdC5rW2ldKTsKICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCksCiAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSBwcm9jZXNzRWZmZWN0c1NlcXVlbmNlKSwKICAgICAgICAgICAgKHRoaXMuc2V0VlZhbHVlID0gc2V0VlZhbHVlKSwKICAgICAgICAgICAgKHRoaXMuYWRkRWZmZWN0ID0gYWRkRWZmZWN0KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gS2V5ZnJhbWVkVmFsdWVQcm9wZXJ0eShlLCB0LCByLCBuKSB7CiAgICAgICAgICAodGhpcy5wcm9wVHlwZSA9ICJ1bmlkaW1lbnNpb25hbCIpLAogICAgICAgICAgICAodGhpcy5rZXlmcmFtZXMgPSB0LmspLAogICAgICAgICAgICAodGhpcy5rZXlmcmFtZXNNZXRhZGF0YSA9IFtdKSwKICAgICAgICAgICAgKHRoaXMub2Zmc2V0VGltZSA9IGUuZGF0YS5zdCksCiAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nID0gewogICAgICAgICAgICAgIGxhc3RGcmFtZTogaW5pdEZyYW1lLAogICAgICAgICAgICAgIGxhc3RJbmRleDogMCwKICAgICAgICAgICAgICB2YWx1ZTogMCwKICAgICAgICAgICAgICBfbGFzdEtleWZyYW1lSW5kZXg6IC0xLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHRoaXMuayA9ICEwKSwKICAgICAgICAgICAgKHRoaXMua2YgPSAhMCksCiAgICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwKICAgICAgICAgICAgKHRoaXMubXVsdCA9IHIgfHwgMSksCiAgICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyID0gbiksCiAgICAgICAgICAgICh0aGlzLmNvbXAgPSBlLmNvbXApLAogICAgICAgICAgICAodGhpcy52ID0gaW5pdEZyYW1lKSwKICAgICAgICAgICAgKHRoaXMucHYgPSBpbml0RnJhbWUpLAogICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHByb2Nlc3NFZmZlY3RzU2VxdWVuY2UpLAogICAgICAgICAgICAodGhpcy5zZXRWVmFsdWUgPSBzZXRWVmFsdWUpLAogICAgICAgICAgICAodGhpcy5pbnRlcnBvbGF0ZVZhbHVlID0gaW50ZXJwb2xhdGVWYWx1ZSksCiAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtnZXRWYWx1ZUF0Q3VycmVudFRpbWUuYmluZCh0aGlzKV0pLAogICAgICAgICAgICAodGhpcy5hZGRFZmZlY3QgPSBhZGRFZmZlY3QpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBLZXlmcmFtZWRNdWx0aWRpbWVuc2lvbmFsUHJvcGVydHkoZSwgdCwgciwgbikgewogICAgICAgICAgdmFyIGk7CiAgICAgICAgICB0aGlzLnByb3BUeXBlID0gIm11bHRpZGltZW5zaW9uYWwiOwogICAgICAgICAgdmFyIGEsCiAgICAgICAgICAgIG8sCiAgICAgICAgICAgIHMsCiAgICAgICAgICAgIGMsCiAgICAgICAgICAgIHUgPSB0LmsubGVuZ3RoOwogICAgICAgICAgZm9yIChpID0gMDsgaSA8IHUgLSAxOyBpICs9IDEpCiAgICAgICAgICAgIHQua1tpXS50byAmJgogICAgICAgICAgICAgIHQua1tpXS5zICYmCiAgICAgICAgICAgICAgdC5rW2kgKyAxXSAmJgogICAgICAgICAgICAgIHQua1tpICsgMV0ucyAmJgogICAgICAgICAgICAgICgoYSA9IHQua1tpXS5zKSwKICAgICAgICAgICAgICAobyA9IHQua1tpICsgMV0ucyksCiAgICAgICAgICAgICAgKHMgPSB0LmtbaV0udG8pLAogICAgICAgICAgICAgIChjID0gdC5rW2ldLnRpKSwKICAgICAgICAgICAgICAoKGEubGVuZ3RoID09PSAyICYmCiAgICAgICAgICAgICAgICAoYVswXSAhPT0gb1swXSB8fCBhWzFdICE9PSBvWzFdKSAmJgogICAgICAgICAgICAgICAgYmV6LnBvaW50T25MaW5lMkQoCiAgICAgICAgICAgICAgICAgIGFbMF0sCiAgICAgICAgICAgICAgICAgIGFbMV0sCiAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgIG9bMV0sCiAgICAgICAgICAgICAgICAgIGFbMF0gKyBzWzBdLAogICAgICAgICAgICAgICAgICBhWzFdICsgc1sxXQogICAgICAgICAgICAgICAgKSAmJgogICAgICAgICAgICAgICAgYmV6LnBvaW50T25MaW5lMkQoCiAgICAgICAgICAgICAgICAgIGFbMF0sCiAgICAgICAgICAgICAgICAgIGFbMV0sCiAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgIG9bMV0sCiAgICAgICAgICAgICAgICAgIG9bMF0gKyBjWzBdLAogICAgICAgICAgICAgICAgICBvWzFdICsgY1sxXQogICAgICAgICAgICAgICAgKSkgfHwKICAgICAgICAgICAgICAgIChhLmxlbmd0aCA9PT0gMyAmJgogICAgICAgICAgICAgICAgICAoYVswXSAhPT0gb1swXSB8fCBhWzFdICE9PSBvWzFdIHx8IGFbMl0gIT09IG9bMl0pICYmCiAgICAgICAgICAgICAgICAgIGJlei5wb2ludE9uTGluZTNEKAogICAgICAgICAgICAgICAgICAgIGFbMF0sCiAgICAgICAgICAgICAgICAgICAgYVsxXSwKICAgICAgICAgICAgICAgICAgICBhWzJdLAogICAgICAgICAgICAgICAgICAgIG9bMF0sCiAgICAgICAgICAgICAgICAgICAgb1sxXSwKICAgICAgICAgICAgICAgICAgICBvWzJdLAogICAgICAgICAgICAgICAgICAgIGFbMF0gKyBzWzBdLAogICAgICAgICAgICAgICAgICAgIGFbMV0gKyBzWzFdLAogICAgICAgICAgICAgICAgICAgIGFbMl0gKyBzWzJdCiAgICAgICAgICAgICAgICAgICkgJiYKICAgICAgICAgICAgICAgICAgYmV6LnBvaW50T25MaW5lM0QoCiAgICAgICAgICAgICAgICAgICAgYVswXSwKICAgICAgICAgICAgICAgICAgICBhWzFdLAogICAgICAgICAgICAgICAgICAgIGFbMl0sCiAgICAgICAgICAgICAgICAgICAgb1swXSwKICAgICAgICAgICAgICAgICAgICBvWzFdLAogICAgICAgICAgICAgICAgICAgIG9bMl0sCiAgICAgICAgICAgICAgICAgICAgb1swXSArIGNbMF0sCiAgICAgICAgICAgICAgICAgICAgb1sxXSArIGNbMV0sCiAgICAgICAgICAgICAgICAgICAgb1syXSArIGNbMl0KICAgICAgICAgICAgICAgICAgKSkpICYmCiAgICAgICAgICAgICAgICAoKHQua1tpXS50byA9IG51bGwpLCAodC5rW2ldLnRpID0gbnVsbCkpLAogICAgICAgICAgICAgIGFbMF0gPT09IG9bMF0gJiYKICAgICAgICAgICAgICAgIGFbMV0gPT09IG9bMV0gJiYKICAgICAgICAgICAgICAgIHNbMF0gPT09IDAgJiYKICAgICAgICAgICAgICAgIHNbMV0gPT09IDAgJiYKICAgICAgICAgICAgICAgIGNbMF0gPT09IDAgJiYKICAgICAgICAgICAgICAgIGNbMV0gPT09IDAgJiYKICAgICAgICAgICAgICAgIChhLmxlbmd0aCA9PT0gMiB8fAogICAgICAgICAgICAgICAgICAoYVsyXSA9PT0gb1syXSAmJiBzWzJdID09PSAwICYmIGNbMl0gPT09IDApKSAmJgogICAgICAgICAgICAgICAgKCh0LmtbaV0udG8gPSBudWxsKSwgKHQua1tpXS50aSA9IG51bGwpKSk7CiAgICAgICAgICAodGhpcy5lZmZlY3RzU2VxdWVuY2UgPSBbZ2V0VmFsdWVBdEN1cnJlbnRUaW1lLmJpbmQodGhpcyldKSwKICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAodGhpcy5rZXlmcmFtZXMgPSB0LmspLAogICAgICAgICAgICAodGhpcy5rZXlmcmFtZXNNZXRhZGF0YSA9IFtdKSwKICAgICAgICAgICAgKHRoaXMub2Zmc2V0VGltZSA9IGUuZGF0YS5zdCksCiAgICAgICAgICAgICh0aGlzLmsgPSAhMCksCiAgICAgICAgICAgICh0aGlzLmtmID0gITApLAogICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAodGhpcy5tdWx0ID0gciB8fCAxKSwKICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGUpLAogICAgICAgICAgICAodGhpcy5jb250YWluZXIgPSBuKSwKICAgICAgICAgICAgKHRoaXMuY29tcCA9IGUuY29tcCksCiAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gcHJvY2Vzc0VmZmVjdHNTZXF1ZW5jZSksCiAgICAgICAgICAgICh0aGlzLnNldFZWYWx1ZSA9IHNldFZWYWx1ZSksCiAgICAgICAgICAgICh0aGlzLmludGVycG9sYXRlVmFsdWUgPSBpbnRlcnBvbGF0ZVZhbHVlKSwKICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IC0xKTsKICAgICAgICAgIHZhciBsID0gdC5rWzBdLnMubGVuZ3RoOwogICAgICAgICAgZm9yICgKICAgICAgICAgICAgdGhpcy52ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGwpLAogICAgICAgICAgICAgIHRoaXMucHYgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgbCksCiAgICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgIGkgPCBsOwogICAgICAgICAgICBpICs9IDEKICAgICAgICAgICkKICAgICAgICAgICAgKHRoaXMudltpXSA9IGluaXRGcmFtZSksICh0aGlzLnB2W2ldID0gaW5pdEZyYW1lKTsKICAgICAgICAgICh0aGlzLl9jYWNoaW5nID0gewogICAgICAgICAgICBsYXN0RnJhbWU6IGluaXRGcmFtZSwKICAgICAgICAgICAgbGFzdEluZGV4OiAwLAogICAgICAgICAgICB2YWx1ZTogY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGwpLAogICAgICAgICAgfSksCiAgICAgICAgICAgICh0aGlzLmFkZEVmZmVjdCA9IGFkZEVmZmVjdCk7CiAgICAgICAgfQogICAgICAgIHZhciBQcm9wZXJ0eUZhY3RvcnkgPSB7CiAgICAgICAgICBnZXRQcm9wOiBmdW5jdGlvbiAoZSwgdCwgciwgbiwgaSkgewogICAgICAgICAgICB2YXIgYTsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICh0LnNpZCAmJiAodCA9IGUuZ2xvYmFsRGF0YS5zbG90TWFuYWdlci5nZXRQcm9wKHQpKSwgdC5rLmxlbmd0aCkKICAgICAgICAgICAgKQogICAgICAgICAgICAgIGlmICh0eXBlb2YgdC5rWzBdID09ICJudW1iZXIiKQogICAgICAgICAgICAgICAgYSA9IG5ldyBNdWx0aURpbWVuc2lvbmFsUHJvcGVydHkoZSwgdCwgbiwgaSk7CiAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgc3dpdGNoIChyKSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBhID0gbmV3IEtleWZyYW1lZFZhbHVlUHJvcGVydHkoZSwgdCwgbiwgaSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBhID0gbmV3IEtleWZyYW1lZE11bHRpZGltZW5zaW9uYWxQcm9wZXJ0eShlLCB0LCBuLCBpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBhID0gbmV3IFZhbHVlUHJvcGVydHkoZSwgdCwgbiwgaSk7CiAgICAgICAgICAgIHJldHVybiBhLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggJiYgaS5hZGREeW5hbWljUHJvcGVydHkoYSksIGE7CiAgICAgICAgICB9LAogICAgICAgIH07CiAgICAgICAgZnVuY3Rpb24gRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKCkge30KICAgICAgICBEeW5hbWljUHJvcGVydHlDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAgICAgYWRkRHluYW1pY1Byb3BlcnR5OiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmluZGV4T2YoZSkgPT09IC0xICYmCiAgICAgICAgICAgICAgKHRoaXMuZHluYW1pY1Byb3BlcnRpZXMucHVzaChlKSwKICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGREeW5hbWljUHJvcGVydHkodGhpcyksCiAgICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPSAhMCkpOwogICAgICAgICAgfSwKICAgICAgICAgIGl0ZXJhdGVEeW5hbWljUHJvcGVydGllczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZTsKICAgICAgICAgICAgdGhpcy5fbWRmID0gITE7CiAgICAgICAgICAgIHZhciB0ID0gdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllc1tlXS5nZXRWYWx1ZSgpLAogICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllc1tlXS5fbWRmICYmICh0aGlzLl9tZGYgPSAhMCk7CiAgICAgICAgICB9LAogICAgICAgICAgaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcjogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgKHRoaXMuY29udGFpbmVyID0gZSksCiAgICAgICAgICAgICAgKHRoaXMuZHluYW1pY1Byb3BlcnRpZXMgPSBbXSksCiAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICExKTsKICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgICAgICB2YXIgcG9pbnRQb29sID0gcG9vbEZhY3RvcnkoOCwgZnVuY3Rpb24gKCkgewogICAgICAgICAgcmV0dXJuIGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCAyKTsKICAgICAgICB9KTsKICAgICAgICBmdW5jdGlvbiBTaGFwZVBhdGgoKSB7CiAgICAgICAgICAodGhpcy5jID0gITEpLAogICAgICAgICAgICAodGhpcy5fbGVuZ3RoID0gMCksCiAgICAgICAgICAgICh0aGlzLl9tYXhMZW5ndGggPSA4KSwKICAgICAgICAgICAgKHRoaXMudiA9IGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSksCiAgICAgICAgICAgICh0aGlzLm8gPSBjcmVhdGVTaXplZEFycmF5KHRoaXMuX21heExlbmd0aCkpLAogICAgICAgICAgICAodGhpcy5pID0gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLl9tYXhMZW5ndGgpKTsKICAgICAgICB9CiAgICAgICAgKFNoYXBlUGF0aC5wcm90b3R5cGUuc2V0UGF0aERhdGEgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgKHRoaXMuYyA9IGUpLCB0aGlzLnNldExlbmd0aCh0KTsKICAgICAgICAgIGZvciAodmFyIHIgPSAwOyByIDwgdDsgKQogICAgICAgICAgICAodGhpcy52W3JdID0gcG9pbnRQb29sLm5ld0VsZW1lbnQoKSksCiAgICAgICAgICAgICAgKHRoaXMub1tyXSA9IHBvaW50UG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICh0aGlzLmlbcl0gPSBwb2ludFBvb2wubmV3RWxlbWVudCgpKSwKICAgICAgICAgICAgICAociArPSAxKTsKICAgICAgICB9KSwKICAgICAgICAgIChTaGFwZVBhdGgucHJvdG90eXBlLnNldExlbmd0aCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGZvciAoOyB0aGlzLl9tYXhMZW5ndGggPCBlOyApIHRoaXMuZG91YmxlQXJyYXlMZW5ndGgoKTsKICAgICAgICAgICAgdGhpcy5fbGVuZ3RoID0gZTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNoYXBlUGF0aC5wcm90b3R5cGUuZG91YmxlQXJyYXlMZW5ndGggPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICh0aGlzLnYgPSB0aGlzLnYuY29uY2F0KGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSkpLAogICAgICAgICAgICAgICh0aGlzLmkgPSB0aGlzLmkuY29uY2F0KGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSkpLAogICAgICAgICAgICAgICh0aGlzLm8gPSB0aGlzLm8uY29uY2F0KGNyZWF0ZVNpemVkQXJyYXkodGhpcy5fbWF4TGVuZ3RoKSkpLAogICAgICAgICAgICAgICh0aGlzLl9tYXhMZW5ndGggKj0gMik7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTaGFwZVBhdGgucHJvdG90eXBlLnNldFhZQXQgPSBmdW5jdGlvbiAoZSwgdCwgciwgbiwgaSkgewogICAgICAgICAgICB2YXIgYTsKICAgICAgICAgICAgc3dpdGNoICgKICAgICAgICAgICAgICAoKHRoaXMuX2xlbmd0aCA9IE1hdGgubWF4KHRoaXMuX2xlbmd0aCwgbiArIDEpKSwKICAgICAgICAgICAgICB0aGlzLl9sZW5ndGggPj0gdGhpcy5fbWF4TGVuZ3RoICYmIHRoaXMuZG91YmxlQXJyYXlMZW5ndGgoKSwKICAgICAgICAgICAgICByKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBjYXNlICJ2IjoKICAgICAgICAgICAgICAgIGEgPSB0aGlzLnY7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJpIjoKICAgICAgICAgICAgICAgIGEgPSB0aGlzLmk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICAgIGEgPSB0aGlzLm87CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYSA9IFtdOwogICAgICAgICAgICB9CiAgICAgICAgICAgICghYVtuXSB8fCAoYVtuXSAmJiAhaSkpICYmIChhW25dID0gcG9pbnRQb29sLm5ld0VsZW1lbnQoKSksCiAgICAgICAgICAgICAgKGFbbl1bMF0gPSBlKSwKICAgICAgICAgICAgICAoYVtuXVsxXSA9IHQpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU2hhcGVQYXRoLnByb3RvdHlwZS5zZXRUcmlwbGVBdCA9IGZ1bmN0aW9uIChlLCB0LCByLCBuLCBpLCBhLCBvLCBzKSB7CiAgICAgICAgICAgIHRoaXMuc2V0WFlBdChlLCB0LCAidiIsIG8sIHMpLAogICAgICAgICAgICAgIHRoaXMuc2V0WFlBdChyLCBuLCAibyIsIG8sIHMpLAogICAgICAgICAgICAgIHRoaXMuc2V0WFlBdChpLCBhLCAiaSIsIG8sIHMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU2hhcGVQYXRoLnByb3RvdHlwZS5yZXZlcnNlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IG5ldyBTaGFwZVBhdGgoKTsKICAgICAgICAgICAgZS5zZXRQYXRoRGF0YSh0aGlzLmMsIHRoaXMuX2xlbmd0aCk7CiAgICAgICAgICAgIHZhciB0ID0gdGhpcy52LAogICAgICAgICAgICAgIHIgPSB0aGlzLm8sCiAgICAgICAgICAgICAgbiA9IHRoaXMuaSwKICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgdGhpcy5jICYmCiAgICAgICAgICAgICAgKGUuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICB0WzBdWzBdLAogICAgICAgICAgICAgICAgdFswXVsxXSwKICAgICAgICAgICAgICAgIG5bMF1bMF0sCiAgICAgICAgICAgICAgICBuWzBdWzFdLAogICAgICAgICAgICAgICAgclswXVswXSwKICAgICAgICAgICAgICAgIHJbMF1bMV0sCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgITEKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIChpID0gMSkpOwogICAgICAgICAgICB2YXIgYSwKICAgICAgICAgICAgICBvID0gdGhpcy5fbGVuZ3RoIC0gMSwKICAgICAgICAgICAgICBzID0gdGhpcy5fbGVuZ3RoOwogICAgICAgICAgICBmb3IgKGEgPSBpOyBhIDwgczsgYSArPSAxKQogICAgICAgICAgICAgIGUuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICB0W29dWzBdLAogICAgICAgICAgICAgICAgdFtvXVsxXSwKICAgICAgICAgICAgICAgIG5bb11bMF0sCiAgICAgICAgICAgICAgICBuW29dWzFdLAogICAgICAgICAgICAgICAgcltvXVswXSwKICAgICAgICAgICAgICAgIHJbb11bMV0sCiAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgITEKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgKG8gLT0gMSk7CiAgICAgICAgICAgIHJldHVybiBlOwogICAgICAgICAgfSksCiAgICAgICAgICAoU2hhcGVQYXRoLnByb3RvdHlwZS5sZW5ndGggPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sZW5ndGg7CiAgICAgICAgICB9KTsKICAgICAgICB2YXIgc2hhcGVQb29sID0KICAgICAgICAgICAgKChmYWN0b3J5ID0gcG9vbEZhY3RvcnkoCiAgICAgICAgICAgICAgNCwKICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNoYXBlUGF0aCgpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gZS5fbGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgcG9pbnRQb29sLnJlbGVhc2UoZS52W3RdKSwKICAgICAgICAgICAgICAgICAgICBwb2ludFBvb2wucmVsZWFzZShlLmlbdF0pLAogICAgICAgICAgICAgICAgICAgIHBvaW50UG9vbC5yZWxlYXNlKGUub1t0XSksCiAgICAgICAgICAgICAgICAgICAgKGUudlt0XSA9IG51bGwpLAogICAgICAgICAgICAgICAgICAgIChlLmlbdF0gPSBudWxsKSwKICAgICAgICAgICAgICAgICAgICAoZS5vW3RdID0gbnVsbCk7CiAgICAgICAgICAgICAgICAoZS5fbGVuZ3RoID0gMCksIChlLmMgPSAhMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICApKSwKICAgICAgICAgICAgKGZhY3RvcnkuY2xvbmUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgciA9IGZhY3RvcnkubmV3RWxlbWVudCgpLAogICAgICAgICAgICAgICAgbiA9IGUuX2xlbmd0aCA9PT0gdm9pZCAwID8gZS52Lmxlbmd0aCA6IGUuX2xlbmd0aDsKICAgICAgICAgICAgICBmb3IgKHIuc2V0TGVuZ3RoKG4pLCByLmMgPSBlLmMsIHQgPSAwOyB0IDwgbjsgdCArPSAxKQogICAgICAgICAgICAgICAgci5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgZS52W3RdWzBdLAogICAgICAgICAgICAgICAgICBlLnZbdF1bMV0sCiAgICAgICAgICAgICAgICAgIGUub1t0XVswXSwKICAgICAgICAgICAgICAgICAgZS5vW3RdWzFdLAogICAgICAgICAgICAgICAgICBlLmlbdF1bMF0sCiAgICAgICAgICAgICAgICAgIGUuaVt0XVsxXSwKICAgICAgICAgICAgICAgICAgdAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICByZXR1cm4gcjsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGZhY3RvcnkpLAogICAgICAgICAgZmFjdG9yeTsKICAgICAgICBmdW5jdGlvbiBTaGFwZUNvbGxlY3Rpb24oKSB7CiAgICAgICAgICAodGhpcy5fbGVuZ3RoID0gMCksCiAgICAgICAgICAgICh0aGlzLl9tYXhMZW5ndGggPSA0KSwKICAgICAgICAgICAgKHRoaXMuc2hhcGVzID0gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLl9tYXhMZW5ndGgpKTsKICAgICAgICB9CiAgICAgICAgKFNoYXBlQ29sbGVjdGlvbi5wcm90b3R5cGUuYWRkU2hhcGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgdGhpcy5fbGVuZ3RoID09PSB0aGlzLl9tYXhMZW5ndGggJiYKICAgICAgICAgICAgKCh0aGlzLnNoYXBlcyA9IHRoaXMuc2hhcGVzLmNvbmNhdCgKICAgICAgICAgICAgICBjcmVhdGVTaXplZEFycmF5KHRoaXMuX21heExlbmd0aCkKICAgICAgICAgICAgKSksCiAgICAgICAgICAgICh0aGlzLl9tYXhMZW5ndGggKj0gMikpLAogICAgICAgICAgICAodGhpcy5zaGFwZXNbdGhpcy5fbGVuZ3RoXSA9IGUpLAogICAgICAgICAgICAodGhpcy5fbGVuZ3RoICs9IDEpOwogICAgICAgIH0pLAogICAgICAgICAgKFNoYXBlQ29sbGVjdGlvbi5wcm90b3R5cGUucmVsZWFzZVNoYXBlcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGU7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0aGlzLl9sZW5ndGg7IGUgKz0gMSkKICAgICAgICAgICAgICBzaGFwZVBvb2wucmVsZWFzZSh0aGlzLnNoYXBlc1tlXSk7CiAgICAgICAgICAgIHRoaXMuX2xlbmd0aCA9IDA7CiAgICAgICAgICB9KTsKICAgICAgICB2YXIgc2hhcGVDb2xsZWN0aW9uUG9vbCA9CiAgICAgICAgICAgICgob2IgPSB7CiAgICAgICAgICAgICAgbmV3U2hhcGVDb2xsZWN0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gX2xlbmd0aCA/IHBvb2xbKF9sZW5ndGggLT0gMSldIDogbmV3IFNoYXBlQ29sbGVjdGlvbigpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcmVsZWFzZTogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgICAgICByID0gZS5fbGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgc2hhcGVQb29sLnJlbGVhc2UoZS5zaGFwZXNbdF0pOwogICAgICAgICAgICAgICAgKGUuX2xlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICBfbGVuZ3RoID09PSBfbWF4TGVuZ3RoICYmCiAgICAgICAgICAgICAgICAgICAgKChwb29sID0gcG9vbGluZy5kb3VibGUocG9vbCkpLCAoX21heExlbmd0aCAqPSAyKSksCiAgICAgICAgICAgICAgICAgIChwb29sW19sZW5ndGhdID0gZSksCiAgICAgICAgICAgICAgICAgIChfbGVuZ3RoICs9IDEpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAoX2xlbmd0aCA9IDApLAogICAgICAgICAgICAoX21heExlbmd0aCA9IDQpLAogICAgICAgICAgICAocG9vbCA9IGNyZWF0ZVNpemVkQXJyYXkoX21heExlbmd0aCkpLAogICAgICAgICAgICBvYiksCiAgICAgICAgICBvYiwKICAgICAgICAgIF9sZW5ndGgsCiAgICAgICAgICBfbWF4TGVuZ3RoLAogICAgICAgICAgcG9vbCwKICAgICAgICAgIFNoYXBlUHJvcGVydHlGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUgPSAtOTk5OTk5OwogICAgICAgICAgICBmdW5jdGlvbiB0KGgsIG0sIHYpIHsKICAgICAgICAgICAgICB2YXIgeSwKICAgICAgICAgICAgICAgIGcsCiAgICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgICAgQSwKICAgICAgICAgICAgICAgIF8sCiAgICAgICAgICAgICAgICBDLAogICAgICAgICAgICAgICAgUiwKICAgICAgICAgICAgICAgIEwsCiAgICAgICAgICAgICAgICBOLAogICAgICAgICAgICAgICAgVyA9IHYubGFzdEluZGV4LAogICAgICAgICAgICAgICAgayA9IHRoaXMua2V5ZnJhbWVzOwogICAgICAgICAgICAgIGlmIChoIDwga1swXS50IC0gdGhpcy5vZmZzZXRUaW1lKQogICAgICAgICAgICAgICAgKHkgPSBrWzBdLnNbMF0pLCAoTSA9ICEwKSwgKFcgPSAwKTsKICAgICAgICAgICAgICBlbHNlIGlmIChoID49IGtbay5sZW5ndGggLSAxXS50IC0gdGhpcy5vZmZzZXRUaW1lKQogICAgICAgICAgICAgICAgKHkgPSBrW2subGVuZ3RoIC0gMV0ucwogICAgICAgICAgICAgICAgICA/IGtbay5sZW5ndGggLSAxXS5zWzBdCiAgICAgICAgICAgICAgICAgIDoga1trLmxlbmd0aCAtIDJdLmVbMF0pLAogICAgICAgICAgICAgICAgICAoTSA9ICEwKTsKICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgIHZhciBxLCBILCBYLCBVID0gVywgdGUgPSBrLmxlbmd0aCAtIDEsIG9lID0gITA7CiAgICAgICAgICAgICAgICAgIG9lICYmICgocSA9IGtbVV0pLCAhKChIID0ga1tVICsgMV0pLnQgLSB0aGlzLm9mZnNldFRpbWUgPiBoKSk7CgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBVIDwgdGUgLSAxID8gKFUgKz0gMSkgOiAob2UgPSAhMSk7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgoWCA9IHRoaXMua2V5ZnJhbWVzTWV0YWRhdGFbVV0gfHwge30pLAogICAgICAgICAgICAgICAgICAoVyA9IFUpLAogICAgICAgICAgICAgICAgICAhKE0gPSBxLmggPT09IDEpKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGlmIChoID49IEgudCAtIHRoaXMub2Zmc2V0VGltZSkgTCA9IDE7CiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGggPCBxLnQgLSB0aGlzLm9mZnNldFRpbWUpIEwgPSAwOwogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgeWU7CiAgICAgICAgICAgICAgICAgICAgWC5fX2ZuY3QKICAgICAgICAgICAgICAgICAgICAgID8gKHllID0gWC5fX2ZuY3QpCiAgICAgICAgICAgICAgICAgICAgICA6ICgoeWUgPSBCZXppZXJGYWN0b3J5LmdldEJlemllckVhc2luZygKICAgICAgICAgICAgICAgICAgICAgICAgICBxLm8ueCwKICAgICAgICAgICAgICAgICAgICAgICAgICBxLm8ueSwKICAgICAgICAgICAgICAgICAgICAgICAgICBxLmkueCwKICAgICAgICAgICAgICAgICAgICAgICAgICBxLmkueQogICAgICAgICAgICAgICAgICAgICAgICApLmdldCksCiAgICAgICAgICAgICAgICAgICAgICAgIChYLl9fZm5jdCA9IHllKSksCiAgICAgICAgICAgICAgICAgICAgICAoTCA9IHllKAogICAgICAgICAgICAgICAgICAgICAgICAoaCAtIChxLnQgLSB0aGlzLm9mZnNldFRpbWUpKSAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEgudCAtIHRoaXMub2Zmc2V0VGltZSAtIChxLnQgLSB0aGlzLm9mZnNldFRpbWUpKQogICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZyA9IEgucyA/IEguc1swXSA6IHEuZVswXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHkgPSBxLnNbMF07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICBDID0gbS5fbGVuZ3RoLCBSID0geS5pWzBdLmxlbmd0aCwgdi5sYXN0SW5kZXggPSBXLCBBID0gMDsKICAgICAgICAgICAgICAgIEEgPCBDOwogICAgICAgICAgICAgICAgQSArPSAxCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgZm9yIChfID0gMDsgXyA8IFI7IF8gKz0gMSkKICAgICAgICAgICAgICAgICAgKE4gPSBNID8geS5pW0FdW19dIDogeS5pW0FdW19dICsgKGcuaVtBXVtfXSAtIHkuaVtBXVtfXSkgKiBMKSwKICAgICAgICAgICAgICAgICAgICAobS5pW0FdW19dID0gTiksCiAgICAgICAgICAgICAgICAgICAgKE4gPSBNCiAgICAgICAgICAgICAgICAgICAgICA/IHkub1tBXVtfXQogICAgICAgICAgICAgICAgICAgICAgOiB5Lm9bQV1bX10gKyAoZy5vW0FdW19dIC0geS5vW0FdW19dKSAqIEwpLAogICAgICAgICAgICAgICAgICAgIChtLm9bQV1bX10gPSBOKSwKICAgICAgICAgICAgICAgICAgICAoTiA9IE0KICAgICAgICAgICAgICAgICAgICAgID8geS52W0FdW19dCiAgICAgICAgICAgICAgICAgICAgICA6IHkudltBXVtfXSArIChnLnZbQV1bX10gLSB5LnZbQV1bX10pICogTCksCiAgICAgICAgICAgICAgICAgICAgKG0udltBXVtfXSA9IE4pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHIoKSB7CiAgICAgICAgICAgICAgdmFyIGggPSB0aGlzLmNvbXAucmVuZGVyZWRGcmFtZSAtIHRoaXMub2Zmc2V0VGltZSwKICAgICAgICAgICAgICAgIG0gPSB0aGlzLmtleWZyYW1lc1swXS50IC0gdGhpcy5vZmZzZXRUaW1lLAogICAgICAgICAgICAgICAgdiA9CiAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZnJhbWVzW3RoaXMua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLSB0aGlzLm9mZnNldFRpbWUsCiAgICAgICAgICAgICAgICB5ID0gdGhpcy5fY2FjaGluZy5sYXN0RnJhbWU7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICh5ICE9PSBlICYmICgoeSA8IG0gJiYgaCA8IG0pIHx8ICh5ID4gdiAmJiBoID4gdikpKSB8fAogICAgICAgICAgICAgICAgICAoKHRoaXMuX2NhY2hpbmcubGFzdEluZGV4ID0KICAgICAgICAgICAgICAgICAgICB5IDwgaCA/IHRoaXMuX2NhY2hpbmcubGFzdEluZGV4IDogMCksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJwb2xhdGVTaGFwZShoLCB0aGlzLnB2LCB0aGlzLl9jYWNoaW5nKSksCiAgICAgICAgICAgICAgICAodGhpcy5fY2FjaGluZy5sYXN0RnJhbWUgPSBoKSwKICAgICAgICAgICAgICAgIHRoaXMucHYKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG4oKSB7CiAgICAgICAgICAgICAgdGhpcy5wYXRocyA9IHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb247CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gaShoKSB7CiAgICAgICAgICAgICAgKGZ1bmN0aW9uIChtLCB2KSB7CiAgICAgICAgICAgICAgICBpZiAobS5fbGVuZ3RoICE9PSB2Ll9sZW5ndGggfHwgbS5jICE9PSB2LmMpIHJldHVybiAhMTsKICAgICAgICAgICAgICAgIHZhciB5LAogICAgICAgICAgICAgICAgICBnID0gbS5fbGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh5ID0gMDsgeSA8IGc7IHkgKz0gMSkKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIG0udlt5XVswXSAhPT0gdi52W3ldWzBdIHx8CiAgICAgICAgICAgICAgICAgICAgbS52W3ldWzFdICE9PSB2LnZbeV1bMV0gfHwKICAgICAgICAgICAgICAgICAgICBtLm9beV1bMF0gIT09IHYub1t5XVswXSB8fAogICAgICAgICAgICAgICAgICAgIG0ub1t5XVsxXSAhPT0gdi5vW3ldWzFdIHx8CiAgICAgICAgICAgICAgICAgICAgbS5pW3ldWzBdICE9PSB2LmlbeV1bMF0gfHwKICAgICAgICAgICAgICAgICAgICBtLmlbeV1bMV0gIT09IHYuaVt5XVsxXQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICExOwogICAgICAgICAgICAgICAgcmV0dXJuICEwOwogICAgICAgICAgICAgIH0pKHRoaXMudiwgaCkgfHwKICAgICAgICAgICAgICAgICgodGhpcy52ID0gc2hhcGVQb29sLmNsb25lKGgpKSwKICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24ucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbi5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGEoKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCkKICAgICAgICAgICAgICAgIGlmICh0aGlzLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgpCiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2spIHRoaXMuc2V0VlZhbHVlKHRoaXMucHYpOwogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaCwgbTsKICAgICAgICAgICAgICAgICAgICAodGhpcy5sb2NrID0gITApLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgIChoID0gdGhpcy5rZgogICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMucHYKICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmRhdGEua3MKICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmRhdGEua3MuawogICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGF0YS5wdC5rKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IHRoaXMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICBmb3IgKG0gPSAwOyBtIDwgdjsgbSArPSAxKSBoID0gdGhpcy5lZmZlY3RzU2VxdWVuY2VbbV0oaCk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWVmFsdWUoaCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5sb2NrID0gITEpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHRoaXMuX21kZiA9ICExOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG8oaCwgbSwgdikgewogICAgICAgICAgICAgICh0aGlzLnByb3BUeXBlID0gInNoYXBlIiksCiAgICAgICAgICAgICAgICAodGhpcy5jb21wID0gaC5jb21wKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IGgpLAogICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGgpLAogICAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IG0pLAogICAgICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLmtmID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKTsKICAgICAgICAgICAgICB2YXIgeSA9IHYgPT09IDMgPyBtLnB0LmsgOiBtLmtzLms7CiAgICAgICAgICAgICAgKHRoaXMudiA9IHNoYXBlUG9vbC5jbG9uZSh5KSksCiAgICAgICAgICAgICAgICAodGhpcy5wdiA9IHNoYXBlUG9vbC5jbG9uZSh0aGlzLnYpKSwKICAgICAgICAgICAgICAgICh0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uID0KICAgICAgICAgICAgICAgICAgc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSksCiAgICAgICAgICAgICAgICAodGhpcy5wYXRocyA9IHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24pLAogICAgICAgICAgICAgICAgdGhpcy5wYXRocy5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgKHRoaXMucmVzZXQgPSBuKSwKICAgICAgICAgICAgICAgICh0aGlzLmVmZmVjdHNTZXF1ZW5jZSA9IFtdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBzKGgpIHsKICAgICAgICAgICAgICB0aGlzLmVmZmVjdHNTZXF1ZW5jZS5wdXNoKGgpLAogICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRHluYW1pY1Byb3BlcnR5KHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGMoaCwgbSwgdikgewogICAgICAgICAgICAgICh0aGlzLnByb3BUeXBlID0gInNoYXBlIiksCiAgICAgICAgICAgICAgICAodGhpcy5jb21wID0gaC5jb21wKSwKICAgICAgICAgICAgICAgICh0aGlzLmVsZW0gPSBoKSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbnRhaW5lciA9IGgpLAogICAgICAgICAgICAgICAgKHRoaXMub2Zmc2V0VGltZSA9IGguZGF0YS5zdCksCiAgICAgICAgICAgICAgICAodGhpcy5rZXlmcmFtZXMgPSB2ID09PSAzID8gbS5wdC5rIDogbS5rcy5rKSwKICAgICAgICAgICAgICAgICh0aGlzLmtleWZyYW1lc01ldGFkYXRhID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuayA9ICEwKSwKICAgICAgICAgICAgICAgICh0aGlzLmtmID0gITApOwogICAgICAgICAgICAgIHZhciB5ID0gdGhpcy5rZXlmcmFtZXNbMF0uc1swXS5pLmxlbmd0aDsKICAgICAgICAgICAgICAodGhpcy52ID0gc2hhcGVQb29sLm5ld0VsZW1lbnQoKSksCiAgICAgICAgICAgICAgICB0aGlzLnYuc2V0UGF0aERhdGEodGhpcy5rZXlmcmFtZXNbMF0uc1swXS5jLCB5KSwKICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gc2hhcGVQb29sLmNsb25lKHRoaXMudikpLAogICAgICAgICAgICAgICAgKHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24gPQogICAgICAgICAgICAgICAgICBzaGFwZUNvbGxlY3Rpb25Qb29sLm5ld1NoYXBlQ29sbGVjdGlvbigpKSwKICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICB0aGlzLnBhdGhzLmFkZFNoYXBlKHRoaXMudiksCiAgICAgICAgICAgICAgICAodGhpcy5sYXN0RnJhbWUgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlc2V0ID0gbiksCiAgICAgICAgICAgICAgICAodGhpcy5fY2FjaGluZyA9IHsgbGFzdEZyYW1lOiBlLCBsYXN0SW5kZXg6IDAgfSksCiAgICAgICAgICAgICAgICAodGhpcy5lZmZlY3RzU2VxdWVuY2UgPSBbci5iaW5kKHRoaXMpXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKG8ucHJvdG90eXBlLmludGVycG9sYXRlU2hhcGUgPSB0KSwKICAgICAgICAgICAgICAoby5wcm90b3R5cGUuZ2V0VmFsdWUgPSBhKSwKICAgICAgICAgICAgICAoby5wcm90b3R5cGUuc2V0VlZhbHVlID0gaSksCiAgICAgICAgICAgICAgKG8ucHJvdG90eXBlLmFkZEVmZmVjdCA9IHMpLAogICAgICAgICAgICAgIChjLnByb3RvdHlwZS5nZXRWYWx1ZSA9IGEpLAogICAgICAgICAgICAgIChjLnByb3RvdHlwZS5pbnRlcnBvbGF0ZVNoYXBlID0gdCksCiAgICAgICAgICAgICAgKGMucHJvdG90eXBlLnNldFZWYWx1ZSA9IGkpLAogICAgICAgICAgICAgIChjLnByb3RvdHlwZS5hZGRFZmZlY3QgPSBzKTsKICAgICAgICAgICAgdmFyIHUgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGggPSByb3VuZENvcm5lcjsKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG0odiwgeSkgewogICAgICAgICAgICAgICAgICAodGhpcy52ID0gc2hhcGVQb29sLm5ld0VsZW1lbnQoKSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFBhdGhEYXRhKCEwLCA0KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICBzaGFwZUNvbGxlY3Rpb25Qb29sLm5ld1NoYXBlQ29sbGVjdGlvbigpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5wYXRocyA9IHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24pLAogICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24uYWRkU2hhcGUodGhpcy52KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5kID0geS5kKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtID0gdiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29tcCA9IHYuY29tcCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IC0xKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIodiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMucCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHYsIHkucCwgMSwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCh2LCB5LnMsIDEsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5rID0gITApCiAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy5rID0gITEpLCB0aGlzLmNvbnZlcnRFbGxUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAobS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgcmVzZXQ6IG4sCiAgICAgICAgICAgICAgICAgICAgZ2V0VmFsdWU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZGYgJiYgdGhpcy5jb252ZXJ0RWxsVG9QYXRoKCkpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgY29udmVydEVsbFRvUGF0aDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIHYgPSB0aGlzLnAudlswXSwKICAgICAgICAgICAgICAgICAgICAgICAgeSA9IHRoaXMucC52WzFdLAogICAgICAgICAgICAgICAgICAgICAgICBnID0gdGhpcy5zLnZbMF0gLyAyLAogICAgICAgICAgICAgICAgICAgICAgICBNID0gdGhpcy5zLnZbMV0gLyAyLAogICAgICAgICAgICAgICAgICAgICAgICBBID0gdGhpcy5kICE9PSAzLAogICAgICAgICAgICAgICAgICAgICAgICBfID0gdGhpcy52OwogICAgICAgICAgICAgICAgICAgICAgKF8udlswXVswXSA9IHYpLAogICAgICAgICAgICAgICAgICAgICAgICAoXy52WzBdWzFdID0geSAtIE0pLAogICAgICAgICAgICAgICAgICAgICAgICAoXy52WzFdWzBdID0gQSA/IHYgKyBnIDogdiAtIGcpLAogICAgICAgICAgICAgICAgICAgICAgICAoXy52WzFdWzFdID0geSksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLnZbMl1bMF0gPSB2KSwKICAgICAgICAgICAgICAgICAgICAgICAgKF8udlsyXVsxXSA9IHkgKyBNKSwKICAgICAgICAgICAgICAgICAgICAgICAgKF8udlszXVswXSA9IEEgPyB2IC0gZyA6IHYgKyBnKSwKICAgICAgICAgICAgICAgICAgICAgICAgKF8udlszXVsxXSA9IHkpLAogICAgICAgICAgICAgICAgICAgICAgICAoXy5pWzBdWzBdID0gQSA/IHYgLSBnICogaCA6IHYgKyBnICogaCksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLmlbMF1bMV0gPSB5IC0gTSksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLmlbMV1bMF0gPSBBID8gdiArIGcgOiB2IC0gZyksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLmlbMV1bMV0gPSB5IC0gTSAqIGgpLAogICAgICAgICAgICAgICAgICAgICAgICAoXy5pWzJdWzBdID0gQSA/IHYgKyBnICogaCA6IHYgLSBnICogaCksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLmlbMl1bMV0gPSB5ICsgTSksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLmlbM11bMF0gPSBBID8gdiAtIGcgOiB2ICsgZyksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLmlbM11bMV0gPSB5ICsgTSAqIGgpLAogICAgICAgICAgICAgICAgICAgICAgICAoXy5vWzBdWzBdID0gQSA/IHYgKyBnICogaCA6IHYgLSBnICogaCksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLm9bMF1bMV0gPSB5IC0gTSksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLm9bMV1bMF0gPSBBID8gdiArIGcgOiB2IC0gZyksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLm9bMV1bMV0gPSB5ICsgTSAqIGgpLAogICAgICAgICAgICAgICAgICAgICAgICAoXy5vWzJdWzBdID0gQSA/IHYgLSBnICogaCA6IHYgKyBnICogaCksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLm9bMl1bMV0gPSB5ICsgTSksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLm9bM11bMF0gPSBBID8gdiAtIGcgOiB2ICsgZyksCiAgICAgICAgICAgICAgICAgICAgICAgIChfLm9bM11bMV0gPSB5IC0gTSAqIGgpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIG0pLAogICAgICAgICAgICAgICAgICBtCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0pKCksCiAgICAgICAgICAgICAgbCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBmdW5jdGlvbiBoKG0sIHYpIHsKICAgICAgICAgICAgICAgICAgKHRoaXMudiA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRQYXRoRGF0YSghMCwgMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IG0pLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBtLmNvbXApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmRhdGEgPSB2KSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUlkID0gLTEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmQgPSB2LmQpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihtKSwKICAgICAgICAgICAgICAgICAgICB2LnN5ID09PSAxCiAgICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy5pciA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICAgICAgICAgIG0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgdi5pciwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaXMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgICAgICBtLAogICAgICAgICAgICAgICAgICAgICAgICAgIHYuaXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLjAxLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbnZlcnRUb1BhdGggPSB0aGlzLmNvbnZlcnRTdGFyVG9QYXRoKSkKICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMuY29udmVydFRvUGF0aCA9IHRoaXMuY29udmVydFBvbHlnb25Ub1BhdGgpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnB0ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AobSwgdi5wdCwgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnAgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChtLCB2LnAsIDEsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgICBtLAogICAgICAgICAgICAgICAgICAgICAgdi5yLAogICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgIGRlZ1RvUmFkcywKICAgICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5vciA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKG0sIHYub3IsIDAsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5vcyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKG0sIHYub3MsIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiA9CiAgICAgICAgICAgICAgICAgICAgICBzaGFwZUNvbGxlY3Rpb25Qb29sLm5ld1NoYXBlQ29sbGVjdGlvbigpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uLmFkZFNoYXBlKHRoaXMudiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMucGF0aHMgPSB0aGlzLmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5rID0gITApCiAgICAgICAgICAgICAgICAgICAgICA6ICgodGhpcy5rID0gITEpLCB0aGlzLmNvbnZlcnRUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoaC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgcmVzZXQ6IG4sCiAgICAgICAgICAgICAgICAgICAgZ2V0VmFsdWU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZGYgJiYgdGhpcy5jb252ZXJ0VG9QYXRoKCkpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgY29udmVydFN0YXJUb1BhdGg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBtLAogICAgICAgICAgICAgICAgICAgICAgICB2LAogICAgICAgICAgICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgICAgICAgICAgICBnLAogICAgICAgICAgICAgICAgICAgICAgICBNID0gMiAqIE1hdGguZmxvb3IodGhpcy5wdC52KSwKICAgICAgICAgICAgICAgICAgICAgICAgQSA9ICgyICogTWF0aC5QSSkgLyBNLAogICAgICAgICAgICAgICAgICAgICAgICBfID0gITAsCiAgICAgICAgICAgICAgICAgICAgICAgIEMgPSB0aGlzLm9yLnYsCiAgICAgICAgICAgICAgICAgICAgICAgIFIgPSB0aGlzLmlyLnYsCiAgICAgICAgICAgICAgICAgICAgICAgIEwgPSB0aGlzLm9zLnYsCiAgICAgICAgICAgICAgICAgICAgICAgIE4gPSB0aGlzLmlzLnYsCiAgICAgICAgICAgICAgICAgICAgICAgIFcgPSAoMiAqIE1hdGguUEkgKiBDKSAvICgyICogTSksCiAgICAgICAgICAgICAgICAgICAgICAgIGsgPSAoMiAqIE1hdGguUEkgKiBSKSAvICgyICogTSksCiAgICAgICAgICAgICAgICAgICAgICAgIHEgPSAtTWF0aC5QSSAvIDI7CiAgICAgICAgICAgICAgICAgICAgICBxICs9IHRoaXMuci52OwogICAgICAgICAgICAgICAgICAgICAgdmFyIEggPSB0aGlzLmRhdGEuZCA9PT0gMyA/IC0xIDogMTsKICAgICAgICAgICAgICAgICAgICAgIGZvciAodGhpcy52Ll9sZW5ndGggPSAwLCBtID0gMDsgbSA8IE07IG0gKz0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICAoeSA9IF8gPyBMIDogTiksIChnID0gXyA/IFcgOiBrKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFggPSAodiA9IF8gPyBDIDogUikgKiBNYXRoLmNvcyhxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBVID0gdiAqIE1hdGguc2luKHEpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRlID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFggPT09IDAgJiYgVSA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBVIC8gTWF0aC5zcXJ0KFggKiBYICsgVSAqIFUpLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9lID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFggPT09IDAgJiYgVSA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAtWCAvIE1hdGguc3FydChYICogWCArIFUgKiBVKTsKICAgICAgICAgICAgICAgICAgICAgICAgKFggKz0gK3RoaXMucC52WzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoVSArPSArdGhpcy5wLnZbMV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWCAtIHRlICogZyAqIHkgKiBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVSAtIG9lICogZyAqIHkgKiBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWCArIHRlICogZyAqIHkgKiBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVSArIG9lICogZyAqIHkgKiBILAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoXyA9ICFfKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAocSArPSBBICogSCk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBjb252ZXJ0UG9seWdvblRvUGF0aDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIG0sCiAgICAgICAgICAgICAgICAgICAgICAgIHYgPSBNYXRoLmZsb29yKHRoaXMucHQudiksCiAgICAgICAgICAgICAgICAgICAgICAgIHkgPSAoMiAqIE1hdGguUEkpIC8gdiwKICAgICAgICAgICAgICAgICAgICAgICAgZyA9IHRoaXMub3IudiwKICAgICAgICAgICAgICAgICAgICAgICAgTSA9IHRoaXMub3MudiwKICAgICAgICAgICAgICAgICAgICAgICAgQSA9ICgyICogTWF0aC5QSSAqIGcpIC8gKDQgKiB2KSwKICAgICAgICAgICAgICAgICAgICAgICAgXyA9IDAuNSAqIC1NYXRoLlBJLAogICAgICAgICAgICAgICAgICAgICAgICBDID0gdGhpcy5kYXRhLmQgPT09IDMgPyAtMSA6IDE7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgICBfICs9IHRoaXMuci52LCB0aGlzLnYuX2xlbmd0aCA9IDAsIG0gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBtIDwgdjsKICAgICAgICAgICAgICAgICAgICAgICAgbSArPSAxCiAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFIgPSBnICogTWF0aC5jb3MoXyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgTCA9IGcgKiBNYXRoLnNpbihfKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBOID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFIgPT09IDAgJiYgTCA9PT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBMIC8gTWF0aC5zcXJ0KFIgKiBSICsgTCAqIEwpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFcgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUiA9PT0gMCAmJiBMID09PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC1SIC8gTWF0aC5zcXJ0KFIgKiBSICsgTCAqIEwpOwogICAgICAgICAgICAgICAgICAgICAgICAoUiArPSArdGhpcy5wLnZbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIChMICs9ICt0aGlzLnAudlsxXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSIC0gTiAqIEEgKiBNICogQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwgLSBXICogQSAqIE0gKiBDLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUiArIE4gKiBBICogTSAqIEMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMICsgVyAqIEEgKiBNICogQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF8gKz0geSAqIEMpOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgKHRoaXMucGF0aHMubGVuZ3RoID0gMCksICh0aGlzLnBhdGhzWzBdID0gdGhpcy52KTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBoKSwKICAgICAgICAgICAgICAgICAgaAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgIHAgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgZnVuY3Rpb24gaChtLCB2KSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLnYgPSBzaGFwZVBvb2wubmV3RWxlbWVudCgpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy52LmMgPSAhMCksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMubG9jYWxTaGFwZUNvbGxlY3Rpb24gPQogICAgICAgICAgICAgICAgICAgICAgc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbi5hZGRTaGFwZSh0aGlzLnYpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnBhdGhzID0gdGhpcy5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IG0pLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBtLmNvbXApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZCA9IHYuZCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKG0pLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnAgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChtLCB2LnAsIDEsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AobSwgdi5zLCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuciA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKG0sIHYuciwgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmsgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgIDogKCh0aGlzLmsgPSAhMSksIHRoaXMuY29udmVydFJlY3RUb1BhdGgoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAoaC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgY29udmVydFJlY3RUb1BhdGg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBtID0gdGhpcy5wLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB0aGlzLnAudlsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgeSA9IHRoaXMucy52WzBdIC8gMiwKICAgICAgICAgICAgICAgICAgICAgICAgZyA9IHRoaXMucy52WzFdIC8gMiwKICAgICAgICAgICAgICAgICAgICAgICAgTSA9IGJtTWluKHksIGcsIHRoaXMuci52KSwKICAgICAgICAgICAgICAgICAgICAgICAgQSA9IE0gKiAoMSAtIHJvdW5kQ29ybmVyKTsKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnYuX2xlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmQgPT09IDIgfHwgdGhpcy5kID09PSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcgKyBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcgKyBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcgKyBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnIC0gTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnIC0gQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnIC0gTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNICE9PSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gKyB5IC0gTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHkgLSBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSAtIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICsgZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHkgKyBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSArIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICsgZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5ICsgTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnIC0gTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcgLSBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICsgZyAtIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcgKyBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZyArIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLSBnICsgTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHkgKyBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSArIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5ICsgQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLSBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSAtIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gKyB5IC0gQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLSBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHkgLSBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHkgKyBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcgKyBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gKyB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZyArIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gKyB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZyArIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gKyB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZyArIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTSAhPT0gMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSAtIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gKyB5IC0gTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLSBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHkgLSBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5ICsgTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLSBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHkgKyBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSArIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC0gZyArIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLSBnICsgTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcgKyBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnIC0gTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcgLSBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICsgZyAtIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gLSB5ICsgTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHkgKyBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSArIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICsgZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHkgLSBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSAtIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICsgZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gKyB5IC0gTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnIC0gTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gKyB5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcgLSBNLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICsgZyAtIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLSBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHkgKyBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLSBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSAtIHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICsgZyAtIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtIC0geSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSArIHkgLSBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArIGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtICsgeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKyBnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgZ2V0VmFsdWU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZGYgJiYgdGhpcy5jb252ZXJ0UmVjdFRvUGF0aCgpKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHJlc2V0OiBuLAogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBoKSwKICAgICAgICAgICAgICAgICAgaAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9KSgpLAogICAgICAgICAgICAgIGQgPSB7CiAgICAgICAgICAgICAgICBnZXRTaGFwZVByb3A6IGZ1bmN0aW9uIChoLCBtLCB2KSB7CiAgICAgICAgICAgICAgICAgIHZhciB5OwogICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgIHYgPT09IDMgfHwgdiA9PT0gNAogICAgICAgICAgICAgICAgICAgICAgPyAoeSA9ICh2ID09PSAzID8gbS5wdCA6IG0ua3MpLmsubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBuZXcgYyhoLCBtLCB2KQogICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV3IG8oaCwgbSwgdikpCiAgICAgICAgICAgICAgICAgICAgICA6IHYgPT09IDUKICAgICAgICAgICAgICAgICAgICAgID8gKHkgPSBuZXcgcChoLCBtKSkKICAgICAgICAgICAgICAgICAgICAgIDogdiA9PT0gNgogICAgICAgICAgICAgICAgICAgICAgPyAoeSA9IG5ldyB1KGgsIG0pKQogICAgICAgICAgICAgICAgICAgICAgOiB2ID09PSA3ICYmICh5ID0gbmV3IGwoaCwgbSkpLAogICAgICAgICAgICAgICAgICAgIHkuayAmJiBoLmFkZER5bmFtaWNQcm9wZXJ0eSh5KSwKICAgICAgICAgICAgICAgICAgICB5CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZ2V0Q29uc3RydWN0b3JGdW5jdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gbzsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBnZXRLZXlmcmFtZWRDb25zdHJ1Y3RvckZ1bmN0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBjOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9OwogICAgICAgICAgICByZXR1cm4gZDsKICAgICAgICAgIH0pKCksCiAgICAgICAgICBNYXRyaXggPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IE1hdGguY29zLAogICAgICAgICAgICAgIHQgPSBNYXRoLnNpbiwKICAgICAgICAgICAgICByID0gTWF0aC50YW4sCiAgICAgICAgICAgICAgbiA9IE1hdGgucm91bmQ7CiAgICAgICAgICAgIGZ1bmN0aW9uIGkoKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzBdID0gMSksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxXSA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMl0gPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzNdID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s0XSA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbNV0gPSAxKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzZdID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s3XSA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbOF0gPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzldID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxMF0gPSAxKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzExXSA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTJdID0gMCksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxM10gPSAwKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzE0XSA9IDApLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTVdID0gMSksCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBhKEYpIHsKICAgICAgICAgICAgICBpZiAoRiA9PT0gMCkgcmV0dXJuIHRoaXM7CiAgICAgICAgICAgICAgdmFyIFkgPSBlKEYpLAogICAgICAgICAgICAgICAgZmUgPSB0KEYpOwogICAgICAgICAgICAgIHJldHVybiB0aGlzLl90KFksIC1mZSwgMCwgMCwgZmUsIFksIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG8oRikgewogICAgICAgICAgICAgIGlmIChGID09PSAwKSByZXR1cm4gdGhpczsKICAgICAgICAgICAgICB2YXIgWSA9IGUoRiksCiAgICAgICAgICAgICAgICBmZSA9IHQoRik7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3QoMSwgMCwgMCwgMCwgMCwgWSwgLWZlLCAwLCAwLCBmZSwgWSwgMCwgMCwgMCwgMCwgMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcyhGKSB7CiAgICAgICAgICAgICAgaWYgKEYgPT09IDApIHJldHVybiB0aGlzOwogICAgICAgICAgICAgIHZhciBZID0gZShGKSwKICAgICAgICAgICAgICAgIGZlID0gdChGKTsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdChZLCAwLCBmZSwgMCwgMCwgMSwgMCwgMCwgLWZlLCAwLCBZLCAwLCAwLCAwLCAwLCAxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBjKEYpIHsKICAgICAgICAgICAgICBpZiAoRiA9PT0gMCkgcmV0dXJuIHRoaXM7CiAgICAgICAgICAgICAgdmFyIFkgPSBlKEYpLAogICAgICAgICAgICAgICAgZmUgPSB0KEYpOwogICAgICAgICAgICAgIHJldHVybiB0aGlzLl90KFksIC1mZSwgMCwgMCwgZmUsIFksIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHUoRiwgWSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLl90KDEsIFksIEYsIDEsIDAsIDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGwoRiwgWSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLnNoZWFyKHIoRiksIHIoWSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHAoRiwgWSkgewogICAgICAgICAgICAgIHZhciBmZSA9IGUoWSksCiAgICAgICAgICAgICAgICBHID0gdChZKTsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdChmZSwgRywgMCwgMCwgLUcsIGZlLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxKQogICAgICAgICAgICAgICAgLl90KDEsIDAsIDAsIDAsIHIoRiksIDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEpCiAgICAgICAgICAgICAgICAuX3QoZmUsIC1HLCAwLCAwLCBHLCBmZSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gZChGLCBZLCBmZSkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBmZSB8fCBmZSA9PT0gMCB8fCAoZmUgPSAxKSwKICAgICAgICAgICAgICAgIEYgPT09IDEgJiYgWSA9PT0gMSAmJiBmZSA9PT0gMQogICAgICAgICAgICAgICAgICA/IHRoaXMKICAgICAgICAgICAgICAgICAgOiB0aGlzLl90KEYsIDAsIDAsIDAsIDAsIFksIDAsIDAsIDAsIDAsIGZlLCAwLCAwLCAwLCAwLCAxKQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gaChGLCBZLCBmZSwgRywgc2UsIEIsIEQsIFEsIHJlLCBuZSwgaGUsIE1lLCBnZSwgSSwgTywgdykgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1swXSA9IEYpLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMV0gPSBZKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzJdID0gZmUpLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbM10gPSBHKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzRdID0gc2UpLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbNV0gPSBCKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzZdID0gRCksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s3XSA9IFEpLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbOF0gPSByZSksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1s5XSA9IG5lKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzEwXSA9IGhlKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzExXSA9IE1lKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzEyXSA9IGdlKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzEzXSA9IEkpLAogICAgICAgICAgICAgICAgKHRoaXMucHJvcHNbMTRdID0gTyksCiAgICAgICAgICAgICAgICAodGhpcy5wcm9wc1sxNV0gPSB3KSwKICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG0oRiwgWSwgZmUpIHsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKGZlID0gZmUgfHwgMCksCiAgICAgICAgICAgICAgICBGICE9PSAwIHx8IFkgIT09IDAgfHwgZmUgIT09IDAKICAgICAgICAgICAgICAgICAgPyB0aGlzLl90KDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDAsIEYsIFksIGZlLCAxKQogICAgICAgICAgICAgICAgICA6IHRoaXMKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHYoRiwgWSwgZmUsIEcsIHNlLCBCLCBELCBRLCByZSwgbmUsIGhlLCBNZSwgZ2UsIEksIE8sIHcpIHsKICAgICAgICAgICAgICB2YXIgeCA9IHRoaXMucHJvcHM7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgRiA9PT0gMSAmJgogICAgICAgICAgICAgICAgWSA9PT0gMCAmJgogICAgICAgICAgICAgICAgZmUgPT09IDAgJiYKICAgICAgICAgICAgICAgIEcgPT09IDAgJiYKICAgICAgICAgICAgICAgIHNlID09PSAwICYmCiAgICAgICAgICAgICAgICBCID09PSAxICYmCiAgICAgICAgICAgICAgICBEID09PSAwICYmCiAgICAgICAgICAgICAgICBRID09PSAwICYmCiAgICAgICAgICAgICAgICByZSA9PT0gMCAmJgogICAgICAgICAgICAgICAgbmUgPT09IDAgJiYKICAgICAgICAgICAgICAgIGhlID09PSAxICYmCiAgICAgICAgICAgICAgICBNZSA9PT0gMAogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICh4WzEyXSA9IHhbMTJdICogRiArIHhbMTVdICogZ2UpLAogICAgICAgICAgICAgICAgICAoeFsxM10gPSB4WzEzXSAqIEIgKyB4WzE1XSAqIEkpLAogICAgICAgICAgICAgICAgICAoeFsxNF0gPSB4WzE0XSAqIGhlICsgeFsxNV0gKiBPKSwKICAgICAgICAgICAgICAgICAgKHhbMTVdICo9IHcpLAogICAgICAgICAgICAgICAgICAodGhpcy5faWRlbnRpdHlDYWxjdWxhdGVkID0gITEpLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHZhciBaID0geFswXSwKICAgICAgICAgICAgICAgIHBlID0geFsxXSwKICAgICAgICAgICAgICAgIG1lID0geFsyXSwKICAgICAgICAgICAgICAgIHogPSB4WzNdLAogICAgICAgICAgICAgICAgaiA9IHhbNF0sCiAgICAgICAgICAgICAgICBKID0geFs1XSwKICAgICAgICAgICAgICAgIGFlID0geFs2XSwKICAgICAgICAgICAgICAgIHVlID0geFs3XSwKICAgICAgICAgICAgICAgIGllID0geFs4XSwKICAgICAgICAgICAgICAgIF9lID0geFs5XSwKICAgICAgICAgICAgICAgIE9lID0geFsxMF0sCiAgICAgICAgICAgICAgICBBZSA9IHhbMTFdLAogICAgICAgICAgICAgICAgbGUgPSB4WzEyXSwKICAgICAgICAgICAgICAgIEllID0geFsxM10sCiAgICAgICAgICAgICAgICBQZSA9IHhbMTRdLAogICAgICAgICAgICAgICAgdHQgPSB4WzE1XTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKHhbMF0gPSBaICogRiArIHBlICogc2UgKyBtZSAqIHJlICsgeiAqIGdlKSwKICAgICAgICAgICAgICAgICh4WzFdID0gWiAqIFkgKyBwZSAqIEIgKyBtZSAqIG5lICsgeiAqIEkpLAogICAgICAgICAgICAgICAgKHhbMl0gPSBaICogZmUgKyBwZSAqIEQgKyBtZSAqIGhlICsgeiAqIE8pLAogICAgICAgICAgICAgICAgKHhbM10gPSBaICogRyArIHBlICogUSArIG1lICogTWUgKyB6ICogdyksCiAgICAgICAgICAgICAgICAoeFs0XSA9IGogKiBGICsgSiAqIHNlICsgYWUgKiByZSArIHVlICogZ2UpLAogICAgICAgICAgICAgICAgKHhbNV0gPSBqICogWSArIEogKiBCICsgYWUgKiBuZSArIHVlICogSSksCiAgICAgICAgICAgICAgICAoeFs2XSA9IGogKiBmZSArIEogKiBEICsgYWUgKiBoZSArIHVlICogTyksCiAgICAgICAgICAgICAgICAoeFs3XSA9IGogKiBHICsgSiAqIFEgKyBhZSAqIE1lICsgdWUgKiB3KSwKICAgICAgICAgICAgICAgICh4WzhdID0gaWUgKiBGICsgX2UgKiBzZSArIE9lICogcmUgKyBBZSAqIGdlKSwKICAgICAgICAgICAgICAgICh4WzldID0gaWUgKiBZICsgX2UgKiBCICsgT2UgKiBuZSArIEFlICogSSksCiAgICAgICAgICAgICAgICAoeFsxMF0gPSBpZSAqIGZlICsgX2UgKiBEICsgT2UgKiBoZSArIEFlICogTyksCiAgICAgICAgICAgICAgICAoeFsxMV0gPSBpZSAqIEcgKyBfZSAqIFEgKyBPZSAqIE1lICsgQWUgKiB3KSwKICAgICAgICAgICAgICAgICh4WzEyXSA9IGxlICogRiArIEllICogc2UgKyBQZSAqIHJlICsgdHQgKiBnZSksCiAgICAgICAgICAgICAgICAoeFsxM10gPSBsZSAqIFkgKyBJZSAqIEIgKyBQZSAqIG5lICsgdHQgKiBJKSwKICAgICAgICAgICAgICAgICh4WzE0XSA9IGxlICogZmUgKyBJZSAqIEQgKyBQZSAqIGhlICsgdHQgKiBPKSwKICAgICAgICAgICAgICAgICh4WzE1XSA9IGxlICogRyArIEllICogUSArIFBlICogTWUgKyB0dCAqIHcpLAogICAgICAgICAgICAgICAgKHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCA9ICExKSwKICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHkoRikgewogICAgICAgICAgICAgIHZhciBZID0gRi5wcm9wczsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0oCiAgICAgICAgICAgICAgICBZWzBdLAogICAgICAgICAgICAgICAgWVsxXSwKICAgICAgICAgICAgICAgIFlbMl0sCiAgICAgICAgICAgICAgICBZWzNdLAogICAgICAgICAgICAgICAgWVs0XSwKICAgICAgICAgICAgICAgIFlbNV0sCiAgICAgICAgICAgICAgICBZWzZdLAogICAgICAgICAgICAgICAgWVs3XSwKICAgICAgICAgICAgICAgIFlbOF0sCiAgICAgICAgICAgICAgICBZWzldLAogICAgICAgICAgICAgICAgWVsxMF0sCiAgICAgICAgICAgICAgICBZWzExXSwKICAgICAgICAgICAgICAgIFlbMTJdLAogICAgICAgICAgICAgICAgWVsxM10sCiAgICAgICAgICAgICAgICBZWzE0XSwKICAgICAgICAgICAgICAgIFlbMTVdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBnKCkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICB0aGlzLl9pZGVudGl0eUNhbGN1bGF0ZWQgfHwKICAgICAgICAgICAgICAgICAgKCh0aGlzLl9pZGVudGl0eSA9ICEoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1swXSAhPT0gMSB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMV0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzJdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1szXSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbNF0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzVdICE9PSAxIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1s2XSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbN10gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzhdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1s5XSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTBdICE9PSAxIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxMV0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzEyXSAhPT0gMCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTNdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxNF0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzE1XSAhPT0gMQogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCA9ICEwKSksCiAgICAgICAgICAgICAgICB0aGlzLl9pZGVudGl0eQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gTShGKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgWSA9IDA7IFkgPCAxNjsgKSB7CiAgICAgICAgICAgICAgICBpZiAoRi5wcm9wc1tZXSAhPT0gdGhpcy5wcm9wc1tZXSkgcmV0dXJuICExOwogICAgICAgICAgICAgICAgWSArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gQShGKSB7CiAgICAgICAgICAgICAgdmFyIFk7CiAgICAgICAgICAgICAgZm9yIChZID0gMDsgWSA8IDE2OyBZICs9IDEpIEYucHJvcHNbWV0gPSB0aGlzLnByb3BzW1ldOwogICAgICAgICAgICAgIHJldHVybiBGOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIF8oRikgewogICAgICAgICAgICAgIHZhciBZOwogICAgICAgICAgICAgIGZvciAoWSA9IDA7IFkgPCAxNjsgWSArPSAxKSB0aGlzLnByb3BzW1ldID0gRltZXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBDKEYsIFksIGZlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIHg6CiAgICAgICAgICAgICAgICAgIEYgKiB0aGlzLnByb3BzWzBdICsKICAgICAgICAgICAgICAgICAgWSAqIHRoaXMucHJvcHNbNF0gKwogICAgICAgICAgICAgICAgICBmZSAqIHRoaXMucHJvcHNbOF0gKwogICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzEyXSwKICAgICAgICAgICAgICAgIHk6CiAgICAgICAgICAgICAgICAgIEYgKiB0aGlzLnByb3BzWzFdICsKICAgICAgICAgICAgICAgICAgWSAqIHRoaXMucHJvcHNbNV0gKwogICAgICAgICAgICAgICAgICBmZSAqIHRoaXMucHJvcHNbOV0gKwogICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzEzXSwKICAgICAgICAgICAgICAgIHo6CiAgICAgICAgICAgICAgICAgIEYgKiB0aGlzLnByb3BzWzJdICsKICAgICAgICAgICAgICAgICAgWSAqIHRoaXMucHJvcHNbNl0gKwogICAgICAgICAgICAgICAgICBmZSAqIHRoaXMucHJvcHNbMTBdICsKICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxNF0sCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBSKEYsIFksIGZlKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIEYgKiB0aGlzLnByb3BzWzBdICsKICAgICAgICAgICAgICAgIFkgKiB0aGlzLnByb3BzWzRdICsKICAgICAgICAgICAgICAgIGZlICogdGhpcy5wcm9wc1s4XSArCiAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzEyXQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gTChGLCBZLCBmZSkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBGICogdGhpcy5wcm9wc1sxXSArCiAgICAgICAgICAgICAgICBZICogdGhpcy5wcm9wc1s1XSArCiAgICAgICAgICAgICAgICBmZSAqIHRoaXMucHJvcHNbOV0gKwogICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxM10KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIE4oRiwgWSwgZmUpIHsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgRiAqIHRoaXMucHJvcHNbMl0gKwogICAgICAgICAgICAgICAgWSAqIHRoaXMucHJvcHNbNl0gKwogICAgICAgICAgICAgICAgZmUgKiB0aGlzLnByb3BzWzEwXSArCiAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzE0XQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gVygpIHsKICAgICAgICAgICAgICB2YXIgRiA9CiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMF0gKiB0aGlzLnByb3BzWzVdIC0gdGhpcy5wcm9wc1sxXSAqIHRoaXMucHJvcHNbNF0sCiAgICAgICAgICAgICAgICBZID0gdGhpcy5wcm9wc1s1XSAvIEYsCiAgICAgICAgICAgICAgICBmZSA9IC10aGlzLnByb3BzWzFdIC8gRiwKICAgICAgICAgICAgICAgIEcgPSAtdGhpcy5wcm9wc1s0XSAvIEYsCiAgICAgICAgICAgICAgICBzZSA9IHRoaXMucHJvcHNbMF0gLyBGLAogICAgICAgICAgICAgICAgQiA9CiAgICAgICAgICAgICAgICAgICh0aGlzLnByb3BzWzRdICogdGhpcy5wcm9wc1sxM10gLQogICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbNV0gKiB0aGlzLnByb3BzWzEyXSkgLwogICAgICAgICAgICAgICAgICBGLAogICAgICAgICAgICAgICAgRCA9CiAgICAgICAgICAgICAgICAgIC0oCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1swXSAqIHRoaXMucHJvcHNbMTNdIC0KICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzWzFdICogdGhpcy5wcm9wc1sxMl0KICAgICAgICAgICAgICAgICAgKSAvIEYsCiAgICAgICAgICAgICAgICBRID0gbmV3IE1hdHJpeCgpOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAoUS5wcm9wc1swXSA9IFkpLAogICAgICAgICAgICAgICAgKFEucHJvcHNbMV0gPSBmZSksCiAgICAgICAgICAgICAgICAoUS5wcm9wc1s0XSA9IEcpLAogICAgICAgICAgICAgICAgKFEucHJvcHNbNV0gPSBzZSksCiAgICAgICAgICAgICAgICAoUS5wcm9wc1sxMl0gPSBCKSwKICAgICAgICAgICAgICAgIChRLnByb3BzWzEzXSA9IEQpLAogICAgICAgICAgICAgICAgUQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gayhGKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW52ZXJzZU1hdHJpeCgpLmFwcGx5VG9Qb2ludEFycmF5KAogICAgICAgICAgICAgICAgRlswXSwKICAgICAgICAgICAgICAgIEZbMV0sCiAgICAgICAgICAgICAgICBGWzJdIHx8IDAKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHEoRikgewogICAgICAgICAgICAgIHZhciBZLAogICAgICAgICAgICAgICAgZmUgPSBGLmxlbmd0aCwKICAgICAgICAgICAgICAgIEcgPSBbXTsKICAgICAgICAgICAgICBmb3IgKFkgPSAwOyBZIDwgZmU7IFkgKz0gMSkgR1tZXSA9IGsoRltZXSk7CiAgICAgICAgICAgICAgcmV0dXJuIEc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gSChGLCBZLCBmZSkgewogICAgICAgICAgICAgIHZhciBHID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIDYpOwogICAgICAgICAgICAgIGlmICh0aGlzLmlzSWRlbnRpdHkoKSkKICAgICAgICAgICAgICAgIChHWzBdID0gRlswXSksCiAgICAgICAgICAgICAgICAgIChHWzFdID0gRlsxXSksCiAgICAgICAgICAgICAgICAgIChHWzJdID0gWVswXSksCiAgICAgICAgICAgICAgICAgIChHWzNdID0gWVsxXSksCiAgICAgICAgICAgICAgICAgIChHWzRdID0gZmVbMF0pLAogICAgICAgICAgICAgICAgICAoR1s1XSA9IGZlWzFdKTsKICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBzZSA9IHRoaXMucHJvcHNbMF0sCiAgICAgICAgICAgICAgICAgIEIgPSB0aGlzLnByb3BzWzFdLAogICAgICAgICAgICAgICAgICBEID0gdGhpcy5wcm9wc1s0XSwKICAgICAgICAgICAgICAgICAgUSA9IHRoaXMucHJvcHNbNV0sCiAgICAgICAgICAgICAgICAgIHJlID0gdGhpcy5wcm9wc1sxMl0sCiAgICAgICAgICAgICAgICAgIG5lID0gdGhpcy5wcm9wc1sxM107CiAgICAgICAgICAgICAgICAoR1swXSA9IEZbMF0gKiBzZSArIEZbMV0gKiBEICsgcmUpLAogICAgICAgICAgICAgICAgICAoR1sxXSA9IEZbMF0gKiBCICsgRlsxXSAqIFEgKyBuZSksCiAgICAgICAgICAgICAgICAgIChHWzJdID0gWVswXSAqIHNlICsgWVsxXSAqIEQgKyByZSksCiAgICAgICAgICAgICAgICAgIChHWzNdID0gWVswXSAqIEIgKyBZWzFdICogUSArIG5lKSwKICAgICAgICAgICAgICAgICAgKEdbNF0gPSBmZVswXSAqIHNlICsgZmVbMV0gKiBEICsgcmUpLAogICAgICAgICAgICAgICAgICAoR1s1XSA9IGZlWzBdICogQiArIGZlWzFdICogUSArIG5lKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIEc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gWChGLCBZLCBmZSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzSWRlbnRpdHkoKQogICAgICAgICAgICAgICAgPyBbRiwgWSwgZmVdCiAgICAgICAgICAgICAgICA6IFsKICAgICAgICAgICAgICAgICAgICBGICogdGhpcy5wcm9wc1swXSArCiAgICAgICAgICAgICAgICAgICAgICBZICogdGhpcy5wcm9wc1s0XSArCiAgICAgICAgICAgICAgICAgICAgICBmZSAqIHRoaXMucHJvcHNbOF0gKwogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxMl0sCiAgICAgICAgICAgICAgICAgICAgRiAqIHRoaXMucHJvcHNbMV0gKwogICAgICAgICAgICAgICAgICAgICAgWSAqIHRoaXMucHJvcHNbNV0gKwogICAgICAgICAgICAgICAgICAgICAgZmUgKiB0aGlzLnByb3BzWzldICsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNbMTNdLAogICAgICAgICAgICAgICAgICAgIEYgKiB0aGlzLnByb3BzWzJdICsKICAgICAgICAgICAgICAgICAgICAgIFkgKiB0aGlzLnByb3BzWzZdICsKICAgICAgICAgICAgICAgICAgICAgIGZlICogdGhpcy5wcm9wc1sxMF0gKwogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1sxNF0sCiAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gVShGLCBZKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJZGVudGl0eSgpKSByZXR1cm4gRiArICIsIiArIFk7CiAgICAgICAgICAgICAgdmFyIGZlID0gdGhpcy5wcm9wczsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgxMDAgKiAoRiAqIGZlWzBdICsgWSAqIGZlWzRdICsgZmVbMTJdKSkgLyAxMDAgKwogICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgIE1hdGgucm91bmQoMTAwICogKEYgKiBmZVsxXSArIFkgKiBmZVs1XSArIGZlWzEzXSkpIC8gMTAwCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiB0ZSgpIHsKICAgICAgICAgICAgICBmb3IgKHZhciBGID0gMCwgWSA9IHRoaXMucHJvcHMsIGZlID0gIm1hdHJpeDNkKCI7IEYgPCAxNjsgKQogICAgICAgICAgICAgICAgKGZlICs9IG4oMWU0ICogWVtGXSkgLyAxZTQpLAogICAgICAgICAgICAgICAgICAoZmUgKz0gRiA9PT0gMTUgPyAiKSIgOiAiLCIpLAogICAgICAgICAgICAgICAgICAoRiArPSAxKTsKICAgICAgICAgICAgICByZXR1cm4gZmU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gb2UoRikgewogICAgICAgICAgICAgIHJldHVybiAoRiA8IDFlLTYgJiYgRiA+IDApIHx8IChGID4gLTFlLTYgJiYgRiA8IDApCiAgICAgICAgICAgICAgICA/IG4oMWU0ICogRikgLyAxZTQKICAgICAgICAgICAgICAgIDogRjsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiB5ZSgpIHsKICAgICAgICAgICAgICB2YXIgRiA9IHRoaXMucHJvcHM7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICJtYXRyaXgoIiArCiAgICAgICAgICAgICAgICBvZShGWzBdKSArCiAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgb2UoRlsxXSkgKwogICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgIG9lKEZbNF0pICsKICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICBvZShGWzVdKSArCiAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgb2UoRlsxMl0pICsKICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICBvZShGWzEzXSkgKwogICAgICAgICAgICAgICAgIikiCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICh0aGlzLnJlc2V0ID0gaSksCiAgICAgICAgICAgICAgICAodGhpcy5yb3RhdGUgPSBhKSwKICAgICAgICAgICAgICAgICh0aGlzLnJvdGF0ZVggPSBvKSwKICAgICAgICAgICAgICAgICh0aGlzLnJvdGF0ZVkgPSBzKSwKICAgICAgICAgICAgICAgICh0aGlzLnJvdGF0ZVogPSBjKSwKICAgICAgICAgICAgICAgICh0aGlzLnNrZXcgPSBsKSwKICAgICAgICAgICAgICAgICh0aGlzLnNrZXdGcm9tQXhpcyA9IHApLAogICAgICAgICAgICAgICAgKHRoaXMuc2hlYXIgPSB1KSwKICAgICAgICAgICAgICAgICh0aGlzLnNjYWxlID0gZCksCiAgICAgICAgICAgICAgICAodGhpcy5zZXRUcmFuc2Zvcm0gPSBoKSwKICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zbGF0ZSA9IG0pLAogICAgICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtID0gdiksCiAgICAgICAgICAgICAgICAodGhpcy5tdWx0aXBseSA9IHkpLAogICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1BvaW50ID0gQyksCiAgICAgICAgICAgICAgICAodGhpcy5hcHBseVRvWCA9IFIpLAogICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1kgPSBMKSwKICAgICAgICAgICAgICAgICh0aGlzLmFwcGx5VG9aID0gTiksCiAgICAgICAgICAgICAgICAodGhpcy5hcHBseVRvUG9pbnRBcnJheSA9IFgpLAogICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1RyaXBsZVBvaW50cyA9IEgpLAogICAgICAgICAgICAgICAgKHRoaXMuYXBwbHlUb1BvaW50U3RyaW5naWZpZWQgPSBVKSwKICAgICAgICAgICAgICAgICh0aGlzLnRvQ1NTID0gdGUpLAogICAgICAgICAgICAgICAgKHRoaXMudG8yZENTUyA9IHllKSwKICAgICAgICAgICAgICAgICh0aGlzLmNsb25lID0gQSksCiAgICAgICAgICAgICAgICAodGhpcy5jbG9uZUZyb21Qcm9wcyA9IF8pLAogICAgICAgICAgICAgICAgKHRoaXMuZXF1YWxzID0gTSksCiAgICAgICAgICAgICAgICAodGhpcy5pbnZlcnNlUG9pbnRzID0gcSksCiAgICAgICAgICAgICAgICAodGhpcy5pbnZlcnNlUG9pbnQgPSBrKSwKICAgICAgICAgICAgICAgICh0aGlzLmdldEludmVyc2VNYXRyaXggPSBXKSwKICAgICAgICAgICAgICAgICh0aGlzLl90ID0gdGhpcy50cmFuc2Zvcm0pLAogICAgICAgICAgICAgICAgKHRoaXMuaXNJZGVudGl0eSA9IGcpLAogICAgICAgICAgICAgICAgKHRoaXMuX2lkZW50aXR5ID0gITApLAogICAgICAgICAgICAgICAgKHRoaXMuX2lkZW50aXR5Q2FsY3VsYXRlZCA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLnByb3BzID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIDE2KSksCiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9KSgpOwogICAgICAgIGZ1bmN0aW9uIF90eXBlb2YkMyhlKSB7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoX3R5cGVvZiQzID0KICAgICAgICAgICAgICB0eXBlb2YgU3ltYm9sID09ICJmdW5jdGlvbiIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PSAic3ltYm9sIgogICAgICAgICAgICAgICAgPyBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgOiBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0ICYmCiAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgU3ltYm9sID09ICJmdW5jdGlvbiIgJiYKICAgICAgICAgICAgICAgICAgICAgIHQuY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJgogICAgICAgICAgICAgICAgICAgICAgdCAhPT0gU3ltYm9sLnByb3RvdHlwZQogICAgICAgICAgICAgICAgICAgICAgPyAic3ltYm9sIgogICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgdDsKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgIF90eXBlb2YkMyhlKQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgdmFyIGxvdHRpZSA9IHt9LAogICAgICAgICAgc3RhbmRhbG9uZSA9ICJfX1tTVEFOREFMT05FXV9fIiwKICAgICAgICAgIGFuaW1hdGlvbkRhdGEgPSAiX19bQU5JTUFUSU9OREFUQV1fXyIsCiAgICAgICAgICByZW5kZXJlciA9ICIiOwogICAgICAgIGZ1bmN0aW9uIHNldExvY2F0aW9uKGUpIHsKICAgICAgICAgIHNldExvY2F0aW9uSHJlZihlKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2VhcmNoQW5pbWF0aW9ucygpIHsKICAgICAgICAgIHN0YW5kYWxvbmUgPT09ICEwCiAgICAgICAgICAgID8gYW5pbWF0aW9uTWFuYWdlci5zZWFyY2hBbmltYXRpb25zKAogICAgICAgICAgICAgICAgYW5pbWF0aW9uRGF0YSwKICAgICAgICAgICAgICAgIHN0YW5kYWxvbmUsCiAgICAgICAgICAgICAgICByZW5kZXJlcgogICAgICAgICAgICAgICkKICAgICAgICAgICAgOiBhbmltYXRpb25NYW5hZ2VyLnNlYXJjaEFuaW1hdGlvbnMoKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2V0U3ViZnJhbWVSZW5kZXJpbmcoZSkgewogICAgICAgICAgc2V0U3ViZnJhbWVFbmFibGVkKGUpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBzZXRQcmVmaXgoZSkgewogICAgICAgICAgc2V0SWRQcmVmaXgoZSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvYWRBbmltYXRpb24oZSkgewogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgc3RhbmRhbG9uZSA9PT0gITAgJiYgKGUuYW5pbWF0aW9uRGF0YSA9IEpTT04ucGFyc2UoYW5pbWF0aW9uRGF0YSkpLAogICAgICAgICAgICBhbmltYXRpb25NYW5hZ2VyLmxvYWRBbmltYXRpb24oZSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNldFF1YWxpdHkoZSkgewogICAgICAgICAgaWYgKHR5cGVvZiBlID09ICJzdHJpbmciKQogICAgICAgICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgICAgICBjYXNlICJoaWdoIjoKICAgICAgICAgICAgICAgIHNldERlZmF1bHRDdXJ2ZVNlZ21lbnRzKDIwMCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIGNhc2UgIm1lZGl1bSI6CiAgICAgICAgICAgICAgICBzZXREZWZhdWx0Q3VydmVTZWdtZW50cyg1MCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJsb3ciOgogICAgICAgICAgICAgICAgc2V0RGVmYXVsdEN1cnZlU2VnbWVudHMoMTApOwogICAgICAgICAgICB9CiAgICAgICAgICBlbHNlICFpc05hTihlKSAmJiBlID4gMSAmJiBzZXREZWZhdWx0Q3VydmVTZWdtZW50cyhlKTsKICAgICAgICAgIGdldERlZmF1bHRDdXJ2ZVNlZ21lbnRzKCkgPj0gNTAgPyByb3VuZFZhbHVlcyghMSkgOiByb3VuZFZhbHVlcyghMCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGluQnJvd3NlcigpIHsKICAgICAgICAgIHJldHVybiB0eXBlb2YgbmF2aWdhdG9yIDwgInUiOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBpbnN0YWxsUGx1Z2luKGUsIHQpIHsKICAgICAgICAgIGUgPT09ICJleHByZXNzaW9ucyIgJiYgc2V0RXhwcmVzc2lvbnNQbHVnaW4odCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdldEZhY3RvcnkoZSkgewogICAgICAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgICAgIGNhc2UgInByb3BlcnR5RmFjdG9yeSI6CiAgICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5RmFjdG9yeTsKICAgICAgICAgICAgY2FzZSAic2hhcGVQcm9wZXJ0eUZhY3RvcnkiOgogICAgICAgICAgICAgIHJldHVybiBTaGFwZVByb3BlcnR5RmFjdG9yeTsKICAgICAgICAgICAgY2FzZSAibWF0cml4IjoKICAgICAgICAgICAgICByZXR1cm4gTWF0cml4OwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja1JlYWR5KCkgewogICAgICAgICAgZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gImNvbXBsZXRlIiAmJgogICAgICAgICAgICAoY2xlYXJJbnRlcnZhbChyZWFkeVN0YXRlQ2hlY2tJbnRlcnZhbCksIHNlYXJjaEFuaW1hdGlvbnMoKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdldFF1ZXJ5VmFyaWFibGUoZSkgewogICAgICAgICAgZm9yICh2YXIgdCA9IHF1ZXJ5U3RyaW5nLnNwbGl0KCImIiksIHIgPSAwOyByIDwgdC5sZW5ndGg7IHIgKz0gMSkgewogICAgICAgICAgICB2YXIgbiA9IHRbcl0uc3BsaXQoIj0iKTsKICAgICAgICAgICAgaWYgKGRlY29kZVVSSUNvbXBvbmVudChuWzBdKSA9PSBlKSByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KG5bMV0pOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIChsb3R0aWUucGxheSA9IGFuaW1hdGlvbk1hbmFnZXIucGxheSksCiAgICAgICAgICAobG90dGllLnBhdXNlID0gYW5pbWF0aW9uTWFuYWdlci5wYXVzZSksCiAgICAgICAgICAobG90dGllLnNldExvY2F0aW9uSHJlZiA9IHNldExvY2F0aW9uKSwKICAgICAgICAgIChsb3R0aWUudG9nZ2xlUGF1c2UgPSBhbmltYXRpb25NYW5hZ2VyLnRvZ2dsZVBhdXNlKSwKICAgICAgICAgIChsb3R0aWUuc2V0U3BlZWQgPSBhbmltYXRpb25NYW5hZ2VyLnNldFNwZWVkKSwKICAgICAgICAgIChsb3R0aWUuc2V0RGlyZWN0aW9uID0gYW5pbWF0aW9uTWFuYWdlci5zZXREaXJlY3Rpb24pLAogICAgICAgICAgKGxvdHRpZS5zdG9wID0gYW5pbWF0aW9uTWFuYWdlci5zdG9wKSwKICAgICAgICAgIChsb3R0aWUuc2VhcmNoQW5pbWF0aW9ucyA9IHNlYXJjaEFuaW1hdGlvbnMpLAogICAgICAgICAgKGxvdHRpZS5yZWdpc3RlckFuaW1hdGlvbiA9IGFuaW1hdGlvbk1hbmFnZXIucmVnaXN0ZXJBbmltYXRpb24pLAogICAgICAgICAgKGxvdHRpZS5sb2FkQW5pbWF0aW9uID0gbG9hZEFuaW1hdGlvbiksCiAgICAgICAgICAobG90dGllLnNldFN1YmZyYW1lUmVuZGVyaW5nID0gc2V0U3ViZnJhbWVSZW5kZXJpbmcpLAogICAgICAgICAgKGxvdHRpZS5yZXNpemUgPSBhbmltYXRpb25NYW5hZ2VyLnJlc2l6ZSksCiAgICAgICAgICAobG90dGllLmdvVG9BbmRTdG9wID0gYW5pbWF0aW9uTWFuYWdlci5nb1RvQW5kU3RvcCksCiAgICAgICAgICAobG90dGllLmRlc3Ryb3kgPSBhbmltYXRpb25NYW5hZ2VyLmRlc3Ryb3kpLAogICAgICAgICAgKGxvdHRpZS5zZXRRdWFsaXR5ID0gc2V0UXVhbGl0eSksCiAgICAgICAgICAobG90dGllLmluQnJvd3NlciA9IGluQnJvd3NlciksCiAgICAgICAgICAobG90dGllLmluc3RhbGxQbHVnaW4gPSBpbnN0YWxsUGx1Z2luKSwKICAgICAgICAgIChsb3R0aWUuZnJlZXplID0gYW5pbWF0aW9uTWFuYWdlci5mcmVlemUpLAogICAgICAgICAgKGxvdHRpZS51bmZyZWV6ZSA9IGFuaW1hdGlvbk1hbmFnZXIudW5mcmVlemUpLAogICAgICAgICAgKGxvdHRpZS5zZXRWb2x1bWUgPSBhbmltYXRpb25NYW5hZ2VyLnNldFZvbHVtZSksCiAgICAgICAgICAobG90dGllLm11dGUgPSBhbmltYXRpb25NYW5hZ2VyLm11dGUpLAogICAgICAgICAgKGxvdHRpZS51bm11dGUgPSBhbmltYXRpb25NYW5hZ2VyLnVubXV0ZSksCiAgICAgICAgICAobG90dGllLmdldFJlZ2lzdGVyZWRBbmltYXRpb25zID0KICAgICAgICAgICAgYW5pbWF0aW9uTWFuYWdlci5nZXRSZWdpc3RlcmVkQW5pbWF0aW9ucyksCiAgICAgICAgICAobG90dGllLnVzZVdlYldvcmtlciA9IHNldFdlYldvcmtlciksCiAgICAgICAgICAobG90dGllLnNldElEUHJlZml4ID0gc2V0UHJlZml4KSwKICAgICAgICAgIChsb3R0aWUuX19nZXRGYWN0b3J5ID0gZ2V0RmFjdG9yeSksCiAgICAgICAgICAobG90dGllLnZlcnNpb24gPSAiNS4xMi4yIik7CiAgICAgICAgdmFyIHF1ZXJ5U3RyaW5nID0gIiI7CiAgICAgICAgaWYgKHN0YW5kYWxvbmUpIHsKICAgICAgICAgIHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLAogICAgICAgICAgICBpbmRleCA9IHNjcmlwdHMubGVuZ3RoIC0gMSwKICAgICAgICAgICAgbXlTY3JpcHQgPSBzY3JpcHRzW2luZGV4XSB8fCB7IHNyYzogIiIgfTsKICAgICAgICAgIChxdWVyeVN0cmluZyA9IG15U2NyaXB0LnNyYwogICAgICAgICAgICA/IG15U2NyaXB0LnNyYy5yZXBsYWNlKC9eW15cP10rXD8/LywgIiIpCiAgICAgICAgICAgIDogIiIpLAogICAgICAgICAgICAocmVuZGVyZXIgPSBnZXRRdWVyeVZhcmlhYmxlKCJyZW5kZXJlciIpKTsKICAgICAgICB9CiAgICAgICAgdmFyIHJlYWR5U3RhdGVDaGVja0ludGVydmFsID0gc2V0SW50ZXJ2YWwoY2hlY2tSZWFkeSwgMTAwKTsKICAgICAgICB0cnkgewogICAgICAgICAgKCh0eXBlb2YgZXhwb3J0cyA+ICJ1IiA/ICJ1bmRlZmluZWQiIDogX3R5cGVvZiQzKGV4cG9ydHMpKSA9PT0KICAgICAgICAgICAgIm9iamVjdCIgJiYKICAgICAgICAgICAgdHlwZW9mIG1vZHVsZSA8ICJ1IikgfHwKICAgICAgICAgICAgKHR5cGVvZiBkZWZpbmUgPT0gImZ1bmN0aW9uIiAmJiBkZWZpbmUuYW1kKSB8fAogICAgICAgICAgICAod2luZG93LmJvZHltb3ZpbiA9IGxvdHRpZSk7CiAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAgICB2YXIgU2hhcGVNb2RpZmllcnMgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGUgPSB7fSwKICAgICAgICAgICAgdCA9IHt9OwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgKGUucmVnaXN0ZXJNb2RpZmllciA9IGZ1bmN0aW9uIChyLCBuKSB7CiAgICAgICAgICAgICAgdFtyXSB8fCAodFtyXSA9IG4pOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKGUuZ2V0TW9kaWZpZXIgPSBmdW5jdGlvbiAociwgbiwgaSkgewogICAgICAgICAgICAgIHJldHVybiBuZXcgdFtyXShuLCBpKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGUKICAgICAgICAgICk7CiAgICAgICAgfSkoKTsKICAgICAgICBmdW5jdGlvbiBTaGFwZU1vZGlmaWVyKCkge30KICAgICAgICBmdW5jdGlvbiBUcmltTW9kaWZpZXIoKSB7fQogICAgICAgIGZ1bmN0aW9uIFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIoKSB7fQogICAgICAgIChTaGFwZU1vZGlmaWVyLnByb3RvdHlwZS5pbml0TW9kaWZpZXJQcm9wZXJ0aWVzID0gZnVuY3Rpb24gKCkge30pLAogICAgICAgICAgKFNoYXBlTW9kaWZpZXIucHJvdG90eXBlLmFkZFNoYXBlVG9Nb2RpZmllciA9IGZ1bmN0aW9uICgpIHt9KSwKICAgICAgICAgIChTaGFwZU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5jbG9zZWQpIHsKICAgICAgICAgICAgICBlLnNoLmNvbnRhaW5lci5hZGREeW5hbWljUHJvcGVydHkoZS5zaCk7CiAgICAgICAgICAgICAgdmFyIHQgPSB7CiAgICAgICAgICAgICAgICBzaGFwZTogZS5zaCwKICAgICAgICAgICAgICAgIGRhdGE6IGUsCiAgICAgICAgICAgICAgICBsb2NhbFNoYXBlQ29sbGVjdGlvbjogc2hhcGVDb2xsZWN0aW9uUG9vbC5uZXdTaGFwZUNvbGxlY3Rpb24oKSwKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIHRoaXMuc2hhcGVzLnB1c2godCksCiAgICAgICAgICAgICAgICB0aGlzLmFkZFNoYXBlVG9Nb2RpZmllcih0KSwKICAgICAgICAgICAgICAgIHRoaXMuX2lzQW5pbWF0ZWQgJiYgZS5zZXRBc0FuaW1hdGVkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKFNoYXBlTW9kaWZpZXIucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAodGhpcy5zaGFwZXMgPSBbXSksCiAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGUpLAogICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihlKSwKICAgICAgICAgICAgICB0aGlzLmluaXRNb2RpZmllclByb3BlcnRpZXMoZSwgdCksCiAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IGluaXRpYWxEZWZhdWx0RnJhbWUpLAogICAgICAgICAgICAgICh0aGlzLmNsb3NlZCA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5rID0gITEpLAogICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoID8gKHRoaXMuayA9ICEwKSA6IHRoaXMuZ2V0VmFsdWUoITApOwogICAgICAgICAgfSksCiAgICAgICAgICAoU2hhcGVNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc0tleXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQgIT09IHRoaXMuZnJhbWVJZCAmJgogICAgICAgICAgICAgICgodGhpcy5mcmFtZUlkID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCksCiAgICAgICAgICAgICAgdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMoKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgU2hhcGVNb2RpZmllciksCiAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW1NoYXBlTW9kaWZpZXJdLCBUcmltTW9kaWZpZXIpLAogICAgICAgICAgKFRyaW1Nb2RpZmllci5wcm90b3R5cGUuaW5pdE1vZGlmaWVyUHJvcGVydGllcyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICh0aGlzLnMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LnMsIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICAodGhpcy5lID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5lLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQubywgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICh0aGlzLnNWYWx1ZSA9IDApLAogICAgICAgICAgICAgICh0aGlzLmVWYWx1ZSA9IDApLAogICAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gdGhpcy5wcm9jZXNzS2V5cyksCiAgICAgICAgICAgICAgKHRoaXMubSA9IHQubSksCiAgICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPQogICAgICAgICAgICAgICAgISF0aGlzLnMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCB8fAogICAgICAgICAgICAgICAgISF0aGlzLmUuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCB8fAogICAgICAgICAgICAgICAgISF0aGlzLm8uZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUcmltTW9kaWZpZXIucHJvdG90eXBlLmFkZFNoYXBlVG9Nb2RpZmllciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGUucGF0aHNEYXRhID0gW107CiAgICAgICAgICB9KSwKICAgICAgICAgIChUcmltTW9kaWZpZXIucHJvdG90eXBlLmNhbGN1bGF0ZVNoYXBlRWRnZXMgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQsCiAgICAgICAgICAgIHIsCiAgICAgICAgICAgIG4sCiAgICAgICAgICAgIGkKICAgICAgICAgICkgewogICAgICAgICAgICB2YXIgYSA9IFtdOwogICAgICAgICAgICB0IDw9IDEKICAgICAgICAgICAgICA/IGEucHVzaCh7IHM6IGUsIGU6IHQgfSkKICAgICAgICAgICAgICA6IGUgPj0gMQogICAgICAgICAgICAgID8gYS5wdXNoKHsgczogZSAtIDEsIGU6IHQgLSAxIH0pCiAgICAgICAgICAgICAgOiAoYS5wdXNoKHsgczogZSwgZTogMSB9KSwgYS5wdXNoKHsgczogMCwgZTogdCAtIDEgfSkpOwogICAgICAgICAgICB2YXIgbywKICAgICAgICAgICAgICBzLAogICAgICAgICAgICAgIGMgPSBbXSwKICAgICAgICAgICAgICB1ID0gYS5sZW5ndGg7CiAgICAgICAgICAgIGZvciAobyA9IDA7IG8gPCB1OyBvICs9IDEpIHsKICAgICAgICAgICAgICB2YXIgbCwgcDsKICAgICAgICAgICAgICAocyA9IGFbb10pLmUgKiBpIDwgbiB8fAogICAgICAgICAgICAgICAgcy5zICogaSA+IG4gKyByIHx8CiAgICAgICAgICAgICAgICAoKGwgPSBzLnMgKiBpIDw9IG4gPyAwIDogKHMucyAqIGkgLSBuKSAvIHIpLAogICAgICAgICAgICAgICAgKHAgPSBzLmUgKiBpID49IG4gKyByID8gMSA6IChzLmUgKiBpIC0gbikgLyByKSwKICAgICAgICAgICAgICAgIGMucHVzaChbbCwgcF0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gYy5sZW5ndGggfHwgYy5wdXNoKFswLCAwXSksIGM7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUcmltTW9kaWZpZXIucHJvdG90eXBlLnJlbGVhc2VQYXRoc0RhdGEgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICByID0gZS5sZW5ndGg7CiAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpIHNlZ21lbnRzTGVuZ3RoUG9vbC5yZWxlYXNlKGVbdF0pOwogICAgICAgICAgICByZXR1cm4gKGUubGVuZ3RoID0gMCksIGU7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUcmltTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCwgciwgbiwgaTsKICAgICAgICAgICAgaWYgKHRoaXMuX21kZiB8fCBlKSB7CiAgICAgICAgICAgICAgdmFyIGEgPSAodGhpcy5vLnYgJSAzNjApIC8gMzYwOwogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIChhIDwgMCAmJiAoYSArPSAxKSwKICAgICAgICAgICAgICAgICh0ID0KICAgICAgICAgICAgICAgICAgdGhpcy5zLnYgPiAxID8gMSArIGEgOiB0aGlzLnMudiA8IDAgPyAwICsgYSA6IHRoaXMucy52ICsgYSkgPgogICAgICAgICAgICAgICAgICAociA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5lLnYgPiAxID8gMSArIGEgOiB0aGlzLmUudiA8IDAgPyAwICsgYSA6IHRoaXMuZS52ICsgYSkpCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgbyA9IHQ7CiAgICAgICAgICAgICAgICAodCA9IHIpLCAociA9IG8pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAodCA9IDFlLTQgKiBNYXRoLnJvdW5kKDFlNCAqIHQpKSwKICAgICAgICAgICAgICAgIChyID0gMWUtNCAqIE1hdGgucm91bmQoMWU0ICogcikpLAogICAgICAgICAgICAgICAgKHRoaXMuc1ZhbHVlID0gdCksCiAgICAgICAgICAgICAgICAodGhpcy5lVmFsdWUgPSByKTsKICAgICAgICAgICAgfSBlbHNlICh0ID0gdGhpcy5zVmFsdWUpLCAociA9IHRoaXMuZVZhbHVlKTsKICAgICAgICAgICAgdmFyIHMsCiAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgcCwKICAgICAgICAgICAgICBkID0gdGhpcy5zaGFwZXMubGVuZ3RoLAogICAgICAgICAgICAgIGggPSAwOwogICAgICAgICAgICBpZiAociA9PT0gdCkKICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZDsgaSArPSAxKQogICAgICAgICAgICAgICAgdGhpcy5zaGFwZXNbaV0ubG9jYWxTaGFwZUNvbGxlY3Rpb24ucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAodGhpcy5zaGFwZXNbaV0uc2hhcGUuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuc2hhcGVzW2ldLnNoYXBlLnBhdGhzID0KICAgICAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc1tpXS5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgIHRoaXMuX21kZiAmJiAodGhpcy5zaGFwZXNbaV0ucGF0aHNEYXRhLmxlbmd0aCA9IDApOwogICAgICAgICAgICBlbHNlIGlmICgociA9PT0gMSAmJiB0ID09PSAwKSB8fCAociA9PT0gMCAmJiB0ID09PSAxKSkgewogICAgICAgICAgICAgIGlmICh0aGlzLl9tZGYpCiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZDsgaSArPSAxKQogICAgICAgICAgICAgICAgICAodGhpcy5zaGFwZXNbaV0ucGF0aHNEYXRhLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnNoYXBlc1tpXS5zaGFwZS5fbWRmID0gITApOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHZhciBtLAogICAgICAgICAgICAgICAgdiwKICAgICAgICAgICAgICAgIHkgPSBbXTsKICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZDsgaSArPSAxKQogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAobSA9IHRoaXMuc2hhcGVzW2ldKS5zaGFwZS5fbWRmIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMuX21kZiB8fAogICAgICAgICAgICAgICAgICBlIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMubSA9PT0gMgogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAoKGMgPSAobiA9IG0uc2hhcGUucGF0aHMpLl9sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgIChwID0gMCksCiAgICAgICAgICAgICAgICAgICAgIW0uc2hhcGUuX21kZiAmJiBtLnBhdGhzRGF0YS5sZW5ndGgpCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBwID0gbS50b3RhbFNoYXBlTGVuZ3RoOwogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgdSA9IHRoaXMucmVsZWFzZVBhdGhzRGF0YShtLnBhdGhzRGF0YSksIHMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgcyA8IGM7CiAgICAgICAgICAgICAgICAgICAgICBzICs9IDEKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAobCA9IGJlei5nZXRTZWdtZW50c0xlbmd0aChuLnNoYXBlc1tzXSkpLAogICAgICAgICAgICAgICAgICAgICAgICB1LnB1c2gobCksCiAgICAgICAgICAgICAgICAgICAgICAgIChwICs9IGwudG90YWxMZW5ndGgpOwogICAgICAgICAgICAgICAgICAgIChtLnRvdGFsU2hhcGVMZW5ndGggPSBwKSwgKG0ucGF0aHNEYXRhID0gdSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKGggKz0gcCksIChtLnNoYXBlLl9tZGYgPSAhMCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgbS5zaGFwZS5wYXRocyA9IG0ubG9jYWxTaGFwZUNvbGxlY3Rpb247CiAgICAgICAgICAgICAgdmFyIGcsCiAgICAgICAgICAgICAgICBNID0gdCwKICAgICAgICAgICAgICAgIEEgPSByLAogICAgICAgICAgICAgICAgXyA9IDA7CiAgICAgICAgICAgICAgZm9yIChpID0gZCAtIDE7IGkgPj0gMDsgaSAtPSAxKQogICAgICAgICAgICAgICAgaWYgKChtID0gdGhpcy5zaGFwZXNbaV0pLnNoYXBlLl9tZGYpIHsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAodiA9IG0ubG9jYWxTaGFwZUNvbGxlY3Rpb24pLnJlbGVhc2VTaGFwZXMoKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMubSA9PT0gMiAmJiBkID4gMQogICAgICAgICAgICAgICAgICAgICAgICA/ICgoZyA9IHRoaXMuY2FsY3VsYXRlU2hhcGVFZGdlcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbS50b3RhbFNoYXBlTGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgKICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoXyArPSBtLnRvdGFsU2hhcGVMZW5ndGgpKQogICAgICAgICAgICAgICAgICAgICAgICA6IChnID0gW1tNLCBBXV0pLAogICAgICAgICAgICAgICAgICAgICAgYyA9IGcubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgcyA9IDA7CiAgICAgICAgICAgICAgICAgICAgcyA8IGM7CiAgICAgICAgICAgICAgICAgICAgcyArPSAxCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIChNID0gZ1tzXVswXSksCiAgICAgICAgICAgICAgICAgICAgICAoQSA9IGdbc11bMV0pLAogICAgICAgICAgICAgICAgICAgICAgKHkubGVuZ3RoID0gMCksCiAgICAgICAgICAgICAgICAgICAgICBBIDw9IDEKICAgICAgICAgICAgICAgICAgICAgICAgPyB5LnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgczogbS50b3RhbFNoYXBlTGVuZ3RoICogTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGU6IG0udG90YWxTaGFwZUxlbmd0aCAqIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBNID49IDEKICAgICAgICAgICAgICAgICAgICAgICAgPyB5LnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgczogbS50b3RhbFNoYXBlTGVuZ3RoICogKE0gLSAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGU6IG0udG90YWxTaGFwZUxlbmd0aCAqIChBIC0gMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoeS5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IG0udG90YWxTaGFwZUxlbmd0aCAqIE0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlOiBtLnRvdGFsU2hhcGVMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgeS5wdXNoKHsgczogMCwgZTogbS50b3RhbFNoYXBlTGVuZ3RoICogKEEgLSAxKSB9KSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIEMgPSB0aGlzLmFkZFNoYXBlcyhtLCB5WzBdKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeVswXS5zICE9PSB5WzBdLmUpIHsKICAgICAgICAgICAgICAgICAgICAgIGlmICh5Lmxlbmd0aCA+IDEpCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtLnNoYXBlLnBhdGhzLnNoYXBlc1ttLnNoYXBlLnBhdGhzLl9sZW5ndGggLSAxXS5jKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIFIgPSBDLnBvcCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkUGF0aHMoQywgdiksIChDID0gdGhpcy5hZGRTaGFwZXMobSwgeVsxXSwgUikpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFBhdGhzKEMsIHYpLCAoQyA9IHRoaXMuYWRkU2hhcGVzKG0sIHlbMV0pKTsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkUGF0aHMoQywgdik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIG0uc2hhcGUucGF0aHMgPSB2OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChUcmltTW9kaWZpZXIucHJvdG90eXBlLmFkZFBhdGhzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgbiA9IGUubGVuZ3RoOwogICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSB0LmFkZFNoYXBlKGVbcl0pOwogICAgICAgICAgfSksCiAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTZWdtZW50ID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4sIGksIGEsIG8pIHsKICAgICAgICAgICAgaS5zZXRYWUF0KHRbMF0sIHRbMV0sICJvIiwgYSksCiAgICAgICAgICAgICAgaS5zZXRYWUF0KHJbMF0sIHJbMV0sICJpIiwgYSArIDEpLAogICAgICAgICAgICAgIG8gJiYgaS5zZXRYWUF0KGVbMF0sIGVbMV0sICJ2IiwgYSksCiAgICAgICAgICAgICAgaS5zZXRYWUF0KG5bMF0sIG5bMV0sICJ2IiwgYSArIDEpOwogICAgICAgICAgfSksCiAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTZWdtZW50RnJvbUFycmF5ID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4pIHsKICAgICAgICAgICAgdC5zZXRYWUF0KGVbMV0sIGVbNV0sICJvIiwgciksCiAgICAgICAgICAgICAgdC5zZXRYWUF0KGVbMl0sIGVbNl0sICJpIiwgciArIDEpLAogICAgICAgICAgICAgIG4gJiYgdC5zZXRYWUF0KGVbMF0sIGVbNF0sICJ2IiwgciksCiAgICAgICAgICAgICAgdC5zZXRYWUF0KGVbM10sIGVbN10sICJ2IiwgciArIDEpOwogICAgICAgICAgfSksCiAgICAgICAgICAoVHJpbU1vZGlmaWVyLnByb3RvdHlwZS5hZGRTaGFwZXMgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICBzLAogICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgIHAgPSBlLnBhdGhzRGF0YSwKICAgICAgICAgICAgICBkID0gZS5zaGFwZS5wYXRocy5zaGFwZXMsCiAgICAgICAgICAgICAgaCA9IGUuc2hhcGUucGF0aHMuX2xlbmd0aCwKICAgICAgICAgICAgICBtID0gMCwKICAgICAgICAgICAgICB2ID0gW10sCiAgICAgICAgICAgICAgeSA9ICEwOwogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIHIKICAgICAgICAgICAgICAgID8gKChzID0gci5fbGVuZ3RoKSwgKGwgPSByLl9sZW5ndGgpKQogICAgICAgICAgICAgICAgOiAoKHIgPSBzaGFwZVBvb2wubmV3RWxlbWVudCgpKSwgKHMgPSAwKSwgKGwgPSAwKSksCiAgICAgICAgICAgICAgICB2LnB1c2gociksCiAgICAgICAgICAgICAgICBuID0gMDsKICAgICAgICAgICAgICBuIDwgaDsKICAgICAgICAgICAgICBuICs9IDEKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIGMgPSBwW25dLmxlbmd0aHMsCiAgICAgICAgICAgICAgICAgIHIuYyA9IGRbbl0uYywKICAgICAgICAgICAgICAgICAgYSA9IGRbbl0uYyA/IGMubGVuZ3RoIDogYy5sZW5ndGggKyAxLAogICAgICAgICAgICAgICAgICBpID0gMTsKICAgICAgICAgICAgICAgIGkgPCBhOwogICAgICAgICAgICAgICAgaSArPSAxCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgaWYgKG0gKyAobyA9IGNbaSAtIDFdKS5hZGRlZExlbmd0aCA8IHQucykKICAgICAgICAgICAgICAgICAgKG0gKz0gby5hZGRlZExlbmd0aCksIChyLmMgPSAhMSk7CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgaWYgKG0gPiB0LmUpIHsKICAgICAgICAgICAgICAgICAgICByLmMgPSAhMTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB0LnMgPD0gbSAmJiB0LmUgPj0gbSArIG8uYWRkZWRMZW5ndGgKICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmFkZFNlZ21lbnQoCiAgICAgICAgICAgICAgICAgICAgICAgIGRbbl0udltpIC0gMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGRbbl0ub1tpIC0gMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGRbbl0uaVtpXSwKICAgICAgICAgICAgICAgICAgICAgICAgZFtuXS52W2ldLAogICAgICAgICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICAgICAgICBzLAogICAgICAgICAgICAgICAgICAgICAgICB5CiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgKHkgPSAhMSkpCiAgICAgICAgICAgICAgICAgICAgOiAoKHUgPSBiZXouZ2V0TmV3U2VnbWVudCgKICAgICAgICAgICAgICAgICAgICAgICAgZFtuXS52W2kgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgZFtuXS52W2ldLAogICAgICAgICAgICAgICAgICAgICAgICBkW25dLm9baSAtIDFdLAogICAgICAgICAgICAgICAgICAgICAgICBkW25dLmlbaV0sCiAgICAgICAgICAgICAgICAgICAgICAgICh0LnMgLSBtKSAvIG8uYWRkZWRMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICh0LmUgLSBtKSAvIG8uYWRkZWRMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGNbaSAtIDFdCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU2VnbWVudEZyb21BcnJheSh1LCByLCBzLCB5KSwKICAgICAgICAgICAgICAgICAgICAgICh5ID0gITEpLAogICAgICAgICAgICAgICAgICAgICAgKHIuYyA9ICExKSksCiAgICAgICAgICAgICAgICAgICAgKG0gKz0gby5hZGRlZExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgKHMgKz0gMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGRbbl0uYyAmJiBjLmxlbmd0aCkgewogICAgICAgICAgICAgICAgaWYgKCgobyA9IGNbaSAtIDFdKSwgbSA8PSB0LmUpKSB7CiAgICAgICAgICAgICAgICAgIHZhciBnID0gY1tpIC0gMV0uYWRkZWRMZW5ndGg7CiAgICAgICAgICAgICAgICAgIHQucyA8PSBtICYmIHQuZSA+PSBtICsgZwogICAgICAgICAgICAgICAgICAgID8gKHRoaXMuYWRkU2VnbWVudCgKICAgICAgICAgICAgICAgICAgICAgICAgZFtuXS52W2kgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgZFtuXS5vW2kgLSAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgZFtuXS5pWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBkW25dLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgICAgICAgIHMsCiAgICAgICAgICAgICAgICAgICAgICAgIHkKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAoeSA9ICExKSkKICAgICAgICAgICAgICAgICAgICA6ICgodSA9IGJlei5nZXROZXdTZWdtZW50KAogICAgICAgICAgICAgICAgICAgICAgICBkW25dLnZbaSAtIDFdLAogICAgICAgICAgICAgICAgICAgICAgICBkW25dLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGRbbl0ub1tpIC0gMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGRbbl0uaVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgKHQucyAtIG0pIC8gZywKICAgICAgICAgICAgICAgICAgICAgICAgKHQuZSAtIG0pIC8gZywKICAgICAgICAgICAgICAgICAgICAgICAgY1tpIC0gMV0KICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTZWdtZW50RnJvbUFycmF5KHUsIHIsIHMsIHkpLAogICAgICAgICAgICAgICAgICAgICAgKHkgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgICAoci5jID0gITEpKTsKICAgICAgICAgICAgICAgIH0gZWxzZSByLmMgPSAhMTsKICAgICAgICAgICAgICAgIChtICs9IG8uYWRkZWRMZW5ndGgpLCAocyArPSAxKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKHIuX2xlbmd0aCAmJgogICAgICAgICAgICAgICAgICAoci5zZXRYWUF0KHIudltsXVswXSwgci52W2xdWzFdLCAiaSIsIGwpLAogICAgICAgICAgICAgICAgICByLnNldFhZQXQoCiAgICAgICAgICAgICAgICAgICAgci52W3IuX2xlbmd0aCAtIDFdWzBdLAogICAgICAgICAgICAgICAgICAgIHIudltyLl9sZW5ndGggLSAxXVsxXSwKICAgICAgICAgICAgICAgICAgICAibyIsCiAgICAgICAgICAgICAgICAgICAgci5fbGVuZ3RoIC0gMQogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgIG0gPiB0LmUpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgbiA8IGggLSAxICYmCiAgICAgICAgICAgICAgICAoKHIgPSBzaGFwZVBvb2wubmV3RWxlbWVudCgpKSwgKHkgPSAhMCksIHYucHVzaChyKSwgKHMgPSAwKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHY7CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbU2hhcGVNb2RpZmllcl0sIFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIpLAogICAgICAgICAgKFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQKICAgICAgICAgICkgewogICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMucHJvY2Vzc0tleXMpLAogICAgICAgICAgICAgICh0aGlzLmFtb3VudCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQuYSwgMCwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISF0aGlzLmFtb3VudC5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFB1Y2tlckFuZEJsb2F0TW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NQYXRoID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdmFyIHIgPSB0IC8gMTAwLAogICAgICAgICAgICAgIG4gPSBbMCwgMF0sCiAgICAgICAgICAgICAgaSA9IGUuX2xlbmd0aCwKICAgICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgZm9yIChhID0gMDsgYSA8IGk7IGEgKz0gMSkgKG5bMF0gKz0gZS52W2FdWzBdKSwgKG5bMV0gKz0gZS52W2FdWzFdKTsKICAgICAgICAgICAgKG5bMF0gLz0gaSksIChuWzFdIC89IGkpOwogICAgICAgICAgICB2YXIgbywKICAgICAgICAgICAgICBzLAogICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgIHAsCiAgICAgICAgICAgICAgZCA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgIGZvciAoZC5jID0gZS5jLCBhID0gMDsgYSA8IGk7IGEgKz0gMSkKICAgICAgICAgICAgICAobyA9IGUudlthXVswXSArIChuWzBdIC0gZS52W2FdWzBdKSAqIHIpLAogICAgICAgICAgICAgICAgKHMgPSBlLnZbYV1bMV0gKyAoblsxXSAtIGUudlthXVsxXSkgKiByKSwKICAgICAgICAgICAgICAgIChjID0gZS5vW2FdWzBdICsgKG5bMF0gLSBlLm9bYV1bMF0pICogLXIpLAogICAgICAgICAgICAgICAgKHUgPSBlLm9bYV1bMV0gKyAoblsxXSAtIGUub1thXVsxXSkgKiAtciksCiAgICAgICAgICAgICAgICAobCA9IGUuaVthXVswXSArIChuWzBdIC0gZS5pW2FdWzBdKSAqIC1yKSwKICAgICAgICAgICAgICAgIChwID0gZS5pW2FdWzFdICsgKG5bMV0gLSBlLmlbYV1bMV0pICogLXIpLAogICAgICAgICAgICAgICAgZC5zZXRUcmlwbGVBdChvLCBzLCBjLCB1LCBsLCBwLCBhKTsKICAgICAgICAgICAgcmV0dXJuIGQ7CiAgICAgICAgICB9KSwKICAgICAgICAgIChQdWNrZXJBbmRCbG9hdE1vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzU2hhcGVzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgIHMgPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgYyA9IHRoaXMuYW1vdW50LnY7CiAgICAgICAgICAgIGlmIChjICE9PSAwKQogICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBzOyByICs9IDEpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKChvID0gKGEgPSB0aGlzLnNoYXBlc1tyXSkubG9jYWxTaGFwZUNvbGxlY3Rpb24pLAogICAgICAgICAgICAgICAgICBhLnNoYXBlLl9tZGYgfHwgdGhpcy5fbWRmIHx8IGUpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgby5yZWxlYXNlU2hhcGVzKCksCiAgICAgICAgICAgICAgICAgICAgICBhLnNoYXBlLl9tZGYgPSAhMCwKICAgICAgICAgICAgICAgICAgICAgIHQgPSBhLnNoYXBlLnBhdGhzLnNoYXBlcywKICAgICAgICAgICAgICAgICAgICAgIGkgPSBhLnNoYXBlLnBhdGhzLl9sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICBuID0gMDsKICAgICAgICAgICAgICAgICAgICBuIDwgaTsKICAgICAgICAgICAgICAgICAgICBuICs9IDEKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIG8uYWRkU2hhcGUodGhpcy5wcm9jZXNzUGF0aCh0W25dLCBjKSk7CiAgICAgICAgICAgICAgICBhLnNoYXBlLnBhdGhzID0gYS5sb2NhbFNoYXBlQ29sbGVjdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoIHx8ICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICB9KTsKICAgICAgICB2YXIgVHJhbnNmb3JtUHJvcGVydHlGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBlID0gWzAsIDBdOwogICAgICAgICAgZnVuY3Rpb24gdChyLCBuLCBpKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAoKHRoaXMuZWxlbSA9IHIpLAogICAgICAgICAgICAgICh0aGlzLmZyYW1lSWQgPSAtMSksCiAgICAgICAgICAgICAgKHRoaXMucHJvcFR5cGUgPSAidHJhbnNmb3JtIiksCiAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IG4pLAogICAgICAgICAgICAgICh0aGlzLnYgPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAgICh0aGlzLnByZSA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA9IDApLAogICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihpIHx8IHIpLAogICAgICAgICAgICAgIG4ucCAmJiBuLnAucwogICAgICAgICAgICAgICAgPyAoKHRoaXMucHggPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChyLCBuLnAueCwgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAodGhpcy5weSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHIsIG4ucC55LCAwLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAgIG4ucC56ICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMucHogPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChyLCBuLnAueiwgMCwgMCwgdGhpcykpKQogICAgICAgICAgICAgICAgOiAodGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgICBuLnAgfHwgeyBrOiBbMCwgMCwgMF0gfSwKICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICBuLnJ4KQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoKHRoaXMucnggPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgbi5yeCwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzLAogICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICh0aGlzLnJ5ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIG4ucnksCiAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgIGRlZ1RvUmFkcywKICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAodGhpcy5yeiA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICBuLnJ6LAogICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgbi5vci5rWzBdLnRpKQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIGEsCiAgICAgICAgICAgICAgICAgIG8gPSBuLm9yLmsubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yIChhID0gMDsgYSA8IG87IGEgKz0gMSkKICAgICAgICAgICAgICAgICAgKG4ub3Iua1thXS50byA9IG51bGwpLCAobi5vci5rW2FdLnRpID0gbnVsbCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICh0aGlzLm9yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3Aociwgbi5vciwgMSwgZGVnVG9SYWRzLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5vci5zaCA9ICEwKTsKICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgdGhpcy5yID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbi5yIHx8IHsgazogMCB9LAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIGRlZ1RvUmFkcywKICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICApOwogICAgICAgICAgICBuLnNrICYmCiAgICAgICAgICAgICAgKCh0aGlzLnNrID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3Aociwgbi5zaywgMCwgZGVnVG9SYWRzLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMuc2EgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChyLCBuLnNhLCAwLCBkZWdUb1JhZHMsIHRoaXMpKSksCiAgICAgICAgICAgICAgKHRoaXMuYSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4uYSB8fCB7IGs6IFswLCAwLCAwXSB9LAogICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMucyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4ucyB8fCB7IGs6IFsxMDAsIDEwMCwgMTAwXSB9LAogICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgbi5vCiAgICAgICAgICAgICAgICA/ICh0aGlzLm8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChyLCBuLm8sIDAsIDAuMDEsIHIpKQogICAgICAgICAgICAgICAgOiAodGhpcy5vID0geyBfbWRmOiAhMSwgdjogMSB9KSwKICAgICAgICAgICAgICAodGhpcy5faXNEaXJ0eSA9ICEwKSwKICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCB0aGlzLmdldFZhbHVlKCEwKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICh0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICBhcHBseVRvTWF0cml4OiBmdW5jdGlvbiAocikgewogICAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzLl9tZGY7CiAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gdGhpcy5fbWRmIHx8IG4pLAogICAgICAgICAgICAgICAgICB0aGlzLmEgJiYKICAgICAgICAgICAgICAgICAgICByLnRyYW5zbGF0ZSgtdGhpcy5hLnZbMF0sIC10aGlzLmEudlsxXSwgdGhpcy5hLnZbMl0pLAogICAgICAgICAgICAgICAgICB0aGlzLnMgJiYgci5zY2FsZSh0aGlzLnMudlswXSwgdGhpcy5zLnZbMV0sIHRoaXMucy52WzJdKSwKICAgICAgICAgICAgICAgICAgdGhpcy5zayAmJiByLnNrZXdGcm9tQXhpcygtdGhpcy5zay52LCB0aGlzLnNhLnYpLAogICAgICAgICAgICAgICAgICB0aGlzLnIKICAgICAgICAgICAgICAgICAgICA/IHIucm90YXRlKC10aGlzLnIudikKICAgICAgICAgICAgICAgICAgICA6IHIKICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVooLXRoaXMucnoudikKICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkodGhpcy5yeS52KQogICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVaKC10aGlzLm9yLnZbMl0pCiAgICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVZKHRoaXMub3IudlsxXSkKICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnAucwogICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhLnAuegogICAgICAgICAgICAgICAgICAgICAgPyByLnRyYW5zbGF0ZSh0aGlzLnB4LnYsIHRoaXMucHkudiwgLXRoaXMucHoudikKICAgICAgICAgICAgICAgICAgICAgIDogci50cmFuc2xhdGUodGhpcy5weC52LCB0aGlzLnB5LnYsIDApCiAgICAgICAgICAgICAgICAgICAgOiByLnRyYW5zbGF0ZSh0aGlzLnAudlswXSwgdGhpcy5wLnZbMV0sIC10aGlzLnAudlsyXSk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkICE9PSB0aGlzLmZyYW1lSWQpIHsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0RpcnR5ICYmCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wcmVjYWxjdWxhdGVNYXRyaXgoKSwgKHRoaXMuX2lzRGlydHkgPSAhMSkpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWRmIHx8IHIpCiAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgIHZhciBuOwogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnYuY2xvbmVGcm9tUHJvcHModGhpcy5wcmUucHJvcHMpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zIDwgMSAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgIC10aGlzLmEudlswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAtdGhpcy5hLnZbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hLnZbMl0KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA8IDIgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52LnNjYWxlKHRoaXMucy52WzBdLCB0aGlzLnMudlsxXSwgdGhpcy5zLnZbMl0pLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5zayAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCAzICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5za2V3RnJvbUF4aXMoLXRoaXMuc2sudiwgdGhpcy5zYS52KSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuciAmJiB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCA0CiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy52LnJvdGF0ZSgtdGhpcy5yLnYpCiAgICAgICAgICAgICAgICAgICAgICAgIDogIXRoaXMuciAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA8IDQgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVaKC10aGlzLnJ6LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWSh0aGlzLnJ5LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWigtdGhpcy5vci52WzJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkodGhpcy5vci52WzFdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b09yaWVudGVkKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIGksIGE7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICgobiA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lUmF0ZSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucCAmJiB0aGlzLnAua2V5ZnJhbWVzICYmIHRoaXMucC5nZXRWYWx1ZUF0VGltZSkKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLl9jYWNoaW5nLmxhc3RGcmFtZSArIHRoaXMucC5vZmZzZXRUaW1lIDw9CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucC5rZXlmcmFtZXNbMF0udAogICAgICAgICAgICAgICAgICAgICAgICAgID8gKChpID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wLmtleWZyYW1lc1swXS50ICsgMC4wMSkgLyBuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAua2V5ZnJhbWVzWzBdLnQgLyBuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucC5fY2FjaGluZy5sYXN0RnJhbWUgKyB0aGlzLnAub2Zmc2V0VGltZSA+PQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLmtleWZyYW1lc1t0aGlzLnAua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoaSA9IHRoaXMucC5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLmtleWZyYW1lc1t0aGlzLnAua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgPSB0aGlzLnAuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnAua2V5ZnJhbWVzW3RoaXMucC5rZXlmcmFtZXMubGVuZ3RoIC0gMV0udCAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wNSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKChpID0gdGhpcy5wLnB2KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhID0gdGhpcy5wLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wLl9jYWNoaW5nLmxhc3RGcmFtZSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLm9mZnNldFRpbWUgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMDEpIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAub2Zmc2V0VGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpOwogICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHggJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weC5rZXlmcmFtZXMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weS5rZXlmcmFtZXMgJiYKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5weC5nZXRWYWx1ZUF0VGltZSAmJgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnB5LmdldFZhbHVlQXRUaW1lCiAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgKGkgPSBbXSksIChhID0gW10pOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgbyA9IHRoaXMucHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9IHRoaXMucHk7CiAgICAgICAgICAgICAgICAgICAgICAgIG8uX2NhY2hpbmcubGFzdEZyYW1lICsgby5vZmZzZXRUaW1lIDw9IG8ua2V5ZnJhbWVzWzBdLnQKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgoaVswXSA9IG8uZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvLmtleWZyYW1lc1swXS50ICsgMC4wMSkgLyBuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpWzFdID0gcy5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMua2V5ZnJhbWVzWzBdLnQgKyAwLjAxKSAvIG4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFbMF0gPSBvLmdldFZhbHVlQXRUaW1lKG8ua2V5ZnJhbWVzWzBdLnQgLyBuLCAwKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYVsxXSA9IHMuZ2V0VmFsdWVBdFRpbWUocy5rZXlmcmFtZXNbMF0udCAvIG4sIDApKSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IG8uX2NhY2hpbmcubGFzdEZyYW1lICsgby5vZmZzZXRUaW1lID49CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvLmtleWZyYW1lc1tvLmtleWZyYW1lcy5sZW5ndGggLSAxXS50CiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGlbMF0gPSBvLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvLmtleWZyYW1lc1tvLmtleWZyYW1lcy5sZW5ndGggLSAxXS50IC8gbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaVsxXSA9IHMuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMua2V5ZnJhbWVzW3Mua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLyBuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhWzBdID0gby5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG8ua2V5ZnJhbWVzW28ua2V5ZnJhbWVzLmxlbmd0aCAtIDFdLnQgLSAwLjAxKSAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYVsxXSA9IHMuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzLmtleWZyYW1lc1tzLmtleWZyYW1lcy5sZW5ndGggLSAxXS50IC0gMC4wMSkgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKChpID0gW28ucHYsIHMucHZdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhWzBdID0gby5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG8uX2NhY2hpbmcubGFzdEZyYW1lICsgby5vZmZzZXRUaW1lIC0gMC4wMSkgLyBuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvLm9mZnNldFRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFbMV0gPSBzLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocy5fY2FjaGluZy5sYXN0RnJhbWUgKyBzLm9mZnNldFRpbWUgLSAwLjAxKSAvIG4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMub2Zmc2V0VGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpOwogICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGkgPSBhID0gZTsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMudi5yb3RhdGUoLU1hdGguYXRhbjIoaVsxXSAtIGFbMV0sIGlbMF0gLSBhWzBdKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5wICYmIHRoaXMuZGF0YS5wLnMKICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhLnAuegogICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudi50cmFuc2xhdGUodGhpcy5weC52LCB0aGlzLnB5LnYsIC10aGlzLnB6LnYpCiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy52LnRyYW5zbGF0ZSh0aGlzLnB4LnYsIHRoaXMucHkudiwgMCkKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy52LnRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAudlswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAudlsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAtdGhpcy5wLnZbMl0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lSWQgPSB0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgcHJlY2FsY3VsYXRlTWF0cml4OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gMCksCiAgICAgICAgICAgICAgICAgIHRoaXMucHJlLnJlc2V0KCksCiAgICAgICAgICAgICAgICAgICF0aGlzLmEuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLnByZS50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAtdGhpcy5hLnZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAtdGhpcy5hLnZbMV0sCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmEudlsyXQogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA9IDEpLAogICAgICAgICAgICAgICAgICAgICF0aGlzLnMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCkpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICh0aGlzLnByZS5zY2FsZSh0aGlzLnMudlswXSwgdGhpcy5zLnZbMV0sIHRoaXMucy52WzJdKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gMiksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaykKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5zay5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoIHx8CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNhLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmUuc2tld0Zyb21BeGlzKC10aGlzLnNrLnYsIHRoaXMuc2EudiksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zID0gMyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdGhpcy5yCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnIuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCB8fAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMucHJlLnJvdGF0ZSgtdGhpcy5yLnYpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA9IDQpKQogICAgICAgICAgICAgICAgICAgIDogdGhpcy5yei5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoIHx8CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJ5LmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggfHwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucnguZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCB8fAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5vci5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoIHx8CiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5wcmUKICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVooLXRoaXMucnoudikKICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkodGhpcy5yeS52KQogICAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWCh0aGlzLnJ4LnYpCiAgICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVaKC10aGlzLm9yLnZbMl0pCiAgICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVZKHRoaXMub3IudlsxXSkKICAgICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgodGhpcy5vci52WzBdKSwKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPSA0KSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhdXRvT3JpZW50OiBmdW5jdGlvbiAoKSB7fSwKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgdCksCiAgICAgICAgICAgICh0LnByb3RvdHlwZS5hZGREeW5hbWljUHJvcGVydHkgPSBmdW5jdGlvbiAocikgewogICAgICAgICAgICAgIHRoaXMuX2FkZER5bmFtaWNQcm9wZXJ0eShyKSwKICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkociksCiAgICAgICAgICAgICAgICAodGhpcy5faXNEaXJ0eSA9ICEwKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICh0LnByb3RvdHlwZS5fYWRkRHluYW1pY1Byb3BlcnR5ID0KICAgICAgICAgICAgICBEeW5hbWljUHJvcGVydHlDb250YWluZXIucHJvdG90eXBlLmFkZER5bmFtaWNQcm9wZXJ0eSksCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBnZXRUcmFuc2Zvcm1Qcm9wZXJ0eTogZnVuY3Rpb24gKHIsIG4sIGkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgdChyLCBuLCBpKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9CiAgICAgICAgICApOwogICAgICAgIH0pKCk7CiAgICAgICAgZnVuY3Rpb24gUmVwZWF0ZXJNb2RpZmllcigpIHt9CiAgICAgICAgZnVuY3Rpb24gUm91bmRDb3JuZXJzTW9kaWZpZXIoKSB7fQogICAgICAgIGZ1bmN0aW9uIGZsb2F0RXF1YWwoZSwgdCkgewogICAgICAgICAgcmV0dXJuIDFlNSAqIE1hdGguYWJzKGUgLSB0KSA8PSBNYXRoLm1pbihNYXRoLmFicyhlKSwgTWF0aC5hYnModCkpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBmbG9hdFplcm8oZSkgewogICAgICAgICAgcmV0dXJuIE1hdGguYWJzKGUpIDw9IDFlLTU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxlcnAoZSwgdCwgcikgewogICAgICAgICAgcmV0dXJuIGUgKiAoMSAtIHIpICsgdCAqIHI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxlcnBQb2ludChlLCB0LCByKSB7CiAgICAgICAgICByZXR1cm4gW2xlcnAoZVswXSwgdFswXSwgciksIGxlcnAoZVsxXSwgdFsxXSwgcildOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBxdWFkUm9vdHMoZSwgdCwgcikgewogICAgICAgICAgaWYgKGUgPT09IDApIHJldHVybiBbXTsKICAgICAgICAgIHZhciBuID0gdCAqIHQgLSA0ICogZSAqIHI7CiAgICAgICAgICBpZiAobiA8IDApIHJldHVybiBbXTsKICAgICAgICAgIHZhciBpID0gLXQgLyAoMiAqIGUpOwogICAgICAgICAgaWYgKG4gPT09IDApIHJldHVybiBbaV07CiAgICAgICAgICB2YXIgYSA9IE1hdGguc3FydChuKSAvICgyICogZSk7CiAgICAgICAgICByZXR1cm4gW2kgLSBhLCBpICsgYV07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBvbHlub21pYWxDb2VmZmljaWVudHMoZSwgdCwgciwgbikgewogICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgMyAqIHQgLSBlIC0gMyAqIHIgKyBuLAogICAgICAgICAgICAzICogZSAtIDYgKiB0ICsgMyAqIHIsCiAgICAgICAgICAgIC0zICogZSArIDMgKiB0LAogICAgICAgICAgICBlLAogICAgICAgICAgXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2luZ2xlUG9pbnQoZSkgewogICAgICAgICAgcmV0dXJuIG5ldyBQb2x5bm9taWFsQmV6aWVyKGUsIGUsIGUsIGUsICExKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gUG9seW5vbWlhbEJlemllcihlLCB0LCByLCBuLCBpKSB7CiAgICAgICAgICBpICYmIHBvaW50RXF1YWwoZSwgdCkgJiYgKHQgPSBsZXJwUG9pbnQoZSwgbiwgMSAvIDMpKSwKICAgICAgICAgICAgaSAmJiBwb2ludEVxdWFsKHIsIG4pICYmIChyID0gbGVycFBvaW50KGUsIG4sIDIgLyAzKSk7CiAgICAgICAgICB2YXIgYSA9IHBvbHlub21pYWxDb2VmZmljaWVudHMoZVswXSwgdFswXSwgclswXSwgblswXSksCiAgICAgICAgICAgIG8gPSBwb2x5bm9taWFsQ29lZmZpY2llbnRzKGVbMV0sIHRbMV0sIHJbMV0sIG5bMV0pOwogICAgICAgICAgKHRoaXMuYSA9IFthWzBdLCBvWzBdXSksCiAgICAgICAgICAgICh0aGlzLmIgPSBbYVsxXSwgb1sxXV0pLAogICAgICAgICAgICAodGhpcy5jID0gW2FbMl0sIG9bMl1dKSwKICAgICAgICAgICAgKHRoaXMuZCA9IFthWzNdLCBvWzNdXSksCiAgICAgICAgICAgICh0aGlzLnBvaW50cyA9IFtlLCB0LCByLCBuXSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGV4dHJlbWEoZSwgdCkgewogICAgICAgICAgdmFyIHIgPSBlLnBvaW50c1swXVt0XSwKICAgICAgICAgICAgbiA9IGUucG9pbnRzW2UucG9pbnRzLmxlbmd0aCAtIDFdW3RdOwogICAgICAgICAgaWYgKHIgPiBuKSB7CiAgICAgICAgICAgIHZhciBpID0gbjsKICAgICAgICAgICAgKG4gPSByKSwgKHIgPSBpKTsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAoCiAgICAgICAgICAgIHZhciBhID0gcXVhZFJvb3RzKDMgKiBlLmFbdF0sIDIgKiBlLmJbdF0sIGUuY1t0XSksIG8gPSAwOwogICAgICAgICAgICBvIDwgYS5sZW5ndGg7CiAgICAgICAgICAgIG8gKz0gMQogICAgICAgICAgKQogICAgICAgICAgICBpZiAoYVtvXSA+IDAgJiYgYVtvXSA8IDEpIHsKICAgICAgICAgICAgICB2YXIgcyA9IGUucG9pbnQoYVtvXSlbdF07CiAgICAgICAgICAgICAgcyA8IHIgPyAociA9IHMpIDogcyA+IG4gJiYgKG4gPSBzKTsKICAgICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHsgbWluOiByLCBtYXg6IG4gfTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaW50ZXJzZWN0RGF0YShlLCB0LCByKSB7CiAgICAgICAgICB2YXIgbiA9IGUuYm91bmRpbmdCb3goKTsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGN4OiBuLmN4LAogICAgICAgICAgICBjeTogbi5jeSwKICAgICAgICAgICAgd2lkdGg6IG4ud2lkdGgsCiAgICAgICAgICAgIGhlaWdodDogbi5oZWlnaHQsCiAgICAgICAgICAgIGJlejogZSwKICAgICAgICAgICAgdDogKHQgKyByKSAvIDIsCiAgICAgICAgICAgIHQxOiB0LAogICAgICAgICAgICB0MjogciwKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNwbGl0RGF0YShlKSB7CiAgICAgICAgICB2YXIgdCA9IGUuYmV6LnNwbGl0KDAuNSk7CiAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICBpbnRlcnNlY3REYXRhKHRbMF0sIGUudDEsIGUudCksCiAgICAgICAgICAgIGludGVyc2VjdERhdGEodFsxXSwgZS50LCBlLnQyKSwKICAgICAgICAgIF07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGJveEludGVyc2VjdChlLCB0KSB7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAyICogTWF0aC5hYnMoZS5jeCAtIHQuY3gpIDwgZS53aWR0aCArIHQud2lkdGggJiYKICAgICAgICAgICAgMiAqIE1hdGguYWJzKGUuY3kgLSB0LmN5KSA8IGUuaGVpZ2h0ICsgdC5oZWlnaHQKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGludGVyc2VjdHNJbXBsKGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgICAgIGlmIChib3hJbnRlcnNlY3QoZSwgdCkpCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICByID49IGEgfHwKICAgICAgICAgICAgICAoZS53aWR0aCA8PSBuICYmIGUuaGVpZ2h0IDw9IG4gJiYgdC53aWR0aCA8PSBuICYmIHQuaGVpZ2h0IDw9IG4pCiAgICAgICAgICAgICkKICAgICAgICAgICAgICBpLnB1c2goW2UudCwgdC50XSk7CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIHZhciBvID0gc3BsaXREYXRhKGUpLAogICAgICAgICAgICAgICAgcyA9IHNwbGl0RGF0YSh0KTsKICAgICAgICAgICAgICBpbnRlcnNlY3RzSW1wbChvWzBdLCBzWzBdLCByICsgMSwgbiwgaSwgYSksCiAgICAgICAgICAgICAgICBpbnRlcnNlY3RzSW1wbChvWzBdLCBzWzFdLCByICsgMSwgbiwgaSwgYSksCiAgICAgICAgICAgICAgICBpbnRlcnNlY3RzSW1wbChvWzFdLCBzWzBdLCByICsgMSwgbiwgaSwgYSksCiAgICAgICAgICAgICAgICBpbnRlcnNlY3RzSW1wbChvWzFdLCBzWzFdLCByICsgMSwgbiwgaSwgYSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gY3Jvc3NQcm9kdWN0KGUsIHQpIHsKICAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgIGVbMV0gKiB0WzJdIC0gZVsyXSAqIHRbMV0sCiAgICAgICAgICAgIGVbMl0gKiB0WzBdIC0gZVswXSAqIHRbMl0sCiAgICAgICAgICAgIGVbMF0gKiB0WzFdIC0gZVsxXSAqIHRbMF0sCiAgICAgICAgICBdOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBsaW5lSW50ZXJzZWN0aW9uKGUsIHQsIHIsIG4pIHsKICAgICAgICAgIHZhciBpID0gW2VbMF0sIGVbMV0sIDFdLAogICAgICAgICAgICBhID0gW3RbMF0sIHRbMV0sIDFdLAogICAgICAgICAgICBvID0gW3JbMF0sIHJbMV0sIDFdLAogICAgICAgICAgICBzID0gW25bMF0sIG5bMV0sIDFdLAogICAgICAgICAgICBjID0gY3Jvc3NQcm9kdWN0KGNyb3NzUHJvZHVjdChpLCBhKSwgY3Jvc3NQcm9kdWN0KG8sIHMpKTsKICAgICAgICAgIHJldHVybiBmbG9hdFplcm8oY1syXSkgPyBudWxsIDogW2NbMF0gLyBjWzJdLCBjWzFdIC8gY1syXV07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBvbGFyT2Zmc2V0KGUsIHQsIHIpIHsKICAgICAgICAgIHJldHVybiBbZVswXSArIE1hdGguY29zKHQpICogciwgZVsxXSAtIE1hdGguc2luKHQpICogcl07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBvaW50RGlzdGFuY2UoZSwgdCkgewogICAgICAgICAgcmV0dXJuIE1hdGguaHlwb3QoZVswXSAtIHRbMF0sIGVbMV0gLSB0WzFdKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcG9pbnRFcXVhbChlLCB0KSB7CiAgICAgICAgICByZXR1cm4gZmxvYXRFcXVhbChlWzBdLCB0WzBdKSAmJiBmbG9hdEVxdWFsKGVbMV0sIHRbMV0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBaaWdaYWdNb2RpZmllcigpIHt9CiAgICAgICAgZnVuY3Rpb24gc2V0UG9pbnQoZSwgdCwgciwgbiwgaSwgYSwgbykgewogICAgICAgICAgdmFyIHMgPSByIC0gTWF0aC5QSSAvIDIsCiAgICAgICAgICAgIGMgPSByICsgTWF0aC5QSSAvIDIsCiAgICAgICAgICAgIHUgPSB0WzBdICsgTWF0aC5jb3MocikgKiBuICogaSwKICAgICAgICAgICAgbCA9IHRbMV0gLSBNYXRoLnNpbihyKSAqIG4gKiBpOwogICAgICAgICAgZS5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgdSwKICAgICAgICAgICAgbCwKICAgICAgICAgICAgdSArIE1hdGguY29zKHMpICogYSwKICAgICAgICAgICAgbCAtIE1hdGguc2luKHMpICogYSwKICAgICAgICAgICAgdSArIE1hdGguY29zKGMpICogbywKICAgICAgICAgICAgbCAtIE1hdGguc2luKGMpICogbywKICAgICAgICAgICAgZS5sZW5ndGgoKQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZ2V0UGVycGVuZGljdWxhclZlY3RvcihlLCB0KSB7CiAgICAgICAgICB2YXIgciA9IFt0WzBdIC0gZVswXSwgdFsxXSAtIGVbMV1dLAogICAgICAgICAgICBuID0gMC41ICogLU1hdGguUEk7CiAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICBNYXRoLmNvcyhuKSAqIHJbMF0gLSBNYXRoLnNpbihuKSAqIHJbMV0sCiAgICAgICAgICAgIE1hdGguc2luKG4pICogclswXSArIE1hdGguY29zKG4pICogclsxXSwKICAgICAgICAgIF07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdldFByb2plY3RpbmdBbmdsZShlLCB0KSB7CiAgICAgICAgICB2YXIgciA9IHQgPT09IDAgPyBlLmxlbmd0aCgpIC0gMSA6IHQgLSAxLAogICAgICAgICAgICBuID0gKHQgKyAxKSAlIGUubGVuZ3RoKCksCiAgICAgICAgICAgIGkgPSBnZXRQZXJwZW5kaWN1bGFyVmVjdG9yKGUudltyXSwgZS52W25dKTsKICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKDAsIDEpIC0gTWF0aC5hdGFuMihpWzFdLCBpWzBdKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gemlnWmFnQ29ybmVyKGUsIHQsIHIsIG4sIGksIGEsIG8pIHsKICAgICAgICAgIHZhciBzID0gZ2V0UHJvamVjdGluZ0FuZ2xlKHQsIHIpLAogICAgICAgICAgICBjID0gdC52W3IgJSB0Ll9sZW5ndGhdLAogICAgICAgICAgICB1ID0gdC52W3IgPT09IDAgPyB0Ll9sZW5ndGggLSAxIDogciAtIDFdLAogICAgICAgICAgICBsID0gdC52WyhyICsgMSkgJSB0Ll9sZW5ndGhdLAogICAgICAgICAgICBwID0KICAgICAgICAgICAgICBhID09PSAyCiAgICAgICAgICAgICAgICA/IE1hdGguc3FydChNYXRoLnBvdyhjWzBdIC0gdVswXSwgMikgKyBNYXRoLnBvdyhjWzFdIC0gdVsxXSwgMikpCiAgICAgICAgICAgICAgICA6IDAsCiAgICAgICAgICAgIGQgPQogICAgICAgICAgICAgIGEgPT09IDIKICAgICAgICAgICAgICAgID8gTWF0aC5zcXJ0KE1hdGgucG93KGNbMF0gLSBsWzBdLCAyKSArIE1hdGgucG93KGNbMV0gLSBsWzFdLCAyKSkKICAgICAgICAgICAgICAgIDogMDsKICAgICAgICAgIHNldFBvaW50KAogICAgICAgICAgICBlLAogICAgICAgICAgICB0LnZbciAlIHQuX2xlbmd0aF0sCiAgICAgICAgICAgIHMsCiAgICAgICAgICAgIG8sCiAgICAgICAgICAgIG4sCiAgICAgICAgICAgIGQgLyAoMiAqIChpICsgMSkpLAogICAgICAgICAgICBwIC8gKDIgKiAoaSArIDEpKSwKICAgICAgICAgICAgYQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gemlnWmFnU2VnbWVudChlLCB0LCByLCBuLCBpLCBhKSB7CiAgICAgICAgICBmb3IgKHZhciBvID0gMDsgbyA8IG47IG8gKz0gMSkgewogICAgICAgICAgICB2YXIgcyA9IChvICsgMSkgLyAobiArIDEpLAogICAgICAgICAgICAgIGMgPQogICAgICAgICAgICAgICAgaSA9PT0gMgogICAgICAgICAgICAgICAgICA/IE1hdGguc3FydCgKICAgICAgICAgICAgICAgICAgICAgIE1hdGgucG93KHQucG9pbnRzWzNdWzBdIC0gdC5wb2ludHNbMF1bMF0sIDIpICsKICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3codC5wb2ludHNbM11bMV0gLSB0LnBvaW50c1swXVsxXSwgMikKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIDogMCwKICAgICAgICAgICAgICB1ID0gdC5ub3JtYWxBbmdsZShzKTsKICAgICAgICAgICAgc2V0UG9pbnQoCiAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICB0LnBvaW50KHMpLAogICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICByLAogICAgICAgICAgICAgIGMgLyAoMiAqIChuICsgMSkpLAogICAgICAgICAgICAgIGMgLyAoMiAqIChuICsgMSkpLAogICAgICAgICAgICAgIGkKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAoYSA9IC1hKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBhOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBsaW5lYXJPZmZzZXQoZSwgdCwgcikgewogICAgICAgICAgdmFyIG4gPSBNYXRoLmF0YW4yKHRbMF0gLSBlWzBdLCB0WzFdIC0gZVsxXSk7CiAgICAgICAgICByZXR1cm4gW3BvbGFyT2Zmc2V0KGUsIG4sIHIpLCBwb2xhck9mZnNldCh0LCBuLCByKV07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIG9mZnNldFNlZ21lbnQoZSwgdCkgewogICAgICAgICAgdmFyIHIsIG4sIGksIGEsIG8sIHMsIGM7CiAgICAgICAgICAociA9IChjID0gbGluZWFyT2Zmc2V0KGUucG9pbnRzWzBdLCBlLnBvaW50c1sxXSwgdCkpWzBdKSwKICAgICAgICAgICAgKG4gPSBjWzFdKSwKICAgICAgICAgICAgKGkgPSAoYyA9IGxpbmVhck9mZnNldChlLnBvaW50c1sxXSwgZS5wb2ludHNbMl0sIHQpKVswXSksCiAgICAgICAgICAgIChhID0gY1sxXSksCiAgICAgICAgICAgIChvID0gKGMgPSBsaW5lYXJPZmZzZXQoZS5wb2ludHNbMl0sIGUucG9pbnRzWzNdLCB0KSlbMF0pLAogICAgICAgICAgICAocyA9IGNbMV0pOwogICAgICAgICAgdmFyIHUgPSBsaW5lSW50ZXJzZWN0aW9uKHIsIG4sIGksIGEpOwogICAgICAgICAgdSA9PT0gbnVsbCAmJiAodSA9IG4pOwogICAgICAgICAgdmFyIGwgPSBsaW5lSW50ZXJzZWN0aW9uKG8sIHMsIGksIGEpOwogICAgICAgICAgcmV0dXJuIGwgPT09IG51bGwgJiYgKGwgPSBvKSwgbmV3IFBvbHlub21pYWxCZXppZXIociwgdSwgbCwgcyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGpvaW5MaW5lcyhlLCB0LCByLCBuLCBpKSB7CiAgICAgICAgICB2YXIgYSA9IHQucG9pbnRzWzNdLAogICAgICAgICAgICBvID0gci5wb2ludHNbMF07CiAgICAgICAgICBpZiAobiA9PT0gMyB8fCBwb2ludEVxdWFsKGEsIG8pKSByZXR1cm4gYTsKICAgICAgICAgIGlmIChuID09PSAyKSB7CiAgICAgICAgICAgIHZhciBzID0gLXQudGFuZ2VudEFuZ2xlKDEpLAogICAgICAgICAgICAgIGMgPSAtci50YW5nZW50QW5nbGUoMCkgKyBNYXRoLlBJLAogICAgICAgICAgICAgIHUgPSBsaW5lSW50ZXJzZWN0aW9uKAogICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgIHBvbGFyT2Zmc2V0KGEsIHMgKyBNYXRoLlBJIC8gMiwgMTAwKSwKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBwb2xhck9mZnNldChvLCBzICsgTWF0aC5QSSAvIDIsIDEwMCkKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIGwgPSB1ID8gcG9pbnREaXN0YW5jZSh1LCBhKSA6IHBvaW50RGlzdGFuY2UoYSwgbykgLyAyLAogICAgICAgICAgICAgIHAgPSBwb2xhck9mZnNldChhLCBzLCAyICogbCAqIHJvdW5kQ29ybmVyKTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICBlLnNldFhZQXQocFswXSwgcFsxXSwgIm8iLCBlLmxlbmd0aCgpIC0gMSksCiAgICAgICAgICAgICAgKHAgPSBwb2xhck9mZnNldChvLCBjLCAyICogbCAqIHJvdW5kQ29ybmVyKSksCiAgICAgICAgICAgICAgZS5zZXRUcmlwbGVBdChvWzBdLCBvWzFdLCBvWzBdLCBvWzFdLCBwWzBdLCBwWzFdLCBlLmxlbmd0aCgpKSwKICAgICAgICAgICAgICBvCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgZCA9IGxpbmVJbnRlcnNlY3Rpb24oCiAgICAgICAgICAgIHBvaW50RXF1YWwoYSwgdC5wb2ludHNbMl0pID8gdC5wb2ludHNbMF0gOiB0LnBvaW50c1syXSwKICAgICAgICAgICAgYSwKICAgICAgICAgICAgbywKICAgICAgICAgICAgcG9pbnRFcXVhbChvLCByLnBvaW50c1sxXSkgPyByLnBvaW50c1szXSA6IHIucG9pbnRzWzFdCiAgICAgICAgICApOwogICAgICAgICAgcmV0dXJuIGQgJiYgcG9pbnREaXN0YW5jZShkLCBhKSA8IGkKICAgICAgICAgICAgPyAoZS5zZXRUcmlwbGVBdChkWzBdLCBkWzFdLCBkWzBdLCBkWzFdLCBkWzBdLCBkWzFdLCBlLmxlbmd0aCgpKSwgZCkKICAgICAgICAgICAgOiBhOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBnZXRJbnRlcnNlY3Rpb24oZSwgdCkgewogICAgICAgICAgdmFyIHIgPSBlLmludGVyc2VjdGlvbnModCk7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICByLmxlbmd0aCAmJiBmbG9hdEVxdWFsKHJbMF1bMF0sIDEpICYmIHIuc2hpZnQoKSwKICAgICAgICAgICAgci5sZW5ndGggPyByWzBdIDogbnVsbAogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcHJ1bmVTZWdtZW50SW50ZXJzZWN0aW9uKGUsIHQpIHsKICAgICAgICAgIHZhciByID0gZS5zbGljZSgpLAogICAgICAgICAgICBuID0gdC5zbGljZSgpLAogICAgICAgICAgICBpID0gZ2V0SW50ZXJzZWN0aW9uKGVbZS5sZW5ndGggLSAxXSwgdFswXSk7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBpICYmCiAgICAgICAgICAgICAgKChyW2UubGVuZ3RoIC0gMV0gPSBlW2UubGVuZ3RoIC0gMV0uc3BsaXQoaVswXSlbMF0pLAogICAgICAgICAgICAgIChuWzBdID0gdFswXS5zcGxpdChpWzFdKVsxXSkpLAogICAgICAgICAgICBlLmxlbmd0aCA+IDEgJiYKICAgICAgICAgICAgdC5sZW5ndGggPiAxICYmCiAgICAgICAgICAgIChpID0gZ2V0SW50ZXJzZWN0aW9uKGVbMF0sIHRbdC5sZW5ndGggLSAxXSkpCiAgICAgICAgICAgICAgPyBbW2VbMF0uc3BsaXQoaVswXSlbMF1dLCBbdFt0Lmxlbmd0aCAtIDFdLnNwbGl0KGlbMV0pWzFdXV0KICAgICAgICAgICAgICA6IFtyLCBuXQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcHJ1bmVJbnRlcnNlY3Rpb25zKGUpIHsKICAgICAgICAgIGZvciAodmFyIHQsIHIgPSAxOyByIDwgZS5sZW5ndGg7IHIgKz0gMSkKICAgICAgICAgICAgKHQgPSBwcnVuZVNlZ21lbnRJbnRlcnNlY3Rpb24oZVtyIC0gMV0sIGVbcl0pKSwKICAgICAgICAgICAgICAoZVtyIC0gMV0gPSB0WzBdKSwKICAgICAgICAgICAgICAoZVtyXSA9IHRbMV0pOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgZS5sZW5ndGggPiAxICYmCiAgICAgICAgICAgICAgKCh0ID0gcHJ1bmVTZWdtZW50SW50ZXJzZWN0aW9uKGVbZS5sZW5ndGggLSAxXSwgZVswXSkpLAogICAgICAgICAgICAgIChlW2UubGVuZ3RoIC0gMV0gPSB0WzBdKSwKICAgICAgICAgICAgICAoZVswXSA9IHRbMV0pKSwKICAgICAgICAgICAgZQogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gb2Zmc2V0U2VnbWVudFNwbGl0KGUsIHQpIHsKICAgICAgICAgIHZhciByLAogICAgICAgICAgICBuLAogICAgICAgICAgICBpLAogICAgICAgICAgICBhLAogICAgICAgICAgICBvID0gZS5pbmZsZWN0aW9uUG9pbnRzKCk7CiAgICAgICAgICBpZiAoby5sZW5ndGggPT09IDApIHJldHVybiBbb2Zmc2V0U2VnbWVudChlLCB0KV07CiAgICAgICAgICBpZiAoby5sZW5ndGggPT09IDEgfHwgZmxvYXRFcXVhbChvWzFdLCAxKSkKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAociA9IChpID0gZS5zcGxpdChvWzBdKSlbMF0pLAogICAgICAgICAgICAgIChuID0gaVsxXSksCiAgICAgICAgICAgICAgW29mZnNldFNlZ21lbnQociwgdCksIG9mZnNldFNlZ21lbnQobiwgdCldCiAgICAgICAgICAgICk7CiAgICAgICAgICByID0gKGkgPSBlLnNwbGl0KG9bMF0pKVswXTsKICAgICAgICAgIHZhciBzID0gKG9bMV0gLSBvWzBdKSAvICgxIC0gb1swXSk7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoYSA9IChpID0gaVsxXS5zcGxpdChzKSlbMF0pLAogICAgICAgICAgICAobiA9IGlbMV0pLAogICAgICAgICAgICBbb2Zmc2V0U2VnbWVudChyLCB0KSwgb2Zmc2V0U2VnbWVudChhLCB0KSwgb2Zmc2V0U2VnbWVudChuLCB0KV0KICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIE9mZnNldFBhdGhNb2RpZmllcigpIHt9CiAgICAgICAgZnVuY3Rpb24gZ2V0Rm9udFByb3BlcnRpZXMoZSkgewogICAgICAgICAgZm9yICgKICAgICAgICAgICAgdmFyIHQgPSBlLmZTdHlsZSA/IGUuZlN0eWxlLnNwbGl0KCIgIikgOiBbXSwKICAgICAgICAgICAgICByID0gIm5vcm1hbCIsCiAgICAgICAgICAgICAgbiA9ICJub3JtYWwiLAogICAgICAgICAgICAgIGkgPSB0Lmxlbmd0aCwKICAgICAgICAgICAgICBhID0gMDsKICAgICAgICAgICAgYSA8IGk7CiAgICAgICAgICAgIGEgKz0gMQogICAgICAgICAgKQogICAgICAgICAgICBzd2l0Y2ggKHRbYV0udG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICAgIGNhc2UgIml0YWxpYyI6CiAgICAgICAgICAgICAgICBuID0gIml0YWxpYyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJib2xkIjoKICAgICAgICAgICAgICAgIHIgPSAiNzAwIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgImJsYWNrIjoKICAgICAgICAgICAgICAgIHIgPSAiOTAwIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgIm1lZGl1bSI6CiAgICAgICAgICAgICAgICByID0gIjUwMCI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlICJyZWd1bGFyIjoKICAgICAgICAgICAgICBjYXNlICJub3JtYWwiOgogICAgICAgICAgICAgICAgciA9ICI0MDAiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAibGlnaHQiOgogICAgICAgICAgICAgIGNhc2UgInRoaW4iOgogICAgICAgICAgICAgICAgciA9ICIyMDAiOwogICAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4geyBzdHlsZTogbiwgd2VpZ2h0OiBlLmZXZWlnaHQgfHwgciB9OwogICAgICAgIH0KICAgICAgICBleHRlbmRQcm90b3R5cGUoW1NoYXBlTW9kaWZpZXJdLCBSZXBlYXRlck1vZGlmaWVyKSwKICAgICAgICAgIChSZXBlYXRlck1vZGlmaWVyLnByb3RvdHlwZS5pbml0TW9kaWZpZXJQcm9wZXJ0aWVzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLnByb2Nlc3NLZXlzKSwKICAgICAgICAgICAgICAodGhpcy5jID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5jLCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQubywgMCwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAgICh0aGlzLnRyID0gVHJhbnNmb3JtUHJvcGVydHlGYWN0b3J5LmdldFRyYW5zZm9ybVByb3BlcnR5KAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQudHIsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMuc28gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LnRyLnNvLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMuZW8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LnRyLmVvLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IHQpLAogICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoIHx8IHRoaXMuZ2V0VmFsdWUoITApLAogICAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISF0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCksCiAgICAgICAgICAgICAgKHRoaXMucE1hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgKHRoaXMuck1hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgKHRoaXMuc01hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgKHRoaXMudE1hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICAgKHRoaXMubWF0cml4ID0gbmV3IE1hdHJpeCgpKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLmFwcGx5VHJhbnNmb3JtcyA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgZSwKICAgICAgICAgICAgdCwKICAgICAgICAgICAgciwKICAgICAgICAgICAgbiwKICAgICAgICAgICAgaSwKICAgICAgICAgICAgYQogICAgICAgICAgKSB7CiAgICAgICAgICAgIHZhciBvID0gYSA/IC0xIDogMSwKICAgICAgICAgICAgICBzID0gbi5zLnZbMF0gKyAoMSAtIG4ucy52WzBdKSAqICgxIC0gaSksCiAgICAgICAgICAgICAgYyA9IG4ucy52WzFdICsgKDEgLSBuLnMudlsxXSkgKiAoMSAtIGkpOwogICAgICAgICAgICBlLnRyYW5zbGF0ZShuLnAudlswXSAqIG8gKiBpLCBuLnAudlsxXSAqIG8gKiBpLCBuLnAudlsyXSksCiAgICAgICAgICAgICAgdC50cmFuc2xhdGUoLW4uYS52WzBdLCAtbi5hLnZbMV0sIG4uYS52WzJdKSwKICAgICAgICAgICAgICB0LnJvdGF0ZSgtbi5yLnYgKiBvICogaSksCiAgICAgICAgICAgICAgdC50cmFuc2xhdGUobi5hLnZbMF0sIG4uYS52WzFdLCBuLmEudlsyXSksCiAgICAgICAgICAgICAgci50cmFuc2xhdGUoLW4uYS52WzBdLCAtbi5hLnZbMV0sIG4uYS52WzJdKSwKICAgICAgICAgICAgICByLnNjYWxlKGEgPyAxIC8gcyA6IHMsIGEgPyAxIC8gYyA6IGMpLAogICAgICAgICAgICAgIHIudHJhbnNsYXRlKG4uYS52WzBdLCBuLmEudlsxXSwgbi5hLnZbMl0pOwogICAgICAgICAgfSksCiAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uIChlLCB0LCByLCBuKSB7CiAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgdGhpcy5lbGVtID0gZSwKICAgICAgICAgICAgICAgIHRoaXMuYXJyID0gdCwKICAgICAgICAgICAgICAgIHRoaXMucG9zID0gciwKICAgICAgICAgICAgICAgIHRoaXMuZWxlbXNEYXRhID0gbiwKICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRDb3BpZXMgPSAwLAogICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudHMgPSBbXSwKICAgICAgICAgICAgICAgIHRoaXMuX2dyb3VwcyA9IFtdLAogICAgICAgICAgICAgICAgdGhpcy5mcmFtZUlkID0gLTEsCiAgICAgICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZSksCiAgICAgICAgICAgICAgICB0aGlzLmluaXRNb2RpZmllclByb3BlcnRpZXMoZSwgdFtyXSk7CiAgICAgICAgICAgICAgciA+IDA7CgogICAgICAgICAgICApCiAgICAgICAgICAgICAgKHIgLT0gMSksIHRoaXMuX2VsZW1lbnRzLnVuc2hpZnQodFtyXSk7CiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoID8gKHRoaXMuayA9ICEwKSA6IHRoaXMuZ2V0VmFsdWUoITApOwogICAgICAgICAgfSksCiAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUucmVzZXRFbGVtZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgIHIgPSBlLmxlbmd0aDsKICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAoZVt0XS5fcHJvY2Vzc2VkID0gITEpLAogICAgICAgICAgICAgICAgZVt0XS50eSA9PT0gImdyIiAmJiB0aGlzLnJlc2V0RWxlbWVudHMoZVt0XS5pdCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChSZXBlYXRlck1vZGlmaWVyLnByb3RvdHlwZS5jbG9uZUVsZW1lbnRzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKTsKICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzZXRFbGVtZW50cyh0KSwgdDsKICAgICAgICAgIH0pLAogICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLmNoYW5nZUdyb3VwUmVuZGVyID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgbiA9IGUubGVuZ3RoOwogICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKQogICAgICAgICAgICAgIChlW3JdLl9yZW5kZXIgPSB0KSwKICAgICAgICAgICAgICAgIGVbcl0udHkgPT09ICJnciIgJiYgdGhpcy5jaGFuZ2VHcm91cFJlbmRlcihlW3JdLml0LCB0KTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFJlcGVhdGVyTW9kaWZpZXIucHJvdG90eXBlLnByb2Nlc3NTaGFwZXMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICByLAogICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgIG8gPSAhMTsKICAgICAgICAgICAgaWYgKHRoaXMuX21kZiB8fCBlKSB7CiAgICAgICAgICAgICAgdmFyIHMsCiAgICAgICAgICAgICAgICBjID0gTWF0aC5jZWlsKHRoaXMuYy52KTsKICAgICAgICAgICAgICBpZiAodGhpcy5fZ3JvdXBzLmxlbmd0aCA8IGMpIHsKICAgICAgICAgICAgICAgIGZvciAoOyB0aGlzLl9ncm91cHMubGVuZ3RoIDwgYzsgKSB7CiAgICAgICAgICAgICAgICAgIHZhciB1ID0geyBpdDogdGhpcy5jbG9uZUVsZW1lbnRzKHRoaXMuX2VsZW1lbnRzKSwgdHk6ICJnciIgfTsKICAgICAgICAgICAgICAgICAgdS5pdC5wdXNoKHsKICAgICAgICAgICAgICAgICAgICBhOiB7IGE6IDAsIGl4OiAxLCBrOiBbMCwgMF0gfSwKICAgICAgICAgICAgICAgICAgICBubTogIlRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgbzogeyBhOiAwLCBpeDogNywgazogMTAwIH0sCiAgICAgICAgICAgICAgICAgICAgcDogeyBhOiAwLCBpeDogMiwgazogWzAsIDBdIH0sCiAgICAgICAgICAgICAgICAgICAgcjogewogICAgICAgICAgICAgICAgICAgICAgYTogMSwKICAgICAgICAgICAgICAgICAgICAgIGl4OiA2LAogICAgICAgICAgICAgICAgICAgICAgazogWwogICAgICAgICAgICAgICAgICAgICAgICB7IHM6IDAsIGU6IDAsIHQ6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgeyBzOiAwLCBlOiAwLCB0OiAxIH0sCiAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgczogeyBhOiAwLCBpeDogMywgazogWzEwMCwgMTAwXSB9LAogICAgICAgICAgICAgICAgICAgIHNhOiB7IGE6IDAsIGl4OiA1LCBrOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgc2s6IHsgYTogMCwgaXg6IDQsIGs6IDAgfSwKICAgICAgICAgICAgICAgICAgICB0eTogInRyIiwKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcnIuc3BsaWNlKDAsIDAsIHUpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuX2dyb3Vwcy5zcGxpY2UoMCwgMCwgdSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuX2N1cnJlbnRDb3BpZXMgKz0gMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmVsZW0ucmVsb2FkU2hhcGVzKCksIChvID0gITApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmb3IgKGEgPSAwLCBuID0gMDsgbiA8PSB0aGlzLl9ncm91cHMubGVuZ3RoIC0gMTsgbiArPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgocyA9IGEgPCBjKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX2dyb3Vwc1tuXS5fcmVuZGVyID0gcyksCiAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlR3JvdXBSZW5kZXIodGhpcy5fZ3JvdXBzW25dLml0LCBzKSwKICAgICAgICAgICAgICAgICAgIXMpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIGwgPSB0aGlzLmVsZW1zRGF0YVtuXS5pdCwKICAgICAgICAgICAgICAgICAgICBwID0gbFtsLmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgICBwLnRyYW5zZm9ybS5vcC52ICE9PSAwCiAgICAgICAgICAgICAgICAgICAgPyAoKHAudHJhbnNmb3JtLm9wLl9tZGYgPSAhMCksIChwLnRyYW5zZm9ybS5vcC52ID0gMCkpCiAgICAgICAgICAgICAgICAgICAgOiAocC50cmFuc2Zvcm0ub3AuX21kZiA9ICExKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGEgKz0gMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5fY3VycmVudENvcGllcyA9IGM7CiAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLm8udiwKICAgICAgICAgICAgICAgIGggPSBkICUgMSwKICAgICAgICAgICAgICAgIG0gPSBkID4gMCA/IE1hdGguZmxvb3IoZCkgOiBNYXRoLmNlaWwoZCksCiAgICAgICAgICAgICAgICB2ID0gdGhpcy5wTWF0cml4LnByb3BzLAogICAgICAgICAgICAgICAgeSA9IHRoaXMuck1hdHJpeC5wcm9wcywKICAgICAgICAgICAgICAgIGcgPSB0aGlzLnNNYXRyaXgucHJvcHM7CiAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LnJlc2V0KCksCiAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeC5yZXNldCgpLAogICAgICAgICAgICAgICAgdGhpcy50TWF0cml4LnJlc2V0KCksCiAgICAgICAgICAgICAgICB0aGlzLm1hdHJpeC5yZXNldCgpOwogICAgICAgICAgICAgIHZhciBNLAogICAgICAgICAgICAgICAgQSwKICAgICAgICAgICAgICAgIF8gPSAwOwogICAgICAgICAgICAgIGlmIChkID4gMCkgewogICAgICAgICAgICAgICAgZm9yICg7IF8gPCBtOyApCiAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlUcmFuc2Zvcm1zKAogICAgICAgICAgICAgICAgICAgIHRoaXMucE1hdHJpeCwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zTWF0cml4LAogICAgICAgICAgICAgICAgICAgIHRoaXMudHIsCiAgICAgICAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAgICAgICAhMQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIChfICs9IDEpOwogICAgICAgICAgICAgICAgaCAmJgogICAgICAgICAgICAgICAgICAodGhpcy5hcHBseVRyYW5zZm9ybXMoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgIHRoaXMuck1hdHJpeCwKICAgICAgICAgICAgICAgICAgICB0aGlzLnNNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICBoLAogICAgICAgICAgICAgICAgICAgICExCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIChfICs9IGgpKTsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKGQgPCAwKSB7CiAgICAgICAgICAgICAgICBmb3IgKDsgXyA+IG07ICkKICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVRyYW5zZm9ybXMoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wTWF0cml4LAogICAgICAgICAgICAgICAgICAgIHRoaXMuck1hdHJpeCwKICAgICAgICAgICAgICAgICAgICB0aGlzLnNNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgdGhpcy50ciwKICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKF8gLT0gMSk7CiAgICAgICAgICAgICAgICBoICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmFwcGx5VHJhbnNmb3JtcygKICAgICAgICAgICAgICAgICAgICB0aGlzLnBNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yTWF0cml4LAogICAgICAgICAgICAgICAgICAgIHRoaXMuc01hdHJpeCwKICAgICAgICAgICAgICAgICAgICB0aGlzLnRyLAogICAgICAgICAgICAgICAgICAgIC1oLAogICAgICAgICAgICAgICAgICAgICEwCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIChfIC09IGgpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIG4gPSB0aGlzLmRhdGEubSA9PT0gMSA/IDAgOiB0aGlzLl9jdXJyZW50Q29waWVzIC0gMSwKICAgICAgICAgICAgICAgICAgaSA9IHRoaXMuZGF0YS5tID09PSAxID8gMSA6IC0xLAogICAgICAgICAgICAgICAgICBhID0gdGhpcy5fY3VycmVudENvcGllczsKICAgICAgICAgICAgICAgIGE7CgogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKEEgPSAociA9ICh0ID0gdGhpcy5lbGVtc0RhdGFbbl0uaXQpW3QubGVuZ3RoIC0gMV0udHJhbnNmb3JtCiAgICAgICAgICAgICAgICAgICAgLm1Qcm9wcy52LnByb3BzKS5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAodFt0Lmxlbmd0aCAtIDFdLnRyYW5zZm9ybS5tUHJvcHMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ub3AuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRbdC5sZW5ndGggLSAxXS50cmFuc2Zvcm0ub3AudiA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudENvcGllcyA9PT0gMQogICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNvLnYKICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zby52ICsKICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZW8udiAtIHRoaXMuc28udikgKgogICAgICAgICAgICAgICAgICAgICAgICAgIChuIC8gKHRoaXMuX2N1cnJlbnRDb3BpZXMgLSAxKSkpLAogICAgICAgICAgICAgICAgICBfICE9PSAwKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgKChuICE9PSAwICYmIGkgPT09IDEpIHx8CiAgICAgICAgICAgICAgICAgICAgICAobiAhPT0gdGhpcy5fY3VycmVudENvcGllcyAtIDEgJiYgaSA9PT0gLTEpKSAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVRyYW5zZm9ybXMoCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucE1hdHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yTWF0cml4LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHIsCiAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICExCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRyaXgudHJhbnNmb3JtKAogICAgICAgICAgICAgICAgICAgICAgICB5WzBdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzFdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzJdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzNdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzRdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzVdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzZdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzddLAogICAgICAgICAgICAgICAgICAgICAgICB5WzhdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzldLAogICAgICAgICAgICAgICAgICAgICAgICB5WzEwXSwKICAgICAgICAgICAgICAgICAgICAgICAgeVsxMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIHlbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICB5WzEzXSwKICAgICAgICAgICAgICAgICAgICAgICAgeVsxNF0sCiAgICAgICAgICAgICAgICAgICAgICAgIHlbMTVdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRyaXgudHJhbnNmb3JtKAogICAgICAgICAgICAgICAgICAgICAgICBnWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzJdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzNdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzRdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzVdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzZdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzddLAogICAgICAgICAgICAgICAgICAgICAgICBnWzhdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzldLAogICAgICAgICAgICAgICAgICAgICAgICBnWzEwXSwKICAgICAgICAgICAgICAgICAgICAgICAgZ1sxMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGdbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICBnWzEzXSwKICAgICAgICAgICAgICAgICAgICAgICAgZ1sxNF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGdbMTVdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRyaXgudHJhbnNmb3JtKAogICAgICAgICAgICAgICAgICAgICAgICB2WzBdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzFdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzJdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzNdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzRdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzVdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzZdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzddLAogICAgICAgICAgICAgICAgICAgICAgICB2WzhdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzldLAogICAgICAgICAgICAgICAgICAgICAgICB2WzEwXSwKICAgICAgICAgICAgICAgICAgICAgICAgdlsxMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIHZbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICB2WzEzXSwKICAgICAgICAgICAgICAgICAgICAgICAgdlsxNF0sCiAgICAgICAgICAgICAgICAgICAgICAgIHZbMTVdCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgTSA9IDA7CiAgICAgICAgICAgICAgICAgICAgTSA8IEE7CiAgICAgICAgICAgICAgICAgICAgTSArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICByW01dID0gdGhpcy5tYXRyaXgucHJvcHNbTV07CiAgICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnJlc2V0KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgZm9yICh0aGlzLm1hdHJpeC5yZXNldCgpLCBNID0gMDsgTSA8IEE7IE0gKz0gMSkKICAgICAgICAgICAgICAgICAgICByW01dID0gdGhpcy5tYXRyaXgucHJvcHNbTV07CiAgICAgICAgICAgICAgICAoXyArPSAxKSwgKGEgLT0gMSksIChuICs9IGkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgZm9yIChhID0gdGhpcy5fY3VycmVudENvcGllcywgbiA9IDAsIGkgPSAxOyBhOyApCiAgICAgICAgICAgICAgICAociA9ICh0ID0gdGhpcy5lbGVtc0RhdGFbbl0uaXQpW3QubGVuZ3RoIC0gMV0udHJhbnNmb3JtLm1Qcm9wcy52CiAgICAgICAgICAgICAgICAgIC5wcm9wcyksCiAgICAgICAgICAgICAgICAgICh0W3QubGVuZ3RoIC0gMV0udHJhbnNmb3JtLm1Qcm9wcy5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAodFt0Lmxlbmd0aCAtIDFdLnRyYW5zZm9ybS5vcC5fbWRmID0gITEpLAogICAgICAgICAgICAgICAgICAoYSAtPSAxKSwKICAgICAgICAgICAgICAgICAgKG4gKz0gaSk7CiAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgfSksCiAgICAgICAgICAoUmVwZWF0ZXJNb2RpZmllci5wcm90b3R5cGUuYWRkU2hhcGUgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW1NoYXBlTW9kaWZpZXJdLCBSb3VuZENvcm5lcnNNb2RpZmllciksCiAgICAgICAgICAoUm91bmRDb3JuZXJzTW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQKICAgICAgICAgICkgewogICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMucHJvY2Vzc0tleXMpLAogICAgICAgICAgICAgICh0aGlzLnJkID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5yLCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPSAhIXRoaXMucmQuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChSb3VuZENvcm5lcnNNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1BhdGggPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICBuID0gc2hhcGVQb29sLm5ld0VsZW1lbnQoKTsKICAgICAgICAgICAgbi5jID0gZS5jOwogICAgICAgICAgICB2YXIgaSwKICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgcywKICAgICAgICAgICAgICBjLAogICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgbCwKICAgICAgICAgICAgICBwLAogICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgaCwKICAgICAgICAgICAgICBtLAogICAgICAgICAgICAgIHYsCiAgICAgICAgICAgICAgeSA9IGUuX2xlbmd0aCwKICAgICAgICAgICAgICBnID0gMDsKICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IHk7IHIgKz0gMSkKICAgICAgICAgICAgICAoaSA9IGUudltyXSksCiAgICAgICAgICAgICAgICAobyA9IGUub1tyXSksCiAgICAgICAgICAgICAgICAoYSA9IGUuaVtyXSksCiAgICAgICAgICAgICAgICBpWzBdID09PSBvWzBdICYmIGlbMV0gPT09IG9bMV0gJiYgaVswXSA9PT0gYVswXSAmJiBpWzFdID09PSBhWzFdCiAgICAgICAgICAgICAgICAgID8gKHIgIT09IDAgJiYgciAhPT0geSAtIDEpIHx8IGUuYwogICAgICAgICAgICAgICAgICAgID8gKChzID0gciA9PT0gMCA/IGUudlt5IC0gMV0gOiBlLnZbciAtIDFdKSwKICAgICAgICAgICAgICAgICAgICAgICh1ID0gKGMgPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucG93KGlbMF0gLSBzWzBdLCAyKSArIE1hdGgucG93KGlbMV0gLSBzWzFdLCAyKQogICAgICAgICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgICAgICAgICAgPyBNYXRoLm1pbihjIC8gMiwgdCkgLyBjCiAgICAgICAgICAgICAgICAgICAgICAgIDogMCksCiAgICAgICAgICAgICAgICAgICAgICAobCA9IG0gPSBpWzBdICsgKHNbMF0gLSBpWzBdKSAqIHUpLAogICAgICAgICAgICAgICAgICAgICAgKHAgPSB2ID0gaVsxXSAtIChpWzFdIC0gc1sxXSkgKiB1KSwKICAgICAgICAgICAgICAgICAgICAgIChkID0gbCAtIChsIC0gaVswXSkgKiByb3VuZENvcm5lciksCiAgICAgICAgICAgICAgICAgICAgICAoaCA9IHAgLSAocCAtIGlbMV0pICogcm91bmRDb3JuZXIpLAogICAgICAgICAgICAgICAgICAgICAgbi5zZXRUcmlwbGVBdChsLCBwLCBkLCBoLCBtLCB2LCBnKSwKICAgICAgICAgICAgICAgICAgICAgIChnICs9IDEpLAogICAgICAgICAgICAgICAgICAgICAgKHMgPSByID09PSB5IC0gMSA/IGUudlswXSA6IGUudltyICsgMV0pLAogICAgICAgICAgICAgICAgICAgICAgKHUgPSAoYyA9IE1hdGguc3FydCgKICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coaVswXSAtIHNbMF0sIDIpICsgTWF0aC5wb3coaVsxXSAtIHNbMV0sIDIpCiAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgICA/IE1hdGgubWluKGMgLyAyLCB0KSAvIGMKICAgICAgICAgICAgICAgICAgICAgICAgOiAwKSwKICAgICAgICAgICAgICAgICAgICAgIChsID0gZCA9IGlbMF0gKyAoc1swXSAtIGlbMF0pICogdSksCiAgICAgICAgICAgICAgICAgICAgICAocCA9IGggPSBpWzFdICsgKHNbMV0gLSBpWzFdKSAqIHUpLAogICAgICAgICAgICAgICAgICAgICAgKG0gPSBsIC0gKGwgLSBpWzBdKSAqIHJvdW5kQ29ybmVyKSwKICAgICAgICAgICAgICAgICAgICAgICh2ID0gcCAtIChwIC0gaVsxXSkgKiByb3VuZENvcm5lciksCiAgICAgICAgICAgICAgICAgICAgICBuLnNldFRyaXBsZUF0KGwsIHAsIGQsIGgsIG0sIHYsIGcpLAogICAgICAgICAgICAgICAgICAgICAgKGcgKz0gMSkpCiAgICAgICAgICAgICAgICAgICAgOiAobi5zZXRUcmlwbGVBdChpWzBdLCBpWzFdLCBvWzBdLCBvWzFdLCBhWzBdLCBhWzFdLCBnKSwKICAgICAgICAgICAgICAgICAgICAgIChnICs9IDEpKQogICAgICAgICAgICAgICAgICA6IChuLnNldFRyaXBsZUF0KAogICAgICAgICAgICAgICAgICAgICAgZS52W3JdWzBdLAogICAgICAgICAgICAgICAgICAgICAgZS52W3JdWzFdLAogICAgICAgICAgICAgICAgICAgICAgZS5vW3JdWzBdLAogICAgICAgICAgICAgICAgICAgICAgZS5vW3JdWzFdLAogICAgICAgICAgICAgICAgICAgICAgZS5pW3JdWzBdLAogICAgICAgICAgICAgICAgICAgICAgZS5pW3JdWzFdLAogICAgICAgICAgICAgICAgICAgICAgZwogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKGcgKz0gMSkpOwogICAgICAgICAgICByZXR1cm4gbjsKICAgICAgICAgIH0pLAogICAgICAgICAgKFJvdW5kQ29ybmVyc01vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzU2hhcGVzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgIHMgPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgYyA9IHRoaXMucmQudjsKICAgICAgICAgICAgaWYgKGMgIT09IDApCiAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IHM7IHIgKz0gMSkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKG8gPSAoYSA9IHRoaXMuc2hhcGVzW3JdKS5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgIGEuc2hhcGUuX21kZiB8fCB0aGlzLl9tZGYgfHwgZSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBvLnJlbGVhc2VTaGFwZXMoKSwKICAgICAgICAgICAgICAgICAgICAgIGEuc2hhcGUuX21kZiA9ICEwLAogICAgICAgICAgICAgICAgICAgICAgdCA9IGEuc2hhcGUucGF0aHMuc2hhcGVzLAogICAgICAgICAgICAgICAgICAgICAgaSA9IGEuc2hhcGUucGF0aHMuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgIG4gPSAwOwogICAgICAgICAgICAgICAgICAgIG4gPCBpOwogICAgICAgICAgICAgICAgICAgIG4gKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgby5hZGRTaGFwZSh0aGlzLnByb2Nlc3NQYXRoKHRbbl0sIGMpKTsKICAgICAgICAgICAgICAgIGEuc2hhcGUucGF0aHMgPSBhLmxvY2FsU2hhcGVDb2xsZWN0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwgKHRoaXMuX21kZiA9ICExKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFBvbHlub21pYWxCZXppZXIucHJvdG90eXBlLnBvaW50ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAoKHRoaXMuYVswXSAqIGUgKyB0aGlzLmJbMF0pICogZSArIHRoaXMuY1swXSkgKiBlICsgdGhpcy5kWzBdLAogICAgICAgICAgICAgICgodGhpcy5hWzFdICogZSArIHRoaXMuYlsxXSkgKiBlICsgdGhpcy5jWzFdKSAqIGUgKyB0aGlzLmRbMV0sCiAgICAgICAgICAgIF07CiAgICAgICAgICB9KSwKICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5kZXJpdmF0aXZlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAoMyAqIGUgKiB0aGlzLmFbMF0gKyAyICogdGhpcy5iWzBdKSAqIGUgKyB0aGlzLmNbMF0sCiAgICAgICAgICAgICAgKDMgKiBlICogdGhpcy5hWzFdICsgMiAqIHRoaXMuYlsxXSkgKiBlICsgdGhpcy5jWzFdLAogICAgICAgICAgICBdOwogICAgICAgICAgfSksCiAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUudGFuZ2VudEFuZ2xlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmRlcml2YXRpdmUoZSk7CiAgICAgICAgICAgIHJldHVybiBNYXRoLmF0YW4yKHRbMV0sIHRbMF0pOwogICAgICAgICAgfSksCiAgICAgICAgICAoUG9seW5vbWlhbEJlemllci5wcm90b3R5cGUubm9ybWFsQW5nbGUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCA9IHRoaXMuZGVyaXZhdGl2ZShlKTsKICAgICAgICAgICAgcmV0dXJuIE1hdGguYXRhbjIodFswXSwgdFsxXSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5pbmZsZWN0aW9uUG9pbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IHRoaXMuYVsxXSAqIHRoaXMuYlswXSAtIHRoaXMuYVswXSAqIHRoaXMuYlsxXTsKICAgICAgICAgICAgaWYgKGZsb2F0WmVybyhlKSkgcmV0dXJuIFtdOwogICAgICAgICAgICB2YXIgdCA9CiAgICAgICAgICAgICAgICAoLTAuNSAqICh0aGlzLmFbMV0gKiB0aGlzLmNbMF0gLSB0aGlzLmFbMF0gKiB0aGlzLmNbMV0pKSAvIGUsCiAgICAgICAgICAgICAgciA9CiAgICAgICAgICAgICAgICB0ICogdCAtCiAgICAgICAgICAgICAgICAoKDEgLyAzKSAqICh0aGlzLmJbMV0gKiB0aGlzLmNbMF0gLSB0aGlzLmJbMF0gKiB0aGlzLmNbMV0pKSAvIGU7CiAgICAgICAgICAgIGlmIChyIDwgMCkgcmV0dXJuIFtdOwogICAgICAgICAgICB2YXIgbiA9IE1hdGguc3FydChyKTsKICAgICAgICAgICAgcmV0dXJuIGZsb2F0WmVybyhuKQogICAgICAgICAgICAgID8gbiA+IDAgJiYgbiA8IDEKICAgICAgICAgICAgICAgID8gW3RdCiAgICAgICAgICAgICAgICA6IFtdCiAgICAgICAgICAgICAgOiBbdCAtIG4sIHQgKyBuXS5maWx0ZXIoZnVuY3Rpb24gKGkpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGkgPiAwICYmIGkgPCAxOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5zcGxpdCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmIChlIDw9IDApIHJldHVybiBbc2luZ2xlUG9pbnQodGhpcy5wb2ludHNbMF0pLCB0aGlzXTsKICAgICAgICAgICAgaWYgKGUgPj0gMSkKICAgICAgICAgICAgICByZXR1cm4gW3RoaXMsIHNpbmdsZVBvaW50KHRoaXMucG9pbnRzW3RoaXMucG9pbnRzLmxlbmd0aCAtIDFdKV07CiAgICAgICAgICAgIHZhciB0ID0gbGVycFBvaW50KHRoaXMucG9pbnRzWzBdLCB0aGlzLnBvaW50c1sxXSwgZSksCiAgICAgICAgICAgICAgciA9IGxlcnBQb2ludCh0aGlzLnBvaW50c1sxXSwgdGhpcy5wb2ludHNbMl0sIGUpLAogICAgICAgICAgICAgIG4gPSBsZXJwUG9pbnQodGhpcy5wb2ludHNbMl0sIHRoaXMucG9pbnRzWzNdLCBlKSwKICAgICAgICAgICAgICBpID0gbGVycFBvaW50KHQsIHIsIGUpLAogICAgICAgICAgICAgIGEgPSBsZXJwUG9pbnQociwgbiwgZSksCiAgICAgICAgICAgICAgbyA9IGxlcnBQb2ludChpLCBhLCBlKTsKICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICBuZXcgUG9seW5vbWlhbEJlemllcih0aGlzLnBvaW50c1swXSwgdCwgaSwgbywgITApLAogICAgICAgICAgICAgIG5ldyBQb2x5bm9taWFsQmV6aWVyKG8sIGEsIG4sIHRoaXMucG9pbnRzWzNdLCAhMCksCiAgICAgICAgICAgIF07CiAgICAgICAgICB9KSwKICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5ib3VuZHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB7IHg6IGV4dHJlbWEodGhpcywgMCksIHk6IGV4dHJlbWEodGhpcywgMSkgfTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFBvbHlub21pYWxCZXppZXIucHJvdG90eXBlLmJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IHRoaXMuYm91bmRzKCk7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgbGVmdDogZS54Lm1pbiwKICAgICAgICAgICAgICByaWdodDogZS54Lm1heCwKICAgICAgICAgICAgICB0b3A6IGUueS5taW4sCiAgICAgICAgICAgICAgYm90dG9tOiBlLnkubWF4LAogICAgICAgICAgICAgIHdpZHRoOiBlLngubWF4IC0gZS54Lm1pbiwKICAgICAgICAgICAgICBoZWlnaHQ6IGUueS5tYXggLSBlLnkubWluLAogICAgICAgICAgICAgIGN4OiAoZS54Lm1heCArIGUueC5taW4pIC8gMiwKICAgICAgICAgICAgICBjeTogKGUueS5tYXggKyBlLnkubWluKSAvIDIsCiAgICAgICAgICAgIH07CiAgICAgICAgICB9KSwKICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnByb3RvdHlwZS5pbnRlcnNlY3Rpb25zID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgdCA9PT0gdm9pZCAwICYmICh0ID0gMiksIHIgPT09IHZvaWQgMCAmJiAociA9IDcpOwogICAgICAgICAgICB2YXIgbiA9IFtdOwogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIGludGVyc2VjdHNJbXBsKAogICAgICAgICAgICAgICAgaW50ZXJzZWN0RGF0YSh0aGlzLCAwLCAxKSwKICAgICAgICAgICAgICAgIGludGVyc2VjdERhdGEoZSwgMCwgMSksCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICByCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBuCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChQb2x5bm9taWFsQmV6aWVyLnNoYXBlU2VnbWVudCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHZhciByID0gKHQgKyAxKSAlIGUubGVuZ3RoKCk7CiAgICAgICAgICAgIHJldHVybiBuZXcgUG9seW5vbWlhbEJlemllcihlLnZbdF0sIGUub1t0XSwgZS5pW3JdLCBlLnZbcl0sICEwKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFBvbHlub21pYWxCZXppZXIuc2hhcGVTZWdtZW50SW52ZXJ0ZWQgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciA9ICh0ICsgMSkgJSBlLmxlbmd0aCgpOwogICAgICAgICAgICByZXR1cm4gbmV3IFBvbHlub21pYWxCZXppZXIoZS52W3JdLCBlLmlbcl0sIGUub1t0XSwgZS52W3RdLCAhMCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbU2hhcGVNb2RpZmllcl0sIFppZ1phZ01vZGlmaWVyKSwKICAgICAgICAgIChaaWdaYWdNb2RpZmllci5wcm90b3R5cGUuaW5pdE1vZGlmaWVyUHJvcGVydGllcyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gdGhpcy5wcm9jZXNzS2V5cyksCiAgICAgICAgICAgICAgKHRoaXMuYW1wbGl0dWRlID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5zLCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMuZnJlcXVlbmN5ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5yLCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMucG9pbnRzVHlwZSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQucHQsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9CiAgICAgICAgICAgICAgICB0aGlzLmFtcGxpdHVkZS5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoICE9PSAwIHx8CiAgICAgICAgICAgICAgICB0aGlzLmZyZXF1ZW5jeS5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoICE9PSAwIHx8CiAgICAgICAgICAgICAgICB0aGlzLnBvaW50c1R5cGUuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCAhPT0gMCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChaaWdaYWdNb2RpZmllci5wcm90b3R5cGUucHJvY2Vzc1BhdGggPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICB2YXIgaSA9IGUuX2xlbmd0aCwKICAgICAgICAgICAgICBhID0gc2hhcGVQb29sLm5ld0VsZW1lbnQoKTsKICAgICAgICAgICAgaWYgKCgoYS5jID0gZS5jKSwgZS5jIHx8IChpIC09IDEpLCBpID09PSAwKSkgcmV0dXJuIGE7CiAgICAgICAgICAgIHZhciBvID0gLTEsCiAgICAgICAgICAgICAgcyA9IFBvbHlub21pYWxCZXppZXIuc2hhcGVTZWdtZW50KGUsIDApOwogICAgICAgICAgICB6aWdaYWdDb3JuZXIoYSwgZSwgMCwgdCwgciwgbiwgbyk7CiAgICAgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgaTsgYyArPSAxKQogICAgICAgICAgICAgIChvID0gemlnWmFnU2VnbWVudChhLCBzLCB0LCByLCBuLCAtbykpLAogICAgICAgICAgICAgICAgKHMgPQogICAgICAgICAgICAgICAgICBjICE9PSBpIC0gMSB8fCBlLmMKICAgICAgICAgICAgICAgICAgICA/IFBvbHlub21pYWxCZXppZXIuc2hhcGVTZWdtZW50KGUsIChjICsgMSkgJSBpKQogICAgICAgICAgICAgICAgICAgIDogbnVsbCksCiAgICAgICAgICAgICAgICB6aWdaYWdDb3JuZXIoYSwgZSwgYyArIDEsIHQsIHIsIG4sIG8pOwogICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFppZ1phZ01vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzU2hhcGVzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgIHMgPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgYyA9IHRoaXMuYW1wbGl0dWRlLnYsCiAgICAgICAgICAgICAgdSA9IE1hdGgubWF4KDAsIE1hdGgucm91bmQodGhpcy5mcmVxdWVuY3kudikpLAogICAgICAgICAgICAgIGwgPSB0aGlzLnBvaW50c1R5cGUudjsKICAgICAgICAgICAgaWYgKGMgIT09IDApCiAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IHM7IHIgKz0gMSkgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKG8gPSAoYSA9IHRoaXMuc2hhcGVzW3JdKS5sb2NhbFNoYXBlQ29sbGVjdGlvbiksCiAgICAgICAgICAgICAgICAgIGEuc2hhcGUuX21kZiB8fCB0aGlzLl9tZGYgfHwgZSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBvLnJlbGVhc2VTaGFwZXMoKSwKICAgICAgICAgICAgICAgICAgICAgIGEuc2hhcGUuX21kZiA9ICEwLAogICAgICAgICAgICAgICAgICAgICAgdCA9IGEuc2hhcGUucGF0aHMuc2hhcGVzLAogICAgICAgICAgICAgICAgICAgICAgaSA9IGEuc2hhcGUucGF0aHMuX2xlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgIG4gPSAwOwogICAgICAgICAgICAgICAgICAgIG4gPCBpOwogICAgICAgICAgICAgICAgICAgIG4gKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgby5hZGRTaGFwZSh0aGlzLnByb2Nlc3NQYXRoKHRbbl0sIGMsIHUsIGwpKTsKICAgICAgICAgICAgICAgIGEuc2hhcGUucGF0aHMgPSBhLmxvY2FsU2hhcGVDb2xsZWN0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwgKHRoaXMuX21kZiA9ICExKTsKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtTaGFwZU1vZGlmaWVyXSwgT2Zmc2V0UGF0aE1vZGlmaWVyKSwKICAgICAgICAgIChPZmZzZXRQYXRoTW9kaWZpZXIucHJvdG90eXBlLmluaXRNb2RpZmllclByb3BlcnRpZXMgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQKICAgICAgICAgICkgewogICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMucHJvY2Vzc0tleXMpLAogICAgICAgICAgICAgICh0aGlzLmFtb3VudCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQuYSwgMCwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAgICh0aGlzLm1pdGVyTGltaXQgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0Lm1sLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMubGluZUpvaW4gPSB0LmxqKSwKICAgICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9IHRoaXMuYW1vdW50LmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGggIT09IDApOwogICAgICAgICAgfSksCiAgICAgICAgICAoT2Zmc2V0UGF0aE1vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzUGF0aCA9IGZ1bmN0aW9uIChlLCB0LCByLCBuKSB7CiAgICAgICAgICAgIHZhciBpID0gc2hhcGVQb29sLm5ld0VsZW1lbnQoKTsKICAgICAgICAgICAgaS5jID0gZS5jOwogICAgICAgICAgICB2YXIgYSwKICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgIHMsCiAgICAgICAgICAgICAgYyA9IGUubGVuZ3RoKCk7CiAgICAgICAgICAgIGUuYyB8fCAoYyAtPSAxKTsKICAgICAgICAgICAgdmFyIHUgPSBbXTsKICAgICAgICAgICAgZm9yIChhID0gMDsgYSA8IGM7IGEgKz0gMSkKICAgICAgICAgICAgICAocyA9IFBvbHlub21pYWxCZXppZXIuc2hhcGVTZWdtZW50KGUsIGEpKSwKICAgICAgICAgICAgICAgIHUucHVzaChvZmZzZXRTZWdtZW50U3BsaXQocywgdCkpOwogICAgICAgICAgICBpZiAoIWUuYykKICAgICAgICAgICAgICBmb3IgKGEgPSBjIC0gMTsgYSA+PSAwOyBhIC09IDEpCiAgICAgICAgICAgICAgICAocyA9IFBvbHlub21pYWxCZXppZXIuc2hhcGVTZWdtZW50SW52ZXJ0ZWQoZSwgYSkpLAogICAgICAgICAgICAgICAgICB1LnB1c2gob2Zmc2V0U2VnbWVudFNwbGl0KHMsIHQpKTsKICAgICAgICAgICAgdSA9IHBydW5lSW50ZXJzZWN0aW9ucyh1KTsKICAgICAgICAgICAgdmFyIGwgPSBudWxsLAogICAgICAgICAgICAgIHAgPSBudWxsOwogICAgICAgICAgICBmb3IgKGEgPSAwOyBhIDwgdS5sZW5ndGg7IGEgKz0gMSkgewogICAgICAgICAgICAgIHZhciBkID0gdVthXTsKICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgcCAmJiAobCA9IGpvaW5MaW5lcyhpLCBwLCBkWzBdLCByLCBuKSksCiAgICAgICAgICAgICAgICAgIHAgPSBkW2QubGVuZ3RoIC0gMV0sCiAgICAgICAgICAgICAgICAgIG8gPSAwOwogICAgICAgICAgICAgICAgbyA8IGQubGVuZ3RoOwogICAgICAgICAgICAgICAgbyArPSAxCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKHMgPSBkW29dKSwKICAgICAgICAgICAgICAgICAgbCAmJiBwb2ludEVxdWFsKHMucG9pbnRzWzBdLCBsKQogICAgICAgICAgICAgICAgICAgID8gaS5zZXRYWUF0KAogICAgICAgICAgICAgICAgICAgICAgICBzLnBvaW50c1sxXVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbMV1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICJvIiwKICAgICAgICAgICAgICAgICAgICAgICAgaS5sZW5ndGgoKSAtIDEKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICA6IGkuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgICAgIHMucG9pbnRzWzBdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBzLnBvaW50c1swXVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbMV1bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIHMucG9pbnRzWzFdWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBzLnBvaW50c1swXVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbMF1bMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGkubGVuZ3RoKCkKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIGkuc2V0VHJpcGxlQXQoCiAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbM11bMF0sCiAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbM11bMV0sCiAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbM11bMF0sCiAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbM11bMV0sCiAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbMl1bMF0sCiAgICAgICAgICAgICAgICAgICAgcy5wb2ludHNbMl1bMV0sCiAgICAgICAgICAgICAgICAgICAgaS5sZW5ndGgoKQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAobCA9IHMucG9pbnRzWzNdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdS5sZW5ndGggJiYgam9pbkxpbmVzKGksIHAsIHVbMF1bMF0sIHIsIG4pLCBpOwogICAgICAgICAgfSksCiAgICAgICAgICAoT2Zmc2V0UGF0aE1vZGlmaWVyLnByb3RvdHlwZS5wcm9jZXNzU2hhcGVzID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgIHMgPSB0aGlzLnNoYXBlcy5sZW5ndGgsCiAgICAgICAgICAgICAgYyA9IHRoaXMuYW1vdW50LnYsCiAgICAgICAgICAgICAgdSA9IHRoaXMubWl0ZXJMaW1pdC52LAogICAgICAgICAgICAgIGwgPSB0aGlzLmxpbmVKb2luOwogICAgICAgICAgICBpZiAoYyAhPT0gMCkKICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgczsgciArPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICgobyA9IChhID0gdGhpcy5zaGFwZXNbcl0pLmxvY2FsU2hhcGVDb2xsZWN0aW9uKSwKICAgICAgICAgICAgICAgICAgYS5zaGFwZS5fbWRmIHx8IHRoaXMuX21kZiB8fCBlKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIG8ucmVsZWFzZVNoYXBlcygpLAogICAgICAgICAgICAgICAgICAgICAgYS5zaGFwZS5fbWRmID0gITAsCiAgICAgICAgICAgICAgICAgICAgICB0ID0gYS5zaGFwZS5wYXRocy5zaGFwZXMsCiAgICAgICAgICAgICAgICAgICAgICBpID0gYS5zaGFwZS5wYXRocy5fbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgbiA8IGk7CiAgICAgICAgICAgICAgICAgICAgbiArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBvLmFkZFNoYXBlKHRoaXMucHJvY2Vzc1BhdGgodFtuXSwgYywgbCwgdSkpOwogICAgICAgICAgICAgICAgYS5zaGFwZS5wYXRocyA9IGEubG9jYWxTaGFwZUNvbGxlY3Rpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fCAodGhpcy5fbWRmID0gITEpOwogICAgICAgICAgfSk7CiAgICAgICAgdmFyIEZvbnRNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBlID0geyB3OiAwLCBzaXplOiAwLCBzaGFwZXM6IFtdLCBkYXRhOiB7IHNoYXBlczogW10gfSB9LAogICAgICAgICAgICB0ID0gW107CiAgICAgICAgICB0ID0gdC5jb25jYXQoWwogICAgICAgICAgICAyMzA0LCAyMzA1LCAyMzA2LCAyMzA3LCAyMzYyLCAyMzYzLCAyMzY0LCAyMzY0LCAyMzY2LCAyMzY3LCAyMzY4LAogICAgICAgICAgICAyMzY5LCAyMzcwLCAyMzcxLCAyMzcyLCAyMzczLCAyMzc0LCAyMzc1LCAyMzc2LCAyMzc3LCAyMzc4LCAyMzc5LAogICAgICAgICAgICAyMzgwLCAyMzgxLCAyMzgyLCAyMzgzLCAyMzg3LCAyMzg4LCAyMzg5LCAyMzkwLCAyMzkxLCAyNDAyLCAyNDAzLAogICAgICAgICAgXSk7CiAgICAgICAgICB2YXIgciA9IDEyNzk4OCwKICAgICAgICAgICAgbiA9IFsiZDgzY2RmZmIiLCAiZDgzY2RmZmMiLCAiZDgzY2RmZmQiLCAiZDgzY2RmZmUiLCAiZDgzY2RmZmYiXTsKICAgICAgICAgIGZ1bmN0aW9uIGkobCwgcCkgewogICAgICAgICAgICB2YXIgZCA9IGNyZWF0ZVRhZygic3BhbiIpOwogICAgICAgICAgICBkLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCAhMCksIChkLnN0eWxlLmZvbnRGYW1pbHkgPSBwKTsKICAgICAgICAgICAgdmFyIGggPSBjcmVhdGVUYWcoInNwYW4iKTsKICAgICAgICAgICAgKGguaW5uZXJUZXh0ID0gImdpSXRUMVdReUAhLS8jIiksCiAgICAgICAgICAgICAgKGQuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiKSwKICAgICAgICAgICAgICAoZC5zdHlsZS5sZWZ0ID0gIi0xMDAwMHB4IiksCiAgICAgICAgICAgICAgKGQuc3R5bGUudG9wID0gIi0xMDAwMHB4IiksCiAgICAgICAgICAgICAgKGQuc3R5bGUuZm9udFNpemUgPSAiMzAwcHgiKSwKICAgICAgICAgICAgICAoZC5zdHlsZS5mb250VmFyaWFudCA9ICJub3JtYWwiKSwKICAgICAgICAgICAgICAoZC5zdHlsZS5mb250U3R5bGUgPSAibm9ybWFsIiksCiAgICAgICAgICAgICAgKGQuc3R5bGUuZm9udFdlaWdodCA9ICJub3JtYWwiKSwKICAgICAgICAgICAgICAoZC5zdHlsZS5sZXR0ZXJTcGFjaW5nID0gIjAiKSwKICAgICAgICAgICAgICBkLmFwcGVuZENoaWxkKGgpLAogICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCk7CiAgICAgICAgICAgIHZhciBtID0gaC5vZmZzZXRXaWR0aDsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAoaC5zdHlsZS5mb250RmFtaWx5ID0KICAgICAgICAgICAgICAgIChmdW5jdGlvbiAodikgewogICAgICAgICAgICAgICAgICB2YXIgeSwKICAgICAgICAgICAgICAgICAgICBnID0gdi5zcGxpdCgiLCIpLAogICAgICAgICAgICAgICAgICAgIE0gPSBnLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICBBID0gW107CiAgICAgICAgICAgICAgICAgIGZvciAoeSA9IDA7IHkgPCBNOyB5ICs9IDEpCiAgICAgICAgICAgICAgICAgICAgZ1t5XSAhPT0gInNhbnMtc2VyaWYiICYmCiAgICAgICAgICAgICAgICAgICAgICBnW3ldICE9PSAibW9ub3NwYWNlIiAmJgogICAgICAgICAgICAgICAgICAgICAgQS5wdXNoKGdbeV0pOwogICAgICAgICAgICAgICAgICByZXR1cm4gQS5qb2luKCIsIik7CiAgICAgICAgICAgICAgICB9KShsKSArCiAgICAgICAgICAgICAgICAiLCAiICsKICAgICAgICAgICAgICAgIHApLAogICAgICAgICAgICAgIHsgbm9kZTogaCwgdzogbSwgcGFyZW50OiBkIH0KICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIGEobCwgcCkgewogICAgICAgICAgICB2YXIgZCwKICAgICAgICAgICAgICBoID0gZG9jdW1lbnQuYm9keSAmJiBwID8gInN2ZyIgOiAiY2FudmFzIiwKICAgICAgICAgICAgICBtID0gZ2V0Rm9udFByb3BlcnRpZXMobCk7CiAgICAgICAgICAgIGlmIChoID09PSAic3ZnIikgewogICAgICAgICAgICAgIHZhciB2ID0gY3JlYXRlTlMoInRleHQiKTsKICAgICAgICAgICAgICAodi5zdHlsZS5mb250U2l6ZSA9ICIxMDBweCIpLAogICAgICAgICAgICAgICAgdi5zZXRBdHRyaWJ1dGUoImZvbnQtZmFtaWx5IiwgbC5mRmFtaWx5KSwKICAgICAgICAgICAgICAgIHYuc2V0QXR0cmlidXRlKCJmb250LXN0eWxlIiwgbS5zdHlsZSksCiAgICAgICAgICAgICAgICB2LnNldEF0dHJpYnV0ZSgiZm9udC13ZWlnaHQiLCBtLndlaWdodCksCiAgICAgICAgICAgICAgICAodi50ZXh0Q29udGVudCA9ICIxIiksCiAgICAgICAgICAgICAgICBsLmZDbGFzcwogICAgICAgICAgICAgICAgICA/ICgodi5zdHlsZS5mb250RmFtaWx5ID0gImluaGVyaXQiKSwKICAgICAgICAgICAgICAgICAgICB2LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCBsLmZDbGFzcykpCiAgICAgICAgICAgICAgICAgIDogKHYuc3R5bGUuZm9udEZhbWlseSA9IGwuZkZhbWlseSksCiAgICAgICAgICAgICAgICBwLmFwcGVuZENoaWxkKHYpLAogICAgICAgICAgICAgICAgKGQgPSB2KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB2YXIgeSA9IG5ldyBPZmZzY3JlZW5DYW52YXMoNTAwLCA1MDApLmdldENvbnRleHQoIjJkIik7CiAgICAgICAgICAgICAgKHkuZm9udCA9IG0uc3R5bGUgKyAiICIgKyBtLndlaWdodCArICIgMTAwcHggIiArIGwuZkZhbWlseSksCiAgICAgICAgICAgICAgICAoZCA9IHkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgbWVhc3VyZVRleHQ6IGZ1bmN0aW9uIChnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaCA9PT0gInN2ZyIKICAgICAgICAgICAgICAgICAgPyAoKGQudGV4dENvbnRlbnQgPSBnKSwgZC5nZXRDb21wdXRlZFRleHRMZW5ndGgoKSkKICAgICAgICAgICAgICAgICAgOiBkLm1lYXN1cmVUZXh0KGcpLndpZHRoOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBvKGwpIHsKICAgICAgICAgICAgdmFyIHAgPSAwLAogICAgICAgICAgICAgIGQgPSBsLmNoYXJDb2RlQXQoMCk7CiAgICAgICAgICAgIGlmIChkID49IDU1Mjk2ICYmIGQgPD0gNTYzMTkpIHsKICAgICAgICAgICAgICB2YXIgaCA9IGwuY2hhckNvZGVBdCgxKTsKICAgICAgICAgICAgICBoID49IDU2MzIwICYmCiAgICAgICAgICAgICAgICBoIDw9IDU3MzQzICYmCiAgICAgICAgICAgICAgICAocCA9IDEwMjQgKiAoZCAtIDU1Mjk2KSArIGggLSA1NjMyMCArIDY1NTM2KTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcDsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIHMobCkgewogICAgICAgICAgICB2YXIgcCA9IG8obCk7CiAgICAgICAgICAgIHJldHVybiBwID49IDEyNzQ2MiAmJiBwIDw9IDEyNzQ4NzsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBjID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAodGhpcy5mb250cyA9IFtdKSwKICAgICAgICAgICAgICAodGhpcy5jaGFycyA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLnR5cGVraXRMb2FkZWQgPSAwKSwKICAgICAgICAgICAgICAodGhpcy5pc0xvYWRlZCA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5fd2FybmVkID0gITEpLAogICAgICAgICAgICAgICh0aGlzLmluaXRUaW1lID0gRGF0ZS5ub3coKSksCiAgICAgICAgICAgICAgKHRoaXMuc2V0SXNMb2FkZWRCaW5kZWQgPSB0aGlzLnNldElzTG9hZGVkLmJpbmQodGhpcykpLAogICAgICAgICAgICAgICh0aGlzLmNoZWNrTG9hZGVkRm9udHNCaW5kZWQgPSB0aGlzLmNoZWNrTG9hZGVkRm9udHMuYmluZCh0aGlzKSk7CiAgICAgICAgICB9OwogICAgICAgICAgKGMuaXNNb2RpZmllciA9IGZ1bmN0aW9uIChsLCBwKSB7CiAgICAgICAgICAgIHZhciBkID0gbC50b1N0cmluZygxNikgKyBwLnRvU3RyaW5nKDE2KTsKICAgICAgICAgICAgcmV0dXJuIG4uaW5kZXhPZihkKSAhPT0gLTE7CiAgICAgICAgICB9KSwKICAgICAgICAgICAgKGMuaXNaZXJvV2lkdGhKb2luZXIgPSBmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgIHJldHVybiBsID09PSA4MjA1OwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKGMuaXNGbGFnRW1vamkgPSBmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgIHJldHVybiBzKGwuc3Vic3RyKDAsIDIpKSAmJiBzKGwuc3Vic3RyKDIsIDIpKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIChjLmlzUmVnaW9uYWxDb2RlID0gcyksCiAgICAgICAgICAgIChjLmlzQ29tYmluZWRDaGFyYWN0ZXIgPSBmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgIHJldHVybiB0LmluZGV4T2YobCkgIT09IC0xOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKGMuaXNSZWdpb25hbEZsYWcgPSBmdW5jdGlvbiAobCwgcCkgewogICAgICAgICAgICAgIHZhciBkID0gbyhsLnN1YnN0cihwLCAyKSk7CiAgICAgICAgICAgICAgaWYgKGQgIT09IHIpIHJldHVybiAhMTsKICAgICAgICAgICAgICB2YXIgaCA9IDA7CiAgICAgICAgICAgICAgZm9yIChwICs9IDI7IGggPCA1OyApIHsKICAgICAgICAgICAgICAgIGlmICgoZCA9IG8obC5zdWJzdHIocCwgMikpKSA8IDkxNzYwMSB8fCBkID4gOTE3NjI2KSByZXR1cm4gITE7CiAgICAgICAgICAgICAgICAoaCArPSAxKSwgKHAgKz0gMik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBvKGwuc3Vic3RyKHAsIDIpKSA9PT0gOTE3NjMxOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKGMuaXNWYXJpYXRpb25TZWxlY3RvciA9IGZ1bmN0aW9uIChsKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGwgPT09IDY1MDM5OwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKGMuQkxBQ0tfRkxBR19DT0RFX1BPSU5UID0gcik7CiAgICAgICAgICB2YXIgdSA9IHsKICAgICAgICAgICAgYWRkQ2hhcnM6IGZ1bmN0aW9uIChsKSB7CiAgICAgICAgICAgICAgaWYgKGwpIHsKICAgICAgICAgICAgICAgIHZhciBwOwogICAgICAgICAgICAgICAgdGhpcy5jaGFycyB8fCAodGhpcy5jaGFycyA9IFtdKTsKICAgICAgICAgICAgICAgIHZhciBkLAogICAgICAgICAgICAgICAgICBoLAogICAgICAgICAgICAgICAgICBtID0gbC5sZW5ndGgsCiAgICAgICAgICAgICAgICAgIHYgPSB0aGlzLmNoYXJzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAocCA9IDA7IHAgPCBtOyBwICs9IDEpIHsKICAgICAgICAgICAgICAgICAgZm9yIChkID0gMCwgaCA9ICExOyBkIDwgdjsgKQogICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbZF0uc3R5bGUgPT09IGxbcF0uc3R5bGUgJiYKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbZF0uZkZhbWlseSA9PT0gbFtwXS5mRmFtaWx5ICYmCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXJzW2RdLmNoID09PSBsW3BdLmNoICYmCiAgICAgICAgICAgICAgICAgICAgICAoaCA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAgIChkICs9IDEpOwogICAgICAgICAgICAgICAgICBoIHx8ICh0aGlzLmNoYXJzLnB1c2gobFtwXSksICh2ICs9IDEpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGFkZEZvbnRzOiBmdW5jdGlvbiAobCwgcCkgewogICAgICAgICAgICAgIGlmIChsKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGFycykKICAgICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLmlzTG9hZGVkID0gITApLCB2b2lkICh0aGlzLmZvbnRzID0gbC5saXN0KTsKICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQuYm9keSkKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAodGhpcy5pc0xvYWRlZCA9ICEwKSwKICAgICAgICAgICAgICAgICAgICBsLmxpc3QuZm9yRWFjaChmdW5jdGlvbiAoUikgewogICAgICAgICAgICAgICAgICAgICAgKFIuaGVscGVyID0gYShSKSksIChSLmNhY2hlID0ge30pOwogICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgIHZvaWQgKHRoaXMuZm9udHMgPSBsLmxpc3QpCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB2YXIgZCwKICAgICAgICAgICAgICAgICAgaCA9IGwubGlzdCwKICAgICAgICAgICAgICAgICAgbSA9IGgubGVuZ3RoLAogICAgICAgICAgICAgICAgICB2ID0gbTsKICAgICAgICAgICAgICAgIGZvciAoZCA9IDA7IGQgPCBtOyBkICs9IDEpIHsKICAgICAgICAgICAgICAgICAgdmFyIHksCiAgICAgICAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICAgICAgICBNID0gITA7CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAoKGhbZF0ubG9hZGVkID0gITEpLAogICAgICAgICAgICAgICAgICAgIChoW2RdLm1vbm9DYXNlID0gaShoW2RdLmZGYW1pbHksICJtb25vc3BhY2UiKSksCiAgICAgICAgICAgICAgICAgICAgKGhbZF0uc2Fuc0Nhc2UgPSBpKGhbZF0uZkZhbWlseSwgInNhbnMtc2VyaWYiKSksCiAgICAgICAgICAgICAgICAgICAgaFtkXS5mUGF0aCkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGhbZF0uZk9yaWdpbiA9PT0gInAiIHx8IGhbZF0ub3JpZ2luID09PSAzKSB7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICgoeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0eWxlW2YtZm9yaWdpbj0icCJdW2YtZmFtaWx5PSInICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhbZF0uZkZhbWlseSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIl0sIHN0eWxlW2Ytb3JpZ2luPSIzIl1bZi1mYW1pbHk9IicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaFtkXS5mRmFtaWx5ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICciXScKICAgICAgICAgICAgICAgICAgICAgICAgKSkubGVuZ3RoID4gMCAmJiAoTSA9ICExKSwKICAgICAgICAgICAgICAgICAgICAgICAgTSkKICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgQSA9IGNyZWF0ZVRhZygic3R5bGUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgQS5zZXRBdHRyaWJ1dGUoImYtZm9yaWdpbiIsIGhbZF0uZk9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgQS5zZXRBdHRyaWJ1dGUoImYtb3JpZ2luIiwgaFtkXS5vcmlnaW4pLAogICAgICAgICAgICAgICAgICAgICAgICAgIEEuc2V0QXR0cmlidXRlKCJmLWZhbWlseSIsIGhbZF0uZkZhbWlseSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEEudHlwZSA9ICJ0ZXh0L2NzcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChBLmlubmVyVGV4dCA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaFtkXS5mRmFtaWx5ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IGZvbnQtc3R5bGU6IG5vcm1hbDsgc3JjOiB1cmwoJyIgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaFtkXS5mUGF0aCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJyk7fSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHAuYXBwZW5kQ2hpbGQoQSk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChoW2RdLmZPcmlnaW4gPT09ICJnIiB8fCBoW2RdLm9yaWdpbiA9PT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbmtbZi1mb3JpZ2luPSJnIl0sIGxpbmtbZi1vcmlnaW49IjEiXScKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBnID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgZyA8IHkubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICAgICBnICs9IDEKICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeVtnXS5ocmVmLmluZGV4T2YoaFtkXS5mUGF0aCkgIT09IC0xICYmIChNID0gITEpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKE0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF8gPSBjcmVhdGVUYWcoImxpbmsiKTsKICAgICAgICAgICAgICAgICAgICAgICAgXy5zZXRBdHRyaWJ1dGUoImYtZm9yaWdpbiIsIGhbZF0uZk9yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgXy5zZXRBdHRyaWJ1dGUoImYtb3JpZ2luIiwgaFtkXS5vcmlnaW4pLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfLnR5cGUgPSAidGV4dC9jc3MiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoXy5yZWwgPSAic3R5bGVzaGVldCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfLmhyZWYgPSBoW2RdLmZQYXRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKF8pOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaFtkXS5mT3JpZ2luID09PSAidCIgfHwgaFtkXS5vcmlnaW4gPT09IDIpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JpcHRbZi1mb3JpZ2luPSJ0Il0sIHNjcmlwdFtmLW9yaWdpbj0iMiJdJwogICAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgIGcgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBnIDwgeS5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgIGcgKz0gMQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBoW2RdLmZQYXRoID09PSB5W2ddLnNyYyAmJiAoTSA9ICExKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChNKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBDID0gY3JlYXRlVGFnKCJsaW5rIik7CiAgICAgICAgICAgICAgICAgICAgICAgIEMuc2V0QXR0cmlidXRlKCJmLWZvcmlnaW4iLCBoW2RdLmZPcmlnaW4pLAogICAgICAgICAgICAgICAgICAgICAgICAgIEMuc2V0QXR0cmlidXRlKCJmLW9yaWdpbiIsIGhbZF0ub3JpZ2luKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBDLnNldEF0dHJpYnV0ZSgicmVsIiwgInN0eWxlc2hlZXQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBDLnNldEF0dHJpYnV0ZSgiaHJlZiIsIGhbZF0uZlBhdGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHAuYXBwZW5kQ2hpbGQoQyk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9IGVsc2UgKGhbZF0ubG9hZGVkID0gITApLCAodiAtPSAxKTsKICAgICAgICAgICAgICAgICAgKGhbZF0uaGVscGVyID0gYShoW2RdLCBwKSksCiAgICAgICAgICAgICAgICAgICAgKGhbZF0uY2FjaGUgPSB7fSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb250cy5wdXNoKGhbZF0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdiA9PT0gMAogICAgICAgICAgICAgICAgICA/ICh0aGlzLmlzTG9hZGVkID0gITApCiAgICAgICAgICAgICAgICAgIDogc2V0VGltZW91dCh0aGlzLmNoZWNrTG9hZGVkRm9udHMuYmluZCh0aGlzKSwgMTAwKTsKICAgICAgICAgICAgICB9IGVsc2UgdGhpcy5pc0xvYWRlZCA9ICEwOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZXRDaGFyRGF0YTogZnVuY3Rpb24gKGwsIHAsIGQpIHsKICAgICAgICAgICAgICBmb3IgKHZhciBoID0gMCwgbSA9IHRoaXMuY2hhcnMubGVuZ3RoOyBoIDwgbTsgKSB7CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgIHRoaXMuY2hhcnNbaF0uY2ggPT09IGwgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5jaGFyc1toXS5zdHlsZSA9PT0gcCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmNoYXJzW2hdLmZGYW1pbHkgPT09IGQKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hhcnNbaF07CiAgICAgICAgICAgICAgICBoICs9IDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAoKHR5cGVvZiBsID09ICJzdHJpbmciICYmIGwuY2hhckNvZGVBdCgwKSAhPT0gMTMpIHx8ICFsKSAmJgogICAgICAgICAgICAgICAgICBjb25zb2xlICYmCiAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybiAmJgogICAgICAgICAgICAgICAgICAhdGhpcy5fd2FybmVkICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5fd2FybmVkID0gITApLAogICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICAgICAgICAgIk1pc3NpbmcgY2hhcmFjdGVyIGZyb20gZXhwb3J0ZWQgY2hhcmFjdGVycyBsaXN0OiAiLAogICAgICAgICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgICAgICAgcCwKICAgICAgICAgICAgICAgICAgICBkCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgZQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGdldEZvbnRCeU5hbWU6IGZ1bmN0aW9uIChsKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgcCA9IDAsIGQgPSB0aGlzLmZvbnRzLmxlbmd0aDsgcCA8IGQ7ICkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9udHNbcF0uZk5hbWUgPT09IGwpIHJldHVybiB0aGlzLmZvbnRzW3BdOwogICAgICAgICAgICAgICAgcCArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb250c1swXTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbWVhc3VyZVRleHQ6IGZ1bmN0aW9uIChsLCBwLCBkKSB7CiAgICAgICAgICAgICAgdmFyIGggPSB0aGlzLmdldEZvbnRCeU5hbWUocCksCiAgICAgICAgICAgICAgICBtID0gbDsKICAgICAgICAgICAgICBpZiAoIWguY2FjaGVbbV0pIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gaC5oZWxwZXI7CiAgICAgICAgICAgICAgICBpZiAobCA9PT0gIiAiKSB7CiAgICAgICAgICAgICAgICAgIHZhciB5ID0gdi5tZWFzdXJlVGV4dCgifCIgKyBsICsgInwiKSwKICAgICAgICAgICAgICAgICAgICBnID0gdi5tZWFzdXJlVGV4dCgifHwiKTsKICAgICAgICAgICAgICAgICAgaC5jYWNoZVttXSA9ICh5IC0gZykgLyAxMDA7CiAgICAgICAgICAgICAgICB9IGVsc2UgaC5jYWNoZVttXSA9IHYubWVhc3VyZVRleHQobCkgLyAxMDA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBoLmNhY2hlW21dICogZDsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgY2hlY2tMb2FkZWRGb250czogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBsLAogICAgICAgICAgICAgICAgcCwKICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICBoID0gdGhpcy5mb250cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBtID0gaDsKICAgICAgICAgICAgICBmb3IgKGwgPSAwOyBsIDwgaDsgbCArPSAxKQogICAgICAgICAgICAgICAgdGhpcy5mb250c1tsXS5sb2FkZWQKICAgICAgICAgICAgICAgICAgPyAobSAtPSAxKQogICAgICAgICAgICAgICAgICA6IHRoaXMuZm9udHNbbF0uZk9yaWdpbiA9PT0gIm4iIHx8IHRoaXMuZm9udHNbbF0ub3JpZ2luID09PSAwCiAgICAgICAgICAgICAgICAgID8gKHRoaXMuZm9udHNbbF0ubG9hZGVkID0gITApCiAgICAgICAgICAgICAgICAgIDogKChwID0gdGhpcy5mb250c1tsXS5tb25vQ2FzZS5ub2RlKSwKICAgICAgICAgICAgICAgICAgICAoZCA9IHRoaXMuZm9udHNbbF0ubW9ub0Nhc2UudyksCiAgICAgICAgICAgICAgICAgICAgcC5vZmZzZXRXaWR0aCAhPT0gZAogICAgICAgICAgICAgICAgICAgICAgPyAoKG0gLT0gMSksICh0aGlzLmZvbnRzW2xdLmxvYWRlZCA9ICEwKSkKICAgICAgICAgICAgICAgICAgICAgIDogKChwID0gdGhpcy5mb250c1tsXS5zYW5zQ2FzZS5ub2RlKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGQgPSB0aGlzLmZvbnRzW2xdLnNhbnNDYXNlLncpLAogICAgICAgICAgICAgICAgICAgICAgICBwLm9mZnNldFdpZHRoICE9PSBkICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChtIC09IDEpLCAodGhpcy5mb250c1tsXS5sb2FkZWQgPSAhMCkpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmZvbnRzW2xdLmxvYWRlZCAmJgogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZm9udHNbbF0uc2Fuc0Nhc2UucGFyZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9udHNbbF0uc2Fuc0Nhc2UucGFyZW50CiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb250c1tsXS5tb25vQ2FzZS5wYXJlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCgKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb250c1tsXS5tb25vQ2FzZS5wYXJlbnQKICAgICAgICAgICAgICAgICAgICAgICkpKTsKICAgICAgICAgICAgICBtICE9PSAwICYmIERhdGUubm93KCkgLSB0aGlzLmluaXRUaW1lIDwgNWUzCiAgICAgICAgICAgICAgICA/IHNldFRpbWVvdXQodGhpcy5jaGVja0xvYWRlZEZvbnRzQmluZGVkLCAyMCkKICAgICAgICAgICAgICAgIDogc2V0VGltZW91dCh0aGlzLnNldElzTG9hZGVkQmluZGVkLCAxMCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNldElzTG9hZGVkOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlZCA9ICEwOwogICAgICAgICAgICB9LAogICAgICAgICAgfTsKICAgICAgICAgIHJldHVybiAoYy5wcm90b3R5cGUgPSB1KSwgYzsKICAgICAgICB9KSgpOwogICAgICAgIGZ1bmN0aW9uIFNsb3RNYW5hZ2VyKGUpIHsKICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRGF0YSA9IGU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNsb3RGYWN0b3J5KGUpIHsKICAgICAgICAgIHJldHVybiBuZXcgU2xvdE1hbmFnZXIoZSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIFJlbmRlcmFibGVFbGVtZW50KCkge30KICAgICAgICAoU2xvdE1hbmFnZXIucHJvdG90eXBlLmdldFByb3AgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uRGF0YS5zbG90cyAmJiB0aGlzLmFuaW1hdGlvbkRhdGEuc2xvdHNbZS5zaWRdCiAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihlLCB0aGlzLmFuaW1hdGlvbkRhdGEuc2xvdHNbZS5zaWRdLnApCiAgICAgICAgICAgIDogZTsKICAgICAgICB9KSwKICAgICAgICAgIChSZW5kZXJhYmxlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgIGluaXRSZW5kZXJhYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgKHRoaXMuaXNJblJhbmdlID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuaGlkZGVuID0gITEpLAogICAgICAgICAgICAgICAgKHRoaXMuaXNUcmFuc3BhcmVudCA9ICExKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzID0gW10pOwogICAgICAgICAgICB9LAogICAgICAgICAgICBhZGRSZW5kZXJhYmxlQ29tcG9uZW50OiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHRoaXMucmVuZGVyYWJsZUNvbXBvbmVudHMuaW5kZXhPZihlKSA9PT0gLTEgJiYKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyYWJsZUNvbXBvbmVudHMucHVzaChlKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVtb3ZlUmVuZGVyYWJsZUNvbXBvbmVudDogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzLmluZGV4T2YoZSkgIT09IC0xICYmCiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmFibGVDb21wb25lbnRzLnNwbGljZSgKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJhYmxlQ29tcG9uZW50cy5pbmRleE9mKGUpLAogICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9LAogICAgICAgICAgICBwcmVwYXJlUmVuZGVyYWJsZUZyYW1lOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHRoaXMuY2hlY2tMYXllckxpbWl0cyhlKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgY2hlY2tUcmFuc3BhcmVuY3k6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLm8udiA8PSAwCiAgICAgICAgICAgICAgICA/ICF0aGlzLmlzVHJhbnNwYXJlbnQgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlckNvbmZpZy5oaWRlT25UcmFuc3BhcmVudCAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuaXNUcmFuc3BhcmVudCA9ICEwKSwgdGhpcy5oaWRlKCkpCiAgICAgICAgICAgICAgICA6IHRoaXMuaXNUcmFuc3BhcmVudCAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuaXNUcmFuc3BhcmVudCA9ICExKSwgdGhpcy5zaG93KCkpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBjaGVja0xheWVyTGltaXRzOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHRoaXMuZGF0YS5pcCAtIHRoaXMuZGF0YS5zdCA8PSBlICYmCiAgICAgICAgICAgICAgdGhpcy5kYXRhLm9wIC0gdGhpcy5kYXRhLnN0ID4gZQogICAgICAgICAgICAgICAgPyB0aGlzLmlzSW5SYW5nZSAhPT0gITAgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLmdsb2JhbERhdGEuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICEwKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuaXNJblJhbmdlID0gITApLAogICAgICAgICAgICAgICAgICB0aGlzLnNob3coKSkKICAgICAgICAgICAgICAgIDogdGhpcy5pc0luUmFuZ2UgIT09ICExICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5nbG9iYWxEYXRhLl9tZGYgPSAhMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmlzSW5SYW5nZSA9ICExKSwKICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCkpOwogICAgICAgICAgICB9LAogICAgICAgICAgICByZW5kZXJSZW5kZXJhYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgICB0ID0gdGhpcy5yZW5kZXJhYmxlQ29tcG9uZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IHQ7IGUgKz0gMSkKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyYWJsZUNvbXBvbmVudHNbZV0ucmVuZGVyRnJhbWUodGhpcy5faXNGaXJzdEZyYW1lKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc291cmNlUmVjdEF0VGltZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB7IHRvcDogMCwgbGVmdDogMCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAgfTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZ2V0TGF5ZXJTaXplOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS50eSA9PT0gNQogICAgICAgICAgICAgICAgPyB7IHc6IHRoaXMuZGF0YS50ZXh0RGF0YS53aWR0aCwgaDogdGhpcy5kYXRhLnRleHREYXRhLmhlaWdodCB9CiAgICAgICAgICAgICAgICA6IHsgdzogdGhpcy5kYXRhLndpZHRoLCBoOiB0aGlzLmRhdGEuaGVpZ2h0IH07CiAgICAgICAgICAgIH0sCiAgICAgICAgICB9KTsKICAgICAgICB2YXIgZ2V0QmxlbmRNb2RlID0KICAgICAgICAgICAgKChibGVuZE1vZGVFbnVtcyA9IHsKICAgICAgICAgICAgICAwOiAic291cmNlLW92ZXIiLAogICAgICAgICAgICAgIDE6ICJtdWx0aXBseSIsCiAgICAgICAgICAgICAgMjogInNjcmVlbiIsCiAgICAgICAgICAgICAgMzogIm92ZXJsYXkiLAogICAgICAgICAgICAgIDQ6ICJkYXJrZW4iLAogICAgICAgICAgICAgIDU6ICJsaWdodGVuIiwKICAgICAgICAgICAgICA2OiAiY29sb3ItZG9kZ2UiLAogICAgICAgICAgICAgIDc6ICJjb2xvci1idXJuIiwKICAgICAgICAgICAgICA4OiAiaGFyZC1saWdodCIsCiAgICAgICAgICAgICAgOTogInNvZnQtbGlnaHQiLAogICAgICAgICAgICAgIDEwOiAiZGlmZmVyZW5jZSIsCiAgICAgICAgICAgICAgMTE6ICJleGNsdXNpb24iLAogICAgICAgICAgICAgIDEyOiAiaHVlIiwKICAgICAgICAgICAgICAxMzogInNhdHVyYXRpb24iLAogICAgICAgICAgICAgIDE0OiAiY29sb3IiLAogICAgICAgICAgICAgIDE1OiAibHVtaW5vc2l0eSIsCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHJldHVybiBibGVuZE1vZGVFbnVtc1tlXSB8fCAiIjsKICAgICAgICAgICAgfSksCiAgICAgICAgICBibGVuZE1vZGVFbnVtczsKICAgICAgICBmdW5jdGlvbiBTbGlkZXJFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AodCwgZS52LCAwLCAwLCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQW5nbGVFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AodCwgZS52LCAwLCAwLCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQ29sb3JFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AodCwgZS52LCAxLCAwLCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gUG9pbnRFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AodCwgZS52LCAxLCAwLCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gTGF5ZXJJbmRleEVmZmVjdChlLCB0LCByKSB7CiAgICAgICAgICB0aGlzLnAgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCh0LCBlLnYsIDAsIDAsIHIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBNYXNrSW5kZXhFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AodCwgZS52LCAwLCAwLCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQ2hlY2tib3hFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5wID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AodCwgZS52LCAwLCAwLCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gTm9WYWx1ZUVmZmVjdCgpIHsKICAgICAgICAgIHRoaXMucCA9IHt9OwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBFZmZlY3RzTWFuYWdlcihlLCB0KSB7CiAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgbiA9IGUuZWYgfHwgW107CiAgICAgICAgICB0aGlzLmVmZmVjdEVsZW1lbnRzID0gW107CiAgICAgICAgICB2YXIgaSwKICAgICAgICAgICAgYSA9IG4ubGVuZ3RoOwogICAgICAgICAgZm9yIChyID0gMDsgciA8IGE7IHIgKz0gMSkKICAgICAgICAgICAgKGkgPSBuZXcgR3JvdXBFZmZlY3QobltyXSwgdCkpLCB0aGlzLmVmZmVjdEVsZW1lbnRzLnB1c2goaSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIEdyb3VwRWZmZWN0KGUsIHQpIHsKICAgICAgICAgIHRoaXMuaW5pdChlLCB0KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQmFzZUVsZW1lbnQoKSB7fQogICAgICAgIGZ1bmN0aW9uIEZyYW1lRWxlbWVudCgpIHt9CiAgICAgICAgZnVuY3Rpb24gRm9vdGFnZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5pbml0RnJhbWUoKSwKICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyYWJsZSgpLAogICAgICAgICAgICAodGhpcy5hc3NldERhdGEgPSB0LmdldEFzc2V0RGF0YShlLnJlZklkKSksCiAgICAgICAgICAgICh0aGlzLmZvb3RhZ2VEYXRhID0gdC5pbWFnZUxvYWRlci5nZXRBc3NldCh0aGlzLmFzc2V0RGF0YSkpLAogICAgICAgICAgICB0aGlzLmluaXRCYXNlRGF0YShlLCB0LCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQXVkaW9FbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgIHRoaXMuaW5pdFJlbmRlcmFibGUoKSwKICAgICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5nZXRBc3NldERhdGEoZS5yZWZJZCkpLAogICAgICAgICAgICB0aGlzLmluaXRCYXNlRGF0YShlLCB0LCByKSwKICAgICAgICAgICAgKHRoaXMuX2lzUGxheWluZyA9ICExKSwKICAgICAgICAgICAgKHRoaXMuX2NhblBsYXkgPSAhMSk7CiAgICAgICAgICB2YXIgbiA9IHRoaXMuZ2xvYmFsRGF0YS5nZXRBc3NldHNQYXRoKHRoaXMuYXNzZXREYXRhKTsKICAgICAgICAgICh0aGlzLmF1ZGlvID0gdGhpcy5nbG9iYWxEYXRhLmF1ZGlvQ29udHJvbGxlci5jcmVhdGVBdWRpbyhuKSksCiAgICAgICAgICAgICh0aGlzLl9jdXJyZW50VGltZSA9IDApLAogICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuYXVkaW9Db250cm9sbGVyLmFkZEF1ZGlvKHRoaXMpLAogICAgICAgICAgICAodGhpcy5fdm9sdW1lTXVsdGlwbGllciA9IDEpLAogICAgICAgICAgICAodGhpcy5fdm9sdW1lID0gMSksCiAgICAgICAgICAgICh0aGlzLl9wcmV2aW91c1ZvbHVtZSA9IG51bGwpLAogICAgICAgICAgICAodGhpcy50bSA9IGUudG0KICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUudG0sIDAsIHQuZnJhbWVSYXRlLCB0aGlzKQogICAgICAgICAgICAgIDogeyBfcGxhY2Vob2xkZXI6ICEwIH0pLAogICAgICAgICAgICAodGhpcy5sdiA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgZS5hdSAmJiBlLmF1Lmx2ID8gZS5hdS5sdiA6IHsgazogWzEwMF0gfSwKICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICApKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQmFzZVJlbmRlcmVyKCkge30KICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIEdyb3VwRWZmZWN0KSwKICAgICAgICAgIChHcm91cEVmZmVjdC5wcm90b3R5cGUuZ2V0VmFsdWUgPQogICAgICAgICAgICBHcm91cEVmZmVjdC5wcm90b3R5cGUuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgIChHcm91cEVmZmVjdC5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHZhciByOwogICAgICAgICAgICAodGhpcy5kYXRhID0gZSksCiAgICAgICAgICAgICAgKHRoaXMuZWZmZWN0RWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKHQpOwogICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICBpID0gdGhpcy5kYXRhLmVmLmxlbmd0aCwKICAgICAgICAgICAgICBhID0gdGhpcy5kYXRhLmVmOwogICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgaTsgciArPSAxKSB7CiAgICAgICAgICAgICAgc3dpdGNoICgoKG4gPSBudWxsKSwgYVtyXS50eSkpIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgbiA9IG5ldyBTbGlkZXJFZmZlY3QoYVtyXSwgdCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICBuID0gbmV3IEFuZ2xlRWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgbiA9IG5ldyBDb2xvckVmZmVjdChhW3JdLCB0LCB0aGlzKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgIG4gPSBuZXcgUG9pbnRFZmZlY3QoYVtyXSwgdCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgICAgICBuID0gbmV3IENoZWNrYm94RWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMTA6CiAgICAgICAgICAgICAgICAgIG4gPSBuZXcgTGF5ZXJJbmRleEVmZmVjdChhW3JdLCB0LCB0aGlzKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICAgICAgICBuID0gbmV3IE1hc2tJbmRleEVmZmVjdChhW3JdLCB0LCB0aGlzKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIG4gPSBuZXcgRWZmZWN0c01hbmFnZXIoYVtyXSwgdCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgbiA9IG5ldyBOb1ZhbHVlRWZmZWN0KGFbcl0sIHQsIHRoaXMpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBuICYmIHRoaXMuZWZmZWN0RWxlbWVudHMucHVzaChuKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoQmFzZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICBjaGVja01hc2tzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuaGFzTWFzaykgcmV0dXJuICExOwogICAgICAgICAgICAgIGZvciAodmFyIGUgPSAwLCB0ID0gdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllcy5sZW5ndGg7IGUgPCB0OyApIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllc1tlXS5tb2RlICE9PSAibiIgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllc1tlXS5jbCAhPT0gITEKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgcmV0dXJuICEwOwogICAgICAgICAgICAgICAgZSArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGluaXRFeHByZXNzaW9uczogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0gZ2V0RXhwcmVzc2lvbkludGVyZmFjZXMoKTsKICAgICAgICAgICAgICBpZiAoZSkgewogICAgICAgICAgICAgICAgdmFyIHQgPSBlKCJsYXllciIpLAogICAgICAgICAgICAgICAgICByID0gZSgiZWZmZWN0cyIpLAogICAgICAgICAgICAgICAgICBuID0gZSgic2hhcGUiKSwKICAgICAgICAgICAgICAgICAgaSA9IGUoInRleHQiKSwKICAgICAgICAgICAgICAgICAgYSA9IGUoImNvbXAiKTsKICAgICAgICAgICAgICAgICh0aGlzLmxheWVySW50ZXJmYWNlID0gdCh0aGlzKSksCiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5oYXNNYXNrICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXNrTWFuYWdlciAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2UucmVnaXN0ZXJNYXNrSW50ZXJmYWNlKHRoaXMubWFza01hbmFnZXIpOwogICAgICAgICAgICAgICAgdmFyIG8gPSByLmNyZWF0ZUVmZmVjdHNJbnRlcmZhY2UodGhpcywgdGhpcy5sYXllckludGVyZmFjZSk7CiAgICAgICAgICAgICAgICB0aGlzLmxheWVySW50ZXJmYWNlLnJlZ2lzdGVyRWZmZWN0c0ludGVyZmFjZShvKSwKICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLnR5ID09PSAwIHx8IHRoaXMuZGF0YS54dAogICAgICAgICAgICAgICAgICAgID8gKHRoaXMuY29tcEludGVyZmFjZSA9IGEodGhpcykpCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmRhdGEudHkgPT09IDQKICAgICAgICAgICAgICAgICAgICA/ICgodGhpcy5sYXllckludGVyZmFjZS5zaGFwZUludGVyZmFjZSA9IG4oCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVzRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtc0RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2UKICAgICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJJbnRlcmZhY2UuY29udGVudCA9CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2Uuc2hhcGVJbnRlcmZhY2UpKQogICAgICAgICAgICAgICAgICAgIDogdGhpcy5kYXRhLnR5ID09PSA1ICYmCiAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMubGF5ZXJJbnRlcmZhY2UudGV4dEludGVyZmFjZSA9IGkodGhpcykpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJJbnRlcmZhY2UudGV4dCA9CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2UudGV4dEludGVyZmFjZSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc2V0QmxlbmRNb2RlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSBnZXRCbGVuZE1vZGUodGhpcy5kYXRhLmJtKTsKICAgICAgICAgICAgICAodGhpcy5iYXNlRWxlbWVudCB8fCB0aGlzLmxheWVyRWxlbWVudCkuc3R5bGVbIm1peC1ibGVuZC1tb2RlIl0gPQogICAgICAgICAgICAgICAgZTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaW5pdEJhc2VEYXRhOiBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEgPSB0KSwKICAgICAgICAgICAgICAgICh0aGlzLmNvbXAgPSByKSwKICAgICAgICAgICAgICAgICh0aGlzLmRhdGEgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmxheWVySWQgPSBjcmVhdGVFbGVtZW50SUQoKSksCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuc3IgfHwgKHRoaXMuZGF0YS5zciA9IDEpLAogICAgICAgICAgICAgICAgKHRoaXMuZWZmZWN0c01hbmFnZXIgPSBuZXcgRWZmZWN0c01hbmFnZXIoCiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YSwKICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcwogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGdldFR5cGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzb3VyY2VSZWN0QXRUaW1lOiBmdW5jdGlvbiAoKSB7fSwKICAgICAgICAgIH0pLAogICAgICAgICAgKEZyYW1lRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgIGluaXRGcmFtZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMSksCiAgICAgICAgICAgICAgICAodGhpcy5keW5hbWljUHJvcGVydGllcyA9IFtdKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHByZXBhcmVQcm9wZXJ0aWVzOiBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiA9IHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoOwogICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAodCB8fAogICAgICAgICAgICAgICAgICAodGhpcy5faXNQYXJlbnQgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzW3JdLnByb3BUeXBlID09PSAidHJhbnNmb3JtIikpICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzW3JdLmdldFZhbHVlKCksCiAgICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXNbcl0uX21kZiAmJgogICAgICAgICAgICAgICAgICAgICgodGhpcy5nbG9iYWxEYXRhLl9tZGYgPSAhMCksICh0aGlzLl9tZGYgPSAhMCkpKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgYWRkRHluYW1pY1Byb3BlcnR5OiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMuaW5kZXhPZihlKSA9PT0gLTEgJiYKICAgICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXMucHVzaChlKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pLAogICAgICAgICAgKEZvb3RhZ2VFbGVtZW50LnByb3RvdHlwZS5wcmVwYXJlRnJhbWUgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgIFtSZW5kZXJhYmxlRWxlbWVudCwgQmFzZUVsZW1lbnQsIEZyYW1lRWxlbWVudF0sCiAgICAgICAgICAgIEZvb3RhZ2VFbGVtZW50CiAgICAgICAgICApLAogICAgICAgICAgKEZvb3RhZ2VFbGVtZW50LnByb3RvdHlwZS5nZXRCYXNlRWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICB9KSwKICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICAoRm9vdGFnZUVsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICAoRm9vdGFnZUVsZW1lbnQucHJvdG90eXBlLmluaXRFeHByZXNzaW9ucyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUgPSBnZXRFeHByZXNzaW9uSW50ZXJmYWNlcygpOwogICAgICAgICAgICBpZiAoZSkgewogICAgICAgICAgICAgIHZhciB0ID0gZSgiZm9vdGFnZSIpOwogICAgICAgICAgICAgIHRoaXMubGF5ZXJJbnRlcmZhY2UgPSB0KHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChGb290YWdlRWxlbWVudC5wcm90b3R5cGUuZ2V0Rm9vdGFnZURhdGEgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvb3RhZ2VEYXRhOwogICAgICAgICAgfSksCiAgICAgICAgICAoQXVkaW9FbGVtZW50LnByb3RvdHlwZS5wcmVwYXJlRnJhbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKHRoaXMucHJlcGFyZVJlbmRlcmFibGVGcmFtZShlLCAhMCksCiAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhlLCAhMCksCiAgICAgICAgICAgICAgdGhpcy50bS5fcGxhY2Vob2xkZXIpCiAgICAgICAgICAgICkKICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGltZSA9IGUgLyB0aGlzLmRhdGEuc3I7CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIHZhciB0ID0gdGhpcy50bS52OwogICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRUaW1lID0gdDsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLl92b2x1bWUgPSB0aGlzLmx2LnZbMF07CiAgICAgICAgICAgIHZhciByID0gdGhpcy5fdm9sdW1lICogdGhpcy5fdm9sdW1lTXVsdGlwbGllcjsKICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNWb2x1bWUgIT09IHIgJiYKICAgICAgICAgICAgICAoKHRoaXMuX3ByZXZpb3VzVm9sdW1lID0gciksIHRoaXMuYXVkaW8udm9sdW1lKHIpKTsKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbUmVuZGVyYWJsZUVsZW1lbnQsIEJhc2VFbGVtZW50LCBGcmFtZUVsZW1lbnRdLAogICAgICAgICAgICBBdWRpb0VsZW1lbnQKICAgICAgICAgICksCiAgICAgICAgICAoQXVkaW9FbGVtZW50LnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5pc0luUmFuZ2UgJiYKICAgICAgICAgICAgICB0aGlzLl9jYW5QbGF5ICYmCiAgICAgICAgICAgICAgKHRoaXMuX2lzUGxheWluZwogICAgICAgICAgICAgICAgPyAoIXRoaXMuYXVkaW8ucGxheWluZygpIHx8CiAgICAgICAgICAgICAgICAgICAgTWF0aC5hYnMoCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGltZSAvIHRoaXMuZ2xvYmFsRGF0YS5mcmFtZVJhdGUgLQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvLnNlZWsoKQogICAgICAgICAgICAgICAgICAgICkgPiAwLjEpICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW8uc2Vlayh0aGlzLl9jdXJyZW50VGltZSAvIHRoaXMuZ2xvYmFsRGF0YS5mcmFtZVJhdGUpCiAgICAgICAgICAgICAgICA6ICh0aGlzLmF1ZGlvLnBsYXkoKSwKICAgICAgICAgICAgICAgICAgdGhpcy5hdWRpby5zZWVrKAogICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRUaW1lIC8gdGhpcy5nbG9iYWxEYXRhLmZyYW1lUmF0ZQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAodGhpcy5faXNQbGF5aW5nID0gITApKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnNob3cgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICAoQXVkaW9FbGVtZW50LnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmF1ZGlvLnBhdXNlKCksICh0aGlzLl9pc1BsYXlpbmcgPSAhMSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnBhdXNlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmF1ZGlvLnBhdXNlKCksICh0aGlzLl9pc1BsYXlpbmcgPSAhMSksICh0aGlzLl9jYW5QbGF5ID0gITEpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQXVkaW9FbGVtZW50LnByb3RvdHlwZS5yZXN1bWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuX2NhblBsYXkgPSAhMDsKICAgICAgICAgIH0pLAogICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuc2V0UmF0ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuYXVkaW8ucmF0ZShlKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUudm9sdW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgKHRoaXMuX3ZvbHVtZU11bHRpcGxpZXIgPSBlKSwKICAgICAgICAgICAgICAodGhpcy5fcHJldmlvdXNWb2x1bWUgPSBlICogdGhpcy5fdm9sdW1lKSwKICAgICAgICAgICAgICB0aGlzLmF1ZGlvLnZvbHVtZSh0aGlzLl9wcmV2aW91c1ZvbHVtZSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLmdldEJhc2VFbGVtZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0pLAogICAgICAgICAgKEF1ZGlvRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHt9KSwKICAgICAgICAgIChBdWRpb0VsZW1lbnQucHJvdG90eXBlLnNvdXJjZVJlY3RBdFRpbWUgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICAoQXVkaW9FbGVtZW50LnByb3RvdHlwZS5pbml0RXhwcmVzc2lvbnMgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5jaGVja0xheWVycyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgbiA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgZm9yICh0aGlzLmNvbXBsZXRlTGF5ZXJzID0gITAsIHQgPSBuIC0gMTsgdCA+PSAwOyB0IC09IDEpCiAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1t0XSB8fAogICAgICAgICAgICAgICAgKChyID0gdGhpcy5sYXllcnNbdF0pLmlwIC0gci5zdCA8PSBlIC0gdGhpcy5sYXllcnNbdF0uc3QgJiYKICAgICAgICAgICAgICAgICAgci5vcCAtIHIuc3QgPiBlIC0gdGhpcy5sYXllcnNbdF0uc3QgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZEl0ZW0odCkpLAogICAgICAgICAgICAgICAgKHRoaXMuY29tcGxldGVMYXllcnMgPQogICAgICAgICAgICAgICAgICAhIXRoaXMuZWxlbWVudHNbdF0gJiYgdGhpcy5jb21wbGV0ZUxheWVycyk7CiAgICAgICAgICAgIHRoaXMuY2hlY2tQZW5kaW5nRWxlbWVudHMoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlSXRlbSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHN3aXRjaCAoZS50eSkgewogICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUltYWdlKGUpOwogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbXAoZSk7CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU29saWQoZSk7CiAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVOdWxsKGUpOwogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNoYXBlKGUpOwogICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRleHQoZSk7CiAgICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQXVkaW8oZSk7CiAgICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNhbWVyYShlKTsKICAgICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRm9vdGFnZShlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVDYW1lcmEgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiWW91J3JlIHVzaW5nIGEgM2QgY2FtZXJhLiBUcnkgdGhlIGh0bWwgcmVuZGVyZXIuIik7CiAgICAgICAgICB9KSwKICAgICAgICAgIChCYXNlUmVuZGVyZXIucHJvdG90eXBlLmNyZWF0ZUF1ZGlvID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBBdWRpb0VsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlRm9vdGFnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgRm9vdGFnZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuYnVpbGRBbGxJdGVtcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgdCA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IHQ7IGUgKz0gMSkgdGhpcy5idWlsZEl0ZW0oZSk7CiAgICAgICAgICAgIHRoaXMuY2hlY2tQZW5kaW5nRWxlbWVudHMoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuaW5jbHVkZUxheWVycyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0OwogICAgICAgICAgICB0aGlzLmNvbXBsZXRlTGF5ZXJzID0gITE7CiAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgIG4gPSBlLmxlbmd0aCwKICAgICAgICAgICAgICBpID0gdGhpcy5sYXllcnMubGVuZ3RoOwogICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgbjsgdCArPSAxKQogICAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBpOyApIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmxheWVyc1tyXS5pZCA9PT0gZVt0XS5pZCkgewogICAgICAgICAgICAgICAgICB0aGlzLmxheWVyc1tyXSA9IGVbdF07CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuc2V0UHJvamVjdEludGVyZmFjZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5wcm9qZWN0SW50ZXJmYWNlID0gZTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuaW5pdEl0ZW1zID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucHJvZ3Jlc3NpdmVMb2FkIHx8IHRoaXMuYnVpbGRBbGxJdGVtcygpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5idWlsZEVsZW1lbnRQYXJlbnRpbmcgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIHZhciBuID0gdGhpcy5lbGVtZW50cywgaSA9IHRoaXMubGF5ZXJzLCBhID0gMCwgbyA9IGkubGVuZ3RoOwogICAgICAgICAgICAgIGEgPCBvOwoKICAgICAgICAgICAgKQogICAgICAgICAgICAgIGlbYV0uaW5kID09IHQgJiYKICAgICAgICAgICAgICAgIChuW2FdICYmIG5bYV0gIT09ICEwCiAgICAgICAgICAgICAgICAgID8gKHIucHVzaChuW2FdKSwKICAgICAgICAgICAgICAgICAgICBuW2FdLnNldEFzUGFyZW50KCksCiAgICAgICAgICAgICAgICAgICAgaVthXS5wYXJlbnQgIT09IHZvaWQgMAogICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmJ1aWxkRWxlbWVudFBhcmVudGluZyhlLCBpW2FdLnBhcmVudCwgcikKICAgICAgICAgICAgICAgICAgICAgIDogZS5zZXRIaWVyYXJjaHkocikpCiAgICAgICAgICAgICAgICAgIDogKHRoaXMuYnVpbGRJdGVtKGEpLCB0aGlzLmFkZFBlbmRpbmdFbGVtZW50KGUpKSksCiAgICAgICAgICAgICAgICAoYSArPSAxKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuYWRkUGVuZGluZ0VsZW1lbnQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLnBlbmRpbmdFbGVtZW50cy5wdXNoKGUpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5zZWFyY2hFeHRyYUNvbXBvc2l0aW9ucyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgIHIgPSBlLmxlbmd0aDsKICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICBpZiAoZVt0XS54dCkgewogICAgICAgICAgICAgICAgdmFyIG4gPSB0aGlzLmNyZWF0ZUNvbXAoZVt0XSk7CiAgICAgICAgICAgICAgICBuLmluaXRFeHByZXNzaW9ucygpLAogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucHJvamVjdEludGVyZmFjZS5yZWdpc3RlckNvbXBvc2l0aW9uKG4pOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuZ2V0RWxlbWVudEJ5SWQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICByID0gdGhpcy5lbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudHNbdF0uZGF0YS5pbmQgPT09IGUpIHJldHVybiB0aGlzLmVsZW1lbnRzW3RdOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0pLAogICAgICAgICAgKEJhc2VSZW5kZXJlci5wcm90b3R5cGUuZ2V0RWxlbWVudEJ5UGF0aCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgIHIgPSBlLnNoaWZ0KCk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgciA9PSAibnVtYmVyIikgdCA9IHRoaXMuZWxlbWVudHNbcl07CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIHZhciBuLAogICAgICAgICAgICAgICAgaSA9IHRoaXMuZWxlbWVudHMubGVuZ3RoOwogICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpCiAgICAgICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50c1tuXS5kYXRhLm5tID09PSByKSB7CiAgICAgICAgICAgICAgICAgIHQgPSB0aGlzLmVsZW1lbnRzW25dOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZS5sZW5ndGggPT09IDAgPyB0IDogdC5nZXRFbGVtZW50QnlQYXRoKGUpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQmFzZVJlbmRlcmVyLnByb3RvdHlwZS5zZXR1cEdsb2JhbERhdGEgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyID0gbmV3IEZvbnRNYW5hZ2VyKCkpLAogICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuc2xvdE1hbmFnZXIgPSBzbG90RmFjdG9yeShlKSksCiAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmFkZENoYXJzKGUuY2hhcnMpLAogICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5hZGRGb250cyhlLmZvbnRzLCB0KSwKICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmdldEFzc2V0RGF0YSA9CiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uZ2V0QXNzZXREYXRhLmJpbmQodGhpcy5hbmltYXRpb25JdGVtKSksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5nZXRBc3NldHNQYXRoID0KICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5nZXRBc3NldHNQYXRoLmJpbmQodGhpcy5hbmltYXRpb25JdGVtKSksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5pbWFnZUxvYWRlciA9IHRoaXMuYW5pbWF0aW9uSXRlbS5pbWFnZVByZWxvYWRlciksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5hdWRpb0NvbnRyb2xsZXIgPQogICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLmF1ZGlvQ29udHJvbGxlciksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5mcmFtZUlkID0gMCksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5mcmFtZVJhdGUgPSBlLmZyKSwKICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLm5tID0gZS5ubSksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5jb21wU2l6ZSA9IHsgdzogZS53LCBoOiBlLmggfSk7CiAgICAgICAgICB9KTsKICAgICAgICB2YXIgZWZmZWN0VHlwZXMgPSB7IFRSQU5TRk9STV9FRkZFQ1Q6ICJ0cmFuc2Zvcm1FRmZlY3QiIH07CiAgICAgICAgZnVuY3Rpb24gVHJhbnNmb3JtRWxlbWVudCgpIHt9CiAgICAgICAgZnVuY3Rpb24gTWFza0VsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMuZGF0YSA9IGUpLAogICAgICAgICAgICAodGhpcy5lbGVtZW50ID0gdCksCiAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEgPSByKSwKICAgICAgICAgICAgKHRoaXMuc3RvcmVkRGF0YSA9IFtdKSwKICAgICAgICAgICAgKHRoaXMubWFza3NQcm9wZXJ0aWVzID0gdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllcyB8fCBbXSksCiAgICAgICAgICAgICh0aGlzLm1hc2tFbGVtZW50ID0gbnVsbCk7CiAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgaSwKICAgICAgICAgICAgYSA9IHRoaXMuZ2xvYmFsRGF0YS5kZWZzLAogICAgICAgICAgICBvID0gdGhpcy5tYXNrc1Byb3BlcnRpZXMgPyB0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGggOiAwOwogICAgICAgICAgKHRoaXMudmlld0RhdGEgPSBjcmVhdGVTaXplZEFycmF5KG8pKSwgKHRoaXMuc29saWRQYXRoID0gIiIpOwogICAgICAgICAgdmFyIHMsCiAgICAgICAgICAgIGMsCiAgICAgICAgICAgIHUsCiAgICAgICAgICAgIGwsCiAgICAgICAgICAgIHAsCiAgICAgICAgICAgIGQsCiAgICAgICAgICAgIGggPSB0aGlzLm1hc2tzUHJvcGVydGllcywKICAgICAgICAgICAgbSA9IDAsCiAgICAgICAgICAgIHYgPSBbXSwKICAgICAgICAgICAgeSA9IGNyZWF0ZUVsZW1lbnRJRCgpLAogICAgICAgICAgICBnID0gImNsaXBQYXRoIiwKICAgICAgICAgICAgTSA9ICJjbGlwLXBhdGgiOwogICAgICAgICAgZm9yIChuID0gMDsgbiA8IG87IG4gKz0gMSkKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICgoKGhbbl0ubW9kZSAhPT0gImEiICYmIGhbbl0ubW9kZSAhPT0gIm4iKSB8fAogICAgICAgICAgICAgICAgaFtuXS5pbnYgfHwKICAgICAgICAgICAgICAgIGhbbl0uby5rICE9PSAxMDAgfHwKICAgICAgICAgICAgICAgIGhbbl0uby54KSAmJgogICAgICAgICAgICAgICAgKChnID0gIm1hc2siKSwgKE0gPSAibWFzayIpKSwKICAgICAgICAgICAgICAoaFtuXS5tb2RlICE9PSAicyIgJiYgaFtuXS5tb2RlICE9PSAiaSIpIHx8IG0gIT09IDAKICAgICAgICAgICAgICAgID8gKHUgPSBudWxsKQogICAgICAgICAgICAgICAgOiAoKHUgPSBjcmVhdGVOUygicmVjdCIpKS5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiI2ZmZmZmZiIpLAogICAgICAgICAgICAgICAgICB1LnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmVsZW1lbnQuY29tcC5kYXRhLncgfHwgMCksCiAgICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCB0aGlzLmVsZW1lbnQuY29tcC5kYXRhLmggfHwgMCksCiAgICAgICAgICAgICAgICAgIHYucHVzaCh1KSksCiAgICAgICAgICAgICAgKGkgPSBjcmVhdGVOUygicGF0aCIpKSwKICAgICAgICAgICAgICBoW25dLm1vZGUgPT09ICJuIikKICAgICAgICAgICAgKQogICAgICAgICAgICAgICh0aGlzLnZpZXdEYXRhW25dID0gewogICAgICAgICAgICAgICAgb3A6IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsCiAgICAgICAgICAgICAgICAgIGhbbl0ubywKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50CiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgcHJvcDogU2hhcGVQcm9wZXJ0eUZhY3RvcnkuZ2V0U2hhcGVQcm9wKHRoaXMuZWxlbWVudCwgaFtuXSwgMyksCiAgICAgICAgICAgICAgICBlbGVtOiBpLAogICAgICAgICAgICAgICAgbGFzdFBhdGg6ICIiLAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgYS5hcHBlbmRDaGlsZChpKTsKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgdmFyIEE7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKChtICs9IDEpLAogICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICJmaWxsIiwKICAgICAgICAgICAgICAgICAgaFtuXS5tb2RlID09PSAicyIgPyAiIzAwMDAwMCIgOiAiI2ZmZmZmZiIKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBpLnNldEF0dHJpYnV0ZSgiY2xpcC1ydWxlIiwgIm5vbnplcm8iKSwKICAgICAgICAgICAgICAgIGhbbl0ueC5rICE9PSAwCiAgICAgICAgICAgICAgICAgID8gKChnID0gIm1hc2siKSwKICAgICAgICAgICAgICAgICAgICAoTSA9ICJtYXNrIiksCiAgICAgICAgICAgICAgICAgICAgKGQgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgIGhbbl0ueCwKICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50CiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgKEEgPSBjcmVhdGVFbGVtZW50SUQoKSksCiAgICAgICAgICAgICAgICAgICAgKGwgPSBjcmVhdGVOUygiZmlsdGVyIikpLnNldEF0dHJpYnV0ZSgiaWQiLCBBKSwKICAgICAgICAgICAgICAgICAgICAocCA9IGNyZWF0ZU5TKCJmZU1vcnBob2xvZ3kiKSkuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgIm9wZXJhdG9yIiwKICAgICAgICAgICAgICAgICAgICAgICJlcm9kZSIKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIHAuc2V0QXR0cmlidXRlKCJpbiIsICJTb3VyY2VHcmFwaGljIiksCiAgICAgICAgICAgICAgICAgICAgcC5zZXRBdHRyaWJ1dGUoInJhZGl1cyIsICIwIiksCiAgICAgICAgICAgICAgICAgICAgbC5hcHBlbmRDaGlsZChwKSwKICAgICAgICAgICAgICAgICAgICBhLmFwcGVuZENoaWxkKGwpLAogICAgICAgICAgICAgICAgICAgIGkuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgInN0cm9rZSIsCiAgICAgICAgICAgICAgICAgICAgICBoW25dLm1vZGUgPT09ICJzIiA/ICIjMDAwMDAwIiA6ICIjZmZmZmZmIgogICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgIDogKChwID0gbnVsbCksIChkID0gbnVsbCkpLAogICAgICAgICAgICAgICAgKHRoaXMuc3RvcmVkRGF0YVtuXSA9IHsKICAgICAgICAgICAgICAgICAgZWxlbTogaSwKICAgICAgICAgICAgICAgICAgeDogZCwKICAgICAgICAgICAgICAgICAgZXhwYW46IHAsCiAgICAgICAgICAgICAgICAgIGxhc3RQYXRoOiAiIiwKICAgICAgICAgICAgICAgICAgbGFzdE9wZXJhdG9yOiAiIiwKICAgICAgICAgICAgICAgICAgZmlsdGVySWQ6IEEsCiAgICAgICAgICAgICAgICAgIGxhc3RSYWRpdXM6IDAsCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIGhbbl0ubW9kZSA9PT0gImkiKQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgYyA9IHYubGVuZ3RoOwogICAgICAgICAgICAgICAgdmFyIF8gPSBjcmVhdGVOUygiZyIpOwogICAgICAgICAgICAgICAgZm9yIChzID0gMDsgcyA8IGM7IHMgKz0gMSkgXy5hcHBlbmRDaGlsZCh2W3NdKTsKICAgICAgICAgICAgICAgIHZhciBDID0gY3JlYXRlTlMoIm1hc2siKTsKICAgICAgICAgICAgICAgIEMuc2V0QXR0cmlidXRlKCJtYXNrLXR5cGUiLCAiYWxwaGEiKSwKICAgICAgICAgICAgICAgICAgQy5zZXRBdHRyaWJ1dGUoImlkIiwgeSArICJfIiArIG0pLAogICAgICAgICAgICAgICAgICBDLmFwcGVuZENoaWxkKGkpLAogICAgICAgICAgICAgICAgICBhLmFwcGVuZENoaWxkKEMpLAogICAgICAgICAgICAgICAgICBfLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAibWFzayIsCiAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyB5ICsgIl8iICsgbSArICIpIgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAodi5sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAgICAgdi5wdXNoKF8pOwogICAgICAgICAgICAgIH0gZWxzZSB2LnB1c2goaSk7CiAgICAgICAgICAgICAgaFtuXS5pbnYgJiYKICAgICAgICAgICAgICAgICF0aGlzLnNvbGlkUGF0aCAmJgogICAgICAgICAgICAgICAgKHRoaXMuc29saWRQYXRoID0gdGhpcy5jcmVhdGVMYXllclNvbGlkUGF0aCgpKSwKICAgICAgICAgICAgICAgICh0aGlzLnZpZXdEYXRhW25dID0gewogICAgICAgICAgICAgICAgICBlbGVtOiBpLAogICAgICAgICAgICAgICAgICBsYXN0UGF0aDogIiIsCiAgICAgICAgICAgICAgICAgIG9wOiBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgaFtuXS5vLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgcHJvcDogU2hhcGVQcm9wZXJ0eUZhY3RvcnkuZ2V0U2hhcGVQcm9wKAogICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCwKICAgICAgICAgICAgICAgICAgICBoW25dLAogICAgICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgaW52UmVjdDogdSwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVtuXS5wcm9wLmsgfHwKICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3UGF0aCgKICAgICAgICAgICAgICAgICAgICBoW25dLAogICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGFbbl0ucHJvcC52LAogICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGFbbl0KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgZm9yICgKICAgICAgICAgICAgdGhpcy5tYXNrRWxlbWVudCA9IGNyZWF0ZU5TKGcpLCBvID0gdi5sZW5ndGgsIG4gPSAwOwogICAgICAgICAgICBuIDwgbzsKICAgICAgICAgICAgbiArPSAxCiAgICAgICAgICApCiAgICAgICAgICAgIHRoaXMubWFza0VsZW1lbnQuYXBwZW5kQ2hpbGQodltuXSk7CiAgICAgICAgICBtID4gMCAmJgogICAgICAgICAgICAodGhpcy5tYXNrRWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgeSksCiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5tYXNrZWRFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICBNLAogICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgeSArICIpIgogICAgICAgICAgICApLAogICAgICAgICAgICBhLmFwcGVuZENoaWxkKHRoaXMubWFza0VsZW1lbnQpKSwKICAgICAgICAgICAgdGhpcy52aWV3RGF0YS5sZW5ndGggJiYgdGhpcy5lbGVtZW50LmFkZFJlbmRlcmFibGVDb21wb25lbnQodGhpcyk7CiAgICAgICAgfQogICAgICAgIChUcmFuc2Zvcm1FbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgIGluaXRUcmFuc2Zvcm06IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUgPSBuZXcgTWF0cml4KCk7CiAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtID0gewogICAgICAgICAgICAgIG1Qcm9wOiB0aGlzLmRhdGEua3MKICAgICAgICAgICAgICAgID8gVHJhbnNmb3JtUHJvcGVydHlGYWN0b3J5LmdldFRyYW5zZm9ybVByb3BlcnR5KAogICAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLmtzLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgOiB7IG86IDAgfSwKICAgICAgICAgICAgICBfbWF0TWRmOiAhMSwKICAgICAgICAgICAgICBfbG9jYWxNYXRNZGY6ICExLAogICAgICAgICAgICAgIF9vcE1kZjogITEsCiAgICAgICAgICAgICAgbWF0OiBlLAogICAgICAgICAgICAgIGxvY2FsTWF0OiBlLAogICAgICAgICAgICAgIGxvY2FsT3BhY2l0eTogMSwKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgdGhpcy5kYXRhLmFvICYmICh0aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLmF1dG9PcmllbnRlZCA9ICEwKSwKICAgICAgICAgICAgICB0aGlzLmRhdGEudHk7CiAgICAgICAgICB9LAogICAgICAgICAgcmVuZGVyVHJhbnNmb3JtOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAoKHRoaXMuZmluYWxUcmFuc2Zvcm0uX29wTWRmID0KICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0ubVByb3Auby5fbWRmIHx8IHRoaXMuX2lzRmlyc3RGcmFtZSksCiAgICAgICAgICAgICAgKHRoaXMuZmluYWxUcmFuc2Zvcm0uX21hdE1kZiA9CiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLl9tZGYgfHwgdGhpcy5faXNGaXJzdEZyYW1lKSwKICAgICAgICAgICAgICB0aGlzLmhpZXJhcmNoeSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgICB0ID0gdGhpcy5maW5hbFRyYW5zZm9ybS5tYXQsCiAgICAgICAgICAgICAgICByID0gMCwKICAgICAgICAgICAgICAgIG4gPSB0aGlzLmhpZXJhcmNoeS5sZW5ndGg7CiAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpbmFsVHJhbnNmb3JtLl9tYXRNZGYpCiAgICAgICAgICAgICAgICBmb3IgKDsgciA8IG47ICkgewogICAgICAgICAgICAgICAgICBpZiAodGhpcy5oaWVyYXJjaHlbcl0uZmluYWxUcmFuc2Zvcm0ubVByb3AuX21kZikgewogICAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0uX21hdE1kZiA9ICEwOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHIgKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmKQogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgZSA9IHRoaXMuZmluYWxUcmFuc2Zvcm0ubVByb3Audi5wcm9wcywKICAgICAgICAgICAgICAgICAgICB0LmNsb25lRnJvbVByb3BzKGUpLAogICAgICAgICAgICAgICAgICAgIHIgPSAwOwogICAgICAgICAgICAgICAgICByIDwgbjsKICAgICAgICAgICAgICAgICAgciArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHQubXVsdGlwbHkodGhpcy5oaWVyYXJjaHlbcl0uZmluYWxUcmFuc2Zvcm0ubVByb3Audik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmICYmCiAgICAgICAgICAgICAgKHRoaXMuZmluYWxUcmFuc2Zvcm0uX2xvY2FsTWF0TWRmID0gdGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmKSwKICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLl9vcE1kZiAmJgogICAgICAgICAgICAgICAgKHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5ID0KICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC5vLnYpOwogICAgICAgICAgfSwKICAgICAgICAgIHJlbmRlckxvY2FsVHJhbnNmb3JtOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmxvY2FsVHJhbnNmb3JtcykgewogICAgICAgICAgICAgIHZhciBlID0gMCwKICAgICAgICAgICAgICAgIHQgPSB0aGlzLmxvY2FsVHJhbnNmb3Jtcy5sZW5ndGg7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKCh0aGlzLmZpbmFsVHJhbnNmb3JtLl9sb2NhbE1hdE1kZiA9CiAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0uX21hdE1kZiksCiAgICAgICAgICAgICAgICAhdGhpcy5maW5hbFRyYW5zZm9ybS5fbG9jYWxNYXRNZGYgfHwKICAgICAgICAgICAgICAgICAgIXRoaXMuZmluYWxUcmFuc2Zvcm0uX29wTWRmKQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIGZvciAoOyBlIDwgdDsgKQogICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsVHJhbnNmb3Jtc1tlXS5fbWRmICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmluYWxUcmFuc2Zvcm0uX2xvY2FsTWF0TWRmID0gITApLAogICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxUcmFuc2Zvcm1zW2VdLl9vcE1kZiAmJgogICAgICAgICAgICAgICAgICAgICAgIXRoaXMuZmluYWxUcmFuc2Zvcm0uX29wTWRmICYmCiAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5ID0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC5vLnYpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmluYWxUcmFuc2Zvcm0uX29wTWRmID0gITApKSwKICAgICAgICAgICAgICAgICAgICAoZSArPSAxKTsKICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fbG9jYWxNYXRNZGYpIHsKICAgICAgICAgICAgICAgIHZhciByID0gdGhpcy5maW5hbFRyYW5zZm9ybS5sb2NhbE1hdDsKICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxUcmFuc2Zvcm1zWzBdLm1hdHJpeC5jbG9uZShyKSwgZSA9IDE7CiAgICAgICAgICAgICAgICAgIGUgPCB0OwogICAgICAgICAgICAgICAgICBlICs9IDEKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMubG9jYWxUcmFuc2Zvcm1zW2VdLm1hdHJpeDsKICAgICAgICAgICAgICAgICAgci5tdWx0aXBseShuKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHIubXVsdGlwbHkodGhpcy5maW5hbFRyYW5zZm9ybS5tYXQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodGhpcy5maW5hbFRyYW5zZm9ybS5fb3BNZGYpIHsKICAgICAgICAgICAgICAgIHZhciBpID0gdGhpcy5maW5hbFRyYW5zZm9ybS5sb2NhbE9wYWNpdHk7CiAgICAgICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgdDsgZSArPSAxKQogICAgICAgICAgICAgICAgICBpICo9IDAuMDEgKiB0aGlzLmxvY2FsVHJhbnNmb3Jtc1tlXS5vcGFjaXR5OwogICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5sb2NhbE9wYWNpdHkgPSBpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHNlYXJjaEVmZmVjdFRyYW5zZm9ybXM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyYWJsZUVmZmVjdHNNYW5hZ2VyKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLnJlbmRlcmFibGVFZmZlY3RzTWFuYWdlci5nZXRFZmZlY3RzKAogICAgICAgICAgICAgICAgZWZmZWN0VHlwZXMuVFJBTlNGT1JNX0VGRkVDVAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgaWYgKGUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAodGhpcy5sb2NhbFRyYW5zZm9ybXMgPSBbXSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsTWF0ID0gbmV3IE1hdHJpeCgpKTsKICAgICAgICAgICAgICAgIHZhciB0ID0gMCwKICAgICAgICAgICAgICAgICAgciA9IGUubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgdGhpcy5sb2NhbFRyYW5zZm9ybXMucHVzaChlW3RdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBnbG9iYWxUb0xvY2FsOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCA9IFtdOwogICAgICAgICAgICB0LnB1c2godGhpcy5maW5hbFRyYW5zZm9ybSk7CiAgICAgICAgICAgIGZvciAodmFyIHIsIG4gPSAhMCwgaSA9IHRoaXMuY29tcDsgbjsgKQogICAgICAgICAgICAgIGkuZmluYWxUcmFuc2Zvcm0KICAgICAgICAgICAgICAgID8gKGkuZGF0YS5oYXNNYXNrICYmIHQuc3BsaWNlKDAsIDAsIGkuZmluYWxUcmFuc2Zvcm0pLAogICAgICAgICAgICAgICAgICAoaSA9IGkuY29tcCkpCiAgICAgICAgICAgICAgICA6IChuID0gITEpOwogICAgICAgICAgICB2YXIgYSwKICAgICAgICAgICAgICBvID0gdC5sZW5ndGg7CiAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBvOyByICs9IDEpCiAgICAgICAgICAgICAgKGEgPSB0W3JdLm1hdC5hcHBseVRvUG9pbnRBcnJheSgwLCAwLCAwKSksCiAgICAgICAgICAgICAgICAoZSA9IFtlWzBdIC0gYVswXSwgZVsxXSAtIGFbMV0sIDBdKTsKICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICB9LAogICAgICAgICAgbUhlbHBlcjogbmV3IE1hdHJpeCgpLAogICAgICAgIH0pLAogICAgICAgICAgKE1hc2tFbGVtZW50LnByb3RvdHlwZS5nZXRNYXNrUHJvcGVydHkgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy52aWV3RGF0YVtlXS5wcm9wOwogICAgICAgICAgfSksCiAgICAgICAgICAoTWFza0VsZW1lbnQucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgciA9IHRoaXMuZWxlbWVudC5maW5hbFRyYW5zZm9ybS5tYXQsCiAgICAgICAgICAgICAgbiA9IHRoaXMubWFza3NQcm9wZXJ0aWVzLmxlbmd0aDsKICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IG47IHQgKz0gMSkKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoKHRoaXMudmlld0RhdGFbdF0ucHJvcC5fbWRmIHx8IGUpICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd1BhdGgoCiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXNrc1Byb3BlcnRpZXNbdF0sCiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVt0XS5wcm9wLnYsCiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3RGF0YVt0XQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGFbdF0ub3AuX21kZiB8fCBlKSAmJgogICAgICAgICAgICAgICAgICB0aGlzLnZpZXdEYXRhW3RdLmVsZW0uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJmaWxsLW9wYWNpdHkiLAogICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0RhdGFbdF0ub3AudgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgdGhpcy5tYXNrc1Byb3BlcnRpZXNbdF0ubW9kZSAhPT0gIm4iICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLnZpZXdEYXRhW3RdLmludlJlY3QgJiYKICAgICAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50LmZpbmFsVHJhbnNmb3JtLm1Qcm9wLl9tZGYgfHwgZSkgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdEYXRhW3RdLmludlJlY3Quc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgInRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgICByLmdldEludmVyc2VNYXRyaXgoKS50bzJkQ1NTKCkKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlZERhdGFbdF0ueCAmJiAodGhpcy5zdG9yZWREYXRhW3RdLnguX21kZiB8fCBlKSkpCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgaSA9IHRoaXMuc3RvcmVkRGF0YVt0XS5leHBhbjsKICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVkRGF0YVt0XS54LnYgPCAwCiAgICAgICAgICAgICAgICAgID8gKHRoaXMuc3RvcmVkRGF0YVt0XS5sYXN0T3BlcmF0b3IgIT09ICJlcm9kZSIgJiYKICAgICAgICAgICAgICAgICAgICAgICgodGhpcy5zdG9yZWREYXRhW3RdLmxhc3RPcGVyYXRvciA9ICJlcm9kZSIpLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZWREYXRhW3RdLmVsZW0uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgInVybCgiICsKICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2NhdGlvbkhyZWYoKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiMiICsKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlZERhdGFbdF0uZmlsdGVySWQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoInJhZGl1cyIsIC10aGlzLnN0b3JlZERhdGFbdF0ueC52KSkKICAgICAgICAgICAgICAgICAgOiAodGhpcy5zdG9yZWREYXRhW3RdLmxhc3RPcGVyYXRvciAhPT0gImRpbGF0ZSIgJiYKICAgICAgICAgICAgICAgICAgICAgICgodGhpcy5zdG9yZWREYXRhW3RdLmxhc3RPcGVyYXRvciA9ICJkaWxhdGUiKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVkRGF0YVt0XS5lbGVtLnNldEF0dHJpYnV0ZSgiZmlsdGVyIiwgbnVsbCkpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVkRGF0YVt0XS5lbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJzdHJva2Utd2lkdGgiLAogICAgICAgICAgICAgICAgICAgICAgMiAqIHRoaXMuc3RvcmVkRGF0YVt0XS54LnYKICAgICAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChNYXNrRWxlbWVudC5wcm90b3R5cGUuZ2V0TWFza2VsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hc2tFbGVtZW50OwogICAgICAgICAgfSksCiAgICAgICAgICAoTWFza0VsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUxheWVyU29saWRQYXRoID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9ICJNMCwwICI7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgKGUgKz0gIiBoIiArIHRoaXMuZ2xvYmFsRGF0YS5jb21wU2l6ZS53KSwKICAgICAgICAgICAgICAoZSArPSAiIHYiICsgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLmgpLAogICAgICAgICAgICAgIChlICs9ICIgaC0iICsgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLncpLAogICAgICAgICAgICAgIChlICs9ICIgdi0iICsgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLmggKyAiICIpCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChNYXNrRWxlbWVudC5wcm90b3R5cGUuZHJhd1BhdGggPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIGEgPSAiIE0iICsgdC52WzBdWzBdICsgIiwiICsgdC52WzBdWzFdOwogICAgICAgICAgICBmb3IgKGkgPSB0Ll9sZW5ndGgsIG4gPSAxOyBuIDwgaTsgbiArPSAxKQogICAgICAgICAgICAgIGEgKz0KICAgICAgICAgICAgICAgICIgQyIgKwogICAgICAgICAgICAgICAgdC5vW24gLSAxXVswXSArCiAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgdC5vW24gLSAxXVsxXSArCiAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgdC5pW25dWzBdICsKICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICB0Lmlbbl1bMV0gKwogICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgIHQudltuXVswXSArCiAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgdC52W25dWzFdOwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKHQuYyAmJgogICAgICAgICAgICAgICAgaSA+IDEgJiYKICAgICAgICAgICAgICAgIChhICs9CiAgICAgICAgICAgICAgICAgICIgQyIgKwogICAgICAgICAgICAgICAgICB0Lm9bbiAtIDFdWzBdICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgdC5vW24gLSAxXVsxXSArCiAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgIHQuaVswXVswXSArCiAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgIHQuaVswXVsxXSArCiAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgIHQudlswXVswXSArCiAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgIHQudlswXVsxXSksCiAgICAgICAgICAgICAgci5sYXN0UGF0aCAhPT0gYSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgdmFyIG8gPSAiIjsKICAgICAgICAgICAgICByLmVsZW0gJiYKICAgICAgICAgICAgICAgICh0LmMgJiYgKG8gPSBlLmludiA/IHRoaXMuc29saWRQYXRoICsgYSA6IGEpLAogICAgICAgICAgICAgICAgci5lbGVtLnNldEF0dHJpYnV0ZSgiZCIsIG8pKSwKICAgICAgICAgICAgICAgIChyLmxhc3RQYXRoID0gYSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKE1hc2tFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAodGhpcy5lbGVtZW50ID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLm1hc2tFbGVtZW50ID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLm1hc2tzUHJvcGVydGllcyA9IG51bGwpOwogICAgICAgICAgfSk7CiAgICAgICAgdmFyIGZpbHRlcnNGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUgPSB7fTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAoZS5jcmVhdGVGaWx0ZXIgPSBmdW5jdGlvbiAodCwgcikgewogICAgICAgICAgICAgICAgdmFyIG4gPSBjcmVhdGVOUygiZmlsdGVyIik7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgiaWQiLCB0KSwKICAgICAgICAgICAgICAgICAgciAhPT0gITAgJiYKICAgICAgICAgICAgICAgICAgICAobi5zZXRBdHRyaWJ1dGUoImZpbHRlclVuaXRzIiwgIm9iamVjdEJvdW5kaW5nQm94IiksCiAgICAgICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoIngiLCAiMCUiKSwKICAgICAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgieSIsICIwJSIpLAogICAgICAgICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxMDAlIiksCiAgICAgICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxMDAlIikpLAogICAgICAgICAgICAgICAgICBuCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChlLmNyZWF0ZUFscGhhVG9MdW1pbmFuY2VGaWx0ZXIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IGNyZWF0ZU5TKCJmZUNvbG9yTWF0cml4Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICB0LnNldEF0dHJpYnV0ZSgidHlwZSIsICJtYXRyaXgiKSwKICAgICAgICAgICAgICAgICAgdC5zZXRBdHRyaWJ1dGUoImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyIsICJzUkdCIiksCiAgICAgICAgICAgICAgICAgIHQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZXMiLAogICAgICAgICAgICAgICAgICAgICIwIDAgMCAxIDAgIDAgMCAwIDEgMCAgMCAwIDAgMSAwICAwIDAgMCAxIDEiCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHQKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZQogICAgICAgICAgICApOwogICAgICAgICAgfSkoKSwKICAgICAgICAgIGZlYXR1cmVTdXBwb3J0ID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUgPSB7CiAgICAgICAgICAgICAgbWFza1R5cGU6ICEwLAogICAgICAgICAgICAgIHN2Z0x1bWFIaWRkZW46ICEwLAogICAgICAgICAgICAgIG9mZnNjcmVlbkNhbnZhczogdHlwZW9mIE9mZnNjcmVlbkNhbnZhcyA8ICJ1IiwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAoL01TSUUgMTAvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpIHx8CiAgICAgICAgICAgICAgICAvTVNJRSA5L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSB8fAogICAgICAgICAgICAgICAgL3J2OjExLjAvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpIHx8CiAgICAgICAgICAgICAgICAvRWRnZVwvXGQuL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgJiYKICAgICAgICAgICAgICAgIChlLm1hc2tUeXBlID0gITEpLAogICAgICAgICAgICAgIC9maXJlZm94L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAoZS5zdmdMdW1hSGlkZGVuID0gITEpLAogICAgICAgICAgICAgIGUKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pKCksCiAgICAgICAgICByZWdpc3RlcmVkRWZmZWN0cyQxID0ge30sCiAgICAgICAgICBpZFByZWZpeCA9ICJmaWx0ZXJfcmVzdWx0XyI7CiAgICAgICAgZnVuY3Rpb24gU1ZHRWZmZWN0cyhlKSB7CiAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgciwKICAgICAgICAgICAgbiA9ICJTb3VyY2VHcmFwaGljIiwKICAgICAgICAgICAgaSA9IGUuZGF0YS5lZiA/IGUuZGF0YS5lZi5sZW5ndGggOiAwLAogICAgICAgICAgICBhID0gY3JlYXRlRWxlbWVudElEKCksCiAgICAgICAgICAgIG8gPSBmaWx0ZXJzRmFjdG9yeS5jcmVhdGVGaWx0ZXIoYSwgITApLAogICAgICAgICAgICBzID0gMDsKICAgICAgICAgIGZvciAodGhpcy5maWx0ZXJzID0gW10sIHQgPSAwOyB0IDwgaTsgdCArPSAxKSB7CiAgICAgICAgICAgIHIgPSBudWxsOwogICAgICAgICAgICB2YXIgYyA9IGUuZGF0YS5lZlt0XS50eTsKICAgICAgICAgICAgcmVnaXN0ZXJlZEVmZmVjdHMkMVtjXSAmJgogICAgICAgICAgICAgICgociA9IG5ldyByZWdpc3RlcmVkRWZmZWN0cyQxW2NdLmVmZmVjdCgKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBlLmVmZmVjdHNNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzW3RdLAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIGlkUHJlZml4ICsgcywKICAgICAgICAgICAgICAgIG4KICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAobiA9IGlkUHJlZml4ICsgcyksCiAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVmZmVjdHMkMVtjXS5jb3VudHNBc0VmZmVjdCAmJiAocyArPSAxKSksCiAgICAgICAgICAgICAgciAmJiB0aGlzLmZpbHRlcnMucHVzaChyKTsKICAgICAgICAgIH0KICAgICAgICAgIHMgJiYKICAgICAgICAgICAgKGUuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKG8pLAogICAgICAgICAgICBlLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgImZpbHRlciIsCiAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyBhICsgIikiCiAgICAgICAgICAgICkpLAogICAgICAgICAgICB0aGlzLmZpbHRlcnMubGVuZ3RoICYmIGUuYWRkUmVuZGVyYWJsZUNvbXBvbmVudCh0aGlzKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJFZmZlY3QkMShlLCB0LCByKSB7CiAgICAgICAgICByZWdpc3RlcmVkRWZmZWN0cyQxW2VdID0geyBlZmZlY3Q6IHQsIGNvdW50c0FzRWZmZWN0OiByIH07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIFNWR0Jhc2VFbGVtZW50KCkge30KICAgICAgICBmdW5jdGlvbiBIaWVyYXJjaHlFbGVtZW50KCkge30KICAgICAgICBmdW5jdGlvbiBSZW5kZXJhYmxlRE9NRWxlbWVudCgpIHt9CiAgICAgICAgZnVuY3Rpb24gSUltYWdlRWxlbWVudChlLCB0LCByKSB7CiAgICAgICAgICAodGhpcy5hc3NldERhdGEgPSB0LmdldEFzc2V0RGF0YShlLnJlZklkKSksCiAgICAgICAgICAgIHRoaXMuYXNzZXREYXRhICYmCiAgICAgICAgICAgICAgdGhpcy5hc3NldERhdGEuc2lkICYmCiAgICAgICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5zbG90TWFuYWdlci5nZXRQcm9wKHRoaXMuYXNzZXREYXRhKSksCiAgICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgciksCiAgICAgICAgICAgICh0aGlzLnNvdXJjZVJlY3QgPSB7CiAgICAgICAgICAgICAgdG9wOiAwLAogICAgICAgICAgICAgIGxlZnQ6IDAsCiAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuYXNzZXREYXRhLncsCiAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmFzc2V0RGF0YS5oLAogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gUHJvY2Vzc2VkRWxlbWVudChlLCB0KSB7CiAgICAgICAgICAodGhpcy5lbGVtID0gZSksICh0aGlzLnBvcyA9IHQpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBJU2hhcGVFbGVtZW50KCkge30KICAgICAgICAoU1ZHRWZmZWN0cy5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgIHIgPSB0aGlzLmZpbHRlcnMubGVuZ3RoOwogICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgdGhpcy5maWx0ZXJzW3RdLnJlbmRlckZyYW1lKGUpOwogICAgICAgIH0pLAogICAgICAgICAgKFNWR0VmZmVjdHMucHJvdG90eXBlLmdldEVmZmVjdHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aCwKICAgICAgICAgICAgICBuID0gW107CiAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzW3RdLnR5cGUgPT09IGUgJiYgbi5wdXNoKHRoaXMuZmlsdGVyc1t0XSk7CiAgICAgICAgICAgIHJldHVybiBuOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHQmFzZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICBpbml0UmVuZGVyZXJFbGVtZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQgPSBjcmVhdGVOUygiZyIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBjcmVhdGVDb250YWluZXJFbGVtZW50czogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICh0aGlzLm1hdHRlRWxlbWVudCA9IGNyZWF0ZU5TKCJnIikpLAogICAgICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtZWRFbGVtZW50ID0gdGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgKHRoaXMubWFza2VkRWxlbWVudCA9IHRoaXMubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICh0aGlzLl9zaXplQ2hhbmdlZCA9ICExKTsKICAgICAgICAgICAgICB2YXIgZSA9IG51bGw7CiAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS50ZCkgewogICAgICAgICAgICAgICAgdGhpcy5tYXR0ZU1hc2tzID0ge307CiAgICAgICAgICAgICAgICB2YXIgdCA9IGNyZWF0ZU5TKCJnIik7CiAgICAgICAgICAgICAgICB0LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmxheWVySWQpLAogICAgICAgICAgICAgICAgICB0LmFwcGVuZENoaWxkKHRoaXMubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgICAgKGUgPSB0KSwKICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQodCk7CiAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEudHQKICAgICAgICAgICAgICAgICAgPyAodGhpcy5tYXR0ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgIChlID0gdGhpcy5tYXR0ZUVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmJhc2VFbGVtZW50ID0gdGhpcy5tYXR0ZUVsZW1lbnQpKQogICAgICAgICAgICAgICAgICA6ICh0aGlzLmJhc2VFbGVtZW50ID0gdGhpcy5sYXllckVsZW1lbnQpOwogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICh0aGlzLmRhdGEubG4gJiYKICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuZGF0YS5sbiksCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuY2wgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsIHRoaXMuZGF0YS5jbCksCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEudHkgPT09IDAgJiYgIXRoaXMuZGF0YS5oZCkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciByID0gY3JlYXRlTlMoImNsaXBQYXRoIiksCiAgICAgICAgICAgICAgICAgIG4gPSBjcmVhdGVOUygicGF0aCIpOwogICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICJkIiwKICAgICAgICAgICAgICAgICAgIk0wLDAgTCIgKwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS53ICsKICAgICAgICAgICAgICAgICAgICAiLDAgTCIgKwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS53ICsKICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5oICsKICAgICAgICAgICAgICAgICAgICAiIEwwLCIgKwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5oICsKICAgICAgICAgICAgICAgICAgICAieiIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB2YXIgaSA9IGNyZWF0ZUVsZW1lbnRJRCgpOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoci5zZXRBdHRyaWJ1dGUoImlkIiwgaSksCiAgICAgICAgICAgICAgICAgIHIuYXBwZW5kQ2hpbGQobiksCiAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKHIpLAogICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrTWFza3MoKSkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICB2YXIgYSA9IGNyZWF0ZU5TKCJnIik7CiAgICAgICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJjbGlwLXBhdGgiLAogICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgaSArICIpIgogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQodGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybWVkRWxlbWVudCA9IGEpLAogICAgICAgICAgICAgICAgICAgIGUKICAgICAgICAgICAgICAgICAgICAgID8gZS5hcHBlbmRDaGlsZCh0aGlzLnRyYW5zZm9ybWVkRWxlbWVudCkKICAgICAgICAgICAgICAgICAgICAgIDogKHRoaXMuYmFzZUVsZW1lbnQgPSB0aGlzLnRyYW5zZm9ybWVkRWxlbWVudCk7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJjbGlwLXBhdGgiLAogICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgaSArICIpIgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLmRhdGEuYm0gIT09IDAgJiYgdGhpcy5zZXRCbGVuZE1vZGUoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVuZGVyRWxlbWVudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0uX2xvY2FsTWF0TWRmICYmCiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybWVkRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICJ0cmFuc2Zvcm0iLAogICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsTWF0LnRvMmRDU1MoKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0uX29wTWRmICYmCiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtZWRFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAib3BhY2l0eSIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFRyYW5zZm9ybS5sb2NhbE9wYWNpdHkKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZGVzdHJveUJhc2VFbGVtZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgKHRoaXMubGF5ZXJFbGVtZW50ID0gbnVsbCksCiAgICAgICAgICAgICAgICAodGhpcy5tYXR0ZUVsZW1lbnQgPSBudWxsKSwKICAgICAgICAgICAgICAgIHRoaXMubWFza01hbmFnZXIuZGVzdHJveSgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZXRCYXNlRWxlbWVudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGEuaGQgPyBudWxsIDogdGhpcy5iYXNlRWxlbWVudDsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgY3JlYXRlUmVuZGVyYWJsZUNvbXBvbmVudHM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAodGhpcy5tYXNrTWFuYWdlciA9IG5ldyBNYXNrRWxlbWVudCgKICAgICAgICAgICAgICAgIHRoaXMuZGF0YSwKICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICh0aGlzLnJlbmRlcmFibGVFZmZlY3RzTWFuYWdlciA9IG5ldyBTVkdFZmZlY3RzKHRoaXMpKSwKICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoRWZmZWN0VHJhbnNmb3JtcygpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZXRNYXR0ZTogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAodGhpcy5tYXR0ZU1hc2tzIHx8ICh0aGlzLm1hdHRlTWFza3MgPSB7fSksICF0aGlzLm1hdHRlTWFza3NbZV0pCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgYSA9IHRoaXMubGF5ZXJJZCArICJfIiArIGU7CiAgICAgICAgICAgICAgICBpZiAoZSA9PT0gMSB8fCBlID09PSAzKSB7CiAgICAgICAgICAgICAgICAgIHZhciBvID0gY3JlYXRlTlMoIm1hc2siKTsKICAgICAgICAgICAgICAgICAgby5zZXRBdHRyaWJ1dGUoImlkIiwgYSksCiAgICAgICAgICAgICAgICAgICAgby5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAibWFzay10eXBlIiwKICAgICAgICAgICAgICAgICAgICAgIGUgPT09IDMgPyAibHVtaW5hbmNlIiA6ICJhbHBoYSIKICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIChuID0gY3JlYXRlTlMoInVzZSIpKS5zZXRBdHRyaWJ1dGVOUygKICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwKICAgICAgICAgICAgICAgICAgICAgICJocmVmIiwKICAgICAgICAgICAgICAgICAgICAgICIjIiArIHRoaXMubGF5ZXJJZAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgby5hcHBlbmRDaGlsZChuKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChvKSwKICAgICAgICAgICAgICAgICAgICBmZWF0dXJlU3VwcG9ydC5tYXNrVHlwZSB8fAogICAgICAgICAgICAgICAgICAgICAgZSAhPT0gMSB8fAogICAgICAgICAgICAgICAgICAgICAgKG8uc2V0QXR0cmlidXRlKCJtYXNrLXR5cGUiLCAibHVtaW5hbmNlIiksCiAgICAgICAgICAgICAgICAgICAgICAodCA9IGNyZWF0ZUVsZW1lbnRJRCgpKSwKICAgICAgICAgICAgICAgICAgICAgIChyID0gZmlsdGVyc0ZhY3RvcnkuY3JlYXRlRmlsdGVyKHQpKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKHIpLAogICAgICAgICAgICAgICAgICAgICAgci5hcHBlbmRDaGlsZCgKICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyc0ZhY3RvcnkuY3JlYXRlQWxwaGFUb0x1bWluYW5jZUZpbHRlcigpCiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgKGkgPSBjcmVhdGVOUygiZyIpKS5hcHBlbmRDaGlsZChuKSwKICAgICAgICAgICAgICAgICAgICAgIG8uYXBwZW5kQ2hpbGQoaSksCiAgICAgICAgICAgICAgICAgICAgICBpLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgImZpbHRlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgdCArICIpIgogICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGUgPT09IDIpIHsKICAgICAgICAgICAgICAgICAgdmFyIHMgPSBjcmVhdGVOUygibWFzayIpOwogICAgICAgICAgICAgICAgICBzLnNldEF0dHJpYnV0ZSgiaWQiLCBhKSwgcy5zZXRBdHRyaWJ1dGUoIm1hc2stdHlwZSIsICJhbHBoYSIpOwogICAgICAgICAgICAgICAgICB2YXIgYyA9IGNyZWF0ZU5TKCJnIik7CiAgICAgICAgICAgICAgICAgIHMuYXBwZW5kQ2hpbGQoYyksCiAgICAgICAgICAgICAgICAgICAgKHQgPSBjcmVhdGVFbGVtZW50SUQoKSksCiAgICAgICAgICAgICAgICAgICAgKHIgPSBmaWx0ZXJzRmFjdG9yeS5jcmVhdGVGaWx0ZXIodCkpOwogICAgICAgICAgICAgICAgICB2YXIgdSA9IGNyZWF0ZU5TKCJmZUNvbXBvbmVudFRyYW5zZmVyIik7CiAgICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJpbiIsICJTb3VyY2VHcmFwaGljIiksIHIuYXBwZW5kQ2hpbGQodSk7CiAgICAgICAgICAgICAgICAgIHZhciBsID0gY3JlYXRlTlMoImZlRnVuY0EiKTsKICAgICAgICAgICAgICAgICAgbC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAidGFibGUiKSwKICAgICAgICAgICAgICAgICAgICBsLnNldEF0dHJpYnV0ZSgidGFibGVWYWx1ZXMiLCAiMS4wIDAuMCIpLAogICAgICAgICAgICAgICAgICAgIHUuYXBwZW5kQ2hpbGQobCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQocik7CiAgICAgICAgICAgICAgICAgIHZhciBwID0gY3JlYXRlTlMoInJlY3QiKTsKICAgICAgICAgICAgICAgICAgcC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgdGhpcy5jb21wLmRhdGEudyksCiAgICAgICAgICAgICAgICAgICAgcC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHRoaXMuY29tcC5kYXRhLmgpLAogICAgICAgICAgICAgICAgICAgIHAuc2V0QXR0cmlidXRlKCJ4IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICBwLnNldEF0dHJpYnV0ZSgieSIsICIwIiksCiAgICAgICAgICAgICAgICAgICAgcC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiI2ZmZmZmZiIpLAogICAgICAgICAgICAgICAgICAgIHAuc2V0QXR0cmlidXRlKCJvcGFjaXR5IiwgIjAiKSwKICAgICAgICAgICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJmaWx0ZXIiLAogICAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyB0ICsgIikiCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBjLmFwcGVuZENoaWxkKHApLAogICAgICAgICAgICAgICAgICAgIChuID0gY3JlYXRlTlMoInVzZSIpKS5zZXRBdHRyaWJ1dGVOUygKICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwKICAgICAgICAgICAgICAgICAgICAgICJocmVmIiwKICAgICAgICAgICAgICAgICAgICAgICIjIiArIHRoaXMubGF5ZXJJZAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgYy5hcHBlbmRDaGlsZChuKSwKICAgICAgICAgICAgICAgICAgICBmZWF0dXJlU3VwcG9ydC5tYXNrVHlwZSB8fAogICAgICAgICAgICAgICAgICAgICAgKHMuc2V0QXR0cmlidXRlKCJtYXNrLXR5cGUiLCAibHVtaW5hbmNlIiksCiAgICAgICAgICAgICAgICAgICAgICByLmFwcGVuZENoaWxkKAogICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzRmFjdG9yeS5jcmVhdGVBbHBoYVRvTHVtaW5hbmNlRmlsdGVyKCkKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAoaSA9IGNyZWF0ZU5TKCJnIikpLAogICAgICAgICAgICAgICAgICAgICAgYy5hcHBlbmRDaGlsZChwKSwKICAgICAgICAgICAgICAgICAgICAgIGkuYXBwZW5kQ2hpbGQodGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICAgYy5hcHBlbmRDaGlsZChpKSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQocyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLm1hdHRlTWFza3NbZV0gPSBhOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXR0ZU1hc2tzW2VdOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXRNYXR0ZTogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICB0aGlzLm1hdHRlRWxlbWVudCAmJgogICAgICAgICAgICAgICAgdGhpcy5tYXR0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAibWFzayIsCiAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgZSArICIpIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pLAogICAgICAgICAgKEhpZXJhcmNoeUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICBpbml0SGllcmFyY2h5OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgKHRoaXMuaGllcmFyY2h5ID0gW10pLAogICAgICAgICAgICAgICAgKHRoaXMuX2lzUGFyZW50ID0gITEpLAogICAgICAgICAgICAgICAgdGhpcy5jaGVja1BhcmVudGluZygpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXRIaWVyYXJjaHk6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdGhpcy5oaWVyYXJjaHkgPSBlOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXRBc1BhcmVudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHRoaXMuX2lzUGFyZW50ID0gITA7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNoZWNrUGFyZW50aW5nOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdGhpcy5kYXRhLnBhcmVudCAhPT0gdm9pZCAwICYmCiAgICAgICAgICAgICAgICB0aGlzLmNvbXAuYnVpbGRFbGVtZW50UGFyZW50aW5nKHRoaXMsIHRoaXMuZGF0YS5wYXJlbnQsIFtdKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgUmVuZGVyYWJsZUVsZW1lbnQsCiAgICAgICAgICAgICAgY3JlYXRlUHJveHlGdW5jdGlvbih7CiAgICAgICAgICAgICAgICBpbml0RWxlbWVudDogZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgICAgICAgdGhpcy5pbml0RnJhbWUoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRCYXNlRGF0YShlLCB0LCByKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRUcmFuc2Zvcm0oZSwgdCwgciksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0SGllcmFyY2h5KCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFJlbmRlcmVyRWxlbWVudCgpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ29udGFpbmVyRWxlbWVudHMoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVJlbmRlcmFibGVDb21wb25lbnRzKCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVDb250ZW50KCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgaGlkZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICB0aGlzLmhpZGRlbiB8fAogICAgICAgICAgICAgICAgICAgICh0aGlzLmlzSW5SYW5nZSAmJiAhdGhpcy5pc1RyYW5zcGFyZW50KSB8fAogICAgICAgICAgICAgICAgICAgICgoKHRoaXMuYmFzZUVsZW1lbnQgfHwgdGhpcy5sYXllckVsZW1lbnQpLnN0eWxlLmRpc3BsYXkgPQogICAgICAgICAgICAgICAgICAgICAgIm5vbmUiKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5oaWRkZW4gPSAhMCkpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHNob3c6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgdGhpcy5pc0luUmFuZ2UgJiYKICAgICAgICAgICAgICAgICAgICAhdGhpcy5pc1RyYW5zcGFyZW50ICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZGF0YS5oZCB8fAogICAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmJhc2VFbGVtZW50IHx8IHRoaXMubGF5ZXJFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0KICAgICAgICAgICAgICAgICAgICAgICAgImJsb2NrIiksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaGlkZGVuID0gITEpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCkpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHJlbmRlckZyYW1lOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5oZCB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuIHx8CiAgICAgICAgICAgICAgICAgICAgKHRoaXMucmVuZGVyVHJhbnNmb3JtKCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJSZW5kZXJhYmxlKCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJMb2NhbFRyYW5zZm9ybSgpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRWxlbWVudCgpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVySW5uZXJDb250ZW50KCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNGaXJzdEZyYW1lICYmICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMSkpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHJlbmRlcklubmVyQ29udGVudDogZnVuY3Rpb24gKCkge30sCiAgICAgICAgICAgICAgICBwcmVwYXJlRnJhbWU6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUmVuZGVyYWJsZUZyYW1lKGUpLAogICAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZVByb3BlcnRpZXMoZSwgdGhpcy5pc0luUmFuZ2UpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tUcmFuc3BhcmVuY3koKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBkZXN0cm95OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICh0aGlzLmlubmVyRWxlbSA9IG51bGwpLCB0aGlzLmRlc3Ryb3lCYXNlRWxlbWVudCgpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgUmVuZGVyYWJsZURPTUVsZW1lbnQKICAgICAgICAgICksCiAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICBCYXNlRWxlbWVudCwKICAgICAgICAgICAgICBUcmFuc2Zvcm1FbGVtZW50LAogICAgICAgICAgICAgIFNWR0Jhc2VFbGVtZW50LAogICAgICAgICAgICAgIEhpZXJhcmNoeUVsZW1lbnQsCiAgICAgICAgICAgICAgRnJhbWVFbGVtZW50LAogICAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50LAogICAgICAgICAgICBdLAogICAgICAgICAgICBJSW1hZ2VFbGVtZW50CiAgICAgICAgICApLAogICAgICAgICAgKElJbWFnZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlID0gdGhpcy5nbG9iYWxEYXRhLmdldEFzc2V0c1BhdGgodGhpcy5hc3NldERhdGEpOwogICAgICAgICAgICAodGhpcy5pbm5lckVsZW0gPSBjcmVhdGVOUygiaW1hZ2UiKSksCiAgICAgICAgICAgICAgdGhpcy5pbm5lckVsZW0uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHRoaXMuYXNzZXREYXRhLncgKyAicHgiKSwKICAgICAgICAgICAgICB0aGlzLmlubmVyRWxlbS5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHRoaXMuYXNzZXREYXRhLmggKyAicHgiKSwKICAgICAgICAgICAgICB0aGlzLmlubmVyRWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAicHJlc2VydmVBc3BlY3RSYXRpbyIsCiAgICAgICAgICAgICAgICB0aGlzLmFzc2V0RGF0YS5wciB8fAogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucmVuZGVyQ29uZmlnLmltYWdlUHJlc2VydmVBc3BlY3RSYXRpbwogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgdGhpcy5pbm5lckVsZW0uc2V0QXR0cmlidXRlTlMoCiAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsCiAgICAgICAgICAgICAgICAiaHJlZiIsCiAgICAgICAgICAgICAgICBlCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmlubmVyRWxlbSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChJSW1hZ2VFbGVtZW50LnByb3RvdHlwZS5zb3VyY2VSZWN0QXRUaW1lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VSZWN0OwogICAgICAgICAgfSksCiAgICAgICAgICAoSVNoYXBlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgIGFkZFNoYXBlVG9Nb2RpZmllcnM6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gdGhpcy5zaGFwZU1vZGlmaWVycy5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgdGhpcy5zaGFwZU1vZGlmaWVyc1t0XS5hZGRTaGFwZShlKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaXNTaGFwZUluQW5pbWF0ZWRNb2RpZmllcnM6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgdCA9IHRoaXMuc2hhcGVNb2RpZmllcnMubGVuZ3RoOyAwIDwgdDsgKQogICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hhcGVNb2RpZmllcnNbMF0uaXNBbmltYXRlZFdpdGhTaGFwZShlKSkgcmV0dXJuICEwOwogICAgICAgICAgICAgIHJldHVybiAhMTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVuZGVyTW9kaWZpZXJzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuc2hhcGVNb2RpZmllcnMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICAgICAgdCA9IHRoaXMuc2hhcGVzLmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHRoaXMuc2hhcGVzW2VdLnNoLnJlc2V0KCk7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICBlID0gKHQgPSB0aGlzLnNoYXBlTW9kaWZpZXJzLmxlbmd0aCkgLSAxOwogICAgICAgICAgICAgICAgICBlID49IDAgJiYKICAgICAgICAgICAgICAgICAgIXRoaXMuc2hhcGVNb2RpZmllcnNbZV0ucHJvY2Vzc1NoYXBlcyh0aGlzLl9pc0ZpcnN0RnJhbWUpOwogICAgICAgICAgICAgICAgICBlIC09IDEKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBzZWFyY2hQcm9jZXNzZWRFbGVtZW50OiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMucHJvY2Vzc2VkRWxlbWVudHMsIHIgPSAwLCBuID0gdC5sZW5ndGg7CiAgICAgICAgICAgICAgICByIDwgbjsKCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBpZiAodFtyXS5lbGVtID09PSBlKSByZXR1cm4gdFtyXS5wb3M7CiAgICAgICAgICAgICAgICByICs9IDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9LAogICAgICAgICAgICBhZGRQcm9jZXNzZWRFbGVtZW50OiBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICAgIGZvciAodmFyIHIgPSB0aGlzLnByb2Nlc3NlZEVsZW1lbnRzLCBuID0gci5sZW5ndGg7IG47ICkKICAgICAgICAgICAgICAgIGlmIChyWyhuIC09IDEpXS5lbGVtID09PSBlKSByZXR1cm4gdm9pZCAocltuXS5wb3MgPSB0KTsKICAgICAgICAgICAgICByLnB1c2gobmV3IFByb2Nlc3NlZEVsZW1lbnQoZSwgdCkpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBwcmVwYXJlRnJhbWU6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUmVuZGVyYWJsZUZyYW1lKGUpLAogICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhlLCB0aGlzLmlzSW5SYW5nZSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICB9KTsKICAgICAgICB2YXIgbGluZUNhcEVudW0gPSB7IDE6ICJidXR0IiwgMjogInJvdW5kIiwgMzogInNxdWFyZSIgfSwKICAgICAgICAgIGxpbmVKb2luRW51bSA9IHsgMTogIm1pdGVyIiwgMjogInJvdW5kIiwgMzogImJldmVsIiB9OwogICAgICAgIGZ1bmN0aW9uIFNWR1NoYXBlRGF0YShlLCB0LCByKSB7CiAgICAgICAgICAodGhpcy5jYWNoZXMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLnN0eWxlcyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtZXJzID0gZSksCiAgICAgICAgICAgICh0aGlzLmxTdHIgPSAiIiksCiAgICAgICAgICAgICh0aGlzLnNoID0gciksCiAgICAgICAgICAgICh0aGlzLmx2bCA9IHQpLAogICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9ICEhci5rKTsKICAgICAgICAgIGZvciAodmFyIG4gPSAwLCBpID0gZS5sZW5ndGg7IG4gPCBpOyApIHsKICAgICAgICAgICAgaWYgKGVbbl0ubVByb3BzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCkgewogICAgICAgICAgICAgIHRoaXMuX2lzQW5pbWF0ZWQgPSAhMDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBuICs9IDE7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIFNWR1N0eWxlRGF0YShlLCB0KSB7CiAgICAgICAgICAodGhpcy5kYXRhID0gZSksCiAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlLnR5KSwKICAgICAgICAgICAgKHRoaXMuZCA9ICIiKSwKICAgICAgICAgICAgKHRoaXMubHZsID0gdCksCiAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMSksCiAgICAgICAgICAgICh0aGlzLmNsb3NlZCA9IGUuaGQgPT09ICEwKSwKICAgICAgICAgICAgKHRoaXMucEVsZW0gPSBjcmVhdGVOUygicGF0aCIpKSwKICAgICAgICAgICAgKHRoaXMubXNFbGVtID0gbnVsbCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIERhc2hQcm9wZXJ0eShlLCB0LCByLCBuKSB7CiAgICAgICAgICB2YXIgaTsKICAgICAgICAgICh0aGlzLmVsZW0gPSBlKSwKICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IC0xKSwKICAgICAgICAgICAgKHRoaXMuZGF0YVByb3BzID0gY3JlYXRlU2l6ZWRBcnJheSh0Lmxlbmd0aCkpLAogICAgICAgICAgICAodGhpcy5yZW5kZXJlciA9IHIpLAogICAgICAgICAgICAodGhpcy5rID0gITEpLAogICAgICAgICAgICAodGhpcy5kYXNoU3RyID0gIiIpLAogICAgICAgICAgICAodGhpcy5kYXNoQXJyYXkgPSBjcmVhdGVUeXBlZEFycmF5KAogICAgICAgICAgICAgICJmbG9hdDMyIiwKICAgICAgICAgICAgICB0Lmxlbmd0aCA/IHQubGVuZ3RoIC0gMSA6IDAKICAgICAgICAgICAgKSksCiAgICAgICAgICAgICh0aGlzLmRhc2hvZmZzZXQgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgMSkpLAogICAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIobik7CiAgICAgICAgICB2YXIgYSwKICAgICAgICAgICAgbyA9IHQubGVuZ3RoIHx8IDA7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbzsgaSArPSAxKQogICAgICAgICAgICAoYSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHRbaV0udiwgMCwgMCwgdGhpcykpLAogICAgICAgICAgICAgICh0aGlzLmsgPSBhLmsgfHwgdGhpcy5rKSwKICAgICAgICAgICAgICAodGhpcy5kYXRhUHJvcHNbaV0gPSB7IG46IHRbaV0ubiwgcDogYSB9KTsKICAgICAgICAgIHRoaXMuayB8fCB0aGlzLmdldFZhbHVlKCEwKSwgKHRoaXMuX2lzQW5pbWF0ZWQgPSB0aGlzLmspOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBTVkdTdHJva2VTdHlsZURhdGEoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgICAgKHRoaXMubyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQubywgMCwgMC4wMSwgdGhpcykpLAogICAgICAgICAgICAodGhpcy53ID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC53LCAwLCBudWxsLCB0aGlzKSksCiAgICAgICAgICAgICh0aGlzLmQgPSBuZXcgRGFzaFByb3BlcnR5KGUsIHQuZCB8fCB7fSwgInN2ZyIsIHRoaXMpKSwKICAgICAgICAgICAgKHRoaXMuYyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQuYywgMSwgMjU1LCB0aGlzKSksCiAgICAgICAgICAgICh0aGlzLnN0eWxlID0gciksCiAgICAgICAgICAgICh0aGlzLl9pc0FuaW1hdGVkID0gISF0aGlzLl9pc0FuaW1hdGVkKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gU1ZHRmlsbFN0eWxlRGF0YShlLCB0LCByKSB7CiAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZSksCiAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMpLAogICAgICAgICAgICAodGhpcy5vID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5vLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICh0aGlzLmMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LmMsIDEsIDI1NSwgdGhpcykpLAogICAgICAgICAgICAodGhpcy5zdHlsZSA9IHIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBTVkdOb1N0eWxlRGF0YShlLCB0LCByKSB7CiAgICAgICAgICB0aGlzLmluaXREeW5hbWljUHJvcGVydHlDb250YWluZXIoZSksCiAgICAgICAgICAgICh0aGlzLmdldFZhbHVlID0gdGhpcy5pdGVyYXRlRHluYW1pY1Byb3BlcnRpZXMpLAogICAgICAgICAgICAodGhpcy5zdHlsZSA9IHIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBHcmFkaWVudFByb3BlcnR5KGUsIHQsIHIpIHsKICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwgKHRoaXMuYyA9IGNyZWF0ZVR5cGVkQXJyYXkoInVpbnQ4YyIsIDQgKiB0LnApKTsKICAgICAgICAgIHZhciBuID0gdC5rLmtbMF0ucwogICAgICAgICAgICA/IHQuay5rWzBdLnMubGVuZ3RoIC0gNCAqIHQucAogICAgICAgICAgICA6IHQuay5rLmxlbmd0aCAtIDQgKiB0LnA7CiAgICAgICAgICAodGhpcy5vID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIG4pKSwKICAgICAgICAgICAgKHRoaXMuX2NtZGYgPSAhMSksCiAgICAgICAgICAgICh0aGlzLl9vbWRmID0gITEpLAogICAgICAgICAgICAodGhpcy5fY29sbGFwc2FibGUgPSB0aGlzLmNoZWNrQ29sbGFwc2FibGUoKSksCiAgICAgICAgICAgICh0aGlzLl9oYXNPcGFjaXR5ID0gbiksCiAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihyKSwKICAgICAgICAgICAgKHRoaXMucHJvcCA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQuaywgMSwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAodGhpcy5rID0gdGhpcy5wcm9wLmspLAogICAgICAgICAgICB0aGlzLmdldFZhbHVlKCEwKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gU1ZHR3JhZGllbnRGaWxsU3R5bGVEYXRhKGUsIHQsIHIpIHsKICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihlKSwKICAgICAgICAgICAgKHRoaXMuZ2V0VmFsdWUgPSB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcyksCiAgICAgICAgICAgIHRoaXMuaW5pdEdyYWRpZW50RGF0YShlLCB0LCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gU1ZHR3JhZGllbnRTdHJva2VTdHlsZURhdGEoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5pbml0RHluYW1pY1Byb3BlcnR5Q29udGFpbmVyKGUpLAogICAgICAgICAgICAodGhpcy5nZXRWYWx1ZSA9IHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKSwKICAgICAgICAgICAgKHRoaXMudyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQudywgMCwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAodGhpcy5kID0gbmV3IERhc2hQcm9wZXJ0eShlLCB0LmQgfHwge30sICJzdmciLCB0aGlzKSksCiAgICAgICAgICAgIHRoaXMuaW5pdEdyYWRpZW50RGF0YShlLCB0LCByKSwKICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPSAhIXRoaXMuX2lzQW5pbWF0ZWQpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBTaGFwZUdyb3VwRGF0YSgpIHsKICAgICAgICAgICh0aGlzLml0ID0gW10pLCAodGhpcy5wcmV2Vmlld0RhdGEgPSBbXSksICh0aGlzLmdyID0gY3JlYXRlTlMoImciKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIFNWR1RyYW5zZm9ybURhdGEoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMudHJhbnNmb3JtID0geyBtUHJvcHM6IGUsIG9wOiB0LCBjb250YWluZXI6IHIgfSksCiAgICAgICAgICAgICh0aGlzLmVsZW1lbnRzID0gW10pLAogICAgICAgICAgICAodGhpcy5faXNBbmltYXRlZCA9CiAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm0ubVByb3BzLmR5bmFtaWNQcm9wZXJ0aWVzLmxlbmd0aCB8fAogICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtLm9wLmVmZmVjdHNTZXF1ZW5jZS5sZW5ndGgpOwogICAgICAgIH0KICAgICAgICAoU1ZHU2hhcGVEYXRhLnByb3RvdHlwZS5zZXRBc0FuaW1hdGVkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgdGhpcy5faXNBbmltYXRlZCA9ICEwOwogICAgICAgIH0pLAogICAgICAgICAgKFNWR1N0eWxlRGF0YS5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICh0aGlzLmQgPSAiIiksICh0aGlzLl9tZGYgPSAhMSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChEYXNoUHJvcGVydHkucHJvdG90eXBlLmdldFZhbHVlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICh0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkICE9PSB0aGlzLmZyYW1lSWQgfHwgZSkgJiYKICAgICAgICAgICAgICAoKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpLAogICAgICAgICAgICAgIHRoaXMuaXRlcmF0ZUR5bmFtaWNQcm9wZXJ0aWVzKCksCiAgICAgICAgICAgICAgKHRoaXMuX21kZiA9IHRoaXMuX21kZiB8fCBlKSwKICAgICAgICAgICAgICB0aGlzLl9tZGYpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHZhciB0ID0gMCwKICAgICAgICAgICAgICAgIHIgPSB0aGlzLmRhdGFQcm9wcy5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIgPT09ICJzdmciICYmICh0aGlzLmRhc2hTdHIgPSAiIiksIHQgPSAwOwogICAgICAgICAgICAgICAgdCA8IHI7CiAgICAgICAgICAgICAgICB0ICs9IDEKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB0aGlzLmRhdGFQcm9wc1t0XS5uICE9PSAibyIKICAgICAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlcmVyID09PSAic3ZnIgogICAgICAgICAgICAgICAgICAgID8gKHRoaXMuZGFzaFN0ciArPSAiICIgKyB0aGlzLmRhdGFQcm9wc1t0XS5wLnYpCiAgICAgICAgICAgICAgICAgICAgOiAodGhpcy5kYXNoQXJyYXlbdF0gPSB0aGlzLmRhdGFQcm9wc1t0XS5wLnYpCiAgICAgICAgICAgICAgICAgIDogKHRoaXMuZGFzaG9mZnNldFswXSA9IHRoaXMuZGF0YVByb3BzW3RdLnAudik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBEYXNoUHJvcGVydHkpLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBTVkdTdHJva2VTdHlsZURhdGEpLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBTVkdGaWxsU3R5bGVEYXRhKSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgU1ZHTm9TdHlsZURhdGEpLAogICAgICAgICAgKEdyYWRpZW50UHJvcGVydHkucHJvdG90eXBlLmNvbXBhcmVQb2ludHMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICBmb3IgKHZhciByID0gMCwgbiA9IHRoaXMuby5sZW5ndGggLyAyOyByIDwgbjsgKSB7CiAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKGVbNCAqIHJdIC0gZVs0ICogdCArIDIgKiByXSkgPiAwLjAxKSByZXR1cm4gITE7CiAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAhMDsKICAgICAgICAgIH0pLAogICAgICAgICAgKEdyYWRpZW50UHJvcGVydHkucHJvdG90eXBlLmNoZWNrQ29sbGFwc2FibGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLm8ubGVuZ3RoIC8gMiAhPSB0aGlzLmMubGVuZ3RoIC8gNCkgcmV0dXJuICExOwogICAgICAgICAgICBpZiAodGhpcy5kYXRhLmsua1swXS5zKQogICAgICAgICAgICAgIGZvciAodmFyIGUgPSAwLCB0ID0gdGhpcy5kYXRhLmsuay5sZW5ndGg7IGUgPCB0OyApIHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb21wYXJlUG9pbnRzKHRoaXMuZGF0YS5rLmtbZV0ucywgdGhpcy5kYXRhLnApKQogICAgICAgICAgICAgICAgICByZXR1cm4gITE7CiAgICAgICAgICAgICAgICBlICs9IDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICghdGhpcy5jb21wYXJlUG9pbnRzKHRoaXMuZGF0YS5rLmssIHRoaXMuZGF0YS5wKSkgcmV0dXJuICExOwogICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICB9KSwKICAgICAgICAgIChHcmFkaWVudFByb3BlcnR5LnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAodGhpcy5wcm9wLmdldFZhbHVlKCksCiAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5fY21kZiA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5fb21kZiA9ICExKSwKICAgICAgICAgICAgICB0aGlzLnByb3AuX21kZiB8fCBlKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgaSA9IDQgKiB0aGlzLmRhdGEucDsKICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgaTsgdCArPSAxKQogICAgICAgICAgICAgICAgKHIgPSB0ICUgNCA9PSAwID8gMTAwIDogMjU1KSwKICAgICAgICAgICAgICAgICAgKG4gPSBNYXRoLnJvdW5kKHRoaXMucHJvcC52W3RdICogcikpLAogICAgICAgICAgICAgICAgICB0aGlzLmNbdF0gIT09IG4gJiYgKCh0aGlzLmNbdF0gPSBuKSwgKHRoaXMuX2NtZGYgPSAhZSkpOwogICAgICAgICAgICAgIGlmICh0aGlzLm8ubGVuZ3RoKQogICAgICAgICAgICAgICAgZm9yIChpID0gdGhpcy5wcm9wLnYubGVuZ3RoLCB0ID0gNCAqIHRoaXMuZGF0YS5wOyB0IDwgaTsgdCArPSAxKQogICAgICAgICAgICAgICAgICAociA9IHQgJSAyID09IDAgPyAxMDAgOiAxKSwKICAgICAgICAgICAgICAgICAgICAobiA9CiAgICAgICAgICAgICAgICAgICAgICB0ICUgMiA9PSAwCiAgICAgICAgICAgICAgICAgICAgICAgID8gTWF0aC5yb3VuZCgxMDAgKiB0aGlzLnByb3Audlt0XSkKICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnByb3Audlt0XSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5vW3QgLSA0ICogdGhpcy5kYXRhLnBdICE9PSBuICYmCiAgICAgICAgICAgICAgICAgICAgICAoKHRoaXMub1t0IC0gNCAqIHRoaXMuZGF0YS5wXSA9IG4pLCAodGhpcy5fb21kZiA9ICFlKSk7CiAgICAgICAgICAgICAgdGhpcy5fbWRmID0gIWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtEeW5hbWljUHJvcGVydHlDb250YWluZXJdLCBHcmFkaWVudFByb3BlcnR5KSwKICAgICAgICAgIChTVkdHcmFkaWVudEZpbGxTdHlsZURhdGEucHJvdG90eXBlLmluaXRHcmFkaWVudERhdGEgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQsCiAgICAgICAgICAgIHIKICAgICAgICAgICkgewogICAgICAgICAgICAodGhpcy5vID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoZSwgdC5vLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgKHRoaXMucyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGUsIHQucywgMSwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAgICh0aGlzLmUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcChlLCB0LmUsIDEsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAodGhpcy5oID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICBlLAogICAgICAgICAgICAgICAgdC5oIHx8IHsgazogMCB9LAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMuYSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKAogICAgICAgICAgICAgICAgZSwKICAgICAgICAgICAgICAgIHQuYSB8fCB7IGs6IDAgfSwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMuZyA9IG5ldyBHcmFkaWVudFByb3BlcnR5KGUsIHQuZywgdGhpcykpLAogICAgICAgICAgICAgICh0aGlzLnN0eWxlID0gciksCiAgICAgICAgICAgICAgKHRoaXMuc3RvcHMgPSBbXSksCiAgICAgICAgICAgICAgdGhpcy5zZXRHcmFkaWVudERhdGEoci5wRWxlbSwgdCksCiAgICAgICAgICAgICAgdGhpcy5zZXRHcmFkaWVudE9wYWNpdHkodCwgciksCiAgICAgICAgICAgICAgKHRoaXMuX2lzQW5pbWF0ZWQgPSAhIXRoaXMuX2lzQW5pbWF0ZWQpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHR3JhZGllbnRGaWxsU3R5bGVEYXRhLnByb3RvdHlwZS5zZXRHcmFkaWVudERhdGEgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQKICAgICAgICAgICkgewogICAgICAgICAgICB2YXIgciA9IGNyZWF0ZUVsZW1lbnRJRCgpLAogICAgICAgICAgICAgIG4gPSBjcmVhdGVOUyh0LnQgPT09IDEgPyAibGluZWFyR3JhZGllbnQiIDogInJhZGlhbEdyYWRpZW50Iik7CiAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJpZCIsIHIpLAogICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJzcHJlYWRNZXRob2QiLCAicGFkIiksCiAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoImdyYWRpZW50VW5pdHMiLCAidXNlclNwYWNlT25Vc2UiKTsKICAgICAgICAgICAgdmFyIGksCiAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgIHMgPSBbXTsKICAgICAgICAgICAgZm9yIChvID0gNCAqIHQuZy5wLCBhID0gMDsgYSA8IG87IGEgKz0gNCkKICAgICAgICAgICAgICAoaSA9IGNyZWF0ZU5TKCJzdG9wIikpLCBuLmFwcGVuZENoaWxkKGkpLCBzLnB1c2goaSk7CiAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgIHQudHkgPT09ICJnZiIgPyAiZmlsbCIgOiAic3Ryb2tlIiwKICAgICAgICAgICAgICAidXJsKCIgKyBnZXRMb2NhdGlvbkhyZWYoKSArICIjIiArIHIgKyAiKSIKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAodGhpcy5nZiA9IG4pLAogICAgICAgICAgICAgICh0aGlzLmNzdCA9IHMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHR3JhZGllbnRGaWxsU3R5bGVEYXRhLnByb3RvdHlwZS5zZXRHcmFkaWVudE9wYWNpdHkgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQKICAgICAgICAgICkgewogICAgICAgICAgICBpZiAodGhpcy5nLl9oYXNPcGFjaXR5ICYmICF0aGlzLmcuX2NvbGxhcHNhYmxlKSB7CiAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgIGEgPSBjcmVhdGVOUygibWFzayIpLAogICAgICAgICAgICAgICAgbyA9IGNyZWF0ZU5TKCJwYXRoIik7CiAgICAgICAgICAgICAgYS5hcHBlbmRDaGlsZChvKTsKICAgICAgICAgICAgICB2YXIgcyA9IGNyZWF0ZUVsZW1lbnRJRCgpLAogICAgICAgICAgICAgICAgYyA9IGNyZWF0ZUVsZW1lbnRJRCgpOwogICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJpZCIsIGMpOwogICAgICAgICAgICAgIHZhciB1ID0gY3JlYXRlTlMoZS50ID09PSAxID8gImxpbmVhckdyYWRpZW50IiA6ICJyYWRpYWxHcmFkaWVudCIpOwogICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJpZCIsIHMpLAogICAgICAgICAgICAgICAgdS5zZXRBdHRyaWJ1dGUoInNwcmVhZE1ldGhvZCIsICJwYWQiKSwKICAgICAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJncmFkaWVudFVuaXRzIiwgInVzZXJTcGFjZU9uVXNlIiksCiAgICAgICAgICAgICAgICAoaSA9IGUuZy5rLmtbMF0ucyA/IGUuZy5rLmtbMF0ucy5sZW5ndGggOiBlLmcuay5rLmxlbmd0aCk7CiAgICAgICAgICAgICAgdmFyIGwgPSB0aGlzLnN0b3BzOwogICAgICAgICAgICAgIGZvciAobiA9IDQgKiBlLmcucDsgbiA8IGk7IG4gKz0gMikKICAgICAgICAgICAgICAgIChyID0gY3JlYXRlTlMoInN0b3AiKSkuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAic3RvcC1jb2xvciIsCiAgICAgICAgICAgICAgICAgICJyZ2IoMjU1LDI1NSwyNTUpIgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChyKSwKICAgICAgICAgICAgICAgICAgbC5wdXNoKHIpOwogICAgICAgICAgICAgIG8uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgZS50eSA9PT0gImdmIiA/ICJmaWxsIiA6ICJzdHJva2UiLAogICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyBzICsgIikiCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIGUudHkgPT09ICJncyIgJiYKICAgICAgICAgICAgICAgICAgKG8uc2V0QXR0cmlidXRlKCJzdHJva2UtbGluZWNhcCIsIGxpbmVDYXBFbnVtW2UubGMgfHwgMl0pLAogICAgICAgICAgICAgICAgICBvLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWxpbmVqb2luIiwgbGluZUpvaW5FbnVtW2UubGogfHwgMl0pLAogICAgICAgICAgICAgICAgICBlLmxqID09PSAxICYmIG8uc2V0QXR0cmlidXRlKCJzdHJva2UtbWl0ZXJsaW1pdCIsIGUubWwpKSwKICAgICAgICAgICAgICAgICh0aGlzLm9mID0gdSksCiAgICAgICAgICAgICAgICAodGhpcy5tcyA9IGEpLAogICAgICAgICAgICAgICAgKHRoaXMub3N0ID0gbCksCiAgICAgICAgICAgICAgICAodGhpcy5tYXNrSWQgPSBjKSwKICAgICAgICAgICAgICAgICh0Lm1zRWxlbSA9IG8pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgU1ZHR3JhZGllbnRGaWxsU3R5bGVEYXRhKSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgW1NWR0dyYWRpZW50RmlsbFN0eWxlRGF0YSwgRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwKICAgICAgICAgICAgU1ZHR3JhZGllbnRTdHJva2VTdHlsZURhdGEKICAgICAgICAgICk7CiAgICAgICAgdmFyIGJ1aWxkU2hhcGVTdHJpbmcgPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICBpZiAodCA9PT0gMCkgcmV0dXJuICIiOwogICAgICAgICAgICB2YXIgaSwKICAgICAgICAgICAgICBhID0gZS5vLAogICAgICAgICAgICAgIG8gPSBlLmksCiAgICAgICAgICAgICAgcyA9IGUudiwKICAgICAgICAgICAgICBjID0gIiBNIiArIG4uYXBwbHlUb1BvaW50U3RyaW5naWZpZWQoc1swXVswXSwgc1swXVsxXSk7CiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCB0OyBpICs9IDEpCiAgICAgICAgICAgICAgYyArPQogICAgICAgICAgICAgICAgIiBDIiArCiAgICAgICAgICAgICAgICBuLmFwcGx5VG9Qb2ludFN0cmluZ2lmaWVkKGFbaSAtIDFdWzBdLCBhW2kgLSAxXVsxXSkgKwogICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgIG4uYXBwbHlUb1BvaW50U3RyaW5naWZpZWQob1tpXVswXSwgb1tpXVsxXSkgKwogICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgIG4uYXBwbHlUb1BvaW50U3RyaW5naWZpZWQoc1tpXVswXSwgc1tpXVsxXSk7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgciAmJgogICAgICAgICAgICAgICAgdCAmJgogICAgICAgICAgICAgICAgKChjICs9CiAgICAgICAgICAgICAgICAgICIgQyIgKwogICAgICAgICAgICAgICAgICBuLmFwcGx5VG9Qb2ludFN0cmluZ2lmaWVkKGFbaSAtIDFdWzBdLCBhW2kgLSAxXVsxXSkgKwogICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICBuLmFwcGx5VG9Qb2ludFN0cmluZ2lmaWVkKG9bMF1bMF0sIG9bMF1bMV0pICsKICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgbi5hcHBseVRvUG9pbnRTdHJpbmdpZmllZChzWzBdWzBdLCBzWzBdWzFdKSksCiAgICAgICAgICAgICAgICAoYyArPSAieiIpKSwKICAgICAgICAgICAgICBjCiAgICAgICAgICAgICk7CiAgICAgICAgICB9LAogICAgICAgICAgU1ZHRWxlbWVudHNSZW5kZXJlciA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlID0gbmV3IE1hdHJpeCgpLAogICAgICAgICAgICAgIHQgPSBuZXcgTWF0cml4KCk7CiAgICAgICAgICAgIGZ1bmN0aW9uIHIodSwgbCwgcCkgewogICAgICAgICAgICAgIChwIHx8IGwudHJhbnNmb3JtLm9wLl9tZGYpICYmCiAgICAgICAgICAgICAgICBsLnRyYW5zZm9ybS5jb250YWluZXIuc2V0QXR0cmlidXRlKCJvcGFjaXR5IiwgbC50cmFuc2Zvcm0ub3AudiksCiAgICAgICAgICAgICAgICAocCB8fCBsLnRyYW5zZm9ybS5tUHJvcHMuX21kZikgJiYKICAgICAgICAgICAgICAgICAgbC50cmFuc2Zvcm0uY29udGFpbmVyLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAidHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICBsLnRyYW5zZm9ybS5tUHJvcHMudi50bzJkQ1NTKCkKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBuKCkge30KICAgICAgICAgICAgZnVuY3Rpb24gaSh1LCBsLCBwKSB7CiAgICAgICAgICAgICAgdmFyIGQsCiAgICAgICAgICAgICAgICBoLAogICAgICAgICAgICAgICAgbSwKICAgICAgICAgICAgICAgIHYsCiAgICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgICAgXywKICAgICAgICAgICAgICAgIEMsCiAgICAgICAgICAgICAgICBSID0gbC5zdHlsZXMubGVuZ3RoLAogICAgICAgICAgICAgICAgTCA9IGwubHZsOwogICAgICAgICAgICAgIGZvciAoZyA9IDA7IGcgPCBSOyBnICs9IDEpIHsKICAgICAgICAgICAgICAgIGlmICgoKHYgPSBsLnNoLl9tZGYgfHwgcCksIGwuc3R5bGVzW2ddLmx2bCA8IEwpKSB7CiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgQSA9IHQucmVzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgIF8gPSBMIC0gbC5zdHlsZXNbZ10ubHZsLAogICAgICAgICAgICAgICAgICAgICAgQyA9IGwudHJhbnNmb3JtZXJzLmxlbmd0aCAtIDE7CiAgICAgICAgICAgICAgICAgICAgIXYgJiYgXyA+IDA7CgogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKHYgPSBsLnRyYW5zZm9ybWVyc1tDXS5tUHJvcHMuX21kZiB8fCB2KSwKICAgICAgICAgICAgICAgICAgICAgIChfIC09IDEpLAogICAgICAgICAgICAgICAgICAgICAgKEMgLT0gMSk7CiAgICAgICAgICAgICAgICAgIGlmICh2KQogICAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgICBfID0gTCAtIGwuc3R5bGVzW2ddLmx2bCwgQyA9IGwudHJhbnNmb3JtZXJzLmxlbmd0aCAtIDE7CiAgICAgICAgICAgICAgICAgICAgICBfID4gMDsKCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgQS5tdWx0aXBseShsLnRyYW5zZm9ybWVyc1tDXS5tUHJvcHMudiksCiAgICAgICAgICAgICAgICAgICAgICAgIChfIC09IDEpLAogICAgICAgICAgICAgICAgICAgICAgICAoQyAtPSAxKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBBID0gZTsKICAgICAgICAgICAgICAgIGlmICgoKGggPSAoTSA9IGwuc2gucGF0aHMpLl9sZW5ndGgpLCB2KSkgewogICAgICAgICAgICAgICAgICBmb3IgKG0gPSAiIiwgZCA9IDA7IGQgPCBoOyBkICs9IDEpCiAgICAgICAgICAgICAgICAgICAgKHkgPSBNLnNoYXBlc1tkXSkgJiYKICAgICAgICAgICAgICAgICAgICAgIHkuX2xlbmd0aCAmJgogICAgICAgICAgICAgICAgICAgICAgKG0gKz0gYnVpbGRTaGFwZVN0cmluZyh5LCB5Ll9sZW5ndGgsIHkuYywgQSkpOwogICAgICAgICAgICAgICAgICBsLmNhY2hlc1tnXSA9IG07CiAgICAgICAgICAgICAgICB9IGVsc2UgbSA9IGwuY2FjaGVzW2ddOwogICAgICAgICAgICAgICAgKGwuc3R5bGVzW2ddLmQgKz0gdS5oZCA9PT0gITAgPyAiIiA6IG0pLAogICAgICAgICAgICAgICAgICAobC5zdHlsZXNbZ10uX21kZiA9IHYgfHwgbC5zdHlsZXNbZ10uX21kZik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGEodSwgbCwgcCkgewogICAgICAgICAgICAgIHZhciBkID0gbC5zdHlsZTsKICAgICAgICAgICAgICAobC5jLl9tZGYgfHwgcCkgJiYKICAgICAgICAgICAgICAgIGQucEVsZW0uc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAiZmlsbCIsCiAgICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihsLmMudlswXSkgKwogICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihsLmMudlsxXSkgKwogICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihsLmMudlsyXSkgKwogICAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIChsLm8uX21kZiB8fCBwKSAmJiBkLnBFbGVtLnNldEF0dHJpYnV0ZSgiZmlsbC1vcGFjaXR5IiwgbC5vLnYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG8odSwgbCwgcCkgewogICAgICAgICAgICAgIHModSwgbCwgcCksIGModSwgbCwgcCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcyh1LCBsLCBwKSB7CiAgICAgICAgICAgICAgdmFyIGQsCiAgICAgICAgICAgICAgICBoLAogICAgICAgICAgICAgICAgbSwKICAgICAgICAgICAgICAgIHYsCiAgICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgICAgZyA9IGwuZ2YsCiAgICAgICAgICAgICAgICBNID0gbC5nLl9oYXNPcGFjaXR5LAogICAgICAgICAgICAgICAgQSA9IGwucy52LAogICAgICAgICAgICAgICAgXyA9IGwuZS52OwogICAgICAgICAgICAgIGlmIChsLm8uX21kZiB8fCBwKSB7CiAgICAgICAgICAgICAgICB2YXIgQyA9IHUudHkgPT09ICJnZiIgPyAiZmlsbC1vcGFjaXR5IiA6ICJzdHJva2Utb3BhY2l0eSI7CiAgICAgICAgICAgICAgICBsLnN0eWxlLnBFbGVtLnNldEF0dHJpYnV0ZShDLCBsLm8udik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChsLnMuX21kZiB8fCBwKSB7CiAgICAgICAgICAgICAgICB2YXIgUiA9IHUudCA9PT0gMSA/ICJ4MSIgOiAiY3giLAogICAgICAgICAgICAgICAgICBMID0gUiA9PT0gIngxIiA/ICJ5MSIgOiAiY3kiOwogICAgICAgICAgICAgICAgZy5zZXRBdHRyaWJ1dGUoUiwgQVswXSksCiAgICAgICAgICAgICAgICAgIGcuc2V0QXR0cmlidXRlKEwsIEFbMV0pLAogICAgICAgICAgICAgICAgICBNICYmCiAgICAgICAgICAgICAgICAgICAgIWwuZy5fY29sbGFwc2FibGUgJiYKICAgICAgICAgICAgICAgICAgICAobC5vZi5zZXRBdHRyaWJ1dGUoUiwgQVswXSksIGwub2Yuc2V0QXR0cmlidXRlKEwsIEFbMV0pKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGwuZy5fY21kZiB8fCBwKSB7CiAgICAgICAgICAgICAgICBkID0gbC5jc3Q7CiAgICAgICAgICAgICAgICB2YXIgTiA9IGwuZy5jOwogICAgICAgICAgICAgICAgZm9yIChtID0gZC5sZW5ndGgsIGggPSAwOyBoIDwgbTsgaCArPSAxKQogICAgICAgICAgICAgICAgICAodiA9IGRbaF0pLnNldEF0dHJpYnV0ZSgib2Zmc2V0IiwgTls0ICogaF0gKyAiJSIpLAogICAgICAgICAgICAgICAgICAgIHYuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgInN0b3AtY29sb3IiLAogICAgICAgICAgICAgICAgICAgICAgInJnYigiICsKICAgICAgICAgICAgICAgICAgICAgICAgTls0ICogaCArIDFdICsKICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgTls0ICogaCArIDJdICsKICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgTls0ICogaCArIDNdICsKICAgICAgICAgICAgICAgICAgICAgICAgIikiCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKE0gJiYgKGwuZy5fb21kZiB8fCBwKSkgewogICAgICAgICAgICAgICAgdmFyIFcgPSBsLmcubzsKICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgIG0gPSAoZCA9IGwuZy5fY29sbGFwc2FibGUgPyBsLmNzdCA6IGwub3N0KS5sZW5ndGgsIGggPSAwOwogICAgICAgICAgICAgICAgICBoIDwgbTsKICAgICAgICAgICAgICAgICAgaCArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICh2ID0gZFtoXSksCiAgICAgICAgICAgICAgICAgICAgbC5nLl9jb2xsYXBzYWJsZSB8fAogICAgICAgICAgICAgICAgICAgICAgdi5zZXRBdHRyaWJ1dGUoIm9mZnNldCIsIFdbMiAqIGhdICsgIiUiKSwKICAgICAgICAgICAgICAgICAgICB2LnNldEF0dHJpYnV0ZSgic3RvcC1vcGFjaXR5IiwgV1syICogaCArIDFdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHUudCA9PT0gMSkKICAgICAgICAgICAgICAgIChsLmUuX21kZiB8fCBwKSAmJgogICAgICAgICAgICAgICAgICAoZy5zZXRBdHRyaWJ1dGUoIngyIiwgX1swXSksCiAgICAgICAgICAgICAgICAgIGcuc2V0QXR0cmlidXRlKCJ5MiIsIF9bMV0pLAogICAgICAgICAgICAgICAgICBNICYmCiAgICAgICAgICAgICAgICAgICAgIWwuZy5fY29sbGFwc2FibGUgJiYKICAgICAgICAgICAgICAgICAgICAobC5vZi5zZXRBdHRyaWJ1dGUoIngyIiwgX1swXSksCiAgICAgICAgICAgICAgICAgICAgbC5vZi5zZXRBdHRyaWJ1dGUoInkyIiwgX1sxXSkpKTsKICAgICAgICAgICAgICBlbHNlIGlmICgKICAgICAgICAgICAgICAgICgobC5zLl9tZGYgfHwgbC5lLl9tZGYgfHwgcCkgJiYKICAgICAgICAgICAgICAgICAgKCh5ID0gTWF0aC5zcXJ0KAogICAgICAgICAgICAgICAgICAgIE1hdGgucG93KEFbMF0gLSBfWzBdLCAyKSArIE1hdGgucG93KEFbMV0gLSBfWzFdLCAyKQogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgZy5zZXRBdHRyaWJ1dGUoInIiLCB5KSwKICAgICAgICAgICAgICAgICAgTSAmJiAhbC5nLl9jb2xsYXBzYWJsZSAmJiBsLm9mLnNldEF0dHJpYnV0ZSgiciIsIHkpKSwKICAgICAgICAgICAgICAgIGwuZS5fbWRmIHx8IGwuaC5fbWRmIHx8IGwuYS5fbWRmIHx8IHApCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB5IHx8CiAgICAgICAgICAgICAgICAgICh5ID0gTWF0aC5zcXJ0KAogICAgICAgICAgICAgICAgICAgIE1hdGgucG93KEFbMF0gLSBfWzBdLCAyKSArIE1hdGgucG93KEFbMV0gLSBfWzFdLCAyKQogICAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgICAgIHZhciBrID0gTWF0aC5hdGFuMihfWzFdIC0gQVsxXSwgX1swXSAtIEFbMF0pLAogICAgICAgICAgICAgICAgICBxID0gbC5oLnY7CiAgICAgICAgICAgICAgICBxID49IDEgPyAocSA9IDAuOTkpIDogcSA8PSAtMSAmJiAocSA9IC0wLjk5KTsKICAgICAgICAgICAgICAgIHZhciBIID0geSAqIHEsCiAgICAgICAgICAgICAgICAgIFggPSBNYXRoLmNvcyhrICsgbC5hLnYpICogSCArIEFbMF0sCiAgICAgICAgICAgICAgICAgIFUgPSBNYXRoLnNpbihrICsgbC5hLnYpICogSCArIEFbMV07CiAgICAgICAgICAgICAgICBnLnNldEF0dHJpYnV0ZSgiZngiLCBYKSwKICAgICAgICAgICAgICAgICAgZy5zZXRBdHRyaWJ1dGUoImZ5IiwgVSksCiAgICAgICAgICAgICAgICAgIE0gJiYKICAgICAgICAgICAgICAgICAgICAhbC5nLl9jb2xsYXBzYWJsZSAmJgogICAgICAgICAgICAgICAgICAgIChsLm9mLnNldEF0dHJpYnV0ZSgiZngiLCBYKSwgbC5vZi5zZXRBdHRyaWJ1dGUoImZ5IiwgVSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBjKHUsIGwsIHApIHsKICAgICAgICAgICAgICB2YXIgZCA9IGwuc3R5bGUsCiAgICAgICAgICAgICAgICBoID0gbC5kOwogICAgICAgICAgICAgIGggJiYKICAgICAgICAgICAgICAgIChoLl9tZGYgfHwgcCkgJiYKICAgICAgICAgICAgICAgIGguZGFzaFN0ciAmJgogICAgICAgICAgICAgICAgKGQucEVsZW0uc2V0QXR0cmlidXRlKCJzdHJva2UtZGFzaGFycmF5IiwgaC5kYXNoU3RyKSwKICAgICAgICAgICAgICAgIGQucEVsZW0uc2V0QXR0cmlidXRlKCJzdHJva2UtZGFzaG9mZnNldCIsIGguZGFzaG9mZnNldFswXSkpLAogICAgICAgICAgICAgICAgbC5jICYmCiAgICAgICAgICAgICAgICAgIChsLmMuX21kZiB8fCBwKSAmJgogICAgICAgICAgICAgICAgICBkLnBFbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAic3Ryb2tlIiwKICAgICAgICAgICAgICAgICAgICAicmdiKCIgKwogICAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihsLmMudlswXSkgKwogICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgIGJtRmxvb3IobC5jLnZbMV0pICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICBibUZsb29yKGwuYy52WzJdKSArCiAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIChsLm8uX21kZiB8fCBwKSAmJgogICAgICAgICAgICAgICAgICBkLnBFbGVtLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW9wYWNpdHkiLCBsLm8udiksCiAgICAgICAgICAgICAgICAobC53Ll9tZGYgfHwgcCkgJiYKICAgICAgICAgICAgICAgICAgKGQucEVsZW0uc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLCBsLncudiksCiAgICAgICAgICAgICAgICAgIGQubXNFbGVtICYmIGQubXNFbGVtLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIiwgbC53LnYpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIGNyZWF0ZVJlbmRlckZ1bmN0aW9uOiBmdW5jdGlvbiAodSkgewogICAgICAgICAgICAgICAgc3dpdGNoICh1LnR5KSB7CiAgICAgICAgICAgICAgICAgIGNhc2UgImZsIjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICAgICAgICAgICAgY2FzZSAiZ2YiOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBzOwogICAgICAgICAgICAgICAgICBjYXNlICJncyI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG87CiAgICAgICAgICAgICAgICAgIGNhc2UgInN0IjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gYzsKICAgICAgICAgICAgICAgICAgY2FzZSAic2giOgogICAgICAgICAgICAgICAgICBjYXNlICJlbCI6CiAgICAgICAgICAgICAgICAgIGNhc2UgInJjIjoKICAgICAgICAgICAgICAgICAgY2FzZSAic3IiOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgICBjYXNlICJ0ciI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7CiAgICAgICAgICAgICAgICAgIGNhc2UgIm5vIjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbjsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9OwogICAgICAgICAgfSkoKTsKICAgICAgICBmdW5jdGlvbiBTVkdTaGFwZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMuc2hhcGVzID0gW10pLAogICAgICAgICAgICAodGhpcy5zaGFwZXNEYXRhID0gZS5zaGFwZXMpLAogICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0ID0gW10pLAogICAgICAgICAgICAodGhpcy5zaGFwZU1vZGlmaWVycyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuaXRlbXNEYXRhID0gW10pLAogICAgICAgICAgICAodGhpcy5wcm9jZXNzZWRFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuYW5pbWF0ZWRDb250ZW50cyA9IFtdKSwKICAgICAgICAgICAgdGhpcy5pbml0RWxlbWVudChlLCB0LCByKSwKICAgICAgICAgICAgKHRoaXMucHJldlZpZXdEYXRhID0gW10pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBMZXR0ZXJQcm9wcyhlLCB0LCByLCBuLCBpLCBhKSB7CiAgICAgICAgICAodGhpcy5vID0gZSksCiAgICAgICAgICAgICh0aGlzLnN3ID0gdCksCiAgICAgICAgICAgICh0aGlzLnNjID0gciksCiAgICAgICAgICAgICh0aGlzLmZjID0gbiksCiAgICAgICAgICAgICh0aGlzLm0gPSBpKSwKICAgICAgICAgICAgKHRoaXMucCA9IGEpLAogICAgICAgICAgICAodGhpcy5fbWRmID0geyBvOiAhMCwgc3c6ICEhdCwgc2M6ICEhciwgZmM6ICEhbiwgbTogITAsIHA6ICEwIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBUZXh0UHJvcGVydHkoZSwgdCkgewogICAgICAgICAgKHRoaXMuX2ZyYW1lSWQgPSBpbml0aWFsRGVmYXVsdEZyYW1lKSwKICAgICAgICAgICAgKHRoaXMucHYgPSAiIiksCiAgICAgICAgICAgICh0aGlzLnYgPSAiIiksCiAgICAgICAgICAgICh0aGlzLmtmID0gITEpLAogICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lID0gITApLAogICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICB0LmQgJiYgdC5kLnNpZCAmJiAodC5kID0gZS5nbG9iYWxEYXRhLnNsb3RNYW5hZ2VyLmdldFByb3AodC5kKSksCiAgICAgICAgICAgICh0aGlzLmRhdGEgPSB0KSwKICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGUpLAogICAgICAgICAgICAodGhpcy5jb21wID0gdGhpcy5lbGVtLmNvbXApLAogICAgICAgICAgICAodGhpcy5rZXlzSW5kZXggPSAwKSwKICAgICAgICAgICAgKHRoaXMuY2FuUmVzaXplID0gITEpLAogICAgICAgICAgICAodGhpcy5taW5pbXVtRm9udFNpemUgPSAxKSwKICAgICAgICAgICAgKHRoaXMuZWZmZWN0c1NlcXVlbmNlID0gW10pLAogICAgICAgICAgICAodGhpcy5jdXJyZW50RGF0YSA9IHsKICAgICAgICAgICAgICBhc2NlbnQ6IDAsCiAgICAgICAgICAgICAgYm94V2lkdGg6IHRoaXMuZGVmYXVsdEJveFdpZHRoLAogICAgICAgICAgICAgIGY6ICIiLAogICAgICAgICAgICAgIGZTdHlsZTogIiIsCiAgICAgICAgICAgICAgZldlaWdodDogIiIsCiAgICAgICAgICAgICAgZmM6ICIiLAogICAgICAgICAgICAgIGo6ICIiLAogICAgICAgICAgICAgIGp1c3RpZnlPZmZzZXQ6ICIiLAogICAgICAgICAgICAgIGw6IFtdLAogICAgICAgICAgICAgIGxoOiAwLAogICAgICAgICAgICAgIGxpbmVXaWR0aHM6IFtdLAogICAgICAgICAgICAgIGxzOiAiIiwKICAgICAgICAgICAgICBvZjogIiIsCiAgICAgICAgICAgICAgczogIiIsCiAgICAgICAgICAgICAgc2M6ICIiLAogICAgICAgICAgICAgIHN3OiAwLAogICAgICAgICAgICAgIHQ6IDAsCiAgICAgICAgICAgICAgdHI6IDAsCiAgICAgICAgICAgICAgc3o6IDAsCiAgICAgICAgICAgICAgcHM6IG51bGwsCiAgICAgICAgICAgICAgZmlsbENvbG9yQW5pbTogITEsCiAgICAgICAgICAgICAgc3Ryb2tlQ29sb3JBbmltOiAhMSwKICAgICAgICAgICAgICBzdHJva2VXaWR0aEFuaW06ICExLAogICAgICAgICAgICAgIHlPZmZzZXQ6IDAsCiAgICAgICAgICAgICAgZmluYWxTaXplOiAwLAogICAgICAgICAgICAgIGZpbmFsVGV4dDogW10sCiAgICAgICAgICAgICAgZmluYWxMaW5lSGVpZ2h0OiAwLAogICAgICAgICAgICAgIF9fY29tcGxldGU6ICExLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgdGhpcy5jb3B5RGF0YSh0aGlzLmN1cnJlbnREYXRhLCB0aGlzLmRhdGEuZC5rWzBdLnMpLAogICAgICAgICAgICB0aGlzLnNlYXJjaFByb3BlcnR5KCkgfHwgdGhpcy5jb21wbGV0ZVRleHREYXRhKHRoaXMuY3VycmVudERhdGEpOwogICAgICAgIH0KICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICBbCiAgICAgICAgICAgIEJhc2VFbGVtZW50LAogICAgICAgICAgICBUcmFuc2Zvcm1FbGVtZW50LAogICAgICAgICAgICBTVkdCYXNlRWxlbWVudCwKICAgICAgICAgICAgSVNoYXBlRWxlbWVudCwKICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgRnJhbWVFbGVtZW50LAogICAgICAgICAgICBSZW5kZXJhYmxlRE9NRWxlbWVudCwKICAgICAgICAgIF0sCiAgICAgICAgICBTVkdTaGFwZUVsZW1lbnQKICAgICAgICApLAogICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuaW5pdFNlY29uZGFyeUVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5pZGVudGl0eU1hdHJpeCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5idWlsZEV4cHJlc3Npb25JbnRlcmZhY2UgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLnNlYXJjaFNoYXBlcygKICAgICAgICAgICAgICB0aGlzLnNoYXBlc0RhdGEsCiAgICAgICAgICAgICAgdGhpcy5pdGVtc0RhdGEsCiAgICAgICAgICAgICAgdGhpcy5wcmV2Vmlld0RhdGEsCiAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAhMAogICAgICAgICAgICApLAogICAgICAgICAgICAgIHRoaXMuZmlsdGVyVW5pcXVlU2hhcGVzKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmZpbHRlclVuaXF1ZVNoYXBlcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICByLAogICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgaSA9IHRoaXMuc2hhcGVzLmxlbmd0aCwKICAgICAgICAgICAgICBhID0gdGhpcy5zdHlsZXNMaXN0Lmxlbmd0aCwKICAgICAgICAgICAgICBvID0gW10sCiAgICAgICAgICAgICAgcyA9ICExOwogICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgYTsgciArPSAxKSB7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIG4gPSB0aGlzLnN0eWxlc0xpc3Rbcl0sIHMgPSAhMSwgby5sZW5ndGggPSAwLCBlID0gMDsKICAgICAgICAgICAgICAgIGUgPCBpOwogICAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKHQgPSB0aGlzLnNoYXBlc1tlXSkuc3R5bGVzLmluZGV4T2YobikgIT09IC0xICYmCiAgICAgICAgICAgICAgICAgIChvLnB1c2godCksIChzID0gdC5faXNBbmltYXRlZCB8fCBzKSk7CiAgICAgICAgICAgICAgby5sZW5ndGggPiAxICYmIHMgJiYgdGhpcy5zZXRTaGFwZXNBc0FuaW1hdGVkKG8pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLnNldFNoYXBlc0FzQW5pbWF0ZWQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICByID0gZS5sZW5ndGg7CiAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpIGVbdF0uc2V0QXNBbmltYXRlZCgpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTdHlsZUVsZW1lbnQgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICBuID0gbmV3IFNWR1N0eWxlRGF0YShlLCB0KSwKICAgICAgICAgICAgICBpID0gbi5wRWxlbTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICBlLnR5ID09PSAic3QiCiAgICAgICAgICAgICAgICA/IChyID0gbmV3IFNWR1N0cm9rZVN0eWxlRGF0YSh0aGlzLCBlLCBuKSkKICAgICAgICAgICAgICAgIDogZS50eSA9PT0gImZsIgogICAgICAgICAgICAgICAgPyAociA9IG5ldyBTVkdGaWxsU3R5bGVEYXRhKHRoaXMsIGUsIG4pKQogICAgICAgICAgICAgICAgOiBlLnR5ID09PSAiZ2YiIHx8IGUudHkgPT09ICJncyIKICAgICAgICAgICAgICAgID8gKChyID0gbmV3ICgKICAgICAgICAgICAgICAgICAgICBlLnR5ID09PSAiZ2YiCiAgICAgICAgICAgICAgICAgICAgICA/IFNWR0dyYWRpZW50RmlsbFN0eWxlRGF0YQogICAgICAgICAgICAgICAgICAgICAgOiBTVkdHcmFkaWVudFN0cm9rZVN0eWxlRGF0YQogICAgICAgICAgICAgICAgICApKHRoaXMsIGUsIG4pKSwKICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmRlZnMuYXBwZW5kQ2hpbGQoci5nZiksCiAgICAgICAgICAgICAgICAgIHIubWFza0lkICYmCiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKHIubXMpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5kZWZzLmFwcGVuZENoaWxkKHIub2YpLAogICAgICAgICAgICAgICAgICAgIGkuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICAgIm1hc2siLAogICAgICAgICAgICAgICAgICAgICAgInVybCgiICsgZ2V0TG9jYXRpb25IcmVmKCkgKyAiIyIgKyByLm1hc2tJZCArICIpIgogICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgOiBlLnR5ID09PSAibm8iICYmIChyID0gbmV3IFNWR05vU3R5bGVEYXRhKHRoaXMsIGUsIG4pKSwKICAgICAgICAgICAgICAoZS50eSAhPT0gInN0IiAmJiBlLnR5ICE9PSAiZ3MiKSB8fAogICAgICAgICAgICAgICAgKGkuc2V0QXR0cmlidXRlKCJzdHJva2UtbGluZWNhcCIsIGxpbmVDYXBFbnVtW2UubGMgfHwgMl0pLAogICAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoInN0cm9rZS1saW5lam9pbiIsIGxpbmVKb2luRW51bVtlLmxqIHx8IDJdKSwKICAgICAgICAgICAgICAgIGkuc2V0QXR0cmlidXRlKCJmaWxsLW9wYWNpdHkiLCAiMCIpLAogICAgICAgICAgICAgICAgZS5saiA9PT0gMSAmJiBpLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW1pdGVybGltaXQiLCBlLm1sKSksCiAgICAgICAgICAgICAgZS5yID09PSAyICYmIGkuc2V0QXR0cmlidXRlKCJmaWxsLXJ1bGUiLCAiZXZlbm9kZCIpLAogICAgICAgICAgICAgIGUubG4gJiYgaS5zZXRBdHRyaWJ1dGUoImlkIiwgZS5sbiksCiAgICAgICAgICAgICAgZS5jbCAmJiBpLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCBlLmNsKSwKICAgICAgICAgICAgICBlLmJtICYmIChpLnN0eWxlWyJtaXgtYmxlbmQtbW9kZSJdID0gZ2V0QmxlbmRNb2RlKGUuYm0pKSwKICAgICAgICAgICAgICB0aGlzLnN0eWxlc0xpc3QucHVzaChuKSwKICAgICAgICAgICAgICB0aGlzLmFkZFRvQW5pbWF0ZWRDb250ZW50cyhlLCByKSwKICAgICAgICAgICAgICByCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUdyb3VwRWxlbWVudCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0ID0gbmV3IFNoYXBlR3JvdXBEYXRhKCk7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgZS5sbiAmJiB0LmdyLnNldEF0dHJpYnV0ZSgiaWQiLCBlLmxuKSwKICAgICAgICAgICAgICBlLmNsICYmIHQuZ3Iuc2V0QXR0cmlidXRlKCJjbGFzcyIsIGUuY2wpLAogICAgICAgICAgICAgIGUuYm0gJiYgKHQuZ3Iuc3R5bGVbIm1peC1ibGVuZC1tb2RlIl0gPSBnZXRCbGVuZE1vZGUoZS5ibSkpLAogICAgICAgICAgICAgIHQKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlVHJhbnNmb3JtRWxlbWVudCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHZhciByID0gVHJhbnNmb3JtUHJvcGVydHlGYWN0b3J5LmdldFRyYW5zZm9ybVByb3BlcnR5KAogICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBuID0gbmV3IFNWR1RyYW5zZm9ybURhdGEociwgci5vLCB0KTsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkVG9BbmltYXRlZENvbnRlbnRzKGUsIG4pLCBuOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTaGFwZUVsZW1lbnQgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICB2YXIgbiA9IDQ7CiAgICAgICAgICAgIGUudHkgPT09ICJyYyIKICAgICAgICAgICAgICA/IChuID0gNSkKICAgICAgICAgICAgICA6IGUudHkgPT09ICJlbCIKICAgICAgICAgICAgICA/IChuID0gNikKICAgICAgICAgICAgICA6IGUudHkgPT09ICJzciIgJiYgKG4gPSA3KTsKICAgICAgICAgICAgdmFyIGkgPSBuZXcgU1ZHU2hhcGVEYXRhKAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBTaGFwZVByb3BlcnR5RmFjdG9yeS5nZXRTaGFwZVByb3AodGhpcywgZSwgbiwgdGhpcykKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICB0aGlzLnNoYXBlcy5wdXNoKGkpLAogICAgICAgICAgICAgIHRoaXMuYWRkU2hhcGVUb01vZGlmaWVycyhpKSwKICAgICAgICAgICAgICB0aGlzLmFkZFRvQW5pbWF0ZWRDb250ZW50cyhlLCBpKSwKICAgICAgICAgICAgICBpCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLmFkZFRvQW5pbWF0ZWRDb250ZW50cyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIGZvciAodmFyIHIgPSAwLCBuID0gdGhpcy5hbmltYXRlZENvbnRlbnRzLmxlbmd0aDsgciA8IG47ICkgewogICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGVkQ29udGVudHNbcl0uZWxlbWVudCA9PT0gdCkgcmV0dXJuOwogICAgICAgICAgICAgIHIgKz0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLmFuaW1hdGVkQ29udGVudHMucHVzaCh7CiAgICAgICAgICAgICAgZm46IFNWR0VsZW1lbnRzUmVuZGVyZXIuY3JlYXRlUmVuZGVyRnVuY3Rpb24oZSksCiAgICAgICAgICAgICAgZWxlbWVudDogdCwKICAgICAgICAgICAgICBkYXRhOiBlLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuc2V0RWxlbWVudFN0eWxlcyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgIHIgPSBlLnN0eWxlcywKICAgICAgICAgICAgICBuID0gdGhpcy5zdHlsZXNMaXN0Lmxlbmd0aDsKICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IG47IHQgKz0gMSkKICAgICAgICAgICAgICB0aGlzLnN0eWxlc0xpc3RbdF0uY2xvc2VkIHx8IHIucHVzaCh0aGlzLnN0eWxlc0xpc3RbdF0pOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5yZWxvYWRTaGFwZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlOwogICAgICAgICAgICB0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMDsKICAgICAgICAgICAgdmFyIHQgPSB0aGlzLml0ZW1zRGF0YS5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHRoaXMucHJldlZpZXdEYXRhW2VdID0gdGhpcy5pdGVtc0RhdGFbZV07CiAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTaGFwZXMoCiAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc0RhdGEsCiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zRGF0YSwKICAgICAgICAgICAgICAgIHRoaXMucHJldlZpZXdEYXRhLAogICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclVuaXF1ZVNoYXBlcygpLAogICAgICAgICAgICAgICAgdCA9IHRoaXMuZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoLAogICAgICAgICAgICAgICAgZSA9IDA7CiAgICAgICAgICAgICAgZSA8IHQ7CiAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICkKICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzW2VdLmdldFZhbHVlKCk7CiAgICAgICAgICAgIHRoaXMucmVuZGVyTW9kaWZpZXJzKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdTaGFwZUVsZW1lbnQucHJvdG90eXBlLnNlYXJjaFNoYXBlcyA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgZSwKICAgICAgICAgICAgdCwKICAgICAgICAgICAgciwKICAgICAgICAgICAgbiwKICAgICAgICAgICAgaSwKICAgICAgICAgICAgYSwKICAgICAgICAgICAgbwogICAgICAgICAgKSB7CiAgICAgICAgICAgIHZhciBzLAogICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgIHAsCiAgICAgICAgICAgICAgZCwKICAgICAgICAgICAgICBoID0gW10uY29uY2F0KGEpLAogICAgICAgICAgICAgIG0gPSBlLmxlbmd0aCAtIDEsCiAgICAgICAgICAgICAgdiA9IFtdLAogICAgICAgICAgICAgIHkgPSBbXTsKICAgICAgICAgICAgZm9yIChzID0gbTsgcyA+PSAwOyBzIC09IDEpIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoKGQgPSB0aGlzLnNlYXJjaFByb2Nlc3NlZEVsZW1lbnQoZVtzXSkpCiAgICAgICAgICAgICAgICAgID8gKHRbc10gPSByW2QgLSAxXSkKICAgICAgICAgICAgICAgICAgOiAoZVtzXS5fcmVuZGVyID0gbyksCiAgICAgICAgICAgICAgICBlW3NdLnR5ID09PSAiZmwiIHx8CiAgICAgICAgICAgICAgICAgIGVbc10udHkgPT09ICJzdCIgfHwKICAgICAgICAgICAgICAgICAgZVtzXS50eSA9PT0gImdmIiB8fAogICAgICAgICAgICAgICAgICBlW3NdLnR5ID09PSAiZ3MiIHx8CiAgICAgICAgICAgICAgICAgIGVbc10udHkgPT09ICJubyIpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgZAogICAgICAgICAgICAgICAgICA/ICh0W3NdLnN0eWxlLmNsb3NlZCA9ICExKQogICAgICAgICAgICAgICAgICA6ICh0W3NdID0gdGhpcy5jcmVhdGVTdHlsZUVsZW1lbnQoZVtzXSwgaSkpLAogICAgICAgICAgICAgICAgICBlW3NdLl9yZW5kZXIgJiYKICAgICAgICAgICAgICAgICAgICB0W3NdLnN0eWxlLnBFbGVtLnBhcmVudE5vZGUgIT09IG4gJiYKICAgICAgICAgICAgICAgICAgICBuLmFwcGVuZENoaWxkKHRbc10uc3R5bGUucEVsZW0pLAogICAgICAgICAgICAgICAgICB2LnB1c2godFtzXS5zdHlsZSk7CiAgICAgICAgICAgICAgZWxzZSBpZiAoZVtzXS50eSA9PT0gImdyIikgewogICAgICAgICAgICAgICAgaWYgKGQpCiAgICAgICAgICAgICAgICAgIGZvciAodSA9IHRbc10uaXQubGVuZ3RoLCBjID0gMDsgYyA8IHU7IGMgKz0gMSkKICAgICAgICAgICAgICAgICAgICB0W3NdLnByZXZWaWV3RGF0YVtjXSA9IHRbc10uaXRbY107CiAgICAgICAgICAgICAgICBlbHNlIHRbc10gPSB0aGlzLmNyZWF0ZUdyb3VwRWxlbWVudChlW3NdKTsKICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoU2hhcGVzKAogICAgICAgICAgICAgICAgICBlW3NdLml0LAogICAgICAgICAgICAgICAgICB0W3NdLml0LAogICAgICAgICAgICAgICAgICB0W3NdLnByZXZWaWV3RGF0YSwKICAgICAgICAgICAgICAgICAgdFtzXS5nciwKICAgICAgICAgICAgICAgICAgaSArIDEsCiAgICAgICAgICAgICAgICAgIGgsCiAgICAgICAgICAgICAgICAgIG8KICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIGVbc10uX3JlbmRlciAmJgogICAgICAgICAgICAgICAgICAgIHRbc10uZ3IucGFyZW50Tm9kZSAhPT0gbiAmJgogICAgICAgICAgICAgICAgICAgIG4uYXBwZW5kQ2hpbGQodFtzXS5ncik7CiAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICBlW3NdLnR5ID09PSAidHIiCiAgICAgICAgICAgICAgICAgID8gKGQgfHwgKHRbc10gPSB0aGlzLmNyZWF0ZVRyYW5zZm9ybUVsZW1lbnQoZVtzXSwgbikpLAogICAgICAgICAgICAgICAgICAgIChsID0gdFtzXS50cmFuc2Zvcm0pLAogICAgICAgICAgICAgICAgICAgIGgucHVzaChsKSkKICAgICAgICAgICAgICAgICAgOiBlW3NdLnR5ID09PSAic2giIHx8CiAgICAgICAgICAgICAgICAgICAgZVtzXS50eSA9PT0gInJjIiB8fAogICAgICAgICAgICAgICAgICAgIGVbc10udHkgPT09ICJlbCIgfHwKICAgICAgICAgICAgICAgICAgICBlW3NdLnR5ID09PSAic3IiCiAgICAgICAgICAgICAgICAgID8gKGQgfHwgKHRbc10gPSB0aGlzLmNyZWF0ZVNoYXBlRWxlbWVudChlW3NdLCBoLCBpKSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFbGVtZW50U3R5bGVzKHRbc10pKQogICAgICAgICAgICAgICAgICA6IGVbc10udHkgPT09ICJ0bSIgfHwKICAgICAgICAgICAgICAgICAgICBlW3NdLnR5ID09PSAicmQiIHx8CiAgICAgICAgICAgICAgICAgICAgZVtzXS50eSA9PT0gIm1zIiB8fAogICAgICAgICAgICAgICAgICAgIGVbc10udHkgPT09ICJwYiIgfHwKICAgICAgICAgICAgICAgICAgICBlW3NdLnR5ID09PSAienoiIHx8CiAgICAgICAgICAgICAgICAgICAgZVtzXS50eSA9PT0gIm9wIgogICAgICAgICAgICAgICAgICA/IChkCiAgICAgICAgICAgICAgICAgICAgICA/ICgocCA9IHRbc10pLmNsb3NlZCA9ICExKQogICAgICAgICAgICAgICAgICAgICAgOiAoKHAgPSBTaGFwZU1vZGlmaWVycy5nZXRNb2RpZmllcihlW3NdLnR5KSkuaW5pdCgKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAogICAgICAgICAgICAgICAgICAgICAgICAgIGVbc10KICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRbc10gPSBwKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGFwZU1vZGlmaWVycy5wdXNoKHApKSwKICAgICAgICAgICAgICAgICAgICB5LnB1c2gocCkpCiAgICAgICAgICAgICAgICAgIDogZVtzXS50eSA9PT0gInJwIiAmJgogICAgICAgICAgICAgICAgICAgIChkCiAgICAgICAgICAgICAgICAgICAgICA/ICgocCA9IHRbc10pLmNsb3NlZCA9ICEwKQogICAgICAgICAgICAgICAgICAgICAgOiAoKHAgPSBTaGFwZU1vZGlmaWVycy5nZXRNb2RpZmllcihlW3NdLnR5KSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0W3NdID0gcCksCiAgICAgICAgICAgICAgICAgICAgICAgIHAuaW5pdCh0aGlzLCBlLCBzLCB0KSwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGFwZU1vZGlmaWVycy5wdXNoKHApLAogICAgICAgICAgICAgICAgICAgICAgICAobyA9ICExKSksCiAgICAgICAgICAgICAgICAgICAgeS5wdXNoKHApKTsKICAgICAgICAgICAgICB0aGlzLmFkZFByb2Nlc3NlZEVsZW1lbnQoZVtzXSwgcyArIDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAobSA9IHYubGVuZ3RoLCBzID0gMDsgcyA8IG07IHMgKz0gMSkgdltzXS5jbG9zZWQgPSAhMDsKICAgICAgICAgICAgZm9yIChtID0geS5sZW5ndGgsIHMgPSAwOyBzIDwgbTsgcyArPSAxKSB5W3NdLmNsb3NlZCA9ICEwOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJJbm5lckNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlOwogICAgICAgICAgICB0aGlzLnJlbmRlck1vZGlmaWVycygpOwogICAgICAgICAgICB2YXIgdCA9IHRoaXMuc3R5bGVzTGlzdC5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHRoaXMuc3R5bGVzTGlzdFtlXS5yZXNldCgpOwogICAgICAgICAgICBmb3IgKHRoaXMucmVuZGVyU2hhcGUoKSwgZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgKHRoaXMuc3R5bGVzTGlzdFtlXS5fbWRmIHx8IHRoaXMuX2lzRmlyc3RGcmFtZSkgJiYKICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlc0xpc3RbZV0ubXNFbGVtICYmCiAgICAgICAgICAgICAgICAgICh0aGlzLnN0eWxlc0xpc3RbZV0ubXNFbGVtLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAiZCIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZXNMaXN0W2VdLmQKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuc3R5bGVzTGlzdFtlXS5kID0gIk0wIDAiICsgdGhpcy5zdHlsZXNMaXN0W2VdLmQpKSwKICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzTGlzdFtlXS5wRWxlbS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICJkIiwKICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZXNMaXN0W2VdLmQgfHwgIk0wIDAiCiAgICAgICAgICAgICAgICApKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUucmVuZGVyU2hhcGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgciA9IHRoaXMuYW5pbWF0ZWRDb250ZW50cy5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCByOyBlICs9IDEpCiAgICAgICAgICAgICAgKHQgPSB0aGlzLmFuaW1hdGVkQ29udGVudHNbZV0pLAogICAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSB8fCB0LmVsZW1lbnQuX2lzQW5pbWF0ZWQpICYmCiAgICAgICAgICAgICAgICAgIHQuZGF0YSAhPT0gITAgJiYKICAgICAgICAgICAgICAgICAgdC5mbih0LmRhdGEsIHQuZWxlbWVudCwgdGhpcy5faXNGaXJzdEZyYW1lKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5kZXN0cm95QmFzZUVsZW1lbnQoKSwKICAgICAgICAgICAgICAodGhpcy5zaGFwZXNEYXRhID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuaXRlbXNEYXRhID0gbnVsbCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChMZXR0ZXJQcm9wcy5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgICAgICAgKHRoaXMuX21kZi5vID0gITEpLAogICAgICAgICAgICAgICh0aGlzLl9tZGYuc3cgPSAhMSksCiAgICAgICAgICAgICAgKHRoaXMuX21kZi5zYyA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5fbWRmLmZjID0gITEpLAogICAgICAgICAgICAgICh0aGlzLl9tZGYubSA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5fbWRmLnAgPSAhMSk7CiAgICAgICAgICAgIHZhciBvID0gITE7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgdGhpcy5vICE9PSBlICYmICgodGhpcy5vID0gZSksICh0aGlzLl9tZGYubyA9ICEwKSwgKG8gPSAhMCkpLAogICAgICAgICAgICAgIHRoaXMuc3cgIT09IHQgJiYgKCh0aGlzLnN3ID0gdCksICh0aGlzLl9tZGYuc3cgPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICB0aGlzLnNjICE9PSByICYmICgodGhpcy5zYyA9IHIpLCAodGhpcy5fbWRmLnNjID0gITApLCAobyA9ICEwKSksCiAgICAgICAgICAgICAgdGhpcy5mYyAhPT0gbiAmJiAoKHRoaXMuZmMgPSBuKSwgKHRoaXMuX21kZi5mYyA9ICEwKSwgKG8gPSAhMCkpLAogICAgICAgICAgICAgIHRoaXMubSAhPT0gaSAmJiAoKHRoaXMubSA9IGkpLCAodGhpcy5fbWRmLm0gPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICAhYS5sZW5ndGggfHwKICAgICAgICAgICAgICAgICh0aGlzLnBbMF0gPT09IGFbMF0gJiYKICAgICAgICAgICAgICAgICAgdGhpcy5wWzFdID09PSBhWzFdICYmCiAgICAgICAgICAgICAgICAgIHRoaXMucFs0XSA9PT0gYVs0XSAmJgogICAgICAgICAgICAgICAgICB0aGlzLnBbNV0gPT09IGFbNV0gJiYKICAgICAgICAgICAgICAgICAgdGhpcy5wWzEyXSA9PT0gYVsxMl0gJiYKICAgICAgICAgICAgICAgICAgdGhpcy5wWzEzXSA9PT0gYVsxM10pIHx8CiAgICAgICAgICAgICAgICAoKHRoaXMucCA9IGEpLCAodGhpcy5fbWRmLnAgPSAhMCksIChvID0gITApKSwKICAgICAgICAgICAgICBvCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLmRlZmF1bHRCb3hXaWR0aCA9IFswLCAwXSksCiAgICAgICAgICAoVGV4dFByb3BlcnR5LnByb3RvdHlwZS5jb3B5RGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIGZvciAodmFyIHIgaW4gdCkKICAgICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwgcikgJiYgKGVbcl0gPSB0W3JdKTsKICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnNldEN1cnJlbnREYXRhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgZS5fX2NvbXBsZXRlIHx8IHRoaXMuY29tcGxldGVUZXh0RGF0YShlKSwKICAgICAgICAgICAgICAodGhpcy5jdXJyZW50RGF0YSA9IGUpLAogICAgICAgICAgICAgICh0aGlzLmN1cnJlbnREYXRhLmJveFdpZHRoID0KICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudERhdGEuYm94V2lkdGggfHwgdGhpcy5kZWZhdWx0Qm94V2lkdGgpLAogICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnNlYXJjaFByb3BlcnR5ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hLZXlmcmFtZXMoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuc2VhcmNoS2V5ZnJhbWVzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICh0aGlzLmtmID0gdGhpcy5kYXRhLmQuay5sZW5ndGggPiAxKSwKICAgICAgICAgICAgICB0aGlzLmtmICYmIHRoaXMuYWRkRWZmZWN0KHRoaXMuZ2V0S2V5ZnJhbWVWYWx1ZS5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgICB0aGlzLmtmCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLmFkZEVmZmVjdCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuZWZmZWN0c1NlcXVlbmNlLnB1c2goZSksIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLmdldFZhbHVlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICh0aGlzLmVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkICE9PSB0aGlzLmZyYW1lSWQgJiYKICAgICAgICAgICAgICAgIHRoaXMuZWZmZWN0c1NlcXVlbmNlLmxlbmd0aCkgfHwKICAgICAgICAgICAgICBlCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHRoaXMuY3VycmVudERhdGEudCA9IHRoaXMuZGF0YS5kLmtbdGhpcy5rZXlzSW5kZXhdLnMudDsKICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuY3VycmVudERhdGEsCiAgICAgICAgICAgICAgICByID0gdGhpcy5rZXlzSW5kZXg7CiAgICAgICAgICAgICAgaWYgKHRoaXMubG9jaykgdGhpcy5zZXRDdXJyZW50RGF0YSh0aGlzLmN1cnJlbnREYXRhKTsKICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBuOwogICAgICAgICAgICAgICAgKHRoaXMubG9jayA9ICEwKSwgKHRoaXMuX21kZiA9ICExKTsKICAgICAgICAgICAgICAgIHZhciBpID0gdGhpcy5lZmZlY3RzU2VxdWVuY2UubGVuZ3RoLAogICAgICAgICAgICAgICAgICBhID0gZSB8fCB0aGlzLmRhdGEuZC5rW3RoaXMua2V5c0luZGV4XS5zOwogICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkKICAgICAgICAgICAgICAgICAgYSA9CiAgICAgICAgICAgICAgICAgICAgciAhPT0gdGhpcy5rZXlzSW5kZXgKICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5lZmZlY3RzU2VxdWVuY2Vbbl0oYSwgYS50KQogICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmVmZmVjdHNTZXF1ZW5jZVtuXSh0aGlzLmN1cnJlbnREYXRhLCBhLnQpOwogICAgICAgICAgICAgICAgdCAhPT0gYSAmJiB0aGlzLnNldEN1cnJlbnREYXRhKGEpLAogICAgICAgICAgICAgICAgICAodGhpcy52ID0gdGhpcy5jdXJyZW50RGF0YSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnB2ID0gdGhpcy52KSwKICAgICAgICAgICAgICAgICAgKHRoaXMubG9jayA9ICExKSwKICAgICAgICAgICAgICAgICAgKHRoaXMuZnJhbWVJZCA9IHRoaXMuZWxlbS5nbG9iYWxEYXRhLmZyYW1lSWQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoVGV4dFByb3BlcnR5LnByb3RvdHlwZS5nZXRLZXlmcmFtZVZhbHVlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIHZhciBlID0gdGhpcy5kYXRhLmQuaywKICAgICAgICAgICAgICAgIHQgPSB0aGlzLmVsZW0uY29tcC5yZW5kZXJlZEZyYW1lLAogICAgICAgICAgICAgICAgciA9IDAsCiAgICAgICAgICAgICAgICBuID0gZS5sZW5ndGg7CiAgICAgICAgICAgICAgciA8PSBuIC0gMSAmJiAhKHIgPT09IG4gLSAxIHx8IGVbciArIDFdLnQgPiB0KTsKCiAgICAgICAgICAgICkKICAgICAgICAgICAgICByICs9IDE7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgdGhpcy5rZXlzSW5kZXggIT09IHIgJiYgKHRoaXMua2V5c0luZGV4ID0gciksCiAgICAgICAgICAgICAgdGhpcy5kYXRhLmQua1t0aGlzLmtleXNJbmRleF0ucwogICAgICAgICAgICApOwogICAgICAgICAgfSksCiAgICAgICAgICAoVGV4dFByb3BlcnR5LnByb3RvdHlwZS5idWlsZEZpbmFsVGV4dCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgdmFyIHQsIHIsIG4gPSBbXSwgaSA9IDAsIGEgPSBlLmxlbmd0aCwgbyA9ICExLCBzID0gITEsIGMgPSAiIjsKICAgICAgICAgICAgICBpIDwgYTsKCiAgICAgICAgICAgICkKICAgICAgICAgICAgICAobyA9IHMpLAogICAgICAgICAgICAgICAgKHMgPSAhMSksCiAgICAgICAgICAgICAgICAodCA9IGUuY2hhckNvZGVBdChpKSksCiAgICAgICAgICAgICAgICAoYyA9IGUuY2hhckF0KGkpKSwKICAgICAgICAgICAgICAgIEZvbnRNYW5hZ2VyLmlzQ29tYmluZWRDaGFyYWN0ZXIodCkKICAgICAgICAgICAgICAgICAgPyAobyA9ICEwKQogICAgICAgICAgICAgICAgICA6IHQgPj0gNTUyOTYgJiYgdCA8PSA1NjMxOQogICAgICAgICAgICAgICAgICA/IEZvbnRNYW5hZ2VyLmlzUmVnaW9uYWxGbGFnKGUsIGkpCiAgICAgICAgICAgICAgICAgICAgPyAoYyA9IGUuc3Vic3RyKGksIDE0KSkKICAgICAgICAgICAgICAgICAgICA6IChyID0gZS5jaGFyQ29kZUF0KGkgKyAxKSkgPj0gNTYzMjAgJiYKICAgICAgICAgICAgICAgICAgICAgIHIgPD0gNTczNDMgJiYKICAgICAgICAgICAgICAgICAgICAgIChGb250TWFuYWdlci5pc01vZGlmaWVyKHQsIHIpCiAgICAgICAgICAgICAgICAgICAgICAgID8gKChjID0gZS5zdWJzdHIoaSwgMikpLCAobyA9ICEwKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoYyA9IEZvbnRNYW5hZ2VyLmlzRmxhZ0Vtb2ppKGUuc3Vic3RyKGksIDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBlLnN1YnN0cihpLCA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlLnN1YnN0cihpLCAyKSkpCiAgICAgICAgICAgICAgICAgIDogdCA+IDU2MzE5CiAgICAgICAgICAgICAgICAgID8gKChyID0gZS5jaGFyQ29kZUF0KGkgKyAxKSksCiAgICAgICAgICAgICAgICAgICAgRm9udE1hbmFnZXIuaXNWYXJpYXRpb25TZWxlY3Rvcih0KSAmJiAobyA9ICEwKSkKICAgICAgICAgICAgICAgICAgOiBGb250TWFuYWdlci5pc1plcm9XaWR0aEpvaW5lcih0KSAmJiAoKG8gPSAhMCksIChzID0gITApKSwKICAgICAgICAgICAgICAgIG8gPyAoKG5bbi5sZW5ndGggLSAxXSArPSBjKSwgKG8gPSAhMSkpIDogbi5wdXNoKGMpLAogICAgICAgICAgICAgICAgKGkgKz0gYy5sZW5ndGgpOwogICAgICAgICAgICByZXR1cm4gbjsKICAgICAgICAgIH0pLAogICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuY29tcGxldGVUZXh0RGF0YSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGUuX19jb21wbGV0ZSA9ICEwOwogICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICByLAogICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgcywKICAgICAgICAgICAgICBjID0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZm9udE1hbmFnZXIsCiAgICAgICAgICAgICAgdSA9IHRoaXMuZGF0YSwKICAgICAgICAgICAgICBsID0gW10sCiAgICAgICAgICAgICAgcCA9IDAsCiAgICAgICAgICAgICAgZCA9IHUubS5nLAogICAgICAgICAgICAgIGggPSAwLAogICAgICAgICAgICAgIG0gPSAwLAogICAgICAgICAgICAgIHYgPSAwLAogICAgICAgICAgICAgIHkgPSBbXSwKICAgICAgICAgICAgICBnID0gMCwKICAgICAgICAgICAgICBNID0gMCwKICAgICAgICAgICAgICBBID0gYy5nZXRGb250QnlOYW1lKGUuZiksCiAgICAgICAgICAgICAgXyA9IDAsCiAgICAgICAgICAgICAgQyA9IGdldEZvbnRQcm9wZXJ0aWVzKEEpOwogICAgICAgICAgICAoZS5mV2VpZ2h0ID0gQy53ZWlnaHQpLAogICAgICAgICAgICAgIChlLmZTdHlsZSA9IEMuc3R5bGUpLAogICAgICAgICAgICAgIChlLmZpbmFsU2l6ZSA9IGUucyksCiAgICAgICAgICAgICAgKGUuZmluYWxUZXh0ID0gdGhpcy5idWlsZEZpbmFsVGV4dChlLnQpKSwKICAgICAgICAgICAgICAociA9IGUuZmluYWxUZXh0Lmxlbmd0aCksCiAgICAgICAgICAgICAgKGUuZmluYWxMaW5lSGVpZ2h0ID0gZS5saCk7CiAgICAgICAgICAgIHZhciBSLAogICAgICAgICAgICAgIEwgPSAoZS50ciAvIDFlMykgKiBlLmZpbmFsU2l6ZTsKICAgICAgICAgICAgaWYgKGUuc3opCiAgICAgICAgICAgICAgZm9yICh2YXIgTiwgVywgayA9ICEwLCBxID0gZS5zelswXSwgSCA9IGUuc3pbMV07IGs7ICkgewogICAgICAgICAgICAgICAgKE4gPSAwKSwKICAgICAgICAgICAgICAgICAgKGcgPSAwKSwKICAgICAgICAgICAgICAgICAgKHIgPSAoVyA9IHRoaXMuYnVpbGRGaW5hbFRleHQoZS50KSkubGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgKEwgPSAoZS50ciAvIDFlMykgKiBlLmZpbmFsU2l6ZSk7CiAgICAgICAgICAgICAgICB2YXIgWCA9IC0xOwogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgKFIgPSBXW3RdLmNoYXJDb2RlQXQoMCkpLAogICAgICAgICAgICAgICAgICAgIChuID0gITEpLAogICAgICAgICAgICAgICAgICAgIFdbdF0gPT09ICIgIgogICAgICAgICAgICAgICAgICAgICAgPyAoWCA9IHQpCiAgICAgICAgICAgICAgICAgICAgICA6IChSICE9PSAxMyAmJiBSICE9PSAzKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoKGcgPSAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgKG4gPSAhMCksCiAgICAgICAgICAgICAgICAgICAgICAgIChOICs9IGUuZmluYWxMaW5lSGVpZ2h0IHx8IDEuMiAqIGUuZmluYWxTaXplKSksCiAgICAgICAgICAgICAgICAgICAgYy5jaGFycwogICAgICAgICAgICAgICAgICAgICAgPyAoKHMgPSBjLmdldENoYXJEYXRhKFdbdF0sIEEuZlN0eWxlLCBBLmZGYW1pbHkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKF8gPSBuID8gMCA6IChzLncgKiBlLmZpbmFsU2l6ZSkgLyAxMDApKQogICAgICAgICAgICAgICAgICAgICAgOiAoXyA9IGMubWVhc3VyZVRleHQoV1t0XSwgZS5mLCBlLmZpbmFsU2l6ZSkpLAogICAgICAgICAgICAgICAgICAgIGcgKyBfID4gcSAmJiBXW3RdICE9PSAiICIKICAgICAgICAgICAgICAgICAgICAgID8gKFggPT09IC0xID8gKHIgKz0gMSkgOiAodCA9IFgpLAogICAgICAgICAgICAgICAgICAgICAgICAoTiArPSBlLmZpbmFsTGluZUhlaWdodCB8fCAxLjIgKiBlLmZpbmFsU2l6ZSksCiAgICAgICAgICAgICAgICAgICAgICAgIFcuc3BsaWNlKHQsIFggPT09IHQgPyAxIDogMCwgIlxyIiksCiAgICAgICAgICAgICAgICAgICAgICAgIChYID0gLTEpLAogICAgICAgICAgICAgICAgICAgICAgICAoZyA9IDApKQogICAgICAgICAgICAgICAgICAgICAgOiAoKGcgKz0gXyksIChnICs9IEwpKTsKICAgICAgICAgICAgICAgIChOICs9IChBLmFzY2VudCAqIGUuZmluYWxTaXplKSAvIDEwMCksCiAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVzaXplICYmIGUuZmluYWxTaXplID4gdGhpcy5taW5pbXVtRm9udFNpemUgJiYgSCA8IE4KICAgICAgICAgICAgICAgICAgICA/ICgoZS5maW5hbFNpemUgLT0gMSksCiAgICAgICAgICAgICAgICAgICAgICAoZS5maW5hbExpbmVIZWlnaHQgPSAoZS5maW5hbFNpemUgKiBlLmxoKSAvIGUucykpCiAgICAgICAgICAgICAgICAgICAgOiAoKGUuZmluYWxUZXh0ID0gVyksIChyID0gZS5maW5hbFRleHQubGVuZ3RoKSwgKGsgPSAhMSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgKGcgPSAtTCksIChfID0gMCk7CiAgICAgICAgICAgIHZhciBVLAogICAgICAgICAgICAgIHRlID0gMDsKICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoKG4gPSAhMSksCiAgICAgICAgICAgICAgICAoUiA9IChVID0gZS5maW5hbFRleHRbdF0pLmNoYXJDb2RlQXQoMCkpID09PSAxMyB8fCBSID09PSAzCiAgICAgICAgICAgICAgICAgID8gKCh0ZSA9IDApLAogICAgICAgICAgICAgICAgICAgIHkucHVzaChnKSwKICAgICAgICAgICAgICAgICAgICAoTSA9IGcgPiBNID8gZyA6IE0pLAogICAgICAgICAgICAgICAgICAgIChnID0gLTIgKiBMKSwKICAgICAgICAgICAgICAgICAgICAoaSA9ICIiKSwKICAgICAgICAgICAgICAgICAgICAobiA9ICEwKSwKICAgICAgICAgICAgICAgICAgICAodiArPSAxKSkKICAgICAgICAgICAgICAgICAgOiAoaSA9IFUpLAogICAgICAgICAgICAgICAgYy5jaGFycwogICAgICAgICAgICAgICAgICA/ICgocyA9IGMuZ2V0Q2hhckRhdGEoCiAgICAgICAgICAgICAgICAgICAgICBVLAogICAgICAgICAgICAgICAgICAgICAgQS5mU3R5bGUsCiAgICAgICAgICAgICAgICAgICAgICBjLmdldEZvbnRCeU5hbWUoZS5mKS5mRmFtaWx5CiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgKF8gPSBuID8gMCA6IChzLncgKiBlLmZpbmFsU2l6ZSkgLyAxMDApKQogICAgICAgICAgICAgICAgICA6IChfID0gYy5tZWFzdXJlVGV4dChpLCBlLmYsIGUuZmluYWxTaXplKSksCiAgICAgICAgICAgICAgICBVID09PSAiICIgPyAodGUgKz0gXyArIEwpIDogKChnICs9IF8gKyBMICsgdGUpLCAodGUgPSAwKSksCiAgICAgICAgICAgICAgICBsLnB1c2goewogICAgICAgICAgICAgICAgICBsOiBfLAogICAgICAgICAgICAgICAgICBhbjogXywKICAgICAgICAgICAgICAgICAgYWRkOiBoLAogICAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgICBhbkluZGV4ZXM6IFtdLAogICAgICAgICAgICAgICAgICB2YWw6IGksCiAgICAgICAgICAgICAgICAgIGxpbmU6IHYsCiAgICAgICAgICAgICAgICAgIGFuaW1hdG9ySnVzdGlmeU9mZnNldDogMCwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgZCA9PSAyKQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKCgoaCArPSBfKSwgaSA9PT0gIiIgfHwgaSA9PT0gIiAiIHx8IHQgPT09IHIgLSAxKSkgewogICAgICAgICAgICAgICAgICBmb3IgKChpICE9PSAiIiAmJiBpICE9PSAiICIpIHx8IChoIC09IF8pOyBtIDw9IHQ7ICkKICAgICAgICAgICAgICAgICAgICAobFttXS5hbiA9IGgpLCAobFttXS5pbmQgPSBwKSwgKGxbbV0uZXh0cmEgPSBfKSwgKG0gKz0gMSk7CiAgICAgICAgICAgICAgICAgIChwICs9IDEpLCAoaCA9IDApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSBpZiAoZCA9PSAzKSB7CiAgICAgICAgICAgICAgICBpZiAoKChoICs9IF8pLCBpID09PSAiIiB8fCB0ID09PSByIC0gMSkpIHsKICAgICAgICAgICAgICAgICAgZm9yIChpID09PSAiIiAmJiAoaCAtPSBfKTsgbSA8PSB0OyApCiAgICAgICAgICAgICAgICAgICAgKGxbbV0uYW4gPSBoKSwgKGxbbV0uaW5kID0gcCksIChsW21dLmV4dHJhID0gXyksIChtICs9IDEpOwogICAgICAgICAgICAgICAgICAoaCA9IDApLCAocCArPSAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgKGxbcF0uaW5kID0gcCksIChsW3BdLmV4dHJhID0gMCksIChwICs9IDEpOwogICAgICAgICAgICBpZiAoKChlLmwgPSBsKSwgKE0gPSBnID4gTSA/IGcgOiBNKSwgeS5wdXNoKGcpLCBlLnN6KSkKICAgICAgICAgICAgICAoZS5ib3hXaWR0aCA9IGUuc3pbMF0pLCAoZS5qdXN0aWZ5T2Zmc2V0ID0gMCk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBzd2l0Y2ggKCgoZS5ib3hXaWR0aCA9IE0pLCBlLmopKSB7CiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgIGUuanVzdGlmeU9mZnNldCA9IC1lLmJveFdpZHRoOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgZS5qdXN0aWZ5T2Zmc2V0ID0gLWUuYm94V2lkdGggLyAyOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIGUuanVzdGlmeU9mZnNldCA9IDA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBlLmxpbmVXaWR0aHMgPSB5OwogICAgICAgICAgICB2YXIgb2UsCiAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgRiwKICAgICAgICAgICAgICBZLAogICAgICAgICAgICAgIGZlID0gdS5hOwogICAgICAgICAgICBvID0gZmUubGVuZ3RoOwogICAgICAgICAgICB2YXIgRyA9IFtdOwogICAgICAgICAgICBmb3IgKGEgPSAwOyBhIDwgbzsgYSArPSAxKSB7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIChvZSA9IGZlW2FdKS5hLnNjICYmIChlLnN0cm9rZUNvbG9yQW5pbSA9ICEwKSwKICAgICAgICAgICAgICAgICAgb2UuYS5zdyAmJiAoZS5zdHJva2VXaWR0aEFuaW0gPSAhMCksCiAgICAgICAgICAgICAgICAgIChvZS5hLmZjIHx8IG9lLmEuZmggfHwgb2UuYS5mcyB8fCBvZS5hLmZiKSAmJgogICAgICAgICAgICAgICAgICAgIChlLmZpbGxDb2xvckFuaW0gPSAhMCksCiAgICAgICAgICAgICAgICAgIFkgPSAwLAogICAgICAgICAgICAgICAgICBGID0gb2Uucy5iLAogICAgICAgICAgICAgICAgICB0ID0gMDsKICAgICAgICAgICAgICAgIHQgPCByOwogICAgICAgICAgICAgICAgdCArPSAxCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKCh5ZSA9IGxbdF0pLmFuSW5kZXhlc1thXSA9IFkpLAogICAgICAgICAgICAgICAgICAoKEYgPT0gMSAmJiB5ZS52YWwgIT09ICIiKSB8fAogICAgICAgICAgICAgICAgICAgIChGID09IDIgJiYgeWUudmFsICE9PSAiIiAmJiB5ZS52YWwgIT09ICIgIikgfHwKICAgICAgICAgICAgICAgICAgICAoRiA9PSAzICYmICh5ZS5uIHx8IHllLnZhbCA9PSAiICIgfHwgdCA9PSByIC0gMSkpIHx8CiAgICAgICAgICAgICAgICAgICAgKEYgPT0gNCAmJiAoeWUubiB8fCB0ID09IHIgLSAxKSkpICYmCiAgICAgICAgICAgICAgICAgICAgKG9lLnMucm4gPT09IDEgJiYgRy5wdXNoKFkpLCAoWSArPSAxKSk7CiAgICAgICAgICAgICAgdS5hW2FdLnMudG90YWxDaGFycyA9IFk7CiAgICAgICAgICAgICAgdmFyIHNlLAogICAgICAgICAgICAgICAgQiA9IC0xOwogICAgICAgICAgICAgIGlmIChvZS5zLnJuID09PSAxKQogICAgICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkKICAgICAgICAgICAgICAgICAgQiAhPSAoeWUgPSBsW3RdKS5hbkluZGV4ZXNbYV0gJiYKICAgICAgICAgICAgICAgICAgICAoKEIgPSB5ZS5hbkluZGV4ZXNbYV0pLAogICAgICAgICAgICAgICAgICAgIChzZSA9IEcuc3BsaWNlKAogICAgICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRy5sZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgIClbMF0pKSwKICAgICAgICAgICAgICAgICAgICAoeWUuYW5JbmRleGVzW2FdID0gc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChlLnlPZmZzZXQgPSBlLmZpbmFsTGluZUhlaWdodCB8fCAxLjIgKiBlLmZpbmFsU2l6ZSksCiAgICAgICAgICAgICAgKGUubHMgPSBlLmxzIHx8IDApLAogICAgICAgICAgICAgIChlLmFzY2VudCA9IChBLmFzY2VudCAqIGUuZmluYWxTaXplKSAvIDEwMCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnVwZGF0ZURvY3VtZW50RGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHQgPSB0ID09PSB2b2lkIDAgPyB0aGlzLmtleXNJbmRleCA6IHQ7CiAgICAgICAgICAgIHZhciByID0gdGhpcy5jb3B5RGF0YSh7fSwgdGhpcy5kYXRhLmQua1t0XS5zKTsKICAgICAgICAgICAgKHIgPSB0aGlzLmNvcHlEYXRhKHIsIGUpKSwKICAgICAgICAgICAgICAodGhpcy5kYXRhLmQua1t0XS5zID0gciksCiAgICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZSh0KSwKICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnREYXRhKHIpLAogICAgICAgICAgICAgIHRoaXMuZWxlbS5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnJlY2FsY3VsYXRlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmRhdGEuZC5rW2VdLnM7CiAgICAgICAgICAgICh0Ll9fY29tcGxldGUgPSAhMSksCiAgICAgICAgICAgICAgKHRoaXMua2V5c0luZGV4ID0gMCksCiAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSA9ICEwKSwKICAgICAgICAgICAgICB0aGlzLmdldFZhbHVlKHQpOwogICAgICAgICAgfSksCiAgICAgICAgICAoVGV4dFByb3BlcnR5LnByb3RvdHlwZS5jYW5SZXNpemVGb250ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgKHRoaXMuY2FuUmVzaXplID0gZSksCiAgICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZSh0aGlzLmtleXNJbmRleCksCiAgICAgICAgICAgICAgdGhpcy5lbGVtLmFkZER5bmFtaWNQcm9wZXJ0eSh0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFRleHRQcm9wZXJ0eS5wcm90b3R5cGUuc2V0TWluaW11bUZvbnRTaXplID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgKHRoaXMubWluaW11bUZvbnRTaXplID0gTWF0aC5mbG9vcihlKSB8fCAxKSwKICAgICAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlKHRoaXMua2V5c0luZGV4KSwKICAgICAgICAgICAgICB0aGlzLmVsZW0uYWRkRHluYW1pY1Byb3BlcnR5KHRoaXMpOwogICAgICAgICAgfSk7CiAgICAgICAgdmFyIFRleHRTZWxlY3RvclByb3AgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGUgPSBNYXRoLm1heCwKICAgICAgICAgICAgdCA9IE1hdGgubWluLAogICAgICAgICAgICByID0gTWF0aC5mbG9vcjsKICAgICAgICAgIGZ1bmN0aW9uIG4oaSwgYSkgewogICAgICAgICAgICAodGhpcy5fY3VycmVudFRleHRMZW5ndGggPSAtMSksCiAgICAgICAgICAgICAgKHRoaXMuayA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5kYXRhID0gYSksCiAgICAgICAgICAgICAgKHRoaXMuZWxlbSA9IGkpLAogICAgICAgICAgICAgICh0aGlzLmNvbXAgPSBpLmNvbXApLAogICAgICAgICAgICAgICh0aGlzLmZpbmFsUyA9IDApLAogICAgICAgICAgICAgICh0aGlzLmZpbmFsRSA9IDApLAogICAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihpKSwKICAgICAgICAgICAgICAodGhpcy5zID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYS5zIHx8IHsgazogMCB9LAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMuZSA9CiAgICAgICAgICAgICAgICAiZSIgaW4gYQogICAgICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKGksIGEuZSwgMCwgMCwgdGhpcykKICAgICAgICAgICAgICAgICAgOiB7IHY6IDEwMCB9KSwKICAgICAgICAgICAgICAodGhpcy5vID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYS5vIHx8IHsgazogMCB9LAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMueGUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhLnhlIHx8IHsgazogMCB9LAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMubmUgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhLm5lIHx8IHsgazogMCB9LAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMuc20gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhLnNtIHx8IHsgazogMTAwIH0sCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAodGhpcy5hID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoaSwgYS5hLCAwLCAwLjAxLCB0aGlzKSksCiAgICAgICAgICAgICAgdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGggfHwgdGhpcy5nZXRWYWx1ZSgpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgKG4ucHJvdG90eXBlID0gewogICAgICAgICAgICAgIGdldE11bHQ6IGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50VGV4dExlbmd0aCAhPT0KICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtLnRleHRQcm9wZXJ0eS5jdXJyZW50RGF0YS5sLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmdldFZhbHVlKCk7CiAgICAgICAgICAgICAgICB2YXIgYSA9IDAsCiAgICAgICAgICAgICAgICAgIG8gPSAwLAogICAgICAgICAgICAgICAgICBzID0gMSwKICAgICAgICAgICAgICAgICAgYyA9IDE7CiAgICAgICAgICAgICAgICB0aGlzLm5lLnYgPiAwID8gKGEgPSB0aGlzLm5lLnYgLyAxMDApIDogKG8gPSAtdGhpcy5uZS52IC8gMTAwKSwKICAgICAgICAgICAgICAgICAgdGhpcy54ZS52ID4gMAogICAgICAgICAgICAgICAgICAgID8gKHMgPSAxIC0gdGhpcy54ZS52IC8gMTAwKQogICAgICAgICAgICAgICAgICAgIDogKGMgPSAxICsgdGhpcy54ZS52IC8gMTAwKTsKICAgICAgICAgICAgICAgIHZhciB1ID0gQmV6aWVyRmFjdG9yeS5nZXRCZXppZXJFYXNpbmcoYSwgbywgcywgYykuZ2V0LAogICAgICAgICAgICAgICAgICBsID0gMCwKICAgICAgICAgICAgICAgICAgcCA9IHRoaXMuZmluYWxTLAogICAgICAgICAgICAgICAgICBkID0gdGhpcy5maW5hbEUsCiAgICAgICAgICAgICAgICAgIGggPSB0aGlzLmRhdGEuc2g7CiAgICAgICAgICAgICAgICBpZiAoaCA9PT0gMikKICAgICAgICAgICAgICAgICAgbCA9IHUoCiAgICAgICAgICAgICAgICAgICAgKGwgPQogICAgICAgICAgICAgICAgICAgICAgZCA9PT0gcAogICAgICAgICAgICAgICAgICAgICAgICA/IGkgPj0gZAogICAgICAgICAgICAgICAgICAgICAgICAgID8gMQogICAgICAgICAgICAgICAgICAgICAgICAgIDogMAogICAgICAgICAgICAgICAgICAgICAgICA6IGUoMCwgdCgwLjUgLyAoZCAtIHApICsgKGkgLSBwKSAvIChkIC0gcCksIDEpKSkKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKGggPT09IDMpCiAgICAgICAgICAgICAgICAgIGwgPSB1KAogICAgICAgICAgICAgICAgICAgIChsID0KICAgICAgICAgICAgICAgICAgICAgIGQgPT09IHAKICAgICAgICAgICAgICAgICAgICAgICAgPyBpID49IGQKICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAKICAgICAgICAgICAgICAgICAgICAgICAgICA6IDEKICAgICAgICAgICAgICAgICAgICAgICAgOiAxIC0gZSgwLCB0KDAuNSAvIChkIC0gcCkgKyAoaSAtIHApIC8gKGQgLSBwKSwgMSkpKQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgZWxzZSBpZiAoaCA9PT0gNCkKICAgICAgICAgICAgICAgICAgZCA9PT0gcAogICAgICAgICAgICAgICAgICAgID8gKGwgPSAwKQogICAgICAgICAgICAgICAgICAgIDogKGwgPSBlKDAsIHQoMC41IC8gKGQgLSBwKSArIChpIC0gcCkgLyAoZCAtIHApLCAxKSkpIDwgMC41CiAgICAgICAgICAgICAgICAgICAgPyAobCAqPSAyKQogICAgICAgICAgICAgICAgICAgIDogKGwgPSAxIC0gMiAqIChsIC0gMC41KSksCiAgICAgICAgICAgICAgICAgICAgKGwgPSB1KGwpKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKGggPT09IDUpIHsKICAgICAgICAgICAgICAgICAgaWYgKGQgPT09IHApIGwgPSAwOwogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YXIgbSA9IGQgLSBwLAogICAgICAgICAgICAgICAgICAgICAgdiA9IC1tIC8gMiArIChpID0gdChlKDAsIGkgKyAwLjUgLSBwKSwgZCAtIHApKSwKICAgICAgICAgICAgICAgICAgICAgIHkgPSBtIC8gMjsKICAgICAgICAgICAgICAgICAgICBsID0gTWF0aC5zcXJ0KDEgLSAodiAqIHYpIC8gKHkgKiB5KSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgbCA9IHUobCk7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgaCA9PT0gNgogICAgICAgICAgICAgICAgICAgID8gKGQgPT09IHAKICAgICAgICAgICAgICAgICAgICAgICAgPyAobCA9IDApCiAgICAgICAgICAgICAgICAgICAgICAgIDogKChpID0gdChlKDAsIGkgKyAwLjUgLSBwKSwgZCAtIHApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAobCA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguY29zKE1hdGguUEkgKyAoMiAqIE1hdGguUEkgKiBpKSAvIChkIC0gcCkpKSAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKSksCiAgICAgICAgICAgICAgICAgICAgICAobCA9IHUobCkpKQogICAgICAgICAgICAgICAgICAgIDogKGkgPj0gcihwKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAobCA9IGUoMCwgdChpIC0gcCA8IDAgPyB0KGQsIDEpIC0gKHAgLSBpKSA6IGQgLSBpLCAxKSkpLAogICAgICAgICAgICAgICAgICAgICAgKGwgPSB1KGwpKSk7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5zbS52ICE9PSAxMDApIHsKICAgICAgICAgICAgICAgICAgdmFyIGcgPSAwLjAxICogdGhpcy5zbS52OwogICAgICAgICAgICAgICAgICBnID09PSAwICYmIChnID0gMWUtOCk7CiAgICAgICAgICAgICAgICAgIHZhciBNID0gMC41IC0gMC41ICogZzsKICAgICAgICAgICAgICAgICAgbCA8IE0gPyAobCA9IDApIDogKGwgPSAobCAtIE0pIC8gZykgPiAxICYmIChsID0gMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gbCAqIHRoaXMuYS52OwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgZ2V0VmFsdWU6IGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpLAogICAgICAgICAgICAgICAgICAodGhpcy5fbWRmID0gaSB8fCB0aGlzLl9tZGYpLAogICAgICAgICAgICAgICAgICAodGhpcy5fY3VycmVudFRleHRMZW5ndGggPQogICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS50ZXh0UHJvcGVydHkuY3VycmVudERhdGEubC5sZW5ndGggfHwgMCksCiAgICAgICAgICAgICAgICAgIGkgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEuciA9PT0gMiAmJgogICAgICAgICAgICAgICAgICAgICh0aGlzLmUudiA9IHRoaXMuX2N1cnJlbnRUZXh0TGVuZ3RoKTsKICAgICAgICAgICAgICAgIHZhciBhID0gdGhpcy5kYXRhLnIgPT09IDIgPyAxIDogMTAwIC8gdGhpcy5kYXRhLnRvdGFsQ2hhcnMsCiAgICAgICAgICAgICAgICAgIG8gPSB0aGlzLm8udiAvIGEsCiAgICAgICAgICAgICAgICAgIHMgPSB0aGlzLnMudiAvIGEgKyBvLAogICAgICAgICAgICAgICAgICBjID0gdGhpcy5lLnYgLyBhICsgbzsKICAgICAgICAgICAgICAgIGlmIChzID4gYykgewogICAgICAgICAgICAgICAgICB2YXIgdSA9IHM7CiAgICAgICAgICAgICAgICAgIChzID0gYyksIChjID0gdSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAodGhpcy5maW5hbFMgPSBzKSwgKHRoaXMuZmluYWxFID0gYyk7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbRHluYW1pY1Byb3BlcnR5Q29udGFpbmVyXSwgbiksCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBnZXRUZXh0U2VsZWN0b3JQcm9wOiBmdW5jdGlvbiAoaSwgYSwgbykgewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBuKGksIGEsIG8pOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0KICAgICAgICAgICk7CiAgICAgICAgfSkoKTsKICAgICAgICBmdW5jdGlvbiBUZXh0QW5pbWF0b3JEYXRhUHJvcGVydHkoZSwgdCwgcikgewogICAgICAgICAgdmFyIG4gPSB7IHByb3BUeXBlOiAhMSB9LAogICAgICAgICAgICBpID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AsCiAgICAgICAgICAgIGEgPSB0LmE7CiAgICAgICAgICAodGhpcy5hID0gewogICAgICAgICAgICByOiBhLnIgPyBpKGUsIGEuciwgMCwgZGVnVG9SYWRzLCByKSA6IG4sCiAgICAgICAgICAgIHJ4OiBhLnJ4ID8gaShlLCBhLnJ4LCAwLCBkZWdUb1JhZHMsIHIpIDogbiwKICAgICAgICAgICAgcnk6IGEucnkgPyBpKGUsIGEucnksIDAsIGRlZ1RvUmFkcywgcikgOiBuLAogICAgICAgICAgICBzazogYS5zayA/IGkoZSwgYS5zaywgMCwgZGVnVG9SYWRzLCByKSA6IG4sCiAgICAgICAgICAgIHNhOiBhLnNhID8gaShlLCBhLnNhLCAwLCBkZWdUb1JhZHMsIHIpIDogbiwKICAgICAgICAgICAgczogYS5zID8gaShlLCBhLnMsIDEsIDAuMDEsIHIpIDogbiwKICAgICAgICAgICAgYTogYS5hID8gaShlLCBhLmEsIDEsIDAsIHIpIDogbiwKICAgICAgICAgICAgbzogYS5vID8gaShlLCBhLm8sIDAsIDAuMDEsIHIpIDogbiwKICAgICAgICAgICAgcDogYS5wID8gaShlLCBhLnAsIDEsIDAsIHIpIDogbiwKICAgICAgICAgICAgc3c6IGEuc3cgPyBpKGUsIGEuc3csIDAsIDAsIHIpIDogbiwKICAgICAgICAgICAgc2M6IGEuc2MgPyBpKGUsIGEuc2MsIDEsIDAsIHIpIDogbiwKICAgICAgICAgICAgZmM6IGEuZmMgPyBpKGUsIGEuZmMsIDEsIDAsIHIpIDogbiwKICAgICAgICAgICAgZmg6IGEuZmggPyBpKGUsIGEuZmgsIDAsIDAsIHIpIDogbiwKICAgICAgICAgICAgZnM6IGEuZnMgPyBpKGUsIGEuZnMsIDAsIDAuMDEsIHIpIDogbiwKICAgICAgICAgICAgZmI6IGEuZmIgPyBpKGUsIGEuZmIsIDAsIDAuMDEsIHIpIDogbiwKICAgICAgICAgICAgdDogYS50ID8gaShlLCBhLnQsIDAsIDAsIHIpIDogbiwKICAgICAgICAgIH0pLAogICAgICAgICAgICAodGhpcy5zID0gVGV4dFNlbGVjdG9yUHJvcC5nZXRUZXh0U2VsZWN0b3JQcm9wKGUsIHQucywgcikpLAogICAgICAgICAgICAodGhpcy5zLnQgPSB0LnMudCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIFRleHRBbmltYXRvclByb3BlcnR5KGUsIHQsIHIpIHsKICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCksCiAgICAgICAgICAgICh0aGlzLl9oYXNNYXNrZWRQYXRoID0gITEpLAogICAgICAgICAgICAodGhpcy5fZnJhbWVJZCA9IC0xKSwKICAgICAgICAgICAgKHRoaXMuX3RleHREYXRhID0gZSksCiAgICAgICAgICAgICh0aGlzLl9yZW5kZXJUeXBlID0gdCksCiAgICAgICAgICAgICh0aGlzLl9lbGVtID0gciksCiAgICAgICAgICAgICh0aGlzLl9hbmltYXRvcnNEYXRhID0gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLl90ZXh0RGF0YS5hLmxlbmd0aCkpLAogICAgICAgICAgICAodGhpcy5fcGF0aERhdGEgPSB7fSksCiAgICAgICAgICAgICh0aGlzLl9tb3JlT3B0aW9ucyA9IHsgYWxpZ25tZW50OiB7fSB9KSwKICAgICAgICAgICAgKHRoaXMucmVuZGVyZWRMZXR0ZXJzID0gW10pLAogICAgICAgICAgICAodGhpcy5sZXR0ZXJzQ2hhbmdlZEZsYWcgPSAhMSksCiAgICAgICAgICAgIHRoaXMuaW5pdER5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcihyKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gSVRleHRFbGVtZW50KCkge30KICAgICAgICAoVGV4dEFuaW1hdG9yUHJvcGVydHkucHJvdG90eXBlLnNlYXJjaFByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgdCwKICAgICAgICAgICAgciA9IHRoaXMuX3RleHREYXRhLmEubGVuZ3RoLAogICAgICAgICAgICBuID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3A7CiAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgcjsgZSArPSAxKQogICAgICAgICAgICAodCA9IHRoaXMuX3RleHREYXRhLmFbZV0pLAogICAgICAgICAgICAgICh0aGlzLl9hbmltYXRvcnNEYXRhW2VdID0gbmV3IFRleHRBbmltYXRvckRhdGFQcm9wZXJ0eSgKICAgICAgICAgICAgICAgIHRoaXMuX2VsZW0sCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICkpOwogICAgICAgICAgdGhpcy5fdGV4dERhdGEucCAmJiAibSIgaW4gdGhpcy5fdGV4dERhdGEucAogICAgICAgICAgICA/ICgodGhpcy5fcGF0aERhdGEgPSB7CiAgICAgICAgICAgICAgICBhOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAuYSwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICBmOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAuZiwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICBsOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAubCwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICByOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAuciwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICBwOiBuKHRoaXMuX2VsZW0sIHRoaXMuX3RleHREYXRhLnAucCwgMCwgMCwgdGhpcyksCiAgICAgICAgICAgICAgICBtOiB0aGlzLl9lbGVtLm1hc2tNYW5hZ2VyLmdldE1hc2tQcm9wZXJ0eSh0aGlzLl90ZXh0RGF0YS5wLm0pLAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICh0aGlzLl9oYXNNYXNrZWRQYXRoID0gITApKQogICAgICAgICAgICA6ICh0aGlzLl9oYXNNYXNrZWRQYXRoID0gITEpLAogICAgICAgICAgICAodGhpcy5fbW9yZU9wdGlvbnMuYWxpZ25tZW50ID0gbigKICAgICAgICAgICAgICB0aGlzLl9lbGVtLAogICAgICAgICAgICAgIHRoaXMuX3RleHREYXRhLm0uYSwKICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICApKTsKICAgICAgICB9KSwKICAgICAgICAgIChUZXh0QW5pbWF0b3JQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0TWVhc3VyZXMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKCh0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyA9IHQpLAogICAgICAgICAgICAgIHRoaXMuX21kZiB8fAogICAgICAgICAgICAgICAgdGhpcy5faXNGaXJzdEZyYW1lIHx8CiAgICAgICAgICAgICAgICB0IHx8CiAgICAgICAgICAgICAgICAodGhpcy5faGFzTWFza2VkUGF0aCAmJiB0aGlzLl9wYXRoRGF0YS5tLl9tZGYpKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICB0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMTsKICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBzLAogICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgICAgcCwKICAgICAgICAgICAgICAgIGQsCiAgICAgICAgICAgICAgICBoLAogICAgICAgICAgICAgICAgbSwKICAgICAgICAgICAgICAgIHYsCiAgICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgICAgZywKICAgICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgICBBLAogICAgICAgICAgICAgICAgXywKICAgICAgICAgICAgICAgIEMgPSB0aGlzLl9tb3JlT3B0aW9ucy5hbGlnbm1lbnQudiwKICAgICAgICAgICAgICAgIFIgPSB0aGlzLl9hbmltYXRvcnNEYXRhLAogICAgICAgICAgICAgICAgTCA9IHRoaXMuX3RleHREYXRhLAogICAgICAgICAgICAgICAgTiA9IHRoaXMubUhlbHBlciwKICAgICAgICAgICAgICAgIFcgPSB0aGlzLl9yZW5kZXJUeXBlLAogICAgICAgICAgICAgICAgayA9IHRoaXMucmVuZGVyZWRMZXR0ZXJzLmxlbmd0aCwKICAgICAgICAgICAgICAgIHEgPSBlLmw7CiAgICAgICAgICAgICAgaWYgKHRoaXMuX2hhc01hc2tlZFBhdGgpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKChfID0gdGhpcy5fcGF0aERhdGEubSksCiAgICAgICAgICAgICAgICAgICF0aGlzLl9wYXRoRGF0YS5uIHx8IHRoaXMuX3BhdGhEYXRhLl9tZGYpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIEgsCiAgICAgICAgICAgICAgICAgICAgWCA9IF8udjsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRGF0YS5yLnYgJiYgKFggPSBYLnJldmVyc2UoKSksCiAgICAgICAgICAgICAgICAgICAgICBvID0geyB0TGVuZ3RoOiAwLCBzZWdtZW50czogW10gfSwKICAgICAgICAgICAgICAgICAgICAgIGEgPSBYLl9sZW5ndGggLSAxLAogICAgICAgICAgICAgICAgICAgICAgZyA9IDAsCiAgICAgICAgICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgICAgICAgICBpIDwgYTsKICAgICAgICAgICAgICAgICAgICBpICs9IDEKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIChIID0gYmV6LmJ1aWxkQmV6aWVyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgIFgudltpXSwKICAgICAgICAgICAgICAgICAgICAgIFgudltpICsgMV0sCiAgICAgICAgICAgICAgICAgICAgICBbWC5vW2ldWzBdIC0gWC52W2ldWzBdLCBYLm9baV1bMV0gLSBYLnZbaV1bMV1dLAogICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICBYLmlbaSArIDFdWzBdIC0gWC52W2kgKyAxXVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgWC5pW2kgKyAxXVsxXSAtIFgudltpICsgMV1bMV0sCiAgICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAoby50TGVuZ3RoICs9IEguc2VnbWVudExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICBvLnNlZ21lbnRzLnB1c2goSCksCiAgICAgICAgICAgICAgICAgICAgICAoZyArPSBILnNlZ21lbnRMZW5ndGgpOwogICAgICAgICAgICAgICAgICAoaSA9IGEpLAogICAgICAgICAgICAgICAgICAgIF8udi5jICYmCiAgICAgICAgICAgICAgICAgICAgICAoKEggPSBiZXouYnVpbGRCZXppZXJEYXRhKAogICAgICAgICAgICAgICAgICAgICAgICBYLnZbaV0sCiAgICAgICAgICAgICAgICAgICAgICAgIFgudlswXSwKICAgICAgICAgICAgICAgICAgICAgICAgW1gub1tpXVswXSAtIFgudltpXVswXSwgWC5vW2ldWzFdIC0gWC52W2ldWzFdXSwKICAgICAgICAgICAgICAgICAgICAgICAgW1guaVswXVswXSAtIFgudlswXVswXSwgWC5pWzBdWzFdIC0gWC52WzBdWzFdXQogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAoby50TGVuZ3RoICs9IEguc2VnbWVudExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICBvLnNlZ21lbnRzLnB1c2goSCksCiAgICAgICAgICAgICAgICAgICAgICAoZyArPSBILnNlZ21lbnRMZW5ndGgpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5fcGF0aERhdGEucGkgPSBvKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKChvID0gdGhpcy5fcGF0aERhdGEucGkpLAogICAgICAgICAgICAgICAgICAocyA9IHRoaXMuX3BhdGhEYXRhLmYudiksCiAgICAgICAgICAgICAgICAgIChkID0gMCksCiAgICAgICAgICAgICAgICAgIChwID0gMSksCiAgICAgICAgICAgICAgICAgICh1ID0gMCksCiAgICAgICAgICAgICAgICAgIChsID0gITApLAogICAgICAgICAgICAgICAgICAodiA9IG8uc2VnbWVudHMpLAogICAgICAgICAgICAgICAgICBzIDwgMCAmJiBfLnYuYykKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBvLnRMZW5ndGggPCBNYXRoLmFicyhzKSAmJiAocyA9IC1NYXRoLmFicyhzKSAlIG8udExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICBwID0gKG0gPSB2WyhkID0gdi5sZW5ndGggLSAxKV0ucG9pbnRzKS5sZW5ndGggLSAxOwogICAgICAgICAgICAgICAgICAgIHMgPCAwOwoKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIChzICs9IG1bcF0ucGFydGlhbExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAocCAtPSAxKSA8IDAgJiYgKHAgPSAobSA9IHZbKGQgLT0gMSldLnBvaW50cykubGVuZ3RoIC0gMSk7CiAgICAgICAgICAgICAgICAoaCA9IChtID0gdltkXS5wb2ludHMpW3AgLSAxXSksICh5ID0gKGMgPSBtW3BdKS5wYXJ0aWFsTGVuZ3RoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKGEgPSBxLmxlbmd0aCksIChyID0gMCksIChuID0gMCk7CiAgICAgICAgICAgICAgdmFyIFUsCiAgICAgICAgICAgICAgICB0ZSwKICAgICAgICAgICAgICAgIG9lLAogICAgICAgICAgICAgICAgeWUsCiAgICAgICAgICAgICAgICBGLAogICAgICAgICAgICAgICAgWSA9IDEuMiAqIGUuZmluYWxTaXplICogMC43MTQsCiAgICAgICAgICAgICAgICBmZSA9ICEwOwogICAgICAgICAgICAgIG9lID0gUi5sZW5ndGg7CiAgICAgICAgICAgICAgdmFyIEcsCiAgICAgICAgICAgICAgICBzZSwKICAgICAgICAgICAgICAgIEIsCiAgICAgICAgICAgICAgICBELAogICAgICAgICAgICAgICAgUSwKICAgICAgICAgICAgICAgIHJlLAogICAgICAgICAgICAgICAgbmUsCiAgICAgICAgICAgICAgICBoZSwKICAgICAgICAgICAgICAgIE1lLAogICAgICAgICAgICAgICAgZ2UsCiAgICAgICAgICAgICAgICBJLAogICAgICAgICAgICAgICAgTywKICAgICAgICAgICAgICAgIHcgPSAtMSwKICAgICAgICAgICAgICAgIHggPSBzLAogICAgICAgICAgICAgICAgWiA9IGQsCiAgICAgICAgICAgICAgICBwZSA9IHAsCiAgICAgICAgICAgICAgICBtZSA9IC0xLAogICAgICAgICAgICAgICAgeiA9ICIiLAogICAgICAgICAgICAgICAgaiA9IHRoaXMuZGVmYXVsdFByb3BzQXJyYXk7CiAgICAgICAgICAgICAgaWYgKGUuaiA9PT0gMiB8fCBlLmogPT09IDEpIHsKICAgICAgICAgICAgICAgIHZhciBKID0gMCwKICAgICAgICAgICAgICAgICAgYWUgPSAwLAogICAgICAgICAgICAgICAgICB1ZSA9IGUuaiA9PT0gMiA/IC0wLjUgOiAtMSwKICAgICAgICAgICAgICAgICAgaWUgPSAwLAogICAgICAgICAgICAgICAgICBfZSA9ICEwOwogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGE7IGkgKz0gMSkKICAgICAgICAgICAgICAgICAgaWYgKHFbaV0ubikgewogICAgICAgICAgICAgICAgICAgIGZvciAoSiAmJiAoSiArPSBhZSk7IGllIDwgaTsgKQogICAgICAgICAgICAgICAgICAgICAgKHFbaWVdLmFuaW1hdG9ySnVzdGlmeU9mZnNldCA9IEopLCAoaWUgKz0gMSk7CiAgICAgICAgICAgICAgICAgICAgKEogPSAwKSwgKF9lID0gITApOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGZvciAodGUgPSAwOyB0ZSA8IG9lOyB0ZSArPSAxKQogICAgICAgICAgICAgICAgICAgICAgKFUgPSBSW3RlXS5hKS50LnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChfZSAmJiBlLmogPT09IDIgJiYgKGFlICs9IFUudC52ICogdWUpLAogICAgICAgICAgICAgICAgICAgICAgICAoRiA9IFJbdGVdLnMuZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICBxW2ldLmFuSW5kZXhlc1t0ZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgTC5hW3RlXS5zLnRvdGFsQ2hhcnMKICAgICAgICAgICAgICAgICAgICAgICAgKSkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoSiArPSBVLnQudiAqIEZbMF0gKiB1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChKICs9IFUudC52ICogRiAqIHVlKSk7CiAgICAgICAgICAgICAgICAgICAgX2UgPSAhMTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZm9yIChKICYmIChKICs9IGFlKTsgaWUgPCBpOyApCiAgICAgICAgICAgICAgICAgIChxW2llXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgPSBKKSwgKGllICs9IDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYTsgaSArPSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoKE4ucmVzZXQoKSwgKEQgPSAxKSwgcVtpXS5uKSkKICAgICAgICAgICAgICAgICAgKHIgPSAwKSwKICAgICAgICAgICAgICAgICAgICAobiArPSBlLnlPZmZzZXQpLAogICAgICAgICAgICAgICAgICAgIChuICs9IGZlID8gMSA6IDApLAogICAgICAgICAgICAgICAgICAgIChzID0geCksCiAgICAgICAgICAgICAgICAgICAgKGZlID0gITEpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhc01hc2tlZFBhdGggJiYKICAgICAgICAgICAgICAgICAgICAgICgocCA9IHBlKSwKICAgICAgICAgICAgICAgICAgICAgIChoID0gKG0gPSB2WyhkID0gWildLnBvaW50cylbcCAtIDFdKSwKICAgICAgICAgICAgICAgICAgICAgICh5ID0gKGMgPSBtW3BdKS5wYXJ0aWFsTGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgICAgICh1ID0gMCkpLAogICAgICAgICAgICAgICAgICAgICh6ID0gIiIpLAogICAgICAgICAgICAgICAgICAgIChJID0gIiIpLAogICAgICAgICAgICAgICAgICAgIChNZSA9ICIiKSwKICAgICAgICAgICAgICAgICAgICAoTyA9ICIiKSwKICAgICAgICAgICAgICAgICAgICAoaiA9IHRoaXMuZGVmYXVsdFByb3BzQXJyYXkpOwogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oYXNNYXNrZWRQYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKG1lICE9PSBxW2ldLmxpbmUpIHsKICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZS5qKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgICAgICBzICs9IGcgLSBlLmxpbmVXaWR0aHNbcVtpXS5saW5lXTsKICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgICAgICAgIHMgKz0gKGcgLSBlLmxpbmVXaWR0aHNbcVtpXS5saW5lXSkgLyAyOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgbWUgPSBxW2ldLmxpbmU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHcgIT09IHFbaV0uaW5kICYmCiAgICAgICAgICAgICAgICAgICAgICAocVt3XSAmJiAocyArPSBxW3ddLmV4dHJhKSwKICAgICAgICAgICAgICAgICAgICAgIChzICs9IHFbaV0uYW4gLyAyKSwKICAgICAgICAgICAgICAgICAgICAgICh3ID0gcVtpXS5pbmQpKSwKICAgICAgICAgICAgICAgICAgICAgIChzICs9IENbMF0gKiBxW2ldLmFuICogMC4wMDUpOwogICAgICAgICAgICAgICAgICAgIHZhciBPZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgZm9yICh0ZSA9IDA7IHRlIDwgb2U7IHRlICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAoVSA9IFJbdGVdLmEpLnAucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKChGID0gUlt0ZV0ucy5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgIHFbaV0uYW5JbmRleGVzW3RlXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBMLmFbdGVdLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgICApKS5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICA/IChPZSArPSBVLnAudlswXSAqIEZbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoT2UgKz0gVS5wLnZbMF0gKiBGKSksCiAgICAgICAgICAgICAgICAgICAgICAgIFUuYS5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICgoRiA9IFJbdGVdLnMuZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFbaV0uYW5JbmRleGVzW3RlXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwuYVt0ZV0ucy50b3RhbENoYXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChPZSArPSBVLmEudlswXSAqIEZbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChPZSArPSBVLmEudlswXSAqIEYpKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgbCA9ICEwLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRGF0YS5hLnYgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoKHMgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41ICogcVswXS5hbiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGcgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYXRoRGF0YS5mLnYgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjUgKiBxWzBdLmFuIC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41ICogcVtxLmxlbmd0aCAtIDFdLmFuKSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcpIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgLSAxKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHMgKz0gdGhpcy5fcGF0aERhdGEuZi52KSk7CiAgICAgICAgICAgICAgICAgICAgICBsOwoKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICB1ICsgeSA+PSBzICsgT2UgfHwgIW0KICAgICAgICAgICAgICAgICAgICAgICAgPyAoKE0gPSAocyArIE9lIC0gdSkgLyBjLnBhcnRpYWxMZW5ndGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIChzZSA9IGgucG9pbnRbMF0gKyAoYy5wb2ludFswXSAtIGgucG9pbnRbMF0pICogTSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKEIgPSBoLnBvaW50WzFdICsgKGMucG9pbnRbMV0gLSBoLnBvaW50WzFdKSAqIE0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIE4udHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLUNbMF0gKiBxW2ldLmFuICogMC4wMDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtQ1sxXSAqIFkgKiAwLjAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAobCA9ICExKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBtICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1ICs9IGMucGFydGlhbExlbmd0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHAgKz0gMSkgPj0gbS5sZW5ndGggJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocCA9IDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdlsoZCArPSAxKV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobSA9IHZbZF0ucG9pbnRzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF8udi5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKChwID0gMCksIChtID0gdlsoZCA9IDApXS5wb2ludHMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgodSAtPSBjLnBhcnRpYWxMZW5ndGgpLCAobSA9IG51bGwpKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgbSAmJiAoKGggPSBjKSwgKHkgPSAoYyA9IG1bcF0pLnBhcnRpYWxMZW5ndGgpKSk7CiAgICAgICAgICAgICAgICAgICAgKEcgPSBxW2ldLmFuIC8gMiAtIHFbaV0uYWRkKSwgTi50cmFuc2xhdGUoLUcsIDAsIDApOwogICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAoRyA9IHFbaV0uYW4gLyAyIC0gcVtpXS5hZGQpLAogICAgICAgICAgICAgICAgICAgICAgTi50cmFuc2xhdGUoLUcsIDAsIDApLAogICAgICAgICAgICAgICAgICAgICAgTi50cmFuc2xhdGUoLUNbMF0gKiBxW2ldLmFuICogMC4wMDUsIC1DWzFdICogWSAqIDAuMDEsIDApOwogICAgICAgICAgICAgICAgICBmb3IgKHRlID0gMDsgdGUgPCBvZTsgdGUgKz0gMSkKICAgICAgICAgICAgICAgICAgICAoVSA9IFJbdGVdLmEpLnQucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICgoRiA9IFJbdGVdLnMuZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgcVtpXS5hbkluZGV4ZXNbdGVdLAogICAgICAgICAgICAgICAgICAgICAgICBMLmFbdGVdLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICAociA9PT0gMCAmJiBlLmogPT09IDApIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLl9oYXNNYXNrZWRQYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBGLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAocyArPSBVLnQudiAqIEZbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChzICs9IFUudC52ICogRikKICAgICAgICAgICAgICAgICAgICAgICAgICA6IEYubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAociArPSBVLnQudiAqIEZbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAociArPSBVLnQudiAqIEYpKSk7CiAgICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgICAgZS5zdHJva2VXaWR0aEFuaW0gJiYgKHJlID0gZS5zdyB8fCAwKSwKICAgICAgICAgICAgICAgICAgICAgIGUuc3Ryb2tlQ29sb3JBbmltICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChRID0gZS5zYyA/IFtlLnNjWzBdLCBlLnNjWzFdLCBlLnNjWzJdXSA6IFswLCAwLCAwXSksCiAgICAgICAgICAgICAgICAgICAgICBlLmZpbGxDb2xvckFuaW0gJiYKICAgICAgICAgICAgICAgICAgICAgICAgZS5mYyAmJgogICAgICAgICAgICAgICAgICAgICAgICAobmUgPSBbZS5mY1swXSwgZS5mY1sxXSwgZS5mY1syXV0pLAogICAgICAgICAgICAgICAgICAgICAgdGUgPSAwOwogICAgICAgICAgICAgICAgICAgIHRlIDwgb2U7CiAgICAgICAgICAgICAgICAgICAgdGUgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgKFUgPSBSW3RlXS5hKS5hLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAoKEYgPSBSW3RlXS5zLmdldE11bHQoCiAgICAgICAgICAgICAgICAgICAgICAgIHFbaV0uYW5JbmRleGVzW3RlXSwKICAgICAgICAgICAgICAgICAgICAgICAgTC5hW3RlXS5zLnRvdGFsQ2hhcnMKICAgICAgICAgICAgICAgICAgICAgICkpLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICA/IE4udHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLVUuYS52WzBdICogRlswXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1VLmEudlsxXSAqIEZbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVLmEudlsyXSAqIEZbMl0KICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIDogTi50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtVS5hLnZbMF0gKiBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLVUuYS52WzFdICogRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFUuYS52WzJdICogRgogICAgICAgICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgICBmb3IgKHRlID0gMDsgdGUgPCBvZTsgdGUgKz0gMSkKICAgICAgICAgICAgICAgICAgICAoVSA9IFJbdGVdLmEpLnMucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICgoRiA9IFJbdGVdLnMuZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgcVtpXS5hbkluZGV4ZXNbdGVdLAogICAgICAgICAgICAgICAgICAgICAgICBMLmFbdGVdLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgKSkubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgID8gTi5zY2FsZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyAoVS5zLnZbMF0gLSAxKSAqIEZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgKFUucy52WzFdIC0gMSkgKiBGWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgOiBOLnNjYWxlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMSArIChVLnMudlswXSAtIDEpICogRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyAoVS5zLnZbMV0gLSAxKSAqIEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICAgIGZvciAodGUgPSAwOyB0ZSA8IG9lOyB0ZSArPSAxKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKChVID0gUlt0ZV0uYSksCiAgICAgICAgICAgICAgICAgICAgICAoRiA9IFJbdGVdLnMuZ2V0TXVsdCgKICAgICAgICAgICAgICAgICAgICAgICAgcVtpXS5hbkluZGV4ZXNbdGVdLAogICAgICAgICAgICAgICAgICAgICAgICBMLmFbdGVdLnMudG90YWxDaGFycwogICAgICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgICAgICBVLnNrLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChGLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgID8gTi5za2V3RnJvbUF4aXMoLVUuc2sudiAqIEZbMF0sIFUuc2EudiAqIEZbMV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBOLnNrZXdGcm9tQXhpcygtVS5zay52ICogRiwgVS5zYS52ICogRikpLAogICAgICAgICAgICAgICAgICAgICAgVS5yLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChGLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgID8gTi5yb3RhdGVaKC1VLnIudiAqIEZbMl0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBOLnJvdGF0ZVooLVUuci52ICogRikpLAogICAgICAgICAgICAgICAgICAgICAgVS5yeS5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoRi5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICA/IE4ucm90YXRlWShVLnJ5LnYgKiBGWzFdKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogTi5yb3RhdGVZKFUucnkudiAqIEYpKSwKICAgICAgICAgICAgICAgICAgICAgIFUucngucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKEYubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOLnJvdGF0ZVgoVS5yeC52ICogRlswXSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IE4ucm90YXRlWChVLnJ4LnYgKiBGKSksCiAgICAgICAgICAgICAgICAgICAgICBVLm8ucHJvcFR5cGUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKEYubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoRCArPSAoVS5vLnYgKiBGWzBdIC0gRCkgKiBGWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogKEQgKz0gKFUuby52ICogRiAtIEQpICogRikpLAogICAgICAgICAgICAgICAgICAgICAgZS5zdHJva2VXaWR0aEFuaW0gJiYKICAgICAgICAgICAgICAgICAgICAgICAgVS5zdy5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoRi5sZW5ndGggPyAocmUgKz0gVS5zdy52ICogRlswXSkgOiAocmUgKz0gVS5zdy52ICogRikpLAogICAgICAgICAgICAgICAgICAgICAgZS5zdHJva2VDb2xvckFuaW0gJiYgVS5zYy5wcm9wVHlwZSkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICBmb3IgKGhlID0gMDsgaGUgPCAzOyBoZSArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICBGLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgID8gKFFbaGVdICs9IChVLnNjLnZbaGVdIC0gUVtoZV0pICogRlswXSkKICAgICAgICAgICAgICAgICAgICAgICAgICA6IChRW2hlXSArPSAoVS5zYy52W2hlXSAtIFFbaGVdKSAqIEYpOwogICAgICAgICAgICAgICAgICAgIGlmIChlLmZpbGxDb2xvckFuaW0gJiYgZS5mYykgewogICAgICAgICAgICAgICAgICAgICAgaWYgKFUuZmMucHJvcFR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaGUgPSAwOyBoZSA8IDM7IGhlICs9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgRi5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG5lW2hlXSArPSAoVS5mYy52W2hlXSAtIG5lW2hlXSkgKiBGWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAobmVbaGVdICs9IChVLmZjLnZbaGVdIC0gbmVbaGVdKSAqIEYpOwogICAgICAgICAgICAgICAgICAgICAgVS5maC5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAobmUgPSBGLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgID8gYWRkSHVlVG9SR0IobmUsIFUuZmgudiAqIEZbMF0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhZGRIdWVUb1JHQihuZSwgVS5maC52ICogRikpLAogICAgICAgICAgICAgICAgICAgICAgICBVLmZzLnByb3BUeXBlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5lID0gRi5sZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYWRkU2F0dXJhdGlvblRvUkdCKG5lLCBVLmZzLnYgKiBGWzBdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhZGRTYXR1cmF0aW9uVG9SR0IobmUsIFUuZnMudiAqIEYpKSwKICAgICAgICAgICAgICAgICAgICAgICAgVS5mYi5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIChuZSA9IEYubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGFkZEJyaWdodG5lc3NUb1JHQihuZSwgVS5mYi52ICogRlswXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYWRkQnJpZ2h0bmVzc1RvUkdCKG5lLCBVLmZiLnYgKiBGKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGZvciAodGUgPSAwOyB0ZSA8IG9lOyB0ZSArPSAxKQogICAgICAgICAgICAgICAgICAgIChVID0gUlt0ZV0uYSkucC5wcm9wVHlwZSAmJgogICAgICAgICAgICAgICAgICAgICAgKChGID0gUlt0ZV0ucy5nZXRNdWx0KAogICAgICAgICAgICAgICAgICAgICAgICBxW2ldLmFuSW5kZXhlc1t0ZV0sCiAgICAgICAgICAgICAgICAgICAgICAgIEwuYVt0ZV0ucy50b3RhbENoYXJzCiAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhc01hc2tlZFBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgPyBGLmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgID8gTi50cmFuc2xhdGUoMCwgVS5wLnZbMV0gKiBGWzBdLCAtVS5wLnZbMl0gKiBGWzFdKQogICAgICAgICAgICAgICAgICAgICAgICAgIDogTi50cmFuc2xhdGUoMCwgVS5wLnZbMV0gKiBGLCAtVS5wLnZbMl0gKiBGKQogICAgICAgICAgICAgICAgICAgICAgICA6IEYubGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgID8gTi50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVLnAudlswXSAqIEZbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVLnAudlsxXSAqIEZbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtVS5wLnZbMl0gKiBGWzJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICA6IE4udHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVS5wLnZbMF0gKiBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVS5wLnZbMV0gKiBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLVUucC52WzJdICogRgogICAgICAgICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKGUuc3Ryb2tlV2lkdGhBbmltICYmIChNZSA9IHJlIDwgMCA/IDAgOiByZSksCiAgICAgICAgICAgICAgICAgICAgZS5zdHJva2VDb2xvckFuaW0gJiYKICAgICAgICAgICAgICAgICAgICAgIChnZSA9CiAgICAgICAgICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoMjU1ICogUVswXSkgKwogICAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKDI1NSAqIFFbMV0pICsKICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgyNTUgKiBRWzJdKSArCiAgICAgICAgICAgICAgICAgICAgICAgICIpIiksCiAgICAgICAgICAgICAgICAgICAgZS5maWxsQ29sb3JBbmltICYmCiAgICAgICAgICAgICAgICAgICAgICBlLmZjICYmCiAgICAgICAgICAgICAgICAgICAgICAoSSA9CiAgICAgICAgICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoMjU1ICogbmVbMF0pICsKICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgyNTUgKiBuZVsxXSkgKwogICAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKDI1NSAqIG5lWzJdKSArCiAgICAgICAgICAgICAgICAgICAgICAgICIpIiksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFzTWFza2VkUGF0aCkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKE4udHJhbnNsYXRlKDAsIC1lLmxzKSwKICAgICAgICAgICAgICAgICAgICAgIE4udHJhbnNsYXRlKDAsIENbMV0gKiBZICogMC4wMSArIG4sIDApLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGF0aERhdGEucC52KQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgQSA9IChjLnBvaW50WzFdIC0gaC5wb2ludFsxXSkgLyAoYy5wb2ludFswXSAtIGgucG9pbnRbMF0pOwogICAgICAgICAgICAgICAgICAgICAgdmFyIEFlID0gKDE4MCAqIE1hdGguYXRhbihBKSkgLyBNYXRoLlBJOwogICAgICAgICAgICAgICAgICAgICAgYy5wb2ludFswXSA8IGgucG9pbnRbMF0gJiYgKEFlICs9IDE4MCksCiAgICAgICAgICAgICAgICAgICAgICAgIE4ucm90YXRlKCgtQWUgKiBNYXRoLlBJKSAvIDE4MCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIE4udHJhbnNsYXRlKHNlLCBCLCAwKSwKICAgICAgICAgICAgICAgICAgICAgIChzIC09IENbMF0gKiBxW2ldLmFuICogMC4wMDUpLAogICAgICAgICAgICAgICAgICAgICAgcVtpICsgMV0gJiYKICAgICAgICAgICAgICAgICAgICAgICAgdyAhPT0gcVtpICsgMV0uaW5kICYmCiAgICAgICAgICAgICAgICAgICAgICAgICgocyArPSBxW2ldLmFuIC8gMiksIChzICs9IDAuMDAxICogZS50ciAqIGUuZmluYWxTaXplKSk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgKICAgICAgICAgICAgICAgICAgICAgIChOLnRyYW5zbGF0ZShyLCBuLCAwKSwKICAgICAgICAgICAgICAgICAgICAgIGUucHMgJiYgTi50cmFuc2xhdGUoZS5wc1swXSwgZS5wc1sxXSArIGUuYXNjZW50LCAwKSwKICAgICAgICAgICAgICAgICAgICAgIGUuaikKICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgICAgTi50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgcVtpXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5qdXN0aWZ5T2Zmc2V0ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmJveFdpZHRoIC0gZS5saW5lV2lkdGhzW3FbaV0ubGluZV0pLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgICAgTi50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgcVtpXS5hbmltYXRvckp1c3RpZnlPZmZzZXQgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5qdXN0aWZ5T2Zmc2V0ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmJveFdpZHRoIC0gZS5saW5lV2lkdGhzW3FbaV0ubGluZV0pIC8gMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgTi50cmFuc2xhdGUoMCwgLWUubHMpLAogICAgICAgICAgICAgICAgICAgICAgTi50cmFuc2xhdGUoRywgMCwgMCksCiAgICAgICAgICAgICAgICAgICAgICBOLnRyYW5zbGF0ZShDWzBdICogcVtpXS5hbiAqIDAuMDA1LCBDWzFdICogWSAqIDAuMDEsIDApLAogICAgICAgICAgICAgICAgICAgICAgKHIgKz0gcVtpXS5sICsgMC4wMDEgKiBlLnRyICogZS5maW5hbFNpemUpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIFcgPT09ICJodG1sIgogICAgICAgICAgICAgICAgICAgID8gKHogPSBOLnRvQ1NTKCkpCiAgICAgICAgICAgICAgICAgICAgOiBXID09PSAic3ZnIgogICAgICAgICAgICAgICAgICAgID8gKHogPSBOLnRvMmRDU1MoKSkKICAgICAgICAgICAgICAgICAgICA6IChqID0gWwogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzBdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzFdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzJdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzNdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzRdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzVdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzZdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzddLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzhdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzldLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzEwXSwKICAgICAgICAgICAgICAgICAgICAgICAgTi5wcm9wc1sxMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIE4ucHJvcHNbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICBOLnByb3BzWzEzXSwKICAgICAgICAgICAgICAgICAgICAgICAgTi5wcm9wc1sxNF0sCiAgICAgICAgICAgICAgICAgICAgICAgIE4ucHJvcHNbMTVdLAogICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgKE8gPSBEKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGsgPD0gaQogICAgICAgICAgICAgICAgICA/ICgoeWUgPSBuZXcgTGV0dGVyUHJvcHMoTywgTWUsIGdlLCBJLCB6LCBqKSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlZExldHRlcnMucHVzaCh5ZSksCiAgICAgICAgICAgICAgICAgICAgKGsgKz0gMSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnID0gITApKQogICAgICAgICAgICAgICAgICA6ICgoeWUgPSB0aGlzLnJlbmRlcmVkTGV0dGVyc1tpXSksCiAgICAgICAgICAgICAgICAgICAgKHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnID0KICAgICAgICAgICAgICAgICAgICAgIHllLnVwZGF0ZShPLCBNZSwgZ2UsIEksIHosIGopIHx8CiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZykpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoVGV4dEFuaW1hdG9yUHJvcGVydHkucHJvdG90eXBlLmdldFZhbHVlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLl9lbGVtLmdsb2JhbERhdGEuZnJhbWVJZCAhPT0gdGhpcy5fZnJhbWVJZCAmJgogICAgICAgICAgICAgICgodGhpcy5fZnJhbWVJZCA9IHRoaXMuX2VsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkKSwKICAgICAgICAgICAgICB0aGlzLml0ZXJhdGVEeW5hbWljUHJvcGVydGllcygpKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFRleHRBbmltYXRvclByb3BlcnR5LnByb3RvdHlwZS5tSGVscGVyID0gbmV3IE1hdHJpeCgpKSwKICAgICAgICAgIChUZXh0QW5pbWF0b3JQcm9wZXJ0eS5wcm90b3R5cGUuZGVmYXVsdFByb3BzQXJyYXkgPSBbXSksCiAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0R5bmFtaWNQcm9wZXJ0eUNvbnRhaW5lcl0sIFRleHRBbmltYXRvclByb3BlcnR5KSwKICAgICAgICAgIChJVGV4dEVsZW1lbnQucHJvdG90eXBlLmluaXRFbGVtZW50ID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgKHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnID0gITApLAogICAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgICAgdGhpcy5pbml0QmFzZURhdGEoZSwgdCwgciksCiAgICAgICAgICAgICAgKHRoaXMudGV4dFByb3BlcnR5ID0gbmV3IFRleHRQcm9wZXJ0eSgKICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICBlLnQsCiAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNQcm9wZXJ0aWVzCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMudGV4dEFuaW1hdG9yID0gbmV3IFRleHRBbmltYXRvclByb3BlcnR5KAogICAgICAgICAgICAgICAgZS50LAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUeXBlLAogICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShlLCB0LCByKSwKICAgICAgICAgICAgICB0aGlzLmluaXRIaWVyYXJjaHkoKSwKICAgICAgICAgICAgICB0aGlzLmluaXRSZW5kZXJhYmxlKCksCiAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVDb250YWluZXJFbGVtZW50cygpLAogICAgICAgICAgICAgIHRoaXMuY3JlYXRlUmVuZGVyYWJsZUNvbXBvbmVudHMoKSwKICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbnRlbnQoKSwKICAgICAgICAgICAgICB0aGlzLmhpZGUoKSwKICAgICAgICAgICAgICB0aGlzLnRleHRBbmltYXRvci5zZWFyY2hQcm9wZXJ0aWVzKHRoaXMuZHluYW1pY1Byb3BlcnRpZXMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSVRleHRFbGVtZW50LnByb3RvdHlwZS5wcmVwYXJlRnJhbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAodGhpcy5fbWRmID0gITEpLAogICAgICAgICAgICAgIHRoaXMucHJlcGFyZVJlbmRlcmFibGVGcmFtZShlKSwKICAgICAgICAgICAgICB0aGlzLnByZXBhcmVQcm9wZXJ0aWVzKGUsIHRoaXMuaXNJblJhbmdlKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuY3JlYXRlUGF0aFNoYXBlID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICBpID0gdC5sZW5ndGgsCiAgICAgICAgICAgICAgYSA9ICIiOwogICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgaTsgciArPSAxKQogICAgICAgICAgICAgIHRbcl0udHkgPT09ICJzaCIgJiYKICAgICAgICAgICAgICAgICgobiA9IHRbcl0ua3MuayksCiAgICAgICAgICAgICAgICAoYSArPSBidWlsZFNoYXBlU3RyaW5nKG4sIG4uaS5sZW5ndGgsICEwLCBlKSkpOwogICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICAgIH0pLAogICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUudXBkYXRlRG9jdW1lbnREYXRhID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdGhpcy50ZXh0UHJvcGVydHkudXBkYXRlRG9jdW1lbnREYXRhKGUsIHQpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSVRleHRFbGVtZW50LnByb3RvdHlwZS5jYW5SZXNpemVGb250ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy50ZXh0UHJvcGVydHkuY2FuUmVzaXplRm9udChlKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuc2V0TWluaW11bUZvbnRTaXplID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy50ZXh0UHJvcGVydHkuc2V0TWluaW11bUZvbnRTaXplKGUpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSVRleHRFbGVtZW50LnByb3RvdHlwZS5hcHBseVRleHRQcm9wZXJ0aWVzVG9NYXRyaXggPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQsCiAgICAgICAgICAgIHIsCiAgICAgICAgICAgIG4sCiAgICAgICAgICAgIGkKICAgICAgICAgICkgewogICAgICAgICAgICBzd2l0Y2ggKAogICAgICAgICAgICAgIChlLnBzICYmIHQudHJhbnNsYXRlKGUucHNbMF0sIGUucHNbMV0gKyBlLmFzY2VudCwgMCksCiAgICAgICAgICAgICAgdC50cmFuc2xhdGUoMCwgLWUubHMsIDApLAogICAgICAgICAgICAgIGUuaikKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgdC50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAgIGUuanVzdGlmeU9mZnNldCArIChlLmJveFdpZHRoIC0gZS5saW5lV2lkdGhzW3JdKSwKICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHQudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICBlLmp1c3RpZnlPZmZzZXQgKyAoZS5ib3hXaWR0aCAtIGUubGluZVdpZHRoc1tyXSkgLyAyLAogICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHQudHJhbnNsYXRlKG4sIGksIDApOwogICAgICAgICAgfSksCiAgICAgICAgICAoSVRleHRFbGVtZW50LnByb3RvdHlwZS5idWlsZENvbG9yID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAicmdiKCIgKwogICAgICAgICAgICAgIE1hdGgucm91bmQoMjU1ICogZVswXSkgKwogICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgTWF0aC5yb3VuZCgyNTUgKiBlWzFdKSArCiAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICBNYXRoLnJvdW5kKDI1NSAqIGVbMl0pICsKICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuZW1wdHlQcm9wID0gbmV3IExldHRlclByb3BzKCkpLAogICAgICAgICAgKElUZXh0RWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHt9KSwKICAgICAgICAgIChJVGV4dEVsZW1lbnQucHJvdG90eXBlLnZhbGlkYXRlVGV4dCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgKHRoaXMudGV4dFByb3BlcnR5Ll9tZGYgfHwgdGhpcy50ZXh0UHJvcGVydHkuX2lzRmlyc3RGcmFtZSkgJiYKICAgICAgICAgICAgICAodGhpcy5idWlsZE5ld1RleHQoKSwKICAgICAgICAgICAgICAodGhpcy50ZXh0UHJvcGVydHkuX2lzRmlyc3RGcmFtZSA9ICExKSwKICAgICAgICAgICAgICAodGhpcy50ZXh0UHJvcGVydHkuX21kZiA9ICExKSk7CiAgICAgICAgICB9KTsKICAgICAgICB2YXIgZW1wdHlTaGFwZURhdGEgPSB7IHNoYXBlczogW10gfTsKICAgICAgICBmdW5jdGlvbiBTVkdUZXh0TG90dGllRWxlbWVudChlLCB0LCByKSB7CiAgICAgICAgICAodGhpcy50ZXh0U3BhbnMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLnJlbmRlclR5cGUgPSAic3ZnIiksCiAgICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgcik7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIElTb2xpZEVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5pbml0RWxlbWVudChlLCB0LCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gTnVsbEVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5pbml0RnJhbWUoKSwKICAgICAgICAgICAgdGhpcy5pbml0QmFzZURhdGEoZSwgdCwgciksCiAgICAgICAgICAgIHRoaXMuaW5pdEZyYW1lKCksCiAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShlLCB0LCByKSwKICAgICAgICAgICAgdGhpcy5pbml0SGllcmFyY2h5KCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIFNWR1JlbmRlcmVyQmFzZSgpIHt9CiAgICAgICAgZnVuY3Rpb24gSUNvbXBFbGVtZW50KCkge30KICAgICAgICBmdW5jdGlvbiBTVkdDb21wRWxlbWVudChlLCB0LCByKSB7CiAgICAgICAgICAodGhpcy5sYXllcnMgPSBlLmxheWVycyksCiAgICAgICAgICAgICh0aGlzLnN1cHBvcnRzM2QgPSAhMCksCiAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlTGF5ZXJzID0gITEpLAogICAgICAgICAgICAodGhpcy5wZW5kaW5nRWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLmVsZW1lbnRzID0gdGhpcy5sYXllcnMKICAgICAgICAgICAgICA/IGNyZWF0ZVNpemVkQXJyYXkodGhpcy5sYXllcnMubGVuZ3RoKQogICAgICAgICAgICAgIDogW10pLAogICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpLAogICAgICAgICAgICAodGhpcy50bSA9IGUudG0KICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUudG0sIDAsIHQuZnJhbWVSYXRlLCB0aGlzKQogICAgICAgICAgICAgIDogeyBfcGxhY2Vob2xkZXI6ICEwIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBTVkdSZW5kZXJlcihlLCB0KSB7CiAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtID0gZSksCiAgICAgICAgICAgICh0aGlzLmxheWVycyA9IG51bGwpLAogICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gLTEpLAogICAgICAgICAgICAodGhpcy5zdmdFbGVtZW50ID0gY3JlYXRlTlMoInN2ZyIpKTsKICAgICAgICAgIHZhciByID0gIiI7CiAgICAgICAgICBpZiAodCAmJiB0LnRpdGxlKSB7CiAgICAgICAgICAgIHZhciBuID0gY3JlYXRlTlMoInRpdGxlIiksCiAgICAgICAgICAgICAgaSA9IGNyZWF0ZUVsZW1lbnRJRCgpOwogICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgiaWQiLCBpKSwKICAgICAgICAgICAgICAobi50ZXh0Q29udGVudCA9IHQudGl0bGUpLAogICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5hcHBlbmRDaGlsZChuKSwKICAgICAgICAgICAgICAociArPSBpKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0ICYmIHQuZGVzY3JpcHRpb24pIHsKICAgICAgICAgICAgdmFyIGEgPSBjcmVhdGVOUygiZGVzYyIpLAogICAgICAgICAgICAgIG8gPSBjcmVhdGVFbGVtZW50SUQoKTsKICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoImlkIiwgbyksCiAgICAgICAgICAgICAgKGEudGV4dENvbnRlbnQgPSB0LmRlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuYXBwZW5kQ2hpbGQoYSksCiAgICAgICAgICAgICAgKHIgKz0gIiAiICsgbyk7CiAgICAgICAgICB9CiAgICAgICAgICByICYmIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsIHIpOwogICAgICAgICAgdmFyIHMgPSBjcmVhdGVOUygiZGVmcyIpOwogICAgICAgICAgdGhpcy5zdmdFbGVtZW50LmFwcGVuZENoaWxkKHMpOwogICAgICAgICAgdmFyIGMgPSBjcmVhdGVOUygiZyIpOwogICAgICAgICAgdGhpcy5zdmdFbGVtZW50LmFwcGVuZENoaWxkKGMpLAogICAgICAgICAgICAodGhpcy5sYXllckVsZW1lbnQgPSBjKSwKICAgICAgICAgICAgKHRoaXMucmVuZGVyQ29uZmlnID0gewogICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW86CiAgICAgICAgICAgICAgICAodCAmJiB0LnByZXNlcnZlQXNwZWN0UmF0aW8pIHx8ICJ4TWlkWU1pZCBtZWV0IiwKICAgICAgICAgICAgICBpbWFnZVByZXNlcnZlQXNwZWN0UmF0aW86CiAgICAgICAgICAgICAgICAodCAmJiB0LmltYWdlUHJlc2VydmVBc3BlY3RSYXRpbykgfHwgInhNaWRZTWlkIHNsaWNlIiwKICAgICAgICAgICAgICBjb250ZW50VmlzaWJpbGl0eTogKHQgJiYgdC5jb250ZW50VmlzaWJpbGl0eSkgfHwgInZpc2libGUiLAogICAgICAgICAgICAgIHByb2dyZXNzaXZlTG9hZDogKHQgJiYgdC5wcm9ncmVzc2l2ZUxvYWQpIHx8ICExLAogICAgICAgICAgICAgIGhpZGVPblRyYW5zcGFyZW50OiAhKHQgJiYgdC5oaWRlT25UcmFuc3BhcmVudCA9PT0gITEpLAogICAgICAgICAgICAgIHZpZXdCb3hPbmx5OiAodCAmJiB0LnZpZXdCb3hPbmx5KSB8fCAhMSwKICAgICAgICAgICAgICB2aWV3Qm94U2l6ZTogKHQgJiYgdC52aWV3Qm94U2l6ZSkgfHwgITEsCiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAodCAmJiB0LmNsYXNzTmFtZSkgfHwgIiIsCiAgICAgICAgICAgICAgaWQ6ICh0ICYmIHQuaWQpIHx8ICIiLAogICAgICAgICAgICAgIGZvY3VzYWJsZTogdCAmJiB0LmZvY3VzYWJsZSwKICAgICAgICAgICAgICBmaWx0ZXJTaXplOiB7CiAgICAgICAgICAgICAgICB3aWR0aDogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS53aWR0aCkgfHwgIjEwMCUiLAogICAgICAgICAgICAgICAgaGVpZ2h0OiAodCAmJiB0LmZpbHRlclNpemUgJiYgdC5maWx0ZXJTaXplLmhlaWdodCkgfHwgIjEwMCUiLAogICAgICAgICAgICAgICAgeDogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS54KSB8fCAiMCUiLAogICAgICAgICAgICAgICAgeTogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS55KSB8fCAiMCUiLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgd2lkdGg6IHQgJiYgdC53aWR0aCwKICAgICAgICAgICAgICBoZWlnaHQ6IHQgJiYgdC5oZWlnaHQsCiAgICAgICAgICAgICAgcnVuRXhwcmVzc2lvbnM6CiAgICAgICAgICAgICAgICAhdCB8fCB0LnJ1bkV4cHJlc3Npb25zID09PSB2b2lkIDAgfHwgdC5ydW5FeHByZXNzaW9ucywKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEgPSB7CiAgICAgICAgICAgICAgX21kZjogITEsCiAgICAgICAgICAgICAgZnJhbWVOdW06IC0xLAogICAgICAgICAgICAgIGRlZnM6IHMsCiAgICAgICAgICAgICAgcmVuZGVyQ29uZmlnOiB0aGlzLnJlbmRlckNvbmZpZywKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICh0aGlzLmVsZW1lbnRzID0gW10pLAogICAgICAgICAgICAodGhpcy5wZW5kaW5nRWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLmRlc3Ryb3llZCA9ICExKSwKICAgICAgICAgICAgKHRoaXMucmVuZGVyZXJUeXBlID0gInN2ZyIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBTaGFwZVRyYW5zZm9ybU1hbmFnZXIoKSB7CiAgICAgICAgICAodGhpcy5zZXF1ZW5jZXMgPSB7fSksCiAgICAgICAgICAgICh0aGlzLnNlcXVlbmNlTGlzdCA9IFtdKSwKICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtX2tleV9jb3VudCA9IDApOwogICAgICAgIH0KICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICBbCiAgICAgICAgICAgIEJhc2VFbGVtZW50LAogICAgICAgICAgICBUcmFuc2Zvcm1FbGVtZW50LAogICAgICAgICAgICBTVkdCYXNlRWxlbWVudCwKICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgRnJhbWVFbGVtZW50LAogICAgICAgICAgICBSZW5kZXJhYmxlRE9NRWxlbWVudCwKICAgICAgICAgICAgSVRleHRFbGVtZW50LAogICAgICAgICAgXSwKICAgICAgICAgIFNWR1RleHRMb3R0aWVFbGVtZW50CiAgICAgICAgKSwKICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlQ29udGVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5kYXRhLnNpbmdsZVNoYXBlICYmCiAgICAgICAgICAgICAgIXRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5jaGFycyAmJgogICAgICAgICAgICAgICh0aGlzLnRleHRDb250YWluZXIgPSBjcmVhdGVOUygidGV4dCIpKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5idWlsZFRleHRDb250ZW50cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gZS5sZW5ndGgsIG4gPSBbXSwgaSA9ICIiOyB0IDwgcjsgKQogICAgICAgICAgICAgIGVbdF0gPT09IFN0cmluZy5mcm9tQ2hhckNvZGUoMTMpIHx8CiAgICAgICAgICAgICAgZVt0XSA9PT0gU3RyaW5nLmZyb21DaGFyQ29kZSgzKQogICAgICAgICAgICAgICAgPyAobi5wdXNoKGkpLCAoaSA9ICIiKSkKICAgICAgICAgICAgICAgIDogKGkgKz0gZVt0XSksCiAgICAgICAgICAgICAgICAodCArPSAxKTsKICAgICAgICAgICAgcmV0dXJuIG4ucHVzaChpKSwgbjsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1RleHRMb3R0aWVFbGVtZW50LnByb3RvdHlwZS5idWlsZFNoYXBlRGF0YSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIGlmIChlLnNoYXBlcyAmJiBlLnNoYXBlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICB2YXIgciA9IGUuc2hhcGVzWzBdOwogICAgICAgICAgICAgIGlmIChyLml0KSB7CiAgICAgICAgICAgICAgICB2YXIgbiA9IHIuaXRbci5pdC5sZW5ndGggLSAxXTsKICAgICAgICAgICAgICAgIG4ucyAmJiAoKG4ucy5rWzBdID0gdCksIChuLnMua1sxXSA9IHQpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUuYnVpbGROZXdUZXh0ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSwgdDsKICAgICAgICAgICAgdGhpcy5hZGREeW5hbWljUHJvcGVydHkodGhpcyk7CiAgICAgICAgICAgIHZhciByID0gdGhpcy50ZXh0UHJvcGVydHkuY3VycmVudERhdGE7CiAgICAgICAgICAgICh0aGlzLnJlbmRlcmVkTGV0dGVycyA9IGNyZWF0ZVNpemVkQXJyYXkociA/IHIubC5sZW5ndGggOiAwKSksCiAgICAgICAgICAgICAgci5mYwogICAgICAgICAgICAgICAgPyB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoImZpbGwiLCB0aGlzLmJ1aWxkQ29sb3Ioci5mYykpCiAgICAgICAgICAgICAgICA6IHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZmlsbCIsICJyZ2JhKDAsMCwwLDApIiksCiAgICAgICAgICAgICAgci5zYyAmJgogICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgInN0cm9rZSIsCiAgICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRDb2xvcihyLnNjKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIiwgci5zdykpLAogICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgiZm9udC1zaXplIiwgci5maW5hbFNpemUpOwogICAgICAgICAgICB2YXIgbiA9IHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5nZXRGb250QnlOYW1lKHIuZik7CiAgICAgICAgICAgIGlmIChuLmZDbGFzcykgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsIG4uZkNsYXNzKTsKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJmb250LWZhbWlseSIsIG4uZkZhbWlseSk7CiAgICAgICAgICAgICAgdmFyIGkgPSByLmZXZWlnaHQsCiAgICAgICAgICAgICAgICBhID0gci5mU3R5bGU7CiAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJmb250LXN0eWxlIiwgYSksCiAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoImZvbnQtd2VpZ2h0IiwgaSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwgci50KTsKICAgICAgICAgICAgdmFyIG8sCiAgICAgICAgICAgICAgcyA9IHIubCB8fCBbXSwKICAgICAgICAgICAgICBjID0gISF0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuY2hhcnM7CiAgICAgICAgICAgIHQgPSBzLmxlbmd0aDsKICAgICAgICAgICAgdmFyIHUgPSB0aGlzLm1IZWxwZXIsCiAgICAgICAgICAgICAgbCA9IHRoaXMuZGF0YS5zaW5nbGVTaGFwZSwKICAgICAgICAgICAgICBwID0gMCwKICAgICAgICAgICAgICBkID0gMCwKICAgICAgICAgICAgICBoID0gITAsCiAgICAgICAgICAgICAgbSA9IDAuMDAxICogci50ciAqIHIuZmluYWxTaXplOwogICAgICAgICAgICBpZiAoIWwgfHwgYyB8fCByLnN6KSB7CiAgICAgICAgICAgICAgdmFyIHYsCiAgICAgICAgICAgICAgICB5ID0gdGhpcy50ZXh0U3BhbnMubGVuZ3RoOwogICAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdIHx8CiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdID0gewogICAgICAgICAgICAgICAgICAgICAgc3BhbjogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgIGNoaWxkU3BhbjogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgIGdseXBoOiBudWxsLAogICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAhYyB8fCAhbCB8fCBlID09PSAwKQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAoKG8gPQogICAgICAgICAgICAgICAgICAgICAgeSA+IGUKICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnRleHRTcGFuc1tlXS5zcGFuCiAgICAgICAgICAgICAgICAgICAgICAgIDogY3JlYXRlTlMoYyA/ICJnIiA6ICJ0ZXh0IikpLAogICAgICAgICAgICAgICAgICAgIHkgPD0gZSkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgKG8uc2V0QXR0cmlidXRlKCJzdHJva2UtbGluZWNhcCIsICJidXR0IiksCiAgICAgICAgICAgICAgICAgICAgICBvLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWxpbmVqb2luIiwgInJvdW5kIiksCiAgICAgICAgICAgICAgICAgICAgICBvLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW1pdGVybGltaXQiLCAiNCIpLAogICAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLnNwYW4gPSBvKSwKICAgICAgICAgICAgICAgICAgICAgIGMpCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgZyA9IGNyZWF0ZU5TKCJnIik7CiAgICAgICAgICAgICAgICAgICAgICBvLmFwcGVuZENoaWxkKGcpLCAodGhpcy50ZXh0U3BhbnNbZV0uY2hpbGRTcGFuID0gZyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICh0aGlzLnRleHRTcGFuc1tlXS5zcGFuID0gbyksCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChvKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBvLnN0eWxlLmRpc3BsYXkgPSAiaW5oZXJpdCI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICh1LnJlc2V0KCksCiAgICAgICAgICAgICAgICAgIGwgJiYKICAgICAgICAgICAgICAgICAgICAoc1tlXS5uICYmCiAgICAgICAgICAgICAgICAgICAgICAoKHAgPSAtbSksIChkICs9IHIueU9mZnNldCksIChkICs9IGggPyAxIDogMCksIChoID0gITEpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5VGV4dFByb3BlcnRpZXNUb01hdHJpeChyLCB1LCBzW2VdLmxpbmUsIHAsIGQpLAogICAgICAgICAgICAgICAgICAgIChwICs9IHNbZV0ubCB8fCAwKSwKICAgICAgICAgICAgICAgICAgICAocCArPSBtKSksCiAgICAgICAgICAgICAgICAgIGMpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgdmFyIE07CiAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAodiA9IHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5nZXRDaGFyRGF0YSgKICAgICAgICAgICAgICAgICAgICAgIHIuZmluYWxUZXh0W2VdLAogICAgICAgICAgICAgICAgICAgICAgbi5mU3R5bGUsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuZ2V0Rm9udEJ5TmFtZShyLmYpLmZGYW1pbHkKICAgICAgICAgICAgICAgICAgICApKS50ID09PSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBNID0gbmV3IFNWR0NvbXBFbGVtZW50KHYuZGF0YSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIEEgPSBlbXB0eVNoYXBlRGF0YTsKICAgICAgICAgICAgICAgICAgICB2LmRhdGEgJiYKICAgICAgICAgICAgICAgICAgICAgIHYuZGF0YS5zaGFwZXMgJiYKICAgICAgICAgICAgICAgICAgICAgIChBID0gdGhpcy5idWlsZFNoYXBlRGF0YSh2LmRhdGEsIHIuZmluYWxTaXplKSksCiAgICAgICAgICAgICAgICAgICAgICAoTSA9IG5ldyBTVkdTaGFwZUVsZW1lbnQoQSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGV4dFNwYW5zW2VdLmdseXBoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIF8gPSB0aGlzLnRleHRTcGFuc1tlXS5nbHlwaDsKICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRTcGFuc1tlXS5jaGlsZFNwYW4ucmVtb3ZlQ2hpbGQoXy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgICAgXy5kZXN0cm95KCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLmdseXBoID0gTSksCiAgICAgICAgICAgICAgICAgICAgKE0uX2RlYnVnID0gITApLAogICAgICAgICAgICAgICAgICAgIE0ucHJlcGFyZUZyYW1lKDApLAogICAgICAgICAgICAgICAgICAgIE0ucmVuZGVyRnJhbWUoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRTcGFuc1tlXS5jaGlsZFNwYW4uYXBwZW5kQ2hpbGQoTS5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgIHYudCA9PT0gMSAmJgogICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0U3BhbnNbZV0uY2hpbGRTcGFuLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zZm9ybSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzY2FsZSgiICsKICAgICAgICAgICAgICAgICAgICAgICAgICByLmZpbmFsU2l6ZSAvIDEwMCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgICAgICByLmZpbmFsU2l6ZSAvIDEwMCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIikiCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgIGwgJiYKICAgICAgICAgICAgICAgICAgICBvLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2Zvcm0iLAogICAgICAgICAgICAgICAgICAgICAgInRyYW5zbGF0ZSgiICsgdS5wcm9wc1sxMl0gKyAiLCIgKyB1LnByb3BzWzEzXSArICIpIgogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKG8udGV4dENvbnRlbnQgPSBzW2VdLnZhbCksCiAgICAgICAgICAgICAgICAgICAgby5zZXRBdHRyaWJ1dGVOUygKICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLAogICAgICAgICAgICAgICAgICAgICAgInhtbDpzcGFjZSIsCiAgICAgICAgICAgICAgICAgICAgICAicHJlc2VydmUiCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbCAmJiBvICYmIG8uc2V0QXR0cmlidXRlKCJkIiwgIiIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHZhciBDID0gdGhpcy50ZXh0Q29udGFpbmVyLAogICAgICAgICAgICAgICAgUiA9ICJzdGFydCI7CiAgICAgICAgICAgICAgc3dpdGNoIChyLmopIHsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgUiA9ICJlbmQiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgUiA9ICJtaWRkbGUiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIFIgPSAic3RhcnQiOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBDLnNldEF0dHJpYnV0ZSgidGV4dC1hbmNob3IiLCBSKSwKICAgICAgICAgICAgICAgIEMuc2V0QXR0cmlidXRlKCJsZXR0ZXItc3BhY2luZyIsIG0pOwogICAgICAgICAgICAgIHZhciBMID0gdGhpcy5idWlsZFRleHRDb250ZW50cyhyLmZpbmFsVGV4dCk7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIHQgPSBMLmxlbmd0aCwgZCA9IHIucHMgPyByLnBzWzFdICsgci5hc2NlbnQgOiAwLCBlID0gMDsKICAgICAgICAgICAgICAgIGUgPCB0OwogICAgICAgICAgICAgICAgZSArPSAxCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKChvID0gdGhpcy50ZXh0U3BhbnNbZV0uc3BhbiB8fCBjcmVhdGVOUygidHNwYW4iKSkudGV4dENvbnRlbnQgPQogICAgICAgICAgICAgICAgICBMW2VdKSwKICAgICAgICAgICAgICAgICAgby5zZXRBdHRyaWJ1dGUoIngiLCAwKSwKICAgICAgICAgICAgICAgICAgby5zZXRBdHRyaWJ1dGUoInkiLCBkKSwKICAgICAgICAgICAgICAgICAgKG8uc3R5bGUuZGlzcGxheSA9ICJpbmhlcml0IiksCiAgICAgICAgICAgICAgICAgIEMuYXBwZW5kQ2hpbGQobyksCiAgICAgICAgICAgICAgICAgIHRoaXMudGV4dFNwYW5zW2VdIHx8CiAgICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdID0geyBzcGFuOiBudWxsLCBnbHlwaDogbnVsbCB9KSwKICAgICAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLnNwYW4gPSBvKSwKICAgICAgICAgICAgICAgICAgKGQgKz0gci5maW5hbExpbmVIZWlnaHQpOwogICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LmFwcGVuZENoaWxkKEMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAoOyBlIDwgdGhpcy50ZXh0U3BhbnMubGVuZ3RoOyApCiAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW2VdLnNwYW4uc3R5bGUuZGlzcGxheSA9ICJub25lIiksIChlICs9IDEpOwogICAgICAgICAgICB0aGlzLl9zaXplQ2hhbmdlZCA9ICEwOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHVGV4dExvdHRpZUVsZW1lbnQucHJvdG90eXBlLnNvdXJjZVJlY3RBdFRpbWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAodGhpcy5wcmVwYXJlRnJhbWUodGhpcy5jb21wLnJlbmRlcmVkRnJhbWUgLSB0aGlzLmRhdGEuc3QpLAogICAgICAgICAgICAgIHRoaXMucmVuZGVySW5uZXJDb250ZW50KCksCiAgICAgICAgICAgICAgdGhpcy5fc2l6ZUNoYW5nZWQpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHRoaXMuX3NpemVDaGFuZ2VkID0gITE7CiAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmxheWVyRWxlbWVudC5nZXRCQm94KCk7CiAgICAgICAgICAgICAgdGhpcy5iYm94ID0gewogICAgICAgICAgICAgICAgdG9wOiBlLnksCiAgICAgICAgICAgICAgICBsZWZ0OiBlLngsCiAgICAgICAgICAgICAgICB3aWR0aDogZS53aWR0aCwKICAgICAgICAgICAgICAgIGhlaWdodDogZS5oZWlnaHQsCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdGhpcy5iYm94OwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHVGV4dExvdHRpZUVsZW1lbnQucHJvdG90eXBlLmdldFZhbHVlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgIHIgPSB0aGlzLnRleHRTcGFucy5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlZEZyYW1lID0gdGhpcy5jb21wLnJlbmRlcmVkRnJhbWUsIGUgPSAwOwogICAgICAgICAgICAgIGUgPCByOwogICAgICAgICAgICAgIGUgKz0gMQogICAgICAgICAgICApCiAgICAgICAgICAgICAgKHQgPSB0aGlzLnRleHRTcGFuc1tlXS5nbHlwaCkgJiYKICAgICAgICAgICAgICAgICh0LnByZXBhcmVGcmFtZSh0aGlzLmNvbXAucmVuZGVyZWRGcmFtZSAtIHRoaXMuZGF0YS5zdCksCiAgICAgICAgICAgICAgICB0Ll9tZGYgJiYgKHRoaXMuX21kZiA9ICEwKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdUZXh0TG90dGllRWxlbWVudC5wcm90b3R5cGUucmVuZGVySW5uZXJDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKHRoaXMudmFsaWRhdGVUZXh0KCksCiAgICAgICAgICAgICAgKCF0aGlzLmRhdGEuc2luZ2xlU2hhcGUgfHwgdGhpcy5fbWRmKSAmJgogICAgICAgICAgICAgICAgKHRoaXMudGV4dEFuaW1hdG9yLmdldE1lYXN1cmVzKAogICAgICAgICAgICAgICAgICB0aGlzLnRleHRQcm9wZXJ0eS5jdXJyZW50RGF0YSwKICAgICAgICAgICAgICAgICAgdGhpcy5sZXR0ZXJzQ2hhbmdlZEZsYWcKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyB8fAogICAgICAgICAgICAgICAgICB0aGlzLnRleHRBbmltYXRvci5sZXR0ZXJzQ2hhbmdlZEZsYWcpKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICB2YXIgZSwgdDsKICAgICAgICAgICAgICB0aGlzLl9zaXplQ2hhbmdlZCA9ICEwOwogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhID0gdGhpcy50ZXh0QW5pbWF0b3IucmVuZGVyZWRMZXR0ZXJzLAogICAgICAgICAgICAgICAgbyA9IHRoaXMudGV4dFByb3BlcnR5LmN1cnJlbnREYXRhLmw7CiAgICAgICAgICAgICAgZm9yICh0ID0gby5sZW5ndGgsIGUgPSAwOyBlIDwgdDsgZSArPSAxKQogICAgICAgICAgICAgICAgb1tlXS5uIHx8CiAgICAgICAgICAgICAgICAgICgociA9IGFbZV0pLAogICAgICAgICAgICAgICAgICAobiA9IHRoaXMudGV4dFNwYW5zW2VdLnNwYW4pLAogICAgICAgICAgICAgICAgICAoaSA9IHRoaXMudGV4dFNwYW5zW2VdLmdseXBoKSAmJiBpLnJlbmRlckZyYW1lKCksCiAgICAgICAgICAgICAgICAgIHIuX21kZi5tICYmIG4uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCByLm0pLAogICAgICAgICAgICAgICAgICByLl9tZGYubyAmJiBuLnNldEF0dHJpYnV0ZSgib3BhY2l0eSIsIHIubyksCiAgICAgICAgICAgICAgICAgIHIuX21kZi5zdyAmJiBuLnNldEF0dHJpYnV0ZSgic3Ryb2tlLXdpZHRoIiwgci5zdyksCiAgICAgICAgICAgICAgICAgIHIuX21kZi5zYyAmJiBuLnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwgci5zYyksCiAgICAgICAgICAgICAgICAgIHIuX21kZi5mYyAmJiBuLnNldEF0dHJpYnV0ZSgiZmlsbCIsIHIuZmMpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0lJbWFnZUVsZW1lbnRdLCBJU29saWRFbGVtZW50KSwKICAgICAgICAgIChJU29saWRFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IGNyZWF0ZU5TKCJyZWN0Iik7CiAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHRoaXMuZGF0YS5zdyksCiAgICAgICAgICAgICAgZS5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHRoaXMuZGF0YS5zaCksCiAgICAgICAgICAgICAgZS5zZXRBdHRyaWJ1dGUoImZpbGwiLCB0aGlzLmRhdGEuc2MpLAogICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50LmFwcGVuZENoaWxkKGUpOwogICAgICAgICAgfSksCiAgICAgICAgICAoTnVsbEVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMucHJlcGFyZVByb3BlcnRpZXMoZSwgITApOwogICAgICAgICAgfSksCiAgICAgICAgICAoTnVsbEVsZW1lbnQucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKCkge30pLAogICAgICAgICAgKE51bGxFbGVtZW50LnByb3RvdHlwZS5nZXRCYXNlRWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICB9KSwKICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHt9KSwKICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUuc291cmNlUmVjdEF0VGltZSA9IGZ1bmN0aW9uICgpIHt9KSwKICAgICAgICAgIChOdWxsRWxlbWVudC5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHt9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgW0Jhc2VFbGVtZW50LCBUcmFuc2Zvcm1FbGVtZW50LCBIaWVyYXJjaHlFbGVtZW50LCBGcmFtZUVsZW1lbnRdLAogICAgICAgICAgICBOdWxsRWxlbWVudAogICAgICAgICAgKSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbQmFzZVJlbmRlcmVyXSwgU1ZHUmVuZGVyZXJCYXNlKSwKICAgICAgICAgIChTVkdSZW5kZXJlckJhc2UucHJvdG90eXBlLmNyZWF0ZU51bGwgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gbmV3IE51bGxFbGVtZW50KGUsIHRoaXMuZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdSZW5kZXJlckJhc2UucHJvdG90eXBlLmNyZWF0ZVNoYXBlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBTVkdTaGFwZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlVGV4dCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgU1ZHVGV4dExvdHRpZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlSW1hZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gbmV3IElJbWFnZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlU29saWQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gbmV3IElTb2xpZEVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY29uZmlnQW5pbWF0aW9uID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgieG1sbnMiLCAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciKSwKICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgInhtbG5zOnhsaW5rIiwKICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcudmlld0JveFNpemUKICAgICAgICAgICAgICAgID8gdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAidmlld0JveCIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcudmlld0JveFNpemUKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgOiB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJ2aWV3Qm94IiwKICAgICAgICAgICAgICAgICAgICAiMCAwICIgKyBlLncgKyAiICIgKyBlLmgKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy52aWV3Qm94T25seSB8fAogICAgICAgICAgICAgICAgKHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgZS53KSwKICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGUuaCksCiAgICAgICAgICAgICAgICAodGhpcy5zdmdFbGVtZW50LnN0eWxlLndpZHRoID0gIjEwMCUiKSwKICAgICAgICAgICAgICAgICh0aGlzLnN2Z0VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiKSwKICAgICAgICAgICAgICAgICh0aGlzLnN2Z0VsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gInRyYW5zbGF0ZTNkKDAsMCwwKSIpLAogICAgICAgICAgICAgICAgKHRoaXMuc3ZnRWxlbWVudC5zdHlsZS5jb250ZW50VmlzaWJpbGl0eSA9CiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNvbnRlbnRWaXNpYmlsaXR5KSksCiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcud2lkdGggJiYKICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgdGhpcy5yZW5kZXJDb25maWcud2lkdGgpLAogICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmhlaWdodCAmJgogICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgImhlaWdodCIsCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmhlaWdodAogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5jbGFzc05hbWUgJiYKICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICJjbGFzcyIsCiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNsYXNzTmFtZQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5pZCAmJgogICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLnJlbmRlckNvbmZpZy5pZCksCiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuZm9jdXNhYmxlICE9PSB2b2lkIDAgJiYKICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICJmb2N1c2FibGUiLAogICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5mb2N1c2FibGUKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLnByZXNlcnZlQXNwZWN0UmF0aW8KICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS53cmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuc3ZnRWxlbWVudCk7CiAgICAgICAgICAgIHZhciB0ID0gdGhpcy5nbG9iYWxEYXRhLmRlZnM7CiAgICAgICAgICAgIHRoaXMuc2V0dXBHbG9iYWxEYXRhKGUsIHQpLAogICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEucHJvZ3Jlc3NpdmVMb2FkID0KICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLnByb2dyZXNzaXZlTG9hZCksCiAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IGUpOwogICAgICAgICAgICB2YXIgciA9IGNyZWF0ZU5TKCJjbGlwUGF0aCIpLAogICAgICAgICAgICAgIG4gPSBjcmVhdGVOUygicmVjdCIpOwogICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgid2lkdGgiLCBlLncpLAogICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBlLmgpLAogICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJ4IiwgMCksCiAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoInkiLCAwKTsKICAgICAgICAgICAgdmFyIGkgPSBjcmVhdGVFbGVtZW50SUQoKTsKICAgICAgICAgICAgci5zZXRBdHRyaWJ1dGUoImlkIiwgaSksCiAgICAgICAgICAgICAgci5hcHBlbmRDaGlsZChuKSwKICAgICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAiY2xpcC1wYXRoIiwKICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgaSArICIpIgogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgdC5hcHBlbmRDaGlsZChyKSwKICAgICAgICAgICAgICAodGhpcy5sYXllcnMgPSBlLmxheWVycyksCiAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBjcmVhdGVTaXplZEFycmF5KGUubGF5ZXJzLmxlbmd0aCkpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZTsKICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIgJiYKICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIuaW5uZXJUZXh0ID0gIiIpLAogICAgICAgICAgICAgICh0aGlzLmxheWVyRWxlbWVudCA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZGVmcyA9IG51bGwpOwogICAgICAgICAgICB2YXIgdCA9IHRoaXMubGF5ZXJzID8gdGhpcy5sYXllcnMubGVuZ3RoIDogMDsKICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IHQ7IGUgKz0gMSkKICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdICYmCiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdLmRlc3Ryb3kgJiYKICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0uZGVzdHJveSgpOwogICAgICAgICAgICAodGhpcy5lbGVtZW50cy5sZW5ndGggPSAwKSwKICAgICAgICAgICAgICAodGhpcy5kZXN0cm95ZWQgPSAhMCksCiAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uSXRlbSA9IG51bGwpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS51cGRhdGVDb250YWluZXJTaXplID0gZnVuY3Rpb24gKCkge30pLAogICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuZmluZEluZGV4QnlJbmQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCA9IDAsCiAgICAgICAgICAgICAgciA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgaWYgKHRoaXMubGF5ZXJzW3RdLmluZCA9PT0gZSkgcmV0dXJuIHQ7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuYnVpbGRJdGVtID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmVsZW1lbnRzOwogICAgICAgICAgICBpZiAoIXRbZV0gJiYgdGhpcy5sYXllcnNbZV0udHkgIT09IDk5KSB7CiAgICAgICAgICAgICAgdFtlXSA9ICEwOwogICAgICAgICAgICAgIHZhciByID0gdGhpcy5jcmVhdGVJdGVtKHRoaXMubGF5ZXJzW2VdKTsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoKHRbZV0gPSByKSwKICAgICAgICAgICAgICAgIGdldEV4cHJlc3Npb25zUGx1Z2luKCkgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJzW2VdLnR5ID09PSAwICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnByb2plY3RJbnRlcmZhY2UucmVnaXN0ZXJDb21wb3NpdGlvbihyKSwKICAgICAgICAgICAgICAgICAgci5pbml0RXhwcmVzc2lvbnMoKSksCiAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZEVsZW1lbnRJblBvcyhyLCBlKSwKICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJzW2VdLnR0KQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIG4gPQogICAgICAgICAgICAgICAgICAidHAiIGluIHRoaXMubGF5ZXJzW2VdCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmZpbmRJbmRleEJ5SW5kKHRoaXMubGF5ZXJzW2VdLnRwKQogICAgICAgICAgICAgICAgICAgIDogZSAtIDE7CiAgICAgICAgICAgICAgICBpZiAobiA9PT0gLTEpIHJldHVybjsKICAgICAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnRzW25dICYmIHRoaXMuZWxlbWVudHNbbl0gIT09ICEwKSB7CiAgICAgICAgICAgICAgICAgIHZhciBpID0gdFtuXS5nZXRNYXR0ZSh0aGlzLmxheWVyc1tlXS50dCk7CiAgICAgICAgICAgICAgICAgIHIuc2V0TWF0dGUoaSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgdGhpcy5idWlsZEl0ZW0obiksIHRoaXMuYWRkUGVuZGluZ0VsZW1lbnQocik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdSZW5kZXJlckJhc2UucHJvdG90eXBlLmNoZWNrUGVuZGluZ0VsZW1lbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmb3IgKDsgdGhpcy5wZW5kaW5nRWxlbWVudHMubGVuZ3RoOyApIHsKICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMucGVuZGluZ0VsZW1lbnRzLnBvcCgpOwogICAgICAgICAgICAgIGlmICgoZS5jaGVja1BhcmVudGluZygpLCBlLmRhdGEudHQpKQogICAgICAgICAgICAgICAgZm9yICh2YXIgdCA9IDAsIHIgPSB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgdCA8IHI7ICkgewogICAgICAgICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50c1t0XSA9PT0gZSkgewogICAgICAgICAgICAgICAgICAgIHZhciBuID0KICAgICAgICAgICAgICAgICAgICAgICAgInRwIiBpbiBlLmRhdGEgPyB0aGlzLmZpbmRJbmRleEJ5SW5kKGUuZGF0YS50cCkgOiB0IC0gMSwKICAgICAgICAgICAgICAgICAgICAgIGkgPSB0aGlzLmVsZW1lbnRzW25dLmdldE1hdHRlKHRoaXMubGF5ZXJzW3RdLnR0KTsKICAgICAgICAgICAgICAgICAgICBlLnNldE1hdHRlKGkpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHQgKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlcmVkRnJhbWUgIT09IGUgJiYgIXRoaXMuZGVzdHJveWVkKSB7CiAgICAgICAgICAgICAgdmFyIHQ7CiAgICAgICAgICAgICAgZSA9PT0gbnVsbCA/IChlID0gdGhpcy5yZW5kZXJlZEZyYW1lKSA6ICh0aGlzLnJlbmRlcmVkRnJhbWUgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZnJhbWVOdW0gPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZnJhbWVJZCArPSAxKSwKICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEucHJvamVjdEludGVyZmFjZS5jdXJyZW50RnJhbWUgPSBlKSwKICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuX21kZiA9ICExKTsKICAgICAgICAgICAgICB2YXIgciA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmNoZWNrTGF5ZXJzKGUpLCB0ID0gciAtIDE7CiAgICAgICAgICAgICAgICB0ID49IDA7CiAgICAgICAgICAgICAgICB0IC09IDEKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW3RdKSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW3RdLnByZXBhcmVGcmFtZShlIC0gdGhpcy5sYXllcnNbdF0uc3QpOwogICAgICAgICAgICAgIGlmICh0aGlzLmdsb2JhbERhdGEuX21kZikKICAgICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlTGF5ZXJzIHx8IHRoaXMuZWxlbWVudHNbdF0pICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1t0XS5yZW5kZXJGcmFtZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdSZW5kZXJlckJhc2UucHJvdG90eXBlLmFwcGVuZEVsZW1lbnRJblBvcyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHZhciByID0gZS5nZXRCYXNlRWxlbWVudCgpOwogICAgICAgICAgICBpZiAocikgewogICAgICAgICAgICAgIGZvciAodmFyIG4sIGkgPSAwOyBpIDwgdDsgKQogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tpXSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2ldICE9PSAhMCAmJgogICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2ldLmdldEJhc2VFbGVtZW50KCkgJiYKICAgICAgICAgICAgICAgICAgKG4gPSB0aGlzLmVsZW1lbnRzW2ldLmdldEJhc2VFbGVtZW50KCkpLAogICAgICAgICAgICAgICAgICAoaSArPSAxKTsKICAgICAgICAgICAgICBuCiAgICAgICAgICAgICAgICA/IHRoaXMubGF5ZXJFbGVtZW50Lmluc2VydEJlZm9yZShyLCBuKQogICAgICAgICAgICAgICAgOiB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmxheWVyRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudCwKICAgICAgICAgICAgICBIaWVyYXJjaHlFbGVtZW50LAogICAgICAgICAgICAgIEZyYW1lRWxlbWVudCwKICAgICAgICAgICAgICBSZW5kZXJhYmxlRE9NRWxlbWVudCwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgSUNvbXBFbGVtZW50CiAgICAgICAgICApLAogICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuaW5pdEVsZW1lbnQgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICB0aGlzLmluaXRGcmFtZSgpLAogICAgICAgICAgICAgIHRoaXMuaW5pdEJhc2VEYXRhKGUsIHQsIHIpLAogICAgICAgICAgICAgIHRoaXMuaW5pdFRyYW5zZm9ybShlLCB0LCByKSwKICAgICAgICAgICAgICB0aGlzLmluaXRSZW5kZXJhYmxlKCksCiAgICAgICAgICAgICAgdGhpcy5pbml0SGllcmFyY2h5KCksCiAgICAgICAgICAgICAgdGhpcy5pbml0UmVuZGVyZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgdGhpcy5jcmVhdGVDb250YWluZXJFbGVtZW50cygpLAogICAgICAgICAgICAgIHRoaXMuY3JlYXRlUmVuZGVyYWJsZUNvbXBvbmVudHMoKSwKICAgICAgICAgICAgICAoIXRoaXMuZGF0YS54dCAmJiB0LnByb2dyZXNzaXZlTG9hZCkgfHwgdGhpcy5idWlsZEFsbEl0ZW1zKCksCiAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChJQ29tcEVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAoKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICB0aGlzLnByZXBhcmVSZW5kZXJhYmxlRnJhbWUoZSksCiAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlUHJvcGVydGllcyhlLCB0aGlzLmlzSW5SYW5nZSksCiAgICAgICAgICAgICAgdGhpcy5pc0luUmFuZ2UgfHwgdGhpcy5kYXRhLnh0KQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBpZiAodGhpcy50bS5fcGxhY2Vob2xkZXIpIHRoaXMucmVuZGVyZWRGcmFtZSA9IGUgLyB0aGlzLmRhdGEuc3I7CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMudG0udjsKICAgICAgICAgICAgICAgIHQgPT09IHRoaXMuZGF0YS5vcCAmJiAodCA9IHRoaXMuZGF0YS5vcCAtIDEpLAogICAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gdCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiA9IHRoaXMuZWxlbWVudHMubGVuZ3RoOwogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlTGF5ZXJzIHx8IHRoaXMuY2hlY2tMYXllcnModGhpcy5yZW5kZXJlZEZyYW1lKSwKICAgICAgICAgICAgICAgICAgciA9IG4gLSAxOwogICAgICAgICAgICAgICAgciA+PSAwOwogICAgICAgICAgICAgICAgciAtPSAxCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKHRoaXMuY29tcGxldGVMYXllcnMgfHwgdGhpcy5lbGVtZW50c1tyXSkgJiYKICAgICAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHNbcl0ucHJlcGFyZUZyYW1lKAogICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZWRGcmFtZSAtIHRoaXMubGF5ZXJzW3JdLnN0CiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbcl0uX21kZiAmJiAodGhpcy5fbWRmID0gITApKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoSUNvbXBFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJJbm5lckNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQgPSB0aGlzLmxheWVycy5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgKHRoaXMuY29tcGxldGVMYXllcnMgfHwgdGhpcy5lbGVtZW50c1tlXSkgJiYKICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0ucmVuZGVyRnJhbWUoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuc2V0RWxlbWVudHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLmVsZW1lbnRzID0gZTsKICAgICAgICAgIH0pLAogICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRzOwogICAgICAgICAgfSksCiAgICAgICAgICAoSUNvbXBFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95RWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQgPSB0aGlzLmxheWVycy5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tlXSAmJiB0aGlzLmVsZW1lbnRzW2VdLmRlc3Ryb3koKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKElDb21wRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5kZXN0cm95RWxlbWVudHMoKSwgdGhpcy5kZXN0cm95QmFzZUVsZW1lbnQoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbU1ZHUmVuZGVyZXJCYXNlLCBJQ29tcEVsZW1lbnQsIFNWR0Jhc2VFbGVtZW50XSwKICAgICAgICAgICAgU1ZHQ29tcEVsZW1lbnQKICAgICAgICAgICksCiAgICAgICAgICAoU1ZHQ29tcEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbXAgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gbmV3IFNWR0NvbXBFbGVtZW50KGUsIHRoaXMuZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbU1ZHUmVuZGVyZXJCYXNlXSwgU1ZHUmVuZGVyZXIpLAogICAgICAgICAgKFNWR1JlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVDb21wID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBTVkdDb21wRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU2hhcGVUcmFuc2Zvcm1NYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgYWRkVHJhbnNmb3JtU2VxdWVuY2U6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gZS5sZW5ndGgsCiAgICAgICAgICAgICAgICBuID0gIl8iOwogICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpIG4gKz0gZVt0XS50cmFuc2Zvcm0ua2V5ICsgIl8iOwogICAgICAgICAgICAgIHZhciBpID0gdGhpcy5zZXF1ZW5jZXNbbl07CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGkgfHwKICAgICAgICAgICAgICAgICAgKChpID0gewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybXM6IFtdLmNvbmNhdChlKSwKICAgICAgICAgICAgICAgICAgICBmaW5hbFRyYW5zZm9ybTogbmV3IE1hdHJpeCgpLAogICAgICAgICAgICAgICAgICAgIF9tZGY6ICExLAogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgKHRoaXMuc2VxdWVuY2VzW25dID0gaSksCiAgICAgICAgICAgICAgICAgIHRoaXMuc2VxdWVuY2VMaXN0LnB1c2goaSkpLAogICAgICAgICAgICAgICAgaQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHByb2Nlc3NTZXF1ZW5jZTogZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICBmb3IgKHZhciByID0gMCwgbiA9IGUudHJhbnNmb3Jtcy5sZW5ndGgsIGkgPSB0OyByIDwgbiAmJiAhdDsgKSB7CiAgICAgICAgICAgICAgICBpZiAoZS50cmFuc2Zvcm1zW3JdLnRyYW5zZm9ybS5tUHJvcHMuX21kZikgewogICAgICAgICAgICAgICAgICBpID0gITA7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoaSkKICAgICAgICAgICAgICAgIGZvciAoZS5maW5hbFRyYW5zZm9ybS5yZXNldCgpLCByID0gbiAtIDE7IHIgPj0gMDsgciAtPSAxKQogICAgICAgICAgICAgICAgICBlLmZpbmFsVHJhbnNmb3JtLm11bHRpcGx5KGUudHJhbnNmb3Jtc1tyXS50cmFuc2Zvcm0ubVByb3BzLnYpOwogICAgICAgICAgICAgIGUuX21kZiA9IGk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHByb2Nlc3NTZXF1ZW5jZXM6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByID0gdGhpcy5zZXF1ZW5jZUxpc3QubGVuZ3RoOwogICAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NTZXF1ZW5jZSh0aGlzLnNlcXVlbmNlTGlzdFt0XSwgZSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGdldE5ld0tleTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1fa2V5X2NvdW50ICs9IDEpLCAiXyIgKyB0aGlzLnRyYW5zZm9ybV9rZXlfY291bnQKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9LAogICAgICAgICAgfSk7CiAgICAgICAgdmFyIGx1bWFMb2FkZXIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgZSA9ICJfX2xvdHRpZV9lbGVtZW50X2x1bWFfYnVmZmVyIiwKICAgICAgICAgICAgdCA9IG51bGwsCiAgICAgICAgICAgIHIgPSBudWxsLAogICAgICAgICAgICBuID0gbnVsbDsKICAgICAgICAgIGZ1bmN0aW9uIGkoKSB7CiAgICAgICAgICAgIHZhciBhLCBvLCBzOwogICAgICAgICAgICB0IHx8CiAgICAgICAgICAgICAgKChhID0gY3JlYXRlTlMoInN2ZyIpKSwKICAgICAgICAgICAgICAobyA9IGNyZWF0ZU5TKCJmaWx0ZXIiKSksCiAgICAgICAgICAgICAgKHMgPSBjcmVhdGVOUygiZmVDb2xvck1hdHJpeCIpKSwKICAgICAgICAgICAgICBvLnNldEF0dHJpYnV0ZSgiaWQiLCBlKSwKICAgICAgICAgICAgICBzLnNldEF0dHJpYnV0ZSgidHlwZSIsICJtYXRyaXgiKSwKICAgICAgICAgICAgICBzLnNldEF0dHJpYnV0ZSgiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIiwgInNSR0IiKSwKICAgICAgICAgICAgICBzLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICJ2YWx1ZXMiLAogICAgICAgICAgICAgICAgIjAuMywgMC4zLCAwLjMsIDAsIDAsIDAuMywgMC4zLCAwLjMsIDAsIDAsIDAuMywgMC4zLCAwLjMsIDAsIDAsIDAuMywgMC4zLCAwLjMsIDAsIDAiCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBvLmFwcGVuZENoaWxkKHMpLAogICAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQobyksCiAgICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoImlkIiwgZSArICJfc3ZnIiksCiAgICAgICAgICAgICAgZmVhdHVyZVN1cHBvcnQuc3ZnTHVtYUhpZGRlbiAmJiAoYS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiKSwKICAgICAgICAgICAgICAobiA9IGEpLAogICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksCiAgICAgICAgICAgICAgKHQgPSBjcmVhdGVUYWcoImNhbnZhcyIpKSwKICAgICAgICAgICAgICAoKHIgPSB0LmdldENvbnRleHQoIjJkIikpLmZpbHRlciA9ICJ1cmwoIyIgKyBlICsgIikiKSwKICAgICAgICAgICAgICAoci5maWxsU3R5bGUgPSAicmdiYSgwLDAsMCwwKSIpLAogICAgICAgICAgICAgIHIuZmlsbFJlY3QoMCwgMCwgMSwgMSkpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgbG9hZDogaSwKICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoYSkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICB0IHx8IGkoKSwKICAgICAgICAgICAgICAgICh0LndpZHRoID0gYS53aWR0aCksCiAgICAgICAgICAgICAgICAodC5oZWlnaHQgPSBhLmhlaWdodCksCiAgICAgICAgICAgICAgICAoci5maWx0ZXIgPSAidXJsKCMiICsgZSArICIpIiksCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH07CiAgICAgICAgfTsKICAgICAgICBmdW5jdGlvbiBjcmVhdGVDYW52YXMoZSwgdCkgewogICAgICAgICAgaWYgKGZlYXR1cmVTdXBwb3J0Lm9mZnNjcmVlbkNhbnZhcykgcmV0dXJuIG5ldyBPZmZzY3JlZW5DYW52YXMoZSwgdCk7CiAgICAgICAgICB2YXIgciA9IGNyZWF0ZVRhZygiY2FudmFzIik7CiAgICAgICAgICByZXR1cm4gKHIud2lkdGggPSBlKSwgKHIuaGVpZ2h0ID0gdCksIHI7CiAgICAgICAgfQogICAgICAgIHZhciBhc3NldExvYWRlciA9IHsKICAgICAgICAgICAgbG9hZEx1bWFDYW52YXM6IGx1bWFMb2FkZXIubG9hZCwKICAgICAgICAgICAgZ2V0THVtYUNhbnZhczogbHVtYUxvYWRlci5nZXQsCiAgICAgICAgICAgIGNyZWF0ZUNhbnZhcywKICAgICAgICAgIH0sCiAgICAgICAgICByZWdpc3RlcmVkRWZmZWN0cyA9IHt9OwogICAgICAgIGZ1bmN0aW9uIENWRWZmZWN0cyhlKSB7CiAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgciwKICAgICAgICAgICAgbiA9IGUuZGF0YS5lZiA/IGUuZGF0YS5lZi5sZW5ndGggOiAwOwogICAgICAgICAgZm9yICh0aGlzLmZpbHRlcnMgPSBbXSwgdCA9IDA7IHQgPCBuOyB0ICs9IDEpIHsKICAgICAgICAgICAgciA9IG51bGw7CiAgICAgICAgICAgIHZhciBpID0gZS5kYXRhLmVmW3RdLnR5OwogICAgICAgICAgICByZWdpc3RlcmVkRWZmZWN0c1tpXSAmJgogICAgICAgICAgICAgIChyID0gbmV3IHJlZ2lzdGVyZWRFZmZlY3RzW2ldLmVmZmVjdCgKICAgICAgICAgICAgICAgIGUuZWZmZWN0c01hbmFnZXIuZWZmZWN0RWxlbWVudHNbdF0sCiAgICAgICAgICAgICAgICBlCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgciAmJiB0aGlzLmZpbHRlcnMucHVzaChyKTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuZmlsdGVycy5sZW5ndGggJiYgZS5hZGRSZW5kZXJhYmxlQ29tcG9uZW50KHRoaXMpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiByZWdpc3RlckVmZmVjdChlLCB0KSB7CiAgICAgICAgICByZWdpc3RlcmVkRWZmZWN0c1tlXSA9IHsgZWZmZWN0OiB0IH07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIENWTWFza0VsZW1lbnQoZSwgdCkgewogICAgICAgICAgdmFyIHI7CiAgICAgICAgICAodGhpcy5kYXRhID0gZSksCiAgICAgICAgICAgICh0aGlzLmVsZW1lbnQgPSB0KSwKICAgICAgICAgICAgKHRoaXMubWFza3NQcm9wZXJ0aWVzID0gdGhpcy5kYXRhLm1hc2tzUHJvcGVydGllcyB8fCBbXSksCiAgICAgICAgICAgICh0aGlzLnZpZXdEYXRhID0gY3JlYXRlU2l6ZWRBcnJheSh0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGgpKTsKICAgICAgICAgIHZhciBuID0gdGhpcy5tYXNrc1Byb3BlcnRpZXMubGVuZ3RoLAogICAgICAgICAgICBpID0gITE7CiAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKQogICAgICAgICAgICB0aGlzLm1hc2tzUHJvcGVydGllc1tyXS5tb2RlICE9PSAibiIgJiYgKGkgPSAhMCksCiAgICAgICAgICAgICAgKHRoaXMudmlld0RhdGFbcl0gPSBTaGFwZVByb3BlcnR5RmFjdG9yeS5nZXRTaGFwZVByb3AoCiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsCiAgICAgICAgICAgICAgICB0aGlzLm1hc2tzUHJvcGVydGllc1tyXSwKICAgICAgICAgICAgICAgIDMKICAgICAgICAgICAgICApKTsKICAgICAgICAgICh0aGlzLmhhc01hc2tzID0gaSksIGkgJiYgdGhpcy5lbGVtZW50LmFkZFJlbmRlcmFibGVDb21wb25lbnQodGhpcyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIENWQmFzZUVsZW1lbnQoKSB7fQogICAgICAgIChDVkVmZmVjdHMucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIHZhciB0LAogICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aDsKICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpIHRoaXMuZmlsdGVyc1t0XS5yZW5kZXJGcmFtZShlKTsKICAgICAgICB9KSwKICAgICAgICAgIChDVkVmZmVjdHMucHJvdG90eXBlLmdldEVmZmVjdHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJzLmxlbmd0aCwKICAgICAgICAgICAgICBuID0gW107CiAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCByOyB0ICs9IDEpCiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzW3RdLnR5cGUgPT09IGUgJiYgbi5wdXNoKHRoaXMuZmlsdGVyc1t0XSk7CiAgICAgICAgICAgIHJldHVybiBuOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZNYXNrRWxlbWVudC5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmhhc01hc2tzKSB7CiAgICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpID0gdGhpcy5lbGVtZW50LmZpbmFsVHJhbnNmb3JtLm1hdCwKICAgICAgICAgICAgICAgIGEgPSB0aGlzLmVsZW1lbnQuY2FudmFzQ29udGV4dCwKICAgICAgICAgICAgICAgIG8gPSB0aGlzLm1hc2tzUHJvcGVydGllcy5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yIChhLmJlZ2luUGF0aCgpLCBlID0gMDsgZSA8IG87IGUgKz0gMSkKICAgICAgICAgICAgICAgIGlmICh0aGlzLm1hc2tzUHJvcGVydGllc1tlXS5tb2RlICE9PSAibiIpIHsKICAgICAgICAgICAgICAgICAgdmFyIHM7CiAgICAgICAgICAgICAgICAgIHRoaXMubWFza3NQcm9wZXJ0aWVzW2VdLmludiAmJgogICAgICAgICAgICAgICAgICAgIChhLm1vdmVUbygwLCAwKSwKICAgICAgICAgICAgICAgICAgICBhLmxpbmVUbyh0aGlzLmVsZW1lbnQuZ2xvYmFsRGF0YS5jb21wU2l6ZS53LCAwKSwKICAgICAgICAgICAgICAgICAgICBhLmxpbmVUbygKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5nbG9iYWxEYXRhLmNvbXBTaXplLncsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZ2xvYmFsRGF0YS5jb21wU2l6ZS5oCiAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICBhLmxpbmVUbygwLCB0aGlzLmVsZW1lbnQuZ2xvYmFsRGF0YS5jb21wU2l6ZS5oKSwKICAgICAgICAgICAgICAgICAgICBhLmxpbmVUbygwLCAwKSksCiAgICAgICAgICAgICAgICAgICAgKG4gPSB0aGlzLnZpZXdEYXRhW2VdLnYpLAogICAgICAgICAgICAgICAgICAgICh0ID0gaS5hcHBseVRvUG9pbnRBcnJheShuLnZbMF1bMF0sIG4udlswXVsxXSwgMCkpLAogICAgICAgICAgICAgICAgICAgIGEubW92ZVRvKHRbMF0sIHRbMV0pOwogICAgICAgICAgICAgICAgICB2YXIgYyA9IG4uX2xlbmd0aDsKICAgICAgICAgICAgICAgICAgZm9yIChzID0gMTsgcyA8IGM7IHMgKz0gMSkKICAgICAgICAgICAgICAgICAgICAociA9IGkuYXBwbHlUb1RyaXBsZVBvaW50cyhuLm9bcyAtIDFdLCBuLmlbc10sIG4udltzXSkpLAogICAgICAgICAgICAgICAgICAgICAgYS5iZXppZXJDdXJ2ZVRvKHJbMF0sIHJbMV0sIHJbMl0sIHJbM10sIHJbNF0sIHJbNV0pOwogICAgICAgICAgICAgICAgICAociA9IGkuYXBwbHlUb1RyaXBsZVBvaW50cyhuLm9bcyAtIDFdLCBuLmlbMF0sIG4udlswXSkpLAogICAgICAgICAgICAgICAgICAgIGEuYmV6aWVyQ3VydmVUbyhyWzBdLCByWzFdLCByWzJdLCByWzNdLCByWzRdLCByWzVdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZ2xvYmFsRGF0YS5yZW5kZXJlci5zYXZlKCEwKSwgYS5jbGlwKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKENWTWFza0VsZW1lbnQucHJvdG90eXBlLmdldE1hc2tQcm9wZXJ0eSA9CiAgICAgICAgICAgIE1hc2tFbGVtZW50LnByb3RvdHlwZS5nZXRNYXNrUHJvcGVydHkpLAogICAgICAgICAgKENWTWFza0VsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuZWxlbWVudCA9IG51bGw7CiAgICAgICAgICB9KTsKICAgICAgICB2YXIgb3BlcmF0aW9uc01hcCA9IHsKICAgICAgICAgIDE6ICJzb3VyY2UtaW4iLAogICAgICAgICAgMjogInNvdXJjZS1vdXQiLAogICAgICAgICAgMzogInNvdXJjZS1pbiIsCiAgICAgICAgICA0OiAic291cmNlLW91dCIsCiAgICAgICAgfTsKICAgICAgICBmdW5jdGlvbiBDVlNoYXBlRGF0YShlLCB0LCByLCBuKSB7CiAgICAgICAgICAodGhpcy5zdHlsZWRTaGFwZXMgPSBbXSksICh0aGlzLnRyID0gWzAsIDAsIDAsIDAsIDAsIDBdKTsKICAgICAgICAgIHZhciBpLAogICAgICAgICAgICBhID0gNDsKICAgICAgICAgIHQudHkgPT09ICJyYyIKICAgICAgICAgICAgPyAoYSA9IDUpCiAgICAgICAgICAgIDogdC50eSA9PT0gImVsIgogICAgICAgICAgICA/IChhID0gNikKICAgICAgICAgICAgOiB0LnR5ID09PSAic3IiICYmIChhID0gNyksCiAgICAgICAgICAgICh0aGlzLnNoID0gU2hhcGVQcm9wZXJ0eUZhY3RvcnkuZ2V0U2hhcGVQcm9wKGUsIHQsIGEsIGUpKTsKICAgICAgICAgIHZhciBvLAogICAgICAgICAgICBzID0gci5sZW5ndGg7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgczsgaSArPSAxKQogICAgICAgICAgICByW2ldLmNsb3NlZCB8fAogICAgICAgICAgICAgICgobyA9IHsKICAgICAgICAgICAgICAgIHRyYW5zZm9ybXM6IG4uYWRkVHJhbnNmb3JtU2VxdWVuY2UocltpXS50cmFuc2Zvcm1zKSwKICAgICAgICAgICAgICAgIHRyTm9kZXM6IFtdLAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIHRoaXMuc3R5bGVkU2hhcGVzLnB1c2gobyksCiAgICAgICAgICAgICAgcltpXS5lbGVtZW50cy5wdXNoKG8pKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQ1ZTaGFwZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMuc2hhcGVzID0gW10pLAogICAgICAgICAgICAodGhpcy5zaGFwZXNEYXRhID0gZS5zaGFwZXMpLAogICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0ID0gW10pLAogICAgICAgICAgICAodGhpcy5pdGVtc0RhdGEgPSBbXSksCiAgICAgICAgICAgICh0aGlzLnByZXZWaWV3RGF0YSA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuc2hhcGVNb2RpZmllcnMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLnByb2Nlc3NlZEVsZW1lbnRzID0gW10pLAogICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1zTWFuYWdlciA9IG5ldyBTaGFwZVRyYW5zZm9ybU1hbmFnZXIoKSksCiAgICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgcik7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIENWVGV4dEVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMudGV4dFNwYW5zID0gW10pLAogICAgICAgICAgICAodGhpcy55T2Zmc2V0ID0gMCksCiAgICAgICAgICAgICh0aGlzLmZpbGxDb2xvckFuaW0gPSAhMSksCiAgICAgICAgICAgICh0aGlzLnN0cm9rZUNvbG9yQW5pbSA9ICExKSwKICAgICAgICAgICAgKHRoaXMuc3Ryb2tlV2lkdGhBbmltID0gITEpLAogICAgICAgICAgICAodGhpcy5zdHJva2UgPSAhMSksCiAgICAgICAgICAgICh0aGlzLmZpbGwgPSAhMSksCiAgICAgICAgICAgICh0aGlzLmp1c3RpZnlPZmZzZXQgPSAwKSwKICAgICAgICAgICAgKHRoaXMuY3VycmVudFJlbmRlciA9IG51bGwpLAogICAgICAgICAgICAodGhpcy5yZW5kZXJUeXBlID0gImNhbnZhcyIpLAogICAgICAgICAgICAodGhpcy52YWx1ZXMgPSB7CiAgICAgICAgICAgICAgZmlsbDogInJnYmEoMCwwLDAsMCkiLAogICAgICAgICAgICAgIHN0cm9rZTogInJnYmEoMCwwLDAsMCkiLAogICAgICAgICAgICAgIHNXaWR0aDogMCwKICAgICAgICAgICAgICBmVmFsdWU6ICIiLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgdGhpcy5pbml0RWxlbWVudChlLCB0LCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQ1ZJbWFnZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMuYXNzZXREYXRhID0gdC5nZXRBc3NldERhdGEoZS5yZWZJZCkpLAogICAgICAgICAgICAodGhpcy5pbWcgPSB0LmltYWdlTG9hZGVyLmdldEFzc2V0KHRoaXMuYXNzZXREYXRhKSksCiAgICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgcik7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIENWU29saWRFbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgcik7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIENhbnZhc1JlbmRlcmVyQmFzZSgpIHt9CiAgICAgICAgZnVuY3Rpb24gQ2FudmFzQ29udGV4dCgpIHsKICAgICAgICAgICh0aGlzLm9wYWNpdHkgPSAtMSksCiAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybSA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCAxNikpLAogICAgICAgICAgICAodGhpcy5maWxsU3R5bGUgPSAiIiksCiAgICAgICAgICAgICh0aGlzLnN0cm9rZVN0eWxlID0gIiIpLAogICAgICAgICAgICAodGhpcy5saW5lV2lkdGggPSAiIiksCiAgICAgICAgICAgICh0aGlzLmxpbmVDYXAgPSAiIiksCiAgICAgICAgICAgICh0aGlzLmxpbmVKb2luID0gIiIpLAogICAgICAgICAgICAodGhpcy5taXRlckxpbWl0ID0gIiIpLAogICAgICAgICAgICAodGhpcy5pZCA9IE1hdGgucmFuZG9tKCkpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBDVkNvbnRleHREYXRhKCkgewogICAgICAgICAgdmFyIGU7CiAgICAgICAgICBmb3IgKAogICAgICAgICAgICB0aGlzLnN0YWNrID0gW10sIHRoaXMuY0FyclBvcyA9IDAsIHRoaXMuY1RyID0gbmV3IE1hdHJpeCgpLCBlID0gMDsKICAgICAgICAgICAgZSA8IDE1OwogICAgICAgICAgICBlICs9IDEKICAgICAgICAgICkgewogICAgICAgICAgICB2YXIgdCA9IG5ldyBDYW52YXNDb250ZXh0KCk7CiAgICAgICAgICAgIHRoaXMuc3RhY2tbZV0gPSB0OwogICAgICAgICAgfQogICAgICAgICAgKHRoaXMuX2xlbmd0aCA9IDE1KSwKICAgICAgICAgICAgKHRoaXMubmF0aXZlQ29udGV4dCA9IG51bGwpLAogICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1NYXQgPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAodGhpcy5jdXJyZW50T3BhY2l0eSA9IDEpLAogICAgICAgICAgICAodGhpcy5jdXJyZW50RmlsbFN0eWxlID0gIiIpLAogICAgICAgICAgICAodGhpcy5hcHBsaWVkRmlsbFN0eWxlID0gIiIpLAogICAgICAgICAgICAodGhpcy5jdXJyZW50U3Ryb2tlU3R5bGUgPSAiIiksCiAgICAgICAgICAgICh0aGlzLmFwcGxpZWRTdHJva2VTdHlsZSA9ICIiKSwKICAgICAgICAgICAgKHRoaXMuY3VycmVudExpbmVXaWR0aCA9ICIiKSwKICAgICAgICAgICAgKHRoaXMuYXBwbGllZExpbmVXaWR0aCA9ICIiKSwKICAgICAgICAgICAgKHRoaXMuY3VycmVudExpbmVDYXAgPSAiIiksCiAgICAgICAgICAgICh0aGlzLmFwcGxpZWRMaW5lQ2FwID0gIiIpLAogICAgICAgICAgICAodGhpcy5jdXJyZW50TGluZUpvaW4gPSAiIiksCiAgICAgICAgICAgICh0aGlzLmFwcGxpZWRMaW5lSm9pbiA9ICIiKSwKICAgICAgICAgICAgKHRoaXMuYXBwbGllZE1pdGVyTGltaXQgPSAiIiksCiAgICAgICAgICAgICh0aGlzLmN1cnJlbnRNaXRlckxpbWl0ID0gIiIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBDVkNvbXBFbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgICh0aGlzLmNvbXBsZXRlTGF5ZXJzID0gITEpLAogICAgICAgICAgICAodGhpcy5sYXllcnMgPSBlLmxheWVycyksCiAgICAgICAgICAgICh0aGlzLnBlbmRpbmdFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBjcmVhdGVTaXplZEFycmF5KHRoaXMubGF5ZXJzLmxlbmd0aCkpLAogICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpLAogICAgICAgICAgICAodGhpcy50bSA9IGUudG0KICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUudG0sIDAsIHQuZnJhbWVSYXRlLCB0aGlzKQogICAgICAgICAgICAgIDogeyBfcGxhY2Vob2xkZXI6ICEwIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBDYW52YXNSZW5kZXJlcihlLCB0KSB7CiAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtID0gZSksCiAgICAgICAgICAgICh0aGlzLnJlbmRlckNvbmZpZyA9IHsKICAgICAgICAgICAgICBjbGVhckNhbnZhczogIXQgfHwgdC5jbGVhckNhbnZhcyA9PT0gdm9pZCAwIHx8IHQuY2xlYXJDYW52YXMsCiAgICAgICAgICAgICAgY29udGV4dDogKHQgJiYgdC5jb250ZXh0KSB8fCBudWxsLAogICAgICAgICAgICAgIHByb2dyZXNzaXZlTG9hZDogKHQgJiYgdC5wcm9ncmVzc2l2ZUxvYWQpIHx8ICExLAogICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW86CiAgICAgICAgICAgICAgICAodCAmJiB0LnByZXNlcnZlQXNwZWN0UmF0aW8pIHx8ICJ4TWlkWU1pZCBtZWV0IiwKICAgICAgICAgICAgICBpbWFnZVByZXNlcnZlQXNwZWN0UmF0aW86CiAgICAgICAgICAgICAgICAodCAmJiB0LmltYWdlUHJlc2VydmVBc3BlY3RSYXRpbykgfHwgInhNaWRZTWlkIHNsaWNlIiwKICAgICAgICAgICAgICBjb250ZW50VmlzaWJpbGl0eTogKHQgJiYgdC5jb250ZW50VmlzaWJpbGl0eSkgfHwgInZpc2libGUiLAogICAgICAgICAgICAgIGNsYXNzTmFtZTogKHQgJiYgdC5jbGFzc05hbWUpIHx8ICIiLAogICAgICAgICAgICAgIGlkOiAodCAmJiB0LmlkKSB8fCAiIiwKICAgICAgICAgICAgICBydW5FeHByZXNzaW9uczoKICAgICAgICAgICAgICAgICF0IHx8IHQucnVuRXhwcmVzc2lvbnMgPT09IHZvaWQgMCB8fCB0LnJ1bkV4cHJlc3Npb25zLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHRoaXMucmVuZGVyQ29uZmlnLmRwciA9ICh0ICYmIHQuZHByKSB8fCAxKSwKICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIgJiYKICAgICAgICAgICAgICAodGhpcy5yZW5kZXJDb25maWcuZHByID0KICAgICAgICAgICAgICAgICh0ICYmIHQuZHByKSB8fCB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxKSwKICAgICAgICAgICAgKHRoaXMucmVuZGVyZWRGcmFtZSA9IC0xKSwKICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IHsKICAgICAgICAgICAgICBmcmFtZU51bTogLTEsCiAgICAgICAgICAgICAgX21kZjogITEsCiAgICAgICAgICAgICAgcmVuZGVyQ29uZmlnOiB0aGlzLnJlbmRlckNvbmZpZywKICAgICAgICAgICAgICBjdXJyZW50R2xvYmFsQWxwaGE6IC0xLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHRoaXMuY29udGV4dERhdGEgPSBuZXcgQ1ZDb250ZXh0RGF0YSgpKSwKICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLnBlbmRpbmdFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtTWF0ID0gbmV3IE1hdHJpeCgpKSwKICAgICAgICAgICAgKHRoaXMuY29tcGxldGVMYXllcnMgPSAhMSksCiAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyVHlwZSA9ICJjYW52YXMiKSwKICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuY2xlYXJDYW52YXMgJiYKICAgICAgICAgICAgICAoKHRoaXMuY3R4VHJhbnNmb3JtID0gdGhpcy5jb250ZXh0RGF0YS50cmFuc2Zvcm0uYmluZCgKICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dERhdGEKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAodGhpcy5jdHhPcGFjaXR5ID0gdGhpcy5jb250ZXh0RGF0YS5vcGFjaXR5LmJpbmQoCiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHREYXRhCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMuY3R4RmlsbFN0eWxlID0gdGhpcy5jb250ZXh0RGF0YS5maWxsU3R5bGUuYmluZCgKICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dERhdGEKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAodGhpcy5jdHhTdHJva2VTdHlsZSA9IHRoaXMuY29udGV4dERhdGEuc3Ryb2tlU3R5bGUuYmluZCgKICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dERhdGEKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAodGhpcy5jdHhMaW5lV2lkdGggPSB0aGlzLmNvbnRleHREYXRhLmxpbmVXaWR0aC5iaW5kKAogICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0RGF0YQogICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICh0aGlzLmN0eExpbmVDYXAgPSB0aGlzLmNvbnRleHREYXRhLmxpbmVDYXAuYmluZCgKICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dERhdGEKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAodGhpcy5jdHhMaW5lSm9pbiA9IHRoaXMuY29udGV4dERhdGEubGluZUpvaW4uYmluZCgKICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dERhdGEKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAodGhpcy5jdHhNaXRlckxpbWl0ID0gdGhpcy5jb250ZXh0RGF0YS5taXRlckxpbWl0LmJpbmQoCiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHREYXRhCiAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgKHRoaXMuY3R4RmlsbCA9IHRoaXMuY29udGV4dERhdGEuZmlsbC5iaW5kKHRoaXMuY29udGV4dERhdGEpKSwKICAgICAgICAgICAgICAodGhpcy5jdHhGaWxsUmVjdCA9IHRoaXMuY29udGV4dERhdGEuZmlsbFJlY3QuYmluZCgKICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dERhdGEKICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAodGhpcy5jdHhTdHJva2UgPSB0aGlzLmNvbnRleHREYXRhLnN0cm9rZS5iaW5kKHRoaXMuY29udGV4dERhdGEpKSwKICAgICAgICAgICAgICAodGhpcy5zYXZlID0gdGhpcy5jb250ZXh0RGF0YS5zYXZlLmJpbmQodGhpcy5jb250ZXh0RGF0YSkpKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gSEJhc2VFbGVtZW50KCkge30KICAgICAgICBmdW5jdGlvbiBIU29saWRFbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgcik7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIEhTaGFwZUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMuc2hhcGVzID0gW10pLAogICAgICAgICAgICAodGhpcy5zaGFwZXNEYXRhID0gZS5zaGFwZXMpLAogICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0ID0gW10pLAogICAgICAgICAgICAodGhpcy5zaGFwZU1vZGlmaWVycyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuaXRlbXNEYXRhID0gW10pLAogICAgICAgICAgICAodGhpcy5wcm9jZXNzZWRFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuYW5pbWF0ZWRDb250ZW50cyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuc2hhcGVzQ29udGFpbmVyID0gY3JlYXRlTlMoImciKSksCiAgICAgICAgICAgIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgciksCiAgICAgICAgICAgICh0aGlzLnByZXZWaWV3RGF0YSA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuY3VycmVudEJCb3ggPSB7IHg6IDk5OTk5OSwgeTogLTk5OTk5OSwgaDogMCwgdzogMCB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gSFRleHRFbGVtZW50KGUsIHQsIHIpIHsKICAgICAgICAgICh0aGlzLnRleHRTcGFucyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMudGV4dFBhdGhzID0gW10pLAogICAgICAgICAgICAodGhpcy5jdXJyZW50QkJveCA9IHsgeDogOTk5OTk5LCB5OiAtOTk5OTk5LCBoOiAwLCB3OiAwIH0pLAogICAgICAgICAgICAodGhpcy5yZW5kZXJUeXBlID0gInN2ZyIpLAogICAgICAgICAgICAodGhpcy5pc01hc2tlZCA9ICExKSwKICAgICAgICAgICAgdGhpcy5pbml0RWxlbWVudChlLCB0LCByKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gSENhbWVyYUVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgdGhpcy5pbml0RnJhbWUoKSwgdGhpcy5pbml0QmFzZURhdGEoZSwgdCwgciksIHRoaXMuaW5pdEhpZXJhcmNoeSgpOwogICAgICAgICAgdmFyIG4gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcDsKICAgICAgICAgIGlmICgKICAgICAgICAgICAgKCh0aGlzLnBlID0gbih0aGlzLCBlLnBlLCAwLCAwLCB0aGlzKSksCiAgICAgICAgICAgIGUua3MucC5zCiAgICAgICAgICAgICAgPyAoKHRoaXMucHggPSBuKHRoaXMsIGUua3MucC54LCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy5weSA9IG4odGhpcywgZS5rcy5wLnksIDEsIDAsIHRoaXMpKSwKICAgICAgICAgICAgICAgICh0aGlzLnB6ID0gbih0aGlzLCBlLmtzLnAueiwgMSwgMCwgdGhpcykpKQogICAgICAgICAgICAgIDogKHRoaXMucCA9IG4odGhpcywgZS5rcy5wLCAxLCAwLCB0aGlzKSksCiAgICAgICAgICAgIGUua3MuYSAmJiAodGhpcy5hID0gbih0aGlzLCBlLmtzLmEsIDEsIDAsIHRoaXMpKSwKICAgICAgICAgICAgZS5rcy5vci5rLmxlbmd0aCAmJiBlLmtzLm9yLmtbMF0udG8pCiAgICAgICAgICApIHsKICAgICAgICAgICAgdmFyIGksCiAgICAgICAgICAgICAgYSA9IGUua3Mub3Iuay5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhOyBpICs9IDEpCiAgICAgICAgICAgICAgKGUua3Mub3Iua1tpXS50byA9IG51bGwpLCAoZS5rcy5vci5rW2ldLnRpID0gbnVsbCk7CiAgICAgICAgICB9CiAgICAgICAgICAodGhpcy5vciA9IG4odGhpcywgZS5rcy5vciwgMSwgZGVnVG9SYWRzLCB0aGlzKSksCiAgICAgICAgICAgICh0aGlzLm9yLnNoID0gITApLAogICAgICAgICAgICAodGhpcy5yeCA9IG4odGhpcywgZS5rcy5yeCwgMCwgZGVnVG9SYWRzLCB0aGlzKSksCiAgICAgICAgICAgICh0aGlzLnJ5ID0gbih0aGlzLCBlLmtzLnJ5LCAwLCBkZWdUb1JhZHMsIHRoaXMpKSwKICAgICAgICAgICAgKHRoaXMucnogPSBuKHRoaXMsIGUua3MucnosIDAsIGRlZ1RvUmFkcywgdGhpcykpLAogICAgICAgICAgICAodGhpcy5tYXQgPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAodGhpcy5fcHJldk1hdCA9IG5ldyBNYXRyaXgoKSksCiAgICAgICAgICAgICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMCksCiAgICAgICAgICAgICh0aGlzLmZpbmFsVHJhbnNmb3JtID0geyBtUHJvcDogdGhpcyB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gSEltYWdlRWxlbWVudChlLCB0LCByKSB7CiAgICAgICAgICAodGhpcy5hc3NldERhdGEgPSB0LmdldEFzc2V0RGF0YShlLnJlZklkKSksIHRoaXMuaW5pdEVsZW1lbnQoZSwgdCwgcik7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIEh5YnJpZFJlbmRlcmVyQmFzZShlLCB0KSB7CiAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtID0gZSksCiAgICAgICAgICAgICh0aGlzLmxheWVycyA9IG51bGwpLAogICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gLTEpLAogICAgICAgICAgICAodGhpcy5yZW5kZXJDb25maWcgPSB7CiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAodCAmJiB0LmNsYXNzTmFtZSkgfHwgIiIsCiAgICAgICAgICAgICAgaW1hZ2VQcmVzZXJ2ZUFzcGVjdFJhdGlvOgogICAgICAgICAgICAgICAgKHQgJiYgdC5pbWFnZVByZXNlcnZlQXNwZWN0UmF0aW8pIHx8ICJ4TWlkWU1pZCBzbGljZSIsCiAgICAgICAgICAgICAgaGlkZU9uVHJhbnNwYXJlbnQ6ICEodCAmJiB0LmhpZGVPblRyYW5zcGFyZW50ID09PSAhMSksCiAgICAgICAgICAgICAgZmlsdGVyU2l6ZTogewogICAgICAgICAgICAgICAgd2lkdGg6ICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUud2lkdGgpIHx8ICI0MDAlIiwKICAgICAgICAgICAgICAgIGhlaWdodDogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS5oZWlnaHQpIHx8ICI0MDAlIiwKICAgICAgICAgICAgICAgIHg6ICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUueCkgfHwgIi0xMDAlIiwKICAgICAgICAgICAgICAgIHk6ICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUueSkgfHwgIi0xMDAlIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IHsKICAgICAgICAgICAgICBfbWRmOiAhMSwKICAgICAgICAgICAgICBmcmFtZU51bTogLTEsCiAgICAgICAgICAgICAgcmVuZGVyQ29uZmlnOiB0aGlzLnJlbmRlckNvbmZpZywKICAgICAgICAgICAgfSksCiAgICAgICAgICAgICh0aGlzLnBlbmRpbmdFbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLnRocmVlREVsZW1lbnRzID0gW10pLAogICAgICAgICAgICAodGhpcy5kZXN0cm95ZWQgPSAhMSksCiAgICAgICAgICAgICh0aGlzLmNhbWVyYSA9IG51bGwpLAogICAgICAgICAgICAodGhpcy5zdXBwb3J0czNkID0gITApLAogICAgICAgICAgICAodGhpcy5yZW5kZXJlclR5cGUgPSAiaHRtbCIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBIQ29tcEVsZW1lbnQoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMubGF5ZXJzID0gZS5sYXllcnMpLAogICAgICAgICAgICAodGhpcy5zdXBwb3J0czNkID0gIWUuaGFzTWFzayksCiAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlTGF5ZXJzID0gITEpLAogICAgICAgICAgICAodGhpcy5wZW5kaW5nRWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLmVsZW1lbnRzID0gdGhpcy5sYXllcnMKICAgICAgICAgICAgICA/IGNyZWF0ZVNpemVkQXJyYXkodGhpcy5sYXllcnMubGVuZ3RoKQogICAgICAgICAgICAgIDogW10pLAogICAgICAgICAgICB0aGlzLmluaXRFbGVtZW50KGUsIHQsIHIpLAogICAgICAgICAgICAodGhpcy50bSA9IGUudG0KICAgICAgICAgICAgICA/IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUudG0sIDAsIHQuZnJhbWVSYXRlLCB0aGlzKQogICAgICAgICAgICAgIDogeyBfcGxhY2Vob2xkZXI6ICEwIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBIeWJyaWRSZW5kZXJlcihlLCB0KSB7CiAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtID0gZSksCiAgICAgICAgICAgICh0aGlzLmxheWVycyA9IG51bGwpLAogICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gLTEpLAogICAgICAgICAgICAodGhpcy5yZW5kZXJDb25maWcgPSB7CiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAodCAmJiB0LmNsYXNzTmFtZSkgfHwgIiIsCiAgICAgICAgICAgICAgaW1hZ2VQcmVzZXJ2ZUFzcGVjdFJhdGlvOgogICAgICAgICAgICAgICAgKHQgJiYgdC5pbWFnZVByZXNlcnZlQXNwZWN0UmF0aW8pIHx8ICJ4TWlkWU1pZCBzbGljZSIsCiAgICAgICAgICAgICAgaGlkZU9uVHJhbnNwYXJlbnQ6ICEodCAmJiB0LmhpZGVPblRyYW5zcGFyZW50ID09PSAhMSksCiAgICAgICAgICAgICAgZmlsdGVyU2l6ZTogewogICAgICAgICAgICAgICAgd2lkdGg6ICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUud2lkdGgpIHx8ICI0MDAlIiwKICAgICAgICAgICAgICAgIGhlaWdodDogKHQgJiYgdC5maWx0ZXJTaXplICYmIHQuZmlsdGVyU2l6ZS5oZWlnaHQpIHx8ICI0MDAlIiwKICAgICAgICAgICAgICAgIHg6ICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUueCkgfHwgIi0xMDAlIiwKICAgICAgICAgICAgICAgIHk6ICh0ICYmIHQuZmlsdGVyU2l6ZSAmJiB0LmZpbHRlclNpemUueSkgfHwgIi0xMDAlIiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHJ1bkV4cHJlc3Npb25zOgogICAgICAgICAgICAgICAgIXQgfHwgdC5ydW5FeHByZXNzaW9ucyA9PT0gdm9pZCAwIHx8IHQucnVuRXhwcmVzc2lvbnMsCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhID0gewogICAgICAgICAgICAgIF9tZGY6ICExLAogICAgICAgICAgICAgIGZyYW1lTnVtOiAtMSwKICAgICAgICAgICAgICByZW5kZXJDb25maWc6IHRoaXMucmVuZGVyQ29uZmlnLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKHRoaXMucGVuZGluZ0VsZW1lbnRzID0gW10pLAogICAgICAgICAgICAodGhpcy5lbGVtZW50cyA9IFtdKSwKICAgICAgICAgICAgKHRoaXMudGhyZWVERWxlbWVudHMgPSBbXSksCiAgICAgICAgICAgICh0aGlzLmRlc3Ryb3llZCA9ICExKSwKICAgICAgICAgICAgKHRoaXMuY2FtZXJhID0gbnVsbCksCiAgICAgICAgICAgICh0aGlzLnN1cHBvcnRzM2QgPSAhMCksCiAgICAgICAgICAgICh0aGlzLnJlbmRlcmVyVHlwZSA9ICJodG1sIik7CiAgICAgICAgfQogICAgICAgIChDVkJhc2VFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgIGNyZWF0ZUVsZW1lbnRzOiBmdW5jdGlvbiAoKSB7fSwKICAgICAgICAgIGluaXRSZW5kZXJlckVsZW1lbnQ6IGZ1bmN0aW9uICgpIHt9LAogICAgICAgICAgY3JlYXRlQ29udGFpbmVyRWxlbWVudHM6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS50dCA+PSAxKSB7CiAgICAgICAgICAgICAgdGhpcy5idWZmZXJzID0gW107CiAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dCwKICAgICAgICAgICAgICAgIHQgPSBhc3NldExvYWRlci5jcmVhdGVDYW52YXMoZS5jYW52YXMud2lkdGgsIGUuY2FudmFzLmhlaWdodCk7CiAgICAgICAgICAgICAgdGhpcy5idWZmZXJzLnB1c2godCk7CiAgICAgICAgICAgICAgdmFyIHIgPSBhc3NldExvYWRlci5jcmVhdGVDYW52YXMoZS5jYW52YXMud2lkdGgsIGUuY2FudmFzLmhlaWdodCk7CiAgICAgICAgICAgICAgdGhpcy5idWZmZXJzLnB1c2gociksCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEudHQgPj0gMyAmJgogICAgICAgICAgICAgICAgICAhZG9jdW1lbnQuX2lzUHJveHkgJiYKICAgICAgICAgICAgICAgICAgYXNzZXRMb2FkZXIubG9hZEx1bWFDYW52YXMoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAodGhpcy5jYW52YXNDb250ZXh0ID0gdGhpcy5nbG9iYWxEYXRhLmNhbnZhc0NvbnRleHQpLAogICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcyA9IHRoaXMuZ2xvYmFsRGF0YS50cmFuc2Zvcm1DYW52YXMpLAogICAgICAgICAgICAgICh0aGlzLnJlbmRlcmFibGVFZmZlY3RzTWFuYWdlciA9IG5ldyBDVkVmZmVjdHModGhpcykpLAogICAgICAgICAgICAgIHRoaXMuc2VhcmNoRWZmZWN0VHJhbnNmb3JtcygpOwogICAgICAgICAgfSwKICAgICAgICAgIGNyZWF0ZUNvbnRlbnQ6IGZ1bmN0aW9uICgpIHt9LAogICAgICAgICAgc2V0QmxlbmRNb2RlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlID0gdGhpcy5nbG9iYWxEYXRhOwogICAgICAgICAgICBpZiAoZS5ibGVuZE1vZGUgIT09IHRoaXMuZGF0YS5ibSkgewogICAgICAgICAgICAgIGUuYmxlbmRNb2RlID0gdGhpcy5kYXRhLmJtOwogICAgICAgICAgICAgIHZhciB0ID0gZ2V0QmxlbmRNb2RlKHRoaXMuZGF0YS5ibSk7CiAgICAgICAgICAgICAgZS5jYW52YXNDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9IHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBjcmVhdGVSZW5kZXJhYmxlQ29tcG9uZW50czogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAodGhpcy5tYXNrTWFuYWdlciA9IG5ldyBDVk1hc2tFbGVtZW50KHRoaXMuZGF0YSwgdGhpcykpLAogICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUVmZmVjdHMgPSB0aGlzLnJlbmRlcmFibGVFZmZlY3RzTWFuYWdlci5nZXRFZmZlY3RzKAogICAgICAgICAgICAgICAgZWZmZWN0VHlwZXMuVFJBTlNGT1JNX0VGRkVDVAogICAgICAgICAgICAgICkpOwogICAgICAgICAgfSwKICAgICAgICAgIGhpZGVFbGVtZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuaGlkZGVuIHx8CiAgICAgICAgICAgICAgKHRoaXMuaXNJblJhbmdlICYmICF0aGlzLmlzVHJhbnNwYXJlbnQpIHx8CiAgICAgICAgICAgICAgKHRoaXMuaGlkZGVuID0gITApOwogICAgICAgICAgfSwKICAgICAgICAgIHNob3dFbGVtZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuaXNJblJhbmdlICYmCiAgICAgICAgICAgICAgIXRoaXMuaXNUcmFuc3BhcmVudCAmJgogICAgICAgICAgICAgICgodGhpcy5oaWRkZW4gPSAhMSksCiAgICAgICAgICAgICAgKHRoaXMuX2lzRmlyc3RGcmFtZSA9ICEwKSwKICAgICAgICAgICAgICAodGhpcy5tYXNrTWFuYWdlci5faXNGaXJzdEZyYW1lID0gITApKTsKICAgICAgICAgIH0sCiAgICAgICAgICBjbGVhckNhbnZhczogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgZS5jbGVhclJlY3QoCiAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYW52YXMudHgsCiAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYW52YXMudHksCiAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYW52YXMudyAqIHRoaXMudHJhbnNmb3JtQ2FudmFzLnN4LAogICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLmggKiB0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeQogICAgICAgICAgICApOwogICAgICAgICAgfSwKICAgICAgICAgIHByZXBhcmVMYXllcjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5kYXRhLnR0ID49IDEpIHsKICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMuYnVmZmVyc1swXS5nZXRDb250ZXh0KCIyZCIpOwogICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXMoZSksCiAgICAgICAgICAgICAgICBlLmRyYXdJbWFnZSh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLCAwLCAwKSwKICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0gPSB0aGlzLmNhbnZhc0NvbnRleHQuZ2V0VHJhbnNmb3JtKCkpLAogICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAwLCAwKSwKICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXModGhpcy5jYW52YXNDb250ZXh0KSwKICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5zZXRUcmFuc2Zvcm0odGhpcy5jdXJyZW50VHJhbnNmb3JtKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGV4aXRMYXllcjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5kYXRhLnR0ID49IDEpIHsKICAgICAgICAgICAgICB2YXIgZSA9IHRoaXMuYnVmZmVyc1sxXSwKICAgICAgICAgICAgICAgIHQgPSBlLmdldENvbnRleHQoIjJkIik7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKHRoaXMuY2xlYXJDYW52YXModCksCiAgICAgICAgICAgICAgICB0LmRyYXdJbWFnZSh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLCAwLCAwKSwKICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5zZXRUcmFuc2Zvcm0oMSwgMCwgMCwgMSwgMCwgMCksCiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQ2FudmFzKHRoaXMuY2FudmFzQ29udGV4dCksCiAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuc2V0VHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSksCiAgICAgICAgICAgICAgICB0aGlzLmNvbXAKICAgICAgICAgICAgICAgICAgLmdldEVsZW1lbnRCeUlkKAogICAgICAgICAgICAgICAgICAgICJ0cCIgaW4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLnRwIDogdGhpcy5kYXRhLmluZCAtIDEKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAucmVuZGVyRnJhbWUoITApLAogICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAwLCAwKSwKICAgICAgICAgICAgICAgIHRoaXMuZGF0YS50dCA+PSAzICYmICFkb2N1bWVudC5faXNQcm94eSkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciByID0gYXNzZXRMb2FkZXIuZ2V0THVtYUNhbnZhcyh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzKTsKICAgICAgICAgICAgICAgIHIuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodGhpcy5jYW52YXNDb250ZXh0LmNhbnZhcywgMCwgMCksCiAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDYW52YXModGhpcy5jYW52YXNDb250ZXh0KSwKICAgICAgICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LmRyYXdJbWFnZShyLCAwLCAwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKHRoaXMuY2FudmFzQ29udGV4dC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPQogICAgICAgICAgICAgICAgb3BlcmF0aW9uc01hcFt0aGlzLmRhdGEudHRdKSwKICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5kcmF3SW1hZ2UoZSwgMCwgMCksCiAgICAgICAgICAgICAgICAodGhpcy5jYW52YXNDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9CiAgICAgICAgICAgICAgICAgICJkZXN0aW5hdGlvbi1vdmVyIiksCiAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuZHJhd0ltYWdlKHRoaXMuYnVmZmVyc1swXSwgMCwgMCksCiAgICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuc2V0VHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSksCiAgICAgICAgICAgICAgICAodGhpcy5jYW52YXNDb250ZXh0Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICJzb3VyY2Utb3ZlciIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgcmVuZGVyRnJhbWU6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5oaWRkZW4gJiYgIXRoaXMuZGF0YS5oZCAmJiAodGhpcy5kYXRhLnRkICE9PSAxIHx8IGUpKSB7CiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUcmFuc2Zvcm0oKSwKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyUmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJMb2NhbFRyYW5zZm9ybSgpLAogICAgICAgICAgICAgICAgdGhpcy5zZXRCbGVuZE1vZGUoKTsKICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZGF0YS50eSA9PT0gMDsKICAgICAgICAgICAgICB0aGlzLnByZXBhcmVMYXllcigpLAogICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlcmVyLnNhdmUodCksCiAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucmVuZGVyZXIuY3R4VHJhbnNmb3JtKAogICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLmxvY2FsTWF0LnByb3BzCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlcmVyLmN0eE9wYWNpdHkoCiAgICAgICAgICAgICAgICAgIHRoaXMuZmluYWxUcmFuc2Zvcm0ubG9jYWxPcGFjaXR5CiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJJbm5lckNvbnRlbnQoKSwKICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5yZW5kZXJlci5yZXN0b3JlKHQpLAogICAgICAgICAgICAgICAgdGhpcy5leGl0TGF5ZXIoKSwKICAgICAgICAgICAgICAgIHRoaXMubWFza01hbmFnZXIuaGFzTWFza3MgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlcmVyLnJlc3RvcmUoITApLAogICAgICAgICAgICAgICAgdGhpcy5faXNGaXJzdEZyYW1lICYmICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBkZXN0cm95OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQgPSBudWxsKSwKICAgICAgICAgICAgICAodGhpcy5kYXRhID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IG51bGwpLAogICAgICAgICAgICAgIHRoaXMubWFza01hbmFnZXIuZGVzdHJveSgpOwogICAgICAgICAgfSwKICAgICAgICAgIG1IZWxwZXI6IG5ldyBNYXRyaXgoKSwKICAgICAgICB9KSwKICAgICAgICAgIChDVkJhc2VFbGVtZW50LnByb3RvdHlwZS5oaWRlID0gQ1ZCYXNlRWxlbWVudC5wcm90b3R5cGUuaGlkZUVsZW1lbnQpLAogICAgICAgICAgKENWQmFzZUVsZW1lbnQucHJvdG90eXBlLnNob3cgPSBDVkJhc2VFbGVtZW50LnByb3RvdHlwZS5zaG93RWxlbWVudCksCiAgICAgICAgICAoQ1ZTaGFwZURhdGEucHJvdG90eXBlLnNldEFzQW5pbWF0ZWQgPQogICAgICAgICAgICBTVkdTaGFwZURhdGEucHJvdG90eXBlLnNldEFzQW5pbWF0ZWQpLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudCwKICAgICAgICAgICAgICBDVkJhc2VFbGVtZW50LAogICAgICAgICAgICAgIElTaGFwZUVsZW1lbnQsCiAgICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgICBGcmFtZUVsZW1lbnQsCiAgICAgICAgICAgICAgUmVuZGVyYWJsZUVsZW1lbnQsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIENWU2hhcGVFbGVtZW50CiAgICAgICAgICApLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5pbml0RWxlbWVudCA9CiAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50LnByb3RvdHlwZS5pbml0RWxlbWVudCksCiAgICAgICAgICAoQ1ZTaGFwZUVsZW1lbnQucHJvdG90eXBlLnRyYW5zZm9ybUhlbHBlciA9IHsKICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgX29wTWRmOiAhMSwKICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5kYXNoUmVzZXR0ZXIgPSBbXSksCiAgICAgICAgICAoQ1ZTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2hhcGVzKAogICAgICAgICAgICAgIHRoaXMuc2hhcGVzRGF0YSwKICAgICAgICAgICAgICB0aGlzLml0ZW1zRGF0YSwKICAgICAgICAgICAgICB0aGlzLnByZXZWaWV3RGF0YSwKICAgICAgICAgICAgICAhMCwKICAgICAgICAgICAgICBbXQogICAgICAgICAgICApOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVN0eWxlRWxlbWVudCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHZhciByID0gewogICAgICAgICAgICAgICAgZGF0YTogZSwKICAgICAgICAgICAgICAgIHR5cGU6IGUudHksCiAgICAgICAgICAgICAgICBwcmVUcmFuc2Zvcm1zOiB0aGlzLnRyYW5zZm9ybXNNYW5hZ2VyLmFkZFRyYW5zZm9ybVNlcXVlbmNlKHQpLAogICAgICAgICAgICAgICAgdHJhbnNmb3JtczogW10sCiAgICAgICAgICAgICAgICBlbGVtZW50czogW10sCiAgICAgICAgICAgICAgICBjbG9zZWQ6IGUuaGQgPT09ICEwLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgbiA9IHt9OwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKGUudHkgPT09ICJmbCIgfHwgZS50eSA9PT0gInN0IgogICAgICAgICAgICAgICAgPyAoKG4uYyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUuYywgMSwgMjU1LCB0aGlzKSksCiAgICAgICAgICAgICAgICAgIG4uYy5rIHx8CiAgICAgICAgICAgICAgICAgICAgKHIuY28gPQogICAgICAgICAgICAgICAgICAgICAgInJnYigiICsKICAgICAgICAgICAgICAgICAgICAgIGJtRmxvb3Iobi5jLnZbMF0pICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICBibUZsb29yKG4uYy52WzFdKSArCiAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgYm1GbG9vcihuLmMudlsyXSkgKwogICAgICAgICAgICAgICAgICAgICAgIikiKSkKICAgICAgICAgICAgICAgIDogKGUudHkgIT09ICJnZiIgJiYgZS50eSAhPT0gImdzIikgfHwKICAgICAgICAgICAgICAgICAgKChuLnMgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCh0aGlzLCBlLnMsIDEsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAgICAgKG4uZSA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wKHRoaXMsIGUuZSwgMSwgbnVsbCwgdGhpcykpLAogICAgICAgICAgICAgICAgICAobi5oID0gUHJvcGVydHlGYWN0b3J5LmdldFByb3AoCiAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICBlLmggfHwgeyBrOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAwLjAxLAogICAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgIChuLmEgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCgKICAgICAgICAgICAgICAgICAgICB0aGlzLAogICAgICAgICAgICAgICAgICAgIGUuYSB8fCB7IGs6IDAgfSwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIGRlZ1RvUmFkcywKICAgICAgICAgICAgICAgICAgICB0aGlzCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICAobi5nID0gbmV3IEdyYWRpZW50UHJvcGVydHkodGhpcywgZS5nLCB0aGlzKSkpLAogICAgICAgICAgICAgIChuLm8gPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCh0aGlzLCBlLm8sIDAsIDAuMDEsIHRoaXMpKSwKICAgICAgICAgICAgICBlLnR5ID09PSAic3QiIHx8IGUudHkgPT09ICJncyIpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICgoci5sYyA9IGxpbmVDYXBFbnVtW2UubGMgfHwgMl0pLAogICAgICAgICAgICAgICAgKHIubGogPSBsaW5lSm9pbkVudW1bZS5saiB8fCAyXSksCiAgICAgICAgICAgICAgICBlLmxqID09IDEgJiYgKHIubWwgPSBlLm1sKSwKICAgICAgICAgICAgICAgIChuLncgPSBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCh0aGlzLCBlLncsIDAsIG51bGwsIHRoaXMpKSwKICAgICAgICAgICAgICAgIG4udy5rIHx8IChyLndpID0gbi53LnYpLAogICAgICAgICAgICAgICAgZS5kKQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIGkgPSBuZXcgRGFzaFByb3BlcnR5KHRoaXMsIGUuZCwgImNhbnZhcyIsIHRoaXMpOwogICAgICAgICAgICAgICAgKG4uZCA9IGkpLAogICAgICAgICAgICAgICAgICBuLmQuayB8fCAoKHIuZGEgPSBuLmQuZGFzaEFycmF5KSwgKHIuZG8gPSBuLmQuZGFzaG9mZnNldFswXSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHIuciA9IGUuciA9PT0gMiA/ICJldmVub2RkIiA6ICJub256ZXJvIjsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3R5bGVzTGlzdC5wdXNoKHIpLCAobi5zdHlsZSA9IHIpLCBuOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUdyb3VwRWxlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHsgaXQ6IFtdLCBwcmV2Vmlld0RhdGE6IFtdIH07CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVlNoYXBlRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlVHJhbnNmb3JtRWxlbWVudCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgX29wTWRmOiAhMSwKICAgICAgICAgICAgICAgIGtleTogdGhpcy50cmFuc2Zvcm1zTWFuYWdlci5nZXROZXdLZXkoKSwKICAgICAgICAgICAgICAgIG9wOiBQcm9wZXJ0eUZhY3RvcnkuZ2V0UHJvcCh0aGlzLCBlLm8sIDAsIDAuMDEsIHRoaXMpLAogICAgICAgICAgICAgICAgbVByb3BzOiBUcmFuc2Zvcm1Qcm9wZXJ0eUZhY3RvcnkuZ2V0VHJhbnNmb3JtUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgIHRoaXMsCiAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgIHRoaXMKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVTaGFwZUVsZW1lbnQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCA9IG5ldyBDVlNoYXBlRGF0YSgKICAgICAgICAgICAgICB0aGlzLAogICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgdGhpcy5zdHlsZXNMaXN0LAogICAgICAgICAgICAgIHRoaXMudHJhbnNmb3Jtc01hbmFnZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hhcGVzLnB1c2godCksIHRoaXMuYWRkU2hhcGVUb01vZGlmaWVycyh0KSwgdDsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5yZWxvYWRTaGFwZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlOwogICAgICAgICAgICB0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMDsKICAgICAgICAgICAgdmFyIHQgPSB0aGlzLml0ZW1zRGF0YS5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpIHRoaXMucHJldlZpZXdEYXRhW2VdID0gdGhpcy5pdGVtc0RhdGFbZV07CiAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTaGFwZXMoCiAgICAgICAgICAgICAgICB0aGlzLnNoYXBlc0RhdGEsCiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zRGF0YSwKICAgICAgICAgICAgICAgIHRoaXMucHJldlZpZXdEYXRhLAogICAgICAgICAgICAgICAgITAsCiAgICAgICAgICAgICAgICBbXQogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB0ID0gdGhpcy5keW5hbWljUHJvcGVydGllcy5sZW5ndGgsCiAgICAgICAgICAgICAgICBlID0gMDsKICAgICAgICAgICAgICBlIDwgdDsKICAgICAgICAgICAgICBlICs9IDEKICAgICAgICAgICAgKQogICAgICAgICAgICAgIHRoaXMuZHluYW1pY1Byb3BlcnRpZXNbZV0uZ2V0VmFsdWUoKTsKICAgICAgICAgICAgdGhpcy5yZW5kZXJNb2RpZmllcnMoKSwKICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybXNNYW5hZ2VyLnByb2Nlc3NTZXF1ZW5jZXModGhpcy5faXNGaXJzdEZyYW1lKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5hZGRUcmFuc2Zvcm1Ub1N0eWxlTGlzdCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgIHIgPSB0aGlzLnN0eWxlc0xpc3QubGVuZ3RoOwogICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgIHRoaXMuc3R5bGVzTGlzdFt0XS5jbG9zZWQgfHwKICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVzTGlzdFt0XS50cmFuc2Zvcm1zLnB1c2goZSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVlNoYXBlRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlVHJhbnNmb3JtRnJvbVN0eWxlTGlzdCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgdCA9IHRoaXMuc3R5bGVzTGlzdC5sZW5ndGg7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB0OyBlICs9IDEpCiAgICAgICAgICAgICAgdGhpcy5zdHlsZXNMaXN0W2VdLmNsb3NlZCB8fCB0aGlzLnN0eWxlc0xpc3RbZV0udHJhbnNmb3Jtcy5wb3AoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5jbG9zZVN0eWxlcyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgIHIgPSBlLmxlbmd0aDsKICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IHI7IHQgKz0gMSkgZVt0XS5jbG9zZWQgPSAhMDsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5zZWFyY2hTaGFwZXMgPSBmdW5jdGlvbiAoZSwgdCwgciwgbiwgaSkgewogICAgICAgICAgICB2YXIgYSwKICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgIHMsCiAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICB1LAogICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgcCA9IGUubGVuZ3RoIC0gMSwKICAgICAgICAgICAgICBkID0gW10sCiAgICAgICAgICAgICAgaCA9IFtdLAogICAgICAgICAgICAgIG0gPSBbXS5jb25jYXQoaSk7CiAgICAgICAgICAgIGZvciAoYSA9IHA7IGEgPj0gMDsgYSAtPSAxKSB7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKChjID0gdGhpcy5zZWFyY2hQcm9jZXNzZWRFbGVtZW50KGVbYV0pKQogICAgICAgICAgICAgICAgICA/ICh0W2FdID0gcltjIC0gMV0pCiAgICAgICAgICAgICAgICAgIDogKGVbYV0uX3Nob3VsZFJlbmRlciA9IG4pLAogICAgICAgICAgICAgICAgZVthXS50eSA9PT0gImZsIiB8fAogICAgICAgICAgICAgICAgICBlW2FdLnR5ID09PSAic3QiIHx8CiAgICAgICAgICAgICAgICAgIGVbYV0udHkgPT09ICJnZiIgfHwKICAgICAgICAgICAgICAgICAgZVthXS50eSA9PT0gImdzIikKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBjCiAgICAgICAgICAgICAgICAgID8gKHRbYV0uc3R5bGUuY2xvc2VkID0gITEpCiAgICAgICAgICAgICAgICAgIDogKHRbYV0gPSB0aGlzLmNyZWF0ZVN0eWxlRWxlbWVudChlW2FdLCBtKSksCiAgICAgICAgICAgICAgICAgIGQucHVzaCh0W2FdLnN0eWxlKTsKICAgICAgICAgICAgICBlbHNlIGlmIChlW2FdLnR5ID09PSAiZ3IiKSB7CiAgICAgICAgICAgICAgICBpZiAoYykKICAgICAgICAgICAgICAgICAgZm9yIChzID0gdFthXS5pdC5sZW5ndGgsIG8gPSAwOyBvIDwgczsgbyArPSAxKQogICAgICAgICAgICAgICAgICAgIHRbYV0ucHJldlZpZXdEYXRhW29dID0gdFthXS5pdFtvXTsKICAgICAgICAgICAgICAgIGVsc2UgdFthXSA9IHRoaXMuY3JlYXRlR3JvdXBFbGVtZW50KGVbYV0pOwogICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTaGFwZXMoZVthXS5pdCwgdFthXS5pdCwgdFthXS5wcmV2Vmlld0RhdGEsIG4sIG0pOwogICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgZVthXS50eSA9PT0gInRyIgogICAgICAgICAgICAgICAgICA/IChjIHx8ICgobCA9IHRoaXMuY3JlYXRlVHJhbnNmb3JtRWxlbWVudChlW2FdKSksICh0W2FdID0gbCkpLAogICAgICAgICAgICAgICAgICAgIG0ucHVzaCh0W2FdKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRyYW5zZm9ybVRvU3R5bGVMaXN0KHRbYV0pKQogICAgICAgICAgICAgICAgICA6IGVbYV0udHkgPT09ICJzaCIgfHwKICAgICAgICAgICAgICAgICAgICBlW2FdLnR5ID09PSAicmMiIHx8CiAgICAgICAgICAgICAgICAgICAgZVthXS50eSA9PT0gImVsIiB8fAogICAgICAgICAgICAgICAgICAgIGVbYV0udHkgPT09ICJzciIKICAgICAgICAgICAgICAgICAgPyBjIHx8ICh0W2FdID0gdGhpcy5jcmVhdGVTaGFwZUVsZW1lbnQoZVthXSkpCiAgICAgICAgICAgICAgICAgIDogZVthXS50eSA9PT0gInRtIiB8fAogICAgICAgICAgICAgICAgICAgIGVbYV0udHkgPT09ICJyZCIgfHwKICAgICAgICAgICAgICAgICAgICBlW2FdLnR5ID09PSAicGIiIHx8CiAgICAgICAgICAgICAgICAgICAgZVthXS50eSA9PT0gInp6IiB8fAogICAgICAgICAgICAgICAgICAgIGVbYV0udHkgPT09ICJvcCIKICAgICAgICAgICAgICAgICAgPyAoYwogICAgICAgICAgICAgICAgICAgICAgPyAoKHUgPSB0W2FdKS5jbG9zZWQgPSAhMSkKICAgICAgICAgICAgICAgICAgICAgIDogKCh1ID0gU2hhcGVNb2RpZmllcnMuZ2V0TW9kaWZpZXIoZVthXS50eSkpLmluaXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywKICAgICAgICAgICAgICAgICAgICAgICAgICBlW2FdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICh0W2FdID0gdSksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVNb2RpZmllcnMucHVzaCh1KSksCiAgICAgICAgICAgICAgICAgICAgaC5wdXNoKHUpKQogICAgICAgICAgICAgICAgICA6IGVbYV0udHkgPT09ICJycCIgJiYKICAgICAgICAgICAgICAgICAgICAoYwogICAgICAgICAgICAgICAgICAgICAgPyAoKHUgPSB0W2FdKS5jbG9zZWQgPSAhMCkKICAgICAgICAgICAgICAgICAgICAgIDogKCh1ID0gU2hhcGVNb2RpZmllcnMuZ2V0TW9kaWZpZXIoZVthXS50eSkpLAogICAgICAgICAgICAgICAgICAgICAgICAodFthXSA9IHUpLAogICAgICAgICAgICAgICAgICAgICAgICB1LmluaXQodGhpcywgZSwgYSwgdCksCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVNb2RpZmllcnMucHVzaCh1KSwKICAgICAgICAgICAgICAgICAgICAgICAgKG4gPSAhMSkpLAogICAgICAgICAgICAgICAgICAgIGgucHVzaCh1KSk7CiAgICAgICAgICAgICAgdGhpcy5hZGRQcm9jZXNzZWRFbGVtZW50KGVbYV0sIGEgKyAxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIHRoaXMucmVtb3ZlVHJhbnNmb3JtRnJvbVN0eWxlTGlzdCgpLAogICAgICAgICAgICAgICAgdGhpcy5jbG9zZVN0eWxlcyhkKSwKICAgICAgICAgICAgICAgIHAgPSBoLmxlbmd0aCwKICAgICAgICAgICAgICAgIGEgPSAwOwogICAgICAgICAgICAgIGEgPCBwOwogICAgICAgICAgICAgIGEgKz0gMQogICAgICAgICAgICApCiAgICAgICAgICAgICAgaFthXS5jbG9zZWQgPSAhMDsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJJbm5lckNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUhlbHBlci5vcGFjaXR5ID0gMSksCiAgICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtSGVscGVyLl9vcE1kZiA9ICExKSwKICAgICAgICAgICAgICB0aGlzLnJlbmRlck1vZGlmaWVycygpLAogICAgICAgICAgICAgIHRoaXMudHJhbnNmb3Jtc01hbmFnZXIucHJvY2Vzc1NlcXVlbmNlcyh0aGlzLl9pc0ZpcnN0RnJhbWUpLAogICAgICAgICAgICAgIHRoaXMucmVuZGVyU2hhcGUoCiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybUhlbHBlciwKICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVzRGF0YSwKICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNEYXRhLAogICAgICAgICAgICAgICAgITAKICAgICAgICAgICAgICApOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZTaGFwZUVsZW1lbnQucHJvdG90eXBlLnJlbmRlclNoYXBlVHJhbnNmb3JtID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgKGUuX29wTWRmIHx8IHQub3AuX21kZiB8fCB0aGlzLl9pc0ZpcnN0RnJhbWUpICYmCiAgICAgICAgICAgICAgKCh0Lm9wYWNpdHkgPSBlLm9wYWNpdHkpLCAodC5vcGFjaXR5ICo9IHQub3AudiksICh0Ll9vcE1kZiA9ICEwKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVlNoYXBlRWxlbWVudC5wcm90b3R5cGUuZHJhd0xheWVyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSwKICAgICAgICAgICAgICB0LAogICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICBzLAogICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgdSA9IHRoaXMuc3R5bGVzTGlzdC5sZW5ndGgsCiAgICAgICAgICAgICAgbCA9IHRoaXMuZ2xvYmFsRGF0YS5yZW5kZXJlciwKICAgICAgICAgICAgICBwID0gdGhpcy5nbG9iYWxEYXRhLmNhbnZhc0NvbnRleHQ7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCB1OyBlICs9IDEpCiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKCgocyA9IChjID0gdGhpcy5zdHlsZXNMaXN0W2VdKS50eXBlKSAhPT0gInN0IiAmJiBzICE9PSAiZ3MiKSB8fAogICAgICAgICAgICAgICAgICBjLndpICE9PSAwKSAmJgogICAgICAgICAgICAgICAgYy5kYXRhLl9zaG91bGRSZW5kZXIgJiYKICAgICAgICAgICAgICAgIGMuY29PcCAhPT0gMCAmJgogICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmN1cnJlbnRHbG9iYWxBbHBoYSAhPT0gMAogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgbC5zYXZlKCksCiAgICAgICAgICAgICAgICAgICAgYSA9IGMuZWxlbWVudHMsCiAgICAgICAgICAgICAgICAgICAgcyA9PT0gInN0IiB8fCBzID09PSAiZ3MiCiAgICAgICAgICAgICAgICAgICAgICA/IChsLmN0eFN0cm9rZVN0eWxlKHMgPT09ICJzdCIgPyBjLmNvIDogYy5ncmQpLAogICAgICAgICAgICAgICAgICAgICAgICBsLmN0eExpbmVXaWR0aChjLndpKSwKICAgICAgICAgICAgICAgICAgICAgICAgbC5jdHhMaW5lQ2FwKGMubGMpLAogICAgICAgICAgICAgICAgICAgICAgICBsLmN0eExpbmVKb2luKGMubGopLAogICAgICAgICAgICAgICAgICAgICAgICBsLmN0eE1pdGVyTGltaXQoYy5tbCB8fCAwKSkKICAgICAgICAgICAgICAgICAgICAgIDogbC5jdHhGaWxsU3R5bGUocyA9PT0gImZsIiA/IGMuY28gOiBjLmdyZCksCiAgICAgICAgICAgICAgICAgICAgbC5jdHhPcGFjaXR5KGMuY29PcCksCiAgICAgICAgICAgICAgICAgICAgcyAhPT0gInN0IiAmJiBzICE9PSAiZ3MiICYmIHAuYmVnaW5QYXRoKCksCiAgICAgICAgICAgICAgICAgICAgbC5jdHhUcmFuc2Zvcm0oYy5wcmVUcmFuc2Zvcm1zLmZpbmFsVHJhbnNmb3JtLnByb3BzKSwKICAgICAgICAgICAgICAgICAgICByID0gYS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgdCA9IDA7CiAgICAgICAgICAgICAgICAgIHQgPCByOwogICAgICAgICAgICAgICAgICB0ICs9IDEKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIChzICE9PSAic3QiICYmIHMgIT09ICJncyIpIHx8CiAgICAgICAgICAgICAgICAgICAgICAocC5iZWdpblBhdGgoKSwKICAgICAgICAgICAgICAgICAgICAgIGMuZGEgJiYgKHAuc2V0TGluZURhc2goYy5kYSksIChwLmxpbmVEYXNoT2Zmc2V0ID0gYy5kbykpKSwKICAgICAgICAgICAgICAgICAgICAgIGkgPSAobyA9IGFbdF0udHJOb2RlcykubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgbiA8IGk7CiAgICAgICAgICAgICAgICAgICAgbiArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBvW25dLnQgPT09ICJtIgogICAgICAgICAgICAgICAgICAgICAgPyBwLm1vdmVUbyhvW25dLnBbMF0sIG9bbl0ucFsxXSkKICAgICAgICAgICAgICAgICAgICAgIDogb1tuXS50ID09PSAiYyIKICAgICAgICAgICAgICAgICAgICAgID8gcC5iZXppZXJDdXJ2ZVRvKAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bbl0ucHRzWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bbl0ucHRzWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bbl0ucHRzWzJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bbl0ucHRzWzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bbl0ucHRzWzRdLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9bbl0ucHRzWzVdCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgIDogcC5jbG9zZVBhdGgoKTsKICAgICAgICAgICAgICAgICAgKHMgIT09ICJzdCIgJiYgcyAhPT0gImdzIikgfHwKICAgICAgICAgICAgICAgICAgICAobC5jdHhTdHJva2UoKSwgYy5kYSAmJiBwLnNldExpbmVEYXNoKHRoaXMuZGFzaFJlc2V0dGVyKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzICE9PSAic3QiICYmCiAgICAgICAgICAgICAgICAgIHMgIT09ICJncyIgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlcmVyLmN0eEZpbGwoYy5yKSwKICAgICAgICAgICAgICAgICAgbC5yZXN0b3JlKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZTaGFwZUVsZW1lbnQucHJvdG90eXBlLnJlbmRlclNoYXBlID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4pIHsKICAgICAgICAgICAgdmFyIGksIGE7CiAgICAgICAgICAgIGZvciAoYSA9IGUsIGkgPSB0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtPSAxKQogICAgICAgICAgICAgIHRbaV0udHkgPT09ICJ0ciIKICAgICAgICAgICAgICAgID8gKChhID0gcltpXS50cmFuc2Zvcm0pLCB0aGlzLnJlbmRlclNoYXBlVHJhbnNmb3JtKGUsIGEpKQogICAgICAgICAgICAgICAgOiB0W2ldLnR5ID09PSAic2giIHx8CiAgICAgICAgICAgICAgICAgIHRbaV0udHkgPT09ICJlbCIgfHwKICAgICAgICAgICAgICAgICAgdFtpXS50eSA9PT0gInJjIiB8fAogICAgICAgICAgICAgICAgICB0W2ldLnR5ID09PSAic3IiCiAgICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyUGF0aCh0W2ldLCByW2ldKQogICAgICAgICAgICAgICAgOiB0W2ldLnR5ID09PSAiZmwiCiAgICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyRmlsbCh0W2ldLCByW2ldLCBhKQogICAgICAgICAgICAgICAgOiB0W2ldLnR5ID09PSAic3QiCiAgICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyU3Ryb2tlKHRbaV0sIHJbaV0sIGEpCiAgICAgICAgICAgICAgICA6IHRbaV0udHkgPT09ICJnZiIgfHwgdFtpXS50eSA9PT0gImdzIgogICAgICAgICAgICAgICAgPyB0aGlzLnJlbmRlckdyYWRpZW50RmlsbCh0W2ldLCByW2ldLCBhKQogICAgICAgICAgICAgICAgOiB0W2ldLnR5ID09PSAiZ3IiCiAgICAgICAgICAgICAgICA/IHRoaXMucmVuZGVyU2hhcGUoYSwgdFtpXS5pdCwgcltpXS5pdCkKICAgICAgICAgICAgICAgIDogdFtpXS50eTsKICAgICAgICAgICAgbiAmJiB0aGlzLmRyYXdMYXllcigpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZTaGFwZUVsZW1lbnQucHJvdG90eXBlLnJlbmRlclN0eWxlZFNoYXBlID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgaWYgKHRoaXMuX2lzRmlyc3RGcmFtZSB8fCB0Ll9tZGYgfHwgZS50cmFuc2Zvcm1zLl9tZGYpIHsKICAgICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICAgIG4sCiAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgYSA9IGUudHJOb2RlcywKICAgICAgICAgICAgICAgIG8gPSB0LnBhdGhzLAogICAgICAgICAgICAgICAgcyA9IG8uX2xlbmd0aDsKICAgICAgICAgICAgICBhLmxlbmd0aCA9IDA7CiAgICAgICAgICAgICAgdmFyIGMgPSBlLnRyYW5zZm9ybXMuZmluYWxUcmFuc2Zvcm07CiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHM7IGkgKz0gMSkgewogICAgICAgICAgICAgICAgdmFyIHUgPSBvLnNoYXBlc1tpXTsKICAgICAgICAgICAgICAgIGlmICh1ICYmIHUudikgewogICAgICAgICAgICAgICAgICBmb3IgKG4gPSB1Ll9sZW5ndGgsIHIgPSAxOyByIDwgbjsgciArPSAxKQogICAgICAgICAgICAgICAgICAgIHIgPT09IDEgJiYKICAgICAgICAgICAgICAgICAgICAgIGEucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIHQ6ICJtIiwKICAgICAgICAgICAgICAgICAgICAgICAgcDogYy5hcHBseVRvUG9pbnRBcnJheSh1LnZbMF1bMF0sIHUudlswXVsxXSwgMCksCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgIGEucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIHQ6ICJjIiwKICAgICAgICAgICAgICAgICAgICAgICAgcHRzOiBjLmFwcGx5VG9UcmlwbGVQb2ludHModS5vW3IgLSAxXSwgdS5pW3JdLCB1LnZbcl0pLAogICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIG4gPT09IDEgJiYKICAgICAgICAgICAgICAgICAgICBhLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgdDogIm0iLAogICAgICAgICAgICAgICAgICAgICAgcDogYy5hcHBseVRvUG9pbnRBcnJheSh1LnZbMF1bMF0sIHUudlswXVsxXSwgMCksCiAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgdS5jICYmCiAgICAgICAgICAgICAgICAgICAgICBuICYmCiAgICAgICAgICAgICAgICAgICAgICAoYS5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgdDogImMiLAogICAgICAgICAgICAgICAgICAgICAgICBwdHM6IGMuYXBwbHlUb1RyaXBsZVBvaW50cyh1Lm9bciAtIDFdLCB1LmlbMF0sIHUudlswXSksCiAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICAgIGEucHVzaCh7IHQ6ICJ6IiB9KSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGUudHJOb2RlcyA9IGE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJQYXRoID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgaWYgKGUuaGQgIT09ICEwICYmIGUuX3Nob3VsZFJlbmRlcikgewogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiA9IHQuc3R5bGVkU2hhcGVzLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKQogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJTdHlsZWRTaGFwZSh0LnN0eWxlZFNoYXBlc1tyXSwgdC5zaCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJGaWxsID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgdmFyIG4gPSB0LnN0eWxlOwogICAgICAgICAgICAodC5jLl9tZGYgfHwgdGhpcy5faXNGaXJzdEZyYW1lKSAmJgogICAgICAgICAgICAgIChuLmNvID0KICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICBibUZsb29yKHQuYy52WzBdKSArCiAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgYm1GbG9vcih0LmMudlsxXSkgKwogICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgIGJtRmxvb3IodC5jLnZbMl0pICsKICAgICAgICAgICAgICAgICIpIiksCiAgICAgICAgICAgICAgKHQuby5fbWRmIHx8IHIuX29wTWRmIHx8IHRoaXMuX2lzRmlyc3RGcmFtZSkgJiYKICAgICAgICAgICAgICAgIChuLmNvT3AgPSB0Lm8udiAqIHIub3BhY2l0eSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVlNoYXBlRWxlbWVudC5wcm90b3R5cGUucmVuZGVyR3JhZGllbnRGaWxsID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgdmFyIG4sCiAgICAgICAgICAgICAgaSA9IHQuc3R5bGU7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAhaS5ncmQgfHwKICAgICAgICAgICAgICB0LmcuX21kZiB8fAogICAgICAgICAgICAgIHQucy5fbWRmIHx8CiAgICAgICAgICAgICAgdC5lLl9tZGYgfHwKICAgICAgICAgICAgICAoZS50ICE9PSAxICYmICh0LmguX21kZiB8fCB0LmEuX21kZikpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHZhciBhLAogICAgICAgICAgICAgICAgbyA9IHRoaXMuZ2xvYmFsRGF0YS5jYW52YXNDb250ZXh0LAogICAgICAgICAgICAgICAgcyA9IHQucy52LAogICAgICAgICAgICAgICAgYyA9IHQuZS52OwogICAgICAgICAgICAgIGlmIChlLnQgPT09IDEpIG4gPSBvLmNyZWF0ZUxpbmVhckdyYWRpZW50KHNbMF0sIHNbMV0sIGNbMF0sIGNbMV0pOwogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIHUgPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coc1swXSAtIGNbMF0sIDIpICsgTWF0aC5wb3coc1sxXSAtIGNbMV0sIDIpCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIGwgPSBNYXRoLmF0YW4yKGNbMV0gLSBzWzFdLCBjWzBdIC0gc1swXSksCiAgICAgICAgICAgICAgICAgIHAgPSB0LmgudjsKICAgICAgICAgICAgICAgIHAgPj0gMSA/IChwID0gMC45OSkgOiBwIDw9IC0xICYmIChwID0gLTAuOTkpOwogICAgICAgICAgICAgICAgdmFyIGQgPSB1ICogcCwKICAgICAgICAgICAgICAgICAgaCA9IE1hdGguY29zKGwgKyB0LmEudikgKiBkICsgc1swXSwKICAgICAgICAgICAgICAgICAgbSA9IE1hdGguc2luKGwgKyB0LmEudikgKiBkICsgc1sxXTsKICAgICAgICAgICAgICAgIG4gPSBvLmNyZWF0ZVJhZGlhbEdyYWRpZW50KGgsIG0sIDAsIHNbMF0sIHNbMV0sIHUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgdiA9IGUuZy5wLAogICAgICAgICAgICAgICAgeSA9IHQuZy5jLAogICAgICAgICAgICAgICAgZyA9IDE7CiAgICAgICAgICAgICAgZm9yIChhID0gMDsgYSA8IHY7IGEgKz0gMSkKICAgICAgICAgICAgICAgIHQuZy5faGFzT3BhY2l0eSAmJiB0LmcuX2NvbGxhcHNhYmxlICYmIChnID0gdC5nLm9bMiAqIGEgKyAxXSksCiAgICAgICAgICAgICAgICAgIG4uYWRkQ29sb3JTdG9wKAogICAgICAgICAgICAgICAgICAgIHlbNCAqIGFdIC8gMTAwLAogICAgICAgICAgICAgICAgICAgICJyZ2JhKCIgKwogICAgICAgICAgICAgICAgICAgICAgeVs0ICogYSArIDFdICsKICAgICAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgICAgICB5WzQgKiBhICsgMl0gKwogICAgICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgICAgIHlbNCAqIGEgKyAzXSArCiAgICAgICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICAgICAgZyArCiAgICAgICAgICAgICAgICAgICAgICAiKSIKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICBpLmdyZCA9IG47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaS5jb09wID0gdC5vLnYgKiByLm9wYWNpdHk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVlNoYXBlRWxlbWVudC5wcm90b3R5cGUucmVuZGVyU3Ryb2tlID0gZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgdmFyIG4gPSB0LnN0eWxlLAogICAgICAgICAgICAgIGkgPSB0LmQ7CiAgICAgICAgICAgIGkgJiYKICAgICAgICAgICAgICAoaS5fbWRmIHx8IHRoaXMuX2lzRmlyc3RGcmFtZSkgJiYKICAgICAgICAgICAgICAoKG4uZGEgPSBpLmRhc2hBcnJheSksIChuLmRvID0gaS5kYXNob2Zmc2V0WzBdKSksCiAgICAgICAgICAgICAgKHQuYy5fbWRmIHx8IHRoaXMuX2lzRmlyc3RGcmFtZSkgJiYKICAgICAgICAgICAgICAgIChuLmNvID0KICAgICAgICAgICAgICAgICAgInJnYigiICsKICAgICAgICAgICAgICAgICAgYm1GbG9vcih0LmMudlswXSkgKwogICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICBibUZsb29yKHQuYy52WzFdKSArCiAgICAgICAgICAgICAgICAgICIsIiArCiAgICAgICAgICAgICAgICAgIGJtRmxvb3IodC5jLnZbMl0pICsKICAgICAgICAgICAgICAgICAgIikiKSwKICAgICAgICAgICAgICAodC5vLl9tZGYgfHwgci5fb3BNZGYgfHwgdGhpcy5faXNGaXJzdEZyYW1lKSAmJgogICAgICAgICAgICAgICAgKG4uY29PcCA9IHQuby52ICogci5vcGFjaXR5KSwKICAgICAgICAgICAgICAodC53Ll9tZGYgfHwgdGhpcy5faXNGaXJzdEZyYW1lKSAmJiAobi53aSA9IHQudy52KTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWU2hhcGVFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAodGhpcy5zaGFwZXNEYXRhID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YSA9IG51bGwpLAogICAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQgPSBudWxsKSwKICAgICAgICAgICAgICAodGhpcy5zdHlsZXNMaXN0Lmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICh0aGlzLml0ZW1zRGF0YS5sZW5ndGggPSAwKTsKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudCwKICAgICAgICAgICAgICBDVkJhc2VFbGVtZW50LAogICAgICAgICAgICAgIEhpZXJhcmNoeUVsZW1lbnQsCiAgICAgICAgICAgICAgRnJhbWVFbGVtZW50LAogICAgICAgICAgICAgIFJlbmRlcmFibGVFbGVtZW50LAogICAgICAgICAgICAgIElUZXh0RWxlbWVudCwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgQ1ZUZXh0RWxlbWVudAogICAgICAgICAgKSwKICAgICAgICAgIChDVlRleHRFbGVtZW50LnByb3RvdHlwZS50SGVscGVyID0KICAgICAgICAgICAgY3JlYXRlVGFnKCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpKSwKICAgICAgICAgIChDVlRleHRFbGVtZW50LnByb3RvdHlwZS5idWlsZE5ld1RleHQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlID0gdGhpcy50ZXh0UHJvcGVydHkuY3VycmVudERhdGE7CiAgICAgICAgICAgIHRoaXMucmVuZGVyZWRMZXR0ZXJzID0gY3JlYXRlU2l6ZWRBcnJheShlLmwgPyBlLmwubGVuZ3RoIDogMCk7CiAgICAgICAgICAgIHZhciB0ID0gITE7CiAgICAgICAgICAgIGUuZmMKICAgICAgICAgICAgICA/ICgodCA9ICEwKSwgKHRoaXMudmFsdWVzLmZpbGwgPSB0aGlzLmJ1aWxkQ29sb3IoZS5mYykpKQogICAgICAgICAgICAgIDogKHRoaXMudmFsdWVzLmZpbGwgPSAicmdiYSgwLDAsMCwwKSIpLAogICAgICAgICAgICAgICh0aGlzLmZpbGwgPSB0KTsKICAgICAgICAgICAgdmFyIHIgPSAhMTsKICAgICAgICAgICAgZS5zYyAmJgogICAgICAgICAgICAgICgociA9ICEwKSwKICAgICAgICAgICAgICAodGhpcy52YWx1ZXMuc3Ryb2tlID0gdGhpcy5idWlsZENvbG9yKGUuc2MpKSwKICAgICAgICAgICAgICAodGhpcy52YWx1ZXMuc1dpZHRoID0gZS5zdykpOwogICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICBzLAogICAgICAgICAgICAgIGMsCiAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgIHAsCiAgICAgICAgICAgICAgZCwKICAgICAgICAgICAgICBoLAogICAgICAgICAgICAgIG0sCiAgICAgICAgICAgICAgdiA9IHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5nZXRGb250QnlOYW1lKGUuZiksCiAgICAgICAgICAgICAgeSA9IGUubCwKICAgICAgICAgICAgICBnID0gdGhpcy5tSGVscGVyOwogICAgICAgICAgICAodGhpcy5zdHJva2UgPSByKSwKICAgICAgICAgICAgICAodGhpcy52YWx1ZXMuZlZhbHVlID0KICAgICAgICAgICAgICAgIGUuZmluYWxTaXplICsKICAgICAgICAgICAgICAgICJweCAiICsKICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5nZXRGb250QnlOYW1lKGUuZikuZkZhbWlseSksCiAgICAgICAgICAgICAgKGkgPSBlLmZpbmFsVGV4dC5sZW5ndGgpOwogICAgICAgICAgICB2YXIgTSA9IHRoaXMuZGF0YS5zaW5nbGVTaGFwZSwKICAgICAgICAgICAgICBBID0gMC4wMDEgKiBlLnRyICogZS5maW5hbFNpemUsCiAgICAgICAgICAgICAgXyA9IDAsCiAgICAgICAgICAgICAgQyA9IDAsCiAgICAgICAgICAgICAgUiA9ICEwLAogICAgICAgICAgICAgIEwgPSAwOwogICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgaTsgbiArPSAxKSB7CiAgICAgICAgICAgICAgKG8gPQogICAgICAgICAgICAgICAgKChhID0gdGhpcy5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmdldENoYXJEYXRhKAogICAgICAgICAgICAgICAgICBlLmZpbmFsVGV4dFtuXSwKICAgICAgICAgICAgICAgICAgdi5mU3R5bGUsCiAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5nZXRGb250QnlOYW1lKGUuZikuZkZhbWlseQogICAgICAgICAgICAgICAgKSkgJiYKICAgICAgICAgICAgICAgICAgYS5kYXRhKSB8fAogICAgICAgICAgICAgICAge30pLAogICAgICAgICAgICAgICAgZy5yZXNldCgpLAogICAgICAgICAgICAgICAgTSAmJgogICAgICAgICAgICAgICAgICB5W25dLm4gJiYKICAgICAgICAgICAgICAgICAgKChfID0gLUEpLCAoQyArPSBlLnlPZmZzZXQpLCAoQyArPSBSID8gMSA6IDApLCAoUiA9ICExKSksCiAgICAgICAgICAgICAgICAocCA9ICh1ID0gby5zaGFwZXMgPyBvLnNoYXBlc1swXS5pdCA6IFtdKS5sZW5ndGgpLAogICAgICAgICAgICAgICAgZy5zY2FsZShlLmZpbmFsU2l6ZSAvIDEwMCwgZS5maW5hbFNpemUgLyAxMDApLAogICAgICAgICAgICAgICAgTSAmJiB0aGlzLmFwcGx5VGV4dFByb3BlcnRpZXNUb01hdHJpeChlLCBnLCB5W25dLmxpbmUsIF8sIEMpLAogICAgICAgICAgICAgICAgKGggPSBjcmVhdGVTaXplZEFycmF5KHAgLSAxKSk7CiAgICAgICAgICAgICAgdmFyIE4gPSAwOwogICAgICAgICAgICAgIGZvciAobCA9IDA7IGwgPCBwOyBsICs9IDEpCiAgICAgICAgICAgICAgICBpZiAodVtsXS50eSA9PT0gInNoIikgewogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIGMgPSB1W2xdLmtzLmsuaS5sZW5ndGgsIGQgPSB1W2xdLmtzLmssIG0gPSBbXSwgcyA9IDE7CiAgICAgICAgICAgICAgICAgICAgcyA8IGM7CiAgICAgICAgICAgICAgICAgICAgcyArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBzID09PSAxICYmCiAgICAgICAgICAgICAgICAgICAgICBtLnB1c2goCiAgICAgICAgICAgICAgICAgICAgICAgIGcuYXBwbHlUb1goZC52WzBdWzBdLCBkLnZbMF1bMV0sIDApLAogICAgICAgICAgICAgICAgICAgICAgICBnLmFwcGx5VG9ZKGQudlswXVswXSwgZC52WzBdWzFdLCAwKQogICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgIG0ucHVzaCgKICAgICAgICAgICAgICAgICAgICAgICAgZy5hcHBseVRvWChkLm9bcyAtIDFdWzBdLCBkLm9bcyAtIDFdWzFdLCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgZy5hcHBseVRvWShkLm9bcyAtIDFdWzBdLCBkLm9bcyAtIDFdWzFdLCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgZy5hcHBseVRvWChkLmlbc11bMF0sIGQuaVtzXVsxXSwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgIGcuYXBwbHlUb1koZC5pW3NdWzBdLCBkLmlbc11bMV0sIDApLAogICAgICAgICAgICAgICAgICAgICAgICBnLmFwcGx5VG9YKGQudltzXVswXSwgZC52W3NdWzFdLCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgZy5hcHBseVRvWShkLnZbc11bMF0sIGQudltzXVsxXSwgMCkKICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIG0ucHVzaCgKICAgICAgICAgICAgICAgICAgICBnLmFwcGx5VG9YKGQub1tzIC0gMV1bMF0sIGQub1tzIC0gMV1bMV0sIDApLAogICAgICAgICAgICAgICAgICAgIGcuYXBwbHlUb1koZC5vW3MgLSAxXVswXSwgZC5vW3MgLSAxXVsxXSwgMCksCiAgICAgICAgICAgICAgICAgICAgZy5hcHBseVRvWChkLmlbMF1bMF0sIGQuaVswXVsxXSwgMCksCiAgICAgICAgICAgICAgICAgICAgZy5hcHBseVRvWShkLmlbMF1bMF0sIGQuaVswXVsxXSwgMCksCiAgICAgICAgICAgICAgICAgICAgZy5hcHBseVRvWChkLnZbMF1bMF0sIGQudlswXVsxXSwgMCksCiAgICAgICAgICAgICAgICAgICAgZy5hcHBseVRvWShkLnZbMF1bMF0sIGQudlswXVsxXSwgMCkKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAoaFtOXSA9IG0pLAogICAgICAgICAgICAgICAgICAgIChOICs9IDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIE0gJiYgKChfICs9IHlbbl0ubCksIChfICs9IEEpKSwKICAgICAgICAgICAgICAgIHRoaXMudGV4dFNwYW5zW0xdCiAgICAgICAgICAgICAgICAgID8gKHRoaXMudGV4dFNwYW5zW0xdLmVsZW0gPSBoKQogICAgICAgICAgICAgICAgICA6ICh0aGlzLnRleHRTcGFuc1tMXSA9IHsgZWxlbTogaCB9KSwKICAgICAgICAgICAgICAgIChMICs9IDEpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVlRleHRFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJJbm5lckNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLCB0LCByLCBuLCBpLCBhOwogICAgICAgICAgICB0aGlzLnZhbGlkYXRlVGV4dCgpLAogICAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQuZm9udCA9IHRoaXMudmFsdWVzLmZWYWx1ZSksCiAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlcmVyLmN0eExpbmVDYXAoImJ1dHQiKSwKICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucmVuZGVyZXIuY3R4TGluZUpvaW4oIm1pdGVyIiksCiAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlcmVyLmN0eE1pdGVyTGltaXQoNCksCiAgICAgICAgICAgICAgdGhpcy5kYXRhLnNpbmdsZVNoYXBlIHx8CiAgICAgICAgICAgICAgICB0aGlzLnRleHRBbmltYXRvci5nZXRNZWFzdXJlcygKICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0UHJvcGVydHkuY3VycmVudERhdGEsCiAgICAgICAgICAgICAgICAgIHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB2YXIgbywKICAgICAgICAgICAgICBzID0gdGhpcy50ZXh0QW5pbWF0b3IucmVuZGVyZWRMZXR0ZXJzLAogICAgICAgICAgICAgIGMgPSB0aGlzLnRleHRQcm9wZXJ0eS5jdXJyZW50RGF0YS5sOwogICAgICAgICAgICB0ID0gYy5sZW5ndGg7CiAgICAgICAgICAgIHZhciB1LAogICAgICAgICAgICAgIGwsCiAgICAgICAgICAgICAgcCA9IG51bGwsCiAgICAgICAgICAgICAgZCA9IG51bGwsCiAgICAgICAgICAgICAgaCA9IG51bGwsCiAgICAgICAgICAgICAgbSA9IHRoaXMuZ2xvYmFsRGF0YS5yZW5kZXJlcjsKICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IHQ7IGUgKz0gMSkKICAgICAgICAgICAgICBpZiAoIWNbZV0ubikgewogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAoKG8gPSBzW2VdKSAmJgogICAgICAgICAgICAgICAgICAgIChtLnNhdmUoKSwgbS5jdHhUcmFuc2Zvcm0oby5wKSwgbS5jdHhPcGFjaXR5KG8ubykpLAogICAgICAgICAgICAgICAgICB0aGlzLmZpbGwpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBvICYmIG8uZmMKICAgICAgICAgICAgICAgICAgICAgID8gcCAhPT0gby5mYyAmJiAobS5jdHhGaWxsU3R5bGUoby5mYyksIChwID0gby5mYykpCiAgICAgICAgICAgICAgICAgICAgICA6IHAgIT09IHRoaXMudmFsdWVzLmZpbGwgJiYKICAgICAgICAgICAgICAgICAgICAgICAgKChwID0gdGhpcy52YWx1ZXMuZmlsbCksCiAgICAgICAgICAgICAgICAgICAgICAgIG0uY3R4RmlsbFN0eWxlKHRoaXMudmFsdWVzLmZpbGwpKSwKICAgICAgICAgICAgICAgICAgICAgIG4gPSAodSA9IHRoaXMudGV4dFNwYW5zW2VdLmVsZW0pLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5jYW52YXNDb250ZXh0LmJlZ2luUGF0aCgpLAogICAgICAgICAgICAgICAgICAgICAgciA9IDA7CiAgICAgICAgICAgICAgICAgICAgciA8IG47CiAgICAgICAgICAgICAgICAgICAgciArPSAxCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgICAgYSA9IChsID0gdVtyXSkubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dC5tb3ZlVG8obFswXSwgbFsxXSksCiAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAyOwogICAgICAgICAgICAgICAgICAgICAgaSA8IGE7CiAgICAgICAgICAgICAgICAgICAgICBpICs9IDYKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dC5iZXppZXJDdXJ2ZVRvKAogICAgICAgICAgICAgICAgICAgICAgICBsW2ldLAogICAgICAgICAgICAgICAgICAgICAgICBsW2kgKyAxXSwKICAgICAgICAgICAgICAgICAgICAgICAgbFtpICsgMl0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbaSArIDNdLAogICAgICAgICAgICAgICAgICAgICAgICBsW2kgKyA0XSwKICAgICAgICAgICAgICAgICAgICAgICAgbFtpICsgNV0KICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5jYW52YXNDb250ZXh0LmNsb3NlUGF0aCgpLCBtLmN0eEZpbGwoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0cm9rZSkgewogICAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICAgIG8gJiYgby5zdwogICAgICAgICAgICAgICAgICAgICAgPyBoICE9PSBvLnN3ICYmICgoaCA9IG8uc3cpLCBtLmN0eExpbmVXaWR0aChvLnN3KSkKICAgICAgICAgICAgICAgICAgICAgIDogaCAhPT0gdGhpcy52YWx1ZXMuc1dpZHRoICYmCiAgICAgICAgICAgICAgICAgICAgICAgICgoaCA9IHRoaXMudmFsdWVzLnNXaWR0aCksCiAgICAgICAgICAgICAgICAgICAgICAgIG0uY3R4TGluZVdpZHRoKHRoaXMudmFsdWVzLnNXaWR0aCkpLAogICAgICAgICAgICAgICAgICAgICAgbyAmJiBvLnNjCiAgICAgICAgICAgICAgICAgICAgICAgID8gZCAhPT0gby5zYyAmJiAoKGQgPSBvLnNjKSwgbS5jdHhTdHJva2VTdHlsZShvLnNjKSkKICAgICAgICAgICAgICAgICAgICAgICAgOiBkICE9PSB0aGlzLnZhbHVlcy5zdHJva2UgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAoKGQgPSB0aGlzLnZhbHVlcy5zdHJva2UpLAogICAgICAgICAgICAgICAgICAgICAgICAgIG0uY3R4U3Ryb2tlU3R5bGUodGhpcy52YWx1ZXMuc3Ryb2tlKSksCiAgICAgICAgICAgICAgICAgICAgICBuID0gKHUgPSB0aGlzLnRleHRTcGFuc1tlXS5lbGVtKS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dC5iZWdpblBhdGgoKSwKICAgICAgICAgICAgICAgICAgICAgIHIgPSAwOwogICAgICAgICAgICAgICAgICAgIHIgPCBuOwogICAgICAgICAgICAgICAgICAgIHIgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICAgIGEgPSAobCA9IHVbcl0pLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmNhbnZhc0NvbnRleHQubW92ZVRvKGxbMF0sIGxbMV0pLAogICAgICAgICAgICAgICAgICAgICAgICBpID0gMjsKICAgICAgICAgICAgICAgICAgICAgIGkgPCBhOwogICAgICAgICAgICAgICAgICAgICAgaSArPSA2CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmNhbnZhc0NvbnRleHQuYmV6aWVyQ3VydmVUbygKICAgICAgICAgICAgICAgICAgICAgICAgbFtpXSwKICAgICAgICAgICAgICAgICAgICAgICAgbFtpICsgMV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbaSArIDJdLAogICAgICAgICAgICAgICAgICAgICAgICBsW2kgKyAzXSwKICAgICAgICAgICAgICAgICAgICAgICAgbFtpICsgNF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGxbaSArIDVdCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuY2FudmFzQ29udGV4dC5jbG9zZVBhdGgoKSwgbS5jdHhTdHJva2UoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG8gJiYgdGhpcy5nbG9iYWxEYXRhLnJlbmRlcmVyLnJlc3RvcmUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgWwogICAgICAgICAgICAgIEJhc2VFbGVtZW50LAogICAgICAgICAgICAgIFRyYW5zZm9ybUVsZW1lbnQsCiAgICAgICAgICAgICAgQ1ZCYXNlRWxlbWVudCwKICAgICAgICAgICAgICBIaWVyYXJjaHlFbGVtZW50LAogICAgICAgICAgICAgIEZyYW1lRWxlbWVudCwKICAgICAgICAgICAgICBSZW5kZXJhYmxlRWxlbWVudCwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgQ1ZJbWFnZUVsZW1lbnQKICAgICAgICAgICksCiAgICAgICAgICAoQ1ZJbWFnZUVsZW1lbnQucHJvdG90eXBlLmluaXRFbGVtZW50ID0KICAgICAgICAgICAgU1ZHU2hhcGVFbGVtZW50LnByb3RvdHlwZS5pbml0RWxlbWVudCksCiAgICAgICAgICAoQ1ZJbWFnZUVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9CiAgICAgICAgICAgIElJbWFnZUVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSksCiAgICAgICAgICAoQ1ZJbWFnZUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICB0aGlzLmltZy53aWR0aCAmJgogICAgICAgICAgICAgICh0aGlzLmFzc2V0RGF0YS53ICE9PSB0aGlzLmltZy53aWR0aCB8fAogICAgICAgICAgICAgICAgdGhpcy5hc3NldERhdGEuaCAhPT0gdGhpcy5pbWcuaGVpZ2h0KQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICB2YXIgZSA9IGNyZWF0ZVRhZygiY2FudmFzIik7CiAgICAgICAgICAgICAgKGUud2lkdGggPSB0aGlzLmFzc2V0RGF0YS53KSwgKGUuaGVpZ2h0ID0gdGhpcy5hc3NldERhdGEuaCk7CiAgICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgbiA9IGUuZ2V0Q29udGV4dCgiMmQiKSwKICAgICAgICAgICAgICAgIGkgPSB0aGlzLmltZy53aWR0aCwKICAgICAgICAgICAgICAgIGEgPSB0aGlzLmltZy5oZWlnaHQsCiAgICAgICAgICAgICAgICBvID0gaSAvIGEsCiAgICAgICAgICAgICAgICBzID0gdGhpcy5hc3NldERhdGEudyAvIHRoaXMuYXNzZXREYXRhLmgsCiAgICAgICAgICAgICAgICBjID0KICAgICAgICAgICAgICAgICAgdGhpcy5hc3NldERhdGEucHIgfHwKICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLnJlbmRlckNvbmZpZy5pbWFnZVByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgICAgICAgICAgKG8gPiBzICYmIGMgPT09ICJ4TWlkWU1pZCBzbGljZSIpIHx8CiAgICAgICAgICAgICAgKG8gPCBzICYmIGMgIT09ICJ4TWlkWU1pZCBzbGljZSIpCiAgICAgICAgICAgICAgICA/ICh0ID0gKHIgPSBhKSAqIHMpCiAgICAgICAgICAgICAgICA6IChyID0gKHQgPSBpKSAvIHMpLAogICAgICAgICAgICAgICAgbi5kcmF3SW1hZ2UoCiAgICAgICAgICAgICAgICAgIHRoaXMuaW1nLAogICAgICAgICAgICAgICAgICAoaSAtIHQpIC8gMiwKICAgICAgICAgICAgICAgICAgKGEgLSByKSAvIDIsCiAgICAgICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXREYXRhLncsCiAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXREYXRhLmgKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAodGhpcy5pbWcgPSBlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZJbWFnZUVsZW1lbnQucHJvdG90eXBlLnJlbmRlcklubmVyQ29udGVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LmRyYXdJbWFnZSh0aGlzLmltZywgMCwgMCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVkltYWdlRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5pbWcgPSBudWxsOwogICAgICAgICAgfSksCiAgICAgICAgICBleHRlbmRQcm90b3R5cGUoCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICBCYXNlRWxlbWVudCwKICAgICAgICAgICAgICBUcmFuc2Zvcm1FbGVtZW50LAogICAgICAgICAgICAgIENWQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgICBGcmFtZUVsZW1lbnQsCiAgICAgICAgICAgICAgUmVuZGVyYWJsZUVsZW1lbnQsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIENWU29saWRFbGVtZW50CiAgICAgICAgICApLAogICAgICAgICAgKENWU29saWRFbGVtZW50LnByb3RvdHlwZS5pbml0RWxlbWVudCA9CiAgICAgICAgICAgIFNWR1NoYXBlRWxlbWVudC5wcm90b3R5cGUuaW5pdEVsZW1lbnQpLAogICAgICAgICAgKENWU29saWRFbGVtZW50LnByb3RvdHlwZS5wcmVwYXJlRnJhbWUgPQogICAgICAgICAgICBJSW1hZ2VFbGVtZW50LnByb3RvdHlwZS5wcmVwYXJlRnJhbWUpLAogICAgICAgICAgKENWU29saWRFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJJbm5lckNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuZ2xvYmFsRGF0YS5yZW5kZXJlci5jdHhGaWxsU3R5bGUodGhpcy5kYXRhLnNjKSwKICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucmVuZGVyZXIuY3R4RmlsbFJlY3QoCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5zdywKICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5zaAogICAgICAgICAgICAgICk7CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbQmFzZVJlbmRlcmVyXSwgQ2FudmFzUmVuZGVyZXJCYXNlKSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmNyZWF0ZVNoYXBlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBDVlNoYXBlRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVUZXh0ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBDVlRleHRFbGVtZW50KGUsIHRoaXMuZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmNyZWF0ZUltYWdlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBDVkltYWdlRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVTb2xpZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgQ1ZTb2xpZEVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENhbnZhc1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlTnVsbCA9CiAgICAgICAgICAgIFNWR1JlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVOdWxsKSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmN0eFRyYW5zZm9ybSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIChlWzBdID09PSAxICYmCiAgICAgICAgICAgICAgZVsxXSA9PT0gMCAmJgogICAgICAgICAgICAgIGVbNF0gPT09IDAgJiYKICAgICAgICAgICAgICBlWzVdID09PSAxICYmCiAgICAgICAgICAgICAgZVsxMl0gPT09IDAgJiYKICAgICAgICAgICAgICBlWzEzXSA9PT0gMCkgfHwKICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQudHJhbnNmb3JtKAogICAgICAgICAgICAgICAgZVswXSwKICAgICAgICAgICAgICAgIGVbMV0sCiAgICAgICAgICAgICAgICBlWzRdLAogICAgICAgICAgICAgICAgZVs1XSwKICAgICAgICAgICAgICAgIGVbMTJdLAogICAgICAgICAgICAgICAgZVsxM10KICAgICAgICAgICAgICApOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jdHhPcGFjaXR5ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0Lmdsb2JhbEFscGhhICo9IGUgPCAwID8gMCA6IGU7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmN0eEZpbGxTdHlsZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5maWxsU3R5bGUgPSBlOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jdHhTdHJva2VTdHlsZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5zdHJva2VTdHlsZSA9IGU7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmN0eExpbmVXaWR0aCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5saW5lV2lkdGggPSBlOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jdHhMaW5lQ2FwID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LmxpbmVDYXAgPSBlOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jdHhMaW5lSm9pbiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5saW5lSm9pbiA9IGU7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmN0eE1pdGVyTGltaXQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQubWl0ZXJMaW1pdCA9IGU7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmN0eEZpbGwgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuZmlsbChlKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENhbnZhc1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3R4RmlsbFJlY3QgPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuZmlsbFJlY3QoZSwgdCwgciwgbik7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmN0eFN0cm9rZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LnN0cm9rZSgpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuY2xlYXJDYW52YXMKICAgICAgICAgICAgICA/IHRoaXMuY29udGV4dERhdGEucmVzZXQoKQogICAgICAgICAgICAgIDogdGhpcy5jYW52YXNDb250ZXh0LnJlc3RvcmUoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENhbnZhc1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuc2F2ZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5jYW52YXNDb250ZXh0LnNhdmUoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENhbnZhc1JlbmRlcmVyQmFzZS5wcm90b3R5cGUucmVzdG9yZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNsZWFyQ2FudmFzCiAgICAgICAgICAgICAgPyAoZSAmJiAodGhpcy5nbG9iYWxEYXRhLmJsZW5kTW9kZSA9ICJzb3VyY2Utb3ZlciIpLAogICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0RGF0YS5yZXN0b3JlKGUpKQogICAgICAgICAgICAgIDogdGhpcy5jYW52YXNDb250ZXh0LnJlc3RvcmUoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENhbnZhc1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuY29uZmlnQW5pbWF0aW9uID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uSXRlbS53cmFwcGVyKSB7CiAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLmNvbnRhaW5lciA9IGNyZWF0ZVRhZygiY2FudmFzIik7CiAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmFuaW1hdGlvbkl0ZW0uY29udGFpbmVyLnN0eWxlOwogICAgICAgICAgICAgICh0LndpZHRoID0gIjEwMCUiKSwgKHQuaGVpZ2h0ID0gIjEwMCUiKTsKICAgICAgICAgICAgICB2YXIgciA9ICIwcHggMHB4IDBweCI7CiAgICAgICAgICAgICAgKHQudHJhbnNmb3JtT3JpZ2luID0gciksCiAgICAgICAgICAgICAgICAodC5tb3pUcmFuc2Zvcm1PcmlnaW4gPSByKSwKICAgICAgICAgICAgICAgICh0LndlYmtpdFRyYW5zZm9ybU9yaWdpbiA9IHIpLAogICAgICAgICAgICAgICAgKHRbIi13ZWJraXQtdHJhbnNmb3JtIl0gPSByKSwKICAgICAgICAgICAgICAgICh0LmNvbnRlbnRWaXNpYmlsaXR5ID0gdGhpcy5yZW5kZXJDb25maWcuY29udGVudFZpc2liaWxpdHkpLAogICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIuYXBwZW5kQ2hpbGQoCiAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSXRlbS5jb250YWluZXIKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAodGhpcy5jYW52YXNDb250ZXh0ID0KICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLmNvbnRhaW5lci5nZXRDb250ZXh0KCIyZCIpKSwKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNsYXNzTmFtZSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uY29udGFpbmVyLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAiY2xhc3MiLAogICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNsYXNzTmFtZQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuaWQgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLmNvbnRhaW5lci5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgImlkIiwKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5pZAogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9IGVsc2UgdGhpcy5jYW52YXNDb250ZXh0ID0gdGhpcy5yZW5kZXJDb25maWcuY29udGV4dDsKICAgICAgICAgICAgdGhpcy5jb250ZXh0RGF0YS5zZXRDb250ZXh0KHRoaXMuY2FudmFzQ29udGV4dCksCiAgICAgICAgICAgICAgKHRoaXMuZGF0YSA9IGUpLAogICAgICAgICAgICAgICh0aGlzLmxheWVycyA9IGUubGF5ZXJzKSwKICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1DYW52YXMgPSB7CiAgICAgICAgICAgICAgICB3OiBlLncsCiAgICAgICAgICAgICAgICBoOiBlLmgsCiAgICAgICAgICAgICAgICBzeDogMCwKICAgICAgICAgICAgICAgIHN5OiAwLAogICAgICAgICAgICAgICAgdHg6IDAsCiAgICAgICAgICAgICAgICB0eTogMCwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICB0aGlzLnNldHVwR2xvYmFsRGF0YShlLCBkb2N1bWVudC5ib2R5KSwKICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmNhbnZhc0NvbnRleHQgPSB0aGlzLmNhbnZhc0NvbnRleHQpLAogICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEucmVuZGVyZXIgPSB0aGlzKSwKICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmlzRGFzaGVkID0gITEpLAogICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEucHJvZ3Jlc3NpdmVMb2FkID0KICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLnByb2dyZXNzaXZlTG9hZCksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS50cmFuc2Zvcm1DYW52YXMgPSB0aGlzLnRyYW5zZm9ybUNhbnZhcyksCiAgICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMgPSBjcmVhdGVTaXplZEFycmF5KGUubGF5ZXJzLmxlbmd0aCkpLAogICAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGFpbmVyU2l6ZSgpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS51cGRhdGVDb250YWluZXJTaXplID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdmFyIHIsIG4sIGksIGE7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAodGhpcy5yZXNldCgpLAogICAgICAgICAgICAgIGUKICAgICAgICAgICAgICAgID8gKChyID0gZSksCiAgICAgICAgICAgICAgICAgIChuID0gdCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLndpZHRoID0gciksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLmhlaWdodCA9IG4pKQogICAgICAgICAgICAgICAgOiAodGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIgJiYgdGhpcy5hbmltYXRpb25JdGVtLmNvbnRhaW5lcgogICAgICAgICAgICAgICAgICAgID8gKChyID0gdGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIub2Zmc2V0V2lkdGgpLAogICAgICAgICAgICAgICAgICAgICAgKG4gPSB0aGlzLmFuaW1hdGlvbkl0ZW0ud3JhcHBlci5vZmZzZXRIZWlnaHQpKQogICAgICAgICAgICAgICAgICAgIDogKChyID0gdGhpcy5jYW52YXNDb250ZXh0LmNhbnZhcy53aWR0aCksCiAgICAgICAgICAgICAgICAgICAgICAobiA9IHRoaXMuY2FudmFzQ29udGV4dC5jYW52YXMuaGVpZ2h0KSksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLndpZHRoID0gciAqIHRoaXMucmVuZGVyQ29uZmlnLmRwciksCiAgICAgICAgICAgICAgICAgICh0aGlzLmNhbnZhc0NvbnRleHQuY2FudmFzLmhlaWdodCA9CiAgICAgICAgICAgICAgICAgICAgbiAqIHRoaXMucmVuZGVyQ29uZmlnLmRwcikpLAogICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLnByZXNlcnZlQXNwZWN0UmF0aW8uaW5kZXhPZigibWVldCIpICE9PSAtMSB8fAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcucHJlc2VydmVBc3BlY3RSYXRpby5pbmRleE9mKCJzbGljZSIpICE9PSAtMSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgdmFyIG8gPSB0aGlzLnJlbmRlckNvbmZpZy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLnNwbGl0KCIgIiksCiAgICAgICAgICAgICAgICBzID0gb1sxXSB8fCAibWVldCIsCiAgICAgICAgICAgICAgICBjID0gb1swXSB8fCAieE1pZFlNaWQiLAogICAgICAgICAgICAgICAgdSA9IGMuc3Vic3RyKDAsIDQpLAogICAgICAgICAgICAgICAgbCA9IGMuc3Vic3RyKDQpOwogICAgICAgICAgICAgIChpID0gciAvIG4pLAogICAgICAgICAgICAgICAgKChhID0gdGhpcy50cmFuc2Zvcm1DYW52YXMudyAvIHRoaXMudHJhbnNmb3JtQ2FudmFzLmgpID4gaSAmJgogICAgICAgICAgICAgICAgICBzID09PSAibWVldCIpIHx8CiAgICAgICAgICAgICAgICAoYSA8IGkgJiYgcyA9PT0gInNsaWNlIikKICAgICAgICAgICAgICAgICAgPyAoKHRoaXMudHJhbnNmb3JtQ2FudmFzLnN4ID0KICAgICAgICAgICAgICAgICAgICAgIHIgLyAodGhpcy50cmFuc2Zvcm1DYW52YXMudyAvIHRoaXMucmVuZGVyQ29uZmlnLmRwcikpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeSA9CiAgICAgICAgICAgICAgICAgICAgICByIC8gKHRoaXMudHJhbnNmb3JtQ2FudmFzLncgLyB0aGlzLnJlbmRlckNvbmZpZy5kcHIpKSkKICAgICAgICAgICAgICAgICAgOiAoKHRoaXMudHJhbnNmb3JtQ2FudmFzLnN4ID0KICAgICAgICAgICAgICAgICAgICAgIG4gLyAodGhpcy50cmFuc2Zvcm1DYW52YXMuaCAvIHRoaXMucmVuZGVyQ29uZmlnLmRwcikpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeSA9CiAgICAgICAgICAgICAgICAgICAgICBuIC8gKHRoaXMudHJhbnNmb3JtQ2FudmFzLmggLyB0aGlzLnJlbmRlckNvbmZpZy5kcHIpKSksCiAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1DYW52YXMudHggPQogICAgICAgICAgICAgICAgICB1ID09PSAieE1pZCIgJiYKICAgICAgICAgICAgICAgICAgKChhIDwgaSAmJiBzID09PSAibWVldCIpIHx8IChhID4gaSAmJiBzID09PSAic2xpY2UiKSkKICAgICAgICAgICAgICAgICAgICA/ICgociAtCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLncgKiAobiAvIHRoaXMudHJhbnNmb3JtQ2FudmFzLmgpKSAvCiAgICAgICAgICAgICAgICAgICAgICAgIDIpICoKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmRwcgogICAgICAgICAgICAgICAgICAgIDogdSA9PT0gInhNYXgiICYmCiAgICAgICAgICAgICAgICAgICAgICAoKGEgPCBpICYmIHMgPT09ICJtZWV0IikgfHwgKGEgPiBpICYmIHMgPT09ICJzbGljZSIpKQogICAgICAgICAgICAgICAgICAgID8gKHIgLQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybUNhbnZhcy53ICogKG4gLyB0aGlzLnRyYW5zZm9ybUNhbnZhcy5oKSkgKgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuZHByCiAgICAgICAgICAgICAgICAgICAgOiAwKSwKICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcy50eSA9CiAgICAgICAgICAgICAgICAgIGwgPT09ICJZTWlkIiAmJgogICAgICAgICAgICAgICAgICAoKGEgPiBpICYmIHMgPT09ICJtZWV0IikgfHwgKGEgPCBpICYmIHMgPT09ICJzbGljZSIpKQogICAgICAgICAgICAgICAgICAgID8gKChuIC0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYW52YXMuaCAqIChyIC8gdGhpcy50cmFuc2Zvcm1DYW52YXMudykpIC8KICAgICAgICAgICAgICAgICAgICAgICAgMikgKgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuZHByCiAgICAgICAgICAgICAgICAgICAgOiBsID09PSAiWU1heCIgJiYKICAgICAgICAgICAgICAgICAgICAgICgoYSA+IGkgJiYgcyA9PT0gIm1lZXQiKSB8fCAoYSA8IGkgJiYgcyA9PT0gInNsaWNlIikpCiAgICAgICAgICAgICAgICAgICAgPyAobiAtCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLmggKiAociAvIHRoaXMudHJhbnNmb3JtQ2FudmFzLncpKSAqCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5kcHIKICAgICAgICAgICAgICAgICAgICA6IDApOwogICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5wcmVzZXJ2ZUFzcGVjdFJhdGlvID09PSAibm9uZSIKICAgICAgICAgICAgICAgID8gKCh0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeCA9CiAgICAgICAgICAgICAgICAgICAgciAvICh0aGlzLnRyYW5zZm9ybUNhbnZhcy53IC8gdGhpcy5yZW5kZXJDb25maWcuZHByKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeSA9CiAgICAgICAgICAgICAgICAgICAgbiAvICh0aGlzLnRyYW5zZm9ybUNhbnZhcy5oIC8gdGhpcy5yZW5kZXJDb25maWcuZHByKSksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcy50eCA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1DYW52YXMudHkgPSAwKSkKICAgICAgICAgICAgICAgIDogKCh0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeCA9IHRoaXMucmVuZGVyQ29uZmlnLmRwciksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeSA9IHRoaXMucmVuZGVyQ29uZmlnLmRwciksCiAgICAgICAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcy50eCA9IDApLAogICAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1DYW52YXMudHkgPSAwKSk7CiAgICAgICAgICAgICh0aGlzLnRyYW5zZm9ybUNhbnZhcy5wcm9wcyA9IFsKICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybUNhbnZhcy5zeCwKICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLnN5LAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLnR4LAogICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLnR5LAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgMSwKICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgdGhpcy5jdHhUcmFuc2Zvcm0odGhpcy50cmFuc2Zvcm1DYW52YXMucHJvcHMpLAogICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5iZWdpblBhdGgoKSwKICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQucmVjdCgKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1DYW52YXMudywKICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FudmFzLmgKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIHRoaXMuY2FudmFzQ29udGV4dC5jbG9zZVBhdGgoKSwKICAgICAgICAgICAgICB0aGlzLmNhbnZhc0NvbnRleHQuY2xpcCgpLAogICAgICAgICAgICAgIHRoaXMucmVuZGVyRnJhbWUodGhpcy5yZW5kZXJlZEZyYW1lLCAhMCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlOwogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNsZWFyQ2FudmFzICYmCiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0ud3JhcHBlciAmJgogICAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uSXRlbS53cmFwcGVyLmlubmVyVGV4dCA9ICIiKSwKICAgICAgICAgICAgICAgIGUgPSAodGhpcy5sYXllcnMgPyB0aGlzLmxheWVycy5sZW5ndGggOiAwKSAtIDE7CiAgICAgICAgICAgICAgZSA+PSAwOwogICAgICAgICAgICAgIGUgLT0gMQogICAgICAgICAgICApCiAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tlXSAmJgogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tlXS5kZXN0cm95ICYmCiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW2VdLmRlc3Ryb3koKTsKICAgICAgICAgICAgKHRoaXMuZWxlbWVudHMubGVuZ3RoID0gMCksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5jYW52YXNDb250ZXh0ID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuYW5pbWF0aW9uSXRlbS5jb250YWluZXIgPSBudWxsKSwKICAgICAgICAgICAgICAodGhpcy5kZXN0cm95ZWQgPSAhMCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICh0aGlzLnJlbmRlcmVkRnJhbWUgIT09IGUgfHwKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29uZmlnLmNsZWFyQ2FudmFzICE9PSAhMCB8fAogICAgICAgICAgICAgICAgdCkgJiYKICAgICAgICAgICAgICAhdGhpcy5kZXN0cm95ZWQgJiYKICAgICAgICAgICAgICBlICE9PSAtMQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICB2YXIgcjsKICAgICAgICAgICAgICAodGhpcy5yZW5kZXJlZEZyYW1lID0gZSksCiAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZyYW1lTnVtID0KICAgICAgICAgICAgICAgICAgZSAtIHRoaXMuYW5pbWF0aW9uSXRlbS5faXNGaXJzdEZyYW1lKSwKICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuZnJhbWVJZCArPSAxKSwKICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEuX21kZiA9ICF0aGlzLnJlbmRlckNvbmZpZy5jbGVhckNhbnZhcyB8fCB0KSwKICAgICAgICAgICAgICAgICh0aGlzLmdsb2JhbERhdGEucHJvamVjdEludGVyZmFjZS5jdXJyZW50RnJhbWUgPSBlKTsKICAgICAgICAgICAgICB2YXIgbiA9IHRoaXMubGF5ZXJzLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmNoZWNrTGF5ZXJzKGUpLCByID0gbiAtIDE7CiAgICAgICAgICAgICAgICByID49IDA7CiAgICAgICAgICAgICAgICByIC09IDEKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW3JdKSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW3JdLnByZXBhcmVGcmFtZShlIC0gdGhpcy5sYXllcnNbcl0uc3QpOwogICAgICAgICAgICAgIGlmICh0aGlzLmdsb2JhbERhdGEuX21kZikgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuY2xlYXJDYW52YXMgPT09ICEwCiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmNhbnZhc0NvbnRleHQuY2xlYXJSZWN0KAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybUNhbnZhcy53LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybUNhbnZhcy5oCiAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNhdmUoKSwKICAgICAgICAgICAgICAgICAgICByID0gbiAtIDE7CiAgICAgICAgICAgICAgICAgIHIgPj0gMDsKICAgICAgICAgICAgICAgICAgciAtPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICh0aGlzLmNvbXBsZXRlTGF5ZXJzIHx8IHRoaXMuZWxlbWVudHNbcl0pICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tyXS5yZW5kZXJGcmFtZSgpOwogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJDb25maWcuY2xlYXJDYW52YXMgIT09ICEwICYmIHRoaXMucmVzdG9yZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5idWlsZEl0ZW0gPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCA9IHRoaXMuZWxlbWVudHM7CiAgICAgICAgICAgIGlmICghdFtlXSAmJiB0aGlzLmxheWVyc1tlXS50eSAhPT0gOTkpIHsKICAgICAgICAgICAgICB2YXIgciA9IHRoaXMuY3JlYXRlSXRlbSh0aGlzLmxheWVyc1tlXSwgdGhpcywgdGhpcy5nbG9iYWxEYXRhKTsKICAgICAgICAgICAgICAodFtlXSA9IHIpLCByLmluaXRFeHByZXNzaW9ucygpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlckJhc2UucHJvdG90eXBlLmNoZWNrUGVuZGluZ0VsZW1lbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmb3IgKDsgdGhpcy5wZW5kaW5nRWxlbWVudHMubGVuZ3RoOyApCiAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nRWxlbWVudHMucG9wKCkuY2hlY2tQYXJlbnRpbmcoKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENhbnZhc1JlbmRlcmVyQmFzZS5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLmNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ2FudmFzUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkl0ZW0uY29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUuZHVwbGljYXRlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IDIgKiB0aGlzLl9sZW5ndGgsCiAgICAgICAgICAgICAgdCA9IDA7CiAgICAgICAgICAgIGZvciAodCA9IHRoaXMuX2xlbmd0aDsgdCA8IGU7IHQgKz0gMSkKICAgICAgICAgICAgICB0aGlzLnN0YWNrW3RdID0gbmV3IENhbnZhc0NvbnRleHQoKTsKICAgICAgICAgICAgdGhpcy5fbGVuZ3RoID0gZTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWQ29udGV4dERhdGEucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAodGhpcy5jQXJyUG9zID0gMCksCiAgICAgICAgICAgICAgdGhpcy5jVHIucmVzZXQoKSwKICAgICAgICAgICAgICAodGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdLm9wYWNpdHkgPSAxKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWQ29udGV4dERhdGEucHJvdG90eXBlLnJlc3RvcmUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLmNBcnJQb3MgLT0gMTsKICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgciA9IHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXSwKICAgICAgICAgICAgICBuID0gci50cmFuc2Zvcm0sCiAgICAgICAgICAgICAgaSA9IHRoaXMuY1RyLnByb3BzOwogICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgMTY7IHQgKz0gMSkgaVt0XSA9IG5bdF07CiAgICAgICAgICAgIGlmIChlKSB7CiAgICAgICAgICAgICAgdGhpcy5uYXRpdmVDb250ZXh0LnJlc3RvcmUoKTsKICAgICAgICAgICAgICB2YXIgYSA9IHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zICsgMV07CiAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZEZpbGxTdHlsZSA9IGEuZmlsbFN0eWxlKSwKICAgICAgICAgICAgICAgICh0aGlzLmFwcGxpZWRTdHJva2VTdHlsZSA9IGEuc3Ryb2tlU3R5bGUpLAogICAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZExpbmVXaWR0aCA9IGEubGluZVdpZHRoKSwKICAgICAgICAgICAgICAgICh0aGlzLmFwcGxpZWRMaW5lQ2FwID0gYS5saW5lQ2FwKSwKICAgICAgICAgICAgICAgICh0aGlzLmFwcGxpZWRMaW5lSm9pbiA9IGEubGluZUpvaW4pLAogICAgICAgICAgICAgICAgKHRoaXMuYXBwbGllZE1pdGVyTGltaXQgPSBhLm1pdGVyTGltaXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMubmF0aXZlQ29udGV4dC5zZXRUcmFuc2Zvcm0oCiAgICAgICAgICAgICAgblswXSwKICAgICAgICAgICAgICBuWzFdLAogICAgICAgICAgICAgIG5bNF0sCiAgICAgICAgICAgICAgbls1XSwKICAgICAgICAgICAgICBuWzEyXSwKICAgICAgICAgICAgICBuWzEzXQogICAgICAgICAgICApLAogICAgICAgICAgICAgIChlIHx8IChyLm9wYWNpdHkgIT09IC0xICYmIHRoaXMuY3VycmVudE9wYWNpdHkgIT09IHIub3BhY2l0eSkpICYmCiAgICAgICAgICAgICAgICAoKHRoaXMubmF0aXZlQ29udGV4dC5nbG9iYWxBbHBoYSA9IHIub3BhY2l0eSksCiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50T3BhY2l0eSA9IHIub3BhY2l0eSkpLAogICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRGaWxsU3R5bGUgPSByLmZpbGxTdHlsZSksCiAgICAgICAgICAgICAgKHRoaXMuY3VycmVudFN0cm9rZVN0eWxlID0gci5zdHJva2VTdHlsZSksCiAgICAgICAgICAgICAgKHRoaXMuY3VycmVudExpbmVXaWR0aCA9IHIubGluZVdpZHRoKSwKICAgICAgICAgICAgICAodGhpcy5jdXJyZW50TGluZUNhcCA9IHIubGluZUNhcCksCiAgICAgICAgICAgICAgKHRoaXMuY3VycmVudExpbmVKb2luID0gci5saW5lSm9pbiksCiAgICAgICAgICAgICAgKHRoaXMuY3VycmVudE1pdGVyTGltaXQgPSByLm1pdGVyTGltaXQpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUuc2F2ZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGUgJiYgdGhpcy5uYXRpdmVDb250ZXh0LnNhdmUoKTsKICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmNUci5wcm9wczsKICAgICAgICAgICAgdGhpcy5fbGVuZ3RoIDw9IHRoaXMuY0FyclBvcyAmJiB0aGlzLmR1cGxpY2F0ZSgpOwogICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICBuID0gdGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdOwogICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgMTY7IHIgKz0gMSkgbi50cmFuc2Zvcm1bcl0gPSB0W3JdOwogICAgICAgICAgICB0aGlzLmNBcnJQb3MgKz0gMTsKICAgICAgICAgICAgdmFyIGkgPSB0aGlzLnN0YWNrW3RoaXMuY0FyclBvc107CiAgICAgICAgICAgIChpLm9wYWNpdHkgPSBuLm9wYWNpdHkpLAogICAgICAgICAgICAgIChpLmZpbGxTdHlsZSA9IG4uZmlsbFN0eWxlKSwKICAgICAgICAgICAgICAoaS5zdHJva2VTdHlsZSA9IG4uc3Ryb2tlU3R5bGUpLAogICAgICAgICAgICAgIChpLmxpbmVXaWR0aCA9IG4ubGluZVdpZHRoKSwKICAgICAgICAgICAgICAoaS5saW5lQ2FwID0gbi5saW5lQ2FwKSwKICAgICAgICAgICAgICAoaS5saW5lSm9pbiA9IG4ubGluZUpvaW4pLAogICAgICAgICAgICAgIChpLm1pdGVyTGltaXQgPSBuLm1pdGVyTGltaXQpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUuc2V0T3BhY2l0eSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXS5vcGFjaXR5ID0gZTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWQ29udGV4dERhdGEucHJvdG90eXBlLnNldENvbnRleHQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLm5hdGl2ZUNvbnRleHQgPSBlOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUuZmlsbFN0eWxlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdLmZpbGxTdHlsZSAhPT0gZSAmJgogICAgICAgICAgICAgICgodGhpcy5jdXJyZW50RmlsbFN0eWxlID0gZSksCiAgICAgICAgICAgICAgKHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXS5maWxsU3R5bGUgPSBlKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVkNvbnRleHREYXRhLnByb3RvdHlwZS5zdHJva2VTdHlsZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXS5zdHJva2VTdHlsZSAhPT0gZSAmJgogICAgICAgICAgICAgICgodGhpcy5jdXJyZW50U3Ryb2tlU3R5bGUgPSBlKSwKICAgICAgICAgICAgICAodGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdLnN0cm9rZVN0eWxlID0gZSkpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUubGluZVdpZHRoID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdLmxpbmVXaWR0aCAhPT0gZSAmJgogICAgICAgICAgICAgICgodGhpcy5jdXJyZW50TGluZVdpZHRoID0gZSksCiAgICAgICAgICAgICAgKHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXS5saW5lV2lkdGggPSBlKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVkNvbnRleHREYXRhLnByb3RvdHlwZS5saW5lQ2FwID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdLmxpbmVDYXAgIT09IGUgJiYKICAgICAgICAgICAgICAoKHRoaXMuY3VycmVudExpbmVDYXAgPSBlKSwKICAgICAgICAgICAgICAodGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdLmxpbmVDYXAgPSBlKSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChDVkNvbnRleHREYXRhLnByb3RvdHlwZS5saW5lSm9pbiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXS5saW5lSm9pbiAhPT0gZSAmJgogICAgICAgICAgICAgICgodGhpcy5jdXJyZW50TGluZUpvaW4gPSBlKSwKICAgICAgICAgICAgICAodGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdLmxpbmVKb2luID0gZSkpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUubWl0ZXJMaW1pdCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXS5taXRlckxpbWl0ICE9PSBlICYmCiAgICAgICAgICAgICAgKCh0aGlzLmN1cnJlbnRNaXRlckxpbWl0ID0gZSksCiAgICAgICAgICAgICAgKHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXS5taXRlckxpbWl0ID0gZSkpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUudHJhbnNmb3JtID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1NYXQuY2xvbmVGcm9tUHJvcHMoZSk7CiAgICAgICAgICAgIHZhciB0ID0gdGhpcy5jVHI7CiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtTWF0Lm11bHRpcGx5KHQpLAogICAgICAgICAgICAgIHQuY2xvbmVGcm9tUHJvcHModGhpcy50cmFuc2Zvcm1NYXQucHJvcHMpOwogICAgICAgICAgICB2YXIgciA9IHQucHJvcHM7CiAgICAgICAgICAgIHRoaXMubmF0aXZlQ29udGV4dC5zZXRUcmFuc2Zvcm0oCiAgICAgICAgICAgICAgclswXSwKICAgICAgICAgICAgICByWzFdLAogICAgICAgICAgICAgIHJbNF0sCiAgICAgICAgICAgICAgcls1XSwKICAgICAgICAgICAgICByWzEyXSwKICAgICAgICAgICAgICByWzEzXQogICAgICAgICAgICApOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUub3BhY2l0eSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0ID0gdGhpcy5zdGFja1t0aGlzLmNBcnJQb3NdLm9wYWNpdHk7CiAgICAgICAgICAgICh0ICo9IGUgPCAwID8gMCA6IGUpLAogICAgICAgICAgICAgIHRoaXMuc3RhY2tbdGhpcy5jQXJyUG9zXS5vcGFjaXR5ICE9PSB0ICYmCiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50T3BhY2l0eSAhPT0gZSAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMubmF0aXZlQ29udGV4dC5nbG9iYWxBbHBoYSA9IGUpLAogICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50T3BhY2l0eSA9IGUpKSwKICAgICAgICAgICAgICAgICh0aGlzLnN0YWNrW3RoaXMuY0FyclBvc10ub3BhY2l0eSA9IHQpKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWQ29udGV4dERhdGEucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLmFwcGxpZWRGaWxsU3R5bGUgIT09IHRoaXMuY3VycmVudEZpbGxTdHlsZSAmJgogICAgICAgICAgICAgICgodGhpcy5hcHBsaWVkRmlsbFN0eWxlID0gdGhpcy5jdXJyZW50RmlsbFN0eWxlKSwKICAgICAgICAgICAgICAodGhpcy5uYXRpdmVDb250ZXh0LmZpbGxTdHlsZSA9IHRoaXMuYXBwbGllZEZpbGxTdHlsZSkpLAogICAgICAgICAgICAgIHRoaXMubmF0aXZlQ29udGV4dC5maWxsKGUpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb250ZXh0RGF0YS5wcm90b3R5cGUuZmlsbFJlY3QgPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICB0aGlzLmFwcGxpZWRGaWxsU3R5bGUgIT09IHRoaXMuY3VycmVudEZpbGxTdHlsZSAmJgogICAgICAgICAgICAgICgodGhpcy5hcHBsaWVkRmlsbFN0eWxlID0gdGhpcy5jdXJyZW50RmlsbFN0eWxlKSwKICAgICAgICAgICAgICAodGhpcy5uYXRpdmVDb250ZXh0LmZpbGxTdHlsZSA9IHRoaXMuYXBwbGllZEZpbGxTdHlsZSkpLAogICAgICAgICAgICAgIHRoaXMubmF0aXZlQ29udGV4dC5maWxsUmVjdChlLCB0LCByLCBuKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKENWQ29udGV4dERhdGEucHJvdG90eXBlLnN0cm9rZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5hcHBsaWVkU3Ryb2tlU3R5bGUgIT09IHRoaXMuY3VycmVudFN0cm9rZVN0eWxlICYmCiAgICAgICAgICAgICAgKCh0aGlzLmFwcGxpZWRTdHJva2VTdHlsZSA9IHRoaXMuY3VycmVudFN0cm9rZVN0eWxlKSwKICAgICAgICAgICAgICAodGhpcy5uYXRpdmVDb250ZXh0LnN0cm9rZVN0eWxlID0gdGhpcy5hcHBsaWVkU3Ryb2tlU3R5bGUpKSwKICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRMaW5lV2lkdGggIT09IHRoaXMuY3VycmVudExpbmVXaWR0aCAmJgogICAgICAgICAgICAgICAgKCh0aGlzLmFwcGxpZWRMaW5lV2lkdGggPSB0aGlzLmN1cnJlbnRMaW5lV2lkdGgpLAogICAgICAgICAgICAgICAgKHRoaXMubmF0aXZlQ29udGV4dC5saW5lV2lkdGggPSB0aGlzLmFwcGxpZWRMaW5lV2lkdGgpKSwKICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRMaW5lQ2FwICE9PSB0aGlzLmN1cnJlbnRMaW5lQ2FwICYmCiAgICAgICAgICAgICAgICAoKHRoaXMuYXBwbGllZExpbmVDYXAgPSB0aGlzLmN1cnJlbnRMaW5lQ2FwKSwKICAgICAgICAgICAgICAgICh0aGlzLm5hdGl2ZUNvbnRleHQubGluZUNhcCA9IHRoaXMuYXBwbGllZExpbmVDYXApKSwKICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRMaW5lSm9pbiAhPT0gdGhpcy5jdXJyZW50TGluZUpvaW4gJiYKICAgICAgICAgICAgICAgICgodGhpcy5hcHBsaWVkTGluZUpvaW4gPSB0aGlzLmN1cnJlbnRMaW5lSm9pbiksCiAgICAgICAgICAgICAgICAodGhpcy5uYXRpdmVDb250ZXh0LmxpbmVKb2luID0gdGhpcy5hcHBsaWVkTGluZUpvaW4pKSwKICAgICAgICAgICAgICB0aGlzLmFwcGxpZWRNaXRlckxpbWl0ICE9PSB0aGlzLmN1cnJlbnRNaXRlckxpbWl0ICYmCiAgICAgICAgICAgICAgICAoKHRoaXMuYXBwbGllZE1pdGVyTGltaXQgPSB0aGlzLmN1cnJlbnRNaXRlckxpbWl0KSwKICAgICAgICAgICAgICAgICh0aGlzLm5hdGl2ZUNvbnRleHQubWl0ZXJMaW1pdCA9IHRoaXMuYXBwbGllZE1pdGVyTGltaXQpKSwKICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUNvbnRleHQuc3Ryb2tlKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgW0NhbnZhc1JlbmRlcmVyQmFzZSwgSUNvbXBFbGVtZW50LCBDVkJhc2VFbGVtZW50XSwKICAgICAgICAgICAgQ1ZDb21wRWxlbWVudAogICAgICAgICAgKSwKICAgICAgICAgIChDVkNvbXBFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJJbm5lckNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQgPSB0aGlzLmNhbnZhc0NvbnRleHQ7CiAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgdC5iZWdpblBhdGgoKSwKICAgICAgICAgICAgICAgIHQubW92ZVRvKDAsIDApLAogICAgICAgICAgICAgICAgdC5saW5lVG8odGhpcy5kYXRhLncsIDApLAogICAgICAgICAgICAgICAgdC5saW5lVG8odGhpcy5kYXRhLncsIHRoaXMuZGF0YS5oKSwKICAgICAgICAgICAgICAgIHQubGluZVRvKDAsIHRoaXMuZGF0YS5oKSwKICAgICAgICAgICAgICAgIHQubGluZVRvKDAsIDApLAogICAgICAgICAgICAgICAgdC5jbGlwKCksCiAgICAgICAgICAgICAgICBlID0gdGhpcy5sYXllcnMubGVuZ3RoIC0gMTsKICAgICAgICAgICAgICBlID49IDA7CiAgICAgICAgICAgICAgZSAtPSAxCiAgICAgICAgICAgICkKICAgICAgICAgICAgICAodGhpcy5jb21wbGV0ZUxheWVycyB8fCB0aGlzLmVsZW1lbnRzW2VdKSAmJgogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tlXS5yZW5kZXJGcmFtZSgpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb21wRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGU7CiAgICAgICAgICAgIGZvciAoZSA9IHRoaXMubGF5ZXJzLmxlbmd0aCAtIDE7IGUgPj0gMDsgZSAtPSAxKQogICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0gJiYgdGhpcy5lbGVtZW50c1tlXS5kZXN0cm95KCk7CiAgICAgICAgICAgICh0aGlzLmxheWVycyA9IG51bGwpLCAodGhpcy5lbGVtZW50cyA9IG51bGwpOwogICAgICAgICAgfSksCiAgICAgICAgICAoQ1ZDb21wRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlQ29tcCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgQ1ZDb21wRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgfSksCiAgICAgICAgICBleHRlbmRQcm90b3R5cGUoW0NhbnZhc1JlbmRlcmVyQmFzZV0sIENhbnZhc1JlbmRlcmVyKSwKICAgICAgICAgIChDYW52YXNSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlQ29tcCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgQ1ZDb21wRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSEJhc2VFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgY2hlY2tCbGVuZE1vZGU6IGZ1bmN0aW9uICgpIHt9LAogICAgICAgICAgICBpbml0UmVuZGVyZXJFbGVtZW50OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgKHRoaXMuYmFzZUVsZW1lbnQgPSBjcmVhdGVUYWcodGhpcy5kYXRhLnRnIHx8ICJkaXYiKSksCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuaGFzTWFzawogICAgICAgICAgICAgICAgICA/ICgodGhpcy5zdmdFbGVtZW50ID0gY3JlYXRlTlMoInN2ZyIpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5sYXllckVsZW1lbnQgPSBjcmVhdGVOUygiZyIpKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5tYXNrZWRFbGVtZW50ID0gdGhpcy5sYXllckVsZW1lbnQpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmxheWVyRWxlbWVudCksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYXNlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnN2Z0VsZW1lbnQpKQogICAgICAgICAgICAgICAgICA6ICh0aGlzLmxheWVyRWxlbWVudCA9IHRoaXMuYmFzZUVsZW1lbnQpLAogICAgICAgICAgICAgICAgc3R5bGVEaXYodGhpcy5iYXNlRWxlbWVudCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGNyZWF0ZUNvbnRhaW5lckVsZW1lbnRzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgKHRoaXMucmVuZGVyYWJsZUVmZmVjdHNNYW5hZ2VyID0gbmV3IENWRWZmZWN0cyh0aGlzKSksCiAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1lZEVsZW1lbnQgPSB0aGlzLmJhc2VFbGVtZW50KSwKICAgICAgICAgICAgICAgICh0aGlzLm1hc2tlZEVsZW1lbnQgPSB0aGlzLmxheWVyRWxlbWVudCksCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEubG4gJiYKICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuZGF0YS5sbiksCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuY2wgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsIHRoaXMuZGF0YS5jbCksCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuYm0gIT09IDAgJiYgdGhpcy5zZXRCbGVuZE1vZGUoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVuZGVyRWxlbWVudDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0gdGhpcy50cmFuc2Zvcm1lZEVsZW1lbnQKICAgICAgICAgICAgICAgID8gdGhpcy50cmFuc2Zvcm1lZEVsZW1lbnQuc3R5bGUKICAgICAgICAgICAgICAgIDoge307CiAgICAgICAgICAgICAgaWYgKHRoaXMuZmluYWxUcmFuc2Zvcm0uX21hdE1kZikgewogICAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmZpbmFsVHJhbnNmb3JtLm1hdC50b0NTUygpOwogICAgICAgICAgICAgICAgKGUudHJhbnNmb3JtID0gdCksIChlLndlYmtpdFRyYW5zZm9ybSA9IHQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLmZpbmFsVHJhbnNmb3JtLl9vcE1kZiAmJgogICAgICAgICAgICAgICAgKGUub3BhY2l0eSA9IHRoaXMuZmluYWxUcmFuc2Zvcm0ubVByb3Auby52KTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcmVuZGVyRnJhbWU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB0aGlzLmRhdGEuaGQgfHwKICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuIHx8CiAgICAgICAgICAgICAgICAodGhpcy5yZW5kZXJUcmFuc2Zvcm0oKSwKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyUmVuZGVyYWJsZSgpLAogICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJFbGVtZW50KCksCiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcklubmVyQ29udGVudCgpLAogICAgICAgICAgICAgICAgdGhpcy5faXNGaXJzdEZyYW1lICYmICh0aGlzLl9pc0ZpcnN0RnJhbWUgPSAhMSkpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBkZXN0cm95OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgKHRoaXMubGF5ZXJFbGVtZW50ID0gbnVsbCksCiAgICAgICAgICAgICAgICAodGhpcy50cmFuc2Zvcm1lZEVsZW1lbnQgPSBudWxsKSwKICAgICAgICAgICAgICAgIHRoaXMubWF0dGVFbGVtZW50ICYmICh0aGlzLm1hdHRlRWxlbWVudCA9IG51bGwpLAogICAgICAgICAgICAgICAgdGhpcy5tYXNrTWFuYWdlciAmJgogICAgICAgICAgICAgICAgICAodGhpcy5tYXNrTWFuYWdlci5kZXN0cm95KCksICh0aGlzLm1hc2tNYW5hZ2VyID0gbnVsbCkpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBjcmVhdGVSZW5kZXJhYmxlQ29tcG9uZW50czogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHRoaXMubWFza01hbmFnZXIgPSBuZXcgTWFza0VsZW1lbnQoCiAgICAgICAgICAgICAgICB0aGlzLmRhdGEsCiAgICAgICAgICAgICAgICB0aGlzLAogICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgYWRkRWZmZWN0czogZnVuY3Rpb24gKCkge30sCiAgICAgICAgICAgIHNldE1hdHRlOiBmdW5jdGlvbiAoKSB7fSwKICAgICAgICAgIH0pLAogICAgICAgICAgKEhCYXNlRWxlbWVudC5wcm90b3R5cGUuZ2V0QmFzZUVsZW1lbnQgPQogICAgICAgICAgICBTVkdCYXNlRWxlbWVudC5wcm90b3R5cGUuZ2V0QmFzZUVsZW1lbnQpLAogICAgICAgICAgKEhCYXNlRWxlbWVudC5wcm90b3R5cGUuZGVzdHJveUJhc2VFbGVtZW50ID0KICAgICAgICAgICAgSEJhc2VFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95KSwKICAgICAgICAgIChIQmFzZUVsZW1lbnQucHJvdG90eXBlLmJ1aWxkRWxlbWVudFBhcmVudGluZyA9CiAgICAgICAgICAgIEJhc2VSZW5kZXJlci5wcm90b3R5cGUuYnVpbGRFbGVtZW50UGFyZW50aW5nKSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgWwogICAgICAgICAgICAgIEJhc2VFbGVtZW50LAogICAgICAgICAgICAgIFRyYW5zZm9ybUVsZW1lbnQsCiAgICAgICAgICAgICAgSEJhc2VFbGVtZW50LAogICAgICAgICAgICAgIEhpZXJhcmNoeUVsZW1lbnQsCiAgICAgICAgICAgICAgRnJhbWVFbGVtZW50LAogICAgICAgICAgICAgIFJlbmRlcmFibGVET01FbGVtZW50LAogICAgICAgICAgICBdLAogICAgICAgICAgICBIU29saWRFbGVtZW50CiAgICAgICAgICApLAogICAgICAgICAgKEhTb2xpZEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRlbnQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlOwogICAgICAgICAgICB0aGlzLmRhdGEuaGFzTWFzawogICAgICAgICAgICAgID8gKChlID0gY3JlYXRlTlMoInJlY3QiKSkuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHRoaXMuZGF0YS5zdyksCiAgICAgICAgICAgICAgICBlLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgdGhpcy5kYXRhLnNoKSwKICAgICAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJmaWxsIiwgdGhpcy5kYXRhLnNjKSwKICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgdGhpcy5kYXRhLnN3KSwKICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHRoaXMuZGF0YS5zaCkpCiAgICAgICAgICAgICAgOiAoKChlID0gY3JlYXRlVGFnKCJkaXYiKSkuc3R5bGUud2lkdGggPSB0aGlzLmRhdGEuc3cgKyAicHgiKSwKICAgICAgICAgICAgICAgIChlLnN0eWxlLmhlaWdodCA9IHRoaXMuZGF0YS5zaCArICJweCIpLAogICAgICAgICAgICAgICAgKGUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gdGhpcy5kYXRhLnNjKSksCiAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuYXBwZW5kQ2hpbGQoZSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgWwogICAgICAgICAgICAgIEJhc2VFbGVtZW50LAogICAgICAgICAgICAgIFRyYW5zZm9ybUVsZW1lbnQsCiAgICAgICAgICAgICAgSFNvbGlkRWxlbWVudCwKICAgICAgICAgICAgICBTVkdTaGFwZUVsZW1lbnQsCiAgICAgICAgICAgICAgSEJhc2VFbGVtZW50LAogICAgICAgICAgICAgIEhpZXJhcmNoeUVsZW1lbnQsCiAgICAgICAgICAgICAgRnJhbWVFbGVtZW50LAogICAgICAgICAgICAgIFJlbmRlcmFibGVFbGVtZW50LAogICAgICAgICAgICBdLAogICAgICAgICAgICBIU2hhcGVFbGVtZW50CiAgICAgICAgICApLAogICAgICAgICAgKEhTaGFwZUVsZW1lbnQucHJvdG90eXBlLl9yZW5kZXJTaGFwZUZyYW1lID0KICAgICAgICAgICAgSFNoYXBlRWxlbWVudC5wcm90b3R5cGUucmVuZGVySW5uZXJDb250ZW50KSwKICAgICAgICAgIChIU2hhcGVFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZTsKICAgICAgICAgICAgaWYgKCgodGhpcy5iYXNlRWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IDApLCB0aGlzLmRhdGEuaGFzTWFzaykpCiAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zaGFwZXNDb250YWluZXIpLAogICAgICAgICAgICAgICAgKGUgPSB0aGlzLnN2Z0VsZW1lbnQpOwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBlID0gY3JlYXRlTlMoInN2ZyIpOwogICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5jb21wLmRhdGEKICAgICAgICAgICAgICAgID8gdGhpcy5jb21wLmRhdGEKICAgICAgICAgICAgICAgIDogdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplOwogICAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHQudyksCiAgICAgICAgICAgICAgICBlLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgdC5oKSwKICAgICAgICAgICAgICAgIGUuYXBwZW5kQ2hpbGQodGhpcy5zaGFwZXNDb250YWluZXIpLAogICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuYXBwZW5kQ2hpbGQoZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5zZWFyY2hTaGFwZXMoCiAgICAgICAgICAgICAgdGhpcy5zaGFwZXNEYXRhLAogICAgICAgICAgICAgIHRoaXMuaXRlbXNEYXRhLAogICAgICAgICAgICAgIHRoaXMucHJldlZpZXdEYXRhLAogICAgICAgICAgICAgIHRoaXMuc2hhcGVzQ29udGFpbmVyLAogICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgITAKICAgICAgICAgICAgKSwKICAgICAgICAgICAgICB0aGlzLmZpbHRlclVuaXF1ZVNoYXBlcygpLAogICAgICAgICAgICAgICh0aGlzLnNoYXBlQ29udCA9IGUpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSFNoYXBlRWxlbWVudC5wcm90b3R5cGUuZ2V0VHJhbnNmb3JtZWRQb2ludCA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgIG4gPSBlLmxlbmd0aDsKICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkKICAgICAgICAgICAgICB0ID0gZVtyXS5tUHJvcHMudi5hcHBseVRvUG9pbnRBcnJheSh0WzBdLCB0WzFdLCAwKTsKICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICB9KSwKICAgICAgICAgIChIU2hhcGVFbGVtZW50LnByb3RvdHlwZS5jYWxjdWxhdGVTaGFwZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICBzID0gZS5zaC52LAogICAgICAgICAgICAgIGMgPSBlLnRyYW5zZm9ybWVycywKICAgICAgICAgICAgICB1ID0gcy5fbGVuZ3RoOwogICAgICAgICAgICBpZiAoISh1IDw9IDEpKSB7CiAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IHUgLSAxOyByICs9IDEpCiAgICAgICAgICAgICAgICAobiA9IHRoaXMuZ2V0VHJhbnNmb3JtZWRQb2ludChjLCBzLnZbcl0pKSwKICAgICAgICAgICAgICAgICAgKGkgPSB0aGlzLmdldFRyYW5zZm9ybWVkUG9pbnQoYywgcy5vW3JdKSksCiAgICAgICAgICAgICAgICAgIChhID0gdGhpcy5nZXRUcmFuc2Zvcm1lZFBvaW50KGMsIHMuaVtyICsgMV0pKSwKICAgICAgICAgICAgICAgICAgKG8gPSB0aGlzLmdldFRyYW5zZm9ybWVkUG9pbnQoYywgcy52W3IgKyAxXSkpLAogICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQm91bmRzKG4sIGksIGEsIG8sIHQpOwogICAgICAgICAgICAgIHMuYyAmJgogICAgICAgICAgICAgICAgKChuID0gdGhpcy5nZXRUcmFuc2Zvcm1lZFBvaW50KGMsIHMudltyXSkpLAogICAgICAgICAgICAgICAgKGkgPSB0aGlzLmdldFRyYW5zZm9ybWVkUG9pbnQoYywgcy5vW3JdKSksCiAgICAgICAgICAgICAgICAoYSA9IHRoaXMuZ2V0VHJhbnNmb3JtZWRQb2ludChjLCBzLmlbMF0pKSwKICAgICAgICAgICAgICAgIChvID0gdGhpcy5nZXRUcmFuc2Zvcm1lZFBvaW50KGMsIHMudlswXSkpLAogICAgICAgICAgICAgICAgdGhpcy5jaGVja0JvdW5kcyhuLCBpLCBhLCBvLCB0KSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKEhTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNoZWNrQm91bmRzID0gZnVuY3Rpb24gKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgICAgICAgdGhpcy5nZXRCb3VuZHNPZkN1cnZlKGUsIHQsIHIsIG4pOwogICAgICAgICAgICB2YXIgYSA9IHRoaXMuc2hhcGVCb3VuZGluZ0JveDsKICAgICAgICAgICAgKGkueCA9IGJtTWluKGEubGVmdCwgaS54KSksCiAgICAgICAgICAgICAgKGkueE1heCA9IGJtTWF4KGEucmlnaHQsIGkueE1heCkpLAogICAgICAgICAgICAgIChpLnkgPSBibU1pbihhLnRvcCwgaS55KSksCiAgICAgICAgICAgICAgKGkueU1heCA9IGJtTWF4KGEuYm90dG9tLCBpLnlNYXgpKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEhTaGFwZUVsZW1lbnQucHJvdG90eXBlLnNoYXBlQm91bmRpbmdCb3ggPSB7CiAgICAgICAgICAgIGxlZnQ6IDAsCiAgICAgICAgICAgIHJpZ2h0OiAwLAogICAgICAgICAgICB0b3A6IDAsCiAgICAgICAgICAgIGJvdHRvbTogMCwKICAgICAgICAgIH0pLAogICAgICAgICAgKEhTaGFwZUVsZW1lbnQucHJvdG90eXBlLnRlbXBCb3VuZGluZ0JveCA9IHsKICAgICAgICAgICAgeDogMCwKICAgICAgICAgICAgeE1heDogMCwKICAgICAgICAgICAgeTogMCwKICAgICAgICAgICAgeU1heDogMCwKICAgICAgICAgICAgd2lkdGg6IDAsCiAgICAgICAgICAgIGhlaWdodDogMCwKICAgICAgICAgIH0pLAogICAgICAgICAgKEhTaGFwZUVsZW1lbnQucHJvdG90eXBlLmdldEJvdW5kc09mQ3VydmUgPSBmdW5jdGlvbiAoZSwgdCwgciwgbikgewogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIHZhciBpLAogICAgICAgICAgICAgICAgYSwKICAgICAgICAgICAgICAgIG8sCiAgICAgICAgICAgICAgICBzLAogICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgIHUsCiAgICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgICAgcCA9IFsKICAgICAgICAgICAgICAgICAgW2VbMF0sIG5bMF1dLAogICAgICAgICAgICAgICAgICBbZVsxXSwgblsxXV0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgZCA9IDA7CiAgICAgICAgICAgICAgZCA8IDI7CiAgICAgICAgICAgICAgKytkCiAgICAgICAgICAgICkKICAgICAgICAgICAgICAoYSA9IDYgKiBlW2RdIC0gMTIgKiB0W2RdICsgNiAqIHJbZF0pLAogICAgICAgICAgICAgICAgKGkgPSAtMyAqIGVbZF0gKyA5ICogdFtkXSAtIDkgKiByW2RdICsgMyAqIG5bZF0pLAogICAgICAgICAgICAgICAgKG8gPSAzICogdFtkXSAtIDMgKiBlW2RdKSwKICAgICAgICAgICAgICAgIChhIHw9IDApLAogICAgICAgICAgICAgICAgKG8gfD0gMCksCiAgICAgICAgICAgICAgICAoKGkgfD0gMCkgPT09IDAgJiYgYSA9PT0gMCkgfHwKICAgICAgICAgICAgICAgICAgKGkgPT09IDAKICAgICAgICAgICAgICAgICAgICA/IChzID0gLW8gLyBhKSA+IDAgJiYKICAgICAgICAgICAgICAgICAgICAgIHMgPCAxICYmCiAgICAgICAgICAgICAgICAgICAgICBwW2RdLnB1c2godGhpcy5jYWxjdWxhdGVGKHMsIGUsIHQsIHIsIG4sIGQpKQogICAgICAgICAgICAgICAgICAgIDogKGMgPSBhICogYSAtIDQgKiBvICogaSkgPj0gMCAmJgogICAgICAgICAgICAgICAgICAgICAgKCh1ID0gKC1hICsgYm1TcXJ0KGMpKSAvICgyICogaSkpID4gMCAmJgogICAgICAgICAgICAgICAgICAgICAgICB1IDwgMSAmJgogICAgICAgICAgICAgICAgICAgICAgICBwW2RdLnB1c2godGhpcy5jYWxjdWxhdGVGKHUsIGUsIHQsIHIsIG4sIGQpKSwKICAgICAgICAgICAgICAgICAgICAgIChsID0gKC1hIC0gYm1TcXJ0KGMpKSAvICgyICogaSkpID4gMCAmJgogICAgICAgICAgICAgICAgICAgICAgICBsIDwgMSAmJgogICAgICAgICAgICAgICAgICAgICAgICBwW2RdLnB1c2godGhpcy5jYWxjdWxhdGVGKGwsIGUsIHQsIHIsIG4sIGQpKSkpOwogICAgICAgICAgICAodGhpcy5zaGFwZUJvdW5kaW5nQm94LmxlZnQgPSBibU1pbi5hcHBseShudWxsLCBwWzBdKSksCiAgICAgICAgICAgICAgKHRoaXMuc2hhcGVCb3VuZGluZ0JveC50b3AgPSBibU1pbi5hcHBseShudWxsLCBwWzFdKSksCiAgICAgICAgICAgICAgKHRoaXMuc2hhcGVCb3VuZGluZ0JveC5yaWdodCA9IGJtTWF4LmFwcGx5KG51bGwsIHBbMF0pKSwKICAgICAgICAgICAgICAodGhpcy5zaGFwZUJvdW5kaW5nQm94LmJvdHRvbSA9IGJtTWF4LmFwcGx5KG51bGwsIHBbMV0pKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEhTaGFwZUVsZW1lbnQucHJvdG90eXBlLmNhbGN1bGF0ZUYgPSBmdW5jdGlvbiAoZSwgdCwgciwgbiwgaSwgYSkgewogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIGJtUG93KDEgLSBlLCAzKSAqIHRbYV0gKwogICAgICAgICAgICAgIDMgKiBibVBvdygxIC0gZSwgMikgKiBlICogclthXSArCiAgICAgICAgICAgICAgMyAqICgxIC0gZSkgKiBibVBvdyhlLCAyKSAqIG5bYV0gKwogICAgICAgICAgICAgIGJtUG93KGUsIDMpICogaVthXQogICAgICAgICAgICApOwogICAgICAgICAgfSksCiAgICAgICAgICAoSFNoYXBlRWxlbWVudC5wcm90b3R5cGUuY2FsY3VsYXRlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICBuID0gZS5sZW5ndGg7CiAgICAgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgZVtyXSAmJiBlW3JdLnNoCiAgICAgICAgICAgICAgICA/IHRoaXMuY2FsY3VsYXRlU2hhcGVCb3VuZGluZ0JveChlW3JdLCB0KQogICAgICAgICAgICAgICAgOiBlW3JdICYmIGVbcl0uaXQKICAgICAgICAgICAgICAgID8gdGhpcy5jYWxjdWxhdGVCb3VuZGluZ0JveChlW3JdLml0LCB0KQogICAgICAgICAgICAgICAgOiBlW3JdICYmCiAgICAgICAgICAgICAgICAgIGVbcl0uc3R5bGUgJiYKICAgICAgICAgICAgICAgICAgZVtyXS53ICYmCiAgICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kU3Ryb2tlQm91bmRpbmdCb3goZVtyXS53LCB0KTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEhTaGFwZUVsZW1lbnQucHJvdG90eXBlLmV4cGFuZFN0cm9rZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdmFyIHIgPSAwOwogICAgICAgICAgICBpZiAoZS5rZXlmcmFtZXMpIHsKICAgICAgICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IGUua2V5ZnJhbWVzLmxlbmd0aDsgbiArPSAxKSB7CiAgICAgICAgICAgICAgICB2YXIgaSA9IGUua2V5ZnJhbWVzW25dLnM7CiAgICAgICAgICAgICAgICBpID4gciAmJiAociA9IGkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByICo9IGUubXVsdDsKICAgICAgICAgICAgfSBlbHNlIHIgPSBlLnYgKiBlLm11bHQ7CiAgICAgICAgICAgICh0LnggLT0gciksICh0LnhNYXggKz0gciksICh0LnkgLT0gciksICh0LnlNYXggKz0gcik7CiAgICAgICAgICB9KSwKICAgICAgICAgIChIU2hhcGVFbGVtZW50LnByb3RvdHlwZS5jdXJyZW50Qm94Q29udGFpbnMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3gueCA8PSBlLnggJiYKICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRCQm94LnkgPD0gZS55ICYmCiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QkJveC53aWR0aCArIHRoaXMuY3VycmVudEJCb3gueCA+PSBlLnggKyBlLndpZHRoICYmCiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QkJveC5oZWlnaHQgKyB0aGlzLmN1cnJlbnRCQm94LnkgPj0gZS55ICsgZS5oZWlnaHQKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEhTaGFwZUVsZW1lbnQucHJvdG90eXBlLnJlbmRlcklubmVyQ29udGVudCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICh0aGlzLl9yZW5kZXJTaGFwZUZyYW1lKCksCiAgICAgICAgICAgICAgIXRoaXMuaGlkZGVuICYmICh0aGlzLl9pc0ZpcnN0RnJhbWUgfHwgdGhpcy5fbWRmKSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgdmFyIGUgPSB0aGlzLnRlbXBCb3VuZGluZ0JveCwKICAgICAgICAgICAgICAgIHQgPSA5OTk5OTk7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKChlLnggPSB0KSwKICAgICAgICAgICAgICAgIChlLnhNYXggPSAtdCksCiAgICAgICAgICAgICAgICAoZS55ID0gdCksCiAgICAgICAgICAgICAgICAoZS55TWF4ID0gLXQpLAogICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVCb3VuZGluZ0JveCh0aGlzLml0ZW1zRGF0YSwgZSksCiAgICAgICAgICAgICAgICAoZS53aWR0aCA9IGUueE1heCA8IGUueCA/IDAgOiBlLnhNYXggLSBlLngpLAogICAgICAgICAgICAgICAgKGUuaGVpZ2h0ID0gZS55TWF4IDwgZS55ID8gMCA6IGUueU1heCAtIGUueSksCiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRCb3hDb250YWlucyhlKSkKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgdmFyIHIgPSAhMTsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50QkJveC53ICE9PSBlLndpZHRoICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5jdXJyZW50QkJveC53ID0gZS53aWR0aCksCiAgICAgICAgICAgICAgICAgIHRoaXMuc2hhcGVDb250LnNldEF0dHJpYnV0ZSgid2lkdGgiLCBlLndpZHRoKSwKICAgICAgICAgICAgICAgICAgKHIgPSAhMCkpLAogICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QkJveC5oICE9PSBlLmhlaWdodCAmJgogICAgICAgICAgICAgICAgICAoKHRoaXMuY3VycmVudEJCb3guaCA9IGUuaGVpZ2h0KSwKICAgICAgICAgICAgICAgICAgdGhpcy5zaGFwZUNvbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBlLmhlaWdodCksCiAgICAgICAgICAgICAgICAgIChyID0gITApKSwKICAgICAgICAgICAgICAgIHIgfHwgdGhpcy5jdXJyZW50QkJveC54ICE9PSBlLnggfHwgdGhpcy5jdXJyZW50QkJveC55ICE9PSBlLnkpCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50QkJveC53ID0gZS53aWR0aCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRCQm94LmggPSBlLmhlaWdodCksCiAgICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRCQm94LnggPSBlLngpLAogICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50QkJveC55ID0gZS55KSwKICAgICAgICAgICAgICAgICAgdGhpcy5zaGFwZUNvbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJ2aWV3Qm94IiwKICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRCQm94LnggKwogICAgICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3gueSArCiAgICAgICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QkJveC53ICsKICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRCQm94LmgKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHZhciBuID0gdGhpcy5zaGFwZUNvbnQuc3R5bGUsCiAgICAgICAgICAgICAgICAgIGkgPQogICAgICAgICAgICAgICAgICAgICJ0cmFuc2xhdGUoIiArCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QkJveC54ICsKICAgICAgICAgICAgICAgICAgICAicHgsIiArCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QkJveC55ICsKICAgICAgICAgICAgICAgICAgICAicHgpIjsKICAgICAgICAgICAgICAgIChuLnRyYW5zZm9ybSA9IGkpLCAobi53ZWJraXRUcmFuc2Zvcm0gPSBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudCwKICAgICAgICAgICAgICBIQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgSGllcmFyY2h5RWxlbWVudCwKICAgICAgICAgICAgICBGcmFtZUVsZW1lbnQsCiAgICAgICAgICAgICAgUmVuZGVyYWJsZURPTUVsZW1lbnQsCiAgICAgICAgICAgICAgSVRleHRFbGVtZW50LAogICAgICAgICAgICBdLAogICAgICAgICAgICBIVGV4dEVsZW1lbnQKICAgICAgICAgICksCiAgICAgICAgICAoSFRleHRFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoKCh0aGlzLmlzTWFza2VkID0gdGhpcy5jaGVja01hc2tzKCkpLCB0aGlzLmlzTWFza2VkKSkgewogICAgICAgICAgICAgICh0aGlzLnJlbmRlclR5cGUgPSAic3ZnIiksCiAgICAgICAgICAgICAgICAodGhpcy5jb21wVyA9IHRoaXMuY29tcC5kYXRhLncpLAogICAgICAgICAgICAgICAgKHRoaXMuY29tcEggPSB0aGlzLmNvbXAuZGF0YS5oKSwKICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgdGhpcy5jb21wVyksCiAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCB0aGlzLmNvbXBIKTsKICAgICAgICAgICAgICB2YXIgZSA9IGNyZWF0ZU5TKCJnIik7CiAgICAgICAgICAgICAgdGhpcy5tYXNrZWRFbGVtZW50LmFwcGVuZENoaWxkKGUpLCAodGhpcy5pbm5lckVsZW0gPSBlKTsKICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgKHRoaXMucmVuZGVyVHlwZSA9ICJodG1sIiksICh0aGlzLmlubmVyRWxlbSA9IHRoaXMubGF5ZXJFbGVtZW50KTsKICAgICAgICAgICAgdGhpcy5jaGVja1BhcmVudGluZygpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSFRleHRFbGVtZW50LnByb3RvdHlwZS5idWlsZE5ld1RleHQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlID0gdGhpcy50ZXh0UHJvcGVydHkuY3VycmVudERhdGE7CiAgICAgICAgICAgIHRoaXMucmVuZGVyZWRMZXR0ZXJzID0gY3JlYXRlU2l6ZWRBcnJheShlLmwgPyBlLmwubGVuZ3RoIDogMCk7CiAgICAgICAgICAgIHZhciB0ID0gdGhpcy5pbm5lckVsZW0uc3R5bGUsCiAgICAgICAgICAgICAgciA9IGUuZmMgPyB0aGlzLmJ1aWxkQ29sb3IoZS5mYykgOiAicmdiYSgwLDAsMCwwKSI7CiAgICAgICAgICAgICh0LmZpbGwgPSByKSwKICAgICAgICAgICAgICAodC5jb2xvciA9IHIpLAogICAgICAgICAgICAgIGUuc2MgJiYKICAgICAgICAgICAgICAgICgodC5zdHJva2UgPSB0aGlzLmJ1aWxkQ29sb3IoZS5zYykpLAogICAgICAgICAgICAgICAgKHQuc3Ryb2tlV2lkdGggPSBlLnN3ICsgInB4IikpOwogICAgICAgICAgICB2YXIgbiwKICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgIGEgPSB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuZ2V0Rm9udEJ5TmFtZShlLmYpOwogICAgICAgICAgICBpZiAoIXRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5jaGFycykKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoKHQuZm9udFNpemUgPSBlLmZpbmFsU2l6ZSArICJweCIpLAogICAgICAgICAgICAgICAgKHQubGluZUhlaWdodCA9IGUuZmluYWxTaXplICsgInB4IiksCiAgICAgICAgICAgICAgICBhLmZDbGFzcykKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB0aGlzLmlubmVyRWxlbS5jbGFzc05hbWUgPSBhLmZDbGFzczsKICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHQuZm9udEZhbWlseSA9IGEuZkZhbWlseTsKICAgICAgICAgICAgICAgIHZhciBvID0gZS5mV2VpZ2h0LAogICAgICAgICAgICAgICAgICBzID0gZS5mU3R5bGU7CiAgICAgICAgICAgICAgICAodC5mb250U3R5bGUgPSBzKSwgKHQuZm9udFdlaWdodCA9IG8pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGMsCiAgICAgICAgICAgICAgdSwKICAgICAgICAgICAgICBsLAogICAgICAgICAgICAgIHAgPSBlLmw7CiAgICAgICAgICAgIGkgPSBwLmxlbmd0aDsKICAgICAgICAgICAgdmFyIGQsCiAgICAgICAgICAgICAgaCA9IHRoaXMubUhlbHBlciwKICAgICAgICAgICAgICBtID0gIiIsCiAgICAgICAgICAgICAgdiA9IDA7CiAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBpOyBuICs9IDEpIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmZvbnRNYW5hZ2VyLmNoYXJzCiAgICAgICAgICAgICAgICAgID8gKHRoaXMudGV4dFBhdGhzW3ZdCiAgICAgICAgICAgICAgICAgICAgICA/IChjID0gdGhpcy50ZXh0UGF0aHNbdl0pCiAgICAgICAgICAgICAgICAgICAgICA6ICgoYyA9IGNyZWF0ZU5TKCJwYXRoIikpLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAic3Ryb2tlLWxpbmVjYXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDYXBFbnVtWzFdCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCJzdHJva2UtbGluZWpvaW4iLCBsaW5lSm9pbkVudW1bMl0pLAogICAgICAgICAgICAgICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgic3Ryb2tlLW1pdGVybGltaXQiLCAiNCIpKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTWFza2VkIHx8CiAgICAgICAgICAgICAgICAgICAgICAodGhpcy50ZXh0U3BhbnNbdl0KICAgICAgICAgICAgICAgICAgICAgICAgPyAobCA9ICh1ID0gdGhpcy50ZXh0U3BhbnNbdl0pLmNoaWxkcmVuWzBdKQogICAgICAgICAgICAgICAgICAgICAgICA6ICgoKHUgPSBjcmVhdGVUYWcoImRpdiIpKS5zdHlsZS5saW5lSGVpZ2h0ID0gMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGwgPSBjcmVhdGVOUygic3ZnIikpLmFwcGVuZENoaWxkKGMpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlRGl2KHUpKSkpCiAgICAgICAgICAgICAgICAgIDogdGhpcy5pc01hc2tlZAogICAgICAgICAgICAgICAgICA/IChjID0gdGhpcy50ZXh0UGF0aHNbdl0KICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy50ZXh0UGF0aHNbdl0KICAgICAgICAgICAgICAgICAgICAgIDogY3JlYXRlTlMoInRleHQiKSkKICAgICAgICAgICAgICAgICAgOiB0aGlzLnRleHRTcGFuc1t2XQogICAgICAgICAgICAgICAgICA/ICgodSA9IHRoaXMudGV4dFNwYW5zW3ZdKSwgKGMgPSB0aGlzLnRleHRQYXRoc1t2XSkpCiAgICAgICAgICAgICAgICAgIDogKHN0eWxlRGl2KCh1ID0gY3JlYXRlVGFnKCJzcGFuIikpKSwKICAgICAgICAgICAgICAgICAgICBzdHlsZURpdigoYyA9IGNyZWF0ZVRhZygic3BhbiIpKSksCiAgICAgICAgICAgICAgICAgICAgdS5hcHBlbmRDaGlsZChjKSksCiAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuY2hhcnMpCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgeSwKICAgICAgICAgICAgICAgICAgZyA9IHRoaXMuZ2xvYmFsRGF0YS5mb250TWFuYWdlci5nZXRDaGFyRGF0YSgKICAgICAgICAgICAgICAgICAgICBlLmZpbmFsVGV4dFtuXSwKICAgICAgICAgICAgICAgICAgICBhLmZTdHlsZSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuZm9udE1hbmFnZXIuZ2V0Rm9udEJ5TmFtZShlLmYpLmZGYW1pbHkKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgKCh5ID0gZyA/IGcuZGF0YSA6IG51bGwpLAogICAgICAgICAgICAgICAgICBoLnJlc2V0KCksCiAgICAgICAgICAgICAgICAgIHkgJiYKICAgICAgICAgICAgICAgICAgICB5LnNoYXBlcyAmJgogICAgICAgICAgICAgICAgICAgIHkuc2hhcGVzLmxlbmd0aCAmJgogICAgICAgICAgICAgICAgICAgICgoZCA9IHkuc2hhcGVzWzBdLml0KSwKICAgICAgICAgICAgICAgICAgICBoLnNjYWxlKGUuZmluYWxTaXplIC8gMTAwLCBlLmZpbmFsU2l6ZSAvIDEwMCksCiAgICAgICAgICAgICAgICAgICAgKG0gPSB0aGlzLmNyZWF0ZVBhdGhTaGFwZShoLCBkKSksCiAgICAgICAgICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoImQiLCBtKSksCiAgICAgICAgICAgICAgICAgIHRoaXMuaXNNYXNrZWQpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJFbGVtLmFwcGVuZENoaWxkKGMpOwogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgIGlmICgodGhpcy5pbm5lckVsZW0uYXBwZW5kQ2hpbGQodSksIHkgJiYgeS5zaGFwZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsKTsKICAgICAgICAgICAgICAgICAgICB2YXIgTSA9IGwuZ2V0QkJveCgpOwogICAgICAgICAgICAgICAgICAgIGwuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIE0ud2lkdGggKyAyKSwKICAgICAgICAgICAgICAgICAgICAgIGwuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBNLmhlaWdodCArIDIpLAogICAgICAgICAgICAgICAgICAgICAgbC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aWV3Qm94IiwKICAgICAgICAgICAgICAgICAgICAgICAgTS54IC0KICAgICAgICAgICAgICAgICAgICAgICAgICAxICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIChNLnkgLSAxKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgICAgICAgICAoTS53aWR0aCArIDIpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKwogICAgICAgICAgICAgICAgICAgICAgICAgIChNLmhlaWdodCArIDIpCiAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIHZhciBBID0gbC5zdHlsZSwKICAgICAgICAgICAgICAgICAgICAgIF8gPSAidHJhbnNsYXRlKCIgKyAoTS54IC0gMSkgKyAicHgsIiArIChNLnkgLSAxKSArICJweCkiOwogICAgICAgICAgICAgICAgICAgIChBLnRyYW5zZm9ybSA9IF8pLAogICAgICAgICAgICAgICAgICAgICAgKEEud2Via2l0VHJhbnNmb3JtID0gXyksCiAgICAgICAgICAgICAgICAgICAgICAocFtuXS55T2Zmc2V0ID0gTS55IC0gMSk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgIGwuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIDEpLCBsLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgMSk7CiAgICAgICAgICAgICAgICAgIHUuYXBwZW5kQ2hpbGQobCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBlbHNlIGlmICgKICAgICAgICAgICAgICAgICgoYy50ZXh0Q29udGVudCA9IHBbbl0udmFsKSwKICAgICAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlTlMoCiAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLAogICAgICAgICAgICAgICAgICAieG1sOnNwYWNlIiwKICAgICAgICAgICAgICAgICAgInByZXNlcnZlIgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIHRoaXMuaXNNYXNrZWQpCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgdGhpcy5pbm5lckVsZW0uYXBwZW5kQ2hpbGQoYyk7CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLmlubmVyRWxlbS5hcHBlbmRDaGlsZCh1KTsKICAgICAgICAgICAgICAgIHZhciBDID0gYy5zdHlsZSwKICAgICAgICAgICAgICAgICAgUiA9ICJ0cmFuc2xhdGUzZCgwLCIgKyAtZS5maW5hbFNpemUgLyAxLjIgKyAicHgsMCkiOwogICAgICAgICAgICAgICAgKEMudHJhbnNmb3JtID0gUiksIChDLndlYmtpdFRyYW5zZm9ybSA9IFIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLmlzTWFza2VkID8gKHRoaXMudGV4dFNwYW5zW3ZdID0gYykgOiAodGhpcy50ZXh0U3BhbnNbdl0gPSB1KSwKICAgICAgICAgICAgICAgICh0aGlzLnRleHRTcGFuc1t2XS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIiksCiAgICAgICAgICAgICAgICAodGhpcy50ZXh0UGF0aHNbdl0gPSBjKSwKICAgICAgICAgICAgICAgICh2ICs9IDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAoOyB2IDwgdGhpcy50ZXh0U3BhbnMubGVuZ3RoOyApCiAgICAgICAgICAgICAgKHRoaXMudGV4dFNwYW5zW3ZdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpLCAodiArPSAxKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEhUZXh0RWxlbWVudC5wcm90b3R5cGUucmVuZGVySW5uZXJDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZTsKICAgICAgICAgICAgaWYgKCh0aGlzLnZhbGlkYXRlVGV4dCgpLCB0aGlzLmRhdGEuc2luZ2xlU2hhcGUpKSB7CiAgICAgICAgICAgICAgaWYgKCF0aGlzLl9pc0ZpcnN0RnJhbWUgJiYgIXRoaXMubGV0dGVyc0NoYW5nZWRGbGFnKSByZXR1cm47CiAgICAgICAgICAgICAgaWYgKHRoaXMuaXNNYXNrZWQgJiYgdGhpcy5maW5hbFRyYW5zZm9ybS5fbWF0TWRmKSB7CiAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAidmlld0JveCIsCiAgICAgICAgICAgICAgICAgIC10aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLnAudlswXSArCiAgICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgICAtdGhpcy5maW5hbFRyYW5zZm9ybS5tUHJvcC5wLnZbMV0gKwogICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wVyArCiAgICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBICiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAoZSA9IHRoaXMuc3ZnRWxlbWVudC5zdHlsZSk7CiAgICAgICAgICAgICAgICB2YXIgdCA9CiAgICAgICAgICAgICAgICAgICJ0cmFuc2xhdGUoIiArCiAgICAgICAgICAgICAgICAgIC10aGlzLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLnAudlswXSArCiAgICAgICAgICAgICAgICAgICJweCwiICsKICAgICAgICAgICAgICAgICAgLXRoaXMuZmluYWxUcmFuc2Zvcm0ubVByb3AucC52WzFdICsKICAgICAgICAgICAgICAgICAgInB4KSI7CiAgICAgICAgICAgICAgICAoZS50cmFuc2Zvcm0gPSB0KSwgKGUud2Via2l0VHJhbnNmb3JtID0gdCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAodGhpcy50ZXh0QW5pbWF0b3IuZ2V0TWVhc3VyZXMoCiAgICAgICAgICAgICAgICB0aGlzLnRleHRQcm9wZXJ0eS5jdXJyZW50RGF0YSwKICAgICAgICAgICAgICAgIHRoaXMubGV0dGVyc0NoYW5nZWRGbGFnCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICB0aGlzLmxldHRlcnNDaGFuZ2VkRmxhZyB8fCB0aGlzLnRleHRBbmltYXRvci5sZXR0ZXJzQ2hhbmdlZEZsYWcpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhLAogICAgICAgICAgICAgICAgbywKICAgICAgICAgICAgICAgIHMgPSAwLAogICAgICAgICAgICAgICAgYyA9IHRoaXMudGV4dEFuaW1hdG9yLnJlbmRlcmVkTGV0dGVycywKICAgICAgICAgICAgICAgIHUgPSB0aGlzLnRleHRQcm9wZXJ0eS5jdXJyZW50RGF0YS5sOwogICAgICAgICAgICAgIGZvciAobiA9IHUubGVuZ3RoLCByID0gMDsgciA8IG47IHIgKz0gMSkKICAgICAgICAgICAgICAgIHVbcl0ubgogICAgICAgICAgICAgICAgICA/IChzICs9IDEpCiAgICAgICAgICAgICAgICAgIDogKChhID0gdGhpcy50ZXh0U3BhbnNbcl0pLAogICAgICAgICAgICAgICAgICAgIChvID0gdGhpcy50ZXh0UGF0aHNbcl0pLAogICAgICAgICAgICAgICAgICAgIChpID0gY1tzXSksCiAgICAgICAgICAgICAgICAgICAgKHMgKz0gMSksCiAgICAgICAgICAgICAgICAgICAgaS5fbWRmLm0gJiYKICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmlzTWFza2VkCiAgICAgICAgICAgICAgICAgICAgICAgID8gYS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIGkubSkKICAgICAgICAgICAgICAgICAgICAgICAgOiAoKGEuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gaS5tKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoYS5zdHlsZS50cmFuc2Zvcm0gPSBpLm0pKSksCiAgICAgICAgICAgICAgICAgICAgKGEuc3R5bGUub3BhY2l0eSA9IGkubyksCiAgICAgICAgICAgICAgICAgICAgaS5zdyAmJiBpLl9tZGYuc3cgJiYgby5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsIGkuc3cpLAogICAgICAgICAgICAgICAgICAgIGkuc2MgJiYgaS5fbWRmLnNjICYmIG8uc2V0QXR0cmlidXRlKCJzdHJva2UiLCBpLnNjKSwKICAgICAgICAgICAgICAgICAgICBpLmZjICYmCiAgICAgICAgICAgICAgICAgICAgICBpLl9tZGYuZmMgJiYKICAgICAgICAgICAgICAgICAgICAgIChvLnNldEF0dHJpYnV0ZSgiZmlsbCIsIGkuZmMpLCAoby5zdHlsZS5jb2xvciA9IGkuZmMpKSk7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgdGhpcy5pbm5lckVsZW0uZ2V0QkJveCAmJgogICAgICAgICAgICAgICAgIXRoaXMuaGlkZGVuICYmCiAgICAgICAgICAgICAgICAodGhpcy5faXNGaXJzdEZyYW1lIHx8IHRoaXMuX21kZikKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciBsID0gdGhpcy5pbm5lckVsZW0uZ2V0QkJveCgpOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50QkJveC53ICE9PSBsLndpZHRoICYmCiAgICAgICAgICAgICAgICAgICAgKCh0aGlzLmN1cnJlbnRCQm94LncgPSBsLndpZHRoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLnN2Z0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIGwud2lkdGgpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QkJveC5oICE9PSBsLmhlaWdodCAmJgogICAgICAgICAgICAgICAgICAgICgodGhpcy5jdXJyZW50QkJveC5oID0gbC5oZWlnaHQpLAogICAgICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIGwuaGVpZ2h0KSksCiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3gudyAhPT0gbC53aWR0aCArIDIgfHwKICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRCQm94LmggIT09IGwuaGVpZ2h0ICsgMiB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3gueCAhPT0gbC54IC0gMSB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3gueSAhPT0gbC55IC0gMSkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50QkJveC53ID0gbC53aWR0aCArIDIpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRCQm94LmggPSBsLmhlaWdodCArIDIpLAogICAgICAgICAgICAgICAgICAgICh0aGlzLmN1cnJlbnRCQm94LnggPSBsLnggLSAxKSwKICAgICAgICAgICAgICAgICAgICAodGhpcy5jdXJyZW50QkJveC55ID0gbC55IC0gMSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgICAgICJ2aWV3Qm94IiwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3gueCArCiAgICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3gueSArCiAgICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3gudyArCiAgICAgICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEJCb3guaAogICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgKGUgPSB0aGlzLnN2Z0VsZW1lbnQuc3R5bGUpOwogICAgICAgICAgICAgICAgICB2YXIgcCA9CiAgICAgICAgICAgICAgICAgICAgInRyYW5zbGF0ZSgiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRCQm94LnggKwogICAgICAgICAgICAgICAgICAgICJweCwiICsKICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRCQm94LnkgKwogICAgICAgICAgICAgICAgICAgICJweCkiOwogICAgICAgICAgICAgICAgICAoZS50cmFuc2Zvcm0gPSBwKSwgKGUud2Via2l0VHJhbnNmb3JtID0gcCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZSgKICAgICAgICAgICAgW0Jhc2VFbGVtZW50LCBGcmFtZUVsZW1lbnQsIEhpZXJhcmNoeUVsZW1lbnRdLAogICAgICAgICAgICBIQ2FtZXJhRWxlbWVudAogICAgICAgICAgKSwKICAgICAgICAgIChIQ2FtZXJhRWxlbWVudC5wcm90b3R5cGUuc2V0dXAgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGkgPSB0aGlzLmNvbXAudGhyZWVERWxlbWVudHMubGVuZ3RoOwogICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgaTsgZSArPSAxKQogICAgICAgICAgICAgIGlmICgodCA9IHRoaXMuY29tcC50aHJlZURFbGVtZW50c1tlXSkudHlwZSA9PT0gIjNkIikgewogICAgICAgICAgICAgICAgKHIgPSB0LnBlcnNwZWN0aXZlRWxlbS5zdHlsZSksIChuID0gdC5jb250YWluZXIuc3R5bGUpOwogICAgICAgICAgICAgICAgdmFyIGEgPSB0aGlzLnBlLnYgKyAicHgiLAogICAgICAgICAgICAgICAgICBvID0gIjBweCAwcHggMHB4IiwKICAgICAgICAgICAgICAgICAgcyA9ICJtYXRyaXgzZCgxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxKSI7CiAgICAgICAgICAgICAgICAoci5wZXJzcGVjdGl2ZSA9IGEpLAogICAgICAgICAgICAgICAgICAoci53ZWJraXRQZXJzcGVjdGl2ZSA9IGEpLAogICAgICAgICAgICAgICAgICAobi50cmFuc2Zvcm1PcmlnaW4gPSBvKSwKICAgICAgICAgICAgICAgICAgKG4ubW96VHJhbnNmb3JtT3JpZ2luID0gbyksCiAgICAgICAgICAgICAgICAgIChuLndlYmtpdFRyYW5zZm9ybU9yaWdpbiA9IG8pLAogICAgICAgICAgICAgICAgICAoci50cmFuc2Zvcm0gPSBzKSwKICAgICAgICAgICAgICAgICAgKHIud2Via2l0VHJhbnNmb3JtID0gcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoSENhbWVyYUVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnRzID0gZnVuY3Rpb24gKCkge30pLAogICAgICAgICAgKEhDYW1lcmFFbGVtZW50LnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKCkge30pLAogICAgICAgICAgKEhDYW1lcmFFbGVtZW50LnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgdCwKICAgICAgICAgICAgICByID0gdGhpcy5faXNGaXJzdEZyYW1lOwogICAgICAgICAgICBpZiAodGhpcy5oaWVyYXJjaHkpCiAgICAgICAgICAgICAgZm9yICh0ID0gdGhpcy5oaWVyYXJjaHkubGVuZ3RoLCBlID0gMDsgZSA8IHQ7IGUgKz0gMSkKICAgICAgICAgICAgICAgIHIgPSB0aGlzLmhpZXJhcmNoeVtlXS5maW5hbFRyYW5zZm9ybS5tUHJvcC5fbWRmIHx8IHI7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICByIHx8CiAgICAgICAgICAgICAgdGhpcy5wZS5fbWRmIHx8CiAgICAgICAgICAgICAgKHRoaXMucCAmJiB0aGlzLnAuX21kZikgfHwKICAgICAgICAgICAgICAodGhpcy5weCAmJiAodGhpcy5weC5fbWRmIHx8IHRoaXMucHkuX21kZiB8fCB0aGlzLnB6Ll9tZGYpKSB8fAogICAgICAgICAgICAgIHRoaXMucnguX21kZiB8fAogICAgICAgICAgICAgIHRoaXMucnkuX21kZiB8fAogICAgICAgICAgICAgIHRoaXMucnouX21kZiB8fAogICAgICAgICAgICAgIHRoaXMub3IuX21kZiB8fAogICAgICAgICAgICAgICh0aGlzLmEgJiYgdGhpcy5hLl9tZGYpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIGlmICgodGhpcy5tYXQucmVzZXQoKSwgdGhpcy5oaWVyYXJjaHkpKQogICAgICAgICAgICAgICAgZm9yIChlID0gdCA9IHRoaXMuaGllcmFyY2h5Lmxlbmd0aCAtIDE7IGUgPj0gMDsgZSAtPSAxKSB7CiAgICAgICAgICAgICAgICAgIHZhciBuID0gdGhpcy5oaWVyYXJjaHlbZV0uZmluYWxUcmFuc2Zvcm0ubVByb3A7CiAgICAgICAgICAgICAgICAgIHRoaXMubWF0LnRyYW5zbGF0ZSgtbi5wLnZbMF0sIC1uLnAudlsxXSwgbi5wLnZbMl0pLAogICAgICAgICAgICAgICAgICAgIHRoaXMubWF0CiAgICAgICAgICAgICAgICAgICAgICAucm90YXRlWCgtbi5vci52WzBdKQogICAgICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkoLW4ub3IudlsxXSkKICAgICAgICAgICAgICAgICAgICAgIC5yb3RhdGVaKG4ub3IudlsyXSksCiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXQucm90YXRlWCgtbi5yeC52KS5yb3RhdGVZKC1uLnJ5LnYpLnJvdGF0ZVoobi5yei52KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdC5zY2FsZSgxIC8gbi5zLnZbMF0sIDEgLyBuLnMudlsxXSwgMSAvIG4ucy52WzJdKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdC50cmFuc2xhdGUobi5hLnZbMF0sIG4uYS52WzFdLCBuLmEudlsyXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKHRoaXMucAogICAgICAgICAgICAgICAgICA/IHRoaXMubWF0LnRyYW5zbGF0ZSgtdGhpcy5wLnZbMF0sIC10aGlzLnAudlsxXSwgdGhpcy5wLnZbMl0pCiAgICAgICAgICAgICAgICAgIDogdGhpcy5tYXQudHJhbnNsYXRlKC10aGlzLnB4LnYsIC10aGlzLnB5LnYsIHRoaXMucHoudiksCiAgICAgICAgICAgICAgICB0aGlzLmEpCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgaTsKICAgICAgICAgICAgICAgIGkgPSB0aGlzLnAKICAgICAgICAgICAgICAgICAgPyBbCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnAudlswXSAtIHRoaXMuYS52WzBdLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5wLnZbMV0gLSB0aGlzLmEudlsxXSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucC52WzJdIC0gdGhpcy5hLnZbMl0sCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICA6IFsKICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHgudiAtIHRoaXMuYS52WzBdLAogICAgICAgICAgICAgICAgICAgICAgdGhpcy5weS52IC0gdGhpcy5hLnZbMV0sCiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnB6LnYgLSB0aGlzLmEudlsyXSwKICAgICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIGEgPSBNYXRoLnNxcnQoCiAgICAgICAgICAgICAgICAgICAgTWF0aC5wb3coaVswXSwgMikgKyBNYXRoLnBvdyhpWzFdLCAyKSArIE1hdGgucG93KGlbMl0sIDIpCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIG8gPSBbaVswXSAvIGEsIGlbMV0gLyBhLCBpWzJdIC8gYV0sCiAgICAgICAgICAgICAgICAgIHMgPSBNYXRoLnNxcnQob1syXSAqIG9bMl0gKyBvWzBdICogb1swXSksCiAgICAgICAgICAgICAgICAgIGMgPSBNYXRoLmF0YW4yKG9bMV0sIHMpLAogICAgICAgICAgICAgICAgICB1ID0gTWF0aC5hdGFuMihvWzBdLCAtb1syXSk7CiAgICAgICAgICAgICAgICB0aGlzLm1hdC5yb3RhdGVZKHUpLnJvdGF0ZVgoLWMpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLm1hdAogICAgICAgICAgICAgICAgLnJvdGF0ZVgoLXRoaXMucngudikKICAgICAgICAgICAgICAgIC5yb3RhdGVZKC10aGlzLnJ5LnYpCiAgICAgICAgICAgICAgICAucm90YXRlWih0aGlzLnJ6LnYpLAogICAgICAgICAgICAgICAgdGhpcy5tYXQKICAgICAgICAgICAgICAgICAgLnJvdGF0ZVgoLXRoaXMub3IudlswXSkKICAgICAgICAgICAgICAgICAgLnJvdGF0ZVkoLXRoaXMub3IudlsxXSkKICAgICAgICAgICAgICAgICAgLnJvdGF0ZVoodGhpcy5vci52WzJdKSwKICAgICAgICAgICAgICAgIHRoaXMubWF0LnRyYW5zbGF0ZSgKICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLncgLyAyLAogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUuaCAvIDIsCiAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICB0aGlzLm1hdC50cmFuc2xhdGUoMCwgMCwgdGhpcy5wZS52KTsKICAgICAgICAgICAgICB2YXIgbCA9ICF0aGlzLl9wcmV2TWF0LmVxdWFscyh0aGlzLm1hdCk7CiAgICAgICAgICAgICAgaWYgKChsIHx8IHRoaXMucGUuX21kZikgJiYgdGhpcy5jb21wLnRocmVlREVsZW1lbnRzKSB7CiAgICAgICAgICAgICAgICB2YXIgcCwgZCwgaDsKICAgICAgICAgICAgICAgIGZvciAodCA9IHRoaXMuY29tcC50aHJlZURFbGVtZW50cy5sZW5ndGgsIGUgPSAwOyBlIDwgdDsgZSArPSAxKQogICAgICAgICAgICAgICAgICBpZiAoKHAgPSB0aGlzLmNvbXAudGhyZWVERWxlbWVudHNbZV0pLnR5cGUgPT09ICIzZCIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAobCkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIG0gPSB0aGlzLm1hdC50b0NTUygpOwogICAgICAgICAgICAgICAgICAgICAgKChoID0gcC5jb250YWluZXIuc3R5bGUpLnRyYW5zZm9ybSA9IG0pLAogICAgICAgICAgICAgICAgICAgICAgICAoaC53ZWJraXRUcmFuc2Zvcm0gPSBtKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZS5fbWRmICYmCiAgICAgICAgICAgICAgICAgICAgICAoKChkID0gcC5wZXJzcGVjdGl2ZUVsZW0uc3R5bGUpLnBlcnNwZWN0aXZlID0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZS52ICsgInB4IiksCiAgICAgICAgICAgICAgICAgICAgICAoZC53ZWJraXRQZXJzcGVjdGl2ZSA9IHRoaXMucGUudiArICJweCIpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5tYXQuY2xvbmUodGhpcy5fcHJldk1hdCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuX2lzRmlyc3RGcmFtZSA9ICExOwogICAgICAgICAgfSksCiAgICAgICAgICAoSENhbWVyYUVsZW1lbnQucHJvdG90eXBlLnByZXBhcmVGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHRoaXMucHJlcGFyZVByb3BlcnRpZXMoZSwgITApOwogICAgICAgICAgfSksCiAgICAgICAgICAoSENhbWVyYUVsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7fSksCiAgICAgICAgICAoSENhbWVyYUVsZW1lbnQucHJvdG90eXBlLmdldEJhc2VFbGVtZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgVHJhbnNmb3JtRWxlbWVudCwKICAgICAgICAgICAgICBIQmFzZUVsZW1lbnQsCiAgICAgICAgICAgICAgSFNvbGlkRWxlbWVudCwKICAgICAgICAgICAgICBIaWVyYXJjaHlFbGVtZW50LAogICAgICAgICAgICAgIEZyYW1lRWxlbWVudCwKICAgICAgICAgICAgICBSZW5kZXJhYmxlRWxlbWVudCwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgSEltYWdlRWxlbWVudAogICAgICAgICAgKSwKICAgICAgICAgIChISW1hZ2VFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IHRoaXMuZ2xvYmFsRGF0YS5nZXRBc3NldHNQYXRoKHRoaXMuYXNzZXREYXRhKSwKICAgICAgICAgICAgICB0ID0gbmV3IEltYWdlKCk7CiAgICAgICAgICAgIHRoaXMuZGF0YS5oYXNNYXNrCiAgICAgICAgICAgICAgPyAoKHRoaXMuaW1hZ2VFbGVtID0gY3JlYXRlTlMoImltYWdlIikpLAogICAgICAgICAgICAgICAgdGhpcy5pbWFnZUVsZW0uc2V0QXR0cmlidXRlKCJ3aWR0aCIsIHRoaXMuYXNzZXREYXRhLncgKyAicHgiKSwKICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VFbGVtLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgdGhpcy5hc3NldERhdGEuaCArICJweCIpLAogICAgICAgICAgICAgICAgdGhpcy5pbWFnZUVsZW0uc2V0QXR0cmlidXRlTlMoCiAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwKICAgICAgICAgICAgICAgICAgImhyZWYiLAogICAgICAgICAgICAgICAgICBlCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5pbWFnZUVsZW0pLAogICAgICAgICAgICAgICAgdGhpcy5iYXNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgdGhpcy5hc3NldERhdGEudyksCiAgICAgICAgICAgICAgICB0aGlzLmJhc2VFbGVtZW50LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgdGhpcy5hc3NldERhdGEuaCkpCiAgICAgICAgICAgICAgOiB0aGlzLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZCh0KSwKICAgICAgICAgICAgICAodC5jcm9zc09yaWdpbiA9ICJhbm9ueW1vdXMiKSwKICAgICAgICAgICAgICAodC5zcmMgPSBlKSwKICAgICAgICAgICAgICB0aGlzLmRhdGEubG4gJiYgdGhpcy5iYXNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5kYXRhLmxuKTsKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtCYXNlUmVuZGVyZXJdLCBIeWJyaWRSZW5kZXJlckJhc2UpLAogICAgICAgICAgKEh5YnJpZFJlbmRlcmVyQmFzZS5wcm90b3R5cGUuYnVpbGRJdGVtID0KICAgICAgICAgICAgU1ZHUmVuZGVyZXIucHJvdG90eXBlLmJ1aWxkSXRlbSksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jaGVja1BlbmRpbmdFbGVtZW50cyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgZm9yICg7IHRoaXMucGVuZGluZ0VsZW1lbnRzLmxlbmd0aDsgKQogICAgICAgICAgICAgIHRoaXMucGVuZGluZ0VsZW1lbnRzLnBvcCgpLmNoZWNrUGFyZW50aW5nKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChIeWJyaWRSZW5kZXJlckJhc2UucHJvdG90eXBlLmFwcGVuZEVsZW1lbnRJblBvcyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHZhciByID0gZS5nZXRCYXNlRWxlbWVudCgpOwogICAgICAgICAgICBpZiAocikgewogICAgICAgICAgICAgIHZhciBuID0gdGhpcy5sYXllcnNbdF07CiAgICAgICAgICAgICAgaWYgKG4uZGRkICYmIHRoaXMuc3VwcG9ydHMzZCkgdGhpcy5hZGRUbzNkQ29udGFpbmVyKHIsIHQpOwogICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudGhyZWVERWxlbWVudHMpIHRoaXMuYWRkVG8zZENvbnRhaW5lcihyLCB0KTsKICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIGksIGEsIG8gPSAwOyBvIDwgdDsgKQogICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW29dICYmCiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tvXSAhPT0gITAgJiYKICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzW29dLmdldEJhc2VFbGVtZW50ICYmCiAgICAgICAgICAgICAgICAgICAgKChhID0gdGhpcy5lbGVtZW50c1tvXSksCiAgICAgICAgICAgICAgICAgICAgKGkgPQogICAgICAgICAgICAgICAgICAgICAgKHRoaXMubGF5ZXJzW29dLmRkZAogICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZ2V0VGhyZWVEQ29udGFpbmVyQnlQb3MobykKICAgICAgICAgICAgICAgICAgICAgICAgOiBhLmdldEJhc2VFbGVtZW50KCkpIHx8IGkpKSwKICAgICAgICAgICAgICAgICAgICAobyArPSAxKTsKICAgICAgICAgICAgICAgIGkKICAgICAgICAgICAgICAgICAgPyAobi5kZGQgJiYgdGhpcy5zdXBwb3J0czNkKSB8fAogICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXJFbGVtZW50Lmluc2VydEJlZm9yZShyLCBpKQogICAgICAgICAgICAgICAgICA6IChuLmRkZCAmJiB0aGlzLnN1cHBvcnRzM2QpIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllckVsZW1lbnQuYXBwZW5kQ2hpbGQocik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChIeWJyaWRSZW5kZXJlckJhc2UucHJvdG90eXBlLmNyZWF0ZVNoYXBlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VwcG9ydHMzZAogICAgICAgICAgICAgID8gbmV3IEhTaGFwZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKQogICAgICAgICAgICAgIDogbmV3IFNWR1NoYXBlRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVUZXh0ID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VwcG9ydHMzZAogICAgICAgICAgICAgID8gbmV3IEhUZXh0RWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpCiAgICAgICAgICAgICAgOiBuZXcgU1ZHVGV4dExvdHRpZUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEh5YnJpZFJlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlQ2FtZXJhID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAodGhpcy5jYW1lcmEgPSBuZXcgSENhbWVyYUVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKSksCiAgICAgICAgICAgICAgdGhpcy5jYW1lcmEKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEh5YnJpZFJlbmRlcmVyQmFzZS5wcm90b3R5cGUuY3JlYXRlSW1hZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zdXBwb3J0czNkCiAgICAgICAgICAgICAgPyBuZXcgSEltYWdlRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpCiAgICAgICAgICAgICAgOiBuZXcgSUltYWdlRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVTb2xpZCA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnN1cHBvcnRzM2QKICAgICAgICAgICAgICA/IG5ldyBIU29saWRFbGVtZW50KGUsIHRoaXMuZ2xvYmFsRGF0YSwgdGhpcykKICAgICAgICAgICAgICA6IG5ldyBJU29saWRFbGVtZW50KGUsIHRoaXMuZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChIeWJyaWRSZW5kZXJlckJhc2UucHJvdG90eXBlLmNyZWF0ZU51bGwgPQogICAgICAgICAgICBTVkdSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlTnVsbCksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5nZXRUaHJlZURDb250YWluZXJCeVBvcyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGZvciAodmFyIHQgPSAwLCByID0gdGhpcy50aHJlZURFbGVtZW50cy5sZW5ndGg7IHQgPCByOyApIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICB0aGlzLnRocmVlREVsZW1lbnRzW3RdLnN0YXJ0UG9zIDw9IGUgJiYKICAgICAgICAgICAgICAgIHRoaXMudGhyZWVERWxlbWVudHNbdF0uZW5kUG9zID49IGUKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50aHJlZURFbGVtZW50c1t0XS5wZXJzcGVjdGl2ZUVsZW07CiAgICAgICAgICAgICAgdCArPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfSksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5jcmVhdGVUaHJlZURDb250YWluZXIgPSBmdW5jdGlvbiAoCiAgICAgICAgICAgIGUsCiAgICAgICAgICAgIHQKICAgICAgICAgICkgewogICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGkgPSBjcmVhdGVUYWcoImRpdiIpOwogICAgICAgICAgICBzdHlsZURpdihpKTsKICAgICAgICAgICAgdmFyIGEgPSBjcmVhdGVUYWcoImRpdiIpOwogICAgICAgICAgICBpZiAoKHN0eWxlRGl2KGEpLCB0ID09PSAiM2QiKSkgewogICAgICAgICAgICAgICgociA9IGkuc3R5bGUpLndpZHRoID0gdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLncgKyAicHgiKSwKICAgICAgICAgICAgICAgIChyLmhlaWdodCA9IHRoaXMuZ2xvYmFsRGF0YS5jb21wU2l6ZS5oICsgInB4Iik7CiAgICAgICAgICAgICAgdmFyIG8gPSAiNTAlIDUwJSI7CiAgICAgICAgICAgICAgKHIud2Via2l0VHJhbnNmb3JtT3JpZ2luID0gbyksCiAgICAgICAgICAgICAgICAoci5tb3pUcmFuc2Zvcm1PcmlnaW4gPSBvKSwKICAgICAgICAgICAgICAgIChyLnRyYW5zZm9ybU9yaWdpbiA9IG8pOwogICAgICAgICAgICAgIHZhciBzID0gIm1hdHJpeDNkKDEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDEpIjsKICAgICAgICAgICAgICAoKG4gPSBhLnN0eWxlKS50cmFuc2Zvcm0gPSBzKSwgKG4ud2Via2l0VHJhbnNmb3JtID0gcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaS5hcHBlbmRDaGlsZChhKTsKICAgICAgICAgICAgdmFyIGMgPSB7CiAgICAgICAgICAgICAgY29udGFpbmVyOiBhLAogICAgICAgICAgICAgIHBlcnNwZWN0aXZlRWxlbTogaSwKICAgICAgICAgICAgICBzdGFydFBvczogZSwKICAgICAgICAgICAgICBlbmRQb3M6IGUsCiAgICAgICAgICAgICAgdHlwZTogdCwKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhyZWVERWxlbWVudHMucHVzaChjKSwgYzsKICAgICAgICAgIH0pLAogICAgICAgICAgKEh5YnJpZFJlbmRlcmVyQmFzZS5wcm90b3R5cGUuYnVpbGQzZENvbnRhaW5lcnMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgciA9IHRoaXMubGF5ZXJzLmxlbmd0aCwKICAgICAgICAgICAgICBuID0gIiI7CiAgICAgICAgICAgIGZvciAoZSA9IDA7IGUgPCByOyBlICs9IDEpCiAgICAgICAgICAgICAgdGhpcy5sYXllcnNbZV0uZGRkICYmIHRoaXMubGF5ZXJzW2VdLnR5ICE9PSAzCiAgICAgICAgICAgICAgICA/IChuICE9PSAiM2QiICYmCiAgICAgICAgICAgICAgICAgICAgKChuID0gIjNkIiksICh0ID0gdGhpcy5jcmVhdGVUaHJlZURDb250YWluZXIoZSwgIjNkIikpKSwKICAgICAgICAgICAgICAgICAgKHQuZW5kUG9zID0gTWF0aC5tYXgodC5lbmRQb3MsIGUpKSkKICAgICAgICAgICAgICAgIDogKG4gIT09ICIyZCIgJiYKICAgICAgICAgICAgICAgICAgICAoKG4gPSAiMmQiKSwgKHQgPSB0aGlzLmNyZWF0ZVRocmVlRENvbnRhaW5lcihlLCAiMmQiKSkpLAogICAgICAgICAgICAgICAgICAodC5lbmRQb3MgPSBNYXRoLm1heCh0LmVuZFBvcywgZSkpKTsKICAgICAgICAgICAgZm9yIChlID0gKHIgPSB0aGlzLnRocmVlREVsZW1lbnRzLmxlbmd0aCkgLSAxOyBlID49IDA7IGUgLT0gMSkKICAgICAgICAgICAgICB0aGlzLnJlc2l6ZXJFbGVtLmFwcGVuZENoaWxkKAogICAgICAgICAgICAgICAgdGhpcy50aHJlZURFbGVtZW50c1tlXS5wZXJzcGVjdGl2ZUVsZW0KICAgICAgICAgICAgICApOwogICAgICAgICAgfSksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5hZGRUbzNkQ29udGFpbmVyID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgZm9yICh2YXIgciA9IDAsIG4gPSB0aGlzLnRocmVlREVsZW1lbnRzLmxlbmd0aDsgciA8IG47ICkgewogICAgICAgICAgICAgIGlmICh0IDw9IHRoaXMudGhyZWVERWxlbWVudHNbcl0uZW5kUG9zKSB7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpLCBhID0gdGhpcy50aHJlZURFbGVtZW50c1tyXS5zdGFydFBvczsgYSA8IHQ7ICkKICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1thXSAmJgogICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbYV0uZ2V0QmFzZUVsZW1lbnQgJiYKICAgICAgICAgICAgICAgICAgICAoaSA9IHRoaXMuZWxlbWVudHNbYV0uZ2V0QmFzZUVsZW1lbnQoKSksCiAgICAgICAgICAgICAgICAgICAgKGEgKz0gMSk7CiAgICAgICAgICAgICAgICBpCiAgICAgICAgICAgICAgICAgID8gdGhpcy50aHJlZURFbGVtZW50c1tyXS5jb250YWluZXIuaW5zZXJ0QmVmb3JlKGUsIGkpCiAgICAgICAgICAgICAgICAgIDogdGhpcy50aHJlZURFbGVtZW50c1tyXS5jb250YWluZXIuYXBwZW5kQ2hpbGQoZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChIeWJyaWRSZW5kZXJlckJhc2UucHJvdG90eXBlLmNvbmZpZ0FuaW1hdGlvbiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0ID0gY3JlYXRlVGFnKCJkaXYiKSwKICAgICAgICAgICAgICByID0gdGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIsCiAgICAgICAgICAgICAgbiA9IHQuc3R5bGU7CiAgICAgICAgICAgIChuLndpZHRoID0gZS53ICsgInB4IiksCiAgICAgICAgICAgICAgKG4uaGVpZ2h0ID0gZS5oICsgInB4IiksCiAgICAgICAgICAgICAgKHRoaXMucmVzaXplckVsZW0gPSB0KSwKICAgICAgICAgICAgICBzdHlsZURpdih0KSwKICAgICAgICAgICAgICAobi50cmFuc2Zvcm1TdHlsZSA9ICJmbGF0IiksCiAgICAgICAgICAgICAgKG4ubW96VHJhbnNmb3JtU3R5bGUgPSAiZmxhdCIpLAogICAgICAgICAgICAgIChuLndlYmtpdFRyYW5zZm9ybVN0eWxlID0gImZsYXQiKSwKICAgICAgICAgICAgICB0aGlzLnJlbmRlckNvbmZpZy5jbGFzc05hbWUgJiYKICAgICAgICAgICAgICAgIHQuc2V0QXR0cmlidXRlKCJjbGFzcyIsIHRoaXMucmVuZGVyQ29uZmlnLmNsYXNzTmFtZSksCiAgICAgICAgICAgICAgci5hcHBlbmRDaGlsZCh0KSwKICAgICAgICAgICAgICAobi5vdmVyZmxvdyA9ICJoaWRkZW4iKTsKICAgICAgICAgICAgdmFyIGkgPSBjcmVhdGVOUygic3ZnIik7CiAgICAgICAgICAgIGkuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIxIiksCiAgICAgICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoImhlaWdodCIsICIxIiksCiAgICAgICAgICAgICAgc3R5bGVEaXYoaSksCiAgICAgICAgICAgICAgdGhpcy5yZXNpemVyRWxlbS5hcHBlbmRDaGlsZChpKTsKICAgICAgICAgICAgdmFyIGEgPSBjcmVhdGVOUygiZGVmcyIpOwogICAgICAgICAgICBpLmFwcGVuZENoaWxkKGEpLAogICAgICAgICAgICAgICh0aGlzLmRhdGEgPSBlKSwKICAgICAgICAgICAgICB0aGlzLnNldHVwR2xvYmFsRGF0YShlLCBpKSwKICAgICAgICAgICAgICAodGhpcy5nbG9iYWxEYXRhLmRlZnMgPSBhKSwKICAgICAgICAgICAgICAodGhpcy5sYXllcnMgPSBlLmxheWVycyksCiAgICAgICAgICAgICAgKHRoaXMubGF5ZXJFbGVtZW50ID0gdGhpcy5yZXNpemVyRWxlbSksCiAgICAgICAgICAgICAgdGhpcy5idWlsZDNkQ29udGFpbmVycygpLAogICAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGFpbmVyU2l6ZSgpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZTsKICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIgJiYKICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIuaW5uZXJUZXh0ID0gIiIpLAogICAgICAgICAgICAgICh0aGlzLmFuaW1hdGlvbkl0ZW0uY29udGFpbmVyID0gbnVsbCksCiAgICAgICAgICAgICAgKHRoaXMuZ2xvYmFsRGF0YS5kZWZzID0gbnVsbCk7CiAgICAgICAgICAgIHZhciB0ID0gdGhpcy5sYXllcnMgPyB0aGlzLmxheWVycy5sZW5ndGggOiAwOwogICAgICAgICAgICBmb3IgKGUgPSAwOyBlIDwgdDsgZSArPSAxKQogICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0gJiYKICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbZV0uZGVzdHJveSAmJgogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50c1tlXS5kZXN0cm95KCk7CiAgICAgICAgICAgICh0aGlzLmVsZW1lbnRzLmxlbmd0aCA9IDApLAogICAgICAgICAgICAgICh0aGlzLmRlc3Ryb3llZCA9ICEwKSwKICAgICAgICAgICAgICAodGhpcy5hbmltYXRpb25JdGVtID0gbnVsbCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChIeWJyaWRSZW5kZXJlckJhc2UucHJvdG90eXBlLnVwZGF0ZUNvbnRhaW5lclNpemUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGkgPSB0aGlzLmFuaW1hdGlvbkl0ZW0ud3JhcHBlci5vZmZzZXRXaWR0aCwKICAgICAgICAgICAgICBhID0gdGhpcy5hbmltYXRpb25JdGVtLndyYXBwZXIub2Zmc2V0SGVpZ2h0LAogICAgICAgICAgICAgIG8gPSBpIC8gYTsKICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLncgLyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUuaCA+IG8KICAgICAgICAgICAgICA/ICgoZSA9IGkgLyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUudyksCiAgICAgICAgICAgICAgICAodCA9IGkgLyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUudyksCiAgICAgICAgICAgICAgICAociA9IDApLAogICAgICAgICAgICAgICAgKG4gPQogICAgICAgICAgICAgICAgICAoYSAtCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLmggKgogICAgICAgICAgICAgICAgICAgICAgKGkgLyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUudykpIC8KICAgICAgICAgICAgICAgICAgMikpCiAgICAgICAgICAgICAgOiAoKGUgPSBhIC8gdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLmgpLAogICAgICAgICAgICAgICAgKHQgPSBhIC8gdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLmgpLAogICAgICAgICAgICAgICAgKHIgPQogICAgICAgICAgICAgICAgICAoaSAtCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLncgKgogICAgICAgICAgICAgICAgICAgICAgKGEgLyB0aGlzLmdsb2JhbERhdGEuY29tcFNpemUuaCkpIC8KICAgICAgICAgICAgICAgICAgMiksCiAgICAgICAgICAgICAgICAobiA9IDApKTsKICAgICAgICAgICAgdmFyIHMgPSB0aGlzLnJlc2l6ZXJFbGVtLnN0eWxlOwogICAgICAgICAgICAocy53ZWJraXRUcmFuc2Zvcm0gPQogICAgICAgICAgICAgICJtYXRyaXgzZCgiICsKICAgICAgICAgICAgICBlICsKICAgICAgICAgICAgICAiLDAsMCwwLDAsIiArCiAgICAgICAgICAgICAgdCArCiAgICAgICAgICAgICAgIiwwLDAsMCwwLDEsMCwiICsKICAgICAgICAgICAgICByICsKICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgIG4gKwogICAgICAgICAgICAgICIsMCwxKSIpLAogICAgICAgICAgICAgIChzLnRyYW5zZm9ybSA9IHMud2Via2l0VHJhbnNmb3JtKTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEh5YnJpZFJlbmRlcmVyQmFzZS5wcm90b3R5cGUucmVuZGVyRnJhbWUgPQogICAgICAgICAgICBTVkdSZW5kZXJlci5wcm90b3R5cGUucmVuZGVyRnJhbWUpLAogICAgICAgICAgKEh5YnJpZFJlbmRlcmVyQmFzZS5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5yZXNpemVyRWxlbS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgfSksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLnJlc2l6ZXJFbGVtLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgICAgfSksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXJCYXNlLnByb3RvdHlwZS5pbml0SXRlbXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGlmICgodGhpcy5idWlsZEFsbEl0ZW1zKCksIHRoaXMuY2FtZXJhKSkgdGhpcy5jYW1lcmEuc2V0dXAoKTsKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgdmFyIGUsCiAgICAgICAgICAgICAgICB0ID0gdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLncsCiAgICAgICAgICAgICAgICByID0gdGhpcy5nbG9iYWxEYXRhLmNvbXBTaXplLmgsCiAgICAgICAgICAgICAgICBuID0gdGhpcy50aHJlZURFbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgZm9yIChlID0gMDsgZSA8IG47IGUgKz0gMSkgewogICAgICAgICAgICAgICAgdmFyIGkgPSB0aGlzLnRocmVlREVsZW1lbnRzW2VdLnBlcnNwZWN0aXZlRWxlbS5zdHlsZTsKICAgICAgICAgICAgICAgIChpLndlYmtpdFBlcnNwZWN0aXZlID0KICAgICAgICAgICAgICAgICAgTWF0aC5zcXJ0KE1hdGgucG93KHQsIDIpICsgTWF0aC5wb3cociwgMikpICsgInB4IiksCiAgICAgICAgICAgICAgICAgIChpLnBlcnNwZWN0aXZlID0gaS53ZWJraXRQZXJzcGVjdGl2ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChIeWJyaWRSZW5kZXJlckJhc2UucHJvdG90eXBlLnNlYXJjaEV4dHJhQ29tcG9zaXRpb25zID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgdmFyIHQsCiAgICAgICAgICAgICAgciA9IGUubGVuZ3RoLAogICAgICAgICAgICAgIG4gPSBjcmVhdGVUYWcoImRpdiIpOwogICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgcjsgdCArPSAxKQogICAgICAgICAgICAgIGlmIChlW3RdLnh0KSB7CiAgICAgICAgICAgICAgICB2YXIgaSA9IHRoaXMuY3JlYXRlQ29tcChlW3RdLCBuLCB0aGlzLmdsb2JhbERhdGEuY29tcCwgbnVsbCk7CiAgICAgICAgICAgICAgICBpLmluaXRFeHByZXNzaW9ucygpLAogICAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbERhdGEucHJvamVjdEludGVyZmFjZS5yZWdpc3RlckNvbXBvc2l0aW9uKGkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKAogICAgICAgICAgICBbSHlicmlkUmVuZGVyZXJCYXNlLCBJQ29tcEVsZW1lbnQsIEhCYXNlRWxlbWVudF0sCiAgICAgICAgICAgIEhDb21wRWxlbWVudAogICAgICAgICAgKSwKICAgICAgICAgIChIQ29tcEVsZW1lbnQucHJvdG90eXBlLl9jcmVhdGVCYXNlQ29udGFpbmVyRWxlbWVudHMgPQogICAgICAgICAgICBIQ29tcEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRhaW5lckVsZW1lbnRzKSwKICAgICAgICAgIChIQ29tcEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUNvbnRhaW5lckVsZW1lbnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICB0aGlzLl9jcmVhdGVCYXNlQ29udGFpbmVyRWxlbWVudHMoKSwKICAgICAgICAgICAgICB0aGlzLmRhdGEuaGFzTWFzawogICAgICAgICAgICAgICAgPyAodGhpcy5zdmdFbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLmRhdGEudyksCiAgICAgICAgICAgICAgICAgIHRoaXMuc3ZnRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIHRoaXMuZGF0YS5oKSwKICAgICAgICAgICAgICAgICAgKHRoaXMudHJhbnNmb3JtZWRFbGVtZW50ID0gdGhpcy5iYXNlRWxlbWVudCkpCiAgICAgICAgICAgICAgICA6ICh0aGlzLnRyYW5zZm9ybWVkRWxlbWVudCA9IHRoaXMubGF5ZXJFbGVtZW50KTsKICAgICAgICAgIH0pLAogICAgICAgICAgKEhDb21wRWxlbWVudC5wcm90b3R5cGUuYWRkVG8zZENvbnRhaW5lciA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIGZvciAodmFyIHIsIG4gPSAwOyBuIDwgdDsgKQogICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbbl0gJiYKICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNbbl0uZ2V0QmFzZUVsZW1lbnQgJiYKICAgICAgICAgICAgICAgIChyID0gdGhpcy5lbGVtZW50c1tuXS5nZXRCYXNlRWxlbWVudCgpKSwKICAgICAgICAgICAgICAgIChuICs9IDEpOwogICAgICAgICAgICByCiAgICAgICAgICAgICAgPyB0aGlzLmxheWVyRWxlbWVudC5pbnNlcnRCZWZvcmUoZSwgcikKICAgICAgICAgICAgICA6IHRoaXMubGF5ZXJFbGVtZW50LmFwcGVuZENoaWxkKGUpOwogICAgICAgICAgfSksCiAgICAgICAgICAoSENvbXBFbGVtZW50LnByb3RvdHlwZS5jcmVhdGVDb21wID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VwcG9ydHMzZAogICAgICAgICAgICAgID8gbmV3IEhDb21wRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpCiAgICAgICAgICAgICAgOiBuZXcgU1ZHQ29tcEVsZW1lbnQoZSwgdGhpcy5nbG9iYWxEYXRhLCB0aGlzKTsKICAgICAgICAgIH0pLAogICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtIeWJyaWRSZW5kZXJlckJhc2VdLCBIeWJyaWRSZW5kZXJlciksCiAgICAgICAgICAoSHlicmlkUmVuZGVyZXIucHJvdG90eXBlLmNyZWF0ZUNvbXAgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zdXBwb3J0czNkCiAgICAgICAgICAgICAgPyBuZXcgSENvbXBFbGVtZW50KGUsIHRoaXMuZ2xvYmFsRGF0YSwgdGhpcykKICAgICAgICAgICAgICA6IG5ldyBTVkdDb21wRWxlbWVudChlLCB0aGlzLmdsb2JhbERhdGEsIHRoaXMpOwogICAgICAgICAgfSk7CiAgICAgICAgdmFyIENvbXBFeHByZXNzaW9uSW50ZXJmYWNlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIGZ1bmN0aW9uIHQocikgewogICAgICAgICAgICBmb3IgKHZhciBuID0gMCwgaSA9IGUubGF5ZXJzLmxlbmd0aDsgbiA8IGk7ICkgewogICAgICAgICAgICAgIGlmIChlLmxheWVyc1tuXS5ubSA9PT0gciB8fCBlLmxheWVyc1tuXS5pbmQgPT09IHIpCiAgICAgICAgICAgICAgICByZXR1cm4gZS5lbGVtZW50c1tuXS5sYXllckludGVyZmFjZTsKICAgICAgICAgICAgICBuICs9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgIl9uYW1lIiwgeyB2YWx1ZTogZS5kYXRhLm5tIH0pLAogICAgICAgICAgICAodC5sYXllciA9IHQpLAogICAgICAgICAgICAodC5waXhlbEFzcGVjdCA9IDEpLAogICAgICAgICAgICAodC5oZWlnaHQgPSBlLmRhdGEuaCB8fCBlLmdsb2JhbERhdGEuY29tcFNpemUuaCksCiAgICAgICAgICAgICh0LndpZHRoID0gZS5kYXRhLncgfHwgZS5nbG9iYWxEYXRhLmNvbXBTaXplLncpLAogICAgICAgICAgICAodC5waXhlbEFzcGVjdCA9IDEpLAogICAgICAgICAgICAodC5mcmFtZUR1cmF0aW9uID0gMSAvIGUuZ2xvYmFsRGF0YS5mcmFtZVJhdGUpLAogICAgICAgICAgICAodC5kaXNwbGF5U3RhcnRUaW1lID0gMCksCiAgICAgICAgICAgICh0Lm51bUxheWVycyA9IGUubGF5ZXJzLmxlbmd0aCksCiAgICAgICAgICAgIHQKICAgICAgICAgICk7CiAgICAgICAgfTsKICAgICAgICBmdW5jdGlvbiBfdHlwZW9mJDIoZSkgewogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgKF90eXBlb2YkMiA9CiAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdCAmJgogICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgICAgICB0LmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYKICAgICAgICAgICAgICAgICAgICAgIHQgIT09IFN5bWJvbC5wcm90b3R5cGUKICAgICAgICAgICAgICAgICAgICAgID8gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgICAgIDogdHlwZW9mIHQ7CiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICBfdHlwZW9mJDIoZSkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNlZWRSYW5kb20oZSwgdCkgewogICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgIG4gPSB0aGlzLAogICAgICAgICAgICBpID0gMjU2LAogICAgICAgICAgICBhID0gdC5wb3coaSwgNiksCiAgICAgICAgICAgIG8gPSB0LnBvdygyLCA1MiksCiAgICAgICAgICAgIHMgPSAyICogbywKICAgICAgICAgICAgYyA9IDI1NTsKICAgICAgICAgIGZ1bmN0aW9uIHUobSkgewogICAgICAgICAgICB2YXIgdiwKICAgICAgICAgICAgICB5ID0gbS5sZW5ndGgsCiAgICAgICAgICAgICAgZyA9IHRoaXMsCiAgICAgICAgICAgICAgTSA9IDAsCiAgICAgICAgICAgICAgQSA9IChnLmkgPSBnLmogPSAwKSwKICAgICAgICAgICAgICBfID0gKGcuUyA9IFtdKTsKICAgICAgICAgICAgZm9yICh5IHx8IChtID0gW3krK10pOyBNIDwgaTsgKSBfW01dID0gTSsrOwogICAgICAgICAgICBmb3IgKE0gPSAwOyBNIDwgaTsgTSsrKQogICAgICAgICAgICAgIChfW01dID0gX1soQSA9IGMgJiAoQSArIG1bTSAlIHldICsgKHYgPSBfW01dKSkpXSksIChfW0FdID0gdik7CiAgICAgICAgICAgIGcuZyA9IGZ1bmN0aW9uIChDKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgUiwgTCA9IDAsIE4gPSBnLmksIFcgPSBnLmosIGsgPSBnLlM7IEMtLTsgKQogICAgICAgICAgICAgICAgKFIgPSBrWyhOID0gYyAmIChOICsgMSkpXSksCiAgICAgICAgICAgICAgICAgIChMID0KICAgICAgICAgICAgICAgICAgICBMICogaSArCiAgICAgICAgICAgICAgICAgICAga1tjICYgKChrW05dID0ga1soVyA9IGMgJiAoVyArIFIpKV0pICsgKGtbV10gPSBSKSldKTsKICAgICAgICAgICAgICByZXR1cm4gKGcuaSA9IE4pLCAoZy5qID0gVyksIEw7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBsKG0sIHYpIHsKICAgICAgICAgICAgcmV0dXJuICh2LmkgPSBtLmkpLCAodi5qID0gbS5qKSwgKHYuUyA9IG0uUy5zbGljZSgpKSwgdjsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIHAobSwgdikgewogICAgICAgICAgICB2YXIgeSwKICAgICAgICAgICAgICBnID0gW10sCiAgICAgICAgICAgICAgTSA9IF90eXBlb2YkMihtKTsKICAgICAgICAgICAgaWYgKHYgJiYgTSA9PSAib2JqZWN0IikKICAgICAgICAgICAgICBmb3IgKHkgaW4gbSkKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgIGcucHVzaChwKG1beV0sIHYgLSAxKSk7CiAgICAgICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgICAgIHJldHVybiBnLmxlbmd0aCA/IGcgOiBNID09ICJzdHJpbmciID8gbSA6IG0gKyAiXDAiOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gZChtLCB2KSB7CiAgICAgICAgICAgIGZvciAodmFyIHksIGcgPSBtICsgIiIsIE0gPSAwOyBNIDwgZy5sZW5ndGg7ICkKICAgICAgICAgICAgICB2W2MgJiBNXSA9IGMgJiAoKHkgXj0gMTkgKiB2W2MgJiBNXSkgKyBnLmNoYXJDb2RlQXQoTSsrKSk7CiAgICAgICAgICAgIHJldHVybiBoKHYpOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gaChtKSB7CiAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KDAsIG0pOwogICAgICAgICAgfQogICAgICAgICAgKHQuc2VlZHJhbmRvbSA9IGZ1bmN0aW9uIChtLCB2LCB5KSB7CiAgICAgICAgICAgIHZhciBnID0gW10sCiAgICAgICAgICAgICAgTSA9IGQoCiAgICAgICAgICAgICAgICBwKAogICAgICAgICAgICAgICAgICAodiA9IHYgPT09ICEwID8geyBlbnRyb3B5OiAhMCB9IDogdiB8fCB7fSkuZW50cm9weQogICAgICAgICAgICAgICAgICAgID8gW20sIGgoZSldCiAgICAgICAgICAgICAgICAgICAgOiBtID09PSBudWxsCiAgICAgICAgICAgICAgICAgICAgPyAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBDID0gbmV3IFVpbnQ4QXJyYXkoaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuLmNyeXB0byB8fCBuLm1zQ3J5cHRvKS5nZXRSYW5kb21WYWx1ZXMoQyksIGgoQykKICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgUiA9IG4ubmF2aWdhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTCA9IFIgJiYgUi5wbHVnaW5zOwogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbK25ldyBEYXRlKCksIG4sIEwsIG4uc2NyZWVuLCBoKGUpXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgfSkoKQogICAgICAgICAgICAgICAgICAgIDogbSwKICAgICAgICAgICAgICAgICAgMwogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIGcKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIEEgPSBuZXcgdShnKSwKICAgICAgICAgICAgICBfID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgZm9yICh2YXIgQyA9IEEuZyg2KSwgUiA9IGEsIEwgPSAwOyBDIDwgbzsgKQogICAgICAgICAgICAgICAgICAoQyA9IChDICsgTCkgKiBpKSwgKFIgKj0gaSksIChMID0gQS5nKDEpKTsKICAgICAgICAgICAgICAgIGZvciAoOyBDID49IHM7ICkgKEMgLz0gMiksIChSIC89IDIpLCAoTCA+Pj49IDEpOwogICAgICAgICAgICAgICAgcmV0dXJuIChDICsgTCkgLyBSOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgKF8uaW50MzIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMCB8IEEuZyg0KTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAoXy5xdWljayA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBBLmcoNCkgLyA0Mjk0OTY3Mjk2OwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChfLmRvdWJsZSA9IF8pLAogICAgICAgICAgICAgIGQoaChBLlMpLCBlKSwKICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICB2LnBhc3MgfHwKICAgICAgICAgICAgICAgIHkgfHwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChDLCBSLCBMLCBOKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgTiAmJgogICAgICAgICAgICAgICAgICAgICAgKE4uUyAmJiBsKE4sIEEpLAogICAgICAgICAgICAgICAgICAgICAgKEMuc3RhdGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsKEEsIHt9KTsKICAgICAgICAgICAgICAgICAgICAgIH0pKSwKICAgICAgICAgICAgICAgICAgICBMID8gKCh0LnJhbmRvbSA9IEMpLCBSKSA6IEMKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICApKF8sIE0sICJnbG9iYWwiIGluIHYgPyB2Lmdsb2JhbCA6IHRoaXMgPT0gdCwgdi5zdGF0ZSkKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pLAogICAgICAgICAgICBkKHQucmFuZG9tKCksIGUpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBpbml0aWFsaXplJDIoZSkgewogICAgICAgICAgc2VlZFJhbmRvbShbXSwgZSk7CiAgICAgICAgfQogICAgICAgIHZhciBwcm9wVHlwZXMgPSB7IFNIQVBFOiAic2hhcGUiIH07CiAgICAgICAgZnVuY3Rpb24gX3R5cGVvZiQxKGUpIHsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgIChfdHlwZW9mJDEgPQogICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09ICJzeW1ib2wiCiAgICAgICAgICAgICAgICA/IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB0OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICA6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHQgJiYKICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBTeW1ib2wgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgICAgICAgICAgICAgICAgdC5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgICAgICAgICB0ICE9PSBTeW1ib2wucHJvdG90eXBlCiAgICAgICAgICAgICAgICAgICAgICA/ICJzeW1ib2wiCiAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiB0OwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgX3R5cGVvZiQxKGUpCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICB2YXIgRXhwcmVzc2lvbk1hbmFnZXIgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgb2IgPSB7fSwKICAgICAgICAgICAgICBNYXRoID0gQk1NYXRoLAogICAgICAgICAgICAgIHdpbmRvdyA9IG51bGwsCiAgICAgICAgICAgICAgZG9jdW1lbnQgPSBudWxsLAogICAgICAgICAgICAgIFhNTEh0dHBSZXF1ZXN0ID0gbnVsbCwKICAgICAgICAgICAgICBmZXRjaCA9IG51bGwsCiAgICAgICAgICAgICAgZnJhbWVzID0gbnVsbCwKICAgICAgICAgICAgICBfbG90dGllR2xvYmFsID0ge307CiAgICAgICAgICAgIGZ1bmN0aW9uIHJlc2V0RnJhbWUoKSB7CiAgICAgICAgICAgICAgX2xvdHRpZUdsb2JhbCA9IHt9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uICRibV9pc0luc3RhbmNlT2ZBcnJheShlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGUuY29uc3RydWN0b3IgPT09IEFycmF5IHx8IGUuY29uc3RydWN0b3IgPT09IEZsb2F0MzJBcnJheTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBpc051bWVyYWJsZShlLCB0KSB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIGUgPT09ICJudW1iZXIiIHx8CiAgICAgICAgICAgICAgICB0IGluc3RhbmNlb2YgTnVtYmVyIHx8CiAgICAgICAgICAgICAgICBlID09PSAiYm9vbGVhbiIgfHwKICAgICAgICAgICAgICAgIGUgPT09ICJzdHJpbmciCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiAkYm1fbmVnKGUpIHsKICAgICAgICAgICAgICB2YXIgdCA9IF90eXBlb2YkMShlKTsKICAgICAgICAgICAgICBpZiAodCA9PT0gIm51bWJlciIgfHwgZSBpbnN0YW5jZW9mIE51bWJlciB8fCB0ID09PSAiYm9vbGVhbiIpCiAgICAgICAgICAgICAgICByZXR1cm4gLWU7CiAgICAgICAgICAgICAgaWYgKCRibV9pc0luc3RhbmNlT2ZBcnJheShlKSkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSBlLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgaSA9IFtdOwogICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgaVtyXSA9IC1lW3JdOwogICAgICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBlLnByb3BUeXBlID8gZS52IDogLWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaW5pdGlhbGl6ZSQyKEJNTWF0aCk7CiAgICAgICAgICAgIHZhciBlYXNlSW5CZXogPSBCZXppZXJGYWN0b3J5LmdldEJlemllckVhc2luZygKICAgICAgICAgICAgICAgIDAuMzMzLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAuODMzLAogICAgICAgICAgICAgICAgMC44MzMsCiAgICAgICAgICAgICAgICAiZWFzZUluIgogICAgICAgICAgICAgICkuZ2V0LAogICAgICAgICAgICAgIGVhc2VPdXRCZXogPSBCZXppZXJGYWN0b3J5LmdldEJlemllckVhc2luZygKICAgICAgICAgICAgICAgIDAuMTY3LAogICAgICAgICAgICAgICAgMC4xNjcsCiAgICAgICAgICAgICAgICAwLjY2NywKICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAiZWFzZU91dCIKICAgICAgICAgICAgICApLmdldCwKICAgICAgICAgICAgICBlYXNlSW5PdXRCZXogPSBCZXppZXJGYWN0b3J5LmdldEJlemllckVhc2luZygKICAgICAgICAgICAgICAgIDAuMzMsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgMC42NjcsCiAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgImVhc2VJbk91dCIKICAgICAgICAgICAgICApLmdldDsKICAgICAgICAgICAgZnVuY3Rpb24gc3VtKGUsIHQpIHsKICAgICAgICAgICAgICB2YXIgciA9IF90eXBlb2YkMShlKSwKICAgICAgICAgICAgICAgIG4gPSBfdHlwZW9mJDEodCk7CiAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgKGlzTnVtZXJhYmxlKHIsIGUpICYmIGlzTnVtZXJhYmxlKG4sIHQpKSB8fAogICAgICAgICAgICAgICAgciA9PT0gInN0cmluZyIgfHwKICAgICAgICAgICAgICAgIG4gPT09ICJzdHJpbmciCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgcmV0dXJuIGUgKyB0OwogICAgICAgICAgICAgIGlmICgkYm1faXNJbnN0YW5jZU9mQXJyYXkoZSkgJiYgaXNOdW1lcmFibGUobiwgdCkpCiAgICAgICAgICAgICAgICByZXR1cm4gKChlID0gZS5zbGljZSgwKSlbMF0gKz0gdCksIGU7CiAgICAgICAgICAgICAgaWYgKGlzTnVtZXJhYmxlKHIsIGUpICYmICRibV9pc0luc3RhbmNlT2ZBcnJheSh0KSkKICAgICAgICAgICAgICAgIHJldHVybiAoKHQgPSB0LnNsaWNlKDApKVswXSA9IGUgKyB0WzBdKSwgdDsKICAgICAgICAgICAgICBpZiAoJGJtX2lzSW5zdGFuY2VPZkFycmF5KGUpICYmICRibV9pc0luc3RhbmNlT2ZBcnJheSh0KSkgewogICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgdmFyIGkgPSAwLCBhID0gZS5sZW5ndGgsIG8gPSB0Lmxlbmd0aCwgcyA9IFtdOwogICAgICAgICAgICAgICAgICBpIDwgYSB8fCBpIDwgbzsKCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICh0eXBlb2YgZVtpXSA9PSAibnVtYmVyIiB8fCBlW2ldIGluc3RhbmNlb2YgTnVtYmVyKSAmJgogICAgICAgICAgICAgICAgICAodHlwZW9mIHRbaV0gPT0gIm51bWJlciIgfHwgdFtpXSBpbnN0YW5jZW9mIE51bWJlcikKICAgICAgICAgICAgICAgICAgICA/IChzW2ldID0gZVtpXSArIHRbaV0pCiAgICAgICAgICAgICAgICAgICAgOiAoc1tpXSA9IHRbaV0gPT09IHZvaWQgMCA/IGVbaV0gOiBlW2ldIHx8IHRbaV0pLAogICAgICAgICAgICAgICAgICAgIChpICs9IDEpOwogICAgICAgICAgICAgICAgcmV0dXJuIHM7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBhZGQgPSBzdW07CiAgICAgICAgICAgIGZ1bmN0aW9uIHN1YihlLCB0KSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBfdHlwZW9mJDEoZSksCiAgICAgICAgICAgICAgICBuID0gX3R5cGVvZiQxKHQpOwogICAgICAgICAgICAgIGlmIChpc051bWVyYWJsZShyLCBlKSAmJiBpc051bWVyYWJsZShuLCB0KSkKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgIHIgPT09ICJzdHJpbmciICYmIChlID0gcGFyc2VJbnQoZSwgMTApKSwKICAgICAgICAgICAgICAgICAgbiA9PT0gInN0cmluZyIgJiYgKHQgPSBwYXJzZUludCh0LCAxMCkpLAogICAgICAgICAgICAgICAgICBlIC0gdAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICBpZiAoJGJtX2lzSW5zdGFuY2VPZkFycmF5KGUpICYmIGlzTnVtZXJhYmxlKG4sIHQpKQogICAgICAgICAgICAgICAgcmV0dXJuICgoZSA9IGUuc2xpY2UoMCkpWzBdIC09IHQpLCBlOwogICAgICAgICAgICAgIGlmIChpc051bWVyYWJsZShyLCBlKSAmJiAkYm1faXNJbnN0YW5jZU9mQXJyYXkodCkpCiAgICAgICAgICAgICAgICByZXR1cm4gKCh0ID0gdC5zbGljZSgwKSlbMF0gPSBlIC0gdFswXSksIHQ7CiAgICAgICAgICAgICAgaWYgKCRibV9pc0luc3RhbmNlT2ZBcnJheShlKSAmJiAkYm1faXNJbnN0YW5jZU9mQXJyYXkodCkpIHsKICAgICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICAgIHZhciBpID0gMCwgYSA9IGUubGVuZ3RoLCBvID0gdC5sZW5ndGgsIHMgPSBbXTsKICAgICAgICAgICAgICAgICAgaSA8IGEgfHwgaSA8IG87CgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAodHlwZW9mIGVbaV0gPT0gIm51bWJlciIgfHwgZVtpXSBpbnN0YW5jZW9mIE51bWJlcikgJiYKICAgICAgICAgICAgICAgICAgKHR5cGVvZiB0W2ldID09ICJudW1iZXIiIHx8IHRbaV0gaW5zdGFuY2VvZiBOdW1iZXIpCiAgICAgICAgICAgICAgICAgICAgPyAoc1tpXSA9IGVbaV0gLSB0W2ldKQogICAgICAgICAgICAgICAgICAgIDogKHNbaV0gPSB0W2ldID09PSB2b2lkIDAgPyBlW2ldIDogZVtpXSB8fCB0W2ldKSwKICAgICAgICAgICAgICAgICAgICAoaSArPSAxKTsKICAgICAgICAgICAgICAgIHJldHVybiBzOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBtdWwoZSwgdCkgewogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhID0gX3R5cGVvZiQxKGUpLAogICAgICAgICAgICAgICAgbyA9IF90eXBlb2YkMSh0KTsKICAgICAgICAgICAgICBpZiAoaXNOdW1lcmFibGUoYSwgZSkgJiYgaXNOdW1lcmFibGUobywgdCkpIHJldHVybiBlICogdDsKICAgICAgICAgICAgICBpZiAoJGJtX2lzSW5zdGFuY2VPZkFycmF5KGUpICYmIGlzTnVtZXJhYmxlKG8sIHQpKSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICBpID0gZS5sZW5ndGgsIHIgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgaSksIG4gPSAwOwogICAgICAgICAgICAgICAgICBuIDwgaTsKICAgICAgICAgICAgICAgICAgbiArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHJbbl0gPSBlW25dICogdDsKICAgICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoaXNOdW1lcmFibGUoYSwgZSkgJiYgJGJtX2lzSW5zdGFuY2VPZkFycmF5KHQpKSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICBpID0gdC5sZW5ndGgsIHIgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgaSksIG4gPSAwOwogICAgICAgICAgICAgICAgICBuIDwgaTsKICAgICAgICAgICAgICAgICAgbiArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHJbbl0gPSBlICogdFtuXTsKICAgICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBkaXYoZSwgdCkgewogICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgIGksCiAgICAgICAgICAgICAgICBhID0gX3R5cGVvZiQxKGUpLAogICAgICAgICAgICAgICAgbyA9IF90eXBlb2YkMSh0KTsKICAgICAgICAgICAgICBpZiAoaXNOdW1lcmFibGUoYSwgZSkgJiYgaXNOdW1lcmFibGUobywgdCkpIHJldHVybiBlIC8gdDsKICAgICAgICAgICAgICBpZiAoJGJtX2lzSW5zdGFuY2VPZkFycmF5KGUpICYmIGlzTnVtZXJhYmxlKG8sIHQpKSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICBpID0gZS5sZW5ndGgsIHIgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgaSksIG4gPSAwOwogICAgICAgICAgICAgICAgICBuIDwgaTsKICAgICAgICAgICAgICAgICAgbiArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHJbbl0gPSBlW25dIC8gdDsKICAgICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoaXNOdW1lcmFibGUoYSwgZSkgJiYgJGJtX2lzSW5zdGFuY2VPZkFycmF5KHQpKSB7CiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICBpID0gdC5sZW5ndGgsIHIgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgaSksIG4gPSAwOwogICAgICAgICAgICAgICAgICBuIDwgaTsKICAgICAgICAgICAgICAgICAgbiArPSAxCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHJbbl0gPSBlIC8gdFtuXTsKICAgICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBtb2QoZSwgdCkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICB0eXBlb2YgZSA9PSAic3RyaW5nIiAmJiAoZSA9IHBhcnNlSW50KGUsIDEwKSksCiAgICAgICAgICAgICAgICB0eXBlb2YgdCA9PSAic3RyaW5nIiAmJiAodCA9IHBhcnNlSW50KHQsIDEwKSksCiAgICAgICAgICAgICAgICBlICUgdAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyICRibV9zdW0gPSBzdW0sCiAgICAgICAgICAgICAgJGJtX3N1YiA9IHN1YiwKICAgICAgICAgICAgICAkYm1fbXVsID0gbXVsLAogICAgICAgICAgICAgICRibV9kaXYgPSBkaXYsCiAgICAgICAgICAgICAgJGJtX21vZCA9IG1vZDsKICAgICAgICAgICAgZnVuY3Rpb24gY2xhbXAoZSwgdCwgcikgewogICAgICAgICAgICAgIGlmICh0ID4gcikgewogICAgICAgICAgICAgICAgdmFyIG4gPSByOwogICAgICAgICAgICAgICAgKHIgPSB0KSwgKHQgPSBuKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGUsIHQpLCByKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiByYWRpYW5zVG9EZWdyZWVzKGUpIHsKICAgICAgICAgICAgICByZXR1cm4gZSAvIGRlZ1RvUmFkczsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgcmFkaWFuc190b19kZWdyZWVzID0gcmFkaWFuc1RvRGVncmVlczsKICAgICAgICAgICAgZnVuY3Rpb24gZGVncmVlc1RvUmFkaWFucyhlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGUgKiBkZWdUb1JhZHM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGRlZ3JlZXNfdG9fcmFkaWFucyA9IHJhZGlhbnNUb0RlZ3JlZXMsCiAgICAgICAgICAgICAgaGVscGVyTGVuZ3RoQXJyYXkgPSBbMCwgMCwgMCwgMCwgMCwgMF07CiAgICAgICAgICAgIGZ1bmN0aW9uIGxlbmd0aChlLCB0KSB7CiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBlID09ICJudW1iZXIiIHx8IGUgaW5zdGFuY2VvZiBOdW1iZXIpCiAgICAgICAgICAgICAgICByZXR1cm4gKHQgPSB0IHx8IDApLCBNYXRoLmFicyhlIC0gdCk7CiAgICAgICAgICAgICAgdmFyIHI7CiAgICAgICAgICAgICAgdCB8fCAodCA9IGhlbHBlckxlbmd0aEFycmF5KTsKICAgICAgICAgICAgICB2YXIgbiA9IE1hdGgubWluKGUubGVuZ3RoLCB0Lmxlbmd0aCksCiAgICAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAxKSBpICs9IE1hdGgucG93KHRbcl0gLSBlW3JdLCAyKTsKICAgICAgICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KGkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShlKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGRpdihlLCBsZW5ndGgoZSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHJnYlRvSHNsKGUpIHsKICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICBuID0gZVswXSwKICAgICAgICAgICAgICAgIGkgPSBlWzFdLAogICAgICAgICAgICAgICAgYSA9IGVbMl0sCiAgICAgICAgICAgICAgICBvID0gTWF0aC5tYXgobiwgaSwgYSksCiAgICAgICAgICAgICAgICBzID0gTWF0aC5taW4obiwgaSwgYSksCiAgICAgICAgICAgICAgICBjID0gKG8gKyBzKSAvIDI7CiAgICAgICAgICAgICAgaWYgKG8gPT09IHMpICh0ID0gMCksIChyID0gMCk7CiAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgdSA9IG8gLSBzOwogICAgICAgICAgICAgICAgc3dpdGNoICgoKHIgPSBjID4gMC41ID8gdSAvICgyIC0gbyAtIHMpIDogdSAvIChvICsgcykpLCBvKSkgewogICAgICAgICAgICAgICAgICBjYXNlIG46CiAgICAgICAgICAgICAgICAgICAgdCA9IChpIC0gYSkgLyB1ICsgKGkgPCBhID8gNiA6IDApOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICBjYXNlIGk6CiAgICAgICAgICAgICAgICAgICAgdCA9IChhIC0gbikgLyB1ICsgMjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgY2FzZSBhOgogICAgICAgICAgICAgICAgICAgIHQgPSAobiAtIGkpIC8gdSArIDQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0IC89IDY7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBbdCwgciwgYywgZVszXV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gaHVlMnJnYihlLCB0LCByKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHIgPCAwICYmIChyICs9IDEpLAogICAgICAgICAgICAgICAgciA+IDEgJiYgKHIgLT0gMSksCiAgICAgICAgICAgICAgICByIDwgMSAvIDYKICAgICAgICAgICAgICAgICAgPyBlICsgNiAqICh0IC0gZSkgKiByCiAgICAgICAgICAgICAgICAgIDogciA8IDAuNQogICAgICAgICAgICAgICAgICA/IHQKICAgICAgICAgICAgICAgICAgOiByIDwgMiAvIDMKICAgICAgICAgICAgICAgICAgPyBlICsgKHQgLSBlKSAqICgyIC8gMyAtIHIpICogNgogICAgICAgICAgICAgICAgICA6IGUKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGhzbFRvUmdiKGUpIHsKICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgICAgaSA9IGVbMF0sCiAgICAgICAgICAgICAgICBhID0gZVsxXSwKICAgICAgICAgICAgICAgIG8gPSBlWzJdOwogICAgICAgICAgICAgIGlmIChhID09PSAwKSAodCA9IG8pLCAobiA9IG8pLCAociA9IG8pOwogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIHMgPSBvIDwgMC41ID8gbyAqICgxICsgYSkgOiBvICsgYSAtIG8gKiBhLAogICAgICAgICAgICAgICAgICBjID0gMiAqIG8gLSBzOwogICAgICAgICAgICAgICAgKHQgPSBodWUycmdiKGMsIHMsIGkgKyAxIC8gMykpLAogICAgICAgICAgICAgICAgICAociA9IGh1ZTJyZ2IoYywgcywgaSkpLAogICAgICAgICAgICAgICAgICAobiA9IGh1ZTJyZ2IoYywgcywgaSAtIDEgLyAzKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBbdCwgciwgbiwgZVszXV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gbGluZWFyKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoKG4gIT09IHZvaWQgMCAmJiBpICE9PSB2b2lkIDApIHx8CiAgICAgICAgICAgICAgICAgICgobiA9IHQpLCAoaSA9IHIpLCAodCA9IDApLCAociA9IDEpKSwKICAgICAgICAgICAgICAgIHIgPCB0KQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgdmFyIGEgPSByOwogICAgICAgICAgICAgICAgKHIgPSB0KSwgKHQgPSBhKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGUgPD0gdCkgcmV0dXJuIG47CiAgICAgICAgICAgICAgaWYgKGUgPj0gcikgcmV0dXJuIGk7CiAgICAgICAgICAgICAgdmFyIG8sCiAgICAgICAgICAgICAgICBzID0gciA9PT0gdCA/IDAgOiAoZSAtIHQpIC8gKHIgLSB0KTsKICAgICAgICAgICAgICBpZiAoIW4ubGVuZ3RoKSByZXR1cm4gbiArIChpIC0gbikgKiBzOwogICAgICAgICAgICAgIHZhciBjID0gbi5sZW5ndGgsCiAgICAgICAgICAgICAgICB1ID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIGMpOwogICAgICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBjOyBvICs9IDEpIHVbb10gPSBuW29dICsgKGlbb10gLSBuW29dKSAqIHM7CiAgICAgICAgICAgICAgcmV0dXJuIHU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcmFuZG9tKGUsIHQpIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAodCA9PT0gdm9pZCAwICYmCiAgICAgICAgICAgICAgICAgIChlID09PSB2b2lkIDAgPyAoKGUgPSAwKSwgKHQgPSAxKSkgOiAoKHQgPSBlKSwgKGUgPSB2b2lkIDApKSksCiAgICAgICAgICAgICAgICB0Lmxlbmd0aCkKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciByLAogICAgICAgICAgICAgICAgICBuID0gdC5sZW5ndGg7CiAgICAgICAgICAgICAgICBlIHx8IChlID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIG4pKTsKICAgICAgICAgICAgICAgIHZhciBpID0gY3JlYXRlVHlwZWRBcnJheSgiZmxvYXQzMiIsIG4pLAogICAgICAgICAgICAgICAgICBhID0gQk1NYXRoLnJhbmRvbSgpOwogICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IG47IHIgKz0gMSkgaVtyXSA9IGVbcl0gKyBhICogKHRbcl0gLSBlW3JdKTsKICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZSA9PT0gdm9pZCAwICYmIChlID0gMCksIGUgKyBCTU1hdGgucmFuZG9tKCkgKiAodCAtIGUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVBhdGgoZSwgdCwgciwgbikgewogICAgICAgICAgICAgIHZhciBpLAogICAgICAgICAgICAgICAgYSA9IGUubGVuZ3RoLAogICAgICAgICAgICAgICAgbyA9IHNoYXBlUG9vbC5uZXdFbGVtZW50KCk7CiAgICAgICAgICAgICAgby5zZXRQYXRoRGF0YSghIW4sIGEpOwogICAgICAgICAgICAgIHZhciBzLAogICAgICAgICAgICAgICAgYywKICAgICAgICAgICAgICAgIHUgPSBbMCwgMF07CiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGE7IGkgKz0gMSkKICAgICAgICAgICAgICAgIChzID0gdCAmJiB0W2ldID8gdFtpXSA6IHUpLAogICAgICAgICAgICAgICAgICAoYyA9IHIgJiYgcltpXSA/IHJbaV0gOiB1KSwKICAgICAgICAgICAgICAgICAgby5zZXRUcmlwbGVBdCgKICAgICAgICAgICAgICAgICAgICBlW2ldWzBdLAogICAgICAgICAgICAgICAgICAgIGVbaV1bMV0sCiAgICAgICAgICAgICAgICAgICAgY1swXSArIGVbaV1bMF0sCiAgICAgICAgICAgICAgICAgICAgY1sxXSArIGVbaV1bMV0sCiAgICAgICAgICAgICAgICAgICAgc1swXSArIGVbaV1bMF0sCiAgICAgICAgICAgICAgICAgICAgc1sxXSArIGVbaV1bMV0sCiAgICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgICAhMAogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGluaXRpYXRlRXhwcmVzc2lvbihlbGVtLCBkYXRhLCBwcm9wZXJ0eSkgewogICAgICAgICAgICAgIGZ1bmN0aW9uIG5vT3AoZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICghZWxlbS5nbG9iYWxEYXRhLnJlbmRlckNvbmZpZy5ydW5FeHByZXNzaW9ucykgcmV0dXJuIG5vT3A7CiAgICAgICAgICAgICAgdmFyIHZhbCA9IGRhdGEueCwKICAgICAgICAgICAgICAgIG5lZWRzVmVsb2NpdHkgPSAvdmVsb2NpdHkoPyFbXHdcZF0pLy50ZXN0KHZhbCksCiAgICAgICAgICAgICAgICBfbmVlZHNSYW5kb20gPSB2YWwuaW5kZXhPZigicmFuZG9tIikgIT09IC0xLAogICAgICAgICAgICAgICAgZWxlbVR5cGUgPSBlbGVtLmRhdGEudHksCiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0sCiAgICAgICAgICAgICAgICAkYm1fdHJhbnNmb3JtLAogICAgICAgICAgICAgICAgY29udGVudCwKICAgICAgICAgICAgICAgIGVmZmVjdCwKICAgICAgICAgICAgICAgIHRoaXNQcm9wZXJ0eSA9IHByb3BlcnR5OwogICAgICAgICAgICAgICh0aGlzUHJvcGVydHkudmFsdWVBdFRpbWUgPSB0aGlzUHJvcGVydHkuZ2V0VmFsdWVBdFRpbWUpLAogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXNQcm9wZXJ0eSwgInZhbHVlIiwgewogICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1Byb3BlcnR5LnY7CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIChlbGVtLmNvbXAuZnJhbWVEdXJhdGlvbiA9IDEgLyBlbGVtLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUpLAogICAgICAgICAgICAgICAgKGVsZW0uY29tcC5kaXNwbGF5U3RhcnRUaW1lID0gMCk7CiAgICAgICAgICAgICAgdmFyIGluUG9pbnQgPSBlbGVtLmRhdGEuaXAgLyBlbGVtLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUsCiAgICAgICAgICAgICAgICBvdXRQb2ludCA9IGVsZW0uZGF0YS5vcCAvIGVsZW0uY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSwKICAgICAgICAgICAgICAgIHdpZHRoID0gZWxlbS5kYXRhLnN3ID8gZWxlbS5kYXRhLnN3IDogMCwKICAgICAgICAgICAgICAgIGhlaWdodCA9IGVsZW0uZGF0YS5zaCA/IGVsZW0uZGF0YS5zaCA6IDAsCiAgICAgICAgICAgICAgICBuYW1lID0gZWxlbS5kYXRhLm5tLAogICAgICAgICAgICAgICAgbG9vcEluLAogICAgICAgICAgICAgICAgbG9vcF9pbiwKICAgICAgICAgICAgICAgIGxvb3BPdXQsCiAgICAgICAgICAgICAgICBsb29wX291dCwKICAgICAgICAgICAgICAgIHNtb290aCwKICAgICAgICAgICAgICAgIHRvV29ybGQsCiAgICAgICAgICAgICAgICBmcm9tV29ybGQsCiAgICAgICAgICAgICAgICBmcm9tQ29tcCwKICAgICAgICAgICAgICAgIHRvQ29tcCwKICAgICAgICAgICAgICAgIGZyb21Db21wVG9TdXJmYWNlLAogICAgICAgICAgICAgICAgcG9zaXRpb24sCiAgICAgICAgICAgICAgICByb3RhdGlvbiwKICAgICAgICAgICAgICAgIGFuY2hvclBvaW50LAogICAgICAgICAgICAgICAgc2NhbGUsCiAgICAgICAgICAgICAgICB0aGlzTGF5ZXIsCiAgICAgICAgICAgICAgICB0aGlzQ29tcCwKICAgICAgICAgICAgICAgIG1hc2ssCiAgICAgICAgICAgICAgICB2YWx1ZUF0VGltZSwKICAgICAgICAgICAgICAgIHZlbG9jaXR5QXRUaW1lLAogICAgICAgICAgICAgICAgc2NvcGVkX2JtX3J0LAogICAgICAgICAgICAgICAgZXhwcmVzc2lvbl9mdW5jdGlvbiA9IGV2YWwoCiAgICAgICAgICAgICAgICAgICJbZnVuY3Rpb24gX2V4cHJlc3Npb25fZnVuY3Rpb24oKXsiICsKICAgICAgICAgICAgICAgICAgICB2YWwgKwogICAgICAgICAgICAgICAgICAgICI7c2NvcGVkX2JtX3J0PSRibV9ydH1dIgogICAgICAgICAgICAgICAgKVswXSwKICAgICAgICAgICAgICAgIG51bUtleXMgPSBwcm9wZXJ0eS5rZiA/IGRhdGEuay5sZW5ndGggOiAwLAogICAgICAgICAgICAgICAgYWN0aXZlID0gIXRoaXMuZGF0YSB8fCB0aGlzLmRhdGEuaGQgIT09ICEwLAogICAgICAgICAgICAgICAgd2lnZ2xlID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgICBpID0gdGhpcy5wdi5sZW5ndGggPyB0aGlzLnB2Lmxlbmd0aCA6IDEsCiAgICAgICAgICAgICAgICAgICAgYSA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCBpKSwKICAgICAgICAgICAgICAgICAgICBvID0gTWF0aC5mbG9vcig1ICogdGltZSk7CiAgICAgICAgICAgICAgICAgIGZvciAociA9IDAsIG4gPSAwOyByIDwgbzsgKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIGFbbl0gKz0gLXQgKyAyICogdCAqIEJNTWF0aC5yYW5kb20oKTsKICAgICAgICAgICAgICAgICAgICByICs9IDE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgdmFyIHMgPSA1ICogdGltZSwKICAgICAgICAgICAgICAgICAgICBjID0gcyAtIE1hdGguZmxvb3IocyksCiAgICAgICAgICAgICAgICAgICAgdSA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCBpKTsKICAgICAgICAgICAgICAgICAgaWYgKGkgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGk7IG4gKz0gMSkKICAgICAgICAgICAgICAgICAgICAgIHVbbl0gPQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnB2W25dICsgYVtuXSArICgtdCArIDIgKiB0ICogQk1NYXRoLnJhbmRvbSgpKSAqIGM7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHYgKyBhWzBdICsgKC10ICsgMiAqIHQgKiBCTU1hdGgucmFuZG9tKCkpICogYzsKICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKTsKICAgICAgICAgICAgICBmdW5jdGlvbiBsb29wSW5EdXJhdGlvbihlLCB0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbG9vcEluKGUsIHQsICEwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbG9vcE91dER1cmF0aW9uKGUsIHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsb29wT3V0KGUsIHQsICEwKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpc1Byb3BlcnR5Lmxvb3BJbiAmJgogICAgICAgICAgICAgICAgKChsb29wSW4gPSB0aGlzUHJvcGVydHkubG9vcEluLmJpbmQodGhpc1Byb3BlcnR5KSksCiAgICAgICAgICAgICAgICAobG9vcF9pbiA9IGxvb3BJbikpLAogICAgICAgICAgICAgICAgdGhpc1Byb3BlcnR5Lmxvb3BPdXQgJiYKICAgICAgICAgICAgICAgICAgKChsb29wT3V0ID0gdGhpc1Byb3BlcnR5Lmxvb3BPdXQuYmluZCh0aGlzUHJvcGVydHkpKSwKICAgICAgICAgICAgICAgICAgKGxvb3Bfb3V0ID0gbG9vcE91dCkpLAogICAgICAgICAgICAgICAgdGhpc1Byb3BlcnR5LnNtb290aCAmJgogICAgICAgICAgICAgICAgICAoc21vb3RoID0gdGhpc1Byb3BlcnR5LnNtb290aC5iaW5kKHRoaXNQcm9wZXJ0eSkpLAogICAgICAgICAgICAgICAgdGhpcy5nZXRWYWx1ZUF0VGltZSAmJgogICAgICAgICAgICAgICAgICAodmFsdWVBdFRpbWUgPSB0aGlzLmdldFZhbHVlQXRUaW1lLmJpbmQodGhpcykpLAogICAgICAgICAgICAgICAgdGhpcy5nZXRWZWxvY2l0eUF0VGltZSAmJgogICAgICAgICAgICAgICAgICAodmVsb2NpdHlBdFRpbWUgPSB0aGlzLmdldFZlbG9jaXR5QXRUaW1lLmJpbmQodGhpcykpOwogICAgICAgICAgICAgIHZhciBjb21wID0gZWxlbS5jb21wLmdsb2JhbERhdGEucHJvamVjdEludGVyZmFjZS5iaW5kKAogICAgICAgICAgICAgICAgICBlbGVtLmNvbXAuZ2xvYmFsRGF0YS5wcm9qZWN0SW50ZXJmYWNlCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgdGltZSwKICAgICAgICAgICAgICAgIHZlbG9jaXR5LAogICAgICAgICAgICAgICAgdmFsdWUsCiAgICAgICAgICAgICAgICB0ZXh0LAogICAgICAgICAgICAgICAgdGV4dEluZGV4LAogICAgICAgICAgICAgICAgdGV4dFRvdGFsLAogICAgICAgICAgICAgICAgc2VsZWN0b3JWYWx1ZTsKICAgICAgICAgICAgICBmdW5jdGlvbiBsb29rQXQoZSwgdCkgewogICAgICAgICAgICAgICAgdmFyIHIgPSBbdFswXSAtIGVbMF0sIHRbMV0gLSBlWzFdLCB0WzJdIC0gZVsyXV0sCiAgICAgICAgICAgICAgICAgIG4gPQogICAgICAgICAgICAgICAgICAgIE1hdGguYXRhbjIoclswXSwgTWF0aC5zcXJ0KHJbMV0gKiByWzFdICsgclsyXSAqIHJbMl0pKSAvCiAgICAgICAgICAgICAgICAgICAgZGVnVG9SYWRzOwogICAgICAgICAgICAgICAgcmV0dXJuIFstTWF0aC5hdGFuMihyWzFdLCByWzJdKSAvIGRlZ1RvUmFkcywgbiwgMF07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGVhc2VPdXQoZSwgdCwgciwgbiwgaSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5RWFzZShlYXNlT3V0QmV6LCBlLCB0LCByLCBuLCBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gZWFzZUluKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcHBseUVhc2UoZWFzZUluQmV6LCBlLCB0LCByLCBuLCBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gZWFzZShlLCB0LCByLCBuLCBpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXBwbHlFYXNlKGVhc2VJbk91dEJleiwgZSwgdCwgciwgbiwgaSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIGFwcGx5RWFzZShlLCB0LCByLCBuLCBpLCBhKSB7CiAgICAgICAgICAgICAgICBpID09PSB2b2lkIDAgPyAoKGkgPSByKSwgKGEgPSBuKSkgOiAodCA9ICh0IC0gcikgLyAobiAtIHIpKSwKICAgICAgICAgICAgICAgICAgdCA+IDEgPyAodCA9IDEpIDogdCA8IDAgJiYgKHQgPSAwKTsKICAgICAgICAgICAgICAgIHZhciBvID0gZSh0KTsKICAgICAgICAgICAgICAgIGlmICgkYm1faXNJbnN0YW5jZU9mQXJyYXkoaSkpIHsKICAgICAgICAgICAgICAgICAgdmFyIHMsCiAgICAgICAgICAgICAgICAgICAgYyA9IGkubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgIHUgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgYyk7CiAgICAgICAgICAgICAgICAgIGZvciAocyA9IDA7IHMgPCBjOyBzICs9IDEpIHVbc10gPSAoYVtzXSAtIGlbc10pICogbyArIGlbc107CiAgICAgICAgICAgICAgICAgIHJldHVybiB1OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIChhIC0gaSkgKiBvICsgaTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gbmVhcmVzdEtleShlKSB7CiAgICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgbiwKICAgICAgICAgICAgICAgICAgaSA9IGRhdGEuay5sZW5ndGg7CiAgICAgICAgICAgICAgICBpZiAoZGF0YS5rLmxlbmd0aCAmJiB0eXBlb2YgZGF0YS5rWzBdICE9ICJudW1iZXIiKQogICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgKChyID0gLTEpLAogICAgICAgICAgICAgICAgICAgIChlICo9IGVsZW0uY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSkgPCBkYXRhLmtbMF0udCkKICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIChyID0gMSksIChuID0gZGF0YS5rWzBdLnQpOwogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKHQgPSAwOyB0IDwgaSAtIDE7IHQgKz0gMSkgewogICAgICAgICAgICAgICAgICAgICAgaWYgKGUgPT09IGRhdGEua1t0XS50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIChyID0gdCArIDEpLCAobiA9IGRhdGEua1t0XS50KTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZSA+IGRhdGEua1t0XS50ICYmIGUgPCBkYXRhLmtbdCArIDFdLnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZSAtIGRhdGEua1t0XS50ID4gZGF0YS5rW3QgKyAxXS50IC0gZQogICAgICAgICAgICAgICAgICAgICAgICAgID8gKChyID0gdCArIDIpLCAobiA9IGRhdGEua1t0ICsgMV0udCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoKHIgPSB0ICsgMSksIChuID0gZGF0YS5rW3RdLnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHIgPT09IC0xICYmICgociA9IHQgKyAxKSwgKG4gPSBkYXRhLmtbdF0udCkpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIChyID0gMCksIChuID0gMCk7CiAgICAgICAgICAgICAgICB2YXIgYSA9IHt9OwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgKGEuaW5kZXggPSByKSwKICAgICAgICAgICAgICAgICAgKGEudGltZSA9IG4gLyBlbGVtLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUpLAogICAgICAgICAgICAgICAgICBhCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBrZXkoZSkgewogICAgICAgICAgICAgICAgdmFyIHQsIHIsIG47CiAgICAgICAgICAgICAgICBpZiAoIWRhdGEuay5sZW5ndGggfHwgdHlwZW9mIGRhdGEua1swXSA9PSAibnVtYmVyIikKICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaGUgcHJvcGVydHkgaGFzIG5vIGtleWZyYW1lIGF0IGluZGV4ICIgKyBlKTsKICAgICAgICAgICAgICAgIChlIC09IDEpLAogICAgICAgICAgICAgICAgICAodCA9IHsKICAgICAgICAgICAgICAgICAgICB0aW1lOiBkYXRhLmtbZV0udCAvIGVsZW0uY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSwKICAgICAgICAgICAgICAgICAgICB2YWx1ZTogW10sCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgdmFyIGkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YS5rW2VdLCAicyIpCiAgICAgICAgICAgICAgICAgID8gZGF0YS5rW2VdLnMKICAgICAgICAgICAgICAgICAgOiBkYXRhLmtbZSAtIDFdLmU7CiAgICAgICAgICAgICAgICBmb3IgKG4gPSBpLmxlbmd0aCwgciA9IDA7IHIgPCBuOyByICs9IDEpCiAgICAgICAgICAgICAgICAgICh0W3JdID0gaVtyXSksICh0LnZhbHVlW3JdID0gaVtyXSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gZnJhbWVzVG9UaW1lKGUsIHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0IHx8ICh0ID0gZWxlbS5jb21wLmdsb2JhbERhdGEuZnJhbWVSYXRlKSwgZSAvIHQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHRpbWVUb0ZyYW1lcyhlLCB0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICBlIHx8IGUgPT09IDAgfHwgKGUgPSB0aW1lKSwKICAgICAgICAgICAgICAgICAgdCB8fCAodCA9IGVsZW0uY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSksCiAgICAgICAgICAgICAgICAgIGUgKiB0CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBzZWVkUmFuZG9tKGUpIHsKICAgICAgICAgICAgICAgIEJNTWF0aC5zZWVkcmFuZG9tKHJhbmRTZWVkICsgZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHNvdXJjZVJlY3RBdFRpbWUoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbS5zb3VyY2VSZWN0QXRUaW1lKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZ1bmN0aW9uIHN1YnN0cmluZyhlLCB0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICJzdHJpbmciCiAgICAgICAgICAgICAgICAgID8gdCA9PT0gdm9pZCAwCiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZS5zdWJzdHJpbmcoZSkKICAgICAgICAgICAgICAgICAgICA6IHZhbHVlLnN1YnN0cmluZyhlLCB0KQogICAgICAgICAgICAgICAgICA6ICIiOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmdW5jdGlvbiBzdWJzdHIoZSwgdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAic3RyaW5nIgogICAgICAgICAgICAgICAgICA/IHQgPT09IHZvaWQgMAogICAgICAgICAgICAgICAgICAgID8gdmFsdWUuc3Vic3RyKGUpCiAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZS5zdWJzdHIoZSwgdCkKICAgICAgICAgICAgICAgICAgOiAiIjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnVuY3Rpb24gcG9zdGVyaXplVGltZShlKSB7CiAgICAgICAgICAgICAgICAodGltZSA9IGUgPT09IDAgPyAwIDogTWF0aC5mbG9vcih0aW1lICogZSkgLyBlKSwKICAgICAgICAgICAgICAgICAgKHZhbHVlID0gdmFsdWVBdFRpbWUodGltZSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgaW5kZXggPSBlbGVtLmRhdGEuaW5kLAogICAgICAgICAgICAgICAgaGFzUGFyZW50ID0gISghZWxlbS5oaWVyYXJjaHkgfHwgIWVsZW0uaGllcmFyY2h5Lmxlbmd0aCksCiAgICAgICAgICAgICAgICBwYXJlbnQsCiAgICAgICAgICAgICAgICByYW5kU2VlZCA9IE1hdGguZmxvb3IoMWU2ICogTWF0aC5yYW5kb20oKSksCiAgICAgICAgICAgICAgICBnbG9iYWxEYXRhID0gZWxlbS5nbG9iYWxEYXRhOwogICAgICAgICAgICAgIGZ1bmN0aW9uIGV4ZWN1dGVFeHByZXNzaW9uKGUpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICh2YWx1ZSA9IGUpLAogICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lRXhwcmVzc2lvbklkID09PSBlbGVtLmdsb2JhbERhdGEuZnJhbWVJZCAmJgogICAgICAgICAgICAgICAgICB0aGlzLnByb3BUeXBlICE9PSAidGV4dFNlbGVjdG9yIgogICAgICAgICAgICAgICAgICAgID8gdmFsdWUKICAgICAgICAgICAgICAgICAgICA6ICh0aGlzLnByb3BUeXBlID09PSAidGV4dFNlbGVjdG9yIiAmJgogICAgICAgICAgICAgICAgICAgICAgICAoKHRleHRJbmRleCA9IHRoaXMudGV4dEluZGV4KSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRleHRUb3RhbCA9IHRoaXMudGV4dFRvdGFsKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdG9yVmFsdWUgPSB0aGlzLnNlbGVjdG9yVmFsdWUpKSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXNMYXllciB8fAogICAgICAgICAgICAgICAgICAgICAgICAoKHRleHQgPSBlbGVtLmxheWVySW50ZXJmYWNlLnRleHQpLAogICAgICAgICAgICAgICAgICAgICAgICAodGhpc0xheWVyID0gZWxlbS5sYXllckludGVyZmFjZSksCiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzQ29tcCA9IGVsZW0uY29tcC5jb21wSW50ZXJmYWNlKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRvV29ybGQgPSB0aGlzTGF5ZXIudG9Xb3JsZC5iaW5kKHRoaXNMYXllcikpLAogICAgICAgICAgICAgICAgICAgICAgICAoZnJvbVdvcmxkID0gdGhpc0xheWVyLmZyb21Xb3JsZC5iaW5kKHRoaXNMYXllcikpLAogICAgICAgICAgICAgICAgICAgICAgICAoZnJvbUNvbXAgPSB0aGlzTGF5ZXIuZnJvbUNvbXAuYmluZCh0aGlzTGF5ZXIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKHRvQ29tcCA9IHRoaXNMYXllci50b0NvbXAuYmluZCh0aGlzTGF5ZXIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgKG1hc2sgPSB0aGlzTGF5ZXIubWFzawogICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpc0xheWVyLm1hc2suYmluZCh0aGlzTGF5ZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsKSwKICAgICAgICAgICAgICAgICAgICAgICAgKGZyb21Db21wVG9TdXJmYWNlID0gZnJvbUNvbXApKSwKICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSB8fAogICAgICAgICAgICAgICAgICAgICAgICAoKHRyYW5zZm9ybSA9IGVsZW0ubGF5ZXJJbnRlcmZhY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkFEQkUgVHJhbnNmb3JtIEdyb3VwIgogICAgICAgICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgICAgICAgKCRibV90cmFuc2Zvcm0gPSB0cmFuc2Zvcm0pLAogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gJiYgKGFuY2hvclBvaW50ID0gdHJhbnNmb3JtLmFuY2hvclBvaW50KSksCiAgICAgICAgICAgICAgICAgICAgICBlbGVtVHlwZSAhPT0gNCB8fAogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IHx8CiAgICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50ID0gdGhpc0xheWVyKCJBREJFIFJvb3QgVmVjdG9ycyBHcm91cCIpKSwKICAgICAgICAgICAgICAgICAgICAgIGVmZmVjdCB8fCAoZWZmZWN0ID0gdGhpc0xheWVyKDQpKSwKICAgICAgICAgICAgICAgICAgICAgIChoYXNQYXJlbnQgPSAhKAogICAgICAgICAgICAgICAgICAgICAgICAhZWxlbS5oaWVyYXJjaHkgfHwgIWVsZW0uaGllcmFyY2h5Lmxlbmd0aAogICAgICAgICAgICAgICAgICAgICAgKSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgIXBhcmVudCAmJgogICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50ID0gZWxlbS5oaWVyYXJjaHlbMF0ubGF5ZXJJbnRlcmZhY2UpLAogICAgICAgICAgICAgICAgICAgICAgKHRpbWUgPQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXAucmVuZGVyZWRGcmFtZSAvCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSksCiAgICAgICAgICAgICAgICAgICAgICBfbmVlZHNSYW5kb20gJiYgc2VlZFJhbmRvbShyYW5kU2VlZCArIHRpbWUpLAogICAgICAgICAgICAgICAgICAgICAgbmVlZHNWZWxvY2l0eSAmJiAodmVsb2NpdHkgPSB2ZWxvY2l0eUF0VGltZSh0aW1lKSksCiAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uX2Z1bmN0aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAodGhpcy5mcmFtZUV4cHJlc3Npb25JZCA9IGVsZW0uZ2xvYmFsRGF0YS5mcmFtZUlkKSwKICAgICAgICAgICAgICAgICAgICAgIChzY29wZWRfYm1fcnQgPQogICAgICAgICAgICAgICAgICAgICAgICBzY29wZWRfYm1fcnQucHJvcFR5cGUgPT09IHByb3BUeXBlcy5TSEFQRQogICAgICAgICAgICAgICAgICAgICAgICAgID8gc2NvcGVkX2JtX3J0LnYKICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNjb3BlZF9ibV9ydCkpCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKGV4ZWN1dGVFeHByZXNzaW9uLl9fcHJldmVudERlYWRDb2RlUmVtb3ZhbCA9IFsKICAgICAgICAgICAgICAgICAgJGJtX3RyYW5zZm9ybSwKICAgICAgICAgICAgICAgICAgYW5jaG9yUG9pbnQsCiAgICAgICAgICAgICAgICAgIHRpbWUsCiAgICAgICAgICAgICAgICAgIHZlbG9jaXR5LAogICAgICAgICAgICAgICAgICBpblBvaW50LAogICAgICAgICAgICAgICAgICBvdXRQb2ludCwKICAgICAgICAgICAgICAgICAgd2lkdGgsCiAgICAgICAgICAgICAgICAgIGhlaWdodCwKICAgICAgICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgICAgICAgbG9vcF9pbiwKICAgICAgICAgICAgICAgICAgbG9vcF9vdXQsCiAgICAgICAgICAgICAgICAgIHNtb290aCwKICAgICAgICAgICAgICAgICAgdG9Db21wLAogICAgICAgICAgICAgICAgICBmcm9tQ29tcFRvU3VyZmFjZSwKICAgICAgICAgICAgICAgICAgdG9Xb3JsZCwKICAgICAgICAgICAgICAgICAgZnJvbVdvcmxkLAogICAgICAgICAgICAgICAgICBtYXNrLAogICAgICAgICAgICAgICAgICBwb3NpdGlvbiwKICAgICAgICAgICAgICAgICAgcm90YXRpb24sCiAgICAgICAgICAgICAgICAgIHNjYWxlLAogICAgICAgICAgICAgICAgICB0aGlzQ29tcCwKICAgICAgICAgICAgICAgICAgbnVtS2V5cywKICAgICAgICAgICAgICAgICAgYWN0aXZlLAogICAgICAgICAgICAgICAgICB3aWdnbGUsCiAgICAgICAgICAgICAgICAgIGxvb3BJbkR1cmF0aW9uLAogICAgICAgICAgICAgICAgICBsb29wT3V0RHVyYXRpb24sCiAgICAgICAgICAgICAgICAgIGNvbXAsCiAgICAgICAgICAgICAgICAgIGxvb2tBdCwKICAgICAgICAgICAgICAgICAgZWFzZU91dCwKICAgICAgICAgICAgICAgICAgZWFzZUluLAogICAgICAgICAgICAgICAgICBlYXNlLAogICAgICAgICAgICAgICAgICBuZWFyZXN0S2V5LAogICAgICAgICAgICAgICAgICBrZXksCiAgICAgICAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgICAgICAgIHRleHRJbmRleCwKICAgICAgICAgICAgICAgICAgdGV4dFRvdGFsLAogICAgICAgICAgICAgICAgICBzZWxlY3RvclZhbHVlLAogICAgICAgICAgICAgICAgICBmcmFtZXNUb1RpbWUsCiAgICAgICAgICAgICAgICAgIHRpbWVUb0ZyYW1lcywKICAgICAgICAgICAgICAgICAgc291cmNlUmVjdEF0VGltZSwKICAgICAgICAgICAgICAgICAgc3Vic3RyaW5nLAogICAgICAgICAgICAgICAgICBzdWJzdHIsCiAgICAgICAgICAgICAgICAgIHBvc3Rlcml6ZVRpbWUsCiAgICAgICAgICAgICAgICAgIGluZGV4LAogICAgICAgICAgICAgICAgICBnbG9iYWxEYXRhLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBleGVjdXRlRXhwcmVzc2lvbgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAob2IuaW5pdGlhdGVFeHByZXNzaW9uID0gaW5pdGlhdGVFeHByZXNzaW9uKSwKICAgICAgICAgICAgICAob2IuX19wcmV2ZW50RGVhZENvZGVSZW1vdmFsID0gWwogICAgICAgICAgICAgICAgd2luZG93LAogICAgICAgICAgICAgICAgZG9jdW1lbnQsCiAgICAgICAgICAgICAgICBYTUxIdHRwUmVxdWVzdCwKICAgICAgICAgICAgICAgIGZldGNoLAogICAgICAgICAgICAgICAgZnJhbWVzLAogICAgICAgICAgICAgICAgJGJtX25lZywKICAgICAgICAgICAgICAgIGFkZCwKICAgICAgICAgICAgICAgICRibV9zdW0sCiAgICAgICAgICAgICAgICAkYm1fc3ViLAogICAgICAgICAgICAgICAgJGJtX211bCwKICAgICAgICAgICAgICAgICRibV9kaXYsCiAgICAgICAgICAgICAgICAkYm1fbW9kLAogICAgICAgICAgICAgICAgY2xhbXAsCiAgICAgICAgICAgICAgICByYWRpYW5zX3RvX2RlZ3JlZXMsCiAgICAgICAgICAgICAgICBkZWdyZWVzVG9SYWRpYW5zLAogICAgICAgICAgICAgICAgZGVncmVlc190b19yYWRpYW5zLAogICAgICAgICAgICAgICAgbm9ybWFsaXplLAogICAgICAgICAgICAgICAgcmdiVG9Ic2wsCiAgICAgICAgICAgICAgICBoc2xUb1JnYiwKICAgICAgICAgICAgICAgIGxpbmVhciwKICAgICAgICAgICAgICAgIHJhbmRvbSwKICAgICAgICAgICAgICAgIGNyZWF0ZVBhdGgsCiAgICAgICAgICAgICAgICBfbG90dGllR2xvYmFsLAogICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgIChvYi5yZXNldEZyYW1lID0gcmVzZXRGcmFtZSksCiAgICAgICAgICAgICAgb2IKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pKCksCiAgICAgICAgICBFeHByZXNzaW9ucyA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlID0ge307CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgKGUuaW5pdEV4cHJlc3Npb25zID0gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgIHZhciByID0gMCwKICAgICAgICAgICAgICAgICAgbiA9IFtdOwogICAgICAgICAgICAgICAgKHQucmVuZGVyZXIuY29tcEludGVyZmFjZSA9IENvbXBFeHByZXNzaW9uSW50ZXJmYWNlKAogICAgICAgICAgICAgICAgICB0LnJlbmRlcmVyCiAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgdC5yZW5kZXJlci5nbG9iYWxEYXRhLnByb2plY3RJbnRlcmZhY2UucmVnaXN0ZXJDb21wb3NpdGlvbigKICAgICAgICAgICAgICAgICAgICB0LnJlbmRlcmVyCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICh0LnJlbmRlcmVyLmdsb2JhbERhdGEucHVzaEV4cHJlc3Npb24gPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgciArPSAxOwogICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgKHQucmVuZGVyZXIuZ2xvYmFsRGF0YS5wb3BFeHByZXNzaW9uID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIChyIC09IDEpID09IDAgJiYKICAgICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBuLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGE7IGkgKz0gMSkgbltpXS5yZWxlYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIG4ubGVuZ3RoID0gMDsKICAgICAgICAgICAgICAgICAgICAgIH0pKCk7CiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAodC5yZW5kZXJlci5nbG9iYWxEYXRhLnJlZ2lzdGVyRXhwcmVzc2lvblByb3BlcnR5ID0gZnVuY3Rpb24gKAogICAgICAgICAgICAgICAgICAgIGkKICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgbi5pbmRleE9mKGkpID09PSAtMSAmJiBuLnB1c2goaSk7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIChlLnJlc2V0RnJhbWUgPSBFeHByZXNzaW9uTWFuYWdlci5yZXNldEZyYW1lKSwKICAgICAgICAgICAgICBlCiAgICAgICAgICAgICk7CiAgICAgICAgICB9KSgpLAogICAgICAgICAgTWFza01hbmFnZXJJbnRlcmZhY2UgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmdW5jdGlvbiBlKHQsIHIpIHsKICAgICAgICAgICAgICAodGhpcy5fbWFzayA9IHQpLCAodGhpcy5fZGF0YSA9IHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCAibWFza1BhdGgiLCB7CiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXNrLnByb3AuayAmJiB0aGlzLl9tYXNrLnByb3AuZ2V0VmFsdWUoKSwKICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXNrLnByb3AKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCAibWFza09wYWNpdHkiLCB7CiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXNrLm9wLmsgJiYgdGhpcy5fbWFzay5vcC5nZXRWYWx1ZSgpLAogICAgICAgICAgICAgICAgICAgIDEwMCAqIHRoaXMuX21hc2sub3AudgogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBmdW5jdGlvbiAodCkgewogICAgICAgICAgICAgICAgdmFyIHIsCiAgICAgICAgICAgICAgICAgIG4gPSBjcmVhdGVTaXplZEFycmF5KHQudmlld0RhdGEubGVuZ3RoKSwKICAgICAgICAgICAgICAgICAgaSA9IHQudmlld0RhdGEubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IGk7IHIgKz0gMSkKICAgICAgICAgICAgICAgICAgbltyXSA9IG5ldyBlKHQudmlld0RhdGFbcl0sIHQubWFza3NQcm9wZXJ0aWVzW3JdKTsKICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoYSkgewogICAgICAgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgaTsgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHQubWFza3NQcm9wZXJ0aWVzW3JdLm5tID09PSBhKSByZXR1cm4gbltyXTsKICAgICAgICAgICAgICAgICAgICByICs9IDE7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKICAgICAgICAgIH0pKCksCiAgICAgICAgICBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgZSA9IHsgcHY6IDAsIHY6IDAsIG11bHQ6IDEgfSwKICAgICAgICAgICAgICB0ID0geyBwdjogWzAsIDAsIDBdLCB2OiBbMCwgMCwgMF0sIG11bHQ6IDEgfTsKICAgICAgICAgICAgZnVuY3Rpb24gcihpLCBhLCBvKSB7CiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGksICJ2ZWxvY2l0eSIsIHsKICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gYS5nZXRWZWxvY2l0eUF0VGltZShhLmNvbXAuY3VycmVudEZyYW1lKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAoaS5udW1LZXlzID0gYS5rZXlmcmFtZXMgPyBhLmtleWZyYW1lcy5sZW5ndGggOiAwKSwKICAgICAgICAgICAgICAgIChpLmtleSA9IGZ1bmN0aW9uIChzKSB7CiAgICAgICAgICAgICAgICAgIGlmICghaS5udW1LZXlzKSByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgdmFyIGMgPSAiIjsKICAgICAgICAgICAgICAgICAgYyA9CiAgICAgICAgICAgICAgICAgICAgInMiIGluIGEua2V5ZnJhbWVzW3MgLSAxXQogICAgICAgICAgICAgICAgICAgICAgPyBhLmtleWZyYW1lc1tzIC0gMV0ucwogICAgICAgICAgICAgICAgICAgICAgOiAiZSIgaW4gYS5rZXlmcmFtZXNbcyAtIDJdCiAgICAgICAgICAgICAgICAgICAgICA/IGEua2V5ZnJhbWVzW3MgLSAyXS5lCiAgICAgICAgICAgICAgICAgICAgICA6IGEua2V5ZnJhbWVzW3MgLSAyXS5zOwogICAgICAgICAgICAgICAgICB2YXIgdSA9CiAgICAgICAgICAgICAgICAgICAgbyA9PT0gInVuaWRpbWVuc2lvbmFsIgogICAgICAgICAgICAgICAgICAgICAgPyBuZXcgTnVtYmVyKGMpCiAgICAgICAgICAgICAgICAgICAgICA6IE9iamVjdC5hc3NpZ24oe30sIGMpOwogICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICh1LnRpbWUgPQogICAgICAgICAgICAgICAgICAgICAgYS5rZXlmcmFtZXNbcyAtIDFdLnQgLyBhLmVsZW0uY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSksCiAgICAgICAgICAgICAgICAgICAgKHUudmFsdWUgPSBvID09PSAidW5pZGltZW5zaW9uYWwiID8gY1swXSA6IGMpLAogICAgICAgICAgICAgICAgICAgIHUKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKGkudmFsdWVBdFRpbWUgPSBhLmdldFZhbHVlQXRUaW1lKSwKICAgICAgICAgICAgICAgIChpLnNwZWVkQXRUaW1lID0gYS5nZXRTcGVlZEF0VGltZSksCiAgICAgICAgICAgICAgICAoaS52ZWxvY2l0eUF0VGltZSA9IGEuZ2V0VmVsb2NpdHlBdFRpbWUpLAogICAgICAgICAgICAgICAgKGkucHJvcGVydHlHcm91cCA9IGEucHJvcGVydHlHcm91cCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gbigpIHsKICAgICAgICAgICAgICByZXR1cm4gZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGkpIHsKICAgICAgICAgICAgICByZXR1cm4gaQogICAgICAgICAgICAgICAgPyBpLnByb3BUeXBlID09PSAidW5pZGltZW5zaW9uYWwiCiAgICAgICAgICAgICAgICAgID8gKGZ1bmN0aW9uIChhKSB7CiAgICAgICAgICAgICAgICAgICAgICAoYSAmJiAicHYiIGluIGEpIHx8IChhID0gZSk7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgbyA9IDEgLyBhLm11bHQsCiAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBhLnB2ICogbywKICAgICAgICAgICAgICAgICAgICAgICAgYyA9IG5ldyBOdW1iZXIocyk7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgICAoYy52YWx1ZSA9IHMpLAogICAgICAgICAgICAgICAgICAgICAgICByKGMsIGEsICJ1bmlkaW1lbnNpb25hbCIpLAogICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuayAmJiBhLmdldFZhbHVlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocyA9IGEudiAqIG8pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYy52YWx1ZSAhPT0gcyAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChjID0gbmV3IE51bWJlcihzKSkudmFsdWUgPSBzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcihjLCBhLCAidW5pZGltZW5zaW9uYWwiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjCiAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9KShpKQogICAgICAgICAgICAgICAgICA6IChmdW5jdGlvbiAoYSkgewogICAgICAgICAgICAgICAgICAgICAgKGEgJiYgInB2IiBpbiBhKSB8fCAoYSA9IHQpOwogICAgICAgICAgICAgICAgICAgICAgdmFyIG8gPSAxIC8gYS5tdWx0LAogICAgICAgICAgICAgICAgICAgICAgICBzID0gKGEuZGF0YSAmJiBhLmRhdGEubCkgfHwgYS5wdi5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgcyksCiAgICAgICAgICAgICAgICAgICAgICAgIHUgPSBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgcyk7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICAgICAgICAoYy52YWx1ZSA9IHUpLAogICAgICAgICAgICAgICAgICAgICAgICByKGMsIGEsICJtdWx0aWRpbWVuc2lvbmFsIiksCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBhLmsgJiYgYS5nZXRWYWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgczsgbCArPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVbbF0gPSBhLnZbbF0gKiBvKSwgKGNbbF0gPSB1W2xdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9KShpKQogICAgICAgICAgICAgICAgOiBuOwogICAgICAgICAgICB9OwogICAgICAgICAgfSkoKSwKICAgICAgICAgIFRyYW5zZm9ybUV4cHJlc3Npb25JbnRlcmZhY2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBmdW5jdGlvbiB0KG8pIHsKICAgICAgICAgICAgICBzd2l0Y2ggKG8pIHsKICAgICAgICAgICAgICAgIGNhc2UgInNjYWxlIjoKICAgICAgICAgICAgICAgIGNhc2UgIlNjYWxlIjoKICAgICAgICAgICAgICAgIGNhc2UgIkFEQkUgU2NhbGUiOgogICAgICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgICAgICByZXR1cm4gdC5zY2FsZTsKICAgICAgICAgICAgICAgIGNhc2UgInJvdGF0aW9uIjoKICAgICAgICAgICAgICAgIGNhc2UgIlJvdGF0aW9uIjoKICAgICAgICAgICAgICAgIGNhc2UgIkFEQkUgUm90YXRpb24iOgogICAgICAgICAgICAgICAgY2FzZSAiQURCRSBSb3RhdGUgWiI6CiAgICAgICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgICAgICByZXR1cm4gdC5yb3RhdGlvbjsKICAgICAgICAgICAgICAgIGNhc2UgIkFEQkUgUm90YXRlIFgiOgogICAgICAgICAgICAgICAgICByZXR1cm4gdC54Um90YXRpb247CiAgICAgICAgICAgICAgICBjYXNlICJBREJFIFJvdGF0ZSBZIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHQueVJvdGF0aW9uOwogICAgICAgICAgICAgICAgY2FzZSAicG9zaXRpb24iOgogICAgICAgICAgICAgICAgY2FzZSAiUG9zaXRpb24iOgogICAgICAgICAgICAgICAgY2FzZSAiQURCRSBQb3NpdGlvbiI6CiAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgIHJldHVybiB0LnBvc2l0aW9uOwogICAgICAgICAgICAgICAgY2FzZSAiQURCRSBQb3NpdGlvbl8wIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHQueFBvc2l0aW9uOwogICAgICAgICAgICAgICAgY2FzZSAiQURCRSBQb3NpdGlvbl8xIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHQueVBvc2l0aW9uOwogICAgICAgICAgICAgICAgY2FzZSAiQURCRSBQb3NpdGlvbl8yIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIHQuelBvc2l0aW9uOwogICAgICAgICAgICAgICAgY2FzZSAiYW5jaG9yUG9pbnQiOgogICAgICAgICAgICAgICAgY2FzZSAiQW5jaG9yUG9pbnQiOgogICAgICAgICAgICAgICAgY2FzZSAiQW5jaG9yIFBvaW50IjoKICAgICAgICAgICAgICAgIGNhc2UgIkFEQkUgQW5jaG9yUG9pbnQiOgogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICByZXR1cm4gdC5hbmNob3JQb2ludDsKICAgICAgICAgICAgICAgIGNhc2UgIm9wYWNpdHkiOgogICAgICAgICAgICAgICAgY2FzZSAiT3BhY2l0eSI6CiAgICAgICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICAgICAgICByZXR1cm4gdC5vcGFjaXR5OwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciByLCBuLCBpLCBhOwogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCAicm90YXRpb24iLCB7CiAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShlLnIgfHwgZS5yeiksCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsICJ6Um90YXRpb24iLCB7CiAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShlLnJ6IHx8IGUuciksCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsICJ4Um90YXRpb24iLCB7CiAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShlLnJ4KSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInlSb3RhdGlvbiIsIHsKICAgICAgICAgICAgICAgIGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKGUucnkpLAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCAic2NhbGUiLCB7CiAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShlLnMpLAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIGUucAogICAgICAgICAgICAgICAgPyAoYSA9IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShlLnApKQogICAgICAgICAgICAgICAgOiAoKHIgPSBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoZS5weCkpLAogICAgICAgICAgICAgICAgICAobiA9IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShlLnB5KSksCiAgICAgICAgICAgICAgICAgIGUucHogJiYgKGkgPSBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoZS5weikpKSwKICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInBvc2l0aW9uIiwgewogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBlLnAgPyBhKCkgOiBbcigpLCBuKCksIGkgPyBpKCkgOiAwXTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsICJ4UG9zaXRpb24iLCB7CiAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShlLnB4KSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInlQb3NpdGlvbiIsIHsKICAgICAgICAgICAgICAgIGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKGUucHkpLAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCAielBvc2l0aW9uIiwgewogICAgICAgICAgICAgICAgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoZS5weiksCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsICJhbmNob3JQb2ludCIsIHsKICAgICAgICAgICAgICAgIGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKGUuYSksCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsICJvcGFjaXR5IiwgewogICAgICAgICAgICAgICAgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoZS5vKSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInNrZXciLCB7CiAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShlLnNrKSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgInNrZXdBeGlzIiwgewogICAgICAgICAgICAgICAgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoZS5zYSksCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsICJvcmllbnRhdGlvbiIsIHsKICAgICAgICAgICAgICAgIGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKGUub3IpLAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIHQKICAgICAgICAgICAgKTsKICAgICAgICAgIH0sCiAgICAgICAgICBMYXllckV4cHJlc3Npb25JbnRlcmZhY2UgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmdW5jdGlvbiBlKHUpIHsKICAgICAgICAgICAgICB2YXIgbCA9IG5ldyBNYXRyaXgoKTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdSAhPT0gdm9pZCAwCiAgICAgICAgICAgICAgICAgID8gdGhpcy5fZWxlbS5maW5hbFRyYW5zZm9ybS5tUHJvcC5nZXRWYWx1ZUF0VGltZSh1KS5jbG9uZShsKQogICAgICAgICAgICAgICAgICA6IHRoaXMuX2VsZW0uZmluYWxUcmFuc2Zvcm0ubVByb3AuYXBwbHlUb01hdHJpeChsKSwKICAgICAgICAgICAgICAgIGwKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHQodSwgbCkgewogICAgICAgICAgICAgIHZhciBwID0gdGhpcy5nZXRNYXRyaXgobCk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIChwLnByb3BzWzEyXSA9IDApLAogICAgICAgICAgICAgICAgKHAucHJvcHNbMTNdID0gMCksCiAgICAgICAgICAgICAgICAocC5wcm9wc1sxNF0gPSAwKSwKICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlQb2ludChwLCB1KQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcih1LCBsKSB7CiAgICAgICAgICAgICAgdmFyIHAgPSB0aGlzLmdldE1hdHJpeChsKTsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseVBvaW50KHAsIHUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG4odSwgbCkgewogICAgICAgICAgICAgIHZhciBwID0gdGhpcy5nZXRNYXRyaXgobCk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIChwLnByb3BzWzEyXSA9IDApLAogICAgICAgICAgICAgICAgKHAucHJvcHNbMTNdID0gMCksCiAgICAgICAgICAgICAgICAocC5wcm9wc1sxNF0gPSAwKSwKICAgICAgICAgICAgICAgIHRoaXMuaW52ZXJ0UG9pbnQocCwgdSkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGkodSwgbCkgewogICAgICAgICAgICAgIHZhciBwID0gdGhpcy5nZXRNYXRyaXgobCk7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW52ZXJ0UG9pbnQocCwgdSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gYSh1LCBsKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuX2VsZW0uaGllcmFyY2h5ICYmIHRoaXMuX2VsZW0uaGllcmFyY2h5Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgdmFyIHAsCiAgICAgICAgICAgICAgICAgIGQgPSB0aGlzLl9lbGVtLmhpZXJhcmNoeS5sZW5ndGg7CiAgICAgICAgICAgICAgICBmb3IgKHAgPSAwOyBwIDwgZDsgcCArPSAxKQogICAgICAgICAgICAgICAgICB0aGlzLl9lbGVtLmhpZXJhcmNoeVtwXS5maW5hbFRyYW5zZm9ybS5tUHJvcC5hcHBseVRvTWF0cml4KHUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gdS5hcHBseVRvUG9pbnRBcnJheShsWzBdLCBsWzFdLCBsWzJdIHx8IDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG8odSwgbCkgewogICAgICAgICAgICAgIGlmICh0aGlzLl9lbGVtLmhpZXJhcmNoeSAmJiB0aGlzLl9lbGVtLmhpZXJhcmNoeS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHZhciBwLAogICAgICAgICAgICAgICAgICBkID0gdGhpcy5fZWxlbS5oaWVyYXJjaHkubGVuZ3RoOwogICAgICAgICAgICAgICAgZm9yIChwID0gMDsgcCA8IGQ7IHAgKz0gMSkKICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbS5oaWVyYXJjaHlbcF0uZmluYWxUcmFuc2Zvcm0ubVByb3AuYXBwbHlUb01hdHJpeCh1KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHUuaW52ZXJzZVBvaW50KGwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHModSkgewogICAgICAgICAgICAgIHZhciBsID0gbmV3IE1hdHJpeCgpOwogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgIChsLnJlc2V0KCksCiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLmFwcGx5VG9NYXRyaXgobCksCiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtLmhpZXJhcmNoeSAmJiB0aGlzLl9lbGVtLmhpZXJhcmNoeS5sZW5ndGgpCiAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICB2YXIgcCwKICAgICAgICAgICAgICAgICAgZCA9IHRoaXMuX2VsZW0uaGllcmFyY2h5Lmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAocCA9IDA7IHAgPCBkOyBwICs9IDEpCiAgICAgICAgICAgICAgICAgIHRoaXMuX2VsZW0uaGllcmFyY2h5W3BdLmZpbmFsVHJhbnNmb3JtLm1Qcm9wLmFwcGx5VG9NYXRyaXgobCk7CiAgICAgICAgICAgICAgICByZXR1cm4gbC5pbnZlcnNlUG9pbnQodSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBsLmludmVyc2VQb2ludCh1KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBjKCkgewogICAgICAgICAgICAgIHJldHVybiBbMSwgMSwgMSwgMV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh1KSB7CiAgICAgICAgICAgICAgdmFyIGw7CiAgICAgICAgICAgICAgZnVuY3Rpb24gcChoKSB7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKGgpIHsKICAgICAgICAgICAgICAgICAgY2FzZSAiQURCRSBSb290IFZlY3RvcnMgR3JvdXAiOgogICAgICAgICAgICAgICAgICBjYXNlICJDb250ZW50cyI6CiAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gcC5zaGFwZUludGVyZmFjZTsKICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICAgIGNhc2UgIlRyYW5zZm9ybSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgInRyYW5zZm9ybSI6CiAgICAgICAgICAgICAgICAgIGNhc2UgIkFEQkUgVHJhbnNmb3JtIEdyb3VwIjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbDsKICAgICAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgICBjYXNlICJBREJFIEVmZmVjdCBQYXJhZGUiOgogICAgICAgICAgICAgICAgICBjYXNlICJlZmZlY3RzIjoKICAgICAgICAgICAgICAgICAgY2FzZSAiRWZmZWN0cyI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHAuZWZmZWN0OwogICAgICAgICAgICAgICAgICBjYXNlICJBREJFIFRleHQgUHJvcGVydGllcyI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHAudGV4dEludGVyZmFjZTsKICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKHAuZ2V0TWF0cml4ID0gZSksCiAgICAgICAgICAgICAgICAocC5pbnZlcnRQb2ludCA9IG8pLAogICAgICAgICAgICAgICAgKHAuYXBwbHlQb2ludCA9IGEpLAogICAgICAgICAgICAgICAgKHAudG9Xb3JsZCA9IHIpLAogICAgICAgICAgICAgICAgKHAudG9Xb3JsZFZlYyA9IHQpLAogICAgICAgICAgICAgICAgKHAuZnJvbVdvcmxkID0gaSksCiAgICAgICAgICAgICAgICAocC5mcm9tV29ybGRWZWMgPSBuKSwKICAgICAgICAgICAgICAgIChwLnRvQ29tcCA9IHIpLAogICAgICAgICAgICAgICAgKHAuZnJvbUNvbXAgPSBzKSwKICAgICAgICAgICAgICAgIChwLnNhbXBsZUltYWdlID0gYyksCiAgICAgICAgICAgICAgICAocC5zb3VyY2VSZWN0QXRUaW1lID0gdS5zb3VyY2VSZWN0QXRUaW1lLmJpbmQodSkpLAogICAgICAgICAgICAgICAgKHAuX2VsZW0gPSB1KTsKICAgICAgICAgICAgICB2YXIgZCA9IGdldERlc2NyaXB0b3IoCiAgICAgICAgICAgICAgICAobCA9IFRyYW5zZm9ybUV4cHJlc3Npb25JbnRlcmZhY2UodS5maW5hbFRyYW5zZm9ybS5tUHJvcCkpLAogICAgICAgICAgICAgICAgImFuY2hvclBvaW50IgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHAsIHsKICAgICAgICAgICAgICAgICAgaGFzUGFyZW50OiB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdS5oaWVyYXJjaHkubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHBhcmVudDogewogICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHUuaGllcmFyY2h5WzBdLmxheWVySW50ZXJmYWNlOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiBnZXREZXNjcmlwdG9yKGwsICJyb3RhdGlvbiIpLAogICAgICAgICAgICAgICAgICBzY2FsZTogZ2V0RGVzY3JpcHRvcihsLCAic2NhbGUiKSwKICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGdldERlc2NyaXB0b3IobCwgInBvc2l0aW9uIiksCiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IGdldERlc2NyaXB0b3IobCwgIm9wYWNpdHkiKSwKICAgICAgICAgICAgICAgICAgYW5jaG9yUG9pbnQ6IGQsCiAgICAgICAgICAgICAgICAgIGFuY2hvcl9wb2ludDogZCwKICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbDsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBhY3RpdmU6IHsKICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1LmlzSW5SYW5nZTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAocC5zdGFydFRpbWUgPSB1LmRhdGEuc3QpLAogICAgICAgICAgICAgICAgKHAuaW5kZXggPSB1LmRhdGEuaW5kKSwKICAgICAgICAgICAgICAgIChwLnNvdXJjZSA9IHUuZGF0YS5yZWZJZCksCiAgICAgICAgICAgICAgICAocC5oZWlnaHQgPSB1LmRhdGEudHkgPT09IDAgPyB1LmRhdGEuaCA6IDEwMCksCiAgICAgICAgICAgICAgICAocC53aWR0aCA9IHUuZGF0YS50eSA9PT0gMCA/IHUuZGF0YS53IDogMTAwKSwKICAgICAgICAgICAgICAgIChwLmluUG9pbnQgPSB1LmRhdGEuaXAgLyB1LmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUpLAogICAgICAgICAgICAgICAgKHAub3V0UG9pbnQgPSB1LmRhdGEub3AgLyB1LmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUpLAogICAgICAgICAgICAgICAgKHAuX25hbWUgPSB1LmRhdGEubm0pLAogICAgICAgICAgICAgICAgKHAucmVnaXN0ZXJNYXNrSW50ZXJmYWNlID0gZnVuY3Rpb24gKGgpIHsKICAgICAgICAgICAgICAgICAgcC5tYXNrID0gbmV3IE1hc2tNYW5hZ2VySW50ZXJmYWNlKGgsIHUpOwogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAocC5yZWdpc3RlckVmZmVjdHNJbnRlcmZhY2UgPSBmdW5jdGlvbiAoaCkgewogICAgICAgICAgICAgICAgICBwLmVmZmVjdCA9IGg7CiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIHAKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9OwogICAgICAgICAgfSkoKSwKICAgICAgICAgIHByb3BlcnR5R3JvdXBGYWN0b3J5ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChyKSB7CiAgICAgICAgICAgICAgcmV0dXJuIChyID0gciA9PT0gdm9pZCAwID8gMSA6IHIpIDw9IDAgPyBlIDogdChyIC0gMSk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9LAogICAgICAgICAgUHJvcGVydHlJbnRlcmZhY2UgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciA9IHsgX25hbWU6IGUgfTsKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChuKSB7CiAgICAgICAgICAgICAgcmV0dXJuIChuID0gbiA9PT0gdm9pZCAwID8gMSA6IG4pIDw9IDAgPyByIDogdChuIC0gMSk7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9LAogICAgICAgICAgRWZmZWN0c0V4cHJlc3Npb25JbnRlcmZhY2UgPSAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmdW5jdGlvbiBlKHIsIG4sIGksIGEpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiBvKHApIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIGQgPSByLmVmLCBoID0gMCwgbSA9IGQubGVuZ3RoOyBoIDwgbTsgKSB7CiAgICAgICAgICAgICAgICAgIGlmIChwID09PSBkW2hdLm5tIHx8IHAgPT09IGRbaF0ubW4gfHwgcCA9PT0gZFtoXS5peCkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZFtoXS50eSA9PT0gNSA/IHVbaF0gOiB1W2hdKCk7CiAgICAgICAgICAgICAgICAgIGggKz0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgcywKICAgICAgICAgICAgICAgIGMgPSBwcm9wZXJ0eUdyb3VwRmFjdG9yeShvLCBpKSwKICAgICAgICAgICAgICAgIHUgPSBbXSwKICAgICAgICAgICAgICAgIGwgPSByLmVmLmxlbmd0aDsKICAgICAgICAgICAgICBmb3IgKHMgPSAwOyBzIDwgbDsgcyArPSAxKQogICAgICAgICAgICAgICAgci5lZltzXS50eSA9PT0gNQogICAgICAgICAgICAgICAgICA/IHUucHVzaCgKICAgICAgICAgICAgICAgICAgICAgIGUoCiAgICAgICAgICAgICAgICAgICAgICAgIHIuZWZbc10sCiAgICAgICAgICAgICAgICAgICAgICAgIG4uZWZmZWN0RWxlbWVudHNbc10sCiAgICAgICAgICAgICAgICAgICAgICAgIG4uZWZmZWN0RWxlbWVudHNbc10ucHJvcGVydHlHcm91cCwKICAgICAgICAgICAgICAgICAgICAgICAgYQogICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgOiB1LnB1c2godChuLmVmZmVjdEVsZW1lbnRzW3NdLCByLmVmW3NdLnR5LCBhLCBjKSk7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIHIubW4gPT09ICJBREJFIENvbG9yIENvbnRyb2wiICYmCiAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiY29sb3IiLCB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdVswXSgpOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobywgewogICAgICAgICAgICAgICAgICBudW1Qcm9wZXJ0aWVzOiB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gci5ucDsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBfbmFtZTogeyB2YWx1ZTogci5ubSB9LAogICAgICAgICAgICAgICAgICBwcm9wZXJ0eUdyb3VwOiB7IHZhbHVlOiBjIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIChvLmVuYWJsZWQgPSByLmVuICE9PSAwKSwKICAgICAgICAgICAgICAgIChvLmFjdGl2ZSA9IG8uZW5hYmxlZCksCiAgICAgICAgICAgICAgICBvCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiB0KHIsIG4sIGksIGEpIHsKICAgICAgICAgICAgICB2YXIgbyA9IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShyLnApOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICByLnAuc2V0R3JvdXBQcm9wZXJ0eSAmJgogICAgICAgICAgICAgICAgICByLnAuc2V0R3JvdXBQcm9wZXJ0eShQcm9wZXJ0eUludGVyZmFjZSgiIiwgYSkpLAogICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gbiA9PT0gMTAgPyBpLmNvbXAuY29tcEludGVyZmFjZShyLnAudikgOiBvKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIGNyZWF0ZUVmZmVjdHNJbnRlcmZhY2U6IGZ1bmN0aW9uIChyLCBuKSB7CiAgICAgICAgICAgICAgICBpZiAoci5lZmZlY3RzTWFuYWdlcikgewogICAgICAgICAgICAgICAgICB2YXIgaSwKICAgICAgICAgICAgICAgICAgICBhID0gW10sCiAgICAgICAgICAgICAgICAgICAgbyA9IHIuZGF0YS5lZiwKICAgICAgICAgICAgICAgICAgICBzID0gci5lZmZlY3RzTWFuYWdlci5lZmZlY3RFbGVtZW50cy5sZW5ndGg7CiAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzOyBpICs9IDEpCiAgICAgICAgICAgICAgICAgICAgYS5wdXNoKGUob1tpXSwgci5lZmZlY3RzTWFuYWdlci5lZmZlY3RFbGVtZW50c1tpXSwgbiwgcikpOwogICAgICAgICAgICAgICAgICB2YXIgYyA9IHIuZGF0YS5lZiB8fCBbXSwKICAgICAgICAgICAgICAgICAgICB1ID0gZnVuY3Rpb24gKGwpIHsKICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDAsIHMgPSBjLmxlbmd0aDsgaSA8IHM7ICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAobCA9PT0gY1tpXS5ubSB8fCBsID09PSBjW2ldLm1uIHx8IGwgPT09IGNbaV0uaXgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFbaV07CiAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gMTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHUsICJudW1Qcm9wZXJ0aWVzIiwgewogICAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjLmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgdQogICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pKCksCiAgICAgICAgICBTaGFwZVBhdGhJbnRlcmZhY2UgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICB2YXIgbiA9IHQuc2g7CiAgICAgICAgICAgIGZ1bmN0aW9uIGkobykgewogICAgICAgICAgICAgIHJldHVybiBvID09PSAiU2hhcGUiIHx8CiAgICAgICAgICAgICAgICBvID09PSAic2hhcGUiIHx8CiAgICAgICAgICAgICAgICBvID09PSAiUGF0aCIgfHwKICAgICAgICAgICAgICAgIG8gPT09ICJwYXRoIiB8fAogICAgICAgICAgICAgICAgbyA9PT0gIkFEQkUgVmVjdG9yIFNoYXBlIiB8fAogICAgICAgICAgICAgICAgbyA9PT0gMgogICAgICAgICAgICAgICAgPyBpLnBhdGgKICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgYSA9IHByb3BlcnR5R3JvdXBGYWN0b3J5KGksIHIpOwogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIG4uc2V0R3JvdXBQcm9wZXJ0eShQcm9wZXJ0eUludGVyZmFjZSgiUGF0aCIsIGEpKSwKICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhpLCB7CiAgICAgICAgICAgICAgICBwYXRoOiB7CiAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBuLmsgJiYgbi5nZXRWYWx1ZSgpLCBuOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHNoYXBlOiB7CiAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBuLmsgJiYgbi5nZXRWYWx1ZSgpLCBuOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF9uYW1lOiB7IHZhbHVlOiBlLm5tIH0sCiAgICAgICAgICAgICAgICBpeDogeyB2YWx1ZTogZS5peCB9LAogICAgICAgICAgICAgICAgcHJvcGVydHlJbmRleDogeyB2YWx1ZTogZS5peCB9LAogICAgICAgICAgICAgICAgbW46IHsgdmFsdWU6IGUubW4gfSwKICAgICAgICAgICAgICAgIHByb3BlcnR5R3JvdXA6IHsgdmFsdWU6IHIgfSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBpCiAgICAgICAgICAgICk7CiAgICAgICAgICB9LAogICAgICAgICAgU2hhcGVFeHByZXNzaW9uSW50ZXJmYWNlID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgZnVuY3Rpb24gZShoLCBtLCB2KSB7CiAgICAgICAgICAgICAgdmFyIHksCiAgICAgICAgICAgICAgICBnID0gW10sCiAgICAgICAgICAgICAgICBNID0gaCA/IGgubGVuZ3RoIDogMDsKICAgICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgTTsgeSArPSAxKQogICAgICAgICAgICAgICAgaFt5XS50eSA9PT0gImdyIgogICAgICAgICAgICAgICAgICA/IGcucHVzaCh0KGhbeV0sIG1beV0sIHYpKQogICAgICAgICAgICAgICAgICA6IGhbeV0udHkgPT09ICJmbCIKICAgICAgICAgICAgICAgICAgPyBnLnB1c2gocihoW3ldLCBtW3ldLCB2KSkKICAgICAgICAgICAgICAgICAgOiBoW3ldLnR5ID09PSAic3QiCiAgICAgICAgICAgICAgICAgID8gZy5wdXNoKGEoaFt5XSwgbVt5XSwgdikpCiAgICAgICAgICAgICAgICAgIDogaFt5XS50eSA9PT0gInRtIgogICAgICAgICAgICAgICAgICA/IGcucHVzaChvKGhbeV0sIG1beV0sIHYpKQogICAgICAgICAgICAgICAgICA6IGhbeV0udHkgPT09ICJ0ciIgfHwKICAgICAgICAgICAgICAgICAgICAoaFt5XS50eSA9PT0gImVsIgogICAgICAgICAgICAgICAgICAgICAgPyBnLnB1c2goYyhoW3ldLCBtW3ldLCB2KSkKICAgICAgICAgICAgICAgICAgICAgIDogaFt5XS50eSA9PT0gInNyIgogICAgICAgICAgICAgICAgICAgICAgPyBnLnB1c2godShoW3ldLCBtW3ldLCB2KSkKICAgICAgICAgICAgICAgICAgICAgIDogaFt5XS50eSA9PT0gInNoIgogICAgICAgICAgICAgICAgICAgICAgPyBnLnB1c2goU2hhcGVQYXRoSW50ZXJmYWNlKGhbeV0sIG1beV0sIHYpKQogICAgICAgICAgICAgICAgICAgICAgOiBoW3ldLnR5ID09PSAicmMiCiAgICAgICAgICAgICAgICAgICAgICA/IGcucHVzaChsKGhbeV0sIG1beV0sIHYpKQogICAgICAgICAgICAgICAgICAgICAgOiBoW3ldLnR5ID09PSAicmQiCiAgICAgICAgICAgICAgICAgICAgICA/IGcucHVzaChwKGhbeV0sIG1beV0sIHYpKQogICAgICAgICAgICAgICAgICAgICAgOiBoW3ldLnR5ID09PSAicnAiCiAgICAgICAgICAgICAgICAgICAgICA/IGcucHVzaChkKGhbeV0sIG1beV0sIHYpKQogICAgICAgICAgICAgICAgICAgICAgOiBoW3ldLnR5ID09PSAiZ2YiCiAgICAgICAgICAgICAgICAgICAgICA/IGcucHVzaChuKGhbeV0sIG1beV0sIHYpKQogICAgICAgICAgICAgICAgICAgICAgOiBnLnB1c2goaShoW3ldLCBtW3ldKSkpOwogICAgICAgICAgICAgIHJldHVybiBnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHQoaCwgbSwgdikgewogICAgICAgICAgICAgIHZhciB5ID0gZnVuY3Rpb24gKEEpIHsKICAgICAgICAgICAgICAgIHN3aXRjaCAoQSkgewogICAgICAgICAgICAgICAgICBjYXNlICJBREJFIFZlY3RvcnMgR3JvdXAiOgogICAgICAgICAgICAgICAgICBjYXNlICJDb250ZW50cyI6CiAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4geS5jb250ZW50OwogICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB5LnRyYW5zZm9ybTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIHkucHJvcGVydHlHcm91cCA9IHByb3BlcnR5R3JvdXBGYWN0b3J5KHksIHYpOwogICAgICAgICAgICAgIHZhciBnID0gKGZ1bmN0aW9uIChBLCBfLCBDKSB7CiAgICAgICAgICAgICAgICAgIHZhciBSLAogICAgICAgICAgICAgICAgICAgIEwgPSBmdW5jdGlvbiAoVykgewogICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDAsIHEgPSBSLmxlbmd0aDsgayA8IHE7ICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgUltrXS5fbmFtZSA9PT0gVyB8fAogICAgICAgICAgICAgICAgICAgICAgICAgIFJba10ubW4gPT09IFcgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICBSW2tdLnByb3BlcnR5SW5kZXggPT09IFcgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICBSW2tdLml4ID09PSBXIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgUltrXS5pbmQgPT09IFcKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSW2tdOwogICAgICAgICAgICAgICAgICAgICAgICBrICs9IDE7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIFcgPT0gIm51bWJlciIgPyBSW1cgLSAxXSA6IG51bGw7CiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgKEwucHJvcGVydHlHcm91cCA9IHByb3BlcnR5R3JvdXBGYWN0b3J5KEwsIEMpKSwKICAgICAgICAgICAgICAgICAgICAoUiA9IGUoQS5pdCwgXy5pdCwgTC5wcm9wZXJ0eUdyb3VwKSksCiAgICAgICAgICAgICAgICAgICAgKEwubnVtUHJvcGVydGllcyA9IFIubGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgdmFyIE4gPSBzKAogICAgICAgICAgICAgICAgICAgIEEuaXRbQS5pdC5sZW5ndGggLSAxXSwKICAgICAgICAgICAgICAgICAgICBfLml0W18uaXQubGVuZ3RoIC0gMV0sCiAgICAgICAgICAgICAgICAgICAgTC5wcm9wZXJ0eUdyb3VwCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICAgICAgKEwudHJhbnNmb3JtID0gTiksCiAgICAgICAgICAgICAgICAgICAgKEwucHJvcGVydHlJbmRleCA9IEEuY2l4KSwKICAgICAgICAgICAgICAgICAgICAoTC5fbmFtZSA9IEEubm0pLAogICAgICAgICAgICAgICAgICAgIEwKICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0pKGgsIG0sIHkucHJvcGVydHlHcm91cCksCiAgICAgICAgICAgICAgICBNID0gcygKICAgICAgICAgICAgICAgICAgaC5pdFtoLml0Lmxlbmd0aCAtIDFdLAogICAgICAgICAgICAgICAgICBtLml0W20uaXQubGVuZ3RoIC0gMV0sCiAgICAgICAgICAgICAgICAgIHkucHJvcGVydHlHcm91cAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKHkuY29udGVudCA9IGcpLAogICAgICAgICAgICAgICAgKHkudHJhbnNmb3JtID0gTSksCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwgIl9uYW1lIiwgewogICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaC5ubTsKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHkubnVtUHJvcGVydGllcyA9IGgubnApLAogICAgICAgICAgICAgICAgKHkucHJvcGVydHlJbmRleCA9IGguaXgpLAogICAgICAgICAgICAgICAgKHkubm0gPSBoLm5tKSwKICAgICAgICAgICAgICAgICh5Lm1uID0gaC5tbiksCiAgICAgICAgICAgICAgICB5CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiByKGgsIG0sIHYpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiB5KGcpIHsKICAgICAgICAgICAgICAgIHJldHVybiBnID09PSAiQ29sb3IiIHx8IGcgPT09ICJjb2xvciIKICAgICAgICAgICAgICAgICAgPyB5LmNvbG9yCiAgICAgICAgICAgICAgICAgIDogZyA9PT0gIk9wYWNpdHkiIHx8IGcgPT09ICJvcGFjaXR5IgogICAgICAgICAgICAgICAgICA/IHkub3BhY2l0eQogICAgICAgICAgICAgICAgICA6IG51bGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh5LCB7CiAgICAgICAgICAgICAgICAgIGNvbG9yOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKG0uYykgfSwKICAgICAgICAgICAgICAgICAgb3BhY2l0eTogeyBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShtLm8pIH0sCiAgICAgICAgICAgICAgICAgIF9uYW1lOiB7IHZhbHVlOiBoLm5tIH0sCiAgICAgICAgICAgICAgICAgIG1uOiB7IHZhbHVlOiBoLm1uIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIG0uYy5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJDb2xvciIsIHYpKSwKICAgICAgICAgICAgICAgIG0uby5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJPcGFjaXR5IiwgdikpLAogICAgICAgICAgICAgICAgeQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gbihoLCBtLCB2KSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24geShnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZyA9PT0gIlN0YXJ0IFBvaW50IiB8fCBnID09PSAic3RhcnQgcG9pbnQiCiAgICAgICAgICAgICAgICAgID8geS5zdGFydFBvaW50CiAgICAgICAgICAgICAgICAgIDogZyA9PT0gIkVuZCBQb2ludCIgfHwgZyA9PT0gImVuZCBwb2ludCIKICAgICAgICAgICAgICAgICAgPyB5LmVuZFBvaW50CiAgICAgICAgICAgICAgICAgIDogZyA9PT0gIk9wYWNpdHkiIHx8IGcgPT09ICJvcGFjaXR5IgogICAgICAgICAgICAgICAgICA/IHkub3BhY2l0eQogICAgICAgICAgICAgICAgICA6IG51bGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh5LCB7CiAgICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQ6IHsgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UobS5zKSB9LAogICAgICAgICAgICAgICAgICBlbmRQb2ludDogeyBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShtLmUpIH0sCiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IHsgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UobS5vKSB9LAogICAgICAgICAgICAgICAgICB0eXBlOiB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gImEiOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIF9uYW1lOiB7IHZhbHVlOiBoLm5tIH0sCiAgICAgICAgICAgICAgICAgIG1uOiB7IHZhbHVlOiBoLm1uIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIG0ucy5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJTdGFydCBQb2ludCIsIHYpKSwKICAgICAgICAgICAgICAgIG0uZS5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJFbmQgUG9pbnQiLCB2KSksCiAgICAgICAgICAgICAgICBtLm8uc2V0R3JvdXBQcm9wZXJ0eShQcm9wZXJ0eUludGVyZmFjZSgiT3BhY2l0eSIsIHYpKSwKICAgICAgICAgICAgICAgIHkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGkoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gYShoLCBtLCB2KSB7CiAgICAgICAgICAgICAgdmFyIHksCiAgICAgICAgICAgICAgICBnID0gcHJvcGVydHlHcm91cEZhY3RvcnkoUiwgdiksCiAgICAgICAgICAgICAgICBNID0gcHJvcGVydHlHcm91cEZhY3RvcnkoQywgZyk7CiAgICAgICAgICAgICAgZnVuY3Rpb24gQShMKSB7CiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQywgaC5kW0xdLm5tLCB7CiAgICAgICAgICAgICAgICAgIGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKG0uZC5kYXRhUHJvcHNbTF0ucCksCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIF8gPSBoLmQgPyBoLmQubGVuZ3RoIDogMCwKICAgICAgICAgICAgICAgIEMgPSB7fTsKICAgICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgXzsgeSArPSAxKQogICAgICAgICAgICAgICAgQSh5KSwgbS5kLmRhdGFQcm9wc1t5XS5wLnNldEdyb3VwUHJvcGVydHkoTSk7CiAgICAgICAgICAgICAgZnVuY3Rpb24gUihMKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gTCA9PT0gIkNvbG9yIiB8fCBMID09PSAiY29sb3IiCiAgICAgICAgICAgICAgICAgID8gUi5jb2xvcgogICAgICAgICAgICAgICAgICA6IEwgPT09ICJPcGFjaXR5IiB8fCBMID09PSAib3BhY2l0eSIKICAgICAgICAgICAgICAgICAgPyBSLm9wYWNpdHkKICAgICAgICAgICAgICAgICAgOiBMID09PSAiU3Ryb2tlIFdpZHRoIiB8fCBMID09PSAic3Ryb2tlIHdpZHRoIgogICAgICAgICAgICAgICAgICA/IFIuc3Ryb2tlV2lkdGgKICAgICAgICAgICAgICAgICAgOiBudWxsOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoUiwgewogICAgICAgICAgICAgICAgICBjb2xvcjogeyBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShtLmMpIH0sCiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IHsgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UobS5vKSB9LAogICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogeyBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShtLncpIH0sCiAgICAgICAgICAgICAgICAgIGRhc2g6IHsKICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIF9uYW1lOiB7IHZhbHVlOiBoLm5tIH0sCiAgICAgICAgICAgICAgICAgIG1uOiB7IHZhbHVlOiBoLm1uIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgIG0uYy5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJDb2xvciIsIGcpKSwKICAgICAgICAgICAgICAgIG0uby5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJPcGFjaXR5IiwgZykpLAogICAgICAgICAgICAgICAgbS53LnNldEdyb3VwUHJvcGVydHkoUHJvcGVydHlJbnRlcmZhY2UoIlN0cm9rZSBXaWR0aCIsIGcpKSwKICAgICAgICAgICAgICAgIFIKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIG8oaCwgbSwgdikgewogICAgICAgICAgICAgIGZ1bmN0aW9uIHkoTSkgewogICAgICAgICAgICAgICAgcmV0dXJuIE0gPT09IGguZS5peCB8fCBNID09PSAiRW5kIiB8fCBNID09PSAiZW5kIgogICAgICAgICAgICAgICAgICA/IHkuZW5kCiAgICAgICAgICAgICAgICAgIDogTSA9PT0gaC5zLml4CiAgICAgICAgICAgICAgICAgID8geS5zdGFydAogICAgICAgICAgICAgICAgICA6IE0gPT09IGguby5peAogICAgICAgICAgICAgICAgICA/IHkub2Zmc2V0CiAgICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIGcgPSBwcm9wZXJ0eUdyb3VwRmFjdG9yeSh5LCB2KTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgKHkucHJvcGVydHlJbmRleCA9IGguaXgpLAogICAgICAgICAgICAgICAgbS5zLnNldEdyb3VwUHJvcGVydHkoUHJvcGVydHlJbnRlcmZhY2UoIlN0YXJ0IiwgZykpLAogICAgICAgICAgICAgICAgbS5lLnNldEdyb3VwUHJvcGVydHkoUHJvcGVydHlJbnRlcmZhY2UoIkVuZCIsIGcpKSwKICAgICAgICAgICAgICAgIG0uby5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJPZmZzZXQiLCBnKSksCiAgICAgICAgICAgICAgICAoeS5wcm9wZXJ0eUluZGV4ID0gaC5peCksCiAgICAgICAgICAgICAgICAoeS5wcm9wZXJ0eUdyb3VwID0gdiksCiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh5LCB7CiAgICAgICAgICAgICAgICAgIHN0YXJ0OiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKG0ucykgfSwKICAgICAgICAgICAgICAgICAgZW5kOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKG0uZSkgfSwKICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKG0ubykgfSwKICAgICAgICAgICAgICAgICAgX25hbWU6IHsgdmFsdWU6IGgubm0gfSwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHkubW4gPSBoLm1uKSwKICAgICAgICAgICAgICAgIHkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHMoaCwgbSwgdikgewogICAgICAgICAgICAgIGZ1bmN0aW9uIHkoTSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGguYS5peCA9PT0gTSB8fCBNID09PSAiQW5jaG9yIFBvaW50IgogICAgICAgICAgICAgICAgICA/IHkuYW5jaG9yUG9pbnQKICAgICAgICAgICAgICAgICAgOiBoLm8uaXggPT09IE0gfHwgTSA9PT0gIk9wYWNpdHkiCiAgICAgICAgICAgICAgICAgID8geS5vcGFjaXR5CiAgICAgICAgICAgICAgICAgIDogaC5wLml4ID09PSBNIHx8IE0gPT09ICJQb3NpdGlvbiIKICAgICAgICAgICAgICAgICAgPyB5LnBvc2l0aW9uCiAgICAgICAgICAgICAgICAgIDogaC5yLml4ID09PSBNIHx8CiAgICAgICAgICAgICAgICAgICAgTSA9PT0gIlJvdGF0aW9uIiB8fAogICAgICAgICAgICAgICAgICAgIE0gPT09ICJBREJFIFZlY3RvciBSb3RhdGlvbiIKICAgICAgICAgICAgICAgICAgPyB5LnJvdGF0aW9uCiAgICAgICAgICAgICAgICAgIDogaC5zLml4ID09PSBNIHx8IE0gPT09ICJTY2FsZSIKICAgICAgICAgICAgICAgICAgPyB5LnNjYWxlCiAgICAgICAgICAgICAgICAgIDogKGguc2sgJiYgaC5zay5peCA9PT0gTSkgfHwgTSA9PT0gIlNrZXciCiAgICAgICAgICAgICAgICAgID8geS5za2V3CiAgICAgICAgICAgICAgICAgIDogKGguc2EgJiYgaC5zYS5peCA9PT0gTSkgfHwgTSA9PT0gIlNrZXcgQXhpcyIKICAgICAgICAgICAgICAgICAgPyB5LnNrZXdBeGlzCiAgICAgICAgICAgICAgICAgIDogbnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdmFyIGcgPSBwcm9wZXJ0eUdyb3VwRmFjdG9yeSh5LCB2KTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgbS50cmFuc2Zvcm0ubVByb3BzLm8uc2V0R3JvdXBQcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAgUHJvcGVydHlJbnRlcmZhY2UoIk9wYWNpdHkiLCBnKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIG0udHJhbnNmb3JtLm1Qcm9wcy5wLnNldEdyb3VwUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgIFByb3BlcnR5SW50ZXJmYWNlKCJQb3NpdGlvbiIsIGcpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgbS50cmFuc2Zvcm0ubVByb3BzLmEuc2V0R3JvdXBQcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAgUHJvcGVydHlJbnRlcmZhY2UoIkFuY2hvciBQb2ludCIsIGcpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgbS50cmFuc2Zvcm0ubVByb3BzLnMuc2V0R3JvdXBQcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAgUHJvcGVydHlJbnRlcmZhY2UoIlNjYWxlIiwgZykKICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBtLnRyYW5zZm9ybS5tUHJvcHMuci5zZXRHcm91cFByb3BlcnR5KAogICAgICAgICAgICAgICAgICBQcm9wZXJ0eUludGVyZmFjZSgiUm90YXRpb24iLCBnKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIG0udHJhbnNmb3JtLm1Qcm9wcy5zayAmJgogICAgICAgICAgICAgICAgICAobS50cmFuc2Zvcm0ubVByb3BzLnNrLnNldEdyb3VwUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydHlJbnRlcmZhY2UoIlNrZXciLCBnKQogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBtLnRyYW5zZm9ybS5tUHJvcHMuc2Euc2V0R3JvdXBQcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eUludGVyZmFjZSgiU2tldyBBbmdsZSIsIGcpCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgbS50cmFuc2Zvcm0ub3Auc2V0R3JvdXBQcm9wZXJ0eSgKICAgICAgICAgICAgICAgICAgUHJvcGVydHlJbnRlcmZhY2UoIk9wYWNpdHkiLCBnKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHksIHsKICAgICAgICAgICAgICAgICAgb3BhY2l0eTogewogICAgICAgICAgICAgICAgICAgIGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKG0udHJhbnNmb3JtLm1Qcm9wcy5vKSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHsKICAgICAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShtLnRyYW5zZm9ybS5tUHJvcHMucCksCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIGFuY2hvclBvaW50OiB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UobS50cmFuc2Zvcm0ubVByb3BzLmEpLAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBzY2FsZTogewogICAgICAgICAgICAgICAgICAgIGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKG0udHJhbnNmb3JtLm1Qcm9wcy5zKSwKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgcm90YXRpb246IHsKICAgICAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShtLnRyYW5zZm9ybS5tUHJvcHMuciksCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHNrZXc6IHsKICAgICAgICAgICAgICAgICAgICBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShtLnRyYW5zZm9ybS5tUHJvcHMuc2spLAogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBza2V3QXhpczogewogICAgICAgICAgICAgICAgICAgIGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKG0udHJhbnNmb3JtLm1Qcm9wcy5zYSksCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIF9uYW1lOiB7IHZhbHVlOiBoLm5tIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICh5LnR5ID0gInRyIiksCiAgICAgICAgICAgICAgICAoeS5tbiA9IGgubW4pLAogICAgICAgICAgICAgICAgKHkucHJvcGVydHlHcm91cCA9IHYpLAogICAgICAgICAgICAgICAgeQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gYyhoLCBtLCB2KSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24geShBKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaC5wLml4ID09PSBBID8geS5wb3NpdGlvbiA6IGgucy5peCA9PT0gQSA/IHkuc2l6ZSA6IG51bGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBnID0gcHJvcGVydHlHcm91cEZhY3RvcnkoeSwgdik7CiAgICAgICAgICAgICAgeS5wcm9wZXJ0eUluZGV4ID0gaC5peDsKICAgICAgICAgICAgICB2YXIgTSA9IG0uc2gudHkgPT09ICJ0bSIgPyBtLnNoLnByb3AgOiBtLnNoOwogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBNLnMuc2V0R3JvdXBQcm9wZXJ0eShQcm9wZXJ0eUludGVyZmFjZSgiU2l6ZSIsIGcpKSwKICAgICAgICAgICAgICAgIE0ucC5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJQb3NpdGlvbiIsIGcpKSwKICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHksIHsKICAgICAgICAgICAgICAgICAgc2l6ZTogeyBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShNLnMpIH0sCiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKE0ucCkgfSwKICAgICAgICAgICAgICAgICAgX25hbWU6IHsgdmFsdWU6IGgubm0gfSwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHkubW4gPSBoLm1uKSwKICAgICAgICAgICAgICAgIHkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIHUoaCwgbSwgdikgewogICAgICAgICAgICAgIGZ1bmN0aW9uIHkoQSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGgucC5peCA9PT0gQQogICAgICAgICAgICAgICAgICA/IHkucG9zaXRpb24KICAgICAgICAgICAgICAgICAgOiBoLnIuaXggPT09IEEKICAgICAgICAgICAgICAgICAgPyB5LnJvdGF0aW9uCiAgICAgICAgICAgICAgICAgIDogaC5wdC5peCA9PT0gQQogICAgICAgICAgICAgICAgICA/IHkucG9pbnRzCiAgICAgICAgICAgICAgICAgIDogaC5vci5peCA9PT0gQSB8fCBBID09PSAiQURCRSBWZWN0b3IgU3RhciBPdXRlciBSYWRpdXMiCiAgICAgICAgICAgICAgICAgID8geS5vdXRlclJhZGl1cwogICAgICAgICAgICAgICAgICA6IGgub3MuaXggPT09IEEKICAgICAgICAgICAgICAgICAgPyB5Lm91dGVyUm91bmRuZXNzCiAgICAgICAgICAgICAgICAgIDogIWguaXIgfHwKICAgICAgICAgICAgICAgICAgICAoaC5pci5peCAhPT0gQSAmJiBBICE9PSAiQURCRSBWZWN0b3IgU3RhciBJbm5lciBSYWRpdXMiKQogICAgICAgICAgICAgICAgICA/IGguaXMgJiYgaC5pcy5peCA9PT0gQQogICAgICAgICAgICAgICAgICAgID8geS5pbm5lclJvdW5kbmVzcwogICAgICAgICAgICAgICAgICAgIDogbnVsbAogICAgICAgICAgICAgICAgICA6IHkuaW5uZXJSYWRpdXM7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBnID0gcHJvcGVydHlHcm91cEZhY3RvcnkoeSwgdiksCiAgICAgICAgICAgICAgICBNID0gbS5zaC50eSA9PT0gInRtIiA/IG0uc2gucHJvcCA6IG0uc2g7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICh5LnByb3BlcnR5SW5kZXggPSBoLml4KSwKICAgICAgICAgICAgICAgIE0ub3Iuc2V0R3JvdXBQcm9wZXJ0eShQcm9wZXJ0eUludGVyZmFjZSgiT3V0ZXIgUmFkaXVzIiwgZykpLAogICAgICAgICAgICAgICAgTS5vcy5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJPdXRlciBSb3VuZG5lc3MiLCBnKSksCiAgICAgICAgICAgICAgICBNLnB0LnNldEdyb3VwUHJvcGVydHkoUHJvcGVydHlJbnRlcmZhY2UoIlBvaW50cyIsIGcpKSwKICAgICAgICAgICAgICAgIE0ucC5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJQb3NpdGlvbiIsIGcpKSwKICAgICAgICAgICAgICAgIE0uci5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJSb3RhdGlvbiIsIGcpKSwKICAgICAgICAgICAgICAgIGguaXIgJiYKICAgICAgICAgICAgICAgICAgKE0uaXIuc2V0R3JvdXBQcm9wZXJ0eShQcm9wZXJ0eUludGVyZmFjZSgiSW5uZXIgUmFkaXVzIiwgZykpLAogICAgICAgICAgICAgICAgICBNLmlzLnNldEdyb3VwUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgICAgUHJvcGVydHlJbnRlcmZhY2UoIklubmVyIFJvdW5kbmVzcyIsIGcpCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeSwgewogICAgICAgICAgICAgICAgICBwb3NpdGlvbjogeyBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShNLnApIH0sCiAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKE0ucikgfSwKICAgICAgICAgICAgICAgICAgcG9pbnRzOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKE0ucHQpIH0sCiAgICAgICAgICAgICAgICAgIG91dGVyUmFkaXVzOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKE0ub3IpIH0sCiAgICAgICAgICAgICAgICAgIG91dGVyUm91bmRuZXNzOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKE0ub3MpIH0sCiAgICAgICAgICAgICAgICAgIGlubmVyUmFkaXVzOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKE0uaXIpIH0sCiAgICAgICAgICAgICAgICAgIGlubmVyUm91bmRuZXNzOiB7IGdldDogRXhwcmVzc2lvblByb3BlcnR5SW50ZXJmYWNlKE0uaXMpIH0sCiAgICAgICAgICAgICAgICAgIF9uYW1lOiB7IHZhbHVlOiBoLm5tIH0sCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICh5Lm1uID0gaC5tbiksCiAgICAgICAgICAgICAgICB5CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmdW5jdGlvbiBsKGgsIG0sIHYpIHsKICAgICAgICAgICAgICBmdW5jdGlvbiB5KEEpIHsKICAgICAgICAgICAgICAgIHJldHVybiBoLnAuaXggPT09IEEKICAgICAgICAgICAgICAgICAgPyB5LnBvc2l0aW9uCiAgICAgICAgICAgICAgICAgIDogaC5yLml4ID09PSBBCiAgICAgICAgICAgICAgICAgID8geS5yb3VuZG5lc3MKICAgICAgICAgICAgICAgICAgOiBoLnMuaXggPT09IEEgfHwKICAgICAgICAgICAgICAgICAgICBBID09PSAiU2l6ZSIgfHwKICAgICAgICAgICAgICAgICAgICBBID09PSAiQURCRSBWZWN0b3IgUmVjdCBTaXplIgogICAgICAgICAgICAgICAgICA/IHkuc2l6ZQogICAgICAgICAgICAgICAgICA6IG51bGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBnID0gcHJvcGVydHlHcm91cEZhY3RvcnkoeSwgdiksCiAgICAgICAgICAgICAgICBNID0gbS5zaC50eSA9PT0gInRtIiA/IG0uc2gucHJvcCA6IG0uc2g7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICh5LnByb3BlcnR5SW5kZXggPSBoLml4KSwKICAgICAgICAgICAgICAgIE0ucC5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJQb3NpdGlvbiIsIGcpKSwKICAgICAgICAgICAgICAgIE0ucy5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJTaXplIiwgZykpLAogICAgICAgICAgICAgICAgTS5yLnNldEdyb3VwUHJvcGVydHkoUHJvcGVydHlJbnRlcmZhY2UoIlJvdGF0aW9uIiwgZykpLAogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeSwgewogICAgICAgICAgICAgICAgICBwb3NpdGlvbjogeyBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShNLnApIH0sCiAgICAgICAgICAgICAgICAgIHJvdW5kbmVzczogeyBnZXQ6IEV4cHJlc3Npb25Qcm9wZXJ0eUludGVyZmFjZShNLnIpIH0sCiAgICAgICAgICAgICAgICAgIHNpemU6IHsgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoTS5zKSB9LAogICAgICAgICAgICAgICAgICBfbmFtZTogeyB2YWx1ZTogaC5ubSB9LAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAoeS5tbiA9IGgubW4pLAogICAgICAgICAgICAgICAgeQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24gcChoLCBtLCB2KSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24geShBKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaC5yLml4ID09PSBBIHx8IEEgPT09ICJSb3VuZCBDb3JuZXJzIDEiCiAgICAgICAgICAgICAgICAgID8geS5yYWRpdXMKICAgICAgICAgICAgICAgICAgOiBudWxsOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgZyA9IHByb3BlcnR5R3JvdXBGYWN0b3J5KHksIHYpLAogICAgICAgICAgICAgICAgTSA9IG07CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICh5LnByb3BlcnR5SW5kZXggPSBoLml4KSwKICAgICAgICAgICAgICAgIE0ucmQuc2V0R3JvdXBQcm9wZXJ0eShQcm9wZXJ0eUludGVyZmFjZSgiUmFkaXVzIiwgZykpLAogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeSwgewogICAgICAgICAgICAgICAgICByYWRpdXM6IHsgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoTS5yZCkgfSwKICAgICAgICAgICAgICAgICAgX25hbWU6IHsgdmFsdWU6IGgubm0gfSwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHkubW4gPSBoLm1uKSwKICAgICAgICAgICAgICAgIHkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGQoaCwgbSwgdikgewogICAgICAgICAgICAgIGZ1bmN0aW9uIHkoQSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGguYy5peCA9PT0gQSB8fCBBID09PSAiQ29waWVzIgogICAgICAgICAgICAgICAgICA/IHkuY29waWVzCiAgICAgICAgICAgICAgICAgIDogaC5vLml4ID09PSBBIHx8IEEgPT09ICJPZmZzZXQiCiAgICAgICAgICAgICAgICAgID8geS5vZmZzZXQKICAgICAgICAgICAgICAgICAgOiBudWxsOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgZyA9IHByb3BlcnR5R3JvdXBGYWN0b3J5KHksIHYpLAogICAgICAgICAgICAgICAgTSA9IG07CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICh5LnByb3BlcnR5SW5kZXggPSBoLml4KSwKICAgICAgICAgICAgICAgIE0uYy5zZXRHcm91cFByb3BlcnR5KFByb3BlcnR5SW50ZXJmYWNlKCJDb3BpZXMiLCBnKSksCiAgICAgICAgICAgICAgICBNLm8uc2V0R3JvdXBQcm9wZXJ0eShQcm9wZXJ0eUludGVyZmFjZSgiT2Zmc2V0IiwgZykpLAogICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeSwgewogICAgICAgICAgICAgICAgICBjb3BpZXM6IHsgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoTS5jKSB9LAogICAgICAgICAgICAgICAgICBvZmZzZXQ6IHsgZ2V0OiBFeHByZXNzaW9uUHJvcGVydHlJbnRlcmZhY2UoTS5vKSB9LAogICAgICAgICAgICAgICAgICBfbmFtZTogeyB2YWx1ZTogaC5ubSB9LAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAoeS5tbiA9IGgubW4pLAogICAgICAgICAgICAgICAgeQogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChoLCBtLCB2KSB7CiAgICAgICAgICAgICAgdmFyIHk7CiAgICAgICAgICAgICAgZnVuY3Rpb24gZyhNKSB7CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIE0gPT0gIm51bWJlciIpCiAgICAgICAgICAgICAgICAgIHJldHVybiAoTSA9IE0gPT09IHZvaWQgMCA/IDEgOiBNKSA9PT0gMCA/IHYgOiB5W00gLSAxXTsKICAgICAgICAgICAgICAgIGZvciAodmFyIEEgPSAwLCBfID0geS5sZW5ndGg7IEEgPCBfOyApIHsKICAgICAgICAgICAgICAgICAgaWYgKHlbQV0uX25hbWUgPT09IE0pIHJldHVybiB5W0FdOwogICAgICAgICAgICAgICAgICBBICs9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgIChnLnByb3BlcnR5R3JvdXAgPSBwcm9wZXJ0eUdyb3VwRmFjdG9yeShnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiB2OwogICAgICAgICAgICAgICAgfSkpLAogICAgICAgICAgICAgICAgKHkgPSBlKGgsIG0sIGcucHJvcGVydHlHcm91cCkpLAogICAgICAgICAgICAgICAgKGcubnVtUHJvcGVydGllcyA9IHkubGVuZ3RoKSwKICAgICAgICAgICAgICAgIChnLl9uYW1lID0gIkNvbnRlbnRzIiksCiAgICAgICAgICAgICAgICBnCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pKCksCiAgICAgICAgICBUZXh0RXhwcmVzc2lvbkludGVyZmFjZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0OwogICAgICAgICAgICBmdW5jdGlvbiByKG4pIHsKICAgICAgICAgICAgICByZXR1cm4gbiA9PT0gIkFEQkUgVGV4dCBEb2N1bWVudCIgPyByLnNvdXJjZVRleHQgOiBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsICJzb3VyY2VUZXh0IiwgewogICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgIGUudGV4dFByb3BlcnR5LmdldFZhbHVlKCk7CiAgICAgICAgICAgICAgICAgIHZhciBuID0gZS50ZXh0UHJvcGVydHkuY3VycmVudERhdGEudDsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgICAodCAmJiBuID09PSB0LnZhbHVlKSB8fAogICAgICAgICAgICAgICAgICAgICAgKCgodCA9IG5ldyBTdHJpbmcobikpLnZhbHVlID0gbiB8fCBuZXcgU3RyaW5nKG4pKSwKICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCAic3R5bGUiLCB7CiAgICAgICAgICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGZpbGxDb2xvcjogZS50ZXh0UHJvcGVydHkuY3VycmVudERhdGEuZmMgfTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgIH0pKSwKICAgICAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIHIKICAgICAgICAgICAgKTsKICAgICAgICAgIH07CiAgICAgICAgZnVuY3Rpb24gX3R5cGVvZihlKSB7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoX3R5cGVvZiA9CiAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIHQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDogZnVuY3Rpb24gKHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdCAmJgogICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgICAgICAgICB0LmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYKICAgICAgICAgICAgICAgICAgICAgIHQgIT09IFN5bWJvbC5wcm90b3R5cGUKICAgICAgICAgICAgICAgICAgICAgID8gInN5bWJvbCIKICAgICAgICAgICAgICAgICAgICAgIDogdHlwZW9mIHQ7CiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICBfdHlwZW9mKGUpCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICB2YXIgRm9vdGFnZUludGVyZmFjZSA9CiAgICAgICAgICAgICgoZGF0YUludGVyZmFjZUZhY3RvcnkgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgIGZ1bmN0aW9uIHQocikgewogICAgICAgICAgICAgICAgcmV0dXJuIHIgPT09ICJPdXRsaW5lIiA/IHQub3V0bGluZUludGVyZmFjZSgpIDogbnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICh0Ll9uYW1lID0gIk91dGxpbmUiKSwKICAgICAgICAgICAgICAgICh0Lm91dGxpbmVJbnRlcmZhY2UgPSAoZnVuY3Rpb24gKHIpIHsKICAgICAgICAgICAgICAgICAgdmFyIG4gPSAiIiwKICAgICAgICAgICAgICAgICAgICBpID0gci5nZXRGb290YWdlRGF0YSgpOwogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhKG8pIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaVtvXSkKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAobiA9IG8pLCBfdHlwZW9mKChpID0gaVtvXSkpID09PSAib2JqZWN0IiA/IGEgOiBpOwogICAgICAgICAgICAgICAgICAgIHZhciBzID0gby5pbmRleE9mKG4pOwogICAgICAgICAgICAgICAgICAgIGlmIChzICE9PSAtMSkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBwYXJzZUludChvLnN1YnN0cihzICsgbi5sZW5ndGgpLCAxMCk7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3R5cGVvZigoaSA9IGlbY10pKSA9PT0gIm9iamVjdCIgPyBhIDogaTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICIiOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChuID0gIiIpLCAoaSA9IHIuZ2V0Rm9vdGFnZURhdGEoKSksIGE7CiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9KShlKSksCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgZnVuY3Rpb24gdChyKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gciA9PT0gIkRhdGEiID8gdC5kYXRhSW50ZXJmYWNlIDogbnVsbDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICh0Ll9uYW1lID0gIkRhdGEiKSwKICAgICAgICAgICAgICAgICh0LmRhdGFJbnRlcmZhY2UgPSBkYXRhSW50ZXJmYWNlRmFjdG9yeShlKSksCiAgICAgICAgICAgICAgICB0CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICBkYXRhSW50ZXJmYWNlRmFjdG9yeSwKICAgICAgICAgIGludGVyZmFjZXMgPSB7CiAgICAgICAgICAgIGxheWVyOiBMYXllckV4cHJlc3Npb25JbnRlcmZhY2UsCiAgICAgICAgICAgIGVmZmVjdHM6IEVmZmVjdHNFeHByZXNzaW9uSW50ZXJmYWNlLAogICAgICAgICAgICBjb21wOiBDb21wRXhwcmVzc2lvbkludGVyZmFjZSwKICAgICAgICAgICAgc2hhcGU6IFNoYXBlRXhwcmVzc2lvbkludGVyZmFjZSwKICAgICAgICAgICAgdGV4dDogVGV4dEV4cHJlc3Npb25JbnRlcmZhY2UsCiAgICAgICAgICAgIGZvb3RhZ2U6IEZvb3RhZ2VJbnRlcmZhY2UsCiAgICAgICAgICB9OwogICAgICAgIGZ1bmN0aW9uIGdldEludGVyZmFjZShlKSB7CiAgICAgICAgICByZXR1cm4gaW50ZXJmYWNlc1tlXSB8fCBudWxsOwogICAgICAgIH0KICAgICAgICB2YXIgZXhwcmVzc2lvbkhlbHBlcnMgPSB7CiAgICAgICAgICBzZWFyY2hFeHByZXNzaW9uczogZnVuY3Rpb24gKGUsIHQsIHIpIHsKICAgICAgICAgICAgdC54ICYmCiAgICAgICAgICAgICAgKChyLmsgPSAhMCksCiAgICAgICAgICAgICAgKHIueCA9ICEwKSwKICAgICAgICAgICAgICAoci5pbml0aWF0ZUV4cHJlc3Npb24gPSBFeHByZXNzaW9uTWFuYWdlci5pbml0aWF0ZUV4cHJlc3Npb24pLAogICAgICAgICAgICAgIHIuZWZmZWN0c1NlcXVlbmNlLnB1c2goci5pbml0aWF0ZUV4cHJlc3Npb24oZSwgdCwgcikuYmluZChyKSkpOwogICAgICAgICAgfSwKICAgICAgICAgIGdldFNwZWVkQXRUaW1lOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB2YXIgdCA9IHRoaXMuZ2V0VmFsdWVBdFRpbWUoZSksCiAgICAgICAgICAgICAgciA9IHRoaXMuZ2V0VmFsdWVBdFRpbWUoZSArIC0wLjAxKSwKICAgICAgICAgICAgICBuID0gMDsKICAgICAgICAgICAgaWYgKHQubGVuZ3RoKSB7CiAgICAgICAgICAgICAgdmFyIGk7CiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHQubGVuZ3RoOyBpICs9IDEpIG4gKz0gTWF0aC5wb3cocltpXSAtIHRbaV0sIDIpOwogICAgICAgICAgICAgIG4gPSAxMDAgKiBNYXRoLnNxcnQobik7CiAgICAgICAgICAgIH0gZWxzZSBuID0gMDsKICAgICAgICAgICAgcmV0dXJuIG47CiAgICAgICAgICB9LAogICAgICAgICAgZ2V0VmVsb2NpdHlBdFRpbWU6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGlmICh0aGlzLnZlbCAhPT0gdm9pZCAwKSByZXR1cm4gdGhpcy52ZWw7CiAgICAgICAgICAgIHZhciB0LAogICAgICAgICAgICAgIHIsCiAgICAgICAgICAgICAgbiA9IC0wLjAwMSwKICAgICAgICAgICAgICBpID0gdGhpcy5nZXRWYWx1ZUF0VGltZShlKSwKICAgICAgICAgICAgICBhID0gdGhpcy5nZXRWYWx1ZUF0VGltZShlICsgbik7CiAgICAgICAgICAgIGlmIChpLmxlbmd0aCkKICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdCA9IGNyZWF0ZVR5cGVkQXJyYXkoImZsb2F0MzIiLCBpLmxlbmd0aCksIHIgPSAwOwogICAgICAgICAgICAgICAgciA8IGkubGVuZ3RoOwogICAgICAgICAgICAgICAgciArPSAxCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgdFtyXSA9IChhW3JdIC0gaVtyXSkgLyBuOwogICAgICAgICAgICBlbHNlIHQgPSAoYSAtIGkpIC8gbjsKICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICB9LAogICAgICAgICAgZ2V0VmFsdWVBdFRpbWU6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgKGUgKj0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVSYXRlKSwKICAgICAgICAgICAgICAoZSAtPSB0aGlzLm9mZnNldFRpbWUpICE9PSB0aGlzLl9jYWNoaW5nQXRUaW1lLmxhc3RGcmFtZSAmJgogICAgICAgICAgICAgICAgKCh0aGlzLl9jYWNoaW5nQXRUaW1lLmxhc3RJbmRleCA9CiAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hpbmdBdFRpbWUubGFzdEZyYW1lIDwgZQogICAgICAgICAgICAgICAgICAgID8gdGhpcy5fY2FjaGluZ0F0VGltZS5sYXN0SW5kZXgKICAgICAgICAgICAgICAgICAgICA6IDApLAogICAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmdBdFRpbWUudmFsdWUgPSB0aGlzLmludGVycG9sYXRlVmFsdWUoCiAgICAgICAgICAgICAgICAgIGUsCiAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hpbmdBdFRpbWUKICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgKHRoaXMuX2NhY2hpbmdBdFRpbWUubGFzdEZyYW1lID0gZSkpLAogICAgICAgICAgICAgIHRoaXMuX2NhY2hpbmdBdFRpbWUudmFsdWUKICAgICAgICAgICAgKTsKICAgICAgICAgIH0sCiAgICAgICAgICBnZXRTdGF0aWNWYWx1ZUF0VGltZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5wdjsKICAgICAgICAgIH0sCiAgICAgICAgICBzZXRHcm91cFByb3BlcnR5OiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICB0aGlzLnByb3BlcnR5R3JvdXAgPSBlOwogICAgICAgICAgfSwKICAgICAgICB9OwogICAgICAgIGZ1bmN0aW9uIGFkZFByb3BlcnR5RGVjb3JhdG9yKCkgewogICAgICAgICAgZnVuY3Rpb24gZShwLCBkLCBoKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5rIHx8ICF0aGlzLmtleWZyYW1lcykgcmV0dXJuIHRoaXMucHY7CiAgICAgICAgICAgIHAgPSBwID8gcC50b0xvd2VyQ2FzZSgpIDogIiI7CiAgICAgICAgICAgIHZhciBtLAogICAgICAgICAgICAgIHYsCiAgICAgICAgICAgICAgeSwKICAgICAgICAgICAgICBnLAogICAgICAgICAgICAgIE0sCiAgICAgICAgICAgICAgQSA9IHRoaXMuY29tcC5yZW5kZXJlZEZyYW1lLAogICAgICAgICAgICAgIF8gPSB0aGlzLmtleWZyYW1lcywKICAgICAgICAgICAgICBDID0gX1tfLmxlbmd0aCAtIDFdLnQ7CiAgICAgICAgICAgIGlmIChBIDw9IEMpIHJldHVybiB0aGlzLnB2OwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKGgKICAgICAgICAgICAgICAgID8gKHYgPQogICAgICAgICAgICAgICAgICAgIEMgLQogICAgICAgICAgICAgICAgICAgIChtID0gZAogICAgICAgICAgICAgICAgICAgICAgPyBNYXRoLmFicyhDIC0gdGhpcy5lbGVtLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUgKiBkKQogICAgICAgICAgICAgICAgICAgICAgOiBNYXRoLm1heCgwLCBDIC0gdGhpcy5lbGVtLmRhdGEuaXApKSkKICAgICAgICAgICAgICAgIDogKCghZCB8fCBkID4gXy5sZW5ndGggLSAxKSAmJiAoZCA9IF8ubGVuZ3RoIC0gMSksCiAgICAgICAgICAgICAgICAgIChtID0gQyAtICh2ID0gX1tfLmxlbmd0aCAtIDEgLSBkXS50KSkpLAogICAgICAgICAgICAgIHAgPT09ICJwaW5ncG9uZyIpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIGlmIChNYXRoLmZsb29yKChBIC0gdikgLyBtKSAlIDIgIT0gMCkKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAobSAtICgoQSAtIHYpICUgbSkgKyB2KSAvIHRoaXMuY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSwKICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBpZiAocCA9PT0gIm9mZnNldCIpIHsKICAgICAgICAgICAgICAgIHZhciBSID0gdGhpcy5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICB2IC8gdGhpcy5jb21wLmdsb2JhbERhdGEuZnJhbWVSYXRlLAogICAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgTCA9IHRoaXMuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgQyAvIHRoaXMuY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSwKICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIE4gPSB0aGlzLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgICgoKEEgLSB2KSAlIG0pICsgdikgLyB0aGlzLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUsCiAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBXID0gTWF0aC5mbG9vcigoQSAtIHYpIC8gbSk7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5wdi5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBnID0gKE0gPSBuZXcgQXJyYXkoUi5sZW5ndGgpKS5sZW5ndGgsIHkgPSAwOwogICAgICAgICAgICAgICAgICAgIHkgPCBnOwogICAgICAgICAgICAgICAgICAgIHkgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTVt5XSA9IChMW3ldIC0gUlt5XSkgKiBXICsgTlt5XTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIE07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gKEwgLSBSKSAqIFcgKyBOOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAocCA9PT0gImNvbnRpbnVlIikgewogICAgICAgICAgICAgICAgdmFyIGsgPSB0aGlzLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgIEMgLyB0aGlzLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUsCiAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBxID0gdGhpcy5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAoQyAtIDAuMDAxKSAvIHRoaXMuY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSwKICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5wdi5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBnID0gKE0gPSBuZXcgQXJyYXkoay5sZW5ndGgpKS5sZW5ndGgsIHkgPSAwOwogICAgICAgICAgICAgICAgICAgIHkgPCBnOwogICAgICAgICAgICAgICAgICAgIHkgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTVt5XSA9CiAgICAgICAgICAgICAgICAgICAgICBrW3ldICsKICAgICAgICAgICAgICAgICAgICAgICgoa1t5XSAtIHFbeV0pICoKICAgICAgICAgICAgICAgICAgICAgICAgKChBIC0gQykgLyB0aGlzLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUpKSAvCiAgICAgICAgICAgICAgICAgICAgICAgIDVlLTQ7CiAgICAgICAgICAgICAgICAgIHJldHVybiBNOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGsgKyAoKEEgLSBDKSAvIDAuMDAxKSAqIChrIC0gcSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICgoKEEgLSB2KSAlIG0pICsgdikgLyB0aGlzLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUsCiAgICAgICAgICAgICAgMAogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gdChwLCBkLCBoKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5rKSByZXR1cm4gdGhpcy5wdjsKICAgICAgICAgICAgcCA9IHAgPyBwLnRvTG93ZXJDYXNlKCkgOiAiIjsKICAgICAgICAgICAgdmFyIG0sCiAgICAgICAgICAgICAgdiwKICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgIGcsCiAgICAgICAgICAgICAgTSwKICAgICAgICAgICAgICBBID0gdGhpcy5jb21wLnJlbmRlcmVkRnJhbWUsCiAgICAgICAgICAgICAgXyA9IHRoaXMua2V5ZnJhbWVzLAogICAgICAgICAgICAgIEMgPSBfWzBdLnQ7CiAgICAgICAgICAgIGlmIChBID49IEMpIHJldHVybiB0aGlzLnB2OwogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgKGgKICAgICAgICAgICAgICAgID8gKHYgPQogICAgICAgICAgICAgICAgICAgIEMgKwogICAgICAgICAgICAgICAgICAgIChtID0gZAogICAgICAgICAgICAgICAgICAgICAgPyBNYXRoLmFicyh0aGlzLmVsZW0uY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSAqIGQpCiAgICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWF4KDAsIHRoaXMuZWxlbS5kYXRhLm9wIC0gQykpKQogICAgICAgICAgICAgICAgOiAoKCFkIHx8IGQgPiBfLmxlbmd0aCAtIDEpICYmIChkID0gXy5sZW5ndGggLSAxKSwKICAgICAgICAgICAgICAgICAgKG0gPSAodiA9IF9bZF0udCkgLSBDKSksCiAgICAgICAgICAgICAgcCA9PT0gInBpbmdwb25nIikKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgaWYgKE1hdGguZmxvb3IoKEMgLSBBKSAvIG0pICUgMiA9PSAwKQogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICgoKEMgLSBBKSAlIG0pICsgQykgLyB0aGlzLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUsCiAgICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgaWYgKHAgPT09ICJvZmZzZXQiKSB7CiAgICAgICAgICAgICAgICB2YXIgUiA9IHRoaXMuZ2V0VmFsdWVBdFRpbWUoCiAgICAgICAgICAgICAgICAgICAgQyAvIHRoaXMuY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSwKICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIEwgPSB0aGlzLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgIHYgLyB0aGlzLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUsCiAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBOID0gdGhpcy5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAobSAtICgoQyAtIEEpICUgbSkgKyBDKSAvIHRoaXMuY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSwKICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgIFcgPSBNYXRoLmZsb29yKChDIC0gQSkgLyBtKSArIDE7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5wdi5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBnID0gKE0gPSBuZXcgQXJyYXkoUi5sZW5ndGgpKS5sZW5ndGgsIHkgPSAwOwogICAgICAgICAgICAgICAgICAgIHkgPCBnOwogICAgICAgICAgICAgICAgICAgIHkgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTVt5XSA9IE5beV0gLSAoTFt5XSAtIFJbeV0pICogVzsKICAgICAgICAgICAgICAgICAgcmV0dXJuIE07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gTiAtIChMIC0gUikgKiBXOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAocCA9PT0gImNvbnRpbnVlIikgewogICAgICAgICAgICAgICAgdmFyIGsgPSB0aGlzLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgICAgICAgIEMgLyB0aGlzLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUsCiAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICBxID0gdGhpcy5nZXRWYWx1ZUF0VGltZSgKICAgICAgICAgICAgICAgICAgICAoQyArIDAuMDAxKSAvIHRoaXMuY29tcC5nbG9iYWxEYXRhLmZyYW1lUmF0ZSwKICAgICAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5wdi5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgICAgICBnID0gKE0gPSBuZXcgQXJyYXkoay5sZW5ndGgpKS5sZW5ndGgsIHkgPSAwOwogICAgICAgICAgICAgICAgICAgIHkgPCBnOwogICAgICAgICAgICAgICAgICAgIHkgKz0gMQogICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTVt5XSA9IGtbeV0gKyAoKGtbeV0gLSBxW3ldKSAqIChDIC0gQSkpIC8gMC4wMDE7CiAgICAgICAgICAgICAgICAgIHJldHVybiBNOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGsgKyAoKGsgLSBxKSAqIChDIC0gQSkpIC8gMC4wMDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlQXRUaW1lKAogICAgICAgICAgICAgIChtIC0gKCgoQyAtIEEpICUgbSkgKyBDKSkgLyB0aGlzLmNvbXAuZ2xvYmFsRGF0YS5mcmFtZVJhdGUsCiAgICAgICAgICAgICAgMAogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gcihwLCBkKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5rKSByZXR1cm4gdGhpcy5wdjsKICAgICAgICAgICAgaWYgKCgocCA9IDAuNSAqIChwIHx8IDAuNCkpLCAoZCA9IE1hdGguZmxvb3IoZCB8fCA1KSkgPD0gMSkpCiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHY7CiAgICAgICAgICAgIHZhciBoLAogICAgICAgICAgICAgIG0sCiAgICAgICAgICAgICAgdiA9IHRoaXMuY29tcC5yZW5kZXJlZEZyYW1lIC8gdGhpcy5jb21wLmdsb2JhbERhdGEuZnJhbWVSYXRlLAogICAgICAgICAgICAgIHkgPSB2IC0gcCwKICAgICAgICAgICAgICBnID0gZCA+IDEgPyAodiArIHAgLSB5KSAvIChkIC0gMSkgOiAxLAogICAgICAgICAgICAgIE0gPSAwLAogICAgICAgICAgICAgIEEgPSAwOwogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIGggPSB0aGlzLnB2Lmxlbmd0aAogICAgICAgICAgICAgICAgPyBjcmVhdGVUeXBlZEFycmF5KCJmbG9hdDMyIiwgdGhpcy5wdi5sZW5ndGgpCiAgICAgICAgICAgICAgICA6IDA7CiAgICAgICAgICAgICAgTSA8IGQ7CgogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBpZiAoKChtID0gdGhpcy5nZXRWYWx1ZUF0VGltZSh5ICsgTSAqIGcpKSwgdGhpcy5wdi5sZW5ndGgpKQogICAgICAgICAgICAgICAgZm9yIChBID0gMDsgQSA8IHRoaXMucHYubGVuZ3RoOyBBICs9IDEpIGhbQV0gKz0gbVtBXTsKICAgICAgICAgICAgICBlbHNlIGggKz0gbTsKICAgICAgICAgICAgICBNICs9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHRoaXMucHYubGVuZ3RoKQogICAgICAgICAgICAgIGZvciAoQSA9IDA7IEEgPCB0aGlzLnB2Lmxlbmd0aDsgQSArPSAxKSBoW0FdIC89IGQ7CiAgICAgICAgICAgIGVsc2UgaCAvPSBkOwogICAgICAgICAgICByZXR1cm4gaDsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIG4ocCkgewogICAgICAgICAgICB0aGlzLl90cmFuc2Zvcm1DYWNoaW5nQXRUaW1lIHx8CiAgICAgICAgICAgICAgKHRoaXMuX3RyYW5zZm9ybUNhY2hpbmdBdFRpbWUgPSB7IHY6IG5ldyBNYXRyaXgoKSB9KTsKICAgICAgICAgICAgdmFyIGQgPSB0aGlzLl90cmFuc2Zvcm1DYWNoaW5nQXRUaW1lLnY7CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAoZC5jbG9uZUZyb21Qcm9wcyh0aGlzLnByZS5wcm9wcyksCiAgICAgICAgICAgICAgdGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zIDwgMSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgdmFyIGggPSB0aGlzLmEuZ2V0VmFsdWVBdFRpbWUocCk7CiAgICAgICAgICAgICAgZC50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICAtaFswXSAqIHRoaXMuYS5tdWx0LAogICAgICAgICAgICAgICAgLWhbMV0gKiB0aGlzLmEubXVsdCwKICAgICAgICAgICAgICAgIGhbMl0gKiB0aGlzLmEubXVsdAogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHRoaXMuYXBwbGllZFRyYW5zZm9ybWF0aW9ucyA8IDIpIHsKICAgICAgICAgICAgICB2YXIgbSA9IHRoaXMucy5nZXRWYWx1ZUF0VGltZShwKTsKICAgICAgICAgICAgICBkLnNjYWxlKAogICAgICAgICAgICAgICAgbVswXSAqIHRoaXMucy5tdWx0LAogICAgICAgICAgICAgICAgbVsxXSAqIHRoaXMucy5tdWx0LAogICAgICAgICAgICAgICAgbVsyXSAqIHRoaXMucy5tdWx0CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAodGhpcy5zayAmJiB0aGlzLmFwcGxpZWRUcmFuc2Zvcm1hdGlvbnMgPCAzKSB7CiAgICAgICAgICAgICAgdmFyIHYgPSB0aGlzLnNrLmdldFZhbHVlQXRUaW1lKHApLAogICAgICAgICAgICAgICAgeSA9IHRoaXMuc2EuZ2V0VmFsdWVBdFRpbWUocCk7CiAgICAgICAgICAgICAgZC5za2V3RnJvbUF4aXMoLXYgKiB0aGlzLnNrLm11bHQsIHkgKiB0aGlzLnNhLm11bHQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0aGlzLnIgJiYgdGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zIDwgNCkgewogICAgICAgICAgICAgIHZhciBnID0gdGhpcy5yLmdldFZhbHVlQXRUaW1lKHApOwogICAgICAgICAgICAgIGQucm90YXRlKC1nICogdGhpcy5yLm11bHQpOwogICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnIgJiYgdGhpcy5hcHBsaWVkVHJhbnNmb3JtYXRpb25zIDwgNCkgewogICAgICAgICAgICAgIHZhciBNID0gdGhpcy5yei5nZXRWYWx1ZUF0VGltZShwKSwKICAgICAgICAgICAgICAgIEEgPSB0aGlzLnJ5LmdldFZhbHVlQXRUaW1lKHApLAogICAgICAgICAgICAgICAgXyA9IHRoaXMucnguZ2V0VmFsdWVBdFRpbWUocCksCiAgICAgICAgICAgICAgICBDID0gdGhpcy5vci5nZXRWYWx1ZUF0VGltZShwKTsKICAgICAgICAgICAgICBkLnJvdGF0ZVooLU0gKiB0aGlzLnJ6Lm11bHQpCiAgICAgICAgICAgICAgICAucm90YXRlWShBICogdGhpcy5yeS5tdWx0KQogICAgICAgICAgICAgICAgLnJvdGF0ZVgoXyAqIHRoaXMucngubXVsdCkKICAgICAgICAgICAgICAgIC5yb3RhdGVaKC1DWzJdICogdGhpcy5vci5tdWx0KQogICAgICAgICAgICAgICAgLnJvdGF0ZVkoQ1sxXSAqIHRoaXMub3IubXVsdCkKICAgICAgICAgICAgICAgIC5yb3RhdGVYKENbMF0gKiB0aGlzLm9yLm11bHQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0aGlzLmRhdGEucCAmJiB0aGlzLmRhdGEucC5zKSB7CiAgICAgICAgICAgICAgdmFyIFIgPSB0aGlzLnB4LmdldFZhbHVlQXRUaW1lKHApLAogICAgICAgICAgICAgICAgTCA9IHRoaXMucHkuZ2V0VmFsdWVBdFRpbWUocCk7CiAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5wLnopIHsKICAgICAgICAgICAgICAgIHZhciBOID0gdGhpcy5wei5nZXRWYWx1ZUF0VGltZShwKTsKICAgICAgICAgICAgICAgIGQudHJhbnNsYXRlKAogICAgICAgICAgICAgICAgICBSICogdGhpcy5weC5tdWx0LAogICAgICAgICAgICAgICAgICBMICogdGhpcy5weS5tdWx0LAogICAgICAgICAgICAgICAgICAtTiAqIHRoaXMucHoubXVsdAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGVsc2UgZC50cmFuc2xhdGUoUiAqIHRoaXMucHgubXVsdCwgTCAqIHRoaXMucHkubXVsdCwgMCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdmFyIFcgPSB0aGlzLnAuZ2V0VmFsdWVBdFRpbWUocCk7CiAgICAgICAgICAgICAgZC50cmFuc2xhdGUoCiAgICAgICAgICAgICAgICBXWzBdICogdGhpcy5wLm11bHQsCiAgICAgICAgICAgICAgICBXWzFdICogdGhpcy5wLm11bHQsCiAgICAgICAgICAgICAgICAtV1syXSAqIHRoaXMucC5tdWx0CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZDsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIGkoKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnYuY2xvbmUobmV3IE1hdHJpeCgpKTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBhID0gVHJhbnNmb3JtUHJvcGVydHlGYWN0b3J5LmdldFRyYW5zZm9ybVByb3BlcnR5OwogICAgICAgICAgVHJhbnNmb3JtUHJvcGVydHlGYWN0b3J5LmdldFRyYW5zZm9ybVByb3BlcnR5ID0gZnVuY3Rpb24gKHAsIGQsIGgpIHsKICAgICAgICAgICAgdmFyIG0gPSBhKHAsIGQsIGgpOwogICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgIG0uZHluYW1pY1Byb3BlcnRpZXMubGVuZ3RoCiAgICAgICAgICAgICAgICA/IChtLmdldFZhbHVlQXRUaW1lID0gbi5iaW5kKG0pKQogICAgICAgICAgICAgICAgOiAobS5nZXRWYWx1ZUF0VGltZSA9IGkuYmluZChtKSksCiAgICAgICAgICAgICAgKG0uc2V0R3JvdXBQcm9wZXJ0eSA9IGV4cHJlc3Npb25IZWxwZXJzLnNldEdyb3VwUHJvcGVydHkpLAogICAgICAgICAgICAgIG0KICAgICAgICAgICAgKTsKICAgICAgICAgIH07CiAgICAgICAgICB2YXIgbyA9IFByb3BlcnR5RmFjdG9yeS5nZXRQcm9wOwogICAgICAgICAgUHJvcGVydHlGYWN0b3J5LmdldFByb3AgPSBmdW5jdGlvbiAocCwgZCwgaCwgbSwgdikgewogICAgICAgICAgICB2YXIgeSA9IG8ocCwgZCwgaCwgbSwgdik7CiAgICAgICAgICAgIHkua2YKICAgICAgICAgICAgICA/ICh5LmdldFZhbHVlQXRUaW1lID0gZXhwcmVzc2lvbkhlbHBlcnMuZ2V0VmFsdWVBdFRpbWUuYmluZCh5KSkKICAgICAgICAgICAgICA6ICh5LmdldFZhbHVlQXRUaW1lID0KICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbkhlbHBlcnMuZ2V0U3RhdGljVmFsdWVBdFRpbWUuYmluZCh5KSksCiAgICAgICAgICAgICAgKHkuc2V0R3JvdXBQcm9wZXJ0eSA9IGV4cHJlc3Npb25IZWxwZXJzLnNldEdyb3VwUHJvcGVydHkpLAogICAgICAgICAgICAgICh5Lmxvb3BPdXQgPSBlKSwKICAgICAgICAgICAgICAoeS5sb29wSW4gPSB0KSwKICAgICAgICAgICAgICAoeS5zbW9vdGggPSByKSwKICAgICAgICAgICAgICAoeS5nZXRWZWxvY2l0eUF0VGltZSA9CiAgICAgICAgICAgICAgICBleHByZXNzaW9uSGVscGVycy5nZXRWZWxvY2l0eUF0VGltZS5iaW5kKHkpKSwKICAgICAgICAgICAgICAoeS5nZXRTcGVlZEF0VGltZSA9IGV4cHJlc3Npb25IZWxwZXJzLmdldFNwZWVkQXRUaW1lLmJpbmQoeSkpLAogICAgICAgICAgICAgICh5Lm51bUtleXMgPSBkLmEgPT09IDEgPyBkLmsubGVuZ3RoIDogMCksCiAgICAgICAgICAgICAgKHkucHJvcGVydHlJbmRleCA9IGQuaXgpOwogICAgICAgICAgICB2YXIgZyA9IDA7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgaCAhPT0gMCAmJgogICAgICAgICAgICAgICAgKGcgPSBjcmVhdGVUeXBlZEFycmF5KAogICAgICAgICAgICAgICAgICAiZmxvYXQzMiIsCiAgICAgICAgICAgICAgICAgIGQuYSA9PT0gMSA/IGQua1swXS5zLmxlbmd0aCA6IGQuay5sZW5ndGgKICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICh5Ll9jYWNoaW5nQXRUaW1lID0gewogICAgICAgICAgICAgICAgbGFzdEZyYW1lOiBpbml0aWFsRGVmYXVsdEZyYW1lLAogICAgICAgICAgICAgICAgbGFzdEluZGV4OiAwLAogICAgICAgICAgICAgICAgdmFsdWU6IGcsCiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgZXhwcmVzc2lvbkhlbHBlcnMuc2VhcmNoRXhwcmVzc2lvbnMocCwgZCwgeSksCiAgICAgICAgICAgICAgeS5rICYmIHYuYWRkRHluYW1pY1Byb3BlcnR5KHkpLAogICAgICAgICAgICAgIHkKICAgICAgICAgICAgKTsKICAgICAgICAgIH07CiAgICAgICAgICB2YXIgcyA9IFNoYXBlUHJvcGVydHlGYWN0b3J5LmdldENvbnN0cnVjdG9yRnVuY3Rpb24oKSwKICAgICAgICAgICAgYyA9IFNoYXBlUHJvcGVydHlGYWN0b3J5LmdldEtleWZyYW1lZENvbnN0cnVjdG9yRnVuY3Rpb24oKTsKICAgICAgICAgIGZ1bmN0aW9uIHUoKSB7fQogICAgICAgICAgKHUucHJvdG90eXBlID0gewogICAgICAgICAgICB2ZXJ0aWNlczogZnVuY3Rpb24gKHAsIGQpIHsKICAgICAgICAgICAgICB0aGlzLmsgJiYgdGhpcy5nZXRWYWx1ZSgpOwogICAgICAgICAgICAgIHZhciBoLAogICAgICAgICAgICAgICAgbSA9IHRoaXMudjsKICAgICAgICAgICAgICBkICE9PSB2b2lkIDAgJiYgKG0gPSB0aGlzLmdldFZhbHVlQXRUaW1lKGQsIDApKTsKICAgICAgICAgICAgICB2YXIgdiA9IG0uX2xlbmd0aCwKICAgICAgICAgICAgICAgIHkgPSBtW3BdLAogICAgICAgICAgICAgICAgZyA9IG0udiwKICAgICAgICAgICAgICAgIE0gPSBjcmVhdGVTaXplZEFycmF5KHYpOwogICAgICAgICAgICAgIGZvciAoaCA9IDA7IGggPCB2OyBoICs9IDEpCiAgICAgICAgICAgICAgICBNW2hdID0KICAgICAgICAgICAgICAgICAgcCA9PT0gImkiIHx8IHAgPT09ICJvIgogICAgICAgICAgICAgICAgICAgID8gW3lbaF1bMF0gLSBnW2hdWzBdLCB5W2hdWzFdIC0gZ1toXVsxXV0KICAgICAgICAgICAgICAgICAgICA6IFt5W2hdWzBdLCB5W2hdWzFdXTsKICAgICAgICAgICAgICByZXR1cm4gTTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcG9pbnRzOiBmdW5jdGlvbiAocCkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLnZlcnRpY2VzKCJ2IiwgcCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGluVGFuZ2VudHM6IGZ1bmN0aW9uIChwKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmVydGljZXMoImkiLCBwKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgb3V0VGFuZ2VudHM6IGZ1bmN0aW9uIChwKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmVydGljZXMoIm8iLCBwKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaXNDbG9zZWQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy52LmM7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHBvaW50T25QYXRoOiBmdW5jdGlvbiAocCwgZCkgewogICAgICAgICAgICAgIHZhciBoID0gdGhpcy52OwogICAgICAgICAgICAgIGQgIT09IHZvaWQgMCAmJiAoaCA9IHRoaXMuZ2V0VmFsdWVBdFRpbWUoZCwgMCkpLAogICAgICAgICAgICAgICAgdGhpcy5fc2VnbWVudHNMZW5ndGggfHwKICAgICAgICAgICAgICAgICAgKHRoaXMuX3NlZ21lbnRzTGVuZ3RoID0gYmV6LmdldFNlZ21lbnRzTGVuZ3RoKGgpKTsKICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgdmFyIG0sCiAgICAgICAgICAgICAgICAgIHYgPSB0aGlzLl9zZWdtZW50c0xlbmd0aCwKICAgICAgICAgICAgICAgICAgeSA9IHYubGVuZ3RocywKICAgICAgICAgICAgICAgICAgZyA9IHYudG90YWxMZW5ndGggKiBwLAogICAgICAgICAgICAgICAgICBNID0gMCwKICAgICAgICAgICAgICAgICAgQSA9IHkubGVuZ3RoLAogICAgICAgICAgICAgICAgICBfID0gMDsKICAgICAgICAgICAgICAgIE0gPCBBOwoKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIGlmIChfICsgeVtNXS5hZGRlZExlbmd0aCA+IGcpIHsKICAgICAgICAgICAgICAgICAgdmFyIEMgPSBNLAogICAgICAgICAgICAgICAgICAgIFIgPSBoLmMgJiYgTSA9PT0gQSAtIDEgPyAwIDogTSArIDEsCiAgICAgICAgICAgICAgICAgICAgTCA9IChnIC0gXykgLyB5W01dLmFkZGVkTGVuZ3RoOwogICAgICAgICAgICAgICAgICBtID0gYmV6LmdldFBvaW50SW5TZWdtZW50KAogICAgICAgICAgICAgICAgICAgIGgudltDXSwKICAgICAgICAgICAgICAgICAgICBoLnZbUl0sCiAgICAgICAgICAgICAgICAgICAgaC5vW0NdLAogICAgICAgICAgICAgICAgICAgIGguaVtSXSwKICAgICAgICAgICAgICAgICAgICBMLAogICAgICAgICAgICAgICAgICAgIHlbTV0KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAoXyArPSB5W01dLmFkZGVkTGVuZ3RoKSwgKE0gKz0gMSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICBtIHx8CiAgICAgICAgICAgICAgICAgIChtID0gaC5jCiAgICAgICAgICAgICAgICAgICAgPyBbaC52WzBdWzBdLCBoLnZbMF1bMV1dCiAgICAgICAgICAgICAgICAgICAgOiBbaC52W2guX2xlbmd0aCAtIDFdWzBdLCBoLnZbaC5fbGVuZ3RoIC0gMV1bMV1dKSwKICAgICAgICAgICAgICAgIG0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9LAogICAgICAgICAgICB2ZWN0b3JPblBhdGg6IGZ1bmN0aW9uIChwLCBkLCBoKSB7CiAgICAgICAgICAgICAgcCA9PSAxID8gKHAgPSB0aGlzLnYuYykgOiBwID09IDAgJiYgKHAgPSAwLjk5OSk7CiAgICAgICAgICAgICAgdmFyIG0gPSB0aGlzLnBvaW50T25QYXRoKHAsIGQpLAogICAgICAgICAgICAgICAgdiA9IHRoaXMucG9pbnRPblBhdGgocCArIDAuMDAxLCBkKSwKICAgICAgICAgICAgICAgIHkgPSB2WzBdIC0gbVswXSwKICAgICAgICAgICAgICAgIGcgPSB2WzFdIC0gbVsxXSwKICAgICAgICAgICAgICAgIE0gPSBNYXRoLnNxcnQoTWF0aC5wb3coeSwgMikgKyBNYXRoLnBvdyhnLCAyKSk7CiAgICAgICAgICAgICAgcmV0dXJuIE0gPT09IDAKICAgICAgICAgICAgICAgID8gWzAsIDBdCiAgICAgICAgICAgICAgICA6IGggPT09ICJ0YW5nZW50IgogICAgICAgICAgICAgICAgPyBbeSAvIE0sIGcgLyBNXQogICAgICAgICAgICAgICAgOiBbLWcgLyBNLCB5IC8gTV07CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHRhbmdlbnRPblBhdGg6IGZ1bmN0aW9uIChwLCBkKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmVjdG9yT25QYXRoKHAsIGQsICJ0YW5nZW50Iik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG5vcm1hbE9uUGF0aDogZnVuY3Rpb24gKHAsIGQpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy52ZWN0b3JPblBhdGgocCwgZCwgIm5vcm1hbCIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzZXRHcm91cFByb3BlcnR5OiBleHByZXNzaW9uSGVscGVycy5zZXRHcm91cFByb3BlcnR5LAogICAgICAgICAgICBnZXRWYWx1ZUF0VGltZTogZXhwcmVzc2lvbkhlbHBlcnMuZ2V0U3RhdGljVmFsdWVBdFRpbWUsCiAgICAgICAgICB9KSwKICAgICAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFt1XSwgcyksCiAgICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbdV0sIGMpLAogICAgICAgICAgICAoYy5wcm90b3R5cGUuZ2V0VmFsdWVBdFRpbWUgPSBmdW5jdGlvbiAocCkgewogICAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoaW5nQXRUaW1lIHx8CiAgICAgICAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nQXRUaW1lID0gewogICAgICAgICAgICAgICAgICAgIHNoYXBlVmFsdWU6IHNoYXBlUG9vbC5jbG9uZSh0aGlzLnB2KSwKICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXg6IDAsCiAgICAgICAgICAgICAgICAgICAgbGFzdFRpbWU6IGluaXRpYWxEZWZhdWx0RnJhbWUsCiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKHAgKj0gdGhpcy5lbGVtLmdsb2JhbERhdGEuZnJhbWVSYXRlKSwKICAgICAgICAgICAgICAgIChwIC09IHRoaXMub2Zmc2V0VGltZSkgIT09IHRoaXMuX2NhY2hpbmdBdFRpbWUubGFzdFRpbWUgJiYKICAgICAgICAgICAgICAgICAgKCh0aGlzLl9jYWNoaW5nQXRUaW1lLmxhc3RJbmRleCA9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGluZ0F0VGltZS5sYXN0VGltZSA8IHAKICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fY2FjaGluZy5sYXN0SW5kZXgKICAgICAgICAgICAgICAgICAgICAgIDogMCksCiAgICAgICAgICAgICAgICAgICh0aGlzLl9jYWNoaW5nQXRUaW1lLmxhc3RUaW1lID0gcCksCiAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJwb2xhdGVTaGFwZSgKICAgICAgICAgICAgICAgICAgICBwLAogICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hpbmdBdFRpbWUuc2hhcGVWYWx1ZSwKICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoaW5nQXRUaW1lCiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgdGhpcy5fY2FjaGluZ0F0VGltZS5zaGFwZVZhbHVlCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIChjLnByb3RvdHlwZS5pbml0aWF0ZUV4cHJlc3Npb24gPQogICAgICAgICAgICAgIEV4cHJlc3Npb25NYW5hZ2VyLmluaXRpYXRlRXhwcmVzc2lvbik7CiAgICAgICAgICB2YXIgbCA9IFNoYXBlUHJvcGVydHlGYWN0b3J5LmdldFNoYXBlUHJvcDsKICAgICAgICAgIFNoYXBlUHJvcGVydHlGYWN0b3J5LmdldFNoYXBlUHJvcCA9IGZ1bmN0aW9uIChwLCBkLCBoLCBtLCB2KSB7CiAgICAgICAgICAgIHZhciB5ID0gbChwLCBkLCBoLCBtLCB2KTsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAoeS5wcm9wZXJ0eUluZGV4ID0gZC5peCksCiAgICAgICAgICAgICAgKHkubG9jayA9ICExKSwKICAgICAgICAgICAgICBoID09PSAzCiAgICAgICAgICAgICAgICA/IGV4cHJlc3Npb25IZWxwZXJzLnNlYXJjaEV4cHJlc3Npb25zKHAsIGQucHQsIHkpCiAgICAgICAgICAgICAgICA6IGggPT09IDQgJiYgZXhwcmVzc2lvbkhlbHBlcnMuc2VhcmNoRXhwcmVzc2lvbnMocCwgZC5rcywgeSksCiAgICAgICAgICAgICAgeS5rICYmIHAuYWRkRHluYW1pY1Byb3BlcnR5KHkpLAogICAgICAgICAgICAgIHkKICAgICAgICAgICAgKTsKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGluaXRpYWxpemUkMSgpIHsKICAgICAgICAgIGFkZFByb3BlcnR5RGVjb3JhdG9yKCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFkZERlY29yYXRvcigpIHsKICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLmdldEV4cHJlc3Npb25WYWx1ZSA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIHZhciByID0gdGhpcy5jYWxjdWxhdGVFeHByZXNzaW9uKHQpOwogICAgICAgICAgICBpZiAoZS50ICE9PSByKSB7CiAgICAgICAgICAgICAgdmFyIG4gPSB7fTsKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgdGhpcy5jb3B5RGF0YShuLCBlKSwKICAgICAgICAgICAgICAgIChuLnQgPSByLnRvU3RyaW5nKCkpLAogICAgICAgICAgICAgICAgKG4uX19jb21wbGV0ZSA9ICExKSwKICAgICAgICAgICAgICAgIG4KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBlOwogICAgICAgICAgfSksCiAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnNlYXJjaFByb3BlcnR5ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBlID0gdGhpcy5zZWFyY2hLZXlmcmFtZXMoKSwKICAgICAgICAgICAgICAgIHQgPSB0aGlzLnNlYXJjaEV4cHJlc3Npb25zKCk7CiAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLmtmID0gZSB8fCB0KSwgdGhpcy5rZjsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIChUZXh0UHJvcGVydHkucHJvdG90eXBlLnNlYXJjaEV4cHJlc3Npb25zID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGEuZC54CiAgICAgICAgICAgICAgICA/ICgodGhpcy5jYWxjdWxhdGVFeHByZXNzaW9uID0KICAgICAgICAgICAgICAgICAgICBFeHByZXNzaW9uTWFuYWdlci5pbml0aWF0ZUV4cHJlc3Npb24uYmluZCh0aGlzKSgKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbSwKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5kLAogICAgICAgICAgICAgICAgICAgICAgdGhpcwogICAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICB0aGlzLmFkZEVmZmVjdCh0aGlzLmdldEV4cHJlc3Npb25WYWx1ZS5iaW5kKHRoaXMpKSwKICAgICAgICAgICAgICAgICAgITApCiAgICAgICAgICAgICAgICA6IG51bGw7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBpbml0aWFsaXplKCkgewogICAgICAgICAgYWRkRGVjb3JhdG9yKCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIFNWR0NvbXBvc2FibGVFZmZlY3QoKSB7fQogICAgICAgIFNWR0NvbXBvc2FibGVFZmZlY3QucHJvdG90eXBlID0gewogICAgICAgICAgY3JlYXRlTWVyZ2VOb2RlOiBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGkgPSBjcmVhdGVOUygiZmVNZXJnZSIpOwogICAgICAgICAgICBmb3IgKGkuc2V0QXR0cmlidXRlKCJyZXN1bHQiLCBlKSwgbiA9IDA7IG4gPCB0Lmxlbmd0aDsgbiArPSAxKQogICAgICAgICAgICAgIChyID0gY3JlYXRlTlMoImZlTWVyZ2VOb2RlIikpLnNldEF0dHJpYnV0ZSgiaW4iLCB0W25dKSwKICAgICAgICAgICAgICAgIGkuYXBwZW5kQ2hpbGQociksCiAgICAgICAgICAgICAgICBpLmFwcGVuZENoaWxkKHIpOwogICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgIH0sCiAgICAgICAgfTsKICAgICAgICB2YXIgbGluZWFyRmlsdGVyVmFsdWUgPQogICAgICAgICAgIjAuMzMzMyAwLjMzMzMgMC4zMzMzIDAgMCAwLjMzMzMgMC4zMzMzIDAuMzMzMyAwIDAgMC4zMzMzIDAuMzMzMyAwLjMzMzMgMCAwIDAgMCAwIjsKICAgICAgICBmdW5jdGlvbiBTVkdUaW50RmlsdGVyKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlciA9IHQ7CiAgICAgICAgICB2YXIgYSA9IGNyZWF0ZU5TKCJmZUNvbG9yTWF0cml4Iik7CiAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgidHlwZSIsICJtYXRyaXgiKSwKICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyIsICJsaW5lYXJSR0IiKSwKICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoInZhbHVlcyIsIGxpbmVhckZpbHRlclZhbHVlICsgIiAxIDAiKSwKICAgICAgICAgICAgKHRoaXMubGluZWFyRmlsdGVyID0gYSksCiAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJyZXN1bHQiLCBuICsgIl90aW50XzEiKSwKICAgICAgICAgICAgZS5hcHBlbmRDaGlsZChhKSwKICAgICAgICAgICAgKGEgPSBjcmVhdGVOUygiZmVDb2xvck1hdHJpeCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAibWF0cml4IiksCiAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLCAic1JHQiIpLAogICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgidmFsdWVzIiwgIjEgMCAwIDAgMCAwIDEgMCAwIDAgMCAwIDEgMCAwIDAgMCAwIDEgMCIpLAogICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgicmVzdWx0IiwgbiArICJfdGludF8yIiksCiAgICAgICAgICAgIGUuYXBwZW5kQ2hpbGQoYSksCiAgICAgICAgICAgICh0aGlzLm1hdHJpeEZpbHRlciA9IGEpOwogICAgICAgICAgdmFyIG8gPSB0aGlzLmNyZWF0ZU1lcmdlTm9kZShuLCBbaSwgbiArICJfdGludF8xIiwgbiArICJfdGludF8yIl0pOwogICAgICAgICAgZS5hcHBlbmRDaGlsZChvKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gU1ZHRmlsbEZpbHRlcihlLCB0LCByLCBuKSB7CiAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIgPSB0OwogICAgICAgICAgdmFyIGkgPSBjcmVhdGVOUygiZmVDb2xvck1hdHJpeCIpOwogICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAibWF0cml4IiksCiAgICAgICAgICAgIGkuc2V0QXR0cmlidXRlKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLCAic1JHQiIpLAogICAgICAgICAgICBpLnNldEF0dHJpYnV0ZSgidmFsdWVzIiwgIjEgMCAwIDAgMCAwIDEgMCAwIDAgMCAwIDEgMCAwIDAgMCAwIDEgMCIpLAogICAgICAgICAgICBpLnNldEF0dHJpYnV0ZSgicmVzdWx0IiwgbiksCiAgICAgICAgICAgIGUuYXBwZW5kQ2hpbGQoaSksCiAgICAgICAgICAgICh0aGlzLm1hdHJpeEZpbHRlciA9IGkpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBTVkdTdHJva2VFZmZlY3QoZSwgdCwgcikgewogICAgICAgICAgKHRoaXMuaW5pdGlhbGl6ZWQgPSAhMSksCiAgICAgICAgICAgICh0aGlzLmZpbHRlck1hbmFnZXIgPSB0KSwKICAgICAgICAgICAgKHRoaXMuZWxlbSA9IHIpLAogICAgICAgICAgICAodGhpcy5wYXRocyA9IFtdKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gU1ZHVHJpdG9uZUZpbHRlcihlLCB0LCByLCBuKSB7CiAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIgPSB0OwogICAgICAgICAgdmFyIGkgPSBjcmVhdGVOUygiZmVDb2xvck1hdHJpeCIpOwogICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAibWF0cml4IiksCiAgICAgICAgICAgIGkuc2V0QXR0cmlidXRlKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLCAibGluZWFyUkdCIiksCiAgICAgICAgICAgIGkuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICJ2YWx1ZXMiLAogICAgICAgICAgICAgICIwLjMzMzMgMC4zMzMzIDAuMzMzMyAwIDAgMC4zMzMzIDAuMzMzMyAwLjMzMzMgMCAwIDAuMzMzMyAwLjMzMzMgMC4zMzMzIDAgMCAwIDAgMCAxIDAiCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGUuYXBwZW5kQ2hpbGQoaSk7CiAgICAgICAgICB2YXIgYSA9IGNyZWF0ZU5TKCJmZUNvbXBvbmVudFRyYW5zZmVyIik7CiAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIiwgInNSR0IiKSwKICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsIG4pLAogICAgICAgICAgICAodGhpcy5tYXRyaXhGaWx0ZXIgPSBhKTsKICAgICAgICAgIHZhciBvID0gY3JlYXRlTlMoImZlRnVuY1IiKTsKICAgICAgICAgIG8uc2V0QXR0cmlidXRlKCJ0eXBlIiwgInRhYmxlIiksIGEuYXBwZW5kQ2hpbGQobyksICh0aGlzLmZlRnVuY1IgPSBvKTsKICAgICAgICAgIHZhciBzID0gY3JlYXRlTlMoImZlRnVuY0ciKTsKICAgICAgICAgIHMuc2V0QXR0cmlidXRlKCJ0eXBlIiwgInRhYmxlIiksIGEuYXBwZW5kQ2hpbGQocyksICh0aGlzLmZlRnVuY0cgPSBzKTsKICAgICAgICAgIHZhciBjID0gY3JlYXRlTlMoImZlRnVuY0IiKTsKICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCJ0eXBlIiwgInRhYmxlIiksCiAgICAgICAgICAgIGEuYXBwZW5kQ2hpbGQoYyksCiAgICAgICAgICAgICh0aGlzLmZlRnVuY0IgPSBjKSwKICAgICAgICAgICAgZS5hcHBlbmRDaGlsZChhKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gU1ZHUHJvTGV2ZWxzRmlsdGVyKGUsIHQsIHIsIG4pIHsKICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlciA9IHQ7CiAgICAgICAgICB2YXIgaSA9IHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50cywKICAgICAgICAgICAgYSA9IGNyZWF0ZU5TKCJmZUNvbXBvbmVudFRyYW5zZmVyIik7CiAgICAgICAgICAoaVsxMF0ucC5rIHx8CiAgICAgICAgICAgIGlbMTBdLnAudiAhPT0gMCB8fAogICAgICAgICAgICBpWzExXS5wLmsgfHwKICAgICAgICAgICAgaVsxMV0ucC52ICE9PSAxIHx8CiAgICAgICAgICAgIGlbMTJdLnAuayB8fAogICAgICAgICAgICBpWzEyXS5wLnYgIT09IDEgfHwKICAgICAgICAgICAgaVsxM10ucC5rIHx8CiAgICAgICAgICAgIGlbMTNdLnAudiAhPT0gMCB8fAogICAgICAgICAgICBpWzE0XS5wLmsgfHwKICAgICAgICAgICAgaVsxNF0ucC52ICE9PSAxKSAmJgogICAgICAgICAgICAodGhpcy5mZUZ1bmNSID0gdGhpcy5jcmVhdGVGZUZ1bmMoImZlRnVuY1IiLCBhKSksCiAgICAgICAgICAgIChpWzE3XS5wLmsgfHwKICAgICAgICAgICAgICBpWzE3XS5wLnYgIT09IDAgfHwKICAgICAgICAgICAgICBpWzE4XS5wLmsgfHwKICAgICAgICAgICAgICBpWzE4XS5wLnYgIT09IDEgfHwKICAgICAgICAgICAgICBpWzE5XS5wLmsgfHwKICAgICAgICAgICAgICBpWzE5XS5wLnYgIT09IDEgfHwKICAgICAgICAgICAgICBpWzIwXS5wLmsgfHwKICAgICAgICAgICAgICBpWzIwXS5wLnYgIT09IDAgfHwKICAgICAgICAgICAgICBpWzIxXS5wLmsgfHwKICAgICAgICAgICAgICBpWzIxXS5wLnYgIT09IDEpICYmCiAgICAgICAgICAgICAgKHRoaXMuZmVGdW5jRyA9IHRoaXMuY3JlYXRlRmVGdW5jKCJmZUZ1bmNHIiwgYSkpLAogICAgICAgICAgICAoaVsyNF0ucC5rIHx8CiAgICAgICAgICAgICAgaVsyNF0ucC52ICE9PSAwIHx8CiAgICAgICAgICAgICAgaVsyNV0ucC5rIHx8CiAgICAgICAgICAgICAgaVsyNV0ucC52ICE9PSAxIHx8CiAgICAgICAgICAgICAgaVsyNl0ucC5rIHx8CiAgICAgICAgICAgICAgaVsyNl0ucC52ICE9PSAxIHx8CiAgICAgICAgICAgICAgaVsyN10ucC5rIHx8CiAgICAgICAgICAgICAgaVsyN10ucC52ICE9PSAwIHx8CiAgICAgICAgICAgICAgaVsyOF0ucC5rIHx8CiAgICAgICAgICAgICAgaVsyOF0ucC52ICE9PSAxKSAmJgogICAgICAgICAgICAgICh0aGlzLmZlRnVuY0IgPSB0aGlzLmNyZWF0ZUZlRnVuYygiZmVGdW5jQiIsIGEpKSwKICAgICAgICAgICAgKGlbMzFdLnAuayB8fAogICAgICAgICAgICAgIGlbMzFdLnAudiAhPT0gMCB8fAogICAgICAgICAgICAgIGlbMzJdLnAuayB8fAogICAgICAgICAgICAgIGlbMzJdLnAudiAhPT0gMSB8fAogICAgICAgICAgICAgIGlbMzNdLnAuayB8fAogICAgICAgICAgICAgIGlbMzNdLnAudiAhPT0gMSB8fAogICAgICAgICAgICAgIGlbMzRdLnAuayB8fAogICAgICAgICAgICAgIGlbMzRdLnAudiAhPT0gMCB8fAogICAgICAgICAgICAgIGlbMzVdLnAuayB8fAogICAgICAgICAgICAgIGlbMzVdLnAudiAhPT0gMSkgJiYKICAgICAgICAgICAgICAodGhpcy5mZUZ1bmNBID0gdGhpcy5jcmVhdGVGZUZ1bmMoImZlRnVuY0EiLCBhKSksCiAgICAgICAgICAgICh0aGlzLmZlRnVuY1IgfHwgdGhpcy5mZUZ1bmNHIHx8IHRoaXMuZmVGdW5jQiB8fCB0aGlzLmZlRnVuY0EpICYmCiAgICAgICAgICAgICAgKGEuc2V0QXR0cmlidXRlKCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLCAic1JHQiIpLAogICAgICAgICAgICAgIGUuYXBwZW5kQ2hpbGQoYSkpLAogICAgICAgICAgICAoaVszXS5wLmsgfHwKICAgICAgICAgICAgICBpWzNdLnAudiAhPT0gMCB8fAogICAgICAgICAgICAgIGlbNF0ucC5rIHx8CiAgICAgICAgICAgICAgaVs0XS5wLnYgIT09IDEgfHwKICAgICAgICAgICAgICBpWzVdLnAuayB8fAogICAgICAgICAgICAgIGlbNV0ucC52ICE9PSAxIHx8CiAgICAgICAgICAgICAgaVs2XS5wLmsgfHwKICAgICAgICAgICAgICBpWzZdLnAudiAhPT0gMCB8fAogICAgICAgICAgICAgIGlbN10ucC5rIHx8CiAgICAgICAgICAgICAgaVs3XS5wLnYgIT09IDEpICYmCiAgICAgICAgICAgICAgKChhID0gY3JlYXRlTlMoImZlQ29tcG9uZW50VHJhbnNmZXIiKSkuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyIsCiAgICAgICAgICAgICAgICAic1JHQiIKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJyZXN1bHQiLCBuKSwKICAgICAgICAgICAgICBlLmFwcGVuZENoaWxkKGEpLAogICAgICAgICAgICAgICh0aGlzLmZlRnVuY1JDb21wb3NlZCA9IHRoaXMuY3JlYXRlRmVGdW5jKCJmZUZ1bmNSIiwgYSkpLAogICAgICAgICAgICAgICh0aGlzLmZlRnVuY0dDb21wb3NlZCA9IHRoaXMuY3JlYXRlRmVGdW5jKCJmZUZ1bmNHIiwgYSkpLAogICAgICAgICAgICAgICh0aGlzLmZlRnVuY0JDb21wb3NlZCA9IHRoaXMuY3JlYXRlRmVGdW5jKCJmZUZ1bmNCIiwgYSkpKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gU1ZHRHJvcFNoYWRvd0VmZmVjdChlLCB0LCByLCBuLCBpKSB7CiAgICAgICAgICB2YXIgYSA9IHQuY29udGFpbmVyLmdsb2JhbERhdGEucmVuZGVyQ29uZmlnLmZpbHRlclNpemUsCiAgICAgICAgICAgIG8gPSB0LmRhdGEuZnMgfHwgYTsKICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJ4Iiwgby54IHx8IGEueCksCiAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJ5Iiwgby55IHx8IGEueSksCiAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIG8ud2lkdGggfHwgYS53aWR0aCksCiAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCBvLmhlaWdodCB8fCBhLmhlaWdodCksCiAgICAgICAgICAgICh0aGlzLmZpbHRlck1hbmFnZXIgPSB0KTsKICAgICAgICAgIHZhciBzID0gY3JlYXRlTlMoImZlR2F1c3NpYW5CbHVyIik7CiAgICAgICAgICBzLnNldEF0dHJpYnV0ZSgiaW4iLCAiU291cmNlQWxwaGEiKSwKICAgICAgICAgICAgcy5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsIG4gKyAiX2Ryb3Bfc2hhZG93XzEiKSwKICAgICAgICAgICAgcy5zZXRBdHRyaWJ1dGUoInN0ZERldmlhdGlvbiIsICIwIiksCiAgICAgICAgICAgICh0aGlzLmZlR2F1c3NpYW5CbHVyID0gcyksCiAgICAgICAgICAgIGUuYXBwZW5kQ2hpbGQocyk7CiAgICAgICAgICB2YXIgYyA9IGNyZWF0ZU5TKCJmZU9mZnNldCIpOwogICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoImR4IiwgIjI1IiksCiAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCJkeSIsICIwIiksCiAgICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCJpbiIsIG4gKyAiX2Ryb3Bfc2hhZG93XzEiKSwKICAgICAgICAgICAgYy5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsIG4gKyAiX2Ryb3Bfc2hhZG93XzIiKSwKICAgICAgICAgICAgKHRoaXMuZmVPZmZzZXQgPSBjKSwKICAgICAgICAgICAgZS5hcHBlbmRDaGlsZChjKTsKICAgICAgICAgIHZhciB1ID0gY3JlYXRlTlMoImZlRmxvb2QiKTsKICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJmbG9vZC1jb2xvciIsICIjMDBmZjAwIiksCiAgICAgICAgICAgIHUuc2V0QXR0cmlidXRlKCJmbG9vZC1vcGFjaXR5IiwgIjEiKSwKICAgICAgICAgICAgdS5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsIG4gKyAiX2Ryb3Bfc2hhZG93XzMiKSwKICAgICAgICAgICAgKHRoaXMuZmVGbG9vZCA9IHUpLAogICAgICAgICAgICBlLmFwcGVuZENoaWxkKHUpOwogICAgICAgICAgdmFyIGwgPSBjcmVhdGVOUygiZmVDb21wb3NpdGUiKTsKICAgICAgICAgIGwuc2V0QXR0cmlidXRlKCJpbiIsIG4gKyAiX2Ryb3Bfc2hhZG93XzMiKSwKICAgICAgICAgICAgbC5zZXRBdHRyaWJ1dGUoImluMiIsIG4gKyAiX2Ryb3Bfc2hhZG93XzIiKSwKICAgICAgICAgICAgbC5zZXRBdHRyaWJ1dGUoIm9wZXJhdG9yIiwgImluIiksCiAgICAgICAgICAgIGwuc2V0QXR0cmlidXRlKCJyZXN1bHQiLCBuICsgIl9kcm9wX3NoYWRvd180IiksCiAgICAgICAgICAgIGUuYXBwZW5kQ2hpbGQobCk7CiAgICAgICAgICB2YXIgcCA9IHRoaXMuY3JlYXRlTWVyZ2VOb2RlKG4sIFtuICsgIl9kcm9wX3NoYWRvd180IiwgaV0pOwogICAgICAgICAgZS5hcHBlbmRDaGlsZChwKTsKICAgICAgICB9CiAgICAgICAgZXh0ZW5kUHJvdG90eXBlKFtTVkdDb21wb3NhYmxlRWZmZWN0XSwgU1ZHVGludEZpbHRlciksCiAgICAgICAgICAoU1ZHVGludEZpbHRlci5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBpZiAoZSB8fCB0aGlzLmZpbHRlck1hbmFnZXIuX21kZikgewogICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzBdLnAudiwKICAgICAgICAgICAgICAgIHIgPSB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbMV0ucC52LAogICAgICAgICAgICAgICAgbiA9IHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1syXS5wLnYgLyAxMDA7CiAgICAgICAgICAgICAgdGhpcy5saW5lYXJGaWx0ZXIuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgInZhbHVlcyIsCiAgICAgICAgICAgICAgICBsaW5lYXJGaWx0ZXJWYWx1ZSArICIgIiArIG4gKyAiIDAiCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIHRoaXMubWF0cml4RmlsdGVyLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgInZhbHVlcyIsCiAgICAgICAgICAgICAgICAgIHJbMF0gLQogICAgICAgICAgICAgICAgICAgIHRbMF0gKwogICAgICAgICAgICAgICAgICAgICIgMCAwIDAgIiArCiAgICAgICAgICAgICAgICAgICAgdFswXSArCiAgICAgICAgICAgICAgICAgICAgIiAiICsKICAgICAgICAgICAgICAgICAgICAoclsxXSAtIHRbMV0pICsKICAgICAgICAgICAgICAgICAgICAiIDAgMCAwICIgKwogICAgICAgICAgICAgICAgICAgIHRbMV0gKwogICAgICAgICAgICAgICAgICAgICIgIiArCiAgICAgICAgICAgICAgICAgICAgKHJbMl0gLSB0WzJdKSArCiAgICAgICAgICAgICAgICAgICAgIiAwIDAgMCAiICsKICAgICAgICAgICAgICAgICAgICB0WzJdICsKICAgICAgICAgICAgICAgICAgICAiIDAgMCAwIDEgMCIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR0ZpbGxGaWx0ZXIucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKGUgfHwgdGhpcy5maWx0ZXJNYW5hZ2VyLl9tZGYpIHsKICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1syXS5wLnYsCiAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzZdLnAudjsKICAgICAgICAgICAgICB0aGlzLm1hdHJpeEZpbHRlci5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAidmFsdWVzIiwKICAgICAgICAgICAgICAgICIwIDAgMCAwICIgKwogICAgICAgICAgICAgICAgICB0WzBdICsKICAgICAgICAgICAgICAgICAgIiAwIDAgMCAwICIgKwogICAgICAgICAgICAgICAgICB0WzFdICsKICAgICAgICAgICAgICAgICAgIiAwIDAgMCAwICIgKwogICAgICAgICAgICAgICAgICB0WzJdICsKICAgICAgICAgICAgICAgICAgIiAwIDAgMCAiICsKICAgICAgICAgICAgICAgICAgciArCiAgICAgICAgICAgICAgICAgICIgMCIKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdTdHJva2VFZmZlY3QucHJvdG90eXBlLmluaXRpYWxpemUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBlLAogICAgICAgICAgICAgIHQsCiAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGkgPQogICAgICAgICAgICAgICAgdGhpcy5lbGVtLmxheWVyRWxlbWVudC5jaGlsZHJlbiB8fAogICAgICAgICAgICAgICAgdGhpcy5lbGVtLmxheWVyRWxlbWVudC5jaGlsZE5vZGVzOwogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1sxXS5wLnYgPT09IDEKICAgICAgICAgICAgICAgID8gKChuID0gdGhpcy5lbGVtLm1hc2tNYW5hZ2VyLm1hc2tzUHJvcGVydGllcy5sZW5ndGgpLCAociA9IDApKQogICAgICAgICAgICAgICAgOiAobiA9IChyID0gdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzBdLnAudiAtIDEpICsgMSksCiAgICAgICAgICAgICAgICAodCA9IGNyZWF0ZU5TKCJnIikpLnNldEF0dHJpYnV0ZSgiZmlsbCIsICJub25lIiksCiAgICAgICAgICAgICAgICB0LnNldEF0dHJpYnV0ZSgic3Ryb2tlLWxpbmVjYXAiLCAicm91bmQiKSwKICAgICAgICAgICAgICAgIHQuc2V0QXR0cmlidXRlKCJzdHJva2UtZGFzaG9mZnNldCIsIDEpOwogICAgICAgICAgICAgIHIgPCBuOwogICAgICAgICAgICAgIHIgKz0gMQogICAgICAgICAgICApCiAgICAgICAgICAgICAgKGUgPSBjcmVhdGVOUygicGF0aCIpKSwKICAgICAgICAgICAgICAgIHQuYXBwZW5kQ2hpbGQoZSksCiAgICAgICAgICAgICAgICB0aGlzLnBhdGhzLnB1c2goeyBwOiBlLCBtOiByIH0pOwogICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzEwXS5wLnYgPT09IDMpIHsKICAgICAgICAgICAgICB2YXIgYSA9IGNyZWF0ZU5TKCJtYXNrIiksCiAgICAgICAgICAgICAgICBvID0gY3JlYXRlRWxlbWVudElEKCk7CiAgICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoImlkIiwgbyksCiAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgibWFzay10eXBlIiwgImFscGhhIiksCiAgICAgICAgICAgICAgICBhLmFwcGVuZENoaWxkKHQpLAogICAgICAgICAgICAgICAgdGhpcy5lbGVtLmdsb2JhbERhdGEuZGVmcy5hcHBlbmRDaGlsZChhKTsKICAgICAgICAgICAgICB2YXIgcyA9IGNyZWF0ZU5TKCJnIik7CiAgICAgICAgICAgICAgZm9yICgKICAgICAgICAgICAgICAgIHMuc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAibWFzayIsCiAgICAgICAgICAgICAgICAgICJ1cmwoIiArIGdldExvY2F0aW9uSHJlZigpICsgIiMiICsgbyArICIpIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlbMF07CgogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHMuYXBwZW5kQ2hpbGQoaVswXSk7CiAgICAgICAgICAgICAgdGhpcy5lbGVtLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZChzKSwKICAgICAgICAgICAgICAgICh0aGlzLm1hc2tlciA9IGEpLAogICAgICAgICAgICAgICAgdC5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsICIjZmZmIik7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoCiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzEwXS5wLnYgPT09IDEgfHwKICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbMTBdLnAudiA9PT0gMgogICAgICAgICAgICApIHsKICAgICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzEwXS5wLnYgPT09IDIpCiAgICAgICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgICAgICBpID0KICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW0ubGF5ZXJFbGVtZW50LmNoaWxkcmVuIHx8CiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtLmxheWVyRWxlbWVudC5jaGlsZE5vZGVzOwogICAgICAgICAgICAgICAgICBpLmxlbmd0aDsKCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5sYXllckVsZW1lbnQucmVtb3ZlQ2hpbGQoaVswXSk7CiAgICAgICAgICAgICAgdGhpcy5lbGVtLmxheWVyRWxlbWVudC5hcHBlbmRDaGlsZCh0KSwKICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5sYXllckVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJtYXNrIiksCiAgICAgICAgICAgICAgICB0LnNldEF0dHJpYnV0ZSgic3Ryb2tlIiwgIiNmZmYiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAodGhpcy5pbml0aWFsaXplZCA9ICEwKSwgKHRoaXMucGF0aE1hc2tlciA9IHQpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHU3Ryb2tlRWZmZWN0LnByb3RvdHlwZS5yZW5kZXJGcmFtZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHZhciB0OwogICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkIHx8IHRoaXMuaW5pdGlhbGl6ZSgpOwogICAgICAgICAgICB2YXIgciwKICAgICAgICAgICAgICBuLAogICAgICAgICAgICAgIGkgPSB0aGlzLnBhdGhzLmxlbmd0aDsKICAgICAgICAgICAgZm9yICh0ID0gMDsgdCA8IGk7IHQgKz0gMSkKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICB0aGlzLnBhdGhzW3RdLm0gIT09IC0xICYmCiAgICAgICAgICAgICAgICAoKHIgPSB0aGlzLmVsZW0ubWFza01hbmFnZXIudmlld0RhdGFbdGhpcy5wYXRoc1t0XS5tXSksCiAgICAgICAgICAgICAgICAobiA9IHRoaXMucGF0aHNbdF0ucCksCiAgICAgICAgICAgICAgICAoZSB8fCB0aGlzLmZpbHRlck1hbmFnZXIuX21kZiB8fCByLnByb3AuX21kZikgJiYKICAgICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoImQiLCByLmxhc3RQYXRoKSwKICAgICAgICAgICAgICAgIGUgfHwKICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzldLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbNF0ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1s3XS5wLl9tZGYgfHwKICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzhdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICByLnByb3AuX21kZikKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciBhOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbN10ucC52ICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1s4XS5wLnYgIT09IDEwMAogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgIHZhciBvID0KICAgICAgICAgICAgICAgICAgICAgIDAuMDEgKgogICAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4oCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1s3XS5wLnYsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1s4XS5wLnYKICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgcyA9CiAgICAgICAgICAgICAgICAgICAgICAwLjAxICoKICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWF4KAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbN10ucC52LAogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbOF0ucC52CiAgICAgICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgIGMgPSBuLmdldFRvdGFsTGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgIGEgPSAiMCAwIDAgIiArIGMgKiBvICsgIiAiOwogICAgICAgICAgICAgICAgICB2YXIgdSwKICAgICAgICAgICAgICAgICAgICBsID0gYyAqIChzIC0gbyksCiAgICAgICAgICAgICAgICAgICAgcCA9CiAgICAgICAgICAgICAgICAgICAgICAxICsKICAgICAgICAgICAgICAgICAgICAgIDIgKgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbNF0ucC52ICoKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzldLnAudiAqCiAgICAgICAgICAgICAgICAgICAgICAgIDAuMDEsCiAgICAgICAgICAgICAgICAgICAgZCA9IE1hdGguZmxvb3IobCAvIHApOwogICAgICAgICAgICAgICAgICBmb3IgKHUgPSAwOyB1IDwgZDsgdSArPSAxKQogICAgICAgICAgICAgICAgICAgIGEgKz0KICAgICAgICAgICAgICAgICAgICAgICIxICIgKwogICAgICAgICAgICAgICAgICAgICAgMiAqCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1s0XS5wLnYgKgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbOV0ucC52ICoKICAgICAgICAgICAgICAgICAgICAgICAgMC4wMSArCiAgICAgICAgICAgICAgICAgICAgICAiICI7CiAgICAgICAgICAgICAgICAgIGEgKz0gIjAgIiArIDEwICogYyArICIgMCAwIjsKICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICBhID0KICAgICAgICAgICAgICAgICAgICAiMSAiICsKICAgICAgICAgICAgICAgICAgICAyICoKICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1s0XS5wLnYgKgogICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzldLnAudiAqCiAgICAgICAgICAgICAgICAgICAgICAwLjAxOwogICAgICAgICAgICAgICAgbi5zZXRBdHRyaWJ1dGUoInN0cm9rZS1kYXNoYXJyYXkiLCBhKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAoKGUgfHwgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzRdLnAuX21kZikgJiYKICAgICAgICAgICAgICAgIHRoaXMucGF0aE1hc2tlci5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICJzdHJva2Utd2lkdGgiLAogICAgICAgICAgICAgICAgICAyICogdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzRdLnAudgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAoZSB8fCB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbNl0ucC5fbWRmKSAmJgogICAgICAgICAgICAgICAgdGhpcy5wYXRoTWFza2VyLnNldEF0dHJpYnV0ZSgKICAgICAgICAgICAgICAgICAgIm9wYWNpdHkiLAogICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbNl0ucC52CiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICh0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbMTBdLnAudiA9PT0gMSB8fAogICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzEwXS5wLnYgPT09IDIpICYmCiAgICAgICAgICAgICAgICAoZSB8fCB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbM10ucC5fbWRmKSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgdmFyIGggPSB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbM10ucC52OwogICAgICAgICAgICAgIHRoaXMucGF0aE1hc2tlci5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAic3Ryb2tlIiwKICAgICAgICAgICAgICAgICJyZ2IoIiArCiAgICAgICAgICAgICAgICAgIGJtRmxvb3IoMjU1ICogaFswXSkgKwogICAgICAgICAgICAgICAgICAiLCIgKwogICAgICAgICAgICAgICAgICBibUZsb29yKDI1NSAqIGhbMV0pICsKICAgICAgICAgICAgICAgICAgIiwiICsKICAgICAgICAgICAgICAgICAgYm1GbG9vcigyNTUgKiBoWzJdKSArCiAgICAgICAgICAgICAgICAgICIpIgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1RyaXRvbmVGaWx0ZXIucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKGUgfHwgdGhpcy5maWx0ZXJNYW5hZ2VyLl9tZGYpIHsKICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1swXS5wLnYsCiAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzFdLnAudiwKICAgICAgICAgICAgICAgIG4gPSB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbMl0ucC52LAogICAgICAgICAgICAgICAgaSA9IG5bMF0gKyAiICIgKyByWzBdICsgIiAiICsgdFswXSwKICAgICAgICAgICAgICAgIGEgPSBuWzFdICsgIiAiICsgclsxXSArICIgIiArIHRbMV0sCiAgICAgICAgICAgICAgICBvID0gblsyXSArICIgIiArIHJbMl0gKyAiICIgKyB0WzJdOwogICAgICAgICAgICAgIHRoaXMuZmVGdW5jUi5zZXRBdHRyaWJ1dGUoInRhYmxlVmFsdWVzIiwgaSksCiAgICAgICAgICAgICAgICB0aGlzLmZlRnVuY0cuc2V0QXR0cmlidXRlKCJ0YWJsZVZhbHVlcyIsIGEpLAogICAgICAgICAgICAgICAgdGhpcy5mZUZ1bmNCLnNldEF0dHJpYnV0ZSgidGFibGVWYWx1ZXMiLCBvKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHUHJvTGV2ZWxzRmlsdGVyLnByb3RvdHlwZS5jcmVhdGVGZUZ1bmMgPSBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgICB2YXIgciA9IGNyZWF0ZU5TKGUpOwogICAgICAgICAgICByZXR1cm4gci5zZXRBdHRyaWJ1dGUoInR5cGUiLCAidGFibGUiKSwgdC5hcHBlbmRDaGlsZChyKSwgcjsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR1Byb0xldmVsc0ZpbHRlci5wcm90b3R5cGUuZ2V0VGFibGVWYWx1ZSA9IGZ1bmN0aW9uICgKICAgICAgICAgICAgZSwKICAgICAgICAgICAgdCwKICAgICAgICAgICAgciwKICAgICAgICAgICAgbiwKICAgICAgICAgICAgaQogICAgICAgICAgKSB7CiAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgdmFyIGEsCiAgICAgICAgICAgICAgICBvLAogICAgICAgICAgICAgICAgcyA9IDAsCiAgICAgICAgICAgICAgICBjID0gTWF0aC5taW4oZSwgdCksCiAgICAgICAgICAgICAgICB1ID0gTWF0aC5tYXgoZSwgdCksCiAgICAgICAgICAgICAgICBsID0gQXJyYXkuY2FsbChudWxsLCB7IGxlbmd0aDogMjU2IH0pLAogICAgICAgICAgICAgICAgcCA9IDAsCiAgICAgICAgICAgICAgICBkID0gaSAtIG4sCiAgICAgICAgICAgICAgICBoID0gdCAtIGU7CiAgICAgICAgICAgICAgcyA8PSAyNTY7CgogICAgICAgICAgICApCiAgICAgICAgICAgICAgKG8gPQogICAgICAgICAgICAgICAgKGEgPSBzIC8gMjU2KSA8PSBjCiAgICAgICAgICAgICAgICAgID8gaCA8IDAKICAgICAgICAgICAgICAgICAgICA/IGkKICAgICAgICAgICAgICAgICAgICA6IG4KICAgICAgICAgICAgICAgICAgOiBhID49IHUKICAgICAgICAgICAgICAgICAgPyBoIDwgMAogICAgICAgICAgICAgICAgICAgID8gbgogICAgICAgICAgICAgICAgICAgIDogaQogICAgICAgICAgICAgICAgICA6IG4gKyBkICogTWF0aC5wb3coKGEgLSBlKSAvIGgsIDEgLyByKSksCiAgICAgICAgICAgICAgICAobFtwXSA9IG8pLAogICAgICAgICAgICAgICAgKHAgKz0gMSksCiAgICAgICAgICAgICAgICAocyArPSAyNTYgLyAyNTUpOwogICAgICAgICAgICByZXR1cm4gbC5qb2luKCIgIik7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdQcm9MZXZlbHNGaWx0ZXIucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKGUgfHwgdGhpcy5maWx0ZXJNYW5hZ2VyLl9tZGYpIHsKICAgICAgICAgICAgICB2YXIgdCwKICAgICAgICAgICAgICAgIHIgPSB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHM7CiAgICAgICAgICAgICAgdGhpcy5mZUZ1bmNSQ29tcG9zZWQgJiYKICAgICAgICAgICAgICAgIChlIHx8CiAgICAgICAgICAgICAgICAgIHJbM10ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgIHJbNF0ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgIHJbNV0ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgIHJbNl0ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgIHJbN10ucC5fbWRmKSAmJgogICAgICAgICAgICAgICAgKCh0ID0gdGhpcy5nZXRUYWJsZVZhbHVlKAogICAgICAgICAgICAgICAgICByWzNdLnAudiwKICAgICAgICAgICAgICAgICAgcls0XS5wLnYsCiAgICAgICAgICAgICAgICAgIHJbNV0ucC52LAogICAgICAgICAgICAgICAgICByWzZdLnAudiwKICAgICAgICAgICAgICAgICAgcls3XS5wLnYKICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgdGhpcy5mZUZ1bmNSQ29tcG9zZWQuc2V0QXR0cmlidXRlKCJ0YWJsZVZhbHVlcyIsIHQpLAogICAgICAgICAgICAgICAgdGhpcy5mZUZ1bmNHQ29tcG9zZWQuc2V0QXR0cmlidXRlKCJ0YWJsZVZhbHVlcyIsIHQpLAogICAgICAgICAgICAgICAgdGhpcy5mZUZ1bmNCQ29tcG9zZWQuc2V0QXR0cmlidXRlKCJ0YWJsZVZhbHVlcyIsIHQpKSwKICAgICAgICAgICAgICAgIHRoaXMuZmVGdW5jUiAmJgogICAgICAgICAgICAgICAgICAoZSB8fAogICAgICAgICAgICAgICAgICAgIHJbMTBdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICAgIHJbMTFdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICAgIHJbMTJdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICAgIHJbMTNdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICAgIHJbMTRdLnAuX21kZikgJiYKICAgICAgICAgICAgICAgICAgKCh0ID0gdGhpcy5nZXRUYWJsZVZhbHVlKAogICAgICAgICAgICAgICAgICAgIHJbMTBdLnAudiwKICAgICAgICAgICAgICAgICAgICByWzExXS5wLnYsCiAgICAgICAgICAgICAgICAgICAgclsxMl0ucC52LAogICAgICAgICAgICAgICAgICAgIHJbMTNdLnAudiwKICAgICAgICAgICAgICAgICAgICByWzE0XS5wLnYKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgIHRoaXMuZmVGdW5jUi5zZXRBdHRyaWJ1dGUoInRhYmxlVmFsdWVzIiwgdCkpLAogICAgICAgICAgICAgICAgdGhpcy5mZUZ1bmNHICYmCiAgICAgICAgICAgICAgICAgIChlIHx8CiAgICAgICAgICAgICAgICAgICAgclsxN10ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgICAgclsxOF0ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgICAgclsxOV0ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgICAgclsyMF0ucC5fbWRmIHx8CiAgICAgICAgICAgICAgICAgICAgclsyMV0ucC5fbWRmKSAmJgogICAgICAgICAgICAgICAgICAoKHQgPSB0aGlzLmdldFRhYmxlVmFsdWUoCiAgICAgICAgICAgICAgICAgICAgclsxN10ucC52LAogICAgICAgICAgICAgICAgICAgIHJbMThdLnAudiwKICAgICAgICAgICAgICAgICAgICByWzE5XS5wLnYsCiAgICAgICAgICAgICAgICAgICAgclsyMF0ucC52LAogICAgICAgICAgICAgICAgICAgIHJbMjFdLnAudgogICAgICAgICAgICAgICAgICApKSwKICAgICAgICAgICAgICAgICAgdGhpcy5mZUZ1bmNHLnNldEF0dHJpYnV0ZSgidGFibGVWYWx1ZXMiLCB0KSksCiAgICAgICAgICAgICAgICB0aGlzLmZlRnVuY0IgJiYKICAgICAgICAgICAgICAgICAgKGUgfHwKICAgICAgICAgICAgICAgICAgICByWzI0XS5wLl9tZGYgfHwKICAgICAgICAgICAgICAgICAgICByWzI1XS5wLl9tZGYgfHwKICAgICAgICAgICAgICAgICAgICByWzI2XS5wLl9tZGYgfHwKICAgICAgICAgICAgICAgICAgICByWzI3XS5wLl9tZGYgfHwKICAgICAgICAgICAgICAgICAgICByWzI4XS5wLl9tZGYpICYmCiAgICAgICAgICAgICAgICAgICgodCA9IHRoaXMuZ2V0VGFibGVWYWx1ZSgKICAgICAgICAgICAgICAgICAgICByWzI0XS5wLnYsCiAgICAgICAgICAgICAgICAgICAgclsyNV0ucC52LAogICAgICAgICAgICAgICAgICAgIHJbMjZdLnAudiwKICAgICAgICAgICAgICAgICAgICByWzI3XS5wLnYsCiAgICAgICAgICAgICAgICAgICAgclsyOF0ucC52CiAgICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICAgICAgICB0aGlzLmZlRnVuY0Iuc2V0QXR0cmlidXRlKCJ0YWJsZVZhbHVlcyIsIHQpKSwKICAgICAgICAgICAgICAgIHRoaXMuZmVGdW5jQSAmJgogICAgICAgICAgICAgICAgICAoZSB8fAogICAgICAgICAgICAgICAgICAgIHJbMzFdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICAgIHJbMzJdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICAgIHJbMzNdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICAgIHJbMzRdLnAuX21kZiB8fAogICAgICAgICAgICAgICAgICAgIHJbMzVdLnAuX21kZikgJiYKICAgICAgICAgICAgICAgICAgKCh0ID0gdGhpcy5nZXRUYWJsZVZhbHVlKAogICAgICAgICAgICAgICAgICAgIHJbMzFdLnAudiwKICAgICAgICAgICAgICAgICAgICByWzMyXS5wLnYsCiAgICAgICAgICAgICAgICAgICAgclszM10ucC52LAogICAgICAgICAgICAgICAgICAgIHJbMzRdLnAudiwKICAgICAgICAgICAgICAgICAgICByWzM1XS5wLnYKICAgICAgICAgICAgICAgICAgKSksCiAgICAgICAgICAgICAgICAgIHRoaXMuZmVGdW5jQS5zZXRBdHRyaWJ1dGUoInRhYmxlVmFsdWVzIiwgdCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbU1ZHQ29tcG9zYWJsZUVmZmVjdF0sIFNWR0Ryb3BTaGFkb3dFZmZlY3QpLAogICAgICAgICAgKFNWR0Ryb3BTaGFkb3dFZmZlY3QucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKGUgfHwgdGhpcy5maWx0ZXJNYW5hZ2VyLl9tZGYpIHsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoKGUgfHwgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzRdLnAuX21kZikgJiYKICAgICAgICAgICAgICAgICAgdGhpcy5mZUdhdXNzaWFuQmx1ci5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgInN0ZERldmlhdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzRdLnAudiAvIDQKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIGUgfHwgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzBdLnAuX21kZikKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzBdLnAudjsKICAgICAgICAgICAgICAgIHRoaXMuZmVGbG9vZC5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICJmbG9vZC1jb2xvciIsCiAgICAgICAgICAgICAgICAgIHJnYlRvSGV4KAogICAgICAgICAgICAgICAgICAgIE1hdGgucm91bmQoMjU1ICogdFswXSksCiAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCgyNTUgKiB0WzFdKSwKICAgICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKDI1NSAqIHRbMl0pCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICgoZSB8fCB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbMV0ucC5fbWRmKSAmJgogICAgICAgICAgICAgICAgICB0aGlzLmZlRmxvb2Quc2V0QXR0cmlidXRlKAogICAgICAgICAgICAgICAgICAgICJmbG9vZC1vcGFjaXR5IiwKICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlck1hbmFnZXIuZWZmZWN0RWxlbWVudHNbMV0ucC52IC8gMjU1CiAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICBlIHx8CiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1syXS5wLl9tZGYgfHwKICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzNdLnAuX21kZikKICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHZhciByID0gdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzNdLnAudiwKICAgICAgICAgICAgICAgICAgbiA9CiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1syXS5wLnYgLSA5MCkgKiBkZWdUb1JhZHMsCiAgICAgICAgICAgICAgICAgIGkgPSByICogTWF0aC5jb3MobiksCiAgICAgICAgICAgICAgICAgIGEgPSByICogTWF0aC5zaW4obik7CiAgICAgICAgICAgICAgICB0aGlzLmZlT2Zmc2V0LnNldEF0dHJpYnV0ZSgiZHgiLCBpKSwKICAgICAgICAgICAgICAgICAgdGhpcy5mZU9mZnNldC5zZXRBdHRyaWJ1dGUoImR5IiwgYSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB2YXIgX3N2Z01hdHRlU3ltYm9scyA9IFtdOwogICAgICAgIGZ1bmN0aW9uIFNWR01hdHRlM0VmZmVjdChlLCB0LCByKSB7CiAgICAgICAgICAodGhpcy5pbml0aWFsaXplZCA9ICExKSwKICAgICAgICAgICAgKHRoaXMuZmlsdGVyTWFuYWdlciA9IHQpLAogICAgICAgICAgICAodGhpcy5maWx0ZXJFbGVtID0gZSksCiAgICAgICAgICAgICh0aGlzLmVsZW0gPSByKSwKICAgICAgICAgICAgKHIubWF0dGVFbGVtZW50ID0gY3JlYXRlTlMoImciKSksCiAgICAgICAgICAgIHIubWF0dGVFbGVtZW50LmFwcGVuZENoaWxkKHIubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgci5tYXR0ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoci50cmFuc2Zvcm1lZEVsZW1lbnQpLAogICAgICAgICAgICAoci5iYXNlRWxlbWVudCA9IHIubWF0dGVFbGVtZW50KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gU1ZHR2F1c3NpYW5CbHVyRWZmZWN0KGUsIHQsIHIsIG4pIHsKICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJ4IiwgIi0xMDAlIiksCiAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJ5IiwgIi0xMDAlIiksCiAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsICIzMDAlIiksCiAgICAgICAgICAgIGUuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCAiMzAwJSIpLAogICAgICAgICAgICAodGhpcy5maWx0ZXJNYW5hZ2VyID0gdCk7CiAgICAgICAgICB2YXIgaSA9IGNyZWF0ZU5TKCJmZUdhdXNzaWFuQmx1ciIpOwogICAgICAgICAgaS5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsIG4pLAogICAgICAgICAgICBlLmFwcGVuZENoaWxkKGkpLAogICAgICAgICAgICAodGhpcy5mZUdhdXNzaWFuQmx1ciA9IGkpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBUcmFuc2Zvcm1FZmZlY3QoKSB7fQogICAgICAgIGZ1bmN0aW9uIFNWR1RyYW5zZm9ybUVmZmVjdChlLCB0KSB7CiAgICAgICAgICB0aGlzLmluaXQodCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIENWVHJhbnNmb3JtRWZmZWN0KGUpIHsKICAgICAgICAgIHRoaXMuaW5pdChlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIChTVkdNYXR0ZTNFZmZlY3QucHJvdG90eXBlLmZpbmRTeW1ib2wgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBmb3IgKHZhciB0ID0gMCwgciA9IF9zdmdNYXR0ZVN5bWJvbHMubGVuZ3RoOyB0IDwgcjsgKSB7CiAgICAgICAgICAgICAgaWYgKF9zdmdNYXR0ZVN5bWJvbHNbdF0gPT09IGUpIHJldHVybiBfc3ZnTWF0dGVTeW1ib2xzW3RdOwogICAgICAgICAgICAgIHQgKz0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR01hdHRlM0VmZmVjdC5wcm90b3R5cGUucmVwbGFjZUluUGFyZW50ID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgdmFyIHIgPSBlLmxheWVyRWxlbWVudC5wYXJlbnROb2RlOwogICAgICAgICAgICBpZiAocikgewogICAgICAgICAgICAgIGZvciAoCiAgICAgICAgICAgICAgICB2YXIgbiwgaSA9IHIuY2hpbGRyZW4sIGEgPSAwLCBvID0gaS5sZW5ndGg7CiAgICAgICAgICAgICAgICBhIDwgbyAmJiBpW2FdICE9PSBlLmxheWVyRWxlbWVudDsKCiAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgYSArPSAxOwogICAgICAgICAgICAgIGEgPD0gbyAtIDIgJiYgKG4gPSBpW2EgKyAxXSk7CiAgICAgICAgICAgICAgdmFyIHMgPSBjcmVhdGVOUygidXNlIik7CiAgICAgICAgICAgICAgcy5zZXRBdHRyaWJ1dGUoImhyZWYiLCAiIyIgKyB0KSwKICAgICAgICAgICAgICAgIG4gPyByLmluc2VydEJlZm9yZShzLCBuKSA6IHIuYXBwZW5kQ2hpbGQocyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR01hdHRlM0VmZmVjdC5wcm90b3R5cGUuc2V0RWxlbWVudEFzTWFzayA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICAgIGlmICghdGhpcy5maW5kU3ltYm9sKHQpKSB7CiAgICAgICAgICAgICAgdmFyIHIgPSBjcmVhdGVFbGVtZW50SUQoKSwKICAgICAgICAgICAgICAgIG4gPSBjcmVhdGVOUygibWFzayIpOwogICAgICAgICAgICAgIG4uc2V0QXR0cmlidXRlKCJpZCIsIHQubGF5ZXJJZCksCiAgICAgICAgICAgICAgICBuLnNldEF0dHJpYnV0ZSgibWFzay10eXBlIiwgImFscGhhIiksCiAgICAgICAgICAgICAgICBfc3ZnTWF0dGVTeW1ib2xzLnB1c2godCk7CiAgICAgICAgICAgICAgdmFyIGkgPSBlLmdsb2JhbERhdGEuZGVmczsKICAgICAgICAgICAgICBpLmFwcGVuZENoaWxkKG4pOwogICAgICAgICAgICAgIHZhciBhID0gY3JlYXRlTlMoInN5bWJvbCIpOwogICAgICAgICAgICAgIGEuc2V0QXR0cmlidXRlKCJpZCIsIHIpLAogICAgICAgICAgICAgICAgdGhpcy5yZXBsYWNlSW5QYXJlbnQodCwgciksCiAgICAgICAgICAgICAgICBhLmFwcGVuZENoaWxkKHQubGF5ZXJFbGVtZW50KSwKICAgICAgICAgICAgICAgIGkuYXBwZW5kQ2hpbGQoYSk7CiAgICAgICAgICAgICAgdmFyIG8gPSBjcmVhdGVOUygidXNlIik7CiAgICAgICAgICAgICAgby5zZXRBdHRyaWJ1dGUoImhyZWYiLCAiIyIgKyByKSwKICAgICAgICAgICAgICAgIG4uYXBwZW5kQ2hpbGQobyksCiAgICAgICAgICAgICAgICAodC5kYXRhLmhkID0gITEpLAogICAgICAgICAgICAgICAgdC5zaG93KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZS5zZXRNYXR0ZSh0LmxheWVySWQpOwogICAgICAgICAgfSksCiAgICAgICAgICAoU1ZHTWF0dGUzRWZmZWN0LnByb3RvdHlwZS5pbml0aWFsaXplID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBmb3IgKAogICAgICAgICAgICAgIHZhciBlID0gdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzBdLnAudiwKICAgICAgICAgICAgICAgIHQgPSB0aGlzLmVsZW0uY29tcC5lbGVtZW50cywKICAgICAgICAgICAgICAgIHIgPSAwLAogICAgICAgICAgICAgICAgbiA9IHQubGVuZ3RoOwogICAgICAgICAgICAgIHIgPCBuOwoKICAgICAgICAgICAgKQogICAgICAgICAgICAgIHRbcl0gJiYKICAgICAgICAgICAgICAgIHRbcl0uZGF0YS5pbmQgPT09IGUgJiYKICAgICAgICAgICAgICAgIHRoaXMuc2V0RWxlbWVudEFzTWFzayh0aGlzLmVsZW0sIHRbcl0pLAogICAgICAgICAgICAgICAgKHIgKz0gMSk7CiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSAhMDsKICAgICAgICAgIH0pLAogICAgICAgICAgKFNWR01hdHRlM0VmZmVjdC5wcm90b3R5cGUucmVuZGVyRnJhbWUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgfHwgdGhpcy5pbml0aWFsaXplKCk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChTVkdHYXVzc2lhbkJsdXJFZmZlY3QucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKGUgfHwgdGhpcy5maWx0ZXJNYW5hZ2VyLl9tZGYpIHsKICAgICAgICAgICAgICB2YXIgdCA9IDAuMyAqIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1swXS5wLnYsCiAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzWzFdLnAudiwKICAgICAgICAgICAgICAgIG4gPSByID09IDMgPyAwIDogdCwKICAgICAgICAgICAgICAgIGkgPSByID09IDIgPyAwIDogdDsKICAgICAgICAgICAgICB0aGlzLmZlR2F1c3NpYW5CbHVyLnNldEF0dHJpYnV0ZSgic3RkRGV2aWF0aW9uIiwgbiArICIgIiArIGkpOwogICAgICAgICAgICAgIHZhciBhID0KICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTWFuYWdlci5lZmZlY3RFbGVtZW50c1syXS5wLnYgPT0gMQogICAgICAgICAgICAgICAgICA/ICJ3cmFwIgogICAgICAgICAgICAgICAgICA6ICJkdXBsaWNhdGUiOwogICAgICAgICAgICAgIHRoaXMuZmVHYXVzc2lhbkJsdXIuc2V0QXR0cmlidXRlKCJlZGdlTW9kZSIsIGEpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIChUcmFuc2Zvcm1FZmZlY3QucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAodGhpcy5lZmZlY3RzTWFuYWdlciA9IGUpLAogICAgICAgICAgICAgICh0aGlzLnR5cGUgPSBlZmZlY3RUeXBlcy5UUkFOU0ZPUk1fRUZGRUNUKSwKICAgICAgICAgICAgICAodGhpcy5tYXRyaXggPSBuZXcgTWF0cml4KCkpLAogICAgICAgICAgICAgICh0aGlzLm9wYWNpdHkgPSAtMSksCiAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICAodGhpcy5fb3BNZGYgPSAhMSk7CiAgICAgICAgICB9KSwKICAgICAgICAgIChUcmFuc2Zvcm1FZmZlY3QucHJvdG90eXBlLnJlbmRlckZyYW1lID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICgodGhpcy5fb3BNZGYgPSAhMSksCiAgICAgICAgICAgICAgKHRoaXMuX21kZiA9ICExKSwKICAgICAgICAgICAgICBlIHx8IHRoaXMuZWZmZWN0c01hbmFnZXIuX21kZikKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLmVmZmVjdHNNYW5hZ2VyLmVmZmVjdEVsZW1lbnRzLAogICAgICAgICAgICAgICAgciA9IHRbMF0ucC52LAogICAgICAgICAgICAgICAgbiA9IHRbMV0ucC52LAogICAgICAgICAgICAgICAgaSA9IHRbMl0ucC52ID09PSAxLAogICAgICAgICAgICAgICAgYSA9IHRbM10ucC52LAogICAgICAgICAgICAgICAgbyA9IGkgPyBhIDogdFs0XS5wLnYsCiAgICAgICAgICAgICAgICBzID0gdFs1XS5wLnYsCiAgICAgICAgICAgICAgICBjID0gdFs2XS5wLnYsCiAgICAgICAgICAgICAgICB1ID0gdFs3XS5wLnY7CiAgICAgICAgICAgICAgdGhpcy5tYXRyaXgucmVzZXQoKSwKICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnRyYW5zbGF0ZSgtclswXSwgLXJbMV0sIHJbMl0pLAogICAgICAgICAgICAgICAgdGhpcy5tYXRyaXguc2NhbGUoMC4wMSAqIG8sIDAuMDEgKiBhLCAxKSwKICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnJvdGF0ZSgtdSAqIGRlZ1RvUmFkcyksCiAgICAgICAgICAgICAgICB0aGlzLm1hdHJpeC5za2V3RnJvbUF4aXMoLXMgKiBkZWdUb1JhZHMsIChjICsgOTApICogZGVnVG9SYWRzKSwKICAgICAgICAgICAgICAgIHRoaXMubWF0cml4LnRyYW5zbGF0ZShuWzBdLCBuWzFdLCAwKSwKICAgICAgICAgICAgICAgICh0aGlzLl9tZGYgPSAhMCksCiAgICAgICAgICAgICAgICB0aGlzLm9wYWNpdHkgIT09IHRbOF0ucC52ICYmCiAgICAgICAgICAgICAgICAgICgodGhpcy5vcGFjaXR5ID0gdFs4XS5wLnYpLCAodGhpcy5fb3BNZGYgPSAhMCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbVHJhbnNmb3JtRWZmZWN0XSwgU1ZHVHJhbnNmb3JtRWZmZWN0KSwKICAgICAgICAgIGV4dGVuZFByb3RvdHlwZShbVHJhbnNmb3JtRWZmZWN0XSwgQ1ZUcmFuc2Zvcm1FZmZlY3QpLAogICAgICAgICAgcmVnaXN0ZXJSZW5kZXJlcigiY2FudmFzIiwgQ2FudmFzUmVuZGVyZXIpLAogICAgICAgICAgcmVnaXN0ZXJSZW5kZXJlcigiaHRtbCIsIEh5YnJpZFJlbmRlcmVyKSwKICAgICAgICAgIHJlZ2lzdGVyUmVuZGVyZXIoInN2ZyIsIFNWR1JlbmRlcmVyKSwKICAgICAgICAgIFNoYXBlTW9kaWZpZXJzLnJlZ2lzdGVyTW9kaWZpZXIoInRtIiwgVHJpbU1vZGlmaWVyKSwKICAgICAgICAgIFNoYXBlTW9kaWZpZXJzLnJlZ2lzdGVyTW9kaWZpZXIoInBiIiwgUHVja2VyQW5kQmxvYXRNb2RpZmllciksCiAgICAgICAgICBTaGFwZU1vZGlmaWVycy5yZWdpc3Rlck1vZGlmaWVyKCJycCIsIFJlcGVhdGVyTW9kaWZpZXIpLAogICAgICAgICAgU2hhcGVNb2RpZmllcnMucmVnaXN0ZXJNb2RpZmllcigicmQiLCBSb3VuZENvcm5lcnNNb2RpZmllciksCiAgICAgICAgICBTaGFwZU1vZGlmaWVycy5yZWdpc3Rlck1vZGlmaWVyKCJ6eiIsIFppZ1phZ01vZGlmaWVyKSwKICAgICAgICAgIFNoYXBlTW9kaWZpZXJzLnJlZ2lzdGVyTW9kaWZpZXIoIm9wIiwgT2Zmc2V0UGF0aE1vZGlmaWVyKSwKICAgICAgICAgIHNldEV4cHJlc3Npb25zUGx1Z2luKEV4cHJlc3Npb25zKSwKICAgICAgICAgIHNldEV4cHJlc3Npb25JbnRlcmZhY2VzKGdldEludGVyZmFjZSksCiAgICAgICAgICBpbml0aWFsaXplJDEoKSwKICAgICAgICAgIGluaXRpYWxpemUoKSwKICAgICAgICAgIHJlZ2lzdGVyRWZmZWN0JDEoMjAsIFNWR1RpbnRGaWx0ZXIsICEwKSwKICAgICAgICAgIHJlZ2lzdGVyRWZmZWN0JDEoMjEsIFNWR0ZpbGxGaWx0ZXIsICEwKSwKICAgICAgICAgIHJlZ2lzdGVyRWZmZWN0JDEoMjIsIFNWR1N0cm9rZUVmZmVjdCwgITEpLAogICAgICAgICAgcmVnaXN0ZXJFZmZlY3QkMSgyMywgU1ZHVHJpdG9uZUZpbHRlciwgITApLAogICAgICAgICAgcmVnaXN0ZXJFZmZlY3QkMSgyNCwgU1ZHUHJvTGV2ZWxzRmlsdGVyLCAhMCksCiAgICAgICAgICByZWdpc3RlckVmZmVjdCQxKDI1LCBTVkdEcm9wU2hhZG93RWZmZWN0LCAhMCksCiAgICAgICAgICByZWdpc3RlckVmZmVjdCQxKDI4LCBTVkdNYXR0ZTNFZmZlY3QsICExKSwKICAgICAgICAgIHJlZ2lzdGVyRWZmZWN0JDEoMjksIFNWR0dhdXNzaWFuQmx1ckVmZmVjdCwgITApLAogICAgICAgICAgcmVnaXN0ZXJFZmZlY3QkMSgzNSwgU1ZHVHJhbnNmb3JtRWZmZWN0LCAhMSksCiAgICAgICAgICByZWdpc3RlckVmZmVjdCgzNSwgQ1ZUcmFuc2Zvcm1FZmZlY3QpLAogICAgICAgICAgbG90dGllCiAgICAgICAgKTsKICAgICAgfSk7CiAgfSk7CiAgdmFyIFdxID0gRSgoSVFlLCBCcSkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIGpNZSA9IG1yKCksCiAgICAgIGdjID0gKEZxKCksIG90KHpxKSksCiAgICAgIFlNZSA9IGtxKCk7CiAgICBqTWUuZGVmaW5lKAogICAgICAibG90dGllIiwKICAgICAgKEJxLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGxvdHRpZTogWU1lLAogICAgICAgICAgY3JlYXRlSW5zdGFuY2U6IGdjLmNyZWF0ZUluc3RhbmNlLAogICAgICAgICAgY2xlYW51cEVsZW1lbnQ6IGdjLmNsZWFudXBFbGVtZW50LAogICAgICAgICAgaW5pdDogZ2MuaW5pdCwKICAgICAgICAgIGRlc3Ryb3k6IGdjLmRlc3Ryb3ksCiAgICAgICAgICByZWFkeTogZ2MucmVhZHksCiAgICAgICAgfTsKICAgICAgfSkKICAgICk7CiAgfSk7CiAgdmFyIFZxID0gRSgoTFFlLCBYcSkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFVxID0gbXIoKTsKICAgIFVxLmRlZmluZSgKICAgICAgImJyYW5kIiwKICAgICAgKFhxLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0ID0ge30sCiAgICAgICAgICByID0gZG9jdW1lbnQsCiAgICAgICAgICBuID0gZSgiaHRtbCIpLAogICAgICAgICAgaSA9IGUoImJvZHkiKSwKICAgICAgICAgIGEgPSAiLnctd2ViZmxvdy1iYWRnZSIsCiAgICAgICAgICBvID0gd2luZG93LmxvY2F0aW9uLAogICAgICAgICAgcyA9IC9QaGFudG9tSlMvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLAogICAgICAgICAgYyA9CiAgICAgICAgICAgICJmdWxsc2NyZWVuY2hhbmdlIHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UgbW96ZnVsbHNjcmVlbmNoYW5nZSBtc2Z1bGxzY3JlZW5jaGFuZ2UiLAogICAgICAgICAgdTsKICAgICAgICB0LnJlYWR5ID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIGggPSBuLmF0dHIoImRhdGEtd2Ytc3RhdHVzIiksCiAgICAgICAgICAgIG0gPSBuLmF0dHIoImRhdGEtd2YtZG9tYWluIikgfHwgIiI7CiAgICAgICAgICAvXC53ZWJmbG93XC5pbyQvaS50ZXN0KG0pICYmIG8uaG9zdG5hbWUgIT09IG0gJiYgKGggPSAhMCksCiAgICAgICAgICAgIGggJiYKICAgICAgICAgICAgICAhcyAmJgogICAgICAgICAgICAgICgodSA9IHUgfHwgcCgpKSwKICAgICAgICAgICAgICBkKCksCiAgICAgICAgICAgICAgc2V0VGltZW91dChkLCA1MDApLAogICAgICAgICAgICAgIGUocikub2ZmKGMsIGwpLm9uKGMsIGwpKTsKICAgICAgICB9OwogICAgICAgIGZ1bmN0aW9uIGwoKSB7CiAgICAgICAgICB2YXIgaCA9CiAgICAgICAgICAgIHIuZnVsbFNjcmVlbiB8fAogICAgICAgICAgICByLm1vekZ1bGxTY3JlZW4gfHwKICAgICAgICAgICAgci53ZWJraXRJc0Z1bGxTY3JlZW4gfHwKICAgICAgICAgICAgci5tc0Z1bGxzY3JlZW5FbGVtZW50IHx8CiAgICAgICAgICAgICEhci53ZWJraXRGdWxsc2NyZWVuRWxlbWVudDsKICAgICAgICAgIGUodSkuYXR0cigic3R5bGUiLCBoID8gImRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsiIDogIiIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwKCkgewogICAgICAgICAgdmFyIGggPSBlKCcnKS5hdHRyKAogICAgICAgICAgICAgICJocmVmIiwKICAgICAgICAgICAgICAiIgogICAgICAgICAgICApLAogICAgICAgICAgICBtID0gZSgiPGltZz4iKQogICAgICAgICAgICAgIC5hdHRyKAogICAgICAgICAgICAgICAgInNyYyIsCiAgICAgICAgICAgICAgICAiIgogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAuYXR0cigiYWx0IiwgIiIpCiAgICAgICAgICAgICAgLmNzcyh7IG1hcmdpblJpZ2h0OiAiNHB4Iiwgd2lkdGg6ICIyNnB4IiB9KSwKICAgICAgICAgICAgdiA9IGUoIjxpbWc+IikKICAgICAgICAgICAgICAuYXR0cigKICAgICAgICAgICAgICAgICJzcmMiLAogICAgICAgICAgICAgICAgIiIKICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgLmF0dHIoImFsdCIsICJNYWRlIGluIFdlYmZsb3ciKTsKICAgICAgICAgIHJldHVybiBoLmFwcGVuZChtLCB2KSwgaFswXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZCgpIHsKICAgICAgICAgIHZhciBoID0gaS5jaGlsZHJlbihhKSwKICAgICAgICAgICAgbSA9IGgubGVuZ3RoICYmIGguZ2V0KDApID09PSB1LAogICAgICAgICAgICB2ID0gVXEuZW52KCJlZGl0b3IiKTsKICAgICAgICAgIGlmIChtKSB7CiAgICAgICAgICAgIHYgJiYgaC5yZW1vdmUoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaC5sZW5ndGggJiYgaC5yZW1vdmUoKSwgdiB8fCBpLmFwcGVuZCh1KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHQ7CiAgICAgIH0pCiAgICApOwogIH0pOwogIHZhciBHcSA9IEUoKE5RZSwgSHEpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciAkdiA9IG1yKCk7CiAgICAkdi5kZWZpbmUoCiAgICAgICJlZGl0IiwKICAgICAgKEhxLmV4cG9ydHMgPSBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgIGlmICgKICAgICAgICAgICgociA9IHIgfHwge30pLAogICAgICAgICAgKCR2LmVudigidGVzdCIpIHx8ICR2LmVudigiZnJhbWUiKSkgJiYgIXIuZml4dHVyZSAmJiAhS01lKCkpCiAgICAgICAgKQogICAgICAgICAgcmV0dXJuIHsgZXhpdDogMSB9OwogICAgICAgIHZhciBuID0ge30sCiAgICAgICAgICBpID0gZSh3aW5kb3cpLAogICAgICAgICAgYSA9IGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSwKICAgICAgICAgIG8gPSBkb2N1bWVudC5sb2NhdGlvbiwKICAgICAgICAgIHMgPSAiaGFzaGNoYW5nZSIsCiAgICAgICAgICBjLAogICAgICAgICAgdSA9IHIubG9hZCB8fCBkLAogICAgICAgICAgbCA9ICExOwogICAgICAgIHRyeSB7CiAgICAgICAgICBsID0KICAgICAgICAgICAgbG9jYWxTdG9yYWdlICYmCiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtICYmCiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJXZWJmbG93RWRpdG9yIik7CiAgICAgICAgfSBjYXRjaCB7fQogICAgICAgIGwKICAgICAgICAgID8gdSgpCiAgICAgICAgICA6IG8uc2VhcmNoCiAgICAgICAgICA/ICgvWz8mXShlZGl0KSg/Ols9Jj9dfCQpLy50ZXN0KG8uc2VhcmNoKSB8fAogICAgICAgICAgICAgIC9cP2VkaXQkLy50ZXN0KG8uaHJlZikpICYmCiAgICAgICAgICAgIHUoKQogICAgICAgICAgOiBpLm9uKHMsIHApLnRyaWdnZXJIYW5kbGVyKHMpOwogICAgICAgIGZ1bmN0aW9uIHAoKSB7CiAgICAgICAgICBjIHx8ICgvXD9lZGl0Ly50ZXN0KG8uaGFzaCkgJiYgdSgpKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZCgpIHsKICAgICAgICAgIChjID0gITApLAogICAgICAgICAgICAod2luZG93LldlYmZsb3dFZGl0b3IgPSAhMCksCiAgICAgICAgICAgIGkub2ZmKHMsIHApLAogICAgICAgICAgICBNKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgICAgICAgZS5hamF4KHsKICAgICAgICAgICAgICAgIHVybDogZygiaHR0cHM6Ly9lZGl0b3ItYXBpLndlYmZsb3cuY29tL2FwaS9lZGl0b3IvdmlldyIpLAogICAgICAgICAgICAgICAgZGF0YTogeyBzaXRlSWQ6IGEuYXR0cigiZGF0YS13Zi1zaXRlIikgfSwKICAgICAgICAgICAgICAgIHhockZpZWxkczogeyB3aXRoQ3JlZGVudGlhbHM6ICEwIH0sCiAgICAgICAgICAgICAgICBkYXRhVHlwZTogImpzb24iLAogICAgICAgICAgICAgICAgY3Jvc3NEb21haW46ICEwLAogICAgICAgICAgICAgICAgc3VjY2VzczogaChfKSwKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGgoXykgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChDKSB7CiAgICAgICAgICAgIGlmICghQykgewogICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGVkaXRvciBkYXRhIik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChDLnRoaXJkUGFydHlDb29raWVzU3VwcG9ydGVkID0gXyksCiAgICAgICAgICAgICAgbSh5KEMuc2NyaXB0UGF0aCksIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5XZWJmbG93RWRpdG9yKEMpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gbShfLCBDKSB7CiAgICAgICAgICBlLmFqYXgoeyB0eXBlOiAiR0VUIiwgdXJsOiBfLCBkYXRhVHlwZTogInNjcmlwdCIsIGNhY2hlOiAhMCB9KS50aGVuKAogICAgICAgICAgICBDLAogICAgICAgICAgICB2CiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB2KF8sIEMsIFIpIHsKICAgICAgICAgIHRocm93IChjb25zb2xlLmVycm9yKCJDb3VsZCBub3QgbG9hZCBlZGl0b3Igc2NyaXB0OiAiICsgQyksIFIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB5KF8pIHsKICAgICAgICAgIHJldHVybiBfLmluZGV4T2YoIi8vIikgPj0gMAogICAgICAgICAgICA/IF8KICAgICAgICAgICAgOiBnKCJodHRwczovL2VkaXRvci1hcGkud2ViZmxvdy5jb20iICsgXyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGcoXykgewogICAgICAgICAgcmV0dXJuIF8ucmVwbGFjZSgvKFteOl0pXC9cLy9nLCAiJDEvIik7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIE0oXykgewogICAgICAgICAgdmFyIEMgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CiAgICAgICAgICAoQy5zcmMgPSAiaHR0cHM6Ly93ZWJmbG93LmNvbS9zaXRlL3RoaXJkLXBhcnR5LWNvb2tpZS1jaGVjay5odG1sIiksCiAgICAgICAgICAgIChDLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIpLAogICAgICAgICAgICAoQy5zYW5kYm94ID0gImFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4iKTsKICAgICAgICAgIHZhciBSID0gZnVuY3Rpb24gKEwpIHsKICAgICAgICAgICAgTC5kYXRhID09PSAiV0ZfdGhpcmRfcGFydHlfY29va2llc191bnN1cHBvcnRlZCIKICAgICAgICAgICAgICA/IChBKEMsIFIpLCBfKCExKSkKICAgICAgICAgICAgICA6IEwuZGF0YSA9PT0gIldGX3RoaXJkX3BhcnR5X2Nvb2tpZXNfc3VwcG9ydGVkIiAmJgogICAgICAgICAgICAgICAgKEEoQywgUiksIF8oITApKTsKICAgICAgICAgIH07CiAgICAgICAgICAoQy5vbmVycm9yID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBBKEMsIFIpLCBfKCExKTsKICAgICAgICAgIH0pLAogICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIFIsICExKSwKICAgICAgICAgICAgd2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoQyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIEEoXywgQykgewogICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBDLCAhMSksIF8ucmVtb3ZlKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuOwogICAgICB9KQogICAgKTsKICAgIGZ1bmN0aW9uIEtNZSgpIHsKICAgICAgdHJ5IHsKICAgICAgICByZXR1cm4gd2luZG93LnRvcC5fX0N5cHJlc3NfXzsKICAgICAgfSBjYXRjaCB7CiAgICAgICAgcmV0dXJuICExOwogICAgICB9CiAgICB9CiAgfSk7CiAgdmFyIFlxID0gRSgod1FlLCBqcSkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyICRNZSA9IG1yKCk7CiAgICAkTWUuZGVmaW5lKAogICAgICAiZm9jdXMtdmlzaWJsZSIsCiAgICAgIChqcS5leHBvcnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgIGZ1bmN0aW9uIGUocikgewogICAgICAgICAgdmFyIG4gPSAhMCwKICAgICAgICAgICAgaSA9ICExLAogICAgICAgICAgICBhID0gbnVsbCwKICAgICAgICAgICAgbyA9IHsKICAgICAgICAgICAgICB0ZXh0OiAhMCwKICAgICAgICAgICAgICBzZWFyY2g6ICEwLAogICAgICAgICAgICAgIHVybDogITAsCiAgICAgICAgICAgICAgdGVsOiAhMCwKICAgICAgICAgICAgICBlbWFpbDogITAsCiAgICAgICAgICAgICAgcGFzc3dvcmQ6ICEwLAogICAgICAgICAgICAgIG51bWJlcjogITAsCiAgICAgICAgICAgICAgZGF0ZTogITAsCiAgICAgICAgICAgICAgbW9udGg6ICEwLAogICAgICAgICAgICAgIHdlZWs6ICEwLAogICAgICAgICAgICAgIHRpbWU6ICEwLAogICAgICAgICAgICAgIGRhdGV0aW1lOiAhMCwKICAgICAgICAgICAgICAiZGF0ZXRpbWUtbG9jYWwiOiAhMCwKICAgICAgICAgICAgfTsKICAgICAgICAgIGZ1bmN0aW9uIHMoQSkgewogICAgICAgICAgICByZXR1cm4gISEoCiAgICAgICAgICAgICAgQSAmJgogICAgICAgICAgICAgIEEgIT09IGRvY3VtZW50ICYmCiAgICAgICAgICAgICAgQS5ub2RlTmFtZSAhPT0gIkhUTUwiICYmCiAgICAgICAgICAgICAgQS5ub2RlTmFtZSAhPT0gIkJPRFkiICYmCiAgICAgICAgICAgICAgImNsYXNzTGlzdCIgaW4gQSAmJgogICAgICAgICAgICAgICJjb250YWlucyIgaW4gQS5jbGFzc0xpc3QKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIGMoQSkgewogICAgICAgICAgICB2YXIgXyA9IEEudHlwZSwKICAgICAgICAgICAgICBDID0gQS50YWdOYW1lOwogICAgICAgICAgICByZXR1cm4gISEoCiAgICAgICAgICAgICAgKEMgPT09ICJJTlBVVCIgJiYgb1tfXSAmJiAhQS5yZWFkT25seSkgfHwKICAgICAgICAgICAgICAoQyA9PT0gIlRFWFRBUkVBIiAmJiAhQS5yZWFkT25seSkgfHwKICAgICAgICAgICAgICBBLmlzQ29udGVudEVkaXRhYmxlCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiB1KEEpIHsKICAgICAgICAgICAgQS5nZXRBdHRyaWJ1dGUoImRhdGEtd2YtZm9jdXMtdmlzaWJsZSIpIHx8CiAgICAgICAgICAgICAgQS5zZXRBdHRyaWJ1dGUoImRhdGEtd2YtZm9jdXMtdmlzaWJsZSIsICJ0cnVlIik7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBsKEEpIHsKICAgICAgICAgICAgQS5nZXRBdHRyaWJ1dGUoImRhdGEtd2YtZm9jdXMtdmlzaWJsZSIpICYmCiAgICAgICAgICAgICAgQS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtd2YtZm9jdXMtdmlzaWJsZSIpOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gcChBKSB7CiAgICAgICAgICAgIEEubWV0YUtleSB8fAogICAgICAgICAgICAgIEEuYWx0S2V5IHx8CiAgICAgICAgICAgICAgQS5jdHJsS2V5IHx8CiAgICAgICAgICAgICAgKHMoci5hY3RpdmVFbGVtZW50KSAmJiB1KHIuYWN0aXZlRWxlbWVudCksIChuID0gITApKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIGQoKSB7CiAgICAgICAgICAgIG4gPSAhMTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIGgoQSkgewogICAgICAgICAgICBzKEEudGFyZ2V0KSAmJiAobiB8fCBjKEEudGFyZ2V0KSkgJiYgdShBLnRhcmdldCk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBtKEEpIHsKICAgICAgICAgICAgcyhBLnRhcmdldCkgJiYKICAgICAgICAgICAgICBBLnRhcmdldC5oYXNBdHRyaWJ1dGUoImRhdGEtd2YtZm9jdXMtdmlzaWJsZSIpICYmCiAgICAgICAgICAgICAgKChpID0gITApLAogICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoYSksCiAgICAgICAgICAgICAgKGEgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBpID0gITE7CiAgICAgICAgICAgICAgfSwgMTAwKSksCiAgICAgICAgICAgICAgbChBLnRhcmdldCkpOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gdigpIHsKICAgICAgICAgICAgZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAiaGlkZGVuIiAmJiAoaSAmJiAobiA9ICEwKSwgeSgpKTsKICAgICAgICAgIH0KICAgICAgICAgIGZ1bmN0aW9uIHkoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIE0pLAogICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIE0pLAogICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCBNKSwKICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsIE0pLAogICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgTSksCiAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgTSksCiAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwgTSksCiAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIE0pLAogICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgTSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBnKCkgewogICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBNKSwKICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBNKSwKICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgTSksCiAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLCBNKSwKICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIE0pLAogICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsIE0pLAogICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIE0pLAogICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBNKSwKICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIE0pOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gTShBKSB7CiAgICAgICAgICAgIChBLnRhcmdldC5ub2RlTmFtZSAmJiBBLnRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAiaHRtbCIpIHx8CiAgICAgICAgICAgICAgKChuID0gITEpLCBnKCkpOwogICAgICAgICAgfQogICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHAsICEwKSwKICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgZCwgITApLAogICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIGQsICEwKSwKICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIGQsICEwKSwKICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsIHYsICEwKSwKICAgICAgICAgICAgeSgpLAogICAgICAgICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgaCwgITApLAogICAgICAgICAgICByLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCBtLCAhMCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHQoKSB7CiAgICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50IDwgInUiKQogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIjpmb2N1cy12aXNpYmxlIik7CiAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgIGUoZG9jdW1lbnQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7IHJlYWR5OiB0IH07CiAgICAgIH0pCiAgICApOwogIH0pOwogIHZhciBRcSA9IEUoKFBRZSwgJHEpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBLcSA9IG1yKCk7CiAgICBLcS5kZWZpbmUoCiAgICAgICJmb2N1cyIsCiAgICAgICgkcS5leHBvcnRzID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBlID0gW10sCiAgICAgICAgICB0ID0gITE7CiAgICAgICAgZnVuY3Rpb24gcihvKSB7CiAgICAgICAgICB0ICYmCiAgICAgICAgICAgIChvLnByZXZlbnREZWZhdWx0KCksCiAgICAgICAgICAgIG8uc3RvcFByb3BhZ2F0aW9uKCksCiAgICAgICAgICAgIG8uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksCiAgICAgICAgICAgIGUudW5zaGlmdChvKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIG4obykgewogICAgICAgICAgdmFyIHMgPSBvLnRhcmdldCwKICAgICAgICAgICAgYyA9IHMudGFnTmFtZTsKICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICgvXmEkL2kudGVzdChjKSAmJiBzLmhyZWYgIT0gbnVsbCkgfHwKICAgICAgICAgICAgKC9eKGJ1dHRvbnx0ZXh0YXJlYSkkL2kudGVzdChjKSAmJiBzLmRpc2FibGVkICE9PSAhMCkgfHwKICAgICAgICAgICAgKC9eaW5wdXQkL2kudGVzdChjKSAmJgogICAgICAgICAgICAgIC9eKGJ1dHRvbnxyZXNldHxzdWJtaXR8cmFkaW98Y2hlY2tib3gpJC9pLnRlc3Qocy50eXBlKSAmJgogICAgICAgICAgICAgICFzLmRpc2FibGVkKSB8fAogICAgICAgICAgICAoIS9eKGJ1dHRvbnxpbnB1dHx0ZXh0YXJlYXxzZWxlY3R8YSkkL2kudGVzdChjKSAmJgogICAgICAgICAgICAgICFOdW1iZXIuaXNOYU4oTnVtYmVyLnBhcnNlRmxvYXQocy50YWJJbmRleCkpKSB8fAogICAgICAgICAgICAvXmF1ZGlvJC9pLnRlc3QoYykgfHwKICAgICAgICAgICAgKC9edmlkZW8kL2kudGVzdChjKSAmJiBzLmNvbnRyb2xzID09PSAhMCkKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGkobykgewogICAgICAgICAgbihvKSAmJgogICAgICAgICAgICAoKHQgPSAhMCksCiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgIGZvciAodCA9ICExLCBvLnRhcmdldC5mb2N1cygpOyBlLmxlbmd0aCA+IDA7ICkgewogICAgICAgICAgICAgICAgdmFyIHMgPSBlLnBvcCgpOwogICAgICAgICAgICAgICAgcy50YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudChzLnR5cGUsIHMpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIDApKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYSgpIHsKICAgICAgICAgIHR5cGVvZiBkb2N1bWVudCA8ICJ1IiAmJgogICAgICAgICAgICBkb2N1bWVudC5ib2R5Lmhhc0F0dHJpYnV0ZSgiZGF0YS13Zi1mb2N1cy13aXRoaW4iKSAmJgogICAgICAgICAgICBLcS5lbnYuc2FmYXJpICYmCiAgICAgICAgICAgIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBpLCAhMCksCiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCByLCAhMCksCiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgciwgITApKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsgcmVhZHk6IGEgfTsKICAgICAgfSkKICAgICk7CiAgfSk7CiAgdmFyIGV6ID0gRSgoRFFlLCBacSkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFF2ID0gd2luZG93LmpRdWVyeSwKICAgICAgQm4gPSB7fSwKICAgICAgdHAgPSBbXSwKICAgICAgSnEgPSAiLnctaXgiLAogICAgICBycCA9IHsKICAgICAgICByZXNldDogZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgIHQuX193Zl9pbnRybyA9IG51bGw7CiAgICAgICAgfSwKICAgICAgICBpbnRybzogZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgIHQuX193Zl9pbnRybyB8fAogICAgICAgICAgICAoKHQuX193Zl9pbnRybyA9ICEwKSwgUXYodCkudHJpZ2dlckhhbmRsZXIoQm4udHlwZXMuSU5UUk8pKTsKICAgICAgICB9LAogICAgICAgIG91dHJvOiBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgdC5fX3dmX2ludHJvICYmCiAgICAgICAgICAgICgodC5fX3dmX2ludHJvID0gbnVsbCksIFF2KHQpLnRyaWdnZXJIYW5kbGVyKEJuLnR5cGVzLk9VVFJPKSk7CiAgICAgICAgfSwKICAgICAgfTsKICAgIEJuLnRyaWdnZXJzID0ge307CiAgICBCbi50eXBlcyA9IHsgSU5UUk86ICJ3LWl4LWludHJvIiArIEpxLCBPVVRSTzogInctaXgtb3V0cm8iICsgSnEgfTsKICAgIEJuLmluaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgIGZvciAodmFyIGUgPSB0cC5sZW5ndGgsIHQgPSAwOyB0IDwgZTsgdCsrKSB7CiAgICAgICAgdmFyIHIgPSB0cFt0XTsKICAgICAgICByWzBdKDAsIHJbMV0pOwogICAgICB9CiAgICAgICh0cCA9IFtdKSwgUXYuZXh0ZW5kKEJuLnRyaWdnZXJzLCBycCk7CiAgICB9OwogICAgQm4uYXN5bmMgPSBmdW5jdGlvbiAoKSB7CiAgICAgIGZvciAodmFyIGUgaW4gcnApIHsKICAgICAgICB2YXIgdCA9IHJwW2VdOwogICAgICAgIHJwLmhhc093blByb3BlcnR5KGUpICYmCiAgICAgICAgICAoQm4udHJpZ2dlcnNbZV0gPSBmdW5jdGlvbiAociwgbikgewogICAgICAgICAgICB0cC5wdXNoKFt0LCBuXSk7CiAgICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIEJuLmFzeW5jKCk7CiAgICBacS5leHBvcnRzID0gQm47CiAgfSk7CiAgdmFyIHZjID0gRSgocVFlLCBueikgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIEp2ID0gZXooKTsKICAgIGZ1bmN0aW9uIHR6KGUsIHQpIHsKICAgICAgdmFyIHIgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKTsKICAgICAgci5pbml0Q3VzdG9tRXZlbnQodCwgITAsICEwLCBudWxsKSwgZS5kaXNwYXRjaEV2ZW50KHIpOwogICAgfQogICAgdmFyIFFNZSA9IHdpbmRvdy5qUXVlcnksCiAgICAgIG5wID0ge30sCiAgICAgIHJ6ID0gIi53LWl4IiwKICAgICAgSk1lID0gewogICAgICAgIHJlc2V0OiBmdW5jdGlvbiAoZSwgdCkgewogICAgICAgICAgSnYudHJpZ2dlcnMucmVzZXQoZSwgdCk7CiAgICAgICAgfSwKICAgICAgICBpbnRybzogZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgIEp2LnRyaWdnZXJzLmludHJvKGUsIHQpLCB0eih0LCAiQ09NUE9ORU5UX0FDVElWRSIpOwogICAgICAgIH0sCiAgICAgICAgb3V0cm86IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgICBKdi50cmlnZ2Vycy5vdXRybyhlLCB0KSwgdHoodCwgIkNPTVBPTkVOVF9JTkFDVElWRSIpOwogICAgICAgIH0sCiAgICAgIH07CiAgICBucC50cmlnZ2VycyA9IHt9OwogICAgbnAudHlwZXMgPSB7IElOVFJPOiAidy1peC1pbnRybyIgKyByeiwgT1VUUk86ICJ3LWl4LW91dHJvIiArIHJ6IH07CiAgICBRTWUuZXh0ZW5kKG5wLnRyaWdnZXJzLCBKTWUpOwogICAgbnouZXhwb3J0cyA9IG5wOwogIH0pOwogIHZhciBiYyA9IEUoKHpRZSwgaXopID0+IHsKICAgIHZhciBaTWUgPSBNeSgpLAogICAgICBlQWUgPSBaTWUoT2JqZWN0LmdldFByb3RvdHlwZU9mLCBPYmplY3QpOwogICAgaXouZXhwb3J0cyA9IGVBZTsKICB9KTsKICB2YXIgaXAgPSBFKChGUWUsIG96KSA9PiB7CiAgICB2YXIgdEFlID0gRG4oKSwKICAgICAgckFlID0gYmMoKSwKICAgICAgbkFlID0gVHIoKSwKICAgICAgaUFlID0gIltvYmplY3QgT2JqZWN0XSIsCiAgICAgIGFBZSA9IEZ1bmN0aW9uLnByb3RvdHlwZSwKICAgICAgb0FlID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgYXogPSBhQWUudG9TdHJpbmcsCiAgICAgIHNBZSA9IG9BZS5oYXNPd25Qcm9wZXJ0eSwKICAgICAgY0FlID0gYXouY2FsbChPYmplY3QpOwogICAgZnVuY3Rpb24gdUFlKGUpIHsKICAgICAgaWYgKCFuQWUoZSkgfHwgdEFlKGUpICE9IGlBZSkgcmV0dXJuICExOwogICAgICB2YXIgdCA9IHJBZShlKTsKICAgICAgaWYgKHQgPT09IG51bGwpIHJldHVybiAhMDsKICAgICAgdmFyIHIgPSBzQWUuY2FsbCh0LCAiY29uc3RydWN0b3IiKSAmJiB0LmNvbnN0cnVjdG9yOwogICAgICByZXR1cm4gdHlwZW9mIHIgPT0gImZ1bmN0aW9uIiAmJiByIGluc3RhbmNlb2YgciAmJiBhei5jYWxsKHIpID09IGNBZTsKICAgIH0KICAgIG96LmV4cG9ydHMgPSB1QWU7CiAgfSk7CiAgdmFyIHN6ID0gRSgoWnYpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShadiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsKICAgIFp2LmRlZmF1bHQgPSBsQWU7CiAgICBmdW5jdGlvbiBsQWUoZSkgewogICAgICB2YXIgdCwKICAgICAgICByID0gZS5TeW1ib2w7CiAgICAgIHJldHVybiAoCiAgICAgICAgdHlwZW9mIHIgPT0gImZ1bmN0aW9uIgogICAgICAgICAgPyByLm9ic2VydmFibGUKICAgICAgICAgICAgPyAodCA9IHIub2JzZXJ2YWJsZSkKICAgICAgICAgICAgOiAoKHQgPSByKCJvYnNlcnZhYmxlIikpLCAoci5vYnNlcnZhYmxlID0gdCkpCiAgICAgICAgICA6ICh0ID0gIkBAb2JzZXJ2YWJsZSIpLAogICAgICAgIHQKICAgICAgKTsKICAgIH0KICB9KTsKICB2YXIgY3ogPSBFKCh0YiwgZWIpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsKICAgIHZhciBmQWUgPSBzeigpLAogICAgICBwQWUgPSBkQWUoZkFlKTsKICAgIGZ1bmN0aW9uIGRBZShlKSB7CiAgICAgIHJldHVybiBlICYmIGUuX19lc01vZHVsZSA/IGUgOiB7IGRlZmF1bHQ6IGUgfTsKICAgIH0KICAgIHZhciBGczsKICAgIHR5cGVvZiBzZWxmIDwgInUiCiAgICAgID8gKEZzID0gc2VsZikKICAgICAgOiB0eXBlb2Ygd2luZG93IDwgInUiCiAgICAgID8gKEZzID0gd2luZG93KQogICAgICA6IHR5cGVvZiBnbG9iYWwgPCAidSIKICAgICAgPyAoRnMgPSBnbG9iYWwpCiAgICAgIDogdHlwZW9mIGViIDwgInUiCiAgICAgID8gKEZzID0gZWIpCiAgICAgIDogKEZzID0gRnVuY3Rpb24oInJldHVybiB0aGlzIikoKSk7CiAgICB2YXIgaEFlID0gKDAsIHBBZS5kZWZhdWx0KShGcyk7CiAgICB0Yi5kZWZhdWx0ID0gaEFlOwogIH0pOwogIHZhciByYiA9IEUoKE1jKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICBNYy5fX2VzTW9kdWxlID0gITA7CiAgICBNYy5BY3Rpb25UeXBlcyA9IHZvaWQgMDsKICAgIE1jLmRlZmF1bHQgPSBwejsKICAgIHZhciBtQWUgPSBpcCgpLAogICAgICB5QWUgPSBmeihtQWUpLAogICAgICBnQWUgPSBjeigpLAogICAgICB1eiA9IGZ6KGdBZSk7CiAgICBmdW5jdGlvbiBmeihlKSB7CiAgICAgIHJldHVybiBlICYmIGUuX19lc01vZHVsZSA/IGUgOiB7IGRlZmF1bHQ6IGUgfTsKICAgIH0KICAgIHZhciBseiA9IChNYy5BY3Rpb25UeXBlcyA9IHsgSU5JVDogIkBAcmVkdXgvSU5JVCIgfSk7CiAgICBmdW5jdGlvbiBweihlLCB0LCByKSB7CiAgICAgIHZhciBuOwogICAgICBpZiAoCiAgICAgICAgKHR5cGVvZiB0ID09ICJmdW5jdGlvbiIgJiYgdHlwZW9mIHIgPiAidSIgJiYgKChyID0gdCksICh0ID0gdm9pZCAwKSksCiAgICAgICAgdHlwZW9mIHIgPCAidSIpCiAgICAgICkgewogICAgICAgIGlmICh0eXBlb2YgciAhPSAiZnVuY3Rpb24iKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB0aGUgZW5oYW5jZXIgdG8gYmUgYSBmdW5jdGlvbi4iKTsKICAgICAgICByZXR1cm4gcihweikoZSwgdCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBlICE9ICJmdW5jdGlvbiIpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB0aGUgcmVkdWNlciB0byBiZSBhIGZ1bmN0aW9uLiIpOwogICAgICB2YXIgaSA9IGUsCiAgICAgICAgYSA9IHQsCiAgICAgICAgbyA9IFtdLAogICAgICAgIHMgPSBvLAogICAgICAgIGMgPSAhMTsKICAgICAgZnVuY3Rpb24gdSgpIHsKICAgICAgICBzID09PSBvICYmIChzID0gby5zbGljZSgpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBsKCkgewogICAgICAgIHJldHVybiBhOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHAodikgewogICAgICAgIGlmICh0eXBlb2YgdiAhPSAiZnVuY3Rpb24iKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLiIpOwogICAgICAgIHZhciB5ID0gITA7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIHUoKSwKICAgICAgICAgIHMucHVzaCh2KSwKICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKHkpIHsKICAgICAgICAgICAgICAoeSA9ICExKSwgdSgpOwogICAgICAgICAgICAgIHZhciBNID0gcy5pbmRleE9mKHYpOwogICAgICAgICAgICAgIHMuc3BsaWNlKE0sIDEpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkKHYpIHsKICAgICAgICBpZiAoISgwLCB5QWUuZGVmYXVsdCkodikpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICJBY3Rpb25zIG11c3QgYmUgcGxhaW4gb2JqZWN0cy4gVXNlIGN1c3RvbSBtaWRkbGV3YXJlIGZvciBhc3luYyBhY3Rpb25zLiIKICAgICAgICAgICk7CiAgICAgICAgaWYgKHR5cGVvZiB2LnR5cGUgPiAidSIpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICdBY3Rpb25zIG1heSBub3QgaGF2ZSBhbiB1bmRlZmluZWQgInR5cGUiIHByb3BlcnR5LiBIYXZlIHlvdSBtaXNzcGVsbGVkIGEgY29uc3RhbnQ/JwogICAgICAgICAgKTsKICAgICAgICBpZiAoYykgdGhyb3cgbmV3IEVycm9yKCJSZWR1Y2VycyBtYXkgbm90IGRpc3BhdGNoIGFjdGlvbnMuIik7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIChjID0gITApLCAoYSA9IGkoYSwgdikpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBjID0gITE7CiAgICAgICAgfQogICAgICAgIGZvciAodmFyIHkgPSAobyA9IHMpLCBnID0gMDsgZyA8IHkubGVuZ3RoOyBnKyspIHlbZ10oKTsKICAgICAgICByZXR1cm4gdjsKICAgICAgfQogICAgICBmdW5jdGlvbiBoKHYpIHsKICAgICAgICBpZiAodHlwZW9mIHYgIT0gImZ1bmN0aW9uIikKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdGhlIG5leHRSZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uIik7CiAgICAgICAgKGkgPSB2KSwgZCh7IHR5cGU6IGx6LklOSVQgfSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbSgpIHsKICAgICAgICB2YXIgdiwKICAgICAgICAgIHkgPSBwOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICAodiA9IHsKICAgICAgICAgICAgc3Vic2NyaWJlOiBmdW5jdGlvbiAoTSkgewogICAgICAgICAgICAgIGlmICh0eXBlb2YgTSAhPSAib2JqZWN0IikKICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHRoZSBvYnNlcnZlciB0byBiZSBhbiBvYmplY3QuIik7CiAgICAgICAgICAgICAgZnVuY3Rpb24gQSgpIHsKICAgICAgICAgICAgICAgIE0ubmV4dCAmJiBNLm5leHQobCgpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgQSgpOwogICAgICAgICAgICAgIHZhciBfID0geShBKTsKICAgICAgICAgICAgICByZXR1cm4geyB1bnN1YnNjcmliZTogXyB9OwogICAgICAgICAgICB9LAogICAgICAgICAgfSksCiAgICAgICAgICAodlt1ei5kZWZhdWx0XSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9KSwKICAgICAgICAgIHYKICAgICAgICApOwogICAgICB9CiAgICAgIHJldHVybiAoCiAgICAgICAgZCh7IHR5cGU6IGx6LklOSVQgfSksCiAgICAgICAgKG4gPSB7IGRpc3BhdGNoOiBkLCBzdWJzY3JpYmU6IHAsIGdldFN0YXRlOiBsLCByZXBsYWNlUmVkdWNlcjogaCB9KSwKICAgICAgICAoblt1ei5kZWZhdWx0XSA9IG0pLAogICAgICAgIG4KICAgICAgKTsKICAgIH0KICB9KTsKICB2YXIgaWIgPSBFKChuYikgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgbmIuX19lc01vZHVsZSA9ICEwOwogICAgbmIuZGVmYXVsdCA9IHZBZTsKICAgIGZ1bmN0aW9uIHZBZShlKSB7CiAgICAgIHR5cGVvZiBjb25zb2xlIDwgInUiICYmCiAgICAgICAgdHlwZW9mIGNvbnNvbGUuZXJyb3IgPT0gImZ1bmN0aW9uIiAmJgogICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7CiAgICAgIHRyeSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGUpOwogICAgICB9IGNhdGNoIHt9CiAgICB9CiAgfSk7CiAgdmFyIG16ID0gRSgoYWIpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIGFiLl9fZXNNb2R1bGUgPSAhMDsKICAgIGFiLmRlZmF1bHQgPSBUQWU7CiAgICB2YXIgZHogPSByYigpLAogICAgICBiQWUgPSBpcCgpLAogICAgICBVUWUgPSBoeihiQWUpLAogICAgICBNQWUgPSBpYigpLAogICAgICBYUWUgPSBoeihNQWUpOwogICAgZnVuY3Rpb24gaHooZSkgewogICAgICByZXR1cm4gZSAmJiBlLl9fZXNNb2R1bGUgPyBlIDogeyBkZWZhdWx0OiBlIH07CiAgICB9CiAgICBmdW5jdGlvbiBBQWUoZSwgdCkgewogICAgICB2YXIgciA9IHQgJiYgdC50eXBlLAogICAgICAgIG4gPSAociAmJiAnIicgKyByLnRvU3RyaW5nKCkgKyAnIicpIHx8ICJhbiBhY3Rpb24iOwogICAgICByZXR1cm4gKAogICAgICAgICJHaXZlbiBhY3Rpb24gIiArCiAgICAgICAgbiArCiAgICAgICAgJywgcmVkdWNlciAiJyArCiAgICAgICAgZSArCiAgICAgICAgJyIgcmV0dXJuZWQgdW5kZWZpbmVkLiBUbyBpZ25vcmUgYW4gYWN0aW9uLCB5b3UgbXVzdCBleHBsaWNpdGx5IHJldHVybiB0aGUgcHJldmlvdXMgc3RhdGUuJwogICAgICApOwogICAgfQogICAgZnVuY3Rpb24gRUFlKGUpIHsKICAgICAgT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbiAodCkgewogICAgICAgIHZhciByID0gZVt0XSwKICAgICAgICAgIG4gPSByKHZvaWQgMCwgeyB0eXBlOiBkei5BY3Rpb25UeXBlcy5JTklUIH0pOwogICAgICAgIGlmICh0eXBlb2YgbiA+ICJ1IikKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgJ1JlZHVjZXIgIicgKwogICAgICAgICAgICAgIHQgKwogICAgICAgICAgICAgICciIHJldHVybmVkIHVuZGVmaW5lZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uIElmIHRoZSBzdGF0ZSBwYXNzZWQgdG8gdGhlIHJlZHVjZXIgaXMgdW5kZWZpbmVkLCB5b3UgbXVzdCBleHBsaWNpdGx5IHJldHVybiB0aGUgaW5pdGlhbCBzdGF0ZS4gVGhlIGluaXRpYWwgc3RhdGUgbWF5IG5vdCBiZSB1bmRlZmluZWQuJwogICAgICAgICAgKTsKICAgICAgICB2YXIgaSA9CiAgICAgICAgICAiQEByZWR1eC9QUk9CRV9VTktOT1dOX0FDVElPTl8iICsKICAgICAgICAgIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg3KS5zcGxpdCgiIikuam9pbigiLiIpOwogICAgICAgIGlmICh0eXBlb2Ygcih2b2lkIDAsIHsgdHlwZTogaSB9KSA+ICJ1IikKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgJ1JlZHVjZXIgIicgKwogICAgICAgICAgICAgIHQgKwogICAgICAgICAgICAgICciIHJldHVybmVkIHVuZGVmaW5lZCB3aGVuIHByb2JlZCB3aXRoIGEgcmFuZG9tIHR5cGUuICcgKwogICAgICAgICAgICAgICgiRG9uJ3QgdHJ5IHRvIGhhbmRsZSAiICsKICAgICAgICAgICAgICAgIGR6LkFjdGlvblR5cGVzLklOSVQgKwogICAgICAgICAgICAgICAgJyBvciBvdGhlciBhY3Rpb25zIGluICJyZWR1eC8qIiAnKSArCiAgICAgICAgICAgICAgIm5hbWVzcGFjZS4gVGhleSBhcmUgY29uc2lkZXJlZCBwcml2YXRlLiBJbnN0ZWFkLCB5b3UgbXVzdCByZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUgZm9yIGFueSB1bmtub3duIGFjdGlvbnMsIHVubGVzcyBpdCBpcyB1bmRlZmluZWQsIGluIHdoaWNoIGNhc2UgeW91IG11c3QgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLCByZWdhcmRsZXNzIG9mIHRoZSBhY3Rpb24gdHlwZS4gVGhlIGluaXRpYWwgc3RhdGUgbWF5IG5vdCBiZSB1bmRlZmluZWQuIgogICAgICAgICAgKTsKICAgICAgfSk7CiAgICB9CiAgICBmdW5jdGlvbiBUQWUoZSkgewogICAgICBmb3IgKHZhciB0ID0gT2JqZWN0LmtleXMoZSksIHIgPSB7fSwgbiA9IDA7IG4gPCB0Lmxlbmd0aDsgbisrKSB7CiAgICAgICAgdmFyIGkgPSB0W25dOwogICAgICAgIHR5cGVvZiBlW2ldID09ICJmdW5jdGlvbiIgJiYgKHJbaV0gPSBlW2ldKTsKICAgICAgfQogICAgICB2YXIgYSA9IE9iamVjdC5rZXlzKHIpOwogICAgICBpZiAoITEpIHZhciBvOwogICAgICB2YXIgczsKICAgICAgdHJ5IHsKICAgICAgICBFQWUocik7CiAgICAgIH0gY2F0Y2ggKGMpIHsKICAgICAgICBzID0gYzsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciB1ID0KICAgICAgICAgICAgYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdm9pZCAwCiAgICAgICAgICAgICAgPyB7fQogICAgICAgICAgICAgIDogYXJndW1lbnRzWzBdLAogICAgICAgICAgbCA9IGFyZ3VtZW50c1sxXTsKICAgICAgICBpZiAocykgdGhyb3cgczsKICAgICAgICBpZiAoITEpIHZhciBwOwogICAgICAgIGZvciAodmFyIGQgPSAhMSwgaCA9IHt9LCBtID0gMDsgbSA8IGEubGVuZ3RoOyBtKyspIHsKICAgICAgICAgIHZhciB2ID0gYVttXSwKICAgICAgICAgICAgeSA9IHJbdl0sCiAgICAgICAgICAgIGcgPSB1W3ZdLAogICAgICAgICAgICBNID0geShnLCBsKTsKICAgICAgICAgIGlmICh0eXBlb2YgTSA+ICJ1IikgewogICAgICAgICAgICB2YXIgQSA9IEFBZSh2LCBsKTsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKEEpOwogICAgICAgICAgfQogICAgICAgICAgKGhbdl0gPSBNKSwgKGQgPSBkIHx8IE0gIT09IGcpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZCA/IGggOiB1OwogICAgICB9OwogICAgfQogIH0pOwogIHZhciBneiA9IEUoKHNiKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICBzYi5fX2VzTW9kdWxlID0gITA7CiAgICBzYi5kZWZhdWx0ID0gX0FlOwogICAgZnVuY3Rpb24geXooZSwgdCkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB0KGUuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIF9BZShlLCB0KSB7CiAgICAgIGlmICh0eXBlb2YgZSA9PSAiZnVuY3Rpb24iKSByZXR1cm4geXooZSwgdCk7CiAgICAgIGlmICh0eXBlb2YgZSAhPSAib2JqZWN0IiB8fCBlID09PSBudWxsKQogICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICJiaW5kQWN0aW9uQ3JlYXRvcnMgZXhwZWN0ZWQgYW4gb2JqZWN0IG9yIGEgZnVuY3Rpb24sIGluc3RlYWQgcmVjZWl2ZWQgIiArCiAgICAgICAgICAgIChlID09PSBudWxsID8gIm51bGwiIDogdHlwZW9mIGUpICsKICAgICAgICAgICAgJy4gRGlkIHlvdSB3cml0ZSAiaW1wb3J0IEFjdGlvbkNyZWF0b3JzIGZyb20iIGluc3RlYWQgb2YgImltcG9ydCAqIGFzIEFjdGlvbkNyZWF0b3JzIGZyb20iPycKICAgICAgICApOwogICAgICBmb3IgKHZhciByID0gT2JqZWN0LmtleXMoZSksIG4gPSB7fSwgaSA9IDA7IGkgPCByLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGEgPSByW2ldLAogICAgICAgICAgbyA9IGVbYV07CiAgICAgICAgdHlwZW9mIG8gPT0gImZ1bmN0aW9uIiAmJiAoblthXSA9IHl6KG8sIHQpKTsKICAgICAgfQogICAgICByZXR1cm4gbjsKICAgIH0KICB9KTsKICB2YXIgdWIgPSBFKChjYikgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgY2IuX19lc01vZHVsZSA9ICEwOwogICAgY2IuZGVmYXVsdCA9IFNBZTsKICAgIGZ1bmN0aW9uIFNBZSgpIHsKICAgICAgZm9yICh2YXIgZSA9IGFyZ3VtZW50cy5sZW5ndGgsIHQgPSBBcnJheShlKSwgciA9IDA7IHIgPCBlOyByKyspCiAgICAgICAgdFtyXSA9IGFyZ3VtZW50c1tyXTsKICAgICAgaWYgKHQubGVuZ3RoID09PSAwKQogICAgICAgIHJldHVybiBmdW5jdGlvbiAoYSkgewogICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfTsKICAgICAgaWYgKHQubGVuZ3RoID09PSAxKSByZXR1cm4gdFswXTsKICAgICAgdmFyIG4gPSB0W3QubGVuZ3RoIC0gMV0sCiAgICAgICAgaSA9IHQuc2xpY2UoMCwgLTEpOwogICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBpLnJlZHVjZVJpZ2h0KGZ1bmN0aW9uIChhLCBvKSB7CiAgICAgICAgICByZXR1cm4gbyhhKTsKICAgICAgICB9LCBuLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKSk7CiAgICAgIH07CiAgICB9CiAgfSk7CiAgdmFyIHZ6ID0gRSgobGIpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIGxiLl9fZXNNb2R1bGUgPSAhMDsKICAgIHZhciBPQWUgPQogICAgICBPYmplY3QuYXNzaWduIHx8CiAgICAgIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgZm9yICh2YXIgdCA9IDE7IHQgPCBhcmd1bWVudHMubGVuZ3RoOyB0KyspIHsKICAgICAgICAgIHZhciByID0gYXJndW1lbnRzW3RdOwogICAgICAgICAgZm9yICh2YXIgbiBpbiByKQogICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwociwgbikgJiYgKGVbbl0gPSByW25dKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGU7CiAgICAgIH07CiAgICBsYi5kZWZhdWx0ID0gSUFlOwogICAgdmFyIHhBZSA9IHViKCksCiAgICAgIENBZSA9IFJBZSh4QWUpOwogICAgZnVuY3Rpb24gUkFlKGUpIHsKICAgICAgcmV0dXJuIGUgJiYgZS5fX2VzTW9kdWxlID8gZSA6IHsgZGVmYXVsdDogZSB9OwogICAgfQogICAgZnVuY3Rpb24gSUFlKCkgewogICAgICBmb3IgKHZhciBlID0gYXJndW1lbnRzLmxlbmd0aCwgdCA9IEFycmF5KGUpLCByID0gMDsgciA8IGU7IHIrKykKICAgICAgICB0W3JdID0gYXJndW1lbnRzW3JdOwogICAgICByZXR1cm4gZnVuY3Rpb24gKG4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGksIGEsIG8pIHsKICAgICAgICAgIHZhciBzID0gbihpLCBhLCBvKSwKICAgICAgICAgICAgYyA9IHMuZGlzcGF0Y2gsCiAgICAgICAgICAgIHUgPSBbXSwKICAgICAgICAgICAgbCA9IHsKICAgICAgICAgICAgICBnZXRTdGF0ZTogcy5nZXRTdGF0ZSwKICAgICAgICAgICAgICBkaXNwYXRjaDogZnVuY3Rpb24gKGQpIHsKICAgICAgICAgICAgICAgIHJldHVybiBjKGQpOwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH07CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAodSA9IHQubWFwKGZ1bmN0aW9uIChwKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHAobCk7CiAgICAgICAgICAgIH0pKSwKICAgICAgICAgICAgKGMgPSBDQWUuZGVmYXVsdC5hcHBseSh2b2lkIDAsIHUpKHMuZGlzcGF0Y2gpKSwKICAgICAgICAgICAgT0FlKHt9LCBzLCB7IGRpc3BhdGNoOiBjIH0pCiAgICAgICAgICApOwogICAgICAgIH07CiAgICAgIH07CiAgICB9CiAgfSk7CiAgdmFyIGZiID0gRSgoWnIpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIFpyLl9fZXNNb2R1bGUgPSAhMDsKICAgIFpyLmNvbXBvc2UgPQogICAgICBaci5hcHBseU1pZGRsZXdhcmUgPQogICAgICBaci5iaW5kQWN0aW9uQ3JlYXRvcnMgPQogICAgICBaci5jb21iaW5lUmVkdWNlcnMgPQogICAgICBaci5jcmVhdGVTdG9yZSA9CiAgICAgICAgdm9pZCAwOwogICAgdmFyIExBZSA9IHJiKCksCiAgICAgIE5BZSA9IGtzKExBZSksCiAgICAgIHdBZSA9IG16KCksCiAgICAgIFBBZSA9IGtzKHdBZSksCiAgICAgIERBZSA9IGd6KCksCiAgICAgIHFBZSA9IGtzKERBZSksCiAgICAgIHpBZSA9IHZ6KCksCiAgICAgIEZBZSA9IGtzKHpBZSksCiAgICAgIGtBZSA9IHViKCksCiAgICAgIEJBZSA9IGtzKGtBZSksCiAgICAgIFdBZSA9IGliKCksCiAgICAgIFlRZSA9IGtzKFdBZSk7CiAgICBmdW5jdGlvbiBrcyhlKSB7CiAgICAgIHJldHVybiBlICYmIGUuX19lc01vZHVsZSA/IGUgOiB7IGRlZmF1bHQ6IGUgfTsKICAgIH0KICAgIFpyLmNyZWF0ZVN0b3JlID0gTkFlLmRlZmF1bHQ7CiAgICBaci5jb21iaW5lUmVkdWNlcnMgPSBQQWUuZGVmYXVsdDsKICAgIFpyLmJpbmRBY3Rpb25DcmVhdG9ycyA9IHFBZS5kZWZhdWx0OwogICAgWnIuYXBwbHlNaWRkbGV3YXJlID0gRkFlLmRlZmF1bHQ7CiAgICBaci5jb21wb3NlID0gQkFlLmRlZmF1bHQ7CiAgfSk7CiAgdmFyIGduLAogICAgcGIsCiAgICBXbiwKICAgIFVBZSwKICAgIFhBZSwKICAgIGFwLAogICAgVkFlLAogICAgZGIgPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICAoZ24gPSB7CiAgICAgICAgTkFWQkFSX09QRU46ICJOQVZCQVJfT1BFTiIsCiAgICAgICAgTkFWQkFSX0NMT1NFOiAiTkFWQkFSX0NMT1NFIiwKICAgICAgICBUQUJfQUNUSVZFOiAiVEFCX0FDVElWRSIsCiAgICAgICAgVEFCX0lOQUNUSVZFOiAiVEFCX0lOQUNUSVZFIiwKICAgICAgICBTTElERVJfQUNUSVZFOiAiU0xJREVSX0FDVElWRSIsCiAgICAgICAgU0xJREVSX0lOQUNUSVZFOiAiU0xJREVSX0lOQUNUSVZFIiwKICAgICAgICBEUk9QRE9XTl9PUEVOOiAiRFJPUERPV05fT1BFTiIsCiAgICAgICAgRFJPUERPV05fQ0xPU0U6ICJEUk9QRE9XTl9DTE9TRSIsCiAgICAgICAgTU9VU0VfQ0xJQ0s6ICJNT1VTRV9DTElDSyIsCiAgICAgICAgTU9VU0VfU0VDT05EX0NMSUNLOiAiTU9VU0VfU0VDT05EX0NMSUNLIiwKICAgICAgICBNT1VTRV9ET1dOOiAiTU9VU0VfRE9XTiIsCiAgICAgICAgTU9VU0VfVVA6ICJNT1VTRV9VUCIsCiAgICAgICAgTU9VU0VfT1ZFUjogIk1PVVNFX09WRVIiLAogICAgICAgIE1PVVNFX09VVDogIk1PVVNFX09VVCIsCiAgICAgICAgTU9VU0VfTU9WRTogIk1PVVNFX01PVkUiLAogICAgICAgIE1PVVNFX01PVkVfSU5fVklFV1BPUlQ6ICJNT1VTRV9NT1ZFX0lOX1ZJRVdQT1JUIiwKICAgICAgICBTQ1JPTExfSU5UT19WSUVXOiAiU0NST0xMX0lOVE9fVklFVyIsCiAgICAgICAgU0NST0xMX09VVF9PRl9WSUVXOiAiU0NST0xMX09VVF9PRl9WSUVXIiwKICAgICAgICBTQ1JPTExJTkdfSU5fVklFVzogIlNDUk9MTElOR19JTl9WSUVXIiwKICAgICAgICBFQ09NTUVSQ0VfQ0FSVF9PUEVOOiAiRUNPTU1FUkNFX0NBUlRfT1BFTiIsCiAgICAgICAgRUNPTU1FUkNFX0NBUlRfQ0xPU0U6ICJFQ09NTUVSQ0VfQ0FSVF9DTE9TRSIsCiAgICAgICAgUEFHRV9TVEFSVDogIlBBR0VfU1RBUlQiLAogICAgICAgIFBBR0VfRklOSVNIOiAiUEFHRV9GSU5JU0giLAogICAgICAgIFBBR0VfU0NST0xMX1VQOiAiUEFHRV9TQ1JPTExfVVAiLAogICAgICAgIFBBR0VfU0NST0xMX0RPV046ICJQQUdFX1NDUk9MTF9ET1dOIiwKICAgICAgICBQQUdFX1NDUk9MTDogIlBBR0VfU0NST0xMIiwKICAgICAgfSksCiAgICAgICAgKHBiID0geyBFTEVNRU5UOiAiRUxFTUVOVCIsIENMQVNTOiAiQ0xBU1MiLCBQQUdFOiAiUEFHRSIgfSksCiAgICAgICAgKFduID0geyBFTEVNRU5UOiAiRUxFTUVOVCIsIFZJRVdQT1JUOiAiVklFV1BPUlQiIH0pLAogICAgICAgIChVQWUgPSB7IFhfQVhJUzogIlhfQVhJUyIsIFlfQVhJUzogIllfQVhJUyIgfSksCiAgICAgICAgKFhBZSA9IHsKICAgICAgICAgIENISUxEUkVOOiAiQ0hJTERSRU4iLAogICAgICAgICAgU0lCTElOR1M6ICJTSUJMSU5HUyIsCiAgICAgICAgICBJTU1FRElBVEVfQ0hJTERSRU46ICJJTU1FRElBVEVfQ0hJTERSRU4iLAogICAgICAgIH0pLAogICAgICAgIChhcCA9IHsKICAgICAgICAgIEZBREVfRUZGRUNUOiAiRkFERV9FRkZFQ1QiLAogICAgICAgICAgU0xJREVfRUZGRUNUOiAiU0xJREVfRUZGRUNUIiwKICAgICAgICAgIEdST1dfRUZGRUNUOiAiR1JPV19FRkZFQ1QiLAogICAgICAgICAgU0hSSU5LX0VGRkVDVDogIlNIUklOS19FRkZFQ1QiLAogICAgICAgICAgU1BJTl9FRkZFQ1Q6ICJTUElOX0VGRkVDVCIsCiAgICAgICAgICBGTFlfRUZGRUNUOiAiRkxZX0VGRkVDVCIsCiAgICAgICAgICBQT1BfRUZGRUNUOiAiUE9QX0VGRkVDVCIsCiAgICAgICAgICBGTElQX0VGRkVDVDogIkZMSVBfRUZGRUNUIiwKICAgICAgICAgIEpJR0dMRV9FRkZFQ1Q6ICJKSUdHTEVfRUZGRUNUIiwKICAgICAgICAgIFBVTFNFX0VGRkVDVDogIlBVTFNFX0VGRkVDVCIsCiAgICAgICAgICBEUk9QX0VGRkVDVDogIkRST1BfRUZGRUNUIiwKICAgICAgICAgIEJMSU5LX0VGRkVDVDogIkJMSU5LX0VGRkVDVCIsCiAgICAgICAgICBCT1VOQ0VfRUZGRUNUOiAiQk9VTkNFX0VGRkVDVCIsCiAgICAgICAgICBGTElQX0xFRlRfVE9fUklHSFRfRUZGRUNUOiAiRkxJUF9MRUZUX1RPX1JJR0hUX0VGRkVDVCIsCiAgICAgICAgICBGTElQX1JJR0hUX1RPX0xFRlRfRUZGRUNUOiAiRkxJUF9SSUdIVF9UT19MRUZUX0VGRkVDVCIsCiAgICAgICAgICBSVUJCRVJfQkFORF9FRkZFQ1Q6ICJSVUJCRVJfQkFORF9FRkZFQ1QiLAogICAgICAgICAgSkVMTE9fRUZGRUNUOiAiSkVMTE9fRUZGRUNUIiwKICAgICAgICAgIEdST1dfQklHX0VGRkVDVDogIkdST1dfQklHX0VGRkVDVCIsCiAgICAgICAgICBTSFJJTktfQklHX0VGRkVDVDogIlNIUklOS19CSUdfRUZGRUNUIiwKICAgICAgICAgIFBMVUdJTl9MT1RUSUVfRUZGRUNUOiAiUExVR0lOX0xPVFRJRV9FRkZFQ1QiLAogICAgICAgIH0pLAogICAgICAgIChWQWUgPSB7CiAgICAgICAgICBMRUZUOiAiTEVGVCIsCiAgICAgICAgICBSSUdIVDogIlJJR0hUIiwKICAgICAgICAgIEJPVFRPTTogIkJPVFRPTSIsCiAgICAgICAgICBUT1A6ICJUT1AiLAogICAgICAgICAgQk9UVE9NX0xFRlQ6ICJCT1RUT01fTEVGVCIsCiAgICAgICAgICBCT1RUT01fUklHSFQ6ICJCT1RUT01fUklHSFQiLAogICAgICAgICAgVE9QX1JJR0hUOiAiVE9QX1JJR0hUIiwKICAgICAgICAgIFRPUF9MRUZUOiAiVE9QX0xFRlQiLAogICAgICAgICAgQ0xPQ0tXSVNFOiAiQ0xPQ0tXSVNFIiwKICAgICAgICAgIENPVU5URVJfQ0xPQ0tXSVNFOiAiQ09VTlRFUl9DTE9DS1dJU0UiLAogICAgICAgIH0pOwogICAgfSk7CiAgdmFyIE9yLAogICAgSEFlLAogICAgb3AgPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICAoT3IgPSB7CiAgICAgICAgVFJBTlNGT1JNX01PVkU6ICJUUkFOU0ZPUk1fTU9WRSIsCiAgICAgICAgVFJBTlNGT1JNX1NDQUxFOiAiVFJBTlNGT1JNX1NDQUxFIiwKICAgICAgICBUUkFOU0ZPUk1fUk9UQVRFOiAiVFJBTlNGT1JNX1JPVEFURSIsCiAgICAgICAgVFJBTlNGT1JNX1NLRVc6ICJUUkFOU0ZPUk1fU0tFVyIsCiAgICAgICAgU1RZTEVfT1BBQ0lUWTogIlNUWUxFX09QQUNJVFkiLAogICAgICAgIFNUWUxFX1NJWkU6ICJTVFlMRV9TSVpFIiwKICAgICAgICBTVFlMRV9GSUxURVI6ICJTVFlMRV9GSUxURVIiLAogICAgICAgIFNUWUxFX0ZPTlRfVkFSSUFUSU9OOiAiU1RZTEVfRk9OVF9WQVJJQVRJT04iLAogICAgICAgIFNUWUxFX0JBQ0tHUk9VTkRfQ09MT1I6ICJTVFlMRV9CQUNLR1JPVU5EX0NPTE9SIiwKICAgICAgICBTVFlMRV9CT1JERVI6ICJTVFlMRV9CT1JERVIiLAogICAgICAgIFNUWUxFX1RFWFRfQ09MT1I6ICJTVFlMRV9URVhUX0NPTE9SIiwKICAgICAgICBPQkpFQ1RfVkFMVUU6ICJPQkpFQ1RfVkFMVUUiLAogICAgICAgIFBMVUdJTl9MT1RUSUU6ICJQTFVHSU5fTE9UVElFIiwKICAgICAgICBQTFVHSU5fU1BMSU5FOiAiUExVR0lOX1NQTElORSIsCiAgICAgICAgUExVR0lOX1JJVkU6ICJQTFVHSU5fUklWRSIsCiAgICAgICAgUExVR0lOX1ZBUklBQkxFOiAiUExVR0lOX1ZBUklBQkxFIiwKICAgICAgICBHRU5FUkFMX0RJU1BMQVk6ICJHRU5FUkFMX0RJU1BMQVkiLAogICAgICAgIEdFTkVSQUxfU1RBUlRfQUNUSU9OOiAiR0VORVJBTF9TVEFSVF9BQ1RJT04iLAogICAgICAgIEdFTkVSQUxfQ09OVElOVU9VU19BQ1RJT046ICJHRU5FUkFMX0NPTlRJTlVPVVNfQUNUSU9OIiwKICAgICAgICBHRU5FUkFMX0NPTUJPX0NMQVNTOiAiR0VORVJBTF9DT01CT19DTEFTUyIsCiAgICAgICAgR0VORVJBTF9TVE9QX0FDVElPTjogIkdFTkVSQUxfU1RPUF9BQ1RJT04iLAogICAgICAgIEdFTkVSQUxfTE9PUDogIkdFTkVSQUxfTE9PUCIsCiAgICAgICAgU1RZTEVfQk9YX1NIQURPVzogIlNUWUxFX0JPWF9TSEFET1ciLAogICAgICB9KSwKICAgICAgICAoSEFlID0gewogICAgICAgICAgRUxFTUVOVDogIkVMRU1FTlQiLAogICAgICAgICAgRUxFTUVOVF9DTEFTUzogIkVMRU1FTlRfQ0xBU1MiLAogICAgICAgICAgVFJJR0dFUl9FTEVNRU5UOiAiVFJJR0dFUl9FTEVNRU5UIiwKICAgICAgICB9KTsKICAgIH0pOwogIHZhciBHQWUsCiAgICBieiA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIEdBZSA9IHsKICAgICAgICBNT1VTRV9DTElDS19JTlRFUkFDVElPTjogIk1PVVNFX0NMSUNLX0lOVEVSQUNUSU9OIiwKICAgICAgICBNT1VTRV9IT1ZFUl9JTlRFUkFDVElPTjogIk1PVVNFX0hPVkVSX0lOVEVSQUNUSU9OIiwKICAgICAgICBNT1VTRV9NT1ZFX0lOVEVSQUNUSU9OOiAiTU9VU0VfTU9WRV9JTlRFUkFDVElPTiIsCiAgICAgICAgU0NST0xMX0lOVE9fVklFV19JTlRFUkFDVElPTjogIlNDUk9MTF9JTlRPX1ZJRVdfSU5URVJBQ1RJT04iLAogICAgICAgIFNDUk9MTElOR19JTl9WSUVXX0lOVEVSQUNUSU9OOiAiU0NST0xMSU5HX0lOX1ZJRVdfSU5URVJBQ1RJT04iLAogICAgICAgIE1PVVNFX01PVkVfSU5fVklFV1BPUlRfSU5URVJBQ1RJT046CiAgICAgICAgICAiTU9VU0VfTU9WRV9JTl9WSUVXUE9SVF9JTlRFUkFDVElPTiIsCiAgICAgICAgUEFHRV9JU19TQ1JPTExJTkdfSU5URVJBQ1RJT046ICJQQUdFX0lTX1NDUk9MTElOR19JTlRFUkFDVElPTiIsCiAgICAgICAgUEFHRV9MT0FEX0lOVEVSQUNUSU9OOiAiUEFHRV9MT0FEX0lOVEVSQUNUSU9OIiwKICAgICAgICBQQUdFX1NDUk9MTEVEX0lOVEVSQUNUSU9OOiAiUEFHRV9TQ1JPTExFRF9JTlRFUkFDVElPTiIsCiAgICAgICAgTkFWQkFSX0lOVEVSQUNUSU9OOiAiTkFWQkFSX0lOVEVSQUNUSU9OIiwKICAgICAgICBEUk9QRE9XTl9JTlRFUkFDVElPTjogIkRST1BET1dOX0lOVEVSQUNUSU9OIiwKICAgICAgICBFQ09NTUVSQ0VfQ0FSVF9JTlRFUkFDVElPTjogIkVDT01NRVJDRV9DQVJUX0lOVEVSQUNUSU9OIiwKICAgICAgICBUQUJfSU5URVJBQ1RJT046ICJUQUJfSU5URVJBQ1RJT04iLAogICAgICAgIFNMSURFUl9JTlRFUkFDVElPTjogIlNMSURFUl9JTlRFUkFDVElPTiIsCiAgICAgIH07CiAgICB9KTsKICB2YXIgakFlLAogICAgWUFlLAogICAgS0FlLAogICAgJEFlLAogICAgUUFlLAogICAgSkFlLAogICAgWkFlLAogICAgaGIsCiAgICBNeiA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIG9wKCk7CiAgICAgICh7CiAgICAgICAgVFJBTlNGT1JNX01PVkU6IGpBZSwKICAgICAgICBUUkFOU0ZPUk1fU0NBTEU6IFlBZSwKICAgICAgICBUUkFOU0ZPUk1fUk9UQVRFOiBLQWUsCiAgICAgICAgVFJBTlNGT1JNX1NLRVc6ICRBZSwKICAgICAgICBTVFlMRV9TSVpFOiBRQWUsCiAgICAgICAgU1RZTEVfRklMVEVSOiBKQWUsCiAgICAgICAgU1RZTEVfRk9OVF9WQVJJQVRJT046IFpBZSwKICAgICAgfSA9IE9yKSwKICAgICAgICAoaGIgPSB7CiAgICAgICAgICBbakFlXTogITAsCiAgICAgICAgICBbWUFlXTogITAsCiAgICAgICAgICBbS0FlXTogITAsCiAgICAgICAgICBbJEFlXTogITAsCiAgICAgICAgICBbUUFlXTogITAsCiAgICAgICAgICBbSkFlXTogITAsCiAgICAgICAgICBbWkFlXTogITAsCiAgICAgICAgfSk7CiAgICB9KTsKICB2YXIgWHQgPSB7fTsKICB1dChYdCwgewogICAgSVgyX0FDVElPTl9MSVNUX1BMQVlCQUNLX0NIQU5HRUQ6ICgpID0+IHkyZSwKICAgIElYMl9BTklNQVRJT05fRlJBTUVfQ0hBTkdFRDogKCkgPT4gbDJlLAogICAgSVgyX0NMRUFSX1JFUVVFU1RFRDogKCkgPT4gczJlLAogICAgSVgyX0VMRU1FTlRfU1RBVEVfQ0hBTkdFRDogKCkgPT4gbTJlLAogICAgSVgyX0VWRU5UX0xJU1RFTkVSX0FEREVEOiAoKSA9PiBjMmUsCiAgICBJWDJfRVZFTlRfU1RBVEVfQ0hBTkdFRDogKCkgPT4gdTJlLAogICAgSVgyX0lOU1RBTkNFX0FEREVEOiAoKSA9PiBwMmUsCiAgICBJWDJfSU5TVEFOQ0VfUkVNT1ZFRDogKCkgPT4gaDJlLAogICAgSVgyX0lOU1RBTkNFX1NUQVJURUQ6ICgpID0+IGQyZSwKICAgIElYMl9NRURJQV9RVUVSSUVTX0RFRklORUQ6ICgpID0+IHYyZSwKICAgIElYMl9QQVJBTUVURVJfQ0hBTkdFRDogKCkgPT4gZjJlLAogICAgSVgyX1BMQVlCQUNLX1JFUVVFU1RFRDogKCkgPT4gYTJlLAogICAgSVgyX1BSRVZJRVdfUkVRVUVTVEVEOiAoKSA9PiBpMmUsCiAgICBJWDJfUkFXX0RBVEFfSU1QT1JURUQ6ICgpID0+IGUyZSwKICAgIElYMl9TRVNTSU9OX0lOSVRJQUxJWkVEOiAoKSA9PiB0MmUsCiAgICBJWDJfU0VTU0lPTl9TVEFSVEVEOiAoKSA9PiByMmUsCiAgICBJWDJfU0VTU0lPTl9TVE9QUEVEOiAoKSA9PiBuMmUsCiAgICBJWDJfU1RPUF9SRVFVRVNURUQ6ICgpID0+IG8yZSwKICAgIElYMl9URVNUX0ZSQU1FX1JFTkRFUkVEOiAoKSA9PiBiMmUsCiAgICBJWDJfVklFV1BPUlRfV0lEVEhfQ0hBTkdFRDogKCkgPT4gZzJlLAogIH0pOwogIHZhciBlMmUsCiAgICB0MmUsCiAgICByMmUsCiAgICBuMmUsCiAgICBpMmUsCiAgICBhMmUsCiAgICBvMmUsCiAgICBzMmUsCiAgICBjMmUsCiAgICB1MmUsCiAgICBsMmUsCiAgICBmMmUsCiAgICBwMmUsCiAgICBkMmUsCiAgICBoMmUsCiAgICBtMmUsCiAgICB5MmUsCiAgICBnMmUsCiAgICB2MmUsCiAgICBiMmUsCiAgICBBeiA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIChlMmUgPSAiSVgyX1JBV19EQVRBX0lNUE9SVEVEIiksCiAgICAgICAgKHQyZSA9ICJJWDJfU0VTU0lPTl9JTklUSUFMSVpFRCIpLAogICAgICAgIChyMmUgPSAiSVgyX1NFU1NJT05fU1RBUlRFRCIpLAogICAgICAgIChuMmUgPSAiSVgyX1NFU1NJT05fU1RPUFBFRCIpLAogICAgICAgIChpMmUgPSAiSVgyX1BSRVZJRVdfUkVRVUVTVEVEIiksCiAgICAgICAgKGEyZSA9ICJJWDJfUExBWUJBQ0tfUkVRVUVTVEVEIiksCiAgICAgICAgKG8yZSA9ICJJWDJfU1RPUF9SRVFVRVNURUQiKSwKICAgICAgICAoczJlID0gIklYMl9DTEVBUl9SRVFVRVNURUQiKSwKICAgICAgICAoYzJlID0gIklYMl9FVkVOVF9MSVNURU5FUl9BRERFRCIpLAogICAgICAgICh1MmUgPSAiSVgyX0VWRU5UX1NUQVRFX0NIQU5HRUQiKSwKICAgICAgICAobDJlID0gIklYMl9BTklNQVRJT05fRlJBTUVfQ0hBTkdFRCIpLAogICAgICAgIChmMmUgPSAiSVgyX1BBUkFNRVRFUl9DSEFOR0VEIiksCiAgICAgICAgKHAyZSA9ICJJWDJfSU5TVEFOQ0VfQURERUQiKSwKICAgICAgICAoZDJlID0gIklYMl9JTlNUQU5DRV9TVEFSVEVEIiksCiAgICAgICAgKGgyZSA9ICJJWDJfSU5TVEFOQ0VfUkVNT1ZFRCIpLAogICAgICAgIChtMmUgPSAiSVgyX0VMRU1FTlRfU1RBVEVfQ0hBTkdFRCIpLAogICAgICAgICh5MmUgPSAiSVgyX0FDVElPTl9MSVNUX1BMQVlCQUNLX0NIQU5HRUQiKSwKICAgICAgICAoZzJlID0gIklYMl9WSUVXUE9SVF9XSURUSF9DSEFOR0VEIiksCiAgICAgICAgKHYyZSA9ICJJWDJfTUVESUFfUVVFUklFU19ERUZJTkVEIiksCiAgICAgICAgKGIyZSA9ICJJWDJfVEVTVF9GUkFNRV9SRU5ERVJFRCIpOwogICAgfSk7CiAgdmFyIHlyID0ge307CiAgdXQoeXIsIHsKICAgIEFCU1RSQUNUX05PREU6ICgpID0+IGdFZSwKICAgIEFVVE86ICgpID0+IG9FZSwKICAgIEJBQ0tHUk9VTkQ6ICgpID0+IGVFZSwKICAgIEJBQ0tHUk9VTkRfQ09MT1I6ICgpID0+IFoyZSwKICAgIEJBUl9ERUxJTUlURVI6ICgpID0+IHVFZSwKICAgIEJPUkRFUl9DT0xPUjogKCkgPT4gdEVlLAogICAgQk9VTkRBUllfU0VMRUNUT1I6ICgpID0+IF8yZSwKICAgIENISUxEUkVOOiAoKSA9PiBsRWUsCiAgICBDT0xPTl9ERUxJTUlURVI6ICgpID0+IGNFZSwKICAgIENPTE9SOiAoKSA9PiByRWUsCiAgICBDT01NQV9ERUxJTUlURVI6ICgpID0+IHNFZSwKICAgIENPTkZJR19VTklUOiAoKSA9PiBOMmUsCiAgICBDT05GSUdfVkFMVUU6ICgpID0+IEMyZSwKICAgIENPTkZJR19YX1VOSVQ6ICgpID0+IFIyZSwKICAgIENPTkZJR19YX1ZBTFVFOiAoKSA9PiBTMmUsCiAgICBDT05GSUdfWV9VTklUOiAoKSA9PiBJMmUsCiAgICBDT05GSUdfWV9WQUxVRTogKCkgPT4gTzJlLAogICAgQ09ORklHX1pfVU5JVDogKCkgPT4gTDJlLAogICAgQ09ORklHX1pfVkFMVUU6ICgpID0+IHgyZSwKICAgIERJU1BMQVk6ICgpID0+IG5FZSwKICAgIEZJTFRFUjogKCkgPT4gSzJlLAogICAgRkxFWDogKCkgPT4gaUVlLAogICAgRk9OVF9WQVJJQVRJT05fU0VUVElOR1M6ICgpID0+ICQyZSwKICAgIEhFSUdIVDogKCkgPT4gSjJlLAogICAgSFRNTF9FTEVNRU5UOiAoKSA9PiBtRWUsCiAgICBJTU1FRElBVEVfQ0hJTERSRU46ICgpID0+IGZFZSwKICAgIElYMl9JRF9ERUxJTUlURVI6ICgpID0+IE0yZSwKICAgIE9QQUNJVFk6ICgpID0+IFkyZSwKICAgIFBBUkVOVDogKCkgPT4gZEVlLAogICAgUExBSU5fT0JKRUNUOiAoKSA9PiB5RWUsCiAgICBQUkVTRVJWRV8zRDogKCkgPT4gaEVlLAogICAgUkVOREVSX0dFTkVSQUw6ICgpID0+IGJFZSwKICAgIFJFTkRFUl9QTFVHSU46ICgpID0+IEFFZSwKICAgIFJFTkRFUl9TVFlMRTogKCkgPT4gTUVlLAogICAgUkVOREVSX1RSQU5TRk9STTogKCkgPT4gdkVlLAogICAgUk9UQVRFX1g6ICgpID0+IFUyZSwKICAgIFJPVEFURV9ZOiAoKSA9PiBYMmUsCiAgICBST1RBVEVfWjogKCkgPT4gVjJlLAogICAgU0NBTEVfM0Q6ICgpID0+IFcyZSwKICAgIFNDQUxFX1g6ICgpID0+IEYyZSwKICAgIFNDQUxFX1k6ICgpID0+IGsyZSwKICAgIFNDQUxFX1o6ICgpID0+IEIyZSwKICAgIFNJQkxJTkdTOiAoKSA9PiBwRWUsCiAgICBTS0VXOiAoKSA9PiBIMmUsCiAgICBTS0VXX1g6ICgpID0+IEcyZSwKICAgIFNLRVdfWTogKCkgPT4gajJlLAogICAgVFJBTlNGT1JNOiAoKSA9PiB3MmUsCiAgICBUUkFOU0xBVEVfM0Q6ICgpID0+IHoyZSwKICAgIFRSQU5TTEFURV9YOiAoKSA9PiBQMmUsCiAgICBUUkFOU0xBVEVfWTogKCkgPT4gRDJlLAogICAgVFJBTlNMQVRFX1o6ICgpID0+IHEyZSwKICAgIFdGX1BBR0U6ICgpID0+IEEyZSwKICAgIFdJRFRIOiAoKSA9PiBRMmUsCiAgICBXSUxMX0NIQU5HRTogKCkgPT4gYUVlLAogICAgV19NT0RfSVg6ICgpID0+IFQyZSwKICAgIFdfTU9EX0pTOiAoKSA9PiBFMmUsCiAgfSk7CiAgdmFyIE0yZSwKICAgIEEyZSwKICAgIEUyZSwKICAgIFQyZSwKICAgIF8yZSwKICAgIFMyZSwKICAgIE8yZSwKICAgIHgyZSwKICAgIEMyZSwKICAgIFIyZSwKICAgIEkyZSwKICAgIEwyZSwKICAgIE4yZSwKICAgIHcyZSwKICAgIFAyZSwKICAgIEQyZSwKICAgIHEyZSwKICAgIHoyZSwKICAgIEYyZSwKICAgIGsyZSwKICAgIEIyZSwKICAgIFcyZSwKICAgIFUyZSwKICAgIFgyZSwKICAgIFYyZSwKICAgIEgyZSwKICAgIEcyZSwKICAgIGoyZSwKICAgIFkyZSwKICAgIEsyZSwKICAgICQyZSwKICAgIFEyZSwKICAgIEoyZSwKICAgIFoyZSwKICAgIGVFZSwKICAgIHRFZSwKICAgIHJFZSwKICAgIG5FZSwKICAgIGlFZSwKICAgIGFFZSwKICAgIG9FZSwKICAgIHNFZSwKICAgIGNFZSwKICAgIHVFZSwKICAgIGxFZSwKICAgIGZFZSwKICAgIHBFZSwKICAgIGRFZSwKICAgIGhFZSwKICAgIG1FZSwKICAgIHlFZSwKICAgIGdFZSwKICAgIHZFZSwKICAgIGJFZSwKICAgIE1FZSwKICAgIEFFZSwKICAgIEV6ID0gVigoKSA9PiB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgKE0yZSA9ICJ8IiksCiAgICAgICAgKEEyZSA9ICJkYXRhLXdmLXBhZ2UiKSwKICAgICAgICAoRTJlID0gInctbW9kLWpzIiksCiAgICAgICAgKFQyZSA9ICJ3LW1vZC1peCIpLAogICAgICAgIChfMmUgPSAiLnctZHluLWl0ZW0iKSwKICAgICAgICAoUzJlID0gInhWYWx1ZSIpLAogICAgICAgIChPMmUgPSAieVZhbHVlIiksCiAgICAgICAgKHgyZSA9ICJ6VmFsdWUiKSwKICAgICAgICAoQzJlID0gInZhbHVlIiksCiAgICAgICAgKFIyZSA9ICJ4VW5pdCIpLAogICAgICAgIChJMmUgPSAieVVuaXQiKSwKICAgICAgICAoTDJlID0gInpVbml0IiksCiAgICAgICAgKE4yZSA9ICJ1bml0IiksCiAgICAgICAgKHcyZSA9ICJ0cmFuc2Zvcm0iKSwKICAgICAgICAoUDJlID0gInRyYW5zbGF0ZVgiKSwKICAgICAgICAoRDJlID0gInRyYW5zbGF0ZVkiKSwKICAgICAgICAocTJlID0gInRyYW5zbGF0ZVoiKSwKICAgICAgICAoejJlID0gInRyYW5zbGF0ZTNkIiksCiAgICAgICAgKEYyZSA9ICJzY2FsZVgiKSwKICAgICAgICAoazJlID0gInNjYWxlWSIpLAogICAgICAgIChCMmUgPSAic2NhbGVaIiksCiAgICAgICAgKFcyZSA9ICJzY2FsZTNkIiksCiAgICAgICAgKFUyZSA9ICJyb3RhdGVYIiksCiAgICAgICAgKFgyZSA9ICJyb3RhdGVZIiksCiAgICAgICAgKFYyZSA9ICJyb3RhdGVaIiksCiAgICAgICAgKEgyZSA9ICJza2V3IiksCiAgICAgICAgKEcyZSA9ICJza2V3WCIpLAogICAgICAgIChqMmUgPSAic2tld1kiKSwKICAgICAgICAoWTJlID0gIm9wYWNpdHkiKSwKICAgICAgICAoSzJlID0gImZpbHRlciIpLAogICAgICAgICgkMmUgPSAiZm9udC12YXJpYXRpb24tc2V0dGluZ3MiKSwKICAgICAgICAoUTJlID0gIndpZHRoIiksCiAgICAgICAgKEoyZSA9ICJoZWlnaHQiKSwKICAgICAgICAoWjJlID0gImJhY2tncm91bmRDb2xvciIpLAogICAgICAgIChlRWUgPSAiYmFja2dyb3VuZCIpLAogICAgICAgICh0RWUgPSAiYm9yZGVyQ29sb3IiKSwKICAgICAgICAockVlID0gImNvbG9yIiksCiAgICAgICAgKG5FZSA9ICJkaXNwbGF5IiksCiAgICAgICAgKGlFZSA9ICJmbGV4IiksCiAgICAgICAgKGFFZSA9ICJ3aWxsQ2hhbmdlIiksCiAgICAgICAgKG9FZSA9ICJBVVRPIiksCiAgICAgICAgKHNFZSA9ICIsIiksCiAgICAgICAgKGNFZSA9ICI6IiksCiAgICAgICAgKHVFZSA9ICJ8IiksCiAgICAgICAgKGxFZSA9ICJDSElMRFJFTiIpLAogICAgICAgIChmRWUgPSAiSU1NRURJQVRFX0NISUxEUkVOIiksCiAgICAgICAgKHBFZSA9ICJTSUJMSU5HUyIpLAogICAgICAgIChkRWUgPSAiUEFSRU5UIiksCiAgICAgICAgKGhFZSA9ICJwcmVzZXJ2ZS0zZCIpLAogICAgICAgIChtRWUgPSAiSFRNTF9FTEVNRU5UIiksCiAgICAgICAgKHlFZSA9ICJQTEFJTl9PQkpFQ1QiKSwKICAgICAgICAoZ0VlID0gIkFCU1RSQUNUX05PREUiKSwKICAgICAgICAodkVlID0gIlJFTkRFUl9UUkFOU0ZPUk0iKSwKICAgICAgICAoYkVlID0gIlJFTkRFUl9HRU5FUkFMIiksCiAgICAgICAgKE1FZSA9ICJSRU5ERVJfU1RZTEUiKSwKICAgICAgICAoQUVlID0gIlJFTkRFUl9QTFVHSU4iKTsKICAgIH0pOwogIHZhciBUeiA9IHt9OwogIHV0KFR6LCB7CiAgICBBY3Rpb25BcHBsaWVzVG86ICgpID0+IEhBZSwKICAgIEFjdGlvblR5cGVDb25zdHM6ICgpID0+IE9yLAogICAgRXZlbnRBcHBsaWVzVG86ICgpID0+IHBiLAogICAgRXZlbnRCYXNlZE9uOiAoKSA9PiBXbiwKICAgIEV2ZW50Q29udGludW91c01vdXNlQXhlczogKCkgPT4gVUFlLAogICAgRXZlbnRMaW1pdEFmZmVjdGVkRWxlbWVudHM6ICgpID0+IFhBZSwKICAgIEV2ZW50VHlwZUNvbnN0czogKCkgPT4gZ24sCiAgICBJWDJFbmdpbmVBY3Rpb25UeXBlczogKCkgPT4gWHQsCiAgICBJWDJFbmdpbmVDb25zdGFudHM6ICgpID0+IHlyLAogICAgSW50ZXJhY3Rpb25UeXBlQ29uc3RzOiAoKSA9PiBHQWUsCiAgICBRdWlja0VmZmVjdERpcmVjdGlvbkNvbnN0czogKCkgPT4gVkFlLAogICAgUXVpY2tFZmZlY3RJZHM6ICgpID0+IGFwLAogICAgUmVkdWNlZE1vdGlvblR5cGVzOiAoKSA9PiBoYiwKICB9KTsKICB2YXIga3IgPSBWKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIGRiKCk7CiAgICBvcCgpOwogICAgYnooKTsKICAgIE16KCk7CiAgICBBeigpOwogICAgRXooKTsKICAgIG9wKCk7CiAgICBkYigpOwogIH0pOwogIHZhciBFRWUsCiAgICBfeiwKICAgIFN6ID0gVigoKSA9PiB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAga3IoKTsKICAgICAgKHsgSVgyX1JBV19EQVRBX0lNUE9SVEVEOiBFRWUgfSA9IFh0KSwKICAgICAgICAoX3ogPSAoZSA9IE9iamVjdC5mcmVlemUoe30pLCB0KSA9PiB7CiAgICAgICAgICBzd2l0Y2ggKHQudHlwZSkgewogICAgICAgICAgICBjYXNlIEVFZToKICAgICAgICAgICAgICByZXR1cm4gdC5wYXlsb2FkLml4RGF0YSB8fCBPYmplY3QuZnJlZXplKHt9KTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICByZXR1cm4gZTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0pOwogIHZhciBCcyA9IEUoKHh0KSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeHQsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogITAgfSk7CiAgICB2YXIgVEVlID0KICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gInN5bWJvbCIKICAgICAgICA/IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgZTsKICAgICAgICAgIH0KICAgICAgICA6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJldHVybiBlICYmCiAgICAgICAgICAgICAgdHlwZW9mIFN5bWJvbCA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICAgICAgZS5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmCiAgICAgICAgICAgICAgZSAhPT0gU3ltYm9sLnByb3RvdHlwZQogICAgICAgICAgICAgID8gInN5bWJvbCIKICAgICAgICAgICAgICA6IHR5cGVvZiBlOwogICAgICAgICAgfTsKICAgIHh0LmNsb25lID0gY3A7CiAgICB4dC5hZGRMYXN0ID0gQ3o7CiAgICB4dC5hZGRGaXJzdCA9IFJ6OwogICAgeHQucmVtb3ZlTGFzdCA9IEl6OwogICAgeHQucmVtb3ZlRmlyc3QgPSBMejsKICAgIHh0Lmluc2VydCA9IE56OwogICAgeHQucmVtb3ZlQXQgPSB3ejsKICAgIHh0LnJlcGxhY2VBdCA9IFB6OwogICAgeHQuZ2V0SW4gPSB1cDsKICAgIHh0LnNldCA9IGxwOwogICAgeHQuc2V0SW4gPSBmcDsKICAgIHh0LnVwZGF0ZSA9IHF6OwogICAgeHQudXBkYXRlSW4gPSB6ejsKICAgIHh0Lm1lcmdlID0gRno7CiAgICB4dC5tZXJnZURlZXAgPSBrejsKICAgIHh0Lm1lcmdlSW4gPSBCejsKICAgIHh0Lm9taXQgPSBXejsKICAgIHh0LmFkZERlZmF1bHRzID0gVXo7CiAgICB2YXIgT3ogPSAiSU5WQUxJRF9BUkdTIjsKICAgIGZ1bmN0aW9uIHh6KGUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKGUpOwogICAgfQogICAgZnVuY3Rpb24gbWIoZSkgewogICAgICB2YXIgdCA9IE9iamVjdC5rZXlzKGUpOwogICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scwogICAgICAgID8gdC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKSkKICAgICAgICA6IHQ7CiAgICB9CiAgICB2YXIgX0VlID0ge30uaGFzT3duUHJvcGVydHk7CiAgICBmdW5jdGlvbiBjcChlKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGUpKSByZXR1cm4gZS5zbGljZSgpOwogICAgICBmb3IgKHZhciB0ID0gbWIoZSksIHIgPSB7fSwgbiA9IDA7IG4gPCB0Lmxlbmd0aDsgbisrKSB7CiAgICAgICAgdmFyIGkgPSB0W25dOwogICAgICAgIHJbaV0gPSBlW2ldOwogICAgICB9CiAgICAgIHJldHVybiByOwogICAgfQogICAgZnVuY3Rpb24gQnIoZSwgdCwgcikgewogICAgICB2YXIgbiA9IHI7CiAgICAgIG4gPT0gbnVsbCAmJiB4eihPeik7CiAgICAgIGZvciAoCiAgICAgICAgdmFyIGkgPSAhMSwgYSA9IGFyZ3VtZW50cy5sZW5ndGgsIG8gPSBBcnJheShhID4gMyA/IGEgLSAzIDogMCksIHMgPSAzOwogICAgICAgIHMgPCBhOwogICAgICAgIHMrKwogICAgICApCiAgICAgICAgb1tzIC0gM10gPSBhcmd1bWVudHNbc107CiAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgby5sZW5ndGg7IGMrKykgewogICAgICAgIHZhciB1ID0gb1tjXTsKICAgICAgICBpZiAodSAhPSBudWxsKSB7CiAgICAgICAgICB2YXIgbCA9IG1iKHUpOwogICAgICAgICAgaWYgKGwubGVuZ3RoKQogICAgICAgICAgICBmb3IgKHZhciBwID0gMDsgcCA8PSBsLmxlbmd0aDsgcCsrKSB7CiAgICAgICAgICAgICAgdmFyIGQgPSBsW3BdOwogICAgICAgICAgICAgIGlmICghKGUgJiYgbltkXSAhPT0gdm9pZCAwKSkgewogICAgICAgICAgICAgICAgdmFyIGggPSB1W2RdOwogICAgICAgICAgICAgICAgdCAmJiBzcChuW2RdKSAmJiBzcChoKSAmJiAoaCA9IEJyKGUsIHQsIG5bZF0sIGgpKSwKICAgICAgICAgICAgICAgICAgIShoID09PSB2b2lkIDAgfHwgaCA9PT0gbltkXSkgJiYKICAgICAgICAgICAgICAgICAgICAoaSB8fCAoKGkgPSAhMCksIChuID0gY3AobikpKSwgKG5bZF0gPSBoKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBuOwogICAgfQogICAgZnVuY3Rpb24gc3AoZSkgewogICAgICB2YXIgdCA9IHR5cGVvZiBlID4gInUiID8gInVuZGVmaW5lZCIgOiBURWUoZSk7CiAgICAgIHJldHVybiBlICE9IG51bGwgJiYgKHQgPT09ICJvYmplY3QiIHx8IHQgPT09ICJmdW5jdGlvbiIpOwogICAgfQogICAgZnVuY3Rpb24gQ3ooZSwgdCkgewogICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0KSA/IGUuY29uY2F0KHQpIDogZS5jb25jYXQoW3RdKTsKICAgIH0KICAgIGZ1bmN0aW9uIFJ6KGUsIHQpIHsKICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodCkgPyB0LmNvbmNhdChlKSA6IFt0XS5jb25jYXQoZSk7CiAgICB9CiAgICBmdW5jdGlvbiBJeihlKSB7CiAgICAgIHJldHVybiBlLmxlbmd0aCA/IGUuc2xpY2UoMCwgZS5sZW5ndGggLSAxKSA6IGU7CiAgICB9CiAgICBmdW5jdGlvbiBMeihlKSB7CiAgICAgIHJldHVybiBlLmxlbmd0aCA/IGUuc2xpY2UoMSkgOiBlOwogICAgfQogICAgZnVuY3Rpb24gTnooZSwgdCwgcikgewogICAgICByZXR1cm4gZQogICAgICAgIC5zbGljZSgwLCB0KQogICAgICAgIC5jb25jYXQoQXJyYXkuaXNBcnJheShyKSA/IHIgOiBbcl0pCiAgICAgICAgLmNvbmNhdChlLnNsaWNlKHQpKTsKICAgIH0KICAgIGZ1bmN0aW9uIHd6KGUsIHQpIHsKICAgICAgcmV0dXJuIHQgPj0gZS5sZW5ndGggfHwgdCA8IDAgPyBlIDogZS5zbGljZSgwLCB0KS5jb25jYXQoZS5zbGljZSh0ICsgMSkpOwogICAgfQogICAgZnVuY3Rpb24gUHooZSwgdCwgcikgewogICAgICBpZiAoZVt0XSA9PT0gcikgcmV0dXJuIGU7CiAgICAgIGZvciAodmFyIG4gPSBlLmxlbmd0aCwgaSA9IEFycmF5KG4pLCBhID0gMDsgYSA8IG47IGErKykgaVthXSA9IGVbYV07CiAgICAgIHJldHVybiAoaVt0XSA9IHIpLCBpOwogICAgfQogICAgZnVuY3Rpb24gdXAoZSwgdCkgewogICAgICBpZiAoKCFBcnJheS5pc0FycmF5KHQpICYmIHh6KE96KSwgZSAhPSBudWxsKSkgewogICAgICAgIGZvciAodmFyIHIgPSBlLCBuID0gMDsgbiA8IHQubGVuZ3RoOyBuKyspIHsKICAgICAgICAgIHZhciBpID0gdFtuXTsKICAgICAgICAgIGlmICgoKHIgPSByPy5baV0pLCByID09PSB2b2lkIDApKSByZXR1cm4gcjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHI7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGxwKGUsIHQsIHIpIHsKICAgICAgdmFyIG4gPSB0eXBlb2YgdCA9PSAibnVtYmVyIiA/IFtdIDoge30sCiAgICAgICAgaSA9IGUgPz8gbjsKICAgICAgaWYgKGlbdF0gPT09IHIpIHJldHVybiBpOwogICAgICB2YXIgYSA9IGNwKGkpOwogICAgICByZXR1cm4gKGFbdF0gPSByKSwgYTsKICAgIH0KICAgIGZ1bmN0aW9uIER6KGUsIHQsIHIsIG4pIHsKICAgICAgdmFyIGkgPSB2b2lkIDAsCiAgICAgICAgYSA9IHRbbl07CiAgICAgIGlmIChuID09PSB0Lmxlbmd0aCAtIDEpIGkgPSByOwogICAgICBlbHNlIHsKICAgICAgICB2YXIgbyA9CiAgICAgICAgICBzcChlKSAmJiBzcChlW2FdKSA/IGVbYV0gOiB0eXBlb2YgdFtuICsgMV0gPT0gIm51bWJlciIgPyBbXSA6IHt9OwogICAgICAgIGkgPSBEeihvLCB0LCByLCBuICsgMSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGxwKGUsIGEsIGkpOwogICAgfQogICAgZnVuY3Rpb24gZnAoZSwgdCwgcikgewogICAgICByZXR1cm4gdC5sZW5ndGggPyBEeihlLCB0LCByLCAwKSA6IHI7CiAgICB9CiAgICBmdW5jdGlvbiBxeihlLCB0LCByKSB7CiAgICAgIHZhciBuID0gZT8uW3RdLAogICAgICAgIGkgPSByKG4pOwogICAgICByZXR1cm4gbHAoZSwgdCwgaSk7CiAgICB9CiAgICBmdW5jdGlvbiB6eihlLCB0LCByKSB7CiAgICAgIHZhciBuID0gdXAoZSwgdCksCiAgICAgICAgaSA9IHIobik7CiAgICAgIHJldHVybiBmcChlLCB0LCBpKTsKICAgIH0KICAgIGZ1bmN0aW9uIEZ6KGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgZm9yICgKICAgICAgICB2YXIgbyA9IGFyZ3VtZW50cy5sZW5ndGgsIHMgPSBBcnJheShvID4gNiA/IG8gLSA2IDogMCksIGMgPSA2OwogICAgICAgIGMgPCBvOwogICAgICAgIGMrKwogICAgICApCiAgICAgICAgc1tjIC0gNl0gPSBhcmd1bWVudHNbY107CiAgICAgIHJldHVybiBzLmxlbmd0aAogICAgICAgID8gQnIuY2FsbC5hcHBseShCciwgW251bGwsICExLCAhMSwgZSwgdCwgciwgbiwgaSwgYV0uY29uY2F0KHMpKQogICAgICAgIDogQnIoITEsICExLCBlLCB0LCByLCBuLCBpLCBhKTsKICAgIH0KICAgIGZ1bmN0aW9uIGt6KGUsIHQsIHIsIG4sIGksIGEpIHsKICAgICAgZm9yICgKICAgICAgICB2YXIgbyA9IGFyZ3VtZW50cy5sZW5ndGgsIHMgPSBBcnJheShvID4gNiA/IG8gLSA2IDogMCksIGMgPSA2OwogICAgICAgIGMgPCBvOwogICAgICAgIGMrKwogICAgICApCiAgICAgICAgc1tjIC0gNl0gPSBhcmd1bWVudHNbY107CiAgICAgIHJldHVybiBzLmxlbmd0aAogICAgICAgID8gQnIuY2FsbC5hcHBseShCciwgW251bGwsICExLCAhMCwgZSwgdCwgciwgbiwgaSwgYV0uY29uY2F0KHMpKQogICAgICAgIDogQnIoITEsICEwLCBlLCB0LCByLCBuLCBpLCBhKTsKICAgIH0KICAgIGZ1bmN0aW9uIEJ6KGUsIHQsIHIsIG4sIGksIGEsIG8pIHsKICAgICAgdmFyIHMgPSB1cChlLCB0KTsKICAgICAgcyA9PSBudWxsICYmIChzID0ge30pOwogICAgICBmb3IgKAogICAgICAgIHZhciBjID0gdm9pZCAwLAogICAgICAgICAgdSA9IGFyZ3VtZW50cy5sZW5ndGgsCiAgICAgICAgICBsID0gQXJyYXkodSA+IDcgPyB1IC0gNyA6IDApLAogICAgICAgICAgcCA9IDc7CiAgICAgICAgcCA8IHU7CiAgICAgICAgcCsrCiAgICAgICkKICAgICAgICBsW3AgLSA3XSA9IGFyZ3VtZW50c1twXTsKICAgICAgcmV0dXJuICgKICAgICAgICBsLmxlbmd0aAogICAgICAgICAgPyAoYyA9IEJyLmNhbGwuYXBwbHkoQnIsIFtudWxsLCAhMSwgITEsIHMsIHIsIG4sIGksIGEsIG9dLmNvbmNhdChsKSkpCiAgICAgICAgICA6IChjID0gQnIoITEsICExLCBzLCByLCBuLCBpLCBhLCBvKSksCiAgICAgICAgZnAoZSwgdCwgYykKICAgICAgKTsKICAgIH0KICAgIGZ1bmN0aW9uIFd6KGUsIHQpIHsKICAgICAgZm9yICh2YXIgciA9IEFycmF5LmlzQXJyYXkodCkgPyB0IDogW3RdLCBuID0gITEsIGkgPSAwOyBpIDwgci5sZW5ndGg7IGkrKykKICAgICAgICBpZiAoX0VlLmNhbGwoZSwgcltpXSkpIHsKICAgICAgICAgIG4gPSAhMDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgaWYgKCFuKSByZXR1cm4gZTsKICAgICAgZm9yICh2YXIgYSA9IHt9LCBvID0gbWIoZSksIHMgPSAwOyBzIDwgby5sZW5ndGg7IHMrKykgewogICAgICAgIHZhciBjID0gb1tzXTsKICAgICAgICByLmluZGV4T2YoYykgPj0gMCB8fCAoYVtjXSA9IGVbY10pOwogICAgICB9CiAgICAgIHJldHVybiBhOwogICAgfQogICAgZnVuY3Rpb24gVXooZSwgdCwgciwgbiwgaSwgYSkgewogICAgICBmb3IgKAogICAgICAgIHZhciBvID0gYXJndW1lbnRzLmxlbmd0aCwgcyA9IEFycmF5KG8gPiA2ID8gbyAtIDYgOiAwKSwgYyA9IDY7CiAgICAgICAgYyA8IG87CiAgICAgICAgYysrCiAgICAgICkKICAgICAgICBzW2MgLSA2XSA9IGFyZ3VtZW50c1tjXTsKICAgICAgcmV0dXJuIHMubGVuZ3RoCiAgICAgICAgPyBCci5jYWxsLmFwcGx5KEJyLCBbbnVsbCwgITAsICExLCBlLCB0LCByLCBuLCBpLCBhXS5jb25jYXQocykpCiAgICAgICAgOiBCcighMCwgITEsIGUsIHQsIHIsIG4sIGksIGEpOwogICAgfQogICAgdmFyIFNFZSA9IHsKICAgICAgY2xvbmU6IGNwLAogICAgICBhZGRMYXN0OiBDeiwKICAgICAgYWRkRmlyc3Q6IFJ6LAogICAgICByZW1vdmVMYXN0OiBJeiwKICAgICAgcmVtb3ZlRmlyc3Q6IEx6LAogICAgICBpbnNlcnQ6IE56LAogICAgICByZW1vdmVBdDogd3osCiAgICAgIHJlcGxhY2VBdDogUHosCiAgICAgIGdldEluOiB1cCwKICAgICAgc2V0OiBscCwKICAgICAgc2V0SW46IGZwLAogICAgICB1cGRhdGU6IHF6LAogICAgICB1cGRhdGVJbjogenosCiAgICAgIG1lcmdlOiBGeiwKICAgICAgbWVyZ2VEZWVwOiBreiwKICAgICAgbWVyZ2VJbjogQnosCiAgICAgIG9taXQ6IFd6LAogICAgICBhZGREZWZhdWx0czogVXosCiAgICB9OwogICAgeHQuZGVmYXVsdCA9IFNFZTsKICB9KTsKICB2YXIgVnosCiAgICBPRWUsCiAgICB4RWUsCiAgICBDRWUsCiAgICBSRWUsCiAgICBJRWUsCiAgICBYeiwKICAgIEh6LAogICAgR3ogPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBrcigpOwogICAgICAoVnogPSBiZShCcygpKSksCiAgICAgICAgKHsKICAgICAgICAgIElYMl9QUkVWSUVXX1JFUVVFU1RFRDogT0VlLAogICAgICAgICAgSVgyX1BMQVlCQUNLX1JFUVVFU1RFRDogeEVlLAogICAgICAgICAgSVgyX1NUT1BfUkVRVUVTVEVEOiBDRWUsCiAgICAgICAgICBJWDJfQ0xFQVJfUkVRVUVTVEVEOiBSRWUsCiAgICAgICAgfSA9IFh0KSwKICAgICAgICAoSUVlID0geyBwcmV2aWV3OiB7fSwgcGxheWJhY2s6IHt9LCBzdG9wOiB7fSwgY2xlYXI6IHt9IH0pLAogICAgICAgIChYeiA9IE9iamVjdC5jcmVhdGUobnVsbCwgewogICAgICAgICAgW09FZV06IHsgdmFsdWU6ICJwcmV2aWV3IiB9LAogICAgICAgICAgW3hFZV06IHsgdmFsdWU6ICJwbGF5YmFjayIgfSwKICAgICAgICAgIFtDRWVdOiB7IHZhbHVlOiAic3RvcCIgfSwKICAgICAgICAgIFtSRWVdOiB7IHZhbHVlOiAiY2xlYXIiIH0sCiAgICAgICAgfSkpLAogICAgICAgIChIeiA9IChlID0gSUVlLCB0KSA9PiB7CiAgICAgICAgICBpZiAodC50eXBlIGluIFh6KSB7CiAgICAgICAgICAgIGxldCByID0gW1h6W3QudHlwZV1dOwogICAgICAgICAgICByZXR1cm4gKDAsIFZ6LnNldEluKShlLCBbcl0sIHsgLi4udC5wYXlsb2FkIH0pOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgfSk7CiAgICB9KTsKICB2YXIgeHIsCiAgICBMRWUsCiAgICBORWUsCiAgICB3RWUsCiAgICBQRWUsCiAgICBERWUsCiAgICBxRWUsCiAgICB6RWUsCiAgICBGRWUsCiAgICBrRWUsCiAgICBCRWUsCiAgICBqeiwKICAgIFdFZSwKICAgIFl6LAogICAgS3ogPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBrcigpOwogICAgICAoeHIgPSBiZShCcygpKSksCiAgICAgICAgKHsKICAgICAgICAgIElYMl9TRVNTSU9OX0lOSVRJQUxJWkVEOiBMRWUsCiAgICAgICAgICBJWDJfU0VTU0lPTl9TVEFSVEVEOiBORWUsCiAgICAgICAgICBJWDJfVEVTVF9GUkFNRV9SRU5ERVJFRDogd0VlLAogICAgICAgICAgSVgyX1NFU1NJT05fU1RPUFBFRDogUEVlLAogICAgICAgICAgSVgyX0VWRU5UX0xJU1RFTkVSX0FEREVEOiBERWUsCiAgICAgICAgICBJWDJfRVZFTlRfU1RBVEVfQ0hBTkdFRDogcUVlLAogICAgICAgICAgSVgyX0FOSU1BVElPTl9GUkFNRV9DSEFOR0VEOiB6RWUsCiAgICAgICAgICBJWDJfQUNUSU9OX0xJU1RfUExBWUJBQ0tfQ0hBTkdFRDogRkVlLAogICAgICAgICAgSVgyX1ZJRVdQT1JUX1dJRFRIX0NIQU5HRUQ6IGtFZSwKICAgICAgICAgIElYMl9NRURJQV9RVUVSSUVTX0RFRklORUQ6IEJFZSwKICAgICAgICB9ID0gWHQpLAogICAgICAgIChqeiA9IHsKICAgICAgICAgIGFjdGl2ZTogITEsCiAgICAgICAgICB0aWNrOiAwLAogICAgICAgICAgZXZlbnRMaXN0ZW5lcnM6IFtdLAogICAgICAgICAgZXZlbnRTdGF0ZToge30sCiAgICAgICAgICBwbGF5YmFja1N0YXRlOiB7fSwKICAgICAgICAgIHZpZXdwb3J0V2lkdGg6IDAsCiAgICAgICAgICBtZWRpYVF1ZXJ5S2V5OiBudWxsLAogICAgICAgICAgaGFzQm91bmRhcnlOb2RlczogITEsCiAgICAgICAgICBoYXNEZWZpbmVkTWVkaWFRdWVyaWVzOiAhMSwKICAgICAgICAgIHJlZHVjZWRNb3Rpb246ICExLAogICAgICAgIH0pLAogICAgICAgIChXRWUgPSAyMCksCiAgICAgICAgKFl6ID0gKGUgPSBqeiwgdCkgPT4gewogICAgICAgICAgc3dpdGNoICh0LnR5cGUpIHsKICAgICAgICAgICAgY2FzZSBMRWU6IHsKICAgICAgICAgICAgICBsZXQgeyBoYXNCb3VuZGFyeU5vZGVzOiByLCByZWR1Y2VkTW90aW9uOiBuIH0gPSB0LnBheWxvYWQ7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCB4ci5tZXJnZSkoZSwgewogICAgICAgICAgICAgICAgaGFzQm91bmRhcnlOb2RlczogciwKICAgICAgICAgICAgICAgIHJlZHVjZWRNb3Rpb246IG4sCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSBORWU6CiAgICAgICAgICAgICAgcmV0dXJuICgwLCB4ci5zZXQpKGUsICJhY3RpdmUiLCAhMCk7CiAgICAgICAgICAgIGNhc2Ugd0VlOiB7CiAgICAgICAgICAgICAgbGV0IHsKICAgICAgICAgICAgICAgIHBheWxvYWQ6IHsgc3RlcDogciA9IFdFZSB9LAogICAgICAgICAgICAgIH0gPSB0OwogICAgICAgICAgICAgIHJldHVybiAoMCwgeHIuc2V0KShlLCAidGljayIsIGUudGljayArIHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgUEVlOgogICAgICAgICAgICAgIHJldHVybiBqejsKICAgICAgICAgICAgY2FzZSB6RWU6IHsKICAgICAgICAgICAgICBsZXQgewogICAgICAgICAgICAgICAgcGF5bG9hZDogeyBub3c6IHIgfSwKICAgICAgICAgICAgICB9ID0gdDsKICAgICAgICAgICAgICByZXR1cm4gKDAsIHhyLnNldCkoZSwgInRpY2siLCByKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIERFZTogewogICAgICAgICAgICAgIGxldCByID0gKDAsIHhyLmFkZExhc3QpKGUuZXZlbnRMaXN0ZW5lcnMsIHQucGF5bG9hZCk7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCB4ci5zZXQpKGUsICJldmVudExpc3RlbmVycyIsIHIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgcUVlOiB7CiAgICAgICAgICAgICAgbGV0IHsgc3RhdGVLZXk6IHIsIG5ld1N0YXRlOiBuIH0gPSB0LnBheWxvYWQ7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCB4ci5zZXRJbikoZSwgWyJldmVudFN0YXRlIiwgcl0sIG4pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgRkVlOiB7CiAgICAgICAgICAgICAgbGV0IHsgYWN0aW9uTGlzdElkOiByLCBpc1BsYXlpbmc6IG4gfSA9IHQucGF5bG9hZDsKICAgICAgICAgICAgICByZXR1cm4gKDAsIHhyLnNldEluKShlLCBbInBsYXliYWNrU3RhdGUiLCByXSwgbik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSBrRWU6IHsKICAgICAgICAgICAgICBsZXQgeyB3aWR0aDogciwgbWVkaWFRdWVyaWVzOiBuIH0gPSB0LnBheWxvYWQsCiAgICAgICAgICAgICAgICBpID0gbi5sZW5ndGgsCiAgICAgICAgICAgICAgICBhID0gbnVsbDsKICAgICAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IGk7IG8rKykgewogICAgICAgICAgICAgICAgbGV0IHsga2V5OiBzLCBtaW46IGMsIG1heDogdSB9ID0gbltvXTsKICAgICAgICAgICAgICAgIGlmIChyID49IGMgJiYgciA8PSB1KSB7CiAgICAgICAgICAgICAgICAgIGEgPSBzOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICgwLCB4ci5tZXJnZSkoZSwgeyB2aWV3cG9ydFdpZHRoOiByLCBtZWRpYVF1ZXJ5S2V5OiBhIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgQkVlOgogICAgICAgICAgICAgIHJldHVybiAoMCwgeHIuc2V0KShlLCAiaGFzRGVmaW5lZE1lZGlhUXVlcmllcyIsICEwKTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICByZXR1cm4gZTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0pOwogIHZhciB5YiA9IEUoKGhKZSwgJHopID0+IHsKICAgIHZhciBVRWUgPSBxbigpLAogICAgICBYRWUgPSBwaSgpLAogICAgICBWRWUgPSBWYSgpOwogICAgZnVuY3Rpb24gSEVlKGUpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0LCByLCBuKSB7CiAgICAgICAgdmFyIGkgPSBPYmplY3QodCk7CiAgICAgICAgaWYgKCFYRWUodCkpIHsKICAgICAgICAgIHZhciBhID0gVUVlKHIsIDMpOwogICAgICAgICAgKHQgPSBWRWUodCkpLAogICAgICAgICAgICAociA9IGZ1bmN0aW9uIChzKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGEoaVtzXSwgcywgaSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICB2YXIgbyA9IGUodCwgciwgbik7CiAgICAgICAgcmV0dXJuIG8gPiAtMSA/IGlbYSA/IHRbb10gOiBvXSA6IHZvaWQgMDsKICAgICAgfTsKICAgIH0KICAgICR6LmV4cG9ydHMgPSBIRWU7CiAgfSk7CiAgdmFyIHBwID0gRSgobUplLCBReikgPT4gewogICAgdmFyIEdFZSA9IHliKCksCiAgICAgIGpFZSA9IHF5KCksCiAgICAgIFlFZSA9IEdFZShqRWUpOwogICAgUXouZXhwb3J0cyA9IFlFZTsKICB9KTsKICB2YXIgZTQgPSB7fTsKICB1dChlNCwgewogICAgRUxFTUVOVF9NQVRDSEVTOiAoKSA9PiBLRWUsCiAgICBGTEVYX1BSRUZJWEVEOiAoKSA9PiBnYiwKICAgIElTX0JST1dTRVJfRU5WOiAoKSA9PiB2biwKICAgIFRSQU5TRk9STV9QUkVGSVhFRDogKCkgPT4gY2EsCiAgICBUUkFOU0ZPUk1fU1RZTEVfUFJFRklYRUQ6ICgpID0+IGhwLAogICAgd2l0aEJyb3dzZXI6ICgpID0+IGRwLAogIH0pOwogIHZhciBaeiwKICAgIHZuLAogICAgZHAsCiAgICBLRWUsCiAgICBnYiwKICAgIGNhLAogICAgSnosCiAgICBocCwKICAgIG1wID0gVigoKSA9PiB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgKFp6ID0gYmUocHAoKSkpLAogICAgICAgICh2biA9IHR5cGVvZiB3aW5kb3cgPCAidSIpLAogICAgICAgIChkcCA9IChlLCB0KSA9PiAodm4gPyBlKCkgOiB0KSksCiAgICAgICAgKEtFZSA9IGRwKCgpID0+CiAgICAgICAgICAoMCwgWnouZGVmYXVsdCkoCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAibWF0Y2hlcyIsCiAgICAgICAgICAgICAgIm1hdGNoZXNTZWxlY3RvciIsCiAgICAgICAgICAgICAgIm1vek1hdGNoZXNTZWxlY3RvciIsCiAgICAgICAgICAgICAgIm1zTWF0Y2hlc1NlbGVjdG9yIiwKICAgICAgICAgICAgICAib01hdGNoZXNTZWxlY3RvciIsCiAgICAgICAgICAgICAgIndlYmtpdE1hdGNoZXNTZWxlY3RvciIsCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIChlKSA9PiBlIGluIEVsZW1lbnQucHJvdG90eXBlCiAgICAgICAgICApCiAgICAgICAgKSksCiAgICAgICAgKGdiID0gZHAoKCkgPT4gewogICAgICAgICAgbGV0IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIiksCiAgICAgICAgICAgIHQgPSBbCiAgICAgICAgICAgICAgImZsZXgiLAogICAgICAgICAgICAgICItd2Via2l0LWZsZXgiLAogICAgICAgICAgICAgICItbXMtZmxleGJveCIsCiAgICAgICAgICAgICAgIi1tb3otYm94IiwKICAgICAgICAgICAgICAiLXdlYmtpdC1ib3giLAogICAgICAgICAgICBdLAogICAgICAgICAgICByID0gIiI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBsZXQgeyBsZW5ndGg6IG4gfSA9IHQ7CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICAgbGV0IGEgPSB0W2ldOwogICAgICAgICAgICAgIGlmICgoKGUuc3R5bGUuZGlzcGxheSA9IGEpLCBlLnN0eWxlLmRpc3BsYXkgPT09IGEpKSByZXR1cm4gYTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcjsKICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICByZXR1cm4gcjsKICAgICAgICAgIH0KICAgICAgICB9LCAiZmxleCIpKSwKICAgICAgICAoY2EgPSBkcCgoKSA9PiB7CiAgICAgICAgICBsZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTsKICAgICAgICAgIGlmIChlLnN0eWxlLnRyYW5zZm9ybSA9PSBudWxsKSB7CiAgICAgICAgICAgIGxldCB0ID0gWyJXZWJraXQiLCAiTW96IiwgIm1zIl0sCiAgICAgICAgICAgICAgciA9ICJUcmFuc2Zvcm0iLAogICAgICAgICAgICAgIHsgbGVuZ3RoOiBuIH0gPSB0OwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICAgIGxldCBhID0gdFtpXSArIHI7CiAgICAgICAgICAgICAgaWYgKGUuc3R5bGVbYV0gIT09IHZvaWQgMCkgcmV0dXJuIGE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAidHJhbnNmb3JtIjsKICAgICAgICB9LCAidHJhbnNmb3JtIikpLAogICAgICAgIChKeiA9IGNhLnNwbGl0KCJ0cmFuc2Zvcm0iKVswXSksCiAgICAgICAgKGhwID0gSnogPyBKeiArICJUcmFuc2Zvcm1TdHlsZSIgOiAidHJhbnNmb3JtU3R5bGUiKTsKICAgIH0pOwogIHZhciB2YiA9IEUoKHlKZSwgYTQpID0+IHsKICAgIHZhciAkRWUgPSA0LAogICAgICBRRWUgPSAwLjAwMSwKICAgICAgSkVlID0gMWUtNywKICAgICAgWkVlID0gMTAsCiAgICAgIEFjID0gMTEsCiAgICAgIHlwID0gMSAvIChBYyAtIDEpLAogICAgICBlVGUgPSB0eXBlb2YgRmxvYXQzMkFycmF5ID09ICJmdW5jdGlvbiI7CiAgICBmdW5jdGlvbiB0NChlLCB0KSB7CiAgICAgIHJldHVybiAxIC0gMyAqIHQgKyAzICogZTsKICAgIH0KICAgIGZ1bmN0aW9uIHI0KGUsIHQpIHsKICAgICAgcmV0dXJuIDMgKiB0IC0gNiAqIGU7CiAgICB9CiAgICBmdW5jdGlvbiBuNChlKSB7CiAgICAgIHJldHVybiAzICogZTsKICAgIH0KICAgIGZ1bmN0aW9uIGdwKGUsIHQsIHIpIHsKICAgICAgcmV0dXJuICgodDQodCwgcikgKiBlICsgcjQodCwgcikpICogZSArIG40KHQpKSAqIGU7CiAgICB9CiAgICBmdW5jdGlvbiBpNChlLCB0LCByKSB7CiAgICAgIHJldHVybiAzICogdDQodCwgcikgKiBlICogZSArIDIgKiByNCh0LCByKSAqIGUgKyBuNCh0KTsKICAgIH0KICAgIGZ1bmN0aW9uIHRUZShlLCB0LCByLCBuLCBpKSB7CiAgICAgIHZhciBhLAogICAgICAgIG8sCiAgICAgICAgcyA9IDA7CiAgICAgIGRvCiAgICAgICAgKG8gPSB0ICsgKHIgLSB0KSAvIDIpLCAoYSA9IGdwKG8sIG4sIGkpIC0gZSksIGEgPiAwID8gKHIgPSBvKSA6ICh0ID0gbyk7CiAgICAgIHdoaWxlIChNYXRoLmFicyhhKSA+IEpFZSAmJiArK3MgPCBaRWUpOwogICAgICByZXR1cm4gbzsKICAgIH0KICAgIGZ1bmN0aW9uIHJUZShlLCB0LCByLCBuKSB7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgJEVlOyArK2kpIHsKICAgICAgICB2YXIgYSA9IGk0KHQsIHIsIG4pOwogICAgICAgIGlmIChhID09PSAwKSByZXR1cm4gdDsKICAgICAgICB2YXIgbyA9IGdwKHQsIHIsIG4pIC0gZTsKICAgICAgICB0IC09IG8gLyBhOwogICAgICB9CiAgICAgIHJldHVybiB0OwogICAgfQogICAgYTQuZXhwb3J0cyA9IGZ1bmN0aW9uICh0LCByLCBuLCBpKSB7CiAgICAgIGlmICghKDAgPD0gdCAmJiB0IDw9IDEgJiYgMCA8PSBuICYmIG4gPD0gMSkpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiZXppZXIgeCB2YWx1ZXMgbXVzdCBiZSBpbiBbMCwgMV0gcmFuZ2UiKTsKICAgICAgdmFyIGEgPSBlVGUgPyBuZXcgRmxvYXQzMkFycmF5KEFjKSA6IG5ldyBBcnJheShBYyk7CiAgICAgIGlmICh0ICE9PSByIHx8IG4gIT09IGkpCiAgICAgICAgZm9yICh2YXIgbyA9IDA7IG8gPCBBYzsgKytvKSBhW29dID0gZ3AobyAqIHlwLCB0LCBuKTsKICAgICAgZnVuY3Rpb24gcyhjKSB7CiAgICAgICAgZm9yICh2YXIgdSA9IDAsIGwgPSAxLCBwID0gQWMgLSAxOyBsICE9PSBwICYmIGFbbF0gPD0gYzsgKytsKSB1ICs9IHlwOwogICAgICAgIC0tbDsKICAgICAgICB2YXIgZCA9IChjIC0gYVtsXSkgLyAoYVtsICsgMV0gLSBhW2xdKSwKICAgICAgICAgIGggPSB1ICsgZCAqIHlwLAogICAgICAgICAgbSA9IGk0KGgsIHQsIG4pOwogICAgICAgIHJldHVybiBtID49IFFFZQogICAgICAgICAgPyByVGUoYywgaCwgdCwgbikKICAgICAgICAgIDogbSA9PT0gMAogICAgICAgICAgPyBoCiAgICAgICAgICA6IHRUZShjLCB1LCB1ICsgeXAsIHQsIG4pOwogICAgICB9CiAgICAgIHJldHVybiBmdW5jdGlvbiAodSkgewogICAgICAgIHJldHVybiB0ID09PSByICYmIG4gPT09IGkKICAgICAgICAgID8gdQogICAgICAgICAgOiB1ID09PSAwCiAgICAgICAgICA/IDAKICAgICAgICAgIDogdSA9PT0gMQogICAgICAgICAgPyAxCiAgICAgICAgICA6IGdwKHModSksIHIsIGkpOwogICAgICB9OwogICAgfTsKICB9KTsKICB2YXIgVGMgPSB7fTsKICB1dChUYywgewogICAgYm91bmNlOiAoKSA9PiBGVGUsCiAgICBib3VuY2VQYXN0OiAoKSA9PiBrVGUsCiAgICBlYXNlOiAoKSA9PiBuVGUsCiAgICBlYXNlSW46ICgpID0+IGlUZSwKICAgIGVhc2VJbk91dDogKCkgPT4gb1RlLAogICAgZWFzZU91dDogKCkgPT4gYVRlLAogICAgaW5CYWNrOiAoKSA9PiBSVGUsCiAgICBpbkNpcmM6ICgpID0+IFNUZSwKICAgIGluQ3ViaWM6ICgpID0+IGxUZSwKICAgIGluRWxhc3RpYzogKCkgPT4gTlRlLAogICAgaW5FeHBvOiAoKSA9PiBFVGUsCiAgICBpbk91dEJhY2s6ICgpID0+IExUZSwKICAgIGluT3V0Q2lyYzogKCkgPT4geFRlLAogICAgaW5PdXRDdWJpYzogKCkgPT4gcFRlLAogICAgaW5PdXRFbGFzdGljOiAoKSA9PiBQVGUsCiAgICBpbk91dEV4cG86ICgpID0+IF9UZSwKICAgIGluT3V0UXVhZDogKCkgPT4gdVRlLAogICAgaW5PdXRRdWFydDogKCkgPT4gbVRlLAogICAgaW5PdXRRdWludDogKCkgPT4gdlRlLAogICAgaW5PdXRTaW5lOiAoKSA9PiBBVGUsCiAgICBpblF1YWQ6ICgpID0+IHNUZSwKICAgIGluUXVhcnQ6ICgpID0+IGRUZSwKICAgIGluUXVpbnQ6ICgpID0+IHlUZSwKICAgIGluU2luZTogKCkgPT4gYlRlLAogICAgb3V0QmFjazogKCkgPT4gSVRlLAogICAgb3V0Qm91bmNlOiAoKSA9PiBDVGUsCiAgICBvdXRDaXJjOiAoKSA9PiBPVGUsCiAgICBvdXRDdWJpYzogKCkgPT4gZlRlLAogICAgb3V0RWxhc3RpYzogKCkgPT4gd1RlLAogICAgb3V0RXhwbzogKCkgPT4gVFRlLAogICAgb3V0UXVhZDogKCkgPT4gY1RlLAogICAgb3V0UXVhcnQ6ICgpID0+IGhUZSwKICAgIG91dFF1aW50OiAoKSA9PiBnVGUsCiAgICBvdXRTaW5lOiAoKSA9PiBNVGUsCiAgICBzd2luZ0Zyb206ICgpID0+IHFUZSwKICAgIHN3aW5nRnJvbVRvOiAoKSA9PiBEVGUsCiAgICBzd2luZ1RvOiAoKSA9PiB6VGUsCiAgfSk7CiAgZnVuY3Rpb24gc1RlKGUpIHsKICAgIHJldHVybiBNYXRoLnBvdyhlLCAyKTsKICB9CiAgZnVuY3Rpb24gY1RlKGUpIHsKICAgIHJldHVybiAtKE1hdGgucG93KGUgLSAxLCAyKSAtIDEpOwogIH0KICBmdW5jdGlvbiB1VGUoZSkgewogICAgcmV0dXJuIChlIC89IDAuNSkgPCAxID8gMC41ICogTWF0aC5wb3coZSwgMikgOiAtMC41ICogKChlIC09IDIpICogZSAtIDIpOwogIH0KICBmdW5jdGlvbiBsVGUoZSkgewogICAgcmV0dXJuIE1hdGgucG93KGUsIDMpOwogIH0KICBmdW5jdGlvbiBmVGUoZSkgewogICAgcmV0dXJuIE1hdGgucG93KGUgLSAxLCAzKSArIDE7CiAgfQogIGZ1bmN0aW9uIHBUZShlKSB7CiAgICByZXR1cm4gKGUgLz0gMC41KSA8IDEKICAgICAgPyAwLjUgKiBNYXRoLnBvdyhlLCAzKQogICAgICA6IDAuNSAqIChNYXRoLnBvdyhlIC0gMiwgMykgKyAyKTsKICB9CiAgZnVuY3Rpb24gZFRlKGUpIHsKICAgIHJldHVybiBNYXRoLnBvdyhlLCA0KTsKICB9CiAgZnVuY3Rpb24gaFRlKGUpIHsKICAgIHJldHVybiAtKE1hdGgucG93KGUgLSAxLCA0KSAtIDEpOwogIH0KICBmdW5jdGlvbiBtVGUoZSkgewogICAgcmV0dXJuIChlIC89IDAuNSkgPCAxCiAgICAgID8gMC41ICogTWF0aC5wb3coZSwgNCkKICAgICAgOiAtMC41ICogKChlIC09IDIpICogTWF0aC5wb3coZSwgMykgLSAyKTsKICB9CiAgZnVuY3Rpb24geVRlKGUpIHsKICAgIHJldHVybiBNYXRoLnBvdyhlLCA1KTsKICB9CiAgZnVuY3Rpb24gZ1RlKGUpIHsKICAgIHJldHVybiBNYXRoLnBvdyhlIC0gMSwgNSkgKyAxOwogIH0KICBmdW5jdGlvbiB2VGUoZSkgewogICAgcmV0dXJuIChlIC89IDAuNSkgPCAxCiAgICAgID8gMC41ICogTWF0aC5wb3coZSwgNSkKICAgICAgOiAwLjUgKiAoTWF0aC5wb3coZSAtIDIsIDUpICsgMik7CiAgfQogIGZ1bmN0aW9uIGJUZShlKSB7CiAgICByZXR1cm4gLU1hdGguY29zKGUgKiAoTWF0aC5QSSAvIDIpKSArIDE7CiAgfQogIGZ1bmN0aW9uIE1UZShlKSB7CiAgICByZXR1cm4gTWF0aC5zaW4oZSAqIChNYXRoLlBJIC8gMikpOwogIH0KICBmdW5jdGlvbiBBVGUoZSkgewogICAgcmV0dXJuIC0wLjUgKiAoTWF0aC5jb3MoTWF0aC5QSSAqIGUpIC0gMSk7CiAgfQogIGZ1bmN0aW9uIEVUZShlKSB7CiAgICByZXR1cm4gZSA9PT0gMCA/IDAgOiBNYXRoLnBvdygyLCAxMCAqIChlIC0gMSkpOwogIH0KICBmdW5jdGlvbiBUVGUoZSkgewogICAgcmV0dXJuIGUgPT09IDEgPyAxIDogLU1hdGgucG93KDIsIC0xMCAqIGUpICsgMTsKICB9CiAgZnVuY3Rpb24gX1RlKGUpIHsKICAgIHJldHVybiBlID09PSAwCiAgICAgID8gMAogICAgICA6IGUgPT09IDEKICAgICAgPyAxCiAgICAgIDogKGUgLz0gMC41KSA8IDEKICAgICAgPyAwLjUgKiBNYXRoLnBvdygyLCAxMCAqIChlIC0gMSkpCiAgICAgIDogMC41ICogKC1NYXRoLnBvdygyLCAtMTAgKiAtLWUpICsgMik7CiAgfQogIGZ1bmN0aW9uIFNUZShlKSB7CiAgICByZXR1cm4gLShNYXRoLnNxcnQoMSAtIGUgKiBlKSAtIDEpOwogIH0KICBmdW5jdGlvbiBPVGUoZSkgewogICAgcmV0dXJuIE1hdGguc3FydCgxIC0gTWF0aC5wb3coZSAtIDEsIDIpKTsKICB9CiAgZnVuY3Rpb24geFRlKGUpIHsKICAgIHJldHVybiAoZSAvPSAwLjUpIDwgMQogICAgICA/IC0wLjUgKiAoTWF0aC5zcXJ0KDEgLSBlICogZSkgLSAxKQogICAgICA6IDAuNSAqIChNYXRoLnNxcnQoMSAtIChlIC09IDIpICogZSkgKyAxKTsKICB9CiAgZnVuY3Rpb24gQ1RlKGUpIHsKICAgIHJldHVybiBlIDwgMSAvIDIuNzUKICAgICAgPyA3LjU2MjUgKiBlICogZQogICAgICA6IGUgPCAyIC8gMi43NQogICAgICA/IDcuNTYyNSAqIChlIC09IDEuNSAvIDIuNzUpICogZSArIDAuNzUKICAgICAgOiBlIDwgMi41IC8gMi43NQogICAgICA/IDcuNTYyNSAqIChlIC09IDIuMjUgLyAyLjc1KSAqIGUgKyAwLjkzNzUKICAgICAgOiA3LjU2MjUgKiAoZSAtPSAyLjYyNSAvIDIuNzUpICogZSArIDAuOTg0Mzc1OwogIH0KICBmdW5jdGlvbiBSVGUoZSkgewogICAgbGV0IHQgPSBUaTsKICAgIHJldHVybiBlICogZSAqICgodCArIDEpICogZSAtIHQpOwogIH0KICBmdW5jdGlvbiBJVGUoZSkgewogICAgbGV0IHQgPSBUaTsKICAgIHJldHVybiAoZSAtPSAxKSAqIGUgKiAoKHQgKyAxKSAqIGUgKyB0KSArIDE7CiAgfQogIGZ1bmN0aW9uIExUZShlKSB7CiAgICBsZXQgdCA9IFRpOwogICAgcmV0dXJuIChlIC89IDAuNSkgPCAxCiAgICAgID8gMC41ICogKGUgKiBlICogKCgodCAqPSAxLjUyNSkgKyAxKSAqIGUgLSB0KSkKICAgICAgOiAwLjUgKiAoKGUgLT0gMikgKiBlICogKCgodCAqPSAxLjUyNSkgKyAxKSAqIGUgKyB0KSArIDIpOwogIH0KICBmdW5jdGlvbiBOVGUoZSkgewogICAgbGV0IHQgPSBUaSwKICAgICAgciA9IDAsCiAgICAgIG4gPSAxOwogICAgcmV0dXJuIGUgPT09IDAKICAgICAgPyAwCiAgICAgIDogZSA9PT0gMQogICAgICA/IDEKICAgICAgOiAociB8fCAociA9IDAuMyksCiAgICAgICAgbiA8IDEKICAgICAgICAgID8gKChuID0gMSksICh0ID0gciAvIDQpKQogICAgICAgICAgOiAodCA9IChyIC8gKDIgKiBNYXRoLlBJKSkgKiBNYXRoLmFzaW4oMSAvIG4pKSwKICAgICAgICAtKAogICAgICAgICAgbiAqCiAgICAgICAgICBNYXRoLnBvdygyLCAxMCAqIChlIC09IDEpKSAqCiAgICAgICAgICBNYXRoLnNpbigoKGUgLSB0KSAqICgyICogTWF0aC5QSSkpIC8gcikKICAgICAgICApKTsKICB9CiAgZnVuY3Rpb24gd1RlKGUpIHsKICAgIGxldCB0ID0gVGksCiAgICAgIHIgPSAwLAogICAgICBuID0gMTsKICAgIHJldHVybiBlID09PSAwCiAgICAgID8gMAogICAgICA6IGUgPT09IDEKICAgICAgPyAxCiAgICAgIDogKHIgfHwgKHIgPSAwLjMpLAogICAgICAgIG4gPCAxCiAgICAgICAgICA/ICgobiA9IDEpLCAodCA9IHIgLyA0KSkKICAgICAgICAgIDogKHQgPSAociAvICgyICogTWF0aC5QSSkpICogTWF0aC5hc2luKDEgLyBuKSksCiAgICAgICAgbiAqIE1hdGgucG93KDIsIC0xMCAqIGUpICogTWF0aC5zaW4oKChlIC0gdCkgKiAoMiAqIE1hdGguUEkpKSAvIHIpICsgMSk7CiAgfQogIGZ1bmN0aW9uIFBUZShlKSB7CiAgICBsZXQgdCA9IFRpLAogICAgICByID0gMCwKICAgICAgbiA9IDE7CiAgICByZXR1cm4gZSA9PT0gMAogICAgICA/IDAKICAgICAgOiAoZSAvPSAxIC8gMikgPT09IDIKICAgICAgPyAxCiAgICAgIDogKHIgfHwgKHIgPSAwLjMgKiAxLjUpLAogICAgICAgIG4gPCAxCiAgICAgICAgICA/ICgobiA9IDEpLCAodCA9IHIgLyA0KSkKICAgICAgICAgIDogKHQgPSAociAvICgyICogTWF0aC5QSSkpICogTWF0aC5hc2luKDEgLyBuKSksCiAgICAgICAgZSA8IDEKICAgICAgICAgID8gLTAuNSAqCiAgICAgICAgICAgIChuICoKICAgICAgICAgICAgICBNYXRoLnBvdygyLCAxMCAqIChlIC09IDEpKSAqCiAgICAgICAgICAgICAgTWF0aC5zaW4oKChlIC0gdCkgKiAoMiAqIE1hdGguUEkpKSAvIHIpKQogICAgICAgICAgOiBuICoKICAgICAgICAgICAgICBNYXRoLnBvdygyLCAtMTAgKiAoZSAtPSAxKSkgKgogICAgICAgICAgICAgIE1hdGguc2luKCgoZSAtIHQpICogKDIgKiBNYXRoLlBJKSkgLyByKSAqCiAgICAgICAgICAgICAgMC41ICsKICAgICAgICAgICAgMSk7CiAgfQogIGZ1bmN0aW9uIERUZShlKSB7CiAgICBsZXQgdCA9IFRpOwogICAgcmV0dXJuIChlIC89IDAuNSkgPCAxCiAgICAgID8gMC41ICogKGUgKiBlICogKCgodCAqPSAxLjUyNSkgKyAxKSAqIGUgLSB0KSkKICAgICAgOiAwLjUgKiAoKGUgLT0gMikgKiBlICogKCgodCAqPSAxLjUyNSkgKyAxKSAqIGUgKyB0KSArIDIpOwogIH0KICBmdW5jdGlvbiBxVGUoZSkgewogICAgbGV0IHQgPSBUaTsKICAgIHJldHVybiBlICogZSAqICgodCArIDEpICogZSAtIHQpOwogIH0KICBmdW5jdGlvbiB6VGUoZSkgewogICAgbGV0IHQgPSBUaTsKICAgIHJldHVybiAoZSAtPSAxKSAqIGUgKiAoKHQgKyAxKSAqIGUgKyB0KSArIDE7CiAgfQogIGZ1bmN0aW9uIEZUZShlKSB7CiAgICByZXR1cm4gZSA8IDEgLyAyLjc1CiAgICAgID8gNy41NjI1ICogZSAqIGUKICAgICAgOiBlIDwgMiAvIDIuNzUKICAgICAgPyA3LjU2MjUgKiAoZSAtPSAxLjUgLyAyLjc1KSAqIGUgKyAwLjc1CiAgICAgIDogZSA8IDIuNSAvIDIuNzUKICAgICAgPyA3LjU2MjUgKiAoZSAtPSAyLjI1IC8gMi43NSkgKiBlICsgMC45Mzc1CiAgICAgIDogNy41NjI1ICogKGUgLT0gMi42MjUgLyAyLjc1KSAqIGUgKyAwLjk4NDM3NTsKICB9CiAgZnVuY3Rpb24ga1RlKGUpIHsKICAgIHJldHVybiBlIDwgMSAvIDIuNzUKICAgICAgPyA3LjU2MjUgKiBlICogZQogICAgICA6IGUgPCAyIC8gMi43NQogICAgICA/IDIgLSAoNy41NjI1ICogKGUgLT0gMS41IC8gMi43NSkgKiBlICsgMC43NSkKICAgICAgOiBlIDwgMi41IC8gMi43NQogICAgICA/IDIgLSAoNy41NjI1ICogKGUgLT0gMi4yNSAvIDIuNzUpICogZSArIDAuOTM3NSkKICAgICAgOiAyIC0gKDcuNTYyNSAqIChlIC09IDIuNjI1IC8gMi43NSkgKiBlICsgMC45ODQzNzUpOwogIH0KICB2YXIgRWMsCiAgICBUaSwKICAgIG5UZSwKICAgIGlUZSwKICAgIGFUZSwKICAgIG9UZSwKICAgIGJiID0gVigoKSA9PiB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgKEVjID0gYmUodmIoKSkpLAogICAgICAgIChUaSA9IDEuNzAxNTgpLAogICAgICAgIChuVGUgPSAoMCwgRWMuZGVmYXVsdCkoMC4yNSwgMC4xLCAwLjI1LCAxKSksCiAgICAgICAgKGlUZSA9ICgwLCBFYy5kZWZhdWx0KSgwLjQyLCAwLCAxLCAxKSksCiAgICAgICAgKGFUZSA9ICgwLCBFYy5kZWZhdWx0KSgwLCAwLCAwLjU4LCAxKSksCiAgICAgICAgKG9UZSA9ICgwLCBFYy5kZWZhdWx0KSgwLjQyLCAwLCAwLjU4LCAxKSk7CiAgICB9KTsKICB2YXIgczQgPSB7fTsKICB1dChzNCwgewogICAgYXBwbHlFYXNpbmc6ICgpID0+IFdUZSwKICAgIGNyZWF0ZUJlemllckVhc2luZzogKCkgPT4gQlRlLAogICAgb3B0aW1pemVGbG9hdDogKCkgPT4gX2MsCiAgfSk7CiAgZnVuY3Rpb24gX2MoZSwgdCA9IDUsIHIgPSAxMCkgewogICAgbGV0IG4gPSBNYXRoLnBvdyhyLCB0KSwKICAgICAgaSA9IE51bWJlcihNYXRoLnJvdW5kKGUgKiBuKSAvIG4pOwogICAgcmV0dXJuIE1hdGguYWJzKGkpID4gMWUtNCA/IGkgOiAwOwogIH0KICBmdW5jdGlvbiBCVGUoZSkgewogICAgcmV0dXJuICgwLCBvNC5kZWZhdWx0KSguLi5lKTsKICB9CiAgZnVuY3Rpb24gV1RlKGUsIHQsIHIpIHsKICAgIHJldHVybiB0ID09PSAwCiAgICAgID8gMAogICAgICA6IHQgPT09IDEKICAgICAgPyAxCiAgICAgIDogX2MociA/ICh0ID4gMCA/IHIodCkgOiB0KSA6IHQgPiAwICYmIGUgJiYgVGNbZV0gPyBUY1tlXSh0KSA6IHQpOwogIH0KICB2YXIgbzQsCiAgICBNYiA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIGJiKCk7CiAgICAgIG80ID0gYmUodmIoKSk7CiAgICB9KTsKICB2YXIgbDQgPSB7fTsKICB1dChsNCwgewogICAgY3JlYXRlRWxlbWVudFN0YXRlOiAoKSA9PiB1NCwKICAgIGl4RWxlbWVudHM6ICgpID0+IHRfZSwKICAgIG1lcmdlQWN0aW9uU3RhdGU6ICgpID0+IEFiLAogIH0pOwogIGZ1bmN0aW9uIHU0KGUsIHQsIHIsIG4sIGkpIHsKICAgIGxldCBhID0KICAgICAgciA9PT0gVVRlID8gKDAsIFdzLmdldEluKShpLCBbImNvbmZpZyIsICJ0YXJnZXQiLCAib2JqZWN0SWQiXSkgOiBudWxsOwogICAgcmV0dXJuICgwLCBXcy5tZXJnZUluKShlLCBbbl0sIHsgaWQ6IG4sIHJlZjogdCwgcmVmSWQ6IGEsIHJlZlR5cGU6IHIgfSk7CiAgfQogIGZ1bmN0aW9uIEFiKGUsIHQsIHIsIG4sIGkpIHsKICAgIGxldCBhID0gbl9lKGkpOwogICAgcmV0dXJuICgwLCBXcy5tZXJnZUluKShlLCBbdCwgZV9lLCByXSwgbiwgYSk7CiAgfQogIGZ1bmN0aW9uIG5fZShlKSB7CiAgICBsZXQgeyBjb25maWc6IHQgfSA9IGU7CiAgICByZXR1cm4gcl9lLnJlZHVjZSgociwgbikgPT4gewogICAgICBsZXQgaSA9IG5bMF0sCiAgICAgICAgYSA9IG5bMV0sCiAgICAgICAgbyA9IHRbaV0sCiAgICAgICAgcyA9IHRbYV07CiAgICAgIHJldHVybiBvICE9IG51bGwgJiYgcyAhPSBudWxsICYmIChyW2FdID0gcyksIHI7CiAgICB9LCB7fSk7CiAgfQogIHZhciBXcywKICAgIHZKZSwKICAgIFVUZSwKICAgIGJKZSwKICAgIFhUZSwKICAgIFZUZSwKICAgIEhUZSwKICAgIEdUZSwKICAgIGpUZSwKICAgIFlUZSwKICAgIEtUZSwKICAgICRUZSwKICAgIFFUZSwKICAgIEpUZSwKICAgIFpUZSwKICAgIGM0LAogICAgZV9lLAogICAgdF9lLAogICAgcl9lLAogICAgZjQgPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBXcyA9IGJlKEJzKCkpOwogICAgICBrcigpOwogICAgICAoewogICAgICAgIEhUTUxfRUxFTUVOVDogdkplLAogICAgICAgIFBMQUlOX09CSkVDVDogVVRlLAogICAgICAgIEFCU1RSQUNUX05PREU6IGJKZSwKICAgICAgICBDT05GSUdfWF9WQUxVRTogWFRlLAogICAgICAgIENPTkZJR19ZX1ZBTFVFOiBWVGUsCiAgICAgICAgQ09ORklHX1pfVkFMVUU6IEhUZSwKICAgICAgICBDT05GSUdfVkFMVUU6IEdUZSwKICAgICAgICBDT05GSUdfWF9VTklUOiBqVGUsCiAgICAgICAgQ09ORklHX1lfVU5JVDogWVRlLAogICAgICAgIENPTkZJR19aX1VOSVQ6IEtUZSwKICAgICAgICBDT05GSUdfVU5JVDogJFRlLAogICAgICB9ID0geXIpLAogICAgICAgICh7CiAgICAgICAgICBJWDJfU0VTU0lPTl9TVE9QUEVEOiBRVGUsCiAgICAgICAgICBJWDJfSU5TVEFOQ0VfQURERUQ6IEpUZSwKICAgICAgICAgIElYMl9FTEVNRU5UX1NUQVRFX0NIQU5HRUQ6IFpUZSwKICAgICAgICB9ID0gWHQpLAogICAgICAgIChjNCA9IHt9KSwKICAgICAgICAoZV9lID0gInJlZlN0YXRlIiksCiAgICAgICAgKHRfZSA9IChlID0gYzQsIHQgPSB7fSkgPT4gewogICAgICAgICAgc3dpdGNoICh0LnR5cGUpIHsKICAgICAgICAgICAgY2FzZSBRVGU6CiAgICAgICAgICAgICAgcmV0dXJuIGM0OwogICAgICAgICAgICBjYXNlIEpUZTogewogICAgICAgICAgICAgIGxldCB7CiAgICAgICAgICAgICAgICAgIGVsZW1lbnRJZDogciwKICAgICAgICAgICAgICAgICAgZWxlbWVudDogbiwKICAgICAgICAgICAgICAgICAgb3JpZ2luOiBpLAogICAgICAgICAgICAgICAgICBhY3Rpb25JdGVtOiBhLAogICAgICAgICAgICAgICAgICByZWZUeXBlOiBvLAogICAgICAgICAgICAgICAgfSA9IHQucGF5bG9hZCwKICAgICAgICAgICAgICAgIHsgYWN0aW9uVHlwZUlkOiBzIH0gPSBhLAogICAgICAgICAgICAgICAgYyA9IGU7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICgwLCBXcy5nZXRJbikoYywgW3IsIG5dKSAhPT0gbiAmJiAoYyA9IHU0KGMsIG4sIG8sIHIsIGEpKSwKICAgICAgICAgICAgICAgIEFiKGMsIHIsIHMsIGksIGEpCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIFpUZTogewogICAgICAgICAgICAgIGxldCB7CiAgICAgICAgICAgICAgICBlbGVtZW50SWQ6IHIsCiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlSWQ6IG4sCiAgICAgICAgICAgICAgICBjdXJyZW50OiBpLAogICAgICAgICAgICAgICAgYWN0aW9uSXRlbTogYSwKICAgICAgICAgICAgICB9ID0gdC5wYXlsb2FkOwogICAgICAgICAgICAgIHJldHVybiBBYihlLCByLCBuLCBpLCBhKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiBlOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICByX2UgPSBbCiAgICAgICAgW1hUZSwgalRlXSwKICAgICAgICBbVlRlLCBZVGVdLAogICAgICAgIFtIVGUsIEtUZV0sCiAgICAgICAgW0dUZSwgJFRlXSwKICAgICAgXTsKICAgIH0pOwogIHZhciBwNCA9IEUoKEViKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRWIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogITAgfSk7CiAgICBmdW5jdGlvbiBpX2UoZSwgdCkgewogICAgICBmb3IgKHZhciByIGluIHQpCiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHsgZW51bWVyYWJsZTogITAsIGdldDogdFtyXSB9KTsKICAgIH0KICAgIGlfZShFYiwgewogICAgICBjbGVhclBsdWdpbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBmX2U7CiAgICAgIH0sCiAgICAgIGNyZWF0ZVBsdWdpbkluc3RhbmNlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHVfZTsKICAgICAgfSwKICAgICAgZ2V0UGx1Z2luQ29uZmlnOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIGFfZTsKICAgICAgfSwKICAgICAgZ2V0UGx1Z2luRGVzdGluYXRpb246IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gY19lOwogICAgICB9LAogICAgICBnZXRQbHVnaW5EdXJhdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBvX2U7CiAgICAgIH0sCiAgICAgIGdldFBsdWdpbk9yaWdpbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBzX2U7CiAgICAgIH0sCiAgICAgIHJlbmRlclBsdWdpbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBsX2U7CiAgICAgIH0sCiAgICB9KTsKICAgIHZhciBhX2UgPSAoZSkgPT4gZS52YWx1ZSwKICAgICAgb19lID0gKGUsIHQpID0+IHsKICAgICAgICBpZiAodC5jb25maWcuZHVyYXRpb24gIT09ICJhdXRvIikgcmV0dXJuIG51bGw7CiAgICAgICAgbGV0IHIgPSBwYXJzZUZsb2F0KGUuZ2V0QXR0cmlidXRlKCJkYXRhLWR1cmF0aW9uIikpOwogICAgICAgIHJldHVybiByID4gMAogICAgICAgICAgPyByICogMWUzCiAgICAgICAgICA6IHBhcnNlRmxvYXQoZS5nZXRBdHRyaWJ1dGUoImRhdGEtZGVmYXVsdC1kdXJhdGlvbiIpKSAqIDFlMzsKICAgICAgfSwKICAgICAgc19lID0gKGUpID0+IGUgfHwgeyB2YWx1ZTogMCB9LAogICAgICBjX2UgPSAoZSkgPT4gKHsgdmFsdWU6IGUudmFsdWUgfSksCiAgICAgIHVfZSA9IChlKSA9PiB7CiAgICAgICAgbGV0IHQgPSB3aW5kb3cuV2ViZmxvdy5yZXF1aXJlKCJsb3R0aWUiKS5jcmVhdGVJbnN0YW5jZShlKTsKICAgICAgICByZXR1cm4gdC5zdG9wKCksIHQuc2V0U3ViZnJhbWUoITApLCB0OwogICAgICB9LAogICAgICBsX2UgPSAoZSwgdCwgcikgPT4gewogICAgICAgIGlmICghZSkgcmV0dXJuOwogICAgICAgIGxldCBuID0gdFtyLmFjdGlvblR5cGVJZF0udmFsdWUgLyAxMDA7CiAgICAgICAgZS5nb1RvRnJhbWUoZS5mcmFtZXMgKiBuKTsKICAgICAgfSwKICAgICAgZl9lID0gKGUpID0+IHsKICAgICAgICB3aW5kb3cuV2ViZmxvdy5yZXF1aXJlKCJsb3R0aWUiKS5jcmVhdGVJbnN0YW5jZShlKS5zdG9wKCk7CiAgICAgIH07CiAgfSk7CiAgdmFyIGg0ID0gRSgoVGIpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUYiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsKICAgIGZ1bmN0aW9uIHBfZShlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgaW4gdCkKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgeyBlbnVtZXJhYmxlOiAhMCwgZ2V0OiB0W3JdIH0pOwogICAgfQogICAgcF9lKFRiLCB7CiAgICAgIGNsZWFyUGx1Z2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIEVfZTsKICAgICAgfSwKICAgICAgY3JlYXRlUGx1Z2luSW5zdGFuY2U6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gTV9lOwogICAgICB9LAogICAgICBnZXRQbHVnaW5Db25maWc6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4geV9lOwogICAgICB9LAogICAgICBnZXRQbHVnaW5EZXN0aW5hdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBiX2U7CiAgICAgIH0sCiAgICAgIGdldFBsdWdpbkR1cmF0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIGdfZTsKICAgICAgfSwKICAgICAgZ2V0UGx1Z2luT3JpZ2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHZfZTsKICAgICAgfSwKICAgICAgcmVuZGVyUGx1Z2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIEFfZTsKICAgICAgfSwKICAgIH0pOwogICAgdmFyIGRfZSA9IChlKSA9PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS13LWlkPSIke2V9Il1gKSwKICAgICAgaF9lID0gKCkgPT4gd2luZG93LldlYmZsb3cucmVxdWlyZSgic3BsaW5lIiksCiAgICAgIG1fZSA9IChlLCB0KSA9PiBlLmZpbHRlcigocikgPT4gIXQuaW5jbHVkZXMocikpLAogICAgICB5X2UgPSAoZSwgdCkgPT4gZS52YWx1ZVt0XSwKICAgICAgZ19lID0gKCkgPT4gbnVsbCwKICAgICAgZDQgPSBPYmplY3QuZnJlZXplKHsKICAgICAgICBwb3NpdGlvblg6IDAsCiAgICAgICAgcG9zaXRpb25ZOiAwLAogICAgICAgIHBvc2l0aW9uWjogMCwKICAgICAgICByb3RhdGlvblg6IDAsCiAgICAgICAgcm90YXRpb25ZOiAwLAogICAgICAgIHJvdGF0aW9uWjogMCwKICAgICAgICBzY2FsZVg6IDEsCiAgICAgICAgc2NhbGVZOiAxLAogICAgICAgIHNjYWxlWjogMSwKICAgICAgfSksCiAgICAgIHZfZSA9IChlLCB0KSA9PiB7CiAgICAgICAgbGV0IHIgPSB0LmNvbmZpZy52YWx1ZSwKICAgICAgICAgIG4gPSBPYmplY3Qua2V5cyhyKTsKICAgICAgICBpZiAoZSkgewogICAgICAgICAgbGV0IGEgPSBPYmplY3Qua2V5cyhlKSwKICAgICAgICAgICAgbyA9IG1fZShuLCBhKTsKICAgICAgICAgIHJldHVybiBvLmxlbmd0aCA/IG8ucmVkdWNlKChjLCB1KSA9PiAoKGNbdV0gPSBkNFt1XSksIGMpLCBlKSA6IGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuLnJlZHVjZSgoYSwgbykgPT4gKChhW29dID0gZDRbb10pLCBhKSwge30pOwogICAgICB9LAogICAgICBiX2UgPSAoZSkgPT4gZS52YWx1ZSwKICAgICAgTV9lID0gKGUsIHQpID0+IHsKICAgICAgICBsZXQgciA9IHQ/LmNvbmZpZz8udGFyZ2V0Py5wbHVnaW5FbGVtZW50OwogICAgICAgIHJldHVybiByID8gZF9lKHIpIDogbnVsbDsKICAgICAgfSwKICAgICAgQV9lID0gKGUsIHQsIHIpID0+IHsKICAgICAgICBsZXQgbiA9IGhfZSgpLAogICAgICAgICAgaSA9IG4uZ2V0SW5zdGFuY2UoZSksCiAgICAgICAgICBhID0gci5jb25maWcudGFyZ2V0Lm9iamVjdElkLAogICAgICAgICAgbyA9IChzKSA9PiB7CiAgICAgICAgICAgIGlmICghcykKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3BsaW5lIGFwcCBwYXNzZWQgdG8gcmVuZGVyU3BsaW5lIik7CiAgICAgICAgICAgIGxldCBjID0gYSAmJiBzLmZpbmRPYmplY3RCeUlkKGEpOwogICAgICAgICAgICBpZiAoIWMpIHJldHVybjsKICAgICAgICAgICAgbGV0IHsgUExVR0lOX1NQTElORTogdSB9ID0gdDsKICAgICAgICAgICAgdS5wb3NpdGlvblggIT0gbnVsbCAmJiAoYy5wb3NpdGlvbi54ID0gdS5wb3NpdGlvblgpLAogICAgICAgICAgICAgIHUucG9zaXRpb25ZICE9IG51bGwgJiYgKGMucG9zaXRpb24ueSA9IHUucG9zaXRpb25ZKSwKICAgICAgICAgICAgICB1LnBvc2l0aW9uWiAhPSBudWxsICYmIChjLnBvc2l0aW9uLnogPSB1LnBvc2l0aW9uWiksCiAgICAgICAgICAgICAgdS5yb3RhdGlvblggIT0gbnVsbCAmJiAoYy5yb3RhdGlvbi54ID0gdS5yb3RhdGlvblgpLAogICAgICAgICAgICAgIHUucm90YXRpb25ZICE9IG51bGwgJiYgKGMucm90YXRpb24ueSA9IHUucm90YXRpb25ZKSwKICAgICAgICAgICAgICB1LnJvdGF0aW9uWiAhPSBudWxsICYmIChjLnJvdGF0aW9uLnogPSB1LnJvdGF0aW9uWiksCiAgICAgICAgICAgICAgdS5zY2FsZVggIT0gbnVsbCAmJiAoYy5zY2FsZS54ID0gdS5zY2FsZVgpLAogICAgICAgICAgICAgIHUuc2NhbGVZICE9IG51bGwgJiYgKGMuc2NhbGUueSA9IHUuc2NhbGVZKSwKICAgICAgICAgICAgICB1LnNjYWxlWiAhPSBudWxsICYmIChjLnNjYWxlLnogPSB1LnNjYWxlWik7CiAgICAgICAgICB9OwogICAgICAgIGkgPyBvKGkuc3BsaW5lKSA6IG4uc2V0TG9hZEhhbmRsZXIoZSwgbyk7CiAgICAgIH0sCiAgICAgIEVfZSA9ICgpID0+IG51bGw7CiAgfSk7CiAgdmFyIG00ID0gRSgoT2IpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsKICAgIGZ1bmN0aW9uIFRfZShlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgaW4gdCkKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgeyBlbnVtZXJhYmxlOiAhMCwgZ2V0OiB0W3JdIH0pOwogICAgfQogICAgVF9lKE9iLCB7CiAgICAgIGNsZWFyUGx1Z2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIE5fZTsKICAgICAgfSwKICAgICAgY3JlYXRlUGx1Z2luSW5zdGFuY2U6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gSV9lOwogICAgICB9LAogICAgICBnZXRQbHVnaW5Db25maWc6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gT19lOwogICAgICB9LAogICAgICBnZXRQbHVnaW5EZXN0aW5hdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBSX2U7CiAgICAgIH0sCiAgICAgIGdldFBsdWdpbkR1cmF0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHhfZTsKICAgICAgfSwKICAgICAgZ2V0UGx1Z2luT3JpZ2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIENfZTsKICAgICAgfSwKICAgICAgcmVuZGVyUGx1Z2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIExfZTsKICAgICAgfSwKICAgIH0pOwogICAgdmFyIF9iID0gIi0td2Ytcml2ZS1maXQiLAogICAgICBTYiA9ICItLXdmLXJpdmUtYWxpZ25tZW50IiwKICAgICAgX19lID0gKGUpID0+IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXctaWQ9IiR7ZX0iXWApLAogICAgICBTX2UgPSAoKSA9PiB3aW5kb3cuV2ViZmxvdy5yZXF1aXJlKCJyaXZlIiksCiAgICAgIE9fZSA9IChlLCB0KSA9PiBlLnZhbHVlLmlucHV0c1t0XSwKICAgICAgeF9lID0gKCkgPT4gbnVsbCwKICAgICAgQ19lID0gKGUsIHQpID0+IHsKICAgICAgICBpZiAoZSkgcmV0dXJuIGU7CiAgICAgICAgbGV0IHIgPSB7fSwKICAgICAgICAgIHsgaW5wdXRzOiBuID0ge30gfSA9IHQuY29uZmlnLnZhbHVlOwogICAgICAgIGZvciAobGV0IGkgaW4gbikgbltpXSA9PSBudWxsICYmIChyW2ldID0gMCk7CiAgICAgICAgcmV0dXJuIHI7CiAgICAgIH0sCiAgICAgIFJfZSA9IChlKSA9PiBlLnZhbHVlLmlucHV0cyA/PyB7fSwKICAgICAgSV9lID0gKGUsIHQpID0+IHsKICAgICAgICBpZiAoKHQuY29uZmlnPy50YXJnZXQ/LnNlbGVjdG9yR3VpZHMgfHwgW10pLmxlbmd0aCA+IDApIHJldHVybiBlOwogICAgICAgIGxldCBuID0gdD8uY29uZmlnPy50YXJnZXQ/LnBsdWdpbkVsZW1lbnQ7CiAgICAgICAgcmV0dXJuIG4gPyBfX2UobikgOiBudWxsOwogICAgICB9LAogICAgICBMX2UgPSAoZSwgeyBQTFVHSU5fUklWRTogdCB9LCByKSA9PiB7CiAgICAgICAgbGV0IG4gPSBTX2UoKSwKICAgICAgICAgIGkgPSBuLmdldEluc3RhbmNlKGUpLAogICAgICAgICAgYSA9IG4ucml2ZS5TdGF0ZU1hY2hpbmVJbnB1dFR5cGUsCiAgICAgICAgICB7IG5hbWU6IG8sIGlucHV0czogcyA9IHt9IH0gPSByLmNvbmZpZy52YWx1ZSB8fCB7fTsKICAgICAgICBmdW5jdGlvbiBjKHUpIHsKICAgICAgICAgIGlmICh1LmxvYWRlZCkgbCgpOwogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGxldCBwID0gKCkgPT4gewogICAgICAgICAgICAgIGwoKSwgdT8ub2ZmKCJsb2FkIiwgcCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHU/Lm9uKCJsb2FkIiwgcCk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBsKCkgewogICAgICAgICAgICBsZXQgcCA9IHUuc3RhdGVNYWNoaW5lSW5wdXRzKG8pOwogICAgICAgICAgICBpZiAocCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgaWYgKCh1LmlzUGxheWluZyB8fCB1LnBsYXkobywgITEpLCBfYiBpbiBzIHx8IFNiIGluIHMpKSB7CiAgICAgICAgICAgICAgICBsZXQgZCA9IHUubGF5b3V0LAogICAgICAgICAgICAgICAgICBoID0gc1tfYl0gPz8gZC5maXQsCiAgICAgICAgICAgICAgICAgIG0gPSBzW1NiXSA/PyBkLmFsaWdubWVudDsKICAgICAgICAgICAgICAgIChoICE9PSBkLmZpdCB8fCBtICE9PSBkLmFsaWdubWVudCkgJiYKICAgICAgICAgICAgICAgICAgKHUubGF5b3V0ID0gZC5jb3B5V2l0aCh7IGZpdDogaCwgYWxpZ25tZW50OiBtIH0pKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZm9yIChsZXQgZCBpbiBzKSB7CiAgICAgICAgICAgICAgICBpZiAoZCA9PT0gX2IgfHwgZCA9PT0gU2IpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbGV0IGggPSBwLmZpbmQoKG0pID0+IG0ubmFtZSA9PT0gZCk7CiAgICAgICAgICAgICAgICBpZiAoaCAhPSBudWxsKQogICAgICAgICAgICAgICAgICBzd2l0Y2ggKGgudHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgYS5Cb29sZWFuOiB7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoc1tkXSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtID0gISFzW2RdOwogICAgICAgICAgICAgICAgICAgICAgICBoLnZhbHVlID0gbTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjYXNlIGEuTnVtYmVyOiB7CiAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IHRbZF07CiAgICAgICAgICAgICAgICAgICAgICBtICE9IG51bGwgJiYgKGgudmFsdWUgPSBtKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjYXNlIGEuVHJpZ2dlcjogewogICAgICAgICAgICAgICAgICAgICAgc1tkXSAmJiBoLmZpcmUoKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpPy5yaXZlID8gYyhpLnJpdmUpIDogbi5zZXRMb2FkSGFuZGxlcihlLCBjKTsKICAgICAgfSwKICAgICAgTl9lID0gKGUsIHQpID0+IG51bGw7CiAgfSk7CiAgdmFyIENiID0gRSgoeGIpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4YiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4YiwgIm5vcm1hbGl6ZUNvbG9yIiwgewogICAgICBlbnVtZXJhYmxlOiAhMCwKICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHdfZTsKICAgICAgfSwKICAgIH0pOwogICAgdmFyIHk0ID0gewogICAgICBhbGljZWJsdWU6ICIjRjBGOEZGIiwKICAgICAgYW50aXF1ZXdoaXRlOiAiI0ZBRUJENyIsCiAgICAgIGFxdWE6ICIjMDBGRkZGIiwKICAgICAgYXF1YW1hcmluZTogIiM3RkZGRDQiLAogICAgICBhenVyZTogIiNGMEZGRkYiLAogICAgICBiZWlnZTogIiNGNUY1REMiLAogICAgICBiaXNxdWU6ICIjRkZFNEM0IiwKICAgICAgYmxhY2s6ICIjMDAwMDAwIiwKICAgICAgYmxhbmNoZWRhbG1vbmQ6ICIjRkZFQkNEIiwKICAgICAgYmx1ZTogIiMwMDAwRkYiLAogICAgICBibHVldmlvbGV0OiAiIzhBMkJFMiIsCiAgICAgIGJyb3duOiAiI0E1MkEyQSIsCiAgICAgIGJ1cmx5d29vZDogIiNERUI4ODciLAogICAgICBjYWRldGJsdWU6ICIjNUY5RUEwIiwKICAgICAgY2hhcnRyZXVzZTogIiM3RkZGMDAiLAogICAgICBjaG9jb2xhdGU6ICIjRDI2OTFFIiwKICAgICAgY29yYWw6ICIjRkY3RjUwIiwKICAgICAgY29ybmZsb3dlcmJsdWU6ICIjNjQ5NUVEIiwKICAgICAgY29ybnNpbGs6ICIjRkZGOERDIiwKICAgICAgY3JpbXNvbjogIiNEQzE0M0MiLAogICAgICBjeWFuOiAiIzAwRkZGRiIsCiAgICAgIGRhcmtibHVlOiAiIzAwMDA4QiIsCiAgICAgIGRhcmtjeWFuOiAiIzAwOEI4QiIsCiAgICAgIGRhcmtnb2xkZW5yb2Q6ICIjQjg4NjBCIiwKICAgICAgZGFya2dyYXk6ICIjQTlBOUE5IiwKICAgICAgZGFya2dyZWVuOiAiIzAwNjQwMCIsCiAgICAgIGRhcmtncmV5OiAiI0E5QTlBOSIsCiAgICAgIGRhcmtraGFraTogIiNCREI3NkIiLAogICAgICBkYXJrbWFnZW50YTogIiM4QjAwOEIiLAogICAgICBkYXJrb2xpdmVncmVlbjogIiM1NTZCMkYiLAogICAgICBkYXJrb3JhbmdlOiAiI0ZGOEMwMCIsCiAgICAgIGRhcmtvcmNoaWQ6ICIjOTkzMkNDIiwKICAgICAgZGFya3JlZDogIiM4QjAwMDAiLAogICAgICBkYXJrc2FsbW9uOiAiI0U5OTY3QSIsCiAgICAgIGRhcmtzZWFncmVlbjogIiM4RkJDOEYiLAogICAgICBkYXJrc2xhdGVibHVlOiAiIzQ4M0Q4QiIsCiAgICAgIGRhcmtzbGF0ZWdyYXk6ICIjMkY0RjRGIiwKICAgICAgZGFya3NsYXRlZ3JleTogIiMyRjRGNEYiLAogICAgICBkYXJrdHVycXVvaXNlOiAiIzAwQ0VEMSIsCiAgICAgIGRhcmt2aW9sZXQ6ICIjOTQwMEQzIiwKICAgICAgZGVlcHBpbms6ICIjRkYxNDkzIiwKICAgICAgZGVlcHNreWJsdWU6ICIjMDBCRkZGIiwKICAgICAgZGltZ3JheTogIiM2OTY5NjkiLAogICAgICBkaW1ncmV5OiAiIzY5Njk2OSIsCiAgICAgIGRvZGdlcmJsdWU6ICIjMUU5MEZGIiwKICAgICAgZmlyZWJyaWNrOiAiI0IyMjIyMiIsCiAgICAgIGZsb3JhbHdoaXRlOiAiI0ZGRkFGMCIsCiAgICAgIGZvcmVzdGdyZWVuOiAiIzIyOEIyMiIsCiAgICAgIGZ1Y2hzaWE6ICIjRkYwMEZGIiwKICAgICAgZ2FpbnNib3JvOiAiI0RDRENEQyIsCiAgICAgIGdob3N0d2hpdGU6ICIjRjhGOEZGIiwKICAgICAgZ29sZDogIiNGRkQ3MDAiLAogICAgICBnb2xkZW5yb2Q6ICIjREFBNTIwIiwKICAgICAgZ3JheTogIiM4MDgwODAiLAogICAgICBncmVlbjogIiMwMDgwMDAiLAogICAgICBncmVlbnllbGxvdzogIiNBREZGMkYiLAogICAgICBncmV5OiAiIzgwODA4MCIsCiAgICAgIGhvbmV5ZGV3OiAiI0YwRkZGMCIsCiAgICAgIGhvdHBpbms6ICIjRkY2OUI0IiwKICAgICAgaW5kaWFucmVkOiAiI0NENUM1QyIsCiAgICAgIGluZGlnbzogIiM0QjAwODIiLAogICAgICBpdm9yeTogIiNGRkZGRjAiLAogICAgICBraGFraTogIiNGMEU2OEMiLAogICAgICBsYXZlbmRlcjogIiNFNkU2RkEiLAogICAgICBsYXZlbmRlcmJsdXNoOiAiI0ZGRjBGNSIsCiAgICAgIGxhd25ncmVlbjogIiM3Q0ZDMDAiLAogICAgICBsZW1vbmNoaWZmb246ICIjRkZGQUNEIiwKICAgICAgbGlnaHRibHVlOiAiI0FERDhFNiIsCiAgICAgIGxpZ2h0Y29yYWw6ICIjRjA4MDgwIiwKICAgICAgbGlnaHRjeWFuOiAiI0UwRkZGRiIsCiAgICAgIGxpZ2h0Z29sZGVucm9keWVsbG93OiAiI0ZBRkFEMiIsCiAgICAgIGxpZ2h0Z3JheTogIiNEM0QzRDMiLAogICAgICBsaWdodGdyZWVuOiAiIzkwRUU5MCIsCiAgICAgIGxpZ2h0Z3JleTogIiNEM0QzRDMiLAogICAgICBsaWdodHBpbms6ICIjRkZCNkMxIiwKICAgICAgbGlnaHRzYWxtb246ICIjRkZBMDdBIiwKICAgICAgbGlnaHRzZWFncmVlbjogIiMyMEIyQUEiLAogICAgICBsaWdodHNreWJsdWU6ICIjODdDRUZBIiwKICAgICAgbGlnaHRzbGF0ZWdyYXk6ICIjNzc4ODk5IiwKICAgICAgbGlnaHRzbGF0ZWdyZXk6ICIjNzc4ODk5IiwKICAgICAgbGlnaHRzdGVlbGJsdWU6ICIjQjBDNERFIiwKICAgICAgbGlnaHR5ZWxsb3c6ICIjRkZGRkUwIiwKICAgICAgbGltZTogIiMwMEZGMDAiLAogICAgICBsaW1lZ3JlZW46ICIjMzJDRDMyIiwKICAgICAgbGluZW46ICIjRkFGMEU2IiwKICAgICAgbWFnZW50YTogIiNGRjAwRkYiLAogICAgICBtYXJvb246ICIjODAwMDAwIiwKICAgICAgbWVkaXVtYXF1YW1hcmluZTogIiM2NkNEQUEiLAogICAgICBtZWRpdW1ibHVlOiAiIzAwMDBDRCIsCiAgICAgIG1lZGl1bW9yY2hpZDogIiNCQTU1RDMiLAogICAgICBtZWRpdW1wdXJwbGU6ICIjOTM3MERCIiwKICAgICAgbWVkaXVtc2VhZ3JlZW46ICIjM0NCMzcxIiwKICAgICAgbWVkaXVtc2xhdGVibHVlOiAiIzdCNjhFRSIsCiAgICAgIG1lZGl1bXNwcmluZ2dyZWVuOiAiIzAwRkE5QSIsCiAgICAgIG1lZGl1bXR1cnF1b2lzZTogIiM0OEQxQ0MiLAogICAgICBtZWRpdW12aW9sZXRyZWQ6ICIjQzcxNTg1IiwKICAgICAgbWlkbmlnaHRibHVlOiAiIzE5MTk3MCIsCiAgICAgIG1pbnRjcmVhbTogIiNGNUZGRkEiLAogICAgICBtaXN0eXJvc2U6ICIjRkZFNEUxIiwKICAgICAgbW9jY2FzaW46ICIjRkZFNEI1IiwKICAgICAgbmF2YWpvd2hpdGU6ICIjRkZERUFEIiwKICAgICAgbmF2eTogIiMwMDAwODAiLAogICAgICBvbGRsYWNlOiAiI0ZERjVFNiIsCiAgICAgIG9saXZlOiAiIzgwODAwMCIsCiAgICAgIG9saXZlZHJhYjogIiM2QjhFMjMiLAogICAgICBvcmFuZ2U6ICIjRkZBNTAwIiwKICAgICAgb3JhbmdlcmVkOiAiI0ZGNDUwMCIsCiAgICAgIG9yY2hpZDogIiNEQTcwRDYiLAogICAgICBwYWxlZ29sZGVucm9kOiAiI0VFRThBQSIsCiAgICAgIHBhbGVncmVlbjogIiM5OEZCOTgiLAogICAgICBwYWxldHVycXVvaXNlOiAiI0FGRUVFRSIsCiAgICAgIHBhbGV2aW9sZXRyZWQ6ICIjREI3MDkzIiwKICAgICAgcGFwYXlhd2hpcDogIiNGRkVGRDUiLAogICAgICBwZWFjaHB1ZmY6ICIjRkZEQUI5IiwKICAgICAgcGVydTogIiNDRDg1M0YiLAogICAgICBwaW5rOiAiI0ZGQzBDQiIsCiAgICAgIHBsdW06ICIjRERBMEREIiwKICAgICAgcG93ZGVyYmx1ZTogIiNCMEUwRTYiLAogICAgICBwdXJwbGU6ICIjODAwMDgwIiwKICAgICAgcmViZWNjYXB1cnBsZTogIiM2NjMzOTkiLAogICAgICByZWQ6ICIjRkYwMDAwIiwKICAgICAgcm9zeWJyb3duOiAiI0JDOEY4RiIsCiAgICAgIHJveWFsYmx1ZTogIiM0MTY5RTEiLAogICAgICBzYWRkbGVicm93bjogIiM4QjQ1MTMiLAogICAgICBzYWxtb246ICIjRkE4MDcyIiwKICAgICAgc2FuZHlicm93bjogIiNGNEE0NjAiLAogICAgICBzZWFncmVlbjogIiMyRThCNTciLAogICAgICBzZWFzaGVsbDogIiNGRkY1RUUiLAogICAgICBzaWVubmE6ICIjQTA1MjJEIiwKICAgICAgc2lsdmVyOiAiI0MwQzBDMCIsCiAgICAgIHNreWJsdWU6ICIjODdDRUVCIiwKICAgICAgc2xhdGVibHVlOiAiIzZBNUFDRCIsCiAgICAgIHNsYXRlZ3JheTogIiM3MDgwOTAiLAogICAgICBzbGF0ZWdyZXk6ICIjNzA4MDkwIiwKICAgICAgc25vdzogIiNGRkZBRkEiLAogICAgICBzcHJpbmdncmVlbjogIiMwMEZGN0YiLAogICAgICBzdGVlbGJsdWU6ICIjNDY4MkI0IiwKICAgICAgdGFuOiAiI0QyQjQ4QyIsCiAgICAgIHRlYWw6ICIjMDA4MDgwIiwKICAgICAgdGhpc3RsZTogIiNEOEJGRDgiLAogICAgICB0b21hdG86ICIjRkY2MzQ3IiwKICAgICAgdHVycXVvaXNlOiAiIzQwRTBEMCIsCiAgICAgIHZpb2xldDogIiNFRTgyRUUiLAogICAgICB3aGVhdDogIiNGNURFQjMiLAogICAgICB3aGl0ZTogIiNGRkZGRkYiLAogICAgICB3aGl0ZXNtb2tlOiAiI0Y1RjVGNSIsCiAgICAgIHllbGxvdzogIiNGRkZGMDAiLAogICAgICB5ZWxsb3dncmVlbjogIiM5QUNEMzIiLAogICAgfTsKICAgIGZ1bmN0aW9uIHdfZShlKSB7CiAgICAgIGxldCB0LAogICAgICAgIHIsCiAgICAgICAgbiwKICAgICAgICBpID0gMSwKICAgICAgICBhID0gZS5yZXBsYWNlKC9ccy9nLCAiIikudG9Mb3dlckNhc2UoKSwKICAgICAgICBzID0gKHR5cGVvZiB5NFthXSA9PSAic3RyaW5nIiA/IHk0W2FdLnRvTG93ZXJDYXNlKCkgOiBudWxsKSB8fCBhOwogICAgICBpZiAocy5zdGFydHNXaXRoKCIjIikpIHsKICAgICAgICBsZXQgYyA9IHMuc3Vic3RyaW5nKDEpOwogICAgICAgIGMubGVuZ3RoID09PSAzIHx8IGMubGVuZ3RoID09PSA0CiAgICAgICAgICA/ICgodCA9IHBhcnNlSW50KGNbMF0gKyBjWzBdLCAxNikpLAogICAgICAgICAgICAociA9IHBhcnNlSW50KGNbMV0gKyBjWzFdLCAxNikpLAogICAgICAgICAgICAobiA9IHBhcnNlSW50KGNbMl0gKyBjWzJdLCAxNikpLAogICAgICAgICAgICBjLmxlbmd0aCA9PT0gNCAmJiAoaSA9IHBhcnNlSW50KGNbM10gKyBjWzNdLCAxNikgLyAyNTUpKQogICAgICAgICAgOiAoYy5sZW5ndGggPT09IDYgfHwgYy5sZW5ndGggPT09IDgpICYmCiAgICAgICAgICAgICgodCA9IHBhcnNlSW50KGMuc3Vic3RyaW5nKDAsIDIpLCAxNikpLAogICAgICAgICAgICAociA9IHBhcnNlSW50KGMuc3Vic3RyaW5nKDIsIDQpLCAxNikpLAogICAgICAgICAgICAobiA9IHBhcnNlSW50KGMuc3Vic3RyaW5nKDQsIDYpLCAxNikpLAogICAgICAgICAgICBjLmxlbmd0aCA9PT0gOCAmJiAoaSA9IHBhcnNlSW50KGMuc3Vic3RyaW5nKDYsIDgpLCAxNikgLyAyNTUpKTsKICAgICAgfSBlbHNlIGlmIChzLnN0YXJ0c1dpdGgoInJnYmEiKSkgewogICAgICAgIGxldCBjID0gcy5tYXRjaCgvcmdiYVwoKFteKV0rKVwpLylbMV0uc3BsaXQoIiwiKTsKICAgICAgICAodCA9IHBhcnNlSW50KGNbMF0sIDEwKSksCiAgICAgICAgICAociA9IHBhcnNlSW50KGNbMV0sIDEwKSksCiAgICAgICAgICAobiA9IHBhcnNlSW50KGNbMl0sIDEwKSksCiAgICAgICAgICAoaSA9IHBhcnNlRmxvYXQoY1szXSkpOwogICAgICB9IGVsc2UgaWYgKHMuc3RhcnRzV2l0aCgicmdiIikpIHsKICAgICAgICBsZXQgYyA9IHMubWF0Y2goL3JnYlwoKFteKV0rKVwpLylbMV0uc3BsaXQoIiwiKTsKICAgICAgICAodCA9IHBhcnNlSW50KGNbMF0sIDEwKSksCiAgICAgICAgICAociA9IHBhcnNlSW50KGNbMV0sIDEwKSksCiAgICAgICAgICAobiA9IHBhcnNlSW50KGNbMl0sIDEwKSk7CiAgICAgIH0gZWxzZSBpZiAocy5zdGFydHNXaXRoKCJoc2xhIikpIHsKICAgICAgICBsZXQgYyA9IHMubWF0Y2goL2hzbGFcKChbXildKylcKS8pWzFdLnNwbGl0KCIsIiksCiAgICAgICAgICB1ID0gcGFyc2VGbG9hdChjWzBdKSwKICAgICAgICAgIGwgPSBwYXJzZUZsb2F0KGNbMV0ucmVwbGFjZSgiJSIsICIiKSkgLyAxMDAsCiAgICAgICAgICBwID0gcGFyc2VGbG9hdChjWzJdLnJlcGxhY2UoIiUiLCAiIikpIC8gMTAwOwogICAgICAgIGkgPSBwYXJzZUZsb2F0KGNbM10pOwogICAgICAgIGxldCBkID0gKDEgLSBNYXRoLmFicygyICogcCAtIDEpKSAqIGwsCiAgICAgICAgICBoID0gZCAqICgxIC0gTWF0aC5hYnMoKCh1IC8gNjApICUgMikgLSAxKSksCiAgICAgICAgICBtID0gcCAtIGQgLyAyLAogICAgICAgICAgdiwKICAgICAgICAgIHksCiAgICAgICAgICBnOwogICAgICAgIHUgPj0gMCAmJiB1IDwgNjAKICAgICAgICAgID8gKCh2ID0gZCksICh5ID0gaCksIChnID0gMCkpCiAgICAgICAgICA6IHUgPj0gNjAgJiYgdSA8IDEyMAogICAgICAgICAgPyAoKHYgPSBoKSwgKHkgPSBkKSwgKGcgPSAwKSkKICAgICAgICAgIDogdSA+PSAxMjAgJiYgdSA8IDE4MAogICAgICAgICAgPyAoKHYgPSAwKSwgKHkgPSBkKSwgKGcgPSBoKSkKICAgICAgICAgIDogdSA+PSAxODAgJiYgdSA8IDI0MAogICAgICAgICAgPyAoKHYgPSAwKSwgKHkgPSBoKSwgKGcgPSBkKSkKICAgICAgICAgIDogdSA+PSAyNDAgJiYgdSA8IDMwMAogICAgICAgICAgPyAoKHYgPSBoKSwgKHkgPSAwKSwgKGcgPSBkKSkKICAgICAgICAgIDogKCh2ID0gZCksICh5ID0gMCksIChnID0gaCkpLAogICAgICAgICAgKHQgPSBNYXRoLnJvdW5kKCh2ICsgbSkgKiAyNTUpKSwKICAgICAgICAgIChyID0gTWF0aC5yb3VuZCgoeSArIG0pICogMjU1KSksCiAgICAgICAgICAobiA9IE1hdGgucm91bmQoKGcgKyBtKSAqIDI1NSkpOwogICAgICB9IGVsc2UgaWYgKHMuc3RhcnRzV2l0aCgiaHNsIikpIHsKICAgICAgICBsZXQgYyA9IHMubWF0Y2goL2hzbFwoKFteKV0rKVwpLylbMV0uc3BsaXQoIiwiKSwKICAgICAgICAgIHUgPSBwYXJzZUZsb2F0KGNbMF0pLAogICAgICAgICAgbCA9IHBhcnNlRmxvYXQoY1sxXS5yZXBsYWNlKCIlIiwgIiIpKSAvIDEwMCwKICAgICAgICAgIHAgPSBwYXJzZUZsb2F0KGNbMl0ucmVwbGFjZSgiJSIsICIiKSkgLyAxMDAsCiAgICAgICAgICBkID0gKDEgLSBNYXRoLmFicygyICogcCAtIDEpKSAqIGwsCiAgICAgICAgICBoID0gZCAqICgxIC0gTWF0aC5hYnMoKCh1IC8gNjApICUgMikgLSAxKSksCiAgICAgICAgICBtID0gcCAtIGQgLyAyLAogICAgICAgICAgdiwKICAgICAgICAgIHksCiAgICAgICAgICBnOwogICAgICAgIHUgPj0gMCAmJiB1IDwgNjAKICAgICAgICAgID8gKCh2ID0gZCksICh5ID0gaCksIChnID0gMCkpCiAgICAgICAgICA6IHUgPj0gNjAgJiYgdSA8IDEyMAogICAgICAgICAgPyAoKHYgPSBoKSwgKHkgPSBkKSwgKGcgPSAwKSkKICAgICAgICAgIDogdSA+PSAxMjAgJiYgdSA8IDE4MAogICAgICAgICAgPyAoKHYgPSAwKSwgKHkgPSBkKSwgKGcgPSBoKSkKICAgICAgICAgIDogdSA+PSAxODAgJiYgdSA8IDI0MAogICAgICAgICAgPyAoKHYgPSAwKSwgKHkgPSBoKSwgKGcgPSBkKSkKICAgICAgICAgIDogdSA+PSAyNDAgJiYgdSA8IDMwMAogICAgICAgICAgPyAoKHYgPSBoKSwgKHkgPSAwKSwgKGcgPSBkKSkKICAgICAgICAgIDogKCh2ID0gZCksICh5ID0gMCksIChnID0gaCkpLAogICAgICAgICAgKHQgPSBNYXRoLnJvdW5kKCh2ICsgbSkgKiAyNTUpKSwKICAgICAgICAgIChyID0gTWF0aC5yb3VuZCgoeSArIG0pICogMjU1KSksCiAgICAgICAgICAobiA9IE1hdGgucm91bmQoKGcgKyBtKSAqIDI1NSkpOwogICAgICB9CiAgICAgIGlmIChOdW1iZXIuaXNOYU4odCkgfHwgTnVtYmVyLmlzTmFOKHIpIHx8IE51bWJlci5pc05hTihuKSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICBgSW52YWxpZCBjb2xvciBpbiBbaXgyL3NoYXJlZC91dGlscy9ub3JtYWxpemVDb2xvci5qc10gJyR7ZX0nYAogICAgICAgICk7CiAgICAgIHJldHVybiB7IHJlZDogdCwgZ3JlZW46IHIsIGJsdWU6IG4sIGFscGhhOiBpIH07CiAgICB9CiAgfSk7CiAgdmFyIGc0ID0gRSgoUmIpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSYiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsKICAgIGZ1bmN0aW9uIFBfZShlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgaW4gdCkKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgeyBlbnVtZXJhYmxlOiAhMCwgZ2V0OiB0W3JdIH0pOwogICAgfQogICAgUF9lKFJiLCB7CiAgICAgIGNsZWFyUGx1Z2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIFhfZTsKICAgICAgfSwKICAgICAgY3JlYXRlUGx1Z2luSW5zdGFuY2U6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gQl9lOwogICAgICB9LAogICAgICBnZXRQbHVnaW5Db25maWc6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gcV9lOwogICAgICB9LAogICAgICBnZXRQbHVnaW5EZXN0aW5hdGlvbjogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBrX2U7CiAgICAgIH0sCiAgICAgIGdldFBsdWdpbkR1cmF0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHpfZTsKICAgICAgfSwKICAgICAgZ2V0UGx1Z2luT3JpZ2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIEZfZTsKICAgICAgfSwKICAgICAgcmVuZGVyUGx1Z2luOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIFVfZTsKICAgICAgfSwKICAgIH0pOwogICAgdmFyIERfZSA9IENiKCksCiAgICAgIHFfZSA9IChlLCB0KSA9PiBlLnZhbHVlW3RdLAogICAgICB6X2UgPSAoKSA9PiBudWxsLAogICAgICBGX2UgPSAoZSwgdCkgPT4gewogICAgICAgIGlmIChlKSByZXR1cm4gZTsKICAgICAgICBsZXQgciA9IHQuY29uZmlnLnZhbHVlLAogICAgICAgICAgbiA9IHQuY29uZmlnLnRhcmdldC5vYmplY3RJZCwKICAgICAgICAgIGkgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShuKTsKICAgICAgICBpZiAoci5zaXplICE9IG51bGwpIHJldHVybiB7IHNpemU6IHBhcnNlSW50KGksIDEwKSB9OwogICAgICAgIGlmIChyLnVuaXQgPT09ICIlIiB8fCByLnVuaXQgPT09ICItIikgcmV0dXJuIHsgc2l6ZTogcGFyc2VGbG9hdChpKSB9OwogICAgICAgIGlmIChyLnJlZCAhPSBudWxsICYmIHIuZ3JlZW4gIT0gbnVsbCAmJiByLmJsdWUgIT0gbnVsbCkKICAgICAgICAgIHJldHVybiAoMCwgRF9lLm5vcm1hbGl6ZUNvbG9yKShpKTsKICAgICAgfSwKICAgICAga19lID0gKGUpID0+IGUudmFsdWUsCiAgICAgIEJfZSA9ICgpID0+IG51bGwsCiAgICAgIFdfZSA9IHsKICAgICAgICBjb2xvcjogewogICAgICAgICAgbWF0Y2g6ICh7IHJlZDogZSwgZ3JlZW46IHQsIGJsdWU6IHIsIGFscGhhOiBuIH0pID0+CiAgICAgICAgICAgIFtlLCB0LCByLCBuXS5ldmVyeSgoaSkgPT4gaSAhPSBudWxsKSwKICAgICAgICAgIGdldFZhbHVlOiAoeyByZWQ6IGUsIGdyZWVuOiB0LCBibHVlOiByLCBhbHBoYTogbiB9KSA9PgogICAgICAgICAgICBgcmdiYSgke2V9LCAke3R9LCAke3J9LCAke259KWAsCiAgICAgICAgfSwKICAgICAgICBzaXplOiB7CiAgICAgICAgICBtYXRjaDogKHsgc2l6ZTogZSB9KSA9PiBlICE9IG51bGwsCiAgICAgICAgICBnZXRWYWx1ZTogKHsgc2l6ZTogZSB9LCB0KSA9PiB7CiAgICAgICAgICAgIHN3aXRjaCAodCkgewogICAgICAgICAgICAgIGNhc2UgIi0iOgogICAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiBgJHtlfSR7dH1gOwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgIH0sCiAgICAgIFVfZSA9IChlLCB0LCByKSA9PiB7CiAgICAgICAgbGV0IHsKICAgICAgICAgICAgdGFyZ2V0OiB7IG9iamVjdElkOiBuIH0sCiAgICAgICAgICAgIHZhbHVlOiB7IHVuaXQ6IGkgfSwKICAgICAgICAgIH0gPSByLmNvbmZpZywKICAgICAgICAgIGEgPSB0LlBMVUdJTl9WQVJJQUJMRSwKICAgICAgICAgIG8gPSBPYmplY3QudmFsdWVzKFdfZSkuZmluZCgocykgPT4gcy5tYXRjaChhLCBpKSk7CiAgICAgICAgbyAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkobiwgby5nZXRWYWx1ZShhLCBpKSk7CiAgICAgIH0sCiAgICAgIFhfZSA9IChlLCB0KSA9PiB7CiAgICAgICAgbGV0IHIgPSB0LmNvbmZpZy50YXJnZXQub2JqZWN0SWQ7CiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KHIpOwogICAgICB9OwogIH0pOwogIHZhciBiNCA9IEUoKEliKSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoSWIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogITAgfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoSWIsICJwbHVnaW5NZXRob2RNYXAiLCB7CiAgICAgIGVudW1lcmFibGU6ICEwLAogICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gWV9lOwogICAgICB9LAogICAgfSk7CiAgICB2YXIgdnAgPSAoa3IoKSwgb3QoVHopKSwKICAgICAgVl9lID0gYnAocDQoKSksCiAgICAgIEhfZSA9IGJwKGg0KCkpLAogICAgICBHX2UgPSBicChtNCgpKSwKICAgICAgal9lID0gYnAoZzQoKSk7CiAgICBmdW5jdGlvbiB2NChlKSB7CiAgICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPSAiZnVuY3Rpb24iKSByZXR1cm4gbnVsbDsKICAgICAgdmFyIHQgPSBuZXcgV2Vha01hcCgpLAogICAgICAgIHIgPSBuZXcgV2Vha01hcCgpOwogICAgICByZXR1cm4gKHY0ID0gZnVuY3Rpb24gKG4pIHsKICAgICAgICByZXR1cm4gbiA/IHIgOiB0OwogICAgICB9KShlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGJwKGUsIHQpIHsKICAgICAgaWYgKCF0ICYmIGUgJiYgZS5fX2VzTW9kdWxlKSByZXR1cm4gZTsKICAgICAgaWYgKGUgPT09IG51bGwgfHwgKHR5cGVvZiBlICE9ICJvYmplY3QiICYmIHR5cGVvZiBlICE9ICJmdW5jdGlvbiIpKQogICAgICAgIHJldHVybiB7IGRlZmF1bHQ6IGUgfTsKICAgICAgdmFyIHIgPSB2NCh0KTsKICAgICAgaWYgKHIgJiYgci5oYXMoZSkpIHJldHVybiByLmdldChlKTsKICAgICAgdmFyIG4gPSB7IF9fcHJvdG9fXzogbnVsbCB9LAogICAgICAgIGkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsKICAgICAgZm9yICh2YXIgYSBpbiBlKQogICAgICAgIGlmIChhICE9PSAiZGVmYXVsdCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsIGEpKSB7CiAgICAgICAgICB2YXIgbyA9IGkgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIGEpIDogbnVsbDsKICAgICAgICAgIG8gJiYgKG8uZ2V0IHx8IG8uc2V0KQogICAgICAgICAgICA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCBhLCBvKQogICAgICAgICAgICA6IChuW2FdID0gZVthXSk7CiAgICAgICAgfQogICAgICByZXR1cm4gKG4uZGVmYXVsdCA9IGUpLCByICYmIHIuc2V0KGUsIG4pLCBuOwogICAgfQogICAgdmFyIFlfZSA9IG5ldyBNYXAoWwogICAgICBbdnAuQWN0aW9uVHlwZUNvbnN0cy5QTFVHSU5fTE9UVElFLCB7IC4uLlZfZSB9XSwKICAgICAgW3ZwLkFjdGlvblR5cGVDb25zdHMuUExVR0lOX1NQTElORSwgeyAuLi5IX2UgfV0sCiAgICAgIFt2cC5BY3Rpb25UeXBlQ29uc3RzLlBMVUdJTl9SSVZFLCB7IC4uLkdfZSB9XSwKICAgICAgW3ZwLkFjdGlvblR5cGVDb25zdHMuUExVR0lOX1ZBUklBQkxFLCB7IC4uLmpfZSB9XSwKICAgIF0pOwogIH0pOwogIHZhciBNNCA9IHt9OwogIHV0KE00LCB7CiAgICBjbGVhclBsdWdpbjogKCkgPT4gcWIsCiAgICBjcmVhdGVQbHVnaW5JbnN0YW5jZTogKCkgPT4gJF9lLAogICAgZ2V0UGx1Z2luQ29uZmlnOiAoKSA9PiBOYiwKICAgIGdldFBsdWdpbkRlc3RpbmF0aW9uOiAoKSA9PiBQYiwKICAgIGdldFBsdWdpbkR1cmF0aW9uOiAoKSA9PiBLX2UsCiAgICBnZXRQbHVnaW5PcmlnaW46ICgpID0+IHdiLAogICAgaXNQbHVnaW5UeXBlOiAoKSA9PiBhbywKICAgIHJlbmRlclBsdWdpbjogKCkgPT4gRGIsCiAgfSk7CiAgZnVuY3Rpb24gYW8oZSkgewogICAgcmV0dXJuIExiLnBsdWdpbk1ldGhvZE1hcC5oYXMoZSk7CiAgfQogIHZhciBMYiwKICAgIG9vLAogICAgTmIsCiAgICB3YiwKICAgIEtfZSwKICAgIFBiLAogICAgJF9lLAogICAgRGIsCiAgICBxYiwKICAgIHpiID0gVigoKSA9PiB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgbXAoKTsKICAgICAgTGIgPSBiZShiNCgpKTsKICAgICAgKG9vID0gKGUpID0+ICh0KSA9PiB7CiAgICAgICAgaWYgKCF2bikgcmV0dXJuICgpID0+IG51bGw7CiAgICAgICAgbGV0IHIgPSBMYi5wbHVnaW5NZXRob2RNYXAuZ2V0KHQpOwogICAgICAgIGlmICghcikgdGhyb3cgbmV3IEVycm9yKGBJWDIgbm8gcGx1Z2luIGNvbmZpZ3VyZWQgZm9yOiAke3R9YCk7CiAgICAgICAgbGV0IG4gPSByW2VdOwogICAgICAgIGlmICghbikgdGhyb3cgbmV3IEVycm9yKGBJWDIgaW52YWxpZCBwbHVnaW4gbWV0aG9kOiAke2V9YCk7CiAgICAgICAgcmV0dXJuIG47CiAgICAgIH0pLAogICAgICAgIChOYiA9IG9vKCJnZXRQbHVnaW5Db25maWciKSksCiAgICAgICAgKHdiID0gb28oImdldFBsdWdpbk9yaWdpbiIpKSwKICAgICAgICAoS19lID0gb28oImdldFBsdWdpbkR1cmF0aW9uIikpLAogICAgICAgIChQYiA9IG9vKCJnZXRQbHVnaW5EZXN0aW5hdGlvbiIpKSwKICAgICAgICAoJF9lID0gb28oImNyZWF0ZVBsdWdpbkluc3RhbmNlIikpLAogICAgICAgIChEYiA9IG9vKCJyZW5kZXJQbHVnaW4iKSksCiAgICAgICAgKHFiID0gb28oImNsZWFyUGx1Z2luIikpOwogICAgfSk7CiAgdmFyIEZiID0gRSgoeEplLCBBNCkgPT4gewogICAgZnVuY3Rpb24gUV9lKGUsIHQpIHsKICAgICAgcmV0dXJuIGUgPT0gbnVsbCB8fCBlICE9PSBlID8gdCA6IGU7CiAgICB9CiAgICBBNC5leHBvcnRzID0gUV9lOwogIH0pOwogIHZhciBrYiA9IEUoKENKZSwgRTQpID0+IHsKICAgIGZ1bmN0aW9uIEpfZShlLCB0LCByLCBuKSB7CiAgICAgIHZhciBpID0gLTEsCiAgICAgICAgYSA9IGUgPT0gbnVsbCA/IDAgOiBlLmxlbmd0aDsKICAgICAgZm9yIChuICYmIGEgJiYgKHIgPSBlWysraV0pOyArK2kgPCBhOyApIHIgPSB0KHIsIGVbaV0sIGksIGUpOwogICAgICByZXR1cm4gcjsKICAgIH0KICAgIEU0LmV4cG9ydHMgPSBKX2U7CiAgfSk7CiAgdmFyIF80ID0gRSgoUkplLCBUNCkgPT4gewogICAgZnVuY3Rpb24gWl9lKGUpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0LCByLCBuKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IC0xLCBhID0gT2JqZWN0KHQpLCBvID0gbih0KSwgcyA9IG8ubGVuZ3RoOyBzLS07ICkgewogICAgICAgICAgdmFyIGMgPSBvW2UgPyBzIDogKytpXTsKICAgICAgICAgIGlmIChyKGFbY10sIGMsIGEpID09PSAhMSkgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0OwogICAgICB9OwogICAgfQogICAgVDQuZXhwb3J0cyA9IFpfZTsKICB9KTsKICB2YXIgQmIgPSBFKChJSmUsIFM0KSA9PiB7CiAgICB2YXIgZVNlID0gXzQoKSwKICAgICAgdFNlID0gZVNlKCk7CiAgICBTNC5leHBvcnRzID0gdFNlOwogIH0pOwogIHZhciBTYyA9IEUoKExKZSwgTzQpID0+IHsKICAgIHZhciByU2UgPSBCYigpLAogICAgICBuU2UgPSBWYSgpOwogICAgZnVuY3Rpb24gaVNlKGUsIHQpIHsKICAgICAgcmV0dXJuIGUgJiYgclNlKGUsIHQsIG5TZSk7CiAgICB9CiAgICBPNC5leHBvcnRzID0gaVNlOwogIH0pOwogIHZhciBDNCA9IEUoKE5KZSwgeDQpID0+IHsKICAgIHZhciBhU2UgPSBwaSgpOwogICAgZnVuY3Rpb24gb1NlKGUsIHQpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIChyLCBuKSB7CiAgICAgICAgaWYgKHIgPT0gbnVsbCkgcmV0dXJuIHI7CiAgICAgICAgaWYgKCFhU2UocikpIHJldHVybiBlKHIsIG4pOwogICAgICAgIGZvciAoCiAgICAgICAgICB2YXIgaSA9IHIubGVuZ3RoLCBhID0gdCA/IGkgOiAtMSwgbyA9IE9iamVjdChyKTsKICAgICAgICAgICh0ID8gYS0tIDogKythIDwgaSkgJiYgbihvW2FdLCBhLCBvKSAhPT0gITE7CgogICAgICAgICk7CiAgICAgICAgcmV0dXJuIHI7CiAgICAgIH07CiAgICB9CiAgICB4NC5leHBvcnRzID0gb1NlOwogIH0pOwogIHZhciBNcCA9IEUoKHdKZSwgUjQpID0+IHsKICAgIHZhciBzU2UgPSBTYygpLAogICAgICBjU2UgPSBDNCgpLAogICAgICB1U2UgPSBjU2Uoc1NlKTsKICAgIFI0LmV4cG9ydHMgPSB1U2U7CiAgfSk7CiAgdmFyIEw0ID0gRSgoUEplLCBJNCkgPT4gewogICAgZnVuY3Rpb24gbFNlKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgcmV0dXJuICgKICAgICAgICBpKGUsIGZ1bmN0aW9uIChhLCBvLCBzKSB7CiAgICAgICAgICByID0gbiA/ICgobiA9ICExKSwgYSkgOiB0KHIsIGEsIG8sIHMpOwogICAgICAgIH0pLAogICAgICAgIHIKICAgICAgKTsKICAgIH0KICAgIEk0LmV4cG9ydHMgPSBsU2U7CiAgfSk7CiAgdmFyIHc0ID0gRSgoREplLCBONCkgPT4gewogICAgdmFyIGZTZSA9IGtiKCksCiAgICAgIHBTZSA9IE1wKCksCiAgICAgIGRTZSA9IHFuKCksCiAgICAgIGhTZSA9IEw0KCksCiAgICAgIG1TZSA9IFJ0KCk7CiAgICBmdW5jdGlvbiB5U2UoZSwgdCwgcikgewogICAgICB2YXIgbiA9IG1TZShlKSA/IGZTZSA6IGhTZSwKICAgICAgICBpID0gYXJndW1lbnRzLmxlbmd0aCA8IDM7CiAgICAgIHJldHVybiBuKGUsIGRTZSh0LCA0KSwgciwgaSwgcFNlKTsKICAgIH0KICAgIE40LmV4cG9ydHMgPSB5U2U7CiAgfSk7CiAgdmFyIEQ0ID0gRSgocUplLCBQNCkgPT4gewogICAgdmFyIGdTZSA9IHV5KCksCiAgICAgIHZTZSA9IHFuKCksCiAgICAgIGJTZSA9IHNmKCksCiAgICAgIE1TZSA9IE1hdGgubWF4LAogICAgICBBU2UgPSBNYXRoLm1pbjsKICAgIGZ1bmN0aW9uIEVTZShlLCB0LCByKSB7CiAgICAgIHZhciBuID0gZSA9PSBudWxsID8gMCA6IGUubGVuZ3RoOwogICAgICBpZiAoIW4pIHJldHVybiAtMTsKICAgICAgdmFyIGkgPSBuIC0gMTsKICAgICAgcmV0dXJuICgKICAgICAgICByICE9PSB2b2lkIDAgJiYKICAgICAgICAgICgoaSA9IGJTZShyKSksIChpID0gciA8IDAgPyBNU2UobiArIGksIDApIDogQVNlKGksIG4gLSAxKSkpLAogICAgICAgIGdTZShlLCB2U2UodCwgMyksIGksICEwKQogICAgICApOwogICAgfQogICAgUDQuZXhwb3J0cyA9IEVTZTsKICB9KTsKICB2YXIgejQgPSBFKCh6SmUsIHE0KSA9PiB7CiAgICB2YXIgVFNlID0geWIoKSwKICAgICAgX1NlID0gRDQoKSwKICAgICAgU1NlID0gVFNlKF9TZSk7CiAgICBxNC5leHBvcnRzID0gU1NlOwogIH0pOwogIGZ1bmN0aW9uIEY0KGUsIHQpIHsKICAgIHJldHVybiBlID09PSB0ID8gZSAhPT0gMCB8fCB0ICE9PSAwIHx8IDEgLyBlID09PSAxIC8gdCA6IGUgIT09IGUgJiYgdCAhPT0gdDsKICB9CiAgZnVuY3Rpb24gT1NlKGUsIHQpIHsKICAgIGlmIChGNChlLCB0KSkgcmV0dXJuICEwOwogICAgaWYgKAogICAgICB0eXBlb2YgZSAhPSAib2JqZWN0IiB8fAogICAgICBlID09PSBudWxsIHx8CiAgICAgIHR5cGVvZiB0ICE9ICJvYmplY3QiIHx8CiAgICAgIHQgPT09IG51bGwKICAgICkKICAgICAgcmV0dXJuICExOwogICAgbGV0IHIgPSBPYmplY3Qua2V5cyhlKSwKICAgICAgbiA9IE9iamVjdC5rZXlzKHQpOwogICAgaWYgKHIubGVuZ3RoICE9PSBuLmxlbmd0aCkgcmV0dXJuICExOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCByLmxlbmd0aDsgaSsrKQogICAgICBpZiAoIU9iamVjdC5oYXNPd24odCwgcltpXSkgfHwgIUY0KGVbcltpXV0sIHRbcltpXV0pKSByZXR1cm4gITE7CiAgICByZXR1cm4gITA7CiAgfQogIHZhciBXYiwKICAgIGs0ID0gVigoKSA9PiB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgV2IgPSBPU2U7CiAgICB9KTsKICB2YXIgbkYgPSB7fTsKICB1dChuRiwgewogICAgY2xlYW51cEhUTUxFbGVtZW50OiAoKSA9PiBUT2UsCiAgICBjbGVhckFsbFN0eWxlczogKCkgPT4gRU9lLAogICAgY2xlYXJPYmplY3RDYWNoZTogKCkgPT4gWFNlLAogICAgZ2V0QWN0aW9uTGlzdFByb2dyZXNzOiAoKSA9PiBTT2UsCiAgICBnZXRBZmZlY3RlZEVsZW1lbnRzOiAoKSA9PiBHYiwKICAgIGdldENvbXB1dGVkU3R5bGU6ICgpID0+IFFTZSwKICAgIGdldERlc3RpbmF0aW9uVmFsdWVzOiAoKSA9PiBpT2UsCiAgICBnZXRFbGVtZW50SWQ6ICgpID0+IGpTZSwKICAgIGdldEluc3RhbmNlSWQ6ICgpID0+IEhTZSwKICAgIGdldEluc3RhbmNlT3JpZ2luOiAoKSA9PiBlT2UsCiAgICBnZXRJdGVtQ29uZmlnQnlLZXk6ICgpID0+IG5PZSwKICAgIGdldE1heER1cmF0aW9uSXRlbUluZGV4OiAoKSA9PiByRiwKICAgIGdldE5hbWVzcGFjZWRQYXJhbWV0ZXJJZDogKCkgPT4gQ09lLAogICAgZ2V0UmVuZGVyVHlwZTogKCkgPT4gWjQsCiAgICBnZXRTdHlsZVByb3A6ICgpID0+IGFPZSwKICAgIG1lZGlhUXVlcmllc0VxdWFsOiAoKSA9PiBJT2UsCiAgICBvYnNlcnZlU3RvcmU6ICgpID0+ICRTZSwKICAgIHJlZHVjZUxpc3RUb0dyb3VwOiAoKSA9PiBPT2UsCiAgICByZWlmeVN0YXRlOiAoKSA9PiBZU2UsCiAgICByZW5kZXJIVE1MRWxlbWVudDogKCkgPT4gb09lLAogICAgc2hhbGxvd0VxdWFsOiAoKSA9PiBXYiwKICAgIHNob3VsZEFsbG93TWVkaWFRdWVyeTogKCkgPT4gUk9lLAogICAgc2hvdWxkTmFtZXNwYWNlRXZlbnRQYXJhbWV0ZXI6ICgpID0+IHhPZSwKICAgIHN0cmluZ2lmeVRhcmdldDogKCkgPT4gTE9lLAogIH0pOwogIGZ1bmN0aW9uIFhTZSgpIHsKICAgIEFwLmNsZWFyKCk7CiAgfQogIGZ1bmN0aW9uIEhTZSgpIHsKICAgIHJldHVybiAiaSIgKyBWU2UrKzsKICB9CiAgZnVuY3Rpb24galNlKGUsIHQpIHsKICAgIGZvciAobGV0IHIgaW4gZSkgewogICAgICBsZXQgbiA9IGVbcl07CiAgICAgIGlmIChuICYmIG4ucmVmID09PSB0KSByZXR1cm4gbi5pZDsKICAgIH0KICAgIHJldHVybiAiZSIgKyBHU2UrKzsKICB9CiAgZnVuY3Rpb24gWVNlKHsgZXZlbnRzOiBlLCBhY3Rpb25MaXN0czogdCwgc2l0ZTogciB9ID0ge30pIHsKICAgIGxldCBuID0gKDAsIFNwLmRlZmF1bHQpKAogICAgICAgIGUsCiAgICAgICAgKG8sIHMpID0+IHsKICAgICAgICAgIGxldCB7IGV2ZW50VHlwZUlkOiBjIH0gPSBzOwogICAgICAgICAgcmV0dXJuIG9bY10gfHwgKG9bY10gPSB7fSksIChvW2NdW3MuaWRdID0gcyksIG87CiAgICAgICAgfSwKICAgICAgICB7fQogICAgICApLAogICAgICBpID0gciAmJiByLm1lZGlhUXVlcmllcywKICAgICAgYSA9IFtdOwogICAgcmV0dXJuICgKICAgICAgaQogICAgICAgID8gKGEgPSBpLm1hcCgobykgPT4gby5rZXkpKQogICAgICAgIDogKChpID0gW10pLCBjb25zb2xlLndhcm4oIklYMiBtaXNzaW5nIG1lZGlhUXVlcmllcyBpbiBzaXRlIGRhdGEiKSksCiAgICAgIHsKICAgICAgICBpeERhdGE6IHsKICAgICAgICAgIGV2ZW50czogZSwKICAgICAgICAgIGFjdGlvbkxpc3RzOiB0LAogICAgICAgICAgZXZlbnRUeXBlTWFwOiBuLAogICAgICAgICAgbWVkaWFRdWVyaWVzOiBpLAogICAgICAgICAgbWVkaWFRdWVyeUtleXM6IGEsCiAgICAgICAgfSwKICAgICAgfQogICAgKTsKICB9CiAgZnVuY3Rpb24gJFNlKHsgc3RvcmU6IGUsIHNlbGVjdDogdCwgb25DaGFuZ2U6IHIsIGNvbXBhcmF0b3I6IG4gPSBLU2UgfSkgewogICAgbGV0IHsgZ2V0U3RhdGU6IGksIHN1YnNjcmliZTogYSB9ID0gZSwKICAgICAgbyA9IGEoYyksCiAgICAgIHMgPSB0KGkoKSk7CiAgICBmdW5jdGlvbiBjKCkgewogICAgICBsZXQgdSA9IHQoaSgpKTsKICAgICAgaWYgKHUgPT0gbnVsbCkgewogICAgICAgIG8oKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgbih1LCBzKSB8fCAoKHMgPSB1KSwgcihzLCBlKSk7CiAgICB9CiAgICByZXR1cm4gbzsKICB9CiAgZnVuY3Rpb24gVTQoZSkgewogICAgbGV0IHQgPSB0eXBlb2YgZTsKICAgIGlmICh0ID09PSAic3RyaW5nIikgcmV0dXJuIHsgaWQ6IGUgfTsKICAgIGlmIChlICE9IG51bGwgJiYgdCA9PT0gIm9iamVjdCIpIHsKICAgICAgbGV0IHsKICAgICAgICBpZDogciwKICAgICAgICBvYmplY3RJZDogbiwKICAgICAgICBzZWxlY3RvcjogaSwKICAgICAgICBzZWxlY3Rvckd1aWRzOiBhLAogICAgICAgIGFwcGxpZXNUbzogbywKICAgICAgICB1c2VFdmVudFRhcmdldDogcywKICAgICAgfSA9IGU7CiAgICAgIHJldHVybiB7CiAgICAgICAgaWQ6IHIsCiAgICAgICAgb2JqZWN0SWQ6IG4sCiAgICAgICAgc2VsZWN0b3I6IGksCiAgICAgICAgc2VsZWN0b3JHdWlkczogYSwKICAgICAgICBhcHBsaWVzVG86IG8sCiAgICAgICAgdXNlRXZlbnRUYXJnZXQ6IHMsCiAgICAgIH07CiAgICB9CiAgICByZXR1cm4ge307CiAgfQogIGZ1bmN0aW9uIEdiKHsKICAgIGNvbmZpZzogZSwKICAgIGV2ZW50OiB0LAogICAgZXZlbnRUYXJnZXQ6IHIsCiAgICBlbGVtZW50Um9vdDogbiwKICAgIGVsZW1lbnRBcGk6IGksCiAgfSkgewogICAgaWYgKCFpKSB0aHJvdyBuZXcgRXJyb3IoIklYMiBtaXNzaW5nIGVsZW1lbnRBcGkiKTsKICAgIGxldCB7IHRhcmdldHM6IGEgfSA9IGU7CiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSAmJiBhLmxlbmd0aCA+IDApCiAgICAgIHJldHVybiBhLnJlZHVjZSgKICAgICAgICAoSCwgWCkgPT4KICAgICAgICAgIEguY29uY2F0KAogICAgICAgICAgICBHYih7CiAgICAgICAgICAgICAgY29uZmlnOiB7IHRhcmdldDogWCB9LAogICAgICAgICAgICAgIGV2ZW50OiB0LAogICAgICAgICAgICAgIGV2ZW50VGFyZ2V0OiByLAogICAgICAgICAgICAgIGVsZW1lbnRSb290OiBuLAogICAgICAgICAgICAgIGVsZW1lbnRBcGk6IGksCiAgICAgICAgICAgIH0pCiAgICAgICAgICApLAogICAgICAgIFtdCiAgICAgICk7CiAgICBsZXQgewogICAgICAgIGdldFZhbGlkRG9jdW1lbnQ6IG8sCiAgICAgICAgZ2V0UXVlcnlTZWxlY3RvcjogcywKICAgICAgICBxdWVyeURvY3VtZW50OiBjLAogICAgICAgIGdldENoaWxkRWxlbWVudHM6IHUsCiAgICAgICAgZ2V0U2libGluZ0VsZW1lbnRzOiBsLAogICAgICAgIG1hdGNoU2VsZWN0b3I6IHAsCiAgICAgICAgZWxlbWVudENvbnRhaW5zOiBkLAogICAgICAgIGlzU2libGluZ05vZGU6IGgsCiAgICAgIH0gPSBpLAogICAgICB7IHRhcmdldDogbSB9ID0gZTsKICAgIGlmICghbSkgcmV0dXJuIFtdOwogICAgbGV0IHsKICAgICAgaWQ6IHYsCiAgICAgIG9iamVjdElkOiB5LAogICAgICBzZWxlY3RvcjogZywKICAgICAgc2VsZWN0b3JHdWlkczogTSwKICAgICAgYXBwbGllc1RvOiBBLAogICAgICB1c2VFdmVudFRhcmdldDogXywKICAgIH0gPSBVNChtKTsKICAgIGlmICh5KSByZXR1cm4gW0FwLmhhcyh5KSA/IEFwLmdldCh5KSA6IEFwLnNldCh5LCB7fSkuZ2V0KHkpXTsKICAgIGlmIChBID09PSBwYi5QQUdFKSB7CiAgICAgIGxldCBIID0gbyh2KTsKICAgICAgcmV0dXJuIEggPyBbSF0gOiBbXTsKICAgIH0KICAgIGxldCBSID0gKHQ/LmFjdGlvbj8uY29uZmlnPy5hZmZlY3RlZEVsZW1lbnRzID8/IHt9KVt2IHx8IGddIHx8IHt9LAogICAgICBMID0gISEoUi5pZCB8fCBSLnNlbGVjdG9yKSwKICAgICAgTiwKICAgICAgVywKICAgICAgaywKICAgICAgcSA9IHQgJiYgcyhVNCh0LnRhcmdldCkpOwogICAgaWYgKAogICAgICAoTAogICAgICAgID8gKChOID0gUi5saW1pdEFmZmVjdGVkRWxlbWVudHMpLCAoVyA9IHEpLCAoayA9IHMoUikpKQogICAgICAgIDogKFcgPSBrID0gcyh7IGlkOiB2LCBzZWxlY3RvcjogZywgc2VsZWN0b3JHdWlkczogTSB9KSksCiAgICAgIHQgJiYgXykKICAgICkgewogICAgICBsZXQgSCA9IHIgJiYgKGsgfHwgXyA9PT0gITApID8gW3JdIDogYyhxKTsKICAgICAgaWYgKGspIHsKICAgICAgICBpZiAoXyA9PT0gQlNlKSByZXR1cm4gYyhrKS5maWx0ZXIoKFgpID0+IEguc29tZSgoVSkgPT4gZChYLCBVKSkpOwogICAgICAgIGlmIChfID09PSBCNCkgcmV0dXJuIGMoaykuZmlsdGVyKChYKSA9PiBILnNvbWUoKFUpID0+IGQoVSwgWCkpKTsKICAgICAgICBpZiAoXyA9PT0gVzQpIHJldHVybiBjKGspLmZpbHRlcigoWCkgPT4gSC5zb21lKChVKSA9PiBoKFUsIFgpKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIEg7CiAgICB9CiAgICByZXR1cm4gVyA9PSBudWxsIHx8IGsgPT0gbnVsbAogICAgICA/IFtdCiAgICAgIDogdm4gJiYgbgogICAgICA/IGMoaykuZmlsdGVyKChIKSA9PiBuLmNvbnRhaW5zKEgpKQogICAgICA6IE4gPT09IEI0CiAgICAgID8gYyhXLCBrKQogICAgICA6IE4gPT09IGtTZQogICAgICA/IHUoYyhXKSkuZmlsdGVyKHAoaykpCiAgICAgIDogTiA9PT0gVzQKICAgICAgPyBsKGMoVykpLmZpbHRlcihwKGspKQogICAgICA6IGMoayk7CiAgfQogIGZ1bmN0aW9uIFFTZSh7IGVsZW1lbnQ6IGUsIGFjdGlvbkl0ZW06IHQgfSkgewogICAgaWYgKCF2bikgcmV0dXJuIHt9OwogICAgbGV0IHsgYWN0aW9uVHlwZUlkOiByIH0gPSB0OwogICAgc3dpdGNoIChyKSB7CiAgICAgIGNhc2UgR3M6CiAgICAgIGNhc2UganM6CiAgICAgIGNhc2UgWXM6CiAgICAgIGNhc2UgS3M6CiAgICAgIGNhc2UgeHA6CiAgICAgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpOwogICAgICBkZWZhdWx0OgogICAgICAgIHJldHVybiB7fTsKICAgIH0KICB9CiAgZnVuY3Rpb24gZU9lKGUsIHQgPSB7fSwgciA9IHt9LCBuLCBpKSB7CiAgICBsZXQgeyBnZXRTdHlsZTogYSB9ID0gaSwKICAgICAgeyBhY3Rpb25UeXBlSWQ6IG8gfSA9IG47CiAgICBpZiAoYW8obykpIHJldHVybiB3YihvKSh0W29dLCBuKTsKICAgIHN3aXRjaCAobi5hY3Rpb25UeXBlSWQpIHsKICAgICAgY2FzZSBYczoKICAgICAgY2FzZSBWczoKICAgICAgY2FzZSBIczoKICAgICAgY2FzZSBSYzoKICAgICAgICByZXR1cm4gdFtuLmFjdGlvblR5cGVJZF0gfHwgamJbbi5hY3Rpb25UeXBlSWRdOwogICAgICBjYXNlIEljOgogICAgICAgIHJldHVybiBKU2UodFtuLmFjdGlvblR5cGVJZF0sIG4uY29uZmlnLmZpbHRlcnMpOwogICAgICBjYXNlIExjOgogICAgICAgIHJldHVybiBaU2UodFtuLmFjdGlvblR5cGVJZF0sIG4uY29uZmlnLmZvbnRWYXJpYXRpb25zKTsKICAgICAgY2FzZSAkNDoKICAgICAgICByZXR1cm4geyB2YWx1ZTogKDAsIF9pLmRlZmF1bHQpKHBhcnNlRmxvYXQoYShlLCBUcCkpLCAxKSB9OwogICAgICBjYXNlIEdzOiB7CiAgICAgICAgbGV0IHMgPSBhKGUsIFVuKSwKICAgICAgICAgIGMgPSBhKGUsIFhuKSwKICAgICAgICAgIHUsCiAgICAgICAgICBsOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBuLmNvbmZpZy53aWR0aFVuaXQgPT09IHVhCiAgICAgICAgICAgID8gKHUgPSBYNC50ZXN0KHMpID8gcGFyc2VGbG9hdChzKSA6IHBhcnNlRmxvYXQoci53aWR0aCkpCiAgICAgICAgICAgIDogKHUgPSAoMCwgX2kuZGVmYXVsdCkocGFyc2VGbG9hdChzKSwgcGFyc2VGbG9hdChyLndpZHRoKSkpLAogICAgICAgICAgbi5jb25maWcuaGVpZ2h0VW5pdCA9PT0gdWEKICAgICAgICAgICAgPyAobCA9IFg0LnRlc3QoYykgPyBwYXJzZUZsb2F0KGMpIDogcGFyc2VGbG9hdChyLmhlaWdodCkpCiAgICAgICAgICAgIDogKGwgPSAoMCwgX2kuZGVmYXVsdCkocGFyc2VGbG9hdChjKSwgcGFyc2VGbG9hdChyLmhlaWdodCkpKSwKICAgICAgICAgIHsgd2lkdGhWYWx1ZTogdSwgaGVpZ2h0VmFsdWU6IGwgfQogICAgICAgICk7CiAgICAgIH0KICAgICAgY2FzZSBqczoKICAgICAgY2FzZSBZczoKICAgICAgY2FzZSBLczoKICAgICAgICByZXR1cm4gYk9lKHsKICAgICAgICAgIGVsZW1lbnQ6IGUsCiAgICAgICAgICBhY3Rpb25UeXBlSWQ6IG4uYWN0aW9uVHlwZUlkLAogICAgICAgICAgY29tcHV0ZWRTdHlsZTogciwKICAgICAgICAgIGdldFN0eWxlOiBhLAogICAgICAgIH0pOwogICAgICBjYXNlIHhwOgogICAgICAgIHJldHVybiB7IHZhbHVlOiAoMCwgX2kuZGVmYXVsdCkoYShlLCBfcCksIHIuZGlzcGxheSkgfTsKICAgICAgY2FzZSBVU2U6CiAgICAgICAgcmV0dXJuIHRbbi5hY3Rpb25UeXBlSWRdIHx8IHsgdmFsdWU6IDAgfTsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm47CiAgICB9CiAgfQogIGZ1bmN0aW9uIGlPZSh7IGVsZW1lbnQ6IGUsIGFjdGlvbkl0ZW06IHQsIGVsZW1lbnRBcGk6IHIgfSkgewogICAgaWYgKGFvKHQuYWN0aW9uVHlwZUlkKSkgcmV0dXJuIFBiKHQuYWN0aW9uVHlwZUlkKSh0LmNvbmZpZyk7CiAgICBzd2l0Y2ggKHQuYWN0aW9uVHlwZUlkKSB7CiAgICAgIGNhc2UgWHM6CiAgICAgIGNhc2UgVnM6CiAgICAgIGNhc2UgSHM6CiAgICAgIGNhc2UgUmM6IHsKICAgICAgICBsZXQgeyB4VmFsdWU6IG4sIHlWYWx1ZTogaSwgelZhbHVlOiBhIH0gPSB0LmNvbmZpZzsKICAgICAgICByZXR1cm4geyB4VmFsdWU6IG4sIHlWYWx1ZTogaSwgelZhbHVlOiBhIH07CiAgICAgIH0KICAgICAgY2FzZSBHczogewogICAgICAgIGxldCB7IGdldFN0eWxlOiBuLCBzZXRTdHlsZTogaSwgZ2V0UHJvcGVydHk6IGEgfSA9IHIsCiAgICAgICAgICB7IHdpZHRoVW5pdDogbywgaGVpZ2h0VW5pdDogcyB9ID0gdC5jb25maWcsCiAgICAgICAgICB7IHdpZHRoVmFsdWU6IGMsIGhlaWdodFZhbHVlOiB1IH0gPSB0LmNvbmZpZzsKICAgICAgICBpZiAoIXZuKSByZXR1cm4geyB3aWR0aFZhbHVlOiBjLCBoZWlnaHRWYWx1ZTogdSB9OwogICAgICAgIGlmIChvID09PSB1YSkgewogICAgICAgICAgbGV0IGwgPSBuKGUsIFVuKTsKICAgICAgICAgIGkoZSwgVW4sICIiKSwgKGMgPSBhKGUsICJvZmZzZXRXaWR0aCIpKSwgaShlLCBVbiwgbCk7CiAgICAgICAgfQogICAgICAgIGlmIChzID09PSB1YSkgewogICAgICAgICAgbGV0IGwgPSBuKGUsIFhuKTsKICAgICAgICAgIGkoZSwgWG4sICIiKSwgKHUgPSBhKGUsICJvZmZzZXRIZWlnaHQiKSksIGkoZSwgWG4sIGwpOwogICAgICAgIH0KICAgICAgICByZXR1cm4geyB3aWR0aFZhbHVlOiBjLCBoZWlnaHRWYWx1ZTogdSB9OwogICAgICB9CiAgICAgIGNhc2UganM6CiAgICAgIGNhc2UgWXM6CiAgICAgIGNhc2UgS3M6IHsKICAgICAgICBsZXQgewogICAgICAgICAgclZhbHVlOiBuLAogICAgICAgICAgZ1ZhbHVlOiBpLAogICAgICAgICAgYlZhbHVlOiBhLAogICAgICAgICAgYVZhbHVlOiBvLAogICAgICAgICAgZ2xvYmFsU3dhdGNoSWQ6IHMsCiAgICAgICAgfSA9IHQuY29uZmlnOwogICAgICAgIGlmIChzICYmIHMuc3RhcnRzV2l0aCgiLS0iKSkgewogICAgICAgICAgbGV0IHsgZ2V0U3R5bGU6IGMgfSA9IHIsCiAgICAgICAgICAgIHUgPSBjKGUsIHMpLAogICAgICAgICAgICBsID0gKDAsIEc0Lm5vcm1hbGl6ZUNvbG9yKSh1KTsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHJWYWx1ZTogbC5yZWQsCiAgICAgICAgICAgIGdWYWx1ZTogbC5ncmVlbiwKICAgICAgICAgICAgYlZhbHVlOiBsLmJsdWUsCiAgICAgICAgICAgIGFWYWx1ZTogbC5hbHBoYSwKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIHJldHVybiB7IHJWYWx1ZTogbiwgZ1ZhbHVlOiBpLCBiVmFsdWU6IGEsIGFWYWx1ZTogbyB9OwogICAgICB9CiAgICAgIGNhc2UgSWM6CiAgICAgICAgcmV0dXJuIHQuY29uZmlnLmZpbHRlcnMucmVkdWNlKHRPZSwge30pOwogICAgICBjYXNlIExjOgogICAgICAgIHJldHVybiB0LmNvbmZpZy5mb250VmFyaWF0aW9ucy5yZWR1Y2Uock9lLCB7fSk7CiAgICAgIGRlZmF1bHQ6IHsKICAgICAgICBsZXQgeyB2YWx1ZTogbiB9ID0gdC5jb25maWc7CiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG4gfTsKICAgICAgfQogICAgfQogIH0KICBmdW5jdGlvbiBaNChlKSB7CiAgICBpZiAoL15UUkFOU0ZPUk1fLy50ZXN0KGUpKSByZXR1cm4gWTQ7CiAgICBpZiAoL15TVFlMRV8vLnRlc3QoZSkpIHJldHVybiBWYjsKICAgIGlmICgvXkdFTkVSQUxfLy50ZXN0KGUpKSByZXR1cm4gWGI7CiAgICBpZiAoL15QTFVHSU5fLy50ZXN0KGUpKSByZXR1cm4gSzQ7CiAgfQogIGZ1bmN0aW9uIGFPZShlLCB0KSB7CiAgICByZXR1cm4gZSA9PT0gVmIgPyB0LnJlcGxhY2UoIlNUWUxFXyIsICIiKS50b0xvd2VyQ2FzZSgpIDogbnVsbDsKICB9CiAgZnVuY3Rpb24gb09lKGUsIHQsIHIsIG4sIGksIGEsIG8sIHMsIGMpIHsKICAgIHN3aXRjaCAocykgewogICAgICBjYXNlIFk0OgogICAgICAgIHJldHVybiBmT2UoZSwgdCwgciwgaSwgbyk7CiAgICAgIGNhc2UgVmI6CiAgICAgICAgcmV0dXJuIE1PZShlLCB0LCByLCBpLCBhLCBvKTsKICAgICAgY2FzZSBYYjoKICAgICAgICByZXR1cm4gQU9lKGUsIGksIG8pOwogICAgICBjYXNlIEs0OiB7CiAgICAgICAgbGV0IHsgYWN0aW9uVHlwZUlkOiB1IH0gPSBpOwogICAgICAgIGlmIChhbyh1KSkgcmV0dXJuIERiKHUpKGMsIHQsIGkpOwogICAgICB9CiAgICB9CiAgfQogIGZ1bmN0aW9uIGZPZShlLCB0LCByLCBuLCBpKSB7CiAgICBsZXQgYSA9IGxPZQogICAgICAgIC5tYXAoKHMpID0+IHsKICAgICAgICAgIGxldCBjID0gamJbc10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICB4VmFsdWU6IHUgPSBjLnhWYWx1ZSwKICAgICAgICAgICAgICB5VmFsdWU6IGwgPSBjLnlWYWx1ZSwKICAgICAgICAgICAgICB6VmFsdWU6IHAgPSBjLnpWYWx1ZSwKICAgICAgICAgICAgICB4VW5pdDogZCA9ICIiLAogICAgICAgICAgICAgIHlVbml0OiBoID0gIiIsCiAgICAgICAgICAgICAgelVuaXQ6IG0gPSAiIiwKICAgICAgICAgICAgfSA9IHRbc10gfHwge307CiAgICAgICAgICBzd2l0Y2ggKHMpIHsKICAgICAgICAgICAgY2FzZSBYczoKICAgICAgICAgICAgICByZXR1cm4gYCR7UlNlfSgke3V9JHtkfSwgJHtsfSR7aH0sICR7cH0ke219KWA7CiAgICAgICAgICAgIGNhc2UgVnM6CiAgICAgICAgICAgICAgcmV0dXJuIGAke0lTZX0oJHt1fSR7ZH0sICR7bH0ke2h9LCAke3B9JHttfSlgOwogICAgICAgICAgICBjYXNlIEhzOgogICAgICAgICAgICAgIHJldHVybiBgJHtMU2V9KCR7dX0ke2R9KSAke05TZX0oJHtsfSR7aH0pICR7d1NlfSgke3B9JHttfSlgOwogICAgICAgICAgICBjYXNlIFJjOgogICAgICAgICAgICAgIHJldHVybiBgJHtQU2V9KCR7dX0ke2R9LCAke2x9JHtofSlgOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiAiIjsKICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIC5qb2luKCIgIiksCiAgICAgIHsgc2V0U3R5bGU6IG8gfSA9IGk7CiAgICBzbyhlLCBjYSwgaSksIG8oZSwgY2EsIGEpLCBoT2UobiwgcikgJiYgbyhlLCBocCwgRFNlKTsKICB9CiAgZnVuY3Rpb24gcE9lKGUsIHQsIHIsIG4pIHsKICAgIGxldCBpID0gKDAsIFNwLmRlZmF1bHQpKHQsIChvLCBzLCBjKSA9PiBgJHtvfSAke2N9KCR7c30ke3VPZShjLCByKX0pYCwgIiIpLAogICAgICB7IHNldFN0eWxlOiBhIH0gPSBuOwogICAgc28oZSwgT2MsIG4pLCBhKGUsIE9jLCBpKTsKICB9CiAgZnVuY3Rpb24gZE9lKGUsIHQsIHIsIG4pIHsKICAgIGxldCBpID0gKDAsIFNwLmRlZmF1bHQpKAogICAgICAgIHQsCiAgICAgICAgKG8sIHMsIGMpID0+IChvLnB1c2goYCIke2N9IiAke3N9YCksIG8pLAogICAgICAgIFtdCiAgICAgICkuam9pbigiLCAiKSwKICAgICAgeyBzZXRTdHlsZTogYSB9ID0gbjsKICAgIHNvKGUsIHhjLCBuKSwgYShlLCB4YywgaSk7CiAgfQogIGZ1bmN0aW9uIGhPZSh7IGFjdGlvblR5cGVJZDogZSB9LCB7IHhWYWx1ZTogdCwgeVZhbHVlOiByLCB6VmFsdWU6IG4gfSkgewogICAgcmV0dXJuICgKICAgICAgKGUgPT09IFhzICYmIG4gIT09IHZvaWQgMCkgfHwKICAgICAgKGUgPT09IFZzICYmIG4gIT09IHZvaWQgMCkgfHwKICAgICAgKGUgPT09IEhzICYmICh0ICE9PSB2b2lkIDAgfHwgciAhPT0gdm9pZCAwKSkKICAgICk7CiAgfQogIGZ1bmN0aW9uIHZPZShlLCB0KSB7CiAgICBsZXQgciA9IGUuZXhlYyh0KTsKICAgIHJldHVybiByID8gclsxXSA6ICIiOwogIH0KICBmdW5jdGlvbiBiT2UoeyBlbGVtZW50OiBlLCBhY3Rpb25UeXBlSWQ6IHQsIGNvbXB1dGVkU3R5bGU6IHIsIGdldFN0eWxlOiBuIH0pIHsKICAgIGxldCBpID0gSGJbdF0sCiAgICAgIGEgPSBuKGUsIGkpLAogICAgICBvID0geU9lLnRlc3QoYSkgPyBhIDogcltpXSwKICAgICAgcyA9IHZPZShnT2UsIG8pLnNwbGl0KENjKTsKICAgIHJldHVybiB7CiAgICAgIHJWYWx1ZTogKDAsIF9pLmRlZmF1bHQpKHBhcnNlSW50KHNbMF0sIDEwKSwgMjU1KSwKICAgICAgZ1ZhbHVlOiAoMCwgX2kuZGVmYXVsdCkocGFyc2VJbnQoc1sxXSwgMTApLCAyNTUpLAogICAgICBiVmFsdWU6ICgwLCBfaS5kZWZhdWx0KShwYXJzZUludChzWzJdLCAxMCksIDI1NSksCiAgICAgIGFWYWx1ZTogKDAsIF9pLmRlZmF1bHQpKHBhcnNlRmxvYXQoc1szXSksIDEpLAogICAgfTsKICB9CiAgZnVuY3Rpb24gTU9lKGUsIHQsIHIsIG4sIGksIGEpIHsKICAgIGxldCB7IHNldFN0eWxlOiBvIH0gPSBhOwogICAgc3dpdGNoIChuLmFjdGlvblR5cGVJZCkgewogICAgICBjYXNlIEdzOiB7CiAgICAgICAgbGV0IHsgd2lkdGhVbml0OiBzID0gIiIsIGhlaWdodFVuaXQ6IGMgPSAiIiB9ID0gbi5jb25maWcsCiAgICAgICAgICB7IHdpZHRoVmFsdWU6IHUsIGhlaWdodFZhbHVlOiBsIH0gPSByOwogICAgICAgIHUgIT09IHZvaWQgMCAmJiAocyA9PT0gdWEgJiYgKHMgPSAicHgiKSwgc28oZSwgVW4sIGEpLCBvKGUsIFVuLCB1ICsgcykpLAogICAgICAgICAgbCAhPT0gdm9pZCAwICYmCiAgICAgICAgICAgIChjID09PSB1YSAmJiAoYyA9ICJweCIpLCBzbyhlLCBYbiwgYSksIG8oZSwgWG4sIGwgKyBjKSk7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSBJYzogewogICAgICAgIHBPZShlLCByLCBuLmNvbmZpZywgYSk7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSBMYzogewogICAgICAgIGRPZShlLCByLCBuLmNvbmZpZywgYSk7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgY2FzZSBqczoKICAgICAgY2FzZSBZczoKICAgICAgY2FzZSBLczogewogICAgICAgIGxldCBzID0gSGJbbi5hY3Rpb25UeXBlSWRdLAogICAgICAgICAgYyA9IE1hdGgucm91bmQoci5yVmFsdWUpLAogICAgICAgICAgdSA9IE1hdGgucm91bmQoci5nVmFsdWUpLAogICAgICAgICAgbCA9IE1hdGgucm91bmQoci5iVmFsdWUpLAogICAgICAgICAgcCA9IHIuYVZhbHVlOwogICAgICAgIHNvKGUsIHMsIGEpLAogICAgICAgICAgbyhlLCBzLCBwID49IDEgPyBgcmdiKCR7Y30sJHt1fSwke2x9KWAgOiBgcmdiYSgke2N9LCR7dX0sJHtsfSwke3B9KWApOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGRlZmF1bHQ6IHsKICAgICAgICBsZXQgeyB1bml0OiBzID0gIiIgfSA9IG4uY29uZmlnOwogICAgICAgIHNvKGUsIGksIGEpLCBvKGUsIGksIHIudmFsdWUgKyBzKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQogIH0KICBmdW5jdGlvbiBBT2UoZSwgdCwgcikgewogICAgbGV0IHsgc2V0U3R5bGU6IG4gfSA9IHI7CiAgICBzd2l0Y2ggKHQuYWN0aW9uVHlwZUlkKSB7CiAgICAgIGNhc2UgeHA6IHsKICAgICAgICBsZXQgeyB2YWx1ZTogaSB9ID0gdC5jb25maWc7CiAgICAgICAgaSA9PT0gcVNlICYmIHZuID8gbihlLCBfcCwgZ2IpIDogbihlLCBfcCwgaSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfQogIGZ1bmN0aW9uIHNvKGUsIHQsIHIpIHsKICAgIGlmICghdm4pIHJldHVybjsKICAgIGxldCBuID0gSjRbdF07CiAgICBpZiAoIW4pIHJldHVybjsKICAgIGxldCB7IGdldFN0eWxlOiBpLCBzZXRTdHlsZTogYSB9ID0gciwKICAgICAgbyA9IGkoZSwgVXMpOwogICAgaWYgKCFvKSB7CiAgICAgIGEoZSwgVXMsIG4pOwogICAgICByZXR1cm47CiAgICB9CiAgICBsZXQgcyA9IG8uc3BsaXQoQ2MpLm1hcChRNCk7CiAgICBzLmluZGV4T2YobikgPT09IC0xICYmIGEoZSwgVXMsIHMuY29uY2F0KG4pLmpvaW4oQ2MpKTsKICB9CiAgZnVuY3Rpb24gZUYoZSwgdCwgcikgewogICAgaWYgKCF2bikgcmV0dXJuOwogICAgbGV0IG4gPSBKNFt0XTsKICAgIGlmICghbikgcmV0dXJuOwogICAgbGV0IHsgZ2V0U3R5bGU6IGksIHNldFN0eWxlOiBhIH0gPSByLAogICAgICBvID0gaShlLCBVcyk7CiAgICAhbyB8fAogICAgICBvLmluZGV4T2YobikgPT09IC0xIHx8CiAgICAgIGEoCiAgICAgICAgZSwKICAgICAgICBVcywKICAgICAgICBvCiAgICAgICAgICAuc3BsaXQoQ2MpCiAgICAgICAgICAubWFwKFE0KQogICAgICAgICAgLmZpbHRlcigocykgPT4gcyAhPT0gbikKICAgICAgICAgIC5qb2luKENjKQogICAgICApOwogIH0KICBmdW5jdGlvbiBFT2UoeyBzdG9yZTogZSwgZWxlbWVudEFwaTogdCB9KSB7CiAgICBsZXQgeyBpeERhdGE6IHIgfSA9IGUuZ2V0U3RhdGUoKSwKICAgICAgeyBldmVudHM6IG4gPSB7fSwgYWN0aW9uTGlzdHM6IGkgPSB7fSB9ID0gcjsKICAgIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGEpID0+IHsKICAgICAgbGV0IG8gPSBuW2FdLAogICAgICAgIHsgY29uZmlnOiBzIH0gPSBvLmFjdGlvbiwKICAgICAgICB7IGFjdGlvbkxpc3RJZDogYyB9ID0gcywKICAgICAgICB1ID0gaVtjXTsKICAgICAgdSAmJiBWNCh7IGFjdGlvbkxpc3Q6IHUsIGV2ZW50OiBvLCBlbGVtZW50QXBpOiB0IH0pOwogICAgfSksCiAgICAgIE9iamVjdC5rZXlzKGkpLmZvckVhY2goKGEpID0+IHsKICAgICAgICBWNCh7IGFjdGlvbkxpc3Q6IGlbYV0sIGVsZW1lbnRBcGk6IHQgfSk7CiAgICAgIH0pOwogIH0KICBmdW5jdGlvbiBWNCh7IGFjdGlvbkxpc3Q6IGUgPSB7fSwgZXZlbnQ6IHQsIGVsZW1lbnRBcGk6IHIgfSkgewogICAgbGV0IHsgYWN0aW9uSXRlbUdyb3VwczogbiwgY29udGludW91c1BhcmFtZXRlckdyb3VwczogaSB9ID0gZTsKICAgIG4gJiYKICAgICAgbi5mb3JFYWNoKChhKSA9PiB7CiAgICAgICAgSDQoeyBhY3Rpb25Hcm91cDogYSwgZXZlbnQ6IHQsIGVsZW1lbnRBcGk6IHIgfSk7CiAgICAgIH0pLAogICAgICBpICYmCiAgICAgICAgaS5mb3JFYWNoKChhKSA9PiB7CiAgICAgICAgICBsZXQgeyBjb250aW51b3VzQWN0aW9uR3JvdXBzOiBvIH0gPSBhOwogICAgICAgICAgby5mb3JFYWNoKChzKSA9PiB7CiAgICAgICAgICAgIEg0KHsgYWN0aW9uR3JvdXA6IHMsIGV2ZW50OiB0LCBlbGVtZW50QXBpOiByIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgfQogIGZ1bmN0aW9uIEg0KHsgYWN0aW9uR3JvdXA6IGUsIGV2ZW50OiB0LCBlbGVtZW50QXBpOiByIH0pIHsKICAgIGxldCB7IGFjdGlvbkl0ZW1zOiBuIH0gPSBlOwogICAgbi5mb3JFYWNoKChpKSA9PiB7CiAgICAgIGxldCB7IGFjdGlvblR5cGVJZDogYSwgY29uZmlnOiBvIH0gPSBpLAogICAgICAgIHM7CiAgICAgIGFvKGEpCiAgICAgICAgPyAocyA9IChjKSA9PiBxYihhKShjLCBpKSkKICAgICAgICA6IChzID0gdEYoeyBlZmZlY3Q6IF9PZSwgYWN0aW9uVHlwZUlkOiBhLCBlbGVtZW50QXBpOiByIH0pKSwKICAgICAgICBHYih7IGNvbmZpZzogbywgZXZlbnQ6IHQsIGVsZW1lbnRBcGk6IHIgfSkuZm9yRWFjaChzKTsKICAgIH0pOwogIH0KICBmdW5jdGlvbiBUT2UoZSwgdCwgcikgewogICAgbGV0IHsgc2V0U3R5bGU6IG4sIGdldFN0eWxlOiBpIH0gPSByLAogICAgICB7IGFjdGlvblR5cGVJZDogYSB9ID0gdDsKICAgIGlmIChhID09PSBHcykgewogICAgICBsZXQgeyBjb25maWc6IG8gfSA9IHQ7CiAgICAgIG8ud2lkdGhVbml0ID09PSB1YSAmJiBuKGUsIFVuLCAiIiksIG8uaGVpZ2h0VW5pdCA9PT0gdWEgJiYgbihlLCBYbiwgIiIpOwogICAgfQogICAgaShlLCBVcykgJiYgdEYoeyBlZmZlY3Q6IGVGLCBhY3Rpb25UeXBlSWQ6IGEsIGVsZW1lbnRBcGk6IHIgfSkoZSk7CiAgfQogIGZ1bmN0aW9uIF9PZShlLCB0LCByKSB7CiAgICBsZXQgeyBzZXRTdHlsZTogbiB9ID0gcjsKICAgIGVGKGUsIHQsIHIpLCBuKGUsIHQsICIiKSwgdCA9PT0gY2EgJiYgbihlLCBocCwgIiIpOwogIH0KICBmdW5jdGlvbiByRihlKSB7CiAgICBsZXQgdCA9IDAsCiAgICAgIHIgPSAwOwogICAgcmV0dXJuICgKICAgICAgZS5mb3JFYWNoKChuLCBpKSA9PiB7CiAgICAgICAgbGV0IHsgY29uZmlnOiBhIH0gPSBuLAogICAgICAgICAgbyA9IGEuZGVsYXkgKyBhLmR1cmF0aW9uOwogICAgICAgIG8gPj0gdCAmJiAoKHQgPSBvKSwgKHIgPSBpKSk7CiAgICAgIH0pLAogICAgICByCiAgICApOwogIH0KICBmdW5jdGlvbiBTT2UoZSwgdCkgewogICAgbGV0IHsgYWN0aW9uSXRlbUdyb3VwczogciwgdXNlRmlyc3RHcm91cEFzSW5pdGlhbFN0YXRlOiBuIH0gPSBlLAogICAgICB7IGFjdGlvbkl0ZW06IGksIHZlcmJvc2VUaW1lRWxhcHNlZDogYSA9IDAgfSA9IHQsCiAgICAgIG8gPSAwLAogICAgICBzID0gMDsKICAgIHJldHVybiAoCiAgICAgIHIuZm9yRWFjaCgoYywgdSkgPT4gewogICAgICAgIGlmIChuICYmIHUgPT09IDApIHJldHVybjsKICAgICAgICBsZXQgeyBhY3Rpb25JdGVtczogbCB9ID0gYywKICAgICAgICAgIHAgPSBsW3JGKGwpXSwKICAgICAgICAgIHsgY29uZmlnOiBkLCBhY3Rpb25UeXBlSWQ6IGggfSA9IHA7CiAgICAgICAgaS5pZCA9PT0gcC5pZCAmJiAocyA9IG8gKyBhKTsKICAgICAgICBsZXQgbSA9IFo0KGgpID09PSBYYiA/IDAgOiBkLmR1cmF0aW9uOwogICAgICAgIG8gKz0gZC5kZWxheSArIG07CiAgICAgIH0pLAogICAgICBvID4gMCA/IF9jKHMgLyBvKSA6IDAKICAgICk7CiAgfQogIGZ1bmN0aW9uIE9PZSh7IGFjdGlvbkxpc3Q6IGUsIGFjdGlvbkl0ZW1JZDogdCwgcmF3RGF0YTogciB9KSB7CiAgICBsZXQgeyBhY3Rpb25JdGVtR3JvdXBzOiBuLCBjb250aW51b3VzUGFyYW1ldGVyR3JvdXBzOiBpIH0gPSBlLAogICAgICBhID0gW10sCiAgICAgIG8gPSAocykgPT4gKAogICAgICAgIGEucHVzaCgoMCwgT3AubWVyZ2VJbikocywgWyJjb25maWciXSwgeyBkZWxheTogMCwgZHVyYXRpb246IDAgfSkpLAogICAgICAgIHMuaWQgPT09IHQKICAgICAgKTsKICAgIHJldHVybiAoCiAgICAgIG4gJiYgbi5zb21lKCh7IGFjdGlvbkl0ZW1zOiBzIH0pID0+IHMuc29tZShvKSksCiAgICAgIGkgJiYKICAgICAgICBpLnNvbWUoKHMpID0+IHsKICAgICAgICAgIGxldCB7IGNvbnRpbnVvdXNBY3Rpb25Hcm91cHM6IGMgfSA9IHM7CiAgICAgICAgICByZXR1cm4gYy5zb21lKCh7IGFjdGlvbkl0ZW1zOiB1IH0pID0+IHUuc29tZShvKSk7CiAgICAgICAgfSksCiAgICAgICgwLCBPcC5zZXRJbikociwgWyJhY3Rpb25MaXN0cyJdLCB7CiAgICAgICAgW2UuaWRdOiB7IGlkOiBlLmlkLCBhY3Rpb25JdGVtR3JvdXBzOiBbeyBhY3Rpb25JdGVtczogYSB9XSB9LAogICAgICB9KQogICAgKTsKICB9CiAgZnVuY3Rpb24geE9lKGUsIHsgYmFzZWRPbjogdCB9KSB7CiAgICByZXR1cm4gKAogICAgICAoZSA9PT0gZ24uU0NST0xMSU5HX0lOX1ZJRVcgJiYgKHQgPT09IFduLkVMRU1FTlQgfHwgdCA9PSBudWxsKSkgfHwKICAgICAgKGUgPT09IGduLk1PVVNFX01PVkUgJiYgdCA9PT0gV24uRUxFTUVOVCkKICAgICk7CiAgfQogIGZ1bmN0aW9uIENPZShlLCB0KSB7CiAgICByZXR1cm4gZSArIFdTZSArIHQ7CiAgfQogIGZ1bmN0aW9uIFJPZShlLCB0KSB7CiAgICByZXR1cm4gdCA9PSBudWxsID8gITAgOiBlLmluZGV4T2YodCkgIT09IC0xOwogIH0KICBmdW5jdGlvbiBJT2UoZSwgdCkgewogICAgcmV0dXJuIFdiKGUgJiYgZS5zb3J0KCksIHQgJiYgdC5zb3J0KCkpOwogIH0KICBmdW5jdGlvbiBMT2UoZSkgewogICAgaWYgKHR5cGVvZiBlID09ICJzdHJpbmciKSByZXR1cm4gZTsKICAgIGlmIChlLnBsdWdpbkVsZW1lbnQgJiYgZS5vYmplY3RJZCkgcmV0dXJuIGUucGx1Z2luRWxlbWVudCArIFViICsgZS5vYmplY3RJZDsKICAgIGlmIChlLm9iamVjdElkKSByZXR1cm4gZS5vYmplY3RJZDsKICAgIGxldCB7IGlkOiB0ID0gIiIsIHNlbGVjdG9yOiByID0gIiIsIHVzZUV2ZW50VGFyZ2V0OiBuID0gIiIgfSA9IGU7CiAgICByZXR1cm4gdCArIFViICsgciArIFViICsgbjsKICB9CiAgdmFyIF9pLAogICAgU3AsCiAgICBFcCwKICAgIE9wLAogICAgRzQsCiAgICB4U2UsCiAgICBDU2UsCiAgICBSU2UsCiAgICBJU2UsCiAgICBMU2UsCiAgICBOU2UsCiAgICB3U2UsCiAgICBQU2UsCiAgICBEU2UsCiAgICBxU2UsCiAgICBUcCwKICAgIE9jLAogICAgeGMsCiAgICBVbiwKICAgIFhuLAogICAgajQsCiAgICB6U2UsCiAgICBGU2UsCiAgICBCNCwKICAgIGtTZSwKICAgIFc0LAogICAgQlNlLAogICAgX3AsCiAgICBVcywKICAgIHVhLAogICAgQ2MsCiAgICBXU2UsCiAgICBVYiwKICAgIFk0LAogICAgWGIsCiAgICBWYiwKICAgIEs0LAogICAgWHMsCiAgICBWcywKICAgIEhzLAogICAgUmMsCiAgICAkNCwKICAgIEljLAogICAgTGMsCiAgICBHcywKICAgIGpzLAogICAgWXMsCiAgICBLcywKICAgIHhwLAogICAgVVNlLAogICAgUTQsCiAgICBIYiwKICAgIEo0LAogICAgQXAsCiAgICBWU2UsCiAgICBHU2UsCiAgICBLU2UsCiAgICBYNCwKICAgIEpTZSwKICAgIFpTZSwKICAgIHRPZSwKICAgIHJPZSwKICAgIG5PZSwKICAgIGpiLAogICAgc09lLAogICAgY09lLAogICAgdU9lLAogICAgbE9lLAogICAgbU9lLAogICAgeU9lLAogICAgZ09lLAogICAgdEYsCiAgICBpRiA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIChfaSA9IGJlKEZiKCkpKSwgKFNwID0gYmUodzQoKSkpLCAoRXAgPSBiZSh6NCgpKSksIChPcCA9IGJlKEJzKCkpKTsKICAgICAga3IoKTsKICAgICAgazQoKTsKICAgICAgTWIoKTsKICAgICAgRzQgPSBiZShDYigpKTsKICAgICAgemIoKTsKICAgICAgbXAoKTsKICAgICAgKHsKICAgICAgICBCQUNLR1JPVU5EOiB4U2UsCiAgICAgICAgVFJBTlNGT1JNOiBDU2UsCiAgICAgICAgVFJBTlNMQVRFXzNEOiBSU2UsCiAgICAgICAgU0NBTEVfM0Q6IElTZSwKICAgICAgICBST1RBVEVfWDogTFNlLAogICAgICAgIFJPVEFURV9ZOiBOU2UsCiAgICAgICAgUk9UQVRFX1o6IHdTZSwKICAgICAgICBTS0VXOiBQU2UsCiAgICAgICAgUFJFU0VSVkVfM0Q6IERTZSwKICAgICAgICBGTEVYOiBxU2UsCiAgICAgICAgT1BBQ0lUWTogVHAsCiAgICAgICAgRklMVEVSOiBPYywKICAgICAgICBGT05UX1ZBUklBVElPTl9TRVRUSU5HUzogeGMsCiAgICAgICAgV0lEVEg6IFVuLAogICAgICAgIEhFSUdIVDogWG4sCiAgICAgICAgQkFDS0dST1VORF9DT0xPUjogajQsCiAgICAgICAgQk9SREVSX0NPTE9SOiB6U2UsCiAgICAgICAgQ09MT1I6IEZTZSwKICAgICAgICBDSElMRFJFTjogQjQsCiAgICAgICAgSU1NRURJQVRFX0NISUxEUkVOOiBrU2UsCiAgICAgICAgU0lCTElOR1M6IFc0LAogICAgICAgIFBBUkVOVDogQlNlLAogICAgICAgIERJU1BMQVk6IF9wLAogICAgICAgIFdJTExfQ0hBTkdFOiBVcywKICAgICAgICBBVVRPOiB1YSwKICAgICAgICBDT01NQV9ERUxJTUlURVI6IENjLAogICAgICAgIENPTE9OX0RFTElNSVRFUjogV1NlLAogICAgICAgIEJBUl9ERUxJTUlURVI6IFViLAogICAgICAgIFJFTkRFUl9UUkFOU0ZPUk06IFk0LAogICAgICAgIFJFTkRFUl9HRU5FUkFMOiBYYiwKICAgICAgICBSRU5ERVJfU1RZTEU6IFZiLAogICAgICAgIFJFTkRFUl9QTFVHSU46IEs0LAogICAgICB9ID0geXIpLAogICAgICAgICh7CiAgICAgICAgICBUUkFOU0ZPUk1fTU9WRTogWHMsCiAgICAgICAgICBUUkFOU0ZPUk1fU0NBTEU6IFZzLAogICAgICAgICAgVFJBTlNGT1JNX1JPVEFURTogSHMsCiAgICAgICAgICBUUkFOU0ZPUk1fU0tFVzogUmMsCiAgICAgICAgICBTVFlMRV9PUEFDSVRZOiAkNCwKICAgICAgICAgIFNUWUxFX0ZJTFRFUjogSWMsCiAgICAgICAgICBTVFlMRV9GT05UX1ZBUklBVElPTjogTGMsCiAgICAgICAgICBTVFlMRV9TSVpFOiBHcywKICAgICAgICAgIFNUWUxFX0JBQ0tHUk9VTkRfQ09MT1I6IGpzLAogICAgICAgICAgU1RZTEVfQk9SREVSOiBZcywKICAgICAgICAgIFNUWUxFX1RFWFRfQ09MT1I6IEtzLAogICAgICAgICAgR0VORVJBTF9ESVNQTEFZOiB4cCwKICAgICAgICAgIE9CSkVDVF9WQUxVRTogVVNlLAogICAgICAgIH0gPSBPciksCiAgICAgICAgKFE0ID0gKGUpID0+IGUudHJpbSgpKSwKICAgICAgICAoSGIgPSBPYmplY3QuZnJlZXplKHsgW2pzXTogajQsIFtZc106IHpTZSwgW0tzXTogRlNlIH0pKSwKICAgICAgICAoSjQgPSBPYmplY3QuZnJlZXplKHsKICAgICAgICAgIFtjYV06IENTZSwKICAgICAgICAgIFtqNF06IHhTZSwKICAgICAgICAgIFtUcF06IFRwLAogICAgICAgICAgW09jXTogT2MsCiAgICAgICAgICBbVW5dOiBVbiwKICAgICAgICAgIFtYbl06IFhuLAogICAgICAgICAgW3hjXTogeGMsCiAgICAgICAgfSkpLAogICAgICAgIChBcCA9IG5ldyBNYXAoKSk7CiAgICAgIFZTZSA9IDE7CiAgICAgIEdTZSA9IDE7CiAgICAgIEtTZSA9IChlLCB0KSA9PiBlID09PSB0OwogICAgICAoWDQgPSAvcHgvKSwKICAgICAgICAoSlNlID0gKGUsIHQpID0+CiAgICAgICAgICB0LnJlZHVjZSgKICAgICAgICAgICAgKHIsIG4pID0+IChyW24udHlwZV0gPT0gbnVsbCAmJiAocltuLnR5cGVdID0gc09lW24udHlwZV0pLCByKSwKICAgICAgICAgICAgZSB8fCB7fQogICAgICAgICAgKSksCiAgICAgICAgKFpTZSA9IChlLCB0KSA9PgogICAgICAgICAgdC5yZWR1Y2UoCiAgICAgICAgICAgIChyLCBuKSA9PiAoCiAgICAgICAgICAgICAgcltuLnR5cGVdID09IG51bGwgJiYKICAgICAgICAgICAgICAgIChyW24udHlwZV0gPSBjT2Vbbi50eXBlXSB8fCBuLmRlZmF1bHRWYWx1ZSB8fCAwKSwKICAgICAgICAgICAgICByCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGUgfHwge30KICAgICAgICAgICkpOwogICAgICAodE9lID0gKGUsIHQpID0+ICh0ICYmIChlW3QudHlwZV0gPSB0LnZhbHVlIHx8IDApLCBlKSksCiAgICAgICAgKHJPZSA9IChlLCB0KSA9PiAodCAmJiAoZVt0LnR5cGVdID0gdC52YWx1ZSB8fCAwKSwgZSkpLAogICAgICAgIChuT2UgPSAoZSwgdCwgcikgPT4gewogICAgICAgICAgaWYgKGFvKGUpKSByZXR1cm4gTmIoZSkociwgdCk7CiAgICAgICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgICAgY2FzZSBJYzogewogICAgICAgICAgICAgIGxldCBuID0gKDAsIEVwLmRlZmF1bHQpKHIuZmlsdGVycywgKHsgdHlwZTogaSB9KSA9PiBpID09PSB0KTsKICAgICAgICAgICAgICByZXR1cm4gbiA/IG4udmFsdWUgOiAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgTGM6IHsKICAgICAgICAgICAgICBsZXQgbiA9ICgwLCBFcC5kZWZhdWx0KSgKICAgICAgICAgICAgICAgIHIuZm9udFZhcmlhdGlvbnMsCiAgICAgICAgICAgICAgICAoeyB0eXBlOiBpIH0pID0+IGkgPT09IHQKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHJldHVybiBuID8gbi52YWx1ZSA6IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICByZXR1cm4gclt0XTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgKGpiID0gewogICAgICAgIFtYc106IE9iamVjdC5mcmVlemUoeyB4VmFsdWU6IDAsIHlWYWx1ZTogMCwgelZhbHVlOiAwIH0pLAogICAgICAgIFtWc106IE9iamVjdC5mcmVlemUoeyB4VmFsdWU6IDEsIHlWYWx1ZTogMSwgelZhbHVlOiAxIH0pLAogICAgICAgIFtIc106IE9iamVjdC5mcmVlemUoeyB4VmFsdWU6IDAsIHlWYWx1ZTogMCwgelZhbHVlOiAwIH0pLAogICAgICAgIFtSY106IE9iamVjdC5mcmVlemUoeyB4VmFsdWU6IDAsIHlWYWx1ZTogMCB9KSwKICAgICAgfSksCiAgICAgICAgKHNPZSA9IE9iamVjdC5mcmVlemUoewogICAgICAgICAgYmx1cjogMCwKICAgICAgICAgICJodWUtcm90YXRlIjogMCwKICAgICAgICAgIGludmVydDogMCwKICAgICAgICAgIGdyYXlzY2FsZTogMCwKICAgICAgICAgIHNhdHVyYXRlOiAxMDAsCiAgICAgICAgICBzZXBpYTogMCwKICAgICAgICAgIGNvbnRyYXN0OiAxMDAsCiAgICAgICAgICBicmlnaHRuZXNzOiAxMDAsCiAgICAgICAgfSkpLAogICAgICAgIChjT2UgPSBPYmplY3QuZnJlZXplKHsgd2dodDogMCwgb3BzejogMCwgd2R0aDogMCwgc2xudDogMCB9KSksCiAgICAgICAgKHVPZSA9IChlLCB0KSA9PiB7CiAgICAgICAgICBsZXQgciA9ICgwLCBFcC5kZWZhdWx0KSh0LmZpbHRlcnMsICh7IHR5cGU6IG4gfSkgPT4gbiA9PT0gZSk7CiAgICAgICAgICBpZiAociAmJiByLnVuaXQpIHJldHVybiByLnVuaXQ7CiAgICAgICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgICAgY2FzZSAiYmx1ciI6CiAgICAgICAgICAgICAgcmV0dXJuICJweCI7CiAgICAgICAgICAgIGNhc2UgImh1ZS1yb3RhdGUiOgogICAgICAgICAgICAgIHJldHVybiAiZGVnIjsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICByZXR1cm4gIiUiOwogICAgICAgICAgfQogICAgICAgIH0pLAogICAgICAgIChsT2UgPSBPYmplY3Qua2V5cyhqYikpOwogICAgICAobU9lID0gIlxcKChbXildKylcXCkiKSwgKHlPZSA9IC9ecmdiLyksIChnT2UgPSBSZWdFeHAoYHJnYmE/JHttT2V9YCkpOwogICAgICB0RiA9CiAgICAgICAgKHsgZWZmZWN0OiBlLCBhY3Rpb25UeXBlSWQ6IHQsIGVsZW1lbnRBcGk6IHIgfSkgPT4KICAgICAgICAobikgPT4gewogICAgICAgICAgc3dpdGNoICh0KSB7CiAgICAgICAgICAgIGNhc2UgWHM6CiAgICAgICAgICAgIGNhc2UgVnM6CiAgICAgICAgICAgIGNhc2UgSHM6CiAgICAgICAgICAgIGNhc2UgUmM6CiAgICAgICAgICAgICAgZShuLCBjYSwgcik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgSWM6CiAgICAgICAgICAgICAgZShuLCBPYywgcik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgTGM6CiAgICAgICAgICAgICAgZShuLCB4Yywgcik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJDQ6CiAgICAgICAgICAgICAgZShuLCBUcCwgcik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgR3M6CiAgICAgICAgICAgICAgZShuLCBVbiwgciksIGUobiwgWG4sIHIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIGpzOgogICAgICAgICAgICBjYXNlIFlzOgogICAgICAgICAgICBjYXNlIEtzOgogICAgICAgICAgICAgIGUobiwgSGJbdF0sIHIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIHhwOgogICAgICAgICAgICAgIGUobiwgX3AsIHIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH07CiAgICB9KTsKICB2YXIgY28gPSBFKChZYikgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFliLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6ICEwIH0pOwogICAgZnVuY3Rpb24gTk9lKGUsIHQpIHsKICAgICAgZm9yICh2YXIgciBpbiB0KQogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCB7IGVudW1lcmFibGU6ICEwLCBnZXQ6IHRbcl0gfSk7CiAgICB9CiAgICBOT2UoWWIsIHsKICAgICAgSVgyQnJvd3NlclN1cHBvcnQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gd09lOwogICAgICB9LAogICAgICBJWDJFYXNpbmdVdGlsczogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBET2U7CiAgICAgIH0sCiAgICAgIElYMkVhc2luZ3M6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gUE9lOwogICAgICB9LAogICAgICBJWDJFbGVtZW50c1JlZHVjZXI6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gcU9lOwogICAgICB9LAogICAgICBJWDJWYW5pbGxhUGx1Z2luczogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB6T2U7CiAgICAgIH0sCiAgICAgIElYMlZhbmlsbGFVdGlsczogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBGT2U7CiAgICAgIH0sCiAgICB9KTsKICAgIHZhciB3T2UgPSAkcygobXAoKSwgb3QoZTQpKSksCiAgICAgIFBPZSA9ICRzKChiYigpLCBvdChUYykpKSwKICAgICAgRE9lID0gJHMoKE1iKCksIG90KHM0KSkpLAogICAgICBxT2UgPSAkcygoZjQoKSwgb3QobDQpKSksCiAgICAgIHpPZSA9ICRzKCh6YigpLCBvdChNNCkpKSwKICAgICAgRk9lID0gJHMoKGlGKCksIG90KG5GKSkpOwogICAgZnVuY3Rpb24gYUYoZSkgewogICAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT0gImZ1bmN0aW9uIikgcmV0dXJuIG51bGw7CiAgICAgIHZhciB0ID0gbmV3IFdlYWtNYXAoKSwKICAgICAgICByID0gbmV3IFdlYWtNYXAoKTsKICAgICAgcmV0dXJuIChhRiA9IGZ1bmN0aW9uIChuKSB7CiAgICAgICAgcmV0dXJuIG4gPyByIDogdDsKICAgICAgfSkoZSk7CiAgICB9CiAgICBmdW5jdGlvbiAkcyhlLCB0KSB7CiAgICAgIGlmICghdCAmJiBlICYmIGUuX19lc01vZHVsZSkgcmV0dXJuIGU7CiAgICAgIGlmIChlID09PSBudWxsIHx8ICh0eXBlb2YgZSAhPSAib2JqZWN0IiAmJiB0eXBlb2YgZSAhPSAiZnVuY3Rpb24iKSkKICAgICAgICByZXR1cm4geyBkZWZhdWx0OiBlIH07CiAgICAgIHZhciByID0gYUYodCk7CiAgICAgIGlmIChyICYmIHIuaGFzKGUpKSByZXR1cm4gci5nZXQoZSk7CiAgICAgIHZhciBuID0geyBfX3Byb3RvX186IG51bGwgfSwKICAgICAgICBpID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgIGZvciAodmFyIGEgaW4gZSkKICAgICAgICBpZiAoYSAhPT0gImRlZmF1bHQiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCBhKSkgewogICAgICAgICAgdmFyIG8gPSBpID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCBhKSA6IG51bGw7CiAgICAgICAgICBvICYmIChvLmdldCB8fCBvLnNldCkKICAgICAgICAgICAgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkobiwgYSwgbykKICAgICAgICAgICAgOiAoblthXSA9IGVbYV0pOwogICAgICAgIH0KICAgICAgcmV0dXJuIChuLmRlZmF1bHQgPSBlKSwgciAmJiByLnNldChlLCBuKSwgbjsKICAgIH0KICB9KTsKICB2YXIgUnAsCiAgICBTaSwKICAgIGtPZSwKICAgIEJPZSwKICAgIFdPZSwKICAgIFVPZSwKICAgIFhPZSwKICAgIFZPZSwKICAgIENwLAogICAgb0YsCiAgICBIT2UsCiAgICBHT2UsCiAgICBLYiwKICAgIGpPZSwKICAgIFlPZSwKICAgIEtPZSwKICAgICRPZSwKICAgIHNGLAogICAgY0YgPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBrcigpOwogICAgICAoUnAgPSBiZShjbygpKSksCiAgICAgICAgKFNpID0gYmUoQnMoKSkpLAogICAgICAgICh7CiAgICAgICAgICBJWDJfUkFXX0RBVEFfSU1QT1JURUQ6IGtPZSwKICAgICAgICAgIElYMl9TRVNTSU9OX1NUT1BQRUQ6IEJPZSwKICAgICAgICAgIElYMl9JTlNUQU5DRV9BRERFRDogV09lLAogICAgICAgICAgSVgyX0lOU1RBTkNFX1NUQVJURUQ6IFVPZSwKICAgICAgICAgIElYMl9JTlNUQU5DRV9SRU1PVkVEOiBYT2UsCiAgICAgICAgICBJWDJfQU5JTUFUSU9OX0ZSQU1FX0NIQU5HRUQ6IFZPZSwKICAgICAgICB9ID0gWHQpLAogICAgICAgICh7CiAgICAgICAgICBvcHRpbWl6ZUZsb2F0OiBDcCwKICAgICAgICAgIGFwcGx5RWFzaW5nOiBvRiwKICAgICAgICAgIGNyZWF0ZUJlemllckVhc2luZzogSE9lLAogICAgICAgIH0gPSBScC5JWDJFYXNpbmdVdGlscyksCiAgICAgICAgKHsgUkVOREVSX0dFTkVSQUw6IEdPZSB9ID0geXIpLAogICAgICAgICh7CiAgICAgICAgICBnZXRJdGVtQ29uZmlnQnlLZXk6IEtiLAogICAgICAgICAgZ2V0UmVuZGVyVHlwZTogak9lLAogICAgICAgICAgZ2V0U3R5bGVQcm9wOiBZT2UsCiAgICAgICAgfSA9IFJwLklYMlZhbmlsbGFVdGlscyksCiAgICAgICAgKEtPZSA9IChlLCB0KSA9PiB7CiAgICAgICAgICBsZXQgewogICAgICAgICAgICAgIHBvc2l0aW9uOiByLAogICAgICAgICAgICAgIHBhcmFtZXRlcklkOiBuLAogICAgICAgICAgICAgIGFjdGlvbkdyb3VwczogaSwKICAgICAgICAgICAgICBkZXN0aW5hdGlvbktleXM6IGEsCiAgICAgICAgICAgICAgc21vb3RoaW5nOiBvLAogICAgICAgICAgICAgIHJlc3RpbmdWYWx1ZTogcywKICAgICAgICAgICAgICBhY3Rpb25UeXBlSWQ6IGMsCiAgICAgICAgICAgICAgY3VzdG9tRWFzaW5nRm46IHUsCiAgICAgICAgICAgICAgc2tpcE1vdGlvbjogbCwKICAgICAgICAgICAgICBza2lwVG9WYWx1ZTogcCwKICAgICAgICAgICAgfSA9IGUsCiAgICAgICAgICAgIHsgcGFyYW1ldGVyczogZCB9ID0gdC5wYXlsb2FkLAogICAgICAgICAgICBoID0gTWF0aC5tYXgoMSAtIG8sIDAuMDEpLAogICAgICAgICAgICBtID0gZFtuXTsKICAgICAgICAgIG0gPT0gbnVsbCAmJiAoKGggPSAxKSwgKG0gPSBzKSk7CiAgICAgICAgICBsZXQgdiA9IE1hdGgubWF4KG0sIDApIHx8IDAsCiAgICAgICAgICAgIHkgPSBDcCh2IC0gciksCiAgICAgICAgICAgIGcgPSBsID8gcCA6IENwKHIgKyB5ICogaCksCiAgICAgICAgICAgIE0gPSBnICogMTAwOwogICAgICAgICAgaWYgKGcgPT09IHIgJiYgZS5jdXJyZW50KSByZXR1cm4gZTsKICAgICAgICAgIGxldCBBLCBfLCBDLCBSOwogICAgICAgICAgZm9yIChsZXQgTiA9IDAsIHsgbGVuZ3RoOiBXIH0gPSBpOyBOIDwgVzsgTisrKSB7CiAgICAgICAgICAgIGxldCB7IGtleWZyYW1lOiBrLCBhY3Rpb25JdGVtczogcSB9ID0gaVtOXTsKICAgICAgICAgICAgaWYgKChOID09PSAwICYmIChBID0gcVswXSksIE0gPj0gaykpIHsKICAgICAgICAgICAgICBBID0gcVswXTsKICAgICAgICAgICAgICBsZXQgSCA9IGlbTiArIDFdLAogICAgICAgICAgICAgICAgWCA9IEggJiYgTSAhPT0gazsKICAgICAgICAgICAgICAoXyA9IFggPyBILmFjdGlvbkl0ZW1zWzBdIDogbnVsbCksCiAgICAgICAgICAgICAgICBYICYmICgoQyA9IGsgLyAxMDApLCAoUiA9IChILmtleWZyYW1lIC0gaykgLyAxMDApKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgbGV0IEwgPSB7fTsKICAgICAgICAgIGlmIChBICYmICFfKQogICAgICAgICAgICBmb3IgKGxldCBOID0gMCwgeyBsZW5ndGg6IFcgfSA9IGE7IE4gPCBXOyBOKyspIHsKICAgICAgICAgICAgICBsZXQgayA9IGFbTl07CiAgICAgICAgICAgICAgTFtrXSA9IEtiKGMsIGssIEEuY29uZmlnKTsKICAgICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoQSAmJiBfICYmIEMgIT09IHZvaWQgMCAmJiBSICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgbGV0IE4gPSAoZyAtIEMpIC8gUiwKICAgICAgICAgICAgICBXID0gQS5jb25maWcuZWFzaW5nLAogICAgICAgICAgICAgIGsgPSBvRihXLCBOLCB1KTsKICAgICAgICAgICAgZm9yIChsZXQgcSA9IDAsIHsgbGVuZ3RoOiBIIH0gPSBhOyBxIDwgSDsgcSsrKSB7CiAgICAgICAgICAgICAgbGV0IFggPSBhW3FdLAogICAgICAgICAgICAgICAgVSA9IEtiKGMsIFgsIEEuY29uZmlnKSwKICAgICAgICAgICAgICAgIHllID0gKEtiKGMsIFgsIF8uY29uZmlnKSAtIFUpICogayArIFU7CiAgICAgICAgICAgICAgTFtYXSA9IHllOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gKDAsIFNpLm1lcmdlKShlLCB7IHBvc2l0aW9uOiBnLCBjdXJyZW50OiBMIH0pOwogICAgICAgIH0pLAogICAgICAgICgkT2UgPSAoZSwgdCkgPT4gewogICAgICAgICAgbGV0IHsKICAgICAgICAgICAgICBhY3RpdmU6IHIsCiAgICAgICAgICAgICAgb3JpZ2luOiBuLAogICAgICAgICAgICAgIHN0YXJ0OiBpLAogICAgICAgICAgICAgIGltbWVkaWF0ZTogYSwKICAgICAgICAgICAgICByZW5kZXJUeXBlOiBvLAogICAgICAgICAgICAgIHZlcmJvc2U6IHMsCiAgICAgICAgICAgICAgYWN0aW9uSXRlbTogYywKICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogdSwKICAgICAgICAgICAgICBkZXN0aW5hdGlvbktleXM6IGwsCiAgICAgICAgICAgICAgcGx1Z2luRHVyYXRpb246IHAsCiAgICAgICAgICAgICAgaW5zdGFuY2VEZWxheTogZCwKICAgICAgICAgICAgICBjdXN0b21FYXNpbmdGbjogaCwKICAgICAgICAgICAgICBza2lwTW90aW9uOiBtLAogICAgICAgICAgICB9ID0gZSwKICAgICAgICAgICAgdiA9IGMuY29uZmlnLmVhc2luZywKICAgICAgICAgICAgeyBkdXJhdGlvbjogeSwgZGVsYXk6IGcgfSA9IGMuY29uZmlnOwogICAgICAgICAgcCAhPSBudWxsICYmICh5ID0gcCksCiAgICAgICAgICAgIChnID0gZCA/PyBnKSwKICAgICAgICAgICAgbyA9PT0gR09lID8gKHkgPSAwKSA6IChhIHx8IG0pICYmICh5ID0gZyA9IDApOwogICAgICAgICAgbGV0IHsgbm93OiBNIH0gPSB0LnBheWxvYWQ7CiAgICAgICAgICBpZiAociAmJiBuKSB7CiAgICAgICAgICAgIGxldCBBID0gTSAtIChpICsgZyk7CiAgICAgICAgICAgIGlmIChzKSB7CiAgICAgICAgICAgICAgbGV0IE4gPSBNIC0gaSwKICAgICAgICAgICAgICAgIFcgPSB5ICsgZywKICAgICAgICAgICAgICAgIGsgPSBDcChNYXRoLm1pbihNYXRoLm1heCgwLCBOIC8gVyksIDEpKTsKICAgICAgICAgICAgICBlID0gKDAsIFNpLnNldCkoZSwgInZlcmJvc2VUaW1lRWxhcHNlZCIsIFcgKiBrKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoQSA8IDApIHJldHVybiBlOwogICAgICAgICAgICBsZXQgXyA9IENwKE1hdGgubWluKE1hdGgubWF4KDAsIEEgLyB5KSwgMSkpLAogICAgICAgICAgICAgIEMgPSBvRih2LCBfLCBoKSwKICAgICAgICAgICAgICBSID0ge30sCiAgICAgICAgICAgICAgTCA9IG51bGw7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgbC5sZW5ndGggJiYKICAgICAgICAgICAgICAgIChMID0gbC5yZWR1Y2UoKE4sIFcpID0+IHsKICAgICAgICAgICAgICAgICAgbGV0IGsgPSB1W1ddLAogICAgICAgICAgICAgICAgICAgIHEgPSBwYXJzZUZsb2F0KG5bV10pIHx8IDAsCiAgICAgICAgICAgICAgICAgICAgWCA9IChwYXJzZUZsb2F0KGspIC0gcSkgKiBDICsgcTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIChOW1ddID0gWCksIE47CiAgICAgICAgICAgICAgICB9LCB7fSkpLAogICAgICAgICAgICAgIChSLmN1cnJlbnQgPSBMKSwKICAgICAgICAgICAgICAoUi5wb3NpdGlvbiA9IF8pLAogICAgICAgICAgICAgIF8gPT09IDEgJiYgKChSLmFjdGl2ZSA9ICExKSwgKFIuY29tcGxldGUgPSAhMCkpLAogICAgICAgICAgICAgICgwLCBTaS5tZXJnZSkoZSwgUikKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBlOwogICAgICAgIH0pLAogICAgICAgIChzRiA9IChlID0gT2JqZWN0LmZyZWV6ZSh7fSksIHQpID0+IHsKICAgICAgICAgIHN3aXRjaCAodC50eXBlKSB7CiAgICAgICAgICAgIGNhc2Uga09lOgogICAgICAgICAgICAgIHJldHVybiB0LnBheWxvYWQuaXhJbnN0YW5jZXMgfHwgT2JqZWN0LmZyZWV6ZSh7fSk7CiAgICAgICAgICAgIGNhc2UgQk9lOgogICAgICAgICAgICAgIHJldHVybiBPYmplY3QuZnJlZXplKHt9KTsKICAgICAgICAgICAgY2FzZSBXT2U6IHsKICAgICAgICAgICAgICBsZXQgewogICAgICAgICAgICAgICAgICBpbnN0YW5jZUlkOiByLAogICAgICAgICAgICAgICAgICBlbGVtZW50SWQ6IG4sCiAgICAgICAgICAgICAgICAgIGFjdGlvbkl0ZW06IGksCiAgICAgICAgICAgICAgICAgIGV2ZW50SWQ6IGEsCiAgICAgICAgICAgICAgICAgIGV2ZW50VGFyZ2V0OiBvLAogICAgICAgICAgICAgICAgICBldmVudFN0YXRlS2V5OiBzLAogICAgICAgICAgICAgICAgICBhY3Rpb25MaXN0SWQ6IGMsCiAgICAgICAgICAgICAgICAgIGdyb3VwSW5kZXg6IHUsCiAgICAgICAgICAgICAgICAgIGlzQ2FycmllcjogbCwKICAgICAgICAgICAgICAgICAgb3JpZ2luOiBwLAogICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogZCwKICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlOiBoLAogICAgICAgICAgICAgICAgICB2ZXJib3NlOiBtLAogICAgICAgICAgICAgICAgICBjb250aW51b3VzOiB2LAogICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJJZDogeSwKICAgICAgICAgICAgICAgICAgYWN0aW9uR3JvdXBzOiBnLAogICAgICAgICAgICAgICAgICBzbW9vdGhpbmc6IE0sCiAgICAgICAgICAgICAgICAgIHJlc3RpbmdWYWx1ZTogQSwKICAgICAgICAgICAgICAgICAgcGx1Z2luSW5zdGFuY2U6IF8sCiAgICAgICAgICAgICAgICAgIHBsdWdpbkR1cmF0aW9uOiBDLAogICAgICAgICAgICAgICAgICBpbnN0YW5jZURlbGF5OiBSLAogICAgICAgICAgICAgICAgICBza2lwTW90aW9uOiBMLAogICAgICAgICAgICAgICAgICBza2lwVG9WYWx1ZTogTiwKICAgICAgICAgICAgICAgIH0gPSB0LnBheWxvYWQsCiAgICAgICAgICAgICAgICB7IGFjdGlvblR5cGVJZDogVyB9ID0gaSwKICAgICAgICAgICAgICAgIGsgPSBqT2UoVyksCiAgICAgICAgICAgICAgICBxID0gWU9lKGssIFcpLAogICAgICAgICAgICAgICAgSCA9IE9iamVjdC5rZXlzKGQpLmZpbHRlcigKICAgICAgICAgICAgICAgICAgKFUpID0+IGRbVV0gIT0gbnVsbCAmJiB0eXBlb2YgZFtVXSAhPSAic3RyaW5nIgogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIHsgZWFzaW5nOiBYIH0gPSBpLmNvbmZpZzsKICAgICAgICAgICAgICByZXR1cm4gKDAsIFNpLnNldCkoZSwgciwgewogICAgICAgICAgICAgICAgaWQ6IHIsCiAgICAgICAgICAgICAgICBlbGVtZW50SWQ6IG4sCiAgICAgICAgICAgICAgICBhY3RpdmU6ICExLAogICAgICAgICAgICAgICAgcG9zaXRpb246IDAsCiAgICAgICAgICAgICAgICBzdGFydDogMCwKICAgICAgICAgICAgICAgIG9yaWdpbjogcCwKICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBkLAogICAgICAgICAgICAgICAgZGVzdGluYXRpb25LZXlzOiBILAogICAgICAgICAgICAgICAgaW1tZWRpYXRlOiBoLAogICAgICAgICAgICAgICAgdmVyYm9zZTogbSwKICAgICAgICAgICAgICAgIGN1cnJlbnQ6IG51bGwsCiAgICAgICAgICAgICAgICBhY3Rpb25JdGVtOiBpLAogICAgICAgICAgICAgICAgYWN0aW9uVHlwZUlkOiBXLAogICAgICAgICAgICAgICAgZXZlbnRJZDogYSwKICAgICAgICAgICAgICAgIGV2ZW50VGFyZ2V0OiBvLAogICAgICAgICAgICAgICAgZXZlbnRTdGF0ZUtleTogcywKICAgICAgICAgICAgICAgIGFjdGlvbkxpc3RJZDogYywKICAgICAgICAgICAgICAgIGdyb3VwSW5kZXg6IHUsCiAgICAgICAgICAgICAgICByZW5kZXJUeXBlOiBrLAogICAgICAgICAgICAgICAgaXNDYXJyaWVyOiBsLAogICAgICAgICAgICAgICAgc3R5bGVQcm9wOiBxLAogICAgICAgICAgICAgICAgY29udGludW91czogdiwKICAgICAgICAgICAgICAgIHBhcmFtZXRlcklkOiB5LAogICAgICAgICAgICAgICAgYWN0aW9uR3JvdXBzOiBnLAogICAgICAgICAgICAgICAgc21vb3RoaW5nOiBNLAogICAgICAgICAgICAgICAgcmVzdGluZ1ZhbHVlOiBBLAogICAgICAgICAgICAgICAgcGx1Z2luSW5zdGFuY2U6IF8sCiAgICAgICAgICAgICAgICBwbHVnaW5EdXJhdGlvbjogQywKICAgICAgICAgICAgICAgIGluc3RhbmNlRGVsYXk6IFIsCiAgICAgICAgICAgICAgICBza2lwTW90aW9uOiBMLAogICAgICAgICAgICAgICAgc2tpcFRvVmFsdWU6IE4sCiAgICAgICAgICAgICAgICBjdXN0b21FYXNpbmdGbjoKICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShYKSAmJiBYLmxlbmd0aCA9PT0gNCA/IEhPZShYKSA6IHZvaWQgMCwKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIFVPZTogewogICAgICAgICAgICAgIGxldCB7IGluc3RhbmNlSWQ6IHIsIHRpbWU6IG4gfSA9IHQucGF5bG9hZDsKICAgICAgICAgICAgICByZXR1cm4gKDAsIFNpLm1lcmdlSW4pKGUsIFtyXSwgewogICAgICAgICAgICAgICAgYWN0aXZlOiAhMCwKICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAhMSwKICAgICAgICAgICAgICAgIHN0YXJ0OiBuLAogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgWE9lOiB7CiAgICAgICAgICAgICAgbGV0IHsgaW5zdGFuY2VJZDogciB9ID0gdC5wYXlsb2FkOwogICAgICAgICAgICAgIGlmICghZVtyXSkgcmV0dXJuIGU7CiAgICAgICAgICAgICAgbGV0IG4gPSB7fSwKICAgICAgICAgICAgICAgIGkgPSBPYmplY3Qua2V5cyhlKSwKICAgICAgICAgICAgICAgIHsgbGVuZ3RoOiBhIH0gPSBpOwogICAgICAgICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgYTsgbysrKSB7CiAgICAgICAgICAgICAgICBsZXQgcyA9IGlbb107CiAgICAgICAgICAgICAgICBzICE9PSByICYmIChuW3NdID0gZVtzXSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiBuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgVk9lOiB7CiAgICAgICAgICAgICAgbGV0IHIgPSBlLAogICAgICAgICAgICAgICAgbiA9IE9iamVjdC5rZXlzKGUpLAogICAgICAgICAgICAgICAgeyBsZW5ndGg6IGkgfSA9IG47CiAgICAgICAgICAgICAgZm9yIChsZXQgYSA9IDA7IGEgPCBpOyBhKyspIHsKICAgICAgICAgICAgICAgIGxldCBvID0gblthXSwKICAgICAgICAgICAgICAgICAgcyA9IGVbb10sCiAgICAgICAgICAgICAgICAgIGMgPSBzLmNvbnRpbnVvdXMgPyBLT2UgOiAkT2U7CiAgICAgICAgICAgICAgICByID0gKDAsIFNpLnNldCkociwgbywgYyhzLCB0KSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiByOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9KTsKICB2YXIgUU9lLAogICAgSk9lLAogICAgWk9lLAogICAgdUYsCiAgICBsRiA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIGtyKCk7CiAgICAgICh7CiAgICAgICAgSVgyX1JBV19EQVRBX0lNUE9SVEVEOiBRT2UsCiAgICAgICAgSVgyX1NFU1NJT05fU1RPUFBFRDogSk9lLAogICAgICAgIElYMl9QQVJBTUVURVJfQ0hBTkdFRDogWk9lLAogICAgICB9ID0gWHQpLAogICAgICAgICh1RiA9IChlID0ge30sIHQpID0+IHsKICAgICAgICAgIHN3aXRjaCAodC50eXBlKSB7CiAgICAgICAgICAgIGNhc2UgUU9lOgogICAgICAgICAgICAgIHJldHVybiB0LnBheWxvYWQuaXhQYXJhbWV0ZXJzIHx8IHt9OwogICAgICAgICAgICBjYXNlIEpPZToKICAgICAgICAgICAgICByZXR1cm4ge307CiAgICAgICAgICAgIGNhc2UgWk9lOiB7CiAgICAgICAgICAgICAgbGV0IHsga2V5OiByLCB2YWx1ZTogbiB9ID0gdC5wYXlsb2FkOwogICAgICAgICAgICAgIHJldHVybiAoZVtyXSA9IG4pLCBlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgcmV0dXJuIGU7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9KTsKICB2YXIgZEYgPSB7fTsKICB1dChkRiwgeyBkZWZhdWx0OiAoKSA9PiB0eGUgfSk7CiAgdmFyIGZGLAogICAgcEYsCiAgICBleGUsCiAgICB0eGUsCiAgICBoRiA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIGZGID0gYmUoZmIoKSk7CiAgICAgIFN6KCk7CiAgICAgIEd6KCk7CiAgICAgIEt6KCk7CiAgICAgIHBGID0gYmUoY28oKSk7CiAgICAgIGNGKCk7CiAgICAgIGxGKCk7CiAgICAgICh7IGl4RWxlbWVudHM6IGV4ZSB9ID0gcEYuSVgyRWxlbWVudHNSZWR1Y2VyKSwKICAgICAgICAodHhlID0gKDAsIGZGLmNvbWJpbmVSZWR1Y2VycykoewogICAgICAgICAgaXhEYXRhOiBfeiwKICAgICAgICAgIGl4UmVxdWVzdDogSHosCiAgICAgICAgICBpeFNlc3Npb246IFl6LAogICAgICAgICAgaXhFbGVtZW50czogZXhlLAogICAgICAgICAgaXhJbnN0YW5jZXM6IHNGLAogICAgICAgICAgaXhQYXJhbWV0ZXJzOiB1RiwKICAgICAgICB9KSk7CiAgICB9KTsKICB2YXIgJGIgPSBFKCh0WmUsIG1GKSA9PiB7CiAgICB2YXIgcnhlID0gRG4oKSwKICAgICAgbnhlID0gUnQoKSwKICAgICAgaXhlID0gVHIoKSwKICAgICAgYXhlID0gIltvYmplY3QgU3RyaW5nXSI7CiAgICBmdW5jdGlvbiBveGUoZSkgewogICAgICByZXR1cm4gdHlwZW9mIGUgPT0gInN0cmluZyIgfHwgKCFueGUoZSkgJiYgaXhlKGUpICYmIHJ4ZShlKSA9PSBheGUpOwogICAgfQogICAgbUYuZXhwb3J0cyA9IG94ZTsKICB9KTsKICB2YXIgZ0YgPSBFKChyWmUsIHlGKSA9PiB7CiAgICB2YXIgc3hlID0gRHkoKSwKICAgICAgY3hlID0gc3hlKCJsZW5ndGgiKTsKICAgIHlGLmV4cG9ydHMgPSBjeGU7CiAgfSk7CiAgdmFyIElwID0gRSgoblplLCB2RikgPT4gewogICAgdmFyIHV4ZSA9ICJcXHVkODAwLVxcdWRmZmYiLAogICAgICBseGUgPSAiXFx1MDMwMC1cXHUwMzZmIiwKICAgICAgZnhlID0gIlxcdWZlMjAtXFx1ZmUyZiIsCiAgICAgIHB4ZSA9ICJcXHUyMGQwLVxcdTIwZmYiLAogICAgICBkeGUgPSBseGUgKyBmeGUgKyBweGUsCiAgICAgIGh4ZSA9ICJcXHVmZTBlXFx1ZmUwZiIsCiAgICAgIG14ZSA9ICJcXHUyMDBkIiwKICAgICAgeXhlID0gUmVnRXhwKCJbIiArIG14ZSArIHV4ZSArIGR4ZSArIGh4ZSArICJdIik7CiAgICBmdW5jdGlvbiBneGUoZSkgewogICAgICByZXR1cm4geXhlLnRlc3QoZSk7CiAgICB9CiAgICB2Ri5leHBvcnRzID0gZ3hlOwogIH0pOwogIHZhciB4RiA9IEUoKGlaZSwgT0YpID0+IHsKICAgIHZhciBNRiA9ICJcXHVkODAwLVxcdWRmZmYiLAogICAgICB2eGUgPSAiXFx1MDMwMC1cXHUwMzZmIiwKICAgICAgYnhlID0gIlxcdWZlMjAtXFx1ZmUyZiIsCiAgICAgIE14ZSA9ICJcXHUyMGQwLVxcdTIwZmYiLAogICAgICBBeGUgPSB2eGUgKyBieGUgKyBNeGUsCiAgICAgIEV4ZSA9ICJcXHVmZTBlXFx1ZmUwZiIsCiAgICAgIFR4ZSA9ICJbIiArIE1GICsgIl0iLAogICAgICBRYiA9ICJbIiArIEF4ZSArICJdIiwKICAgICAgSmIgPSAiXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIiwKICAgICAgX3hlID0gIig/OiIgKyBRYiArICJ8IiArIEpiICsgIikiLAogICAgICBBRiA9ICJbXiIgKyBNRiArICJdIiwKICAgICAgRUYgPSAiKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsCiAgICAgIFRGID0gIltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLAogICAgICBTeGUgPSAiXFx1MjAwZCIsCiAgICAgIF9GID0gX3hlICsgIj8iLAogICAgICBTRiA9ICJbIiArIEV4ZSArICJdPyIsCiAgICAgIE94ZSA9ICIoPzoiICsgU3hlICsgIig/OiIgKyBbQUYsIEVGLCBURl0uam9pbigifCIpICsgIikiICsgU0YgKyBfRiArICIpKiIsCiAgICAgIHh4ZSA9IFNGICsgX0YgKyBPeGUsCiAgICAgIEN4ZSA9ICIoPzoiICsgW0FGICsgUWIgKyAiPyIsIFFiLCBFRiwgVEYsIFR4ZV0uam9pbigifCIpICsgIikiLAogICAgICBiRiA9IFJlZ0V4cChKYiArICIoPz0iICsgSmIgKyAiKXwiICsgQ3hlICsgeHhlLCAiZyIpOwogICAgZnVuY3Rpb24gUnhlKGUpIHsKICAgICAgZm9yICh2YXIgdCA9IChiRi5sYXN0SW5kZXggPSAwKTsgYkYudGVzdChlKTsgKSArK3Q7CiAgICAgIHJldHVybiB0OwogICAgfQogICAgT0YuZXhwb3J0cyA9IFJ4ZTsKICB9KTsKICB2YXIgUkYgPSBFKChhWmUsIENGKSA9PiB7CiAgICB2YXIgSXhlID0gZ0YoKSwKICAgICAgTHhlID0gSXAoKSwKICAgICAgTnhlID0geEYoKTsKICAgIGZ1bmN0aW9uIHd4ZShlKSB7CiAgICAgIHJldHVybiBMeGUoZSkgPyBOeGUoZSkgOiBJeGUoZSk7CiAgICB9CiAgICBDRi5leHBvcnRzID0gd3hlOwogIH0pOwogIHZhciBMRiA9IEUoKG9aZSwgSUYpID0+IHsKICAgIHZhciBQeGUgPSB0ZigpLAogICAgICBEeGUgPSBHYSgpLAogICAgICBxeGUgPSBwaSgpLAogICAgICB6eGUgPSAkYigpLAogICAgICBGeGUgPSBSRigpLAogICAgICBreGUgPSAiW29iamVjdCBNYXBdIiwKICAgICAgQnhlID0gIltvYmplY3QgU2V0XSI7CiAgICBmdW5jdGlvbiBXeGUoZSkgewogICAgICBpZiAoZSA9PSBudWxsKSByZXR1cm4gMDsKICAgICAgaWYgKHF4ZShlKSkgcmV0dXJuIHp4ZShlKSA/IEZ4ZShlKSA6IGUubGVuZ3RoOwogICAgICB2YXIgdCA9IER4ZShlKTsKICAgICAgcmV0dXJuIHQgPT0ga3hlIHx8IHQgPT0gQnhlID8gZS5zaXplIDogUHhlKGUpLmxlbmd0aDsKICAgIH0KICAgIElGLmV4cG9ydHMgPSBXeGU7CiAgfSk7CiAgdmFyIHdGID0gRSgoc1plLCBORikgPT4gewogICAgdmFyIFV4ZSA9ICJFeHBlY3RlZCBhIGZ1bmN0aW9uIjsKICAgIGZ1bmN0aW9uIFh4ZShlKSB7CiAgICAgIGlmICh0eXBlb2YgZSAhPSAiZnVuY3Rpb24iKSB0aHJvdyBuZXcgVHlwZUVycm9yKFV4ZSk7CiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHQgPSBhcmd1bWVudHM7CiAgICAgICAgc3dpdGNoICh0Lmxlbmd0aCkgewogICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICByZXR1cm4gIWUuY2FsbCh0aGlzKTsKICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgcmV0dXJuICFlLmNhbGwodGhpcywgdFswXSk7CiAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgIHJldHVybiAhZS5jYWxsKHRoaXMsIHRbMF0sIHRbMV0pOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICByZXR1cm4gIWUuY2FsbCh0aGlzLCB0WzBdLCB0WzFdLCB0WzJdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICFlLmFwcGx5KHRoaXMsIHQpOwogICAgICB9OwogICAgfQogICAgTkYuZXhwb3J0cyA9IFh4ZTsKICB9KTsKICB2YXIgWmIgPSBFKChjWmUsIFBGKSA9PiB7CiAgICB2YXIgVnhlID0gUWkoKSwKICAgICAgSHhlID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIGUgPSBWeGUoT2JqZWN0LCAiZGVmaW5lUHJvcGVydHkiKTsKICAgICAgICAgIHJldHVybiBlKHt9LCAiIiwge30pLCBlOwogICAgICAgIH0gY2F0Y2gge30KICAgICAgfSkoKTsKICAgIFBGLmV4cG9ydHMgPSBIeGU7CiAgfSk7CiAgdmFyIFFzID0gRSgodVplLCBxRikgPT4gewogICAgdmFyIERGID0gWmIoKTsKICAgIGZ1bmN0aW9uIEd4ZShlLCB0LCByKSB7CiAgICAgIHQgPT0gIl9fcHJvdG9fXyIgJiYgREYKICAgICAgICA/IERGKGUsIHQsIHsgY29uZmlndXJhYmxlOiAhMCwgZW51bWVyYWJsZTogITAsIHZhbHVlOiByLCB3cml0YWJsZTogITAgfSkKICAgICAgICA6IChlW3RdID0gcik7CiAgICB9CiAgICBxRi5leHBvcnRzID0gR3hlOwogIH0pOwogIHZhciBMcCA9IEUoKGxaZSwgekYpID0+IHsKICAgIHZhciBqeGUgPSBRcygpLAogICAgICBZeGUgPSBhcygpLAogICAgICBLeGUgPSBPYmplY3QucHJvdG90eXBlLAogICAgICAkeGUgPSBLeGUuaGFzT3duUHJvcGVydHk7CiAgICBmdW5jdGlvbiBReGUoZSwgdCwgcikgewogICAgICB2YXIgbiA9IGVbdF07CiAgICAgICghKCR4ZS5jYWxsKGUsIHQpICYmIFl4ZShuLCByKSkgfHwgKHIgPT09IHZvaWQgMCAmJiAhKHQgaW4gZSkpKSAmJgogICAgICAgIGp4ZShlLCB0LCByKTsKICAgIH0KICAgIHpGLmV4cG9ydHMgPSBReGU7CiAgfSk7CiAgdmFyIEJGID0gRSgoZlplLCBrRikgPT4gewogICAgdmFyIEp4ZSA9IExwKCksCiAgICAgIFp4ZSA9IFUxKCksCiAgICAgIGVDZSA9IHoxKCksCiAgICAgIEZGID0gZXIoKSwKICAgICAgdENlID0gbXMoKTsKICAgIGZ1bmN0aW9uIHJDZShlLCB0LCByLCBuKSB7CiAgICAgIGlmICghRkYoZSkpIHJldHVybiBlOwogICAgICB0ID0gWnhlKHQsIGUpOwogICAgICBmb3IgKHZhciBpID0gLTEsIGEgPSB0Lmxlbmd0aCwgbyA9IGEgLSAxLCBzID0gZTsgcyAhPSBudWxsICYmICsraSA8IGE7ICkgewogICAgICAgIHZhciBjID0gdENlKHRbaV0pLAogICAgICAgICAgdSA9IHI7CiAgICAgICAgaWYgKGMgPT09ICJfX3Byb3RvX18iIHx8IGMgPT09ICJjb25zdHJ1Y3RvciIgfHwgYyA9PT0gInByb3RvdHlwZSIpCiAgICAgICAgICByZXR1cm4gZTsKICAgICAgICBpZiAoaSAhPSBvKSB7CiAgICAgICAgICB2YXIgbCA9IHNbY107CiAgICAgICAgICAodSA9IG4gPyBuKGwsIGMsIHMpIDogdm9pZCAwKSwKICAgICAgICAgICAgdSA9PT0gdm9pZCAwICYmICh1ID0gRkYobCkgPyBsIDogZUNlKHRbaSArIDFdKSA/IFtdIDoge30pOwogICAgICAgIH0KICAgICAgICBKeGUocywgYywgdSksIChzID0gc1tjXSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGU7CiAgICB9CiAgICBrRi5leHBvcnRzID0gckNlOwogIH0pOwogIHZhciBVRiA9IEUoKHBaZSwgV0YpID0+IHsKICAgIHZhciBuQ2UgPSBhZigpLAogICAgICBpQ2UgPSBCRigpLAogICAgICBhQ2UgPSBVMSgpOwogICAgZnVuY3Rpb24gb0NlKGUsIHQsIHIpIHsKICAgICAgZm9yICh2YXIgbiA9IC0xLCBpID0gdC5sZW5ndGgsIGEgPSB7fTsgKytuIDwgaTsgKSB7CiAgICAgICAgdmFyIG8gPSB0W25dLAogICAgICAgICAgcyA9IG5DZShlLCBvKTsKICAgICAgICByKHMsIG8pICYmIGlDZShhLCBhQ2UobywgZSksIHMpOwogICAgICB9CiAgICAgIHJldHVybiBhOwogICAgfQogICAgV0YuZXhwb3J0cyA9IG9DZTsKICB9KTsKICB2YXIgZU0gPSBFKChkWmUsIFhGKSA9PiB7CiAgICB2YXIgc0NlID0gJGwoKSwKICAgICAgY0NlID0gYmMoKSwKICAgICAgdUNlID0gUWwoKSwKICAgICAgbENlID0gZ3koKSwKICAgICAgZkNlID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scywKICAgICAgcENlID0gZkNlCiAgICAgICAgPyBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBmb3IgKHZhciB0ID0gW107IGU7ICkgc0NlKHQsIHVDZShlKSksIChlID0gY0NlKGUpKTsKICAgICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgICB9CiAgICAgICAgOiBsQ2U7CiAgICBYRi5leHBvcnRzID0gcENlOwogIH0pOwogIHZhciBIRiA9IEUoKGhaZSwgVkYpID0+IHsKICAgIGZ1bmN0aW9uIGRDZShlKSB7CiAgICAgIHZhciB0ID0gW107CiAgICAgIGlmIChlICE9IG51bGwpIGZvciAodmFyIHIgaW4gT2JqZWN0KGUpKSB0LnB1c2gocik7CiAgICAgIHJldHVybiB0OwogICAgfQogICAgVkYuZXhwb3J0cyA9IGRDZTsKICB9KTsKICB2YXIgakYgPSBFKChtWmUsIEdGKSA9PiB7CiAgICB2YXIgaENlID0gZXIoKSwKICAgICAgbUNlID0gQjEoKSwKICAgICAgeUNlID0gSEYoKSwKICAgICAgZ0NlID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgdkNlID0gZ0NlLmhhc093blByb3BlcnR5OwogICAgZnVuY3Rpb24gYkNlKGUpIHsKICAgICAgaWYgKCFoQ2UoZSkpIHJldHVybiB5Q2UoZSk7CiAgICAgIHZhciB0ID0gbUNlKGUpLAogICAgICAgIHIgPSBbXTsKICAgICAgZm9yICh2YXIgbiBpbiBlKQogICAgICAgIChuID09ICJjb25zdHJ1Y3RvciIgJiYgKHQgfHwgIXZDZS5jYWxsKGUsIG4pKSkgfHwgci5wdXNoKG4pOwogICAgICByZXR1cm4gcjsKICAgIH0KICAgIEdGLmV4cG9ydHMgPSBiQ2U7CiAgfSk7CiAgdmFyIEpzID0gRSgoeVplLCBZRikgPT4gewogICAgdmFyIE1DZSA9IGJ5KCksCiAgICAgIEFDZSA9IGpGKCksCiAgICAgIEVDZSA9IHBpKCk7CiAgICBmdW5jdGlvbiBUQ2UoZSkgewogICAgICByZXR1cm4gRUNlKGUpID8gTUNlKGUsICEwKSA6IEFDZShlKTsKICAgIH0KICAgIFlGLmV4cG9ydHMgPSBUQ2U7CiAgfSk7CiAgdmFyIHRNID0gRSgoZ1plLCBLRikgPT4gewogICAgdmFyIF9DZSA9IHl5KCksCiAgICAgIFNDZSA9IGVNKCksCiAgICAgIE9DZSA9IEpzKCk7CiAgICBmdW5jdGlvbiB4Q2UoZSkgewogICAgICByZXR1cm4gX0NlKGUsIE9DZSwgU0NlKTsKICAgIH0KICAgIEtGLmV4cG9ydHMgPSB4Q2U7CiAgfSk7CiAgdmFyIFFGID0gRSgodlplLCAkRikgPT4gewogICAgdmFyIENDZSA9IFB5KCksCiAgICAgIFJDZSA9IHFuKCksCiAgICAgIElDZSA9IFVGKCksCiAgICAgIExDZSA9IHRNKCk7CiAgICBmdW5jdGlvbiBOQ2UoZSwgdCkgewogICAgICBpZiAoZSA9PSBudWxsKSByZXR1cm4ge307CiAgICAgIHZhciByID0gQ0NlKExDZShlKSwgZnVuY3Rpb24gKG4pIHsKICAgICAgICByZXR1cm4gW25dOwogICAgICB9KTsKICAgICAgcmV0dXJuICgKICAgICAgICAodCA9IFJDZSh0KSksCiAgICAgICAgSUNlKGUsIHIsIGZ1bmN0aW9uIChuLCBpKSB7CiAgICAgICAgICByZXR1cm4gdChuLCBpWzBdKTsKICAgICAgICB9KQogICAgICApOwogICAgfQogICAgJEYuZXhwb3J0cyA9IE5DZTsKICB9KTsKICB2YXIgWkYgPSBFKChiWmUsIEpGKSA9PiB7CiAgICB2YXIgd0NlID0gcW4oKSwKICAgICAgUENlID0gd0YoKSwKICAgICAgRENlID0gUUYoKTsKICAgIGZ1bmN0aW9uIHFDZShlLCB0KSB7CiAgICAgIHJldHVybiBEQ2UoZSwgUENlKHdDZSh0KSkpOwogICAgfQogICAgSkYuZXhwb3J0cyA9IHFDZTsKICB9KTsKICB2YXIgdGsgPSBFKChNWmUsIGVrKSA9PiB7CiAgICB2YXIgekNlID0gdGYoKSwKICAgICAgRkNlID0gR2EoKSwKICAgICAga0NlID0gbHMoKSwKICAgICAgQkNlID0gUnQoKSwKICAgICAgV0NlID0gcGkoKSwKICAgICAgVUNlID0gWGEoKSwKICAgICAgWENlID0gQjEoKSwKICAgICAgVkNlID0gZHMoKSwKICAgICAgSENlID0gIltvYmplY3QgTWFwXSIsCiAgICAgIEdDZSA9ICJbb2JqZWN0IFNldF0iLAogICAgICBqQ2UgPSBPYmplY3QucHJvdG90eXBlLAogICAgICBZQ2UgPSBqQ2UuaGFzT3duUHJvcGVydHk7CiAgICBmdW5jdGlvbiBLQ2UoZSkgewogICAgICBpZiAoZSA9PSBudWxsKSByZXR1cm4gITA7CiAgICAgIGlmICgKICAgICAgICBXQ2UoZSkgJiYKICAgICAgICAoQkNlKGUpIHx8CiAgICAgICAgICB0eXBlb2YgZSA9PSAic3RyaW5nIiB8fAogICAgICAgICAgdHlwZW9mIGUuc3BsaWNlID09ICJmdW5jdGlvbiIgfHwKICAgICAgICAgIFVDZShlKSB8fAogICAgICAgICAgVkNlKGUpIHx8CiAgICAgICAgICBrQ2UoZSkpCiAgICAgICkKICAgICAgICByZXR1cm4gIWUubGVuZ3RoOwogICAgICB2YXIgdCA9IEZDZShlKTsKICAgICAgaWYgKHQgPT0gSENlIHx8IHQgPT0gR0NlKSByZXR1cm4gIWUuc2l6ZTsKICAgICAgaWYgKFhDZShlKSkgcmV0dXJuICF6Q2UoZSkubGVuZ3RoOwogICAgICBmb3IgKHZhciByIGluIGUpIGlmIChZQ2UuY2FsbChlLCByKSkgcmV0dXJuICExOwogICAgICByZXR1cm4gITA7CiAgICB9CiAgICBlay5leHBvcnRzID0gS0NlOwogIH0pOwogIHZhciBuayA9IEUoKEFaZSwgcmspID0+IHsKICAgIHZhciAkQ2UgPSBRcygpLAogICAgICBRQ2UgPSBTYygpLAogICAgICBKQ2UgPSBxbigpOwogICAgZnVuY3Rpb24gWkNlKGUsIHQpIHsKICAgICAgdmFyIHIgPSB7fTsKICAgICAgcmV0dXJuICgKICAgICAgICAodCA9IEpDZSh0LCAzKSksCiAgICAgICAgUUNlKGUsIGZ1bmN0aW9uIChuLCBpLCBhKSB7CiAgICAgICAgICAkQ2UociwgaSwgdChuLCBpLCBhKSk7CiAgICAgICAgfSksCiAgICAgICAgcgogICAgICApOwogICAgfQogICAgcmsuZXhwb3J0cyA9IFpDZTsKICB9KTsKICB2YXIgTnAgPSBFKChFWmUsIGlrKSA9PiB7CiAgICBmdW5jdGlvbiBlUmUoZSwgdCkgewogICAgICBmb3IgKAogICAgICAgIHZhciByID0gLTEsIG4gPSBlID09IG51bGwgPyAwIDogZS5sZW5ndGg7CiAgICAgICAgKytyIDwgbiAmJiB0KGVbcl0sIHIsIGUpICE9PSAhMTsKCiAgICAgICk7CiAgICAgIHJldHVybiBlOwogICAgfQogICAgaWsuZXhwb3J0cyA9IGVSZTsKICB9KTsKICB2YXIgb2sgPSBFKChUWmUsIGFrKSA9PiB7CiAgICB2YXIgdFJlID0geXMoKTsKICAgIGZ1bmN0aW9uIHJSZShlKSB7CiAgICAgIHJldHVybiB0eXBlb2YgZSA9PSAiZnVuY3Rpb24iID8gZSA6IHRSZTsKICAgIH0KICAgIGFrLmV4cG9ydHMgPSByUmU7CiAgfSk7CiAgdmFyIHdwID0gRSgoX1plLCBzaykgPT4gewogICAgdmFyIG5SZSA9IE5wKCksCiAgICAgIGlSZSA9IE1wKCksCiAgICAgIGFSZSA9IG9rKCksCiAgICAgIG9SZSA9IFJ0KCk7CiAgICBmdW5jdGlvbiBzUmUoZSwgdCkgewogICAgICB2YXIgciA9IG9SZShlKSA/IG5SZSA6IGlSZTsKICAgICAgcmV0dXJuIHIoZSwgYVJlKHQpKTsKICAgIH0KICAgIHNrLmV4cG9ydHMgPSBzUmU7CiAgfSk7CiAgdmFyIHVrID0gRSgoU1plLCBjaykgPT4gewogICAgdmFyIGNSZSA9IEtyKCksCiAgICAgIHVSZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gY1JlLkRhdGUubm93KCk7CiAgICAgIH07CiAgICBjay5leHBvcnRzID0gdVJlOwogIH0pOwogIHZhciBuTSA9IEUoKE9aZSwgZmspID0+IHsKICAgIHZhciBsUmUgPSBlcigpLAogICAgICByTSA9IHVrKCksCiAgICAgIGxrID0gb2YoKSwKICAgICAgZlJlID0gIkV4cGVjdGVkIGEgZnVuY3Rpb24iLAogICAgICBwUmUgPSBNYXRoLm1heCwKICAgICAgZFJlID0gTWF0aC5taW47CiAgICBmdW5jdGlvbiBoUmUoZSwgdCwgcikgewogICAgICB2YXIgbiwKICAgICAgICBpLAogICAgICAgIGEsCiAgICAgICAgbywKICAgICAgICBzLAogICAgICAgIGMsCiAgICAgICAgdSA9IDAsCiAgICAgICAgbCA9ICExLAogICAgICAgIHAgPSAhMSwKICAgICAgICBkID0gITA7CiAgICAgIGlmICh0eXBlb2YgZSAhPSAiZnVuY3Rpb24iKSB0aHJvdyBuZXcgVHlwZUVycm9yKGZSZSk7CiAgICAgICh0ID0gbGsodCkgfHwgMCksCiAgICAgICAgbFJlKHIpICYmCiAgICAgICAgICAoKGwgPSAhIXIubGVhZGluZyksCiAgICAgICAgICAocCA9ICJtYXhXYWl0IiBpbiByKSwKICAgICAgICAgIChhID0gcCA/IHBSZShsayhyLm1heFdhaXQpIHx8IDAsIHQpIDogYSksCiAgICAgICAgICAoZCA9ICJ0cmFpbGluZyIgaW4gciA/ICEhci50cmFpbGluZyA6IGQpKTsKICAgICAgZnVuY3Rpb24gaChSKSB7CiAgICAgICAgdmFyIEwgPSBuLAogICAgICAgICAgTiA9IGk7CiAgICAgICAgcmV0dXJuIChuID0gaSA9IHZvaWQgMCksICh1ID0gUiksIChvID0gZS5hcHBseShOLCBMKSksIG87CiAgICAgIH0KICAgICAgZnVuY3Rpb24gbShSKSB7CiAgICAgICAgcmV0dXJuICh1ID0gUiksIChzID0gc2V0VGltZW91dChnLCB0KSksIGwgPyBoKFIpIDogbzsKICAgICAgfQogICAgICBmdW5jdGlvbiB2KFIpIHsKICAgICAgICB2YXIgTCA9IFIgLSBjLAogICAgICAgICAgTiA9IFIgLSB1LAogICAgICAgICAgVyA9IHQgLSBMOwogICAgICAgIHJldHVybiBwID8gZFJlKFcsIGEgLSBOKSA6IFc7CiAgICAgIH0KICAgICAgZnVuY3Rpb24geShSKSB7CiAgICAgICAgdmFyIEwgPSBSIC0gYywKICAgICAgICAgIE4gPSBSIC0gdTsKICAgICAgICByZXR1cm4gYyA9PT0gdm9pZCAwIHx8IEwgPj0gdCB8fCBMIDwgMCB8fCAocCAmJiBOID49IGEpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGcoKSB7CiAgICAgICAgdmFyIFIgPSByTSgpOwogICAgICAgIGlmICh5KFIpKSByZXR1cm4gTShSKTsKICAgICAgICBzID0gc2V0VGltZW91dChnLCB2KFIpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBNKFIpIHsKICAgICAgICByZXR1cm4gKHMgPSB2b2lkIDApLCBkICYmIG4gPyBoKFIpIDogKChuID0gaSA9IHZvaWQgMCksIG8pOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIEEoKSB7CiAgICAgICAgcyAhPT0gdm9pZCAwICYmIGNsZWFyVGltZW91dChzKSwgKHUgPSAwKSwgKG4gPSBjID0gaSA9IHMgPSB2b2lkIDApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF8oKSB7CiAgICAgICAgcmV0dXJuIHMgPT09IHZvaWQgMCA/IG8gOiBNKHJNKCkpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIEMoKSB7CiAgICAgICAgdmFyIFIgPSByTSgpLAogICAgICAgICAgTCA9IHkoUik7CiAgICAgICAgaWYgKCgobiA9IGFyZ3VtZW50cyksIChpID0gdGhpcyksIChjID0gUiksIEwpKSB7CiAgICAgICAgICBpZiAocyA9PT0gdm9pZCAwKSByZXR1cm4gbShjKTsKICAgICAgICAgIGlmIChwKSByZXR1cm4gY2xlYXJUaW1lb3V0KHMpLCAocyA9IHNldFRpbWVvdXQoZywgdCkpLCBoKGMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcyA9PT0gdm9pZCAwICYmIChzID0gc2V0VGltZW91dChnLCB0KSksIG87CiAgICAgIH0KICAgICAgcmV0dXJuIChDLmNhbmNlbCA9IEEpLCAoQy5mbHVzaCA9IF8pLCBDOwogICAgfQogICAgZmsuZXhwb3J0cyA9IGhSZTsKICB9KTsKICB2YXIgZGsgPSBFKCh4WmUsIHBrKSA9PiB7CiAgICB2YXIgbVJlID0gbk0oKSwKICAgICAgeVJlID0gZXIoKSwKICAgICAgZ1JlID0gIkV4cGVjdGVkIGEgZnVuY3Rpb24iOwogICAgZnVuY3Rpb24gdlJlKGUsIHQsIHIpIHsKICAgICAgdmFyIG4gPSAhMCwKICAgICAgICBpID0gITA7CiAgICAgIGlmICh0eXBlb2YgZSAhPSAiZnVuY3Rpb24iKSB0aHJvdyBuZXcgVHlwZUVycm9yKGdSZSk7CiAgICAgIHJldHVybiAoCiAgICAgICAgeVJlKHIpICYmCiAgICAgICAgICAoKG4gPSAibGVhZGluZyIgaW4gciA/ICEhci5sZWFkaW5nIDogbiksCiAgICAgICAgICAoaSA9ICJ0cmFpbGluZyIgaW4gciA/ICEhci50cmFpbGluZyA6IGkpKSwKICAgICAgICBtUmUoZSwgdCwgeyBsZWFkaW5nOiBuLCBtYXhXYWl0OiB0LCB0cmFpbGluZzogaSB9KQogICAgICApOwogICAgfQogICAgcGsuZXhwb3J0cyA9IHZSZTsKICB9KTsKICB2YXIgbWsgPSB7fTsKICB1dChtaywgewogICAgYWN0aW9uTGlzdFBsYXliYWNrQ2hhbmdlZDogKCkgPT4gZTAsCiAgICBhbmltYXRpb25GcmFtZUNoYW5nZWQ6ICgpID0+IERwLAogICAgY2xlYXJSZXF1ZXN0ZWQ6ICgpID0+IFhSZSwKICAgIGVsZW1lbnRTdGF0ZUNoYW5nZWQ6ICgpID0+IGZNLAogICAgZXZlbnRMaXN0ZW5lckFkZGVkOiAoKSA9PiBQcCwKICAgIGV2ZW50U3RhdGVDaGFuZ2VkOiAoKSA9PiBjTSwKICAgIGluc3RhbmNlQWRkZWQ6ICgpID0+IHVNLAogICAgaW5zdGFuY2VSZW1vdmVkOiAoKSA9PiBsTSwKICAgIGluc3RhbmNlU3RhcnRlZDogKCkgPT4gcXAsCiAgICBtZWRpYVF1ZXJpZXNEZWZpbmVkOiAoKSA9PiBkTSwKICAgIHBhcmFtZXRlckNoYW5nZWQ6ICgpID0+IFpzLAogICAgcGxheWJhY2tSZXF1ZXN0ZWQ6ICgpID0+IFdSZSwKICAgIHByZXZpZXdSZXF1ZXN0ZWQ6ICgpID0+IEJSZSwKICAgIHJhd0RhdGFJbXBvcnRlZDogKCkgPT4gaU0sCiAgICBzZXNzaW9uSW5pdGlhbGl6ZWQ6ICgpID0+IGFNLAogICAgc2Vzc2lvblN0YXJ0ZWQ6ICgpID0+IG9NLAogICAgc2Vzc2lvblN0b3BwZWQ6ICgpID0+IHNNLAogICAgc3RvcFJlcXVlc3RlZDogKCkgPT4gVVJlLAogICAgdGVzdEZyYW1lUmVuZGVyZWQ6ICgpID0+IFZSZSwKICAgIHZpZXdwb3J0V2lkdGhDaGFuZ2VkOiAoKSA9PiBwTSwKICB9KTsKICB2YXIgaGssCiAgICBiUmUsCiAgICBNUmUsCiAgICBBUmUsCiAgICBFUmUsCiAgICBUUmUsCiAgICBfUmUsCiAgICBTUmUsCiAgICBPUmUsCiAgICB4UmUsCiAgICBDUmUsCiAgICBSUmUsCiAgICBJUmUsCiAgICBMUmUsCiAgICBOUmUsCiAgICB3UmUsCiAgICBQUmUsCiAgICBEUmUsCiAgICBxUmUsCiAgICB6UmUsCiAgICBGUmUsCiAgICBrUmUsCiAgICBpTSwKICAgIGFNLAogICAgb00sCiAgICBzTSwKICAgIEJSZSwKICAgIFdSZSwKICAgIFVSZSwKICAgIFhSZSwKICAgIFBwLAogICAgVlJlLAogICAgY00sCiAgICBEcCwKICAgIFpzLAogICAgdU0sCiAgICBxcCwKICAgIGxNLAogICAgZk0sCiAgICBlMCwKICAgIHBNLAogICAgZE0sCiAgICB6cCA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIGtyKCk7CiAgICAgIChoayA9IGJlKGNvKCkpKSwKICAgICAgICAoewogICAgICAgICAgSVgyX1JBV19EQVRBX0lNUE9SVEVEOiBiUmUsCiAgICAgICAgICBJWDJfU0VTU0lPTl9JTklUSUFMSVpFRDogTVJlLAogICAgICAgICAgSVgyX1NFU1NJT05fU1RBUlRFRDogQVJlLAogICAgICAgICAgSVgyX1NFU1NJT05fU1RPUFBFRDogRVJlLAogICAgICAgICAgSVgyX1BSRVZJRVdfUkVRVUVTVEVEOiBUUmUsCiAgICAgICAgICBJWDJfUExBWUJBQ0tfUkVRVUVTVEVEOiBfUmUsCiAgICAgICAgICBJWDJfU1RPUF9SRVFVRVNURUQ6IFNSZSwKICAgICAgICAgIElYMl9DTEVBUl9SRVFVRVNURUQ6IE9SZSwKICAgICAgICAgIElYMl9FVkVOVF9MSVNURU5FUl9BRERFRDogeFJlLAogICAgICAgICAgSVgyX1RFU1RfRlJBTUVfUkVOREVSRUQ6IENSZSwKICAgICAgICAgIElYMl9FVkVOVF9TVEFURV9DSEFOR0VEOiBSUmUsCiAgICAgICAgICBJWDJfQU5JTUFUSU9OX0ZSQU1FX0NIQU5HRUQ6IElSZSwKICAgICAgICAgIElYMl9QQVJBTUVURVJfQ0hBTkdFRDogTFJlLAogICAgICAgICAgSVgyX0lOU1RBTkNFX0FEREVEOiBOUmUsCiAgICAgICAgICBJWDJfSU5TVEFOQ0VfU1RBUlRFRDogd1JlLAogICAgICAgICAgSVgyX0lOU1RBTkNFX1JFTU9WRUQ6IFBSZSwKICAgICAgICAgIElYMl9FTEVNRU5UX1NUQVRFX0NIQU5HRUQ6IERSZSwKICAgICAgICAgIElYMl9BQ1RJT05fTElTVF9QTEFZQkFDS19DSEFOR0VEOiBxUmUsCiAgICAgICAgICBJWDJfVklFV1BPUlRfV0lEVEhfQ0hBTkdFRDogelJlLAogICAgICAgICAgSVgyX01FRElBX1FVRVJJRVNfREVGSU5FRDogRlJlLAogICAgICAgIH0gPSBYdCksCiAgICAgICAgKHsgcmVpZnlTdGF0ZToga1JlIH0gPSBoay5JWDJWYW5pbGxhVXRpbHMpLAogICAgICAgIChpTSA9IChlKSA9PiAoeyB0eXBlOiBiUmUsIHBheWxvYWQ6IHsgLi4ua1JlKGUpIH0gfSkpLAogICAgICAgIChhTSA9ICh7IGhhc0JvdW5kYXJ5Tm9kZXM6IGUsIHJlZHVjZWRNb3Rpb246IHQgfSkgPT4gKHsKICAgICAgICAgIHR5cGU6IE1SZSwKICAgICAgICAgIHBheWxvYWQ6IHsgaGFzQm91bmRhcnlOb2RlczogZSwgcmVkdWNlZE1vdGlvbjogdCB9LAogICAgICAgIH0pKSwKICAgICAgICAob00gPSAoKSA9PiAoeyB0eXBlOiBBUmUgfSkpLAogICAgICAgIChzTSA9ICgpID0+ICh7IHR5cGU6IEVSZSB9KSksCiAgICAgICAgKEJSZSA9ICh7IHJhd0RhdGE6IGUsIGRlZmVyOiB0IH0pID0+ICh7CiAgICAgICAgICB0eXBlOiBUUmUsCiAgICAgICAgICBwYXlsb2FkOiB7IGRlZmVyOiB0LCByYXdEYXRhOiBlIH0sCiAgICAgICAgfSkpLAogICAgICAgIChXUmUgPSAoewogICAgICAgICAgYWN0aW9uVHlwZUlkOiBlID0gT3IuR0VORVJBTF9TVEFSVF9BQ1RJT04sCiAgICAgICAgICBhY3Rpb25MaXN0SWQ6IHQsCiAgICAgICAgICBhY3Rpb25JdGVtSWQ6IHIsCiAgICAgICAgICBldmVudElkOiBuLAogICAgICAgICAgYWxsb3dFdmVudHM6IGksCiAgICAgICAgICBpbW1lZGlhdGU6IGEsCiAgICAgICAgICB0ZXN0TWFudWFsOiBvLAogICAgICAgICAgdmVyYm9zZTogcywKICAgICAgICAgIHJhd0RhdGE6IGMsCiAgICAgICAgfSkgPT4gKHsKICAgICAgICAgIHR5cGU6IF9SZSwKICAgICAgICAgIHBheWxvYWQ6IHsKICAgICAgICAgICAgYWN0aW9uVHlwZUlkOiBlLAogICAgICAgICAgICBhY3Rpb25MaXN0SWQ6IHQsCiAgICAgICAgICAgIGFjdGlvbkl0ZW1JZDogciwKICAgICAgICAgICAgdGVzdE1hbnVhbDogbywKICAgICAgICAgICAgZXZlbnRJZDogbiwKICAgICAgICAgICAgYWxsb3dFdmVudHM6IGksCiAgICAgICAgICAgIGltbWVkaWF0ZTogYSwKICAgICAgICAgICAgdmVyYm9zZTogcywKICAgICAgICAgICAgcmF3RGF0YTogYywKICAgICAgICAgIH0sCiAgICAgICAgfSkpLAogICAgICAgIChVUmUgPSAoZSkgPT4gKHsgdHlwZTogU1JlLCBwYXlsb2FkOiB7IGFjdGlvbkxpc3RJZDogZSB9IH0pKSwKICAgICAgICAoWFJlID0gKCkgPT4gKHsgdHlwZTogT1JlIH0pKSwKICAgICAgICAoUHAgPSAoZSwgdCkgPT4gKHsKICAgICAgICAgIHR5cGU6IHhSZSwKICAgICAgICAgIHBheWxvYWQ6IHsgdGFyZ2V0OiBlLCBsaXN0ZW5lclBhcmFtczogdCB9LAogICAgICAgIH0pKSwKICAgICAgICAoVlJlID0gKGUgPSAxKSA9PiAoeyB0eXBlOiBDUmUsIHBheWxvYWQ6IHsgc3RlcDogZSB9IH0pKSwKICAgICAgICAoY00gPSAoZSwgdCkgPT4gKHsgdHlwZTogUlJlLCBwYXlsb2FkOiB7IHN0YXRlS2V5OiBlLCBuZXdTdGF0ZTogdCB9IH0pKSwKICAgICAgICAoRHAgPSAoZSwgdCkgPT4gKHsgdHlwZTogSVJlLCBwYXlsb2FkOiB7IG5vdzogZSwgcGFyYW1ldGVyczogdCB9IH0pKSwKICAgICAgICAoWnMgPSAoZSwgdCkgPT4gKHsgdHlwZTogTFJlLCBwYXlsb2FkOiB7IGtleTogZSwgdmFsdWU6IHQgfSB9KSksCiAgICAgICAgKHVNID0gKGUpID0+ICh7IHR5cGU6IE5SZSwgcGF5bG9hZDogeyAuLi5lIH0gfSkpLAogICAgICAgIChxcCA9IChlLCB0KSA9PiAoeyB0eXBlOiB3UmUsIHBheWxvYWQ6IHsgaW5zdGFuY2VJZDogZSwgdGltZTogdCB9IH0pKSwKICAgICAgICAobE0gPSAoZSkgPT4gKHsgdHlwZTogUFJlLCBwYXlsb2FkOiB7IGluc3RhbmNlSWQ6IGUgfSB9KSksCiAgICAgICAgKGZNID0gKGUsIHQsIHIsIG4pID0+ICh7CiAgICAgICAgICB0eXBlOiBEUmUsCiAgICAgICAgICBwYXlsb2FkOiB7IGVsZW1lbnRJZDogZSwgYWN0aW9uVHlwZUlkOiB0LCBjdXJyZW50OiByLCBhY3Rpb25JdGVtOiBuIH0sCiAgICAgICAgfSkpLAogICAgICAgIChlMCA9ICh7IGFjdGlvbkxpc3RJZDogZSwgaXNQbGF5aW5nOiB0IH0pID0+ICh7CiAgICAgICAgICB0eXBlOiBxUmUsCiAgICAgICAgICBwYXlsb2FkOiB7IGFjdGlvbkxpc3RJZDogZSwgaXNQbGF5aW5nOiB0IH0sCiAgICAgICAgfSkpLAogICAgICAgIChwTSA9ICh7IHdpZHRoOiBlLCBtZWRpYVF1ZXJpZXM6IHQgfSkgPT4gKHsKICAgICAgICAgIHR5cGU6IHpSZSwKICAgICAgICAgIHBheWxvYWQ6IHsgd2lkdGg6IGUsIG1lZGlhUXVlcmllczogdCB9LAogICAgICAgIH0pKSwKICAgICAgICAoZE0gPSAoKSA9PiAoeyB0eXBlOiBGUmUgfSkpOwogICAgfSk7CiAgdmFyIENyID0ge307CiAgdXQoQ3IsIHsKICAgIGVsZW1lbnRDb250YWluczogKCkgPT4geU0sCiAgICBnZXRDaGlsZEVsZW1lbnRzOiAoKSA9PiBlSWUsCiAgICBnZXRDbG9zZXN0RWxlbWVudDogKCkgPT4gTmMsCiAgICBnZXRQcm9wZXJ0eTogKCkgPT4gS1JlLAogICAgZ2V0UXVlcnlTZWxlY3RvcjogKCkgPT4gbU0sCiAgICBnZXRSZWZUeXBlOiAoKSA9PiBnTSwKICAgIGdldFNpYmxpbmdFbGVtZW50czogKCkgPT4gdEllLAogICAgZ2V0U3R5bGU6ICgpID0+IFlSZSwKICAgIGdldFZhbGlkRG9jdW1lbnQ6ICgpID0+IFFSZSwKICAgIGlzU2libGluZ05vZGU6ICgpID0+IFpSZSwKICAgIG1hdGNoU2VsZWN0b3I6ICgpID0+ICRSZSwKICAgIHF1ZXJ5RG9jdW1lbnQ6ICgpID0+IEpSZSwKICAgIHNldFN0eWxlOiAoKSA9PiBqUmUsCiAgfSk7CiAgZnVuY3Rpb24galJlKGUsIHQsIHIpIHsKICAgIGUuc3R5bGVbdF0gPSByOwogIH0KICBmdW5jdGlvbiBZUmUoZSwgdCkgewogICAgcmV0dXJuIHQuc3RhcnRzV2l0aCgiLS0iKQogICAgICA/IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSh0KQogICAgICA6IGUuc3R5bGVbdF07CiAgfQogIGZ1bmN0aW9uIEtSZShlLCB0KSB7CiAgICByZXR1cm4gZVt0XTsKICB9CiAgZnVuY3Rpb24gJFJlKGUpIHsKICAgIHJldHVybiAodCkgPT4gdFtoTV0oZSk7CiAgfQogIGZ1bmN0aW9uIG1NKHsgaWQ6IGUsIHNlbGVjdG9yOiB0IH0pIHsKICAgIGlmIChlKSB7CiAgICAgIGxldCByID0gZTsKICAgICAgaWYgKGUuaW5kZXhPZih5aykgIT09IC0xKSB7CiAgICAgICAgbGV0IG4gPSBlLnNwbGl0KHlrKSwKICAgICAgICAgIGkgPSBuWzBdOwogICAgICAgIGlmICgoKHIgPSBuWzFdKSwgaSAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSh2aykpKQogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgcmV0dXJuIGBbZGF0YS13LWlkPSIke3J9Il0sIFtkYXRhLXctaWRePSIke3J9X2luc3RhbmNlIl1gOwogICAgfQogICAgcmV0dXJuIHQ7CiAgfQogIGZ1bmN0aW9uIFFSZShlKSB7CiAgICByZXR1cm4gZSA9PSBudWxsIHx8IGUgPT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUodmspCiAgICAgID8gZG9jdW1lbnQKICAgICAgOiBudWxsOwogIH0KICBmdW5jdGlvbiBKUmUoZSwgdCkgewogICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKAogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQgPyBlICsgIiAiICsgdCA6IGUpCiAgICApOwogIH0KICBmdW5jdGlvbiB5TShlLCB0KSB7CiAgICByZXR1cm4gZS5jb250YWlucyh0KTsKICB9CiAgZnVuY3Rpb24gWlJlKGUsIHQpIHsKICAgIHJldHVybiBlICE9PSB0ICYmIGUucGFyZW50Tm9kZSA9PT0gdC5wYXJlbnROb2RlOwogIH0KICBmdW5jdGlvbiBlSWUoZSkgewogICAgbGV0IHQgPSBbXTsKICAgIGZvciAobGV0IHIgPSAwLCB7IGxlbmd0aDogbiB9ID0gZSB8fCBbXTsgciA8IG47IHIrKykgewogICAgICBsZXQgeyBjaGlsZHJlbjogaSB9ID0gZVtyXSwKICAgICAgICB7IGxlbmd0aDogYSB9ID0gaTsKICAgICAgaWYgKGEpIGZvciAobGV0IG8gPSAwOyBvIDwgYTsgbysrKSB0LnB1c2goaVtvXSk7CiAgICB9CiAgICByZXR1cm4gdDsKICB9CiAgZnVuY3Rpb24gdEllKGUgPSBbXSkgewogICAgbGV0IHQgPSBbXSwKICAgICAgciA9IFtdOwogICAgZm9yIChsZXQgbiA9IDAsIHsgbGVuZ3RoOiBpIH0gPSBlOyBuIDwgaTsgbisrKSB7CiAgICAgIGxldCB7IHBhcmVudE5vZGU6IGEgfSA9IGVbbl07CiAgICAgIGlmICghYSB8fCAhYS5jaGlsZHJlbiB8fCAhYS5jaGlsZHJlbi5sZW5ndGggfHwgci5pbmRleE9mKGEpICE9PSAtMSkKICAgICAgICBjb250aW51ZTsKICAgICAgci5wdXNoKGEpOwogICAgICBsZXQgbyA9IGEuZmlyc3RFbGVtZW50Q2hpbGQ7CiAgICAgIGZvciAoOyBvICE9IG51bGw7ICkKICAgICAgICBlLmluZGV4T2YobykgPT09IC0xICYmIHQucHVzaChvKSwgKG8gPSBvLm5leHRFbGVtZW50U2libGluZyk7CiAgICB9CiAgICByZXR1cm4gdDsKICB9CiAgZnVuY3Rpb24gZ00oZSkgewogICAgcmV0dXJuIGUgIT0gbnVsbCAmJiB0eXBlb2YgZSA9PSAib2JqZWN0IgogICAgICA/IGUgaW5zdGFuY2VvZiBFbGVtZW50CiAgICAgICAgPyBIUmUKICAgICAgICA6IEdSZQogICAgICA6IG51bGw7CiAgfQogIHZhciBnaywKICAgIGhNLAogICAgeWssCiAgICBIUmUsCiAgICBHUmUsCiAgICB2aywKICAgIE5jLAogICAgYmsgPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBnayA9IGJlKGNvKCkpOwogICAgICBrcigpOwogICAgICAoeyBFTEVNRU5UX01BVENIRVM6IGhNIH0gPSBnay5JWDJCcm93c2VyU3VwcG9ydCksCiAgICAgICAgKHsKICAgICAgICAgIElYMl9JRF9ERUxJTUlURVI6IHlrLAogICAgICAgICAgSFRNTF9FTEVNRU5UOiBIUmUsCiAgICAgICAgICBQTEFJTl9PQkpFQ1Q6IEdSZSwKICAgICAgICAgIFdGX1BBR0U6IHZrLAogICAgICAgIH0gPSB5cik7CiAgICAgIE5jID0gRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdAogICAgICAgID8gKGUsIHQpID0+IChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnMoZSkgPyBlLmNsb3Nlc3QodCkgOiBudWxsKQogICAgICAgIDogKGUsIHQpID0+IHsKICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnMoZSkpIHJldHVybiBudWxsOwogICAgICAgICAgICBsZXQgciA9IGU7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBpZiAocltoTV0gJiYgcltoTV0odCkpIHJldHVybiByOwogICAgICAgICAgICAgIHIgPSByLnBhcmVudE5vZGU7CiAgICAgICAgICAgIH0gd2hpbGUgKHIgIT0gbnVsbCk7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfTsKICAgIH0pOwogIHZhciB3YyA9IEUoKElaZSwgQWspID0+IHsKICAgIHZhciBySWUgPSBlcigpLAogICAgICBNayA9IE9iamVjdC5jcmVhdGUsCiAgICAgIG5JZSA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgZnVuY3Rpb24gZSgpIHt9CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICBpZiAoIXJJZSh0KSkgcmV0dXJuIHt9OwogICAgICAgICAgaWYgKE1rKSByZXR1cm4gTWsodCk7CiAgICAgICAgICBlLnByb3RvdHlwZSA9IHQ7CiAgICAgICAgICB2YXIgciA9IG5ldyBlKCk7CiAgICAgICAgICByZXR1cm4gKGUucHJvdG90eXBlID0gdm9pZCAwKSwgcjsKICAgICAgICB9OwogICAgICB9KSgpOwogICAgQWsuZXhwb3J0cyA9IG5JZTsKICB9KTsKICB2YXIgRnAgPSBFKChMWmUsIEVrKSA9PiB7CiAgICBmdW5jdGlvbiBpSWUoKSB7fQogICAgRWsuZXhwb3J0cyA9IGlJZTsKICB9KTsKICB2YXIgQnAgPSBFKChOWmUsIFRrKSA9PiB7CiAgICB2YXIgYUllID0gd2MoKSwKICAgICAgb0llID0gRnAoKTsKICAgIGZ1bmN0aW9uIGtwKGUsIHQpIHsKICAgICAgKHRoaXMuX193cmFwcGVkX18gPSBlKSwKICAgICAgICAodGhpcy5fX2FjdGlvbnNfXyA9IFtdKSwKICAgICAgICAodGhpcy5fX2NoYWluX18gPSAhIXQpLAogICAgICAgICh0aGlzLl9faW5kZXhfXyA9IDApLAogICAgICAgICh0aGlzLl9fdmFsdWVzX18gPSB2b2lkIDApOwogICAgfQogICAga3AucHJvdG90eXBlID0gYUllKG9JZS5wcm90b3R5cGUpOwogICAga3AucHJvdG90eXBlLmNvbnN0cnVjdG9yID0ga3A7CiAgICBUay5leHBvcnRzID0ga3A7CiAgfSk7CiAgdmFyIHhrID0gRSgod1plLCBPaykgPT4gewogICAgdmFyIF9rID0gV2EoKSwKICAgICAgc0llID0gbHMoKSwKICAgICAgY0llID0gUnQoKSwKICAgICAgU2sgPSBfayA/IF9rLmlzQ29uY2F0U3ByZWFkYWJsZSA6IHZvaWQgMDsKICAgIGZ1bmN0aW9uIHVJZShlKSB7CiAgICAgIHJldHVybiBjSWUoZSkgfHwgc0llKGUpIHx8ICEhKFNrICYmIGUgJiYgZVtTa10pOwogICAgfQogICAgT2suZXhwb3J0cyA9IHVJZTsKICB9KTsKICB2YXIgSWsgPSBFKChQWmUsIFJrKSA9PiB7CiAgICB2YXIgbEllID0gJGwoKSwKICAgICAgZkllID0geGsoKTsKICAgIGZ1bmN0aW9uIENrKGUsIHQsIHIsIG4sIGkpIHsKICAgICAgdmFyIGEgPSAtMSwKICAgICAgICBvID0gZS5sZW5ndGg7CiAgICAgIGZvciAociB8fCAociA9IGZJZSksIGkgfHwgKGkgPSBbXSk7ICsrYSA8IG87ICkgewogICAgICAgIHZhciBzID0gZVthXTsKICAgICAgICB0ID4gMCAmJiByKHMpCiAgICAgICAgICA/IHQgPiAxCiAgICAgICAgICAgID8gQ2socywgdCAtIDEsIHIsIG4sIGkpCiAgICAgICAgICAgIDogbEllKGksIHMpCiAgICAgICAgICA6IG4gfHwgKGlbaS5sZW5ndGhdID0gcyk7CiAgICAgIH0KICAgICAgcmV0dXJuIGk7CiAgICB9CiAgICBSay5leHBvcnRzID0gQ2s7CiAgfSk7CiAgdmFyIE5rID0gRSgoRFplLCBMaykgPT4gewogICAgdmFyIHBJZSA9IElrKCk7CiAgICBmdW5jdGlvbiBkSWUoZSkgewogICAgICB2YXIgdCA9IGUgPT0gbnVsbCA/IDAgOiBlLmxlbmd0aDsKICAgICAgcmV0dXJuIHQgPyBwSWUoZSwgMSkgOiBbXTsKICAgIH0KICAgIExrLmV4cG9ydHMgPSBkSWU7CiAgfSk7CiAgdmFyIFBrID0gRSgocVplLCB3aykgPT4gewogICAgZnVuY3Rpb24gaEllKGUsIHQsIHIpIHsKICAgICAgc3dpdGNoIChyLmxlbmd0aCkgewogICAgICAgIGNhc2UgMDoKICAgICAgICAgIHJldHVybiBlLmNhbGwodCk7CiAgICAgICAgY2FzZSAxOgogICAgICAgICAgcmV0dXJuIGUuY2FsbCh0LCByWzBdKTsKICAgICAgICBjYXNlIDI6CiAgICAgICAgICByZXR1cm4gZS5jYWxsKHQsIHJbMF0sIHJbMV0pOwogICAgICAgIGNhc2UgMzoKICAgICAgICAgIHJldHVybiBlLmNhbGwodCwgclswXSwgclsxXSwgclsyXSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGUuYXBwbHkodCwgcik7CiAgICB9CiAgICB3ay5leHBvcnRzID0gaEllOwogIH0pOwogIHZhciB2TSA9IEUoKHpaZSwgcWspID0+IHsKICAgIHZhciBtSWUgPSBQaygpLAogICAgICBEayA9IE1hdGgubWF4OwogICAgZnVuY3Rpb24geUllKGUsIHQsIHIpIHsKICAgICAgcmV0dXJuICgKICAgICAgICAodCA9IERrKHQgPT09IHZvaWQgMCA/IGUubGVuZ3RoIC0gMSA6IHQsIDApKSwKICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICBmb3IgKAogICAgICAgICAgICB2YXIgbiA9IGFyZ3VtZW50cywgaSA9IC0xLCBhID0gRGsobi5sZW5ndGggLSB0LCAwKSwgbyA9IEFycmF5KGEpOwogICAgICAgICAgICArK2kgPCBhOwoKICAgICAgICAgICkKICAgICAgICAgICAgb1tpXSA9IG5bdCArIGldOwogICAgICAgICAgaSA9IC0xOwogICAgICAgICAgZm9yICh2YXIgcyA9IEFycmF5KHQgKyAxKTsgKytpIDwgdDsgKSBzW2ldID0gbltpXTsKICAgICAgICAgIHJldHVybiAoc1t0XSA9IHIobykpLCBtSWUoZSwgdGhpcywgcyk7CiAgICAgICAgfQogICAgICApOwogICAgfQogICAgcWsuZXhwb3J0cyA9IHlJZTsKICB9KTsKICB2YXIgYk0gPSBFKChGWmUsIHprKSA9PiB7CiAgICBmdW5jdGlvbiBnSWUoZSkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBlOwogICAgICB9OwogICAgfQogICAgemsuZXhwb3J0cyA9IGdJZTsKICB9KTsKICB2YXIgQmsgPSBFKChrWmUsIGtrKSA9PiB7CiAgICB2YXIgdkllID0gYk0oKSwKICAgICAgRmsgPSBaYigpLAogICAgICBiSWUgPSB5cygpLAogICAgICBNSWUgPSBGawogICAgICAgID8gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICAgICAgcmV0dXJuIEZrKGUsICJ0b1N0cmluZyIsIHsKICAgICAgICAgICAgICBjb25maWd1cmFibGU6ICEwLAogICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLAogICAgICAgICAgICAgIHZhbHVlOiB2SWUodCksCiAgICAgICAgICAgICAgd3JpdGFibGU6ICEwLAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICA6IGJJZTsKICAgIGtrLmV4cG9ydHMgPSBNSWU7CiAgfSk7CiAgdmFyIFVrID0gRSgoQlplLCBXaykgPT4gewogICAgdmFyIEFJZSA9IDgwMCwKICAgICAgRUllID0gMTYsCiAgICAgIFRJZSA9IERhdGUubm93OwogICAgZnVuY3Rpb24gX0llKGUpIHsKICAgICAgdmFyIHQgPSAwLAogICAgICAgIHIgPSAwOwogICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBuID0gVEllKCksCiAgICAgICAgICBpID0gRUllIC0gKG4gLSByKTsKICAgICAgICBpZiAoKChyID0gbiksIGkgPiAwKSkgewogICAgICAgICAgaWYgKCsrdCA+PSBBSWUpIHJldHVybiBhcmd1bWVudHNbMF07CiAgICAgICAgfSBlbHNlIHQgPSAwOwogICAgICAgIHJldHVybiBlLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTsKICAgICAgfTsKICAgIH0KICAgIFdrLmV4cG9ydHMgPSBfSWU7CiAgfSk7CiAgdmFyIE1NID0gRSgoV1plLCBYaykgPT4gewogICAgdmFyIFNJZSA9IEJrKCksCiAgICAgIE9JZSA9IFVrKCksCiAgICAgIHhJZSA9IE9JZShTSWUpOwogICAgWGsuZXhwb3J0cyA9IHhJZTsKICB9KTsKICB2YXIgSGsgPSBFKChVWmUsIFZrKSA9PiB7CiAgICB2YXIgQ0llID0gTmsoKSwKICAgICAgUkllID0gdk0oKSwKICAgICAgSUllID0gTU0oKTsKICAgIGZ1bmN0aW9uIExJZShlKSB7CiAgICAgIHJldHVybiBJSWUoUkllKGUsIHZvaWQgMCwgQ0llKSwgZSArICIiKTsKICAgIH0KICAgIFZrLmV4cG9ydHMgPSBMSWU7CiAgfSk7CiAgdmFyIFlrID0gRSgoWFplLCBqaykgPT4gewogICAgdmFyIEdrID0gRXkoKSwKICAgICAgTkllID0gR2sgJiYgbmV3IEdrKCk7CiAgICBqay5leHBvcnRzID0gTkllOwogIH0pOwogIHZhciAkayA9IEUoKFZaZSwgS2spID0+IHsKICAgIGZ1bmN0aW9uIHdJZSgpIHt9CiAgICBLay5leHBvcnRzID0gd0llOwogIH0pOwogIHZhciBBTSA9IEUoKEhaZSwgSmspID0+IHsKICAgIHZhciBRayA9IFlrKCksCiAgICAgIFBJZSA9ICRrKCksCiAgICAgIERJZSA9IFFrCiAgICAgICAgPyBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZXR1cm4gUWsuZ2V0KGUpOwogICAgICAgICAgfQogICAgICAgIDogUEllOwogICAgSmsuZXhwb3J0cyA9IERJZTsKICB9KTsKICB2YXIgZUIgPSBFKChHWmUsIFprKSA9PiB7CiAgICB2YXIgcUllID0ge307CiAgICBaay5leHBvcnRzID0gcUllOwogIH0pOwogIHZhciBFTSA9IEUoKGpaZSwgckIpID0+IHsKICAgIHZhciB0QiA9IGVCKCksCiAgICAgIHpJZSA9IE9iamVjdC5wcm90b3R5cGUsCiAgICAgIEZJZSA9IHpJZS5oYXNPd25Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIGtJZShlKSB7CiAgICAgIGZvciAoCiAgICAgICAgdmFyIHQgPSBlLm5hbWUgKyAiIiwgciA9IHRCW3RdLCBuID0gRkllLmNhbGwodEIsIHQpID8gci5sZW5ndGggOiAwOwogICAgICAgIG4tLTsKCiAgICAgICkgewogICAgICAgIHZhciBpID0gcltuXSwKICAgICAgICAgIGEgPSBpLmZ1bmM7CiAgICAgICAgaWYgKGEgPT0gbnVsbCB8fCBhID09IGUpIHJldHVybiBpLm5hbWU7CiAgICAgIH0KICAgICAgcmV0dXJuIHQ7CiAgICB9CiAgICByQi5leHBvcnRzID0ga0llOwogIH0pOwogIHZhciBVcCA9IEUoKFlaZSwgbkIpID0+IHsKICAgIHZhciBCSWUgPSB3YygpLAogICAgICBXSWUgPSBGcCgpLAogICAgICBVSWUgPSA0Mjk0OTY3Mjk1OwogICAgZnVuY3Rpb24gV3AoZSkgewogICAgICAodGhpcy5fX3dyYXBwZWRfXyA9IGUpLAogICAgICAgICh0aGlzLl9fYWN0aW9uc19fID0gW10pLAogICAgICAgICh0aGlzLl9fZGlyX18gPSAxKSwKICAgICAgICAodGhpcy5fX2ZpbHRlcmVkX18gPSAhMSksCiAgICAgICAgKHRoaXMuX19pdGVyYXRlZXNfXyA9IFtdKSwKICAgICAgICAodGhpcy5fX3Rha2VDb3VudF9fID0gVUllKSwKICAgICAgICAodGhpcy5fX3ZpZXdzX18gPSBbXSk7CiAgICB9CiAgICBXcC5wcm90b3R5cGUgPSBCSWUoV0llLnByb3RvdHlwZSk7CiAgICBXcC5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBXcDsKICAgIG5CLmV4cG9ydHMgPSBXcDsKICB9KTsKICB2YXIgWHAgPSBFKChLWmUsIGlCKSA9PiB7CiAgICBmdW5jdGlvbiBYSWUoZSwgdCkgewogICAgICB2YXIgciA9IC0xLAogICAgICAgIG4gPSBlLmxlbmd0aDsKICAgICAgZm9yICh0IHx8ICh0ID0gQXJyYXkobikpOyArK3IgPCBuOyApIHRbcl0gPSBlW3JdOwogICAgICByZXR1cm4gdDsKICAgIH0KICAgIGlCLmV4cG9ydHMgPSBYSWU7CiAgfSk7CiAgdmFyIG9CID0gRSgoJFplLCBhQikgPT4gewogICAgdmFyIFZJZSA9IFVwKCksCiAgICAgIEhJZSA9IEJwKCksCiAgICAgIEdJZSA9IFhwKCk7CiAgICBmdW5jdGlvbiBqSWUoZSkgewogICAgICBpZiAoZSBpbnN0YW5jZW9mIFZJZSkgcmV0dXJuIGUuY2xvbmUoKTsKICAgICAgdmFyIHQgPSBuZXcgSEllKGUuX193cmFwcGVkX18sIGUuX19jaGFpbl9fKTsKICAgICAgcmV0dXJuICgKICAgICAgICAodC5fX2FjdGlvbnNfXyA9IEdJZShlLl9fYWN0aW9uc19fKSksCiAgICAgICAgKHQuX19pbmRleF9fID0gZS5fX2luZGV4X18pLAogICAgICAgICh0Ll9fdmFsdWVzX18gPSBlLl9fdmFsdWVzX18pLAogICAgICAgIHQKICAgICAgKTsKICAgIH0KICAgIGFCLmV4cG9ydHMgPSBqSWU7CiAgfSk7CiAgdmFyIHVCID0gRSgoUVplLCBjQikgPT4gewogICAgdmFyIFlJZSA9IFVwKCksCiAgICAgIHNCID0gQnAoKSwKICAgICAgS0llID0gRnAoKSwKICAgICAgJEllID0gUnQoKSwKICAgICAgUUllID0gVHIoKSwKICAgICAgSkllID0gb0IoKSwKICAgICAgWkllID0gT2JqZWN0LnByb3RvdHlwZSwKICAgICAgZUxlID0gWkllLmhhc093blByb3BlcnR5OwogICAgZnVuY3Rpb24gVnAoZSkgewogICAgICBpZiAoUUllKGUpICYmICEkSWUoZSkgJiYgIShlIGluc3RhbmNlb2YgWUllKSkgewogICAgICAgIGlmIChlIGluc3RhbmNlb2Ygc0IpIHJldHVybiBlOwogICAgICAgIGlmIChlTGUuY2FsbChlLCAiX193cmFwcGVkX18iKSkgcmV0dXJuIEpJZShlKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IHNCKGUpOwogICAgfQogICAgVnAucHJvdG90eXBlID0gS0llLnByb3RvdHlwZTsKICAgIFZwLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFZwOwogICAgY0IuZXhwb3J0cyA9IFZwOwogIH0pOwogIHZhciBmQiA9IEUoKEpaZSwgbEIpID0+IHsKICAgIHZhciB0TGUgPSBVcCgpLAogICAgICByTGUgPSBBTSgpLAogICAgICBuTGUgPSBFTSgpLAogICAgICBpTGUgPSB1QigpOwogICAgZnVuY3Rpb24gYUxlKGUpIHsKICAgICAgdmFyIHQgPSBuTGUoZSksCiAgICAgICAgciA9IGlMZVt0XTsKICAgICAgaWYgKHR5cGVvZiByICE9ICJmdW5jdGlvbiIgfHwgISh0IGluIHRMZS5wcm90b3R5cGUpKSByZXR1cm4gITE7CiAgICAgIGlmIChlID09PSByKSByZXR1cm4gITA7CiAgICAgIHZhciBuID0gckxlKHIpOwogICAgICByZXR1cm4gISFuICYmIGUgPT09IG5bMF07CiAgICB9CiAgICBsQi5leHBvcnRzID0gYUxlOwogIH0pOwogIHZhciBtQiA9IEUoKFpaZSwgaEIpID0+IHsKICAgIHZhciBwQiA9IEJwKCksCiAgICAgIG9MZSA9IEhrKCksCiAgICAgIHNMZSA9IEFNKCksCiAgICAgIFRNID0gRU0oKSwKICAgICAgY0xlID0gUnQoKSwKICAgICAgZEIgPSBmQigpLAogICAgICB1TGUgPSAiRXhwZWN0ZWQgYSBmdW5jdGlvbiIsCiAgICAgIGxMZSA9IDgsCiAgICAgIGZMZSA9IDMyLAogICAgICBwTGUgPSAxMjgsCiAgICAgIGRMZSA9IDI1NjsKICAgIGZ1bmN0aW9uIGhMZShlKSB7CiAgICAgIHJldHVybiBvTGUoZnVuY3Rpb24gKHQpIHsKICAgICAgICB2YXIgciA9IHQubGVuZ3RoLAogICAgICAgICAgbiA9IHIsCiAgICAgICAgICBpID0gcEIucHJvdG90eXBlLnRocnU7CiAgICAgICAgZm9yIChlICYmIHQucmV2ZXJzZSgpOyBuLS07ICkgewogICAgICAgICAgdmFyIGEgPSB0W25dOwogICAgICAgICAgaWYgKHR5cGVvZiBhICE9ICJmdW5jdGlvbiIpIHRocm93IG5ldyBUeXBlRXJyb3IodUxlKTsKICAgICAgICAgIGlmIChpICYmICFvICYmIFRNKGEpID09ICJ3cmFwcGVyIikgdmFyIG8gPSBuZXcgcEIoW10sICEwKTsKICAgICAgICB9CiAgICAgICAgZm9yIChuID0gbyA/IG4gOiByOyArK24gPCByOyApIHsKICAgICAgICAgIGEgPSB0W25dOwogICAgICAgICAgdmFyIHMgPSBUTShhKSwKICAgICAgICAgICAgYyA9IHMgPT0gIndyYXBwZXIiID8gc0xlKGEpIDogdm9pZCAwOwogICAgICAgICAgYyAmJgogICAgICAgICAgZEIoY1swXSkgJiYKICAgICAgICAgIGNbMV0gPT0gKHBMZSB8IGxMZSB8IGZMZSB8IGRMZSkgJiYKICAgICAgICAgICFjWzRdLmxlbmd0aCAmJgogICAgICAgICAgY1s5XSA9PSAxCiAgICAgICAgICAgID8gKG8gPSBvW1RNKGNbMF0pXS5hcHBseShvLCBjWzNdKSkKICAgICAgICAgICAgOiAobyA9IGEubGVuZ3RoID09IDEgJiYgZEIoYSkgPyBvW3NdKCkgOiBvLnRocnUoYSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIHUgPSBhcmd1bWVudHMsCiAgICAgICAgICAgIGwgPSB1WzBdOwogICAgICAgICAgaWYgKG8gJiYgdS5sZW5ndGggPT0gMSAmJiBjTGUobCkpIHJldHVybiBvLnBsYW50KGwpLnZhbHVlKCk7CiAgICAgICAgICBmb3IgKHZhciBwID0gMCwgZCA9IHIgPyB0W3BdLmFwcGx5KHRoaXMsIHUpIDogbDsgKytwIDwgcjsgKQogICAgICAgICAgICBkID0gdFtwXS5jYWxsKHRoaXMsIGQpOwogICAgICAgICAgcmV0dXJuIGQ7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBoQi5leHBvcnRzID0gaExlOwogIH0pOwogIHZhciBnQiA9IEUoKGVldCwgeUIpID0+IHsKICAgIHZhciBtTGUgPSBtQigpLAogICAgICB5TGUgPSBtTGUoKTsKICAgIHlCLmV4cG9ydHMgPSB5TGU7CiAgfSk7CiAgdmFyIGJCID0gRSgodGV0LCB2QikgPT4gewogICAgZnVuY3Rpb24gZ0xlKGUsIHQsIHIpIHsKICAgICAgcmV0dXJuICgKICAgICAgICBlID09PSBlICYmCiAgICAgICAgICAociAhPT0gdm9pZCAwICYmIChlID0gZSA8PSByID8gZSA6IHIpLAogICAgICAgICAgdCAhPT0gdm9pZCAwICYmIChlID0gZSA+PSB0ID8gZSA6IHQpKSwKICAgICAgICBlCiAgICAgICk7CiAgICB9CiAgICB2Qi5leHBvcnRzID0gZ0xlOwogIH0pOwogIHZhciBBQiA9IEUoKHJldCwgTUIpID0+IHsKICAgIHZhciB2TGUgPSBiQigpLAogICAgICBfTSA9IG9mKCk7CiAgICBmdW5jdGlvbiBiTGUoZSwgdCwgcikgewogICAgICByZXR1cm4gKAogICAgICAgIHIgPT09IHZvaWQgMCAmJiAoKHIgPSB0KSwgKHQgPSB2b2lkIDApKSwKICAgICAgICByICE9PSB2b2lkIDAgJiYgKChyID0gX00ocikpLCAociA9IHIgPT09IHIgPyByIDogMCkpLAogICAgICAgIHQgIT09IHZvaWQgMCAmJiAoKHQgPSBfTSh0KSksICh0ID0gdCA9PT0gdCA/IHQgOiAwKSksCiAgICAgICAgdkxlKF9NKGUpLCB0LCByKQogICAgICApOwogICAgfQogICAgTUIuZXhwb3J0cyA9IGJMZTsKICB9KTsKICB2YXIgSUIsCiAgICBMQiwKICAgIE5CLAogICAgd0IsCiAgICBNTGUsCiAgICBBTGUsCiAgICBFTGUsCiAgICBUTGUsCiAgICBfTGUsCiAgICBTTGUsCiAgICBPTGUsCiAgICB4TGUsCiAgICBDTGUsCiAgICBSTGUsCiAgICBJTGUsCiAgICBMTGUsCiAgICBOTGUsCiAgICB3TGUsCiAgICBQTGUsCiAgICBQQiwKICAgIERCLAogICAgRExlLAogICAgcUxlLAogICAgekxlLAogICAgcUIsCiAgICBGTGUsCiAgICBrTGUsCiAgICB6QiwKICAgIEJMZSwKICAgIFNNLAogICAgRkIsCiAgICBFQiwKICAgIFRCLAogICAga0IsCiAgICBEYywKICAgIFdMZSwKICAgIFZuLAogICAgQkIsCiAgICBVTGUsCiAgICBXciwKICAgIGJuLAogICAgcWMsCiAgICBXQiwKICAgIE9NLAogICAgX0IsCiAgICB4TSwKICAgIFhMZSwKICAgIFBjLAogICAgVkxlLAogICAgSExlLAogICAgR0xlLAogICAgVUIsCiAgICBTQiwKICAgIGpMZSwKICAgIE9CLAogICAgWUxlLAogICAgS0xlLAogICAgJExlLAogICAgeEIsCiAgICBIcCwKICAgIEdwLAogICAgQ0IsCiAgICBSQiwKICAgIFhCLAogICAgVkIgPSBWKCgpID0+IHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICAoSUIgPSBiZShnQigpKSksIChMQiA9IGJlKFppKCkpKSwgKE5CID0gYmUoQUIoKSkpOwogICAgICBrcigpOwogICAgICBDTSgpOwogICAgICB6cCgpOwogICAgICAod0IgPSBiZShjbygpKSksCiAgICAgICAgKHsKICAgICAgICAgIE1PVVNFX0NMSUNLOiBNTGUsCiAgICAgICAgICBNT1VTRV9TRUNPTkRfQ0xJQ0s6IEFMZSwKICAgICAgICAgIE1PVVNFX0RPV046IEVMZSwKICAgICAgICAgIE1PVVNFX1VQOiBUTGUsCiAgICAgICAgICBNT1VTRV9PVkVSOiBfTGUsCiAgICAgICAgICBNT1VTRV9PVVQ6IFNMZSwKICAgICAgICAgIERST1BET1dOX0NMT1NFOiBPTGUsCiAgICAgICAgICBEUk9QRE9XTl9PUEVOOiB4TGUsCiAgICAgICAgICBTTElERVJfQUNUSVZFOiBDTGUsCiAgICAgICAgICBTTElERVJfSU5BQ1RJVkU6IFJMZSwKICAgICAgICAgIFRBQl9BQ1RJVkU6IElMZSwKICAgICAgICAgIFRBQl9JTkFDVElWRTogTExlLAogICAgICAgICAgTkFWQkFSX0NMT1NFOiBOTGUsCiAgICAgICAgICBOQVZCQVJfT1BFTjogd0xlLAogICAgICAgICAgTU9VU0VfTU9WRTogUExlLAogICAgICAgICAgUEFHRV9TQ1JPTExfRE9XTjogUEIsCiAgICAgICAgICBTQ1JPTExfSU5UT19WSUVXOiBEQiwKICAgICAgICAgIFNDUk9MTF9PVVRfT0ZfVklFVzogRExlLAogICAgICAgICAgUEFHRV9TQ1JPTExfVVA6IHFMZSwKICAgICAgICAgIFNDUk9MTElOR19JTl9WSUVXOiB6TGUsCiAgICAgICAgICBQQUdFX0ZJTklTSDogcUIsCiAgICAgICAgICBFQ09NTUVSQ0VfQ0FSVF9DTE9TRTogRkxlLAogICAgICAgICAgRUNPTU1FUkNFX0NBUlRfT1BFTjoga0xlLAogICAgICAgICAgUEFHRV9TVEFSVDogekIsCiAgICAgICAgICBQQUdFX1NDUk9MTDogQkxlLAogICAgICAgIH0gPSBnbiksCiAgICAgICAgKFNNID0gIkNPTVBPTkVOVF9BQ1RJVkUiKSwKICAgICAgICAoRkIgPSAiQ09NUE9ORU5UX0lOQUNUSVZFIiksCiAgICAgICAgKHsgQ09MT05fREVMSU1JVEVSOiBFQiB9ID0geXIpLAogICAgICAgICh7IGdldE5hbWVzcGFjZWRQYXJhbWV0ZXJJZDogVEIgfSA9IHdCLklYMlZhbmlsbGFVdGlscyksCiAgICAgICAgKGtCID0gKGUpID0+ICh0KSA9PiB0eXBlb2YgdCA9PSAib2JqZWN0IiAmJiBlKHQpID8gITAgOiB0KSwKICAgICAgICAoRGMgPSBrQigoeyBlbGVtZW50OiBlLCBuYXRpdmVFdmVudDogdCB9KSA9PiBlID09PSB0LnRhcmdldCkpLAogICAgICAgIChXTGUgPSBrQigoeyBlbGVtZW50OiBlLCBuYXRpdmVFdmVudDogdCB9KSA9PiBlLmNvbnRhaW5zKHQudGFyZ2V0KSkpLAogICAgICAgIChWbiA9ICgwLCBJQi5kZWZhdWx0KShbRGMsIFdMZV0pKSwKICAgICAgICAoQkIgPSAoZSwgdCkgPT4gewogICAgICAgICAgaWYgKHQpIHsKICAgICAgICAgICAgbGV0IHsgaXhEYXRhOiByIH0gPSBlLmdldFN0YXRlKCksCiAgICAgICAgICAgICAgeyBldmVudHM6IG4gfSA9IHIsCiAgICAgICAgICAgICAgaSA9IG5bdF07CiAgICAgICAgICAgIGlmIChpICYmICFYTGVbaS5ldmVudFR5cGVJZF0pIHJldHVybiBpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfSksCiAgICAgICAgKFVMZSA9ICh7IHN0b3JlOiBlLCBldmVudDogdCB9KSA9PiB7CiAgICAgICAgICBsZXQgeyBhY3Rpb246IHIgfSA9IHQsCiAgICAgICAgICAgIHsgYXV0b1N0b3BFdmVudElkOiBuIH0gPSByLmNvbmZpZzsKICAgICAgICAgIHJldHVybiAhIUJCKGUsIG4pOwogICAgICAgIH0pLAogICAgICAgIChXciA9ICh7IHN0b3JlOiBlLCBldmVudDogdCwgZWxlbWVudDogciwgZXZlbnRTdGF0ZUtleTogbiB9LCBpKSA9PiB7CiAgICAgICAgICBsZXQgeyBhY3Rpb246IGEsIGlkOiBvIH0gPSB0LAogICAgICAgICAgICB7IGFjdGlvbkxpc3RJZDogcywgYXV0b1N0b3BFdmVudElkOiBjIH0gPSBhLmNvbmZpZywKICAgICAgICAgICAgdSA9IEJCKGUsIGMpOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgdSAmJgogICAgICAgICAgICAgIHQwKHsKICAgICAgICAgICAgICAgIHN0b3JlOiBlLAogICAgICAgICAgICAgICAgZXZlbnRJZDogYywKICAgICAgICAgICAgICAgIGV2ZW50VGFyZ2V0OiByLAogICAgICAgICAgICAgICAgZXZlbnRTdGF0ZUtleTogYyArIEVCICsgbi5zcGxpdChFQilbMV0sCiAgICAgICAgICAgICAgICBhY3Rpb25MaXN0SWQ6ICgwLCBMQi5kZWZhdWx0KSh1LCAiYWN0aW9uLmNvbmZpZy5hY3Rpb25MaXN0SWQiKSwKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgdDAoewogICAgICAgICAgICAgIHN0b3JlOiBlLAogICAgICAgICAgICAgIGV2ZW50SWQ6IG8sCiAgICAgICAgICAgICAgZXZlbnRUYXJnZXQ6IHIsCiAgICAgICAgICAgICAgZXZlbnRTdGF0ZUtleTogbiwKICAgICAgICAgICAgICBhY3Rpb25MaXN0SWQ6IHMsCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB6Yyh7CiAgICAgICAgICAgICAgc3RvcmU6IGUsCiAgICAgICAgICAgICAgZXZlbnRJZDogbywKICAgICAgICAgICAgICBldmVudFRhcmdldDogciwKICAgICAgICAgICAgICBldmVudFN0YXRlS2V5OiBuLAogICAgICAgICAgICAgIGFjdGlvbkxpc3RJZDogcywKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGkKICAgICAgICAgICk7CiAgICAgICAgfSksCiAgICAgICAgKGJuID0gKGUsIHQpID0+IChyLCBuKSA9PiBlKHIsIG4pID09PSAhMCA/IHQociwgbikgOiBuKSwKICAgICAgICAocWMgPSB7IGhhbmRsZXI6IGJuKFZuLCBXcikgfSksCiAgICAgICAgKFdCID0geyAuLi5xYywgdHlwZXM6IFtTTSwgRkJdLmpvaW4oIiAiKSB9KSwKICAgICAgICAoT00gPSBbCiAgICAgICAgICB7IHRhcmdldDogd2luZG93LCB0eXBlczogInJlc2l6ZSBvcmllbnRhdGlvbmNoYW5nZSIsIHRocm90dGxlOiAhMCB9LAogICAgICAgICAgewogICAgICAgICAgICB0YXJnZXQ6IGRvY3VtZW50LAogICAgICAgICAgICB0eXBlczogInNjcm9sbCB3aGVlbCByZWFkeXN0YXRlY2hhbmdlIElYMl9QQUdFX1VQREFURSIsCiAgICAgICAgICAgIHRocm90dGxlOiAhMCwKICAgICAgICAgIH0sCiAgICAgICAgXSksCiAgICAgICAgKF9CID0gIm1vdXNlb3ZlciBtb3VzZW91dCIpLAogICAgICAgICh4TSA9IHsgdHlwZXM6IE9NIH0pLAogICAgICAgIChYTGUgPSB7IFBBR0VfU1RBUlQ6IHpCLCBQQUdFX0ZJTklTSDogcUIgfSksCiAgICAgICAgKFBjID0gKCgpID0+IHsKICAgICAgICAgIGxldCBlID0gd2luZG93LnBhZ2VYT2Zmc2V0ICE9PSB2b2lkIDAsCiAgICAgICAgICAgIHIgPQogICAgICAgICAgICAgIGRvY3VtZW50LmNvbXBhdE1vZGUgPT09ICJDU1MxQ29tcGF0IgogICAgICAgICAgICAgICAgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQKICAgICAgICAgICAgICAgIDogZG9jdW1lbnQuYm9keTsKICAgICAgICAgIHJldHVybiAoKSA9PiAoewogICAgICAgICAgICBzY3JvbGxMZWZ0OiBlID8gd2luZG93LnBhZ2VYT2Zmc2V0IDogci5zY3JvbGxMZWZ0LAogICAgICAgICAgICBzY3JvbGxUb3A6IGUgPyB3aW5kb3cucGFnZVlPZmZzZXQgOiByLnNjcm9sbFRvcCwKICAgICAgICAgICAgc3RpZmZTY3JvbGxUb3A6ICgwLCBOQi5kZWZhdWx0KSgKICAgICAgICAgICAgICBlID8gd2luZG93LnBhZ2VZT2Zmc2V0IDogci5zY3JvbGxUb3AsCiAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICByLnNjcm9sbEhlaWdodCAtIHdpbmRvdy5pbm5lckhlaWdodAogICAgICAgICAgICApLAogICAgICAgICAgICBzY3JvbGxXaWR0aDogci5zY3JvbGxXaWR0aCwKICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiByLnNjcm9sbEhlaWdodCwKICAgICAgICAgICAgY2xpZW50V2lkdGg6IHIuY2xpZW50V2lkdGgsCiAgICAgICAgICAgIGNsaWVudEhlaWdodDogci5jbGllbnRIZWlnaHQsCiAgICAgICAgICAgIGlubmVyV2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoLAogICAgICAgICAgICBpbm5lckhlaWdodDogd2luZG93LmlubmVySGVpZ2h0LAogICAgICAgICAgfSk7CiAgICAgICAgfSkoKSksCiAgICAgICAgKFZMZSA9IChlLCB0KSA9PgogICAgICAgICAgISgKICAgICAgICAgICAgZS5sZWZ0ID4gdC5yaWdodCB8fAogICAgICAgICAgICBlLnJpZ2h0IDwgdC5sZWZ0IHx8CiAgICAgICAgICAgIGUudG9wID4gdC5ib3R0b20gfHwKICAgICAgICAgICAgZS5ib3R0b20gPCB0LnRvcAogICAgICAgICAgKSksCiAgICAgICAgKEhMZSA9ICh7IGVsZW1lbnQ6IGUsIG5hdGl2ZUV2ZW50OiB0IH0pID0+IHsKICAgICAgICAgIGxldCB7IHR5cGU6IHIsIHRhcmdldDogbiwgcmVsYXRlZFRhcmdldDogaSB9ID0gdCwKICAgICAgICAgICAgYSA9IGUuY29udGFpbnMobik7CiAgICAgICAgICBpZiAociA9PT0gIm1vdXNlb3ZlciIgJiYgYSkgcmV0dXJuICEwOwogICAgICAgICAgbGV0IG8gPSBlLmNvbnRhaW5zKGkpOwogICAgICAgICAgcmV0dXJuICEhKHIgPT09ICJtb3VzZW91dCIgJiYgYSAmJiBvKTsKICAgICAgICB9KSwKICAgICAgICAoR0xlID0gKGUpID0+IHsKICAgICAgICAgIGxldCB7CiAgICAgICAgICAgICAgZWxlbWVudDogdCwKICAgICAgICAgICAgICBldmVudDogeyBjb25maWc6IHIgfSwKICAgICAgICAgICAgfSA9IGUsCiAgICAgICAgICAgIHsgY2xpZW50V2lkdGg6IG4sIGNsaWVudEhlaWdodDogaSB9ID0gUGMoKSwKICAgICAgICAgICAgYSA9IHIuc2Nyb2xsT2Zmc2V0VmFsdWUsCiAgICAgICAgICAgIGMgPSByLnNjcm9sbE9mZnNldFVuaXQgPT09ICJQWCIgPyBhIDogKGkgKiAoYSB8fCAwKSkgLyAxMDA7CiAgICAgICAgICByZXR1cm4gVkxlKHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIHsKICAgICAgICAgICAgbGVmdDogMCwKICAgICAgICAgICAgdG9wOiBjLAogICAgICAgICAgICByaWdodDogbiwKICAgICAgICAgICAgYm90dG9tOiBpIC0gYywKICAgICAgICAgIH0pOwogICAgICAgIH0pLAogICAgICAgIChVQiA9IChlKSA9PiAodCwgcikgPT4gewogICAgICAgICAgbGV0IHsgdHlwZTogbiB9ID0gdC5uYXRpdmVFdmVudCwKICAgICAgICAgICAgaSA9IFtTTSwgRkJdLmluZGV4T2YobikgIT09IC0xID8gbiA9PT0gU00gOiByLmlzQWN0aXZlLAogICAgICAgICAgICBhID0geyAuLi5yLCBpc0FjdGl2ZTogaSB9OwogICAgICAgICAgcmV0dXJuICgoIXIgfHwgYS5pc0FjdGl2ZSAhPT0gci5pc0FjdGl2ZSkgJiYgZSh0LCBhKSkgfHwgYTsKICAgICAgICB9KSwKICAgICAgICAoU0IgPSAoZSkgPT4gKHQsIHIpID0+IHsKICAgICAgICAgIGxldCBuID0geyBlbGVtZW50SG92ZXJlZDogSExlKHQpIH07CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoKHIgPyBuLmVsZW1lbnRIb3ZlcmVkICE9PSByLmVsZW1lbnRIb3ZlcmVkIDogbi5lbGVtZW50SG92ZXJlZCkgJiYKICAgICAgICAgICAgICBlKHQsIG4pKSB8fAogICAgICAgICAgICBuCiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIChqTGUgPSAoZSkgPT4gKHQsIHIpID0+IHsKICAgICAgICAgIGxldCBuID0geyAuLi5yLCBlbGVtZW50VmlzaWJsZTogR0xlKHQpIH07CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAoKHIgPyBuLmVsZW1lbnRWaXNpYmxlICE9PSByLmVsZW1lbnRWaXNpYmxlIDogbi5lbGVtZW50VmlzaWJsZSkgJiYKICAgICAgICAgICAgICBlKHQsIG4pKSB8fAogICAgICAgICAgICBuCiAgICAgICAgICApOwogICAgICAgIH0pLAogICAgICAgIChPQiA9CiAgICAgICAgICAoZSkgPT4KICAgICAgICAgICh0LCByID0ge30pID0+IHsKICAgICAgICAgICAgbGV0IHsgc3RpZmZTY3JvbGxUb3A6IG4sIHNjcm9sbEhlaWdodDogaSwgaW5uZXJIZWlnaHQ6IGEgfSA9IFBjKCksCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZXZlbnQ6IHsgY29uZmlnOiBvLCBldmVudFR5cGVJZDogcyB9LAogICAgICAgICAgICAgIH0gPSB0LAogICAgICAgICAgICAgIHsgc2Nyb2xsT2Zmc2V0VmFsdWU6IGMsIHNjcm9sbE9mZnNldFVuaXQ6IHUgfSA9IG8sCiAgICAgICAgICAgICAgbCA9IHUgPT09ICJQWCIsCiAgICAgICAgICAgICAgcCA9IGkgLSBhLAogICAgICAgICAgICAgIGQgPSBOdW1iZXIoKG4gLyBwKS50b0ZpeGVkKDIpKTsKICAgICAgICAgICAgaWYgKHIgJiYgci5wZXJjZW50VG9wID09PSBkKSByZXR1cm4gcjsKICAgICAgICAgICAgbGV0IGggPSAobCA/IGMgOiAoYSAqIChjIHx8IDApKSAvIDEwMCkgLyBwLAogICAgICAgICAgICAgIG0sCiAgICAgICAgICAgICAgdiwKICAgICAgICAgICAgICB5ID0gMDsKICAgICAgICAgICAgciAmJgogICAgICAgICAgICAgICgobSA9IGQgPiByLnBlcmNlbnRUb3ApLAogICAgICAgICAgICAgICh2ID0gci5zY3JvbGxpbmdEb3duICE9PSBtKSwKICAgICAgICAgICAgICAoeSA9IHYgPyBkIDogci5hbmNob3JUb3ApKTsKICAgICAgICAgICAgbGV0IGcgPSBzID09PSBQQiA/IGQgPj0geSArIGggOiBkIDw9IHkgLSBoLAogICAgICAgICAgICAgIE0gPSB7CiAgICAgICAgICAgICAgICAuLi5yLAogICAgICAgICAgICAgICAgcGVyY2VudFRvcDogZCwKICAgICAgICAgICAgICAgIGluQm91bmRzOiBnLAogICAgICAgICAgICAgICAgYW5jaG9yVG9wOiB5LAogICAgICAgICAgICAgICAgc2Nyb2xsaW5nRG93bjogbSwKICAgICAgICAgICAgICB9OwogICAgICAgICAgICByZXR1cm4gKHIgJiYgZyAmJiAodiB8fCBNLmluQm91bmRzICE9PSByLmluQm91bmRzKSAmJiBlKHQsIE0pKSB8fCBNOwogICAgICAgICAgfSksCiAgICAgICAgKFlMZSA9IChlLCB0KSA9PgogICAgICAgICAgZS5sZWZ0ID4gdC5sZWZ0ICYmCiAgICAgICAgICBlLmxlZnQgPCB0LnJpZ2h0ICYmCiAgICAgICAgICBlLnRvcCA+IHQudG9wICYmCiAgICAgICAgICBlLnRvcCA8IHQuYm90dG9tKSwKICAgICAgICAoS0xlID0gKGUpID0+ICh0LCByKSA9PiB7CiAgICAgICAgICBsZXQgbiA9IHsgZmluaXNoZWQ6IGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgfTsKICAgICAgICAgIHJldHVybiBuLmZpbmlzaGVkICYmICEociAmJiByLmZpbnNoZWQpICYmIGUodCksIG47CiAgICAgICAgfSksCiAgICAgICAgKCRMZSA9IChlKSA9PiAodCwgcikgPT4gewogICAgICAgICAgbGV0IG4gPSB7IHN0YXJ0ZWQ6ICEwIH07CiAgICAgICAgICByZXR1cm4gciB8fCBlKHQpLCBuOwogICAgICAgIH0pLAogICAgICAgICh4QiA9CiAgICAgICAgICAoZSkgPT4KICAgICAgICAgICh0LCByID0geyBjbGlja0NvdW50OiAwIH0pID0+IHsKICAgICAgICAgICAgbGV0IG4gPSB7IGNsaWNrQ291bnQ6IChyLmNsaWNrQ291bnQgJSAyKSArIDEgfTsKICAgICAgICAgICAgcmV0dXJuIChuLmNsaWNrQ291bnQgIT09IHIuY2xpY2tDb3VudCAmJiBlKHQsIG4pKSB8fCBuOwogICAgICAgICAgfSksCiAgICAgICAgKEhwID0gKGUgPSAhMCkgPT4gKHsKICAgICAgICAgIC4uLldCLAogICAgICAgICAgaGFuZGxlcjogYm4oCiAgICAgICAgICAgIGUgPyBWbiA6IERjLAogICAgICAgICAgICBVQigodCwgcikgPT4gKHIuaXNBY3RpdmUgPyBxYy5oYW5kbGVyKHQsIHIpIDogcikpCiAgICAgICAgICApLAogICAgICAgIH0pKSwKICAgICAgICAoR3AgPSAoZSA9ICEwKSA9PiAoewogICAgICAgICAgLi4uV0IsCiAgICAgICAgICBoYW5kbGVyOiBibigKICAgICAgICAgICAgZSA/IFZuIDogRGMsCiAgICAgICAgICAgIFVCKCh0LCByKSA9PiAoci5pc0FjdGl2ZSA/IHIgOiBxYy5oYW5kbGVyKHQsIHIpKSkKICAgICAgICAgICksCiAgICAgICAgfSkpLAogICAgICAgIChDQiA9IHsKICAgICAgICAgIC4uLnhNLAogICAgICAgICAgaGFuZGxlcjogakxlKChlLCB0KSA9PiB7CiAgICAgICAgICAgIGxldCB7IGVsZW1lbnRWaXNpYmxlOiByIH0gPSB0LAogICAgICAgICAgICAgIHsgZXZlbnQ6IG4sIHN0b3JlOiBpIH0gPSBlLAogICAgICAgICAgICAgIHsgaXhEYXRhOiBhIH0gPSBpLmdldFN0YXRlKCksCiAgICAgICAgICAgICAgeyBldmVudHM6IG8gfSA9IGE7CiAgICAgICAgICAgIHJldHVybiAhb1tuLmFjdGlvbi5jb25maWcuYXV0b1N0b3BFdmVudElkXSAmJiB0LnRyaWdnZXJlZAogICAgICAgICAgICAgID8gdAogICAgICAgICAgICAgIDogKG4uZXZlbnRUeXBlSWQgPT09IERCKSA9PT0gcgogICAgICAgICAgICAgID8gKFdyKGUpLCB7IC4uLnQsIHRyaWdnZXJlZDogITAgfSkKICAgICAgICAgICAgICA6IHQ7CiAgICAgICAgICB9KSwKICAgICAgICB9KSwKICAgICAgICAoUkIgPSAwLjA1KSwKICAgICAgICAoWEIgPSB7CiAgICAgICAgICBbQ0xlXTogSHAoKSwKICAgICAgICAgIFtSTGVdOiBHcCgpLAogICAgICAgICAgW3hMZV06IEhwKCksCiAgICAgICAgICBbT0xlXTogR3AoKSwKICAgICAgICAgIFt3TGVdOiBIcCghMSksCiAgICAgICAgICBbTkxlXTogR3AoITEpLAogICAgICAgICAgW0lMZV06IEhwKCksCiAgICAgICAgICBbTExlXTogR3AoKSwKICAgICAgICAgIFtrTGVdOiB7IHR5cGVzOiAiZWNvbW1lcmNlLWNhcnQtb3BlbiIsIGhhbmRsZXI6IGJuKFZuLCBXcikgfSwKICAgICAgICAgIFtGTGVdOiB7IHR5cGVzOiAiZWNvbW1lcmNlLWNhcnQtY2xvc2UiLCBoYW5kbGVyOiBibihWbiwgV3IpIH0sCiAgICAgICAgICBbTUxlXTogewogICAgICAgICAgICB0eXBlczogImNsaWNrIiwKICAgICAgICAgICAgaGFuZGxlcjogYm4oCiAgICAgICAgICAgICAgVm4sCiAgICAgICAgICAgICAgeEIoKGUsIHsgY2xpY2tDb3VudDogdCB9KSA9PiB7CiAgICAgICAgICAgICAgICBVTGUoZSkgPyB0ID09PSAxICYmIFdyKGUpIDogV3IoZSk7CiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgKSwKICAgICAgICAgIH0sCiAgICAgICAgICBbQUxlXTogewogICAgICAgICAgICB0eXBlczogImNsaWNrIiwKICAgICAgICAgICAgaGFuZGxlcjogYm4oCiAgICAgICAgICAgICAgVm4sCiAgICAgICAgICAgICAgeEIoKGUsIHsgY2xpY2tDb3VudDogdCB9KSA9PiB7CiAgICAgICAgICAgICAgICB0ID09PSAyICYmIFdyKGUpOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICksCiAgICAgICAgICB9LAogICAgICAgICAgW0VMZV06IHsgLi4ucWMsIHR5cGVzOiAibW91c2Vkb3duIiB9LAogICAgICAgICAgW1RMZV06IHsgLi4ucWMsIHR5cGVzOiAibW91c2V1cCIgfSwKICAgICAgICAgIFtfTGVdOiB7CiAgICAgICAgICAgIHR5cGVzOiBfQiwKICAgICAgICAgICAgaGFuZGxlcjogYm4oCiAgICAgICAgICAgICAgVm4sCiAgICAgICAgICAgICAgU0IoKGUsIHQpID0+IHsKICAgICAgICAgICAgICAgIHQuZWxlbWVudEhvdmVyZWQgJiYgV3IoZSk7CiAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgKSwKICAgICAgICAgIH0sCiAgICAgICAgICBbU0xlXTogewogICAgICAgICAgICB0eXBlczogX0IsCiAgICAgICAgICAgIGhhbmRsZXI6IGJuKAogICAgICAgICAgICAgIFZuLAogICAgICAgICAgICAgIFNCKChlLCB0KSA9PiB7CiAgICAgICAgICAgICAgICB0LmVsZW1lbnRIb3ZlcmVkIHx8IFdyKGUpOwogICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICksCiAgICAgICAgICB9LAogICAgICAgICAgW1BMZV06IHsKICAgICAgICAgICAgdHlwZXM6ICJtb3VzZW1vdmUgbW91c2VvdXQgc2Nyb2xsIiwKICAgICAgICAgICAgaGFuZGxlcjogKAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN0b3JlOiBlLAogICAgICAgICAgICAgICAgZWxlbWVudDogdCwKICAgICAgICAgICAgICAgIGV2ZW50Q29uZmlnOiByLAogICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IG4sCiAgICAgICAgICAgICAgICBldmVudFN0YXRlS2V5OiBpLAogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgYSA9IHsgY2xpZW50WDogMCwgY2xpZW50WTogMCwgcGFnZVg6IDAsIHBhZ2VZOiAwIH0KICAgICAgICAgICAgKSA9PiB7CiAgICAgICAgICAgICAgbGV0IHsKICAgICAgICAgICAgICAgICAgYmFzZWRPbjogbywKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBeGlzOiBzLAogICAgICAgICAgICAgICAgICBjb250aW51b3VzUGFyYW1ldGVyR3JvdXBJZDogYywKICAgICAgICAgICAgICAgICAgcmV2ZXJzZTogdSwKICAgICAgICAgICAgICAgICAgcmVzdGluZ1N0YXRlOiBsID0gMCwKICAgICAgICAgICAgICAgIH0gPSByLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBjbGllbnRYOiBwID0gYS5jbGllbnRYLAogICAgICAgICAgICAgICAgICBjbGllbnRZOiBkID0gYS5jbGllbnRZLAogICAgICAgICAgICAgICAgICBwYWdlWDogaCA9IGEucGFnZVgsCiAgICAgICAgICAgICAgICAgIHBhZ2VZOiBtID0gYS5wYWdlWSwKICAgICAgICAgICAgICAgIH0gPSBuLAogICAgICAgICAgICAgICAgdiA9IHMgPT09ICJYX0FYSVMiLAogICAgICAgICAgICAgICAgeSA9IG4udHlwZSA9PT0gIm1vdXNlb3V0IiwKICAgICAgICAgICAgICAgIGcgPSBsIC8gMTAwLAogICAgICAgICAgICAgICAgTSA9IGMsCiAgICAgICAgICAgICAgICBBID0gITE7CiAgICAgICAgICAgICAgc3dpdGNoIChvKSB7CiAgICAgICAgICAgICAgICBjYXNlIFduLlZJRVdQT1JUOiB7CiAgICAgICAgICAgICAgICAgIGcgPSB2CiAgICAgICAgICAgICAgICAgICAgPyBNYXRoLm1pbihwLCB3aW5kb3cuaW5uZXJXaWR0aCkgLyB3aW5kb3cuaW5uZXJXaWR0aAogICAgICAgICAgICAgICAgICAgIDogTWF0aC5taW4oZCwgd2luZG93LmlubmVySGVpZ2h0KSAvIHdpbmRvdy5pbm5lckhlaWdodDsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXNlIFduLlBBR0U6IHsKICAgICAgICAgICAgICAgICAgbGV0IHsKICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiBfLAogICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcDogQywKICAgICAgICAgICAgICAgICAgICBzY3JvbGxXaWR0aDogUiwKICAgICAgICAgICAgICAgICAgICBzY3JvbGxIZWlnaHQ6IEwsCiAgICAgICAgICAgICAgICAgIH0gPSBQYygpOwogICAgICAgICAgICAgICAgICBnID0gdiA/IE1hdGgubWluKF8gKyBoLCBSKSAvIFIgOiBNYXRoLm1pbihDICsgbSwgTCkgLyBMOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhc2UgV24uRUxFTUVOVDoKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgICAgTSA9IFRCKGksIGMpOwogICAgICAgICAgICAgICAgICBsZXQgXyA9IG4udHlwZS5pbmRleE9mKCJtb3VzZSIpID09PSAwOwogICAgICAgICAgICAgICAgICBpZiAoXyAmJiBWbih7IGVsZW1lbnQ6IHQsIG5hdGl2ZUV2ZW50OiBuIH0pICE9PSAhMCkgYnJlYWs7CiAgICAgICAgICAgICAgICAgIGxldCBDID0gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwKICAgICAgICAgICAgICAgICAgICB7IGxlZnQ6IFIsIHRvcDogTCwgd2lkdGg6IE4sIGhlaWdodDogVyB9ID0gQzsKICAgICAgICAgICAgICAgICAgaWYgKCFfICYmICFZTGUoeyBsZWZ0OiBwLCB0b3A6IGQgfSwgQykpIGJyZWFrOwogICAgICAgICAgICAgICAgICAoQSA9ICEwKSwgKGcgPSB2ID8gKHAgLSBSKSAvIE4gOiAoZCAtIEwpIC8gVyk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgeSAmJiAoZyA+IDEgLSBSQiB8fCBnIDwgUkIpICYmIChnID0gTWF0aC5yb3VuZChnKSksCiAgICAgICAgICAgICAgICAobyAhPT0gV24uRUxFTUVOVCB8fCBBIHx8IEEgIT09IGEuZWxlbWVudEhvdmVyZWQpICYmCiAgICAgICAgICAgICAgICAgICgoZyA9IHUgPyAxIC0gZyA6IGcpLCBlLmRpc3BhdGNoKFpzKE0sIGcpKSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGVsZW1lbnRIb3ZlcmVkOiBBLAogICAgICAgICAgICAgICAgICBjbGllbnRYOiBwLAogICAgICAgICAgICAgICAgICBjbGllbnRZOiBkLAogICAgICAgICAgICAgICAgICBwYWdlWDogaCwKICAgICAgICAgICAgICAgICAgcGFnZVk6IG0sCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBbQkxlXTogewogICAgICAgICAgICB0eXBlczogT00sCiAgICAgICAgICAgIGhhbmRsZXI6ICh7IHN0b3JlOiBlLCBldmVudENvbmZpZzogdCB9KSA9PiB7CiAgICAgICAgICAgICAgbGV0IHsgY29udGludW91c1BhcmFtZXRlckdyb3VwSWQ6IHIsIHJldmVyc2U6IG4gfSA9IHQsCiAgICAgICAgICAgICAgICB7IHNjcm9sbFRvcDogaSwgc2Nyb2xsSGVpZ2h0OiBhLCBjbGllbnRIZWlnaHQ6IG8gfSA9IFBjKCksCiAgICAgICAgICAgICAgICBzID0gaSAvIChhIC0gbyk7CiAgICAgICAgICAgICAgKHMgPSBuID8gMSAtIHMgOiBzKSwgZS5kaXNwYXRjaChacyhyLCBzKSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICB9LAogICAgICAgICAgW3pMZV06IHsKICAgICAgICAgICAgdHlwZXM6IE9NLAogICAgICAgICAgICBoYW5kbGVyOiAoCiAgICAgICAgICAgICAgeyBlbGVtZW50OiBlLCBzdG9yZTogdCwgZXZlbnRDb25maWc6IHIsIGV2ZW50U3RhdGVLZXk6IG4gfSwKICAgICAgICAgICAgICBpID0geyBzY3JvbGxQZXJjZW50OiAwIH0KICAgICAgICAgICAgKSA9PiB7CiAgICAgICAgICAgICAgbGV0IHsKICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogYSwKICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiBvLAogICAgICAgICAgICAgICAgICBzY3JvbGxXaWR0aDogcywKICAgICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiBjLAogICAgICAgICAgICAgICAgICBjbGllbnRIZWlnaHQ6IHUsCiAgICAgICAgICAgICAgICB9ID0gUGMoKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgYmFzZWRPbjogbCwKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBeGlzOiBwLAogICAgICAgICAgICAgICAgICBjb250aW51b3VzUGFyYW1ldGVyR3JvdXBJZDogZCwKICAgICAgICAgICAgICAgICAgc3RhcnRzRW50ZXJpbmc6IGgsCiAgICAgICAgICAgICAgICAgIHN0YXJ0c0V4aXRpbmc6IG0sCiAgICAgICAgICAgICAgICAgIGFkZEVuZE9mZnNldDogdiwKICAgICAgICAgICAgICAgICAgYWRkU3RhcnRPZmZzZXQ6IHksCiAgICAgICAgICAgICAgICAgIGFkZE9mZnNldFZhbHVlOiBnID0gMCwKICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0VmFsdWU6IE0gPSAwLAogICAgICAgICAgICAgICAgfSA9IHIsCiAgICAgICAgICAgICAgICBBID0gcCA9PT0gIlhfQVhJUyI7CiAgICAgICAgICAgICAgaWYgKGwgPT09IFduLlZJRVdQT1JUKSB7CiAgICAgICAgICAgICAgICBsZXQgXyA9IEEgPyBhIC8gcyA6IG8gLyBjOwogICAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICAgXyAhPT0gaS5zY3JvbGxQZXJjZW50ICYmIHQuZGlzcGF0Y2goWnMoZCwgXykpLAogICAgICAgICAgICAgICAgICB7IHNjcm9sbFBlcmNlbnQ6IF8gfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbGV0IF8gPSBUQihuLCBkKSwKICAgICAgICAgICAgICAgICAgQyA9IGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksCiAgICAgICAgICAgICAgICAgIFIgPSAoeSA/IGcgOiAwKSAvIDEwMCwKICAgICAgICAgICAgICAgICAgTCA9ICh2ID8gTSA6IDApIC8gMTAwOwogICAgICAgICAgICAgICAgKFIgPSBoID8gUiA6IDEgLSBSKSwgKEwgPSBtID8gTCA6IDEgLSBMKTsKICAgICAgICAgICAgICAgIGxldCBOID0gQy50b3AgKyBNYXRoLm1pbihDLmhlaWdodCAqIFIsIHUpLAogICAgICAgICAgICAgICAgICBrID0gQy50b3AgKyBDLmhlaWdodCAqIEwgLSBOLAogICAgICAgICAgICAgICAgICBxID0gTWF0aC5taW4odSArIGssIGMpLAogICAgICAgICAgICAgICAgICBYID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgdSAtIE4pLCBxKSAvIHE7CiAgICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgICBYICE9PSBpLnNjcm9sbFBlcmNlbnQgJiYgdC5kaXNwYXRjaChacyhfLCBYKSksCiAgICAgICAgICAgICAgICAgIHsgc2Nyb2xsUGVyY2VudDogWCB9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgIH0sCiAgICAgICAgICBbREJdOiBDQiwKICAgICAgICAgIFtETGVdOiBDQiwKICAgICAgICAgIFtQQl06IHsKICAgICAgICAgICAgLi4ueE0sCiAgICAgICAgICAgIGhhbmRsZXI6IE9CKChlLCB0KSA9PiB7CiAgICAgICAgICAgICAgdC5zY3JvbGxpbmdEb3duICYmIFdyKGUpOwogICAgICAgICAgICB9KSwKICAgICAgICAgIH0sCiAgICAgICAgICBbcUxlXTogewogICAgICAgICAgICAuLi54TSwKICAgICAgICAgICAgaGFuZGxlcjogT0IoKGUsIHQpID0+IHsKICAgICAgICAgICAgICB0LnNjcm9sbGluZ0Rvd24gfHwgV3IoZSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgfSwKICAgICAgICAgIFtxQl06IHsKICAgICAgICAgICAgdHlwZXM6ICJyZWFkeXN0YXRlY2hhbmdlIElYMl9QQUdFX1VQREFURSIsCiAgICAgICAgICAgIGhhbmRsZXI6IGJuKERjLCBLTGUoV3IpKSwKICAgICAgICAgIH0sCiAgICAgICAgICBbekJdOiB7CiAgICAgICAgICAgIHR5cGVzOiAicmVhZHlzdGF0ZWNoYW5nZSBJWDJfUEFHRV9VUERBVEUiLAogICAgICAgICAgICBoYW5kbGVyOiBibihEYywgJExlKFdyKSksCiAgICAgICAgICB9LAogICAgICAgIH0pOwogICAgfSk7CiAgdmFyIHM1ID0ge307CiAgdXQoczUsIHsKICAgIG9ic2VydmVSZXF1ZXN0czogKCkgPT4geU5lLAogICAgc3RhcnRBY3Rpb25Hcm91cDogKCkgPT4gemMsCiAgICBzdGFydEVuZ2luZTogKCkgPT4gSnAsCiAgICBzdG9wQWN0aW9uR3JvdXA6ICgpID0+IHQwLAogICAgc3RvcEFsbEFjdGlvbkdyb3VwczogKCkgPT4gaTUsCiAgICBzdG9wRW5naW5lOiAoKSA9PiBacCwKICB9KTsKICBmdW5jdGlvbiB5TmUoZSkgewogICAgdW8oeyBzdG9yZTogZSwgc2VsZWN0OiAoeyBpeFJlcXVlc3Q6IHQgfSkgPT4gdC5wcmV2aWV3LCBvbkNoYW5nZTogYk5lIH0pLAogICAgICB1byh7IHN0b3JlOiBlLCBzZWxlY3Q6ICh7IGl4UmVxdWVzdDogdCB9KSA9PiB0LnBsYXliYWNrLCBvbkNoYW5nZTogTU5lIH0pLAogICAgICB1byh7IHN0b3JlOiBlLCBzZWxlY3Q6ICh7IGl4UmVxdWVzdDogdCB9KSA9PiB0LnN0b3AsIG9uQ2hhbmdlOiBBTmUgfSksCiAgICAgIHVvKHsgc3RvcmU6IGUsIHNlbGVjdDogKHsgaXhSZXF1ZXN0OiB0IH0pID0+IHQuY2xlYXIsIG9uQ2hhbmdlOiBFTmUgfSk7CiAgfQogIGZ1bmN0aW9uIGdOZShlKSB7CiAgICB1byh7CiAgICAgIHN0b3JlOiBlLAogICAgICBzZWxlY3Q6ICh7IGl4U2Vzc2lvbjogdCB9KSA9PiB0Lm1lZGlhUXVlcnlLZXksCiAgICAgIG9uQ2hhbmdlOiAoKSA9PiB7CiAgICAgICAgWnAoZSksCiAgICAgICAgICBlNSh7IHN0b3JlOiBlLCBlbGVtZW50QXBpOiBDciB9KSwKICAgICAgICAgIEpwKHsgc3RvcmU6IGUsIGFsbG93RXZlbnRzOiAhMCB9KSwKICAgICAgICAgIHQ1KCk7CiAgICAgIH0sCiAgICB9KTsKICB9CiAgZnVuY3Rpb24gdk5lKGUsIHQpIHsKICAgIGxldCByID0gdW8oewogICAgICBzdG9yZTogZSwKICAgICAgc2VsZWN0OiAoeyBpeFNlc3Npb246IG4gfSkgPT4gbi50aWNrLAogICAgICBvbkNoYW5nZTogKG4pID0+IHsKICAgICAgICB0KG4pLCByKCk7CiAgICAgIH0sCiAgICB9KTsKICB9CiAgZnVuY3Rpb24gYk5lKHsgcmF3RGF0YTogZSwgZGVmZXI6IHQgfSwgcikgewogICAgbGV0IG4gPSAoKSA9PiB7CiAgICAgIEpwKHsgc3RvcmU6IHIsIHJhd0RhdGE6IGUsIGFsbG93RXZlbnRzOiAhMCB9KSwgdDUoKTsKICAgIH07CiAgICB0ID8gc2V0VGltZW91dChuLCAwKSA6IG4oKTsKICB9CiAgZnVuY3Rpb24gdDUoKSB7CiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiSVgyX1BBR0VfVVBEQVRFIikpOwogIH0KICBmdW5jdGlvbiBNTmUoZSwgdCkgewogICAgbGV0IHsKICAgICAgICBhY3Rpb25UeXBlSWQ6IHIsCiAgICAgICAgYWN0aW9uTGlzdElkOiBuLAogICAgICAgIGFjdGlvbkl0ZW1JZDogaSwKICAgICAgICBldmVudElkOiBhLAogICAgICAgIGFsbG93RXZlbnRzOiBvLAogICAgICAgIGltbWVkaWF0ZTogcywKICAgICAgICB0ZXN0TWFudWFsOiBjLAogICAgICAgIHZlcmJvc2U6IHUgPSAhMCwKICAgICAgfSA9IGUsCiAgICAgIHsgcmF3RGF0YTogbCB9ID0gZTsKICAgIGlmIChuICYmIGkgJiYgbCAmJiBzKSB7CiAgICAgIGxldCBwID0gbC5hY3Rpb25MaXN0c1tuXTsKICAgICAgcCAmJiAobCA9IGFOZSh7IGFjdGlvbkxpc3Q6IHAsIGFjdGlvbkl0ZW1JZDogaSwgcmF3RGF0YTogbCB9KSk7CiAgICB9CiAgICBpZiAoCiAgICAgIChKcCh7IHN0b3JlOiB0LCByYXdEYXRhOiBsLCBhbGxvd0V2ZW50czogbywgdGVzdE1hbnVhbDogYyB9KSwKICAgICAgKG4gJiYgciA9PT0gT3IuR0VORVJBTF9TVEFSVF9BQ1RJT04pIHx8IFJNKHIpKQogICAgKSB7CiAgICAgIHQwKHsgc3RvcmU6IHQsIGFjdGlvbkxpc3RJZDogbiB9KSwKICAgICAgICBuNSh7IHN0b3JlOiB0LCBhY3Rpb25MaXN0SWQ6IG4sIGV2ZW50SWQ6IGEgfSk7CiAgICAgIGxldCBwID0gemMoewogICAgICAgIHN0b3JlOiB0LAogICAgICAgIGV2ZW50SWQ6IGEsCiAgICAgICAgYWN0aW9uTGlzdElkOiBuLAogICAgICAgIGltbWVkaWF0ZTogcywKICAgICAgICB2ZXJib3NlOiB1LAogICAgICB9KTsKICAgICAgdSAmJiBwICYmIHQuZGlzcGF0Y2goZTAoeyBhY3Rpb25MaXN0SWQ6IG4sIGlzUGxheWluZzogIXMgfSkpOwogICAgfQogIH0KICBmdW5jdGlvbiBBTmUoeyBhY3Rpb25MaXN0SWQ6IGUgfSwgdCkgewogICAgZSA/IHQwKHsgc3RvcmU6IHQsIGFjdGlvbkxpc3RJZDogZSB9KSA6IGk1KHsgc3RvcmU6IHQgfSksIFpwKHQpOwogIH0KICBmdW5jdGlvbiBFTmUoZSwgdCkgewogICAgWnAodCksIGU1KHsgc3RvcmU6IHQsIGVsZW1lbnRBcGk6IENyIH0pOwogIH0KICBmdW5jdGlvbiBKcCh7IHN0b3JlOiBlLCByYXdEYXRhOiB0LCBhbGxvd0V2ZW50czogciwgdGVzdE1hbnVhbDogbiB9KSB7CiAgICBsZXQgeyBpeFNlc3Npb246IGkgfSA9IGUuZ2V0U3RhdGUoKTsKICAgIHQgJiYgZS5kaXNwYXRjaChpTSh0KSksCiAgICAgIGkuYWN0aXZlIHx8CiAgICAgICAgKGUuZGlzcGF0Y2goCiAgICAgICAgICBhTSh7CiAgICAgICAgICAgIGhhc0JvdW5kYXJ5Tm9kZXM6ICEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihZcCksCiAgICAgICAgICAgIHJlZHVjZWRNb3Rpb246CiAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoImRhdGEtd2YtaXgtdmFjYXRpb24iKSAmJgogICAgICAgICAgICAgIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikiKS5tYXRjaGVzLAogICAgICAgICAgfSkKICAgICAgICApLAogICAgICAgIHIgJiYKICAgICAgICAgIChDTmUoZSksCiAgICAgICAgICBUTmUoKSwKICAgICAgICAgIGUuZ2V0U3RhdGUoKS5peFNlc3Npb24uaGFzRGVmaW5lZE1lZGlhUXVlcmllcyAmJiBnTmUoZSkpLAogICAgICAgIGUuZGlzcGF0Y2gob00oKSksCiAgICAgICAgX05lKGUsIG4pKTsKICB9CiAgZnVuY3Rpb24gVE5lKCkgewogICAgbGV0IHsgZG9jdW1lbnRFbGVtZW50OiBlIH0gPSBkb2N1bWVudDsKICAgIGUuY2xhc3NOYW1lLmluZGV4T2YoSEIpID09PSAtMSAmJiAoZS5jbGFzc05hbWUgKz0gYCAke0hCfWApOwogIH0KICBmdW5jdGlvbiBfTmUoZSwgdCkgewogICAgbGV0IHIgPSAobikgPT4gewogICAgICBsZXQgeyBpeFNlc3Npb246IGksIGl4UGFyYW1ldGVyczogYSB9ID0gZS5nZXRTdGF0ZSgpOwogICAgICBpLmFjdGl2ZSAmJgogICAgICAgIChlLmRpc3BhdGNoKERwKG4sIGEpKSwgdCA/IHZOZShlLCByKSA6IHJlcXVlc3RBbmltYXRpb25GcmFtZShyKSk7CiAgICB9OwogICAgcih3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpOwogIH0KICBmdW5jdGlvbiBacChlKSB7CiAgICBsZXQgeyBpeFNlc3Npb246IHQgfSA9IGUuZ2V0U3RhdGUoKTsKICAgIGlmICh0LmFjdGl2ZSkgewogICAgICBsZXQgeyBldmVudExpc3RlbmVyczogciB9ID0gdDsKICAgICAgci5mb3JFYWNoKFNOZSksIHVOZSgpLCBlLmRpc3BhdGNoKHNNKCkpOwogICAgfQogIH0KICBmdW5jdGlvbiBTTmUoeyB0YXJnZXQ6IGUsIGxpc3RlbmVyUGFyYW1zOiB0IH0pIHsKICAgIGUucmVtb3ZlRXZlbnRMaXN0ZW5lci5hcHBseShlLCB0KTsKICB9CiAgZnVuY3Rpb24gT05lKHsKICAgIHN0b3JlOiBlLAogICAgZXZlbnRTdGF0ZUtleTogdCwKICAgIGV2ZW50VGFyZ2V0OiByLAogICAgZXZlbnRJZDogbiwKICAgIGV2ZW50Q29uZmlnOiBpLAogICAgYWN0aW9uTGlzdElkOiBhLAogICAgcGFyYW1ldGVyR3JvdXA6IG8sCiAgICBzbW9vdGhpbmc6IHMsCiAgICByZXN0aW5nVmFsdWU6IGMsCiAgfSkgewogICAgbGV0IHsgaXhEYXRhOiB1LCBpeFNlc3Npb246IGwgfSA9IGUuZ2V0U3RhdGUoKSwKICAgICAgeyBldmVudHM6IHAgfSA9IHUsCiAgICAgIGQgPSBwW25dLAogICAgICB7IGV2ZW50VHlwZUlkOiBoIH0gPSBkLAogICAgICBtID0ge30sCiAgICAgIHYgPSB7fSwKICAgICAgeSA9IFtdLAogICAgICB7IGNvbnRpbnVvdXNBY3Rpb25Hcm91cHM6IGcgfSA9IG8sCiAgICAgIHsgaWQ6IE0gfSA9IG87CiAgICBvTmUoaCwgaSkgJiYgKE0gPSBzTmUodCwgTSkpOwogICAgbGV0IEEgPSBsLmhhc0JvdW5kYXJ5Tm9kZXMgJiYgciA/IE5jKHIsIFlwKSA6IG51bGw7CiAgICBnLmZvckVhY2goKF8pID0+IHsKICAgICAgbGV0IHsga2V5ZnJhbWU6IEMsIGFjdGlvbkl0ZW1zOiBSIH0gPSBfOwogICAgICBSLmZvckVhY2goKEwpID0+IHsKICAgICAgICBsZXQgeyBhY3Rpb25UeXBlSWQ6IE4gfSA9IEwsCiAgICAgICAgICB7IHRhcmdldDogVyB9ID0gTC5jb25maWc7CiAgICAgICAgaWYgKCFXKSByZXR1cm47CiAgICAgICAgbGV0IGsgPSBXLmJvdW5kYXJ5TW9kZSA/IEEgOiBudWxsLAogICAgICAgICAgcSA9IGxOZShXKSArIElNICsgTjsKICAgICAgICBpZiAoKCh2W3FdID0geE5lKHZbcV0sIEMsIEwpKSwgIW1bcV0pKSB7CiAgICAgICAgICBtW3FdID0gITA7CiAgICAgICAgICBsZXQgeyBjb25maWc6IEggfSA9IEw7CiAgICAgICAgICBLcCh7CiAgICAgICAgICAgIGNvbmZpZzogSCwKICAgICAgICAgICAgZXZlbnQ6IGQsCiAgICAgICAgICAgIGV2ZW50VGFyZ2V0OiByLAogICAgICAgICAgICBlbGVtZW50Um9vdDogaywKICAgICAgICAgICAgZWxlbWVudEFwaTogQ3IsCiAgICAgICAgICB9KS5mb3JFYWNoKChYKSA9PiB7CiAgICAgICAgICAgIHkucHVzaCh7IGVsZW1lbnQ6IFgsIGtleTogcSB9KTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KSwKICAgICAgeS5mb3JFYWNoKCh7IGVsZW1lbnQ6IF8sIGtleTogQyB9KSA9PiB7CiAgICAgICAgbGV0IFIgPSB2W0NdLAogICAgICAgICAgTCA9ICgwLCBPaS5kZWZhdWx0KShSLCAiWzBdLmFjdGlvbkl0ZW1zWzBdIiwge30pLAogICAgICAgICAgeyBhY3Rpb25UeXBlSWQ6IE4gfSA9IEwsCiAgICAgICAgICBrID0gKAogICAgICAgICAgICBOID09PSBPci5QTFVHSU5fUklWRQogICAgICAgICAgICAgID8gKEwuY29uZmlnPy50YXJnZXQ/LnNlbGVjdG9yR3VpZHMgfHwgW10pLmxlbmd0aCA9PT0gMAogICAgICAgICAgICAgIDogUXAoTikKICAgICAgICAgICkKICAgICAgICAgICAgPyBOTShOKShfLCBMKQogICAgICAgICAgICA6IG51bGwsCiAgICAgICAgICBxID0gTE0oeyBlbGVtZW50OiBfLCBhY3Rpb25JdGVtOiBMLCBlbGVtZW50QXBpOiBDciB9LCBrKTsKICAgICAgICB3TSh7CiAgICAgICAgICBzdG9yZTogZSwKICAgICAgICAgIGVsZW1lbnQ6IF8sCiAgICAgICAgICBldmVudElkOiBuLAogICAgICAgICAgYWN0aW9uTGlzdElkOiBhLAogICAgICAgICAgYWN0aW9uSXRlbTogTCwKICAgICAgICAgIGRlc3RpbmF0aW9uOiBxLAogICAgICAgICAgY29udGludW91czogITAsCiAgICAgICAgICBwYXJhbWV0ZXJJZDogTSwKICAgICAgICAgIGFjdGlvbkdyb3VwczogUiwKICAgICAgICAgIHNtb290aGluZzogcywKICAgICAgICAgIHJlc3RpbmdWYWx1ZTogYywKICAgICAgICAgIHBsdWdpbkluc3RhbmNlOiBrLAogICAgICAgIH0pOwogICAgICB9KTsKICB9CiAgZnVuY3Rpb24geE5lKGUgPSBbXSwgdCwgcikgewogICAgbGV0IG4gPSBbLi4uZV0sCiAgICAgIGk7CiAgICByZXR1cm4gKAogICAgICBuLnNvbWUoKGEsIG8pID0+IChhLmtleWZyYW1lID09PSB0ID8gKChpID0gbyksICEwKSA6ICExKSksCiAgICAgIGkgPT0gbnVsbCAmJiAoKGkgPSBuLmxlbmd0aCksIG4ucHVzaCh7IGtleWZyYW1lOiB0LCBhY3Rpb25JdGVtczogW10gfSkpLAogICAgICBuW2ldLmFjdGlvbkl0ZW1zLnB1c2gociksCiAgICAgIG4KICAgICk7CiAgfQogIGZ1bmN0aW9uIENOZShlKSB7CiAgICBsZXQgeyBpeERhdGE6IHQgfSA9IGUuZ2V0U3RhdGUoKSwKICAgICAgeyBldmVudFR5cGVNYXA6IHIgfSA9IHQ7CiAgICByNShlKSwKICAgICAgKDAsIHIwLmRlZmF1bHQpKHIsIChpLCBhKSA9PiB7CiAgICAgICAgbGV0IG8gPSBYQlthXTsKICAgICAgICBpZiAoIW8pIHsKICAgICAgICAgIGNvbnNvbGUud2FybihgSVgyIGV2ZW50IHR5cGUgbm90IGNvbmZpZ3VyZWQ6ICR7YX1gKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgUE5lKHsgbG9naWM6IG8sIHN0b3JlOiBlLCBldmVudHM6IGkgfSk7CiAgICAgIH0pOwogICAgbGV0IHsgaXhTZXNzaW9uOiBuIH0gPSBlLmdldFN0YXRlKCk7CiAgICBuLmV2ZW50TGlzdGVuZXJzLmxlbmd0aCAmJiBJTmUoZSk7CiAgfQogIGZ1bmN0aW9uIElOZShlKSB7CiAgICBsZXQgdCA9ICgpID0+IHsKICAgICAgcjUoZSk7CiAgICB9OwogICAgUk5lLmZvckVhY2goKHIpID0+IHsKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIociwgdCksIGUuZGlzcGF0Y2goUHAod2luZG93LCBbciwgdF0pKTsKICAgIH0pLAogICAgICB0KCk7CiAgfQogIGZ1bmN0aW9uIHI1KGUpIHsKICAgIGxldCB7IGl4U2Vzc2lvbjogdCwgaXhEYXRhOiByIH0gPSBlLmdldFN0YXRlKCksCiAgICAgIG4gPSB3aW5kb3cuaW5uZXJXaWR0aDsKICAgIGlmIChuICE9PSB0LnZpZXdwb3J0V2lkdGgpIHsKICAgICAgbGV0IHsgbWVkaWFRdWVyaWVzOiBpIH0gPSByOwogICAgICBlLmRpc3BhdGNoKHBNKHsgd2lkdGg6IG4sIG1lZGlhUXVlcmllczogaSB9KSk7CiAgICB9CiAgfQogIGZ1bmN0aW9uIFBOZSh7IGxvZ2ljOiBlLCBzdG9yZTogdCwgZXZlbnRzOiByIH0pIHsKICAgIEROZShyKTsKICAgIGxldCB7IHR5cGVzOiBuLCBoYW5kbGVyOiBpIH0gPSBlLAogICAgICB7IGl4RGF0YTogYSB9ID0gdC5nZXRTdGF0ZSgpLAogICAgICB7IGFjdGlvbkxpc3RzOiBvIH0gPSBhLAogICAgICBzID0gTE5lKHIsIHdOZSk7CiAgICBpZiAoISgwLCBZQi5kZWZhdWx0KShzKSkgcmV0dXJuOwogICAgKDAsIHIwLmRlZmF1bHQpKHMsIChwLCBkKSA9PiB7CiAgICAgIGxldCBoID0gcltkXSwKICAgICAgICB7IGFjdGlvbjogbSwgaWQ6IHYsIG1lZGlhUXVlcmllczogeSA9IGEubWVkaWFRdWVyeUtleXMgfSA9IGgsCiAgICAgICAgeyBhY3Rpb25MaXN0SWQ6IGcgfSA9IG0uY29uZmlnOwogICAgICBmTmUoeSwgYS5tZWRpYVF1ZXJ5S2V5cykgfHwgdC5kaXNwYXRjaChkTSgpKSwKICAgICAgICBtLmFjdGlvblR5cGVJZCA9PT0gT3IuR0VORVJBTF9DT05USU5VT1VTX0FDVElPTiAmJgogICAgICAgICAgKEFycmF5LmlzQXJyYXkoaC5jb25maWcpID8gaC5jb25maWcgOiBbaC5jb25maWddKS5mb3JFYWNoKChBKSA9PiB7CiAgICAgICAgICAgIGxldCB7IGNvbnRpbnVvdXNQYXJhbWV0ZXJHcm91cElkOiBfIH0gPSBBLAogICAgICAgICAgICAgIEMgPSAoMCwgT2kuZGVmYXVsdCkobywgYCR7Z30uY29udGludW91c1BhcmFtZXRlckdyb3Vwc2AsIFtdKSwKICAgICAgICAgICAgICBSID0gKDAsIGpCLmRlZmF1bHQpKEMsICh7IGlkOiBXIH0pID0+IFcgPT09IF8pLAogICAgICAgICAgICAgIEwgPSAoQS5zbW9vdGhpbmcgfHwgMCkgLyAxMDAsCiAgICAgICAgICAgICAgTiA9IChBLnJlc3RpbmdTdGF0ZSB8fCAwKSAvIDEwMDsKICAgICAgICAgICAgUiAmJgogICAgICAgICAgICAgIHAuZm9yRWFjaCgoVywgaykgPT4gewogICAgICAgICAgICAgICAgbGV0IHEgPSB2ICsgSU0gKyBrOwogICAgICAgICAgICAgICAgT05lKHsKICAgICAgICAgICAgICAgICAgc3RvcmU6IHQsCiAgICAgICAgICAgICAgICAgIGV2ZW50U3RhdGVLZXk6IHEsCiAgICAgICAgICAgICAgICAgIGV2ZW50VGFyZ2V0OiBXLAogICAgICAgICAgICAgICAgICBldmVudElkOiB2LAogICAgICAgICAgICAgICAgICBldmVudENvbmZpZzogQSwKICAgICAgICAgICAgICAgICAgYWN0aW9uTGlzdElkOiBnLAogICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJHcm91cDogUiwKICAgICAgICAgICAgICAgICAgc21vb3RoaW5nOiBMLAogICAgICAgICAgICAgICAgICByZXN0aW5nVmFsdWU6IE4sCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgIH0pLAogICAgICAgIChtLmFjdGlvblR5cGVJZCA9PT0gT3IuR0VORVJBTF9TVEFSVF9BQ1RJT04gfHwgUk0obS5hY3Rpb25UeXBlSWQpKSAmJgogICAgICAgICAgbjUoeyBzdG9yZTogdCwgYWN0aW9uTGlzdElkOiBnLCBldmVudElkOiB2IH0pOwogICAgfSk7CiAgICBsZXQgYyA9IChwKSA9PiB7CiAgICAgICAgbGV0IHsgaXhTZXNzaW9uOiBkIH0gPSB0LmdldFN0YXRlKCk7CiAgICAgICAgTk5lKHMsIChoLCBtLCB2KSA9PiB7CiAgICAgICAgICBsZXQgeSA9IHJbbV0sCiAgICAgICAgICAgIGcgPSBkLmV2ZW50U3RhdGVbdl0sCiAgICAgICAgICAgIHsgYWN0aW9uOiBNLCBtZWRpYVF1ZXJpZXM6IEEgPSBhLm1lZGlhUXVlcnlLZXlzIH0gPSB5OwogICAgICAgICAgaWYgKCEkcChBLCBkLm1lZGlhUXVlcnlLZXkpKSByZXR1cm47CiAgICAgICAgICBsZXQgXyA9IChDID0ge30pID0+IHsKICAgICAgICAgICAgbGV0IFIgPSBpKAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN0b3JlOiB0LAogICAgICAgICAgICAgICAgZWxlbWVudDogaCwKICAgICAgICAgICAgICAgIGV2ZW50OiB5LAogICAgICAgICAgICAgICAgZXZlbnRDb25maWc6IEMsCiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudDogcCwKICAgICAgICAgICAgICAgIGV2ZW50U3RhdGVLZXk6IHYsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBnCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHBOZShSLCBnKSB8fCB0LmRpc3BhdGNoKGNNKHYsIFIpKTsKICAgICAgICAgIH07CiAgICAgICAgICBNLmFjdGlvblR5cGVJZCA9PT0gT3IuR0VORVJBTF9DT05USU5VT1VTX0FDVElPTgogICAgICAgICAgICA/IChBcnJheS5pc0FycmF5KHkuY29uZmlnKSA/IHkuY29uZmlnIDogW3kuY29uZmlnXSkuZm9yRWFjaChfKQogICAgICAgICAgICA6IF8oKTsKICAgICAgICB9KTsKICAgICAgfSwKICAgICAgdSA9ICgwLCBKQi5kZWZhdWx0KShjLCBtTmUpLAogICAgICBsID0gKHsgdGFyZ2V0OiBwID0gZG9jdW1lbnQsIHR5cGVzOiBkLCB0aHJvdHRsZTogaCB9KSA9PiB7CiAgICAgICAgZC5zcGxpdCgiICIpCiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pCiAgICAgICAgICAuZm9yRWFjaCgobSkgPT4gewogICAgICAgICAgICBsZXQgdiA9IGggPyB1IDogYzsKICAgICAgICAgICAgcC5hZGRFdmVudExpc3RlbmVyKG0sIHYpLCB0LmRpc3BhdGNoKFBwKHAsIFttLCB2XSkpOwogICAgICAgICAgfSk7CiAgICAgIH07CiAgICBBcnJheS5pc0FycmF5KG4pID8gbi5mb3JFYWNoKGwpIDogdHlwZW9mIG4gPT0gInN0cmluZyIgJiYgbChlKTsKICB9CiAgZnVuY3Rpb24gRE5lKGUpIHsKICAgIGlmICghaE5lKSByZXR1cm47CiAgICBsZXQgdCA9IHt9LAogICAgICByID0gIiI7CiAgICBmb3IgKGxldCBuIGluIGUpIHsKICAgICAgbGV0IHsgZXZlbnRUeXBlSWQ6IGksIHRhcmdldDogYSB9ID0gZVtuXSwKICAgICAgICBvID0gbU0oYSk7CiAgICAgIHRbb10gfHwKICAgICAgICAoKGkgPT09IGduLk1PVVNFX0NMSUNLIHx8IGkgPT09IGduLk1PVVNFX1NFQ09ORF9DTElDSykgJiYKICAgICAgICAgICgodFtvXSA9ICEwKSwKICAgICAgICAgIChyICs9IG8gKyAie2N1cnNvcjogcG9pbnRlcjt0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjt9IikpKTsKICAgIH0KICAgIGlmIChyKSB7CiAgICAgIGxldCBuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKICAgICAgKG4udGV4dENvbnRlbnQgPSByKSwgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKTsKICAgIH0KICB9CiAgZnVuY3Rpb24gbjUoeyBzdG9yZTogZSwgYWN0aW9uTGlzdElkOiB0LCBldmVudElkOiByIH0pIHsKICAgIGxldCB7IGl4RGF0YTogbiwgaXhTZXNzaW9uOiBpIH0gPSBlLmdldFN0YXRlKCksCiAgICAgIHsgYWN0aW9uTGlzdHM6IGEsIGV2ZW50czogbyB9ID0gbiwKICAgICAgcyA9IG9bcl0sCiAgICAgIGMgPSBhW3RdOwogICAgaWYgKGMgJiYgYy51c2VGaXJzdEdyb3VwQXNJbml0aWFsU3RhdGUpIHsKICAgICAgbGV0IHUgPSAoMCwgT2kuZGVmYXVsdCkoYywgImFjdGlvbkl0ZW1Hcm91cHNbMF0uYWN0aW9uSXRlbXMiLCBbXSksCiAgICAgICAgbCA9ICgwLCBPaS5kZWZhdWx0KShzLCAibWVkaWFRdWVyaWVzIiwgbi5tZWRpYVF1ZXJ5S2V5cyk7CiAgICAgIGlmICghJHAobCwgaS5tZWRpYVF1ZXJ5S2V5KSkgcmV0dXJuOwogICAgICB1LmZvckVhY2goKHApID0+IHsKICAgICAgICBsZXQgeyBjb25maWc6IGQsIGFjdGlvblR5cGVJZDogaCB9ID0gcCwKICAgICAgICAgIG0gPQogICAgICAgICAgICBkPy50YXJnZXQ/LnVzZUV2ZW50VGFyZ2V0ID09PSAhMCAmJiBkPy50YXJnZXQ/Lm9iamVjdElkID09IG51bGwKICAgICAgICAgICAgICA/IHsgdGFyZ2V0OiBzLnRhcmdldCwgdGFyZ2V0czogcy50YXJnZXRzIH0KICAgICAgICAgICAgICA6IGQsCiAgICAgICAgICB2ID0gS3AoeyBjb25maWc6IG0sIGV2ZW50OiBzLCBlbGVtZW50QXBpOiBDciB9KSwKICAgICAgICAgIHkgPSBRcChoKTsKICAgICAgICB2LmZvckVhY2goKGcpID0+IHsKICAgICAgICAgIGxldCBNID0geSA/IE5NKGgpKGcsIHApIDogbnVsbDsKICAgICAgICAgIHdNKHsKICAgICAgICAgICAgZGVzdGluYXRpb246IExNKHsgZWxlbWVudDogZywgYWN0aW9uSXRlbTogcCwgZWxlbWVudEFwaTogQ3IgfSwgTSksCiAgICAgICAgICAgIGltbWVkaWF0ZTogITAsCiAgICAgICAgICAgIHN0b3JlOiBlLAogICAgICAgICAgICBlbGVtZW50OiBnLAogICAgICAgICAgICBldmVudElkOiByLAogICAgICAgICAgICBhY3Rpb25JdGVtOiBwLAogICAgICAgICAgICBhY3Rpb25MaXN0SWQ6IHQsCiAgICAgICAgICAgIHBsdWdpbkluc3RhbmNlOiBNLAogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0KICBmdW5jdGlvbiBpNSh7IHN0b3JlOiBlIH0pIHsKICAgIGxldCB7IGl4SW5zdGFuY2VzOiB0IH0gPSBlLmdldFN0YXRlKCk7CiAgICAoMCwgcjAuZGVmYXVsdCkodCwgKHIpID0+IHsKICAgICAgaWYgKCFyLmNvbnRpbnVvdXMpIHsKICAgICAgICBsZXQgeyBhY3Rpb25MaXN0SWQ6IG4sIHZlcmJvc2U6IGkgfSA9IHI7CiAgICAgICAgUE0ociwgZSksIGkgJiYgZS5kaXNwYXRjaChlMCh7IGFjdGlvbkxpc3RJZDogbiwgaXNQbGF5aW5nOiAhMSB9KSk7CiAgICAgIH0KICAgIH0pOwogIH0KICBmdW5jdGlvbiB0MCh7CiAgICBzdG9yZTogZSwKICAgIGV2ZW50SWQ6IHQsCiAgICBldmVudFRhcmdldDogciwKICAgIGV2ZW50U3RhdGVLZXk6IG4sCiAgICBhY3Rpb25MaXN0SWQ6IGksCiAgfSkgewogICAgbGV0IHsgaXhJbnN0YW5jZXM6IGEsIGl4U2Vzc2lvbjogbyB9ID0gZS5nZXRTdGF0ZSgpLAogICAgICBzID0gby5oYXNCb3VuZGFyeU5vZGVzICYmIHIgPyBOYyhyLCBZcCkgOiBudWxsOwogICAgKDAsIHIwLmRlZmF1bHQpKGEsIChjKSA9PiB7CiAgICAgIGxldCB1ID0gKDAsIE9pLmRlZmF1bHQpKGMsICJhY3Rpb25JdGVtLmNvbmZpZy50YXJnZXQuYm91bmRhcnlNb2RlIiksCiAgICAgICAgbCA9IG4gPyBjLmV2ZW50U3RhdGVLZXkgPT09IG4gOiAhMDsKICAgICAgaWYgKGMuYWN0aW9uTGlzdElkID09PSBpICYmIGMuZXZlbnRJZCA9PT0gdCAmJiBsKSB7CiAgICAgICAgaWYgKHMgJiYgdSAmJiAheU0ocywgYy5lbGVtZW50KSkgcmV0dXJuOwogICAgICAgIFBNKGMsIGUpLAogICAgICAgICAgYy52ZXJib3NlICYmIGUuZGlzcGF0Y2goZTAoeyBhY3Rpb25MaXN0SWQ6IGksIGlzUGxheWluZzogITEgfSkpOwogICAgICB9CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gemMoewogICAgc3RvcmU6IGUsCiAgICBldmVudElkOiB0LAogICAgZXZlbnRUYXJnZXQ6IHIsCiAgICBldmVudFN0YXRlS2V5OiBuLAogICAgYWN0aW9uTGlzdElkOiBpLAogICAgZ3JvdXBJbmRleDogYSA9IDAsCiAgICBpbW1lZGlhdGU6IG8sCiAgICB2ZXJib3NlOiBzLAogIH0pIHsKICAgIGxldCB7IGl4RGF0YTogYywgaXhTZXNzaW9uOiB1IH0gPSBlLmdldFN0YXRlKCksCiAgICAgIHsgZXZlbnRzOiBsIH0gPSBjLAogICAgICBwID0gbFt0XSB8fCB7fSwKICAgICAgeyBtZWRpYVF1ZXJpZXM6IGQgPSBjLm1lZGlhUXVlcnlLZXlzIH0gPSBwLAogICAgICBoID0gKDAsIE9pLmRlZmF1bHQpKGMsIGBhY3Rpb25MaXN0cy4ke2l9YCwge30pLAogICAgICB7IGFjdGlvbkl0ZW1Hcm91cHM6IG0sIHVzZUZpcnN0R3JvdXBBc0luaXRpYWxTdGF0ZTogdiB9ID0gaDsKICAgIGlmICghbSB8fCAhbS5sZW5ndGgpIHJldHVybiAhMTsKICAgIGEgPj0gbS5sZW5ndGggJiYgKDAsIE9pLmRlZmF1bHQpKHAsICJjb25maWcubG9vcCIpICYmIChhID0gMCksCiAgICAgIGEgPT09IDAgJiYgdiAmJiBhKys7CiAgICBsZXQgZyA9CiAgICAgICAgKGEgPT09IDAgfHwgKGEgPT09IDEgJiYgdikpICYmIFJNKHAuYWN0aW9uPy5hY3Rpb25UeXBlSWQpCiAgICAgICAgICA/IHAuY29uZmlnLmRlbGF5CiAgICAgICAgICA6IHZvaWQgMCwKICAgICAgTSA9ICgwLCBPaS5kZWZhdWx0KShtLCBbYSwgImFjdGlvbkl0ZW1zIl0sIFtdKTsKICAgIGlmICghTS5sZW5ndGggfHwgISRwKGQsIHUubWVkaWFRdWVyeUtleSkpIHJldHVybiAhMTsKICAgIGxldCBBID0gdS5oYXNCb3VuZGFyeU5vZGVzICYmIHIgPyBOYyhyLCBZcCkgOiBudWxsLAogICAgICBfID0gck5lKE0pLAogICAgICBDID0gITE7CiAgICByZXR1cm4gKAogICAgICBNLmZvckVhY2goKFIsIEwpID0+IHsKICAgICAgICBsZXQgeyBjb25maWc6IE4sIGFjdGlvblR5cGVJZDogVyB9ID0gUiwKICAgICAgICAgIGsgPSBRcChXKSwKICAgICAgICAgIHsgdGFyZ2V0OiBxIH0gPSBOOwogICAgICAgIGlmICghcSkgcmV0dXJuOwogICAgICAgIGxldCBIID0gcS5ib3VuZGFyeU1vZGUgPyBBIDogbnVsbDsKICAgICAgICBLcCh7CiAgICAgICAgICBjb25maWc6IE4sCiAgICAgICAgICBldmVudDogcCwKICAgICAgICAgIGV2ZW50VGFyZ2V0OiByLAogICAgICAgICAgZWxlbWVudFJvb3Q6IEgsCiAgICAgICAgICBlbGVtZW50QXBpOiBDciwKICAgICAgICB9KS5mb3JFYWNoKChVLCB0ZSkgPT4gewogICAgICAgICAgbGV0IG9lID0gayA/IE5NKFcpKFUsIFIpIDogbnVsbCwKICAgICAgICAgICAgeWUgPSBrID8gZE5lKFcpKFUsIFIpIDogbnVsbDsKICAgICAgICAgIEMgPSAhMDsKICAgICAgICAgIGxldCBGID0gXyA9PT0gTCAmJiB0ZSA9PT0gMCwKICAgICAgICAgICAgWSA9IG5OZSh7IGVsZW1lbnQ6IFUsIGFjdGlvbkl0ZW06IFIgfSksCiAgICAgICAgICAgIGZlID0gTE0oeyBlbGVtZW50OiBVLCBhY3Rpb25JdGVtOiBSLCBlbGVtZW50QXBpOiBDciB9LCBvZSk7CiAgICAgICAgICB3TSh7CiAgICAgICAgICAgIHN0b3JlOiBlLAogICAgICAgICAgICBlbGVtZW50OiBVLAogICAgICAgICAgICBhY3Rpb25JdGVtOiBSLAogICAgICAgICAgICBldmVudElkOiB0LAogICAgICAgICAgICBldmVudFRhcmdldDogciwKICAgICAgICAgICAgZXZlbnRTdGF0ZUtleTogbiwKICAgICAgICAgICAgYWN0aW9uTGlzdElkOiBpLAogICAgICAgICAgICBncm91cEluZGV4OiBhLAogICAgICAgICAgICBpc0NhcnJpZXI6IEYsCiAgICAgICAgICAgIGNvbXB1dGVkU3R5bGU6IFksCiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBmZSwKICAgICAgICAgICAgaW1tZWRpYXRlOiBvLAogICAgICAgICAgICB2ZXJib3NlOiBzLAogICAgICAgICAgICBwbHVnaW5JbnN0YW5jZTogb2UsCiAgICAgICAgICAgIHBsdWdpbkR1cmF0aW9uOiB5ZSwKICAgICAgICAgICAgaW5zdGFuY2VEZWxheTogZywKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9KSwKICAgICAgQwogICAgKTsKICB9CiAgZnVuY3Rpb24gd00oZSkgewogICAgbGV0IHsgc3RvcmU6IHQsIGNvbXB1dGVkU3R5bGU6IHIsIC4uLm4gfSA9IGUsCiAgICAgIHsKICAgICAgICBlbGVtZW50OiBpLAogICAgICAgIGFjdGlvbkl0ZW06IGEsCiAgICAgICAgaW1tZWRpYXRlOiBvLAogICAgICAgIHBsdWdpbkluc3RhbmNlOiBzLAogICAgICAgIGNvbnRpbnVvdXM6IGMsCiAgICAgICAgcmVzdGluZ1ZhbHVlOiB1LAogICAgICAgIGV2ZW50SWQ6IGwsCiAgICAgIH0gPSBuLAogICAgICBwID0gIWMsCiAgICAgIGQgPSBlTmUoKSwKICAgICAgeyBpeEVsZW1lbnRzOiBoLCBpeFNlc3Npb246IG0sIGl4RGF0YTogdiB9ID0gdC5nZXRTdGF0ZSgpLAogICAgICB5ID0gWkxlKGgsIGkpLAogICAgICB7IHJlZlN0YXRlOiBnIH0gPSBoW3ldIHx8IHt9LAogICAgICBNID0gZ00oaSksCiAgICAgIEEgPSBtLnJlZHVjZWRNb3Rpb24gJiYgaGJbYS5hY3Rpb25UeXBlSWRdLAogICAgICBfOwogICAgaWYgKEEgJiYgYykKICAgICAgc3dpdGNoICh2LmV2ZW50c1tsXT8uZXZlbnRUeXBlSWQpIHsKICAgICAgICBjYXNlIGduLk1PVVNFX01PVkU6CiAgICAgICAgY2FzZSBnbi5NT1VTRV9NT1ZFX0lOX1ZJRVdQT1JUOgogICAgICAgICAgXyA9IHU7CiAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgXyA9IDAuNTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICBsZXQgQyA9IGlOZShpLCBnLCByLCBhLCBDciwgcyk7CiAgICBpZiAoCiAgICAgICh0LmRpc3BhdGNoKAogICAgICAgIHVNKHsKICAgICAgICAgIGluc3RhbmNlSWQ6IGQsCiAgICAgICAgICBlbGVtZW50SWQ6IHksCiAgICAgICAgICBvcmlnaW46IEMsCiAgICAgICAgICByZWZUeXBlOiBNLAogICAgICAgICAgc2tpcE1vdGlvbjogQSwKICAgICAgICAgIHNraXBUb1ZhbHVlOiBfLAogICAgICAgICAgLi4ubiwKICAgICAgICB9KQogICAgICApLAogICAgICBhNShkb2N1bWVudC5ib2R5LCAiaXgyLWFuaW1hdGlvbi1zdGFydGVkIiwgZCksCiAgICAgIG8pCiAgICApIHsKICAgICAgcU5lKHQsIGQpOwogICAgICByZXR1cm47CiAgICB9CiAgICB1byh7IHN0b3JlOiB0LCBzZWxlY3Q6ICh7IGl4SW5zdGFuY2VzOiBSIH0pID0+IFJbZF0sIG9uQ2hhbmdlOiBvNSB9KSwKICAgICAgcCAmJiB0LmRpc3BhdGNoKHFwKGQsIG0udGljaykpOwogIH0KICBmdW5jdGlvbiBQTShlLCB0KSB7CiAgICBhNShkb2N1bWVudC5ib2R5LCAiaXgyLWFuaW1hdGlvbi1zdG9wcGluZyIsIHsKICAgICAgaW5zdGFuY2VJZDogZS5pZCwKICAgICAgc3RhdGU6IHQuZ2V0U3RhdGUoKSwKICAgIH0pOwogICAgbGV0IHsgZWxlbWVudElkOiByLCBhY3Rpb25JdGVtOiBuIH0gPSBlLAogICAgICB7IGl4RWxlbWVudHM6IGkgfSA9IHQuZ2V0U3RhdGUoKSwKICAgICAgeyByZWY6IGEsIHJlZlR5cGU6IG8gfSA9IGlbcl0gfHwge307CiAgICBvID09PSBaQiAmJiBjTmUoYSwgbiwgQ3IpLCB0LmRpc3BhdGNoKGxNKGUuaWQpKTsKICB9CiAgZnVuY3Rpb24gYTUoZSwgdCwgcikgewogICAgbGV0IG4gPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKTsKICAgIG4uaW5pdEN1c3RvbUV2ZW50KHQsICEwLCAhMCwgciksIGUuZGlzcGF0Y2hFdmVudChuKTsKICB9CiAgZnVuY3Rpb24gcU5lKGUsIHQpIHsKICAgIGxldCB7IGl4UGFyYW1ldGVyczogciB9ID0gZS5nZXRTdGF0ZSgpOwogICAgZS5kaXNwYXRjaChxcCh0LCAwKSksIGUuZGlzcGF0Y2goRHAocGVyZm9ybWFuY2Uubm93KCksIHIpKTsKICAgIGxldCB7IGl4SW5zdGFuY2VzOiBuIH0gPSBlLmdldFN0YXRlKCk7CiAgICBvNShuW3RdLCBlKTsKICB9CiAgZnVuY3Rpb24gbzUoZSwgdCkgewogICAgbGV0IHsKICAgICAgICBhY3RpdmU6IHIsCiAgICAgICAgY29udGludW91czogbiwKICAgICAgICBjb21wbGV0ZTogaSwKICAgICAgICBlbGVtZW50SWQ6IGEsCiAgICAgICAgYWN0aW9uSXRlbTogbywKICAgICAgICBhY3Rpb25UeXBlSWQ6IHMsCiAgICAgICAgcmVuZGVyVHlwZTogYywKICAgICAgICBjdXJyZW50OiB1LAogICAgICAgIGdyb3VwSW5kZXg6IGwsCiAgICAgICAgZXZlbnRJZDogcCwKICAgICAgICBldmVudFRhcmdldDogZCwKICAgICAgICBldmVudFN0YXRlS2V5OiBoLAogICAgICAgIGFjdGlvbkxpc3RJZDogbSwKICAgICAgICBpc0NhcnJpZXI6IHYsCiAgICAgICAgc3R5bGVQcm9wOiB5LAogICAgICAgIHZlcmJvc2U6IGcsCiAgICAgICAgcGx1Z2luSW5zdGFuY2U6IE0sCiAgICAgIH0gPSBlLAogICAgICB7IGl4RGF0YTogQSwgaXhTZXNzaW9uOiBfIH0gPSB0LmdldFN0YXRlKCksCiAgICAgIHsgZXZlbnRzOiBDIH0gPSBBLAogICAgICBSID0gQyAmJiBDW3BdID8gQ1twXSA6IHt9LAogICAgICB7IG1lZGlhUXVlcmllczogTCA9IEEubWVkaWFRdWVyeUtleXMgfSA9IFI7CiAgICBpZiAoJHAoTCwgXy5tZWRpYVF1ZXJ5S2V5KSAmJiAobiB8fCByIHx8IGkpKSB7CiAgICAgIGlmICh1IHx8IChjID09PSBKTGUgJiYgaSkpIHsKICAgICAgICB0LmRpc3BhdGNoKGZNKGEsIHMsIHUsIG8pKTsKICAgICAgICBsZXQgeyBpeEVsZW1lbnRzOiBOIH0gPSB0LmdldFN0YXRlKCksCiAgICAgICAgICB7IHJlZjogVywgcmVmVHlwZTogaywgcmVmU3RhdGU6IHEgfSA9IE5bYV0gfHwge30sCiAgICAgICAgICBIID0gcSAmJiBxW3NdOwogICAgICAgIChrID09PSBaQiB8fCBRcChzKSkgJiYgdE5lKFcsIHEsIEgsIHAsIG8sIHksIENyLCBjLCBNKTsKICAgICAgfQogICAgICBpZiAoaSkgewogICAgICAgIGlmICh2KSB7CiAgICAgICAgICBsZXQgTiA9IHpjKHsKICAgICAgICAgICAgc3RvcmU6IHQsCiAgICAgICAgICAgIGV2ZW50SWQ6IHAsCiAgICAgICAgICAgIGV2ZW50VGFyZ2V0OiBkLAogICAgICAgICAgICBldmVudFN0YXRlS2V5OiBoLAogICAgICAgICAgICBhY3Rpb25MaXN0SWQ6IG0sCiAgICAgICAgICAgIGdyb3VwSW5kZXg6IGwgKyAxLAogICAgICAgICAgICB2ZXJib3NlOiBnLAogICAgICAgICAgfSk7CiAgICAgICAgICBnICYmICFOICYmIHQuZGlzcGF0Y2goZTAoeyBhY3Rpb25MaXN0SWQ6IG0sIGlzUGxheWluZzogITEgfSkpOwogICAgICAgIH0KICAgICAgICBQTShlLCB0KTsKICAgICAgfQogICAgfQogIH0KICB2YXIgakIsCiAgICBPaSwKICAgIFlCLAogICAgS0IsCiAgICAkQiwKICAgIFFCLAogICAgcjAsCiAgICBKQiwKICAgIGpwLAogICAgUUxlLAogICAgUk0sCiAgICBJTSwKICAgIFlwLAogICAgWkIsCiAgICBKTGUsCiAgICBIQiwKICAgIEtwLAogICAgWkxlLAogICAgTE0sCiAgICB1bywKICAgIGVOZSwKICAgIHROZSwKICAgIGU1LAogICAgck5lLAogICAgbk5lLAogICAgaU5lLAogICAgYU5lLAogICAgb05lLAogICAgc05lLAogICAgJHAsCiAgICBjTmUsCiAgICB1TmUsCiAgICBsTmUsCiAgICBmTmUsCiAgICBwTmUsCiAgICBRcCwKICAgIE5NLAogICAgZE5lLAogICAgR0IsCiAgICBoTmUsCiAgICBtTmUsCiAgICBSTmUsCiAgICBMTmUsCiAgICBOTmUsCiAgICB3TmUsCiAgICBDTSA9IFYoKCkgPT4gewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIChqQiA9IGJlKHBwKCkpKSwKICAgICAgICAoT2kgPSBiZShaaSgpKSksCiAgICAgICAgKFlCID0gYmUoTEYoKSkpLAogICAgICAgIChLQiA9IGJlKFpGKCkpKSwKICAgICAgICAoJEIgPSBiZSh0aygpKSksCiAgICAgICAgKFFCID0gYmUobmsoKSkpLAogICAgICAgIChyMCA9IGJlKHdwKCkpKSwKICAgICAgICAoSkIgPSBiZShkaygpKSk7CiAgICAgIGtyKCk7CiAgICAgIGpwID0gYmUoY28oKSk7CiAgICAgIHpwKCk7CiAgICAgIGJrKCk7CiAgICAgIFZCKCk7CiAgICAgIChRTGUgPSBPYmplY3Qua2V5cyhhcCkpLAogICAgICAgIChSTSA9IChlKSA9PiBRTGUuaW5jbHVkZXMoZSkpLAogICAgICAgICh7CiAgICAgICAgICBDT0xPTl9ERUxJTUlURVI6IElNLAogICAgICAgICAgQk9VTkRBUllfU0VMRUNUT1I6IFlwLAogICAgICAgICAgSFRNTF9FTEVNRU5UOiBaQiwKICAgICAgICAgIFJFTkRFUl9HRU5FUkFMOiBKTGUsCiAgICAgICAgICBXX01PRF9JWDogSEIsCiAgICAgICAgfSA9IHlyKSwKICAgICAgICAoewogICAgICAgICAgZ2V0QWZmZWN0ZWRFbGVtZW50czogS3AsCiAgICAgICAgICBnZXRFbGVtZW50SWQ6IFpMZSwKICAgICAgICAgIGdldERlc3RpbmF0aW9uVmFsdWVzOiBMTSwKICAgICAgICAgIG9ic2VydmVTdG9yZTogdW8sCiAgICAgICAgICBnZXRJbnN0YW5jZUlkOiBlTmUsCiAgICAgICAgICByZW5kZXJIVE1MRWxlbWVudDogdE5lLAogICAgICAgICAgY2xlYXJBbGxTdHlsZXM6IGU1LAogICAgICAgICAgZ2V0TWF4RHVyYXRpb25JdGVtSW5kZXg6IHJOZSwKICAgICAgICAgIGdldENvbXB1dGVkU3R5bGU6IG5OZSwKICAgICAgICAgIGdldEluc3RhbmNlT3JpZ2luOiBpTmUsCiAgICAgICAgICByZWR1Y2VMaXN0VG9Hcm91cDogYU5lLAogICAgICAgICAgc2hvdWxkTmFtZXNwYWNlRXZlbnRQYXJhbWV0ZXI6IG9OZSwKICAgICAgICAgIGdldE5hbWVzcGFjZWRQYXJhbWV0ZXJJZDogc05lLAogICAgICAgICAgc2hvdWxkQWxsb3dNZWRpYVF1ZXJ5OiAkcCwKICAgICAgICAgIGNsZWFudXBIVE1MRWxlbWVudDogY05lLAogICAgICAgICAgY2xlYXJPYmplY3RDYWNoZTogdU5lLAogICAgICAgICAgc3RyaW5naWZ5VGFyZ2V0OiBsTmUsCiAgICAgICAgICBtZWRpYVF1ZXJpZXNFcXVhbDogZk5lLAogICAgICAgICAgc2hhbGxvd0VxdWFsOiBwTmUsCiAgICAgICAgfSA9IGpwLklYMlZhbmlsbGFVdGlscyksCiAgICAgICAgKHsKICAgICAgICAgIGlzUGx1Z2luVHlwZTogUXAsCiAgICAgICAgICBjcmVhdGVQbHVnaW5JbnN0YW5jZTogTk0sCiAgICAgICAgICBnZXRQbHVnaW5EdXJhdGlvbjogZE5lLAogICAgICAgIH0gPSBqcC5JWDJWYW5pbGxhUGx1Z2lucyksCiAgICAgICAgKEdCID0gbmF2aWdhdG9yLnVzZXJBZ2VudCksCiAgICAgICAgKGhOZSA9IEdCLm1hdGNoKC9pUGFkL2kpIHx8IEdCLm1hdGNoKC9pUGhvbmUvKSksCiAgICAgICAgKG1OZSA9IDEyKTsKICAgICAgUk5lID0gWyJyZXNpemUiLCAib3JpZW50YXRpb25jaGFuZ2UiXTsKICAgICAgKExOZSA9IChlLCB0KSA9PiAoMCwgS0IuZGVmYXVsdCkoKDAsIFFCLmRlZmF1bHQpKGUsIHQpLCAkQi5kZWZhdWx0KSksCiAgICAgICAgKE5OZSA9IChlLCB0KSA9PiB7CiAgICAgICAgICAoMCwgcjAuZGVmYXVsdCkoZSwgKHIsIG4pID0+IHsKICAgICAgICAgICAgci5mb3JFYWNoKChpLCBhKSA9PiB7CiAgICAgICAgICAgICAgbGV0IG8gPSBuICsgSU0gKyBhOwogICAgICAgICAgICAgIHQoaSwgbiwgbyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgfSksCiAgICAgICAgKHdOZSA9IChlKSA9PiB7CiAgICAgICAgICBsZXQgdCA9IHsgdGFyZ2V0OiBlLnRhcmdldCwgdGFyZ2V0czogZS50YXJnZXRzIH07CiAgICAgICAgICByZXR1cm4gS3AoeyBjb25maWc6IHQsIGVsZW1lbnRBcGk6IENyIH0pOwogICAgICAgIH0pOwogICAgfSk7CiAgdmFyIGw1ID0gRSgocU0pID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxTSwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiAhMCB9KTsKICAgIGZ1bmN0aW9uIHpOZShlLCB0KSB7CiAgICAgIGZvciAodmFyIHIgaW4gdCkKICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgeyBlbnVtZXJhYmxlOiAhMCwgZ2V0OiB0W3JdIH0pOwogICAgfQogICAgek5lKHFNLCB7CiAgICAgIGFjdGlvbnM6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gQk5lOwogICAgICB9LAogICAgICBkZXN0cm95OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHU1OwogICAgICB9LAogICAgICBpbml0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIFZOZTsKICAgICAgfSwKICAgICAgc2V0RW52OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIFhOZTsKICAgICAgfSwKICAgICAgc3RvcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gZWQ7CiAgICAgIH0sCiAgICB9KTsKICAgIHZhciBGTmUgPSBmYigpLAogICAgICBrTmUgPSBXTmUoKGhGKCksIG90KGRGKSkpLAogICAgICBETSA9IChDTSgpLCBvdChzNSkpLAogICAgICBCTmUgPSBVTmUoKHpwKCksIG90KG1rKSkpOwogICAgZnVuY3Rpb24gV05lKGUpIHsKICAgICAgcmV0dXJuIGUgJiYgZS5fX2VzTW9kdWxlID8gZSA6IHsgZGVmYXVsdDogZSB9OwogICAgfQogICAgZnVuY3Rpb24gYzUoZSkgewogICAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT0gImZ1bmN0aW9uIikgcmV0dXJuIG51bGw7CiAgICAgIHZhciB0ID0gbmV3IFdlYWtNYXAoKSwKICAgICAgICByID0gbmV3IFdlYWtNYXAoKTsKICAgICAgcmV0dXJuIChjNSA9IGZ1bmN0aW9uIChuKSB7CiAgICAgICAgcmV0dXJuIG4gPyByIDogdDsKICAgICAgfSkoZSk7CiAgICB9CiAgICBmdW5jdGlvbiBVTmUoZSwgdCkgewogICAgICBpZiAoIXQgJiYgZSAmJiBlLl9fZXNNb2R1bGUpIHJldHVybiBlOwogICAgICBpZiAoZSA9PT0gbnVsbCB8fCAodHlwZW9mIGUgIT0gIm9iamVjdCIgJiYgdHlwZW9mIGUgIT0gImZ1bmN0aW9uIikpCiAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogZSB9OwogICAgICB2YXIgciA9IGM1KHQpOwogICAgICBpZiAociAmJiByLmhhcyhlKSkgcmV0dXJuIHIuZ2V0KGUpOwogICAgICB2YXIgbiA9IHsgX19wcm90b19fOiBudWxsIH0sCiAgICAgICAgaSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOwogICAgICBmb3IgKHZhciBhIGluIGUpCiAgICAgICAgaWYgKGEgIT09ICJkZWZhdWx0IiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwgYSkpIHsKICAgICAgICAgIHZhciBvID0gaSA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgYSkgOiBudWxsOwogICAgICAgICAgbyAmJiAoby5nZXQgfHwgby5zZXQpCiAgICAgICAgICAgID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIGEsIG8pCiAgICAgICAgICAgIDogKG5bYV0gPSBlW2FdKTsKICAgICAgICB9CiAgICAgIHJldHVybiAobi5kZWZhdWx0ID0gZSksIHIgJiYgci5zZXQoZSwgbiksIG47CiAgICB9CiAgICB2YXIgZWQgPSAoMCwgRk5lLmNyZWF0ZVN0b3JlKShrTmUuZGVmYXVsdCk7CiAgICBmdW5jdGlvbiBYTmUoZSkgewogICAgICBlKCkgJiYgKDAsIERNLm9ic2VydmVSZXF1ZXN0cykoZWQpOwogICAgfQogICAgZnVuY3Rpb24gVk5lKGUpIHsKICAgICAgdTUoKSwgKDAsIERNLnN0YXJ0RW5naW5lKSh7IHN0b3JlOiBlZCwgcmF3RGF0YTogZSwgYWxsb3dFdmVudHM6ICEwIH0pOwogICAgfQogICAgZnVuY3Rpb24gdTUoKSB7CiAgICAgICgwLCBETS5zdG9wRW5naW5lKShlZCk7CiAgICB9CiAgfSk7CiAgdmFyIGg1ID0gRSgoZGV0LCBkNSkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIGY1ID0gbXIoKSwKICAgICAgcDUgPSBsNSgpOwogICAgcDUuc2V0RW52KGY1LmVudik7CiAgICBmNS5kZWZpbmUoCiAgICAgICJpeDIiLAogICAgICAoZDUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gcDU7CiAgICAgIH0pCiAgICApOwogIH0pOwogIHZhciB5NSA9IEUoKGhldCwgbTUpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBuMCA9IG1yKCk7CiAgICBuMC5kZWZpbmUoCiAgICAgICJsaW5rcyIsCiAgICAgIChtNS5leHBvcnRzID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICB2YXIgciA9IHt9LAogICAgICAgICAgbiA9IGUod2luZG93KSwKICAgICAgICAgIGksCiAgICAgICAgICBhID0gbjAuZW52KCksCiAgICAgICAgICBvID0gd2luZG93LmxvY2F0aW9uLAogICAgICAgICAgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSwKICAgICAgICAgIGMgPSAidy0tY3VycmVudCIsCiAgICAgICAgICB1ID0gL2luZGV4XC4oaHRtbHxwaHApJC8sCiAgICAgICAgICBsID0gL1wvJC8sCiAgICAgICAgICBwLAogICAgICAgICAgZDsKICAgICAgICByLnJlYWR5ID0gci5kZXNpZ24gPSByLnByZXZpZXcgPSBoOwogICAgICAgIGZ1bmN0aW9uIGgoKSB7CiAgICAgICAgICAoaSA9IGEgJiYgbjAuZW52KCJkZXNpZ24iKSksCiAgICAgICAgICAgIChkID0gbjAuZW52KCJzbHVnIikgfHwgby5wYXRobmFtZSB8fCAiIiksCiAgICAgICAgICAgIG4wLnNjcm9sbC5vZmYodiksCiAgICAgICAgICAgIChwID0gW10pOwogICAgICAgICAgZm9yICh2YXIgZyA9IGRvY3VtZW50LmxpbmtzLCBNID0gMDsgTSA8IGcubGVuZ3RoOyArK00pIG0oZ1tNXSk7CiAgICAgICAgICBwLmxlbmd0aCAmJiAobjAuc2Nyb2xsLm9uKHYpLCB2KCkpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBtKGcpIHsKICAgICAgICAgIGlmICghZy5nZXRBdHRyaWJ1dGUoImhyZWZsYW5nIikpIHsKICAgICAgICAgICAgdmFyIE0gPQogICAgICAgICAgICAgIChpICYmIGcuZ2V0QXR0cmlidXRlKCJocmVmLWRpc2FibGVkIikpIHx8IGcuZ2V0QXR0cmlidXRlKCJocmVmIik7CiAgICAgICAgICAgIGlmICgoKHMuaHJlZiA9IE0pLCAhKE0uaW5kZXhPZigiOiIpID49IDApKSkgewogICAgICAgICAgICAgIHZhciBBID0gZShnKTsKICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICBzLmhhc2gubGVuZ3RoID4gMSAmJgogICAgICAgICAgICAgICAgcy5ob3N0ICsgcy5wYXRobmFtZSA9PT0gby5ob3N0ICsgby5wYXRobmFtZQogICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKCEvXiNbYS16QS1aMC05XC1cX10rJC8udGVzdChzLmhhc2gpKSByZXR1cm47CiAgICAgICAgICAgICAgICB2YXIgXyA9IGUocy5oYXNoKTsKICAgICAgICAgICAgICAgIF8ubGVuZ3RoICYmIHAucHVzaCh7IGxpbms6IEEsIHNlYzogXywgYWN0aXZlOiAhMSB9KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCEoTSA9PT0gIiMiIHx8IE0gPT09ICIiKSkgewogICAgICAgICAgICAgICAgdmFyIEMgPQogICAgICAgICAgICAgICAgICBzLmhyZWYgPT09IG8uaHJlZiB8fCBNID09PSBkIHx8ICh1LnRlc3QoTSkgJiYgbC50ZXN0KGQpKTsKICAgICAgICAgICAgICAgIHkoQSwgYywgQyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHYoKSB7CiAgICAgICAgICB2YXIgZyA9IG4uc2Nyb2xsVG9wKCksCiAgICAgICAgICAgIE0gPSBuLmhlaWdodCgpOwogICAgICAgICAgdC5lYWNoKHAsIGZ1bmN0aW9uIChBKSB7CiAgICAgICAgICAgIGlmICghQS5saW5rLmF0dHIoImhyZWZsYW5nIikpIHsKICAgICAgICAgICAgICB2YXIgXyA9IEEubGluaywKICAgICAgICAgICAgICAgIEMgPSBBLnNlYywKICAgICAgICAgICAgICAgIFIgPSBDLm9mZnNldCgpLnRvcCwKICAgICAgICAgICAgICAgIEwgPSBDLm91dGVySGVpZ2h0KCksCiAgICAgICAgICAgICAgICBOID0gTSAqIDAuNSwKICAgICAgICAgICAgICAgIFcgPSBDLmlzKCI6dmlzaWJsZSIpICYmIFIgKyBMIC0gTiA+PSBnICYmIFIgKyBOIDw9IGcgKyBNOwogICAgICAgICAgICAgIEEuYWN0aXZlICE9PSBXICYmICgoQS5hY3RpdmUgPSBXKSwgeShfLCBjLCBXKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB5KGcsIE0sIEEpIHsKICAgICAgICAgIHZhciBfID0gZy5oYXNDbGFzcyhNKTsKICAgICAgICAgIChBICYmIF8pIHx8ICghQSAmJiAhXykgfHwgKEEgPyBnLmFkZENsYXNzKE0pIDogZy5yZW1vdmVDbGFzcyhNKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByOwogICAgICB9KQogICAgKTsKICB9KTsKICB2YXIgdjUgPSBFKChtZXQsIGc1KSA9PiB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgdGQgPSBtcigpOwogICAgdGQuZGVmaW5lKAogICAgICAic2Nyb2xsIiwKICAgICAgKGc1LmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICAgIHZhciB0ID0gewogICAgICAgICAgICBXRl9DTElDS19FTVBUWTogImNsaWNrLndmLWVtcHR5LWxpbmsiLAogICAgICAgICAgICBXRl9DTElDS19TQ1JPTEw6ICJjbGljay53Zi1zY3JvbGwiLAogICAgICAgICAgfSwKICAgICAgICAgIHIgPSB3aW5kb3cubG9jYXRpb24sCiAgICAgICAgICBuID0gbSgpID8gbnVsbCA6IHdpbmRvdy5oaXN0b3J5LAogICAgICAgICAgaSA9IGUod2luZG93KSwKICAgICAgICAgIGEgPSBlKGRvY3VtZW50KSwKICAgICAgICAgIG8gPSBlKGRvY3VtZW50LmJvZHkpLAogICAgICAgICAgcyA9CiAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHwKICAgICAgICAgICAgd2luZG93Lm1velJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAogICAgICAgICAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8CiAgICAgICAgICAgIGZ1bmN0aW9uIChIKSB7CiAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoSCwgMTUpOwogICAgICAgICAgICB9LAogICAgICAgICAgYyA9IHRkLmVudigiZWRpdG9yIikgPyAiLnctZWRpdG9yLWJvZHkiIDogImJvZHkiLAogICAgICAgICAgdSA9CiAgICAgICAgICAgICJoZWFkZXIsICIgKwogICAgICAgICAgICBjICsKICAgICAgICAgICAgIiA+IC5oZWFkZXIsICIgKwogICAgICAgICAgICBjICsKICAgICAgICAgICAgIiA+IC53LW5hdjpub3QoW2RhdGEtbm8tc2Nyb2xsXSkiLAogICAgICAgICAgbCA9ICdhW2hyZWY9IiMiXScsCiAgICAgICAgICBwID0gJ2FbaHJlZio9IiMiXTpub3QoLnctdGFiLWxpbmspOm5vdCgnICsgbCArICIpIiwKICAgICAgICAgIGQgPSAnLndmLWZvcmNlLW91dGxpbmUtbm9uZVt0YWJpbmRleD0iLTEiXTpmb2N1c3tvdXRsaW5lOm5vbmU7fScsCiAgICAgICAgICBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKICAgICAgICBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpKTsKICAgICAgICBmdW5jdGlvbiBtKCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuICEhd2luZG93LmZyYW1lRWxlbWVudDsKICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZhciB2ID0gL14jW2EtekEtWjAtOV1bXHc6Li1dKiQvOwogICAgICAgIGZ1bmN0aW9uIHkoSCkgewogICAgICAgICAgcmV0dXJuIHYudGVzdChILmhhc2gpICYmIEguaG9zdCArIEgucGF0aG5hbWUgPT09IHIuaG9zdCArIHIucGF0aG5hbWU7CiAgICAgICAgfQogICAgICAgIGxldCBnID0KICAgICAgICAgIHR5cGVvZiB3aW5kb3cubWF0Y2hNZWRpYSA9PSAiZnVuY3Rpb24iICYmCiAgICAgICAgICB3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKTsKICAgICAgICBmdW5jdGlvbiBNKCkgewogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGUoImRhdGEtd2Ytc2Nyb2xsLW1vdGlvbiIpID09PSAibm9uZSIgfHwKICAgICAgICAgICAgZy5tYXRjaGVzCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBBKEgsIFgpIHsKICAgICAgICAgIHZhciBVOwogICAgICAgICAgc3dpdGNoIChYKSB7CiAgICAgICAgICAgIGNhc2UgImFkZCI6CiAgICAgICAgICAgICAgKFUgPSBILmF0dHIoInRhYmluZGV4IikpLAogICAgICAgICAgICAgICAgVQogICAgICAgICAgICAgICAgICA/IEguYXR0cigiZGF0YS13Zi10YWJpbmRleC1zd2FwIiwgVSkKICAgICAgICAgICAgICAgICAgOiBILmF0dHIoInRhYmluZGV4IiwgIi0xIik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInJlbW92ZSI6CiAgICAgICAgICAgICAgKFUgPSBILmF0dHIoImRhdGEtd2YtdGFiaW5kZXgtc3dhcCIpKSwKICAgICAgICAgICAgICAgIFUKICAgICAgICAgICAgICAgICAgPyAoSC5hdHRyKCJ0YWJpbmRleCIsIFUpLAogICAgICAgICAgICAgICAgICAgIEgucmVtb3ZlQXR0cigiZGF0YS13Zi10YWJpbmRleC1zd2FwIikpCiAgICAgICAgICAgICAgICAgIDogSC5yZW1vdmVBdHRyKCJ0YWJpbmRleCIpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgSC50b2dnbGVDbGFzcygid2YtZm9yY2Utb3V0bGluZS1ub25lIiwgWCA9PT0gImFkZCIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBfKEgpIHsKICAgICAgICAgIHZhciBYID0gSC5jdXJyZW50VGFyZ2V0OwogICAgICAgICAgaWYgKAogICAgICAgICAgICAhKAogICAgICAgICAgICAgIHRkLmVudigiZGVzaWduIikgfHwKICAgICAgICAgICAgICAod2luZG93LiQubW9iaWxlICYmIC8oPzpefFxzKXVpLWxpbmsoPzokfFxzKS8udGVzdChYLmNsYXNzTmFtZSkpCiAgICAgICAgICAgICkKICAgICAgICAgICkgewogICAgICAgICAgICB2YXIgVSA9IHkoWCkgPyBYLmhhc2ggOiAiIjsKICAgICAgICAgICAgaWYgKFUgIT09ICIiKSB7CiAgICAgICAgICAgICAgdmFyIHRlID0gZShVKTsKICAgICAgICAgICAgICB0ZS5sZW5ndGggJiYKICAgICAgICAgICAgICAgIChIICYmIChILnByZXZlbnREZWZhdWx0KCksIEguc3RvcFByb3BhZ2F0aW9uKCkpLAogICAgICAgICAgICAgICAgQyhVLCBIKSwKICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KAogICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgUih0ZSwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgQSh0ZSwgImFkZCIpLAogICAgICAgICAgICAgICAgICAgICAgICB0ZS5nZXQoMCkuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiAhMCB9KSwKICAgICAgICAgICAgICAgICAgICAgICAgQSh0ZSwgInJlbW92ZSIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBIID8gMCA6IDMwMAogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gQyhIKSB7CiAgICAgICAgICBpZiAoCiAgICAgICAgICAgIHIuaGFzaCAhPT0gSCAmJgogICAgICAgICAgICBuICYmCiAgICAgICAgICAgIG4ucHVzaFN0YXRlICYmCiAgICAgICAgICAgICEodGQuZW52LmNocm9tZSAmJiByLnByb3RvY29sID09PSAiZmlsZToiKQogICAgICAgICAgKSB7CiAgICAgICAgICAgIHZhciBYID0gbi5zdGF0ZSAmJiBuLnN0YXRlLmhhc2g7CiAgICAgICAgICAgIFggIT09IEggJiYgbi5wdXNoU3RhdGUoeyBoYXNoOiBIIH0sICIiLCBIKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gUihILCBYKSB7CiAgICAgICAgICB2YXIgVSA9IGkuc2Nyb2xsVG9wKCksCiAgICAgICAgICAgIHRlID0gTChIKTsKICAgICAgICAgIGlmIChVICE9PSB0ZSkgewogICAgICAgICAgICB2YXIgb2UgPSBOKEgsIFUsIHRlKSwKICAgICAgICAgICAgICB5ZSA9IERhdGUubm93KCksCiAgICAgICAgICAgICAgRiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBZID0gRGF0ZS5ub3coKSAtIHllOwogICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbCgwLCBXKFUsIHRlLCBZLCBvZSkpLAogICAgICAgICAgICAgICAgICBZIDw9IG9lID8gcyhGKSA6IHR5cGVvZiBYID09ICJmdW5jdGlvbiIgJiYgWCgpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIHMoRik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIEwoSCkgewogICAgICAgICAgdmFyIFggPSBlKHUpLAogICAgICAgICAgICBVID0gWC5jc3MoInBvc2l0aW9uIikgPT09ICJmaXhlZCIgPyBYLm91dGVySGVpZ2h0KCkgOiAwLAogICAgICAgICAgICB0ZSA9IEgub2Zmc2V0KCkudG9wIC0gVTsKICAgICAgICAgIGlmIChILmRhdGEoInNjcm9sbCIpID09PSAibWlkIikgewogICAgICAgICAgICB2YXIgb2UgPSBpLmhlaWdodCgpIC0gVSwKICAgICAgICAgICAgICB5ZSA9IEgub3V0ZXJIZWlnaHQoKTsKICAgICAgICAgICAgeWUgPCBvZSAmJiAodGUgLT0gTWF0aC5yb3VuZCgob2UgLSB5ZSkgLyAyKSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdGU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIE4oSCwgWCwgVSkgewogICAgICAgICAgaWYgKE0oKSkgcmV0dXJuIDA7CiAgICAgICAgICB2YXIgdGUgPSAxOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgby5hZGQoSCkuZWFjaChmdW5jdGlvbiAob2UsIHllKSB7CiAgICAgICAgICAgICAgdmFyIEYgPSBwYXJzZUZsb2F0KHllLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwtdGltZSIpKTsKICAgICAgICAgICAgICAhaXNOYU4oRikgJiYgRiA+PSAwICYmICh0ZSA9IEYpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgKDQ3Mi4xNDMgKiBNYXRoLmxvZyhNYXRoLmFicyhYIC0gVSkgKyAxMjUpIC0gMmUzKSAqIHRlCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBXKEgsIFgsIFUsIHRlKSB7CiAgICAgICAgICByZXR1cm4gVSA+IHRlID8gWCA6IEggKyAoWCAtIEgpICogayhVIC8gdGUpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBrKEgpIHsKICAgICAgICAgIHJldHVybiBIIDwgMC41CiAgICAgICAgICAgID8gNCAqIEggKiBIICogSAogICAgICAgICAgICA6IChIIC0gMSkgKiAoMiAqIEggLSAyKSAqICgyICogSCAtIDIpICsgMTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcSgpIHsKICAgICAgICAgIHZhciB7IFdGX0NMSUNLX0VNUFRZOiBILCBXRl9DTElDS19TQ1JPTEw6IFggfSA9IHQ7CiAgICAgICAgICBhLm9uKFgsIHAsIF8pLAogICAgICAgICAgICBhLm9uKEgsIGwsIGZ1bmN0aW9uIChVKSB7CiAgICAgICAgICAgICAgVS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5pbnNlcnRCZWZvcmUoaCwgZG9jdW1lbnQuaGVhZC5maXJzdENoaWxkKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsgcmVhZHk6IHEgfTsKICAgICAgfSkKICAgICk7CiAgfSk7CiAgdmFyIE01ID0gRSgoeWV0LCBiNSkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIEhOZSA9IG1yKCk7CiAgICBITmUuZGVmaW5lKAogICAgICAidG91Y2giLAogICAgICAoYjUuZXhwb3J0cyA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgdmFyIHQgPSB7fSwKICAgICAgICAgIHIgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uOwogICAgICAgIChlLmV2ZW50LnNwZWNpYWwudGFwID0geyBiaW5kVHlwZTogImNsaWNrIiwgZGVsZWdhdGVUeXBlOiAiY2xpY2siIH0pLAogICAgICAgICAgKHQuaW5pdCA9IGZ1bmN0aW9uIChhKSB7CiAgICAgICAgICAgIHJldHVybiAoCiAgICAgICAgICAgICAgKGEgPSB0eXBlb2YgYSA9PSAic3RyaW5nIiA/IGUoYSkuZ2V0KDApIDogYSksIGEgPyBuZXcgbihhKSA6IG51bGwKICAgICAgICAgICAgKTsKICAgICAgICAgIH0pOwogICAgICAgIGZ1bmN0aW9uIG4oYSkgewogICAgICAgICAgdmFyIG8gPSAhMSwKICAgICAgICAgICAgcyA9ICExLAogICAgICAgICAgICBjID0gTWF0aC5taW4oTWF0aC5yb3VuZCh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuMDQpLCA0MCksCiAgICAgICAgICAgIHUsCiAgICAgICAgICAgIGw7CiAgICAgICAgICBhLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBwLCAhMSksCiAgICAgICAgICAgIGEuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwgZCwgITEpLAogICAgICAgICAgICBhLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgaCwgITEpLAogICAgICAgICAgICBhLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIiwgbSwgITEpLAogICAgICAgICAgICBhLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHAsICExKSwKICAgICAgICAgICAgYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBkLCAhMSksCiAgICAgICAgICAgIGEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIGgsICExKSwKICAgICAgICAgICAgYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIG0sICExKTsKICAgICAgICAgIGZ1bmN0aW9uIHAoeSkgewogICAgICAgICAgICB2YXIgZyA9IHkudG91Y2hlczsKICAgICAgICAgICAgKGcgJiYgZy5sZW5ndGggPiAxKSB8fAogICAgICAgICAgICAgICgobyA9ICEwKSwKICAgICAgICAgICAgICBnID8gKChzID0gITApLCAodSA9IGdbMF0uY2xpZW50WCkpIDogKHUgPSB5LmNsaWVudFgpLAogICAgICAgICAgICAgIChsID0gdSkpOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gZCh5KSB7CiAgICAgICAgICAgIGlmIChvKSB7CiAgICAgICAgICAgICAgaWYgKHMgJiYgeS50eXBlID09PSAibW91c2Vtb3ZlIikgewogICAgICAgICAgICAgICAgeS5wcmV2ZW50RGVmYXVsdCgpLCB5LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgZyA9IHkudG91Y2hlcywKICAgICAgICAgICAgICAgIE0gPSBnID8gZ1swXS5jbGllbnRYIDogeS5jbGllbnRYLAogICAgICAgICAgICAgICAgQSA9IE0gLSBsOwogICAgICAgICAgICAgIChsID0gTSksCiAgICAgICAgICAgICAgICBNYXRoLmFicyhBKSA+IGMgJiYKICAgICAgICAgICAgICAgICAgciAmJgogICAgICAgICAgICAgICAgICBTdHJpbmcocigpKSA9PT0gIiIgJiYKICAgICAgICAgICAgICAgICAgKGkoInN3aXBlIiwgeSwgeyBkaXJlY3Rpb246IEEgPiAwID8gInJpZ2h0IiA6ICJsZWZ0IiB9KSwgbSgpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gaCh5KSB7CiAgICAgICAgICAgIGlmIChvICYmICgobyA9ICExKSwgcyAmJiB5LnR5cGUgPT09ICJtb3VzZXVwIikpIHsKICAgICAgICAgICAgICB5LnByZXZlbnREZWZhdWx0KCksIHkuc3RvcFByb3BhZ2F0aW9uKCksIChzID0gITEpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gbSgpIHsKICAgICAgICAgICAgbyA9ICExOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gdigpIHsKICAgICAgICAgICAgYS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgcCwgITEpLAogICAgICAgICAgICAgIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwgZCwgITEpLAogICAgICAgICAgICAgIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCBoLCAhMSksCiAgICAgICAgICAgICAgYS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsIG0sICExKSwKICAgICAgICAgICAgICBhLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHAsICExKSwKICAgICAgICAgICAgICBhLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIGQsICExKSwKICAgICAgICAgICAgICBhLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCBoLCAhMSksCiAgICAgICAgICAgICAgYS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIG0sICExKSwKICAgICAgICAgICAgICAoYSA9IG51bGwpOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5kZXN0cm95ID0gdjsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaShhLCBvLCBzKSB7CiAgICAgICAgICB2YXIgYyA9IGUuRXZlbnQoYSwgeyBvcmlnaW5hbEV2ZW50OiBvIH0pOwogICAgICAgICAgZShvLnRhcmdldCkudHJpZ2dlcihjLCBzKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICh0Lmluc3RhbmNlID0gdC5pbml0KGRvY3VtZW50KSksIHQ7CiAgICAgIH0pCiAgICApOwogIH0pOwogIHZhciBBNSA9IFYoKCkgPT4gewogICAgKGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKCEodHlwZW9mIHdpbmRvdyA+ICJ1IikpCiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciBlID0gbmV3IHdpbmRvdy5DdXN0b21FdmVudCgidGVzdCIsIHsgY2FuY2VsYWJsZTogITAgfSk7CiAgICAgICAgICBpZiAoKGUucHJldmVudERlZmF1bHQoKSwgZS5kZWZhdWx0UHJldmVudGVkICE9PSAhMCkpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IHByZXZlbnQgZGVmYXVsdCIpOwogICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgdmFyIHQgPSBmdW5jdGlvbiAobiwgaSkgewogICAgICAgICAgICB2YXIgYSwgbzsKICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAoaSA9IGkgfHwge30pLAogICAgICAgICAgICAgIChpLmJ1YmJsZXMgPSAhIWkuYnViYmxlcyksCiAgICAgICAgICAgICAgKGkuY2FuY2VsYWJsZSA9ICEhaS5jYW5jZWxhYmxlKSwKICAgICAgICAgICAgICAoYSA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJDdXN0b21FdmVudCIpKSwKICAgICAgICAgICAgICBhLmluaXRDdXN0b21FdmVudChuLCBpLmJ1YmJsZXMsIGkuY2FuY2VsYWJsZSwgaS5kZXRhaWwpLAogICAgICAgICAgICAgIChvID0gYS5wcmV2ZW50RGVmYXVsdCksCiAgICAgICAgICAgICAgKGEucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBvLmNhbGwodGhpcyk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgImRlZmF1bHRQcmV2ZW50ZWQiLCB7CiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gITA7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gITA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgYQogICAgICAgICAgICApOwogICAgICAgICAgfTsKICAgICAgICAgICh0LnByb3RvdHlwZSA9IHdpbmRvdy5FdmVudC5wcm90b3R5cGUpLCAod2luZG93LkN1c3RvbUV2ZW50ID0gdCk7CiAgICAgICAgfQogICAgfSkoKTsKICB9KTsKICB2YXIgek0gPSBFKChFNSkgPT4gewogICAgdmFyIEdOZSA9IGd0KCk7CiAgICBFNS5mID0gR05lOwogIH0pOwogIHZhciBUdCA9IEUoKHZldCwgXzUpID0+IHsKICAgIHZhciBUNSA9IExzKCksCiAgICAgIGpOZSA9IHJyKCksCiAgICAgIFlOZSA9IHpNKCksCiAgICAgIEtOZSA9IGlyKCkuZjsKICAgIF81LmV4cG9ydHMgPSBmdW5jdGlvbiAoZSkgewogICAgICB2YXIgdCA9IFQ1LlN5bWJvbCB8fCAoVDUuU3ltYm9sID0ge30pOwogICAgICBqTmUodCwgZSkgfHwgS05lKHQsIGUsIHsgdmFsdWU6IFlOZS5mKGUpIH0pOwogICAgfTsKICB9KTsKICB2YXIgRzUgPSBFKCgpID0+IHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBhMCA9IExlKCksCiAgICAgIEtNID0gU2UoKSwKICAgICAgJE5lID0genIoKSwKICAgICAgUU5lID0gb2MoKSwKICAgICAgV2MgPSBxcigpLAogICAgICBKTmUgPSBYZSgpLAogICAgICBaTmUgPSBLYSgpLAogICAgICBpMCA9IHRyKCksCiAgICAgIGxvID0gZmYoKSwKICAgICAgJE0gPSBidCgpLAogICAgICBJdCA9IHJyKCksCiAgICAgIGV3ZSA9IGhpKCksCiAgICAgIHR3ZSA9IE10KCksCiAgICAgIHJ3ZSA9IFV0KCksCiAgICAgIG53ZSA9IFlhKCksCiAgICAgIFVNID0gVjEoKSwKICAgICAgWE0gPSBucigpLAogICAgICBpd2UgPSBPdCgpLAogICAgICBuZCA9ICRyKCksCiAgICAgIFFNID0gQXMoKSwKICAgICAgSTUgPSBGbigpLAogICAgICBWTSA9IGdzKCksCiAgICAgIGtjID0gbWkoKSwKICAgICAgTDUgPSBBZigpLAogICAgICBhd2UgPSBTcygpLAogICAgICBONSA9IFZnKCksCiAgICAgIEhNID0gb2coKSwKICAgICAgdzUgPSBFcygpLAogICAgICBQNSA9IGlyKCksCiAgICAgIEQ1ID0gdWYoKSwKICAgICAgb3dlID0gSXMoKSwKICAgICAgcmQgPSBkbigpLAogICAgICBVYyA9IGRmKCksCiAgICAgIHN3ZSA9ICQxKCksCiAgICAgIHE1ID0gVHMoKSwKICAgICAgUzUgPSBqMSgpLAogICAgICB6NSA9IGd0KCksCiAgICAgIGN3ZSA9IHpNKCksCiAgICAgIHV3ZSA9IFR0KCksCiAgICAgIGx3ZSA9IGdpKCksCiAgICAgIEY1ID0gZGkoKSwKICAgICAgaWQgPSB5bigpLmZvckVhY2gsCiAgICAgIFJyID0gc3dlKCJoaWRkZW4iKSwKICAgICAgYWQgPSAiU3ltYm9sIiwKICAgICAgQmMgPSAicHJvdG90eXBlIiwKICAgICAgTzUgPSB6NSgidG9QcmltaXRpdmUiKSwKICAgICAgZndlID0gRjUuc2V0LAogICAgICB4NSA9IEY1LmdldHRlckZvcihhZCksCiAgICAgIGVuID0gT2JqZWN0W0JjXSwKICAgICAgeGkgPSBLTS5TeW1ib2wsCiAgICAgIGZhID0geGkgJiYgeGlbQmNdLAogICAgICBrNSA9IEtNLlR5cGVFcnJvciwKICAgICAgRk0gPSBLTS5RT2JqZWN0LAogICAgICBGYyA9ICROZSgiSlNPTiIsICJzdHJpbmdpZnkiKSwKICAgICAgQjUgPSB3NS5mLAogICAgICBsYSA9IFA1LmYsCiAgICAgIFc1ID0gTjUuZiwKICAgICAgcHdlID0gRDUuZiwKICAgICAgVTUgPSBKTmUoW10ucHVzaCksCiAgICAgIENpID0gVWMoInN5bWJvbHMiKSwKICAgICAgWGMgPSBVYygib3Atc3ltYm9scyIpLAogICAgICBrTSA9IFVjKCJzdHJpbmctdG8tc3ltYm9sLXJlZ2lzdHJ5IiksCiAgICAgIEJNID0gVWMoInN5bWJvbC10by1zdHJpbmctcmVnaXN0cnkiKSwKICAgICAgZHdlID0gVWMoIndrcyIpLAogICAgICBHTSA9ICFGTSB8fCAhRk1bQmNdIHx8ICFGTVtCY10uZmluZENoaWxkLAogICAgICBqTSA9CiAgICAgICAgaTAgJiYKICAgICAgICAkTShmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBrYygKICAgICAgICAgICAgICBsYSh7fSwgImEiLCB7CiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhKHRoaXMsICJhIiwgeyB2YWx1ZTogNyB9KS5hOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB9KQogICAgICAgICAgICApLmEgIT0gNwogICAgICAgICAgKTsKICAgICAgICB9KQogICAgICAgICAgPyBmdW5jdGlvbiAoZSwgdCwgcikgewogICAgICAgICAgICAgIHZhciBuID0gQjUoZW4sIHQpOwogICAgICAgICAgICAgIG4gJiYgZGVsZXRlIGVuW3RdLCBsYShlLCB0LCByKSwgbiAmJiBlICE9PSBlbiAmJiBsYShlbiwgdCwgbik7CiAgICAgICAgICAgIH0KICAgICAgICAgIDogbGEsCiAgICAgIFdNID0gZnVuY3Rpb24gKGUsIHQpIHsKICAgICAgICB2YXIgciA9IChDaVtlXSA9IGtjKGZhKSk7CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGZ3ZShyLCB7IHR5cGU6IGFkLCB0YWc6IGUsIGRlc2NyaXB0aW9uOiB0IH0pLAogICAgICAgICAgaTAgfHwgKHIuZGVzY3JpcHRpb24gPSB0KSwKICAgICAgICAgIHIKICAgICAgICApOwogICAgICB9LAogICAgICBvZCA9IGZ1bmN0aW9uICh0LCByLCBuKSB7CiAgICAgICAgdCA9PT0gZW4gJiYgb2QoWGMsIHIsIG4pLCBYTSh0KTsKICAgICAgICB2YXIgaSA9IFFNKHIpOwogICAgICAgIHJldHVybiAoCiAgICAgICAgICBYTShuKSwKICAgICAgICAgIEl0KENpLCBpKQogICAgICAgICAgICA/IChuLmVudW1lcmFibGUKICAgICAgICAgICAgICAgID8gKEl0KHQsIFJyKSAmJiB0W1JyXVtpXSAmJiAodFtScl1baV0gPSAhMSksCiAgICAgICAgICAgICAgICAgIChuID0ga2MobiwgeyBlbnVtZXJhYmxlOiBWTSgwLCAhMSkgfSkpKQogICAgICAgICAgICAgICAgOiAoSXQodCwgUnIpIHx8IGxhKHQsIFJyLCBWTSgxLCB7fSkpLCAodFtScl1baV0gPSAhMCkpLAogICAgICAgICAgICAgIGpNKHQsIGksIG4pKQogICAgICAgICAgICA6IGxhKHQsIGksIG4pCiAgICAgICAgKTsKICAgICAgfSwKICAgICAgWDUgPSBmdW5jdGlvbiAodCwgcikgewogICAgICAgIFhNKHQpOwogICAgICAgIHZhciBuID0gbmQociksCiAgICAgICAgICBpID0gTDUobikuY29uY2F0KEpNKG4pKTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgaWQoaSwgZnVuY3Rpb24gKGEpIHsKICAgICAgICAgICAgKCFpMCB8fCBXYyhZTSwgbiwgYSkpICYmIG9kKHQsIGEsIG5bYV0pOwogICAgICAgICAgfSksCiAgICAgICAgICB0CiAgICAgICAgKTsKICAgICAgfSwKICAgICAgaHdlID0gZnVuY3Rpb24gKHQsIHIpIHsKICAgICAgICByZXR1cm4gciA9PT0gdm9pZCAwID8ga2ModCkgOiBYNShrYyh0KSwgcik7CiAgICAgIH0sCiAgICAgIFlNID0gZnVuY3Rpb24gKHQpIHsKICAgICAgICB2YXIgciA9IFFNKHQpLAogICAgICAgICAgbiA9IFdjKHB3ZSwgdGhpcywgcik7CiAgICAgICAgcmV0dXJuIHRoaXMgPT09IGVuICYmIEl0KENpLCByKSAmJiAhSXQoWGMsIHIpCiAgICAgICAgICA/ICExCiAgICAgICAgICA6IG4gfHwgIUl0KHRoaXMsIHIpIHx8ICFJdChDaSwgcikgfHwgKEl0KHRoaXMsIFJyKSAmJiB0aGlzW1JyXVtyXSkKICAgICAgICAgID8gbgogICAgICAgICAgOiAhMDsKICAgICAgfSwKICAgICAgVjUgPSBmdW5jdGlvbiAodCwgcikgewogICAgICAgIHZhciBuID0gbmQodCksCiAgICAgICAgICBpID0gUU0ocik7CiAgICAgICAgaWYgKCEobiA9PT0gZW4gJiYgSXQoQ2ksIGkpICYmICFJdChYYywgaSkpKSB7CiAgICAgICAgICB2YXIgYSA9IEI1KG4sIGkpOwogICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgYSAmJiBJdChDaSwgaSkgJiYgIShJdChuLCBScikgJiYgbltScl1baV0pICYmIChhLmVudW1lcmFibGUgPSAhMCksIGEKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9LAogICAgICBINSA9IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgdmFyIHIgPSBXNShuZCh0KSksCiAgICAgICAgICBuID0gW107CiAgICAgICAgcmV0dXJuICgKICAgICAgICAgIGlkKHIsIGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgICFJdChDaSwgaSkgJiYgIUl0KHE1LCBpKSAmJiBVNShuLCBpKTsKICAgICAgICAgIH0pLAogICAgICAgICAgbgogICAgICAgICk7CiAgICAgIH0sCiAgICAgIEpNID0gZnVuY3Rpb24gKHQpIHsKICAgICAgICB2YXIgciA9IHQgPT09IGVuLAogICAgICAgICAgbiA9IFc1KHIgPyBYYyA6IG5kKHQpKSwKICAgICAgICAgIGkgPSBbXTsKICAgICAgICByZXR1cm4gKAogICAgICAgICAgaWQobiwgZnVuY3Rpb24gKGEpIHsKICAgICAgICAgICAgSXQoQ2ksIGEpICYmICghciB8fCBJdChlbiwgYSkpICYmIFU1KGksIENpW2FdKTsKICAgICAgICAgIH0pLAogICAgICAgICAgaQogICAgICAgICk7CiAgICAgIH07CiAgICBsbyB8fAogICAgICAoKHhpID0gZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChud2UoZmEsIHRoaXMpKSB0aHJvdyBrNSgiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7CiAgICAgICAgdmFyIHQgPQogICAgICAgICAgICAhYXJndW1lbnRzLmxlbmd0aCB8fCBhcmd1bWVudHNbMF0gPT09IHZvaWQgMAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBJNShhcmd1bWVudHNbMF0pLAogICAgICAgICAgciA9IFM1KHQpLAogICAgICAgICAgbiA9IGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgIHRoaXMgPT09IGVuICYmIFdjKG4sIFhjLCBpKSwKICAgICAgICAgICAgICBJdCh0aGlzLCBScikgJiYgSXQodGhpc1tScl0sIHIpICYmICh0aGlzW1JyXVtyXSA9ICExKSwKICAgICAgICAgICAgICBqTSh0aGlzLCByLCBWTSgxLCBpKSk7CiAgICAgICAgICB9OwogICAgICAgIHJldHVybiBpMCAmJiBHTSAmJiBqTShlbiwgciwgeyBjb25maWd1cmFibGU6ICEwLCBzZXQ6IG4gfSksIFdNKHIsIHQpOwogICAgICB9KSwKICAgICAgKGZhID0geGlbQmNdKSwKICAgICAgcmQoZmEsICJ0b1N0cmluZyIsIGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4geDUodGhpcykudGFnOwogICAgICB9KSwKICAgICAgcmQoeGksICJ3aXRob3V0U2V0dGVyIiwgZnVuY3Rpb24gKGUpIHsKICAgICAgICByZXR1cm4gV00oUzUoZSksIGUpOwogICAgICB9KSwKICAgICAgKEQ1LmYgPSBZTSksCiAgICAgIChQNS5mID0gb2QpLAogICAgICAodzUuZiA9IFY1KSwKICAgICAgKGF3ZS5mID0gTjUuZiA9IEg1KSwKICAgICAgKEhNLmYgPSBKTSksCiAgICAgIChjd2UuZiA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgcmV0dXJuIFdNKHo1KGUpLCBlKTsKICAgICAgfSksCiAgICAgIGkwICYmCiAgICAgICAgKGxhKGZhLCAiZGVzY3JpcHRpb24iLCB7CiAgICAgICAgICBjb25maWd1cmFibGU6ICEwLAogICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiB4NSh0aGlzKS5kZXNjcmlwdGlvbjsKICAgICAgICAgIH0sCiAgICAgICAgfSksCiAgICAgICAgWk5lIHx8IHJkKGVuLCAicHJvcGVydHlJc0VudW1lcmFibGUiLCBZTSwgeyB1bnNhZmU6ICEwIH0pKSk7CiAgICBhMCh7IGdsb2JhbDogITAsIHdyYXA6ICEwLCBmb3JjZWQ6ICFsbywgc2hhbTogIWxvIH0sIHsgU3ltYm9sOiB4aSB9KTsKICAgIGlkKEw1KGR3ZSksIGZ1bmN0aW9uIChlKSB7CiAgICAgIHV3ZShlKTsKICAgIH0pOwogICAgYTAoCiAgICAgIHsgdGFyZ2V0OiBhZCwgc3RhdDogITAsIGZvcmNlZDogIWxvIH0sCiAgICAgIHsKICAgICAgICBmb3I6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICB2YXIgdCA9IEk1KGUpOwogICAgICAgICAgaWYgKEl0KGtNLCB0KSkgcmV0dXJuIGtNW3RdOwogICAgICAgICAgdmFyIHIgPSB4aSh0KTsKICAgICAgICAgIHJldHVybiAoa01bdF0gPSByKSwgKEJNW3JdID0gdCksIHI7CiAgICAgICAgfSwKICAgICAgICBrZXlGb3I6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICBpZiAoIVVNKHQpKSB0aHJvdyBrNSh0ICsgIiBpcyBub3QgYSBzeW1ib2wiKTsKICAgICAgICAgIGlmIChJdChCTSwgdCkpIHJldHVybiBCTVt0XTsKICAgICAgICB9LAogICAgICAgIHVzZVNldHRlcjogZnVuY3Rpb24gKCkgewogICAgICAgICAgR00gPSAhMDsKICAgICAgICB9LAogICAgICAgIHVzZVNpbXBsZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgR00gPSAhMTsKICAgICAgICB9LAogICAgICB9CiAgICApOwogICAgYTAoCiAgICAgIHsgdGFyZ2V0OiAiT2JqZWN0Iiwgc3RhdDogITAsIGZvcmNlZDogIWxvLCBzaGFtOiAhaTAgfSwKICAgICAgewogICAgICAgIGNyZWF0ZTogaHdlLAogICAgICAgIGRlZmluZVByb3BlcnR5OiBvZCwKICAgICAgICBkZWZpbmVQcm9wZXJ0aWVzOiBYNSwKICAgICAgICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IFY1LAogICAgICB9CiAgICApOwogICAgYTAoCiAgICAgIHsgdGFyZ2V0OiAiT2JqZWN0Iiwgc3RhdDogITAsIGZvcmNlZDogIWxvIH0sCiAgICAgIHsgZ2V0T3duUHJvcGVydHlOYW1lczogSDUsIGdldE93blByb3BlcnR5U3ltYm9sczogSk0gfQogICAgKTsKICAgIGEwKAogICAgICB7CiAgICAgICAgdGFyZ2V0OiAiT2JqZWN0IiwKICAgICAgICBzdGF0OiAhMCwKICAgICAgICBmb3JjZWQ6ICRNKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIEhNLmYoMSk7CiAgICAgICAgfSksCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6IGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICByZXR1cm4gSE0uZihpd2UodCkpOwogICAgICAgIH0sCiAgICAgIH0KICAgICk7CiAgICBGYyAmJgogICAgICAoKEM1ID0KICAgICAgICAhbG8gfHwKICAgICAgICAkTShmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgZSA9IHhpKCk7CiAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICBGYyhbZV0pICE9ICJbbnVsbF0iIHx8IEZjKHsgYTogZSB9KSAhPSAie30iIHx8IEZjKE9iamVjdChlKSkgIT0gInt9IgogICAgICAgICAgKTsKICAgICAgICB9KSksCiAgICAgIGEwKAogICAgICAgIHsgdGFyZ2V0OiAiSlNPTiIsIHN0YXQ6ICEwLCBmb3JjZWQ6IEM1IH0sCiAgICAgICAgewogICAgICAgICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAodCwgciwgbikgewogICAgICAgICAgICB2YXIgaSA9IG93ZShhcmd1bWVudHMpLAogICAgICAgICAgICAgIGEgPSByOwogICAgICAgICAgICBpZiAoISgoIXJ3ZShyKSAmJiB0ID09PSB2b2lkIDApIHx8IFVNKHQpKSkKICAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgZXdlKHIpIHx8CiAgICAgICAgICAgICAgICAgIChyID0gZnVuY3Rpb24gKG8sIHMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKHR3ZShhKSAmJiAocyA9IFdjKGEsIHRoaXMsIG8sIHMpKSwgIVVNKHMpKSkgcmV0dXJuIHM7CiAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgKGlbMV0gPSByKSwKICAgICAgICAgICAgICAgIFFOZShGYywgbnVsbCwgaSkKICAgICAgICAgICAgICApOwogICAgICAgICAgfSwKICAgICAgICB9CiAgICAgICkpOwogICAgdmFyIEM1OwogICAgZmFbTzVdIHx8CiAgICAgICgoUjUgPSBmYS52YWx1ZU9mKSwKICAgICAgcmQoZmEsIE81LCBmdW5jdGlvbiAoZSkgewogICAgICAgIHJldHVybiBXYyhSNSwgdGhpcyk7CiAgICAgIH0pKTsKICAgIHZhciBSNTsKICAgIGx3ZSh4aSwgYWQpOwogICAgcTVbUnJdID0gITA7CiAgfSk7CiAgdmFyIGo1ID0gRSgoKSA9PiB7CiAgICB2YXIgbXdlID0gVHQoKTsKICAgIG13ZSgiYXN5bmNJdGVyYXRvciIpOwogIH0pOwogIHZhciBlVyA9IEUoKCkgPT4gewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHl3ZSA9IExlKCksCiAgICAgIGd3ZSA9IHRyKCksCiAgICAgIHZ3ZSA9IFNlKCksCiAgICAgIHNkID0gWGUoKSwKICAgICAgYndlID0gcnIoKSwKICAgICAgTXdlID0gTXQoKSwKICAgICAgQXdlID0gWWEoKSwKICAgICAgRXdlID0gRm4oKSwKICAgICAgVHdlID0gaXIoKS5mLAogICAgICBfd2UgPSBzZygpLAogICAgICBSaSA9IHZ3ZS5TeW1ib2wsCiAgICAgIGZvID0gUmkgJiYgUmkucHJvdG90eXBlOwogICAgZ3dlICYmCiAgICAgIE13ZShSaSkgJiYKICAgICAgKCEoImRlc2NyaXB0aW9uIiBpbiBmbykgfHwgUmkoKS5kZXNjcmlwdGlvbiAhPT0gdm9pZCAwKSAmJgogICAgICAoKFpNID0ge30pLAogICAgICAoVmMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHQgPQogICAgICAgICAgICBhcmd1bWVudHMubGVuZ3RoIDwgMSB8fCBhcmd1bWVudHNbMF0gPT09IHZvaWQgMAogICAgICAgICAgICAgID8gdm9pZCAwCiAgICAgICAgICAgICAgOiBFd2UoYXJndW1lbnRzWzBdKSwKICAgICAgICAgIHIgPSBBd2UoZm8sIHRoaXMpID8gbmV3IFJpKHQpIDogdCA9PT0gdm9pZCAwID8gUmkoKSA6IFJpKHQpOwogICAgICAgIHJldHVybiB0ID09PSAiIiAmJiAoWk1bcl0gPSAhMCksIHI7CiAgICAgIH0pLAogICAgICBfd2UoVmMsIFJpKSwKICAgICAgKFZjLnByb3RvdHlwZSA9IGZvKSwKICAgICAgKGZvLmNvbnN0cnVjdG9yID0gVmMpLAogICAgICAoWTUgPSBTdHJpbmcoUmkoInRlc3QiKSkgPT0gIlN5bWJvbCh0ZXN0KSIpLAogICAgICAoSzUgPSBzZChmby50b1N0cmluZykpLAogICAgICAoJDUgPSBzZChmby52YWx1ZU9mKSksCiAgICAgIChRNSA9IC9eU3ltYm9sXCgoLiopXClbXildKyQvKSwKICAgICAgKEo1ID0gc2QoIiIucmVwbGFjZSkpLAogICAgICAoWjUgPSBzZCgiIi5zbGljZSkpLAogICAgICBUd2UoZm8sICJkZXNjcmlwdGlvbiIsIHsKICAgICAgICBjb25maWd1cmFibGU6ICEwLAogICAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIHQgPSAkNSh0aGlzKSwKICAgICAgICAgICAgciA9IEs1KHQpOwogICAgICAgICAgaWYgKGJ3ZShaTSwgdCkpIHJldHVybiAiIjsKICAgICAgICAgIHZhciBuID0gWTUgPyBaNShyLCA3LCAtMSkgOiBKNShyLCBRNSwgIiQxIik7CiAgICAgICAgICByZXR1cm4gbiA9PT0gIiIgPyB2b2lkIDAgOiBuOwogICAgICAgIH0sCiAgICAgIH0pLAogICAgICB5d2UoeyBnbG9iYWw6ICEwLCBmb3JjZWQ6ICEwIH0sIHsgU3ltYm9sOiBWYyB9KSk7CiAgICB2YXIgWk0sIFZjLCBZNSwgSzUsICQ1LCBRNSwgSjUsIFo1OwogIH0pOwogIHZhciB0VyA9IEUoKCkgPT4gewogICAgdmFyIFN3ZSA9IFR0KCk7CiAgICBTd2UoImhhc0luc3RhbmNlIik7CiAgfSk7CiAgdmFyIHJXID0gRSgoKSA9PiB7CiAgICB2YXIgT3dlID0gVHQoKTsKICAgIE93ZSgiaXNDb25jYXRTcHJlYWRhYmxlIik7CiAgfSk7CiAgdmFyIG5XID0gRSgoKSA9PiB7CiAgICB2YXIgeHdlID0gVHQoKTsKICAgIHh3ZSgiaXRlcmF0b3IiKTsKICB9KTsKICB2YXIgaVcgPSBFKCgpID0+IHsKICAgIHZhciBDd2UgPSBUdCgpOwogICAgQ3dlKCJtYXRjaCIpOwogIH0pOwogIHZhciBhVyA9IEUoKCkgPT4gewogICAgdmFyIFJ3ZSA9IFR0KCk7CiAgICBSd2UoIm1hdGNoQWxsIik7CiAgfSk7CiAgdmFyIG9XID0gRSgoKSA9PiB7CiAgICB2YXIgSXdlID0gVHQoKTsKICAgIEl3ZSgicmVwbGFjZSIpOwogIH0pOwogIHZhciBzVyA9IEUoKCkgPT4gewogICAgdmFyIEx3ZSA9IFR0KCk7CiAgICBMd2UoInNlYXJjaCIpOwogIH0pOwogIHZhciBjVyA9IEUoKCkgPT4gewogICAgdmFyIE53ZSA9IFR0KCk7CiAgICBOd2UoInNwZWNpZXMiKTsKICB9KTsKICB2YXIgdVcgPSBFKCgpID0+IHsKICAgIHZhciB3d2UgPSBUdCgpOwogICAgd3dlKCJzcGxpdCIpOwogIH0pOwogIHZhciBsVyA9IEUoKCkgPT4gewogICAgdmFyIFB3ZSA9IFR0KCk7CiAgICBQd2UoInRvUHJpbWl0aXZlIik7CiAgfSk7CiAgdmFyIGZXID0gRSgoKSA9PiB7CiAgICB2YXIgRHdlID0gVHQoKTsKICAgIER3ZSgidG9TdHJpbmdUYWciKTsKICB9KTsKICB2YXIgcFcgPSBFKCgpID0+IHsKICAgIHZhciBxd2UgPSBUdCgpOwogICAgcXdlKCJ1bnNjb3BhYmxlcyIpOwogIH0pOwogIHZhciBkVyA9IEUoKCkgPT4gewogICAgdmFyIHp3ZSA9IFNlKCksCiAgICAgIEZ3ZSA9IGdpKCk7CiAgICBGd2UoendlLkpTT04sICJKU09OIiwgITApOwogIH0pOwogIHZhciBoVyA9IEUoKCkgPT4gewogICAgdmFyIGt3ZSA9IGdpKCk7CiAgICBrd2UoTWF0aCwgIk1hdGgiLCAhMCk7CiAgfSk7CiAgdmFyIG1XID0gRSgoKSA9PiB7CiAgICB2YXIgQndlID0gTGUoKSwKICAgICAgV3dlID0gU2UoKSwKICAgICAgVXdlID0gZ2koKTsKICAgIEJ3ZSh7IGdsb2JhbDogITAgfSwgeyBSZWZsZWN0OiB7fSB9KTsKICAgIFV3ZShXd2UuUmVmbGVjdCwgIlJlZmxlY3QiLCAhMCk7CiAgfSk7CiAgdmFyIGdXID0gRSgocnR0LCB5VykgPT4gewogICAgRWcoKTsKICAgIExmKCk7CiAgICBHNSgpOwogICAgajUoKTsKICAgIGVXKCk7CiAgICB0VygpOwogICAgclcoKTsKICAgIG5XKCk7CiAgICBpVygpOwogICAgYVcoKTsKICAgIG9XKCk7CiAgICBzVygpOwogICAgY1coKTsKICAgIHVXKCk7CiAgICBsVygpOwogICAgZlcoKTsKICAgIHBXKCk7CiAgICBkVygpOwogICAgaFcoKTsKICAgIG1XKCk7CiAgICB2YXIgWHdlID0gTHMoKTsKICAgIHlXLmV4cG9ydHMgPSBYd2UuU3ltYm9sOwogIH0pOwogIHZhciBlQSA9IEUoKG50dCwgdlcpID0+IHsKICAgIHZXLmV4cG9ydHMgPSB7CiAgICAgIENTU1J1bGVMaXN0OiAwLAogICAgICBDU1NTdHlsZURlY2xhcmF0aW9uOiAwLAogICAgICBDU1NWYWx1ZUxpc3Q6IDAsCiAgICAgIENsaWVudFJlY3RMaXN0OiAwLAogICAgICBET01SZWN0TGlzdDogMCwKICAgICAgRE9NU3RyaW5nTGlzdDogMCwKICAgICAgRE9NVG9rZW5MaXN0OiAxLAogICAgICBEYXRhVHJhbnNmZXJJdGVtTGlzdDogMCwKICAgICAgRmlsZUxpc3Q6IDAsCiAgICAgIEhUTUxBbGxDb2xsZWN0aW9uOiAwLAogICAgICBIVE1MQ29sbGVjdGlvbjogMCwKICAgICAgSFRNTEZvcm1FbGVtZW50OiAwLAogICAgICBIVE1MU2VsZWN0RWxlbWVudDogMCwKICAgICAgTWVkaWFMaXN0OiAwLAogICAgICBNaW1lVHlwZUFycmF5OiAwLAogICAgICBOYW1lZE5vZGVNYXA6IDAsCiAgICAgIE5vZGVMaXN0OiAxLAogICAgICBQYWludFJlcXVlc3RMaXN0OiAwLAogICAgICBQbHVnaW46IDAsCiAgICAgIFBsdWdpbkFycmF5OiAwLAogICAgICBTVkdMZW5ndGhMaXN0OiAwLAogICAgICBTVkdOdW1iZXJMaXN0OiAwLAogICAgICBTVkdQYXRoU2VnTGlzdDogMCwKICAgICAgU1ZHUG9pbnRMaXN0OiAwLAogICAgICBTVkdTdHJpbmdMaXN0OiAwLAogICAgICBTVkdUcmFuc2Zvcm1MaXN0OiAwLAogICAgICBTb3VyY2VCdWZmZXJMaXN0OiAwLAogICAgICBTdHlsZVNoZWV0TGlzdDogMCwKICAgICAgVGV4dFRyYWNrQ3VlTGlzdDogMCwKICAgICAgVGV4dFRyYWNrTGlzdDogMCwKICAgICAgVG91Y2hMaXN0OiAwLAogICAgfTsKICB9KTsKICB2YXIgckEgPSBFKChpdHQsIE1XKSA9PiB7CiAgICB2YXIgVndlID0gWTEoKSwKICAgICAgdEEgPSBWd2UoInNwYW4iKS5jbGFzc0xpc3QsCiAgICAgIGJXID0gdEEgJiYgdEEuY29uc3RydWN0b3IgJiYgdEEuY29uc3RydWN0b3IucHJvdG90eXBlOwogICAgTVcuZXhwb3J0cyA9IGJXID09PSBPYmplY3QucHJvdG90eXBlID8gdm9pZCAwIDogYlc7CiAgfSk7CiAgdmFyIE9XID0gRSgoKSA9PiB7CiAgICB2YXIgQVcgPSBTZSgpLAogICAgICBUVyA9IGVBKCksCiAgICAgIEh3ZSA9IHJBKCksCiAgICAgIEhjID0gcWcoKSwKICAgICAgbkEgPSBRYSgpLAogICAgICBfVyA9IGd0KCksCiAgICAgIGlBID0gX1coIml0ZXJhdG9yIiksCiAgICAgIEVXID0gX1coInRvU3RyaW5nVGFnIiksCiAgICAgIGFBID0gSGMudmFsdWVzLAogICAgICBTVyA9IGZ1bmN0aW9uIChlLCB0KSB7CiAgICAgICAgaWYgKGUpIHsKICAgICAgICAgIGlmIChlW2lBXSAhPT0gYUEpCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgbkEoZSwgaUEsIGFBKTsKICAgICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgICAgZVtpQV0gPSBhQTsKICAgICAgICAgICAgfQogICAgICAgICAgaWYgKChlW0VXXSB8fCBuQShlLCBFVywgdCksIFRXW3RdKSkgewogICAgICAgICAgICBmb3IgKHZhciByIGluIEhjKQogICAgICAgICAgICAgIGlmIChlW3JdICE9PSBIY1tyXSkKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgIG5BKGUsIHIsIEhjW3JdKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgICBlW3JdID0gSGNbcl07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9OwogICAgZm9yIChjZCBpbiBUVykgU1coQVdbY2RdICYmIEFXW2NkXS5wcm90b3R5cGUsIGNkKTsKICAgIHZhciBjZDsKICAgIFNXKEh3ZSwgIkRPTVRva2VuTGlzdCIpOwogIH0pOwogIHZhciBDVyA9IEUoKHN0dCwgeFcpID0+IHsKICAgIHZhciBHd2UgPSBnVygpOwogICAgT1coKTsKICAgIHhXLmV4cG9ydHMgPSBHd2U7CiAgfSk7CiAgdmFyIFJXID0gRSgoKSA9PiB7CiAgICB2YXIgandlID0gVHQoKTsKICAgIGp3ZSgiYXN5bmNEaXNwb3NlIik7CiAgfSk7CiAgdmFyIElXID0gRSgoKSA9PiB7CiAgICB2YXIgWXdlID0gVHQoKTsKICAgIFl3ZSgiZGlzcG9zZSIpOwogIH0pOwogIHZhciBMVyA9IEUoKCkgPT4gewogICAgdmFyIEt3ZSA9IFR0KCk7CiAgICBLd2UoIm1hdGNoZXIiKTsKICB9KTsKICB2YXIgTlcgPSBFKCgpID0+IHsKICAgIHZhciAkd2UgPSBUdCgpOwogICAgJHdlKCJtZXRhZGF0YSIpOwogIH0pOwogIHZhciB3VyA9IEUoKCkgPT4gewogICAgdmFyIFF3ZSA9IFR0KCk7CiAgICBRd2UoIm9icw=="}},"time_used":364,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":352,"receive":12,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/63344e721a6dea6984b9f989_social-icon-font.woff2","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.467Z","timestamp":1785139285467,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/63344e721a6dea6984b9f989_social-icon-font.woff2 HTTP/1.1\r\nHost: cdn.prod.website-files.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mobichain.co/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: application/octet-stream\r\ncontent-length: 11928\r\nx-amz-id-2: j3fVlO7z9XHADGawuoiQ0iTKXn5kv3DgfHjFTGXed0tlPXDN9VxetuMUx+L64PCwYmQaE04mlPw=\r\nx-amz-request-id: H8C85GFJHS7Z6K5D\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, HEAD\r\naccess-control-max-age: 3000\r\nvary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method\r\nlast-modified: Wed, 28 Sep 2022 13:38:59 GMT\r\netag: \"bb7d167ca6141288058a6f252d9bf89c\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: a_X9c8XSDMGVp5eDJbc8lWVnGlPWskC1\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 12904633\r\ncf-cache-status: HIT\r\ncf-ray: a21a1db62b14a0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":11928,"size_decoded":12761,"mime_type":"application/octet-stream","magic":"Web Open Font Format (Version 2), TrueType, length 11928, version 1.0","md5":"bb7d167ca6141288058a6f252d9bf89c","sha1":"9adcd50f8dac479d8526ec0a2a27b58e6ab2f3f9","sha256":"4a38c929a6941066f77be614925fef3db63aa3398884e443dd37b5faaf02c57e","sha512":"bb282603fab2ca0c4b73b700798331c5779ed0d69bbf277240c4e9ff64afe4958b4419dbad405e65aa098a15c3334018c46e70915a96c6698c215f27a9109c72","ssdeep":"192:hUkp1wisJsdBt+g/s8I3jtmOR91lOt6qOnFFBVk+ydIZ4M/7v1K9FO5lNbdzJFsS:hf1wZadPDs8I3jRt0t6bFDkdeLjcv4Np","tlshash":"3132bfce04315a52e2e201f5a564d2437c72ddb47a81a95cfa0c6738dbf1c28bf52e6a","first_seen":"2023-04-27T10:43:08Z","last_seen":"2026-07-27T08:02:19.583887Z","times_seen":124,"resource_available":false,"data":"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"}},"time_used":7,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":7,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/6335ae9869e9bc1a3cee9535_Icon%20Monthly%20%26%20weekly.png","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.207Z","timestamp":1785139285207,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/6335ae9869e9bc1a3cee9535_Icon%20Monthly%20%26%20weekly.png HTTP/1.1\r\nHost: cdn.prod.website-files.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://mobichain.co/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: image/png\r\ncontent-length: 7324\r\nx-amz-id-2: EaKS/YQ4GcEw0CFmKdH7VCzXJ+pxWyc7OChb7xsuk4QmCtkyply+xRbOeNNbF4kyOP58kCiPjFsTLH91NBsWA4yDBaO/6kaI\r\nx-amz-request-id: ZWHNW2N7F79Y196Q\r\nlast-modified: Thu, 29 Sep 2022 14:41:30 GMT\r\netag: \"449cfb7850a2887f67ad15a615a74e55\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: LACUYuHNawrdYO4F.Z0Dd05HKUqO78Yp\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 12447597\r\ncf-cache-status: HIT\r\naccess-control-allow-origin: *\r\ncf-ray: a21a1db49d7ca0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":7324,"size_decoded":8010,"mime_type":"image/png","magic":"PNG image data, 181 x 180, 8-bit colormap, non-interlaced","md5":"449cfb7850a2887f67ad15a615a74e55","sha1":"b9ae2b8d00bfc65f9c3786ff4af94403a6daf270","sha256":"03d9aa11ea9f48ac7adcde024617826fc733514ce87b4b508165cb86cbf0668c","sha512":"659c5754e038e850bbbf38136ba38dfe5ca9dffc1a0ca60918ca6e5da418e3d7b6c1e312f3438e7f9bcc99e5cc181c1949934ac62be24ea27767342e435828c1","ssdeep":"192:UUKKkkwdLejxRtUelu0cyMrVm/d/Y+OtpD:JbwdLsxZcFoO+2","tlshash":"c5e1aebe078d08e7f6ee670b021bbd89cb8b4505cb82b3c7128af9561d524e60c573d2","first_seen":"2026-07-25T05:39:21.869493Z","last_seen":"2026-07-27T08:02:19.588953Z","times_seen":5,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/pooll.png","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.211Z","timestamp":1785139285211,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /pooll.png HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\nserver: cloudflare\r\nlast-modified: Mon, 25 Aug 2025 08:56:42 GMT\r\naccept-ranges: bytes\r\nserver-timing: cfExtPri\r\ncontent-type: image/png\r\ncache-control: max-age=14400\r\ncf-cache-status: REVALIDATED\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=DVF6SgVZZdpg22TSqoSxtvIUz3tIGapXgvX%2B1a%2Bg%2BDX%2Bdvrj0wUYgTXdTNHteGzRpjBtm6lhIURZi8adBAd%2B%2FfMitjdsgh9yrJ3uEsRhzQA90Hm55ME0r87A8%2FiWs0A%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=5,i\r\ncf-ray: a21a1db498122efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 194614\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"]}],"data":{"size":194614,"size_decoded":195292,"mime_type":"image/png","magic":"PNG image data, 1290 x 2796, 8-bit/color RGB, non-interlaced","md5":"9a6938d9c04b91172f3060eac20f89db","sha1":"ccc40464ab8eb8a34ee380d14094a21f3adaefa8","sha256":"68a02319d29ab1005ef9aa12e49395cac6476b7ccc8263820613ffe1ec951b2f","sha512":"7f08c11b25dddf4e2c378b103858efccd35f507052db1a7742c31a6742593f34227460d4588befcff1d1210cefdb391abd313d102654e8b9a4f91f828498b534","ssdeep":"3072:oH+b686hn50W5jI5R1KErOeqIqxZjOiyMUg2t9qO:om686te11KRNLaiyF9qO","tlshash":"f514e412db272037b19928007222749b95622c73b044dd1aabd776ffbb23fb0ad71e55","first_seen":"2026-07-25T05:39:21.878831Z","last_seen":"2026-07-27T08:02:19.594845Z","times_seen":5,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAABQoAAArsCAIAAAAXalN5AAAAAXNSR0IArs4c6QAAAI5lWElmTU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAABZADAAIAAAAUAAAAaJKGAAcAAAASAAAAfKABAAMAAAABAAEAAKACAAQAAAABAAAFCqADAAQAAAABAAAK7AAAAAAyMDI1OjA4OjI1IDA5OjU2OjQyAEFTQ0lJAAAAU2NyZWVuc2hvdKZUQwEAAAHvaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAgICAgICA8cGhvdG9zaG9wOkRhdGVDcmVhdGVkPjIwMjUtMDgtMjVUMDk6NTY6NDI8L3Bob3Rvc2hvcDpEYXRlQ3JlYXRlZD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CuKxjkAAAEAASURBVHgB7N0J3H3VvD/wkCQJlQazpNJIo9KgklRIaFJJKhmKkCaSKN0rVEpREemv1G0iMqS6KQ1Iki5dkdxyQ6ZriOL+P+659t3t6Zzn/J5zfud5nvfz6sXa66y99trvfX7nnO9ea6+1wAL+CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE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CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE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rb+UxcOCPI0XrneIoasVHtevkRwCBAgQGIfARMV4WZeifBf8qU996jgIhj3GRNENexL2I0BgsgQe//jH10OdPGY8YCsz+iaTclVqyIdVfffXve51qbb423PPPYsyq6+++rvf/e4LL7wwndiJzC+99NLllluueLWeWHrppffee+9TTjnl8ssv//Of/5yj33bbbenA/Od//ucs1zxEMJlpyTI8+F3velcWcy6+FFLzNddck3sH22+//ROe8IR6M4qcnEtxXmlJRaN4qZfoG0bmOfANN9zwve9977nnnls85p2o+2Mf+9hrX/vaXK/iuPOeGC48bnxS/Q1veEPf9mSQ9r777psTydzevQsX7UsuuSTLRO20006LL7543xoaC0xLtcLjRluZBAgQIDBygcmJ8bIMSfEzKL9m8kNkuL6CkZP94wCTQ/ePFvl/AgRmvEDGylbCuVtuueUxj3nM4Cd26KGHVmpIrFvfvfKscqb7SpksJXX00UdXds9mWwyZMDVxY0Lo+i5FTlaZSqw1YLdk+mYzGryIQotK6olMS9b2DE7OpV6+LWebbbap4/Ry0ubtttsudwfa9u3lH3vssU9+8pPbKplS/nDhcQ6x++67VxqZ69hx6MzZlqi4sktlM/dZjjrqqGWWWaajnspL01it8Lhia5MAAQIExiQwITHeuuuue9dddxXfzel2mNLPwTFhPfAwE0L3wEbZIkBgZgt84hOfKD4Je4mpPjyccTeVGhKg1qPTxvA4U39V9u1tNobHz3rWs2688cbG8vXMjPpeZJFFuq9NHp/+3Oc+V9+3LSfn1dh5Oy3hcRYQPuKII9oOXcnPLYxpWWh66PB4k002qTQpM583auedkFsw3Xc0ylV985vfXGuttRqrKmdOe7XC4zKvNAECBAiMT2ASYrx11lmnPA/NBRdcMPSYrvHBLbDAJNCN83wdiwCBUQsstdRS5cikl15llVWmetw111wz0Vr5L+NvK5XUw+O11167fvReTj08zlzZ9VHcbbv38j/zmc90LMmbyZkzdrq7hvqrF110UTqcK6c27+Fx2lm/T1E/ejkng5O33HLLSkumujl0eLziiiuWG5N0xks3Hv3ggw+ulOy7mVi676lNe7XC48bLJ5MAAQIERi4w32O83JYux8Z52i0/kkZ+2tNxgPlONx0noQ4CBCZIIPMvVGKVm2++uR7Z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gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABArNE4EEPetAsOZN5Pg0U80yoAgIECBAgQIAAAQIECMxAgWc/+9kf//jHb7/99ssvv/yggw561KMeNQNPYnqajGJ6HNVCgAABAgQIECBAgACB+S6wxBJLLFX7W3zxxdsatsMOO/z3A/+uvPLKxzzmMW3lZ3H+lCgWXnjhGvPfMx72sIc1Ek21fGMlMqdF4CEPeUjjtVt00UWnpX6VECBAgAABAgQmV8A4ycm9NjOkZTPrLfTFL37xgdHu37c++clPNmI/4QlPuPvuu+vljzjiiMbyszhzqhTPe97z6m7JWXfddRuVplq+sRKZ0yKw9NJLN167ffbZZ1rqVwkBAgQIECBAYFIEHvrQh2600Ua77757xoiecMIJF1988V133XXTTTede+65xx57bDK32WabuTx2dFKu0wS3Y8EFF3zWs5617777fuADHzjzzDOvuuqq3/3udzfffPNFF1300Y9+9N3vfvd22223zDLLTOwZTCk8fuELX9gYJ+R8J+GmQHpi0+na+8s/20f/4+/hD3/4P7If8P8pP3Szp0ox1XB3quUHf4PllAuFyPwD6dERK/LLiYUWWmjwymdlSeHxrLysTooAAQIECBB4gEAGy7361a+++uqrG3/ulzPvueee97///ZtvvnmG2D2gChtzWyD9h4ceeuiNN95Yfre0pc8+++zEyRP4FppSeLzrrrs2nuCf//zntkHC43yPNJ5LY4OLzHSGX3bZZZ/61KcOO+ywzTbbbLHFFhuwwVOlmGq4O9XyAzY7xdqCvcKknsib/DOf+Uw+Bl/zmtcst9xygx9rdpRsE9N7PDuur7MgQIAAAQJzXSC9JUcddVS6+Oq/ArtzPv3pTz/96U+f63zOf4EF0re25557ZqBB9xum/uo555yz+uqrTxRhY0jZNrg6M1HVTyo5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kIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhg1RB42ctetmrSakJXNQGLOtkvhFX9DZh4CUhAAgWBV77yla973ete9apXFfY+SkACy4HAm9/85gte+ltrrbWWQ5TmPQ477rhjInrCCSfUadl+++1vueWWBx54YJ999ql/1UYCK4nA+973vkceeeSGG27Ycsstp0nX+eefn76pTTfddBp/Br776le/epdddvnQhz50xRVX/NVf/RXx33rrrQe+WzjDq9NPP/2pp5666KKL3vCGNxS/zt3jeuut91JzccEKSM7c8TfCEpDAHBNYf/31DzzwwGuuueab3/zmiy/90Txce+212KOW5zhtRl0CK4sA3c2XvtEX6fqsrMQtTWre//73J6R33HFHEQMmkR588MH0609+8pPXvva1hQMfJbBiCDD09utf/zqV9ttuu22adD3//PPJH1TrNP4Mefc1r3nNddddl4KLf9/73vcOebd2s/fee4cnJ554Yu1gvmze+MY3RnLe8Y53zFfkja0EJCCBpSHAXPGRRx75ox/9KCrQ2vDss88eeuihr3jFK5YmioYqAQlkBJTHGYzZGBvyeN111/3pT38ateLmm28+myD1RQLLj8C73/3uKOrf/e536R5MHMdFk8esdPvsZz8b0cbwt3/7t1/5yld22223ySJ//PHHh2/MRU/myfJ5S3m8fPLCmEhAAvNBgEVErEGKlqBtuOqqq3C/cAmjYb7zpb8FDWjhkqDPElgEAtPLY7+1Ipsa8hiXH/vYx1LdyBLr4sX0ePnll6eqC386HWgpgbkg8PKXv/z+++9Ppb1zowGpGFjaF00eb7XVVtF14VNlPGtK1G9961vThAET6TvttNOUvi3568rjJc8CIyABCcwTARYNMjIa7QrrBk866STWI2200UY0MO985zv33HPP00477YUXXgg3n/rUpxYuhXvssUcExFqphQtInyUw1wSml8d+a0UBaMtjHLOPkTWiiIfixfQYioJ5p04HWkpgXggwY8y862abbdYX4YGlfdHkMZulU8/h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IAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIIGVQOBlL3vZm9/85rXWWmslJMY0SEACEpCABCQgAQlIQAISkMAyJ/Ca17zm9dnfOuussxwivNVWWz3zzDP/8z//85e//OW8885DKk8fq3XXXTdL6Otf/epXT++nPkhAAhKQgAQkIAEJSEACEpDACiHwwQ9+EBUaf5/97GeXPGEo9ueffz6ihOHQQw+dPlY33HBD7ucRRxwxvZ/6IAEJSEACEpCABCQgAQlIYIUT2GKLLS7+v78QVOkx//eCCy444YQTDjzwwM0222x+cUwvj0855ZQcy2Tm97///cFwu+22C+zJcMstt8SvExuUxxOj80UJSEACEpCABCQgAQlIYPUS2GeffQqF1n58/PHH0ZmveMUr5g7Z9PL4qaeeasMZ8ms+a73JJpsUr1x11VXTg1UeT89QHyQgAQlIQAISkIAEJCCBVUdgXHmc5NyDDz7IaVLzBWsZymMA3nbbbaGQ//SnP2255ZadVO+///4Xsr+99tqr01myVB434PiTBCQgAQlIQAISkIAEJCCBbgKTyWMU3c9+9rM3velN3Z4uS9vlKY85N+v0009nuOHGG2/ceuut+8g9+eSToaIx7L///n0usVceN+D4kwQkIAEJSEACEpCABCQggW4CtTy+/f//+/KXv/zP//zPuTYL80MPPTRHq6ynl8d33HHH0z1/v/3tbwMLhl/+8pc9Dp9mI3d3TjRtlcdNPP4oAQlIQAISkIAEJCABCUhgagKFPP7FL37R6eVrX/vas8466w9/+EMuAjHP0anI08vjTjLJEuWckzn77LMbjif4SXk8ATRfkYAEJCABCUhAAhKQgAQkMAaBgfI4+cglveyPzXXg17/+9TECW1KnyuMlxW/gEpCABCQgAQlIQAISkIAEljeBseQxSTnttNNyeYyZ45cbSVx33XUPP/zwT3ziE7feeuvXvvY1Ntled911TK7uuOOOL3vZyxovdv701re+9cQTT7zsssvuuuuuJ5544p577rniiitOPfXUjTfeuNN9brk85fGaNWu46zj+8u3cHH4W9sX1yJ/+9KfjJwyvetWr8pROsPeYTCRnOTf7gQceIJtuvvnmiy66iKu8Cp/zUDRLQAISkIAEJCABCUhAAhJYUQTGlcdotkIe77333p1E3vjGN6Jdi025+bvPPPMMknWgSN5mm23uvPPO//7v/859yM3skd5ll106Y5Isl6c8LlZN77TTTpGE3XffPU9gw/y6170u3sIwljzefvvtGWXo8/znP//5mWeeqUjO8WqWgAQkIAEJSEACEpCABFYmgXHlMWr2xRdfzNXU0UcfXaPZbrvt/umf/il31me+6aab1l577dqH3IYdzn/84x/7fAh7xPPJJ5/cp7eVxznSZD7ssMOK1fIBMzdwBtv6669fv66NBCQgAQlIQAISkIAEJCCBlUNgXHlMypn1zbUTa5sLHEyBDhFd4cljjz3WmJ885ZRTwuUQw8UXX1zEJz0qjwssJ5xwwhCeyc0PfvCDddZZp/DBRwlIQAISkIAEJCABCUhAAiuHwLjyGB375z//OZdVH/jAB3IcbDb+8Y9/nDvAzHbWD3/4w3vuuedBBx10/vnnF/PPOOg76pmrgIvgcMzOWOaT3/ve97Ltlp3Mf/nLX4rgdttttzxKyTx38nijjTb66Et/L7zwQp5GCLz0y//+/5rXvCZP75DF1ZtvvnkxhMFF1ldeeeUBBxzAOvbjjz/+7rvvLsiz5TsPRbMEJCABCUhAAhKQgAQkIIEVRWBceYysynUa5l133TUn8qlPfapwcM455xQLnl//+tc/99xzuTMk7pZbbpn7g/nlL3/5d77zndwZy6f32GOPwhkLuQulx7ruQjHyytzJ4zyZxRbl/fffP/+1MI+Ux2QHR47nYMmON7zhDYU/Rx55ZO4G8w477FC48VECEpCABCQgAQlIQAISkMAKITCWPEZWMamYSyZuQs7PhVprrbWKs7jYtvqKV7yihrXtttsWmpbTrQtnnG6dh4W5b5L5uOOOK1zuu+++hW/K4wDCgEKOi8n8TTfdNH7NDZxfnbvkrLX8V80SkIAEJCABCUhAAhKQgARWDoHh8viVr3wlhxjnYgkza5tzFsxq5g7+8z//k5Oucwe5+aSTTsodc0hyIaQvvfTS3MFXv/rVwkH4Vuv2z3/+8/FrMiiPA8iFF16Yg2V3d/xUGMh0RkDC8W9+85vGLvHiXR8lIAEJSEACEpCABCQgAQnME4FCHjOjyznS+R9rbrn7h12+Tz/9dMikZGCpM5PAeWo/85nP5G7uu+++/NfCzF27uWPMzGrmboqzr+szwHLHxUrg3//+94WWVh4HrmJzeOdW7XDMvvE8m4o8CmcaJCABCUhAAhKQgAQkIAEJzDeBQh7nQmikudarLKXO3+o7RDohq0/5yrfU8mvuFWai2mBdr8Tm4uXcvfI40WBCuAB7zDHHsBa976+4UqudCzlwzRKQgAQkIAEJSEACEpCABOaJwMTymIni4sAtkv3ss8/m0gtF2mbx1FNP5e7RaeGeVdn5T5jf+c53xq+1gVnuwv0WW2yRO1MeJxobbLBBAWqsx6OOOiqnqlkCEpCABCQgAQlIQAISkMAKITCBPP7d7353+OGHd6afn3KttfPOO3c6C8ubbropd5+fvLXVVlvlP7GQe+SuV3bG5q8Ua4aVxwl7ATYnNsR8xhlnRPZpkIAEJCABCUhAAhKQgAQksHIIDJfH3IL7+OOPM8HLtUx96f/FL36RS6w1a9b0uUz29957b+7+tNNOC/fMFec/Yc6PyA5nYWCncXEUNsut41cMyuNEg0OqC7BjPXI8W05VswQkIAEJSEACEpCABCQggRVCoJbH21R/3Ej8pje9iVuIR6b5m9/8Zq61OJu6/crPfvaz3H0+KY0Iz3/CzAlhDd822mijwj02uXvlcaJRg8XmtYP/6gulc8iaJSABCUhAAhKQgAQkIAEJzCuBQh4z/TtNSopbkdmf3PANRVYI2j333DPcs7G5mA3m9Oz4tTbstddehW/rrbde7kx5nGjUYItxhByaZglIQAISkIAEJCABCUhAAquFwGzl8XnnnZdr1CeeeKLBkdng3DHmt73tbbn7xx57LHdwwQUX5L8W5uIW5b//+78vHCiPA0gB9oADDoifNEhAAhKQgAQkIAEJSEACElilBGYrj7feeutc0GLeb7/9OsmyVPtLX/pS7virX/1q4fL444/PHbz44ovveMc7CjfpkWOrX3jhhdzxueeeW7hcSfK4fXz0DTfckKM44ogjChQF2M997nOFg/yRSfi3vOUtb33pz8XVORzNEpCABCQgAQlIQAISkMDKITBbeczC3eJup//4j/8o5oQTO+5MziUc5mOPPbbAiiIr3DDtWZ9fTaDFEV+8xfnMhW9zLY+LoYTrrruuSF3+OFIe12BPPvnk3Icwsy35xz/+ceTCH/7wh/XXXz9+1SABCUhAAhKQgAQkIAEJSGDlEJitPIbLwQcfHGoqGVhizWlfgQx9e/TRR//lL3/JnT3//PPrrrtuuAnDFVdckTvDfP3113MlcjhArV122WWFm9tuuy0chGGu5fGll16ap5FrrhhNQLuSOo7sZoAgkolhpDzGTQ02PAyvdtlll6effjoP9/LLL49fNUhAAhKQgAQkIAEJSEACElhRBGYuj6FT3Gac9NUzzzxzxx13PPTQQ7/61a9yxZXMKLFOrOuss85zzz1XuOfILiT3F77wha997Wu///3vi1//7d/+jbXWtW9zLY8ZUCiSmR7T6WVJJ0eSh8hjwLI9u/bzySefRIrfeuutxSoAXHLMONPOEYoGCUhAAhKQgAQkIAEJSEACK4rAQshjLih+9NFHa+nVacNE6Iknnthgyn7m4v6nTn+SJWu5d955507f5loedw4TBIcJ5DGImNIvNmyHh7UBsJtvvnknWC0lIAEJSEACEpCABCQgAQmsBAILIY/hwgrqevluLbp+85vf7LHHHiM5cuvy3/zN39SvFzbf+ta3Ntxwwz7f5loek6gddtjhl7/8ZZHk9DiZPMZPlqkXp1h3+v/www/Xe7n7OGsvAQlIQAISkIAEJCABCUhgLgkskDxOLLbbbjtE8m9/+9tadH33u9/l/ORC1zUIssN2zZo1d955J7PNtW8PPPDAQQcd9OpXv7rhw7zLY5K29tprH3fccYwU/OQnP4nN2xzozQ3SecKHLK4O96985Sv33Xffe+65p6bKym1WAeSXUcdbGiQgAQlIQAISkIAEJCABCUhgbAJrrbXWpptuuvvuux966KEHHnggs6CcZV2cJjXcUxQ1M5l777039xWh7Vkh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FFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEF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UxXDR4E/85nPvPjFL37Ywx5WFrhvmh+grn77mkzoLafRJHLYWuExBX7kIx95xhln0Bbwk5/8JI8lWl4636/et4HOV0ABBRRQQAEFFFBAAQX+R4BoipHGjLMlqDvhhBPo3SUqHt+V+j8ZFVMMNuYVVsNDsunl23///Qnk6Ank/V7F0k4uRgBh3pHGe7ZOPPFE3k9O+0Xnk8YTV8bxwC9mM9yanTX/sTFxdTMk4BjmxWMEzDMs6yIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACwwLb/fHfDsW/J/lPAQUUUEABBRRQQAEFFFBgtECGU9v/8d9wCOa3m06AoDh24eg9bkIFFFBAAQUUUEABBRRQQIGxAobKmy4MrgoUUfHY/Wk6BRRQQAEFFFBAAQUUUECB+QSMk6uwdOt/ZJfQXTzfbnVpBRRQQAEFFFBAAQUUUECBGQUIyrZ+ZLjmJbDHeMaD18UUUEABBRRQQAEFFFBAgUULGCRvnQjdwHjRR7L5KaCAAgoooIACCiiggALzCjCw1yB5qUEy3PPuNJdXQAEFFFBAAQUUUEABBRTYGAEj5CVFyD5mvDEHsLkqoIACCiiggAIKKKCAAgsTMELe2AiZAdUL21dmpIACCiiggAIKKKCAAgoosMECBskbEiQ7oHqDj1uzV0ABBRRQQAEFFFBAAQUWL2CEvOAI2dh48QepOSqggAIKKKCAAgoooIACSxEwQl5YhGxsvJQj1pUooIACCiiggAIKKKCAAhslYIS8gAjZ2HijDk/zVUABBRRQQAEFFFBAAQWWKMDLpBYQIq5zFkvcWa5KAQUUUEABBRRQQAEFFFBgAwXWObadd9vtOt7AA9OsFVBAAQUUUEABBRRQQIHlCvAzvfNGieu5vLHxcg9U16aAAgoooIACCiiggAIKbLiADyFPHeAbG2/4UekKFFBAAQUUUEABBRRQQIGtIeBDyNNFyPS5b43d5DoVUEABBRRQQAEFFFBAAQU2VsAh1lOEx3Ydb+zBaO4KKKCAAgoooIACCiigwFYVsAN5bIS8VXeTK1dAAQUUUEABBRRQQAEFFNhYATuQR4XHdh1v7GFo7goooIACCiiggAIKKKDAJhDwHV2TI+RNsJssggIKKKCAAgoooIACCiigwMYK2IE8ITy263hjD0BzV0ABBRRQQAEFFFBAAQU2jYBPIA9FyIbHm+ZAtSAKKKCAAgoooIACCiigwMYK2IE8FB5vrL25K6CAAgoooIACCiiggAIKbCaBofhwnb+z63gzHaWWRQEFFFBAAQUUUEABBRTYcAHHV3c3Ahgeb/ih5woUUEABBRRQQAEFFFBAgc0k4Pjq7vB4M+0jy6KAAgoooIACCiiggAIKKLDhAobHhscbfpC5AgUUUEABBRRQQAEFFFBgJQQcX11HyI6sXokD10IqoIACCiiggAIKKKCAAosVMDw2PF7sEWVuCiiggAIKKKCAAgoooMBKCji+ug6PEVnJPWmhFVBAAQUUUEABBRRQQAEF5hAwPDY8nuPwcVEFFFBAAQUUUEABBRRQYFsRMDw2PN5WjmW3QwEFFFBAAQUUUEABBRSYQ8DwuA6P58B0UQUUUEABBRRQQAEFFFBAgRUWqOPDNf+8wnvSoiuggAIKKKCAAgoooIACCswhsObhcL35c0i6qAIKKKCAAgoooIACCiigwAoL1PHhmn9e4T1p0RVQQAEFFFBAAQUUUEABBeYQWPNwuN78OSRdVAEFFFBAAQUUUEABBRRQYIUF6vhwzT+v8J606AoooIACCiiggAIKKKCAAnMIrHk4XG/+HJIuqoACCiiggAIKKKCAAgoosMICdXy45p9XeE9adAUUUEABBRRQQAEFFFBAgTkE1jwcrjd/DkkXVUABBRRQQAEFFFBAAQUUWGGBOj5c888rvCctugIKKKCAAgoooIACCiigwBwCax4O15s/h6SLKqCAAgoooIACCiiggAIKrLBAHR+u+ecV3pMWXQEFFFBAAQUUUEABBRRQYA6BNQ+H682fQ9JFFVBAAQUUUEABBRRQQAEFVligjg/X/PMK70mLroACCiiggAIKKKCAAgooMIfAmofD9ebPIemiCiiggAIKKKCAAgoooIACKyxQx4dr/nmF96RFV0ABBRRQQAEFFFBAAQUUmENgzcPhevPnkHRRBRRQQAEFFFBAAQUUUECBFRao48M1/7zCe9KiK6CAAgoooIACCiiggAIKzCGw5uFwvflzSLqoAgoooIACCiiggAIKKKDACgvU8eGaf17hPWnRFVBAAQUUUEABBRRQQAEF5hBY83C43vw5JF1UAQUUUEABBRRQQAEFFFBghQXq+HDNP6/wnrToCiiggAIKKKCAAgoooIACcwiseThcb/4ckltn0Sc/+ckHHHDAoYce+tSnPnWjS7DbbrsdfPDBBx100K677jr/upZZ8vlLaw4KKKCAAgoooIACCiiwzQvU8eGaf16V/U1seeqpp952222/+tWvfvvf/771rW9dffXV++6772K3gsD7oosuuvvuu/97Pf/3/zvvvPOcc84hYJ52Xcss+bRlM70CCiiggAIKKKCAAgqss8Cah8P15q/EobBly5YvfOELZbBaTv/t3/7tG97whp122mkh20IQfv/995f5l9Nf//rXX/rSl45f0TJLPr5UplRAAQUUUEABBRRQQAEFEKjjwzX/vPmPicMOO+xHP/pRGaMy/Ytf/KKac/nll8+/LaeffnqVLZ3Vv/nNb6qZIyPkZZZ8/m03BwUUUEABBRRQQAEFFFg3gTUPh+vN3+S7f//997/vvvsyOv3oRz96xBFH7LHHHjvvvPOBBx7IaOcyTj733HPn2Zzjjz8+V8TEFVdcccghhzzlKU/hwWMedX7HO96R37LSo446anhdyyz5cEn8VgEFFFBAAQUUUEABBRToFKjjwzX/3Gm0eWZef/31GZRefPHF7QhqItjvfe97mebZz372bIXffffdc0w13cXHHXdcm8/JJ5+cK7rnnnuInNs0OWdpJc81OqGAAgoooIACCiiggAIKTCWw5uFwvflT2S058eGHH57h6I033tjGxlEeQtlMRh/vbIV87Wtfm5mcd955fZlcdtllmYynlPuSLbPkfWVwvgIKKKCAAgoooIACCigwLFDHh2v+eRhr63573XXXZSy63377DRTm3e9+d6bkd5gGUnZ+xfuov/vd70YOd9xxR18czrL0GPN2rkg50IG8tJJ3bo4zFVBAAQUUUEABBRRQQIExAmseDtebP4Zsq6TZa6+9MuL9wAc+MFwGngTOxOeff/5w4vbbsv/5rLPOahOUc8g/13X00UeXX8X0Mkvert05CiiggAIKKKCAAgoooMBIgTo+XPPPI9WWn6wMWY899tjhAuy444533XVXRK033XTTcOL223LI9NOf/vQ2QTmHfuwMjztD8WWWvCyY0woooIACCiiggAIKKKDAVAJrHg7Xmz+V3TITX3rppRmFTgxZKdhVV10V6fkpJgZLT1XUz33uc7EsE2MW/OpXvxrpO0PxZZZ8TGlNo4ACCiiggAIKKKCAAgp0CtTx4Zp/7jTaDDM/+9nPRgjKI75jynPaaadFev5O/NWlMsM999wzFyTGLr/qm7722mtjkc5QfGkl7yue8xVQQAEFFFBAAQUUUECBMQJrHg7Xmz+GbKuk+fGPfxwhKK/dGlOA8mXRJ5100phFIg0/DZXh8RlnnDFmwbPPPjsX4feNq0WWVvJqvX5UQAEFFFBAAQUUUEABBaYSqOPDNf88ld3SEvOC6Iw/L7/88jHrJUzNRSa+XqvM8PnPf34ueMIJJ5Rf9U2XP4B82GGHlcmWWfJyvU4roIACCiiggAIKKKCAAtMKrHk4XG/+tHzLSc/DxhmyXnjhhWNW+oxnPCMXueCCC8YsEmnKN2kdc8wxYxY8/vjjc10veMELykWWWfJyvU4roIACCiiggAIKKKCAAtMK1PHhmn+elm856Z/1rGdl/MlI5jEr5XVcucjIDufI9hWveEUuyAjtMevi95xykZe+9KXlIssseblepxVQQAEFFFBAAQUUUECBaQXWPByuN39avuWkf/azn53x58iR0uWo5pFv2IptOfXUU3Nd1Ujpvo0tx2OfeOKJZbJllrxcr9MKKKCAAgoooIACCiigwLQCdXy45p+n5VtO+n322SdD1vPOO2/MSssXUF9yySVjFok0dP/muka+8vrFL35xLsJ0ua5llrxcr9MKKKCAAgoooIACCiigwLQCax4O15s/Ld9y0u++++4Zf/IzwmNW+sxnPjMXGTkeO7Ll4eFckOeQx6zr5S9/eS6yZcuWcpFllrxcr9MKKKCAAgoooIACCiigwLQCdXy45p+n5Vtaen5SOELQq6++esxKDz744AxZGS89ZpFI89znPjcXHPmLUPz+Uy5y0EEHVetaWsmr9fpRAQUUUEABBRRQQAEFFJhKYM3D4Xrzp7JbZuJ77703QtBPfvKTY9b7kpe8JENW3iw9ZpFIU/4i1EUXXTRmQV79levijdnVIksrebVePyqggAIKKKCAAgoooIACUwnU8eGaf57KbpmJ3/nOd0YISmcsr92auGoi2wxZGWg9MX0m2HHHHe+///5Y9sYbb8z5AxNE7JH+7rvvbpMtreTtqp2jgAIKKKCAAgoooIACCowXWPNwuN788XBLTnnaaadluHvooYdOXPtHPvKRgZB1ePFrr702lv3BD36w8847Dyfeddddc/h05yuyl1ny4aL6rQIKKKCAAgoooIACCigwIFDHh2v+eUBq635VPks8cczzvvvum7F0Z8g6vC2nn356Lv7CF75wOHH5puvqV51iwWWWfLiofquAAgoooIACCiiggAIKDAiseThcb/6A1Nb9aqeddrrnnnsiav3ud787PL763HPPzfh2qgePYxsPOOCAXPx973vf8IZ/9KMfjcT0Ie+9995t4mWWvF27cxRQQAEFFFBAAQUUUECBkQJ1fLjmn0eqbZVk5Sjls846q68MvBzrvvvui5D19ttvJzrtTMn8vq9In+Orf/Ob3xx++OGdOTCz/BWoK664oi/ZYkvetxbnK6CAAgoooIACCiiggALzCKx5OFxv/jyUG70sPcb5Fuhf/OIXhx12WLtGIt4bbrgh+375ReI2DXOIrnmN1p133nnmmWd2JihHRN9111177LFHm2yvvfb65je/mV3H++23X5sm5iyw5H2rcL4CCiiggAIKKKCAAgooMKdAHR+u+ec5NTd68ZNPPjlD3wceeOBlL3tZuUYeOf7Qhz6UCW699dbOF2sRV2caJoiEy0xy+pprrslkt912W/U+sCOOOILoOhNceumluWDnxEJK3pmzMxVQQAEFFFBAAQUUUECBhQiseThcb/5CTDc0k/IXm4hOP/e5z1155ZXMvP7663/0ox9lvErsSu9uZ0kuvPDCTMbEOeec05mMLl9+2ClT8mgxjxkTBr/pTW+6+eabcz4TPJ/cGYdX2c5f8ipDPyqggAIKKKCAAgoooIACCxSo48M1/7xA2Y3Liqd8y+i0nf7qV7+6//779xVgy5Yt5SLPfe5z+1Iypjp/07hcpJwmhOa3nfpyqObPWfIqNz8qoIACCiiggAIKKKCAAgsUWPNwuN78BcpuaFZHHXXUpz71qTJMjWl+qZje4N1222147RdccMH999/PG7DPO++84ZR0C7/yla/8+te/3q6Lp5cZ3b3jjjsO51B9O2fJq9z8qIACCiiggAIKKKCAAgosSqCOD9f886JYl5APb+F63vOed8oppzBo+c1vfjNv23rRi1605557jlw1Xb677LLLyMTE20cfffQZZ5zByGrGV5966qlEueMXr9YyZ8mr3PyogAIKKKCAAgoooIACCixEYM3D4XrzF2JqJgoooIACCiiggAIKKKCAAisnUMeHa/555fafBVZAAQUUUEABBRRQQAEFFFiIwJqHw/XmL8TUTBRQQAEFFFBAAQUUUEABBVZOoI4P1/zzyu0/C6yAAgoooIACCiiggAIKKLAQgTUPh+vNX4ipmSiggAIKKKCAAgoooIACCqycQB0frvnnldt/FlgBBRRQQAEFFFBAAQUUUGAhAmseDtebvxBTM1FAAQUUUEABBRRQQAEFFFg5gTo+XPPPK7f/LLACCiiggAIKKKCAAgoooMBCBNY8HK43fyGmZqKAAgoooIACCiiggAIKKLByAnV8uOafV27/WWAFFFBAAQUUUEABBRRQQIGFCKx5OFxv/kJMzUQBBRRQQAEFFFBAAQUUUGDlBOr4cM0/r9z+s8AKKKCAAgoooIACCiiggAILEVjzcLje/IWYmokCCiiggAIKKKCAAgoooMDKCdTx4Zp/Xrn9Z4EVUEABBRRQQAEFFFBAAQUWIrDm4XC9+QsxNRMFFFBAAQUUUEABBRRQQIGVE6jjwzX/vHL7zwIroIACCiiggAIKKKCAAgosRGDNw+F68xdiaiYKKKCAAgoooIACCiiggAIrJ1DHh2v+eeX2nwVWQAEFFFBAAQUUUEABBRRYiMCah8P15i/E1EwUUEABBRRQQAEFFFBAAQVWTqCOD9f888rtPwusgAIKKKCAAgoooIACCiiwEIE1D4frzV+IqZkooIACCiiggAIKKKCAAgqsnEAdH67555XbfxZYAQUUUEABBRRQQAEFFFBgIQJrHg7Xm78QUzNRQAEFFFBAAQUUUEABBRRYOYE6Plzzzyu3/yywAgoooIACCiiggAIKKKDAQgTWPByuN38hpmaigAIKKKCAAgoooIACCiiwcgJ1fLjmn3fYYYeV24UWWAEFFFBAAQUUUEABBRRQYE4BgsE1D4frzTc8nvOQcnEFFFBAAQUUUEABBRRQYBUFDI8Nj1fxuLXMCiiggAIKKKCAAgoooMCCBQyPDY8XfEiZnQIKKKCAAgoooIACCiiwigLbb799HR+u+efttttuFXekZVZAAQUUUEABBRRQQAEFFJhHwPC4bg0wPJ7neHJZBRRQQAEFFFBAAQUUUGBFBerg0M8I+HauFT2aLbYCCiiggAIKKKCAAgooMLOA4XCHgOHxzMeTCyqggAIKKKCAAgoooIACqyjgyOqO2JhZjq9exaPZMiuggAIKKKCAAgoooIACMwsYHneHx8yd2dQFFVBAAQUUUEABBRRQQAEFVk6gNzj0C8dXr9zRbIEVUEABBRRQQAEFFFBAgdkE7DoeagRwfPVsR5VLKaCAAgoooIACCiiggAIrJ2B4PBQe850dyCt3TFtgBRRQQAEFFFBAAQUUUGAGgQnBoV/TfjADq4sooIACCiiggAIKKKCAAgqskIBdx6PCfzuQV+iYtqgKKKCAAgoooIACCiigwAwCo4JDE/kE8gzHlosooIACCiiggAIKKKCAAqsiYNfxFIG/HcirclhbTgUUUEABBRRQQAEFFFBgKgHCvSmCQ5PagTzV4WViBRRQQAEFFFBAAQUUUGBVBOw6njrk9x1dq3JwW04FFFBAAQUUUEABBRRQYKSAsfHUsXEs4BDrkUeYyRRQQAEFFFBAAQUUUECBzS9gbDxjbByLbf4dbAkVUEABBRRQQAEFFFBAAQXGCMwVHLqwDyGPOchMo4ACCiiggAIKKKCAAgpscgG7jhcQ4PsQ8iY/yi2eAgoooIACCiiggAIKKDAsYGy8gNg4sjBCHj7U/FYBBRRQQAEFFFBAAQUU2LQCxsYLi42NkDftUW7BFFBAAQUUUEABBRRQQIFhAWPjBcfGRsjDB5zfKqCAAgoooIACCiiggAKbUICXSW1IcGimBsmb8HC3SAoooIACCiiggAIKKKBAK8DP9BrDLkPAR5Hbg885CiiggAIKKKCAAgoooMAmEXBA9TIC41wH3LRGbJJ9bzEUUEABBRRQQAEFFFBAAQUQIExzQHXGrUudsBvZM1ABBRRQQAEFFFBAAQUU2AwCBsZLDYb7VmaQvBlOBsuggAIKKKCAAgoooIAC6ylAYOxo6r5wdevMZ3/wbz0PR7daAQUUUEABBRRQQAEFFFi+gD3GWyf6Hb9W4+TlnxWuUQEFFFBAAQUUUEABBdZEgJDYqHh8fLqJUkaoHPuPv2tyvLqZCiiggAIKKKCAAgoooMBCBDKYipDY125tonDXoiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKCAAgoooIACCiiggAIKKKDAOgs8/OEPP+GP/1784hc/6EEPWjmKZz3rWVH+PfbYY7bCP+Yxj4kcjj766Kly2H777WPBo446aqoFTbxNCjz1qU+N42H//fefagP32WefSy+99IwzznjkIx851YImVqBPYJdddomj8dnPfnZfGucroIACCiigwMIEqM8994//Hv/4xy8sUzPaGgLHHXfcb//479xzz90a659rncT23/jGNyj+3/zN3zzucY+bLa/TTjstBE499dSpcnjZy14224JTrcXEqyLwgQ98II6H/fbbb3yZCap//vOfx4JcU8cvaEoFBgTe/va3x0F16KGHDiTzq60lwIl/9tlnv+c977njjjs+97nPsb+e//znP/jBD56zPNwTX/CCF7z5zW/+2Mc+ds8993zoQx/izr7jjjtOlS31ulNOOeVtb3vbpz/96TvvvPO9733vK17xivGNdzQcP+95z7vssstuuOGGu++++/bbb7/uuute+cpXji8GLfV77733mWeeyUX1tttu+9rXvnbzzTezURzMD3nIQ6baljLxDjvsEBXX+LvnnnuW346fZkPKfMrp5zznOU9+8pMn9jRwjyiXGj9N3XugnI961KO2bNnyxje+8f3vf//nP//5P/uzP7vxxhtxY+bDHvawgQX9SgEFFiBw4IEH/uY3v4lb7zOf+cwF5GgWW0mAO80Xv/hFdiU7dKeddtpKpZh9tccee2wch294wxtmy+URj3jEt771LTL54Q9/+NjHPnZ8Jtttt91dd901w4LjV2HKFRJ4xjOeEYciNcKpik1VJhbkL5fWqZY1sQKdArvvvnscVIQ380dcnatw5swCe+211/XXX59nfTnxwQ9+cOYwhgUZgXL//feXGcY0zccEYGMKTGB8+eWX//3f/32bCcE2gd/ETIjEvv3tb7eLM4ebLKH7xByoirz73e/uzIGZ0D3xiU+cmEmb4ClPecoXvvCFMtuDDjqoTTZmzlVXXVXm005/73vfI0CFojM3mvLZI+1SY+b0DVVjtAhh8EC21HMOPvjgzvI4UwEFFiDASVhef/m4gEzXOwuiMlpGP/GJT9DC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121GZqbQG9j+WWrJScm/LRlby8/EuZ+gge3foGzpTh7xSFyRv3E/0GesukyaTdg2+WuYq6W7UZgQorm5lmspX+Rcybme19WedDD/sOTfgVwAkw/MfwJyvyNDfPm3KCaLcKLT7Fx1ufYmu03u18hP869BSp7iP5SltI37h2WKr+qEQePS4HGJ/HLIldnFEuOm/edXwbyuh/x7mIGB3NDP4H8eLst/r9e8Mgf2LtM9EsDn9nHuyycOr6fyjet7sz99zFWRWCtty4MMucm7cf8gN1XXm7ngM6E6N/dzLym3C3O3bkJ8Xh+4yulcRbmW4paHUHL6cvcn07giucom+k6AAAECBAgQWDiB3JfpIt48ab/m/a88CNNFKRMe+li4HmrQogrkFkBi+PxNjvHytHl31WXWz6J2RbsIECBAgAABAgQIEFhygcwVzFz0xB55jqN5krnfs4xdd89Z9Fec6me2h8CaAuU1VM1D2vWBuRHTxca5RDd/1lXdEmkCBAgQIECAAAECBLZOgUwGztPjXWycp/IyY3PNfpaVGjI7dM3MMhBYU6C8gyMLkfSf6sxc+sTG3TPheQA7M3jXLFAGAgQIECBAgAABAgQIDBXI8/N5jDOr9XTrt2VcLutd9VfO7xeXBzK7tZ0nr8LYP9AeAuMEcjV2I8P53yzp1y3HlXW/89xv3qJX1lNM8DzkEh1Xi/0ECBAgQIAAAQIECBAYIZCXXZWAJIlsDlxTJ0sKdQdmmdwR5dpFYCqBvEq9viD76SwdP/ASnap+BxEgQIAAAQIECBAgsJICWYA98fANN9yQl8wlyh33Pr+RNlm0PMvk5m/N5btGHm4ngXECWfA8bwu79tpryzuHk8hbmvICnv6M63GF2E+AAAECBAgQIECAAAECBLYSgTxsnHfe5pVdeZPTVtIl3SBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwV4Hf+q3f2q7623bbbedavMIIECBAgAABAgQIECBAgMBEgd/4jd947GMfu8suuzz/+c//wz/8w6c97WmPfvSjJx6xIR/uvPPOv6z+vvvd725INctf6G/+5m8+/vGP33333XO+ctZysnIGl79bekCAAAECBAgQIECAAIEtJJCYKvHVe9/73gceeKAKS///5Le+9a3TTjstMdimtU54PJn6MY95zAknnPD1r3/9P/7jP5rz9dBDD51zzjn77LNPRuAnF+JTAgQIECBAgAABAgQIEPgvAolFP/GJTzRR1sjNiy66KGOV/+XgjdkQHo9z3X777d///vf/27/928gTVO/88pe/vMcee4wrx34CBAgQIECAAAECBAgQ+C8CL3rRi/ojkHWU1aQzOLnrrrv+lyI2YGOpw+Mbb7wxs8HL3wEHHDAvod122+3+++9vzsiEzV/84henn356JmDPqwGLX84pp5xS5JN4+9vfvvht1kICBAgQIECAAAECBLa8QCZU/+u//uuE+GrkR3/7t3/71Kc+dUNbv9Th8Z133lm7HXTQQXOxyo2Mn/zkJ3XJA9N/9md/tjoPJL/73e+uWfK8wFzwFUKAAAECBAgQIECAwNYs8IhHPOI73/lOHUsk/Y1vfCMPtb74xS9OAJyxype//OVve9vbfvCDHzTZPvaxj20ojfC44X3KU57yz//8z81ZyOYnP/nJ44477iUvecl+++130kknXXPNNf2TlWw5iU2BW+um8HhrPbP6RYAAAQIECBAgQGADBY488sgm3Mow4+///u/3q3zc4x6XuKvJnHWt+znntUd4XEtm7DdhcOP/la98Ze+9966zdenf+73f++AHP9hk/vnPf55FyPuZt749wuOt75zqEQECBAgQIECAAIENF/j4xz9eB1Gf+9znJlSZ51fvuuuuOn8eap2Qf8aPhMc1YP9Gxl/+5V9m8eo6T5N+/etfn5C4Pl9XX311k2er3BQeb5WnVacIECBAgAABAgQIbKxAM7P6j//4jyfXd/jhh9fh1i233DI5fz7NDO0TTzzxvPPOy8rYCb8vu+yyBNWHHHJI5nVPPnaK8Ph3fud3MhU85V9++eW333571sdKvZkovtNOO02uq/9p3h589NFH57HVq666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dOuM2h1++OEZw8kCv5OHcGdBSUSRB6oztPuqV73qkEMOSb1TNzsTpDPrO6OFGQVNnJn5yePe0zOkwelyHAbG1UMKTJ6UmUg+i4pltaf3vYzAupgAAEAASURBVO99GU4866yzTjrppP7iagMLnDpbLpsSvHWJPGQ+pLTJgVC4uisnq3MND0379SYQTayeF4mtGZHm2AxNZ7w9UXRgcwklZMpa1kMO7NebPbkp03Uht58S0+Z8NSu0jzyq3pmz3JWQ63DffffNgHOzulideaHSc/wyzrFfOZU5oTmt+TctpPl3KbdFBo4Y182Y+pqvC5EmQIAAAQIECBAgQGBrE8igXBMeTxikrTs/OTyuc0oTWCiBqa/5heqFxhAgQIAAAQIECBAgME+BjOs2a5VnxamBw63C43meCWVtlsAs1/xmtVE9BAgQIECAAAECBAhsikAmKucVvpmVmiex+w9zZk7ywFYIjwdCybbFBeZ1zW/xjmgAAQIECBAgQIAAAQLzFBj5ruBufnUWYxtek/B4uJWcW1ZgXtf8lu2F2gkQIECAAAECBAgQmLPAuFDh85///JAFq0trhMeFQmLBBeZ1zS94NzWPAAECBAgQIECAAIH1CfRDhbxK6txzz13vOuHC4/W5y73lBOZ1zW+5HqiZAAECBAgQIECAAIENEHjnO9+ZVwF/8YtfvPjii/NaqbwjZ7q3XuX9W0dXf+t96dEG9EyRBEYLzOuaH126vQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA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AQIECBAgQIAAAQIEZhBY8XC47f4Mkg4lQIAAAQIECBAgQIAAgSUWaOPDFd9e4jOp6QQIECBAgAABAgQIECAwg8CKh8Nt92eQdCiBdQg85SlP2WuvvdZxwFJl3W233XbZZZelarLGEiBAgAABAgQIEHh8Gx+u+LYrYiMEnvCEJ+yxxx4vfvGL991332c84xk77LDDRtSyRGUef/zxf/d3f/fLX/7yM5/5zJOf/OQlavmQpl588cX/5//8n5/97GfnnHPOkPzyECBAgAABAgQIEFgQgRUPh9vuL8hZ6Tdj9913P++88770pS8lprrnnnuS7v+dddZZp5xyymtf+9qEoP0S6j2vfvWr+4evd09GCOsy++l99tnnoosuuv/++//zP/8zzS5/P/3pT6+99tqjjjpqxx137B+1gHve9KY3Badr/0ilc88997TTTnvjG9/4ohe9aM3gP/HwQw89VDSOPfbYBezy1E164QtfWLr2i1/8Ys8995y6KAcSIECAAAECBAgQ2GSBNj5c8e1N1h9eXR11lPBjXCJhya233nrggQeOKz/DeuOOHb4/0e+48vfff/9PfepTaxb1wAMPHHnkkeMKWZz9H//4x9fsS8nwP//n/zzjjDMmjAnntkJ9v+Dd73734vR09pbkhBaKJA466KDZy1QCAQIECBAgQIAAgc0RWPFwuO3+5qBPUcu6wuMuPkmQfOaZZ46sa0PD48MPP/yf/umf6hhpcvq666570pOeNLKdC7JzXeFx19lvf/vbe++997j2X3311V22zEB+1rOeNTLbpZde+pX/93fzzTePzLCYO5/4xCfmrkfXu7vuumv77bdfzHZqFQECBAgQIECAAIG+QBsfrvh2H2hB9jTh8RW9vwSZmXrdPdFah6OnnnpqvwvHHXfcjWP+brrppnL4d7/73TG5frU78737JZ9wwgkJy0sJSaTAVHfwwQdnJapDDjnkbW972zXXXPO//tf/qvMk/kxY1S9tQfbU4XEP/oorr7zy05/+9L333luPCad3iZDHLU+Vh7FzEyEUu+6667g+fu5zn+uIchbG5VnM/TvttFOmo7/+9a+fMIS+mC3XKgIECBAgQIAAgRUXWPFwuO3+wl4NdXh88sknj2tnBuvyTO83vvGNEnz+y7/8y5qPItelZSC3HHvZZZfVH62ZzuJb5dgk/uIv/iLNHnnUzjvv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vO+++w4//PDJTdrin04RHn/xi1/MKRvX8iHhcY497rjj+owjw+Nk3meffRLKNrzN5iWXXDL5esg4/wUXXNAc1WwmZs7A8riuZb/weAKOjwgQIECAAAECBBZZoI0PV3x7YU/VkPA4E18zCzeBWVYnznJQmYs7RXdmD4+7SvMgcYLkf/zHf2yCq7KZNxLl9bnDZ31P0Zd5HTIkPP7hD3+YHt1yyy25JbH//vuPG1ntmjQwPE7mBL1XX311Bm9LnJz52+P6FcxMeP7KV75SkEviL/7iLzL9e9yBzf60P68Ey9Pg5fAukZW9zj777DUfERceN542CRAgQIAAAQIElkVgxcPhtvvLctqWpZ0777xznsvN24zPPPPMrBqVVxydfvrpxx9//LiVn5alX5vfzjzXncXMMuM6g/Nr1p6nkRPi5rHnPPh94IEH7rrrrmse0s+QYDunKdO2X/Oa1+QR6z322KN+hryf3x4CBAgQIECAAAECyy7Qxocrvr3sp1P7CRAgQIAAAQIECBAgQGA6gRUPh9vuT4foKAIECBAgQIAAAQIECBBYdoE2Plzx7WU/ndpPgAABAgQIECBAgAABAtMJrHg43HZ/OkRHESBAgAABAgQIECBAgMCyC7Tx4YpvL/vp1H4CBAgQIECAAAECBAgQmE5gxcPhtvvTITqKAAECBAgQIECAAAECBJZdoI0PV3x72U+n9hMgQIAAAQIECBAgQIDAdAIrHg633Z8O0VEECBAgQIAAAQIECBAgsOwCbXy44tvLfjq1nwABAgQIECBAgAABAgSmE1jxcLjt/nSIjiJAgAABAgQIECBAgACBZRdo48MV317206n9BAgQIECAAAECBAgQIDCdwIqHw233p0N0FAECBAgQIECAAAECBAgsu0AbH6749rKfTu0nQIAAAQIECBAgQIAAgekEVjwcbrs/HaKjCBAgQIAAAQIECBAgQGDZBdr4cMW3l/10aj8BAgQIECBAgAABAgQITCew4uFw2/3pEB1FgAABAgQIECBAgAABAssu0MaHK7697KdT+wkQIECAAAECBAgQIEBgOoEVD4fb7k+H6CgCBAgQIECAAAECBAgQWHaBNj5c8e1lP53aT4AAAQIECBAgQIAAAQLTCax4ONx2fzpERxEgQIAAAQIECBAgQIDAsgu08eGKby/76dR+AgQIECBAgAABAgQIEJhOYMXD4bb70yE6igABAgQIECBAgAABAgSWXaCND1d8e9lPp/YTIECAAAECBAgQIECAwHQCKx4Ot92fDtFRBAgQIECAAAECBAgQILDsAm18uOLby346tZ8AAQIECBAgQIAAAQIEphNY8XC47f50iI4iQIAAAQIECBAgQIAAgWUXaOPDFd9e9tOp/QQIECBAgAABAgQIECAwncCKh8Nt96dDdBQBAgQIECBAgAABAgQILLtAGx+u+Payn07tJ0CAAAECBAgQIECAAIHpBFY8HG67Px2iowgQIECAAAECBAgQIEBg2QXa+HDFt5f9dGo/AQIECBAgQIAAAQIECEwnsOLhcNv96RAdRYAAAQIECBAgQIAAAQLLLtDGhyu+veynU/sJECBAgAABAgQIECBAYDqBFQ+H2+5Ph+goAgQIECBAgAABAgQIEFh2gTY+XPHtZT+d2k+AAAECBAgQIECAAAEC0wmseDjcdn86REcRIECAAAECBAgQIECAwLILtPHhim8v++nUfgIECBAgQIAAAQIECBCYTmDFw+G2+9MhOooAAQIECBAgQIAAAQIEll2gjQ9XfHvZT6f2EyBAgAABAgQIECBAgMB0AiseDrfdnw7RUQQIECBAgAABAgQIECCw7AJtfLji28t+OrWfAAECBAgQIECAAAECBKYTWPFwuO3+dIiOIkCAAAECBAgQIECAAIFlF2jjwxXfXvbTqf0ECBAgQIAAAQIECBAgMJ3AiofDbfenQ3QUAQIECBAgQIAAAQIECCy7QBsfrvj2sp9O7SdAgAABAgQIECBAgACB6QRWPBxuuz8doqMIECBAgAABAgQIECBAYNkF2vhwxbeX/XRqPwECBAgQIECAAAECBAhMJ7Di4XDb/ekQHUWAAAECBAgQIECAAAECyy7Qxocrvr3sp1P7CRAgQIAAAQIECBAgQGA6gRUPh9vuT4foKAIECBAgQIAAAQIECBBYdoE2Plzx7WU/ndpPgAABAgQIECBAgAABAtMJrHg43HZ/OkRHESBAgAABAgQIECBAgMCyC7Tx4YpvL/vp1H4CBAgQIECAAAECBAgQmE5gxcPhtvvTITqKAAECBAgQIECAAAECBJZdoI0PV3x72U+n9hMgQIAAAQIECBAgQIDAdAIrHg633Z8O0VEECBAgQIAAAQIECBAgsOwCbXy44tvLfjq1nwABAgQIECBAgAABAgSmE1jxcLjt/nSIjiJAgAABAgQIECBAgACBZRdo48MV317206n9BAgQIECAAAECBAgQIDCdwIqHw233p0N0FAECBAgQIECAAAECBAgsu0AbH6749rKfTu0nQIAAAQIECBAgQIAAgekEVjwcbrs/HaKjCBAgQIAAAQIECBAgQGDZBdr4cMW3l/10aj8BAgQIECBAgAABAgQITCew4uFw2/3pEB1FgAABAgQIECBAgAABAssu0MaHK7697KdT+wkQIECAAAECBAgQIEBgOoEVD4fb7k+H6CgCBAgQIECAAAECBAgQWHaBNj5c8e1lP53aT4AAAQIECBAgQIAAAQLTCax4ONx2fzpERxEgQIAAAQIECBAgQIDAsgu08eGKby/76dR+AgQIECBAgAABAgQIEJhOYMXD4bb70yE6igABAgQIECBAgAABAgSWXaCND1d8e9lPp/YTIECAAAECBAgQIECAwHQCKx4Ot93fbrvtpnN0FAECBAgQIECAAAECBAgsr0CCwTY+XPFt4fHyXs1aToAAAQIECBAgQIAAgakFhMft3QDh8dQXkwMJECBAgAABAgQIECCwvALCY+Hx8l69Wk6AAAECBAgQIECAAIG5CWyzzTZtfLji2494xCPmpqsgAgQIECBAgAABAgQIEFgSAeFxezdAeLwkl65mEiBAgAABAgQIECBAYJ4CbXBoOwIeP57nJaYsAgQIECBAgAABAgQILIOAcHiEgPB4GS5dbSRAgAABAgQIECBAgMDcBMysHhEbZ5f51XO7xBREgAABAgQIECBAgACBZRAQHo8Oj7N3GU6fNhIgQIAAAQIECBAgQIDAfATGBoc+ML96PpeYUggQIECAAAECBAgQILDwAoaOJ90EML964S9gDSRAgAABAgQIECBAgMB8BITHk8LjfGYAeT4XmlIIECBAgAABAgQIECCw2AJrBIc+zv2DxT6DWkeAAAECBAgQIECAAAECswoYOh4U/htAnvVCczwBAgQIECBAgAABAgQWW2BQcCiTJ5AX+zLWOgIECBAgQIAAAQIECMwkYOh4HYG/AeSZrjUHEyBAgAABAgQIECBAYFEFEu6tIziU1QDyol7J2kWAAAECBAgQIECAAIGZBAwdrzvkt0bXTFecgwkQIECAAAECBAgQILB4AmLjdcfG3QGmWC/exaxFBAgQIECAAAECBAgQ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hvE3Tj+W6pj+q5syes+WMMN9sYSjaas1Wr5wn8hnxTICCCCAAAIIIIAAAgi8SV18GjKqXkddZ+sVyrqYbusInYilQDFlpaccNYOURsOG+a4n5tCYoBztKDjXi5c0NZRGeitAaovDG3Ou36iISEORFa4ccsghGtqtaipOq999rilVZXUwqkNyTnXvXngVTOPqFQ/vtddeGqvv3+w1W+Zqouuvv75Oxx577KHzMnOLne3otlcv3x01YPWKqwGr61vfQS1otb4bPxVGZ19fN90x0VdP9yN0l0R9y0vbHgyQBQQQQAABBBBAAAEEEJhOoBweT5cXqRFAAAEEEEAAAQQQQAABBBAYqADh8UBPHMVGAAEEEEAAAQQQQAABBBDoU4DwuE9N8kIAAQQQQAABBBBAAAEEEBioAOHxQE8cxUYAAQQQQAABBBBAAAEEEOhTgPC4T03yQgABBBBAAAEEEEAAAQQQGKgA4fFATxzFRgABBBBAAAEEEEAAAQQQ6FNgp5120quM7d9WW23VZ+7khQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggMDvBNZ6/d873L938g8BBBBAAAEEEEAAAQQQQKBawMKptV//R6g5MAEFxekUVp9xEiKAAAIIIIAAAggggAACCNQKECove5CcouLa80k6BBBAAAEEEEAAAQQQQACBbgLEyUsXJ+uUqLu422llbwQQQAABBBBAAAEEEEAAgRkFFJQtXaA4tgLRYzxj42U3BBBAAAEEEEAAAQQQQKBvAYLklQnJCYz7bsnkhwACCCCAAAIIIIAAAgh0FdDAXoLkhQbJ4u560tgfAQQQQAABBBBAAAEEEEBgPgJEyAuKkHnMeD4NmFwRQAABBBBAAAEEEEAAgd4EiJDnGyFrQHVv54qMEEAAAQQQQAABBBBAAAEE5ixAkDyXIJkB1XNut2SPAAIIIIAAAggggAACCPQvQITcc4RMbNx/IyVHBBBAAAEEEEAAAQQQQGAhAkTIvUXIxMYLabEcBAEEEEAAAQQQQAABBBCYlwARcg8RMrHxvJon+SKAAAIIIIAAAggggAACCxTQZFI9hIhjzmKBJ4tDIYAAAggggAACCCCAAAIIzFFgzLFt17rTdTzHhknWCCCAAAIIIIAAAggggMBiBfSa3q5R4jj3JzZebEPlaAgggAACCCCAAAIIIIDA3AV4CHnqAJ/YeO6tkgMggAACCCCAAAIIIIAAAishwEPI00XI6nNfidPEMRFAAAEEEEAAAQQQQAABBOYrwBDrKcJjuo7n2xjJHQEEEEAAAQQQQAABBBBYUQE6kGsj5BU9TRwcAQQQQAABBBBAAAEEEEBgvgJ0IFeFx3Qdz7cZkjsCCCCAAAIIIIAAAgggsAQCzNE1OUJegtNEERBAAAEEEEAAAQQQQAABBOYrQAfyhPCYruP5NkByRwABBBBAAAEEEEAAAQSWRoAnkEsRMuHx0jRUCoIAAggggAACCCCAAAIIzFeADuRSeDxfe3JHAAEEEEAAAQQQQAABBBBYJoFSfDjmz+g6XqZWSlkQQAABBBBAAAEEEEAAgbkLML66+SYA4fHcmx4HQAABBBBAAAEEEEAAAQSWSYDx1c3h8TKdI8qCAAIIIIAAAggggAACCCAwdwHCY8LjuTcyDoAAAggggAACCCCAAAIIDEKA8dUxQmZk9SAaLoVEAAEEEEAAAQQQQAABBPoVIDwmPO63RZEbAggggAACCCCAAAIIIDBIAcZXx/BYIoM8kxQaAQQQQAABBBBAAAEEEECggwDhMeFxh+bDrggggAACCCCAAAIIIIDAahEgPCY8Xi1tmXoggAACCCCAAAIIIIAAAh0ECI9jeNwBk10RQAABBBBAAAEEEEAAAQQGLBDjw5GvD/hMUnQEEEAAAQQQQAABBBBAAIEOAiMPh2P1O0iyKwIIIIAAAggggAACCCCAwIAFYnw48vUBn0mKjgACCCCAAAIIIIAAAggg0EFg5OFwrH4HSXZFAAEEEEAAAQQQQAABBBAYsECMD0e+PuAzSdERQAABBBBAAAEEEEAAAQQ6CIw8HI7V7yDJrggggAACCCCAAAIIIIAAAgMWiPHhyNcHfCYpOgIIIIAAAggggAACCCCAQAeBkYfDsfodJNkVAQQQQAABBBBAAAEEEEBgwAIxPhz5+oDPJEVHAAEEEEAAAQQQQAABBBDoIDDycDhWv4MkuyKAAAIIIIAAAggggAACCAxYIMaHI18f8Jmk6AgggAACCCCAAAIIIIAAAh0ERh4Ox+p3kGRXBBBAAAEEEEAAAQQQQACBAQvE+HDk6wM+kxQdAQQQQAABBBBAAAEEEECgg8DIw+FY/Q6S7IoAAggggAACCCCAAAIIIDBggRgfjnx9wGeSoiOAAAIIIIAAAggggAACCHQQGHk4HKvfQZJdEUAAAQQQQAABBBBAAAEEBiwQ48ORrw/4TFJ0BBBAAAEEEEAAAQQQQACBDgIjD4dj9TtIsisCCCCAAAIIIIAAAggggMCABWJ8OPL1AZ9Jio4AAggggAACCCCAAAIIINBBYOThcKx+B0l2RQABBBBAAAEEEEAAAQQQGLBAjA9Hvj7gM0nREUAAAQQQ6FVgiy22eNe73tVrlmSGAAIIIIDAUguMPByO1V/qc0XhRizw/ve//9E3/u299965xJFHHvnG549uuummeQK2mMBJJ51kVuuuu65tn22h39xmKwN7ITAPgUsuueSVV175yU9+ct55580jf/JEAAEEEEBgCQVifDjy9SU8Q6lIW2+99QUz/dt4442XtlIUrF5gxx13fO2NfwcccEC+44knnvjG56/R25P7+C1nnHGGWXUPj/vNzZeTZQRWUGCnnXayr8kvfvGLbbbZZgULw6ERQAABBBBYmMDIw+FY/YW5T3sgf6Vilyw1C5tvvvm0xyL9EgoQHvd4UvoNaPvNrcdqkhUCXQR0G87/idljjz265Ma+CCCAAAIIDEUgxocjX1/a07a04fFll132ldf/3XjjjUurtwoKtlTh8dBPer8Bbb+5rYK2OlUV1l9//fQDov9Kcqp9STxXAZ2aJ598MkXIDzzwwFyPReYIzCYw9D9Gs9WavRBAYN4CIw+HY/XnzT1z/j48/trXvnZd9b95P4Z6++23p+snXUjNXDt2nCiwVOHx0E96vwFtv7lNbAmrLIFiMOuivPzyy1dZ7YZenY022ujoo48+/PDDN9hgg6HXhfKvSoGh/zFalSeFSiGwCgRifDjy9aU9oz48Pv7445ennPxxWsy5IDzu0bnfgLbf3Hqs5iCyIjwexGmikAgspwBXIMt5XigVAkMXGHk4HKu/tKeT8HhpT81iCkZ43KNzvwFtv7n1WM1BZEV4PIjTRCERWE4BwuPlPC+UCoGhC8T4cOTrS3s6CY+X9tQspmCExz069xvQ9ptbj9UcRFaEx4M4TRQSgeUUIDxezvNCqRAYusDIw+FY/aU9nT2Gx5tssomms9a/8PqfnXfe+eCDD9bI7YMOOkhv2S08bKYr2pSD/nvXXXelRweffvpp26iFic88K3+FfJocVUc87LDDdt99d+010V+v4bGj+BKqwCq2Xm507LHH1r+AxFdkvfXWazu6P2hlMl+2PFvJq77HvP5PAttvv32eJmzpPTye1t9bzXzSQ6UaVyX83ve+VywnnHCCGsYHPvCBiW0pz2ezzTaTsHaX8Z577rnFFlv4NNMGtF1y843Ht4rKFrvOOuu8733v23fffdWw9Wrrvfbaq755W5VVhl122SV9u/VfHVpn0z6tWdAzqDq0PPVt3W+//VQGFaxmx7Y0yjB9kfXKOnv2+DOf+Yx9u7WgNG27p+36KVO99MVXqfR8rE70u9/97vIu9Z9aSfy78bbaaqv999//uOOOU+NUAyvkpjaz2267HXrooSrbgQceqF/XidVpzM3qqCMeccQRagkqQ2PKwsaZW5FqkRzCd1Am5qPWVTh0+kgt39KX257OoM6jmroavFqa2mrHlmZlswL4E6pPtV2TcuuH4kMf+tCaNWu0arvUL+jk6m+0GqHahr5iahuFappq5bG8ttdo+23Zdttt9fupkui/Wva7+Bqln7WjjjpKdVerriyMz2G2k7UMVyA6X/3+oHkWlhFAYBUIxPhw5OtLe0Z7DI+vvPLKdD362GOPpfrqT+NDDz1kF6lpQS+6vPDCCxsv6fS3PyTOV7/whS+0YSpWUXzy/PPPh71eeeWVK664QjVt21Hbt9tuO9tLF+vaouvOO++80zZqQVc5hRz8Rwo8bEddZPuP/LJ8LJmud/1HfllXrpZshx128B+lZV2OaJrNZ5991pLZwuOPP/6Rj3zEh09h9x7D49n8O570UJ3GVV3M3XvvvT/96U+NJS2oYdxwww060Y17hY3vec97PvGJT/zkJz8JmaiTwZpWfXjcPbeZW6wag65c8y+m6qW6yKrtqteD6AJalc2bnEi/+tWvKhOfuHFZt3L0i/Hyyy8Hz+9///u33HKLopfGvSZuVGsPGearp556als+OpWf/OQnf/zjH+d73XbbbYpPamK2tszTdkO75JJLtEXBw6c//elXX33Vjtg2kZhM9DXPm/GLL7549tln1we3umumQ+fyKsAdd9yh0LFc/vRpx1Z0//33p/p+7nOf84c75JBDzEHa/qPGZf0psfRt93f22Wefm2++2ZLZwqOPPqpIr/EvUeOx2jaGE6pk+m5ef/31dqC0oFP8qU99Sn8a2vLx23UvTy1ZJQyZaPWll1669NJLw425tK9Oq6VX+OozbFzW6U7pdQ/aN+z8t0WH00+lZZ4WHn744XArR/ekdCsqJFPFr7nmmnDvoLE82tjlZK3sFcicftDaoNiOAAIDFRh5OByrv7RncX7hsW7V51dy9odTYZv6ZwJLl0hJt+d1mWj5Ny6cfPLJ4Yi2Gi4IlNsPfvCDkEl9eKxsn3jiibS7LuDsKGHhoosuskPoyil8aqu69k3JnnnmGdtoCx/84Aft+sxyCwsPPvhg27VjX+HxzP5dTrohtC3oxoFdMwUTW9X9Gl2JtuWQtusORWM4YZmce+65SlkZHveS22wtVkGURSZW+LBw9dVXF+6nqJqK6G699dawV1jVlXoh8NAtCfuChB3Tqm5DqHe0fFIaP+0SHtfse9NNN4UOz8ZiFDbat1VEW2655SOPPBIEGsNjDWAJycKqoib95BaOmz7Sb6AafNg3rE78OnRvRdYIQ3isNvO9730vlUcxVbk6iugMUw0yT6yOVt16CLULq3qzlIK6fN/6LVYGnVDtpS5T3SQKR7FVfaRbAOXMdR/kS1/6ku3SuKA/dookQz7+t/SUU04Jn4ZVnUTL+ZxzzvGfht8W/RrYuB7bJS2oLallpn11O6PxvlJKqVtvhR8E5dD9ZNlPfbpBv8grkPn9oPnzwjICCKwCgRgfjnx9ac/onMJj/YHX5Vr6u/jcc8/pGkg3qkP4qnvPYZyYCqPLpvTPolNdT7yx7Xf/T5cgwVM9tD4U17W1Li+uvfbaL37xi+Gg559/ftg3rfoLAg3A89esugLQBZDynCo8Vk9jqr5el9V4RG3UPYKURv/91re+1dZrd/fdd6dk6jsKWeUX9Aqhpa2LeF0iWOZaEF3j1Ukv4XEX/5lPeqDIV9Xj8dRTT3kEtSVh6rJbzUO9lP6jwslVX2i43lXTVV+KnHVyLRM1m5rwuK/cZmixGltu75tNxdZ9E73KTa0lbNcXpy1C1lfbq2pHeX70ox/VTRx1HPnrY+FsuOGG+XnRQAnfCa/4RPeGTjvtNH03Qy9f3uDz3MIWBSfp50LZ2qnRj0DamP6rMxX20qoGmFh6LShIU0igOwXqyvb11Uc6+/VdtfmBfDSlSNgfVCNf1Czz8PiCCy7wyVQdnaDPfvazasb+d0+ttNxvrx9Pn4+Opa+D6qjQRb8b/iNtbPy5UHV6aUU6EelwITxW/lZItaW2MiRVDV22MuffX+2relkCLaitqqmrX1fN3m9X36m+TfmZqtziT6gG1tpAALUTHSv8SqTjNrbAdDjl4L8dSq+mqGLre6ovlP8h0nZ9GUMhrcNZr/sOH4VV9ZwbQsjH/7ZoLJW1Uv2RUnXsEGl3FUl/RPTPvvsqmH4e77nnHl9aJdZXKfzFtyL1crJ8eLzIK5C5/qAZEQsIILA6BEYeDsfqL+1JnUd4rD+T+juqP4e6qgt/d/W39oUXXrC/yieddFKbjF3Z6JqmLU3arueULNRRKHvmmWf6h510la9rke9+97t20L333jvP0F8QKJ5XYvUWnn766bpY0RNNKX3bn/Y8N23Rdaod0ZfHEvsjppQ6F/apLWhMml1vhdGGGmhtH+lmhC4QQzeIOhN8L0Rj57kua6ycjdfWvtsqPFWeCtmLf8qq/qSbT2FBl/hWNYVwGq3gQz7B6uaC9aSpWfpPLVtV2bdYXaeGwdgaLZkOpIva++67z47oByvOIzfffmparIZr6orZiieQMM5TD2P7aP+ss86yYvsFO0fKSn3m4Uuh7nrPrrDZ76tlJbAvoxbSgww+jUrli1HTI+p3t2UVzCqbB5yWLC3oJ8IS68dEHdchMFNPnQaNWxpd/Ycc6lctmrLHQDRWVl89C7lDO/S/JGqKek7YJ9Bvi40uUfEUOTf+2qh4orbyq61++MMftl+2VHg96+HlVaq8Un21okJ47IPe8IsXyvPxj3881Ui/1fnYXftUaXTu9Evud9cfJkV6BqLbDW13J/1ejct2QnVHJp3TG2+8MfyYq1XrG2eH05/IxuE8up1koyr006TbbSqn/yXRXr4/PG+H/oZpeXy1qpzKkwfS/rcl3WbVkwX6/TQitTGF61Yd3QhIt3r1A6hkaiQJSg1Vb7e2ZFpo/BOjxL2cLAuPF3kFsrAftMa2x0YEEBicQIwPR76+tOdvHuFx+nOo2Lix1vrzaX8vdWHRmEYb7Sp8YnisS4SUoa4n2v766urEghz9vffXl6kA/oJAuSmx5r9pK1vNdo3AtNi1sVR2895i+8ZHIhW0WO1CdKreNpOUamOp1IOaYielVJd4nqZ7eNyLfypY/UnPKxK2yMpC37yHyhLrZooZNg56VJBgCXRhald+lkNaCP172sVf1FriHnObtsVqsKVVpG0MhRqtDVVQz0+4t6Va6Htkmai71erlF1RxG4qpi2b/kZbVu2s5tPWh6eLbvhR6EjjkULlaHx4rLrWIXeFl21dJOPaspqqQB/aVBbNoSpmoiep3oLCjDqq+zSRW6ORU/5WpXnXVVXmG+h2wH0AFk/pVydNoiw5nt3hUtrwB9NKKdKBCeKxPbeSLbrU0llMb1cysxzt/MmXXXXe1r7/GXefBs3JQsGdjfKSnQK7tWOXt/oQqH30vGr/7ysQHgY0/Sn42irZ7x8rcfidVx3BLVPGztYTC+Go/sjp/iiH8tujmQriTorrol1DjF+xYWtC9lcZbM/aXLuHkmH2dLAuPU6kWcwWysB+03I0tCCAwRIGRh8Ox+kt7Cn14rEFTupKo+acb/HmN/B+nxr/9tou/ba8LMtvuF+wKoBwe+/K3/TlM2foOojxeDRcE4d6/L1j9slWhsWAWVdrMW0qfZ27jdRW3hE9VC13S6V9eHZ/yvPPOs4uY/DKxY3jcl38qsImVT7qvXduyrv8Sjv4briD9Lmp+hhMewFMyfWr3OFSk0KPo89Gltu+oV575JXK/uU3VYhUrKvBLNdWgx7xsVhcFwDZeV1fztj0tqKUZly7lw6e2qrDK8MOtqI997GOWgzpebJewoCEeKYfCzHZhl7BaHx77Djdd7IZ8/KpiDxtBqsne/Ef1yz6asuc223b3Yzc0y0BbMm23weEKmfIoRX3Fxl6ImpSPzp2l1I+PP2JfrUh5lsNjDdtJZVAk3/al88/Zhp5h5W99mxroW/j6q3HaczTq+/WVrV/2J1R/Q0OD9/noe+fHIOS9u7o1k5q9Js+Ttt/XL2v6NDtH+vPhP9KyenrTp3m3sKW0kFW/b3lr8b8tSmDjGmz3tCB2K4YW9KckJEirqoiNss7/iilNXydrRa5AFvaD1mjLRgQQGJxAjA9Hvr6058+HN/5PXXm5MR7zf5z0IopClfW33/Jv+5taGSnZwEL9AW6LtFNJFMDYdUze8eUvCDSpb6Hw9R/ZJak6ZMJeuoRK19npWOkSTRci+U16GwKnS8aQSeWqBl2btp4bDHt1DI/78k+lqjzpoQodVxX3Jp+8283Po6vL1vKBrJ8/5ZaHoP3mNlWLVbRpbSC/ng71srln9cxt+MhfEE8ECfumVbvdo/LkrbFxl9k21ofHNqJY41rzsxaO7jsA8/AmJG5ctV8hCahTtzGNbbR+eN3UsI2NCz6szbvlLRzV0QtxV8pZ50j9sfqnGwf+WH21IuVp5Wm8kSpYa65t90csLNH3N5w1/YraLZ78npevkZZ975++U+HTmlV/QieOKfD9wxNvjrQdXfPem0/+NdTwe/u0rYnaL61C0/wo/rel0PB058LuHmpsgg29zjPUvaRUJH3Fwqc9nqwVuQJZ2A9acGMVAQQGKjDycDhWf2nP4pzCY/VBFarsL7MaI23ta3+/yx2JNk1I/hRWXgCb9EVdCuFTf0GQd5qFxJWr3jZ0lFmYoa5d5WZDc0MHka4/7L67RqBVHjckU552taQihU87hsd9+adSVZ70UIWOq9afk1+p++utxldq+UPrOs+ctRAu2ZWy39ymarEXX3xxKptGEU+MjvxDquHulUYf2JhVjYAtf809ji3rIV5T0kva8vtBlrLjQmV47CMxPR068aAep234azkTi6YUlpdT+hGwjRMHhN3ty6hRr/4jX8e8kfuU5eW+WpGOUg6PlcBuCzaOr1YkZmPO84fk/X2otqHyVlP1LVuD1CugbXv9gp1Q5dMWjlpuuiFih9NUVbZ9qgX9NbFM8hhb3yn1uqcEjSMFfLtqvPvgf1vSX6i24lndQ5ML6XWrJZVH6cNHPZ4s/wNb/mnq8QpkYT9owY1VBBAYqECMD0e+vrRn0YdwijDV4VnzT38+8xrZHyc9N5jHBj697+hou91eEylpIhO7SqjpXLURZdordDX7C4Jy17evSHlZ13BpijIdLrxN1AY8p2GB9tdaz8L5PDUvUaqgRsaWSf1efllEvtb9hsc9+qcy15x0X7uOyyJVM7COpjxysPHSigkLYyatGH4q8vx89ZvbVC3W3uCtRyestG0LuhFgX6t8BLV//la3mdRiNcw1r2xb5gK354p1FPUmafquxt+Tthwqt1eGx/bVU2HyicTyY/nbSeHbmidu3GIRxcR5uf14BL04rTE3v9EmfwoDv30dw3hpv/vE5R5b0cTw2J6FaRxf7UdW52MQ/IQCE28GqdZqxqnBtz2TX5axE6qi1nwRbEq2fHRG+UDpU9VIsZ99Q/PwWMlspH3j+Gr7i6AJHRt/1up/W6zujW+UsOrYjek8PO7xZC3+CkQVXNgPmmGygAACgxYYeTgcq7+059KHx/kUHVMV2/44qVupvKP/69slPNacyXaVoAV1npT/+cThirymSOVKNX5qd83DPfg0nlNxQrp60zVKut8fpjKyZ/A0KVRj/rZRHQLqJdZQZ93j0IBMTSWqCxHrebaK9xse9+ifKjKn8FjImm5aF4U6HYoPNdZdznZNbDh5eGzjrvUmGKMuLPi5avIL5X5zm6rF+ri9/B3RpwaiBT0HEeqr7q/wXhwl03W2RmmqhzP0Nod906piGx8hp8MJR9f0OlzhSdHG3No26qRbRQozV+temCVr7EkL+WtAh/Wfl3vMwo62WhlRKL3vqVYh609cCEL84xU1dbSihoUeW9HE8FhRhz3mnZfZRlY3Dv31E+BNRPMNXn/CQpVrVu2ENj5Ym+egTuPU5DQyuTAgWQK6Paq71brrob50/clQOG0m1mgbw2N/QyTv0Laf2bb7O/W/LVb3mcPjHk/W4q9A0sldzA9a3pDYggACQxSI8eHI15f2FA46PNbAObtKmHZBf9L8Sam/IPB7TVy2GWXVc2iJbTifv7xWbJaq4DtDFMuljflbPVNuiqv1fKDFXRMR+g2Pe/RP1bHrNtXIuLosqL56la71D5d98vDY7i9MvD2RCumfQ8vD435zm6rFVgrkPnodce6vCFmvrskTpy2a4kiX7OWnajUtvD3xm+ejt2fpi9M2J1NensYtleGxn4q5PCDTjqJ7T6nMleGQ7ZgWKiMKJdbthhyncotvfpoS3/byPy+hYBNXe2xFE8NjFcaiHT0M78vmR1Y3TqVmsx5arSsX9FvhD1S5XH9CU4YW26tU4aGblECvs/Jv7S4XvjE81tm3wedhfLUfWd32dob635bKuhd6j3s8WdZgFnaD3lrIAn7Q7FgsIIDAoAVGHg7H6i/tuVxN4bE6YMv/dJ2hnp+UJky+XX9BMNWp1KSg6eJGx7XHLG3coO+asxli1MmZDqHQV68nTbvrmiY/ri6t2q6idDgN4dOMX7qC91dXcw2Py/j6tOCfatdveHzsscdaR59H0LIKowhcTx3bLK/amIfHFg/UPJWqKthEZcrNxyepdv3mNlWLtUOnupfPlNJYssbwOFVH0zjr1ozvfEs7pv+q6eYDs9OO9l/dXrnooovshUN+dy1r3HXe8WX7TlyoDI99CDrx8fJ0UOtE1WDjicXIE1RGFNrRl00g5bOWvl+WRtW3QyuCMtv8F8CSTVzosRXVhMfWBapK+XslNrJa5WkML33EZSCFBbPVTZ+JCHkCO6ETR8unfdXm7XSoi9hnqMjfYjxLYwuaOEBtT+Ol/a2lxvBYedpvURhfbSOr9c31h/bL9b8tVveZe497PFlGt/jwOOnN9QfNnyCWEUBguAIxPhz5+tKeyEGHx/4dj2GS1WnB6y8Ips3ZnjjVHB5pX5sZ2I8jtbrociEls6vAtjeO2Ow1un5SX4GG4emCUpOahrc3zW9qLiuzCtDRP1W5x/DYrq3TxaU66tUhqdauGxY+ctBxC1NzKUJLuxcuJVPJ03/9pV4eHveb21Qt1iK6mWcD8tUMy2oGGgaseZusgglNveWadyckzlcFpbhU9zLURW/vH0456MW2mqcg36VmS2V47Acw15RWX65UNv238qZJKG1lRKG9fNnCaJeQZ3nVz37UNg6lnEP6tMdWVBMeq2HYm40PPPBAK6FNZNg4a5eS6V3Z6Rwpfg5fdsukxwU7oSEQbTuE/crpCxLS+AdxFc9rkkhNXamvgKJo/3tSnpor5ekn+PC3mezohV/s+t8Wq/vM4XGPJ2vFw+MkP6cftNBUWEUAgYEKjDwcjtVf2rM46PBYXQp2qeoHKs+gXX9BMG3mNuBWt/O1r/526kFNFVs9ACGr1Cegp8vSdCnquEu1a3w3ic19rTQag512CRmmVf+u2rzvyE811DiLuO96ete73uUP0aN/ytYu3boPrrYZpNSBXH6VUeFK3fe9+/4rj+CX9XCgNUh/OZvS9JvbVC3WJlVS/OkL3Puy+k80H7Uh6HC5Q+GgCmZ0N8dGLyufxhfPFHKwjyrDY/89yudAttxswT9QcOGFF9r2+oXKiEIZ+ls8s02qnEplM/zJc7bZp1I+PbaiwpfOS+qnL7Ule7pB/av2LWsbnqDzaC2w5mF4f8QZlu2EKhpfb731JuZg94DCr5xiYHsmX3lqZoe2rGxQkqrZ1nusfe3OrI2v3nLLLU1Gd7Xa8q//bbG6zxwe93iyliQ89qo9/qD5bFlGAIHhCsT4cOTrS3siBx0eS9U6NNR92gW5/oJg2qNYJ7BmzNK+ekgpXaCkaNnnZteCmrFW2/UEZkqpq1ufLC3b3NdKo8LnCWyLDdtWyn7DYx2iL/9U2r7CY11oJjr9N3/HtcmkBRvcmw+u1mhJyyenC/n4Lh3tlYeF/eY2VYv189/4rqRQhb5WbeJcOUx0yw+qOxE2+9e0AbblVhke20QAKmreACw3W/AvlbXnIOzTmoXKiEJZ+dEZmlWuJvPGNHoO3J4y6DJ8oMdWVBkeWxfoD37wg3R/yn4/9VIAneLG+vpe9/wV0I27dNloJ1RNaOLj6769ff7zn/fH1dsNlEP6Vy62sShxITy2cdTWra0xGil//dL6Q4fl+t8Wq/vM4XGPJ2sJw+ME28sPWjhHrCKAwEAFRh4Ox+ov7Vlc/vBYl0EFvXPPPfd/Lyhee82PVS7s0vhR/QVB4+6FjbqGS90FmqdUfyb18phU4PxNLdqSPlLoq700uE6rui5s7BnWwMKUOH+HcyhMOVbp0nusA/Xln8ps4XH5pIcK5qv+8rHc7ebPex4d+Y73wmVoKoBPrFOTh8c+QffcfMl1iZkj+C3qP0+tRf/VIHP/0TyW/a/KbDGkfKzA22+//QyF9OHxVVddVcjBevV1rd/4XfP7+nscjTMC+MSNy5URRdrXOgDVo96YW+VGm+RPPxeNz+v6fNShpx8NBRt6XsNv77EVVYbHOrpCu9QS0tgW9X6nVQ2x9mXzy6qgTYNXDtv8XjMv2wlVwRqnCvM522SNeWKLXfVRudPbZq9QysIviTqZzSHdFLOpFsrhd/1vi9W97KxPVVT9U3qvoeUeT9acwuOOf4xSfbv/oAU3VhFAYKACMT4c+frSnkV/IbtUL3bSnfX0B1X/beslkKof66jgqnx1qw5bhUD6l/8tr78gmOFU6hnFVBeN5EzX4rpIzSulLeltQxplbZ0kbYNL/WW6TfqVl029GXaFpDLkXXkdw+O+/FPJK096Xs2wxXe7KYAPn/pVe/OWcNQw/Eda1u0Mmx1NU52FeXR8Yp07PyRYueXhcb+5TdViVTwb0qkr1MK4SlVKV/Cvf0t+958QSmlWIX139E+zRvnqh2UfR/nQXeNF0+76b3gTeMjBRlJIslzasKOtahSuTSVV7ivzV64hILTc0oJuu1g3rEbvh08rVysjipSbn1g7vBwuHE6tSyOQ04nLb0n4ISTlMeG77rqrzNM/TaHsj9JXK1Ke9eGxdYGm8dUakJzKVg4g7ZdENyXbxmCnqunmi7X2MF+jr3th2U6oCqblMPWD31GAmjXqf3Gz+7n+/VuF50F0om1shbIqhMc6tJ45SodTQ7JBBHp+p/AnQ3vV/7ZY3fWN9jUNy/o0FUPpw0da7etk9RseW6lUcp24vNjassgftMYCsBEBBAYnMPJwOFZ/ac/f0obHuoZLf1D13/KVtN7GYSnVp6rL4kZtfxGcX1LUXxA0Zl7eaDf7r7/++nR53TapjPUJKypOlVKXQmPmuo63Wrd1kCp2fe655yyZFnoPj1W2XvxTHetPeqOJbdTVjIW1mlWrMazVU4L+FoNwdJVsOdiCH8Sumura1D6yBWWla3fvrOU8PFb6HnObtsVqJh4roSL58Bi51UXRkb1bNb8148+17uDYXmHh2muvtWP5vl+dF8tccU5bGYRsczLprkTbNzocNF+1CX41EEM9aXmCtEXNww5XmHBbfcUPPfSQ1ctm2mvLtm17ZUSRdtftCUuvQ7fdwRSsTfinZPnXXKR+jvG2Tk5FUIam5ybyNtxLK1LV6sNj6wLVOBp7GLtttkIzV6BrZ0pnX7+E9pFfUOZ2V0udhBtuuKH/tHLZnyAdVNNfN/5KhHOUP/Rhj+Eok7ZZ31RgG1CQKpj/LfPFthEr6oS3WyTlwRTavf63xereJTzu62T1Gx7X/DFa8A+aP7MsI4DAQAVifDjy9aU9iz481l843bSu/Kc/DKFS/f5xUshn1zeaEVcRcgpy8uOqc0lXTpZYl+b+Ykj9yVr1r2nVzC75Df76C4JQ65pV3WO24qWFtrFt/snGlFIFazyEaq2OkZRGC3q1qb8m09tN1euShmf7y+L8urlj77HK1ot/qmP9SW808Rutv0JEeurbNwk1JHXjpyahy7vUY69kjeGxVK3DSmnuu+8+dUb5gE1ZpSnE9QyzHuxMZ0T/zUMLFa/H3KZtsfriqPBWPC3r0tkKqQUNv9QVoTUqDTrwaMnWrraVj6YRUs9w+D4qhvRTc+UBtn/pqyKTfEJmRd0Wsego5at/f8bzZes6Uz7qQFbjV/yjcxfKrB11Tk1GArqL4QdO6zfk6KOP9s1AN1byw1VuqYwoLLeDDjrIyqabaxoC4ydtUmOunMzMT9ClDPUgsWa5t6PI5PDDD/e/FY033XppRTpofXisxHYebeaqk046yUretuDfn6S7hLrP6LtMdSNAFXzxxRfNduaWZidUIWi6z3LvvfeGLmv7lUiH01AOFSCUXC3Tt3wNbPGPC6lBavrudIL8aSoXW+dLN5isjmlh4p2d+t8Wq3uX8FgOvZysFbkCWeQPWmgwrCKAwBAFRh4Ox+ov7Sn04XH4I1pezXtj+v3jpKuHNMNzKIYuvnNMXTdYb2FKr5hHL+zRZYQNhkzbdfnSGHDWXxDkR6/Z4vudVBJ/8e1313ZfX5XffxqWbWrrtIuuHdWxoAm9/DWf+ih8SDOP8Fil6u6fqjbVSQ8aYVVXlnrts8dUb5hw7LpcH+muiu4OFF7slPJU54aF0ClD3XfQXroatu1qZuraslnKlcwiz1CwvnKbocXqpkl495K+Nboil0n4+ihE9K/S8VWwF7EkCn2hdFvhE5/4hPq7lJX/ugncB3IpE4Uo9jRpykEjRTVoQtfHGs1okxKnj/Rlz0NZX5jysu70pXzCf3UvKd/Rz6Cb0mu2P83VrFbkH0/QRxpWnW7V5ZnUbKmMKHxWftBBKpsysWDM1053AfxtMp+JlsOLlLWjTl+qow1ET7kp2mmT76UV2dew8Z5UKLb/BVPx1MY0A3NIk6/Kwd+uSjuq/cvNHjRIldV/C08y5zmHLf6E6uaOSernJfxKpMMpgWoUMkmrmpTR3+pVw1Nnvr4F/murLf67Xw6Pla3vBVUBdMbbfpqsSD5//3CEJbAFX3fbmC/YzUqlzz/Vll5O1opcgSzyB62Rjo0IIDAsgRgfjnx9aU/e0obHElMXq7/aTtcWjeGxEquny/5Up5T5f++55562mUXrLwhmO5U2o4xKpY67Qia+i09XNoWU+kiPq9nVWF5fdZDqGnd+7z32Zevob1lNddJtr8YFjd211zvlOLoMTYP2J4bHylxfE429zDNJWxQtH3XUUUpWEx73ldtsLVY3INSX3laRtF3dpGozjaRpo96j62/BNOamoMv3ffnc1CbVBZp/tUM+6qFti9B8buXlyy+/PGSr1cbwWPkoEgi3CfJ91afXsVT2M1XucAv1Uvd1iNLzsmmEfz4uJuSjwMwHYHkmOkrb0GvLqnsrmio8FrhNL68C25vhrTxtC9rRArO8pmmLNE4//fS2HGq2hxOqR/ftrll+UN3E1H20Qra6Yaf7MvmOaYtuOWm0jobcW4KJ4bF+mS2xFnSrpXD09FH9b0uoe1vOdhaUvi1N95PVb3isclb+MVLJF/aD1qbHdgQQGIrAyMPhWP2lPW3LHB4LTdGsHpTS9bpdTBeujXRpqBF0ftqSdFmgCz6FSepKKpyF+guCQiaFj+ypORVJ/VSFlGeeeaZdzZQfuk6ZaL5r9cCE4E1dXtb7t5jwWIXp4u9Bpjrpfsd8WcNiNcmT+otszLBstazLNV3ip/Q14bFSqsNQz3sHZzUtXZNZHFgZHveS28wtVn1HahL+KWJrb2o2+gbpai+XDFs0zEHdyApyQsymmzW6KaPxwCF9vqp+Ng2a9TMVpWIo8BbpzjvvnO8y2xZ99dSL6IeYFuYVU700t7x62MwkLaheCowLj1vXl60yosgzVDPTT0dogSqeAjw9eKxpw/JdGrdo4I8GnoSOeuWjWwP6JamsY8dWNFV4rFr4LtAwYVhjHf1GxYe6S5Lf+NCIa/045MOg/L41y/kJVZ4XX3yxPWafmpC6rBVE2c9OIWedaDU2P4JaOWgslabXSnNPThUe60B+7NIOO+xQOHT6qP63Ja97Y+Y14XHascvJ6j08VpHq/xgt7AetUZiNCCAwFIEYH458fSinbWnLqUt2XTTo2sI/9tlWWiVT2K9+Ej3xpXvtmjmpLeVq2q6a6oE3PczZ/YKvI0tf/lOd9HKZ9dCpLl90u0FDQ2vCv7bc1JbkrHYl6o5Z6RD95tZW5rbtCvgVU+m2kVh0FTjbvETC1L76rumBRn3pJvZe5oXRuEoFw7qbI1WVZ37fVh1Ig70VWuRlCFsU++nXRg0mlUrRwmw4IdteVlPZ9DVX2fTfmmHGjcdVProXkOqoOwjqtJRPY8ryxl5aUfkQvXyqwFLnUQ9gq62qoXYZHh/K0xYiSljP8+vLJV4deoafHY1/0b76Xqjd1vzhCwWzVZvNqzxwydKv+ML8TtbMVav/Y7SwH7SZ68KOCCCwggIjD4dj9VfwTHBoBBBAAAEEEJiHQFt4PI9jzZCnQvTUfa3/ts18PkO27IIAAgggMINAjA9Hvj6DILsggAACCCCAwDILLHl4bPO6aRB+j33my3xGKBsCCCCwtAIjD4dj9Zf2PFEwBBBAAAEEEJhNYJnDYz3Kaw9dT5zocbbqsxcCCCCAQL1AjA9Hvl4PR0oEEEAAAQQQGITAsoXHGk2tJ8n1UgNNfWfTg2nGuxWfk2IQZ5NCIoAAAnMVGHk4HKs/V2syRwABBBBAAIHFCyxbeKxXiNvDxmlB732omUx+8XQcEQEEEBibQIwPR74+ttNPfRFAAAEEEFj1AkseHuuV0XoV86o/C1QQAQQQGITAyMPhWP1BnDMKiQACCCCAAAL1AnpT1CGv/9ODvvV7zS/lEUcccf311+tVz3q/t17bVvMms/kVhpwRQAABBLxAjA9Hvu5pWEYAAQQQQAABBBBAAAEEEBiPwMjD4Vj98Zx4aooAAggggAACCCCAAAIIIOAFYnw48nVPwzICCCCAAAIIIIAAAggggMB4BEYeDsfqj+fEU1MEEEAAAQQQQAABBBBAAAEvEOPDka97GpYRQAABBBBAAAEEEEAAAQTGIzDycDhWfzwnnpoigAACCCCAAAIIIIAAAgh4gRgfjnzd07CMAAIIIIAAAggggAACCCAwHoGRh8Ox+uM58dQUAQQQQAABBBBAAAEEEEDAC8T4cOTrnoZlBBBAAAEEEEAAAQQQQACB8QiMPByO1R/PiaemCCCAAAIIIIAAAggggAACXiDGhyNf9zQsI4AAAggggAACCCCAAAIIjEdg5OFwrP54Tjw1RQABBBBAAAEEEEAAAQQQ8AIxPhz5uqdhGQEEEEAAAQQQQAABBBBAYDwCIw+HY/XHc+KpKQIIIIAAAggggAACCCCAgBeI8eHI1z0NywgggAACCCCAAAIIIIAAAuMRGHk4HKs/nhNPTRFAAAEEEEAAAQQQQAABBLxAjA9Hvu5pWEYAAQQQQAABBBBAAAEEEBiPwMjD4Vj98Zx4aooAAggggAACCCCAAAIIIOAFYnw48vV3vOMdXodlBBBAAAEEEEAAAQQQQACBMQgoGBx5OByrT3g8hnZPHRFAAAEEEEAAAQQQQACBIEB4THgcmgSrCCCAAAIIIIAAAggggMAYBQiPCY/H2O6pMwIIIIAAAggggAACCCAQBNZee+0YH458fa211gpGrCKAAAIIIIAAAggggAACCKx6AcLjeDeA8HjVN3oqiAACCCCAAAIIIIAAAgjkAjE4ZF0CzM6VNxS2IIAAAggggAACCCCAAAKrW4BwuEGA8Hh1N3pqhwACCCCAAAIIIIAAAggEAUZWN8TG2sT46tBQWEUAAQQQQAABBBBAAAEEVrcA4XFzeKytq/vEUzsEEEAAAQQQQAABBBBAAAEv0Boc8gHjq31DYRkBBBBAAAEEEEAAAQQQWMUCdB2XbgIwvnoVN32qhgACCCCAAAIIIIAAAgh4AcLjUnisz+hA9s2FZQQQQAABBBBAAAEEEEBgtQpMCA75WPcPVuu5p14IIIAAAggggAACCCCAAAJJgK7jqvCfDmS+MAgggAACCCCAAAIIIIDA6haoCg5JxBPIq/trQO0QQAABBBBALi1ArAAAQABJREFUAAEEEEBg5AJ0HU8R+NOBPPJvC9VHAAEEEEAAAQQQQACB1SqgcG+K4JCkdCCv1m8C9UIAAQQQQAABBBBAAIGRC9B1PHXIzxxdI//OUH0EEEAAAQQQQAABBBBYfQLExlPHxmkHhlivvi8DNUIAAQQQQAABBBBAAIHRChAbzxgbp91G226oOAIIIIAAAggggAACCCCwygQ6BYfszEPIq+z7QHUQQAABBBBAAAEEEEBgnAJ0HfcQ4PMQ8ji/PNQaAQQQQAABBBBAAAEEVo0AsXEPsXHKggh51XwrqAgCCCCAAAIIIIAAAgiMTYDYuLfYmAh5bF8e6osAAggggAACCCCAAAKrRoDYuOfYmAh51Xw3qAgCCCCAAAIIIIAAAgiMR0CTSc0lOCRTguTxfIuoKQIIIIAAAggggAACCAxaQK/pJYZdhACPIg/6e0LhEUAAAQQQQAABBBBAYHULMKB6EYGxHUPcuhuxupsUtUMAAQQQQAABBBBAAAEEhiWgMI0B1Ra3LnSBbuRhfVUoLQIIIIAAAggggAACCKxWAQLjhQbDbQcjSF6tXzDqhQACCCCAAAIIIIAAAssvoMCY0dRt4erKbNf50L/lbzqUEAEEEEAAAQQQQAABBBBYHQL0GK9M9Ft/VOLk1fFNoxYIIIAAAggggAACCCCwhAIKiYmK6+PTJUqZQuV0/vTfJWxbFAkBBBBAAAEEEEAAAQQQWFoBC6ZSSMy0W0sU7lIUBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQGJPCO1/8NqMAUFQEEEEAAAQQQQAABBJZIIEUU9t+3vOUtS1Q4ilInsNZaa9kZ1MLv//7v1+23elKp1vfcc8//e/3fXXfd9cd//Merp27VNXn729/um8Fb3/pWv6u+2v5TtRn/KcsIIIAAAggggAACCCDwpldffTUFFem/m2yyCSiDE/jc5z5nJ/GHP/zhH/zBH0xVBQWTm2+++S677LLNNtv8xV/8xZvf/Oapdl+GxDfeeKMJaOG6665bhlItuAxf+MIXPMIRRxzhC6B4+Dvf+Y4luPnmm/2nLCOAAAIIIIAAAgj0ILDlllte4v7tsMMO9ZmeeeaZbtdL3vnOd9bvS8q+BBYWHv/hH/6hP931y8cdd1xflV2V+Wy//fYW82hh3333rammuhYPPPDABx988Fe/+pXfXcu//e1v/+Zv/uajH/2oQuWarFY8jeL53/zmN74Wr7322oqXavEFKIfHKs+aNWu80m677bb4QnJEBBBAAAEEEEBgNQvsvffe/nrrn/7pn/7sz/6sssJ/+7d/6/dVpF25I8l6FFhYeKyBnf501y8/8MADPdZ3lWWlcdTPPfecYd5///0TK6i+5fPOOy+cd8vBL/zXf/3XTTfdtPHGG0/Mc8UT/OxnP/MlVxf6ihdp8QWYGB6rSHfffbdBqTM5DMBefJk5IgIIIIAAAgggsKoEQnisCy9dfv3e7/1eTSUXHx6fffbZuoy2fxdccEFNOVd3mhAmzW9wNeHxPBrSKaecYtGOFibeY9IYjccff9zvMnH5l7/85a677jqPwpfzVKhvX1Ut7LnnnoX0J554oq/IMcccU0i8Wj+qCY833XRTD3XGGWesVg3qhQACCCCAAAIIrIBAHh7r2qtyNOziw+NPfOIT/tLw8ssvXwGyJTsk4fGSnZApirPuuuv+27/9mzXpJ598sryzHi3+h3/4B0tfv/Df//3fJ5xwQjnz3j99+umnfQn322+/8iEOOuigL33pS5qg64ADDiinXK2f1oTHqvvDDz9ssP/xH/+x4YYbrlYQ6oUAAggggAACCCxaoDE81iXXu971rolFITyeSLSABCsYHn//+99/vuKf5p1agMMQD/HZz37W4hwtlCNY9d6rD9anT8v6Gp577rmHHnroTjvtpBD0wx/+sLpt82TaoidXF6k0bXi8yLIt57Eqw+OjjjrKn1+Nn1/O6lAqBBBAAAEEEEBgeAKN4bGuvf76r/964lNthMfLcL5XMDzebLPNlkFgoGXQ9+vXv/61xTn/8z//U55J6/Of/7wlTgv/+q//evDBBze+BWrbbbd97LHHQvq///u/X+QLkwiPp22ZleGxbpToqXI7ubqbqWnzpj0W6RFAAAEEEEAAAQQaBNrCY117aWrihh3cJsJjh7Fii4THK0bf7cCadtgiHC3ce++9hfz22Wcfn1jLmkWv/KCyQqb77rsv7KX+6sJR+v2I8Hhaz8rwWNl+8Ytf9Gf2Ax/4wLTHIj0CCCCAAAIIIIBAg0AhPNblV/nFITOEx5pXRu+bufrqqzWb8V/91V/dcsstF1988Qc/+EG90rOhcK9vUufYYW/8+8pXvuIvCpXJG5/87v/rrbdeymSjjTby2wvzEqnzzVIecsghbWXQsFVLpoX111+/LaXKoMmWrrzySj1C+dRTT6nAn/70p08//fSaGbPe//73+6PY+PY/+ZM/Oemkk4Sm3HRZHMpZGR7rAUWfuZbLwVVewXxqrr56j5WzHnf/1Kc+JTQ9f6vJ4bSsLdqeF6O8ZYYGlmeoqaF333133R6Stvpgn3jiCT0TK3+1lj//8z/P08+2RU/O+8Z89NFHF/IJoaa6mvUcciF9+kgd1HrDkz+Klu1r4nfff//9ffPw8nrvlJqfmrHOzlVXXXXqqafqHct+X7+8zjrrWD4/+tGP/KGvuOIK+0gL4Suv7m7/6dZbb+2zbVyex3dNvzYaoH7NNddogPpf/uVf6m6C6rvzzjs3FqBx49prr53qcuGFF6rZqD1/+ctf1vMFGhGtR80bd7GN9eGxxtJ7WzVOy4QFBBBAAAEEEEAAgdkFyuGxnnUsvOdpqvB4u+22C8Gtv7xTV9hZZ50VrphTrdQJ5lMWlq0LZYsttvDJVM5GIEWMPpmW24JY/+odJVP4nWeocEVxneKWkKetfu1rX1OYne9oWxSBWGItaC5ffXT44Yf/+7//u98eHuWtCY813XGIVR566KG3ve1tduiahXmEx4qmdGWv0aG+gras7QpUykOOreQzNzDLQQtqgXoAWFM9WxnCgua40r2PwpfC51ZY1uTwGursM3/3u9/dll5vZvIptaxQsy1x2B76qLWvYt2QRqt6jNwfIkWnuv2hAM9vt+U77rhDdyLyfPLD2S5hQTd9/O5h1j29U91/Gpbn9F1TrcPXxMp86623TjzpqtHHPvax8G21HNLCzTffXHg/fH14rHtnPmf9CLzlLW8JSqwigAACCCCAAAIITC0QwmP/SFu6/Lrzzjvb3vNUHx4rxvvtb3/rr+calxWz/emf/mmowwzhsQocJjFqDLHUWxWKceSRR4aja1WPa/pkCiTyNEccccR//ud/+mSNywqeTzvttDbPPDxWv3qez7Thscr/7LPP+nz0ZqC3v/3teS3KW3oPj9/znvf84z/+oy9Y4/Lf/d3fFULHVOYuDcxqrZb29a9/vbEMYaOmj+7Yc64a+Tz17Wi8N5TKptEHPrG+pBNDNauUFvS18rurU9R/mpbz8FixYttti5SbnnxWN2nIagHh8Zy+awq5/SziXiwtKwQtzBGtmwXBMM8hbXnttdfaBm7Uh8cKhkNp3/e+94VzwSoCCCCAAAIIIIDA1AIhPFYHr3o4Qxfoscce25hvZXh88sknt10p5tu/853vaHSiP9wM4bF2VwzpM99rr718nmn5uuuu82m0fOONN+bJdtllF58s77j7yEc+4hNMXG57qDuEx5qCOAinnKcKjzVO+MEHH/RFUqgcOu7yKjdu6Tc81tV8OfryZf7Nb35TGG3bsYFZZfX0rz9oWlbg2njjQ/dfukxzpd5Rf6zGkNUK9swzz/jEeqbAPqpZUH+4313L+fjqENqpzYctIYe0qgjNHgFIJZl3eDyn75pGUAfkxvqq77cRXF8NjX9p3KVxo+74aJc8q/rwWPtqNIrPnJfA555sQQABBBBAAAEEphbIw2NloSGC/sJLwUm4CE6HCcFbY5eIxjmHfmN1GH7mM5/Rs47qrtE4T43eDF3WGrzqq6FetbPf+Bcm49XTy2988rv/+9Geeoeqr8L555/v89SyunDzrkt1EOVdu3pY2melSZJ8VuoGDOVXYj1TrT6uPfbYQx3UCsI1ItfnoOXGx6FDeBz2+u53v6u46Jvf/GZ4zrAwuPrNb36zSuIP/cILL8z89GyP4bFueag6vmAakqrxq3o+U2Gw0G644YYwwllTqTf2r3ZvYOls6mFjXx4tq5Wqi1gPo+oWg+4Z6eVJv/rVr3yaj3/8474lTLUczssnP/nJtt3VIEMDaxwd3ba7tudjsxX9hvQhGLYptXVeVFTVVHeF9HXz1U/LapP+K6Nj2VcyjOBQPvaRFqTqy1AzuHp+3zW7Ifjzn/9cM4RriIeestY7y/L6NnbShm+uctPgc/X562u+4447amiDxmuErPSpr35anio8Dr/SerIjz5AtCCCAAAIIIIAAAtMJNIbHikM0o4y/nlPXSv6ep4nhsa6bNa2Rz0dX4fm4UA1p9mm03HgNqoqFa2hNbtRWW42m9nmqpyWkVCztE9iywq2QUted9qkufH3Xq+LPb3/72/apFpRAgVbIQWNQwz0CPXcawgPtEi6yU7bqTleY3djXlI5SCI81wZUvm87XxMmBQsn9ao/h8UUXXeQLpu5ZTUvmj6VlxcnhMU71HIY0PTaw66+/3hdJM8aFY2lV59HiKCX+8Y9/nKep3PLwww/7w4Xp1nwmObvmyvIJapaDpOYYC3uF8DiV7fbbbw8NT8GeRc5W/nDDyHIO04lpyiv7KF8IX+382eMFfNeOOeYYH+rrzoi6ZK2aaSEf+qFfyzDOOX9/tbLVXS2f1Q9/+MMcYarwWHcYfYb6pc0zZAsCCCCAAAIIIIDAdAKN4bGyUPQYLqnzgGFieKxwwl/A6aG7xl5oHU6Z+5QKFBurEa6hC+GxdvcP3Kouutj1eaqj0o7o5+M5/vjjfTJd1+oZS0up7mv/qQIV+ygtnHfeeT6BLWuerZAyDyry8FhzX+d3EyzPtNAWHp9xxhn+iHpctvDkZMizcTWP09TJpl768j89YBxy032W0A2rHEKatKq51nw4qg5nH70oTY8NLNzH0URfjUXSoIBCF2jjLo0bddfDn528O9f20lfGp9TyDI89f+973/OZaHJ1yz8t5OGx+k7DYw4pZYjKlO1tt90Wckur/YbH8/6u6bTmtVB7Cx2/d911V0imW06XuX95bJzS67aaPwVazufGmyo8DiC64xYKxioCCCCAAAIIIIDA1AJt4bEyUiQQruf0YKE/wMTwOESzee+f5abY1T+Jqoi0cSRtyLAcHmtEqC9/eHhVjxmnTzWGWZ3VllLv8rFSaSF0Modr6PBuHj1B2jZ/rK6zwyTAN910kz+QlvPwuHFGsbBXY3gczp3SzBBThQPl4bGhFRYUOIR89By4T19+3294HjjM0RXaQ5cGFp7kzPtXQy06rob+Rj1o0JahOmw9l5bz6eva9rXt3/jGN3wmcrOP0kIIj1U8/6hCSHzppZf63HTvKR8KoV36DY/n+l3T/Rr1TodqptUDDzzQV/all15qTFazUY8c+6w0ED3sNVV4HO6baAR+uHkUMmcVAQQQQAABBBBAYLJAITzWzuoX8tdzeljXX5pPDI81gNDv3vjArRUxPNmojkH7yBZCOFQOj3U4f3T/XlldR/7zP/9z+lSRg1btLTvq4vYhrka9+kzCuFbbK6VpfJ7QCh/GkOuJbn8gJQvhsZ62tX0LC3l4vOeee/rnlvUQb7g1UMit8FFf4XEYZdrW355KEh6w1BRKvoQ9NrBzzjnHn2jFSwcccEAYceAP3WVZ3Yb+WFoudOxraH1IPMOs43pC2GeSf3FCeKxHZwsVDIGZclYMn6fvNzye63ftq1/9al7+tEXDHzxdlyg0vIM6H0ozVXisF0T5gmnZP/fRVh22I4AAAggggAACCJQEyuGxIiINyvUXYbputj6Kcnis0MLvqOXjjjtOI4rb/oX5gVWwvNxThccKQnyefsJn/2JkvW9ZB/Ixm+/K84/v6qlL36et5VDBxjJbLcJgSO0bZskK4XE+mt2y8gshPFaIrsDbF6xtnLDPpGa5r/A49NNqxqa2JqHtGsvq6+Kf/Oy3gYX5ydNBdQ9FJ+XQQw9VV6o1+xqrchpNHO0rpeXCJNhqjSHxBhtsUM4//zS8uDt/sjeEx5qHLM/Etqjlh2fpG4fH9xgez/u7Vpj2OY9CK1uCfn80+kMtR3f61Lr23XffcB47hsfqsQ8Ztr223U4cCwgggAACCCCAAAITBMrhsXbOwwbrhi2Hx/llZbiYK6/aUXwFpgqPteN9991nR9GTq5aVAnXbniaFUlehbfFdlOrCte2hS22dddaxj9JCeQCzniIO6cNc3yE81uPKVuDCQgiPwyG0qrC2sHv9R3l4rOhR77Mp/8sDDw1PzQtZucWPSO+9gYUH4EORNOBfnXsaGe5vkdTr+ZQh4tXz1W0je7VX3sz87RufbWHZxkqkSuXv9w7hsV64XchNH/nvhfJsnEy7x/A4R1jYdy1v9m3hsRqGHj9Rz7wesgjgoS2l1Y7hsc5CuBGWz29XPol8igACCCCAAAIIIBAFJobH2uHCCy/0l3e6JkvXpuXwWAN6/V7TLucdXCrJtOGxpiDyx7VprjQlb9quZyxTtKOOXEv55S9/OTFpFKufGkpBtecLFVTKiYGTn+VLhwujzecUHt95551tF/S+OhOX8zihHKK0ZRgeuzX2mgU/A3nwr9ndp2lsYGFKbZ/elv/lX/5FD1Tr3VRtFZy43T/rrmzVE1vYRY3KDp0WNDlWIX3+0R/90R+FHPLXgIfwOJ+/PWQbJvrOX5ym9D2Gx+FcL/K7ljf7xm+TRjqE38Ngnq92D4/Dy8923nnncJpYRQABBBBAAAEEEJhOoCY81gW6plD2l3e68NXGcDkY+kJ18ed3mXY5jXkOlZk2PN5qq638cdesWaMM9cSvHjBO2/08tNYhpvg/BbphVqQwWZGCQ5+5lsvP/um4YUhqeJJ5TuGxCnbyyScHyRlW8zhhtvC4pmMtwNrqQw89ZCWfRwNT5spWPd7hmQIrgC088sgjCjutMFMt5C8iLgfb6p+342rhmmuumepw+bDeMMOZcgvhcWiZ+eHuueceX6TGew09hscr+F3Lm30eHn/4wx/2GpXLamkBdqpnj/V7Eg408aZGOByrCCCAAAIIIIAAAlGgJjzWPooMw0C+r3/96yGECOFxflmpLXrGsvJf41y404bHupD9+c9/bheR6YlKP7TVv8bJz3SdhilqJmTbN3/JbV7B8lO+eVAUpq7tKzx+8MEHw3uDNJ9Q41RnsTUU1/P6zhYe222IZKsu9MomoWT+VUN5ebo3MANQ7KGbI3qQWzdQQp+/NQlNJmfpp1pQRSyTtKDBw4UcPvOZz/j0ipYLg7HzfBRO+91/9rOfqXYhWQiP9QbgkCCshomyGh+F6DE8zs/1wr5r+aFDeLzTTjt5Xi3rt0Ld6Zr8fIcddtCv4vrrr68zLvN+p+bKC1Yz0X04j6wigAACCCCAAAII/B+ByvBY+/gXBYfLwbQawmNdRIbO0hAN/p9y1K1MGx4r1+uuu85Km+an9SOuN998czuyn+laLw3Wdj1sbPsqdrWUaSGv4GGHHRbS+FVNKG25pYXQ/dhLeKzZxXVnQbczwhhmdfXrGt2XZ9rl/HJ8tvBYY9e9w4c+9KFpS5LS5/7dG1hjSXQgDe7V1Nbhdc2qRWHG6cas2kpe7vfTE61eTMt6VL6Qv/9IgXd4gXn+qi2lD+HxlVde6TMJy/krfNVBHdJotcfwOD/XC/uu5c1ehfGVDe8e+/znP5/Gnvg0afmFF17w57Fj73F+u21OE63nFWELAggggAACCCCwagXqw2NdFNoju/4iz5ZDeCyyxx9/3D7VwrTPTOboM4TH/s1MihjVh2PjQtWN5q90/UzX6oDVR34YcGPhQwX15GpeZtsSRmAqXrWP0kIv4bECuZSbr3g6C7feequvbzj6xNU8TpgtPA7vatLc4BMP3ZYg+Deeo7Z9Z9iueMY/iy7VcpBWOIQ6GP1XQ92MhcQKt0IPtt6gWx6PbbmFh4R10MaB0yE81sMUhaaS95f620x26B7DY+UZzvXCvmt5s/cyWvYvbBev0puAX9DNKf+6NaXsGB5rPIhvQvqx8odjGQEEEEAAAQQQQGAWgfrwWLnryi8MqPbXZ3l4rPlsfYIbbrihUER1pa677rp65036VzO4+sYbbyxkmD4Kc97qLabWmeZf9ZQSq3s5FVj93mE2IP/CZztoqKAeaW7rTtSsYIrGvUY+pXMv4bF/uctnP/tZf0Qth9nFrCI1C3mcMFt47Ae3q0gaB16I9NQMfKsIHeDBf+YGpiBH903sn49/gszNN9/sSfOTGNK3rYZgTxM7taVM2/NZtRX3qsDlvQ4//HBfWi1r2vDGgdkhPFbKxsmodTidrG9/+9s+W719urEYITxuHIBtO4Y7X/nDzOFcL+y7ljd73zzCdPQqldUoLOjejUfTcsfwWDMp+Ay/+c1vhiOyigACCCCAAAIIIDC1wFThsXLP3/Nkl2h5eKxA1z5NC6eddlpjEXUNqotsS6wOmcZwVM+CWhotqAO2Zjyhv5p/9NFHLQc9HBgKo1c62ac+5ZNPPhlSptW8ggp78qGVup4OIzB1FOvmtZx7D48VyTz//PNWIy3oRdD5tExWgPJCHifMFh5L43vf+54vlZ7vbYz0lNKPb9cuaXI1K2fuP1sDC6GLYkVV1o7iF8JLm4844gj/af2yphP3Ank0GLLSJOo/+tGP/C5a1iujNeQhpEyrotOLwUJ6dX1r0uzG9Hl4rOfVG18UpMHDIdvG0do6it1sSun1mEPjodPGieFxfq4X813Lm71srSL6socBBY0j/PVU8DPPPBPcOobHYTSKXmJnpWIBAQQQQAABBBBAYEaBacNjHSZcyNo1Xx4eK3EI+ZT4hBNOCLGHxmqGKO6qq65qrM9+++1nh0sL1157ra6bdcGqf43dYoUC5/MhKXQM+afVxvfWpBLmFVT84HNWnK8nOUO2GqaeVzBkNdt7j33vsQ6hh1rD4E+9/1mxVn70iVvyOGG28FgHOvDAAwOIpo8KHe8bbbSRDYNPifXops5yKGdAU8oZGphe6xWCHIV24c6LDq2h1L7Y2iWPcELx2lY/+clP+qzuvvvutpS2vfHOlGae0x0BfQWs8es0KdrPgzEdTl3QlltYyMNjpdcrtdUIFdqp7ooD9e3QeA1fbC1rnEVocpaz3gDsE4vLTo3uhoRTGX5VGu8X5Od6Ad+1vNmHkusL5aupCdv8118auhHm7/1Z4rzxTDVztW6OWFZaEI7Js4AAAggggAACCCAwo8AM4bEulMOwyXSV1hgea6rh8P6nlFg56Or5tttuCxeX+lSTS+lyv7E+esQx7R7+q54uPdf3gQ98oHGv3XffPaTXqrqU88SKMfRW2zyxAvg8cdqiCuahhWIGPb35xS9+UdfKYcZvZa6Qxt7A7LMNV/+9hMfK/8gjjww1uummm/xxK5fzOGHm8FhHDBf3qYSKIq6++moNG1Z0p3Pqi63zu8cee+RF7auBhVhOh9ZEXOrW1oCCgw46SPNyaap2Xx4tq5x5eSq3qC4+Nz04GoKuxnzCG8h9DhoXoGHqGtzrN/plNcW2rmYdK7Th0EWsNhxuH1jOepK8sajaqOmvLZlfSDP2qTn5HWvC4xX5ruXNPpwpP+QkVVPnQt993YxQI7dHKrQxNOmO4XGYPHzi+HyvzTICCCCAAAIIIIBAs8AM4bEyUlyUR32N4bES61lTu0b0V8mNy7/85S/Ls/gqtGvcURvbwmONMU5X5H7Htp60vH9MNW18ENpA1aumkN5nXlhWBfXGINvXL8wpPNYh8kqVHwT1pbLlPE7oEh4rt8cee6wAFT469NBDrSRhoZcGpqeaG3tcQzFsVfd3QoAXSlVeVYuyZ+BTnqHzvG13PT0eZniyIhUW1C1ZbsMhPFaH5xVXXFHIMH2kWwaF58Ybo1nLM+jVhMcyWfx3LW/2ITzWWAy9jtvq1bigU6aJ8Xt8sZO69P2B9Ps225CQtmbGdgQQQAABBBBAYKQCs4XHwlJ85a/PtNwWHiuxRhuGuYjCvmn1kUceyZ/IDSdGV6v+WWKfT1t4rBzuv/9+n1LL4SlWO4reMxRSfulLX7JP2xZ0tfqNb3wj7JivavocjRluy2R+4bEunUMvvUZcF85XYwnzOKFLeKxDvPWtbw2v5M3FtEVdyhOnpO6lgWlyOA1ybixD2Ki+Qb3cqFGpfmPoP9eDA5X7apS1f5t3KFtYVeD00Y9+NER0+YHy8FhnpzxTvYa+F7qj0yH0qLOf/t2XbbbwWNku+LuWN/scU7cewpxtvqbqNE7PqPcYHoe3xNX8RuUnnS0IIIAAAggggAACUWDm8FjXiGHapHK4pSc5NfzvK1/5ir9wTMu6gldHYlu8Gkv8pjdpCHTKSjM8achiykTxnl4PmydOW8I0Nrpgbets2WCDDUIJKwc563FKxeeKrxqHoT7wwAN6V61CjrYSavv8wmNlrm630IWuR3nVv1coT/gojxM6hscp/+22205Bcj4YQWdB51edpflUZ6FgabWvBqa+fTXs8Nbo1CR+/etfK6Zt6/xvLFVhY3jzVtvz9o05KB7TxHLl7ne9O0pT2emx6sYcwsY8PE4J9J3KO9V1J2ivvfbKo8SQZ1pV97K+QdpFL6Oyfm8NAg+TkFf2Hqc8F/ldy5t9Y8X1o6TbEKqj//XQT4H67W2yrh7D40svvdQfaIbBII0ni40IIIAAAggggAACixbQVFUaDatIUm+dUT+YxpQ2zlpcWSxdqqofT/1+jdeslZn0m0zX0+oDV/ygLiPdfVBlG5807vegQ89NQZQG1espcbUKtQ09llkeDFyoby8NTDG53gGmPjpNx6UiaUGrlYF6oWz+I5XT30nRqPvy3RO/ry3raXx1rZ9yyima60vvtdYdljPOOEMD0fVy46m+Vm3hcTqQzk76zuomi5q3HX3aBRVJtS6Mx542w2X7rulXSE1XP2u62aebRzO34bKDGMPwAb38rLwLnyKAAAIIIIAAAggggAACSy0QnlnVzZSVKm45PF6pUnHcRgF16fuu47bXzjXuy0YEEEAAAQQQQAABBBBAYBkFdt55Zx/naOT2SpWS8Hil5Gc4rt4g7ZuNBqrMkAm7IIAAAggggAACCCCAAALLJeBfdasH6cMTuQsrK+Hxwqg7HkhD0/2c53pOvmOG7I4AAggggAACCCCAAAIILIXAO9/5Ts34ZZ2BhdcIz7W4hMdz5e0x8zPPPNNaiya001SCPWZOVggggAACCCCAAAIIIIDASgqcdNJJFvBodnGb6HiRZSI8XqT2zMdab731/Bzvmpl85qzYEQEEEEAAAQQQQAABBBBYOgG9kkovxLYIWe8GW3wRCY8Xbz7DEf27sl966aUZpjqf4aDsggACCCCAAAIIIIAAAggsTkDvZzrW/Wt7Kff8CqSXMLvjH6vXL83vWOQ8m4CeOvbnaKuttpotH/ZCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQWGmBtV7/9w737538QwABBBBAAAEEEEAAAQQQqBawcGrt1/+tdJDH8acUUFCcTmH1GSchAggggAACCCCAAAIIIIBArQCh8pRB6sKTp6i49nySDgEEEEAAAQQQQAABBBBAoJsAcfLCA99JB9QpUXdxt9PK3ggggAACCCCAAAIIIIAAAjMKKCibFLfx+ZwF6DGesfGyGwIIIIAAAggggAACCCDQtwBB8pwj4JbsCYz7bsnkhwACCCCAAAIIIIAAAgh0FdDAXoLklih2PpvF3fWksT8CCCCAAAIIIIAAAggggMB8BIiQ5xMKZ7nymPF8GjC5IoAAAggggAACCCCAAAK9CRAhZ7Fsrxs0oLq3c0VGCCCAAAIIIIAAAggggAACcxYgSO41Jn4jMwZUz7ndkj0CCCCAAAIIIIAAAggg0L8AEfIbQW1P/yc27r+RkiMCCCCAAAIIIIAAAgggsBABIuSeIuM3vYnYeCEtloMggAACCCCAAAIIIIAAAvMSIELuIUImNp5X8yRfBBBAAAEEEEAAAQQQQGCBAppMqocQccxZLPBkcSgEEEAAAQQQQAABBBBAAIE5Cow5tu1ad7qO59gwyRoBBBBAAAEEEEAAAQQQWKyAXtPbNUoc5/7ExottqBwNAQQQQAABBBBAAAEEEJi7AA8hTx3gExvPvVVyAAQQQAABBBBAAAEEEEBgJQR4CHm6CFl97itxmjgmAggggAACCCCAAAIIIIDAfAUYYj1FeEzX8XwbI7kjgAACCCCAAAIIIIAAAisqQAdybYS8oqeJgyOAAAIIIIAAAggggAACCMxXgA7kqvCYruP5NkNyRwABBBBAAAEEEEAAAQSWQIA5uiZHyEtwmigCAggggAACCCCAAAIIIIDAfAXoQJ4QHtN1PN8GSO4IIIAAAggggAACCCCAwNII8ARyKUImPF6ahkpBEEAAAQQQQAABBBBAAIH5CtCBXAqP52tP7ggggAACCCCAAAIIIIAAAsskUIoPx/wZXcfL1EopCwIIIIAAAggggAACCCAwdwHGVzffBCA8nnvT4wAIIIAAAggggAACCCCAwDIJML66OTxepnNEWRBAAAEEEEAAAQQQQAABBOYuQHhMeDz3RsYBEEAAAQQQQAABBBBAAIFBCDC+OkbIjKweRMOlkAgggAACCCCAAAIIIIBAvwKEx4TH/bYockMAAQQQQAABBBBAAAEEBinA+OoYHktkkGeSQiOAAAIIIIAAAggggAACCHQQIDwmPO7QfNgVAQQQQAABBBBAAAEEEFgtAoTHhMerpS1TDwQQQAABBBBAAAEEEECggwDhcQyPO2CyKwIIIIAAAggggAACCCCAwIAFYnw48vUBn0mKjgACCCCAAAIIIIAAAggg0EFg5OFwrH4HSXZFAAEEEEAAAQQQQAABBBAYsECMD0e+PuAzSdERQAABBBBAAAEEEEAAAQQ6CIw8HI7V7yDJrggggAACCCCAAAIIIIAAAgMWiPHhyNcHfCYpOgIIIIAAAggggAACCCCAQAeBkYfDsfodJNkVAQQQQAABBBBAAAEEEEBgwAIxPhz5+oDPJEVHAAEEEEAAAQQQQAABBBDoIDDycDhWv4MkuyKAAAIIIIAAAggggAACCAxYIMaHI18f8Jmk6AgggAACCCCAAAIIIIAAAh0ERh4Ox+p3kGRXBBBAAAEEEEAAAQQQQACBAQvE+HDk6wM+kxQdAQQQQAABBBBAAAEEEECgg8DIw+FY/Q6S7IoAAggggAACCCCAAAIIIDBggRgfjnx9wGeSoiOAAAIIIIAAAggggAACCHQQGHk4HKvfQZJdEUAAAQQQQAABBBBAAAEEBiwQ48ORrw/4TFJ0BBBAAAEEEEAAAQQQQACBDgIjD4dj9TtIsisCCCCAAAIIIIAAAggggMCABWJ8OPL1AZ9Jio4AAggggAACCCCAAAIIINBBYOThcKx+B0l2RQABBBBAAAEEEEAAAQQQGLBAjA9Hvj7gM0nREUAAAQQQQAABBBBAAAEEOgiMPByO1e8gya4IIIAAAggggAACCCCAAAIDFojx4cjXB3wmKToCCCCAAAIIIIAAAggggEAHgZGHw7H6HSRXZtf111//ve997y677LLZZpvNuwQbb7zxjjvuuP3222+00Ubdj7XIkncvLTkggAACCCCAAAIIIIDAqheI8eHI14dyvhVbHnfccQ899NCrr7762hv/nnvuuSuuuGKbbbbptxYKvM8///wnn3zyjeP87v+PP/74GWecoYB52mMtsuTTlo30CCCAAAIIIIAAAgggMGaBkYfDsfqDaApr1qx5+OGHfbDql3/605+ee+656667bi91URD+4osv+vz98rPPPnvYYYfVH2iRJa8vFSkRQAABBBBAAAEEEEAAAQnE+HDk68vfJnbdddeXX37Zx6hafuWVV8KWSy65pHtdTjjhhJCtOqt/8YtfhI2VEfIiS9697uSAAAIIIIAAAggggAACYxMYeTgcq7/kp3+77bZ7/vnnLTq9884799xzz0033XS99dZ7//vfr9HOPk4+88wzu1Tn4IMPtgNp4bLLLttpp5022GADPXisR52vvvpq+1QH3XvvvcvHWmTJyyXhUwQQQAABBBBAAAEEEECgUSDGhyNfbzRano233HKLBaUXXHBBPoJaEex3v/tdS7PDDjvMVvhNNtnExlSru/iggw7K8znqqKPsQE899ZQi5zyNbVlYye2ILCCAAAIIIIAAAggggAACUwmMPByO1Z/KbsGJd999dwtHb7/99jw2TuVRKGvJ1Mc7WyFPO+00y+Sss85qy+Siiy6yZHpKuS3ZIkveVga2I4AAAggggAACCCCAAAJlgRgfjny9jLWyn954440Wi2677baFwnzuc5+zlHoPUyFl40eaj/qFF15IOTz22GNtcbj2VY+xZudKKQsdyAsreWN12IgAAggggAACCCCAAAII1AiMPByO1a8hW5E0W265pUW8X/jCF8pl0JPAlvjss88uJ84/9f3Pp556ap7Ab1H+dqx99tnHf5SWF1ny/OhsQQABBBBAAAEEEEAAAQQqBWJ8OPL1SrXFJ/Mh64EHHlguwDrrrPPEE0+kqPXuu+8uJ84/9UOmt9hiizyB36J+bAuPG0PxRZbcF4xlBBBAAAEEEEAAAQQQQGAqgZGHw7H6U9ktMvGFF15oUejEkFUF+9SnPpXS61VMGiw9VVEffPDBtK8WanZ8+umnU/rGUHyRJa8pLWkQQAABBBBAAAEEEEAAgUaBGB+OfL3RaBk2fu1rX0shqB7xrSnP8ccfn9LrvxPfuuQz3HzzzW1Hxdj+o7bla6+9Nu3SGIovrORtxWM7AggggAACCCCAAAIIIFAjMPJwOFa/hmxF0vz4xz9OIaim3aopgJ8s+sgjj6zZJaXRq6EsPD7xxBNrdvzIRz5iu+j9xmGXhZU8HJdVBBBAAAEEEEAAAQQQQGAqgRgfjnx9KruFJdYE0RZ/XnLJJTXHVZhqu0ycXstnuNdee9mOhxxyiP+obdm/AHnXXXf1yRZZcn9clhFAAAEEEEAAAQQQQACBaQVGHg7H6k/Lt5j0etjYQtbzzjuv5qBbbbWV7XLOOefU7JLS+Jm09ttvv5odDz74YDvWvvvu63dZZMn9cVlGAAEEEEAAAQQQQAABBKYViPHhyNen5VtM+ve9730Wf2okc81BNR2X7VLZ4ZyyPeaYY2xHjdCuOZbe52S7HHbYYX6XRZbcH5dlBBBAAAEEEEAAAQQQQGBagZGHw7H60/ItJv0OO+xg8WflSGk/qrlyhq1Ul+OOO86OFUZKt1XWj8c+4ogjfLJFltwfl2UEEEAAAQQQQAABBBBAYFqBGB+OfH1avsWkf/e7320h61lnnVVzUD8B9cc+9rGaXVIadf/asSqnvD7ggANsFy37Yy2y5P64LCOAAAIIIIAAAggggAAC0wqMPByO1Z+WbzHpN9lkE4s/9RrhmoO+5z3vsV0qx2OnbPXwsO2o55BrjvWhD33IdlmzZo3fZZEl98dlGQEEEEAAAQQQQAABBBCYViDGhyNfn5ZvYen1SuEUgl5xxRU1B91xxx0tZNV46ZpdUprddtvNdqx8I5Te/2S7bL/99uFYCyt5OC6rCCCAAAIIIIAAAggggMBUAiMPh2P1p7JbZOJnnnkmhaD33ntvzXEPPfRQC1k1s3TNLimNfyPU+eefX7Ojpv6yY2nG7LDLwkoejssqAggggAACCCCAAAIIIDCVQIwPR74+ld0iE19zzTUpBFVnrKbdmnhoRbYWsmqg9cT0lmCdddZ58cUX07633367bS8sKGJP6Z988sk82cJKnh+aLQgggAACCCCAAAIIIIBAvcDIw+FY/Xq4Bac8/vjjLdzdZZddJh79jjvuKISs5d2vvfbatO8PfvCD9dZbr5x4o402suHTjVNkL7Lk5aLyKQIIIIAAAggggAACCCBQEIjx4cjXC1Ir+5F/lnjimOdtttnGYunGkLVclxNOOMF233///cuJ/UzX4a1OacdFlrxcVD5FAAEEEEAAAQQQQAABBAoCIw+HY/ULUiv70brrrvvUU0+lqPWFF14oj68+88wzLb6d6sHjVMf3vve9tvsNN9xQrvidd96ZEqsPeeutt84TL7Lk+dHZggACCCCAAAIIIIAAAghUCsT4cOTrlWorksyPUj711FPbyqDJsZ5//vkUsj766KOKThtTanvbR0pv46t/8Ytf7L777o05aKN/C9Rll13Wlqzfkrcdhe0IIIAAAggggAACCCCAQBeBkYfDsfpdKOe9r3qMbRboV155Zdddd82PqIj3tttus75fvZE4T6Mtiq41jdbjjz9+0kknNSbwI6KfeOKJTTfdNE+25ZZbfutb37Ku42233TZPk7b0WPK2Q7AdAQQQQAABBBBAAAEEEOgoEOPDka931Jz37kcddZSFvi+99NLhhx/uj6hHjm+99VZLcN999zVOrKW42tJoQZGwz8SWr7zySkv20EMPhfnA9txzT0XXluDCCy+0HRsXeil5Y85sRAABBBBAAAEEEEAAAQR6ERh5OByr34vpXDPxb2xSdPrggw9efvnl2njLLbe8/PLLFq8qdlXvbmNJzjvvPEumhTPOOKMxmbp89WInS6lHi/WYscLgiy+++J577rHtWtDzyY1xeMi2e8lDhqwigAACCCCAAAIIIIAAAj0KxPhw5Os9ys4vKz3l66PTfPnpp5/ebrvt2gqwZs0av8tuu+3WllJjqu2dxn4Xv6wQWu92asshbO9Y8pAbqwgggAACCCCAAAIIIIBAjwIjD4dj9XuUnWtWe++991e/+lUfpqZlvalYvcEbb7xx+ejnnHPOiy++qBmwzzrrrHJKdQsfe+yxzz77bH4sPb2s0d3rrLNOOYfwaceSh9xYRQABBBBAAAEEEEAAAQT6Eojx4cjX+2JdQD6ahWuPPfY4+uijNWj50ksv1WxbH/zgBzfffPPKQ6vLd8MNN6xMrHh7n332OfHEEzWyWuOrjzvuOEW59buHo3QseciNVQQQQAABBBBAAAEEEECgF4GRh8Ox+r2YkgkCCCCAAAIIIIAAAggggMDgBGJ8OPL1wZ0/CowAAggggAACCCCAAAIIINCLwMjD4Vj9XkzJBAEEEEAAAQQQQAABBBBAYHACMT4c+frgzh8FRgABBBBAAAEEEEAAAQQQ6EVg5OFwrH4vpmSCAAIIIIAAAggggAACCCAwOIEYH458fXDnjwIjgAACCCCAAAIIIIAAAgj0IjDycDhWvxdTMkEAAQQQQAABBBBAAAEEEBicQIwPR74+uPNHgRFAAAEEEEAAAQQQQAABBHoRGHk4HKvfiymZIIAAAggggAACCCCAAAIIDE4gxocjXx/c+aPACCCAAAIIIIAAAggggAACvQiMPByO1e/FlEwQQAABBBBAAAEEEEAAAQQGJxDjw5GvD+78UWAEEEAAAQQQQAABBBBAAIFeBEYeDsfq92JKJggggAACCCCAAAIIIIAAAoMTiPHhyNcHd/4oMAIIIIAAAggggAACCCCAQC8CIw+HY/V7MSUTBBBAAAEEEEAAAQQQQACBwQnE+HDk64M7fxQYAQQQQAABBBBAAAEEEECgF4GRh8Ox+r2YkgkCCCCAAAIIIIAAAggggMDgBGJ8OPL1wZ0/CowAAggggAACCCCAAAIIINCLwMjD4Vj9XkzJBAEEEEAAAQQQQAABBBBAYHACMT4c+frgzh8FRgABBBBAAAEEEEAAAQQQ6EVg5OFwrH4vpmSCAAIIIIAAAggggAACCCAwOIEYH458fXDnjwIjgAACCCCAAAIIIIAAAgj0IjDycDhWvxdTMkEAAQQQQAABBBBAAAEEEBicQIwPR74+uPNHgRFAAAEEEEAAAQQQQAABBHoRGHk4HKvfiymZIIAAAggggAACCCCAAAIIDE4gxocjX3/HO94xuFNIgRFAAAEEEEAAAQQQQAABBDoKKBgceTgcq0943LFJsTsCCCCAAAIIIIAAAgggMEQBwmPC4yG2W8qMAAIIIIAAAggggAACCPQsQHhMeNxzkyI7BBBAAAEEEEAAAQQQQGCIAmuvvXaMD0e+vtZaaw3xRFJmBBBAAAEEEEAAAQQQQACBLgKEx/FuAOFxl/bEvggggAACCCCAAAIIIIDAQAVicMi6BJida6CtmWIjgAACCCCAAAIIIIAAAjMLEA43CBAez9ye2BEBBBBAAAEEEEAAAQQQGKIAI6sbYmNtYnz1EFszZUYAAQQQQAABBBBAAAEEZhYgPG4Oj7V1ZlN2RAABBBBAAAEEEEAAAQQQGJxAa3DIB4yvHlxrpsAIIIAAAggggAACCCCAwGwCdB2XbgIwvnq2VsVeCCCAAAIIIIAAAggggMDgBAiPS+GxPqMDeXBtmgIjgAACCCCAAAIIIIAAAjMITAgO+Vj3D2ZgZRcEEEAAAQQQQAABBBBAAIEBCdB1XBX+04E8oDZNURFAAAEEEEDg/7N3J9DWVIWd6KGNbYwSBwIIiCjigDNOOCAiCo6IYmsUp6iI8zzgPKIIgjgBjiBKFHFq40CiYpzj1GpsEk267eTZppfxdaffanu99T6+D/r9seK2vl3n1D33nDr3nkv97roLqs6p2rX3r+p+6/zP3rWLAAECBAjMITBTOLSRO5DnuLbsQoAAAQIECBAgQIAAga0ioOt4HcFfB/JWuazVkwABAgQIECBAgAABAusSSNxbRzi0qQ7kdV1eNiZAgAABAgQIECBAgMBWEdB1vO7Ib46urXJxqycBAgQIECBAgAABAgRmFJCN152Nmx0MsZ7xCrMZAQIECBAgQIAAAQIEVl9ANp4zGze7rf4JVkMCBAgQIECAAAECBAgQmEVgoXBoZzchz3KR2YYAAQIECBAgQIAAAQIrLqDreICA7ybkFb/KVY8AAQIECBAgQIAAAQL9ArLxANm4KUJC7r/UvEuAAAECBAgQIECAAIGVFZCNB8vGEvLKXuUqRoAAAQIECBAgQIAAgX4B2XjgbCwh919w3iVAgAABAgQIECBAgMAKCmQyqaWEQ4UKySt4uasSAQIECBAgQIAAAQIEugJ5TK8MuxECbkXuXnxeIUCAAAECBAgQIECAwIoIGFC9EcG4HCPc+TZiRc69ahAgQIAAAQIECBAgQIBABBLTDKguuXVDF3Qj+wskQIAAAQIECBAgQIDAKggIxhsahqcdTEhehT8GdSBAgAABAgQIECBAYJwCCcZGU0+Lq5vzes5HfsZ5OWo1AQIECBAgQIAAAQIENl5Aj/HmpN/Zjyonb/xfhSMSIECAAAECBAgQIDASgURiqXj2fLpCWzZRuTl/+e9IrlfNJECAAAECBAgQIECAwCACJUw1kdi0WysUd1WFAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJaCVJgAAEAASURBVAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAisiMANdzksv0/Y5Yvl97W7bPNLgAABAgQIECBAgAABAjMKlDB1+C6vyO+KZD3VmFWgROIZz7fNCBAgQIAAAQIECBAgQGB2AVF51nS6Wds1qXj2M2pLAgQIECBAgAABAgQIEFhEQE7erPw79bg5JenxX+Sk2pcAAQIECBAgQIAAAQIE5hYw7npqXt2wN/QYz3352pEAAQIECBAgQIAAAQLDCgjJG5aFdzqQYDzsdaw0AgQIECBAgAABAgQILC6Qgb1C8k7Zddkr4V78tCmBAAECBAgQIECAAAECBJYhICEvOxT/a/luM17G5atMAgQIECBAgAABAgQIDCggIS83IWdA9YBnS1EECBAgQIAAAQIECBAgsFQBIXkpIdmA6qVetQonQIAAAQIECBAgQIDAMgQk5IETsmy8jMtUmQQIECBAgAABAgQIENgAAQl5sIQsG2/A9eoQBAgQIECAAAECBAgQWJ6AhDxAQpaNl3eBKpkAAQIECBAgQIAAAQIbJpDJpAaIiGMuYsNOlQMRIECAAAECBAgQIECAwFIFxpxtF227ruOlXpoKJ0CAAAECBAgQIECAwEYK5DG9i6bEce4vG2/kZepYBAgQIECAAAECBAgQ2AABNyGvO+DLxhtwXToEAQIECBAgQIAAAQIENl7ATcjrS8jpc9/4k+SIBAgQIECAAAECBAgQILBsAUOs1xGPdR0v+3JUPgECBAgQIECAAAECBDZRQAfyrAl5E0+SQxMgQIAA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AgQIECBAgMBQAiOPw3Xzh2JVDgECBAgQIECAAAECBAhsLYE6H458fWudPLUlQIAAAQIECBAgQIAAgaEERh6H6+YPxaocAgQIECBAgAABAgQIENhaAnU+HPn61jp5akuAAAECBAgQIECAAAECQwmMPA7XzR+KVTkECBAgQIAAAQIECBAgsLUE6nw48vWtdfLUlgABAgQIECBAgAABAgSGEhh5HK6bPxSrcggQIECAAAECBAgQIEBgawnU+XDk61vr5KktAQIECBAgQIAAAQIECAwlMPI4XDd/KFblECBAgAABAgQIECBAgMDWEqjz4cjXt9bJU1sCBAgQIECAAAECBAgQGEpg5HG4bv5QrMohQIAAAQIECBAgQIAAga0lUOfDka9vrZOntgQIECBAgAABAgQIECAwlMDI43Dd/KFYlUOAAAECBAgQIECAAAECW0ugzocjX99aJ09tCRAgQIAAAQIECBAgQGAogZHH4br5Q7EqhwABAgQIECBAgAABAgS2lkCdD0e+vrVOntoSIECAAAECBAgQIECAwFACI4/DdfOHYlUOAQIECBAgQIAAAQIECGwtgTofjnx9a508tSVAgAABAgQIECBAgACBoQRGHofr5g/FqhwCBAgQIECAAAECBAgQ2FoCdT4c+frWOnlqS4AAAQIECBAgQIAAAQJDCYw8DtfNH4pVOQQIECBAgAABAgQIECCwtQTqfDjy9Sfs8sWtdf7UlgABAgQIECBAgAABAgQWF0gYHHkcrpsvHi9+VSmBAAECBAgQIECAAAECW05APBaPt225q1aFCRAgQIAAAQIECBAgMLiAeCwei8cECBAgQIAAAQIECBAgsO3wXV5R58ORr99wl8MG/xJCgQQIECBAgAABAgQIECCw4gLicf1tgHi84pes6hEgQIAAAQIECBAgQGAZAnU4tB4Bs3Mt41JTJgECBAgQIECAAAECBFZZQByeICAer/Ilq24ECBAgQIAAAQIECBAYXMDI6gnZOC8ZXz34paZAAgQIECBAgAABAgQIrLKAeDw5HufVVT5t6kaAAAECBAgQIECAAAECwwpMDYfeML562EtNaQQIECBAgAABAgQIEFhZAV3HfV8CGF+9sheuihEgQIAAAQIECBAgQGBYAfG4Lx7nPR3Iw15wSiNAgAABAgQIECBAgMBqCqwRDr2d7w9W88ypFQECBAgQIECAAAECBAgMJaDreKb4rwN5qAtOOQQIECBAgAABAgQIEFhNgZnCoY3cgbyal69aESBAgAABAgQIECBAYBABXcfrCP46kAe55hRCgAABAgQIECBAgACBVRNI3FtHOLSpDuRVu4LVhwABAgQIECBAgAABAoMI6Dped+Q3R9cgV55CCBAgQIAAAQIECBAgsDoCsvG6s3GzgyHWq3MRqwkBAgQIECBAgAABAgQWFJCN58zGzW4L6tudAAECBAgQIECAAAECBFZEYKFwaGc3Ia/IdawaBAgQIECAAAECBAgQWERA1/EAAd9NyItcgvYlQIAAAQIECBAgQIDApgvIxgNk46YICXnTr2YVIECAAAECBAgQIECAwHwCsvFg2VhCnu8StBcBAgQIECBAgAABAgQ2XUA2HjgbS8ibfk2rAAECBAgQIECAAAECBNYrkMmklhIOFSokr/datD0BAgQIECBAgAABAgQ2RSCP6ZVhN0LArcibcn07KAECBAgQIECAAAECBGYRMKB6I4JxOUa4823ELCfGNgQIECBAgAABAgQIECCwMQKJaQZUl9y6oQu6kTfmEncUAgQIECBAgAABAgQI9AsIxhsahqcdTEjuv0y9S4AAAQIECBAgQIAAgeUJJBgbTT0trm7O6zkfcvLyrnglEyBAgAABAgQIECBAoBLQY7w56Xf2o8rJ1SVrlQABAgQIECBAgAABAkMJJBJLxbPn0xXasonKzfnLf4e6IJRDgAABAgQIECBAgACBMQiUMNVEYtNurVDcVRUCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhsmMAf/N6187vPbjfd/5oHN78HXufOt7j2EX4JECBAgAABAgQIECBAYBaBJkklVe3x+zfK74alOQcaRiCRuDmFs5xs2xAgQIAAAQIECBAgQIDAugRE5WGy6/JKaVLxuk6qjQkQIECAAAECBAgQIEBgbgE5eXkJd86Sr3X1PdJdPPGMZjT1/te9ZX733n3/5veP/BAgQIAAAQIECBAgQIDADAJNhmoiVfPfibErLxp3PWeaHXC3iT3GicT5zYmc4XTbhAABAgQIECBAgAABAgTWIZColag8MScLyQOm3XUUNTEY6x9ex0VtUwIECBAgQIAAAQIECCwgMDEnZ2BvhveuI9rZdEGBfCdRfVeRby8WOK12JUCAAAECBAgQIECAAIE5BbqdybqRF8y8s+5e3WaccdRznkO7ESBAgAABAgQIECBAgMBAAlVIlpBnjbjzbZcB1e1OYzcYD3QZK4YAAQIECBAgQIAAAQLDCFQh2UDr+cLvGnuFtZ2NjaYe5uJVCgECBAgQIECAAAECBAYVkJDXCLcLvi0bD3q5KowAAQIECBAgQIAAAQJLFJCQF4zAU3evsrEnNi3xKlY0AQIECBAgQIAAAQIEhhBIcGuP/zXKemrinf2NdjY2C9cQV6kyCBAgQIAAAQIECBAgsEECCXElJGcyqdmToC0nCBTKLGzQCXQYAgQIECBAgAABAgQIEBhIoJ3pJkQ+L80o0H6+sTHVA12ciiFAgAABAgQIECBAgMDGCbRHWecxvTOGQZvtJNDOxuap3riL15EIECBAgAABAgQIECAwqEB7pi7PQ94p986y0r7lWDYe9MpUGAECBAgQIECAAAECBDZaoJ2Q3YQ8Syj+3Tbpc29GqMvGG33ZOh4BAgQIECBAgAABAgSWIFCm6TLE+nfRd82l9rDqJZwURRIgQIAAAQIECBAgQIDARgu0b0LWgbxmLv7XDcrMZrqON/qCdTwCBAgQIECAAAECBAgsTUAH8qypuNlO1/HSLkUFEyBAgAABAgQIECBAYJMFSm9oJpxaX1Yc4dYFS9fxJl+2Dk+AAAECBAgQIECAAIGhBcocXe5AXiPv6zoe+tpTHgECBAgQIECAAAECBFZLoPSJugO5LyGXeKzreLWuX7UhQIAAAQIECBAgQIDAQAJlji4dyH3xuHyLEK+B5BVDgAABAgQIECBAgAABAiskUOJxAmBfPhzze6XrOEYrdOpUhQABAgQIECBAgAABAgQGFShTWBtfPflLgBKPjawe9MJTGAECBAgQIECAAAECBFZLoMRj46snx2Mjq1frglUbAgQIECBAgAABAgQILEegjK8Wj9eIx8vxVyoBAgQIECBAgAABAgQIrIpA6R81vrpOyEZWr8pFqh4ECBAgQIAAAQIECBBYvkAZXy0ei8fLv9wcgQABAgQIECBAgAABAqsqkDmnmg7kfXa7aZ0PR74ekYbGvFyrevWqFwECBAgQIECAAAECBAYTKPHY7cf1twEREY8Hu9AURIAAAQIECBAgQIAAgdUWMDtXnYrLeonHMVrtk6h2BAgQIECAAAECBAgQILCogHhc4nC9UGYtE48XvcrsT4AAAQIECBAgQIAAgZUXKPE4c3TV+XDk6yUer/xJVEECBAgQIECAAAECBAgQGECgxMCRx+G6+cVlAGNFECBAgAABAgQIECBAgMDKC5QYWOfDka8Xl5U/gypIgAABAgQIECBAgAABAgMIlBg48jhcN7+4DGCsCAIECBAgQIAAAQIECBBYeYESA+t8OPL14rLyZ1AFCRAgQIAAAQIECBAgQGAAgRIDRx6H6+YXlwGMFUGAAAECBAgQIECAAAECKy9QYmCdD0e+XlxW/gyqIAECBAgQIECAAAECBAgMIFBi4MjjcN384jKAsSIIECBAgAABAgQIECBAYOUFSgys8+HI14vLyp9BFSRAgAABAgQIECBAgACBAQRKDBx5HK6bX1wGMFYEAQIECBAgQIAAAQIECKy8QImBdT4c+XpxWfkzqIIECBAgQIAAAQIECBAgMIBAiYEjj8N184vLAMaKIECAAAECBAgQIECAAIGVFygxsM6HI18vLit/BlWQAAECBAgQIECAAAECBAYQKDFw5HG4bn5xGcBYEQQIECBAgAABAgQIECCw8gIlBtb5cOTrxWXlz6AKEiBAgAABAgQIECBAgMAAAiUGjjwO180vLgMYK4IAAQIECBAgQIAAAQIEVl6gxMA6H458vbis/BlUQQIECBAgQIAAAQIECBAYQKDEwJHH4br5xWUAY0UQIECAAAECBAgQIECAwMoLlBhY58ORrxeXlT+DKkiAAAECBAgQIECAAAECAwiUGDjyOFw3v7gMYKwIAgQIECBAgAABAgQIEFh5gRID63w48vXisvJnUAUJECBAgAABAgQIECBAYACBEgNHHofr5heXAYxXr4i9dt/nltc68u67nXCfa7z06Kuf/qirnf+Uq34tv1nIal7MW9kgm61e3dWIAAECBAgQIECAAAECSxEoMbDOhyNfLy5LUd+kQvfZ/UYH/+GxR1/9zc+7yk9fu8u2NX+zWTbOLtlxk6rssAQIECBAgAABAgQIENgggRIDRx6H6+YXlw06D0s+zL67H3DENV584q7/tGYknrhBdszuKWTJ1VQ8AQIECBAgQIAAAQIENk2gxMA6H458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CRAgQIAAAQIECBAgsIICJQbW+XDk68VlBc/ZmlVKZJ3Yh5xMe/xVLz5kt8fd4LoHrVlINshm2Ti7dMN2XskhZONZGG1DgAABAgQIECBAgMCWECgxcORxuG5+cdkSZ3FiJXNLcDVTVzvlPvpqFx56zadmnq0Dr3On61/3Jnv80Z75zUJW82Leygbt7dvLKdb9xhPNvUiAAAECBAgQIECAwNYVKDGwzocjXy8uW/fUpuaZULp62lM75baXM+FWd86t9gZlOQVe+eap3tJnWeUJECBAgAABAgQIEBhEoMTAkcfhuvnFZRDlTSwkjyO++24nPOcql5R8O/dCCklRG/l84010c2gCBAgQIECAAAECBMYmUGJgnQ9Hvl5crhwXxL67H3DENV584q7/NF82zo7ZPYVcOTS0ggABAgQIECBAgAABAl2BEgNHHofr5heXLtnWfWWf3W908B8ee/TV3/y8q/x0lpyczbJxdsmOW7fVak6AAAECBAgQIECAAIFZBEoMrPPhyNeLyyyIW26bPKvpltc6MiOl73ONlx599dMfdbXzn3LVr+U3C1nNi3krG8zxFKgtR6HCBAgQIECAAAECBAgQaARKDBx5HK6bX1xcKAQIECBAgAABAgQIECAwBoESA+t8OPL14jKGi0AbCRAgQIAAAQIECBAgQKDEwJHH4br5xcUlQoAAAQIECBAgQIAAAQJjECgxsM6HI18vLmO4CLSRAAECBAgQIECAAAECBEoMHHkcrptfXFwiBAgQIECAAAECBAgQIDAGgRID63w48vXiMoaLQBsJECBAgAABAgQIECBAoMTAkcfhuvnFxSVCgAABAgQIECBAgAABAmMQKDGwzocjXy8uY7gItJEAAQIECBAgQIAAAQIESgwceRyum19cXCIECBAgQIAAAQIECBAgMAaBEgPrfDjy9eIyhotAGwkQIECAAAECBAgQIECgxMCRx+G6+cXFJUKAAAECBAgQIECAAAECYxAoMbDOhyNfLy5juAi0kQABAgQIECBAgAABAgRKDBx5HK6bX1xcIgQIECBAgAABAgQIECAwBoESA+t8OPL14jKGi0AbCRAgQIAAAQIECBAgQKDEwJHH4br5xcUlQoAAAQIECBAgQIAAAQJjECgxsM6HI18vLmO4CLSRAAECBAgQIECAAAECBEoMHHkcrptfXFwiBAgQIECAAAECBAgQIDAGgRID63w48vXiMoaLQBsJECBAgAABAgQIECBAoMTAkcfhuvnFxSVCgAABAgQIECBAgAABAmMQKDGwzocjXy8uY7gItJEAAQIECBAgQIAAAQIESgwceRyum19cXCIECBAgQIAAAQIECBAgMAaBEgPrfDjy9eIyhotAGwkQIECAAAECBAgQIECgxMCRx+G6+cXFJUKAAAECBAgQIECAAAECYxAoMbDOhyNfLy5juAi0kQABAgQIECBAgAABAgRKDBx5HK6bX1xcIgQIECBAgAABAgQIECAwBoESA+t8OPL14jKGi0AbCRAgQIAAAQIECBAgQKDEwJHH4br5xcUlQoAAAQIECBAgQIAAAQJjECgxsM6HI18vLmO4CLSRAAECBAgQIECAAAECBEoMHHkcrptfXFwiBAgQIECAAAECBAgQIDAGgRID63w48vXiMoaLQBsJECBAgAABAgQIECBAoMTAkcfhuvnFxSVCgAABAgQIECBAgAABAmMQKDGwzocjXy8uY7gItJEAAQIECBAgQIAAAQIESgwceRyum19cXCIECBAgQIAAAQIECBAgMAaBEgPrfDjy9eIyhotAGwkQIECAAAECBAgQIECgxMCRx+G6+cXFJUKAAAECBAgQIECAAAECYxAoMbDOhyNfLy5juAi0kQABAgQIECBAgAABAgRKDBx5HK6bX1xcIgQIECBAgAABAgQIECAwBoESA+t8OPL14jKGi0AbCRAgQIAAAQIECBAgQKDEwJHH4br5xcUlQoAAAQIECBAgQIAAAQJjECgxsM6HI18vLmO4CLSRAAECBAgQIECAAAECBEoMHHkcrptfXFwiBAgQIECAAAECBAgQIDAGgRID63w48vXiMoaLQBsJECBAgAABAgQIECBAoMTAkcfhuvnFxSVCgAABAgQIECBAgAABAmMQKDGwzocjXy8uY7gItJEAAQIECBAgQIAAAQIESgwceRyum19cXCIECBAgQIAAAQIECBAgMAaBEgPrfDjy9eIyhotAGwkQIECAAAECBAgQIECgxMCRx+G6+cXFJUKAAAECBAgQIECAAAECYxAoMbDOhyNfLy5juAiuNG089thj/91vfq53vettbqP22GOPBz3oQa94xSvud7/7dWvSU8+et7rlbPVX+pU2vXU3uMENHvOYx7z4xS++853vvOmVWbUK3Ote92r+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JmACJmACJmACJmACJjCMgGRg1oczPxaXYVh9lwmYgAmYgAmYgAmYgAmYgAmYwG4RkAycuRzOxReX3apOW2sCJmACJmACJmACJmACJmACJjCMgGRg1oczPxaXYVh9lwmYgAmYgAmYgAmYgAmYgAmYwG4RkAycuRzOxReX3apOW2sCJmACJmACJmACJmACJmACJjCMgGRg1oczPxaXYVh9lwmYgAmYgAmYgAmYgAmYgAmYwG4RkAycuRzOxReX3apOW2sCJmACJmACJmACJmACJmACJjCMgGRg1oczPxaXYVh9lwmYgAmYgAmYgAmYgAmYgAmYwG4RkAycuRzOxReX3apOW2sCJmACJmACJmACJmACJmACJjCMgGRg1oczPxaXYVh91yQEnvnMZ1522WWXXHLJ05/+9EkSXFEiT3ziE48//vjXvOY1lz7+d8YZZwzI6KlPfepb3/rWj370oyeddNKA2zd+C6X+rcf/nvGMZ2zcmNUZcNBBB1HRn/zkJ1/xilesLpfNpvziF784qnLfvn1rtmQOeMcj5W0TFXTKKaeMT23jKbzgBS/42Mc+9uY3v/nJT37yxo3ZAwY85znP2UvNYw/UiItgAiawcwQkA2cuh3PxxWXnanSwwfS0Xvr43/Zo0S984Qt/8PjfZz/72cHlWvWNRxxxxN133x12xv8PfvCDAzK96KKL4vbvfve7u9hN/MQnPhH2DxsdGEBsI7ecfvrpqusTTzxxIzasOlPEf5TxRS960arzSumvAe/hhx/Oe+5973vf1VdfHW+88j+tF/F52GGHJcO26hDxExX0rne9a1nDVNgtecmA+kc/+lEUB4W8bHHWH/8pT3nK2WeffeWVV37+85//5uN/t9xyy4c+9KGXvOQlhxxyyPrtaeZ47rnnBs93v/vdzas+YwImYAImsJCAZGDWhzM/FpeFBPdMhM997nPxm7olbjG6Go899liY9PDDD+NW2kLU9O2+9KUvhZH8p5/39a9/HRfyAFOvv/56pfPsZz97QAqbvWUm8viCCy5QNb3hDW/YLPMV5b5BebwGvMzOUA12BX7xi19ce+21p5122ooIj0x2sDzmLaoib8kw6MknnyyT8CGPJLPS25ngw3jE97//fRmcAo888ghV84QnPGGlZixM3PJ4ISJHMAETMIE6AcnAmcvhXHxxqePbS1e3TR7DlsHv6H/Q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u9R9zjR7yQvPVLrRCy/17Gc3o3X1vFd6vmnGmDML4dQjjMl6e+6tl3Ebri5s/yuKUH9aV5Spkq2Q7994uh7GaeUxepgEyQvjeWf+2Z/92YEDB44++ujZ/qy44CZgApMTkAycuRzOxReXyYk7QRMwgZkT4JvPF1988R133PGDH/zg937v9375y1+yaq6yArmPOq73rbuuqnO8VKDSk154qX9Xu4zZ1e1ew/nSjDHhhWQWRhiT+/bcu7CY2xBhqcdhwsjTPqf9Dasz7994up7HCeUxpjK2+Md//Mc//vGPv/KVr1x66aX79++f+Q+Ki28CJjA5AcnArA9nfiwukxN3giZgAiZgAiZgAiZgAiZgAiZgAltIQDJw5nI4F19ctrDObJIJmIAJmIAJmIAJmIAJmIAJmMDkBCQDsz6c+bG4TE7cCZqACZiACZiACZiACZiACZiACWwhAcnAmcvhXHxx2cI6s0kmYAImYAImYAImYAImYAImYAKTE5AMzPpw5sfiMjlxJ2gCJmACJmACJmACJmACJmACJrCFBCQDZy6Hc/HFZQvrzCaZgAmYgAmYgAmYgAmYgAmYgAlMTkAyMOvDmR+Ly+TEnaAJmIAJmIAJmIAJmIAJmIAJmMAWEpAMnLkczsUXly2sM5tkAiZgAiZgAiZgAiZgAiZgAiYwOQHJwKwPZ34sLpMTd4ImYAImYAImYAImYAImYAImYAJbSEAycOZyOBdfXLawzmySCZiACZiACZiACZiACZiACZjA5AQkA7M+nPmxuExO3AmagAmYgAmYgAmYgAmYgAmYgAlsIQHJwJnL4Vx8cdnCOrNJJmACJmACJmACJmACJmACJmACkxOQDMz6cObH4jI5cSdoAiZgAiZgAiZgAiZgAiZgAiawhQQkA2cuh3PxxWUL68wmmYAJmIAJmIAJmIAJmIAJmIAJTE5AMjDrw5kfi8vkxJ2gCZiACZiACZiACZiACZiACZjAFhKQDJy5HM7FF5ctrDObZAImYAImYAImYAImYAImYAImMDkBycCsD2d+/LT/cFKgedJ/Omxy6E7QBEzABEzABEzABEzABEzABExgqwgg/SyP28cBDvu3x1seb1VjtTEmYAImYAImYAImYAImYAImsDoCkseIwXaVONuzlsera3ZO2QRMwARMwARMwARMwARMwAS2jcBh//HYcJFaHudxAMljGG1btdkeEzABEzABEzABEzABEzABEzCBaQlIHh/y747J+nDmxxD5l5EDy+NpG51TMwETMAETMAETMAETMAETMIHtIyB5fNC/PmLmcjgX/9/8q38f8pg9urav4myRCZiACZiACZiACZiACZiACZjAlAQsj7Mq1rHkMSJ5SuROywRMwARMwARMwARMwARMwARMYPsIhH+U/1KFDvx/Alp+7G87bV/TtUUmYAImYAImYAImYAImYAImMBkBbVu9VfL4/wJNe/pYtjrVXgAAAABJRU5ErkJggg=="}},"time_used":378,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":376,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/63349e5c8482890ca4972285_ClarityCity-Bold.otf","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.468Z","timestamp":1785139285468,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/63349e5c8482890ca4972285_ClarityCity-Bold.otf HTTP/1.1\r\nHost: cdn.prod.website-files.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mobichain.co\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mobichain.co/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: application/x-font-otf\r\ncontent-length: 23588\r\nx-amz-id-2: Be4flZH+GVLLgGRfEl8LKCD6nl+OBFOIoDrTZsfSGPlE9f9T72hlWw9OWPQDrR6gh/az98NjWtA=\r\nx-amz-request-id: GAKBER29HK5T48YD\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: GET, HEAD\r\naccess-control-max-age: 3000\r\nvary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method\r\nlast-modified: Tue, 25 Oct 2022 00:27:46 GMT\r\netag: \"c6d2f35726603f9380bd0052502d784d\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: 9Bh8Nlxr0ykkUGUNlAQg.As1iMb4S2m8\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 12816914\r\ncf-cache-status: HIT\r\ncf-ray: a21a1db62b1ca0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":23588,"size_decoded":24419,"mime_type":"application/x-font-otf","magic":"OpenType font data","md5":"c6d2f35726603f9380bd0052502d784d","sha1":"d3b3e05b971857912dcb30c7ec6f9afd4e0ecacd","sha256":"64359ec4e5fe99671b7bc63f34ccc9c42894b3316fbb098e1dfbf723fdfd4c9a","sha512":"4b6716c816f0e9542231c81f2a48e5613d1cd767c37225c3f84a197594f48d62bf41d44c610bf0f5abea5bf1531fe73192c2c04d191e8e488392994573e411eb","ssdeep":"384:ffLX32qVFn4ZbfwWdWbw2Wgb3VjnHpoZHQiKkeYCcv23nvyD:fz2A3QWbw2WgbJJoZwi8V0","tlshash":"79b2bf76865f8fe8c7cb1e7864b70b194f2a64b5c856ea43cf9bc2481e943150c5df09","first_seen":"2023-05-18T04:46:03Z","last_seen":"2026-07-27T08:02:19.590244Z","times_seen":36,"resource_available":false,"data":"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ANcAagDWATMBMQEwATUBOgE5ATsBNwBhAM0AXgDKAGAAzAAcAIYAIACKAGcA0wERARABFQESARQBBgEHAQUBEwElAAAAAwAAAAAAAP+FABQAAAAAAAAAAAAAAAAAAAAAAAAAAAEABAIAAQEBEUNsYXJpdHlDaXR5LUJvbGQAAQEBLvgPAPiIAfiJAvgUBPsZDAOfDAQc/ywc/t0cBLkcA9IFHA3IDxwQPxG9HD7UEgBvAgABAAcADgAVABsAIQAnAC0AMwA6AEEARwBOAFUAXwBmAG0AdwB+AIQAigCRAJcAnQCkAKsAuAC+AMQAywDTANkA3wDmAO0A9AD5AQQBDQEaASABJgEsATcBPQFDAU0BVAFbAWEBZwFtAXMBegGBAYsBkQGYAZ8BpgGtAbQBuwHBAccBzgHUAdoB4AHtAfQB+wIBAggCDgIVAhsCIQIpAi4CNQJCAkkCTwJYAmMCaQJ0AnoCgAKKApQCmQKjAq0CvALJAtQC3wLpAvIC+QMAAwcDDgMVAxwDIAMnAy4DTwNgQWJyZXZlQW1hY3JvbkFvZ29uZWtDYWN1dGVDY2Fyb25EY2Fyb25FY2Fyb25EY3JvYXRFbWFjcm9uRW9nb25la0dicmV2ZXVuaTAxMjJ1bmkxRUI4RWRvdGFjY2VudHVuaTFFQkNJb2dvbmVrSWRvdGFjY2VudEltYWNyb25MY2Fyb25MYWN1dGV1bmkwMTM2TmFjdXRlTmNhcm9udW5pMDE0NU9tYWNyb25PaHVuZ2FydW1sYXV0UmNhcm9uUmFjdXRldW5pMDE1NlNjZWRpbGxhU2FjdXRlVGNhcm9udW5pMDE2MlVtYWNyb25Vb2dvbmVrVXJpbmdXY2lyY3VtZmxleFdkaWVyZXNpc1VodW5nYXJ1bWxhdXRXYWN1dGVXZ3JhdmVZZ3JhdmVZY2lyY3VtZmxleGFicmV2ZVphY3V0ZVpkb3RhY2NlbnRhbWFjcm9uYW9nb25la2Rjcm9hdGRjYXJvbmNjYXJvbmNhY3V0ZWVtYWNyb251bmkxRUI5ZWRvdGFjY2VudGVjYXJvbmltYWNyb25pb2dvbmVrdW5pMDIzN3VuaTAxMjNlb2dvbmVrdW5pMUVCRGdicmV2ZWxhY3V0ZXVuaTAxMzduY2Fyb25uYWN1dGVsY2Fyb25vaHVuZ2FydW1sYXV0dW5pMDE0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"}},"time_used":6,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/mlogo.png","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.195Z","timestamp":1785139285195,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /mlogo.png HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\nserver: cloudflare\r\nlast-modified: Sat, 23 Aug 2025 19:00:03 GMT\r\naccept-ranges: bytes\r\nserver-timing: cfExtPri\r\ncontent-type: image/png\r\ncache-control: max-age=14400\r\ncf-cache-status: REVALIDATED\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=M2rkNgCTN9vkWjXPXul0yJXyLPIPYY%2BHywpEuEj4rE76tn%2F%2BXuYQbtgOAJ1zOe%2FthraeL9utjgOlgG05NmPDloRlyxXbPbq0DmetkMIH4Phj4agDvRtV%2B0uPxutCoCw%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=5,i\r\ncf-ray: a21a1db4780b2efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 12725\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"]}],"data":{"size":12725,"size_decoded":13398,"mime_type":"image/png","magic":"PNG image data, 406 x 103, 8-bit/color RGBA, non-interlaced","md5":"a7eec48012c98c32e85f34d5b4f6ace6","sha1":"6b23ff25e8d178f976ea7252fe8415a3f46ccaef","sha256":"7ba195677bd42d66927813229fef2f24047b23743f9d881628617cf05f8e5cdd","sha512":"72c69b9c49c89c3c0b940abf8bea1104d53e5f4c425097a1d4e83f4d0dde431d0f3d34e0583cf23bc311643a9f578ff34ccf8f655f1bcb3305d4a78be71063a7","ssdeep":"384:meu4mH+boeJaoN0uwYBJr9qLLSmAHZ28RBjJkQ1YW:m+boeL9q/nYVH","tlshash":"1f42b00aeab61cf1c80e8b58955160a1bca8ff7d856e3f744226f4ee1f3ca1516349c9","first_seen":"2026-07-25T05:39:21.890242Z","last_seen":"2026-07-27T08:02:19.597072Z","times_seen":5,"resource_available":false,"data":"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"}},"time_used":349,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":347,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mobichain.co/top.png","fqdn":"mobichain.co","domain":"mobichain.co","tld":"co"},"ip":{"addr":"172.67.177.29","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.198Z","timestamp":1785139285198,"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":"mobichain.co","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 12 Jun 2026 22:29:44 GMT","end":"Thu, 10 Sep 2026 23:29:37 GMT"},"fingerprint":{"sha1":"1A:6F:8A:6B:8C:F0:0B:02:10:34:F1:69:66:EB:48:3B:15:01:B2:0E","sha256":"46:5B:9A:C1:6C:77:50:FF:72:73:45:13:53:C1:F0:8A:27:00:DD:80:0C:41:14:32:9A:5D:3E:18:0E:9A:E0:9C"}}},"request":{"raw":"GET /top.png HTTP/1.1\r\nHost: mobichain.co\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://mobichain.co/\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\nserver: cloudflare\r\nlast-modified: Fri, 05 Sep 2025 19:41:59 GMT\r\naccept-ranges: bytes\r\nserver-timing: cfExtPri\r\ncontent-type: image/png\r\ncache-control: max-age=14400\r\ncf-cache-status: REVALIDATED\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=gJEfb9FsW5dvZVhS0xVJE%2FiLz%2BEB4sQ%2BHien5%2FrjWTDPx7j%2B9biK2va%2BtQ4GGWuof2LZ6UehKb3adSy3tmCJhfCglowYkuTwfoUJ%2FRUyx6YaycT6iD0CbqSIgNVPACw%3D\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=5,i\r\ncf-ray: a21a1db4780c2efa-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 494025\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"]}],"data":{"size":494025,"size_decoded":494703,"mime_type":"image/png","magic":"PNG image data, 1600 x 856, 8-bit/color RGBA, non-interlaced","md5":"736b957aebb421c0c75e8af260d73956","sha1":"5529bc58681c233c8456b7cf9eb6facf52983ab0","sha256":"1af3067cedb2b76b8ecc1ce0cae74a121609bb8fbc42c80387287f15f6dce134","sha512":"62afab14ef0e969df8c6cb62f4b067b4002b201790c0f799a323dc42da7373ead9fcbff31ed7445999bbb122b85d0d2164bae758bdd53c734372aa9368d6eb8e","ssdeep":"12288:H2Tyw+45VENr2cwABIs7BV3aojQjDZt7c9YVAD73:H2TTN5VENKsSsj3aosl51VAD73","tlshash":"24b42339c8c5e9eae96782440b8e863caf74e6749d9001645c74c0cd9e5cb7d8a8dfe3","first_seen":"2026-07-25T05:39:21.886114Z","last_seen":"2026-07-27T08:02:19.603158Z","times_seen":5,"resource_available":false,"data":"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Th0TehpqhS+Ut0acCddtksJ/PWFzkinC6MzfRcm5lADToZGcOC6Skg7f3XbrrbozjvOx48YJ2r77xnqM4xxZoAx877331hFHHKEDDzhAswKfMH68OEdUu0GWOnT+c5hESE9PT7ipmb4nZD4yGaANhczLJfyM5xIaMLQODch0SupVgFZD7YHaA7UHsgeKsohzVLtmP/h5tC352O353sojoyh5FNWD9UTSgeQGbXj0E9+Xq204h3//+99P34kXL14szvHPf/7zxR0YtOGdGx/72McETlv65Y6Lf/zHfxTvHPnVr36VHl3F46UuueQSkQCpnlNJSqxdu1bYsLP+GcP//d//JV3cCUK/p512ml72spelO0+++93viv6WL1+u9evX68tf/rKwl4QJd4J8+MMfFokTdEMnOYONJGjOO+88XXfddZo8ebLOPvts8cisI488Ujzyi+QKiR3srfqjxmsP1B6oPVB74NF5oHh0zR+89c4kyqKM30yOEEErlUWxczO4kLVCCr7dvqi394O1EmzjYmaHzvgRlwO50IAy+qMFuihzHTn40NBBCdhOgSx4GTKdsiqb6+hGNukMm22nsVVlbSOe6MjCox3EjFtOP7jQA93ebgv1DO4guR1V/EVpW4X5QtRqjyPsUWzIRqGqP6nvCcB4sd92N6iqzobd+Au7AXDkO+w0RnDm1W77i3qG7CvqyFDSF2WugwPQq7rxI3T6BcABu60V23Ldee6azcBiHlvN+FLaXuO2EesC/VCxB9OhPVqwt+t0WDJUHzbjQ9uDWDzGB4LtZDd+wD921GMN0S7zKauAPur2YJ3QHguwnY4TdDMv9vZ+3RlztheZTGM81Hfm/ywDH8iy4LYpZDtBqsQur4+sL9uC7x7IJ6ElWu9ZH9vJIGwHsdv1hMfObtezXxlfxu02L7cN8fSBn89xiVDZWa7UHl8024R99JznDRywY311jt/qOsjzbbdtb+9poThCWgmx29QdZIOOz/CR7XQeVmy2u+ewqKYP//V10023pB9BifAk3xVxiT9kaqljZ/Vo0qgirk+dAZEEcRkB8sNU7HOqPOUoFXsdJk8+UgX4uP3UGre/mlOepdb4A+Se4dFwu5+bcb1fe/9azZ9/p6687FJdfeUVWrlyRcyFtGnTJt144w267LJLtGLFcoXDNXzKVE056Xma/ZrXad83vFH7vOFN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"}},"time_used":383,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":376,"receive":7,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/6335b5298eaf374465ce4700_Virtual%20Credit%20Cards.svg","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.201Z","timestamp":1785139285201,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/6335b5298eaf374465ce4700_Virtual%20Credit%20Cards.svg HTTP/1.1\r\nHost: cdn.prod.website-files.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://mobichain.co/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: image/svg+xml\r\nx-amz-id-2: mx/Q1Mbxi7ogjp+aJP7NaSN/4Gkzj+d/7yHDS7wr6a40A2z+g3mgdMyheanwXtGC5fZbopAFrPY=\r\nx-amz-request-id: J7TE9V1TFHANXWF6\r\nlast-modified: Thu, 29 Sep 2022 15:09:30 GMT\r\naccess-control-allow-origin: *\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: ybWRKJG.sn3XRMsXjZrEfu4az6t0TW_U\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 537241\r\ncf-cache-status: HIT\r\netag: W/\"461f43f2300205b579daea2ad0d3beb0\"\r\ncontent-encoding: br\r\ncf-ray: a21a1db49d73a0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":860,"size_decoded":1092,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"461f43f2300205b579daea2ad0d3beb0","sha1":"4baf50f6f0ae57caad4cffc0efaa8c4dea19e017","sha256":"fdf49085173f260bb6c762af57fc562430420f6f71b9f9b2d865d703317513a9","sha512":"ac3067bdd88679d670bdd2cef37f4ecc0ee196a3499e69f77c07aa15bf43eb71abb90276f35acd693912be884eeba1b58348721d48aad1b599235e719557fc1b","ssdeep":"","tlshash":"1511ef66b3e96e2df024c218d74372f9116c42d7284a8170dd92fe36a9580ce383f5e5","first_seen":"2026-07-25T05:39:21.895423Z","last_seen":"2026-07-27T08:02:19.587338Z","times_seen":5,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iOTEiIGhlaWdodD0iOTEiIHZpZXdCb3g9IjAgMCA5MSA5MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iNDUuNDQ4MSIgY3k9IjQ1Ljc2NTkiIHI9IjQ0Ljg1NDgiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8yNjE1XzIzMDkzKSIvPgo8cGF0aCBkPSJNNjIuODY0IDI4LjE4NjZIMjguMDMyM0MyNS4yODQyIDI4LjE4NjYgMjMuMDU2NCAzMC40MTQ0IDIzLjA1NjQgMzMuMTYyNVY1OC4zNjkzQzIzLjA1NjQgNjEuMTE3NCAyNS4yODQyIDYzLjM0NTIgMjguMDMyMyA2My4zNDUySDYyLjg2NEM2NS42MTIyIDYzLjM0NTIgNjcuODQgNjEuMTE3NCA2Ny44NCA1OC4zNjkzVjMzLjE2MjVDNjcuODQgMzAuNDE0NCA2NS42MTIyIDI4LjE4NjYgNjIuODY0IDI4LjE4NjZaIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMjMuMDU2NCAzOC4xMzg1SDY3Ljg0IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzI2MTVfMjMwOTMiIHgxPSI0NS40NDgxIiB5MT0iOTAuNjIwNSIgeDI9IjQ1LjQ0ODEiIHkyPSIwLjkxMTA3MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNjM0QkZBIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhBMUZERSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo="}},"time_used":23,"timings":{"blocked":-1,"dns":3,"connect":11,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/63359fde3665be15d20ea1a4_Icon%20Send%20%26%20Receive.svg","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.204Z","timestamp":1785139285204,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/63359fde3665be15d20ea1a4_Icon%20Send%20%26%20Receive.svg HTTP/1.1\r\nHost: cdn.prod.website-files.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://mobichain.co/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: image/svg+xml\r\nx-amz-id-2: atBXP5Y1JvCOsMAVl6FrwGlHUPy4HAW1/bOEDf+lL32I7MAiZxbntLydAlWueMxTHkaJHH+QRjY=\r\nx-amz-request-id: WRKY3RRAKGF6KMZW\r\nlast-modified: Thu, 29 Sep 2022 13:38:39 GMT\r\naccess-control-allow-origin: *\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: cxqB6BrrhwbIwDUrLd4KzKpPySNyJF4X\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 13065025\r\ncf-cache-status: HIT\r\netag: W/\"59e1bb7d2de43fbec0f31915552cb7fa\"\r\ncontent-encoding: br\r\ncf-ray: a21a1db49d79a0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":669,"size_decoded":1029,"mime_type":"image/svg+xml","magic":"SVG Scalable Vector Graphics image","md5":"59e1bb7d2de43fbec0f31915552cb7fa","sha1":"aa72204e061b47795352bf8e6bf60501099d6496","sha256":"b0f55fbc8e3e25a24f6fbb868f62c39e7846dabcb1205109cbd6136130dde6ec","sha512":"0d3707714c8533a19b837f5cdb84a11d51ed8159219a33bd27731c93ae247f307134cb0c81ef2700df4032e5f88dcdbfc8a982e35fe6e5a1fc753f72d595b408","ssdeep":"","tlshash":"22019ea5630c9d3df255c268cb16b238407841e35c89815098a1fe3b20545cb3e3f2f8","first_seen":"2026-07-25T05:39:21.882052Z","last_seen":"2026-07-27T08:02:19.573419Z","times_seen":5,"resource_available":false,"data":"PHN2ZyB3aWR0aD0iOTEiIGhlaWdodD0iOTEiIHZpZXdCb3g9IjAgMCA5MSA5MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iNDUuODE4NyIgY3k9IjQ1LjE5MTIiIHI9IjQ0Ljg1NDgiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8yNjE1XzIxOTcyKSIvPgo8cGF0aCBkPSJNMzIuMTUyIDU4Ljg1NzlMNTkuNDg1NCAzMS41MjQ2IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNNTkuNDg1NCA1Ny4yOTQ1VjMxLjUyNDZIMzMuNzE1NCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8yNjE1XzIxOTcyIiB4MT0iNDUuODE4NyIgeTE9IjkwLjA0NTkiIHgyPSI0NS44MTg3IiB5Mj0iMC4zMzY0MjYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzYzNEJGQSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4QTFGREUiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K"}},"time_used":8,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.prod.website-files.com/63344e721a6dea71bdb9f908/6334de04162aea1ea7ddb723_Icon%20Card%20Features.png","fqdn":"cdn.prod.website-files.com","domain":"website-files.com","tld":"com"},"ip":{"addr":"104.18.160.117","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mobichain.co/","date":"2026-07-27T08:01:25.209Z","timestamp":1785139285209,"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":"prod.website-files.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 04 Jun 2026 07:47:28 GMT","end":"Wed, 02 Sep 2026 08:47:21 GMT"},"fingerprint":{"sha1":"62:1E:08:5D:94:79:36:E4:D7:80:E8:C4:92:1E:7D:7F:EE:0A:E3:52","sha256":"41:03:C6:89:69:F8:01:32:88:5E:0B:58:7B:E2:C1:E3:4B:A4:7E:A3:0C:A5:60:42:D9:34:2F:E8:43:F1:88:B0"}}},"request":{"raw":"GET /63344e721a6dea71bdb9f908/6334de04162aea1ea7ddb723_Icon%20Card%20Features.png HTTP/1.1\r\nHost: cdn.prod.website-files.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://mobichain.co/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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\ndate: Mon, 27 Jul 2026 08:01:25 GMT\r\ncontent-type: image/png\r\ncontent-length: 25451\r\nx-amz-id-2: JuN0F+Z4dNnjT1qghfyb5porJWCIOGtvavorRD8nm0ncgCosHm7iZ5AoxfkYcuyAd8V0r6Ey+/M=\r\nx-amz-request-id: DC9REHGG93CRQ6NM\r\nlast-modified: Wed, 28 Sep 2022 23:51:33 GMT\r\netag: \"beca214200bed283b6e7b1a79224f7df\"\r\nx-amz-server-side-encryption: AES256\r\ncache-control: max-age=31536000, must-revalidate\r\nx-amz-version-id: tndnmCsbMC.V4ZzAb2FBiPsHHiI2ybtV\r\naccept-ranges: bytes\r\nserver: cloudflare\r\npriority: u=5,i\r\nage: 12664438\r\ncf-cache-status: HIT\r\naccess-control-allow-origin: *\r\ncf-ray: a21a1db49d7ea0f0-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":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"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":25451,"size_decoded":26118,"mime_type":"image/png","magic":"PNG image data, 181 x 181, 8-bit/color RGBA, non-interlaced","md5":"beca214200bed283b6e7b1a79224f7df","sha1":"058c012ac880235e585aa8a74e56945f70c8a1bd","sha256":"f3cfe9ee6551eb24b5dca14311d4d00426fc635d6a8da485942239194b0d98d0","sha512":"2a83eeb4b0e39ef8cd2fe6048df60bf9f8fd09b2b32b65491e5d39ba01d0efa614dad169a824843a5cb343acb1e664de98a5b50f18b1ac08a8f86a31b05e0346","ssdeep":"768:idOJ8yMbMZbxoZKqEJqYEK8looSqlH4W1bmr8fVdI:i0DKMZFaXEJqrKqSaYWwoA","tlshash":"29b2e19b4a388f202cad96e3bf52307d3e72788dd02f3e4f0940789634a785d095e765","first_seen":"2026-07-25T05:39:21.87042Z","last_seen":"2026-07-27T08:02:19.593752Z","times_seen":5,"resource_available":false,"data":"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"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
